diff options
author | YamaArashi <shadow962@live.com> | 2016-10-25 19:57:15 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-10-25 19:57:15 -0700 |
commit | fb2f1c8bce95cbe584fbd674b8e7865d2bc84bc6 (patch) | |
tree | 95d47e9e0d44e207d276d6858b44c6be5c845589 | |
parent | cfe4a52393bd5d09d78f68ac165406d3e9354706 (diff) |
split some files out of rom6.s
-rw-r--r-- | Makefile | 16 | ||||
-rw-r--r-- | asm/battle_811DA74.s | 5890 | ||||
-rw-r--r-- | asm/battle_message.s | 2403 | ||||
-rw-r--r-- | asm/battle_records.s | 908 | ||||
-rw-r--r-- | asm/battle_transition.s | 6254 | ||||
-rw-r--r-- | asm/cable_car.s | 2881 | ||||
-rw-r--r-- | asm/cable_car_util.s | 163 | ||||
-rw-r--r-- | asm/choose_party.s | 2509 | ||||
-rw-r--r-- | asm/coins.s | 251 | ||||
-rw-r--r-- | asm/evolution_scene.s | 6717 | ||||
-rw-r--r-- | asm/fldeff_strength.s | 152 | ||||
-rw-r--r-- | asm/landmark.s | 132 | ||||
-rw-r--r-- | asm/pokedex_area_screen.s | 2371 | ||||
-rw-r--r-- | asm/pokedex_cry_screen.s | 1164 | ||||
-rw-r--r-- | asm/rom6.s | 42375 | ||||
-rw-r--r-- | asm/roulette.s | 9659 | ||||
-rw-r--r-- | asm/roulette_util.s | 780 | ||||
-rw-r--r-- | asm/unused_8124F94.s | 285 | ||||
-rw-r--r-- | ld_script.txt | 16 |
19 files changed, 42551 insertions, 42375 deletions
@@ -124,6 +124,22 @@ asm/contest_painting.o \ asm/battle_ai.o \ asm/trader.o \ asm/rom6.o \ +asm/battle_records.o \ +asm/pokedex_area_screen.o \ +asm/evolution_scene.o \ +asm/roulette.o \ +asm/pokedex_cry_screen.o \ +asm/coins.o \ +asm/landmark.o \ +asm/fldeff_strength.o \ +asm/battle_transition.o \ +asm/battle_811DA74.o \ +asm/battle_message.o \ +asm/choose_party.o \ +asm/cable_car.o \ +asm/roulette_util.o \ +asm/cable_car_util.o \ +asm/unused_8124F94.o \ asm/mystery_event_script.o \ asm/field_effect_helpers.o \ asm/contest_ai.o \ diff --git a/asm/battle_811DA74.s b/asm/battle_811DA74.s new file mode 100644 index 000000000..a51ab4e85 --- /dev/null +++ b/asm/battle_811DA74.s @@ -0,0 +1,5890 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start nullsub_74 +nullsub_74: @ 811DA74 + bx lr + thumb_func_end nullsub_74 + + thumb_func_start sub_811DA78 +sub_811DA78: @ 811DA78 + ldr r1, _0811DA88 @ =gUnknown_03004330 + ldr r0, _0811DA8C @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _0811DA90 @ =sub_811DA94 + str r1, [r0] + bx lr + .align 2, 0 +_0811DA88: .4byte gUnknown_03004330 +_0811DA8C: .4byte gUnknown_02024A60 +_0811DA90: .4byte sub_811DA94 + thumb_func_end sub_811DA78 + + thumb_func_start sub_811DA94 +sub_811DA94: @ 811DA94 + push {lr} + ldr r2, _0811DAC8 @ =gUnknown_02024A64 + ldr r1, _0811DACC @ =gBitTable + ldr r0, _0811DAD0 @ =gUnknown_02024A60 + ldrb r3, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0811DAE0 + ldr r0, _0811DAD4 @ =gUnknown_02023A60 + lsls r1, r3, 9 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x38 + bhi _0811DADC + ldr r0, _0811DAD8 @ =gUnknown_083FE4F4 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _0811DAE0 + .align 2, 0 +_0811DAC8: .4byte gUnknown_02024A64 +_0811DACC: .4byte gBitTable +_0811DAD0: .4byte gUnknown_02024A60 +_0811DAD4: .4byte gUnknown_02023A60 +_0811DAD8: .4byte gUnknown_083FE4F4 +_0811DADC: + bl dp01_tbl3_exec_completed +_0811DAE0: + pop {r0} + bx r0 + thumb_func_end sub_811DA94 + + thumb_func_start sub_811DAE4 +sub_811DAE4: @ 811DAE4 + push {lr} + ldr r2, _0811DB0C @ =gSprites + ldr r1, _0811DB10 @ =gUnknown_02024BE0 + ldr r0, _0811DB14 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _0811DB18 @ =SpriteCallbackDummy + cmp r1, r0 + bne _0811DB08 + bl dp01_tbl3_exec_completed +_0811DB08: + pop {r0} + bx r0 + .align 2, 0 +_0811DB0C: .4byte gSprites +_0811DB10: .4byte gUnknown_02024BE0 +_0811DB14: .4byte gUnknown_02024A60 +_0811DB18: .4byte SpriteCallbackDummy + thumb_func_end sub_811DAE4 + + thumb_func_start sub_811DB1C +sub_811DB1C: @ 811DB1C + push {r4-r6,lr} + ldr r6, _0811DB74 @ =gSprites + ldr r5, _0811DB78 @ =gUnknown_02024BE0 + ldr r4, _0811DB7C @ =gUnknown_02024A60 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, _0811DB80 @ =SpriteCallbackDummy + cmp r1, r0 + bne _0811DB6C + movs r0, 0 + bl nullsub_10 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl FreeSpriteOamMatrix + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + bl dp01_tbl3_exec_completed +_0811DB6C: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811DB74: .4byte gSprites +_0811DB78: .4byte gUnknown_02024BE0 +_0811DB7C: .4byte gUnknown_02024A60 +_0811DB80: .4byte SpriteCallbackDummy + thumb_func_end sub_811DB1C + + thumb_func_start sub_811DB84 +sub_811DB84: @ 811DB84 + push {lr} + ldr r3, _0811DBB8 @ =gUnknown_02024A60 + ldrb r0, [r3] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r2, _0811DBBC @ =0x02017810 + adds r1, r2 + ldrb r0, [r1, 0x9] + subs r0, 0x1 + strb r0, [r1, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0811DBB4 + ldrb r0, [r3] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0 + strb r0, [r1, 0x9] + bl dp01_tbl3_exec_completed +_0811DBB4: + pop {r0} + bx r0 + .align 2, 0 +_0811DBB8: .4byte gUnknown_02024A60 +_0811DBBC: .4byte 0x02017810 + thumb_func_end sub_811DB84 + + thumb_func_start sub_811DBC0 +sub_811DBC0: @ 811DBC0 + push {r4-r6,lr} + movs r6, 0 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0811DBE4 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0811DC18 + ldr r0, _0811DC04 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0811DC18 +_0811DBE4: + ldr r2, _0811DC08 @ =gSprites + ldr r1, _0811DC0C @ =gUnknown_03004340 + ldr r0, _0811DC10 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _0811DC14 @ =SpriteCallbackDummy + cmp r1, r0 + bne _0811DC50 + b _0811DC4E + .align 2, 0 +_0811DC04: .4byte gUnknown_020239F8 +_0811DC08: .4byte gSprites +_0811DC0C: .4byte gUnknown_03004340 +_0811DC10: .4byte gUnknown_02024A60 +_0811DC14: .4byte SpriteCallbackDummy +_0811DC18: + ldr r2, _0811DC84 @ =gSprites + ldr r5, _0811DC88 @ =gUnknown_03004340 + ldr r0, _0811DC8C @ =gUnknown_02024A60 + ldrb r3, [r0] + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r2, 0 + adds r4, 0x1C + adds r0, r4 + ldr r2, [r0] + ldr r0, _0811DC90 @ =SpriteCallbackDummy + cmp r2, r0 + bne _0811DC50 + movs r0, 0x2 + eors r3, r0 + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + cmp r0, r2 + bne _0811DC50 +_0811DC4E: + movs r6, 0x1 +_0811DC50: + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + beq _0811DC5C + movs r6, 0 +_0811DC5C: + cmp r6, 0 + beq _0811DC7E + ldr r2, _0811DC8C @ =gUnknown_02024A60 + ldrb r1, [r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _0811DC94 @ =0x02017810 + adds r0, r1 + movs r1, 0x3 + strb r1, [r0, 0x9] + ldr r1, _0811DC98 @ =gUnknown_03004330 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _0811DC9C @ =sub_811DB84 + str r1, [r0] +_0811DC7E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811DC84: .4byte gSprites +_0811DC88: .4byte gUnknown_03004340 +_0811DC8C: .4byte gUnknown_02024A60 +_0811DC90: .4byte SpriteCallbackDummy +_0811DC94: .4byte 0x02017810 +_0811DC98: .4byte gUnknown_03004330 +_0811DC9C: .4byte sub_811DB84 + thumb_func_end sub_811DBC0 + + thumb_func_start sub_811DCA0 +sub_811DCA0: @ 811DCA0 + push {r4-r7,lr} + ldr r6, _0811DDBC @ =gUnknown_02024A60 + ldrb r2, [r6] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r4, _0811DDC0 @ =0x02017810 + adds r3, r0, r4 + ldrb r1, [r3] + movs r5, 0x8 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _0811DDB4 + movs r7, 0x2 + adds r1, r7, 0 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + adds r0, r5, 0 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _0811DDB4 + ldrb r0, [r3, 0x9] + adds r0, 0x1 + strb r0, [r3, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0811DDB4 + ldrb r0, [r6] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + strb r2, [r1, 0x9] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0811DD56 + ldr r0, _0811DDC4 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0811DD56 + ldr r1, _0811DDC8 @ =gUnknown_0300434C + ldrb r0, [r6] + eors r0, r7 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0811DDCC @ =gSprites + adds r0, r1 + bl DestroySprite + ldr r4, _0811DDD0 @ =gUnknown_03004340 + ldrb r0, [r6] + adds r1, r7, 0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _0811DDD4 @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _0811DDD8 @ =gPlayerParty + adds r1, r2 + movs r2, 0 + bl sub_8045A5C + ldrb r0, [r6] + eors r0, r7 + bl sub_804777C + ldrb r0, [r6] + eors r0, r7 + adds r0, r4 + ldrb r0, [r0] + bl sub_8043DFC +_0811DD56: + ldr r1, _0811DDC8 @ =gUnknown_0300434C + ldr r4, _0811DDBC @ =gUnknown_02024A60 + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0811DDCC @ =gSprites + adds r0, r1 + bl DestroySprite + ldr r5, _0811DDD0 @ =gUnknown_03004340 + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _0811DDD4 @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _0811DDD8 @ =gPlayerParty + adds r1, r2 + movs r2, 0 + bl sub_8045A5C + ldrb r0, [r4] + bl sub_804777C + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_8043DFC + ldr r2, _0811DDDC @ =0x02017840 + ldrb r1, [r2, 0x9] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x9] + ldr r1, _0811DDE0 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0811DDE4 @ =sub_811DBC0 + str r1, [r0] +_0811DDB4: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811DDBC: .4byte gUnknown_02024A60 +_0811DDC0: .4byte 0x02017810 +_0811DDC4: .4byte gUnknown_020239F8 +_0811DDC8: .4byte gUnknown_0300434C +_0811DDCC: .4byte gSprites +_0811DDD0: .4byte gUnknown_03004340 +_0811DDD4: .4byte gUnknown_02024A6A +_0811DDD8: .4byte gPlayerParty +_0811DDDC: .4byte 0x02017840 +_0811DDE0: .4byte gUnknown_03004330 +_0811DDE4: .4byte sub_811DBC0 + thumb_func_end sub_811DCA0 + + thumb_func_start sub_811DDE8 +sub_811DDE8: @ 811DDE8 + push {lr} + ldr r2, _0811DE1C @ =gSprites + ldr r1, _0811DE20 @ =gUnknown_02024BE0 + ldr r0, _0811DE24 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 27 + cmp r0, 0 + bge _0811DE16 + movs r2, 0x24 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _0811DE16 + bl dp01_tbl3_exec_completed +_0811DE16: + pop {r0} + bx r0 + .align 2, 0 +_0811DE1C: .4byte gSprites +_0811DE20: .4byte gUnknown_02024BE0 +_0811DE24: .4byte gUnknown_02024A60 + thumb_func_end sub_811DDE8 + + thumb_func_start bx_t3_healthbar_update +bx_t3_healthbar_update: @ 811DE28 + push {r4-r6,lr} + ldr r5, _0811DE68 @ =gUnknown_02024A60 + ldrb r0, [r5] + ldr r6, _0811DE6C @ =gUnknown_03004340 + adds r1, r0, r6 + ldrb r1, [r1] + movs r2, 0 + movs r3, 0 + bl sub_8045C78 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + bl sub_8043DFC + lsls r4, 16 + asrs r1, r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0811DE70 + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + movs r2, 0 + bl sub_80440EC + b _0811DE8A + .align 2, 0 +_0811DE68: .4byte gUnknown_02024A60 +_0811DE6C: .4byte gUnknown_03004340 +_0811DE70: + ldr r2, _0811DE90 @ =gUnknown_02024A6A + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _0811DE94 @ =gPlayerParty + adds r0, r2 + bl sub_80324F8 + bl dp01_tbl3_exec_completed +_0811DE8A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811DE90: .4byte gUnknown_02024A6A +_0811DE94: .4byte gPlayerParty + thumb_func_end bx_t3_healthbar_update + + thumb_func_start sub_811DE98 +sub_811DE98: @ 811DE98 + push {r4-r6,lr} + ldr r6, _0811DF1C @ =gSprites + ldr r5, _0811DF20 @ =gUnknown_02024BE0 + ldr r4, _0811DF24 @ =gUnknown_02024A60 + ldrb r2, [r4] + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r3, 0x22 + ldrsh r1, [r0, r3] + movs r3, 0x26 + ldrsh r0, [r0, r3] + adds r1, r0 + cmp r1, 0xA0 + ble _0811DF14 + ldr r1, _0811DF28 @ =gUnknown_02024A6A + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0811DF2C @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl nullsub_9 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + ldr r1, _0811DF30 @ =gUnknown_03004340 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + bl sub_8043DB0 + bl dp01_tbl3_exec_completed +_0811DF14: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811DF1C: .4byte gSprites +_0811DF20: .4byte gUnknown_02024BE0 +_0811DF24: .4byte gUnknown_02024A60 +_0811DF28: .4byte gUnknown_02024A6A +_0811DF2C: .4byte gPlayerParty +_0811DF30: .4byte gUnknown_03004340 + thumb_func_end sub_811DE98 + + thumb_func_start sub_811DF34 +sub_811DF34: @ 811DF34 + push {r4-r6,lr} + ldr r6, _0811DF8C @ =gUnknown_02024A60 + ldrb r2, [r6] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r1, _0811DF90 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0811DF84 + ldr r5, _0811DF94 @ =gUnknown_02024BE0 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _0811DF98 @ =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r1, _0811DF9C @ =gUnknown_03004340 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8043DB0 + bl dp01_tbl3_exec_completed +_0811DF84: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811DF8C: .4byte gUnknown_02024A60 +_0811DF90: .4byte 0x02017810 +_0811DF94: .4byte gUnknown_02024BE0 +_0811DF98: .4byte gSprites +_0811DF9C: .4byte gUnknown_03004340 + thumb_func_end sub_811DF34 + + thumb_func_start sub_811DFA0 +sub_811DFA0: @ 811DFA0 + push {lr} + ldr r0, _0811DFB4 @ =gUnknown_03004210 + ldrh r0, [r0, 0x16] + cmp r0, 0 + bne _0811DFAE + bl dp01_tbl3_exec_completed +_0811DFAE: + pop {r0} + bx r0 + .align 2, 0 +_0811DFB4: .4byte gUnknown_03004210 + thumb_func_end sub_811DFA0 + + thumb_func_start bx_blink_t3 +bx_blink_t3: @ 811DFB8 + push {r4,lr} + ldr r1, _0811DFF4 @ =gUnknown_02024BE0 + ldr r0, _0811DFF8 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + ldr r2, _0811DFFC @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bne _0811E004 + movs r3, 0 + movs r0, 0 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x5 + ands r0, r1 + strb r0, [r2] + ldr r0, _0811E000 @ =gUnknown_02024E6D + strb r3, [r0] + bl dp01_tbl3_exec_completed + b _0811E02E + .align 2, 0 +_0811DFF4: .4byte gUnknown_02024BE0 +_0811DFF8: .4byte gUnknown_02024A60 +_0811DFFC: .4byte gSprites +_0811E000: .4byte gUnknown_02024E6D +_0811E004: + ldrh r0, [r4, 0x30] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _0811E028 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0811E028: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_0811E02E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end bx_blink_t3 + + thumb_func_start sub_811E034 +sub_811E034: @ 811E034 + push {r4,lr} + ldr r2, _0811E084 @ =gSprites + ldr r0, _0811E088 @ =gUnknown_03004340 + ldr r4, _0811E08C @ =gUnknown_02024A60 + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _0811E090 @ =SpriteCallbackDummy + cmp r1, r0 + bne _0811E07C + lsls r0, r3, 2 + ldr r1, _0811E094 @ =0x02017800 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0811E070 + adds r0, r3, 0 + adds r1, r3, 0 + adds r2, r3, 0 + movs r3, 0x6 + bl move_anim_start_t4 +_0811E070: + ldr r0, _0811E098 @ =gUnknown_03004330 + ldrb r1, [r4] + lsls r1, 2 + adds r1, r0 + ldr r0, _0811E09C @ =sub_811E0A0 + str r0, [r1] +_0811E07C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811E084: .4byte gSprites +_0811E088: .4byte gUnknown_03004340 +_0811E08C: .4byte gUnknown_02024A60 +_0811E090: .4byte SpriteCallbackDummy +_0811E094: .4byte 0x02017800 +_0811E098: .4byte gUnknown_03004330 +_0811E09C: .4byte sub_811E0A0 + thumb_func_end sub_811E034 + + thumb_func_start sub_811E0A0 +sub_811E0A0: @ 811E0A0 + push {lr} + ldr r0, _0811E0C4 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _0811E0C8 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0811E0BE + bl dp01_tbl3_exec_completed +_0811E0BE: + pop {r0} + bx r0 + .align 2, 0 +_0811E0C4: .4byte gUnknown_02024A60 +_0811E0C8: .4byte 0x02017810 + thumb_func_end sub_811E0A0 + + thumb_func_start sub_811E0CC +sub_811E0CC: @ 811E0CC + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r7, _0811E190 @ =gUnknown_02024A60 + ldrb r1, [r7] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r3, _0811E194 @ =0x02017810 + adds r2, r0, r3 + ldrb r1, [r2, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0811E186 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldrb r0, [r7] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, _0811E198 @ =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + ldr r0, _0811E19C @ =c3_0802FDF4 + movs r1, 0xA + bl CreateTask + ldr r0, _0811E1A0 @ =gUnknown_02024A6A + mov r8, r0 + ldrb r1, [r7] + lsls r0, r1, 1 + add r0, r8 + ldrh r0, [r0] + movs r6, 0x64 + muls r0, r6 + ldr r5, _0811E1A4 @ =gPlayerParty + adds r0, r5 + bl sub_80324F8 + ldr r1, _0811E1A8 @ =gUnknown_02024BE0 + ldrb r0, [r7] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0811E1AC @ =gSprites + adds r0, r1 + movs r1, 0 + bl StartSpriteAnim + ldr r4, _0811E1B0 @ =gUnknown_03004340 + ldrb r1, [r7] + adds r0, r1, r4 + ldrb r0, [r0] + lsls r1, 1 + add r1, r8 + ldrh r1, [r1] + muls r1, r6 + adds r1, r5 + movs r2, 0 + bl sub_8045A5C + ldrb r0, [r7] + bl sub_804777C + ldrb r0, [r7] + adds r0, r4 + ldrb r0, [r0] + bl sub_8043DFC + ldrb r0, [r7] + bl sub_8031F88 + ldr r1, _0811E1B4 @ =gUnknown_03004330 + ldrb r0, [r7] + lsls r0, 2 + adds r0, r1 + ldr r1, _0811E1B8 @ =sub_811E034 + str r1, [r0] +_0811E186: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811E190: .4byte gUnknown_02024A60 +_0811E194: .4byte 0x02017810 +_0811E198: .4byte 0x000027f9 +_0811E19C: .4byte c3_0802FDF4 +_0811E1A0: .4byte gUnknown_02024A6A +_0811E1A4: .4byte gPlayerParty +_0811E1A8: .4byte gUnknown_02024BE0 +_0811E1AC: .4byte gSprites +_0811E1B0: .4byte gUnknown_03004340 +_0811E1B4: .4byte gUnknown_03004330 +_0811E1B8: .4byte sub_811E034 + thumb_func_end sub_811E0CC + + thumb_func_start sub_811E1BC +sub_811E1BC: @ 811E1BC + push {r4-r6,lr} + ldr r4, _0811E234 @ =gUnknown_02024A60 + ldrb r2, [r4] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + ldr r6, _0811E238 @ =0x02017810 + adds r0, r6 + ldrb r1, [r0] + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + bne _0811E1EA + ldr r0, _0811E23C @ =gUnknown_02024A6A + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _0811E240 @ =gPlayerParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8141828 +_0811E1EA: + ldr r5, _0811E244 @ =gSprites + ldr r0, _0811E248 @ =gUnknown_0300434C + ldrb r2, [r4] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r3, r0, 2 + adds r0, r5, 0 + adds r0, 0x1C + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, _0811E24C @ =SpriteCallbackDummy + cmp r1, r0 + bne _0811E22C + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _0811E22C + adds r0, r3, r5 + bl DestroySprite + ldr r1, _0811E250 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0811E254 @ =sub_811E0CC + str r1, [r0] +_0811E22C: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811E234: .4byte gUnknown_02024A60 +_0811E238: .4byte 0x02017810 +_0811E23C: .4byte gUnknown_02024A6A +_0811E240: .4byte gPlayerParty +_0811E244: .4byte gSprites +_0811E248: .4byte gUnknown_0300434C +_0811E24C: .4byte SpriteCallbackDummy +_0811E250: .4byte gUnknown_03004330 +_0811E254: .4byte sub_811E0CC + thumb_func_end sub_811E1BC + + thumb_func_start sub_811E258 +sub_811E258: @ 811E258 + push {lr} + ldr r0, _0811E288 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _0811E284 + movs r0, 0x5A + bl m4aSongNumStop + ldr r3, _0811E28C @ =gMain + ldr r0, _0811E290 @ =0x0000043d + adds r2, r3, r0 + ldrb r1, [r2] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r0, _0811E294 @ =gUnknown_030042D0 + ldr r0, [r0] + str r0, [r3] + ldr r0, _0811E298 @ =c2_8011A1C + bl SetMainCallback2 +_0811E284: + pop {r0} + bx r0 + .align 2, 0 +_0811E288: .4byte gReceivedRemoteLinkPlayers +_0811E28C: .4byte gMain +_0811E290: .4byte 0x0000043d +_0811E294: .4byte gUnknown_030042D0 +_0811E298: .4byte c2_8011A1C + thumb_func_end sub_811E258 + + thumb_func_start sub_811E29C +sub_811E29C: @ 811E29C + push {lr} + ldr r0, _0811E2CC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0811E302 + ldr r0, _0811E2D0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0811E2E0 + bl sub_800832C + ldr r1, _0811E2D4 @ =gUnknown_03004330 + ldr r0, _0811E2D8 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _0811E2DC @ =sub_811E258 + str r1, [r0] + b _0811E302 + .align 2, 0 +_0811E2CC: .4byte gPaletteFade +_0811E2D0: .4byte gUnknown_020239F8 +_0811E2D4: .4byte gUnknown_03004330 +_0811E2D8: .4byte gUnknown_02024A60 +_0811E2DC: .4byte sub_811E258 +_0811E2E0: + movs r0, 0x5A + bl m4aSongNumStop + ldr r2, _0811E308 @ =gMain + ldr r0, _0811E30C @ =0x0000043d + adds r3, r2, r0 + ldrb r1, [r3] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + ldr r0, _0811E310 @ =gUnknown_030042D0 + ldr r0, [r0] + str r0, [r2] + ldr r0, [r2, 0x8] + bl SetMainCallback2 +_0811E302: + pop {r0} + bx r0 + .align 2, 0 +_0811E308: .4byte gMain +_0811E30C: .4byte 0x0000043d +_0811E310: .4byte gUnknown_030042D0 + thumb_func_end sub_811E29C + + thumb_func_start dp01_tbl3_exec_completed +dp01_tbl3_exec_completed: @ 811E314 + push {r4,lr} + sub sp, 0x4 + ldr r1, _0811E354 @ =gUnknown_03004330 + ldr r4, _0811E358 @ =gUnknown_02024A60 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0811E35C @ =sub_811DA94 + str r1, [r0] + ldr r0, _0811E360 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0811E368 + bl GetMultiplayerId + mov r1, sp + strb r0, [r1] + movs r0, 0x2 + movs r1, 0x4 + mov r2, sp + bl dp01_prepare_buffer_wireless_probably + ldr r1, _0811E364 @ =gUnknown_02023A60 + ldrb r0, [r4] + lsls r0, 9 + adds r0, r1 + movs r1, 0x38 + strb r1, [r0] + b _0811E37A + .align 2, 0 +_0811E354: .4byte gUnknown_03004330 +_0811E358: .4byte gUnknown_02024A60 +_0811E35C: .4byte sub_811DA94 +_0811E360: .4byte gUnknown_020239F8 +_0811E364: .4byte gUnknown_02023A60 +_0811E368: + ldr r2, _0811E384 @ =gUnknown_02024A64 + ldr r1, _0811E388 @ =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_0811E37A: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811E384: .4byte gUnknown_02024A64 +_0811E388: .4byte gBitTable + thumb_func_end dp01_tbl3_exec_completed + + thumb_func_start sub_811E38C +sub_811E38C: @ 811E38C + push {lr} + ldr r0, _0811E3B0 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _0811E3B4 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0811E3AA + bl dp01_tbl3_exec_completed +_0811E3AA: + pop {r0} + bx r0 + .align 2, 0 +_0811E3B0: .4byte gUnknown_02024A60 +_0811E3B4: .4byte 0x02017810 + thumb_func_end sub_811E38C + + thumb_func_start sub_811E3B8 +sub_811E3B8: @ 811E3B8 + push {lr} + ldr r0, _0811E3DC @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _0811E3E0 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0811E3D6 + bl dp01_tbl3_exec_completed +_0811E3D6: + pop {r0} + bx r0 + .align 2, 0 +_0811E3DC: .4byte gUnknown_02024A60 +_0811E3E0: .4byte 0x02017810 + thumb_func_end sub_811E3B8 + + thumb_func_start dp01t_00_3_getattr +dp01t_00_3_getattr: @ 811E3E4 + push {r4-r6,lr} + sub sp, 0x100 + movs r6, 0 + ldr r1, _0811E410 @ =gUnknown_02023A60 + ldr r0, _0811E414 @ =gUnknown_02024A60 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _0811E41C + ldr r0, _0811E418 @ =gUnknown_02024A6A + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + mov r1, sp + bl dp01_getattr_by_ch1_for_player_pokemon + adds r6, r0, 0 + b _0811E43E + .align 2, 0 +_0811E410: .4byte gUnknown_02023A60 +_0811E414: .4byte gUnknown_02024A60 +_0811E418: .4byte gUnknown_02024A6A +_0811E41C: + ldrb r4, [r1] + movs r5, 0 +_0811E420: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0811E436 + lsls r0, r5, 24 + lsrs r0, 24 + mov r2, sp + adds r1, r2, r6 + bl dp01_getattr_by_ch1_for_player_pokemon + adds r6, r0 +_0811E436: + lsrs r4, 1 + adds r5, 0x1 + cmp r5, 0x5 + ble _0811E420 +_0811E43E: + lsls r1, r6, 16 + lsrs r1, 16 + movs r0, 0x1 + mov r2, sp + bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl dp01_tbl3_exec_completed + add sp, 0x100 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end dp01t_00_3_getattr + + thumb_func_start dp01_getattr_by_ch1_for_player_pokemon +dp01_getattr_by_ch1_for_player_pokemon: @ 811E458 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x90 + adds r7, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r2, _0811E48C @ =gUnknown_02023A60 + ldr r3, _0811E490 @ =gUnknown_02024A60 + ldrb r0, [r3] + lsls r0, 9 + adds r1, r2, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3B + bls _0811E482 + bl _0811EBEE +_0811E482: + lsls r0, 2 + ldr r1, _0811E494 @ =_0811E498 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811E48C: .4byte gUnknown_02023A60 +_0811E490: .4byte gUnknown_02024A60 +_0811E494: .4byte _0811E498 + .align 2, 0 +_0811E498: + .4byte _0811E588 + .4byte _0811E7AC + .4byte _0811E7BC + .4byte _0811E7CC + .4byte _0811E834 + .4byte _0811E834 + .4byte _0811E834 + .4byte _0811E834 + .4byte _0811E850 + .4byte _0811E88C + .4byte _0811E88C + .4byte _0811E88C + .4byte _0811E88C + .4byte _0811EBEE + .4byte _0811EBEE + .4byte _0811EBEE + .4byte _0811EBEE + .4byte _0811E8A8 + .4byte _0811E8B8 + .4byte _0811E8E8 + .4byte _0811E8F8 + .4byte _0811E908 + .4byte _0811E918 + .4byte _0811E928 + .4byte _0811E938 + .4byte _0811E948 + .4byte _0811E958 + .4byte _0811E968 + .4byte _0811E978 + .4byte _0811E988 + .4byte _0811E998 + .4byte _0811E9A8 + .4byte _0811E9F8 + .4byte _0811EA08 + .4byte _0811EA18 + .4byte _0811EA28 + .4byte _0811EA38 + .4byte _0811EA48 + .4byte _0811EA58 + .4byte _0811EA68 + .4byte _0811EA78 + .4byte _0811EAAC + .4byte _0811EABC + .4byte _0811EACC + .4byte _0811EADC + .4byte _0811EAEC + .4byte _0811EAFC + .4byte _0811EB0C + .4byte _0811EB1C + .4byte _0811EB3C + .4byte _0811EB4C + .4byte _0811EB5C + .4byte _0811EB6C + .4byte _0811EB7C + .4byte _0811EB8C + .4byte _0811EB9C + .4byte _0811EBAC + .4byte _0811EBBC + .4byte _0811EBCC + .4byte _0811EBDC +_0811E588: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _0811E79C @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2E] + movs r6, 0 + add r0, sp, 0x24 + mov r9, r0 + movs r1, 0x3B + add r1, sp + mov r10, r1 + mov r2, sp + adds r2, 0x2B + str r2, [sp, 0x80] + mov r0, sp + adds r0, 0x2A + str r0, [sp, 0x7C] + mov r1, sp + adds r1, 0x68 + str r1, [sp, 0x8C] + adds r2, 0x5 + str r2, [sp, 0x84] + adds r0, 0x12 + str r0, [sp, 0x88] + mov r8, r4 + add r4, sp, 0xC +_0811E5D4: + adds r1, r6, 0 + adds r1, 0xD + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, 0 + adds r1, 0x11 + mov r0, r8 + bl GetMonData + mov r2, r9 + adds r1, r2, r6 + strb r0, [r1] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _0811E5D4 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _0811E79C @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl GetMonData + mov r1, r10 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + ldr r2, [sp, 0x80] + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x19 + bl GetMonData + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + mov r3, sp + movs r5, 0x1F + ands r0, r5 + ldrb r2, [r3, 0x14] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + mov r3, sp + movs r6, 0x1F + ands r0, r6 + lsls r0, 5 + ldrh r2, [r3, 0x14] + ldr r1, _0811E7A0 @ =0xfffffc1f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 2 + ldrb r2, [r3, 0x15] + movs r1, 0x7D + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x15] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + movs r1, 0x1F + ands r1, r0 + lsls r1, 15 + ldr r0, [sp, 0x14] + ldr r2, _0811E7A4 @ =0xfff07fff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x14] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, 4 + ldrh r2, [r3, 0x16] + ldr r1, _0811E7A8 @ =0xfffffe0f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x16] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 1 + ldrb r2, [r3, 0x17] + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + str r0, [sp, 0x48] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + str r0, [sp, 0x4C] + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + ldr r1, [sp, 0x7C] + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, 0x28] + adds r0, r4, 0 + movs r1, 0x3A + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2C] + adds r0, r4, 0 + movs r1, 0x3B + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2] + adds r0, r4, 0 + movs r1, 0x3C + bl GetMonData + mov r1, sp + strh r0, [r1, 0x4] + adds r0, r4, 0 + movs r1, 0x3D + bl GetMonData + mov r1, sp + strh r0, [r1, 0x6] + adds r0, r4, 0 + movs r1, 0x3E + bl GetMonData + mov r1, sp + strh r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0x3F + bl GetMonData + mov r1, sp + strh r0, [r1, 0xA] + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + mov r3, sp + movs r1, 0x1 + ands r0, r1 + lsls r0, 6 + ldrb r2, [r3, 0x17] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + mov r3, sp + lsls r0, 7 + ldrb r2, [r3, 0x17] + movs r1, 0x7F + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + str r0, [sp, 0x54] + adds r0, r4, 0 + movs r1, 0x2 + ldr r2, [sp, 0x8C] + bl GetMonData + ldr r0, [sp, 0x84] + ldr r1, [sp, 0x8C] + bl StringCopy10 + adds r0, r4, 0 + movs r1, 0x7 + ldr r2, [sp, 0x88] + bl GetMonData + mov r2, sp + movs r6, 0 +_0811E78C: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0x57 + bls _0811E78C + b _0811EBEE + .align 2, 0 +_0811E79C: .4byte gPlayerParty +_0811E7A0: .4byte 0xfffffc1f +_0811E7A4: .4byte 0xfff07fff +_0811E7A8: .4byte 0xfffffe0f +_0811E7AC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E7B8 @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + b _0811EB26 + .align 2, 0 +_0811E7B8: .4byte gPlayerParty +_0811E7BC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E7C8 @ =gPlayerParty + adds r0, r1 + movs r1, 0xC + b _0811EB26 + .align 2, 0 +_0811E7C8: .4byte gPlayerParty +_0811E7CC: + movs r6, 0 + add r2, sp, 0x58 + mov r9, r2 + add r0, sp, 0x60 + mov r10, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _0811E830 @ =gPlayerParty + adds r4, r1, r0 + mov r8, r9 +_0811E7E2: + adds r1, r6, 0 + adds r1, 0xD + adds r0, r4, 0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, 0 + adds r1, 0x11 + adds r0, r4, 0 + bl GetMonData + mov r2, r10 + adds r1, r2, r6 + strb r0, [r1] + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + cmp r6, 0x3 + ble _0811E7E2 + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E830 @ =gPlayerParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + mov r1, r9 + strb r0, [r1, 0xC] + mov r2, r9 + movs r6, 0 +_0811E820: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0xF + bls _0811E820 + b _0811EBEE + .align 2, 0 +_0811E830: .4byte gPlayerParty +_0811E834: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E84C @ =gPlayerParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x9 + b _0811EB26 + .align 2, 0 +_0811E84C: .4byte gPlayerParty +_0811E850: + movs r6, 0 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r2, _0811E888 @ =gPlayerParty + mov r8, r2 +_0811E85C: + adds r1, r6, 0 + adds r1, 0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + cmp r6, 0x3 + ble _0811E85C + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E888 @ =gPlayerParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + b _0811EBEE + .align 2, 0 +_0811E888: .4byte gPlayerParty +_0811E88C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E8A4 @ =gPlayerParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x8 + b _0811EBE6 + .align 2, 0 +_0811E8A4: .4byte gPlayerParty +_0811E8A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E8B4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x1 + b _0811E8C2 + .align 2, 0 +_0811E8B4: .4byte gPlayerParty +_0811E8B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E8E4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x19 +_0811E8C2: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + movs r6, 0x3 + b _0811EBEE + .align 2, 0 +_0811E8E4: .4byte gPlayerParty +_0811E8E8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E8F4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x1A + b _0811EBE6 + .align 2, 0 +_0811E8F4: .4byte gPlayerParty +_0811E8F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E904 @ =gPlayerParty + adds r0, r1 + movs r1, 0x1B + b _0811EBE6 + .align 2, 0 +_0811E904: .4byte gPlayerParty +_0811E908: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E914 @ =gPlayerParty + adds r0, r1 + movs r1, 0x1C + b _0811EBE6 + .align 2, 0 +_0811E914: .4byte gPlayerParty +_0811E918: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E924 @ =gPlayerParty + adds r0, r1 + movs r1, 0x1D + b _0811EBE6 + .align 2, 0 +_0811E924: .4byte gPlayerParty +_0811E928: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E934 @ =gPlayerParty + adds r0, r1 + movs r1, 0x1E + b _0811EBE6 + .align 2, 0 +_0811E934: .4byte gPlayerParty +_0811E938: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E944 @ =gPlayerParty + adds r0, r1 + movs r1, 0x1F + b _0811EBE6 + .align 2, 0 +_0811E944: .4byte gPlayerParty +_0811E948: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E954 @ =gPlayerParty + adds r0, r1 + movs r1, 0x20 + b _0811EBE6 + .align 2, 0 +_0811E954: .4byte gPlayerParty +_0811E958: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E964 @ =gPlayerParty + adds r0, r1 + movs r1, 0x22 + b _0811EBE6 + .align 2, 0 +_0811E964: .4byte gPlayerParty +_0811E968: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E974 @ =gPlayerParty + adds r0, r1 + movs r1, 0x23 + b _0811EBE6 + .align 2, 0 +_0811E974: .4byte gPlayerParty +_0811E978: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E984 @ =gPlayerParty + adds r0, r1 + movs r1, 0x24 + b _0811EBE6 + .align 2, 0 +_0811E984: .4byte gPlayerParty +_0811E988: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E994 @ =gPlayerParty + adds r0, r1 + movs r1, 0x25 + b _0811EBE6 + .align 2, 0 +_0811E994: .4byte gPlayerParty +_0811E998: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811E9A4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x26 + b _0811EBE6 + .align 2, 0 +_0811E9A4: .4byte gPlayerParty +_0811E9A8: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _0811E9F4 @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + strb r0, [r7, 0x1] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + strb r0, [r7, 0x2] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + strb r0, [r7, 0x3] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + strb r0, [r7, 0x4] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + strb r0, [r7, 0x5] + movs r6, 0x6 + b _0811EBEE + .align 2, 0 +_0811E9F4: .4byte gPlayerParty +_0811E9F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EA04 @ =gPlayerParty + adds r0, r1 + movs r1, 0x27 + b _0811EBE6 + .align 2, 0 +_0811EA04: .4byte gPlayerParty +_0811EA08: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EA14 @ =gPlayerParty + adds r0, r1 + movs r1, 0x28 + b _0811EBE6 + .align 2, 0 +_0811EA14: .4byte gPlayerParty +_0811EA18: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EA24 @ =gPlayerParty + adds r0, r1 + movs r1, 0x29 + b _0811EBE6 + .align 2, 0 +_0811EA24: .4byte gPlayerParty +_0811EA28: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EA34 @ =gPlayerParty + adds r0, r1 + movs r1, 0x2A + b _0811EBE6 + .align 2, 0 +_0811EA34: .4byte gPlayerParty +_0811EA38: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EA44 @ =gPlayerParty + adds r0, r1 + movs r1, 0x2B + b _0811EBE6 + .align 2, 0 +_0811EA44: .4byte gPlayerParty +_0811EA48: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EA54 @ =gPlayerParty + adds r0, r1 + movs r1, 0x2C + b _0811EBE6 + .align 2, 0 +_0811EA54: .4byte gPlayerParty +_0811EA58: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EA64 @ =gPlayerParty + adds r0, r1 + movs r1, 0 + b _0811EA82 + .align 2, 0 +_0811EA64: .4byte gPlayerParty +_0811EA68: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EA74 @ =gPlayerParty + adds r0, r1 + movs r1, 0x9 + b _0811EB26 + .align 2, 0 +_0811EA74: .4byte gPlayerParty +_0811EA78: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EAA8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x37 +_0811EA82: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + lsrs r0, r1, 24 + strb r0, [r7, 0x3] + movs r6, 0x4 + b _0811EBEE + .align 2, 0 +_0811EAA8: .4byte gPlayerParty +_0811EAAC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EAB8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x38 + b _0811EBE6 + .align 2, 0 +_0811EAB8: .4byte gPlayerParty +_0811EABC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EAC8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x39 + b _0811EB26 + .align 2, 0 +_0811EAC8: .4byte gPlayerParty +_0811EACC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EAD8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x3A + b _0811EB26 + .align 2, 0 +_0811EAD8: .4byte gPlayerParty +_0811EADC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EAE8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x3B + b _0811EB26 + .align 2, 0 +_0811EAE8: .4byte gPlayerParty +_0811EAEC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EAF8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x3C + b _0811EB26 + .align 2, 0 +_0811EAF8: .4byte gPlayerParty +_0811EAFC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EB08 @ =gPlayerParty + adds r0, r1 + movs r1, 0x3D + b _0811EB26 + .align 2, 0 +_0811EB08: .4byte gPlayerParty +_0811EB0C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EB18 @ =gPlayerParty + adds r0, r1 + movs r1, 0x3E + b _0811EB26 + .align 2, 0 +_0811EB18: .4byte gPlayerParty +_0811EB1C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EB38 @ =gPlayerParty + adds r0, r1 + movs r1, 0x3F +_0811EB26: + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + strb r0, [r7] + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r6, 0x2 + b _0811EBEE + .align 2, 0 +_0811EB38: .4byte gPlayerParty +_0811EB3C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EB48 @ =gPlayerParty + adds r0, r1 + movs r1, 0x16 + b _0811EBE6 + .align 2, 0 +_0811EB48: .4byte gPlayerParty +_0811EB4C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EB58 @ =gPlayerParty + adds r0, r1 + movs r1, 0x17 + b _0811EBE6 + .align 2, 0 +_0811EB58: .4byte gPlayerParty +_0811EB5C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EB68 @ =gPlayerParty + adds r0, r1 + movs r1, 0x18 + b _0811EBE6 + .align 2, 0 +_0811EB68: .4byte gPlayerParty +_0811EB6C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EB78 @ =gPlayerParty + adds r0, r1 + movs r1, 0x21 + b _0811EBE6 + .align 2, 0 +_0811EB78: .4byte gPlayerParty +_0811EB7C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EB88 @ =gPlayerParty + adds r0, r1 + movs r1, 0x2F + b _0811EBE6 + .align 2, 0 +_0811EB88: .4byte gPlayerParty +_0811EB8C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EB98 @ =gPlayerParty + adds r0, r1 + movs r1, 0x30 + b _0811EBE6 + .align 2, 0 +_0811EB98: .4byte gPlayerParty +_0811EB9C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EBA8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x32 + b _0811EBE6 + .align 2, 0 +_0811EBA8: .4byte gPlayerParty +_0811EBAC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EBB8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x33 + b _0811EBE6 + .align 2, 0 +_0811EBB8: .4byte gPlayerParty +_0811EBBC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EBC8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x34 + b _0811EBE6 + .align 2, 0 +_0811EBC8: .4byte gPlayerParty +_0811EBCC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EBD8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x35 + b _0811EBE6 + .align 2, 0 +_0811EBD8: .4byte gPlayerParty +_0811EBDC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EC00 @ =gPlayerParty + adds r0, r1 + movs r1, 0x36 +_0811EBE6: + bl GetMonData + strb r0, [r7] + movs r6, 0x1 +_0811EBEE: + adds r0, r6, 0 + add sp, 0x90 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0811EC00: .4byte gPlayerParty + thumb_func_end dp01_getattr_by_ch1_for_player_pokemon + + thumb_func_start sub_811EC04 +sub_811EC04: @ 811EC04 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_811EC04 + + thumb_func_start sub_811EC10 +sub_811EC10: @ 811EC10 + push {r4,r5,lr} + ldr r1, _0811EC34 @ =gUnknown_02023A60 + ldr r0, _0811EC38 @ =gUnknown_02024A60 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _0811EC40 + ldr r0, _0811EC3C @ =gUnknown_02024A6A + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + bl sub_811EC68 + b _0811EC5E + .align 2, 0 +_0811EC34: .4byte gUnknown_02023A60 +_0811EC38: .4byte gUnknown_02024A60 +_0811EC3C: .4byte gUnknown_02024A6A +_0811EC40: + ldrb r4, [r1] + movs r5, 0 +_0811EC44: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0811EC52 + adds r0, r5, 0 + bl sub_811EC68 +_0811EC52: + lsrs r4, 1 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _0811EC44 +_0811EC5E: + bl dp01_tbl3_exec_completed + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_811EC10 + + thumb_func_start sub_811EC68 +sub_811EC68: @ 811EC68 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x34 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0811ECA0 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 9 + ldr r2, _0811ECA4 @ =gUnknown_02023A63 + adds r3, r0, r2 + adds r6, r3, 0 + subs r1, r2, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r7, r2, 0 + cmp r0, 0x3B + bls _0811EC94 + bl _0811F62E +_0811EC94: + lsls r0, 2 + ldr r1, _0811ECA8 @ =_0811ECAC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811ECA0: .4byte gUnknown_02024A60 +_0811ECA4: .4byte gUnknown_02023A63 +_0811ECA8: .4byte _0811ECAC + .align 2, 0 +_0811ECAC: + .4byte _0811ED9C + .4byte _0811EF34 + .4byte _0811EF54 + .4byte _0811EF74 + .4byte _0811EFCC + .4byte _0811EFCC + .4byte _0811EFCC + .4byte _0811EFCC + .4byte _0811EFF4 + .4byte _0811F058 + .4byte _0811F058 + .4byte _0811F058 + .4byte _0811F058 + .4byte _0811F62E + .4byte _0811F62E + .4byte _0811F62E + .4byte _0811F62E + .4byte _0811F088 + .4byte _0811F0A8 + .4byte _0811F0C8 + .4byte _0811F0E8 + .4byte _0811F108 + .4byte _0811F128 + .4byte _0811F148 + .4byte _0811F168 + .4byte _0811F188 + .4byte _0811F1A8 + .4byte _0811F1C8 + .4byte _0811F1E8 + .4byte _0811F208 + .4byte _0811F228 + .4byte _0811F248 + .4byte _0811F2B8 + .4byte _0811F2D8 + .4byte _0811F2F8 + .4byte _0811F318 + .4byte _0811F338 + .4byte _0811F358 + .4byte _0811F378 + .4byte _0811F398 + .4byte _0811F3B8 + .4byte _0811F3D8 + .4byte _0811F3F8 + .4byte _0811F418 + .4byte _0811F438 + .4byte _0811F458 + .4byte _0811F478 + .4byte _0811F498 + .4byte _0811F4B8 + .4byte _0811F4D8 + .4byte _0811F4F8 + .4byte _0811F518 + .4byte _0811F538 + .4byte _0811F558 + .4byte _0811F578 + .4byte _0811F598 + .4byte _0811F5B8 + .4byte _0811F5D8 + .4byte _0811F5F8 + .4byte _0811F618 +_0811ED9C: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _0811EF30 @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + adds r2, r6, 0 + bl SetMonData + adds r2, r6, 0 + adds r2, 0x2E + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + movs r0, 0 + mov r8, r0 + movs r0, 0x3B + adds r0, r6 + mov r10, r0 + adds r0, r6, 0 + adds r0, 0x2B + str r0, [sp, 0x20] + adds r0, 0x19 + str r0, [sp, 0x28] + adds r0, 0x4 + str r0, [sp, 0x2C] + adds r0, 0x4 + str r0, [sp, 0x30] + subs r0, 0x22 + str r0, [sp, 0x1C] + subs r0, 0x2 + str r0, [sp, 0x18] + adds r0, 0x4 + str r0, [sp, 0x24] + adds r0, r6, 0x2 + str r0, [sp, 0x4] + adds r0, r6, 0x4 + str r0, [sp, 0x8] + adds r0, r6, 0x6 + str r0, [sp, 0xC] + adds r0, 0x2 + str r0, [sp, 0x10] + adds r0, 0x2 + str r0, [sp, 0x14] + mov r9, r4 + adds r7, r6, 0 + adds r7, 0x24 + adds r4, r6, 0 + adds r4, 0xC +_0811EE02: + mov r1, r8 + adds r1, 0xD + mov r0, r9 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + mov r0, r9 + adds r2, r7, 0 + bl SetMonData + adds r7, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _0811EE02 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _0811EF30 @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + mov r2, r10 + bl SetMonData + adds r0, r4, 0 + movs r1, 0x20 + ldr r2, [sp, 0x20] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x19 + ldr r2, [sp, 0x28] + bl SetMonData + ldrb r0, [r6, 0x14] + lsls r0, 27 + lsrs r0, 27 + mov r1, sp + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, 0x14] + lsls r0, 22 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, 0x15] + lsls r0, 25 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r6, 0x14] + lsls r0, 12 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2A + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, 0x16] + lsls r0, 23 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2B + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, 0x17] + lsls r0, 26 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2C + mov r2, sp + bl SetMonData + adds r0, r4, 0 + movs r1, 0 + ldr r2, [sp, 0x2C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x37 + ldr r2, [sp, 0x30] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x38 + ldr r2, [sp, 0x1C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x39 + ldr r2, [sp, 0x18] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3A + ldr r2, [sp, 0x24] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3B + ldr r2, [sp, 0x4] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3C + ldr r2, [sp, 0x8] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3D + ldr r2, [sp, 0xC] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3E + ldr r2, [sp, 0x10] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3F + ldr r2, [sp, 0x14] + bl SetMonData + b _0811F62E + .align 2, 0 +_0811EF30: .4byte gPlayerParty +_0811EF34: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EF4C @ =gPlayerParty + adds r0, r1 + ldr r1, _0811EF50 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0xB + bl SetMonData + b _0811F62E + .align 2, 0 +_0811EF4C: .4byte gPlayerParty +_0811EF50: .4byte gUnknown_02024A60 +_0811EF54: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EF6C @ =gPlayerParty + adds r0, r1 + ldr r1, _0811EF70 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0xC + bl SetMonData + b _0811F62E + .align 2, 0 +_0811EF6C: .4byte gPlayerParty +_0811EF70: .4byte gUnknown_02024A60 +_0811EF74: + movs r0, 0 + mov r8, r0 + movs r0, 0xC + adds r0, r3 + mov r9, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _0811EFC8 @ =gPlayerParty + adds r7, r1, r0 + adds r6, r3, 0 + adds r6, 0x8 + adds r4, r3, 0 +_0811EF8E: + mov r1, r8 + adds r1, 0xD + adds r0, r7, 0 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + adds r0, r7, 0 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _0811EF8E + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EFC8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x15 + mov r2, r9 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811EFC8: .4byte gPlayerParty +_0811EFCC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811EFE8 @ =gPlayerParty + adds r0, r1 + ldr r3, _0811EFEC @ =gUnknown_02023A60 + ldr r1, _0811EFF0 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x9 + b _0811F070 + .align 2, 0 +_0811EFE8: .4byte gPlayerParty +_0811EFEC: .4byte gUnknown_02023A60 +_0811EFF0: .4byte gUnknown_02024A60 +_0811EFF4: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _0811F050 @ =gPlayerParty + adds r4, r0 + ldr r5, _0811F054 @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r2, 9 + adds r2, r7 + adds r0, r4, 0 + movs r1, 0x11 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x12 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x13 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x14 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F050: .4byte gPlayerParty +_0811F054: .4byte gUnknown_02024A60 +_0811F058: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F07C @ =gPlayerParty + adds r0, r1 + ldr r3, _0811F080 @ =gUnknown_02023A60 + ldr r1, _0811F084 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x8 +_0811F070: + adds r3, 0x3 + adds r2, r3 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F07C: .4byte gPlayerParty +_0811F080: .4byte gUnknown_02023A60 +_0811F084: .4byte gUnknown_02024A60 +_0811F088: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F0A0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F0A4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F0A0: .4byte gPlayerParty +_0811F0A4: .4byte gUnknown_02024A60 +_0811F0A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F0C0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F0C4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x19 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F0C0: .4byte gPlayerParty +_0811F0C4: .4byte gUnknown_02024A60 +_0811F0C8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F0E0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F0E4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1A + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F0E0: .4byte gPlayerParty +_0811F0E4: .4byte gUnknown_02024A60 +_0811F0E8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F100 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F104 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1B + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F100: .4byte gPlayerParty +_0811F104: .4byte gUnknown_02024A60 +_0811F108: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F120 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F124 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1C + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F120: .4byte gPlayerParty +_0811F124: .4byte gUnknown_02024A60 +_0811F128: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F140 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F144 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1D + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F140: .4byte gPlayerParty +_0811F144: .4byte gUnknown_02024A60 +_0811F148: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F160 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F164 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1E + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F160: .4byte gPlayerParty +_0811F164: .4byte gUnknown_02024A60 +_0811F168: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F180 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F184 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1F + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F180: .4byte gPlayerParty +_0811F184: .4byte gUnknown_02024A60 +_0811F188: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F1A0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F1A4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x20 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F1A0: .4byte gPlayerParty +_0811F1A4: .4byte gUnknown_02024A60 +_0811F1A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F1C0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F1C4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x22 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F1C0: .4byte gPlayerParty +_0811F1C4: .4byte gUnknown_02024A60 +_0811F1C8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F1E0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F1E4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x23 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F1E0: .4byte gPlayerParty +_0811F1E4: .4byte gUnknown_02024A60 +_0811F1E8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F200 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F204 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x24 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F200: .4byte gPlayerParty +_0811F204: .4byte gUnknown_02024A60 +_0811F208: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F220 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F224 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x25 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F220: .4byte gPlayerParty +_0811F224: .4byte gUnknown_02024A60 +_0811F228: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F240 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F244 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x26 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F240: .4byte gPlayerParty +_0811F244: .4byte gUnknown_02024A60 +_0811F248: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _0811F2B0 @ =gPlayerParty + adds r4, r0 + ldr r5, _0811F2B4 @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r2, 9 + adds r2, r7 + adds r0, r4, 0 + movs r1, 0x27 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x28 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x29 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2A + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2B + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x5 + adds r2, r0 + adds r0, r4, 0 + b _0811F368 + .align 2, 0 +_0811F2B0: .4byte gPlayerParty +_0811F2B4: .4byte gUnknown_02024A60 +_0811F2B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F2D0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F2D4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x27 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F2D0: .4byte gPlayerParty +_0811F2D4: .4byte gUnknown_02024A60 +_0811F2D8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F2F0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F2F4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x28 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F2F0: .4byte gPlayerParty +_0811F2F4: .4byte gUnknown_02024A60 +_0811F2F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F310 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F314 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x29 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F310: .4byte gPlayerParty +_0811F314: .4byte gUnknown_02024A60 +_0811F318: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F330 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F334 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2A + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F330: .4byte gPlayerParty +_0811F334: .4byte gUnknown_02024A60 +_0811F338: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F350 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F354 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2B + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F350: .4byte gPlayerParty +_0811F354: .4byte gUnknown_02024A60 +_0811F358: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F370 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F374 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 +_0811F368: + movs r1, 0x2C + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F370: .4byte gPlayerParty +_0811F374: .4byte gUnknown_02024A60 +_0811F378: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F390 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F394 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F390: .4byte gPlayerParty +_0811F394: .4byte gUnknown_02024A60 +_0811F398: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F3B0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F3B4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x9 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F3B0: .4byte gPlayerParty +_0811F3B4: .4byte gUnknown_02024A60 +_0811F3B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F3D0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F3D4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x37 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F3D0: .4byte gPlayerParty +_0811F3D4: .4byte gUnknown_02024A60 +_0811F3D8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F3F0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F3F4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x38 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F3F0: .4byte gPlayerParty +_0811F3F4: .4byte gUnknown_02024A60 +_0811F3F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F410 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F414 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x39 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F410: .4byte gPlayerParty +_0811F414: .4byte gUnknown_02024A60 +_0811F418: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F430 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F434 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3A + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F430: .4byte gPlayerParty +_0811F434: .4byte gUnknown_02024A60 +_0811F438: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F450 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F454 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3B + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F450: .4byte gPlayerParty +_0811F454: .4byte gUnknown_02024A60 +_0811F458: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F470 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F474 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3C + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F470: .4byte gPlayerParty +_0811F474: .4byte gUnknown_02024A60 +_0811F478: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F490 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F494 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3D + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F490: .4byte gPlayerParty +_0811F494: .4byte gUnknown_02024A60 +_0811F498: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F4B0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F4B4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3E + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F4B0: .4byte gPlayerParty +_0811F4B4: .4byte gUnknown_02024A60 +_0811F4B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F4D0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F4D4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3F + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F4D0: .4byte gPlayerParty +_0811F4D4: .4byte gUnknown_02024A60 +_0811F4D8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F4F0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F4F4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x16 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F4F0: .4byte gPlayerParty +_0811F4F4: .4byte gUnknown_02024A60 +_0811F4F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F510 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F514 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x17 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F510: .4byte gPlayerParty +_0811F514: .4byte gUnknown_02024A60 +_0811F518: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F530 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F534 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x18 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F530: .4byte gPlayerParty +_0811F534: .4byte gUnknown_02024A60 +_0811F538: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F550 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F554 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x21 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F550: .4byte gPlayerParty +_0811F554: .4byte gUnknown_02024A60 +_0811F558: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F570 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F574 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2F + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F570: .4byte gPlayerParty +_0811F574: .4byte gUnknown_02024A60 +_0811F578: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F590 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F594 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x30 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F590: .4byte gPlayerParty +_0811F594: .4byte gUnknown_02024A60 +_0811F598: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F5B0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F5B4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x32 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F5B0: .4byte gPlayerParty +_0811F5B4: .4byte gUnknown_02024A60 +_0811F5B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F5D0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F5D4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x33 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F5D0: .4byte gPlayerParty +_0811F5D4: .4byte gUnknown_02024A60 +_0811F5D8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F5F0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F5F4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x34 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F5F0: .4byte gPlayerParty +_0811F5F4: .4byte gUnknown_02024A60 +_0811F5F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F610 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F614 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x35 + bl SetMonData + b _0811F62E + .align 2, 0 +_0811F610: .4byte gPlayerParty +_0811F614: .4byte gUnknown_02024A60 +_0811F618: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0811F658 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811F65C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x36 + bl SetMonData +_0811F62E: + ldr r2, _0811F660 @ =gUnknown_02024A6A + ldr r0, _0811F65C @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _0811F658 @ =gPlayerParty + adds r0, r2 + bl sub_80324F8 + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811F658: .4byte gPlayerParty +_0811F65C: .4byte gUnknown_02024A60 +_0811F660: .4byte gUnknown_02024A6A + thumb_func_end sub_811EC68 + + thumb_func_start sub_811F664 +sub_811F664: @ 811F664 + push {r4-r7,lr} + ldr r1, _0811F6C8 @ =gUnknown_02024A6A + ldr r7, _0811F6CC @ =gUnknown_02024A60 + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + adds r3, r1, 0 + muls r3, r0 + ldr r4, _0811F6D0 @ =gUnknown_02023A60 + lsls r2, 9 + adds r0, r4, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, _0811F6D4 @ =gPlayerParty + adds r0, r1 + adds r5, r3, r0 + movs r3, 0 + adds r0, r4, 0x2 + adds r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bcs _0811F6BC + adds r6, r4, 0 + adds r2, r7, 0 + adds r4, r0, 0 +_0811F69A: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, 9 + adds r0, 0x3 + adds r0, r3, r0 + adds r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r2] + lsls r0, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r3, r0 + bcc _0811F69A +_0811F6BC: + bl dp01_tbl3_exec_completed + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811F6C8: .4byte gUnknown_02024A6A +_0811F6CC: .4byte gUnknown_02024A60 +_0811F6D0: .4byte gUnknown_02023A60 +_0811F6D4: .4byte gPlayerParty + thumb_func_end sub_811F664 + + thumb_func_start sub_811F6D8 +sub_811F6D8: @ 811F6D8 + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, _0811F7CC @ =gUnknown_02024A6A + mov r8, r0 + ldr r6, _0811F7D0 @ =gUnknown_02024A60 + ldrb r1, [r6] + lsls r0, r1, 1 + add r0, r8 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, _0811F7D4 @ =gPlayerParty + adds r0, r4 + bl sub_80318FC + ldrb r0, [r6] + lsls r0, 1 + add r0, r8 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + movs r1, 0xB + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r6] + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl GetMonSpriteTemplate_803C56C + ldr r0, _0811F7D8 @ =gUnknown_02024E8C + mov r8, r0 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldrb r0, [r6] + bl sub_8077F68 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r6] + bl sub_8079E90 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r8 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, _0811F7DC @ =gUnknown_02024BE0 + ldrb r1, [r6] + adds r1, r4 + strb r0, [r1] + ldr r5, _0811F7E0 @ =gSprites + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _0811F7E4 @ =0x0000ff10 + strh r1, [r0, 0x24] + ldrb r2, [r6] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x2E] + ldrb r3, [r6] + adds r0, r3, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r2, [r6] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _0811F7E8 @ =gUnknown_02024E84 + adds r2, r1 + ldrb r1, [r2] + bl StartSpriteAnim + ldr r1, _0811F7EC @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _0811F7F0 @ =sub_811DDE8 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811F7CC: .4byte gUnknown_02024A6A +_0811F7D0: .4byte gUnknown_02024A60 +_0811F7D4: .4byte gPlayerParty +_0811F7D8: .4byte gUnknown_02024E8C +_0811F7DC: .4byte gUnknown_02024BE0 +_0811F7E0: .4byte gSprites +_0811F7E4: .4byte 0x0000ff10 +_0811F7E8: .4byte gUnknown_02024E84 +_0811F7EC: .4byte gUnknown_03004330 +_0811F7F0: .4byte sub_811DDE8 + thumb_func_end sub_811F6D8 + + thumb_func_start sub_811F7F4 +sub_811F7F4: @ 811F7F4 + push {r4-r6,lr} + ldr r5, _0811F84C @ =gUnknown_02024A60 + ldrb r0, [r5] + ldr r4, _0811F850 @ =gUnknown_02023A60 + lsls r1, r0, 9 + adds r6, r4, 0x2 + adds r1, r6 + ldrb r1, [r1] + bl sub_8032AA8 + ldr r2, _0811F854 @ =gUnknown_02024A6A + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r2 + lsls r0, 9 + adds r4, 0x1 + adds r0, r4 + ldrb r0, [r0] + strh r0, [r1] + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _0811F858 @ =gPlayerParty + adds r0, r2 + bl sub_80318FC + ldrb r0, [r5] + lsls r1, r0, 9 + adds r1, r6 + ldrb r1, [r1] + bl sub_811F864 + ldr r1, _0811F85C @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _0811F860 @ =sub_811E1BC + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811F84C: .4byte gUnknown_02024A60 +_0811F850: .4byte gUnknown_02023A60 +_0811F854: .4byte gUnknown_02024A6A +_0811F858: .4byte gPlayerParty +_0811F85C: .4byte gUnknown_03004330 +_0811F860: .4byte sub_811E1BC + thumb_func_end sub_811F7F4 + + thumb_func_start sub_811F864 +sub_811F864: @ 811F864 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_8032AA8 + ldr r0, _0811F9A8 @ =gUnknown_02024A6A + lsls r2, r6, 1 + adds r2, r0 + ldr r0, _0811F9AC @ =gUnknown_02023A60 + lsls r1, r6, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + strh r0, [r2] + ldrh r1, [r2] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0811F9B0 @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, _0811F9B4 @ =sub_80312F0 + bl object_new_hidden_with_callback + ldr r1, _0811F9B8 @ =gUnknown_0300434C + mov r9, r1 + add r9, r6 + mov r1, r9 + strb r0, [r1] + adds r0, r6, 0 + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl GetMonSpriteTemplate_803C56C + ldr r0, _0811F9BC @ =gUnknown_02024E8C + mov r10, r0 + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8077ABC + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + bl sub_8077F68 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + bl sub_8079E90 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r10 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, _0811F9C0 @ =gUnknown_02024BE0 + adds r4, r6, r4 + strb r0, [r4] + ldr r5, _0811F9C4 @ =gSprites + mov r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x30] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x2E] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x32] + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, r6, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _0811F9C8 @ =gUnknown_02024E84 + adds r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _0811F9CC @ =SpriteCallbackDummy + str r1, [r0] + movs r0, 0 + movs r1, 0xFF + bl sub_8046400 + mov r1, r9 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x2E] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811F9A8: .4byte gUnknown_02024A6A +_0811F9AC: .4byte gUnknown_02023A60 +_0811F9B0: .4byte gPlayerParty +_0811F9B4: .4byte sub_80312F0 +_0811F9B8: .4byte gUnknown_0300434C +_0811F9BC: .4byte gUnknown_02024E8C +_0811F9C0: .4byte gUnknown_02024BE0 +_0811F9C4: .4byte gSprites +_0811F9C8: .4byte gUnknown_02024E84 +_0811F9CC: .4byte SpriteCallbackDummy + thumb_func_end sub_811F864 + + thumb_func_start sub_811F9D0 +sub_811F9D0: @ 811F9D0 + push {r4-r6,lr} + ldr r1, _0811FA00 @ =gUnknown_02023A60 + ldr r6, _0811FA04 @ =gUnknown_02024A60 + ldrb r2, [r6] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r3, [r0] + cmp r3, 0 + bne _0811FA14 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r1, _0811FA08 @ =0x02017810 + adds r0, r1 + strb r3, [r0, 0x4] + ldr r1, _0811FA0C @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _0811FA10 @ =sub_811FA5C + str r1, [r0] + b _0811FA4A + .align 2, 0 +_0811FA00: .4byte gUnknown_02023A60 +_0811FA04: .4byte gUnknown_02024A60 +_0811FA08: .4byte 0x02017810 +_0811FA0C: .4byte gUnknown_03004330 +_0811FA10: .4byte sub_811FA5C +_0811FA14: + ldr r5, _0811FA50 @ =gUnknown_02024BE0 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _0811FA54 @ =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r1, _0811FA58 @ =gUnknown_03004340 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8043DB0 + bl dp01_tbl3_exec_completed +_0811FA4A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811FA50: .4byte gUnknown_02024BE0 +_0811FA54: .4byte gSprites +_0811FA58: .4byte gUnknown_03004340 + thumb_func_end sub_811F9D0 + + thumb_func_start sub_811FA5C +sub_811FA5C: @ 811FA5C + push {r4,r5,lr} + ldr r5, _0811FA78 @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r4, _0811FA7C @ =0x02017810 + adds r3, r0, r4 + ldrb r0, [r3, 0x4] + cmp r0, 0 + beq _0811FA80 + cmp r0, 0x1 + beq _0811FAAC + b _0811FAD4 + .align 2, 0 +_0811FA78: .4byte gUnknown_02024A60 +_0811FA7C: .4byte 0x02017810 +_0811FA80: + lsls r0, r2, 2 + adds r1, r4, 0 + subs r1, 0x10 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0811FA9C + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_0811FA9C: + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _0811FAD4 +_0811FAAC: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0811FAD4 + strb r0, [r3, 0x4] + ldrb r2, [r5] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x1 + bl move_anim_start_t4 + ldr r1, _0811FADC @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _0811FAE0 @ =sub_811DF34 + str r1, [r0] +_0811FAD4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811FADC: .4byte gUnknown_03004330 +_0811FAE0: .4byte sub_811DF34 + thumb_func_end sub_811FA5C + + thumb_func_start sub_811FAE4 +sub_811FAE4: @ 811FAE4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, _0811FB14 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0811FB24 + ldr r6, _0811FB18 @ =gUnknown_02024A60 + ldrb r0, [r6] + bl battle_get_per_side_status + movs r1, 0x2 + ands r1, r0 + ldr r5, _0811FB1C @ =0x0000fff0 + cmp r1, 0 + beq _0811FB0A + movs r5, 0x10 +_0811FB0A: + ldr r4, _0811FB20 @ =gLinkPlayers + ldrb r0, [r6] + bl sub_803FC34 + b _0811FB34 + .align 2, 0 +_0811FB14: .4byte gUnknown_020239F8 +_0811FB18: .4byte gUnknown_02024A60 +_0811FB1C: .4byte 0x0000fff0 +_0811FB20: .4byte gLinkPlayers +_0811FB24: + movs r5, 0 + ldr r4, _0811FC08 @ =gLinkPlayers + bl GetMultiplayerId + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 +_0811FB34: + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r4, [r1, 0x13] + ldr r6, _0811FC0C @ =gUnknown_02024A60 + ldrb r1, [r6] + adds r0, r4, 0 + bl sub_8031AF4 + ldrb r0, [r6] + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl GetMonSpriteTemplate_803C5A0 + ldr r0, _0811FC10 @ =gUnknown_02024E8C + mov r8, r0 + lsls r5, 16 + movs r0, 0xA0 + lsls r0, 15 + adds r5, r0 + asrs r5, 16 + ldr r0, _0811FC14 @ =gTrainerBackPicCoords + lsls r4, 2 + adds r4, r0 + ldrb r0, [r4] + movs r4, 0x8 + subs r4, r0 + lsls r4, 18 + movs r0, 0xA0 + lsls r0, 15 + adds r4, r0 + asrs r4, 16 + ldrb r0, [r6] + bl sub_8079E90 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r8 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r5, _0811FC18 @ =gUnknown_02024BE0 + ldrb r1, [r6] + adds r1, r5 + strb r0, [r1] + ldr r4, _0811FC1C @ =gSprites + ldrb r3, [r6] + adds r0, r3, r5 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xF0 + strh r1, [r0, 0x24] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _0811FC20 @ =0x0000fffe + strh r1, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _0811FC24 @ =sub_80313A0 + str r1, [r0] + ldr r1, _0811FC28 @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _0811FC2C @ =sub_811DAE4 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811FC08: .4byte gLinkPlayers +_0811FC0C: .4byte gUnknown_02024A60 +_0811FC10: .4byte gUnknown_02024E8C +_0811FC14: .4byte gTrainerBackPicCoords +_0811FC18: .4byte gUnknown_02024BE0 +_0811FC1C: .4byte gSprites +_0811FC20: .4byte 0x0000fffe +_0811FC24: .4byte sub_80313A0 +_0811FC28: .4byte gUnknown_03004330 +_0811FC2C: .4byte sub_811DAE4 + thumb_func_end sub_811FAE4 + + thumb_func_start sub_811FC30 +sub_811FC30: @ 811FC30 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_811FC30 + + thumb_func_start sub_811FC3C +sub_811FC3C: @ 811FC3C + push {r4-r6,lr} + ldr r6, _0811FCC8 @ =gUnknown_02024BE0 + ldr r4, _0811FCCC @ =gUnknown_02024A60 + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _0811FCD0 @ =gSprites + adds r0, r5 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x23 + strh r1, [r0, 0x2E] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _0811FCD4 @ =0x0000ffd8 + strh r1, [r0, 0x32] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _0811FCD8 @ =sub_8078B34 + str r1, [r0] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _0811FCDC @ =SpriteCallbackDummy + bl oamt_set_x3A_32 + ldr r1, _0811FCE0 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0811FCE4 @ =sub_811DB1C + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811FCC8: .4byte gUnknown_02024BE0 +_0811FCCC: .4byte gUnknown_02024A60 +_0811FCD0: .4byte gSprites +_0811FCD4: .4byte 0x0000ffd8 +_0811FCD8: .4byte sub_8078B34 +_0811FCDC: .4byte SpriteCallbackDummy +_0811FCE0: .4byte gUnknown_03004330 +_0811FCE4: .4byte sub_811DB1C + thumb_func_end sub_811FC3C + + thumb_func_start sub_811FCE8 +sub_811FCE8: @ 811FCE8 + push {r4,r5,lr} + ldr r5, _0811FD2C @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r4, _0811FD30 @ =0x02017810 + adds r3, r0, r4 + ldrb r0, [r3, 0x4] + cmp r0, 0 + bne _0811FD34 + lsls r0, r2, 2 + adds r1, r4, 0 + subs r1, 0x10 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0811FD1A + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_0811FD1A: + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _0811FDAA + .align 2, 0 +_0811FD2C: .4byte gUnknown_02024A60 +_0811FD30: .4byte 0x02017810 +_0811FD34: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0811FDAA + strb r4, [r3, 0x4] + ldr r2, _0811FDB0 @ =gUnknown_02024A6A + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _0811FDB4 @ =gPlayerParty + adds r0, r2 + bl sub_80324F8 + movs r1, 0x40 + negs r1, r1 + movs r0, 0x10 + bl PlaySE12WithPanning + ldr r2, _0811FDB8 @ =gSprites + ldr r3, _0811FDBC @ =gUnknown_02024BE0 + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r4, [r0, 0x30] + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x5 + strh r1, [r0, 0x32] + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0811FDC0 @ =sub_80105EC + str r1, [r0] + ldr r1, _0811FDC4 @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _0811FDC8 @ =sub_811DE98 + str r1, [r0] +_0811FDAA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811FDB0: .4byte gUnknown_02024A6A +_0811FDB4: .4byte gPlayerParty +_0811FDB8: .4byte gSprites +_0811FDBC: .4byte gUnknown_02024BE0 +_0811FDC0: .4byte sub_80105EC +_0811FDC4: .4byte gUnknown_03004330 +_0811FDC8: .4byte sub_811DE98 + thumb_func_end sub_811FCE8 + + thumb_func_start sub_811FDCC +sub_811FDCC: @ 811FDCC + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_811FDCC + + thumb_func_start sub_811FDD8 +sub_811FDD8: @ 811FDD8 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_811FDD8 + + thumb_func_start sub_811FDE4 +sub_811FDE4: @ 811FDE4 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_811FDE4 + + thumb_func_start sub_811FDF0 +sub_811FDF0: @ 811FDF0 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_811FDF0 + + thumb_func_start sub_811FDFC +sub_811FDFC: @ 811FDFC + push {r4-r6,lr} + ldr r6, _0811FEE0 @ =gUnknown_02024A60 + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + beq _0811FE0E + b _0811FF1E +_0811FE0E: + ldr r0, _0811FEE4 @ =gUnknown_02023A60 + mov r12, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r0, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, r12 + adds r1, 0x2 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + ldr r5, _0811FEE8 @ =gUnknown_0202F7C4 + mov r1, r12 + adds r1, 0x3 + adds r2, r1 + ldrb r1, [r2] + strb r1, [r5] + ldr r4, _0811FEEC @ =gUnknown_0202F7BC + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x4 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x5 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r4, _0811FEF0 @ =gUnknown_0202F7B8 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x6 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x7 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r3, r1 + mov r1, r12 + adds r1, 0x8 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 16 + orrs r3, r1 + mov r1, r12 + adds r1, 0x9 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 24 + orrs r3, r1 + str r3, [r4] + ldr r3, _0811FEF4 @ =gUnknown_0202F7BE + ldrb r1, [r6] + lsls r1, 9 + mov r2, r12 + adds r2, 0xA + adds r1, r2 + ldrb r1, [r1] + strb r1, [r3] + ldr r4, _0811FEF8 @ =gUnknown_0202F7C0 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0xC + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0xD + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r3, _0811FEFC @ =gUnknown_0202F7B4 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x10 + adds r2, r1 + str r2, [r3] + ldr r3, _0811FF00 @ =gUnknown_02024E70 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r3 + ldr r2, [r2] + str r2, [r1] + ldrb r1, [r5] + bl sub_8031720 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _0811FF04 + bl dp01_tbl3_exec_completed + b _0811FF1E + .align 2, 0 +_0811FEE0: .4byte gUnknown_02024A60 +_0811FEE4: .4byte gUnknown_02023A60 +_0811FEE8: .4byte gUnknown_0202F7C4 +_0811FEEC: .4byte gUnknown_0202F7BC +_0811FEF0: .4byte gUnknown_0202F7B8 +_0811FEF4: .4byte gUnknown_0202F7BE +_0811FEF8: .4byte gUnknown_0202F7C0 +_0811FEFC: .4byte gUnknown_0202F7B4 +_0811FF00: .4byte gUnknown_02024E70 +_0811FF04: + ldrb r1, [r6] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _0811FF24 @ =0x02017810 + adds r0, r1 + strb r2, [r0, 0x4] + ldr r1, _0811FF28 @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _0811FF2C @ =sub_811FF30 + str r1, [r0] +_0811FF1E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811FF24: .4byte 0x02017810 +_0811FF28: .4byte gUnknown_03004330 +_0811FF2C: .4byte sub_811FF30 + thumb_func_end sub_811FDFC + + thumb_func_start sub_811FF30 +sub_811FF30: @ 811FF30 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r2, _0811FF74 @ =gUnknown_02023A60 + ldr r5, _0811FF78 @ =gUnknown_02024A60 + ldrb r3, [r5] + lsls r1, r3, 9 + adds r0, r2, 0x1 + mov r9, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r6, r2, 0x2 + mov r8, r6 + adds r0, r1, r6 + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + adds r2, 0xB + adds r1, r2 + ldrb r7, [r1] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + ldr r6, _0811FF7C @ =0x02017810 + adds r0, r6 + ldrb r2, [r0, 0x4] + cmp r2, 0x1 + beq _0811FFBE + cmp r2, 0x1 + bgt _0811FF80 + cmp r2, 0 + beq _0811FF8A + b _08120088 + .align 2, 0 +_0811FF74: .4byte gUnknown_02023A60 +_0811FF78: .4byte gUnknown_02024A60 +_0811FF7C: .4byte 0x02017810 +_0811FF80: + cmp r2, 0x2 + beq _0811FFE4 + cmp r2, 0x3 + beq _08120050 + b _08120088 +_0811FF8A: + lsls r1, r3, 2 + adds r0, r6, 0 + subs r0, 0x10 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0xC + ands r0, r2 + cmp r0, 0x4 + bne _0811FFAE + movs r0, 0x8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r5] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_0811FFAE: + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _08120088 +_0811FFBE: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08120088 + movs r0, 0 + bl sub_80326EC + adds r0, r4, 0 + bl move_anim_start_t1 + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + movs r0, 0x2 + strb r0, [r1, 0x4] + b _08120088 +_0811FFE4: + ldr r0, _08120040 @ =gUnknown_0202F7AC + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08120044 @ =gUnknown_0202F7B1 + ldrb r0, [r0] + cmp r0, 0 + bne _08120088 + movs r0, 0x1 + bl sub_80326EC + ldrb r2, [r5] + lsls r0, r2, 2 + adds r4, r6, 0 + subs r4, 0x10 + adds r0, r4 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0812002C + cmp r7, 0x1 + bhi _0812002C + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl move_anim_start_t4 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r4 + ldrb r2, [r0] + movs r1, 0x9 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_0812002C: + ldr r0, _08120048 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _0812004C @ =0x02017810 + adds r0, r1 + movs r1, 0x3 + strb r1, [r0, 0x4] + b _08120088 + .align 2, 0 +_08120040: .4byte gUnknown_0202F7AC +_08120044: .4byte gUnknown_0202F7B1 +_08120048: .4byte gUnknown_02024A60 +_0812004C: .4byte 0x02017810 +_08120050: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08120088 + bl sub_8031F24 + ldrb r0, [r5] + lsls r2, r0, 9 + mov r3, r9 + adds r1, r2, r3 + ldrb r1, [r1] + add r2, r8 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + bl sub_80324BC + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strb r4, [r0, 0x4] + bl dp01_tbl3_exec_completed +_08120088: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_811FF30 + + thumb_func_start sub_8120094 +sub_8120094: @ 8120094 + push {r4,lr} + sub sp, 0x4 + ldr r0, _081200D8 @ =gUnknown_030042A4 + movs r1, 0 + strh r1, [r0] + ldr r0, _081200DC @ =gUnknown_030042A0 + strh r1, [r0] + ldr r4, _081200E0 @ =gUnknown_02024A60 + ldrb r0, [r4] + lsls r0, 9 + ldr r1, _081200E4 @ =gUnknown_02023A62 + adds r0, r1 + ldrh r0, [r0] + bl sub_8120AA8 + ldr r0, _081200E8 @ =gUnknown_03004210 + ldr r1, _081200EC @ =gUnknown_020238CC + movs r2, 0xF + str r2, [sp] + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r1, _081200F0 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _081200F4 @ =sub_811DFA0 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081200D8: .4byte gUnknown_030042A4 +_081200DC: .4byte gUnknown_030042A0 +_081200E0: .4byte gUnknown_02024A60 +_081200E4: .4byte gUnknown_02023A62 +_081200E8: .4byte gUnknown_03004210 +_081200EC: .4byte gUnknown_020238CC +_081200F0: .4byte gUnknown_03004330 +_081200F4: .4byte sub_811DFA0 + thumb_func_end sub_8120094 + + thumb_func_start sub_81200F8 +sub_81200F8: @ 81200F8 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_81200F8 + + thumb_func_start sub_8120104 +sub_8120104: @ 8120104 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8120104 + + thumb_func_start sub_8120110 +sub_8120110: @ 8120110 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8120110 + + thumb_func_start sub_812011C +sub_812011C: @ 812011C + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_812011C + + thumb_func_start sub_8120128 +sub_8120128: @ 8120128 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8120128 + + thumb_func_start sub_8120134 +sub_8120134: @ 8120134 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8120134 + + thumb_func_start sub_8120140 +sub_8120140: @ 8120140 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8120140 + + thumb_func_start sub_812014C +sub_812014C: @ 812014C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r0, 0 + bl load_gfxc_health_bar + ldr r3, _081201C4 @ =gUnknown_02023A60 + ldr r0, _081201C8 @ =gUnknown_02024A60 + mov r9, r0 + ldrb r4, [r0] + lsls r2, r4, 9 + adds r0, r3, 0x2 + adds r0, r2, r0 + ldrb r1, [r0] + adds r3, 0x3 + adds r2, r3 + ldrb r0, [r2] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + asrs r7, r1, 16 + ldr r0, _081201CC @ =0x00007fff + cmp r7, r0 + beq _081201DC + ldr r6, _081201D0 @ =gUnknown_02024A6A + lsls r0, r4, 1 + adds r0, r6 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, _081201D4 @ =gPlayerParty + adds r0, r4 + movs r1, 0x3A + bl GetMonData + mov r8, r0 + mov r1, r9 + ldrb r0, [r1] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + movs r1, 0x39 + bl GetMonData + adds r3, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, _081201D8 @ =gUnknown_03004340 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl sub_8043D84 + b _08120206 + .align 2, 0 +_081201C4: .4byte gUnknown_02023A60 +_081201C8: .4byte gUnknown_02024A60 +_081201CC: .4byte 0x00007fff +_081201D0: .4byte gUnknown_02024A6A +_081201D4: .4byte gPlayerParty +_081201D8: .4byte gUnknown_03004340 +_081201DC: + ldr r1, _08120224 @ =gUnknown_02024A6A + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08120228 @ =gPlayerParty + adds r0, r1 + movs r1, 0x3A + bl GetMonData + adds r2, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, _0812022C @ =gUnknown_03004340 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + movs r3, 0 + bl sub_8043D84 +_08120206: + ldr r1, _08120230 @ =gUnknown_03004330 + ldr r0, _08120234 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08120238 @ =bx_t3_healthbar_update + str r1, [r0] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08120224: .4byte gUnknown_02024A6A +_08120228: .4byte gPlayerParty +_0812022C: .4byte gUnknown_03004340 +_08120230: .4byte gUnknown_03004330 +_08120234: .4byte gUnknown_02024A60 +_08120238: .4byte bx_t3_healthbar_update + thumb_func_end sub_812014C + + thumb_func_start sub_812023C +sub_812023C: @ 812023C + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_812023C + + thumb_func_start sub_8120248 +sub_8120248: @ 8120248 + push {r4,lr} + ldr r4, _081202A0 @ =gUnknown_02024A60 + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _08120298 + ldr r0, _081202A4 @ =gUnknown_03004340 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _081202A8 @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _081202AC @ =gPlayerParty + adds r1, r2 + movs r2, 0x9 + bl sub_8045A5C + ldrb r0, [r4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r0, _081202B0 @ =0x02017810 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, _081202B4 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _081202B8 @ =sub_811E38C + str r1, [r0] +_08120298: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081202A0: .4byte gUnknown_02024A60 +_081202A4: .4byte gUnknown_03004340 +_081202A8: .4byte gUnknown_02024A6A +_081202AC: .4byte gPlayerParty +_081202B0: .4byte 0x02017810 +_081202B4: .4byte gUnknown_03004330 +_081202B8: .4byte sub_811E38C + thumb_func_end sub_8120248 + + thumb_func_start sub_81202BC +sub_81202BC: @ 81202BC + push {r4,r5,lr} + ldr r5, _08120314 @ =gUnknown_02024A60 + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _0812030C + ldr r4, _08120318 @ =gUnknown_02023A60 + ldrb r3, [r5] + lsls r3, 9 + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + adds r2, r4, 0x4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 16 + orrs r1, r2 + adds r4, 0x5 + adds r3, r4 + ldrb r2, [r3] + lsls r2, 24 + orrs r1, r2 + bl move_anim_start_t2_for_situation + ldr r1, _0812031C @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08120320 @ =sub_811E38C + str r1, [r0] +_0812030C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08120314: .4byte gUnknown_02024A60 +_08120318: .4byte gUnknown_02023A60 +_0812031C: .4byte gUnknown_03004330 +_08120320: .4byte sub_811E38C + thumb_func_end sub_81202BC + + thumb_func_start sub_8120324 +sub_8120324: @ 8120324 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8120324 + + thumb_func_start sub_8120330 +sub_8120330: @ 8120330 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8120330 + + thumb_func_start sub_812033C +sub_812033C: @ 812033C + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_812033C + + thumb_func_start sub_8120348 +sub_8120348: @ 8120348 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8120348 + + thumb_func_start sub_8120354 +sub_8120354: @ 8120354 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8120354 + + thumb_func_start sub_8120360 +sub_8120360: @ 8120360 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8120360 + + thumb_func_start sub_812036C +sub_812036C: @ 812036C + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_812036C + + thumb_func_start sub_8120378 +sub_8120378: @ 8120378 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8120378 + + thumb_func_start sub_8120384 +sub_8120384: @ 8120384 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8120384 + + thumb_func_start sub_8120390 +sub_8120390: @ 8120390 + push {lr} + ldr r2, _081203A8 @ =gUnknown_020238C8 + ldrb r1, [r2] + movs r0, 0x80 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_081203A8: .4byte gUnknown_020238C8 + thumb_func_end sub_8120390 + + thumb_func_start sub_81203AC +sub_81203AC: @ 81203AC + push {lr} + ldr r3, _081203D8 @ =gUnknown_020238C8 + ldr r1, _081203DC @ =gUnknown_02023A60 + ldr r0, _081203E0 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x7F + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_081203D8: .4byte gUnknown_020238C8 +_081203DC: .4byte gUnknown_02023A60 +_081203E0: .4byte gUnknown_02024A60 + thumb_func_end sub_81203AC + + thumb_func_start sub_81203E4 +sub_81203E4: @ 81203E4 + push {lr} + ldr r2, _081203F8 @ =gUnknown_020238C8 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_081203F8: .4byte gUnknown_020238C8 + thumb_func_end sub_81203E4 + + thumb_func_start sub_81203FC +sub_81203FC: @ 81203FC + push {lr} + ldr r3, _08120420 @ =gUnknown_020238C8 + ldr r1, [r3] + lsls r1, 24 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + lsls r1, 7 + ldrb r2, [r3] + movs r0, 0x7F + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_08120420: .4byte gUnknown_020238C8 + thumb_func_end sub_81203FC + + thumb_func_start dp01t_29_3_blink +dp01t_29_3_blink: @ 8120424 + push {r4,lr} + ldr r3, _0812044C @ =gSprites + ldr r2, _08120450 @ =gUnknown_02024BE0 + ldr r4, _08120454 @ =gUnknown_02024A60 + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _08120458 + bl dp01_tbl3_exec_completed + b _08120482 + .align 2, 0 +_0812044C: .4byte gSprites +_08120450: .4byte gUnknown_02024BE0 +_08120454: .4byte gUnknown_02024A60 +_08120458: + ldr r1, _08120488 @ =gUnknown_02024E6D + movs r0, 0x1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x30] + ldrb r0, [r4] + bl sub_8047858 + ldr r1, _0812048C @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08120490 @ =bx_blink_t3 + str r1, [r0] +_08120482: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08120488: .4byte gUnknown_02024E6D +_0812048C: .4byte gUnknown_03004330 +_08120490: .4byte bx_blink_t3 + thumb_func_end dp01t_29_3_blink + + thumb_func_start sub_8120494 +sub_8120494: @ 8120494 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8120494 + + thumb_func_start sub_81204A0 +sub_81204A0: @ 81204A0 + push {r4,lr} + ldr r4, _081204DC @ =gUnknown_02024A60 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + movs r3, 0x3F + cmp r0, 0 + bne _081204B4 + movs r3, 0xC0 +_081204B4: + ldr r2, _081204E0 @ =gUnknown_02023A60 + ldrb r1, [r4] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + lsls r1, r3, 24 + asrs r1, 24 + bl PlaySE12WithPanning + bl dp01_tbl3_exec_completed + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081204DC: .4byte gUnknown_02024A60 +_081204E0: .4byte gUnknown_02023A60 + thumb_func_end sub_81204A0 + + thumb_func_start sub_81204E4 +sub_81204E4: @ 81204E4 + push {lr} + ldr r2, _0812050C @ =gUnknown_02023A60 + ldr r0, _08120510 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayFanfare + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_0812050C: .4byte gUnknown_02023A60 +_08120510: .4byte gUnknown_02024A60 + thumb_func_end sub_81204E4 + + thumb_func_start sub_8120514 +sub_8120514: @ 8120514 + push {lr} + ldr r1, _08120548 @ =gUnknown_02024A6A + ldr r0, _0812054C @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08120550 @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x19 + negs r1, r1 + movs r2, 0x5 + bl PlayCry3 + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_08120548: .4byte gUnknown_02024A6A +_0812054C: .4byte gUnknown_02024A60 +_08120550: .4byte gPlayerParty + thumb_func_end sub_8120514 + + thumb_func_start dp01t_2E_3_battle_intro +dp01t_2E_3_battle_intro: @ 8120554 + push {lr} + ldr r1, _0812057C @ =gUnknown_02023A60 + ldr r0, _08120580 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + bl sub_80E43C0 + ldr r2, _08120584 @ =gUnknown_02024DE8 + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_0812057C: .4byte gUnknown_02023A60 +_08120580: .4byte gUnknown_02024A60 +_08120584: .4byte gUnknown_02024DE8 + thumb_func_end dp01t_2E_3_battle_intro + + thumb_func_start sub_8120588 +sub_8120588: @ 8120588 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r6, _081206DC @ =gUnknown_02024BE0 + ldr r7, _081206E0 @ =gUnknown_02024A60 + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _081206E4 @ =gSprites + adds r0, r5 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x32 + strh r1, [r0, 0x2E] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _081206E8 @ =0x0000ffd8 + strh r1, [r0, 0x32] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _081206EC @ =sub_8078B34 + str r1, [r0] + ldrb r2, [r7] + adds r0, r2, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x38] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _081206F0 @ =sub_8030E38 + bl oamt_set_x3A_32 + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, _081206F4 @ =0x0000d6f9 + bl AllocSpritePalette + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _081206F8 @ =gTrainerBackPicPaletteTable + mov r8, r0 + ldrb r0, [r7] + bl sub_803FC34 + ldr r2, _081206FC @ =gLinkPlayers + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x13] + lsls r0, 3 + add r0, r8 + ldr r0, [r0] + lsls r4, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r4, r2 + movs r2, 0x20 + bl LoadCompressedPalette + ldrb r0, [r7] + adds r0, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r4 + strb r0, [r1, 0x5] + ldr r0, _08120700 @ =sub_812071C + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08120704 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + ldrb r0, [r7] + strh r0, [r1, 0x8] + ldrb r3, [r7] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + ldr r2, _08120708 @ =0x02017810 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081206BA + ldr r0, _0812070C @ =gUnknown_02024E68 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldr r1, _08120710 @ =sub_8044CA0 + str r1, [r0] +_081206BA: + adds r2, 0x30 + ldrb r0, [r2, 0x9] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x9] + ldr r1, _08120714 @ =gUnknown_03004330 + ldrb r0, [r7] + lsls r0, 2 + adds r0, r1 + ldr r1, _08120718 @ =nullsub_74 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081206DC: .4byte gUnknown_02024BE0 +_081206E0: .4byte gUnknown_02024A60 +_081206E4: .4byte gSprites +_081206E8: .4byte 0x0000ffd8 +_081206EC: .4byte sub_8078B34 +_081206F0: .4byte sub_8030E38 +_081206F4: .4byte 0x0000d6f9 +_081206F8: .4byte gTrainerBackPicPaletteTable +_081206FC: .4byte gLinkPlayers +_08120700: .4byte sub_812071C +_08120704: .4byte gTasks +_08120708: .4byte 0x02017810 +_0812070C: .4byte gUnknown_02024E68 +_08120710: .4byte sub_8044CA0 +_08120714: .4byte gUnknown_03004330 +_08120718: .4byte nullsub_74 + thumb_func_end sub_8120588 + + thumb_func_start sub_812071C +sub_812071C: @ 812071C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, _08120744 @ =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0xA] + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0x17 + bgt _08120748 + adds r0, r2, 0x1 + strh r0, [r1, 0xA] + b _08120804 + .align 2, 0 +_08120744: .4byte gTasks +_08120748: + ldr r7, _08120788 @ =gUnknown_02024A60 + ldrb r0, [r7] + mov r9, r0 + ldrh r0, [r1, 0x8] + strb r0, [r7] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08120768 + ldr r0, _0812078C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08120798 +_08120768: + ldr r0, _08120790 @ =gUnknown_02023A60 + ldrb r1, [r7] + lsls r2, r1, 9 + adds r0, 0x1 + adds r2, r0 + ldr r0, _08120794 @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, 0 + bl sub_811F864 + b _081207EC + .align 2, 0 +_08120788: .4byte gUnknown_02024A60 +_0812078C: .4byte gUnknown_020239F8 +_08120790: .4byte gUnknown_02023A60 +_08120794: .4byte gUnknown_02024A6A +_08120798: + ldr r4, _08120810 @ =gUnknown_02023A60 + ldrb r0, [r7] + lsls r1, r0, 9 + adds r4, 0x1 + adds r1, r4 + ldr r5, _08120814 @ =gUnknown_02024A6A + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_811F864 + ldrb r0, [r7] + movs r6, 0x2 + eors r0, r6 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, 9 + adds r1, r4 + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r1, [r7] + lsls r0, r1, 1 + adds r0, r5 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _08120818 @ =gPlayerParty + adds r0, r2 + bl sub_80318FC + ldrb r0, [r7] + movs r1, 0 + bl sub_811F864 + ldrb r0, [r7] + eors r0, r6 + strb r0, [r7] +_081207EC: + ldr r1, _0812081C @ =gUnknown_03004330 + ldr r2, _08120820 @ =gUnknown_02024A60 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _08120824 @ =sub_811DCA0 + str r1, [r0] + mov r3, r9 + strb r3, [r2] + mov r0, r8 + bl DestroyTask +_08120804: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08120810: .4byte gUnknown_02023A60 +_08120814: .4byte gUnknown_02024A6A +_08120818: .4byte gPlayerParty +_0812081C: .4byte gUnknown_03004330 +_08120820: .4byte gUnknown_02024A60 +_08120824: .4byte sub_811DCA0 + thumb_func_end sub_812071C + + thumb_func_start dp01t_30_3_80EB11C +dp01t_30_3_80EB11C: @ 8120828 + push {r4-r6,lr} + ldr r1, _08120850 @ =gUnknown_02023A60 + ldr r0, _08120854 @ =gUnknown_02024A60 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08120858 + adds r0, r2, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08120858 + bl dp01_tbl3_exec_completed + b _081208C0 + .align 2, 0 +_08120850: .4byte gUnknown_02023A60 +_08120854: .4byte gUnknown_02024A60 +_08120858: + ldr r5, _081208C8 @ =gUnknown_02024A60 + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r6, _081208CC @ =0x02017810 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r5] + lsls r3, r0, 9 + ldr r4, _081208D0 @ =gUnknown_02023A64 + adds r1, r3, r4 + subs r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, 0x2 + adds r3, r4 + ldrb r3, [r3] + bl sub_8044804 + ldr r2, _081208D4 @ =gUnknown_02024E68 + ldrb r1, [r5] + adds r1, r2 + movs r2, 0 + strb r0, [r1] + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strb r2, [r0, 0x5] + ldrb r1, [r5] + lsls r0, r1, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _081208B4 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x5D + strb r1, [r0, 0x5] +_081208B4: + ldr r0, _081208D8 @ =gUnknown_03004330 + ldrb r1, [r5] + lsls r1, 2 + adds r1, r0 + ldr r0, _081208DC @ =sub_81208E0 + str r0, [r1] +_081208C0: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081208C8: .4byte gUnknown_02024A60 +_081208CC: .4byte 0x02017810 +_081208D0: .4byte gUnknown_02023A64 +_081208D4: .4byte gUnknown_02024E68 +_081208D8: .4byte gUnknown_03004330 +_081208DC: .4byte sub_81208E0 + thumb_func_end dp01t_30_3_80EB11C + + thumb_func_start sub_81208E0 +sub_81208E0: @ 81208E0 + push {r4,lr} + ldr r4, _08120918 @ =gUnknown_02024A60 + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r3, _0812091C @ =0x02017810 + adds r0, r3 + ldrb r1, [r0, 0x5] + adds r2, r1, 0x1 + strb r2, [r0, 0x5] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x5C + bls _08120910 + ldrb r0, [r4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + movs r0, 0 + strb r0, [r1, 0x5] + bl dp01_tbl3_exec_completed +_08120910: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08120918: .4byte gUnknown_02024A60 +_0812091C: .4byte 0x02017810 + thumb_func_end sub_81208E0 + + thumb_func_start sub_8120920 +sub_8120920: @ 8120920 + push {lr} + ldr r0, _08120958 @ =gUnknown_02024A60 + ldrb r3, [r0] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + ldr r1, _0812095C @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0812094E + ldr r2, _08120960 @ =gTasks + ldr r0, _08120964 @ =gUnknown_02024E68 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _08120968 @ =sub_8044CA0 + str r1, [r0] +_0812094E: + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_08120958: .4byte gUnknown_02024A60 +_0812095C: .4byte 0x02017810 +_08120960: .4byte gTasks +_08120964: .4byte gUnknown_02024E68 +_08120968: .4byte sub_8044CA0 + thumb_func_end sub_8120920 + + thumb_func_start sub_812096C +sub_812096C: @ 812096C + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_812096C + + thumb_func_start sub_8120978 +sub_8120978: @ 8120978 + push {r4,lr} + ldr r4, _081209C8 @ =gUnknown_02024A60 + ldrb r0, [r4] + bl sub_8078874 + lsls r0, 24 + cmp r0, 0 + beq _081209BE + ldr r3, _081209CC @ =gSprites + ldr r0, _081209D0 @ =gUnknown_02024BE0 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldr r0, _081209D4 @ =gUnknown_02023A60 + lsls r1, 9 + adds r0, 0x1 + adds r1, r0 + adds r2, 0x3E + movs r0, 0x1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl sub_8031F88 +_081209BE: + bl dp01_tbl3_exec_completed + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081209C8: .4byte gUnknown_02024A60 +_081209CC: .4byte gSprites +_081209D0: .4byte gUnknown_02024BE0 +_081209D4: .4byte gUnknown_02023A60 + thumb_func_end sub_8120978 + + thumb_func_start sub_81209D8 +sub_81209D8: @ 81209D8 + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, _08120A1C @ =gUnknown_02024A60 + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _08120A30 + ldr r5, _08120A20 @ =gUnknown_02023A60 + ldrb r2, [r6] + lsls r1, r2, 9 + adds r0, r5, 0x1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, 0x2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, 0x3 + adds r1, r5 + ldrb r0, [r1] + lsls r0, 8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, 0 + adds r1, r2, 0 + bl move_anim_start_t3 + lsls r0, 24 + cmp r0, 0 + beq _08120A24 + bl dp01_tbl3_exec_completed + b _08120A30 + .align 2, 0 +_08120A1C: .4byte gUnknown_02024A60 +_08120A20: .4byte gUnknown_02023A60 +_08120A24: + ldr r0, _08120A38 @ =gUnknown_03004330 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, _08120A3C @ =sub_811E3B8 + str r0, [r1] +_08120A30: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08120A38: .4byte gUnknown_03004330 +_08120A3C: .4byte sub_811E3B8 + thumb_func_end sub_81209D8 + + thumb_func_start sub_8120A40 +sub_8120A40: @ 8120A40 + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8120A40 + + thumb_func_start sub_8120A4C +sub_8120A4C: @ 8120A4C + push {lr} + bl dp01_tbl3_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8120A4C + + thumb_func_start sub_8120A58 +sub_8120A58: @ 8120A58 + push {r4,lr} + ldr r2, _08120A90 @ =gUnknown_02024D26 + ldr r1, _08120A94 @ =gUnknown_02023A60 + ldr r4, _08120A98 @ =gUnknown_02024A60 + ldrb r0, [r4] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + movs r0, 0x5 + bl FadeOutMapMusic + movs r0, 0x3 + bl BeginFastPaletteFade + bl dp01_tbl3_exec_completed + ldr r1, _08120A9C @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08120AA0 @ =sub_811E29C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08120A90: .4byte gUnknown_02024D26 +_08120A94: .4byte gUnknown_02023A60 +_08120A98: .4byte gUnknown_02024A60 +_08120A9C: .4byte gUnknown_03004330 +_08120AA0: .4byte sub_811E29C + thumb_func_end sub_8120A58 + + thumb_func_start nullsub_75 +nullsub_75: @ 8120AA4 + bx lr + thumb_func_end nullsub_75 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_message.s b/asm/battle_message.s new file mode 100644 index 000000000..8986ac835 --- /dev/null +++ b/asm/battle_message.s @@ -0,0 +1,2403 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_8120AA8 +sub_8120AA8: @ 8120AA8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r7, r0, 16 + movs r6, 0 + ldr r5, _08120B70 @ =gUnknown_02039270 + ldr r4, _08120B74 @ =gUnknown_02024A60 + ldrb r1, [r4] + lsls r1, 9 + ldr r0, _08120B78 @ =gUnknown_02023A64 + adds r1, r0 + str r1, [r5] + ldr r2, _08120B7C @ =gUnknown_02024C04 + ldrh r0, [r1, 0x4] + strh r0, [r2] + ldr r2, _08120B80 @ =byte_2024C06 + ldrb r0, [r1, 0x6] + strb r0, [r2] + ldr r3, _08120B84 @ =0x02000000 + ldrb r0, [r1, 0x7] + mov r8, r0 + ldr r2, _08120B88 @ =0x00016003 + adds r0, r3, r2 + mov r2, r8 + strb r2, [r0] + ldrb r0, [r1, 0x8] + mov r8, r0 + ldr r2, _08120B8C @ =0x0001605e + adds r0, r3, r2 + mov r2, r8 + strb r2, [r0] + ldrb r0, [r1, 0x9] + mov r8, r0 + ldr r2, _08120B90 @ =0x000160c1 + adds r0, r3, r2 + mov r2, r8 + strb r2, [r0] + ldr r2, _08120B94 @ =gUnknown_02024C0B + ldrb r0, [r1, 0xA] + strb r0, [r2] + ldrb r1, [r1, 0xB] + ldr r2, _08120B98 @ =0x000160a0 + adds r0, r3, r2 + strb r1, [r0] + movs r2, 0 + mov r9, r3 + ldr r3, _08120B9C @ =gUnknown_030041C0 + mov r10, r3 + ldr r3, _08120BA0 @ =gUnknown_0203926C +_08120B10: + adds r0, r2, r3 + ldr r1, [r5] + adds r1, 0xC + adds r1, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x3 + ble _08120B10 + movs r2, 0 + ldr r0, _08120B9C @ =gUnknown_030041C0 + mov r8, r0 + ldr r3, _08120B70 @ =gUnknown_02039270 + ldr r1, _08120BA4 @ =gUnknown_03004290 + mov r12, r1 + ldr r5, _08120BA8 @ =gUnknown_030042B0 +_08120B30: + mov r0, r8 + adds r1, r2, r0 + ldr r0, [r3] + adds r0, 0x10 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + mov r0, r12 + adds r1, r2, r0 + ldr r0, [r3] + adds r0, 0x20 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r1, r2, r5 + ldr r0, [r3] + adds r0, 0x30 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x1 + cmp r2, 0xF + ble _08120B30 + cmp r7, 0x5 + bls _08120B64 + b _08120F50 +_08120B64: + lsls r0, r7, 2 + ldr r1, _08120BAC @ =_08120BB0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08120B70: .4byte gUnknown_02039270 +_08120B74: .4byte gUnknown_02024A60 +_08120B78: .4byte gUnknown_02023A64 +_08120B7C: .4byte gUnknown_02024C04 +_08120B80: .4byte byte_2024C06 +_08120B84: .4byte 0x02000000 +_08120B88: .4byte 0x00016003 +_08120B8C: .4byte 0x0001605e +_08120B90: .4byte 0x000160c1 +_08120B94: .4byte gUnknown_02024C0B +_08120B98: .4byte 0x000160a0 +_08120B9C: .4byte gUnknown_030041C0 +_08120BA0: .4byte gUnknown_0203926C +_08120BA4: .4byte gUnknown_03004290 +_08120BA8: .4byte gUnknown_030042B0 +_08120BAC: .4byte _08120BB0 + .align 2, 0 +_08120BB0: + .4byte _08120BC8 + .4byte _08120C40 + .4byte _08120CCC + .4byte _08120D5C + .4byte _08120DE8 + .4byte _08120E50 +_08120BC8: + ldr r0, _08120BEC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08120C00 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08120BF8 + movs r0, 0x40 + ands r0, r1 + ldr r6, _08120BF0 @ =gUnknown_084005C7 + cmp r0, 0 + bne _08120BE8 + b _08120F70 +_08120BE8: + ldr r6, _08120BF4 @ =gUnknown_084005DB + b _08120F70 + .align 2, 0 +_08120BEC: .4byte gUnknown_020239F8 +_08120BF0: .4byte gUnknown_084005C7 +_08120BF4: .4byte gUnknown_084005DB +_08120BF8: + ldr r6, _08120BFC @ =gUnknown_084005AA + b _08120F70 + .align 2, 0 +_08120BFC: .4byte gUnknown_084005AA +_08120C00: + movs r0, 0x80 + lsls r0, 6 + ands r0, r1 + cmp r0, 0 + beq _08120C14 + ldr r6, _08120C10 @ =gUnknown_08400568 + b _08120F70 + .align 2, 0 +_08120C10: .4byte gUnknown_08400568 +_08120C14: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08120C24 + ldr r6, _08120C20 @ =gUnknown_08400590 + b _08120F70 + .align 2, 0 +_08120C20: .4byte gUnknown_08400590 +_08120C24: + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + ldr r6, _08120C38 @ =gUnknown_08400555 + cmp r0, 0 + bne _08120C32 + b _08120F70 +_08120C32: + ldr r6, _08120C3C @ =gUnknown_0840057B + b _08120F70 + .align 2, 0 +_08120C38: .4byte gUnknown_08400555 +_08120C3C: .4byte gUnknown_0840057B +_08120C40: + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08120C7C + ldr r0, _08120C68 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08120C74 + movs r0, 0x40 + ands r0, r1 + ldr r6, _08120C6C @ =gUnknown_084006A4 + cmp r0, 0 + bne _08120C64 + b _08120F70 +_08120C64: + ldr r6, _08120C70 @ =gUnknown_084006F1 + b _08120F70 + .align 2, 0 +_08120C68: .4byte gUnknown_020239F8 +_08120C6C: .4byte gUnknown_084006A4 +_08120C70: .4byte gUnknown_084006F1 +_08120C74: + ldr r6, _08120C78 @ =gUnknown_0840069C + b _08120F70 + .align 2, 0 +_08120C78: .4byte gUnknown_0840069C +_08120C7C: + ldr r0, _08120C94 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08120CB4 + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08120C9C + ldr r6, _08120C98 @ =gUnknown_0840065C + b _08120F70 + .align 2, 0 +_08120C94: .4byte gUnknown_020239F8 +_08120C98: .4byte gUnknown_0840065C +_08120C9C: + movs r0, 0x2 + ands r0, r1 + ldr r6, _08120CAC @ =gUnknown_08400608 + cmp r0, 0 + bne _08120CA8 + b _08120F70 +_08120CA8: + ldr r6, _08120CB0 @ =gUnknown_08400645 + b _08120F70 + .align 2, 0 +_08120CAC: .4byte gUnknown_08400608 +_08120CB0: .4byte gUnknown_08400645 +_08120CB4: + movs r0, 0x2 + ands r0, r1 + ldr r6, _08120CC4 @ =gUnknown_084005F5 + cmp r0, 0 + bne _08120CC0 + b _08120F70 +_08120CC0: + ldr r6, _08120CC8 @ =gUnknown_08400635 + b _08120F70 + .align 2, 0 +_08120CC4: .4byte gUnknown_084005F5 +_08120CC8: .4byte gUnknown_08400635 +_08120CCC: + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08120D24 + ldr r0, _08120CE8 @ =0x02000000 + ldr r1, _08120CEC @ =0x000160c1 + adds r0, r1 + ldrb r2, [r0] + cmp r2, 0 + bne _08120CF4 + ldr r6, _08120CF0 @ =gUnknown_08400709 + b _08120F70 + .align 2, 0 +_08120CE8: .4byte 0x02000000 +_08120CEC: .4byte 0x000160c1 +_08120CF0: .4byte gUnknown_08400709 +_08120CF4: + cmp r2, 0x1 + beq _08120D04 + ldr r0, _08120D08 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08120D10 +_08120D04: + ldr r6, _08120D0C @ =gUnknown_08400727 + b _08120F70 + .align 2, 0 +_08120D08: .4byte gUnknown_020239F8 +_08120D0C: .4byte gUnknown_08400727 +_08120D10: + ldr r6, _08120D1C @ =gUnknown_08400749 + cmp r2, 0x2 + beq _08120D18 + b _08120F70 +_08120D18: + ldr r6, _08120D20 @ =gUnknown_08400736 + b _08120F70 + .align 2, 0 +_08120D1C: .4byte gUnknown_08400749 +_08120D20: .4byte gUnknown_08400736 +_08120D24: + ldr r0, _08120D44 @ =gTrainerBattleOpponent + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 4 + cmp r1, r0 + bne _08120D54 + ldr r0, _08120D48 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + ldr r6, _08120D4C @ =gUnknown_08400771 + cmp r0, 0 + bne _08120D40 + b _08120F70 +_08120D40: + ldr r6, _08120D50 @ =gUnknown_08400781 + b _08120F70 + .align 2, 0 +_08120D44: .4byte gTrainerBattleOpponent +_08120D48: .4byte gUnknown_020239F8 +_08120D4C: .4byte gUnknown_08400771 +_08120D50: .4byte gUnknown_08400781 +_08120D54: + ldr r6, _08120D58 @ =gUnknown_0840075E + b _08120F70 + .align 2, 0 +_08120D58: .4byte gUnknown_0840075E +_08120D5C: + ldr r0, _08120D88 @ =0x00016003 + add r0, r9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08120DB8 + ldr r0, _08120D8C @ =0x000160c1 + add r0, r9 + ldrb r3, [r0] + cmp r3, 0 + beq _08120D82 + ldr r0, _08120D90 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08120D98 +_08120D82: + ldr r6, _08120D94 @ =gUnknown_084006B3 + b _08120F70 + .align 2, 0 +_08120D88: .4byte 0x00016003 +_08120D8C: .4byte 0x000160c1 +_08120D90: .4byte gUnknown_020239F8 +_08120D94: .4byte gUnknown_084006B3 +_08120D98: + cmp r3, 0x1 + bne _08120DA4 + ldr r6, _08120DA0 @ =gUnknown_084006BB + b _08120F70 + .align 2, 0 +_08120DA0: .4byte gUnknown_084006BB +_08120DA4: + ldr r6, _08120DB0 @ =gUnknown_084006D5 + cmp r3, 0x2 + beq _08120DAC + b _08120F70 +_08120DAC: + ldr r6, _08120DB4 @ =gUnknown_084006C6 + b _08120F70 + .align 2, 0 +_08120DB0: .4byte gUnknown_084006D5 +_08120DB4: .4byte gUnknown_084006C6 +_08120DB8: + ldr r0, _08120DD4 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08120DE0 + movs r0, 0x40 + ands r0, r1 + ldr r6, _08120DD8 @ =gUnknown_0840067C + cmp r0, 0 + bne _08120DD0 + b _08120F70 +_08120DD0: + ldr r6, _08120DDC @ =gUnknown_0840068C + b _08120F70 + .align 2, 0 +_08120DD4: .4byte gUnknown_020239F8 +_08120DD8: .4byte gUnknown_0840067C +_08120DDC: .4byte gUnknown_0840068C +_08120DE0: + ldr r6, _08120DE4 @ =gUnknown_08400622 + b _08120F70 + .align 2, 0 +_08120DE4: .4byte gUnknown_08400622 +_08120DE8: + mov r0, r10 + bl sub_8121D1C + ldr r0, _08120E14 @ =gUnknown_02039270 + ldr r2, [r0] + ldrh r1, [r2] + movs r0, 0xB1 + lsls r0, 1 + cmp r1, r0 + bls _08120E28 + ldr r0, _08120E18 @ =gUnknown_03004290 + ldr r2, _08120E1C @ =gUnknown_08401674 + ldr r1, _08120E20 @ =0x02000000 + ldr r3, _08120E24 @ =0x000160a0 + adds r1, r3 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + b _08120E38 + .align 2, 0 +_08120E14: .4byte gUnknown_02039270 +_08120E18: .4byte gUnknown_03004290 +_08120E1C: .4byte gUnknown_08401674 +_08120E20: .4byte 0x02000000 +_08120E24: .4byte 0x000160a0 +_08120E28: + ldr r0, _08120E44 @ =gUnknown_03004290 + ldrh r2, [r2] + movs r1, 0xD + muls r1, r2 + ldr r2, _08120E48 @ =gMoveNames + adds r1, r2 + bl StringCopy +_08120E38: + ldr r0, _08120E44 @ =gUnknown_03004290 + bl sub_8121D74 + ldr r6, _08120E4C @ =gUnknown_084007BD + b _08120F70 + .align 2, 0 +_08120E44: .4byte gUnknown_03004290 +_08120E48: .4byte gMoveNames +_08120E4C: .4byte gUnknown_084007BD +_08120E50: + ldr r5, _08120E90 @ =gUnknown_030041C0 + ldrb r1, [r5] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08120EB8 + movs r0, 0x7F + ands r0, r1 + strb r0, [r5] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08120E7C + ldrb r1, [r5] + cmp r1, 0x3 + beq _08120E7C + movs r0, 0x3 + eors r0, r1 + strb r0, [r5] +_08120E7C: + ldr r0, _08120E90 @ =gUnknown_030041C0 + ldrb r0, [r0] + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08120E98 + ldr r6, _08120E94 @ =gUnknown_083FFEFC + b _08120F70 + .align 2, 0 +_08120E90: .4byte gUnknown_030041C0 +_08120E94: .4byte gUnknown_083FFEFC +_08120E98: + ldr r0, _08120EAC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + ldr r6, _08120EB0 @ =gUnknown_083FFFEA + cmp r0, 0 + beq _08120F70 + ldr r6, _08120EB4 @ =gUnknown_083FFFF7 + b _08120F70 + .align 2, 0 +_08120EAC: .4byte gUnknown_020239F8 +_08120EB0: .4byte gUnknown_083FFFEA +_08120EB4: .4byte gUnknown_083FFFF7 +_08120EB8: + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08120ED2 + ldrb r1, [r5] + cmp r1, 0x3 + beq _08120ED2 + movs r0, 0x3 + eors r0, r1 + strb r0, [r5] +_08120ED2: + ldr r0, _08120EF0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08120F18 + ldr r0, _08120EF4 @ =gUnknown_030041C0 + ldrb r0, [r0] + cmp r0, 0x2 + beq _08120F08 + cmp r0, 0x2 + bgt _08120EF8 + cmp r0, 0x1 + beq _08120EFE + b _08120F70 + .align 2, 0 +_08120EF0: .4byte gUnknown_020239F8 +_08120EF4: .4byte gUnknown_030041C0 +_08120EF8: + cmp r0, 0x3 + beq _08120F10 + b _08120F70 +_08120EFE: + ldr r6, _08120F04 @ =gUnknown_083FFF6A + b _08120F70 + .align 2, 0 +_08120F04: .4byte gUnknown_083FFF6A +_08120F08: + ldr r6, _08120F0C @ =gUnknown_083FFF99 + b _08120F70 + .align 2, 0 +_08120F0C: .4byte gUnknown_083FFF99 +_08120F10: + ldr r6, _08120F14 @ =gUnknown_083FFFCB + b _08120F70 + .align 2, 0 +_08120F14: .4byte gUnknown_083FFFCB +_08120F18: + ldr r0, _08120F2C @ =gUnknown_030041C0 + ldrb r0, [r0] + cmp r0, 0x2 + beq _08120F40 + cmp r0, 0x2 + bgt _08120F30 + cmp r0, 0x1 + beq _08120F36 + b _08120F70 + .align 2, 0 +_08120F2C: .4byte gUnknown_030041C0 +_08120F30: + cmp r0, 0x3 + beq _08120F48 + b _08120F70 +_08120F36: + ldr r6, _08120F3C @ =gUnknown_083FFF56 + b _08120F70 + .align 2, 0 +_08120F3C: .4byte gUnknown_083FFF56 +_08120F40: + ldr r6, _08120F44 @ =gUnknown_083FFF81 + b _08120F70 + .align 2, 0 +_08120F44: .4byte gUnknown_083FFF81 +_08120F48: + ldr r6, _08120F4C @ =gUnknown_083FFFB3 + b _08120F70 + .align 2, 0 +_08120F4C: .4byte gUnknown_083FFFB3 +_08120F50: + movs r0, 0xB5 + lsls r0, 1 + cmp r7, r0 + bls _08120F64 + ldr r1, _08120F60 @ =gUnknown_020238CC + movs r0, 0xFF + strb r0, [r1] + b _08120F76 + .align 2, 0 +_08120F60: .4byte gUnknown_020238CC +_08120F64: + ldr r1, _08120F84 @ =gUnknown_08400F8C + adds r0, r7, 0 + subs r0, 0xC + lsls r0, 2 + adds r0, r1 + ldr r6, [r0] +_08120F70: + adds r0, r6, 0 + bl get_battle_strings_ +_08120F76: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08120F84: .4byte gUnknown_08400F8C + thumb_func_end sub_8120AA8 + + thumb_func_start get_battle_strings_ +get_battle_strings_: @ 8120F88 + push {lr} + ldr r1, _08120F94 @ =gUnknown_020238CC + bl sub_8120FFC + pop {r1} + bx r1 + .align 2, 0 +_08120F94: .4byte gUnknown_020238CC + thumb_func_end get_battle_strings_ + + thumb_func_start sub_8120F98 +sub_8120F98: @ 8120F98 + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldr r1, _08120FB0 @ =gUnknown_084017A8 + mov r0, sp + movs r2, 0x8 + bl memcpy + mov r2, sp + movs r3, 0 + b _08120FC0 + .align 2, 0 +_08120FB0: .4byte gUnknown_084017A8 +_08120FB4: + strb r1, [r2] + adds r4, 0x1 + adds r2, 0x1 + adds r3, 0x1 + cmp r3, 0x7 + bhi _08120FC8 +_08120FC0: + ldrb r1, [r4] + adds r0, r1, 0 + cmp r0, 0xFF + bne _08120FB4 +_08120FC8: + ldr r5, [sp] + ldr r4, [sp, 0x4] + movs r3, 0 + ldr r2, _08120FE4 @ =gUnknown_081FA6D4 +_08120FD0: + ldr r1, [r2] + ldr r0, [r1] + cmp r5, r0 + bne _08120FE8 + ldr r0, [r1, 0x4] + cmp r4, r0 + bne _08120FE8 + ldr r0, [r2, 0x4] + b _08120FF2 + .align 2, 0 +_08120FE4: .4byte gUnknown_081FA6D4 +_08120FE8: + adds r2, 0x8 + adds r3, 0x1 + cmp r3, 0x6 + bls _08120FD0 + movs r0, 0 +_08120FF2: + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8120F98 + + thumb_func_start sub_8120FFC +sub_8120FFC: @ 8120FFC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + mov r9, r0 + mov r8, r1 + movs r6, 0 + movs r4, 0 + bl GetMultiplayerId + lsls r0, 24 + lsrs r7, r0, 24 + mov r0, r9 + ldrb r1, [r0] + bl _08121A40 +_0812101E: + cmp r1, 0xFD + beq _08121026 + bl _08121A30 +_08121026: + movs r1, 0x1 + add r9, r1 + mov r2, r9 + ldrb r0, [r2] + cmp r0, 0x2A + bls _08121036 + bl _081219E6 +_08121036: + lsls r0, 2 + ldr r1, _08121040 @ =_08121044 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08121040: .4byte _08121044 + .align 2, 0 +_08121044: + .4byte _081210F0 + .4byte _0812111E + .4byte _0812115A + .4byte _08121180 + .4byte _081211A4 + .4byte _081211C8 + .4byte _081211EC + .4byte _08121218 + .4byte _08121248 + .4byte _08121278 + .4byte _081212A8 + .4byte _0812133C + .4byte _081213A8 + .4byte _0812141C + .4byte _08121490 + .4byte _08121504 + .4byte _08121578 + .4byte _081215F8 + .4byte _08121620 + .4byte _08121660 + .4byte _081216EC + .4byte _081216F4 + .4byte _08121704 + .4byte _08121714 + .4byte _0812172C + .4byte _0812174C + .4byte _081217C0 + .4byte _08121830 + .4byte _08121840 + .4byte _08121854 + .4byte _08121868 + .4byte _0812188C + .4byte _081218B0 + .4byte _081218B8 + .4byte _081218C0 + .4byte _0812195C + .4byte _081219A4 + .4byte _081219AC + .4byte _0812197C + .4byte _08121984 + .4byte _081219CC + .4byte _081219D4 + .4byte _08121134 +_081210F0: + ldr r5, _08121100 @ =gUnknown_030041C0 + ldrb r0, [r5] + cmp r0, 0xFD + bne _08121108 + ldr r4, _08121104 @ =gStringVar1 + adds r0, r5, 0 + b _08121140 + .align 2, 0 +_08121100: .4byte gUnknown_030041C0 +_08121104: .4byte gStringVar1 +_08121108: + adds r0, r5, 0 + bl sub_8120F98 + adds r4, r0, 0 + cmp r4, 0 + beq _08121118 + bl _081219E6 +_08121118: + adds r4, r5, 0 + bl _081219E6 +_0812111E: + ldr r1, _0812112C @ =gUnknown_03004290 + ldrb r0, [r1] + cmp r0, 0xFD + bne _08121154 + ldr r4, _08121130 @ =gStringVar2 + b _0812113E + .align 2, 0 +_0812112C: .4byte gUnknown_03004290 +_08121130: .4byte gStringVar2 +_08121134: + ldr r1, _0812114C @ =gUnknown_030042B0 + ldrb r0, [r1] + cmp r0, 0xFD + bne _08121154 + ldr r4, _08121150 @ =gStringVar3 +_0812113E: + adds r0, r1, 0 +_08121140: + adds r1, r4, 0 + bl sub_8121A68 + bl _081219E6 + .align 2, 0 +_0812114C: .4byte gUnknown_030042B0 +_08121150: .4byte gStringVar3 +_08121154: + adds r4, r1, 0 + bl _081219E6 +_0812115A: + movs r0, 0 + bl battle_get_side_with_given_state + ldr r1, _08121178 @ =gUnknown_02024A6A + lsls r0, 24 + lsrs r0, 23 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0812117C @ =gPlayerParty + adds r0, r1 + bl _0812190E + .align 2, 0 +_08121178: .4byte gUnknown_02024A6A +_0812117C: .4byte gPlayerParty +_08121180: + movs r0, 0x1 + bl battle_get_side_with_given_state + ldr r1, _0812119C @ =gUnknown_02024A6A + lsls r0, 24 + lsrs r0, 23 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _081211A0 @ =gEnemyParty + adds r0, r1 + b _0812190E + .align 2, 0 +_0812119C: .4byte gUnknown_02024A6A +_081211A0: .4byte gEnemyParty +_081211A4: + movs r0, 0x2 + bl battle_get_side_with_given_state + ldr r1, _081211C0 @ =gUnknown_02024A6A + lsls r0, 24 + lsrs r0, 23 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _081211C4 @ =gPlayerParty + adds r0, r1 + b _0812190E + .align 2, 0 +_081211C0: .4byte gUnknown_02024A6A +_081211C4: .4byte gPlayerParty +_081211C8: + movs r0, 0x3 + bl battle_get_side_with_given_state + ldr r1, _081211E4 @ =gUnknown_02024A6A + lsls r0, 24 + lsrs r0, 23 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _081211E8 @ =gEnemyParty + adds r0, r1 + b _0812190E + .align 2, 0 +_081211E4: .4byte gUnknown_02024A6A +_081211E8: .4byte gEnemyParty +_081211EC: + ldr r2, _0812120C @ =gUnknown_02024A6A + ldr r1, _08121210 @ =gLinkPlayers + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0, 0x18] + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08121214 @ =gPlayerParty + adds r0, r1 + b _0812190E + .align 2, 0 +_0812120C: .4byte gUnknown_02024A6A +_08121210: .4byte gLinkPlayers +_08121214: .4byte gPlayerParty +_08121218: + ldr r2, _0812123C @ =gUnknown_02024A6A + ldr r1, _08121240 @ =gLinkPlayers + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x18] + movs r0, 0x1 + eors r0, r1 + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08121244 @ =gEnemyParty + adds r0, r1 + b _0812190E + .align 2, 0 +_0812123C: .4byte gUnknown_02024A6A +_08121240: .4byte gLinkPlayers +_08121244: .4byte gEnemyParty +_08121248: + ldr r2, _0812126C @ =gUnknown_02024A6A + ldr r1, _08121270 @ =gLinkPlayers + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x18] + movs r0, 0x2 + eors r0, r1 + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08121274 @ =gPlayerParty + adds r0, r1 + b _0812190E + .align 2, 0 +_0812126C: .4byte gUnknown_02024A6A +_08121270: .4byte gLinkPlayers +_08121274: .4byte gPlayerParty +_08121278: + ldr r2, _0812129C @ =gUnknown_02024A6A + ldr r1, _081212A0 @ =gLinkPlayers + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x18] + movs r0, 0x3 + eors r0, r1 + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _081212A4 @ =gEnemyParty + adds r0, r1 + b _0812190E + .align 2, 0 +_0812129C: .4byte gUnknown_02024A6A +_081212A0: .4byte gLinkPlayers +_081212A4: .4byte gEnemyParty +_081212A8: + ldr r4, _081212CC @ =gUnknown_02024C07 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + adds r2, r4, 0 + cmp r0, 0 + beq _0812131C + ldr r0, _081212D0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + ldr r4, _081212D4 @ =gUnknown_08400791 + cmp r0, 0 + beq _081212E6 + ldr r4, _081212D8 @ =gUnknown_08400797 + b _081212E6 + .align 2, 0 +_081212CC: .4byte gUnknown_02024C07 +_081212D0: .4byte gUnknown_020239F8 +_081212D4: .4byte gUnknown_08400791 +_081212D8: .4byte gUnknown_08400797 +_081212DC: + mov r3, r8 + adds r0, r3, r6 + strb r1, [r0] + adds r6, 0x1 + adds r4, 0x1 +_081212E6: + ldrb r1, [r4] + adds r0, r1, 0 + cmp r0, 0xFF + bne _081212DC + ldrb r0, [r2] + bl battle_get_per_side_status + adds r1, r0, 0 + movs r0, 0x1 + ands r0, r1 + bl battle_get_side_with_given_state + ldr r1, _08121314 @ =gUnknown_02024A6A + lsls r0, 24 + lsrs r0, 23 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08121318 @ =gEnemyParty + adds r0, r1 + b _0812190E + .align 2, 0 +_08121314: .4byte gUnknown_02024A6A +_08121318: .4byte gEnemyParty +_0812131C: + ldrb r0, [r2] + bl battle_get_per_side_status + adds r1, r0, 0 + movs r0, 0x1 + ands r0, r1 + bl battle_get_side_with_given_state + ldr r1, _08121338 @ =gUnknown_02024A6A + lsls r0, 24 + lsrs r0, 23 + adds r0, r1 + ldrh r1, [r0] + b _0812193A + .align 2, 0 +_08121338: .4byte gUnknown_02024A6A +_0812133C: + ldr r4, _08121370 @ =gUnknown_02024C07 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0812137C + ldrb r0, [r4] + bl battle_get_per_side_status + adds r1, r0, 0 + movs r0, 0x1 + ands r0, r1 + bl battle_get_side_with_given_state + ldr r1, _08121374 @ =gUnknown_02024A6A + lsls r0, 24 + lsrs r0, 23 + adds r0, 0x4 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08121378 @ =gPlayerParty + adds r0, r1 + b _0812190E + .align 2, 0 +_08121370: .4byte gUnknown_02024C07 +_08121374: .4byte gUnknown_02024A6A +_08121378: .4byte gPlayerParty +_0812137C: + ldrb r0, [r4] + bl battle_get_per_side_status + adds r1, r0, 0 + movs r0, 0x1 + ands r0, r1 + bl battle_get_side_with_given_state + ldr r1, _081213A0 @ =gUnknown_02024A6A + lsls r0, 24 + lsrs r0, 23 + adds r0, 0x4 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _081213A4 @ =gEnemyParty + b _08121940 + .align 2, 0 +_081213A0: .4byte gUnknown_02024A6A +_081213A4: .4byte gEnemyParty +_081213A8: + ldr r5, _081213F4 @ =gUnknown_02024C07 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _0812140C + ldr r0, _081213F8 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + ldr r4, _081213FC @ =gUnknown_08400791 + cmp r0, 0 + beq _081213C6 + ldr r4, _08121400 @ =gUnknown_08400797 +_081213C6: + ldrb r1, [r4] + adds r0, r1, 0 + ldr r3, _08121404 @ =gUnknown_02024A6A + ldr r2, _08121408 @ =gEnemyParty + mov r12, r2 + adds r2, r5, 0 + cmp r0, 0xFF + beq _081213E8 +_081213D6: + mov r5, r8 + adds r0, r5, r6 + strb r1, [r0] + adds r6, 0x1 + adds r4, 0x1 + ldrb r1, [r4] + adds r0, r1, 0 + cmp r0, 0xFF + bne _081213D6 +_081213E8: + ldrb r0, [r2] + lsls r0, 1 + adds r0, r3 + ldrh r1, [r0] + b _08121908 + .align 2, 0 +_081213F4: .4byte gUnknown_02024C07 +_081213F8: .4byte gUnknown_020239F8 +_081213FC: .4byte gUnknown_08400791 +_08121400: .4byte gUnknown_08400797 +_08121404: .4byte gUnknown_02024A6A +_08121408: .4byte gEnemyParty +_0812140C: + ldr r1, _08121418 @ =gUnknown_02024A6A + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + b _0812193A + .align 2, 0 +_08121418: .4byte gUnknown_02024A6A +_0812141C: + ldr r5, _08121468 @ =gUnknown_02024C08 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08121480 + ldr r0, _0812146C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + ldr r4, _08121470 @ =gUnknown_08400791 + cmp r0, 0 + beq _0812143A + ldr r4, _08121474 @ =gUnknown_08400797 +_0812143A: + ldrb r1, [r4] + adds r0, r1, 0 + ldr r3, _08121478 @ =gUnknown_02024A6A + ldr r2, _0812147C @ =gEnemyParty + mov r12, r2 + adds r2, r5, 0 + cmp r0, 0xFF + beq _0812145C +_0812144A: + mov r5, r8 + adds r0, r5, r6 + strb r1, [r0] + adds r6, 0x1 + adds r4, 0x1 + ldrb r1, [r4] + adds r0, r1, 0 + cmp r0, 0xFF + bne _0812144A +_0812145C: + ldrb r0, [r2] + lsls r0, 1 + adds r0, r3 + ldrh r1, [r0] + b _08121908 + .align 2, 0 +_08121468: .4byte gUnknown_02024C08 +_0812146C: .4byte gUnknown_020239F8 +_08121470: .4byte gUnknown_08400791 +_08121474: .4byte gUnknown_08400797 +_08121478: .4byte gUnknown_02024A6A +_0812147C: .4byte gEnemyParty +_08121480: + ldr r1, _0812148C @ =gUnknown_02024A6A + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + b _0812193A + .align 2, 0 +_0812148C: .4byte gUnknown_02024A6A +_08121490: + ldr r5, _081214DC @ =gUnknown_02024C0A + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _081214F4 + ldr r0, _081214E0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + ldr r4, _081214E4 @ =gUnknown_08400791 + cmp r0, 0 + beq _081214AE + ldr r4, _081214E8 @ =gUnknown_08400797 +_081214AE: + ldrb r1, [r4] + adds r0, r1, 0 + ldr r3, _081214EC @ =gUnknown_02024A6A + ldr r2, _081214F0 @ =gEnemyParty + mov r12, r2 + adds r2, r5, 0 + cmp r0, 0xFF + beq _081214D0 +_081214BE: + mov r5, r8 + adds r0, r5, r6 + strb r1, [r0] + adds r6, 0x1 + adds r4, 0x1 + ldrb r1, [r4] + adds r0, r1, 0 + cmp r0, 0xFF + bne _081214BE +_081214D0: + ldrb r0, [r2] + lsls r0, 1 + adds r0, r3 + ldrh r1, [r0] + b _08121908 + .align 2, 0 +_081214DC: .4byte gUnknown_02024C0A +_081214E0: .4byte gUnknown_020239F8 +_081214E4: .4byte gUnknown_08400791 +_081214E8: .4byte gUnknown_08400797 +_081214EC: .4byte gUnknown_02024A6A +_081214F0: .4byte gEnemyParty +_081214F4: + ldr r1, _08121500 @ =gUnknown_02024A6A + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + b _0812193A + .align 2, 0 +_08121500: .4byte gUnknown_02024A6A +_08121504: + ldr r5, _08121550 @ =gUnknown_02024A60 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08121568 + ldr r0, _08121554 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + ldr r4, _08121558 @ =gUnknown_08400791 + cmp r0, 0 + beq _08121522 + ldr r4, _0812155C @ =gUnknown_08400797 +_08121522: + ldrb r1, [r4] + adds r0, r1, 0 + ldr r3, _08121560 @ =gUnknown_02024A6A + ldr r2, _08121564 @ =gEnemyParty + mov r12, r2 + adds r2, r5, 0 + cmp r0, 0xFF + beq _08121544 +_08121532: + mov r5, r8 + adds r0, r5, r6 + strb r1, [r0] + adds r6, 0x1 + adds r4, 0x1 + ldrb r1, [r4] + adds r0, r1, 0 + cmp r0, 0xFF + bne _08121532 +_08121544: + ldrb r0, [r2] + lsls r0, 1 + adds r0, r3 + ldrh r1, [r0] + b _08121908 + .align 2, 0 +_08121550: .4byte gUnknown_02024A60 +_08121554: .4byte gUnknown_020239F8 +_08121558: .4byte gUnknown_08400791 +_0812155C: .4byte gUnknown_08400797 +_08121560: .4byte gUnknown_02024A6A +_08121564: .4byte gEnemyParty +_08121568: + ldr r1, _08121574 @ =gUnknown_02024A6A + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + b _0812193A + .align 2, 0 +_08121574: .4byte gUnknown_02024A6A +_08121578: + ldr r4, _081215CC @ =0x02000000 + ldr r0, _081215D0 @ =0x00016003 + adds r5, r4, r0 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + adds r2, r4, 0 + cmp r0, 0 + beq _081215E8 + ldr r0, _081215D4 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + ldr r4, _081215D8 @ =gUnknown_08400791 + cmp r0, 0 + beq _0812159C + ldr r4, _081215DC @ =gUnknown_08400797 +_0812159C: + ldrb r1, [r4] + adds r0, r1, 0 + ldr r3, _081215E0 @ =gUnknown_02024A6A + ldr r5, _081215E4 @ =gEnemyParty + mov r12, r5 + cmp r0, 0xFF + beq _081215BC +_081215AA: + mov r5, r8 + adds r0, r5, r6 + strb r1, [r0] + adds r6, 0x1 + adds r4, 0x1 + ldrb r1, [r4] + adds r0, r1, 0 + cmp r0, 0xFF + bne _081215AA +_081215BC: + ldr r1, _081215D0 @ =0x00016003 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r3 + ldrh r1, [r0] + b _08121908 + .align 2, 0 +_081215CC: .4byte 0x02000000 +_081215D0: .4byte 0x00016003 +_081215D4: .4byte gUnknown_020239F8 +_081215D8: .4byte gUnknown_08400791 +_081215DC: .4byte gUnknown_08400797 +_081215E0: .4byte gUnknown_02024A6A +_081215E4: .4byte gEnemyParty +_081215E8: + ldr r1, _081215F4 @ =gUnknown_02024A6A + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + b _0812193A + .align 2, 0 +_081215F4: .4byte gUnknown_02024A6A +_081215F8: + ldr r0, _08121610 @ =gUnknown_02039270 + ldr r2, [r0] + ldrh r1, [r2] + movs r0, 0xB1 + lsls r0, 1 + cmp r1, r0 + bls _0812161C + ldr r0, _08121614 @ =0x02000000 + ldr r2, _08121618 @ =0x000160a0 + adds r0, r2 + b _08121634 + .align 2, 0 +_08121610: .4byte gUnknown_02039270 +_08121614: .4byte 0x02000000 +_08121618: .4byte 0x000160a0 +_0812161C: + ldrh r1, [r2] + b _08121652 +_08121620: + ldr r0, _08121640 @ =gUnknown_02039270 + ldr r2, [r0] + ldrh r1, [r2, 0x2] + movs r0, 0xB1 + lsls r0, 1 + cmp r1, r0 + bls _08121650 + ldr r0, _08121644 @ =0x02000000 + ldr r3, _08121648 @ =0x000160a0 + adds r0, r3 +_08121634: + ldrb r0, [r0] + lsls r0, 2 + ldr r1, _0812164C @ =gUnknown_08401674 + adds r4, r0, r1 + b _081219E6 + .align 2, 0 +_08121640: .4byte gUnknown_02039270 +_08121644: .4byte 0x02000000 +_08121648: .4byte 0x000160a0 +_0812164C: .4byte gUnknown_08401674 +_08121650: + ldrh r1, [r2, 0x2] +_08121652: + movs r0, 0xD + muls r1, r0 + ldr r0, _0812165C @ =gMoveNames + adds r4, r1, r0 + b _081219E6 + .align 2, 0 +_0812165C: .4byte gMoveNames +_08121660: + ldr r0, _081216AC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081216D8 + ldr r1, _081216B0 @ =gUnknown_02024C04 + ldrh r0, [r1] + cmp r0, 0xAF + bne _081216D4 + ldr r2, _081216B4 @ =gLinkPlayers + ldr r0, _081216B8 @ =0x02000000 + ldr r5, _081216BC @ =0x000160cb + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _081216C0 @ =gUnknown_02024C0B + ldrb r2, [r1] + ldrh r0, [r0, 0x18] + cmp r0, r2 + bne _081216CC + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + ldr r0, _081216C4 @ =gEnigmaBerries + adds r1, r0 + mov r0, sp + bl StringCopy + ldr r1, _081216C8 @ =gUnknown_08400A85 + mov r0, sp + bl StringAppend + mov r4, sp + b _081219E6 + .align 2, 0 +_081216AC: .4byte gUnknown_020239F8 +_081216B0: .4byte gUnknown_02024C04 +_081216B4: .4byte gLinkPlayers +_081216B8: .4byte 0x02000000 +_081216BC: .4byte 0x000160cb +_081216C0: .4byte gUnknown_02024C0B +_081216C4: .4byte gEnigmaBerries +_081216C8: .4byte gUnknown_08400A85 +_081216CC: + ldr r4, _081216D0 @ =gUnknown_08400A78 + b _081219E6 + .align 2, 0 +_081216D0: .4byte gUnknown_08400A78 +_081216D4: + ldrh r0, [r1] + b _081216DC +_081216D8: + ldr r0, _081216E8 @ =gUnknown_02024C04 + ldrh r0, [r0] +_081216DC: + mov r1, sp + bl CopyItemName + mov r4, sp + b _081219E6 + .align 2, 0 +_081216E8: .4byte gUnknown_02024C04 +_081216EC: + ldr r0, _081216F0 @ =byte_2024C06 + b _08121734 + .align 2, 0 +_081216F0: .4byte byte_2024C06 +_081216F4: + ldr r1, _081216FC @ =gUnknown_0203926C + ldr r0, _08121700 @ =gUnknown_02024C07 + b _08121730 + .align 2, 0 +_081216FC: .4byte gUnknown_0203926C +_08121700: .4byte gUnknown_02024C07 +_08121704: + ldr r1, _0812170C @ =gUnknown_0203926C + ldr r0, _08121710 @ =gUnknown_02024C08 + b _08121730 + .align 2, 0 +_0812170C: .4byte gUnknown_0203926C +_08121710: .4byte gUnknown_02024C08 +_08121714: + ldr r1, _08121720 @ =gUnknown_0203926C + ldr r0, _08121724 @ =0x02000000 + ldr r2, _08121728 @ =0x00016003 + adds r0, r2 + b _08121730 + .align 2, 0 +_08121720: .4byte gUnknown_0203926C +_08121724: .4byte 0x02000000 +_08121728: .4byte 0x00016003 +_0812172C: + ldr r1, _08121740 @ =gUnknown_0203926C + ldr r0, _08121744 @ =gUnknown_02024C0A +_08121730: + ldrb r0, [r0] + adds r0, r1 +_08121734: + ldrb r1, [r0] + movs r0, 0xD + muls r1, r0 + ldr r0, _08121748 @ =gAbilityNames + adds r4, r1, r0 + b _081219E6 + .align 2, 0 +_08121740: .4byte gUnknown_0203926C +_08121744: .4byte gUnknown_02024C0A +_08121748: .4byte gAbilityNames +_0812174C: + ldr r3, _08121764 @ =gTrainerBattleOpponent + ldrh r1, [r3] + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + bne _08121768 + bl GetSecretBaseTrainerNameIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xD + b _081217AE + .align 2, 0 +_08121764: .4byte gTrainerBattleOpponent +_08121768: + ldr r0, _08121784 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _08121788 + bl get_trainer_class_name_index + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xD + b _081217AE + .align 2, 0 +_08121784: .4byte gUnknown_020239F8 +_08121788: + movs r0, 0x80 + lsls r0, 4 + ands r0, r1 + cmp r0, 0 + beq _0812179E + bl sub_8135FD8 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xD + b _081217AE +_0812179E: + ldr r2, _081217B8 @ =gTrainers + ldrh r1, [r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r0, 0xD +_081217AE: + muls r1, r0 + ldr r0, _081217BC @ =gTrainerClassNames + adds r4, r1, r0 + b _081219E6 + .align 2, 0 +_081217B8: .4byte gTrainers +_081217BC: .4byte gTrainerClassNames +_081217C0: + ldr r2, _081217E4 @ =gTrainerBattleOpponent + ldrh r1, [r2] + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + bne _081217EC + mov r0, sp + movs r1, 0xFF + movs r2, 0x8 + bl memset + ldr r1, _081217E8 @ =0x02017002 + mov r0, sp + movs r2, 0x7 + bl memcpy + mov r4, sp + b _081219E6 + .align 2, 0 +_081217E4: .4byte gTrainerBattleOpponent +_081217E8: .4byte 0x02017002 +_081217EC: + ldr r0, _08121804 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _08121808 + mov r0, sp + bl get_trainer_name + mov r4, sp + b _081219E6 + .align 2, 0 +_08121804: .4byte gUnknown_020239F8 +_08121808: + movs r0, 0x80 + lsls r0, 4 + ands r0, r1 + cmp r0, 0 + beq _0812181C + mov r0, sp + bl sub_8135FF4 + mov r4, sp + b _081219E6 +_0812181C: + ldrh r0, [r2] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _0812182C @ =gTrainers + 0x4 + adds r4, r1, r0 + b _081219E6 + .align 2, 0 +_0812182C: .4byte gTrainers + 0x4 +_08121830: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _0812183C @ =gLinkPlayers + 0x8 + adds r4, r0, r1 + b _081219E6 + .align 2, 0 +_0812183C: .4byte gLinkPlayers + 0x8 +_08121840: + ldr r4, _08121850 @ =gLinkPlayers + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x18] + movs r0, 0x2 + b _08121876 + .align 2, 0 +_08121850: .4byte gLinkPlayers +_08121854: + ldr r4, _08121864 @ =gLinkPlayers + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x18] + movs r0, 0x1 + b _08121876 + .align 2, 0 +_08121864: .4byte gLinkPlayers +_08121868: + ldr r4, _08121888 @ =gLinkPlayers + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x18] + movs r0, 0x3 +_08121876: + eors r0, r1 + bl sub_803FC34 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r4, 0x8 + adds r4, r1, r4 + b _081219E6 + .align 2, 0 +_08121888: .4byte gLinkPlayers +_0812188C: + ldr r0, _081218A4 @ =0x02000000 + ldr r3, _081218A8 @ =0x00016003 + adds r0, r3 + ldrb r0, [r0] + bl sub_803FC34 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _081218AC @ =gLinkPlayers + 0x8 + adds r4, r1, r0 + b _081219E6 + .align 2, 0 +_081218A4: .4byte 0x02000000 +_081218A8: .4byte 0x00016003 +_081218AC: .4byte gLinkPlayers + 0x8 +_081218B0: + ldr r4, _081218B4 @ =gSaveBlock2 + b _081219E6 + .align 2, 0 +_081218B4: .4byte gSaveBlock2 +_081218B8: + bl sub_8082830 + adds r4, r0, 0 + b _081219E6 +_081218C0: + ldr r5, _08121918 @ =0x02000000 + ldr r1, _0812191C @ =0x00016003 + adds r0, r5, r1 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08121934 + ldr r0, _08121920 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + ldr r4, _08121924 @ =gUnknown_08400791 + cmp r0, 0 + beq _081218E2 + ldr r4, _08121928 @ =gUnknown_08400797 +_081218E2: + ldrb r1, [r4] + adds r0, r1, 0 + ldr r2, _0812192C @ =gEnemyParty + mov r12, r2 + adds r2, r5, 0 + cmp r0, 0xFF + beq _08121902 +_081218F0: + mov r3, r8 + adds r0, r3, r6 + strb r1, [r0] + adds r6, 0x1 + adds r4, 0x1 + ldrb r1, [r4] + adds r0, r1, 0 + cmp r0, 0xFF + bne _081218F0 +_08121902: + ldr r5, _08121930 @ =0x0001605e + adds r0, r2, r5 + ldrb r1, [r0] +_08121908: + movs r0, 0x64 + muls r0, r1 + add r0, r12 +_0812190E: + movs r1, 0x2 + mov r2, sp + bl GetMonData + b _0812194A + .align 2, 0 +_08121918: .4byte 0x02000000 +_0812191C: .4byte 0x00016003 +_08121920: .4byte gUnknown_020239F8 +_08121924: .4byte gUnknown_08400791 +_08121928: .4byte gUnknown_08400797 +_0812192C: .4byte gEnemyParty +_08121930: .4byte 0x0001605e +_08121934: + ldr r1, _08121954 @ =0x0001605e + adds r0, r5, r1 + ldrb r1, [r0] +_0812193A: + movs r0, 0x64 + muls r0, r1 + ldr r1, _08121958 @ =gPlayerParty +_08121940: + adds r0, r1 + movs r1, 0x2 + mov r2, sp + bl GetMonData +_0812194A: + mov r0, sp + bl StringGetEnd10 + mov r4, sp + b _081219E6 + .align 2, 0 +_08121954: .4byte 0x0001605e +_08121958: .4byte gPlayerParty +_0812195C: + ldr r0, _08121970 @ =0x0000084b + bl FlagGet + lsls r0, 24 + ldr r4, _08121974 @ =gUnknown_084009ED + cmp r0, 0 + beq _081219E6 + ldr r4, _08121978 @ =gUnknown_084009F7 + b _081219E6 + .align 2, 0 +_08121970: .4byte 0x0000084b +_08121974: .4byte gUnknown_084009ED +_08121978: .4byte gUnknown_084009F7 +_0812197C: + ldr r0, _08121980 @ =gUnknown_02024C07 + b _08121986 + .align 2, 0 +_08121980: .4byte gUnknown_02024C07 +_08121984: + ldr r0, _08121998 @ =gUnknown_02024C08 +_08121986: + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + ldr r4, _0812199C @ =gUnknown_084007A7 + cmp r0, 0 + bne _081219E6 + ldr r4, _081219A0 @ =gUnknown_084007AC + b _081219E6 + .align 2, 0 +_08121998: .4byte gUnknown_02024C08 +_0812199C: .4byte gUnknown_084007A7 +_081219A0: .4byte gUnknown_084007AC +_081219A4: + ldr r0, _081219A8 @ =gUnknown_02024C07 + b _081219AE + .align 2, 0 +_081219A8: .4byte gUnknown_02024C07 +_081219AC: + ldr r0, _081219C0 @ =gUnknown_02024C08 +_081219AE: + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + ldr r4, _081219C4 @ =gUnknown_0840079C + cmp r0, 0 + bne _081219E6 + ldr r4, _081219C8 @ =gUnknown_084007A1 + b _081219E6 + .align 2, 0 +_081219C0: .4byte gUnknown_02024C08 +_081219C4: .4byte gUnknown_0840079C +_081219C8: .4byte gUnknown_084007A1 +_081219CC: + ldr r0, _081219D0 @ =gUnknown_02024C07 + b _081219D6 + .align 2, 0 +_081219D0: .4byte gUnknown_02024C07 +_081219D4: + ldr r0, _08121A24 @ =gUnknown_02024C08 +_081219D6: + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + ldr r4, _08121A28 @ =gUnknown_084007B2 + cmp r0, 0 + bne _081219E6 + ldr r4, _08121A2C @ =gUnknown_084007B7 +_081219E6: + ldrb r1, [r4] + adds r0, r1, 0 + mov r3, r9 + ldrb r2, [r3] + adds r3, 0x1 + cmp r0, 0xFF + beq _08121A06 +_081219F4: + mov r5, r8 + adds r0, r5, r6 + strb r1, [r0] + adds r6, 0x1 + adds r4, 0x1 + ldrb r1, [r4] + adds r0, r1, 0 + cmp r0, 0xFF + bne _081219F4 +_08121A06: + lsls r0, r2, 24 + lsrs r0, 24 + cmp r0, 0x21 + bne _08121A3C + mov r0, r8 + adds r1, r0, r6 + movs r0, 0xFC + strb r0, [r1] + adds r6, 0x1 + mov r2, r8 + adds r1, r2, r6 + movs r0, 0x9 + strb r0, [r1] + adds r6, 0x1 + b _08121A3C + .align 2, 0 +_08121A24: .4byte gUnknown_02024C08 +_08121A28: .4byte gUnknown_084007B2 +_08121A2C: .4byte gUnknown_084007B7 +_08121A30: + mov r3, r8 + adds r0, r3, r6 + strb r1, [r0] + adds r6, 0x1 + mov r3, r9 + adds r3, 0x1 +_08121A3C: + mov r9, r3 + ldrb r1, [r3] +_08121A40: + adds r0, r1, 0 + cmp r0, 0xFF + beq _08121A4A + bl _0812101E +_08121A4A: + mov r5, r8 + adds r1, r5, r6 + mov r2, r9 + ldrb r0, [r2] + strb r0, [r1] + adds r6, 0x1 + adds r0, r6, 0 + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8120FFC + + thumb_func_start sub_8121A68 +sub_8121A68: @ 8121A68 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + adds r7, r0, 0 + adds r6, r1, 0 + movs r5, 0x1 + movs r0, 0 + mov r8, r0 + movs r0, 0xFF + strb r0, [r6] + ldrb r0, [r7, 0x1] + cmp r0, 0xFF + bne _08121A86 + b _08121D0E +_08121A86: + adds r0, r7, r5 + ldrb r1, [r0] + adds r4, r0, 0 + cmp r1, 0xA + bls _08121A92 + b _08121D04 +_08121A92: + lsls r0, r1, 2 + ldr r1, _08121A9C @ =_08121AA0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08121A9C: .4byte _08121AA0 + .align 2, 0 +_08121AA0: + .4byte _08121ACC + .4byte _08121AE8 + .4byte _08121B3C + .4byte _08121B54 + .4byte _08121B64 + .4byte _08121BDC + .4byte _08121BF0 + .4byte _08121C02 + .4byte _08121C48 + .4byte _08121C5C + .4byte _08121C78 +_08121ACC: + adds r0, r5, r7 + ldrb r1, [r0, 0x1] + ldrb r0, [r0, 0x2] + lsls r0, 8 + orrs r1, r0 + ldr r0, _08121AE4 @ =gUnknown_08400F8C + subs r1, 0xC + lsls r1, 2 + adds r1, r0 + ldr r1, [r1] + b _08121CE2 + .align 2, 0 +_08121AE4: .4byte gUnknown_08400F8C +_08121AE8: + ldrb r0, [r4, 0x1] + cmp r0, 0x2 + beq _08121B04 + cmp r0, 0x2 + bgt _08121AF8 + cmp r0, 0x1 + beq _08121AFE + b _08121B26 +_08121AF8: + cmp r0, 0x4 + beq _08121B0C + b _08121B26 +_08121AFE: + ldrb r4, [r4, 0x3] + mov r8, r4 + b _08121B26 +_08121B04: + ldrb r1, [r4, 0x3] + ldrb r0, [r4, 0x4] + lsls r0, 8 + b _08121B22 +_08121B0C: + ldrb r0, [r4, 0x3] + mov r8, r0 + ldrb r0, [r4, 0x4] + lsls r0, 8 + mov r1, r8 + orrs r1, r0 + ldrb r0, [r4, 0x5] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r4, 0x6] + lsls r0, 24 +_08121B22: + orrs r1, r0 + mov r8, r1 +_08121B26: + adds r4, r5, r7 + ldrb r3, [r4, 0x2] + adds r0, r6, 0 + mov r1, r8 + movs r2, 0 + bl ConvertIntToDecimalStringN + adds r0, r5, 0x3 + ldrb r4, [r4, 0x1] + adds r5, r0, r4 + b _08121D04 +_08121B3C: + adds r0, r5, r7 + ldrb r1, [r0, 0x1] + ldrb r0, [r0, 0x2] + lsls r0, 8 + orrs r1, r0 + movs r0, 0xD + muls r1, r0 + ldr r0, _08121B50 @ =gMoveNames + adds r1, r0 + b _08121CE2 + .align 2, 0 +_08121B50: .4byte gMoveNames +_08121B54: + adds r0, r5, r7 + ldrb r0, [r0, 0x1] + lsls r1, r0, 3 + subs r1, r0 + ldr r0, _08121B60 @ =gTypeNames + b _08121C66 + .align 2, 0 +_08121B60: .4byte gTypeNames +_08121B64: + ldrb r0, [r4, 0x1] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08121B88 + ldrb r1, [r4, 0x2] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08121B84 @ =gPlayerParty + adds r0, r1 + movs r1, 0x2 + mov r2, sp + bl GetMonData + b _08121BC4 + .align 2, 0 +_08121B84: .4byte gPlayerParty +_08121B88: + ldr r0, _08121BA0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08121BA8 + ldr r1, _08121BA4 @ =gUnknown_08400797 + adds r0, r6, 0 + bl StringAppend + b _08121BB0 + .align 2, 0 +_08121BA0: .4byte gUnknown_020239F8 +_08121BA4: .4byte gUnknown_08400797 +_08121BA8: + ldr r1, _08121BD4 @ =gUnknown_08400791 + adds r0, r6, 0 + bl StringAppend +_08121BB0: + adds r0, r5, r7 + ldrb r1, [r0, 0x2] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08121BD8 @ =gEnemyParty + adds r0, r1 + movs r1, 0x2 + mov r2, sp + bl GetMonData +_08121BC4: + mov r0, sp + bl StringGetEnd10 + adds r0, r6, 0 + mov r1, sp + bl StringAppend + b _08121D02 + .align 2, 0 +_08121BD4: .4byte gUnknown_08400791 +_08121BD8: .4byte gEnemyParty +_08121BDC: + ldr r1, _08121BEC @ =gUnknown_08400F58 + adds r0, r5, r7 + ldrb r0, [r0, 0x1] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + b _08121C68 + .align 2, 0 +_08121BEC: .4byte gUnknown_08400F58 +_08121BF0: + adds r0, r5, r7 + ldrb r1, [r0, 0x1] + ldrb r0, [r0, 0x2] + lsls r0, 8 + orrs r1, r0 + adds r0, r6, 0 + bl GetSpeciesName + b _08121D02 +_08121C02: + adds r4, r5, r7 + ldrb r0, [r4, 0x1] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08121C28 + ldrb r1, [r4, 0x2] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08121C24 @ =gPlayerParty + adds r0, r1 + movs r1, 0x2 + adds r2, r6, 0 + bl GetMonData + b _08121C3A + .align 2, 0 +_08121C24: .4byte gPlayerParty +_08121C28: + ldrb r1, [r4, 0x2] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08121C44 @ =gEnemyParty + adds r0, r1 + movs r1, 0x2 + adds r2, r6, 0 + bl GetMonData +_08121C3A: + adds r0, r6, 0 + bl StringGetEnd10 + b _08121D02 + .align 2, 0 +_08121C44: .4byte gEnemyParty +_08121C48: + ldr r1, _08121C58 @ =gUnknown_08400F78 + adds r0, r5, r7 + ldrb r0, [r0, 0x1] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + b _08121C68 + .align 2, 0 +_08121C58: .4byte gUnknown_08400F78 +_08121C5C: + adds r0, r5, r7 + ldrb r1, [r0, 0x1] + movs r0, 0xD + muls r1, r0 + ldr r0, _08121C74 @ =gAbilityNames +_08121C66: + adds r1, r0 +_08121C68: + adds r0, r6, 0 + bl StringAppend + adds r5, 0x2 + b _08121D04 + .align 2, 0 +_08121C74: .4byte gAbilityNames +_08121C78: + adds r0, r5, r7 + ldrb r2, [r0, 0x1] + ldrb r0, [r0, 0x2] + lsls r0, 8 + orrs r2, r0 + ldr r0, _08121CC4 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08121CFA + cmp r2, 0xAF + bne _08121CF0 + ldr r2, _08121CC8 @ =gLinkPlayers + ldr r0, _08121CCC @ =0x02000000 + ldr r1, _08121CD0 @ =0x000160cb + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _08121CD4 @ =gUnknown_02024C0B + ldrb r2, [r1] + ldrh r0, [r0, 0x18] + cmp r0, r2 + bne _08121CE0 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + ldr r0, _08121CD8 @ =gEnigmaBerries + adds r1, r0 + adds r0, r6, 0 + bl StringCopy + ldr r1, _08121CDC @ =gUnknown_08400A85 + b _08121CE2 + .align 2, 0 +_08121CC4: .4byte gUnknown_020239F8 +_08121CC8: .4byte gLinkPlayers +_08121CCC: .4byte 0x02000000 +_08121CD0: .4byte 0x000160cb +_08121CD4: .4byte gUnknown_02024C0B +_08121CD8: .4byte gEnigmaBerries +_08121CDC: .4byte gUnknown_08400A85 +_08121CE0: + ldr r1, _08121CEC @ =gUnknown_08400A78 +_08121CE2: + adds r0, r6, 0 + bl StringAppend + b _08121D02 + .align 2, 0 +_08121CEC: .4byte gUnknown_08400A78 +_08121CF0: + adds r0, r2, 0 + adds r1, r6, 0 + bl CopyItemName + b _08121D02 +_08121CFA: + adds r0, r2, 0 + adds r1, r6, 0 + bl CopyItemName +_08121D02: + adds r5, 0x3 +_08121D04: + adds r0, r7, r5 + ldrb r0, [r0] + cmp r0, 0xFF + beq _08121D0E + b _08121A86 +_08121D0E: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8121A68 + + thumb_func_start sub_8121D1C +sub_8121D1C: @ 8121D1C + push {r4,r5,lr} + adds r4, r0, 0 + movs r2, 0 + ldr r5, _08121D50 @ =gUnknown_02039270 + ldr r3, _08121D54 @ =gUnknown_084016BC +_08121D26: + cmp r2, 0x4 + beq _08121D3C + ldrh r1, [r3] + cmp r1, 0 + bne _08121D32 + adds r2, 0x1 +_08121D32: + ldr r0, [r5] + adds r3, 0x2 + ldrh r0, [r0] + cmp r1, r0 + bne _08121D26 +_08121D3C: + cmp r2, 0 + blt _08121D68 + cmp r2, 0x2 + bgt _08121D5C + ldr r1, _08121D58 @ =gUnknown_08400E5E + adds r0, r4, 0 + bl StringCopy + b _08121D68 + .align 2, 0 +_08121D50: .4byte gUnknown_02039270 +_08121D54: .4byte gUnknown_084016BC +_08121D58: .4byte gUnknown_08400E5E +_08121D5C: + cmp r2, 0x4 + bgt _08121D68 + ldr r1, _08121D70 @ =gUnknown_08400E62 + adds r0, r4, 0 + bl StringCopy +_08121D68: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08121D70: .4byte gUnknown_08400E62 + thumb_func_end sub_8121D1C + + thumb_func_start sub_8121D74 +sub_8121D74: @ 8121D74 + push {r4,r5,lr} + adds r3, r0, 0 + movs r4, 0 + b _08121D7E +_08121D7C: + adds r3, 0x1 +_08121D7E: + ldrb r0, [r3] + cmp r0, 0xFF + bne _08121D7C + ldr r1, _08121DB4 @ =gUnknown_084016BC + ldr r5, _08121DB8 @ =gUnknown_02039270 + movs r0, 0 + lsls r0, 1 + adds r2, r0, r1 +_08121D8E: + cmp r4, 0x4 + beq _08121DA8 + ldrh r1, [r2] + cmp r1, 0 + bne _08121D9A + adds r4, 0x1 +_08121D9A: + ldr r0, [r5] + adds r2, 0x2 + ldrh r0, [r0] + cmp r1, r0 + bne _08121D8E + cmp r4, 0x4 + bhi _08121E04 +_08121DA8: + lsls r0, r4, 2 + ldr r1, _08121DBC @ =_08121DC0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08121DB4: .4byte gUnknown_084016BC +_08121DB8: .4byte gUnknown_02039270 +_08121DBC: .4byte _08121DC0 + .align 2, 0 +_08121DC0: + .4byte _08121DD4 + .4byte _08121DDC + .4byte _08121DE4 + .4byte _08121DEC + .4byte _08121DFC +_08121DD4: + ldr r1, _08121DD8 @ =gUnknown_084007C8 + b _08121DEE + .align 2, 0 +_08121DD8: .4byte gUnknown_084007C8 +_08121DDC: + ldr r1, _08121DE0 @ =gUnknown_084007CA + b _08121DEE + .align 2, 0 +_08121DE0: .4byte gUnknown_084007CA +_08121DE4: + ldr r1, _08121DE8 @ =gUnknown_084007CC + b _08121DEE + .align 2, 0 +_08121DE8: .4byte gUnknown_084007CC +_08121DEC: + ldr r1, _08121DF8 @ =gUnknown_084007CE +_08121DEE: + adds r0, r3, 0 + bl StringCopy + b _08121E04 + .align 2, 0 +_08121DF8: .4byte gUnknown_084007CE +_08121DFC: + ldr r1, _08121E0C @ =gUnknown_084007D0 + adds r0, r3, 0 + bl StringCopy +_08121E04: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08121E0C: .4byte gUnknown_084007D0 + thumb_func_end sub_8121D74 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_records.s b/asm/battle_records.s new file mode 100644 index 000000000..aaf7911b2 --- /dev/null +++ b/asm/battle_records.s @@ -0,0 +1,908 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_810FF78 +sub_810FF78: @ 810FF78 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r2, _0810FFA4 @ =0x01000008 + mov r0, sp + adds r1, r4, 0 + bl CpuSet + movs r0, 0xFF + strb r0, [r4] + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810FFA4: .4byte 0x01000008 + thumb_func_end sub_810FF78 + + thumb_func_start sub_810FFA8 +sub_810FFA8: @ 810FFA8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r5, 0x4 +_0810FFAE: + adds r0, r4, 0 + bl sub_810FF78 + adds r4, 0x10 + subs r5, 0x1 + cmp r5, 0 + bge _0810FFAE + movs r0, 0x17 + movs r1, 0 + bl sav12_xor_set + movs r0, 0x18 + movs r1, 0 + bl sav12_xor_set + movs r0, 0x19 + movs r1, 0 + bl sav12_xor_set + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_810FFA8 + + thumb_func_start sub_810FFDC +sub_810FFDC: @ 810FFDC + adds r1, r0, 0 + ldrh r0, [r1, 0xA] + ldrh r2, [r1, 0xC] + adds r0, r2 + ldrh r1, [r1, 0xE] + adds r0, r1 + bx lr + thumb_func_end sub_810FFDC + + thumb_func_start sub_810FFEC +sub_810FFEC: @ 810FFEC + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r1 + lsls r2, 16 + lsrs r7, r2, 16 + movs r5, 0 + ldr r6, _08110024 @ =gStringVar1 + adds r4, r0, 0 +_0810FFFE: + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x7 + bl memcpy + movs r0, 0xFF + strb r0, [r6, 0x7] + adds r0, r6, 0 + mov r1, r8 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + bne _08110028 + ldrh r0, [r4, 0x8] + cmp r0, r7 + bne _08110028 + adds r0, r5, 0 + b _08110032 + .align 2, 0 +_08110024: .4byte gStringVar1 +_08110028: + adds r4, 0x10 + adds r5, 0x1 + cmp r5, 0x4 + ble _0810FFFE + movs r0, 0x5 +_08110032: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_810FFEC + + thumb_func_start sub_811003C +sub_811003C: @ 811003C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + mov r8, r0 + movs r0, 0x4 +_0811004A: + subs r2, r0, 0x1 + mov r9, r2 + cmp r2, 0 + blt _081100A4 + lsls r0, 4 + mov r1, r8 + adds r6, r1, r0 + lsls r0, r2, 4 + adds r5, r0, r1 +_0811005C: + adds r0, r6, 0 + str r2, [sp, 0x10] + bl sub_810FFDC + adds r4, r0, 0 + adds r0, r5, 0 + bl sub_810FFDC + ldr r2, [sp, 0x10] + cmp r4, r0 + ble _08110096 + mov r1, sp + adds r0, r6, 0 + ldm r0!, {r3,r4,r7} + stm r1!, {r3,r4,r7} + ldr r0, [r0] + str r0, [r1] + adds r1, r6, 0 + adds r0, r5, 0 + ldm r0!, {r3,r4,r7} + stm r1!, {r3,r4,r7} + ldr r0, [r0] + str r0, [r1] + adds r1, r5, 0 + mov r0, sp + ldm r0!, {r3,r4,r7} + stm r1!, {r3,r4,r7} + ldr r0, [r0] + str r0, [r1] +_08110096: + subs r5, 0x10 + movs r0, 0x1 + negs r0, r0 + add r9, r0 + mov r1, r9 + cmp r1, 0 + bge _0811005C +_081100A4: + adds r0, r2, 0 + cmp r0, 0 + bgt _0811004A + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_811003C + + thumb_func_start sub_81100B8 +sub_81100B8: @ 81100B8 + push {lr} + adds r2, r0, 0 + cmp r1, 0x2 + beq _081100E8 + cmp r1, 0x2 + bgt _081100CA + cmp r1, 0x1 + beq _081100D0 + b _08110112 +_081100CA: + cmp r1, 0x3 + beq _08110100 + b _08110112 +_081100D0: + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + lsrs r0, 16 + ldr r1, _081100E4 @ =0x0000270f + cmp r0, r1 + bls _08110112 + strh r1, [r2, 0xA] + b _08110112 + .align 2, 0 +_081100E4: .4byte 0x0000270f +_081100E8: + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + lsls r0, 16 + lsrs r0, 16 + ldr r1, _081100FC @ =0x0000270f + cmp r0, r1 + bls _08110112 + strh r1, [r2, 0xC] + b _08110112 + .align 2, 0 +_081100FC: .4byte 0x0000270f +_08110100: + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + lsrs r0, 16 + ldr r1, _08110118 @ =0x0000270f + cmp r0, r1 + bls _08110112 + strh r1, [r2, 0xE] +_08110112: + pop {r0} + bx r0 + .align 2, 0 +_08110118: .4byte 0x0000270f + thumb_func_end sub_81100B8 + + thumb_func_start sub_811011C +sub_811011C: @ 811011C + push {r4,lr} + cmp r0, 0x2 + beq _08110136 + cmp r0, 0x2 + bgt _0811012C + cmp r0, 0x1 + beq _08110132 + b _0811014E +_0811012C: + cmp r0, 0x3 + beq _0811013A + b _0811014E +_08110132: + movs r4, 0x17 + b _0811013C +_08110136: + movs r4, 0x18 + b _0811013C +_0811013A: + movs r4, 0x19 +_0811013C: + adds r0, r4, 0 + bl sub_8053108 + ldr r1, _08110154 @ =0x0000270e + cmp r0, r1 + bhi _0811014E + adds r0, r4, 0 + bl sav12_xor_increment +_0811014E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08110154: .4byte 0x0000270e + thumb_func_end sub_811011C + + thumb_func_start sub_8110158 +sub_8110158: @ 8110158 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r5, r0, 0 + adds r7, r1, 0 + mov r10, r3 + ldr r0, [sp, 0x20] + lsls r2, 16 + lsrs r2, 16 + mov r9, r2 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + mov r0, r10 + bl sub_811011C + adds r0, r5, 0 + bl sub_811003C + adds r0, r5, 0 + adds r1, r7, 0 + mov r2, r9 + bl sub_810FFEC + adds r6, r0, 0 + cmp r6, 0x5 + bne _081101CC + movs r6, 0x4 + adds r4, r5, 0 + adds r4, 0x40 + adds r0, r4, 0 + bl sub_810FF78 + mov r0, r8 + cmp r0, 0x1 + bne _081101BA + movs r0, 0xFC + strb r0, [r4] + movs r0, 0x15 + strb r0, [r4, 0x1] + adds r0, r5, 0 + adds r0, 0x42 + adds r1, r7, 0 + movs r2, 0x5 + bl StringCopyN + b _081101C4 +_081101BA: + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0x7 + bl StringCopyN +_081101C4: + lsls r0, r6, 4 + adds r0, r5, r0 + mov r1, r9 + strh r1, [r0, 0x8] +_081101CC: + lsls r0, r6, 4 + adds r0, r5, r0 + mov r1, r10 + bl sub_81100B8 + adds r0, r5, 0 + bl sub_811003C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8110158 + + thumb_func_start GameFreakRTC_Reset +GameFreakRTC_Reset: @ 81101EC + push {lr} + ldr r0, _081101F8 @ =gSaveBlock1 + 0x30B8 + bl sub_810FFA8 + pop {r0} + bx r0 + .align 2, 0 +_081101F8: .4byte gSaveBlock1 + 0x30B8 + thumb_func_end GameFreakRTC_Reset + + thumb_func_start sub_81101FC +sub_81101FC: @ 81101FC + push {lr} + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 3 + ldr r0, _08110220 @ =gUnknown_0202FFD4 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + ldr r2, _08110224 @ =0x0000270f + cmp r0, r2 + bls _0811021A + strh r2, [r1] +_0811021A: + pop {r0} + bx r0 + .align 2, 0 +_08110220: .4byte gUnknown_0202FFD4 +_08110224: .4byte 0x0000270f + thumb_func_end sub_81101FC + + thumb_func_start sub_8110228 +sub_8110228: @ 8110228 + push {lr} + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 3 + ldr r0, _0811024C @ =gUnknown_0202FFD6 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + ldr r2, _08110250 @ =0x0000270f + cmp r0, r2 + bls _08110246 + strh r2, [r1] +_08110246: + pop {r0} + bx r0 + .align 2, 0 +_0811024C: .4byte gUnknown_0202FFD6 +_08110250: .4byte 0x0000270f + thumb_func_end sub_8110228 + + thumb_func_start sub_8110254 +sub_8110254: @ 8110254 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _08110268 @ =gUnknown_02024D26 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0811026C + cmp r0, 0x2 + beq _0811027A + b _08110288 + .align 2, 0 +_08110268: .4byte gUnknown_02024D26 +_0811026C: + eors r0, r4 + bl sub_81101FC + adds r0, r4, 0 + bl sub_8110228 + b _08110288 +_0811027A: + movs r0, 0x1 + eors r0, r4 + bl sub_8110228 + adds r0, r4, 0 + bl sub_81101FC +_08110288: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8110254 + + thumb_func_start sub_8110290 +sub_8110290: @ 8110290 + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + bl sub_8110254 + ldr r0, _081102D4 @ =gSaveBlock1 + 0x30B8 + lsls r2, r4, 3 + subs r2, r4 + lsls r2, 3 + ldr r3, _081102D8 @ =gUnknown_0202FFF0 + adds r1, r2, r3 + subs r3, 0x30 + adds r2, r3 + ldrh r2, [r2, 0xE] + ldr r3, _081102DC @ =gUnknown_02024D26 + ldrb r3, [r3] + ldr r6, _081102E0 @ =gLinkPlayers + ldr r5, _081102E4 @ =gUnknown_02029818 + lsls r4, 2 + adds r4, r5 + ldrb r5, [r4, 0x1] + lsls r4, r5, 3 + subs r4, r5 + lsls r4, 2 + adds r4, r6 + ldrb r4, [r4, 0x1A] + str r4, [sp] + bl sub_8110158 + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081102D4: .4byte gSaveBlock1 + 0x30B8 +_081102D8: .4byte gUnknown_0202FFF0 +_081102DC: .4byte gUnknown_02024D26 +_081102E0: .4byte gLinkPlayers +_081102E4: .4byte gUnknown_02029818 + thumb_func_end sub_8110290 + + thumb_func_start sub_81102E8 +sub_81102E8: @ 81102E8 + push {r4,lr} + ldr r4, _08110338 @ =gStringVar1 + movs r0, 0x17 + bl sub_8053108 + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN_DigitWidth6 + ldr r4, _0811033C @ =gStringVar2 + movs r0, 0x18 + bl sub_8053108 + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN_DigitWidth6 + ldr r4, _08110340 @ =gStringVar3 + movs r0, 0x19 + bl sub_8053108 + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN_DigitWidth6 + ldr r0, _08110344 @ =gOtherText_WinRecord + movs r1, 0x3 + movs r2, 0x3 + bl MenuPrint + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08110338: .4byte gStringVar1 +_0811033C: .4byte gStringVar2 +_08110340: .4byte gStringVar3 +_08110344: .4byte gOtherText_WinRecord + thumb_func_end sub_81102E8 + + thumb_func_start sub_8110348 +sub_8110348: @ 8110348 + push {r4-r7,lr} + sub sp, 0x10 + adds r7, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + ldrh r0, [r7, 0xA] + cmp r0, 0 + bne _081103C0 + ldr r0, [r7, 0xC] + cmp r0, 0 + bne _081103C0 + mov r0, sp + movs r2, 0xFC + strb r2, [r0] + mov r1, sp + movs r0, 0x14 + strb r0, [r1, 0x1] + movs r0, 0x6 + strb r0, [r1, 0x2] + mov r0, sp + strb r2, [r0, 0x3] + movs r0, 0x11 + strb r0, [r1, 0x4] + movs r0, 0x1 + strb r0, [r1, 0x5] + mov r4, sp + adds r4, 0x6 + ldr r1, _081103B8 @ =gOtherText_SevenDashes + adds r0, r4, 0 + bl StringCopy + mov r0, sp + movs r1, 0x3 + adds r2, r6, 0 + bl MenuPrint + ldr r1, _081103BC @ =gOtherText_FourDashes + adds r0, r4, 0 + bl StringCopy + mov r0, sp + movs r1, 0xB + adds r2, r6, 0 + bl MenuPrint + mov r0, sp + movs r1, 0x11 + adds r2, r6, 0 + bl MenuPrint + mov r0, sp + movs r1, 0x17 + adds r2, r6, 0 + bl MenuPrint + b _0811042E + .align 2, 0 +_081103B8: .4byte gOtherText_SevenDashes +_081103BC: .4byte gOtherText_FourDashes +_081103C0: + ldr r4, _08110438 @ =gStringVar1 + adds r0, r4, 0 + movs r1, 0x8 + bl StringFillWithTerminator + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0x7 + bl StringCopyN + adds r0, r4, 0 + movs r1, 0x3 + adds r2, r6, 0 + bl MenuPrint + movs r0, 0xFC + strb r0, [r4] + movs r0, 0x14 + strb r0, [r4, 0x1] + movs r0, 0x6 + strb r0, [r4, 0x2] + adds r5, r4, 0x3 + ldrh r1, [r7, 0xA] + adds r0, r5, 0 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + adds r0, r4, 0 + movs r1, 0xB + adds r2, r6, 0 + bl MenuPrint + ldrh r1, [r7, 0xC] + adds r0, r5, 0 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + adds r0, r4, 0 + movs r1, 0x11 + adds r2, r6, 0 + bl MenuPrint + ldrh r1, [r7, 0xE] + adds r0, r5, 0 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + adds r0, r4, 0 + movs r1, 0x17 + adds r2, r6, 0 + bl MenuPrint +_0811042E: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08110438: .4byte gStringVar1 + thumb_func_end sub_8110348 + + thumb_func_start sub_811043C +sub_811043C: @ 811043C + push {r4,lr} + movs r0, 0x1 + movs r1, 0 + movs r2, 0x1C + movs r3, 0x12 + bl MenuDrawTextWindow + ldr r0, _08110488 @ =gOtherText_BattleResults + movs r1, 0 + movs r2, 0x1 + movs r3, 0xF0 + bl sub_8072BD8 + ldr r0, _0811048C @ =gSaveBlock1 + 0x30B8 + bl sub_81102E8 + ldr r0, _08110490 @ =gOtherText_WinLoseDraw + movs r1, 0xC + movs r2, 0x6 + bl MenuPrint + movs r4, 0 +_08110468: + lsls r0, r4, 4 + ldr r1, _0811048C @ =gSaveBlock1 + 0x30B8 + adds r0, r1 + adds r4, 0x1 + lsls r1, r4, 25 + movs r2, 0xC0 + lsls r2, 19 + adds r1, r2 + lsrs r1, 24 + bl sub_8110348 + cmp r4, 0x4 + ble _08110468 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08110488: .4byte gOtherText_BattleResults +_0811048C: .4byte gSaveBlock1 + 0x30B8 +_08110490: .4byte gOtherText_WinLoseDraw + thumb_func_end sub_811043C + + thumb_func_start sub_8110494 +sub_8110494: @ 8110494 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _081104B4 @ =gSaveBlock2 + 0xA8 + ldr r2, _081104B8 @ =0x000004ae + adds r1, r2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x6 + bhi _081104E0 + lsls r0, 2 + ldr r1, _081104BC @ =_081104C0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081104B4: .4byte gSaveBlock2 + 0xA8 +_081104B8: .4byte 0x000004ae +_081104BC: .4byte _081104C0 + .align 2, 0 +_081104C0: + .4byte _081104E0 + .4byte _081104E0 + .4byte _081104DC + .4byte _081104DC + .4byte _081104E0 + .4byte _081104E0 + .4byte _081104DC +_081104DC: + movs r0, 0x1 + b _081104E2 +_081104E0: + movs r0, 0 +_081104E2: + pop {r1} + bx r1 + thumb_func_end sub_8110494 + + thumb_func_start sub_81104E8 +sub_81104E8: @ 81104E8 + push {r4-r6,lr} + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 24 + lsrs r2, 24 + adds r5, r2, 0 + lsls r3, 24 + lsrs r3, 24 + adds r6, r3, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl MenuPrint + ldr r0, _0811052C @ =0x0000270f + cmp r4, r0 + bls _0811050A + adds r4, r0, 0 +_0811050A: + ldr r0, _08110530 @ =gStringVar1 + adds r1, r4, 0 + movs r2, 0x18 + movs r3, 0x1 + bl sub_8072C14 + ldr r0, _08110534 @ =gOtherText_WinStreak + adds r1, r5, 0x7 + lsls r1, 24 + lsrs r1, 24 + adds r2, r6, 0 + bl MenuPrint + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811052C: .4byte 0x0000270f +_08110530: .4byte gStringVar1 +_08110534: .4byte gOtherText_WinStreak + thumb_func_end sub_81104E8 + + thumb_func_start sub_8110538 +sub_8110538: @ 8110538 + push {r4,lr} + adds r4, r1, 0 + adds r3, r2, 0 + lsls r0, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r3, 24 + lsrs r3, 24 + ldr r1, _08110564 @ =gSaveBlock2 + 0xA8 + lsrs r0, 23 + movs r2, 0x97 + lsls r2, 3 + adds r1, r2 + adds r0, r1 + ldrh r1, [r0] + ldr r0, _08110568 @ =gOtherText_Record + adds r2, r4, 0 + bl sub_81104E8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08110564: .4byte gSaveBlock2 + 0xA8 +_08110568: .4byte gOtherText_Record + thumb_func_end sub_8110538 + + thumb_func_start sub_811056C +sub_811056C: @ 811056C + push {lr} + lsls r0, 24 + ldr r1, _08110588 @ =gSaveBlock2 + lsrs r0, 23 + ldr r2, _0811058C @ =0x00000574 + adds r1, r2 + adds r0, r1 + ldrh r0, [r0] + ldr r1, _08110590 @ =0x0000270f + cmp r0, r1 + bls _08110584 + adds r0, r1, 0 +_08110584: + pop {r1} + bx r1 + .align 2, 0 +_08110588: .4byte gSaveBlock2 +_0811058C: .4byte 0x00000574 +_08110590: .4byte 0x0000270f + thumb_func_end sub_811056C + + thumb_func_start sub_8110594 +sub_8110594: @ 8110594 + push {r4-r7,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r7, r2, 24 + adds r0, r4, 0 + bl sub_811056C + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + bl sub_8110494 + cmp r0, 0x1 + bne _081105CC + ldr r0, _081105C8 @ =gOtherText_Current + adds r1, r5, 0 + adds r2, r6, 0 + adds r3, r7, 0 + bl sub_81104E8 + b _081105D8 + .align 2, 0 +_081105C8: .4byte gOtherText_Current +_081105CC: + ldr r0, _081105E0 @ =gOtherText_Prev + adds r1, r5, 0 + adds r2, r6, 0 + adds r3, r7, 0 + bl sub_81104E8 +_081105D8: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081105E0: .4byte gOtherText_Prev + thumb_func_end sub_8110594 + + thumb_func_start sub_81105E4 +sub_81105E4: @ 81105E4 + push {r4,lr} + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0x1B + movs r3, 0x11 + bl MenuDrawTextWindow + ldr r0, _08110658 @ =gOtherText_BattleTowerResults + movs r1, 0x3 + movs r2, 0x2 + movs r3, 0xC8 + bl sub_8072BD8 + ldr r0, _0811065C @ =gOtherText_Lv50 + movs r1, 0x5 + movs r2, 0x6 + bl MenuPrint + ldr r0, _08110660 @ =gOtherText_Lv100 + movs r1, 0x5 + movs r2, 0xC + bl MenuPrint + movs r4, 0x5 +_08110614: + lsls r1, r4, 24 + lsrs r1, 24 + movs r0, 0xAE + movs r2, 0xA + bl sub_8071F60 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x19 + bls _08110614 + movs r0, 0 + movs r1, 0xA + movs r2, 0x6 + bl sub_8110594 + movs r0, 0 + movs r1, 0xA + movs r2, 0x8 + bl sub_8110538 + movs r0, 0x1 + movs r1, 0xA + movs r2, 0xC + bl sub_8110594 + movs r0, 0x1 + movs r1, 0xA + movs r2, 0xE + bl sub_8110538 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08110658: .4byte gOtherText_BattleTowerResults +_0811065C: .4byte gOtherText_Lv50 +_08110660: .4byte gOtherText_Lv100 + thumb_func_end sub_81105E4 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_transition.s b/asm/battle_transition.s new file mode 100644 index 000000000..66443242b --- /dev/null +++ b/asm/battle_transition.s @@ -0,0 +1,6254 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_811AABC +sub_811AABC: @ 811AABC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0811AAD0 @ =gMain + ldr r1, _0811AAD4 @ =sub_8054398 + str r1, [r2, 0x4] + bl sub_811AB20 + pop {r0} + bx r0 + .align 2, 0 +_0811AAD0: .4byte gMain +_0811AAD4: .4byte sub_8054398 + thumb_func_end sub_811AABC + + thumb_func_start sub_811AAD8 +sub_811AAD8: @ 811AAD8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_811AB20 + pop {r0} + bx r0 + thumb_func_end sub_811AAD8 + + thumb_func_start sub_811AAE8 +sub_811AAE8: @ 811AAE8 + push {lr} + ldr r0, _0811AB0C @ =sub_811AB50 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _0811AB10 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + movs r1, 0x26 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _0811AB14 + movs r0, 0 + b _0811AB1C + .align 2, 0 +_0811AB0C: .4byte sub_811AB50 +_0811AB10: .4byte gTasks +_0811AB14: + adds r0, r2, 0 + bl DestroyTask + movs r0, 0x1 +_0811AB1C: + pop {r1} + bx r1 + thumb_func_end sub_811AAE8 + + thumb_func_start sub_811AB20 +sub_811AB20: @ 811AB20 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0811AB48 @ =sub_811AB50 + movs r1, 0x2 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0811AB4C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0xA] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811AB48: .4byte sub_811AB50 +_0811AB4C: .4byte gTasks + thumb_func_end sub_811AB20 + + thumb_func_start sub_811AB50 +sub_811AB50: @ 811AB50 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _0811AB80 @ =gUnknown_083FD794 + ldr r2, _0811AB84 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_0811AB62: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0811AB62 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811AB80: .4byte gUnknown_083FD794 +_0811AB84: .4byte gTasks + thumb_func_end sub_811AB50 + + thumb_func_start sub_811AB88 +sub_811AB88: @ 811AB88 + push {r4,lr} + adds r4, r0, 0 + bl sub_807DE10 + ldr r0, _0811ABB4 @ =gPlttBufferFaded + ldr r1, _0811ABB8 @ =gPlttBufferUnfaded + ldr r2, _0811ABBC @ =0x04000100 + bl CpuSet + ldr r1, _0811ABC0 @ =gUnknown_083FD70C + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + bne _0811ABC4 + movs r0, 0x2 + strh r0, [r4, 0x8] + movs r0, 0x1 + b _0811ABD2 + .align 2, 0 +_0811ABB4: .4byte gPlttBufferFaded +_0811ABB8: .4byte gPlttBufferUnfaded +_0811ABBC: .4byte 0x04000100 +_0811ABC0: .4byte gUnknown_083FD70C +_0811ABC4: + movs r1, 0x4 + bl CreateTask + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 +_0811ABD2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_811AB88 + + thumb_func_start sub_811ABD8 +sub_811ABD8: @ 811ABD8 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _0811ABF8 @ =gUnknown_083FD70C + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _0811ABFC + movs r0, 0 + b _0811AC04 + .align 2, 0 +_0811ABF8: .4byte gUnknown_083FD70C +_0811ABFC: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x1 +_0811AC04: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_811ABD8 + + thumb_func_start sub_811AC0C +sub_811AC0C: @ 811AC0C + push {r4,lr} + adds r4, r0, 0 + ldr r1, _0811AC30 @ =gBattleTransitionFuncs + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + bl CreateTask + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811AC30: .4byte gBattleTransitionFuncs + thumb_func_end sub_811AC0C + + thumb_func_start sub_811AC34 +sub_811AC34: @ 811AC34 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0 + strh r0, [r4, 0x26] + ldr r1, _0811AC60 @ =gBattleTransitionFuncs + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0811AC58 + movs r0, 0x1 + strh r0, [r4, 0x26] +_0811AC58: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811AC60: .4byte gBattleTransitionFuncs + thumb_func_end sub_811AC34 + + thumb_func_start sub_811AC64 +sub_811AC64: @ 811AC64 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r1, _0811AC98 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0x8] + movs r3, 0x8 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _0811AC9C + adds r0, r2, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x2 + str r0, [sp] + movs r0, 0 + movs r1, 0 + movs r2, 0x3 + movs r3, 0x2 + bl sub_811D4C8 + b _0811ACAC + .align 2, 0 +_0811AC98: .4byte gTasks +_0811AC9C: + bl sub_811D52C + lsls r0, 24 + cmp r0, 0 + beq _0811ACAC + adds r0, r4, 0 + bl DestroyTask +_0811ACAC: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_811AC64 + + thumb_func_start sub_811ACB4 +sub_811ACB4: @ 811ACB4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _0811ACE4 @ =gUnknown_083FD7A4 + ldr r2, _0811ACE8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_0811ACC6: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0811ACC6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811ACE4: .4byte gUnknown_083FD7A4 +_0811ACE8: .4byte gTasks + thumb_func_end sub_811ACB4 + + thumb_func_start sub_811ACEC +sub_811ACEC: @ 811ACEC + ldr r2, _0811AD18 @ =REG_MOSAIC + movs r1, 0 + strh r1, [r2] + subs r2, 0x42 + ldrh r1, [r2] + movs r3, 0x40 + orrs r1, r3 + strh r1, [r2] + adds r2, 0x2 + ldrh r1, [r2] + orrs r1, r3 + strh r1, [r2] + adds r2, 0x2 + ldrh r1, [r2] + orrs r1, r3 + strh r1, [r2] + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + movs r0, 0x1 + bx lr + .align 2, 0 +_0811AD18: .4byte REG_MOSAIC + thumb_func_end sub_811ACEC + + thumb_func_start sub_811AD1C +sub_811AD1C: @ 811AD1C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldrh r0, [r4, 0xA] + movs r1, 0xA + ldrsh r2, [r4, r1] + cmp r2, 0 + beq _0811AD32 + subs r0, 0x1 + strh r0, [r4, 0xA] + b _0811AD70 +_0811AD32: + movs r0, 0x4 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _0811AD54 + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + adds r0, r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade +_0811AD54: + ldr r2, _0811AD7C @ =REG_MOSAIC + ldrh r0, [r4, 0xC] + movs r1, 0xF + ands r1, r0 + lsls r0, r1, 4 + adds r0, r1 + strh r0, [r2] + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0xE + ble _0811AD70 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_0811AD70: + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811AD7C: .4byte REG_MOSAIC + thumb_func_end sub_811AD1C + + thumb_func_start sub_811AD80 +sub_811AD80: @ 811AD80 + push {lr} + ldr r0, _0811ADA4 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0811AD9C + ldr r0, _0811ADA8 @ =sub_811ACB4 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_0811AD9C: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0811ADA4: .4byte gPaletteFade +_0811ADA8: .4byte sub_811ACB4 + thumb_func_end sub_811AD80 + + thumb_func_start sub_811ADAC +sub_811ADAC: @ 811ADAC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _0811ADDC @ =gUnknown_083FD7B0 + ldr r2, _0811ADE0 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_0811ADBE: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0811ADBE + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811ADDC: .4byte gUnknown_083FD7B0 +_0811ADE0: .4byte gTasks + thumb_func_end sub_811ADAC + + thumb_func_start sub_811ADE4 +sub_811ADE4: @ 811ADE4 + push {r4,r5,lr} + sub sp, 0x8 + adds r5, r0, 0 + bl sub_811D658 + bl dp12_8087EA4 + movs r0, 0x1 + negs r0, r0 + movs r4, 0 + str r4, [sp] + movs r1, 0x4 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _0811AE54 @ =gUnknown_03005560 + ldr r1, _0811AE58 @ =0x0200c000 + movs r2, 0x14 + ldrsh r1, [r1, r2] + str r4, [sp] + movs r2, 0xA0 + str r2, [sp, 0x4] + movs r2, 0 + movs r3, 0x2 + bl sub_811D6E8 + ldr r0, _0811AE5C @ =sub_811AEE0 + bl SetVBlankCallback + ldr r0, _0811AE60 @ =sub_811AF18 + bl SetHBlankCallback + ldr r3, _0811AE64 @ =0x04000208 + ldrh r2, [r3] + strh r4, [r3] + ldr r4, _0811AE68 @ =0x04000200 + ldrh r0, [r4] + movs r1, 0x3 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _0811AE6C @ =REG_DISPSTAT + ldrh r0, [r2] + movs r1, 0x18 + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0811AE54: .4byte gUnknown_03005560 +_0811AE58: .4byte 0x0200c000 +_0811AE5C: .4byte sub_811AEE0 +_0811AE60: .4byte sub_811AF18 +_0811AE64: .4byte 0x04000208 +_0811AE68: .4byte 0x04000200 +_0811AE6C: .4byte REG_DISPSTAT + thumb_func_end sub_811ADE4 + + thumb_func_start sub_811AE70 +sub_811AE70: @ 811AE70 + push {r4,r5,lr} + sub sp, 0x8 + ldr r4, _0811AED0 @ =0x0200c000 + ldrb r1, [r4] + movs r1, 0 + strb r1, [r4] + ldrh r1, [r0, 0xA] + adds r1, 0x4 + strh r1, [r0, 0xA] + ldrh r1, [r0, 0xC] + adds r1, 0x8 + strh r1, [r0, 0xC] + ldr r3, _0811AED4 @ =gUnknown_03004DE0 + movs r2, 0x14 + ldrsh r1, [r4, r2] + movs r5, 0xA + ldrsh r2, [r0, r5] + movs r5, 0xC + ldrsh r0, [r0, r5] + str r0, [sp] + movs r0, 0xA0 + str r0, [sp, 0x4] + adds r0, r3, 0 + movs r3, 0x2 + bl sub_811D6E8 + ldr r0, _0811AED8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0811AEBE + ldr r0, _0811AEDC @ =sub_811ADAC + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_0811AEBE: + ldrb r0, [r4] + adds r0, 0x1 + ldrb r1, [r4] + strb r0, [r4] + movs r0, 0 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0811AED0: .4byte 0x0200c000 +_0811AED4: .4byte gUnknown_03004DE0 +_0811AED8: .4byte gPaletteFade +_0811AEDC: .4byte sub_811ADAC + thumb_func_end sub_811AE70 + + thumb_func_start sub_811AEE0 +sub_811AEE0: @ 811AEE0 + push {lr} + bl sub_811D67C + ldr r0, _0811AF08 @ =0x0200c000 + ldrb r0, [r0] + cmp r0, 0 + beq _0811AF02 + ldr r1, _0811AF0C @ =0x040000d4 + ldr r0, _0811AF10 @ =gUnknown_03004DE0 + str r0, [r1] + movs r2, 0xF0 + lsls r2, 3 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _0811AF14 @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_0811AF02: + pop {r0} + bx r0 + .align 2, 0 +_0811AF08: .4byte 0x0200c000 +_0811AF0C: .4byte 0x040000d4 +_0811AF10: .4byte gUnknown_03004DE0 +_0811AF14: .4byte 0x800000a0 + thumb_func_end sub_811AEE0 + + thumb_func_start sub_811AF18 +sub_811AF18: @ 811AF18 + ldr r1, _0811AF38 @ =gUnknown_03004DE0 + ldr r0, _0811AF3C @ =REG_VCOUNT + ldrh r0, [r0] + lsls r0, 1 + movs r2, 0xF0 + lsls r2, 3 + adds r1, r2 + adds r0, r1 + ldrh r1, [r0] + ldr r0, _0811AF40 @ =REG_BG1HOFS + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + bx lr + .align 2, 0 +_0811AF38: .4byte gUnknown_03004DE0 +_0811AF3C: .4byte REG_VCOUNT +_0811AF40: .4byte REG_BG1HOFS + thumb_func_end sub_811AF18 + + thumb_func_start sub_811AF44 +sub_811AF44: @ 811AF44 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _0811AF74 @ =gUnknown_083FD7B8 + ldr r2, _0811AF78 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_0811AF56: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0811AF56 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811AF74: .4byte gUnknown_083FD7B8 +_0811AF78: .4byte gTasks + thumb_func_end sub_811AF44 + + thumb_func_start sub_811AF7C +sub_811AF7C: @ 811AF7C + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + bl sub_811D658 + bl dp12_8087EA4 + movs r0, 0x1 + negs r0, r0 + movs r4, 0 + str r4, [sp] + movs r1, 0x4 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0811AFE4 @ =0x0200c000 + ldr r0, _0811AFE8 @ =gUnknown_03005560 + movs r2, 0x16 + ldrsh r1, [r1, r2] + movs r2, 0xA0 + lsls r2, 1 + bl memset + ldr r0, _0811AFEC @ =sub_811B08C + bl SetVBlankCallback + ldr r0, _0811AFF0 @ =sub_811B0C4 + bl SetHBlankCallback + ldr r3, _0811AFF4 @ =0x04000208 + ldrh r2, [r3] + strh r4, [r3] + ldr r4, _0811AFF8 @ =0x04000200 + ldrh r0, [r4] + movs r1, 0x3 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _0811AFFC @ =REG_DISPSTAT + ldrh r0, [r2] + movs r1, 0x18 + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0811AFE4: .4byte 0x0200c000 +_0811AFE8: .4byte gUnknown_03005560 +_0811AFEC: .4byte sub_811B08C +_0811AFF0: .4byte sub_811B0C4 +_0811AFF4: .4byte 0x04000208 +_0811AFF8: .4byte 0x04000200 +_0811AFFC: .4byte REG_DISPSTAT + thumb_func_end sub_811AF7C + + thumb_func_start sub_811B000 +sub_811B000: @ 811B000 + push {r4-r7,lr} + ldr r2, _0811B07C @ =0x0200c000 + ldrb r1, [r2] + movs r1, 0 + strb r1, [r2] + ldrh r4, [r0, 0xA] + ldrh r2, [r0, 0xC] + lsls r3, r2, 16 + asrs r3, 24 + movs r5, 0x84 + lsls r5, 5 + adds r1, r4, r5 + strh r1, [r0, 0xA] + movs r1, 0xC0 + lsls r1, 1 + adds r2, r1 + strh r2, [r0, 0xC] + movs r5, 0 + lsls r7, r3, 16 +_0811B026: + lsrs r0, r4, 8 + asrs r1, r7, 16 + bl Sin + ldr r2, _0811B080 @ =gUnknown_03004DE0 + lsls r1, r5, 1 + adds r1, r2 + ldr r6, _0811B07C @ =0x0200c000 + ldrh r2, [r6, 0x16] + adds r0, r2 + strh r0, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + movs r1, 0x84 + lsls r1, 5 + adds r0, r4, r1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r5, 0x9F + bls _0811B026 + ldr r0, _0811B084 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0811B06A + ldr r0, _0811B088 @ =sub_811AF44 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_0811B06A: + ldrb r0, [r6] + adds r0, 0x1 + ldrb r1, [r6] + strb r0, [r6] + movs r0, 0 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0811B07C: .4byte 0x0200c000 +_0811B080: .4byte gUnknown_03004DE0 +_0811B084: .4byte gPaletteFade +_0811B088: .4byte sub_811AF44 + thumb_func_end sub_811B000 + + thumb_func_start sub_811B08C +sub_811B08C: @ 811B08C + push {lr} + bl sub_811D67C + ldr r0, _0811B0B4 @ =0x0200c000 + ldrb r0, [r0] + cmp r0, 0 + beq _0811B0AE + ldr r1, _0811B0B8 @ =0x040000d4 + ldr r0, _0811B0BC @ =gUnknown_03004DE0 + str r0, [r1] + movs r2, 0xF0 + lsls r2, 3 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _0811B0C0 @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_0811B0AE: + pop {r0} + bx r0 + .align 2, 0 +_0811B0B4: .4byte 0x0200c000 +_0811B0B8: .4byte 0x040000d4 +_0811B0BC: .4byte gUnknown_03004DE0 +_0811B0C0: .4byte 0x800000a0 + thumb_func_end sub_811B08C + + thumb_func_start sub_811B0C4 +sub_811B0C4: @ 811B0C4 + ldr r1, _0811B0E4 @ =gUnknown_03004DE0 + ldr r0, _0811B0E8 @ =REG_VCOUNT + ldrh r0, [r0] + lsls r0, 1 + movs r2, 0xF0 + lsls r2, 3 + adds r1, r2 + adds r0, r1 + ldrh r1, [r0] + ldr r0, _0811B0EC @ =REG_BG1VOFS + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + bx lr + .align 2, 0 +_0811B0E4: .4byte gUnknown_03004DE0 +_0811B0E8: .4byte REG_VCOUNT +_0811B0EC: .4byte REG_BG1VOFS + thumb_func_end sub_811B0C4 + + thumb_func_start sub_811B0F0 +sub_811B0F0: @ 811B0F0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _0811B120 @ =gUnknown_083FD7C0 + ldr r2, _0811B124 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_0811B102: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0811B102 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811B120: .4byte gUnknown_083FD7C0 +_0811B124: .4byte gTasks + thumb_func_end sub_811B0F0 + + thumb_func_start sub_811B128 +sub_811B128: @ 811B128 + push {r4-r6,lr} + sub sp, 0xC + adds r4, r0, 0 + bl sub_811D658 + bl dp12_8087EA4 + movs r2, 0 + movs r3, 0x10 + strh r3, [r4, 0xA] + strh r2, [r4, 0xC] + strh r2, [r4, 0x10] + movs r0, 0x80 + lsls r0, 7 + strh r0, [r4, 0x12] + ldr r1, _0811B1BC @ =0x0200c000 + movs r0, 0x3F + strh r0, [r1, 0x2] + strh r2, [r1, 0x4] + movs r0, 0xF0 + strh r0, [r1, 0x6] + movs r0, 0xA0 + strh r0, [r1, 0x8] + ldr r0, _0811B1C0 @ =0x00003f41 + strh r0, [r1, 0xE] + lsls r3, 8 + strh r3, [r1, 0x10] + movs r1, 0 + add r5, sp, 0x4 + add r6, sp, 0x8 + ldr r3, _0811B1C4 @ =gUnknown_03005560 + movs r2, 0xF0 +_0811B168: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x9F + bls _0811B168 + ldr r0, _0811B1C8 @ =sub_811B520 + bl SetVBlankCallback + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_811D6A8 + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r1, [sp, 0x4] + ldr r2, _0811B1CC @ =0x01000400 + mov r0, sp + bl CpuSet + ldr r0, _0811B1D0 @ =gUnknown_083FBB88 + ldr r1, [sp, 0x8] + movs r2, 0xB0 + lsls r2, 2 + bl CpuSet + ldr r0, _0811B1D4 @ =gFieldEffectObjectPalette10 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0811B1BC: .4byte 0x0200c000 +_0811B1C0: .4byte 0x00003f41 +_0811B1C4: .4byte gUnknown_03005560 +_0811B1C8: .4byte sub_811B520 +_0811B1CC: .4byte 0x01000400 +_0811B1D0: .4byte gUnknown_083FBB88 +_0811B1D4: .4byte gFieldEffectObjectPalette10 + thumb_func_end sub_811B128 + + thumb_func_start sub_811B1D8 +sub_811B1D8: @ 811B1D8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + adds r7, r0, 0 + ldr r5, _0811B260 @ =gUnknown_083FDB44 + add r1, sp, 0xC + add r0, sp, 0x8 + bl sub_811D6A8 + movs r1, 0 + ldr r0, [sp, 0x8] + mov r9, r0 + ldr r6, _0811B264 @ =gUnknown_03004DE0 + mov r8, r6 + movs r0, 0xF0 + lsls r0, 8 + mov r12, r0 +_0811B1FE: + movs r0, 0 + lsls r3, r1, 16 + asrs r4, r3, 11 +_0811B204: + lsls r2, r0, 16 + asrs r2, 16 + adds r1, r4, r2 + lsls r1, 1 + add r1, r9 + ldrh r0, [r5] + mov r6, r12 + orrs r0, r6 + strh r0, [r1] + adds r2, 0x1 + lsls r2, 16 + adds r5, 0x2 + lsrs r0, r2, 16 + asrs r2, 16 + cmp r2, 0x1D + ble _0811B204 + movs r1, 0x80 + lsls r1, 9 + adds r0, r3, r1 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _0811B1FE + movs r6, 0x10 + ldrsh r2, [r7, r6] + movs r1, 0x12 + ldrsh r0, [r7, r1] + str r0, [sp] + movs r0, 0xA0 + str r0, [sp, 0x4] + mov r0, r8 + movs r1, 0 + movs r3, 0x84 + bl sub_811D6E8 + ldrh r0, [r7, 0x8] + adds r0, 0x1 + strh r0, [r7, 0x8] + movs r0, 0x1 + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0811B260: .4byte gUnknown_083FDB44 +_0811B264: .4byte gUnknown_03004DE0 + thumb_func_end sub_811B1D8 + + thumb_func_start sub_811B268 +sub_811B268: @ 811B268 + push {r4,lr} + sub sp, 0x8 + adds r2, r0, 0 + ldr r1, _0811B2E8 @ =0x0200c000 + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldrh r3, [r2, 0xE] + movs r4, 0xE + ldrsh r0, [r2, r4] + adds r4, r1, 0 + cmp r0, 0 + beq _0811B28C + subs r0, r3, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _0811B296 +_0811B28C: + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + movs r0, 0x2 + strh r0, [r2, 0xE] +_0811B296: + ldrh r0, [r2, 0xA] + lsls r0, 8 + ldrh r1, [r2, 0xC] + orrs r0, r1 + strh r0, [r4, 0x10] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0xF + ble _0811B2AE + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] +_0811B2AE: + ldrh r0, [r2, 0x10] + adds r0, 0x8 + strh r0, [r2, 0x10] + ldr r0, _0811B2EC @ =0xffffff00 + adds r1, r0, 0 + ldrh r3, [r2, 0x12] + adds r1, r3 + strh r1, [r2, 0x12] + ldr r0, _0811B2F0 @ =gUnknown_03004DE0 + movs r3, 0x10 + ldrsh r2, [r2, r3] + lsls r1, 16 + asrs r1, 24 + str r1, [sp] + movs r1, 0xA0 + str r1, [sp, 0x4] + movs r1, 0 + movs r3, 0x84 + bl sub_811D6E8 + ldrb r0, [r4] + adds r0, 0x1 + ldrb r1, [r4] + strb r0, [r4] + movs r0, 0 + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811B2E8: .4byte 0x0200c000 +_0811B2EC: .4byte 0xffffff00 +_0811B2F0: .4byte gUnknown_03004DE0 + thumb_func_end sub_811B268 + + thumb_func_start sub_811B2F4 +sub_811B2F4: @ 811B2F4 + push {r4,r5,lr} + sub sp, 0x8 + adds r3, r0, 0 + ldr r1, _0811B374 @ =0x0200c000 + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldrh r2, [r3, 0xE] + movs r4, 0xE + ldrsh r0, [r3, r4] + adds r4, r1, 0 + cmp r0, 0 + beq _0811B318 + subs r0, r2, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _0811B322 +_0811B318: + ldrh r0, [r3, 0xA] + subs r0, 0x1 + strh r0, [r3, 0xA] + movs r0, 0x2 + strh r0, [r3, 0xE] +_0811B322: + ldrh r0, [r3, 0xA] + lsls r1, r0, 8 + ldrh r2, [r3, 0xC] + orrs r1, r2 + strh r1, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bne _0811B338 + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] +_0811B338: + ldrh r0, [r3, 0x10] + adds r0, 0x8 + strh r0, [r3, 0x10] + ldr r5, _0811B378 @ =0xffffff00 + adds r1, r5, 0 + ldrh r0, [r3, 0x12] + adds r1, r0 + strh r1, [r3, 0x12] + ldr r0, _0811B37C @ =gUnknown_03004DE0 + movs r5, 0x10 + ldrsh r2, [r3, r5] + lsls r1, 16 + asrs r1, 24 + str r1, [sp] + movs r1, 0xA0 + str r1, [sp, 0x4] + movs r1, 0 + movs r3, 0x84 + bl sub_811D6E8 + ldrb r0, [r4] + adds r0, 0x1 + ldrb r1, [r4] + strb r0, [r4] + movs r0, 0 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0811B374: .4byte 0x0200c000 +_0811B378: .4byte 0xffffff00 +_0811B37C: .4byte gUnknown_03004DE0 + thumb_func_end sub_811B2F4 + + thumb_func_start sub_811B380 +sub_811B380: @ 811B380 + push {r4-r7,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldr r5, _0811B3E0 @ =0x0200c000 + ldrb r0, [r5] + movs r7, 0 + strb r7, [r5] + ldrh r0, [r4, 0x10] + adds r0, 0x8 + strh r0, [r4, 0x10] + ldr r0, _0811B3E4 @ =0xffffff00 + adds r1, r0, 0 + ldrh r3, [r4, 0x12] + adds r1, r3 + strh r1, [r4, 0x12] + ldr r0, _0811B3E8 @ =gUnknown_03004DE0 + movs r3, 0x10 + ldrsh r2, [r4, r3] + lsls r1, 16 + asrs r1, 24 + str r1, [sp] + movs r6, 0xA0 + str r6, [sp, 0x4] + movs r1, 0 + movs r3, 0x84 + bl sub_811D6E8 + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + bgt _0811B3CE + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + strh r6, [r4, 0xA] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r4, 0xC] + strh r7, [r4, 0xE] +_0811B3CE: + ldrb r0, [r5] + adds r0, 0x1 + ldrb r1, [r5] + strb r0, [r5] + movs r0, 0 + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0811B3E0: .4byte 0x0200c000 +_0811B3E4: .4byte 0xffffff00 +_0811B3E8: .4byte gUnknown_03004DE0 + thumb_func_end sub_811B380 + + thumb_func_start sub_811B3EC +sub_811B3EC: @ 811B3EC + push {r4,lr} + adds r4, r0, 0 + ldr r0, _0811B488 @ =0x0200c000 + ldrb r1, [r0] + movs r3, 0 + strb r3, [r0] + ldrh r2, [r4, 0xC] + movs r0, 0xC + ldrsh r1, [r4, r0] + ldr r0, _0811B48C @ =0x000003ff + cmp r1, r0 + bgt _0811B40A + adds r0, r2, 0 + adds r0, 0x80 + strh r0, [r4, 0xC] +_0811B40A: + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _0811B426 + ldrh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 24 + subs r0, r1, r0 + strh r0, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + bge _0811B426 + strh r3, [r4, 0xA] +_0811B426: + ldr r0, _0811B490 @ =gUnknown_03004DE0 + movs r1, 0xA + ldrsh r3, [r4, r1] + movs r1, 0x78 + movs r2, 0x50 + bl sub_811D764 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _0811B462 + ldr r1, _0811B494 @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _0811B498 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _0811B49C @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + bl sub_811D6D4 + ldr r0, _0811B4A0 @ =sub_811B0F0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_0811B462: + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _0811B476 + adds r0, r1, 0x1 + strh r0, [r4, 0xE] + ldr r0, _0811B4A4 @ =sub_811B54C + bl SetVBlankCallback +_0811B476: + ldr r0, _0811B488 @ =0x0200c000 + ldrb r1, [r0] + adds r1, 0x1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811B488: .4byte 0x0200c000 +_0811B48C: .4byte 0x000003ff +_0811B490: .4byte gUnknown_03004DE0 +_0811B494: .4byte 0x040000b0 +_0811B498: .4byte 0x0000c5ff +_0811B49C: .4byte 0x00007fff +_0811B4A0: .4byte sub_811B0F0 +_0811B4A4: .4byte sub_811B54C + thumb_func_end sub_811B3EC + + thumb_func_start sub_811B4A8 +sub_811B4A8: @ 811B4A8 + push {lr} + ldr r1, _0811B500 @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _0811B504 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _0811B508 @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + bl sub_811D67C + ldr r2, _0811B50C @ =0x0200c000 + ldrb r0, [r2] + cmp r0, 0 + beq _0811B4DE + ldr r1, _0811B510 @ =0x040000d4 + ldr r0, _0811B514 @ =gUnknown_03004DE0 + str r0, [r1] + movs r3, 0xF0 + lsls r3, 3 + adds r0, r3 + str r0, [r1, 0x4] + ldr r0, _0811B518 @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_0811B4DE: + ldr r1, _0811B51C @ =REG_WININ + ldrh r0, [r2, 0x2] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r2, 0x4] + strh r0, [r1] + subs r1, 0x6 + ldrh r0, [r2, 0x8] + strh r0, [r1] + adds r1, 0xC + ldrh r0, [r2, 0xE] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r2, 0x10] + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0811B500: .4byte 0x040000b0 +_0811B504: .4byte 0x0000c5ff +_0811B508: .4byte 0x00007fff +_0811B50C: .4byte 0x0200c000 +_0811B510: .4byte 0x040000d4 +_0811B514: .4byte gUnknown_03004DE0 +_0811B518: .4byte 0x800000a0 +_0811B51C: .4byte REG_WININ + thumb_func_end sub_811B4A8 + + thumb_func_start sub_811B520 +sub_811B520: @ 811B520 + push {lr} + bl sub_811B4A8 + ldr r1, _0811B53C @ =0x040000b0 + ldr r0, _0811B540 @ =gUnknown_03005560 + str r0, [r1] + ldr r0, _0811B544 @ =REG_BG0HOFS + str r0, [r1, 0x4] + ldr r0, _0811B548 @ =0xa2400001 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + pop {r0} + bx r0 + .align 2, 0 +_0811B53C: .4byte 0x040000b0 +_0811B540: .4byte gUnknown_03005560 +_0811B544: .4byte REG_BG0HOFS +_0811B548: .4byte 0xa2400001 + thumb_func_end sub_811B520 + + thumb_func_start sub_811B54C +sub_811B54C: @ 811B54C + push {lr} + bl sub_811B4A8 + ldr r1, _0811B568 @ =0x040000b0 + ldr r0, _0811B56C @ =gUnknown_03005560 + str r0, [r1] + ldr r0, _0811B570 @ =REG_WIN0H + str r0, [r1, 0x4] + ldr r0, _0811B574 @ =0xa2400001 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + pop {r0} + bx r0 + .align 2, 0 +_0811B568: .4byte 0x040000b0 +_0811B56C: .4byte gUnknown_03005560 +_0811B570: .4byte REG_WIN0H +_0811B574: .4byte 0xa2400001 + thumb_func_end sub_811B54C + + thumb_func_start sub_811B578 +sub_811B578: @ 811B578 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _0811B5A8 @ =gUnknown_083FD7D8 + ldr r2, _0811B5AC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_0811B58A: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0811B58A + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811B5A8: .4byte gUnknown_083FD7D8 +_0811B5AC: .4byte gTasks + thumb_func_end sub_811B578 + + thumb_func_start sub_811B5B0 +sub_811B5B0: @ 811B5B0 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + add r0, sp, 0x4 + add r1, sp, 0x8 + bl sub_811D6A8 + ldr r0, _0811B5F0 @ =gUnknown_083FC108 + ldr r1, [sp, 0x8] + movs r2, 0x20 + bl CpuSet + movs r0, 0 + str r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, _0811B5F4 @ =0x05000200 + mov r0, sp + bl CpuSet + ldr r0, _0811B5F8 @ =gFieldEffectObjectPalette10 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + add sp, 0xC + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811B5F0: .4byte gUnknown_083FC108 +_0811B5F4: .4byte 0x05000200 +_0811B5F8: .4byte gFieldEffectObjectPalette10 + thumb_func_end sub_811B5B0 + + thumb_func_start sub_811B5FC +sub_811B5FC: @ 811B5FC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r7, r0, 0 + ldr r1, _0811B67C @ =gUnknown_083FD7E4 + mov r0, sp + movs r2, 0x4 + bl memcpy + add r4, sp, 0x4 + ldr r1, _0811B680 @ =gUnknown_083FD7E8 + adds r0, r4, 0 + movs r2, 0xA + bl memcpy + bl Random + movs r5, 0x1 + ands r5, r0 + movs r1, 0 + mov r8, r4 + ldr r6, _0811B684 @ =gUnknown_0202FF84 +_0811B62A: + lsls r5, 16 + asrs r5, 16 + lsls r0, r5, 1 + add r0, sp + movs r2, 0 + ldrsh r0, [r0, r2] + str r0, [r6] + lsls r4, r1, 16 + asrs r4, 16 + lsls r0, r4, 5 + adds r0, 0x10 + str r0, [r6, 0x4] + str r5, [r6, 0x8] + lsls r0, r4, 1 + add r0, r8 + movs r1, 0 + ldrsh r0, [r0, r1] + str r0, [r6, 0xC] + movs r0, 0x2D + bl FieldEffectStart + adds r4, 0x1 + lsls r4, 16 + movs r0, 0x1 + eors r5, r0 + lsls r5, 16 + lsrs r5, 16 + lsrs r1, r4, 16 + asrs r4, 16 + cmp r4, 0x4 + ble _0811B62A + ldrh r0, [r7, 0x8] + adds r0, 0x1 + strh r0, [r7, 0x8] + movs r0, 0 + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0811B67C: .4byte gUnknown_083FD7E4 +_0811B680: .4byte gUnknown_083FD7E8 +_0811B684: .4byte gUnknown_0202FF84 + thumb_func_end sub_811B5FC + + thumb_func_start sub_811B688 +sub_811B688: @ 811B688 + push {lr} + movs r0, 0x2D + bl FieldEffectActiveListContains + lsls r0, 24 + cmp r0, 0 + bne _0811B6A8 + bl sub_811D6D4 + ldr r0, _0811B6B0 @ =sub_811B578 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_0811B6A8: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0811B6B0: .4byte sub_811B578 + thumb_func_end sub_811B688 + + thumb_func_start FldEff_Pokeball +FldEff_Pokeball: @ 811B6B4 + push {r4,r5,lr} + ldr r0, _0811B710 @ =gSpriteTemplate_83FD98C + ldr r5, _0811B714 @ =gUnknown_0202FF84 + movs r2, 0 + ldrsh r1, [r5, r2] + movs r3, 0x4 + ldrsh r2, [r5, r3] + movs r3, 0 + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0811B718 @ =gSprites + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r4, r1 + ldrb r1, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x5] + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r0, [r5, 0x8] + strh r0, [r4, 0x2E] + ldr r0, [r5, 0xC] + strh r0, [r4, 0x30] + ldr r0, _0811B71C @ =0x0000ffff + strh r0, [r4, 0x32] + adds r0, r4, 0 + bl InitSpriteAffineAnim + ldrb r1, [r5, 0x8] + adds r0, r4, 0 + bl StartSpriteAffineAnim + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0811B710: .4byte gSpriteTemplate_83FD98C +_0811B714: .4byte gUnknown_0202FF84 +_0811B718: .4byte gSprites +_0811B71C: .4byte 0x0000ffff + thumb_func_end FldEff_Pokeball + + thumb_func_start sub_811B720 +sub_811B720: @ 811B720 + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r1, _0811B740 @ =gUnknown_083FD7F2 + mov r0, sp + movs r2, 0x4 + bl memcpy + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _0811B744 + subs r0, r1, 0x1 + strh r0, [r4, 0x30] + b _0811B7D6 + .align 2, 0 +_0811B740: .4byte gUnknown_083FD7F2 +_0811B744: + ldrh r0, [r4, 0x20] + lsls r1, r0, 16 + lsrs r0, r1, 16 + cmp r0, 0xF0 + bhi _0811B7B2 + asrs r0, r1, 19 + lsls r0, 16 + ldrh r1, [r4, 0x22] + lsls r1, 16 + asrs r1, 19 + lsls r1, 16 + lsrs r1, 16 + lsrs r2, r0, 16 + asrs r5, r0, 16 + movs r3, 0x32 + ldrsh r0, [r4, r3] + cmp r5, r0 + beq _0811B7B2 + strh r2, [r4, 0x32] + ldr r0, _0811B7E0 @ =REG_BG0CNT + ldrh r2, [r0] + lsrs r2, 8 + movs r0, 0x1F + ands r2, r0 + lsls r2, 11 + movs r0, 0xC0 + lsls r0, 19 + adds r2, r0 + lsls r1, 16 + asrs r1, 16 + subs r0, r1, 0x2 + lsls r0, 5 + adds r0, r5 + lsls r0, 1 + adds r0, r2 + ldr r6, _0811B7E4 @ =0x0000f001 + adds r3, r6, 0 + strh r3, [r0] + subs r0, r1, 0x1 + lsls r0, 5 + adds r0, r5 + lsls r0, 1 + adds r0, r2 + strh r3, [r0] + lsls r0, r1, 5 + adds r0, r5 + lsls r0, 1 + adds r0, r2 + strh r3, [r0] + adds r1, 0x1 + lsls r1, 5 + adds r1, r5 + lsls r1, 1 + adds r1, r2 + strh r3, [r1] +_0811B7B2: + movs r1, 0x2E + ldrsh r0, [r4, r1] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + adds r0, 0xF + lsls r0, 16 + movs r1, 0x87 + lsls r1, 17 + cmp r0, r1 + bls _0811B7D6 + adds r0, r4, 0 + movs r1, 0x2D + bl FieldEffectStop +_0811B7D6: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811B7E0: .4byte REG_BG0CNT +_0811B7E4: .4byte 0x0000f001 + thumb_func_end sub_811B720 + + thumb_func_start sub_811B7E8 +sub_811B7E8: @ 811B7E8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _0811B818 @ =gUnknown_083FD7F8 + ldr r2, _0811B81C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_0811B7FA: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0811B7FA + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811B818: .4byte gUnknown_083FD7F8 +_0811B81C: .4byte gTasks + thumb_func_end sub_811B7E8 + + thumb_func_start sub_811B820 +sub_811B820: @ 811B820 + push {r4,lr} + adds r4, r0, 0 + bl sub_811D658 + bl dp12_8087EA4 + ldr r1, _0811B870 @ =0x0200c000 + movs r0, 0 + strh r0, [r1, 0x2] + movs r0, 0x3F + strh r0, [r1, 0x4] + ldr r0, _0811B874 @ =0x0000f0f1 + strh r0, [r1, 0x6] + movs r0, 0xA0 + strh r0, [r1, 0x8] + movs r1, 0 + ldr r3, _0811B878 @ =gUnknown_03005560 + ldr r2, _0811B87C @ =0x0000f3f4 +_0811B844: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x9F + bls _0811B844 + ldr r0, _0811B880 @ =sub_811BC2C + bl SetVBlankCallback + ldr r1, _0811B870 @ =0x0200c000 + movs r0, 0x78 + strh r0, [r1, 0x2C] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811B870: .4byte 0x0200c000 +_0811B874: .4byte 0x0000f0f1 +_0811B878: .4byte gUnknown_03005560 +_0811B87C: .4byte 0x0000f3f4 +_0811B880: .4byte sub_811BC2C + thumb_func_end sub_811B820 + + thumb_func_start sub_811B884 +sub_811B884: @ 811B884 + push {r4-r6,lr} + sub sp, 0xC + adds r6, r0, 0 + ldr r4, _0811B904 @ =0x0200c000 + ldrb r0, [r4] + movs r0, 0 + strb r0, [r4] + adds r0, r4, 0 + adds r0, 0x24 + movs r1, 0x2C + ldrsh r3, [r4, r1] + movs r1, 0x1 + negs r1, r1 + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x78 + movs r2, 0x50 + bl sub_811D8FC + ldr r5, _0811B908 @ =gUnknown_03004DE0 +_0811B8B0: + movs r3, 0x2A + ldrsh r2, [r4, r3] + lsls r2, 1 + adds r2, r5 + ldrh r0, [r4, 0x28] + adds r0, 0x1 + movs r3, 0xF0 + lsls r3, 7 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + adds r0, r4, 0 + adds r0, 0x24 + movs r1, 0x1 + movs r2, 0x1 + bl sub_811D978 + lsls r0, 24 + cmp r0, 0 + beq _0811B8B0 + ldr r2, _0811B904 @ =0x0200c000 + ldrh r0, [r2, 0x2C] + adds r0, 0x10 + strh r0, [r2, 0x2C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xEF + ble _0811B8F2 + movs r0, 0 + strh r0, [r2, 0x2E] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] +_0811B8F2: + ldrb r0, [r2] + adds r0, 0x1 + ldrb r1, [r2] + strb r0, [r2] + movs r0, 0 + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0811B904: .4byte 0x0200c000 +_0811B908: .4byte gUnknown_03004DE0 + thumb_func_end sub_811B884 + + thumb_func_start sub_811B90C +sub_811B90C: @ 811B90C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r7, r0, 0 + add r1, sp, 0xC + movs r0, 0 + strb r0, [r1] + ldr r4, _0811B988 @ =0x0200c000 + ldrb r0, [r4] + movs r0, 0 + strb r0, [r4] + adds r0, r4, 0 + adds r0, 0x24 + movs r2, 0x2E + ldrsh r1, [r4, r2] + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0xF0 + bl sub_811D8FC + adds r6, r4, 0 + ldr r5, _0811B98C @ =gUnknown_03004DE0 + mov r8, r5 + add r5, sp, 0xC +_0811B946: + movs r1, 0x78 + ldrh r0, [r4, 0x28] + adds r0, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0x4F + ble _0811B95C + ldrh r1, [r4, 0x28] + movs r3, 0xF0 +_0811B95C: + movs r0, 0x2A + ldrsh r2, [r4, r0] + lsls r2, 1 + add r2, r8 + lsls r1, 16 + asrs r1, 8 + lsls r0, r3, 16 + asrs r3, r0, 16 + orrs r3, r1 + strh r3, [r2] + ldrb r0, [r5] + cmp r0, 0 + bne _0811B990 + adds r0, r4, 0 + adds r0, 0x24 + movs r1, 0x1 + movs r2, 0x1 + bl sub_811D978 + strb r0, [r5] + b _0811B946 + .align 2, 0 +_0811B988: .4byte 0x0200c000 +_0811B98C: .4byte gUnknown_03004DE0 +_0811B990: + ldrh r0, [r4, 0x2E] + adds r0, 0x8 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0x9F + ble _0811B9AA + movs r0, 0xF0 + strh r0, [r4, 0x2C] + ldrh r0, [r7, 0x8] + adds r0, 0x1 + strh r0, [r7, 0x8] + b _0811B9D0 +_0811B9AA: + movs r2, 0x2A + ldrsh r0, [r4, r2] + cmp r0, r1 + bge _0811B9D0 + ldr r4, _0811B9E8 @ =gUnknown_03004DE0 + ldr r2, _0811B9EC @ =0x0200c000 +_0811B9B6: + ldrh r0, [r2, 0x2A] + adds r0, 0x1 + strh r0, [r2, 0x2A] + lsls r0, 16 + asrs r0, 15 + adds r0, r4 + strh r3, [r0] + movs r5, 0x2A + ldrsh r1, [r2, r5] + movs r5, 0x2E + ldrsh r0, [r2, r5] + cmp r1, r0 + blt _0811B9B6 +_0811B9D0: + ldrb r0, [r6] + adds r0, 0x1 + ldrb r1, [r6] + strb r0, [r6] + movs r0, 0 + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0811B9E8: .4byte gUnknown_03004DE0 +_0811B9EC: .4byte 0x0200c000 + thumb_func_end sub_811B90C + + thumb_func_start sub_811B9F0 +sub_811B9F0: @ 811B9F0 + push {r4-r6,lr} + sub sp, 0xC + adds r6, r0, 0 + ldr r4, _0811BA68 @ =0x0200c000 + ldrb r0, [r4] + movs r0, 0 + strb r0, [r4] + adds r0, r4, 0 + adds r0, 0x24 + movs r1, 0x2C + ldrsh r3, [r4, r1] + movs r1, 0xA0 + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x78 + movs r2, 0x50 + bl sub_811D8FC + ldr r5, _0811BA6C @ =gUnknown_03004DE0 +_0811BA1A: + movs r0, 0x2A + ldrsh r2, [r4, r0] + lsls r2, 1 + adds r2, r5 + ldrh r0, [r4, 0x28] + lsls r0, 8 + movs r1, 0xF0 + orrs r0, r1 + strh r0, [r2] + adds r0, r4, 0 + adds r0, 0x24 + movs r1, 0x1 + movs r2, 0x1 + bl sub_811D978 + lsls r0, 24 + cmp r0, 0 + beq _0811BA1A + ldr r2, _0811BA68 @ =0x0200c000 + ldrh r0, [r2, 0x2C] + subs r0, 0x10 + strh r0, [r2, 0x2C] + lsls r0, 16 + cmp r0, 0 + bgt _0811BA56 + movs r0, 0xA0 + strh r0, [r2, 0x2E] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] +_0811BA56: + ldrb r0, [r2] + adds r0, 0x1 + ldrb r1, [r2] + strb r0, [r2] + movs r0, 0 + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0811BA68: .4byte 0x0200c000 +_0811BA6C: .4byte gUnknown_03004DE0 + thumb_func_end sub_811B9F0 + + thumb_func_start sub_811BA70 +sub_811BA70: @ 811BA70 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + mov r8, r0 + add r1, sp, 0xC + movs r0, 0 + strb r0, [r1] + ldr r4, _0811BAF0 @ =0x0200c000 + ldrb r0, [r4] + movs r0, 0 + strb r0, [r4] + adds r0, r4, 0 + adds r0, 0x24 + movs r2, 0x2E + ldrsh r1, [r4, r2] + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0 + bl sub_811D8FC + ldr r3, _0811BAF4 @ =gUnknown_03004DE0 + mov r9, r3 + mov r10, r4 + add r6, sp, 0xC +_0811BAAE: + movs r5, 0x2A + ldrsh r0, [r4, r5] + lsls r0, 1 + mov r7, r9 + adds r5, r0, r7 + ldrb r1, [r5] + ldrh r2, [r4, 0x28] + adds r3, r2, 0 + movs r7, 0x2E + ldrsh r0, [r4, r7] + cmp r0, 0x50 + bgt _0811BACA + movs r2, 0x78 + adds r1, r3, 0 +_0811BACA: + lsls r0, r2, 16 + asrs r0, 8 + lsls r1, 16 + asrs r1, 16 + orrs r1, r0 + movs r3, 0 + strh r1, [r5] + ldrb r0, [r6] + cmp r0, 0 + bne _0811BAF8 + adds r0, r4, 0 + adds r0, 0x24 + movs r1, 0x1 + movs r2, 0x1 + bl sub_811D978 + strb r0, [r6] + b _0811BAAE + .align 2, 0 +_0811BAF0: .4byte 0x0200c000 +_0811BAF4: .4byte gUnknown_03004DE0 +_0811BAF8: + ldrh r0, [r4, 0x2E] + subs r0, 0x8 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + bgt _0811BB12 + strh r3, [r4, 0x2C] + mov r1, r8 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _0811BB3A +_0811BB12: + movs r3, 0x2A + ldrsh r0, [r4, r3] + cmp r0, r2 + ble _0811BB3A + ldr r4, _0811BB58 @ =gUnknown_03004DE0 + ldr r2, _0811BB5C @ =0x0200c000 + adds r3, r1, 0 +_0811BB20: + ldrh r0, [r2, 0x2A] + subs r0, 0x1 + strh r0, [r2, 0x2A] + lsls r0, 16 + asrs r0, 15 + adds r0, r4 + strh r3, [r0] + movs r5, 0x2A + ldrsh r1, [r2, r5] + movs r7, 0x2E + ldrsh r0, [r2, r7] + cmp r1, r0 + bgt _0811BB20 +_0811BB3A: + mov r1, r10 + ldrb r0, [r1] + adds r0, 0x1 + ldrb r1, [r1] + mov r2, r10 + strb r0, [r2] + movs r0, 0 + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0811BB58: .4byte gUnknown_03004DE0 +_0811BB5C: .4byte 0x0200c000 + thumb_func_end sub_811BA70 + + thumb_func_start sub_811BB60 +sub_811BB60: @ 811BB60 + push {r4-r6,lr} + sub sp, 0xC + adds r6, r0, 0 + ldr r4, _0811BBE4 @ =0x0200c000 + ldrb r0, [r4] + movs r1, 0 + strb r1, [r4] + adds r0, r4, 0 + adds r0, 0x24 + movs r2, 0x2C + ldrsh r3, [r4, r2] + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x78 + movs r2, 0x50 + bl sub_811D8FC + ldr r5, _0811BBE8 @ =gUnknown_03004DE0 +_0811BB88: + movs r2, 0x78 + ldrh r3, [r4, 0x28] + movs r1, 0x28 + ldrsh r0, [r4, r1] + cmp r0, 0x77 + ble _0811BB98 + movs r2, 0 + movs r3, 0xF0 +_0811BB98: + movs r0, 0x2A + ldrsh r1, [r4, r0] + lsls r1, 1 + adds r1, r5 + lsls r2, 8 + lsls r0, r3, 16 + asrs r0, 16 + orrs r0, r2 + strh r0, [r1] + adds r0, r4, 0 + adds r0, 0x24 + movs r1, 0x1 + movs r2, 0x1 + bl sub_811D978 + lsls r0, 24 + cmp r0, 0 + beq _0811BB88 + ldr r2, _0811BBE4 @ =0x0200c000 + ldrh r0, [r2, 0x2C] + adds r0, 0x10 + strh r0, [r2, 0x2C] + movs r1, 0x28 + ldrsh r0, [r2, r1] + cmp r0, 0x78 + ble _0811BBD2 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] +_0811BBD2: + ldrb r0, [r2] + adds r0, 0x1 + ldrb r1, [r2] + strb r0, [r2] + movs r0, 0 + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0811BBE4: .4byte 0x0200c000 +_0811BBE8: .4byte gUnknown_03004DE0 + thumb_func_end sub_811BB60 + + thumb_func_start sub_811BBEC +sub_811BBEC: @ 811BBEC + push {lr} + ldr r1, _0811BC1C @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _0811BC20 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _0811BC24 @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + bl sub_811D6D4 + ldr r0, _0811BC28 @ =sub_811B7E8 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0811BC1C: .4byte 0x040000b0 +_0811BC20: .4byte 0x0000c5ff +_0811BC24: .4byte 0x00007fff +_0811BC28: .4byte sub_811B7E8 + thumb_func_end sub_811BBEC + + thumb_func_start sub_811BC2C +sub_811BC2C: @ 811BC2C + push {r4,lr} + ldr r4, _0811BC94 @ =0x040000b0 + ldrh r1, [r4, 0xA] + ldr r0, _0811BC98 @ =0x0000c5ff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r1, [r4, 0xA] + ldr r0, _0811BC9C @ =0x00007fff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xA] + bl sub_811D67C + ldr r2, _0811BCA0 @ =0x0200c000 + ldrb r0, [r2] + cmp r0, 0 + beq _0811BC62 + ldr r1, _0811BCA4 @ =0x040000d4 + ldr r0, _0811BCA8 @ =gUnknown_03004DE0 + str r0, [r1] + movs r3, 0xF0 + lsls r3, 3 + adds r0, r3 + str r0, [r1, 0x4] + ldr r0, _0811BCAC @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_0811BC62: + ldr r1, _0811BCB0 @ =REG_WININ + ldrh r0, [r2, 0x2] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r2, 0x4] + strh r0, [r1] + subs r1, 0x6 + ldrh r0, [r2, 0x8] + strh r0, [r1] + ldr r2, _0811BCB4 @ =REG_WIN0H + ldr r0, _0811BCA8 @ =gUnknown_03004DE0 + movs r1, 0xF0 + lsls r1, 3 + adds r0, r1 + ldrh r1, [r0] + strh r1, [r2] + str r0, [r4] + str r2, [r4, 0x4] + ldr r0, _0811BCB8 @ =0xa2400001 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811BC94: .4byte 0x040000b0 +_0811BC98: .4byte 0x0000c5ff +_0811BC9C: .4byte 0x00007fff +_0811BCA0: .4byte 0x0200c000 +_0811BCA4: .4byte 0x040000d4 +_0811BCA8: .4byte gUnknown_03004DE0 +_0811BCAC: .4byte 0x800000a0 +_0811BCB0: .4byte REG_WININ +_0811BCB4: .4byte REG_WIN0H +_0811BCB8: .4byte 0xa2400001 + thumb_func_end sub_811BC2C + + thumb_func_start sub_811BCBC +sub_811BCBC: @ 811BCBC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _0811BCEC @ =gUnknown_083FD814 + ldr r2, _0811BCF0 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_0811BCCE: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0811BCCE + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811BCEC: .4byte gUnknown_083FD814 +_0811BCF0: .4byte gTasks + thumb_func_end sub_811BCBC + + thumb_func_start sub_811BCF4 +sub_811BCF4: @ 811BCF4 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_811D658 + bl dp12_8087EA4 + movs r2, 0 + ldr r4, _0811BD48 @ =gUnknown_03005560 + ldr r3, _0811BD4C @ =0x0200c000 +_0811BD06: + lsls r0, r2, 1 + adds r0, r4 + ldrh r1, [r3, 0x16] + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x9F + bls _0811BD06 + ldr r0, _0811BD50 @ =sub_811BE3C + bl SetVBlankCallback + ldr r0, _0811BD54 @ =sub_811BE74 + bl SetHBlankCallback + ldr r2, _0811BD58 @ =0x04000200 + ldrh r0, [r2] + movs r1, 0x2 + orrs r0, r1 + strh r0, [r2] + ldr r2, _0811BD5C @ =REG_DISPSTAT + ldrh r0, [r2] + movs r1, 0x10 + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0x1 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0811BD48: .4byte gUnknown_03005560 +_0811BD4C: .4byte 0x0200c000 +_0811BD50: .4byte sub_811BE3C +_0811BD54: .4byte sub_811BE74 +_0811BD58: .4byte 0x04000200 +_0811BD5C: .4byte REG_DISPSTAT + thumb_func_end sub_811BCF4 + + thumb_func_start sub_811BD60 +sub_811BD60: @ 811BD60 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r6, r0, 0 + ldr r1, _0811BE28 @ =0x0200c000 + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldrh r2, [r6, 0xC] + lsls r1, r2, 16 + asrs r0, r1, 24 + lsls r0, 16 + lsrs r3, r0, 16 + ldrh r4, [r6, 0xA] + movs r0, 0xC0 + lsls r0, 1 + mov r8, r0 + movs r5, 0x80 + lsls r5, 3 + adds r0, r4, r5 + strh r0, [r6, 0xA] + ldr r0, _0811BE2C @ =0x1fff0000 + cmp r1, r0 + bgt _0811BD9A + movs r1, 0xC0 + lsls r1, 1 + adds r0, r2, r1 + strh r0, [r6, 0xC] +_0811BD9A: + movs r5, 0 + lsls r7, r3, 16 +_0811BD9E: + lsrs r0, r4, 8 + asrs r1, r7, 16 + bl Sin + ldr r1, _0811BE30 @ =gUnknown_03004DE0 + lsls r2, r5, 1 + adds r2, r1 + ldr r1, _0811BE28 @ =0x0200c000 + ldrh r1, [r1, 0x16] + adds r0, r1 + strh r0, [r2] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + mov r1, r8 + adds r0, r4, r1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r5, 0x9F + bls _0811BD9E + ldrh r0, [r6, 0xE] + adds r0, 0x1 + strh r0, [r6, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x51 + bne _0811BDEC + ldrh r0, [r6, 0x10] + adds r0, 0x1 + strh r0, [r6, 0x10] + movs r0, 0x1 + negs r0, r0 + movs r1, 0x2 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl BeginNormalPaletteFade +_0811BDEC: + movs r5, 0x10 + ldrsh r0, [r6, r5] + cmp r0, 0 + beq _0811BE0E + ldr r0, _0811BE34 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0811BE0E + ldr r0, _0811BE38 @ =sub_811BCBC + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_0811BE0E: + ldr r0, _0811BE28 @ =0x0200c000 + ldrb r1, [r0] + adds r1, 0x1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, 0 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0811BE28: .4byte 0x0200c000 +_0811BE2C: .4byte 0x1fff0000 +_0811BE30: .4byte gUnknown_03004DE0 +_0811BE34: .4byte gPaletteFade +_0811BE38: .4byte sub_811BCBC + thumb_func_end sub_811BD60 + + thumb_func_start sub_811BE3C +sub_811BE3C: @ 811BE3C + push {lr} + bl sub_811D67C + ldr r0, _0811BE64 @ =0x0200c000 + ldrb r0, [r0] + cmp r0, 0 + beq _0811BE5E + ldr r1, _0811BE68 @ =0x040000d4 + ldr r0, _0811BE6C @ =gUnknown_03004DE0 + str r0, [r1] + movs r2, 0xF0 + lsls r2, 3 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _0811BE70 @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_0811BE5E: + pop {r0} + bx r0 + .align 2, 0 +_0811BE64: .4byte 0x0200c000 +_0811BE68: .4byte 0x040000d4 +_0811BE6C: .4byte gUnknown_03004DE0 +_0811BE70: .4byte 0x800000a0 + thumb_func_end sub_811BE3C + + thumb_func_start sub_811BE74 +sub_811BE74: @ 811BE74 + ldr r1, _0811BE94 @ =gUnknown_03004DE0 + ldr r0, _0811BE98 @ =REG_VCOUNT + ldrh r0, [r0] + lsls r0, 1 + movs r2, 0xF0 + lsls r2, 3 + adds r1, r2 + adds r0, r1 + ldrh r1, [r0] + ldr r0, _0811BE9C @ =REG_BG1VOFS + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + bx lr + .align 2, 0 +_0811BE94: .4byte gUnknown_03004DE0 +_0811BE98: .4byte REG_VCOUNT +_0811BE9C: .4byte REG_BG1VOFS + thumb_func_end sub_811BE74 + + thumb_func_start sub_811BEA0 +sub_811BEA0: @ 811BEA0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _0811BED0 @ =gUnknown_083FD81C + ldr r2, _0811BED4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_0811BEB2: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0811BEB2 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811BED0: .4byte gUnknown_083FD81C +_0811BED4: .4byte gTasks + thumb_func_end sub_811BEA0 + + thumb_func_start sub_811BED8 +sub_811BED8: @ 811BED8 + push {r4,lr} + adds r4, r0, 0 + bl sub_811D658 + bl dp12_8087EA4 + ldr r1, _0811BF20 @ =0x0200c000 + movs r2, 0 + movs r0, 0x3F + strh r0, [r1, 0x2] + strh r2, [r1, 0x4] + movs r0, 0xF0 + strh r0, [r1, 0x6] + movs r0, 0xA0 + strh r0, [r1, 0x8] + movs r1, 0 + ldr r3, _0811BF24 @ =gUnknown_03005560 + movs r2, 0xF2 +_0811BEFC: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x9F + bls _0811BEFC + ldr r0, _0811BF28 @ =sub_811C004 + bl SetVBlankCallback + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811BF20: .4byte 0x0200c000 +_0811BF24: .4byte gUnknown_03005560 +_0811BF28: .4byte sub_811C004 + thumb_func_end sub_811BED8 + + thumb_func_start sub_811BF2C +sub_811BF2C: @ 811BF2C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + ldr r1, _0811BFBC @ =0x0200c000 + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldr r7, _0811BFC0 @ =gUnknown_03004DE0 + ldrh r0, [r4, 0xC] + ldrb r5, [r4, 0xC] + adds r0, 0x10 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0xA] + adds r0, 0x8 + strh r0, [r4, 0xA] + movs r6, 0 + movs r0, 0x1 + mov r8, r0 +_0811BF52: + adds r0, r5, 0 + movs r1, 0x28 + bl Sin + ldrh r1, [r4, 0xA] + adds r0, r1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r0, 0 + bge _0811BF68 + movs r1, 0 +_0811BF68: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xF0 + ble _0811BF72 + movs r1, 0xF0 +_0811BF72: + lsls r0, r1, 16 + asrs r0, 16 + lsls r1, r0, 8 + movs r2, 0xF1 + orrs r1, r2 + strh r1, [r7] + cmp r0, 0xEF + bgt _0811BF86 + movs r0, 0 + mov r8, r0 +_0811BF86: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r5, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, 0x2 + cmp r6, 0x9F + bls _0811BF52 + mov r1, r8 + cmp r1, 0 + beq _0811BFA4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_0811BFA4: + ldr r0, _0811BFBC @ =0x0200c000 + ldrb r1, [r0] + adds r1, 0x1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0811BFBC: .4byte 0x0200c000 +_0811BFC0: .4byte gUnknown_03004DE0 + thumb_func_end sub_811BF2C + + thumb_func_start sub_811BFC4 +sub_811BFC4: @ 811BFC4 + push {lr} + ldr r1, _0811BFF4 @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _0811BFF8 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _0811BFFC @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + bl sub_811D6D4 + ldr r0, _0811C000 @ =sub_811BEA0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0811BFF4: .4byte 0x040000b0 +_0811BFF8: .4byte 0x0000c5ff +_0811BFFC: .4byte 0x00007fff +_0811C000: .4byte sub_811BEA0 + thumb_func_end sub_811BFC4 + + thumb_func_start sub_811C004 +sub_811C004: @ 811C004 + push {r4,lr} + ldr r4, _0811C060 @ =0x040000b0 + ldrh r1, [r4, 0xA] + ldr r0, _0811C064 @ =0x0000c5ff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r1, [r4, 0xA] + ldr r0, _0811C068 @ =0x00007fff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xA] + bl sub_811D67C + ldr r2, _0811C06C @ =0x0200c000 + ldrb r0, [r2] + cmp r0, 0 + beq _0811C03A + ldr r1, _0811C070 @ =0x040000d4 + ldr r0, _0811C074 @ =gUnknown_03004DE0 + str r0, [r1] + movs r3, 0xF0 + lsls r3, 3 + adds r0, r3 + str r0, [r1, 0x4] + ldr r0, _0811C078 @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_0811C03A: + ldr r1, _0811C07C @ =REG_WININ + ldrh r0, [r2, 0x2] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r2, 0x4] + strh r0, [r1] + subs r1, 0x6 + ldrh r0, [r2, 0x8] + strh r0, [r1] + ldr r0, _0811C080 @ =gUnknown_03005560 + str r0, [r4] + ldr r0, _0811C084 @ =REG_WIN0H + str r0, [r4, 0x4] + ldr r0, _0811C088 @ =0xa2400001 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811C060: .4byte 0x040000b0 +_0811C064: .4byte 0x0000c5ff +_0811C068: .4byte 0x00007fff +_0811C06C: .4byte 0x0200c000 +_0811C070: .4byte 0x040000d4 +_0811C074: .4byte gUnknown_03004DE0 +_0811C078: .4byte 0x800000a0 +_0811C07C: .4byte REG_WININ +_0811C080: .4byte gUnknown_03005560 +_0811C084: .4byte REG_WIN0H +_0811C088: .4byte 0xa2400001 + thumb_func_end sub_811C004 + + thumb_func_start sub_811C08C +sub_811C08C: @ 811C08C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0811C0A8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x26] + bl sub_811C12C + pop {r0} + bx r0 + .align 2, 0 +_0811C0A8: .4byte gTasks + thumb_func_end sub_811C08C + + thumb_func_start sub_811C0AC +sub_811C0AC: @ 811C0AC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0811C0C8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x1 + strh r2, [r1, 0x26] + bl sub_811C12C + pop {r0} + bx r0 + .align 2, 0 +_0811C0C8: .4byte gTasks + thumb_func_end sub_811C0AC + + thumb_func_start sub_811C0CC +sub_811C0CC: @ 811C0CC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0811C0E8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x2 + strh r2, [r1, 0x26] + bl sub_811C12C + pop {r0} + bx r0 + .align 2, 0 +_0811C0E8: .4byte gTasks + thumb_func_end sub_811C0CC + + thumb_func_start sub_811C0EC +sub_811C0EC: @ 811C0EC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0811C108 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x3 + strh r2, [r1, 0x26] + bl sub_811C12C + pop {r0} + bx r0 + .align 2, 0 +_0811C108: .4byte gTasks + thumb_func_end sub_811C0EC + + thumb_func_start sub_811C10C +sub_811C10C: @ 811C10C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0811C128 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x4 + strh r2, [r1, 0x26] + bl sub_811C12C + pop {r0} + bx r0 + .align 2, 0 +_0811C128: .4byte gTasks + thumb_func_end sub_811C10C + + thumb_func_start sub_811C12C +sub_811C12C: @ 811C12C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _0811C15C @ =gUnknown_083FD828 + ldr r2, _0811C160 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_0811C13E: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0811C13E + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811C15C: .4byte gUnknown_083FD828 +_0811C160: .4byte gTasks + thumb_func_end sub_811C12C + + thumb_func_start sub_811C164 +sub_811C164: @ 811C164 + push {r4,lr} + adds r4, r0, 0 + bl sub_811D658 + bl dp12_8087EA4 + adds r0, r4, 0 + bl sub_811C7B0 + movs r0, 0 + strh r0, [r4, 0xA] + movs r0, 0x1 + strh r0, [r4, 0xC] + movs r0, 0xEF + strh r0, [r4, 0xE] + ldr r1, _0811C1BC @ =0x0200c000 + movs r0, 0x3F + strh r0, [r1, 0x2] + movs r0, 0x3E + strh r0, [r1, 0x4] + movs r0, 0xA0 + strh r0, [r1, 0x8] + movs r1, 0 + ldr r3, _0811C1C0 @ =gUnknown_03005560 + ldr r2, _0811C1C4 @ =0x0000f0f1 +_0811C196: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x9F + bls _0811C196 + ldr r0, _0811C1C8 @ =sub_811C670 + bl SetVBlankCallback + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811C1BC: .4byte 0x0200c000 +_0811C1C0: .4byte gUnknown_03005560 +_0811C1C4: .4byte 0x0000f0f1 +_0811C1C8: .4byte sub_811C670 + thumb_func_end sub_811C164 + + thumb_func_start sub_811C1CC +sub_811C1CC: @ 811C1CC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + mov r8, r0 + ldr r6, _0811C284 @ =gUnknown_083FDFF4 + add r1, sp, 0x4 + mov r0, sp + bl sub_811D6A8 + ldr r0, _0811C288 @ =gUnknown_083FC348 + ldr r1, [sp, 0x4] + movs r2, 0xF0 + bl CpuSet + ldr r1, _0811C28C @ =gUnknown_083FDB00 + mov r2, r8 + movs r3, 0x26 + ldrsh r0, [r2, r3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r1, _0811C290 @ =gUnknown_083FDB14 + ldr r0, _0811C294 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0xFA + movs r2, 0xC + bl LoadPalette + movs r1, 0 + ldr r5, [sp] + ldr r0, _0811C298 @ =sub_811C77C + mov r12, r0 + movs r2, 0xF0 + lsls r2, 8 + adds r7, r2, 0 +_0811C222: + movs r0, 0 + lsls r3, r1, 16 + asrs r4, r3, 11 +_0811C228: + lsls r2, r0, 16 + asrs r2, 16 + adds r1, r4, r2 + lsls r1, 1 + adds r1, r5 + ldrh r0, [r6] + orrs r0, r7 + strh r0, [r1] + adds r2, 0x1 + lsls r2, 16 + adds r6, 0x2 + lsrs r0, r2, 16 + asrs r2, 16 + cmp r2, 0x1F + ble _0811C228 + movs r1, 0x80 + lsls r1, 9 + adds r0, r3, r1 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _0811C222 + ldr r2, _0811C29C @ =0x04000200 + ldrh r0, [r2] + movs r1, 0x2 + orrs r0, r1 + strh r0, [r2] + ldr r2, _0811C2A0 @ =REG_DISPSTAT + ldrh r0, [r2] + movs r1, 0x10 + orrs r0, r1 + strh r0, [r2] + mov r0, r12 + bl SetHBlankCallback + mov r2, r8 + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + movs r0, 0 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0811C284: .4byte gUnknown_083FDFF4 +_0811C288: .4byte gUnknown_083FC348 +_0811C28C: .4byte gUnknown_083FDB00 +_0811C290: .4byte gUnknown_083FDB14 +_0811C294: .4byte gSaveBlock2 +_0811C298: .4byte sub_811C77C +_0811C29C: .4byte 0x04000200 +_0811C2A0: .4byte REG_DISPSTAT + thumb_func_end sub_811C1CC + + thumb_func_start sub_811C2A4 +sub_811C2A4: @ 811C2A4 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r1, _0811C384 @ =0x0200c000 + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldr r7, _0811C388 @ =gUnknown_03004DE0 + ldrh r0, [r4, 0xA] + ldrb r5, [r4, 0xA] + adds r0, 0x10 + strh r0, [r4, 0xA] + movs r6, 0 +_0811C2BC: + adds r0, r5, 0 + movs r1, 0x10 + bl Sin + ldrh r1, [r4, 0xC] + adds r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r0, 0 + bge _0811C2D2 + movs r2, 0x1 +_0811C2D2: + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0xF0 + ble _0811C2DC + movs r2, 0xF0 +_0811C2DC: + strh r2, [r7] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r7, 0x2 + adds r0, r5, 0 + adds r0, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r6, 0x4F + bls _0811C2BC + cmp r6, 0x9F + bhi _0811C334 +_0811C2F6: + adds r0, r5, 0 + movs r1, 0x10 + bl Sin + ldrh r1, [r4, 0xE] + subs r1, r0 + lsls r1, 16 + lsrs r2, r1, 16 + cmp r1, 0 + bge _0811C30C + movs r2, 0 +_0811C30C: + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0xEF + ble _0811C316 + movs r2, 0xEF +_0811C316: + lsls r0, r2, 16 + asrs r0, 8 + movs r1, 0xF0 + orrs r0, r1 + strh r0, [r7] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r7, 0x2 + adds r0, r5, 0 + adds r0, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r6, 0x9F + bls _0811C2F6 +_0811C334: + ldrh r1, [r4, 0xC] + adds r1, 0x8 + strh r1, [r4, 0xC] + ldrh r0, [r4, 0xE] + subs r0, 0x8 + strh r0, [r4, 0xE] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0xF0 + ble _0811C34C + movs r0, 0xF0 + strh r0, [r4, 0xC] +_0811C34C: + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _0811C358 + movs r0, 0 + strh r0, [r4, 0xE] +_0811C358: + ldr r0, [r4, 0xC] + cmp r0, 0xF0 + bne _0811C364 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_0811C364: + ldr r1, _0811C384 @ =0x0200c000 + ldrh r0, [r1, 0x18] + subs r0, 0x8 + strh r0, [r1, 0x18] + ldrh r0, [r1, 0x1A] + adds r0, 0x8 + strh r0, [r1, 0x1A] + ldrb r0, [r1] + adds r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, 0 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0811C384: .4byte 0x0200c000 +_0811C388: .4byte gUnknown_03004DE0 + thumb_func_end sub_811C2A4 + + thumb_func_start sub_811C38C +sub_811C38C: @ 811C38C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, _0811C3F8 @ =0x0200c000 + ldrb r1, [r0] + movs r1, 0 + strb r1, [r0] + ldr r2, _0811C3FC @ =gUnknown_03004DE0 + adds r5, r0, 0 + movs r3, 0xF0 +_0811C39E: + strh r3, [r2] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + adds r2, 0x2 + cmp r1, 0x9F + bls _0811C39E + ldrh r0, [r4, 0x8] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x8] + strh r1, [r4, 0xA] + strh r1, [r4, 0xC] + strh r1, [r4, 0xE] + ldrh r0, [r5, 0x18] + subs r0, 0x8 + strh r0, [r5, 0x18] + ldrh r0, [r5, 0x1A] + adds r0, 0x8 + strh r0, [r5, 0x1A] + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r1, 0 + bl sub_811CA10 + movs r1, 0x24 + ldrsh r0, [r4, r1] + movs r1, 0x1 + bl sub_811CA10 + movs r1, 0x22 + ldrsh r0, [r4, r1] + bl sub_811CA28 + movs r0, 0x68 + bl PlaySE + ldrb r0, [r5] + adds r0, 0x1 + ldrb r1, [r5] + strb r0, [r5] + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0811C3F8: .4byte 0x0200c000 +_0811C3FC: .4byte gUnknown_03004DE0 + thumb_func_end sub_811C38C + + thumb_func_start sub_811C400 +sub_811C400: @ 811C400 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _0811C438 @ =0x0200c000 + ldrh r0, [r1, 0x18] + subs r0, 0x8 + strh r0, [r1, 0x18] + ldrh r0, [r1, 0x1A] + adds r0, 0x8 + strh r0, [r1, 0x1A] + movs r1, 0x22 + ldrsh r0, [r4, r1] + bl sub_811CA44 + lsls r0, 16 + cmp r0, 0 + beq _0811C42E + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r1, 0x24 + ldrsh r0, [r4, r1] + bl sub_811CA28 +_0811C42E: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811C438: .4byte 0x0200c000 + thumb_func_end sub_811C400 + + thumb_func_start sub_811C43C +sub_811C43C: @ 811C43C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldr r7, _0811C4D0 @ =0x0200c000 + ldrh r0, [r7, 0x18] + subs r0, 0x8 + movs r1, 0 + mov r8, r1 + strh r0, [r7, 0x18] + ldrh r0, [r7, 0x1A] + adds r0, 0x8 + strh r0, [r7, 0x1A] + movs r1, 0x24 + ldrsh r0, [r6, r1] + bl sub_811CA44 + lsls r0, 16 + cmp r0, 0 + beq _0811C4C4 + ldrb r0, [r7] + movs r0, 0 + strb r0, [r7] + movs r0, 0 + bl SetVBlankCallback + ldr r1, _0811C4D4 @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _0811C4D8 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _0811C4DC @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + ldr r4, _0811C4E0 @ =gUnknown_03004DE0 + movs r5, 0xA0 + lsls r5, 1 + adds r0, r4, 0 + movs r1, 0 + adds r2, r5, 0 + bl memset + movs r0, 0xF0 + lsls r0, 3 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0 + adds r2, r5, 0 + bl memset + ldr r1, _0811C4E4 @ =REG_WIN0H + movs r0, 0xF0 + strh r0, [r1] + ldr r0, _0811C4E8 @ =REG_BLDY + mov r1, r8 + strh r1, [r0] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + strh r1, [r6, 0xE] + strh r1, [r6, 0x10] + movs r0, 0xBF + strh r0, [r7, 0xE] + ldr r0, _0811C4EC @ =sub_811C700 + bl SetVBlankCallback +_0811C4C4: + movs r0, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0811C4D0: .4byte 0x0200c000 +_0811C4D4: .4byte 0x040000b0 +_0811C4D8: .4byte 0x0000c5ff +_0811C4DC: .4byte 0x00007fff +_0811C4E0: .4byte gUnknown_03004DE0 +_0811C4E4: .4byte REG_WIN0H +_0811C4E8: .4byte REG_BLDY +_0811C4EC: .4byte sub_811C700 + thumb_func_end sub_811C43C + + thumb_func_start sub_811C4F0 +sub_811C4F0: @ 811C4F0 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r1, _0811C5AC @ =0x0200c000 + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + movs r6, 0x1 + ldrh r0, [r1, 0x18] + subs r0, 0x8 + strh r0, [r1, 0x18] + ldrh r0, [r1, 0x1A] + adds r0, 0x8 + strh r0, [r1, 0x1A] + ldrh r2, [r4, 0x10] + movs r3, 0x10 + ldrsh r0, [r4, r3] + adds r7, r1, 0 + cmp r0, 0x4F + bgt _0811C51A + adds r0, r2, 0x2 + strh r0, [r4, 0x10] +_0811C51A: + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0x50 + ble _0811C526 + movs r0, 0x50 + strh r0, [r4, 0x10] +_0811C526: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + movs r1, 0x1 + ands r0, r1 + ldrh r2, [r4, 0x10] + cmp r0, 0 + beq _0811C58C + movs r3, 0 + lsls r0, r2, 16 + movs r6, 0 + cmp r0, 0 + blt _0811C58C + movs r2, 0x50 + mov r12, r2 + ldr r5, _0811C5B0 @ =gUnknown_03004DE0 +_0811C546: + lsls r0, r3, 16 + asrs r2, r0, 16 + mov r3, r12 + subs r1, r3, r2 + adds r0, r2, 0 + adds r0, 0x50 + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + asrs r1, 15 + adds r1, r5 + ldrh r0, [r1] + cmp r0, 0xF + bhi _0811C568 + movs r6, 0x1 + adds r0, 0x1 + strh r0, [r1] +_0811C568: + lsls r0, r3, 16 + asrs r0, 15 + adds r1, r0, r5 + ldrh r0, [r1] + cmp r0, 0xF + bhi _0811C57A + movs r6, 0x1 + adds r0, 0x1 + strh r0, [r1] +_0811C57A: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + asrs r0, 16 + movs r2, 0x10 + ldrsh r1, [r4, r2] + ldrh r2, [r4, 0x10] + cmp r0, r1 + ble _0811C546 +_0811C58C: + cmp r2, 0x50 + bne _0811C59A + cmp r6, 0 + bne _0811C59A + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_0811C59A: + ldrb r0, [r7] + adds r0, 0x1 + ldrb r1, [r7] + strb r0, [r7] + movs r0, 0 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0811C5AC: .4byte 0x0200c000 +_0811C5B0: .4byte gUnknown_03004DE0 + thumb_func_end sub_811C4F0 + + thumb_func_start sub_811C5B4 +sub_811C5B4: @ 811C5B4 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _0811C5E0 @ =0x0200c000 + ldrb r0, [r4] + movs r6, 0 + strb r6, [r4] + movs r0, 0x1 + negs r0, r0 + ldr r2, _0811C5E4 @ =0x00007fff + movs r1, 0x10 + bl BlendPalettes + movs r0, 0xFF + strh r0, [r4, 0xE] + strh r6, [r5, 0xE] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0811C5E0: .4byte 0x0200c000 +_0811C5E4: .4byte 0x00007fff + thumb_func_end sub_811C5B4 + + thumb_func_start sub_811C5E8 +sub_811C5E8: @ 811C5E8 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _0811C628 @ =0x0200c000 + ldrb r0, [r5] + movs r0, 0 + strb r0, [r5] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + ldr r0, _0811C62C @ =gUnknown_03004DE0 + movs r2, 0xE + ldrsh r1, [r4, r2] + movs r2, 0xA0 + lsls r2, 1 + bl memset + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0xF + ble _0811C616 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_0811C616: + ldrb r0, [r5] + adds r0, 0x1 + ldrb r1, [r5] + strb r0, [r5] + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0811C628: .4byte 0x0200c000 +_0811C62C: .4byte gUnknown_03004DE0 + thumb_func_end sub_811C5E8 + + thumb_func_start sub_811C630 +sub_811C630: @ 811C630 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _0811C664 @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _0811C668 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _0811C66C @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + bl sub_811D6D4 + ldr r0, [r4] + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811C664: .4byte 0x040000b0 +_0811C668: .4byte 0x0000c5ff +_0811C66C: .4byte 0x00007fff + thumb_func_end sub_811C630 + + thumb_func_start sub_811C670 +sub_811C670: @ 811C670 + push {r4,lr} + ldr r4, _0811C6D4 @ =0x040000b0 + ldrh r1, [r4, 0xA] + ldr r0, _0811C6D8 @ =0x0000c5ff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r1, [r4, 0xA] + ldr r0, _0811C6DC @ =0x00007fff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xA] + bl sub_811D67C + ldr r2, _0811C6E0 @ =0x0200c000 + ldrb r0, [r2] + cmp r0, 0 + beq _0811C6A6 + ldr r1, _0811C6E4 @ =0x040000d4 + ldr r0, _0811C6E8 @ =gUnknown_03004DE0 + str r0, [r1] + movs r3, 0xF0 + lsls r3, 3 + adds r0, r3 + str r0, [r1, 0x4] + ldr r0, _0811C6EC @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_0811C6A6: + ldr r1, _0811C6F0 @ =REG_BG0VOFS + ldrh r0, [r2, 0x1C] + strh r0, [r1] + adds r1, 0x36 + ldrh r0, [r2, 0x2] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r2, 0x4] + strh r0, [r1] + subs r1, 0x6 + ldrh r0, [r2, 0x8] + strh r0, [r1] + ldr r0, _0811C6F4 @ =gUnknown_03005560 + str r0, [r4] + ldr r0, _0811C6F8 @ =REG_WIN0H + str r0, [r4, 0x4] + ldr r0, _0811C6FC @ =0xa2400001 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811C6D4: .4byte 0x040000b0 +_0811C6D8: .4byte 0x0000c5ff +_0811C6DC: .4byte 0x00007fff +_0811C6E0: .4byte 0x0200c000 +_0811C6E4: .4byte 0x040000d4 +_0811C6E8: .4byte gUnknown_03004DE0 +_0811C6EC: .4byte 0x800000a0 +_0811C6F0: .4byte REG_BG0VOFS +_0811C6F4: .4byte gUnknown_03005560 +_0811C6F8: .4byte REG_WIN0H +_0811C6FC: .4byte 0xa2400001 + thumb_func_end sub_811C670 + + thumb_func_start sub_811C700 +sub_811C700: @ 811C700 + push {r4,lr} + ldr r4, _0811C750 @ =0x040000b0 + ldrh r1, [r4, 0xA] + ldr r0, _0811C754 @ =0x0000c5ff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r1, [r4, 0xA] + ldr r0, _0811C758 @ =0x00007fff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xA] + bl sub_811D67C + ldr r2, _0811C75C @ =0x0200c000 + ldrb r0, [r2] + cmp r0, 0 + beq _0811C736 + ldr r1, _0811C760 @ =0x040000d4 + ldr r0, _0811C764 @ =gUnknown_03004DE0 + str r0, [r1] + movs r3, 0xF0 + lsls r3, 3 + adds r0, r3 + str r0, [r1, 0x4] + ldr r0, _0811C768 @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_0811C736: + ldr r1, _0811C76C @ =REG_BLDCNT + ldrh r0, [r2, 0xE] + strh r0, [r1] + ldr r0, _0811C770 @ =gUnknown_03005560 + str r0, [r4] + ldr r0, _0811C774 @ =REG_BLDY + str r0, [r4, 0x4] + ldr r0, _0811C778 @ =0xa2400001 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811C750: .4byte 0x040000b0 +_0811C754: .4byte 0x0000c5ff +_0811C758: .4byte 0x00007fff +_0811C75C: .4byte 0x0200c000 +_0811C760: .4byte 0x040000d4 +_0811C764: .4byte gUnknown_03004DE0 +_0811C768: .4byte 0x800000a0 +_0811C76C: .4byte REG_BLDCNT +_0811C770: .4byte gUnknown_03005560 +_0811C774: .4byte REG_BLDY +_0811C778: .4byte 0xa2400001 + thumb_func_end sub_811C700 + + thumb_func_start sub_811C77C +sub_811C77C: @ 811C77C + push {lr} + ldr r0, _0811C790 @ =REG_VCOUNT + ldrh r0, [r0] + cmp r0, 0x4F + bhi _0811C79C + ldr r0, _0811C794 @ =REG_BG0HOFS + ldr r1, _0811C798 @ =0x0200c000 + ldrh r1, [r1, 0x18] + b _0811C7A2 + .align 2, 0 +_0811C790: .4byte REG_VCOUNT +_0811C794: .4byte REG_BG0HOFS +_0811C798: .4byte 0x0200c000 +_0811C79C: + ldr r0, _0811C7A8 @ =REG_BG0HOFS + ldr r1, _0811C7AC @ =0x0200c000 + ldrh r1, [r1, 0x1A] +_0811C7A2: + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_0811C7A8: .4byte REG_BG0HOFS +_0811C7AC: .4byte 0x0200c000 + thumb_func_end sub_811C77C + + thumb_func_start sub_811C7B0 +sub_811C7B0: @ 811C7B0 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + adds r4, r0, 0 + ldr r0, _0811C8EC @ =gUnknown_083FD850 + movs r2, 0x26 + ldrsh r1, [r4, r2] + mov r8, r1 + add r0, r8 + ldrb r0, [r0] + ldr r2, _0811C8F0 @ =gUnknown_083FD86A + lsls r1, 2 + mov r8, r1 + adds r1, r2 + ldrh r1, [r1] + subs r1, 0x20 + lsls r1, 16 + asrs r1, 16 + adds r2, 0x2 + add r2, r8 + ldrh r2, [r2] + adds r2, 0x2A + lsls r2, 16 + asrs r2, 16 + ldr r5, _0811C8F4 @ =0x0200c03c + str r5, [sp] + movs r3, 0 + bl CreateTrainerSprite_BirchSpeech + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r0, _0811C8F8 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + movs r1, 0x88 + lsls r1, 1 + str r5, [sp] + movs r2, 0x6A + movs r3, 0 + bl CreateTrainerSprite_BirchSpeech + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x24] + movs r3, 0x22 + ldrsh r0, [r4, r3] + lsls r5, r0, 4 + adds r5, r0 + lsls r5, 2 + ldr r1, _0811C8FC @ =gSprites + adds r5, r1 + movs r2, 0x24 + ldrsh r0, [r4, r2] + lsls r6, r0, 4 + adds r6, r0 + lsls r6, 2 + adds r6, r1 + ldr r0, _0811C900 @ =sub_811C90C + str r0, [r5, 0x1C] + str r0, [r6, 0x1C] + ldrb r0, [r5, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r5, 0x1] + ldrb r0, [r6, 0x1] + orrs r0, r1 + strb r0, [r6, 0x1] + bl AllocOamMatrix + lsls r0, 24 + lsrs r0, 24 + movs r3, 0x1F + mov r9, r3 + mov r4, r9 + ands r0, r4 + lsls r0, 1 + ldrb r2, [r5, 0x3] + movs r4, 0x3F + negs r4, r4 + adds r1, r4, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x3] + bl AllocOamMatrix + lsls r0, 24 + lsrs r0, 24 + mov r1, r9 + ands r0, r1 + lsls r0, 1 + ldrb r1, [r6, 0x3] + ands r4, r1 + orrs r4, r0 + strb r4, [r6, 0x3] + ldrb r2, [r5, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r2 + movs r2, 0x40 + orrs r0, r2 + strb r0, [r5, 0x1] + ldrb r0, [r6, 0x1] + ands r1, r0 + orrs r1, r2 + strb r1, [r6, 0x1] + ldrb r0, [r5, 0x3] + movs r1, 0xC0 + orrs r0, r1 + strb r0, [r5, 0x3] + ldrb r0, [r6, 0x3] + orrs r0, r1 + strb r0, [r6, 0x3] + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0x3 + movs r3, 0x3 + bl CalcCenterToCornerVec + adds r0, r6, 0 + movs r1, 0x1 + movs r2, 0x3 + movs r3, 0x3 + bl CalcCenterToCornerVec + ldrb r0, [r5, 0x3] + lsls r0, 26 + lsrs r0, 27 + ldr r2, _0811C904 @ =gUnknown_083FD856 + mov r3, r8 + adds r1, r3, r2 + movs r4, 0 + ldrsh r1, [r1, r4] + adds r2, 0x2 + add r8, r2 + mov r3, r8 + movs r4, 0 + ldrsh r2, [r3, r4] + movs r3, 0 + bl SetOamMatrixRotationScaling + ldrb r0, [r6, 0x3] + lsls r0, 26 + lsrs r0, 27 + ldr r1, _0811C908 @ =0xfffffe00 + movs r2, 0x80 + lsls r2, 2 + movs r3, 0 + bl SetOamMatrixRotationScaling + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811C8EC: .4byte gUnknown_083FD850 +_0811C8F0: .4byte gUnknown_083FD86A +_0811C8F4: .4byte 0x0200c03c +_0811C8F8: .4byte gSaveBlock2 +_0811C8FC: .4byte gSprites +_0811C900: .4byte sub_811C90C +_0811C904: .4byte gUnknown_083FD856 +_0811C908: .4byte 0xfffffe00 + thumb_func_end sub_811C7B0 + + thumb_func_start sub_811C90C +sub_811C90C: @ 811C90C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _0811C930 @ =gUnknown_083FD880 +_0811C912: + movs r1, 0x2E + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0811C912 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811C930: .4byte gUnknown_083FD880 + thumb_func_end sub_811C90C + + thumb_func_start sub_811C934 +sub_811C934: @ 811C934 + movs r0, 0 + bx lr + thumb_func_end sub_811C934 + + thumb_func_start sub_811C938 +sub_811C938: @ 811C938 + push {r4,r5,lr} + sub sp, 0x8 + adds r5, r0, 0 + ldr r1, _0811C97C @ =gUnknown_083FD89C + mov r0, sp + movs r2, 0x4 + bl memcpy + add r4, sp, 0x4 + ldr r1, _0811C980 @ =gUnknown_083FD8A0 + adds r0, r4, 0 + movs r2, 0x4 + bl memcpy + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + movs r1, 0x3C + ldrsh r0, [r5, r1] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + strh r0, [r5, 0x30] + movs r1, 0x3C + ldrsh r0, [r5, r1] + lsls r0, 1 + adds r4, r0 + ldrh r0, [r4] + strh r0, [r5, 0x32] + movs r0, 0x1 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0811C97C: .4byte gUnknown_083FD89C +_0811C980: .4byte gUnknown_083FD8A0 + thumb_func_end sub_811C938 + + thumb_func_start sub_811C984 +sub_811C984: @ 811C984 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + ldrh r3, [r1, 0x20] + adds r2, r0, r3 + strh r2, [r1, 0x20] + movs r3, 0x3C + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _0811C9A2 + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x84 + bgt _0811C9B0 + b _0811C9AA +_0811C9A2: + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x67 + ble _0811C9B0 +_0811C9AA: + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] +_0811C9B0: + movs r0, 0 + pop {r1} + bx r1 + thumb_func_end sub_811C984 + + thumb_func_start sub_811C9B8 +sub_811C9B8: @ 811C9B8 + push {lr} + adds r2, r0, 0 + ldrh r3, [r2, 0x32] + ldrh r0, [r2, 0x30] + adds r1, r3, r0 + strh r1, [r2, 0x30] + ldrh r0, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + lsls r1, 16 + cmp r1, 0 + bne _0811C9DE + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + negs r0, r3 + strh r0, [r2, 0x32] + movs r0, 0x1 + strh r0, [r2, 0x3A] +_0811C9DE: + movs r0, 0 + pop {r1} + bx r1 + thumb_func_end sub_811C9B8 + + thumb_func_start sub_811C9E4 +sub_811C9E4: @ 811C9E4 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x30] + adds r0, r1 + strh r0, [r2, 0x30] + ldrh r1, [r2, 0x20] + adds r1, r0 + strh r1, [r2, 0x20] + adds r1, 0x1F + lsls r1, 16 + movs r0, 0x97 + lsls r0, 17 + cmp r1, r0 + bls _0811CA08 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] +_0811CA08: + movs r0, 0 + pop {r1} + bx r1 + thumb_func_end sub_811C9E4 + + thumb_func_start sub_811CA10 +sub_811CA10: @ 811CA10 + ldr r3, _0811CA24 @ =gSprites + lsls r0, 16 + asrs r0, 16 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + strh r1, [r2, 0x3C] + bx lr + .align 2, 0 +_0811CA24: .4byte gSprites + thumb_func_end sub_811CA10 + + thumb_func_start sub_811CA28 +sub_811CA28: @ 811CA28 + ldr r2, _0811CA40 @ =gSprites + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + bx lr + .align 2, 0 +_0811CA40: .4byte gSprites + thumb_func_end sub_811CA28 + + thumb_func_start sub_811CA44 +sub_811CA44: @ 811CA44 + ldr r2, _0811CA58 @ =gSprites + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r2, 0x3A + ldrsh r0, [r1, r2] + bx lr + .align 2, 0 +_0811CA58: .4byte gSprites + thumb_func_end sub_811CA44 + + thumb_func_start sub_811CA5C +sub_811CA5C: @ 811CA5C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _0811CA8C @ =gUnknown_083FD8A4 + ldr r2, _0811CA90 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_0811CA6E: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0811CA6E + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811CA8C: .4byte gUnknown_083FD8A4 +_0811CA90: .4byte gTasks + thumb_func_end sub_811CA5C + + thumb_func_start sub_811CA94 +sub_811CA94: @ 811CA94 + push {r4-r6,lr} + adds r4, r0, 0 + bl sub_811D658 + bl dp12_8087EA4 + movs r2, 0 + movs r0, 0x80 + lsls r0, 1 + strh r0, [r4, 0xC] + movs r0, 0x1 + strh r0, [r4, 0xE] + ldr r1, _0811CB08 @ =0x0200c000 + movs r0, 0x3F + strh r0, [r1, 0x2] + strh r2, [r1, 0x4] + movs r0, 0xA0 + strh r0, [r1, 0x8] + ldr r3, _0811CB0C @ =gUnknown_03005560 + adds r6, r1, 0 + movs r5, 0xF0 +_0811CABE: + lsls r0, r2, 1 + adds r0, r3 + ldrh r1, [r6, 0x14] + strh r1, [r0] + adds r0, r2, 0 + adds r0, 0xA0 + lsls r0, 1 + adds r0, r3 + strh r5, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x9F + bls _0811CABE + ldr r2, _0811CB10 @ =0x04000200 + ldrh r0, [r2] + movs r1, 0x2 + orrs r0, r1 + strh r0, [r2] + ldr r2, _0811CB14 @ =REG_DISPSTAT + ldrh r0, [r2] + movs r1, 0x10 + orrs r0, r1 + strh r0, [r2] + ldr r0, _0811CB18 @ =sub_811CC28 + bl SetVBlankCallback + ldr r0, _0811CB1C @ =sub_811CCB0 + bl SetHBlankCallback + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0811CB08: .4byte 0x0200c000 +_0811CB0C: .4byte gUnknown_03005560 +_0811CB10: .4byte 0x04000200 +_0811CB14: .4byte REG_DISPSTAT +_0811CB18: .4byte sub_811CC28 +_0811CB1C: .4byte sub_811CCB0 + thumb_func_end sub_811CA94 + + thumb_func_start sub_811CB20 +sub_811CB20: @ 811CB20 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r2, r0, 0 + ldr r1, _0811CB98 @ =0x0200c000 + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldrh r0, [r2, 0xC] + lsls r0, 16 + asrs r0, 24 + ldrh r3, [r2, 0xA] + adds r0, r3 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + mov r12, r1 + cmp r0, 0xF0 + ble _0811CB4A + movs r0, 0xF0 + strh r0, [r2, 0xA] +_0811CB4A: + ldrh r4, [r2, 0xC] + movs r0, 0xC + ldrsh r1, [r2, r0] + ldr r0, _0811CB9C @ =0x00000fff + ldrh r3, [r2, 0xE] + cmp r1, r0 + bgt _0811CB5C + adds r0, r4, r3 + strh r0, [r2, 0xC] +_0811CB5C: + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, 0x7F + bgt _0811CB68 + lsls r0, r3, 1 + strh r0, [r2, 0xE] +_0811CB68: + movs r5, 0 + ldr r7, _0811CBA0 @ =gUnknown_03004DE0 + movs r1, 0xA0 + lsls r1, 1 + adds r1, r7 + mov r8, r1 + mov r6, r12 +_0811CB76: + lsls r0, r5, 1 + adds r3, r0, r7 + mov r1, r8 + adds r4, r0, r1 + movs r0, 0x1 + ands r0, r5 + cmp r0, 0 + beq _0811CBA4 + ldrh r0, [r2, 0xA] + ldrh r1, [r6, 0x14] + adds r0, r1 + strh r0, [r3] + ldrh r1, [r2, 0xA] + movs r0, 0xF0 + subs r0, r1 + b _0811CBB4 + .align 2, 0 +_0811CB98: .4byte 0x0200c000 +_0811CB9C: .4byte 0x00000fff +_0811CBA0: .4byte gUnknown_03004DE0 +_0811CBA4: + ldrh r0, [r6, 0x14] + ldrh r1, [r2, 0xA] + subs r0, r1 + strh r0, [r3] + ldrh r0, [r2, 0xA] + lsls r0, 8 + movs r1, 0xF1 + orrs r0, r1 +_0811CBB4: + strh r0, [r4] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x9F + bls _0811CB76 + movs r3, 0xA + ldrsh r0, [r2, r3] + cmp r0, 0xEF + ble _0811CBCE + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] +_0811CBCE: + mov r1, r12 + ldrb r0, [r1] + adds r0, 0x1 + ldrb r1, [r1] + mov r2, r12 + strb r0, [r2] + movs r0, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_811CB20 + + thumb_func_start sub_811CBE8 +sub_811CBE8: @ 811CBE8 + push {lr} + ldr r1, _0811CC18 @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _0811CC1C @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _0811CC20 @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + bl sub_811D6D4 + ldr r0, _0811CC24 @ =sub_811CA5C + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0811CC18: .4byte 0x040000b0 +_0811CC1C: .4byte 0x0000c5ff +_0811CC20: .4byte 0x00007fff +_0811CC24: .4byte sub_811CA5C + thumb_func_end sub_811CBE8 + + thumb_func_start sub_811CC28 +sub_811CC28: @ 811CC28 + push {r4,lr} + ldr r4, _0811CC84 @ =0x040000b0 + ldrh r1, [r4, 0xA] + ldr r0, _0811CC88 @ =0x0000c5ff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r1, [r4, 0xA] + ldr r0, _0811CC8C @ =0x00007fff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xA] + bl sub_811D67C + ldr r2, _0811CC90 @ =REG_WININ + ldr r1, _0811CC94 @ =0x0200c000 + ldrh r0, [r1, 0x2] + strh r0, [r2] + adds r2, 0x2 + ldrh r0, [r1, 0x4] + strh r0, [r2] + subs r2, 0x6 + ldrh r0, [r1, 0x8] + strh r0, [r2] + ldrb r0, [r1] + cmp r0, 0 + beq _0811CC70 + ldr r1, _0811CC98 @ =0x040000d4 + ldr r0, _0811CC9C @ =gUnknown_03004DE0 + str r0, [r1] + movs r2, 0xF0 + lsls r2, 3 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _0811CCA0 @ =0x80000140 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_0811CC70: + ldr r0, _0811CCA4 @ =gUnknown_030056A0 + str r0, [r4] + ldr r0, _0811CCA8 @ =REG_WIN0H + str r0, [r4, 0x4] + ldr r0, _0811CCAC @ =0xa2400001 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811CC84: .4byte 0x040000b0 +_0811CC88: .4byte 0x0000c5ff +_0811CC8C: .4byte 0x00007fff +_0811CC90: .4byte REG_WININ +_0811CC94: .4byte 0x0200c000 +_0811CC98: .4byte 0x040000d4 +_0811CC9C: .4byte gUnknown_03004DE0 +_0811CCA0: .4byte 0x80000140 +_0811CCA4: .4byte gUnknown_030056A0 +_0811CCA8: .4byte REG_WIN0H +_0811CCAC: .4byte 0xa2400001 + thumb_func_end sub_811CC28 + + thumb_func_start sub_811CCB0 +sub_811CCB0: @ 811CCB0 + ldr r1, _0811CCD0 @ =gUnknown_03004DE0 + ldr r0, _0811CCD4 @ =REG_VCOUNT + ldrh r0, [r0] + lsls r0, 1 + movs r2, 0xF0 + lsls r2, 3 + adds r1, r2 + adds r0, r1 + ldrh r1, [r0] + ldr r0, _0811CCD8 @ =REG_BG1HOFS + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + bx lr + .align 2, 0 +_0811CCD0: .4byte gUnknown_03004DE0 +_0811CCD4: .4byte REG_VCOUNT +_0811CCD8: .4byte REG_BG1HOFS + thumb_func_end sub_811CCB0 + + thumb_func_start sub_811CCDC +sub_811CCDC: @ 811CCDC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _0811CD0C @ =gUnknown_083FD8B0 + ldr r2, _0811CD10 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_0811CCEE: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0811CCEE + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811CD0C: .4byte gUnknown_083FD8B0 +_0811CD10: .4byte gTasks + thumb_func_end sub_811CCDC + + thumb_func_start sub_811CD14 +sub_811CD14: @ 811CD14 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_811D658 + bl dp12_8087EA4 + ldr r1, _0811CD88 @ =0x0200c000 + movs r2, 0 + movs r0, 0xBF + strh r0, [r1, 0xE] + strh r2, [r1, 0x12] + movs r0, 0x1E + strh r0, [r1, 0x2] + movs r0, 0x3F + strh r0, [r1, 0x4] + movs r0, 0xA0 + strh r0, [r1, 0x8] + movs r1, 0 + ldr r2, _0811CD8C @ =gUnknown_03005560 + movs r4, 0 + movs r3, 0xF0 +_0811CD3E: + lsls r0, r1, 1 + adds r0, r2 + strh r4, [r0] + adds r0, r1, 0 + adds r0, 0xA0 + lsls r0, 1 + adds r0, r2 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x9F + bls _0811CD3E + ldr r2, _0811CD90 @ =0x04000200 + ldrh r0, [r2] + movs r1, 0x2 + orrs r0, r1 + strh r0, [r2] + ldr r2, _0811CD94 @ =REG_DISPSTAT + ldrh r0, [r2] + movs r1, 0x10 + orrs r0, r1 + strh r0, [r2] + ldr r0, _0811CD98 @ =sub_811CFAC + bl SetHBlankCallback + ldr r0, _0811CD9C @ =sub_811CEE4 + bl SetVBlankCallback + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0811CD88: .4byte 0x0200c000 +_0811CD8C: .4byte gUnknown_03005560 +_0811CD90: .4byte 0x04000200 +_0811CD94: .4byte REG_DISPSTAT +_0811CD98: .4byte sub_811CFAC +_0811CD9C: .4byte sub_811CEE4 + thumb_func_end sub_811CD14 + + thumb_func_start sub_811CDA0 +sub_811CDA0: @ 811CDA0 + push {r4-r6,lr} + sub sp, 0x10 + adds r6, r0, 0 + ldr r1, _0811CE08 @ =gUnknown_083FD8C4 + mov r0, sp + movs r2, 0x10 + bl memcpy + movs r5, 0 + movs r4, 0 +_0811CDB4: + ldr r0, _0811CE0C @ =sub_811CFD0 + bl CreateInvisibleSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _0811CE10 @ =gSprites + adds r2, r1, r0 + movs r0, 0xF0 + strh r0, [r2, 0x20] + strh r4, [r2, 0x22] + lsls r1, r5, 16 + asrs r1, 16 + lsls r0, r1, 1 + add r0, sp + ldrh r0, [r0] + strh r0, [r2, 0x38] + adds r1, 0x1 + lsls r1, 16 + lsls r0, r4, 16 + movs r3, 0xA0 + lsls r3, 13 + adds r0, r3 + lsrs r4, r0, 16 + lsrs r5, r1, 16 + asrs r1, 16 + cmp r1, 0x7 + ble _0811CDB4 + ldrh r0, [r2, 0x3A] + adds r0, 0x1 + strh r0, [r2, 0x3A] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + movs r0, 0 + add sp, 0x10 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0811CE08: .4byte gUnknown_083FD8C4 +_0811CE0C: .4byte sub_811CFD0 +_0811CE10: .4byte gSprites + thumb_func_end sub_811CDA0 + + thumb_func_start sub_811CE14 +sub_811CE14: @ 811CE14 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _0811CE44 @ =0x0200c000 + ldrb r1, [r0] + movs r1, 0 + strb r1, [r0] + movs r1, 0x20 + ldrsh r0, [r0, r1] + cmp r0, 0x7 + ble _0811CE3A + movs r0, 0x1 + negs r0, r0 + ldr r2, _0811CE48 @ =0x00007fff + movs r1, 0x10 + bl BlendPalettes + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_0811CE3A: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811CE44: .4byte 0x0200c000 +_0811CE48: .4byte 0x00007fff + thumb_func_end sub_811CE14 + + thumb_func_start sub_811CE4C +sub_811CE4C: @ 811CE4C + push {r4-r6,lr} + adds r6, r0, 0 + ldr r4, _0811CE9C @ =0x0200c000 + ldrb r0, [r4] + movs r5, 0 + strb r5, [r4] + ldr r1, _0811CEA0 @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _0811CEA4 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _0811CEA8 @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + movs r0, 0 + bl SetVBlankCallback + movs r0, 0 + bl SetHBlankCallback + movs r0, 0xF0 + strh r0, [r4, 0x6] + strh r5, [r4, 0x12] + movs r0, 0xFF + strh r0, [r4, 0xE] + movs r0, 0x3F + strh r0, [r4, 0x2] + ldr r0, _0811CEAC @ =sub_811CF74 + bl SetVBlankCallback + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + movs r0, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0811CE9C: .4byte 0x0200c000 +_0811CEA0: .4byte 0x040000b0 +_0811CEA4: .4byte 0x0000c5ff +_0811CEA8: .4byte 0x00007fff +_0811CEAC: .4byte sub_811CF74 + thumb_func_end sub_811CE4C + + thumb_func_start sub_811CEB0 +sub_811CEB0: @ 811CEB0 + push {lr} + ldr r1, _0811CEDC @ =0x0200c000 + ldrh r0, [r1, 0x12] + adds r0, 0x1 + strh r0, [r1, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x10 + bls _0811CED4 + bl sub_811D6D4 + ldr r0, _0811CEE0 @ =sub_811CCDC + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_0811CED4: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0811CEDC: .4byte 0x0200c000 +_0811CEE0: .4byte sub_811CCDC + thumb_func_end sub_811CEB0 + + thumb_func_start sub_811CEE4 +sub_811CEE4: @ 811CEE4 + push {r4,lr} + ldr r4, _0811CF48 @ =0x040000b0 + ldrh r1, [r4, 0xA] + ldr r0, _0811CF4C @ =0x0000c5ff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r1, [r4, 0xA] + ldr r0, _0811CF50 @ =0x00007fff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xA] + bl sub_811D67C + ldr r2, _0811CF54 @ =REG_BLDCNT + ldr r1, _0811CF58 @ =0x0200c000 + ldrh r0, [r1, 0xE] + strh r0, [r2] + subs r2, 0x8 + ldrh r0, [r1, 0x2] + strh r0, [r2] + adds r2, 0x2 + ldrh r0, [r1, 0x4] + strh r0, [r2] + subs r2, 0x6 + ldrh r0, [r1, 0x6] + strh r0, [r2] + ldrb r0, [r1] + cmp r0, 0 + beq _0811CF32 + ldr r1, _0811CF5C @ =0x040000d4 + ldr r0, _0811CF60 @ =gUnknown_03004DE0 + str r0, [r1] + movs r2, 0xF0 + lsls r2, 3 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _0811CF64 @ =0x80000140 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_0811CF32: + ldr r0, _0811CF68 @ =gUnknown_030056A0 + str r0, [r4] + ldr r0, _0811CF6C @ =REG_WIN0H + str r0, [r4, 0x4] + ldr r0, _0811CF70 @ =0xa2400001 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811CF48: .4byte 0x040000b0 +_0811CF4C: .4byte 0x0000c5ff +_0811CF50: .4byte 0x00007fff +_0811CF54: .4byte REG_BLDCNT +_0811CF58: .4byte 0x0200c000 +_0811CF5C: .4byte 0x040000d4 +_0811CF60: .4byte gUnknown_03004DE0 +_0811CF64: .4byte 0x80000140 +_0811CF68: .4byte gUnknown_030056A0 +_0811CF6C: .4byte REG_WIN0H +_0811CF70: .4byte 0xa2400001 + thumb_func_end sub_811CEE4 + + thumb_func_start sub_811CF74 +sub_811CF74: @ 811CF74 + push {lr} + bl sub_811D67C + ldr r1, _0811CFA4 @ =REG_BLDY + ldr r2, _0811CFA8 @ =0x0200c000 + ldrh r0, [r2, 0x12] + strh r0, [r1] + subs r1, 0x4 + ldrh r0, [r2, 0xE] + strh r0, [r1] + subs r1, 0x8 + ldrh r0, [r2, 0x2] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r2, 0x4] + strh r0, [r1] + subs r1, 0xA + ldrh r0, [r2, 0x6] + strh r0, [r1] + adds r1, 0x4 + ldrh r0, [r2, 0x8] + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0811CFA4: .4byte REG_BLDY +_0811CFA8: .4byte 0x0200c000 + thumb_func_end sub_811CF74 + + thumb_func_start sub_811CFAC +sub_811CFAC: @ 811CFAC + ldr r2, _0811CFC4 @ =REG_BLDY + ldr r1, _0811CFC8 @ =gUnknown_03004DE0 + ldr r0, _0811CFCC @ =REG_VCOUNT + ldrh r0, [r0] + lsls r0, 1 + movs r3, 0xF0 + lsls r3, 3 + adds r1, r3 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + bx lr + .align 2, 0 +_0811CFC4: .4byte REG_BLDY +_0811CFC8: .4byte gUnknown_03004DE0 +_0811CFCC: .4byte REG_VCOUNT + thumb_func_end sub_811CFAC + + thumb_func_start sub_811CFD0 +sub_811CFD0: @ 811CFD0 + push {r4-r6,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x38] + movs r2, 0x38 + ldrsh r0, [r3, r2] + cmp r0, 0 + beq _0811CFF8 + subs r0, r1, 0x1 + strh r0, [r3, 0x38] + movs r1, 0x3A + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _0811D0AA + ldr r0, _0811CFF4 @ =0x0200c000 + ldrb r1, [r0] + movs r1, 0x1 + strb r1, [r0] + b _0811D0AA + .align 2, 0 +_0811CFF4: .4byte 0x0200c000 +_0811CFF8: + movs r2, 0x22 + ldrsh r1, [r3, r2] + lsls r1, 1 + ldr r0, _0811D0B0 @ =gUnknown_03004DE0 + adds r6, r1, r0 + movs r2, 0xA0 + lsls r2, 1 + adds r0, r2 + adds r5, r1, r0 + movs r4, 0 +_0811D00C: + lsls r1, r4, 1 + adds r2, r1, r6 + ldrh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 24 + strh r0, [r2] + adds r1, r5 + ldrh r0, [r3, 0x20] + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x13 + bls _0811D00C + movs r1, 0x20 + ldrsh r0, [r3, r1] + ldrh r2, [r3, 0x20] + cmp r0, 0 + bne _0811D046 + movs r0, 0x2E + ldrsh r1, [r3, r0] + movs r0, 0x80 + lsls r0, 5 + cmp r1, r0 + bne _0811D046 + movs r0, 0x1 + strh r0, [r3, 0x30] +_0811D046: + adds r1, r2, 0 + subs r1, 0x10 + strh r1, [r3, 0x20] + ldrh r0, [r3, 0x2E] + adds r0, 0x80 + strh r0, [r3, 0x2E] + lsls r1, 16 + cmp r1, 0 + bge _0811D05C + movs r0, 0 + strh r0, [r3, 0x20] +_0811D05C: + movs r1, 0x2E + ldrsh r0, [r3, r1] + movs r1, 0x80 + lsls r1, 5 + cmp r0, r1 + ble _0811D06A + strh r1, [r3, 0x2E] +_0811D06A: + movs r0, 0x3A + ldrsh r2, [r3, r0] + cmp r2, 0 + beq _0811D07A + ldr r0, _0811D0B4 @ =0x0200c000 + ldrb r1, [r0] + movs r1, 0x1 + strb r1, [r0] +_0811D07A: + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _0811D0AA + ldr r4, _0811D0B4 @ =0x0200c000 + cmp r2, 0 + beq _0811D09E + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x6 + ble _0811D0AA + ldrh r0, [r3, 0x32] + adds r1, r0, 0x1 + strh r1, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _0811D0AA +_0811D09E: + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + adds r0, r3, 0 + bl DestroySprite +_0811D0AA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811D0B0: .4byte gUnknown_03004DE0 +_0811D0B4: .4byte 0x0200c000 + thumb_func_end sub_811CFD0 + + thumb_func_start sub_811D0B8 +sub_811D0B8: @ 811D0B8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _0811D0E8 @ =gUnknown_083FD8D4 + ldr r2, _0811D0EC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_0811D0CA: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0811D0CA + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811D0E8: .4byte gUnknown_083FD8D4 +_0811D0EC: .4byte gTasks + thumb_func_end sub_811D0B8 + + thumb_func_start sub_811D0F0 +sub_811D0F0: @ 811D0F0 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + add r0, sp, 0x4 + add r1, sp, 0x8 + bl sub_811D6A8 + ldr r0, _0811D138 @ =gUnknown_083FD528 + ldr r1, [sp, 0x8] + movs r2, 0x10 + bl CpuSet + mov r1, sp + movs r2, 0xF0 + lsls r2, 8 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, [sp, 0x4] + ldr r2, _0811D13C @ =0x01000400 + mov r0, sp + bl CpuSet + ldr r0, _0811D140 @ =gFieldEffectObjectPalette10 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + add sp, 0xC + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811D138: .4byte gUnknown_083FD528 +_0811D13C: .4byte 0x01000400 +_0811D140: .4byte gFieldEffectObjectPalette10 + thumb_func_end sub_811D0F0 + + thumb_func_start sub_811D144 +sub_811D144: @ 811D144 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0811D186 + mov r0, sp + bl sub_811D690 + movs r0, 0x3 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0xC + ldrsh r0, [r4, r1] + lsls r0, 5 + ldr r1, _0811D198 @ =gUnknown_083FD528 + adds r0, r1 + ldr r1, [sp] + movs r2, 0x10 + bl CpuSet + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0xD + ble _0811D186 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x10 + strh r0, [r4, 0xA] +_0811D186: + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811D198: .4byte gUnknown_083FD528 + thumb_func_end sub_811D144 + + thumb_func_start sub_811D19C +sub_811D19C: @ 811D19C + push {lr} + ldrh r1, [r0, 0xA] + subs r1, 0x1 + strh r1, [r0, 0xA] + lsls r1, 16 + cmp r1, 0 + bne _0811D1BC + bl sub_811D6D4 + ldr r0, _0811D1C4 @ =sub_811D0B8 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_0811D1BC: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0811D1C4: .4byte sub_811D0B8 + thumb_func_end sub_811D19C + + thumb_func_start sub_811D1C8 +sub_811D1C8: @ 811D1C8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _0811D1F8 @ =gUnknown_083FD8E0 + ldr r2, _0811D1FC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_0811D1DA: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0811D1DA + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811D1F8: .4byte gUnknown_083FD8E0 +_0811D1FC: .4byte gTasks + thumb_func_end sub_811D1C8 + + thumb_func_start sub_811D200 +sub_811D200: @ 811D200 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_811D658 + bl dp12_8087EA4 + ldr r1, _0811D254 @ =0x0200c000 + movs r2, 0 + movs r0, 0x3F + strh r0, [r1, 0x2] + strh r2, [r1, 0x4] + movs r0, 0xA0 + strh r0, [r1, 0x8] + movs r1, 0 + ldr r2, _0811D258 @ =gUnknown_03004DE0 + movs r3, 0xF0 + adds r4, r2, 0 +_0811D222: + lsls r0, r1, 1 + adds r0, r2 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x9F + bls _0811D222 + movs r0, 0xF0 + lsls r0, 3 + adds r1, r4, r0 + adds r0, r4, 0 + movs r2, 0xA0 + bl CpuSet + ldr r0, _0811D25C @ =sub_811D438 + bl SetVBlankCallback + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0x1 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0811D254: .4byte 0x0200c000 +_0811D258: .4byte gUnknown_03004DE0 +_0811D25C: .4byte sub_811D438 + thumb_func_end sub_811D200 + + thumb_func_start sub_811D260 +sub_811D260: @ 811D260 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + mov r8, r0 + ldr r0, _0811D2D0 @ =0x0200c024 + ldr r6, _0811D2D4 @ =gUnknown_083FD8F4 + mov r2, r8 + movs r3, 0xA + ldrsh r1, [r2, r3] + lsls r4, r1, 2 + adds r4, r1 + lsls r4, 1 + adds r1, r4, r6 + movs r5, 0 + ldrsh r1, [r1, r5] + adds r2, r6, 0x2 + adds r2, r4, r2 + movs r3, 0 + ldrsh r2, [r2, r3] + adds r3, r6, 0x4 + adds r3, r4, r3 + movs r5, 0 + ldrsh r3, [r3, r5] + adds r5, r6, 0x6 + adds r4, r5 + movs r5, 0 + ldrsh r4, [r4, r5] + str r4, [sp] + movs r4, 0x1 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + bl sub_811D8FC + mov r0, r8 + movs r2, 0xA + ldrsh r1, [r0, r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + adds r6, 0x8 + adds r0, r6 + ldrh r0, [r0] + mov r3, r8 + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + movs r0, 0x1 + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0811D2D0: .4byte 0x0200c024 +_0811D2D4: .4byte gUnknown_083FD8F4 + thumb_func_end sub_811D260 + + thumb_func_start sub_811D2D8 +sub_811D2D8: @ 811D2D8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + ldr r0, _0811D324 @ =0x0200c000 + ldrb r1, [r0] + movs r1, 0 + strb r1, [r0] + mov r8, r1 + mov r12, r1 + adds r6, r0, 0 + ldr r0, _0811D328 @ =gUnknown_03004DE0 + mov r9, r0 +_0811D2F4: + ldr r1, _0811D328 @ =gUnknown_03004DE0 + movs r2, 0x2A + ldrsh r0, [r6, r2] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsrs r3, r0, 8 + movs r4, 0xFF + ands r4, r0 + movs r1, 0xC + ldrsh r0, [r7, r1] + cmp r0, 0 + bne _0811D32C + movs r2, 0x28 + ldrsh r0, [r6, r2] + cmp r3, r0 + bge _0811D318 + ldrh r3, [r6, 0x28] +_0811D318: + lsls r0, r3, 16 + lsls r1, r4, 16 + cmp r0, r1 + ble _0811D344 + lsrs r3, r1, 16 + b _0811D344 + .align 2, 0 +_0811D324: .4byte 0x0200c000 +_0811D328: .4byte gUnknown_03004DE0 +_0811D32C: + lsls r0, r4, 16 + asrs r0, 16 + movs r2, 0x28 + ldrsh r1, [r6, r2] + cmp r0, r1 + ble _0811D33A + ldrh r4, [r6, 0x28] +_0811D33A: + lsls r0, r4, 16 + lsls r1, r3, 16 + cmp r0, r1 + bgt _0811D344 + lsrs r4, r1, 16 +_0811D344: + ldr r5, _0811D368 @ =0x0200c000 + movs r0, 0x2A + ldrsh r2, [r5, r0] + lsls r2, 1 + add r2, r9 + lsls r1, r3, 16 + asrs r1, 8 + lsls r0, r4, 16 + asrs r0, 16 + orrs r0, r1 + strh r0, [r2] + mov r1, r12 + cmp r1, 0 + beq _0811D36C + ldrh r0, [r7, 0x8] + adds r0, 0x1 + strh r0, [r7, 0x8] + b _0811D392 + .align 2, 0 +_0811D368: .4byte 0x0200c000 +_0811D36C: + adds r0, r5, 0 + adds r0, 0x24 + movs r1, 0x1 + movs r2, 0x1 + bl sub_811D978 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + mov r2, r8 + lsls r0, r2, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r2, r0, 16 + mov r8, r2 + asrs r0, 16 + cmp r0, 0xF + ble _0811D2F4 +_0811D392: + ldr r0, _0811D3AC @ =0x0200c000 + ldrb r1, [r0] + adds r1, 0x1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, 0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0811D3AC: .4byte 0x0200c000 + thumb_func_end sub_811D2D8 + + thumb_func_start sub_811D3B0 +sub_811D3B0: @ 811D3B0 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + ble _0811D3FC + ldr r1, _0811D3EC @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _0811D3F0 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _0811D3F4 @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + bl sub_811D6D4 + ldr r0, _0811D3F8 @ =sub_811D1C8 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0 + b _0811D414 + .align 2, 0 +_0811D3EC: .4byte 0x040000b0 +_0811D3F0: .4byte 0x0000c5ff +_0811D3F4: .4byte 0x00007fff +_0811D3F8: .4byte sub_811D1C8 +_0811D3FC: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + ldr r1, _0811D418 @ =gUnknown_083FD93A + movs r3, 0xA + ldrsh r0, [r2, r3] + subs r0, 0x1 + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2, 0xE] + movs r0, 0x1 +_0811D414: + pop {r1} + bx r1 + .align 2, 0 +_0811D418: .4byte gUnknown_083FD93A + thumb_func_end sub_811D3B0 + + thumb_func_start sub_811D41C +sub_811D41C: @ 811D41C + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0xE] + subs r0, 0x1 + strh r0, [r1, 0xE] + lsls r0, 16 + cmp r0, 0 + beq _0811D430 + movs r0, 0 + b _0811D434 +_0811D430: + movs r0, 0x1 + strh r0, [r1, 0x8] +_0811D434: + pop {r1} + bx r1 + thumb_func_end sub_811D41C + + thumb_func_start sub_811D438 +sub_811D438: @ 811D438 + push {r4,lr} + ldr r4, _0811D4A0 @ =0x040000b0 + ldrh r1, [r4, 0xA] + ldr r0, _0811D4A4 @ =0x0000c5ff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r1, [r4, 0xA] + ldr r0, _0811D4A8 @ =0x00007fff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xA] + bl sub_811D67C + ldr r2, _0811D4AC @ =0x0200c000 + ldrb r0, [r2] + cmp r0, 0 + beq _0811D46E + ldr r1, _0811D4B0 @ =0x040000d4 + ldr r0, _0811D4B4 @ =gUnknown_03004DE0 + str r0, [r1] + movs r3, 0xF0 + lsls r3, 3 + adds r0, r3 + str r0, [r1, 0x4] + ldr r0, _0811D4B8 @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_0811D46E: + ldr r1, _0811D4BC @ =REG_WININ + ldrh r0, [r2, 0x2] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r2, 0x4] + strh r0, [r1] + subs r1, 0x6 + ldrh r0, [r2, 0x8] + strh r0, [r1] + ldr r2, _0811D4C0 @ =REG_WIN0H + ldr r0, _0811D4B4 @ =gUnknown_03004DE0 + movs r1, 0xF0 + lsls r1, 3 + adds r0, r1 + ldrh r1, [r0] + strh r1, [r2] + str r0, [r4] + str r2, [r4, 0x4] + ldr r0, _0811D4C4 @ =0xa2400001 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811D4A0: .4byte 0x040000b0 +_0811D4A4: .4byte 0x0000c5ff +_0811D4A8: .4byte 0x00007fff +_0811D4AC: .4byte 0x0200c000 +_0811D4B0: .4byte 0x040000d4 +_0811D4B4: .4byte gUnknown_03004DE0 +_0811D4B8: .4byte 0x800000a0 +_0811D4BC: .4byte REG_WININ +_0811D4C0: .4byte REG_WIN0H +_0811D4C4: .4byte 0xa2400001 + thumb_func_end sub_811D438 + + thumb_func_start sub_811D4C8 +sub_811D4C8: @ 811D4C8 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + mov r8, r0 + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + ldr r3, [sp, 0x18] + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 16 + lsrs r6, 16 + lsls r3, 16 + lsrs r3, 16 + ldr r0, _0811D524 @ =sub_811D54C + movs r1, 0x3 + str r3, [sp] + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0811D528 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + mov r0, r8 + strh r0, [r1, 0xA] + strh r4, [r1, 0xC] + strh r5, [r1, 0xE] + strh r6, [r1, 0x10] + ldr r3, [sp] + strh r3, [r1, 0x12] + strh r0, [r1, 0x14] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811D524: .4byte sub_811D54C +_0811D528: .4byte gTasks + thumb_func_end sub_811D4C8 + + thumb_func_start sub_811D52C +sub_811D52C: @ 811D52C + push {lr} + ldr r0, _0811D540 @ =sub_811D54C + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _0811D544 + movs r0, 0 + b _0811D546 + .align 2, 0 +_0811D540: .4byte sub_811D54C +_0811D544: + movs r0, 0x1 +_0811D546: + pop {r1} + bx r1 + thumb_func_end sub_811D52C + + thumb_func_start sub_811D54C +sub_811D54C: @ 811D54C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _0811D57C @ =gUnknown_083FD948 + ldr r2, _0811D580 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_0811D55E: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _0811D55E + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811D57C: .4byte gUnknown_083FD948 +_0811D580: .4byte gTasks + thumb_func_end sub_811D54C + + thumb_func_start sub_811D584 +sub_811D584: @ 811D584 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x14] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _0811D59C + subs r0, r1, 0x1 + strh r0, [r4, 0x14] + lsls r0, 16 + cmp r0, 0 + bne _0811D5C0 +_0811D59C: + ldrh r0, [r4, 0xA] + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x10] + ldrh r1, [r4, 0x16] + adds r0, r1 + strh r0, [r4, 0x16] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _0811D5B4 + movs r0, 0x10 + strh r0, [r4, 0x16] +_0811D5B4: + movs r0, 0x1 + negs r0, r0 + ldrb r1, [r4, 0x16] + ldr r2, _0811D5DC @ =0x00002d6b + bl BlendPalettes +_0811D5C0: + movs r2, 0x16 + ldrsh r0, [r4, r2] + cmp r0, 0xF + ble _0811D5D2 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldrh r0, [r4, 0xC] + strh r0, [r4, 0x14] +_0811D5D2: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811D5DC: .4byte 0x00002d6b + thumb_func_end sub_811D584 + + thumb_func_start sub_811D5E0 +sub_811D5E0: @ 811D5E0 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x14] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _0811D5F8 + subs r0, r1, 0x1 + strh r0, [r4, 0x14] + lsls r0, 16 + cmp r0, 0 + bne _0811D61A +_0811D5F8: + ldrh r0, [r4, 0xC] + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x16] + ldrh r1, [r4, 0x12] + subs r0, r1 + strh r0, [r4, 0x16] + lsls r0, 16 + cmp r0, 0 + bge _0811D60E + movs r0, 0 + strh r0, [r4, 0x16] +_0811D60E: + movs r0, 0x1 + negs r0, r0 + ldrb r1, [r4, 0x16] + ldr r2, _0811D640 @ =0x00002d6b + bl BlendPalettes +_0811D61A: + movs r0, 0x16 + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _0811D64E + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _0811D648 + ldr r0, _0811D644 @ =sub_811D54C + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + b _0811D64E + .align 2, 0 +_0811D640: .4byte 0x00002d6b +_0811D644: .4byte sub_811D54C +_0811D648: + ldrh r0, [r4, 0xA] + strh r0, [r4, 0x14] + strh r1, [r4, 0x8] +_0811D64E: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_811D5E0 + + thumb_func_start sub_811D658 +sub_811D658: @ 811D658 + push {lr} + ldr r0, _0811D674 @ =gUnknown_083FD708 + ldr r0, [r0] + movs r1, 0 + movs r2, 0x3C + bl memset + ldr r0, _0811D678 @ =0x0200c014 + adds r1, r0, 0x2 + bl sub_8057B14 + pop {r0} + bx r0 + .align 2, 0 +_0811D674: .4byte gUnknown_083FD708 +_0811D678: .4byte 0x0200c014 + thumb_func_end sub_811D658 + + thumb_func_start sub_811D67C +sub_811D67C: @ 811D67C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_811D67C + + thumb_func_start sub_811D690 +sub_811D690: @ 811D690 + ldr r1, _0811D6A4 @ =REG_BG0CNT + ldrh r1, [r1] + lsrs r1, 2 + lsls r1, 30 + lsrs r1, 16 + movs r2, 0xC0 + lsls r2, 19 + adds r1, r2 + str r1, [r0] + bx lr + .align 2, 0 +_0811D6A4: .4byte REG_BG0CNT + thumb_func_end sub_811D690 + + thumb_func_start sub_811D6A8 +sub_811D6A8: @ 811D6A8 + push {r4,lr} + ldr r3, _0811D6D0 @ =REG_BG0CNT + ldrh r2, [r3] + lsrs r2, 8 + ldrh r3, [r3] + lsrs r3, 2 + lsls r2, 27 + lsrs r2, 16 + lsls r3, 30 + lsrs r3, 16 + movs r4, 0xC0 + lsls r4, 19 + adds r2, r4 + str r2, [r0] + adds r3, r4 + str r3, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811D6D0: .4byte REG_BG0CNT + thumb_func_end sub_811D6A8 + + thumb_func_start sub_811D6D4 +sub_811D6D4: @ 811D6D4 + push {lr} + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + pop {r0} + bx r0 + thumb_func_end sub_811D6D4 + + thumb_func_start sub_811D6E8 +sub_811D6E8: @ 811D6E8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r10, r0 + ldr r0, [sp, 0x20] + ldr r4, [sp, 0x24] + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 16 + lsrs r3, 16 + lsls r0, 16 + lsrs r1, r0, 16 + lsls r4, 16 + movs r6, 0 + lsrs r5, r4, 16 + cmp r4, 0 + ble _0811D750 + lsls r0, r7, 16 + asrs r0, 16 + mov r9, r0 + lsls r1, 16 + mov r8, r1 + lsls r0, r3, 16 + asrs r7, r0, 16 +_0811D720: + lsls r4, r2, 16 + asrs r4, 16 + movs r0, 0xFF + ands r0, r4 + mov r2, r8 + asrs r1, r2, 16 + bl Sin + lsls r1, r6, 1 + add r1, r10 + add r0, r9 + strh r0, [r1] + lsls r1, r5, 16 + ldr r0, _0811D760 @ =0xffff0000 + adds r1, r0 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r4, r7 + lsls r4, 16 + lsrs r2, r4, 16 + lsrs r5, r1, 16 + cmp r1, 0 + bgt _0811D720 +_0811D750: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811D760: .4byte 0xffff0000 + thumb_func_end sub_811D6E8 + + thumb_func_start sub_811D764 +sub_811D764: @ 811D764 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + mov r9, r0 + adds r5, r2, 0 + adds r4, r3, 0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + lsls r5, 16 + lsrs r5, 16 + lsls r4, 16 + lsrs r4, 16 + movs r2, 0xA0 + lsls r2, 1 + movs r1, 0xA + bl memset + movs r1, 0 + lsls r4, 16 + asrs r4, 16 + str r4, [sp, 0x4] + lsls r5, 16 + asrs r5, 16 + str r5, [sp, 0x8] +_0811D79C: + lsls r5, r1, 16 + asrs r0, r5, 16 + mov r10, r0 + ldr r1, [sp, 0x4] + bl Sin + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, r10 + ldr r1, [sp, 0x4] + bl Cos + ldr r2, [sp] + lsls r1, r2, 16 + asrs r1, 16 + lsls r4, 16 + asrs r4, 16 + subs r2, r1, r4 + lsls r2, 16 + adds r1, r4 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r0, 16 + asrs r0, 16 + ldr r3, [sp, 0x8] + subs r1, r3, r0 + lsls r1, 16 + lsrs r7, r1, 16 + adds r0, r3, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsrs r1, r2, 16 + str r5, [sp, 0x10] + cmp r2, 0 + bge _0811D7E8 + movs r1, 0 +_0811D7E8: + lsls r0, r6, 16 + asrs r0, 16 + cmp r0, 0xF0 + ble _0811D7F2 + movs r6, 0xF0 +_0811D7F2: + lsls r0, r7, 16 + cmp r0, 0 + bge _0811D7FA + movs r7, 0 +_0811D7FA: + mov r2, r8 + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x9F + ble _0811D808 + movs r3, 0x9F + mov r8, r3 +_0811D808: + lsls r0, r1, 24 + lsrs r0, 16 + orrs r6, r0 + lsls r0, r7, 16 + asrs r0, 16 + str r0, [sp, 0xC] + lsls r0, 1 + add r0, r9 + strh r6, [r0] + mov r0, r8 + lsls r4, r0, 16 + asrs r0, r4, 15 + add r0, r9 + strh r6, [r0] + mov r0, r10 + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + ldr r1, [sp, 0x4] + bl Cos + lsls r0, 16 + asrs r0, 16 + ldr r2, [sp, 0x8] + subs r1, r2, r0 + lsls r1, 16 + adds r0, r2, r0 + lsls r0, 16 + lsrs r2, r0, 16 + lsrs r3, r1, 16 + cmp r1, 0 + bge _0811D84A + movs r3, 0 +_0811D84A: + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x9F + ble _0811D854 + movs r2, 0x9F +_0811D854: + lsls r0, r3, 16 + asrs r1, r0, 16 + adds r3, r0, 0 + lsls r5, r2, 16 + ldr r0, [sp, 0xC] + cmp r0, r1 + ble _0811D878 + adds r2, r1, 0 +_0811D864: + lsls r1, r7, 16 + ldr r0, _0811D8F8 @ =0xffff0000 + adds r1, r0 + asrs r0, r1, 15 + add r0, r9 + strh r6, [r0] + lsrs r7, r1, 16 + asrs r1, 16 + cmp r1, r2 + bgt _0811D864 +_0811D878: + lsls r1, r7, 16 + asrs r0, r3, 16 + cmp r1, r3 + bge _0811D896 + adds r2, r0, 0 +_0811D882: + movs r3, 0x80 + lsls r3, 9 + adds r0, r1, r3 + asrs r1, r0, 15 + add r1, r9 + strh r6, [r1] + adds r1, r0, 0 + asrs r0, r1, 16 + cmp r0, r2 + blt _0811D882 +_0811D896: + asrs r0, r5, 16 + cmp r4, r5 + ble _0811D8B4 + adds r1, r0, 0 +_0811D89E: + ldr r2, _0811D8F8 @ =0xffff0000 + adds r0, r4, r2 + lsrs r3, r0, 16 + mov r8, r3 + asrs r0, 15 + add r0, r9 + strh r6, [r0] + lsls r4, r3, 16 + asrs r0, r4, 16 + cmp r0, r1 + bgt _0811D89E +_0811D8B4: + mov r0, r8 + lsls r4, r0, 16 + asrs r0, r5, 16 + cmp r4, r5 + bge _0811D8D4 + adds r2, r0, 0 +_0811D8C0: + movs r1, 0x80 + lsls r1, 9 + adds r0, r4, r1 + asrs r1, r0, 15 + add r1, r9 + strh r6, [r1] + adds r4, r0, 0 + asrs r0, r4, 16 + cmp r0, r2 + blt _0811D8C0 +_0811D8D4: + ldr r2, [sp, 0x10] + movs r3, 0x80 + lsls r3, 9 + adds r0, r2, r3 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0x3F + bgt _0811D8E6 + b _0811D79C +_0811D8E6: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811D8F8: .4byte 0xffff0000 + thumb_func_end sub_811D764 + + thumb_func_start sub_811D8FC +sub_811D8FC: @ 811D8FC + push {r4-r7,lr} + adds r6, r0, 0 + ldr r0, [sp, 0x14] + ldr r5, [sp, 0x18] + ldr r4, [sp, 0x1C] + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 16 + lsrs r3, 16 + lsls r0, 16 + lsrs r0, 16 + adds r7, r0, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 16 + lsrs r4, 16 + strh r1, [r6] + strh r2, [r6, 0x2] + strh r1, [r6, 0x4] + strh r2, [r6, 0x6] + strh r3, [r6, 0x8] + strh r7, [r6, 0xA] + strh r5, [r6, 0xC] + strh r4, [r6, 0xE] + lsls r3, 16 + asrs r3, 16 + lsls r1, 16 + asrs r1, 16 + subs r3, r1 + strh r3, [r6, 0x10] + lsls r0, r3, 16 + cmp r0, 0 + bge _0811D94E + negs r0, r3 + strh r0, [r6, 0x10] + lsls r0, r5, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r6, 0xC] +_0811D94E: + lsls r0, r7, 16 + asrs r0, 16 + lsls r1, r2, 16 + asrs r1, 16 + subs r1, r0, r1 + strh r1, [r6, 0x12] + lsls r0, r1, 16 + cmp r0, 0 + bge _0811D96C + negs r0, r1 + strh r0, [r6, 0x12] + lsls r0, r4, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r6, 0xE] +_0811D96C: + movs r0, 0 + strh r0, [r6, 0x14] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_811D8FC + + thumb_func_start sub_811D978 +sub_811D978: @ 811D978 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r3, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + ldrh r0, [r3, 0x10] + mov r8, r0 + movs r1, 0x10 + ldrsh r6, [r3, r1] + ldrh r2, [r3, 0x12] + mov r12, r2 + movs r4, 0x12 + ldrsh r5, [r3, r4] + cmp r6, r5 + ble _0811D9C8 + ldrh r0, [r3, 0xC] + ldrh r2, [r3, 0x4] + adds r1, r0, r2 + strh r1, [r3, 0x4] + ldrh r2, [r3, 0x14] + add r2, r12 + strh r2, [r3, 0x14] + lsls r1, r2, 16 + asrs r1, 16 + adds r4, r0, 0 + ldrh r7, [r3, 0xE] + cmp r1, r6 + ble _0811D9EE + ldrh r1, [r3, 0x6] + adds r0, r7, r1 + strh r0, [r3, 0x6] + mov r1, r8 + b _0811D9EA +_0811D9C8: + ldrh r0, [r3, 0xE] + ldrh r2, [r3, 0x6] + adds r1, r0, r2 + strh r1, [r3, 0x6] + ldrh r2, [r3, 0x14] + add r2, r8 + strh r2, [r3, 0x14] + lsls r1, r2, 16 + asrs r1, 16 + ldrh r4, [r3, 0xC] + adds r7, r0, 0 + cmp r1, r5 + ble _0811D9EE + ldrh r1, [r3, 0x4] + adds r0, r4, r1 + strh r0, [r3, 0x4] + mov r1, r12 +_0811D9EA: + subs r0, r2, r1 + strh r0, [r3, 0x14] +_0811D9EE: + movs r5, 0 + lsls r0, r4, 16 + asrs r2, r0, 16 + cmp r2, 0 + ble _0811DA06 + movs r4, 0x4 + ldrsh r1, [r3, r4] + movs r4, 0x8 + ldrsh r0, [r3, r4] + ldrh r4, [r3, 0x8] + cmp r1, r0 + bge _0811DA18 +_0811DA06: + cmp r2, 0 + bge _0811DA26 + movs r0, 0x4 + ldrsh r1, [r3, r0] + movs r2, 0x8 + ldrsh r0, [r3, r2] + ldrh r4, [r3, 0x8] + cmp r1, r0 + bgt _0811DA26 +_0811DA18: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + mov r0, r9 + cmp r0, 0 + beq _0811DA26 + strh r4, [r3, 0x4] +_0811DA26: + lsls r0, r7, 16 + asrs r2, r0, 16 + cmp r2, 0 + ble _0811DA3C + movs r4, 0x6 + ldrsh r1, [r3, r4] + movs r4, 0xA + ldrsh r0, [r3, r4] + ldrh r4, [r3, 0xA] + cmp r1, r0 + bge _0811DA4E +_0811DA3C: + cmp r2, 0 + bge _0811DA5C + movs r0, 0x6 + ldrsh r1, [r3, r0] + movs r2, 0xA + ldrsh r0, [r3, r2] + ldrh r4, [r3, 0xA] + cmp r1, r0 + bgt _0811DA5C +_0811DA4E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + mov r0, r10 + cmp r0, 0 + beq _0811DA5C + strh r4, [r3, 0x6] +_0811DA5C: + cmp r5, 0x2 + beq _0811DA64 + movs r0, 0 + b _0811DA66 +_0811DA64: + movs r0, 0x1 +_0811DA66: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_811D978 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/cable_car.s b/asm/cable_car.s new file mode 100644 index 000000000..1d094ba8d --- /dev/null +++ b/asm/cable_car.s @@ -0,0 +1,2881 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_81231EC +sub_81231EC: @ 81231EC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08123210 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0812320A + ldr r0, _08123214 @ =sub_8123244 + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_0812320A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08123210: .4byte gPaletteFade +_08123214: .4byte sub_8123244 + thumb_func_end sub_81231EC + + thumb_func_start sub_8123218 +sub_8123218: @ 8123218 + push {lr} + sub sp, 0x4 + bl ScriptContext2_Enable + ldr r0, _08123240 @ =sub_81231EC + movs r1, 0x1 + bl CreateTask + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_08123240: .4byte sub_81231EC + thumb_func_end sub_8123218 + + thumb_func_start sub_8123244 +sub_8123244: @ 8123244 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + ldr r1, _08123268 @ =gMain + ldr r2, _0812326C @ =0x0000043c + adds r0, r1, r2 + ldrb r0, [r0] + mov r9, r1 + cmp r0, 0x8 + bhi _08123298 + lsls r0, 2 + ldr r1, _08123270 @ =_08123274 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08123268: .4byte gMain +_0812326C: .4byte 0x0000043c +_08123270: .4byte _08123274 + .align 2, 0 +_08123274: + .4byte _08123298 + .4byte _08123384 + .4byte _081233E8 + .4byte _08123484 + .4byte _081234A0 + .4byte _08123504 + .4byte _08123598 + .4byte _08123678 + .4byte _081236B0 +_08123298: + movs r0, 0 + bl SetVBlankCallback + bl remove_some_task + movs r3, 0xC0 + lsls r3, 19 + movs r4, 0xC0 + lsls r4, 9 + add r0, sp, 0xC + mov r9, r0 + add r2, sp, 0x8 + movs r6, 0 + ldr r1, _08123368 @ =0x040000d4 + movs r5, 0x80 + lsls r5, 5 + ldr r7, _0812336C @ =0x81000800 + movs r0, 0x81 + lsls r0, 24 + mov r8, r0 +_081232C0: + strh r6, [r2] + add r0, sp, 0x8 + str r0, [r1] + str r3, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r5 + subs r4, r5 + cmp r4, r5 + bhi _081232C0 + strh r6, [r2] + add r2, sp, 0x8 + str r2, [r1] + str r3, [r1, 0x4] + lsrs r0, r4, 1 + mov r2, r8 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0xE0 + lsls r0, 19 + movs r3, 0x80 + lsls r3, 3 + movs r4, 0 + str r4, [sp, 0xC] + ldr r2, _08123368 @ =0x040000d4 + mov r1, r9 + str r1, [r2] + str r0, [r2, 0x4] + lsrs r0, r3, 2 + movs r1, 0x85 + lsls r1, 24 + orrs r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r1, 0xA0 + lsls r1, 19 + add r0, sp, 0x8 + strh r4, [r0] + str r0, [r2] + str r1, [r2, 0x4] + lsrs r3, 1 + movs r4, 0x81 + lsls r4, 24 + orrs r3, r4 + str r3, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r1, _08123370 @ =gUnknown_02039274 + ldr r0, _08123374 @ =0x02017000 + str r0, [r1] + adds r3, r0, 0 + ldr r5, _08123378 @ =0x000010fc + ldr r0, _0812337C @ =gMain + mov r9, r0 + add r1, sp, 0x8 + movs r7, 0 + movs r6, 0x80 + lsls r6, 5 + ldr r0, _0812336C @ =0x81000800 + mov r8, r0 +_08123338: + strh r7, [r1] + add r0, sp, 0x8 + str r0, [r2] + str r3, [r2, 0x4] + mov r0, r8 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r3, r6 + subs r5, r6 + cmp r5, r6 + bhi _08123338 + strh r7, [r1] + add r1, sp, 0x8 + str r1, [r2] + str r3, [r2, 0x4] + lsrs r0, r5, 1 + orrs r0, r4 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r1, _08123380 @ =0x0000043c + add r1, r9 + ldrb r0, [r1] + adds r0, 0x1 + b _0812370C + .align 2, 0 +_08123368: .4byte 0x040000d4 +_0812336C: .4byte 0x81000800 +_08123370: .4byte gUnknown_02039274 +_08123374: .4byte 0x02017000 +_08123378: .4byte 0x000010fc +_0812337C: .4byte gMain +_08123380: .4byte 0x0000043c +_08123384: + bl ResetSpriteData + bl ResetTasks + bl FreeAllSpritePalettes + bl ResetPaletteFade + bl sub_807C828 + movs r4, 0 + ldr r0, _081233D4 @ =gUnknown_08396FC4 + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0xF0 + movs r2, 0 +_081233A4: + lsls r0, r4, 2 + adds r0, r1, r0 + str r2, [r0] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x13 + bls _081233A4 + bl InitMapMusic + bl ResetMapMusic + ldr r2, _081233D8 @ =gSpriteCoordOffsetX + ldr r1, _081233DC @ =gSpriteCoordOffsetY + movs r0, 0 + strh r0, [r1] + strh r0, [r2] + ldr r1, _081233E0 @ =gMain + ldr r2, _081233E4 @ =0x0000043c + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + b _0812370C + .align 2, 0 +_081233D4: .4byte gUnknown_08396FC4 +_081233D8: .4byte gSpriteCoordOffsetX +_081233DC: .4byte gSpriteCoordOffsetY +_081233E0: .4byte gMain +_081233E4: .4byte 0x0000043c +_081233E8: + movs r4, 0 + ldr r5, _08123454 @ =gUnknown_08401CF8 +_081233EC: + lsls r0, r4, 3 + adds r0, r5 + bl LoadCompressedObjectPic + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _081233EC + ldr r0, _08123458 @ =gUnknown_08401D18 + bl LoadSpritePalettes + ldr r0, _0812345C @ =gCableCarMtChimneyTilemap + ldr r4, _08123460 @ =0x02019000 + adds r1, r4, 0 + bl sub_800D238 + ldr r0, _08123464 @ =gCableCarTreeTilemap + movs r2, 0xB4 + lsls r2, 1 + adds r1, r4, r2 + bl sub_800D238 + ldr r0, _08123468 @ =gCableCarMountainTilemap + movs r2, 0xA5 + lsls r2, 3 + adds r1, r4, r2 + bl sub_800D238 + ldr r0, _0812346C @ =gCableCarPylonStemTilemap + ldr r1, _08123470 @ =0x000009d8 + adds r4, r1 + adds r1, r4, 0 + bl sub_800D238 + ldr r0, _08123474 @ =gCableCarBG_Pal + movs r1, 0 + movs r2, 0x80 + bl LoadPalette + ldr r0, _08123478 @ =gCableCarBG_Gfx + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r1, _0812347C @ =gMain + ldr r2, _08123480 @ =0x0000043c + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + b _0812370C + .align 2, 0 +_08123454: .4byte gUnknown_08401CF8 +_08123458: .4byte gUnknown_08401D18 +_0812345C: .4byte gCableCarMtChimneyTilemap +_08123460: .4byte 0x02019000 +_08123464: .4byte gCableCarTreeTilemap +_08123468: .4byte gCableCarMountainTilemap +_0812346C: .4byte gCableCarPylonStemTilemap +_08123470: .4byte 0x000009d8 +_08123474: .4byte gCableCarBG_Pal +_08123478: .4byte gCableCarBG_Gfx +_0812347C: .4byte gMain +_08123480: .4byte 0x0000043c +_08123484: + bl sub_8124118 + bl RunTasks + ldr r1, _08123498 @ =gMain + ldr r0, _0812349C @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + b _0812370C + .align 2, 0 +_08123498: .4byte gMain +_0812349C: .4byte 0x0000043c +_081234A0: + ldr r0, _081234B4 @ =gUnknown_02039274 + ldr r0, [r0] + ldrb r0, [r0, 0x2] + cmp r0, 0x7 + bne _081234BC + ldr r1, _081234B8 @ =0x0000043c + add r1, r9 + ldrb r0, [r1] + adds r0, 0x1 + b _0812370C + .align 2, 0 +_081234B4: .4byte gUnknown_02039274 +_081234B8: .4byte 0x0000043c +_081234BC: + ldr r0, _081234FC @ =gUnknown_08396FC4 + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0xF0 + ldr r0, [r1] + cmp r0, 0 + bne _081234CC + b _0812370E +_081234CC: + movs r4, 0 + adds r3, r1, 0 + movs r5, 0xD + negs r5, r5 +_081234D4: + lsls r0, r4, 2 + adds r0, r3, r0 + ldr r2, [r0] + cmp r2, 0 + beq _081234E6 + ldrb r1, [r2, 0x5] + adds r0, r5, 0 + ands r0, r1 + strb r0, [r2, 0x5] +_081234E6: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x13 + bls _081234D4 + ldr r1, _08123500 @ =0x0000043c + add r1, r9 + ldrb r0, [r1] + adds r0, 0x1 + b _0812370C + .align 2, 0 +_081234FC: .4byte gUnknown_08396FC4 +_08123500: .4byte 0x0000043c +_08123504: + ldr r0, _08123578 @ =0x0600e800 + ldr r5, _0812357C @ =0x02019168 + movs r1, 0x20 + str r1, [sp] + movs r1, 0xF + str r1, [sp, 0x4] + adds r1, r5, 0 + movs r2, 0 + movs r3, 0x11 + bl sub_8124F08 + ldr r0, _08123580 @ =0x0600f000 + movs r2, 0xF0 + lsls r2, 2 + adds r1, r5, r2 + movs r2, 0x1E + str r2, [sp] + movs r2, 0x14 + mov r9, r2 + str r2, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_8124F08 + ldr r0, _08123584 @ =gUnknown_02039274 + mov r8, r0 + ldr r0, [r0] + ldr r6, _08123588 @ =0x000008fc + adds r0, r6 + ldr r1, _0812358C @ =gCableCarPylonHookTilemapEntries + movs r2, 0x5 + str r2, [sp] + movs r4, 0x2 + str r4, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_8124F08 + mov r1, r8 + ldr r0, [r1] + adds r0, r6 + movs r2, 0x87 + lsls r2, 4 + adds r5, r2 + str r4, [sp] + mov r1, r9 + str r1, [sp, 0x4] + adds r1, r5, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8124F08 + ldr r1, _08123590 @ =gMain + ldr r2, _08123594 @ =0x0000043c + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + b _0812370C + .align 2, 0 +_08123578: .4byte 0x0600e800 +_0812357C: .4byte 0x02019168 +_08123580: .4byte 0x0600f000 +_08123584: .4byte gUnknown_02039274 +_08123588: .4byte 0x000008fc +_0812358C: .4byte gCableCarPylonHookTilemapEntries +_08123590: .4byte gMain +_08123594: .4byte 0x0000043c +_08123598: + ldr r0, _08123664 @ =gUnknown_0202E8CC + ldrb r0, [r0] + bl sub_81248AC + ldr r0, _08123668 @ =gUnknown_02039274 + mov r8, r0 + ldr r0, [r0] + adds r0, 0xFC + ldr r4, _0812366C @ =0x02019090 + movs r6, 0xC + str r6, [sp] + movs r5, 0x3 + str r5, [sp, 0x4] + adds r1, r4, 0 + movs r2, 0 + movs r3, 0xE + bl sub_8124F08 + mov r1, r8 + ldr r0, [r1] + adds r0, 0xFC + adds r1, r4, 0 + adds r1, 0x48 + str r6, [sp] + str r5, [sp, 0x4] + movs r2, 0xC + movs r3, 0x11 + bl sub_8124F08 + mov r2, r8 + ldr r0, [r2] + adds r0, 0xFC + adds r1, r4, 0 + adds r1, 0x90 + str r6, [sp] + str r5, [sp, 0x4] + movs r2, 0x18 + movs r3, 0x14 + bl sub_8124F08 + mov r1, r8 + ldr r0, [r1] + adds r0, 0xFC + movs r2, 0x90 + negs r2, r2 + adds r2, r4 + mov r9, r2 + str r6, [sp] + str r5, [sp, 0x4] + mov r1, r9 + movs r2, 0 + movs r3, 0x11 + bl sub_8124F08 + mov r1, r8 + ldr r0, [r1] + adds r0, 0xFC + subs r4, 0x48 + str r6, [sp] + str r5, [sp, 0x4] + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x14 + bl sub_8124F08 + mov r2, r8 + ldr r0, [r2] + adds r0, 0xFC + str r6, [sp] + str r5, [sp, 0x4] + mov r1, r9 + movs r2, 0xC + movs r3, 0x14 + bl sub_8124F08 + mov r1, r8 + ldr r0, [r1] + adds r0, 0xFC + str r6, [sp] + str r5, [sp, 0x4] + adds r1, r4, 0 + movs r2, 0xC + movs r3, 0x17 + bl sub_8124F08 + mov r2, r8 + ldr r0, [r2] + adds r0, 0xFC + str r6, [sp] + str r5, [sp, 0x4] + mov r1, r9 + movs r2, 0x18 + movs r3, 0x17 + bl sub_8124F08 + ldr r1, _08123670 @ =gMain + ldr r0, _08123674 @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + b _0812370C + .align 2, 0 +_08123664: .4byte gUnknown_0202E8CC +_08123668: .4byte gUnknown_02039274 +_0812366C: .4byte 0x02019090 +_08123670: .4byte gMain +_08123674: .4byte 0x0000043c +_08123678: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r1, 0x3 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _081236A4 @ =0x000001a9 + movs r1, 0x1 + bl FadeInNewBGM + movs r0, 0x1 + bl sub_8123FBC + ldr r1, _081236A8 @ =gMain + ldr r2, _081236AC @ =0x0000043c + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + b _0812370C + .align 2, 0 +_081236A4: .4byte 0x000001a9 +_081236A8: .4byte gMain +_081236AC: .4byte 0x0000043c +_081236B0: + ldr r3, _081236E4 @ =0x04000208 + ldrh r2, [r3] + movs r0, 0 + strh r0, [r3] + ldr r4, _081236E8 @ =0x04000200 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r0, _081236EC @ =sub_8123C40 + bl SetVBlankCallback + ldr r0, _081236F0 @ =mainloop + bl SetMainCallback2 + ldr r0, _081236F4 @ =sub_8123878 + movs r1, 0 + bl CreateTask + ldr r0, _081236F8 @ =gUnknown_0202E8CC + ldrh r0, [r0] + cmp r0, 0 + bne _08123700 + ldr r0, _081236FC @ =sub_81239E4 + b _08123702 + .align 2, 0 +_081236E4: .4byte 0x04000208 +_081236E8: .4byte 0x04000200 +_081236EC: .4byte sub_8123C40 +_081236F0: .4byte mainloop +_081236F4: .4byte sub_8123878 +_081236F8: .4byte gUnknown_0202E8CC +_081236FC: .4byte sub_81239E4 +_08123700: + ldr r0, _0812371C @ =sub_8123AF8 +_08123702: + movs r1, 0x1 + bl CreateTask + ldr r1, _08123720 @ =gUnknown_02039274 + ldr r1, [r1] +_0812370C: + strb r0, [r1] +_0812370E: + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0812371C: .4byte sub_8123AF8 +_08123720: .4byte gUnknown_02039274 + thumb_func_end sub_8123244 + + thumb_func_start mainloop +mainloop: @ 8123724 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + bl MapMusicMain + pop {r0} + bx r0 + thumb_func_end mainloop + + thumb_func_start sub_8123740 +sub_8123740: @ 8123740 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r4, 0 + movs r0, 0 + bl sub_8123FBC + ldr r0, _08123854 @ =gSpriteCoordOffsetX + strh r4, [r0] + movs r0, 0 + bl sub_807C9B4 + add r7, sp, 0x4 + ldr r0, _08123858 @ =gUnknown_08396FC4 + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0xF0 + movs r2, 0 +_08123766: + lsls r0, r4, 2 + adds r0, r1, r0 + str r2, [r0] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x13 + bls _08123766 + bl ResetTasks + bl ResetSpriteData + bl ResetPaletteFade + ldr r2, _0812385C @ =0x02000000 + movs r3, 0x80 + lsls r3, 10 + movs r5, 0 + ldr r1, _08123860 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + ldr r6, _08123864 @ =0x85000400 + movs r0, 0x85 + lsls r0, 24 + mov r12, r0 +_08123798: + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _08123798 + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r12 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, _08123868 @ =gUnknown_02039274 + movs r0, 0 + str r0, [r1] + movs r3, 0xC0 + lsls r3, 19 + movs r4, 0xC0 + lsls r4, 9 + adds r2, r7, 0 + movs r6, 0 + ldr r1, _08123860 @ =0x040000d4 + movs r5, 0x80 + lsls r5, 5 + ldr r0, _0812386C @ =0x81000800 + mov r12, r0 + movs r0, 0x81 + lsls r0, 24 + mov r8, r0 +_081237E0: + strh r6, [r2] + str r2, [r1] + str r3, [r1, 0x4] + mov r0, r12 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r5 + subs r4, r5 + cmp r4, r5 + bhi _081237E0 + strh r6, [r7] + str r7, [r1] + str r3, [r1, 0x4] + lsrs r0, r4, 1 + mov r2, r8 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0xE0 + lsls r0, 19 + movs r3, 0x80 + lsls r3, 3 + movs r4, 0 + str r4, [sp] + ldr r2, _08123860 @ =0x040000d4 + mov r1, sp + str r1, [r2] + str r0, [r2, 0x4] + lsrs r0, r3, 2 + movs r1, 0x85 + lsls r1, 24 + orrs r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r0, 0xA0 + lsls r0, 19 + strh r4, [r7] + str r7, [r2] + str r0, [r2, 0x4] + lsrs r3, 1 + movs r0, 0x81 + lsls r0, 24 + orrs r3, r0 + str r3, [r2, 0x8] + ldr r0, [r2, 0x8] + bl warp_in + ldr r0, _08123870 @ =gUnknown_0300485C + str r4, [r0] + ldr r0, _08123874 @ =CB2_LoadMap + bl SetMainCallback2 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08123854: .4byte gSpriteCoordOffsetX +_08123858: .4byte gUnknown_08396FC4 +_0812385C: .4byte 0x02000000 +_08123860: .4byte 0x040000d4 +_08123864: .4byte 0x85000400 +_08123868: .4byte gUnknown_02039274 +_0812386C: .4byte 0x81000800 +_08123870: .4byte gUnknown_0300485C +_08123874: .4byte CB2_LoadMap + thumb_func_end sub_8123740 + + thumb_func_start sub_8123878 +sub_8123878: @ 8123878 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + ldr r5, _081238A4 @ =gUnknown_02039274 + ldr r3, [r5] + ldrh r0, [r3, 0x6] + adds r0, 0x1 + strh r0, [r3, 0x6] + ldrb r2, [r3, 0x1] + adds r7, r5, 0 + cmp r2, 0x2 + beq _0812397E + cmp r2, 0x2 + bgt _081238A8 + cmp r2, 0 + beq _081238B6 + cmp r2, 0x1 + beq _081238D0 + b _081239D6 + .align 2, 0 +_081238A4: .4byte gUnknown_02039274 +_081238A8: + cmp r2, 0x3 + bne _081238AE + b _081239A4 +_081238AE: + cmp r2, 0xFF + bne _081238B4 + b _081239BC +_081238B4: + b _081239D6 +_081238B6: + lsls r0, 16 + lsrs r0, 16 + ldrh r1, [r3, 0x4] + cmp r0, r1 + beq _081238C2 + b _081239D6 +_081238C2: + ldrb r0, [r3, 0x2] + bl DoWeatherEffect + ldr r1, [r5] + movs r0, 0x1 + strb r0, [r1, 0x1] + b _081239D6 +_081238D0: + ldrb r0, [r3, 0x2] + cmp r0, 0x2 + beq _08123924 + cmp r0, 0x7 + beq _081238DC + b _081239D6 +_081238DC: + ldr r0, _08123920 @ =gUnknown_08396FC4 + ldr r0, [r0] + adds r2, r0, 0 + adds r2, 0xF0 + ldr r0, [r2] + cmp r0, 0 + beq _081239D6 + ldrb r1, [r0, 0x5] + movs r0, 0xC + ands r0, r1 + cmp r0, 0 + beq _081239D6 + adds r3, r2, 0 + movs r5, 0xD + negs r5, r5 +_081238FA: + lsls r0, r4, 2 + adds r0, r3, r0 + ldr r2, [r0] + cmp r2, 0 + beq _0812390C + ldrb r1, [r2, 0x5] + adds r0, r5, 0 + ands r0, r1 + strb r0, [r2, 0x5] +_0812390C: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x13 + bls _081238FA + ldr r1, [r7] + movs r0, 0x2 + strb r0, [r1, 0x1] + b _081239D6 + .align 2, 0 +_08123920: .4byte gUnknown_08396FC4 +_08123924: + ldr r0, _08123938 @ =gUnknown_08396FC4 + ldr r2, [r0] + movs r1, 0xDA + lsls r1, 3 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x2 + bne _0812393C + strb r0, [r3, 0x1] + b _081239D6 + .align 2, 0 +_08123938: .4byte gUnknown_08396FC4 +_0812393C: + ldrh r1, [r3, 0x6] + ldrh r0, [r3, 0x4] + adds r0, 0x8 + cmp r1, r0 + blt _081239D6 + adds r6, r2, 0 + adds r6, 0xF0 + movs r5, 0x1 + movs r7, 0x5 + negs r7, r7 +_08123950: + lsls r0, r4, 2 + adds r0, r6, r0 + ldr r0, [r0] + cmp r0, 0 + beq _08123972 + adds r3, r0, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r1, r2, 29 + lsrs r1, 31 + eors r1, r5 + ands r1, r5 + lsls r1, 2 + adds r0, r7, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08123972: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x13 + bls _08123950 + b _081239D6 +_0812397E: + lsls r1, r0, 16 + ldr r0, _081239A0 @ =0x023a0000 + cmp r1, r0 + bne _081239D6 + movs r0, 0x3 + strb r0, [r3, 0x1] + subs r0, 0x4 + str r4, [sp] + movs r1, 0x3 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r0, 0x4 + bl FadeOutBGM + b _081239D6 + .align 2, 0 +_081239A0: .4byte 0x023a0000 +_081239A4: + ldr r0, _081239B8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081239D6 + movs r0, 0xFF + strb r0, [r3, 0x1] + b _081239D6 + .align 2, 0 +_081239B8: .4byte gPaletteFade +_081239BC: + movs r0, 0 + bl SetVBlankCallback + adds r0, r6, 0 + bl DestroyTask + ldr r0, [r5] + ldrb r0, [r0] + bl DestroyTask + ldr r0, _081239E0 @ =sub_8123740 + bl SetMainCallback2 +_081239D6: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081239E0: .4byte sub_8123740 + thumb_func_end sub_8123878 + + thumb_func_start sub_81239E4 +sub_81239E4: @ 81239E4 + push {r4-r6,lr} + sub sp, 0x8 + ldr r6, _08123A38 @ =gUnknown_02039274 + ldr r1, [r6] + ldrb r0, [r1, 0x1] + cmp r0, 0xFF + beq _08123AC0 + ldrb r0, [r1, 0x14] + subs r0, 0x1 + strb r0, [r1, 0x14] + ldr r1, [r6] + ldrh r0, [r1, 0x6] + movs r3, 0x1 + ands r0, r3 + cmp r0, 0 + bne _08123A0A + ldrb r0, [r1, 0x15] + subs r0, 0x1 + strb r0, [r1, 0x15] +_08123A0A: + ldr r2, [r6] + ldrh r0, [r2, 0x6] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + bne _08123A24 + ldrb r0, [r2, 0xC] + subs r0, 0x1 + strb r0, [r2, 0xC] + ldr r1, [r6] + ldrb r0, [r1, 0xD] + subs r0, 0x1 + strb r0, [r1, 0xD] +_08123A24: + ldr r0, [r6] + ldrb r1, [r0, 0x14] + cmp r1, 0x20 + beq _08123A74 + cmp r1, 0x20 + bgt _08123A3C + cmp r1, 0x10 + beq _08123A90 + b _08123AC0 + .align 2, 0 +_08123A38: .4byte gUnknown_02039274 +_08123A3C: + cmp r1, 0x28 + beq _08123A60 + cmp r1, 0xAF + bne _08123AC0 + ldr r1, _08123A5C @ =0x000008fc + adds r0, r1 + movs r1, 0x2 + str r1, [sp] + movs r1, 0xA + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0x16 + bl sub_8124E7C + b _08123AC0 + .align 2, 0 +_08123A5C: .4byte 0x000008fc +_08123A60: + ldr r1, _08123A70 @ =0x000008fc + adds r0, r1 + movs r1, 0x2 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0x3 + b _08123A82 + .align 2, 0 +_08123A70: .4byte 0x000008fc +_08123A74: + ldr r1, _08123A8C @ =0x000008fc + adds r0, r1 + str r3, [sp] + movs r1, 0x2 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0x2 +_08123A82: + movs r3, 0 + bl sub_8124E7C + b _08123AC0 + .align 2, 0 +_08123A8C: .4byte 0x000008fc +_08123A90: + ldr r5, _08123AE8 @ =0x000008fc + adds r0, r5 + ldr r1, _08123AEC @ =gCableCarPylonHookTilemapEntries + movs r2, 0x5 + str r2, [sp] + movs r4, 0x2 + str r4, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_8124F08 + ldr r0, [r6] + adds r0, r5 + ldr r1, _08123AF0 @ =0x020199d8 + str r4, [sp] + movs r2, 0x1E + str r2, [sp, 0x4] + movs r2, 0 + movs r3, 0x2 + bl sub_8124F08 + ldr r1, [r6] + movs r0, 0x40 + strb r0, [r1, 0x15] +_08123AC0: + bl sub_812453C + ldr r3, _08123AF4 @ =gSpriteCoordOffsetX + movs r0, 0 + ldrsh r2, [r3, r0] + adds r1, r2, 0x1 + adds r0, r1, 0 + cmp r1, 0 + bge _08123AD6 + adds r0, r2, 0 + adds r0, 0x80 +_08123AD6: + asrs r0, 7 + lsls r0, 7 + subs r0, r1, r0 + strh r0, [r3] + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08123AE8: .4byte 0x000008fc +_08123AEC: .4byte gCableCarPylonHookTilemapEntries +_08123AF0: .4byte 0x020199d8 +_08123AF4: .4byte gSpriteCoordOffsetX + thumb_func_end sub_81239E4 + + thumb_func_start sub_8123AF8 +sub_8123AF8: @ 8123AF8 + push {r4-r6,lr} + sub sp, 0x8 + ldr r6, _08123B4C @ =gUnknown_02039274 + ldr r1, [r6] + ldrb r0, [r1, 0x1] + cmp r0, 0xFF + beq _08123BEE + ldrb r0, [r1, 0x14] + adds r0, 0x1 + strb r0, [r1, 0x14] + ldr r2, [r6] + ldrh r0, [r2, 0x6] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08123B1E + ldrb r0, [r2, 0x15] + adds r0, 0x1 + strb r0, [r2, 0x15] +_08123B1E: + ldr r2, [r6] + ldrh r0, [r2, 0x6] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + bne _08123B38 + ldrb r0, [r2, 0xC] + adds r0, 0x1 + strb r0, [r2, 0xC] + ldr r1, [r6] + ldrb r0, [r1, 0xD] + adds r0, 0x1 + strb r0, [r1, 0xD] +_08123B38: + ldr r3, [r6] + ldrb r0, [r3, 0x14] + cmp r0, 0x20 + beq _08123BB0 + cmp r0, 0x20 + bgt _08123B50 + cmp r0, 0x10 + beq _08123B78 + b _08123BEE + .align 2, 0 +_08123B4C: .4byte gUnknown_02039274 +_08123B50: + cmp r0, 0x28 + beq _08123BDC + cmp r0, 0xB0 + bne _08123BEE + ldr r1, _08123B70 @ =0x000008fc + adds r0, r3, r1 + ldr r1, _08123B74 @ =0x020199d8 + movs r2, 0x2 + str r2, [sp] + movs r2, 0x1E + str r2, [sp, 0x4] + movs r2, 0 + movs r3, 0x2 + bl sub_8124F08 + b _08123BEE + .align 2, 0 +_08123B70: .4byte 0x000008fc +_08123B74: .4byte 0x020199d8 +_08123B78: + ldr r5, _08123BAC @ =0x000008fc + adds r0, r3, r5 + movs r1, 0x3 + str r1, [sp] + movs r4, 0x2 + str r4, [sp, 0x4] + movs r1, 0 + movs r2, 0x2 + movs r3, 0 + bl sub_8124E7C + ldr r0, [r6] + adds r0, r5 + str r4, [sp] + movs r1, 0xA + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0x16 + bl sub_8124E7C + ldr r1, [r6] + movs r0, 0xC0 + strb r0, [r1, 0x15] + b _08123BEE + .align 2, 0 +_08123BAC: .4byte 0x000008fc +_08123BB0: + ldr r1, _08123BD4 @ =gCableCarPylonHookTilemapEntries + 0x4 + ldrh r2, [r1] + movs r4, 0x90 + lsls r4, 4 + adds r0, r3, r4 + strh r2, [r0] + ldrh r2, [r1, 0x2] + adds r4, 0x2 + adds r0, r3, r4 + strh r2, [r0] + ldrh r2, [r1, 0xA] + adds r4, 0x3E + adds r0, r3, r4 + strh r2, [r0] + ldrh r1, [r1, 0xC] + ldr r2, _08123BD8 @ =0x00000942 + b _08123BEA + .align 2, 0 +_08123BD4: .4byte gCableCarPylonHookTilemapEntries + 0x4 +_08123BD8: .4byte 0x00000942 +_08123BDC: + ldr r2, _08123C08 @ =gCableCarPylonHookTilemapEntries + 0x8 + ldrh r1, [r2] + ldr r4, _08123C0C @ =0x00000904 + adds r0, r3, r4 + strh r1, [r0] + ldrh r1, [r2, 0xA] + ldr r2, _08123C10 @ =0x00000944 +_08123BEA: + adds r0, r3, r2 + strh r1, [r0] +_08123BEE: + bl sub_8124598 + ldr r0, _08123C14 @ =gUnknown_02039274 + ldr r1, [r0] + ldrh r0, [r1, 0x6] + ldrh r1, [r1, 0x4] + cmp r0, r1 + bcs _08123C1C + ldr r4, _08123C18 @ =gSpriteCoordOffsetX + movs r1, 0 + ldrsh r0, [r4, r1] + b _08123C26 + .align 2, 0 +_08123C08: .4byte gCableCarPylonHookTilemapEntries + 0x8 +_08123C0C: .4byte 0x00000904 +_08123C10: .4byte 0x00000944 +_08123C14: .4byte gUnknown_02039274 +_08123C18: .4byte gSpriteCoordOffsetX +_08123C1C: + ldr r0, _08123C38 @ =gUnknown_08396FC4 + ldr r4, [r0] + ldr r2, _08123C3C @ =0x000006fc + adds r4, r2 + ldrh r0, [r4] +_08123C26: + adds r0, 0xF7 + movs r1, 0xF8 + bl __modsi3 + strh r0, [r4] + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08123C38: .4byte gUnknown_08396FC4 +_08123C3C: .4byte 0x000006fc + thumb_func_end sub_8123AF8 + + thumb_func_start sub_8123C40 +sub_8123C40: @ 8123C40 + push {r4,lr} + ldr r1, _08123C9C @ =0x040000d4 + ldr r0, _08123CA0 @ =gUnknown_02039274 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0xFC + str r0, [r1] + ldr r0, _08123CA4 @ =0x0600e000 + str r0, [r1, 0x4] + ldr r3, _08123CA8 @ =0x80000400 + str r3, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r4, _08123CAC @ =0x000008fc + adds r0, r2, r4 + str r0, [r1] + ldr r0, _08123CB0 @ =0x0600f800 + str r0, [r1, 0x4] + str r3, [r1, 0x8] + ldr r0, [r1, 0x8] + subs r1, 0xB8 + ldrb r0, [r2, 0x14] + strh r0, [r1] + adds r1, 0x2 + ldrb r0, [r2, 0x15] + strh r0, [r1] + subs r1, 0xA + ldrb r0, [r2, 0xC] + strh r0, [r1] + adds r1, 0x2 + ldrb r0, [r2, 0xD] + strh r0, [r1] + subs r1, 0x6 + ldrb r0, [r2, 0x8] + strh r0, [r1] + adds r1, 0x2 + ldrb r0, [r2, 0x9] + strh r0, [r1] + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08123C9C: .4byte 0x040000d4 +_08123CA0: .4byte gUnknown_02039274 +_08123CA4: .4byte 0x0600e000 +_08123CA8: .4byte 0x80000400 +_08123CAC: .4byte 0x000008fc +_08123CB0: .4byte 0x0600f800 + thumb_func_end sub_8123C40 + + thumb_func_start nullsub_76 +nullsub_76: @ 8123CB4 + bx lr + thumb_func_end nullsub_76 + + thumb_func_start sub_8123CB8 +sub_8123CB8: @ 8123CB8 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _08123D20 @ =gUnknown_02039274 + ldr r6, [r0] + ldrb r0, [r6, 0x1] + cmp r0, 0xFF + beq _08123D84 + ldr r0, _08123D24 @ =gUnknown_0202E8CC + ldrh r0, [r0] + cmp r0, 0 + bne _08123D34 + movs r0, 0x6 + ldrsh r4, [r6, r0] + adds r0, r4, 0 + bl __floatsisf + cmp r4, 0 + bge _08123CE2 + ldr r1, _08123D28 @ =0x47800000 + bl __addsf3 +_08123CE2: + ldr r1, _08123D2C @ =0x3e0f5c29 + bl __mulsf3 + bl __fixunssfsi + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r5, 0x2E] + subs r1, r0 + strh r1, [r5, 0x20] + movs r1, 0x6 + ldrsh r4, [r6, r1] + adds r0, r4, 0 + bl __floatsisf + cmp r4, 0 + bge _08123D0A + ldr r1, _08123D28 @ =0x47800000 + bl __addsf3 +_08123D0A: + ldr r1, _08123D30 @ =0x3d89374c + bl __mulsf3 + bl __fixunssfsi + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r5, 0x30] + subs r1, r0 + strh r1, [r5, 0x22] + b _08123D84 + .align 2, 0 +_08123D20: .4byte gUnknown_02039274 +_08123D24: .4byte gUnknown_0202E8CC +_08123D28: .4byte 0x47800000 +_08123D2C: .4byte 0x3e0f5c29 +_08123D30: .4byte 0x3d89374c +_08123D34: + movs r0, 0x6 + ldrsh r4, [r6, r0] + adds r0, r4, 0 + bl __floatsisf + cmp r4, 0 + bge _08123D48 + ldr r1, _08123D8C @ =0x47800000 + bl __addsf3 +_08123D48: + ldr r1, _08123D90 @ =0x3e0f5c29 + bl __mulsf3 + bl __fixunssfsi + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r5, 0x2E] + adds r0, r1 + strh r0, [r5, 0x20] + movs r0, 0x6 + ldrsh r4, [r6, r0] + adds r0, r4, 0 + bl __floatsisf + cmp r4, 0 + bge _08123D70 + ldr r1, _08123D8C @ =0x47800000 + bl __addsf3 +_08123D70: + ldr r1, _08123D94 @ =0x3d89374c + bl __mulsf3 + bl __fixunssfsi + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r5, 0x30] + adds r0, r1 + strh r0, [r5, 0x22] +_08123D84: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08123D8C: .4byte 0x47800000 +_08123D90: .4byte 0x3e0f5c29 +_08123D94: .4byte 0x3d89374c + thumb_func_end sub_8123CB8 + + thumb_func_start sub_8123D98 +sub_8123D98: @ 8123D98 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _08123E04 @ =gUnknown_02039274 + ldr r6, [r0] + ldrb r0, [r6, 0x1] + cmp r0, 0xFF + bne _08123DA8 + b _08123EB0 +_08123DA8: + ldr r0, _08123E08 @ =gUnknown_0202E8CC + ldrh r0, [r0] + cmp r0, 0 + bne _08123E18 + movs r0, 0x6 + ldrsh r4, [r6, r0] + adds r0, r4, 0 + bl __floatsisf + cmp r4, 0 + bge _08123DC4 + ldr r1, _08123E0C @ =0x47800000 + bl __addsf3 +_08123DC4: + ldr r1, _08123E10 @ =0x3e0f5c29 + bl __mulsf3 + bl __fixunssfsi + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r5, 0x2E] + subs r1, r0 + strh r1, [r5, 0x20] + movs r1, 0x6 + ldrsh r4, [r6, r1] + adds r0, r4, 0 + bl __floatsisf + cmp r4, 0 + bge _08123DEC + ldr r1, _08123E0C @ =0x47800000 + bl __addsf3 +_08123DEC: + ldr r1, _08123E14 @ =0x3d89374c + bl __mulsf3 + bl __fixunssfsi + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r5, 0x30] + subs r1, r0 + strh r1, [r5, 0x22] + b _08123E68 + .align 2, 0 +_08123E04: .4byte gUnknown_02039274 +_08123E08: .4byte gUnknown_0202E8CC +_08123E0C: .4byte 0x47800000 +_08123E10: .4byte 0x3e0f5c29 +_08123E14: .4byte 0x3d89374c +_08123E18: + movs r0, 0x6 + ldrsh r4, [r6, r0] + adds r0, r4, 0 + bl __floatsisf + cmp r4, 0 + bge _08123E2C + ldr r1, _08123E8C @ =0x47800000 + bl __addsf3 +_08123E2C: + ldr r1, _08123E90 @ =0x3e0f5c29 + bl __mulsf3 + bl __fixunssfsi + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r5, 0x2E] + adds r0, r1 + strh r0, [r5, 0x20] + movs r0, 0x6 + ldrsh r4, [r6, r0] + adds r0, r4, 0 + bl __floatsisf + cmp r4, 0 + bge _08123E54 + ldr r1, _08123E8C @ =0x47800000 + bl __addsf3 +_08123E54: + ldr r1, _08123E94 @ =0x3d89374c + bl __mulsf3 + bl __fixunssfsi + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r5, 0x30] + adds r0, r1 + strh r0, [r5, 0x22] +_08123E68: + movs r0, 0x32 + ldrsh r2, [r5, r0] + cmp r2, 0 + bne _08123E98 + movs r0, 0x11 + strh r0, [r5, 0x26] + ldrh r0, [r5, 0x34] + adds r1, r0, 0x1 + strh r1, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + ble _08123EB0 + strh r2, [r5, 0x34] + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + b _08123EB0 + .align 2, 0 +_08123E8C: .4byte 0x47800000 +_08123E90: .4byte 0x3e0f5c29 +_08123E94: .4byte 0x3d89374c +_08123E98: + movs r2, 0 + movs r0, 0x10 + strh r0, [r5, 0x26] + ldrh r0, [r5, 0x34] + adds r1, r0, 0x1 + strh r1, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + ble _08123EB0 + strh r2, [r5, 0x34] + strh r2, [r5, 0x32] +_08123EB0: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8123D98 + + thumb_func_start sub_8123EB8 +sub_8123EB8: @ 8123EB8 + push {lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _08123EE8 + adds r0, r2, 0 + adds r0, 0x28 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 1 + ldrh r3, [r2, 0x20] + adds r0, r3 + strh r0, [r2, 0x20] + ldrh r1, [r2, 0x22] + adds r1, 0x10 + adds r0, r2, 0 + adds r0, 0x29 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, r1 + strh r0, [r2, 0x22] +_08123EE8: + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _08123F3E + movs r0, 0x30 + ldrsh r1, [r2, r0] + cmp r1, 0 + beq _08123F08 + cmp r1, 0x1 + beq _08123F12 + b _08123F30 +_08123F08: + ldrh r0, [r2, 0x20] + adds r0, 0x1 + strh r0, [r2, 0x20] + ldrh r0, [r2, 0x2E] + b _08123F22 +_08123F12: + ldrh r0, [r2, 0x2E] + ands r0, r1 + cmp r0, 0 + beq _08123F30 + ldrh r0, [r2, 0x20] + adds r0, 0x1 + strh r0, [r2, 0x20] + ldrh r0, [r2, 0x20] +_08123F22: + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08123F30 + ldrh r0, [r2, 0x22] + adds r0, 0x1 + strh r0, [r2, 0x22] +_08123F30: + movs r1, 0x22 + ldrsh r0, [r2, r1] + cmp r0, 0xA0 + ble _08123F3E + adds r0, r2, 0 + bl DestroySprite +_08123F3E: + pop {r0} + bx r0 + thumb_func_end sub_8123EB8 + + thumb_func_start sub_8123F44 +sub_8123F44: @ 8123F44 + push {lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _08123F62 + ldrh r1, [r2, 0x22] + adds r1, 0x10 + adds r0, r2, 0 + adds r0, 0x29 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, r1 + strh r0, [r2, 0x22] +_08123F62: + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _08123FB8 + movs r0, 0x30 + ldrsh r1, [r2, r0] + cmp r1, 0 + beq _08123F82 + cmp r1, 0x1 + beq _08123F8C + b _08123FAA +_08123F82: + ldrh r0, [r2, 0x20] + subs r0, 0x1 + strh r0, [r2, 0x20] + ldrh r0, [r2, 0x2E] + b _08123F9C +_08123F8C: + ldrh r0, [r2, 0x2E] + ands r0, r1 + cmp r0, 0 + beq _08123FAA + ldrh r0, [r2, 0x20] + subs r0, 0x1 + strh r0, [r2, 0x20] + ldrh r0, [r2, 0x20] +_08123F9C: + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08123FAA + ldrh r0, [r2, 0x22] + subs r0, 0x1 + strh r0, [r2, 0x22] +_08123FAA: + movs r1, 0x22 + ldrsh r0, [r2, r1] + cmp r0, 0x4F + bgt _08123FB8 + adds r0, r2, 0 + bl DestroySprite +_08123FB8: + pop {r0} + bx r0 + thumb_func_end sub_8123F44 + + thumb_func_start sub_8123FBC +sub_8123FBC: @ 8123FBC + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08123FCA + cmp r0, 0x1 + beq _08124024 +_08123FCA: + ldr r1, _08124020 @ =REG_WININ + movs r0, 0 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + subs r1, 0xA + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + subs r1, 0x46 + strh r0, [r1] + adds r1, 0xE + strh r0, [r1] + subs r1, 0x2 + strh r0, [r1] + subs r1, 0x2 + strh r0, [r1] + subs r1, 0x2 + strh r0, [r1] + adds r1, 0x14 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + subs r1, 0x6 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + subs r1, 0x6 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + subs r1, 0x6 + strh r0, [r1] + adds r1, 0x2 + strh r0, [r1] + adds r1, 0x3E + strh r0, [r1] + b _081240EE + .align 2, 0 +_08124020: .4byte REG_WININ +_08124024: + ldr r0, _08124060 @ =REG_WININ + movs r3, 0 + strh r3, [r0] + adds r0, 0x2 + strh r3, [r0] + subs r0, 0xA + strh r3, [r0] + adds r0, 0x2 + strh r3, [r0] + adds r0, 0x2 + strh r3, [r0] + adds r0, 0x2 + strh r3, [r0] + ldr r0, _08124064 @ =gUnknown_0202E8CC + ldrh r0, [r0] + cmp r0, 0 + bne _0812406C + ldr r1, _08124068 @ =gUnknown_02039274 + ldr r2, [r1] + movs r0, 0xB0 + strb r0, [r2, 0x14] + ldr r2, [r1] + movs r0, 0x10 + strb r0, [r2, 0x15] + ldr r0, [r1] + strb r3, [r0, 0xC] + ldr r2, [r1] + movs r0, 0x50 + b _08124082 + .align 2, 0 +_08124060: .4byte REG_WININ +_08124064: .4byte gUnknown_0202E8CC +_08124068: .4byte gUnknown_02039274 +_0812406C: + ldr r1, _081240F4 @ =gUnknown_02039274 + ldr r2, [r1] + movs r0, 0x60 + strb r0, [r2, 0x14] + ldr r2, [r1] + movs r0, 0xE8 + strb r0, [r2, 0x15] + ldr r0, [r1] + strb r3, [r0, 0xC] + ldr r2, [r1] + movs r0, 0x4 +_08124082: + strb r0, [r2, 0xD] + ldr r0, [r1] + strb r3, [r0, 0x9] + ldr r0, [r1] + strb r3, [r0, 0x9] + adds r2, r1, 0 + ldr r1, _081240F8 @ =REG_BG3HOFS + ldr r2, [r2] + ldrb r0, [r2, 0x14] + strh r0, [r1] + adds r1, 0x2 + ldrb r0, [r2, 0x15] + strh r0, [r1] + ldr r0, _081240FC @ =REG_BG2HOFS + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r1, _08124100 @ =REG_BG1HOFS + ldrb r0, [r2, 0xC] + strh r0, [r1] + adds r1, 0x2 + ldrb r0, [r2, 0xD] + strh r0, [r1] + subs r1, 0x6 + ldrb r0, [r2, 0x8] + strh r0, [r1] + adds r1, 0x2 + ldrb r0, [r2, 0x9] + strh r0, [r1] + subs r1, 0xA + ldr r2, _08124104 @ =0x00003c01 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _08124108 @ =0x00003d02 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _0812410C @ =0x00003e03 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08124110 @ =REG_BG3CNT + movs r3, 0xFC + lsls r3, 6 + adds r2, r3, 0 + strh r2, [r0] + subs r1, 0xC + movs r3, 0xFA + lsls r3, 5 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _08124114 @ =REG_BLDCNT + strh r2, [r0] +_081240EE: + pop {r0} + bx r0 + .align 2, 0 +_081240F4: .4byte gUnknown_02039274 +_081240F8: .4byte REG_BG3HOFS +_081240FC: .4byte REG_BG2HOFS +_08124100: .4byte REG_BG1HOFS +_08124104: .4byte 0x00003c01 +_08124108: .4byte 0x00003d02 +_0812410C: .4byte 0x00003e03 +_08124110: .4byte REG_BG3CNT +_08124114: .4byte REG_BLDCNT + thumb_func_end sub_8123FBC + + thumb_func_start sub_8124118 +sub_8124118: @ 8124118 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + ldr r1, _0812422C @ =gCableCarPlayerGraphicsIDs + add r0, sp, 0x8 + movs r2, 0x2 + bl memcpy + bl Random + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + add r6, sp, 0xC + ldr r1, _08124230 @ =gMtChimneyHikerGraphicsIDs + adds r0, r6, 0 + movs r2, 0x4 + bl memcpy + add r5, sp, 0x10 + ldr r1, _08124234 @ =gMtChimneyHikerCoords + adds r0, r5, 0 + movs r2, 0x8 + bl memcpy + add r4, sp, 0x18 + ldr r1, _08124238 @ =gMtChimneyHikerMovementDelayTable + adds r0, r4, 0 + movs r2, 0x4 + bl memcpy + ldr r0, _0812423C @ =gUnknown_08401D9C + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x1C] + str r1, [sp, 0x20] + ldr r0, _08124240 @ =gUnknown_0202E8CC + ldrh r0, [r0] + mov r8, r6 + mov r10, r5 + cmp r0, 0 + beq _08124176 + cmp r0, 0x1 + beq _08124258 +_08124176: + ldr r0, _08124244 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + add r0, sp + adds r0, 0x8 + ldrb r0, [r0] + ldr r1, _08124248 @ =sub_8123D98 + movs r2, 0x66 + str r2, [sp] + movs r2, 0xC8 + movs r3, 0x49 + bl AddPseudoFieldObject + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x40 + beq _081241BE + ldr r0, _0812424C @ =gSprites + lsls r1, r6, 4 + adds r1, r6 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + movs r2, 0x8 + orrs r0, r2 + strb r0, [r1, 0x5] + movs r0, 0x8 + strh r0, [r1, 0x24] + movs r0, 0x10 + strh r0, [r1, 0x26] + movs r0, 0xC8 + strh r0, [r1, 0x2E] + movs r0, 0x49 + strh r0, [r1, 0x30] +_081241BE: + ldr r4, _08124250 @ =gSpriteTemplate_8401D40 + adds r0, r4, 0 + movs r1, 0xB0 + movs r2, 0x2B + movs r3, 0x67 + bl CreateSprite + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, _0812424C @ =gSprites + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r0, r5 + movs r1, 0x20 + strh r1, [r0, 0x26] + strh r1, [r0, 0x24] + movs r1, 0xB0 + strh r1, [r0, 0x2E] + movs r1, 0x2B + strh r1, [r0, 0x30] + adds r4, 0x18 + adds r0, r4, 0 + movs r1, 0xC8 + movs r2, 0x63 + movs r3, 0x65 + bl CreateSprite + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r0, r5 + movs r1, 0x8 + strh r1, [r0, 0x24] + movs r1, 0x4 + strh r1, [r0, 0x26] + movs r1, 0xC8 + strh r1, [r0, 0x2E] + movs r1, 0x63 + strh r1, [r0, 0x30] + ldr r2, _08124254 @ =gUnknown_02039274 + ldr r1, [r2] + movs r0, 0x7 + strb r0, [r1, 0x2] + ldr r1, [r2] + movs r0, 0xAF + lsls r0, 1 + strh r0, [r1, 0x4] + movs r0, 0x2 + bl sub_807C9B4 + b _0812431E + .align 2, 0 +_0812422C: .4byte gCableCarPlayerGraphicsIDs +_08124230: .4byte gMtChimneyHikerGraphicsIDs +_08124234: .4byte gMtChimneyHikerCoords +_08124238: .4byte gMtChimneyHikerMovementDelayTable +_0812423C: .4byte gUnknown_08401D9C +_08124240: .4byte gUnknown_0202E8CC +_08124244: .4byte gSaveBlock2 +_08124248: .4byte sub_8123D98 +_0812424C: .4byte gSprites +_08124250: .4byte gSpriteTemplate_8401D40 +_08124254: .4byte gUnknown_02039274 +_08124258: + ldr r7, _081243EC @ =gUnknown_02039274 + ldr r0, [r7] + adds r0, 0xFC + ldr r1, _081243F0 @ =0x02019048 + movs r2, 0xC + str r2, [sp] + movs r2, 0x3 + str r2, [sp, 0x4] + movs r2, 0x18 + movs r3, 0x1A + bl sub_8124F08 + ldr r0, _081243F4 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + add r0, sp + adds r0, 0x8 + ldrb r0, [r0] + ldr r1, _081243F8 @ =sub_8123D98 + movs r2, 0x66 + str r2, [sp] + movs r2, 0x80 + movs r3, 0x27 + bl AddPseudoFieldObject + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x40 + beq _081242B8 + ldr r0, _081243FC @ =gSprites + lsls r1, r6, 4 + adds r1, r6 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + movs r2, 0x8 + orrs r0, r2 + strb r0, [r1, 0x5] + movs r0, 0x8 + strh r0, [r1, 0x24] + movs r0, 0x10 + strh r0, [r1, 0x26] + movs r0, 0x80 + strh r0, [r1, 0x2E] + movs r0, 0x27 + strh r0, [r1, 0x30] +_081242B8: + ldr r4, _08124400 @ =gSpriteTemplate_8401D40 + adds r0, r4, 0 + movs r1, 0x68 + movs r2, 0x9 + movs r3, 0x67 + bl CreateSprite + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, _081243FC @ =gSprites + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r0, r5 + movs r1, 0x20 + strh r1, [r0, 0x26] + strh r1, [r0, 0x24] + movs r1, 0x68 + strh r1, [r0, 0x2E] + movs r1, 0x9 + strh r1, [r0, 0x30] + adds r4, 0x18 + adds r0, r4, 0 + movs r1, 0x80 + movs r2, 0x41 + movs r3, 0x65 + bl CreateSprite + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r0, r5 + movs r1, 0x8 + strh r1, [r0, 0x24] + movs r1, 0x4 + strh r1, [r0, 0x26] + movs r1, 0x80 + strh r1, [r0, 0x2E] + movs r1, 0x41 + strh r1, [r0, 0x30] + ldr r1, [r7] + movs r0, 0x2 + strb r0, [r1, 0x2] + ldr r1, [r7] + ldr r0, _08124404 @ =0x00000109 + strh r0, [r1, 0x4] + movs r0, 0x7 + bl sub_807C9B4 +_0812431E: + movs r4, 0 + ldr r5, _081243FC @ =gSprites +_08124322: + lsls r1, r4, 20 + movs r0, 0xC0 + lsls r0, 15 + adds r1, r0 + asrs r1, 16 + lsls r2, r4, 19 + ldr r3, _08124408 @ =0xfff80000 + adds r2, r3 + asrs r2, 16 + ldr r0, _0812440C @ =gSpriteTemplate_8401D70 + movs r3, 0x68 + bl CreateSprite + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r0, r5 + movs r1, 0x8 + strh r1, [r0, 0x24] + strh r1, [r0, 0x26] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x8 + bls _08124322 + movs r0, 0x3F + mov r4, r9 + ands r0, r4 + cmp r0, 0 + bne _08124458 + mov r0, r9 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + add r0, r8 + ldrb r0, [r0] + ldr r5, _08124410 @ =gUnknown_0202E8CC + ldrh r4, [r5] + lsls r4, 2 + add r1, sp, 0x1C + adds r1, r4, r1 + ldr r1, [r1] + mov r3, r10 + adds r2, r3, r4 + movs r3, 0 + ldrsh r2, [r2, r3] + mov r3, sp + adds r3, 0x12 + adds r3, r4 + movs r4, 0 + ldrsh r3, [r3, r4] + movs r4, 0x6A + str r4, [sp] + bl AddPseudoFieldObject + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x40 + beq _08124458 + ldr r1, _081243FC @ =gSprites + lsls r2, r6, 4 + adds r0, r2, r6 + lsls r0, 2 + adds r4, r0, r1 + ldrb r1, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r4, 0x5] + adds r0, r4, 0 + adds r0, 0x28 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x24] + adds r0, r4, 0 + adds r0, 0x29 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r0, [r5] + mov r8, r2 + cmp r0, 0 + bne _0812441A + movs r7, 0x1 + mov r5, r9 + ands r5, r7 + cmp r5, 0 + beq _08124414 + adds r0, r4, 0 + movs r1, 0x6 + b _08124428 + .align 2, 0 +_081243EC: .4byte gUnknown_02039274 +_081243F0: .4byte 0x02019048 +_081243F4: .4byte gSaveBlock2 +_081243F8: .4byte sub_8123D98 +_081243FC: .4byte gSprites +_08124400: .4byte gSpriteTemplate_8401D40 +_08124404: .4byte 0x00000109 +_08124408: .4byte 0xfff80000 +_0812440C: .4byte gSpriteTemplate_8401D70 +_08124410: .4byte gUnknown_0202E8CC +_08124414: + adds r0, r4, 0 + movs r1, 0x7 + b _0812443A +_0812441A: + movs r7, 0x1 + mov r5, r9 + ands r5, r7 + cmp r5, 0 + beq _08124436 + adds r0, r4, 0 + movs r1, 0x7 +_08124428: + bl StartSpriteAnim + strh r7, [r4, 0x30] + ldrh r0, [r4, 0x22] + adds r0, 0x2 + strh r0, [r4, 0x22] + b _08124440 +_08124436: + adds r0, r4, 0 + movs r1, 0x6 +_0812443A: + bl StartSpriteAnim + strh r5, [r4, 0x30] +_08124440: + ldr r0, _08124468 @ =gSprites + mov r2, r8 + adds r1, r2, r6 + lsls r1, 2 + adds r1, r0 + movs r0, 0x3 + mov r3, r9 + ands r0, r3 + add r0, sp + adds r0, 0x18 + ldrb r0, [r0] + strh r0, [r1, 0x32] +_08124458: + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08124468: .4byte gSprites + thumb_func_end sub_8124118 + + thumb_func_start sub_812446C +sub_812446C: @ 812446C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r3, 0 + mov r9, r3 + ldr r2, _08124530 @ =gUnknown_02039274 + ldr r0, [r2] + ldrb r1, [r0, 0x1B] + adds r1, 0x2 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 26 + lsrs r0, 24 + mov r12, r0 +_0812448E: + movs r6, 0 + lsls r0, r3, 1 + adds r1, r3, 0x3 + adds r2, r3, 0x6 + adds r4, r3, 0x1 + str r4, [sp] + adds r0, r3 + lsls r0, 3 + mov r10, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + mov r8, r0 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + str r0, [sp, 0x4] +_081244B0: + ldr r7, _08124530 @ =gUnknown_02039274 + ldr r5, [r7] + lsls r3, r6, 1 + mov r0, r10 + adds r2, r3, r0 + adds r4, r5, 0 + adds r4, 0x22 + adds r2, r4, r2 + mov r1, r12 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + lsls r1, 1 + ldr r7, _08124534 @ =0x02019000 + adds r1, r7 + ldrh r0, [r1] + strh r0, [r2] + mov r0, r8 + adds r1, r3, r0 + adds r1, r4, r1 + mov r7, r9 + lsls r2, r7, 1 + ldr r7, _08124534 @ =0x02019000 + adds r0, r2, r7 + ldrh r0, [r0] + strh r0, [r1] + ldr r0, [sp, 0x4] + adds r3, r0 + adds r4, r3 + ldr r1, _08124538 @ =0x02019048 + adds r2, r1 + ldrh r0, [r2] + strh r0, [r4] + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xB + bls _081244B0 + ldr r4, [sp] + lsls r0, r4, 24 + lsrs r3, r0, 24 + cmp r3, 0x2 + bls _0812448E + ldrb r0, [r5, 0x1B] + adds r0, 0x1 + movs r1, 0x3 + bl __modsi3 + strb r0, [r5, 0x1B] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08124530: .4byte gUnknown_02039274 +_08124534: .4byte 0x02019000 +_08124538: .4byte 0x02019048 + thumb_func_end sub_812446C + + thumb_func_start sub_812453C +sub_812453C: @ 812453C + push {r4,r5,lr} + ldr r5, _08124594 @ =gUnknown_02039274 + ldr r4, [r5] + ldrb r0, [r4, 0x1C] + adds r0, 0x1 + movs r1, 0x60 + bl __modsi3 + strb r0, [r4, 0x1C] + ldr r1, [r5] + ldrb r0, [r1, 0x1F] + ldrb r2, [r1, 0x1D] + subs r0, r2 + strb r0, [r1, 0x8] + ldr r2, [r5] + adds r0, r2, 0 + adds r0, 0x20 + ldrb r0, [r0] + ldrb r1, [r2, 0x1E] + subs r0, r1 + strb r0, [r2, 0x9] + ldr r1, [r5] + ldrb r0, [r1, 0x1D] + adds r0, 0x1 + strb r0, [r1, 0x1D] + ldr r2, [r5] + ldrb r0, [r2, 0x1D] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08124580 + ldrb r0, [r2, 0x1E] + adds r0, 0x1 + strb r0, [r2, 0x1E] +_08124580: + ldr r0, [r5] + ldrb r0, [r0, 0x1D] + cmp r0, 0x10 + bls _0812458C + bl sub_81245F4 +_0812458C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08124594: .4byte gUnknown_02039274 + thumb_func_end sub_812453C + + thumb_func_start sub_8124598 +sub_8124598: @ 8124598 + push {r4,r5,lr} + ldr r5, _081245F0 @ =gUnknown_02039274 + ldr r4, [r5] + ldrb r0, [r4, 0x1C] + adds r0, 0x1 + movs r1, 0x60 + bl __modsi3 + strb r0, [r4, 0x1C] + ldr r1, [r5] + ldrb r0, [r1, 0x1D] + ldrb r2, [r1, 0x1F] + adds r0, r2 + strb r0, [r1, 0x8] + ldr r1, [r5] + adds r2, r1, 0 + adds r2, 0x20 + ldrb r0, [r1, 0x1E] + ldrb r2, [r2] + adds r0, r2 + strb r0, [r1, 0x9] + ldr r1, [r5] + ldrb r0, [r1, 0x1D] + adds r0, 0x1 + strb r0, [r1, 0x1D] + ldr r2, [r5] + ldrb r0, [r2, 0x1D] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _081245DC + ldrb r0, [r2, 0x1E] + adds r0, 0x1 + strb r0, [r2, 0x1E] +_081245DC: + ldr r0, [r5] + ldrb r0, [r0, 0x1D] + cmp r0, 0x10 + bls _081245E8 + bl sub_812476C +_081245E8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081245F0: .4byte gUnknown_02039274 + thumb_func_end sub_8124598 + + thumb_func_start sub_81245F4 +sub_81245F4: @ 81245F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r0, 0 + mov r12, r0 + ldr r2, _0812475C @ =gUnknown_02039274 + ldr r0, [r2] + mov r1, r12 + strb r1, [r0, 0x1E] + strb r1, [r0, 0x1D] + ldr r1, [r2] + ldrb r0, [r1, 0x8] + strb r0, [r1, 0x1F] + ldr r0, [r2] + ldrb r1, [r0, 0x9] + adds r0, 0x20 + strb r1, [r0] + ldr r4, [r2] + ldrb r1, [r4, 0x19] + adds r3, r1, 0 + adds r3, 0x1E + adds r0, r3, 0 + mov r9, r2 + asrs r0, 5 + lsls r0, 5 + subs r0, r3, r0 + strb r0, [r4, 0x19] + mov r2, r9 + ldr r1, [r2] + ldrb r0, [r1, 0x18] + subs r0, 0x2 + strb r0, [r1, 0x18] + ldr r0, [r2] + ldrb r1, [r0, 0x1A] + adds r2, r1, 0 + adds r2, 0x17 + adds r0, r2, 0 + ldr r3, _08124760 @ =gUnknown_0203927A + mov r10, r3 + asrs r0, 5 + lsls r0, 5 + subs r0, r2, r0 + mov r4, r10 + strb r0, [r4] + ldr r7, _08124764 @ =gUnknown_02039278 + ldr r0, _08124768 @ =gUnknown_02039279 + mov r8, r0 +_08124658: + mov r1, r9 + ldr r3, [r1] + ldrb r0, [r3, 0x19] + strb r0, [r7] + mov r2, r10 + ldrb r0, [r2] + mov r4, r12 + adds r1, r0, r4 + adds r0, r1, 0 + asrs r0, 5 + lsls r0, 5 + subs r0, r1, r0 + mov r1, r8 + strb r0, [r1] + ldrb r2, [r7] + lsls r2, 1 + ldrb r0, [r1] + lsls r0, 6 + adds r2, r0 + adds r6, r3, 0 + adds r6, 0xFC + adds r2, r6, r2 + ldrb r1, [r3, 0x18] + lsls r1, 1 + mov r4, r12 + lsls r0, r4, 1 + add r0, r12 + lsls r5, r0, 3 + adds r1, r5 + adds r4, r3, 0 + adds r4, 0x22 + adds r1, r4, r1 + ldrh r0, [r1] + strh r0, [r2] + ldrb r1, [r7] + adds r2, r1, 0x1 + adds r0, r2, 0 + asrs r0, 5 + lsls r0, 5 + subs r0, r2, r0 + strb r0, [r7] + ldrb r1, [r7] + lsls r1, 1 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 6 + adds r1, r0 + adds r1, r6, r1 + ldrb r0, [r3, 0x18] + adds r0, 0x1 + lsls r0, 1 + adds r0, r5 + adds r0, r4, r0 + ldrh r0, [r0] + strh r0, [r1] + mov r0, r12 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + cmp r0, 0x8 + bls _08124658 + ldr r4, _08124764 @ =gUnknown_02039278 + mov r5, r9 + ldr r3, [r5] + ldrb r1, [r3, 0x19] + adds r2, r1, 0 + adds r2, 0x1E + adds r0, r2, 0 + asrs r0, 5 + lsls r0, 5 + subs r0, r2, r0 + strb r0, [r4] + adds r0, r3, 0 + adds r0, 0xFC + ldrb r2, [r4] + movs r1, 0x2 + str r1, [sp] + movs r6, 0x20 + str r6, [sp, 0x4] + movs r1, 0 + movs r3, 0 + bl sub_8124E7C + ldr r1, [r5] + ldrb r0, [r1, 0x18] + cmp r0, 0 + bne _0812474C + ldrb r2, [r1, 0x1A] + adds r3, r2, 0 + adds r3, 0x1D + adds r0, r3, 0 + asrs r0, 5 + lsls r0, 5 + subs r0, r3, r0 + strb r0, [r1, 0x1A] + mov r3, r9 + ldr r1, [r3] + movs r0, 0xC + strb r0, [r1, 0x18] + bl sub_812446C + mov r4, r9 + ldr r1, [r4] + ldrb r3, [r1, 0x1A] + adds r4, r3, 0x1 + adds r0, r4, 0 + asrs r0, 5 + lsls r0, 5 + subs r0, r4, r0 + ldr r2, _08124764 @ =gUnknown_02039278 + strb r0, [r2] + adds r0, r1, 0 + adds r0, 0xFC + ldrb r3, [r2] + str r6, [sp] + movs r1, 0x9 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0 + bl sub_8124E7C +_0812474C: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0812475C: .4byte gUnknown_02039274 +_08124760: .4byte gUnknown_0203927A +_08124764: .4byte gUnknown_02039278 +_08124768: .4byte gUnknown_02039279 + thumb_func_end sub_81245F4 + + thumb_func_start sub_812476C +sub_812476C: @ 812476C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r0, 0 + mov r12, r0 + ldr r2, _0812489C @ =gUnknown_02039274 + ldr r0, [r2] + mov r1, r12 + strb r1, [r0, 0x1E] + strb r1, [r0, 0x1D] + ldr r1, [r2] + ldrb r0, [r1, 0x8] + strb r0, [r1, 0x1F] + ldr r0, [r2] + ldrb r1, [r0, 0x9] + adds r0, 0x20 + strb r1, [r0] + ldr r4, [r2] + ldrb r1, [r4, 0x19] + adds r3, r1, 0x2 + adds r0, r3, 0 + mov r9, r2 + asrs r0, 5 + lsls r0, 5 + subs r0, r3, r0 + strb r0, [r4, 0x19] + mov r2, r9 + ldr r1, [r2] + ldrb r0, [r1, 0x18] + adds r0, 0x2 + strb r0, [r1, 0x18] + ldr r1, _081248A0 @ =gUnknown_0203927D + ldr r0, [r2] + ldrb r0, [r0, 0x1A] + strb r0, [r1] + ldr r4, _081248A4 @ =gUnknown_0203927C + mov r10, r4 + ldr r7, _081248A8 @ =gUnknown_0203927B + mov r8, r10 +_081247C0: + mov r0, r9 + ldr r3, [r0] + ldrb r0, [r3, 0x19] + strb r0, [r7] + ldr r1, _081248A0 @ =gUnknown_0203927D + ldrb r0, [r1] + mov r2, r12 + adds r1, r0, r2 + adds r0, r1, 0 + asrs r0, 5 + lsls r0, 5 + subs r0, r1, r0 + mov r4, r8 + strb r0, [r4] + ldrb r2, [r7] + lsls r2, 1 + ldrb r0, [r4] + lsls r0, 6 + adds r2, r0 + adds r6, r3, 0 + adds r6, 0xFC + adds r2, r6, r2 + ldrb r1, [r3, 0x18] + lsls r1, 1 + mov r4, r12 + lsls r0, r4, 1 + add r0, r12 + lsls r5, r0, 3 + adds r1, r5 + adds r4, r3, 0 + adds r4, 0x22 + adds r1, r4, r1 + ldrh r0, [r1] + strh r0, [r2] + ldrb r1, [r7] + adds r2, r1, 0x1 + adds r0, r2, 0 + asrs r0, 5 + lsls r0, 5 + subs r0, r2, r0 + strb r0, [r7] + ldrb r1, [r7] + lsls r1, 1 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 6 + adds r1, r0 + adds r1, r6, r1 + ldrb r0, [r3, 0x18] + adds r0, 0x1 + lsls r0, 1 + adds r0, r5 + adds r0, r4, r0 + ldrh r0, [r0] + strh r0, [r1] + mov r0, r12 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + cmp r0, 0x8 + bls _081247C0 + mov r4, r9 + ldr r1, [r4] + ldrb r2, [r1, 0x1A] + adds r3, r2, 0 + adds r3, 0x17 + adds r0, r3, 0 + asrs r0, 5 + lsls r0, 5 + subs r0, r3, r0 + mov r2, r10 + strb r0, [r2] + adds r0, r1, 0 + adds r0, 0xFC + ldrb r2, [r1, 0x19] + mov r1, r10 + ldrb r3, [r1] + movs r1, 0x2 + str r1, [sp] + movs r1, 0x9 + str r1, [sp, 0x4] + movs r1, 0 + bl sub_8124E7C + ldr r1, [r4] + ldrb r0, [r1, 0x18] + cmp r0, 0xA + bne _0812488C + ldrb r2, [r1, 0x1A] + adds r3, r2, 0x3 + adds r0, r3, 0 + asrs r0, 5 + lsls r0, 5 + subs r0, r3, r0 + strb r0, [r1, 0x1A] + mov r2, r9 + ldr r1, [r2] + movs r0, 0xFE + strb r0, [r1, 0x18] + bl sub_812446C +_0812488C: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0812489C: .4byte gUnknown_02039274 +_081248A0: .4byte gUnknown_0203927D +_081248A4: .4byte gUnknown_0203927C +_081248A8: .4byte gUnknown_0203927B + thumb_func_end sub_812476C + + thumb_func_start sub_81248AC +sub_81248AC: @ 81248AC + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _081248BA + cmp r0, 0x1 + beq _081248E4 +_081248BA: + ldr r1, _081248E0 @ =gUnknown_02039274 + ldr r2, [r1] + movs r3, 0 + movs r0, 0x2 + strb r0, [r2, 0x1B] + ldr r0, [r1] + strb r3, [r0, 0x19] + ldr r2, [r1] + movs r0, 0x14 + strb r0, [r2, 0x1A] + ldr r1, [r1] + movs r0, 0xC + strb r0, [r1, 0x18] + bl sub_812446C + bl sub_81245F4 + b _08124906 + .align 2, 0 +_081248E0: .4byte gUnknown_02039274 +_081248E4: + ldr r1, _08124914 @ =gUnknown_02039274 + ldr r2, [r1] + movs r0, 0x2 + strb r0, [r2, 0x1B] + ldr r2, [r1] + movs r0, 0x1C + strb r0, [r2, 0x19] + ldr r2, [r1] + movs r0, 0x14 + strb r0, [r2, 0x1A] + ldr r1, [r1] + movs r0, 0x4 + strb r0, [r1, 0x18] + bl sub_812446C + bl sub_812476C +_08124906: + ldr r0, _08124914 @ =gUnknown_02039274 + ldr r1, [r0] + movs r0, 0 + strb r0, [r1, 0x1C] + pop {r0} + bx r0 + .align 2, 0 +_08124914: .4byte gUnknown_02039274 + thumb_func_end sub_81248AC + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/cable_car_util.s b/asm/cable_car_util.s new file mode 100644 index 000000000..950a31c4a --- /dev/null +++ b/asm/cable_car_util.s @@ -0,0 +1,163 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_8124E7C +sub_8124E7C: @ 8124E7C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r10, r0 + ldr r0, [sp, 0x24] + ldr r4, [sp, 0x28] + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp] + lsls r3, 24 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r4, 24 + lsrs r4, 24 + mov r8, r4 + movs r0, 0 + lsrs r4, r3, 24 + cmp r0, r8 + bcs _08124EF6 +_08124EAE: + ldr r2, [sp] + movs r3, 0 + adds r6, r4, 0x1 + adds r0, 0x1 + mov r12, r0 + cmp r3, r7 + bcs _08124EE0 + lsls r5, r4, 6 +_08124EBE: + lsls r0, r2, 1 + adds r0, r5 + add r0, r10 + mov r1, r9 + strh r1, [r0] + adds r1, r2, 0x1 + adds r0, r1, 0 + asrs r0, 5 + lsls r0, 5 + subs r0, r1, r0 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r7 + bcc _08124EBE +_08124EE0: + adds r0, r6, 0 + asrs r0, 5 + lsls r0, 5 + subs r0, r6, r0 + lsls r0, 24 + lsrs r4, r0, 24 + mov r1, r12 + lsls r0, r1, 24 + lsrs r0, 24 + cmp r0, r8 + bcc _08124EAE +_08124EF6: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8124E7C + + thumb_func_start sub_8124F08 +sub_8124F08: @ 8124F08 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r10, r0 + ldr r0, [sp, 0x24] + ldr r4, [sp, 0x28] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp] + lsls r3, 24 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + lsls r4, 24 + lsrs r4, 24 + mov r9, r4 + movs r0, 0 + adds r5, r1, 0 + lsrs r4, r3, 24 + cmp r0, r9 + bcs _08124F82 +_08124F38: + ldr r2, [sp] + movs r3, 0 + adds r7, r4, 0x1 + adds r0, 0x1 + mov r8, r0 + cmp r3, r12 + bcs _08124F6C + lsls r6, r4, 6 +_08124F48: + lsls r0, r2, 1 + adds r0, r6 + add r0, r10 + ldrh r1, [r5] + strh r1, [r0] + adds r5, 0x2 + adds r1, r2, 0x1 + adds r0, r1, 0 + asrs r0, 5 + lsls r0, 5 + subs r0, r1, r0 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r12 + bcc _08124F48 +_08124F6C: + adds r0, r7, 0 + asrs r0, 5 + lsls r0, 5 + subs r0, r7, r0 + lsls r0, 24 + lsrs r4, r0, 24 + mov r1, r8 + lsls r0, r1, 24 + lsrs r0, 24 + cmp r0, r9 + bcc _08124F38 +_08124F82: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8124F08 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/choose_party.s b/asm/choose_party.s new file mode 100644 index 000000000..07125dfae --- /dev/null +++ b/asm/choose_party.s @@ -0,0 +1,2509 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_8121E10 +sub_8121E10: @ 8121E10 + push {lr} + bl sub_8121E58 + ldr r0, _08121E2C @ =0x0201b000 + ldr r1, _08121E30 @ =0x00000263 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + movs r0, 0x4 + bl OpenPartyMenu + pop {r0} + bx r0 + .align 2, 0 +_08121E2C: .4byte 0x0201b000 +_08121E30: .4byte 0x00000263 + thumb_func_end sub_8121E10 + + thumb_func_start sub_8121E34 +sub_8121E34: @ 8121E34 + push {lr} + bl sub_8121E58 + ldr r0, _08121E50 @ =0x0201b000 + ldr r1, _08121E54 @ =0x00000263 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + movs r0, 0x4 + movs r1, 0 + bl OpenPartyMenu + pop {r0} + bx r0 + .align 2, 0 +_08121E50: .4byte 0x0201b000 +_08121E54: .4byte 0x00000263 + thumb_func_end sub_8121E34 + + thumb_func_start sub_8121E58 +sub_8121E58: @ 8121E58 + push {lr} + movs r1, 0 + ldr r3, _08121E74 @ =gUnknown_02039270 + movs r2, 0 +_08121E60: + adds r0, r1, r3 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x2 + bls _08121E60 + pop {r0} + bx r0 + .align 2, 0 +_08121E74: .4byte gUnknown_02039270 + thumb_func_end sub_8121E58 + + thumb_func_start sub_8121E78 +sub_8121E78: @ 8121E78 + push {r4-r6,lr} + ldr r1, _08121E98 @ =0x0201b000 + movs r2, 0x99 + lsls r2, 2 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r4, r1, 0 + cmp r0, 0x7 + bls _08121E8E + b _08122026 +_08121E8E: + lsls r0, 2 + ldr r1, _08121E9C @ =_08121EA0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08121E98: .4byte 0x0201b000 +_08121E9C: .4byte _08121EA0 + .align 2, 0 +_08121EA0: + .4byte _08121EC0 + .4byte _08121F00 + .4byte _08121F14 + .4byte _08121F28 + .4byte _08121F54 + .4byte _08121F68 + .4byte _08121F6E + .4byte _08121FF8 +_08121EC0: + ldr r0, _08121EE8 @ =0x00000266 + adds r5, r4, r0 + movs r1, 0 + ldrsh r3, [r5, r1] + ldr r0, _08121EEC @ =gPlayerPartyCount + ldrb r0, [r0] + cmp r3, r0 + bge _08121EF4 + movs r2, 0x98 + lsls r2, 2 + adds r0, r4, r2 + ldrb r0, [r0] + ldrb r1, [r5] + movs r2, 0x64 + muls r2, r3 + ldr r3, _08121EF0 @ =gPlayerParty + adds r2, r3 + bl sub_806D90C + b _08122020 + .align 2, 0 +_08121EE8: .4byte 0x00000266 +_08121EEC: .4byte gPlayerPartyCount +_08121EF0: .4byte gPlayerParty +_08121EF4: + movs r0, 0 + strh r0, [r5] + movs r0, 0x99 + lsls r0, 2 + adds r1, r4, r0 + b _08121FE8 +_08121F00: + bl sub_806DA98 + ldr r1, _08121F10 @ =0x0201b000 + movs r2, 0x99 + lsls r2, 2 + adds r1, r2 + b _08121FE8 + .align 2, 0 +_08121F10: .4byte 0x0201b000 +_08121F14: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_806DC34 + movs r2, 0x99 + lsls r2, 2 + adds r1, r4, r2 + b _08121FE8 +_08121F28: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + ldr r2, _08121F50 @ =0x00000266 + adds r5, r4, r2 + ldrb r1, [r5] + bl sub_806BD58 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08122020 + movs r0, 0 + strh r0, [r5] + movs r0, 0x99 + lsls r0, 2 + adds r1, r4, r0 + b _08121FE8 + .align 2, 0 +_08121F50: .4byte 0x00000266 +_08121F54: + bl sub_806E334 + ldr r1, _08121F64 @ =0x0201b000 + movs r2, 0x99 + lsls r2, 2 + adds r1, r2 + b _08121FE8 + .align 2, 0 +_08121F64: .4byte 0x0201b000 +_08121F68: + bl sub_806E0C4 + b _08121FE0 +_08121F6E: + movs r5, 0 + b _08121FD8 +_08121F72: + movs r4, 0 + adds r6, r5, 0x1 + b _08121F7E +_08121F78: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_08121F7E: + cmp r4, 0x2 + bhi _08121FA0 + ldr r0, _08121FC4 @ =gUnknown_02039270 + adds r0, r4, r0 + ldrb r0, [r0] + cmp r0, r6 + bne _08121F78 + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 25 + movs r2, 0xE0 + lsls r2, 21 + adds r1, r2 + lsrs r1, 24 + adds r0, r5, 0 + bl sub_806BC3C +_08121FA0: + cmp r4, 0x3 + bne _08121FD4 + movs r0, 0x64 + muls r0, r5 + ldr r1, _08121FC8 @ =gPlayerParty + adds r0, r1 + bl sub_8122030 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08121FCC + adds r0, r5, 0 + movs r1, 0x70 + bl sub_806BC3C + b _08121FD4 + .align 2, 0 +_08121FC4: .4byte gUnknown_02039270 +_08121FC8: .4byte gPlayerParty +_08121FCC: + adds r0, r5, 0 + movs r1, 0x7E + bl sub_806BC3C +_08121FD4: + lsls r0, r6, 24 + lsrs r5, r0, 24 +_08121FD8: + ldr r0, _08121FF0 @ =gPlayerPartyCount + ldrb r0, [r0] + cmp r5, r0 + bcc _08121F72 +_08121FE0: + ldr r1, _08121FF4 @ =0x0201b000 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 +_08121FE8: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _08122026 + .align 2, 0 +_08121FF0: .4byte gPlayerPartyCount +_08121FF4: .4byte 0x0201b000 +_08121FF8: + ldr r1, _0812201C @ =0x00000266 + adds r5, r4, r1 + ldrb r0, [r5] + bl sub_806B58C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08122020 + movs r1, 0 + strh r1, [r5] + movs r2, 0x99 + lsls r2, 2 + adds r0, r4, r2 + strh r1, [r0] + movs r0, 0x1 + b _08122028 + .align 2, 0 +_0812201C: .4byte 0x00000266 +_08122020: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_08122026: + movs r0, 0 +_08122028: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8121E78 + + thumb_func_start sub_8122030 +sub_8122030: @ 8122030 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0812207C + ldr r0, _08122058 @ =0x0201b000 + ldr r1, _0812205C @ =0x00000263 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _08122060 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0812207C + b _081220B6 + .align 2, 0 +_08122058: .4byte 0x0201b000 +_0812205C: .4byte 0x00000263 +_08122060: + ldr r0, _08122080 @ =gSaveBlock2 + ldr r1, _08122084 @ =0x00000554 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08122088 + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + cmp r0, 0x32 + bls _08122088 +_0812207C: + movs r0, 0 + b _081220B8 + .align 2, 0 +_08122080: .4byte gSaveBlock2 +_08122084: .4byte 0x00000554 +_08122088: + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r3, r0, 16 + ldr r1, _081220C0 @ =gBattleTowerBanlist + movs r0, 0 + lsls r0, 1 + adds r2, r0, r1 + ldrh r0, [r2] + ldr r1, _081220C4 @ =0x0000ffff + cmp r0, r1 + beq _081220B6 + adds r4, r1, 0 + adds r1, r2, 0 +_081220A8: + ldrh r0, [r1] + cmp r0, r3 + beq _0812207C + adds r1, 0x2 + ldrh r0, [r1] + cmp r0, r4 + bne _081220A8 +_081220B6: + movs r0, 0x1 +_081220B8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081220C0: .4byte gBattleTowerBanlist +_081220C4: .4byte 0x0000ffff + thumb_func_end sub_8122030 + + thumb_func_start sub_81220C8 +sub_81220C8: @ 81220C8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r1, _081220EC @ =0x0201b000 + ldr r2, _081220F0 @ =0x00000263 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _081221A2 + ldr r0, _081220F4 @ =gUnknown_02039270 + ldrb r0, [r0, 0x2] + cmp r0, 0 + bne _08122100 + movs r0, 0x11 + b _081221A4 + .align 2, 0 +_081220EC: .4byte 0x0201b000 +_081220F0: .4byte 0x00000263 +_081220F4: .4byte gUnknown_02039270 +_081220F8: + movs r0, 0x12 + b _081221A4 +_081220FC: + movs r0, 0x13 + b _081221A4 +_08122100: + movs r5, 0 +_08122102: + ldr r4, _081221B4 @ =gUnknown_02039270 + adds r4, r5, r4 + ldrb r0, [r4] + movs r1, 0x64 + muls r0, r1 + ldr r2, _081221B8 @ =gUnknown_030042FC + adds r0, r2 + movs r1, 0xB + bl GetMonData + ldr r1, _081221BC @ =0x0201b000 + ldr r2, _081221C0 @ =0x00000282 + adds r6, r1, r2 + strh r0, [r6] + ldrb r0, [r4] + movs r1, 0x64 + muls r0, r1 + ldr r2, _081221B8 @ =gUnknown_030042FC + adds r0, r2 + movs r1, 0xC + bl GetMonData + ldr r1, _081221C4 @ =0x0201b280 + strh r0, [r1] + adds r1, r5, 0x1 + lsls r0, r1, 24 + lsrs r5, r0, 24 + mov r10, r1 + cmp r5, 0x2 + bhi _08122198 + ldr r2, _081221C8 @ =0xfffffd7e + adds r2, r6 + mov r9, r2 + movs r0, 0x64 + mov r8, r0 + ldr r7, _081221B8 @ =gUnknown_030042FC +_0812214A: + ldr r0, _081221C0 @ =0x00000282 + add r0, r9 + movs r1, 0 + ldrsh r4, [r0, r1] + ldr r0, _081221B4 @ =gUnknown_02039270 + adds r6, r5, r0 + ldrb r0, [r6] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0xB + bl GetMonData + cmp r4, r0 + beq _081220F8 + movs r1, 0xA0 + lsls r1, 2 + add r1, r9 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _0812218E + adds r4, r0, 0 + ldrb r0, [r6] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + movs r1, 0xC + bl GetMonData + cmp r4, r0 + beq _081220FC +_0812218E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _0812214A +_08122198: + mov r2, r10 + lsls r0, r2, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bls _08122102 +_081221A2: + movs r0, 0xFF +_081221A4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_081221B4: .4byte gUnknown_02039270 +_081221B8: .4byte gUnknown_030042FC +_081221BC: .4byte 0x0201b000 +_081221C0: .4byte 0x00000282 +_081221C4: .4byte 0x0201b280 +_081221C8: .4byte 0xfffffd7e + thumb_func_end sub_81220C8 + + thumb_func_start sub_81221CC +sub_81221CC: @ 81221CC + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + ldr r3, _081221E4 @ =gUnknown_02039270 +_081221D6: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081221E8 + movs r0, 0x1 + b _081221F4 + .align 2, 0 +_081221E4: .4byte gUnknown_02039270 +_081221E8: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x2 + bls _081221D6 + movs r0, 0 +_081221F4: + pop {r1} + bx r1 + thumb_func_end sub_81221CC + + thumb_func_start sub_81221F8 +sub_81221F8: @ 81221F8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x5 + movs r1, 0x1 + bl sub_806D538 + ldr r5, _08122248 @ =gUnknown_03005CE0 + ldrb r1, [r5] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0812224C @ =gPlayerParty + adds r0, r1 + bl sub_8122030 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08122284 + ldrb r0, [r5] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + bl sub_81221CC + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x1 + bne _0812225C + ldr r1, _08122250 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x10] + ldr r1, _08122254 @ =gUnknown_084017D8 + ldr r2, _08122258 @ =gUnknown_084017B0 + movs r0, 0x1 + b _08122270 + .align 2, 0 +_08122248: .4byte gUnknown_03005CE0 +_0812224C: .4byte gPlayerParty +_08122250: .4byte gTasks +_08122254: .4byte gUnknown_084017D8 +_08122258: .4byte gUnknown_084017B0 +_0812225C: + ldr r1, _08122278 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x10] + ldr r1, _0812227C @ =gUnknown_084017D8 + ldr r2, _08122280 @ =gUnknown_084017B0 + movs r0, 0 +_08122270: + movs r3, 0 + bl sub_806E750 + b _0812229E + .align 2, 0 +_08122278: .4byte gTasks +_0812227C: .4byte gUnknown_084017D8 +_08122280: .4byte gUnknown_084017B0 +_08122284: + ldr r1, _081222A4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x2 + strh r1, [r0, 0x10] + ldr r1, _081222A8 @ =gUnknown_084017D8 + ldr r2, _081222AC @ =gUnknown_084017B0 + movs r0, 0x2 + movs r3, 0 + bl sub_806E750 +_0812229E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081222A4: .4byte gTasks +_081222A8: .4byte gUnknown_084017D8 +_081222AC: .4byte gUnknown_084017B0 + thumb_func_end sub_81221F8 + + thumb_func_start sub_81222B0 +sub_81222B0: @ 81222B0 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _081222DC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _0812237C + adds r0, r4, 0 + bl sub_806BE38 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + beq _081222E0 + cmp r0, 0x2 + beq _08122354 + b _0812237C + .align 2, 0 +_081222DC: .4byte gPaletteFade +_081222E0: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_806CA38 + ldr r1, _08122320 @ =gUnknown_03005CE0 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + beq _08122334 + ldrb r1, [r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08122324 @ =gPlayerParty + adds r0, r1 + ldr r1, _08122328 @ =gStringVar1 + bl GetMonNickname + adds r0, r4, 0 + bl sub_81221F8 + ldr r1, _0812232C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08122330 @ =sub_812238C + str r1, [r0] + b _08122342 + .align 2, 0 +_08122320: .4byte gUnknown_03005CE0 +_08122324: .4byte gPlayerParty +_08122328: .4byte gStringVar1 +_0812232C: .4byte gTasks +_08122330: .4byte sub_812238C +_08122334: + ldr r0, _0812234C @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _08122350 @ =sub_81224A8 + str r0, [r1] +_08122342: + adds r0, r4, 0 + bl sub_808B5B4 + b _0812237C + .align 2, 0 +_0812234C: .4byte gTasks +_08122350: .4byte sub_81224A8 +_08122354: + movs r0, 0x5 + bl PlaySE + bl sub_8121E58 + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _08122384 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08122388 @ =sub_8122450 + str r1, [r0] +_0812237C: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08122384: .4byte gTasks +_08122388: .4byte sub_8122450 + thumb_func_end sub_81222B0 + + thumb_func_start sub_812238C +sub_812238C: @ 812238C + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + adds r4, r7, 0 + ldr r0, _081223C8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r3, 0x80 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _0812244A + ldr r2, _081223CC @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081223D0 + bl GetMenuCursorPos + lsls r0, 24 + cmp r0, 0 + beq _0812244A + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _0812244A + .align 2, 0 +_081223C8: .4byte gPaletteFade +_081223CC: .4byte gMain +_081223D0: + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _081223F2 + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _0812244A + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _0812244A +_081223F2: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0812243C + movs r0, 0x5 + bl PlaySE + ldr r1, _08122430 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrb r4, [r0, 0x10] + ldr r5, _08122434 @ =gUnknown_084017D8 + ldr r6, _08122438 @ =gUnknown_084017B0 + bl GetMenuCursorPos + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_806E81C + adds r1, r0, 0 + adds r0, r7, 0 + bl _call_via_r1 + b _0812244A + .align 2, 0 +_08122430: .4byte gTasks +_08122434: .4byte gUnknown_084017D8 +_08122438: .4byte gUnknown_084017B0 +_0812243C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0812244A + adds r0, r4, 0 + bl sub_8122838 +_0812244A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_812238C + + thumb_func_start sub_8122450 +sub_8122450: @ 8122450 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08122478 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08122470 + ldr r0, _0812247C @ =gMain + ldr r0, [r0, 0x8] + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_08122470: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08122478: .4byte gPaletteFade +_0812247C: .4byte gMain + thumb_func_end sub_8122450 + + thumb_func_start sub_8122480 +sub_8122480: @ 8122480 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _081224A4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0812249A + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081224A0 +_0812249A: + adds r0, r2, 0 + bl sub_8122838 +_081224A0: + pop {r0} + bx r0 + .align 2, 0 +_081224A4: .4byte gMain + thumb_func_end sub_8122480 + + thumb_func_start sub_81224A8 +sub_81224A8: @ 81224A8 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_81220C8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _081224D0 + movs r1, 0 + bl sub_806D538 + ldr r0, _081224CC @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + b _08122518 + .align 2, 0 +_081224CC: .4byte gTasks +_081224D0: + ldr r0, _081224F8 @ =gUnknown_02039270 + ldrb r0, [r0] + cmp r0, 0 + beq _08122504 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _081224FC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08122500 @ =sub_8122450 + str r1, [r0] + b _08122520 + .align 2, 0 +_081224F8: .4byte gUnknown_02039270 +_081224FC: .4byte gTasks +_08122500: .4byte sub_8122450 +_08122504: + movs r0, 0x20 + bl PlaySE + movs r0, 0xE + movs r1, 0 + bl sub_806D538 + ldr r0, _08122528 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 +_08122518: + lsls r1, 3 + adds r1, r0 + ldr r0, _0812252C @ =sub_8122480 + str r0, [r1] +_08122520: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08122528: .4byte gTasks +_0812252C: .4byte sub_8122480 + thumb_func_end sub_81224A8 + + thumb_func_start sub_8122530 +sub_8122530: @ 8122530 + push {r4,r5,lr} + ldr r5, _08122578 @ =0x0201b260 + ldr r4, _0812257C @ =gUnknown_020384F0 +_08122536: + bl sub_806B124 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08122590 + ldrb r0, [r5] + ldrb r1, [r4] + bl sub_806C994 + ldrb r0, [r5] + movs r1, 0 + bl sub_806C658 + ldrb r1, [r4] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08122580 @ =gPlayerParty + adds r0, r1 + ldr r1, _08122584 @ =gStringVar1 + bl GetMonNickname + ldr r1, _08122588 @ =gUnknown_03005CE0 + ldrb r0, [r4] + strb r0, [r1] + ldrb r0, [r5] + bl sub_81221F8 + ldr r0, _0812258C @ =sub_806AEDC + bl SetMainCallback2 + b _0812259C + .align 2, 0 +_08122578: .4byte 0x0201b260 +_0812257C: .4byte gUnknown_020384F0 +_08122580: .4byte gPlayerParty +_08122584: .4byte gStringVar1 +_08122588: .4byte gUnknown_03005CE0 +_0812258C: .4byte sub_806AEDC +_08122590: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08122536 +_0812259C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8122530 + + thumb_func_start sub_81225A4 +sub_81225A4: @ 81225A4 + push {lr} + ldr r2, _081225C8 @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r2, _081225CC @ =sub_812238C + movs r0, 0x4 + movs r1, 0xFF + movs r3, 0x5 + bl sub_806AF4C + ldr r0, _081225D0 @ =sub_8122530 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_081225C8: .4byte gPaletteFade +_081225CC: .4byte sub_812238C +_081225D0: .4byte sub_8122530 + thumb_func_end sub_81225A4 + + thumb_func_start sub_81225D4 +sub_81225D4: @ 81225D4 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _0812263C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _08122632 + ldr r2, _08122640 @ =gSprites + ldr r1, _08122644 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0xE] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r4, [r0, 0x2E] + lsls r4, 24 + lsrs r4, 24 + adds r0, r3, 0 + bl DestroyTask + ldr r0, _08122648 @ =0x0201b000 + ldr r1, _0812264C @ =0x00000262 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r0, _08122650 @ =gPlayerParty + ldr r1, _08122654 @ =gPlayerPartyCount + ldrb r2, [r1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _08122658 @ =sub_81225A4 + str r5, [sp] + adds r1, r4, 0 + bl sub_809D8BC +_08122632: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0812263C: .4byte gPaletteFade +_08122640: .4byte gSprites +_08122644: .4byte gTasks +_08122648: .4byte 0x0201b000 +_0812264C: .4byte 0x00000262 +_08122650: .4byte gPlayerParty +_08122654: .4byte gPlayerPartyCount +_08122658: .4byte sub_81225A4 + thumb_func_end sub_81225D4 + + thumb_func_start sub_812265C +sub_812265C: @ 812265C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0812268C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08122690 @ =sub_81225D4 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812268C: .4byte gTasks +_08122690: .4byte sub_81225D4 + thumb_func_end sub_812265C + + thumb_func_start sub_8122694 +sub_8122694: @ 8122694 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r3, _081226D4 @ =gUnknown_02039270 + ldr r2, _081226D8 @ =gUnknown_03005CE0 +_081226A0: + adds r1, r4, r3 + ldrb r0, [r1] + cmp r0, 0 + bne _081226DC + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r1] + ldrb r0, [r2] + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 25 + movs r2, 0xE0 + lsls r2, 21 + adds r1, r2 + lsrs r1, 24 + bl sub_806BC3C + cmp r4, 0x2 + bne _081226CC + adds r0, r5, 0 + bl sub_806C890 +_081226CC: + adds r0, r5, 0 + bl sub_8122838 + b _08122716 + .align 2, 0 +_081226D4: .4byte gUnknown_02039270 +_081226D8: .4byte gUnknown_03005CE0 +_081226DC: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _081226A0 + movs r0, 0x20 + bl PlaySE + movs r0, 0x14 + movs r1, 0xA + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + bl sub_8072DEC + bl sub_806D5A4 + ldr r0, _0812271C @ =gOtherText_NoMoreThreePoke + movs r1, 0x1 + bl sub_806E834 + ldr r1, _08122720 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _08122724 @ =sub_8122728 + str r1, [r0] +_08122716: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0812271C: .4byte gOtherText_NoMoreThreePoke +_08122720: .4byte gTasks +_08122724: .4byte sub_8122728 + thumb_func_end sub_8122694 + + thumb_func_start sub_8122728 +sub_8122728: @ 8122728 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08122768 @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08122760 + ldr r0, _0812276C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0812274A + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08122760 +_0812274A: + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + bl sub_8072DEC + adds r0, r4, 0 + bl sub_8122838 +_08122760: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08122768: .4byte gUnknown_0202E8F6 +_0812276C: .4byte gMain + thumb_func_end sub_8122728 + + thumb_func_start sub_8122770 +sub_8122770: @ 8122770 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + ldr r5, _08122798 @ =gUnknown_03005CE0 + ldr r3, _0812279C @ =gUnknown_02039270 +_0812277C: + adds r2, r4, r3 + ldrb r1, [r2] + ldrb r0, [r5] + adds r0, 0x1 + cmp r1, r0 + bne _081227B4 + movs r1, 0 + strb r1, [r2] + cmp r4, 0 + beq _081227A0 + cmp r4, 0x1 + beq _081227AC + b _081227BE + .align 2, 0 +_08122798: .4byte gUnknown_03005CE0 +_0812279C: .4byte gUnknown_02039270 +_081227A0: + ldrb r0, [r3, 0x1] + strb r0, [r3] + ldrb r0, [r3, 0x2] + strb r0, [r3, 0x1] + strb r4, [r3, 0x2] + b _081227BE +_081227AC: + ldrb r0, [r3, 0x2] + strb r0, [r3, 0x1] + strb r1, [r3, 0x2] + b _081227BE +_081227B4: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _0812277C +_081227BE: + ldrb r0, [r5] + movs r1, 0x70 + bl sub_806BC3C + ldr r4, _081227F8 @ =gUnknown_02039270 + ldrb r0, [r4] + cmp r0, 0 + beq _081227DA + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1C + bl sub_806BC3C +_081227DA: + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _081227EC + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x2A + bl sub_806BC3C +_081227EC: + adds r0, r6, 0 + bl sub_8122838 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081227F8: .4byte gUnknown_02039270 + thumb_func_end sub_8122770 + + thumb_func_start sub_81227FC +sub_81227FC: @ 81227FC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0xA + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + bl sub_806D538 + ldr r1, _08122830 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08122834 @ =sub_81222B0 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08122830: .4byte gTasks +_08122834: .4byte sub_81222B0 + thumb_func_end sub_81227FC + + thumb_func_start sub_8122838 +sub_8122838: @ 8122838 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81227FC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8122838 + + thumb_func_start sub_8122854 +sub_8122854: @ 8122854 + push {r4,lr} + ldr r1, _08122874 @ =0x0201b000 + movs r2, 0x99 + lsls r2, 2 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r4, r1, 0 + cmp r0, 0x4 + bhi _081228E0 + lsls r0, 2 + ldr r1, _08122878 @ =_0812287C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08122874: .4byte 0x0201b000 +_08122878: .4byte _0812287C + .align 2, 0 +_0812287C: + .4byte _08122890 + .4byte _081228A4 + .4byte _081228AA + .4byte _081228BE + .4byte _081228D8 +_08122890: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_81228E8 + movs r2, 0x99 + lsls r2, 2 + adds r1, r4, r2 + b _081228CA +_081228A4: + bl sub_806DA98 + b _081228C2 +_081228AA: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_8122950 + movs r2, 0x99 + lsls r2, 2 + adds r1, r4, r2 + b _081228CA +_081228BE: + bl sub_81229B8 +_081228C2: + ldr r1, _081228D4 @ =0x0201b000 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 +_081228CA: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _081228E0 + .align 2, 0 +_081228D4: .4byte 0x0201b000 +_081228D8: + bl sub_806B908 + movs r0, 0x1 + b _081228E2 +_081228E0: + movs r0, 0 +_081228E2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8122854 + + thumb_func_start sub_81228E8 +sub_81228E8: @ 81228E8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 +_081228F0: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08122948 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08122912 + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x3 + adds r3, r4, 0 + bl sub_806D880 +_08122912: + ldr r0, _0812294C @ =gUnknown_02023A00 + lsls r1, r5, 5 + adds r3, r1, r0 + ldrh r0, [r3] + cmp r0, 0 + beq _08122936 + adds r4, r5, 0x3 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x3 + bl sub_806D99C + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_806D50C +_08122936: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _081228F0 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08122948: .4byte gPlayerParty +_0812294C: .4byte gUnknown_02023A00 + thumb_func_end sub_81228E8 + + thumb_func_start sub_8122950 +sub_8122950: @ 8122950 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 +_08122958: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _081229B0 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08122984 + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + adds r2, r0, 0 + lsls r2, 16 + lsrs r2, 16 + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_806DCD4 +_08122984: + ldr r0, _081229B4 @ =gUnknown_02023A00 + lsls r1, r5, 5 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, 0 + beq _0812299E + adds r1, r5, 0x3 + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r2, 0x2] + adds r0, r6, 0 + bl sub_806DCD4 +_0812299E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _08122958 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081229B0: .4byte gPlayerParty +_081229B4: .4byte gUnknown_02023A00 + thumb_func_end sub_8122950 + + thumb_func_start sub_81229B8 +sub_81229B8: @ 81229B8 + push {r4-r7,lr} + movs r5, 0 + movs r7, 0x64 + ldr r6, _08122A00 @ =gPlayerParty +_081229C0: + adds r0, r5, 0 + muls r0, r7 + adds r4, r0, r6 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08122A36 + adds r0, r5, 0 + movs r1, 0x3 + adds r2, r4, 0 + bl sub_806E4A4 + adds r0, r4, 0 + bl sub_80A1CD8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08122A04 + cmp r0, 0x6 + beq _08122A04 + subs r2, r0, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + movs r1, 0x3 + bl sub_806E104 + b _08122A12 + .align 2, 0 +_08122A00: .4byte gPlayerParty +_08122A04: + adds r2, r5, 0 + muls r2, r7 + adds r2, r6 + adds r0, r5, 0 + movs r1, 0x3 + bl sub_806E294 +_08122A12: + adds r4, r5, 0 + muls r4, r7 + adds r4, r6 + adds r0, r5, 0 + movs r1, 0x3 + adds r2, r4, 0 + bl sub_806E3C0 + adds r0, r5, 0 + movs r1, 0x3 + adds r2, r4, 0 + bl sub_806E050 + adds r0, r5, 0 + movs r1, 0x3 + adds r2, r4, 0 + bl sub_806E630 +_08122A36: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _081229C0 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81229B8 + + thumb_func_start sub_8122A48 +sub_8122A48: @ 8122A48 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _08122AA0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08122A98 + ldr r0, _08122AA4 @ =gTasks + lsls r4, r6, 2 + adds r4, r6 + lsls r4, 3 + adds r4, r0 + movs r0, 0x1E + strh r0, [r4, 0x8] + ldr r5, _08122AA8 @ =gUnknown_02023A00 + ldrh r1, [r5] + adds r0, r6, 0 + movs r2, 0 + bl sub_806D4AC + ldrh r1, [r5, 0x20] + adds r0, r6, 0 + movs r2, 0x1 + bl sub_806D4AC + adds r5, 0x40 + ldrh r1, [r5] + adds r0, r6, 0 + movs r2, 0x2 + bl sub_806D4AC + ldr r0, _08122AAC @ =sub_8122AB8 + str r0, [r4] + ldr r0, _08122AB0 @ =0x0201b000 + ldr r1, _08122AB4 @ =0x00000261 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] +_08122A98: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08122AA0: .4byte gPaletteFade +_08122AA4: .4byte gTasks +_08122AA8: .4byte gUnknown_02023A00 +_08122AAC: .4byte sub_8122AB8 +_08122AB0: .4byte 0x0201b000 +_08122AB4: .4byte 0x00000261 + thumb_func_end sub_8122A48 + + thumb_func_start sub_8122AB8 +sub_8122AB8: @ 8122AB8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08122AFC @ =gUnknown_02023A00 + ldrh r1, [r0, 0x20] + adds r0, 0x40 + ldrh r2, [r0] + adds r0, r4, 0 + bl sub_806D3B4 + ldr r1, _08122B00 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _08122AF4 + ldr r0, _08122B04 @ =sub_8122B10 + str r0, [r1] + ldr r0, _08122B08 @ =0x0201b000 + ldr r1, _08122B0C @ =0x00000261 + adds r0, r1 + movs r1, 0x2 + strb r1, [r0] + movs r0, 0x78 + bl PlaySE +_08122AF4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08122AFC: .4byte gUnknown_02023A00 +_08122B00: .4byte gTasks +_08122B04: .4byte sub_8122B10 +_08122B08: .4byte 0x0201b000 +_08122B0C: .4byte 0x00000261 + thumb_func_end sub_8122AB8 + + thumb_func_start sub_8122B10 +sub_8122B10: @ 8122B10 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r0, 0 + mov r8, r0 + ldr r1, _08122B5C @ =gUnknown_02023A00 + mov r10, r1 + ldr r2, _08122B60 @ =gStringVar1 + mov r9, r2 +_08122B2E: + mov r1, r8 + lsls r0, r1, 5 + mov r2, r10 + adds r6, r0, r2 + ldrh r1, [r6] + adds r7, r0, 0 + cmp r1, 0 + beq _08122BDA + mov r4, r8 + adds r4, 0x3 + lsls r0, r4, 24 + lsrs r5, r0, 24 + ldrh r2, [r6, 0x10] + ldrh r3, [r6, 0x12] + adds r0, r5, 0 + movs r1, 0x3 + bl sub_806E420 + ldrh r0, [r6, 0x10] + cmp r0, 0 + bne _08122B64 + movs r2, 0x7 + b _08122B76 + .align 2, 0 +_08122B5C: .4byte gUnknown_02023A00 +_08122B60: .4byte gStringVar1 +_08122B64: + ldr r1, _08122B88 @ =gUnknown_02023A14 + adds r0, r7, r1 + ldr r0, [r0] + bl pokemon_ailments_get_primary + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _08122B8C +_08122B76: + lsls r0, r4, 24 + lsrs r0, 24 + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x3 + bl sub_806E104 + b _08122B96 + .align 2, 0 +_08122B88: .4byte gUnknown_02023A14 +_08122B8C: + ldrb r2, [r6, 0xF] + adds r0, r5, 0 + movs r1, 0x3 + bl sub_806E1F4 +_08122B96: + mov r2, r10 + adds r6, r7, r2 + ldrh r0, [r6] + ldrb r1, [r6, 0x1C] + lsls r4, 24 + lsrs r4, 24 + ldr r2, _08122C0C @ =gUnknown_02023A04 + adds r5, r7, r2 + str r5, [sp] + movs r2, 0x3 + adds r3, r4, 0 + bl sub_806E35C + mov r0, r9 + adds r1, r5, 0 + bl StringCopy + mov r0, r9 + bl StringGetEnd10 + mov r0, r9 + bl sub_814A568 + adds r0, r4, 0 + movs r1, 0x3 + mov r2, r9 + bl box_print + ldrh r2, [r6, 0x10] + ldrh r3, [r6, 0x12] + adds r0, r4, 0 + movs r1, 0x3 + bl sub_806E574 +_08122BDA: + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x2 + bls _08122B2E + ldr r1, _08122C10 @ =gTasks + ldr r2, [sp, 0x4] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + ldr r1, _08122C14 @ =sub_8122C18 + str r1, [r0] + movs r1, 0 + strh r1, [r0, 0x8] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08122C0C: .4byte gUnknown_02023A04 +_08122C10: .4byte gTasks +_08122C14: .4byte sub_8122C18 + thumb_func_end sub_8122B10 + + thumb_func_start sub_8122C18 +sub_8122C18: @ 8122C18 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08122C58 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bne _08122C4E + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _08122C5C @ =sub_8122450 + str r0, [r4] +_08122C4E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08122C58: .4byte gTasks +_08122C5C: .4byte sub_8122450 + thumb_func_end sub_8122C18 + + thumb_func_start unref_sub_8122C60 +unref_sub_8122C60: @ 8122C60 + push {r4,r5,lr} + ldr r1, _08122C80 @ =0x0201b000 + movs r2, 0x99 + lsls r2, 2 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r4, r1, 0 + cmp r0, 0x7 + bls _08122C76 + b _08122D8A +_08122C76: + lsls r0, 2 + ldr r1, _08122C84 @ =_08122C88 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08122C80: .4byte 0x0201b000 +_08122C84: .4byte _08122C88 + .align 2, 0 +_08122C88: + .4byte _08122CA8 + .4byte _08122CE8 + .4byte _08122CEE + .4byte _08122D02 + .4byte _08122D2C + .4byte _08122D32 + .4byte _08122D44 + .4byte _08122D5C +_08122CA8: + ldr r0, _08122CD0 @ =0x00000266 + adds r5, r4, r0 + movs r1, 0 + ldrsh r3, [r5, r1] + ldr r0, _08122CD4 @ =gPlayerPartyCount + ldrb r0, [r0] + cmp r3, r0 + bge _08122CDC + movs r2, 0x98 + lsls r2, 2 + adds r0, r4, r2 + ldrb r0, [r0] + ldrb r1, [r5] + movs r2, 0x64 + muls r2, r3 + ldr r3, _08122CD8 @ =gPlayerParty + adds r2, r3 + bl sub_806D90C + b _08122D84 + .align 2, 0 +_08122CD0: .4byte 0x00000266 +_08122CD4: .4byte gPlayerPartyCount +_08122CD8: .4byte gPlayerParty +_08122CDC: + movs r0, 0 + strh r0, [r5] + movs r0, 0x99 + lsls r0, 2 + adds r1, r4, r0 + b _08122D50 +_08122CE8: + bl sub_806DA98 + b _08122D48 +_08122CEE: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_806DC34 + movs r2, 0x99 + lsls r2, 2 + adds r1, r4, r2 + b _08122D50 +_08122D02: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + ldr r2, _08122D28 @ =0x00000266 + adds r5, r4, r2 + ldrb r1, [r5] + bl sub_806BD58 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08122D84 + movs r0, 0 + strh r0, [r5] + movs r0, 0x99 + lsls r0, 2 + adds r1, r4, r0 + b _08122D50 + .align 2, 0 +_08122D28: .4byte 0x00000266 +_08122D2C: + bl sub_806E334 + b _08122D48 +_08122D32: + bl sub_806E0C4 + ldr r1, _08122D40 @ =0x0201b000 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _08122D50 + .align 2, 0 +_08122D40: .4byte 0x0201b000 +_08122D44: + bl sub_806BCE8 +_08122D48: + ldr r1, _08122D58 @ =0x0201b000 + movs r2, 0x99 + lsls r2, 2 + adds r1, r2 +_08122D50: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _08122D8A + .align 2, 0 +_08122D58: .4byte 0x0201b000 +_08122D5C: + ldr r0, _08122D80 @ =0x00000266 + adds r5, r4, r0 + ldrb r0, [r5] + bl sub_806B58C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08122D84 + movs r1, 0 + strh r1, [r5] + movs r2, 0x99 + lsls r2, 2 + adds r0, r4, r2 + strh r1, [r0] + movs r0, 0x1 + b _08122D8C + .align 2, 0 +_08122D80: .4byte 0x00000266 +_08122D84: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_08122D8A: + movs r0, 0 +_08122D8C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end unref_sub_8122C60 + + thumb_func_start sub_8122D94 +sub_8122D94: @ 8122D94 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08122DCC @ =gUnknown_03005CE0 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08122DD0 @ =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + adds r2, r0, 0 + cmp r2, 0 + bne _08122DE0 + ldr r1, _08122DD4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x10] + ldr r1, _08122DD8 @ =gUnknown_08401810 + ldr r2, _08122DDC @ =gUnknown_084017F0 + movs r0, 0 + movs r3, 0 + bl sub_806E750 + b _08122DFA + .align 2, 0 +_08122DCC: .4byte gUnknown_03005CE0 +_08122DD0: .4byte gPlayerParty +_08122DD4: .4byte gTasks +_08122DD8: .4byte gUnknown_08401810 +_08122DDC: .4byte gUnknown_084017F0 +_08122DE0: + ldr r1, _08122E00 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0, 0x10] + ldr r1, _08122E04 @ =gUnknown_08401810 + ldr r2, _08122E08 @ =gUnknown_084017F0 + movs r0, 0x1 + movs r3, 0 + bl sub_806E750 +_08122DFA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08122E00: .4byte gTasks +_08122E04: .4byte gUnknown_08401810 +_08122E08: .4byte gUnknown_084017F0 + thumb_func_end sub_8122D94 + + thumb_func_start sub_8122E0C +sub_8122E0C: @ 8122E0C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08122E34 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08122E9C + adds r0, r4, 0 + bl sub_806BD80 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + beq _08122E38 + cmp r0, 0x2 + beq _08122E84 + b _08122E9C + .align 2, 0 +_08122E34: .4byte gPaletteFade +_08122E38: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_806CA38 + ldr r1, _08122E70 @ =gUnknown_03005CE0 + strb r0, [r1] + ldrb r1, [r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08122E74 @ =gPlayerParty + adds r0, r1 + ldr r1, _08122E78 @ =gStringVar1 + bl GetMonNickname + adds r0, r4, 0 + bl sub_8122D94 + ldr r1, _08122E7C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08122E80 @ =sub_8122EAC + str r1, [r0] + b _08122E9C + .align 2, 0 +_08122E70: .4byte gUnknown_03005CE0 +_08122E74: .4byte gPlayerParty +_08122E78: .4byte gStringVar1 +_08122E7C: .4byte gTasks +_08122E80: .4byte sub_8122EAC +_08122E84: + movs r0, 0x5 + bl PlaySE + ldr r1, _08122EA4 @ =gUnknown_03005CE0 + movs r0, 0xFF + strb r0, [r1] + ldr r1, _08122EA8 @ =gUnknown_0202E8CC + movs r0, 0xFF + strh r0, [r1] + adds r0, r4, 0 + bl sub_8123138 +_08122E9C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08122EA4: .4byte gUnknown_03005CE0 +_08122EA8: .4byte gUnknown_0202E8CC + thumb_func_end sub_8122E0C + + thumb_func_start sub_8122EAC +sub_8122EAC: @ 8122EAC + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + adds r4, r7, 0 + ldr r0, _08122EE8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r3, 0x80 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _08122F6A + ldr r2, _08122EEC @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08122EF0 + bl GetMenuCursorPos + lsls r0, 24 + cmp r0, 0 + beq _08122F6A + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _08122F6A + .align 2, 0 +_08122EE8: .4byte gPaletteFade +_08122EEC: .4byte gMain +_08122EF0: + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _08122F12 + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _08122F6A + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _08122F6A +_08122F12: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08122F5C + movs r0, 0x5 + bl PlaySE + ldr r1, _08122F50 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrb r4, [r0, 0x10] + ldr r5, _08122F54 @ =gUnknown_08401810 + ldr r6, _08122F58 @ =gUnknown_084017F0 + bl GetMenuCursorPos + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_806E81C + adds r1, r0, 0 + adds r0, r7, 0 + bl _call_via_r1 + b _08122F6A + .align 2, 0 +_08122F50: .4byte gTasks +_08122F54: .4byte gUnknown_08401810 +_08122F58: .4byte gUnknown_084017F0 +_08122F5C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08122F6A + adds r0, r4, 0 + bl sub_81230F4 +_08122F6A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8122EAC + + thumb_func_start sub_8122F70 +sub_8122F70: @ 8122F70 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08122F88 @ =gUnknown_0202E8CC + ldr r1, _08122F8C @ =gUnknown_03005CE0 + ldrb r1, [r1] + strh r1, [r2] + bl sub_8123138 + pop {r0} + bx r0 + .align 2, 0 +_08122F88: .4byte gUnknown_0202E8CC +_08122F8C: .4byte gUnknown_03005CE0 + thumb_func_end sub_8122F70 + + thumb_func_start sub_8122F90 +sub_8122F90: @ 8122F90 + push {r4,r5,lr} + ldr r5, _08122FD8 @ =0x0201b260 + ldr r4, _08122FDC @ =gUnknown_020384F0 +_08122F96: + bl sub_806B124 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08122FF0 + ldrb r0, [r5] + ldrb r1, [r4] + bl sub_806C994 + ldrb r0, [r5] + movs r1, 0 + bl sub_806BF74 + ldrb r1, [r4] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08122FE0 @ =gPlayerParty + adds r0, r1 + ldr r1, _08122FE4 @ =gStringVar1 + bl GetMonNickname + ldr r1, _08122FE8 @ =gUnknown_03005CE0 + ldrb r0, [r4] + strb r0, [r1] + ldrb r0, [r5] + bl sub_8122D94 + ldr r0, _08122FEC @ =sub_806AEDC + bl SetMainCallback2 + b _08122FFC + .align 2, 0 +_08122FD8: .4byte 0x0201b260 +_08122FDC: .4byte gUnknown_020384F0 +_08122FE0: .4byte gPlayerParty +_08122FE4: .4byte gStringVar1 +_08122FE8: .4byte gUnknown_03005CE0 +_08122FEC: .4byte sub_806AEDC +_08122FF0: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08122F96 +_08122FFC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8122F90 + + thumb_func_start sub_8123004 +sub_8123004: @ 8123004 + push {lr} + ldr r2, _08123028 @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r2, _0812302C @ =sub_8122EAC + movs r0, 0x6 + movs r1, 0xFF + movs r3, 0x5 + bl sub_806AF4C + ldr r0, _08123030 @ =sub_8122F90 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08123028: .4byte gPaletteFade +_0812302C: .4byte sub_8122EAC +_08123030: .4byte sub_8122F90 + thumb_func_end sub_8123004 + + thumb_func_start sub_8123034 +sub_8123034: @ 8123034 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _0812309C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _08123092 + ldr r2, _081230A0 @ =gSprites + ldr r1, _081230A4 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0xE] + lsls r1, 16 + asrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r4, [r0, 0x2E] + lsls r4, 24 + lsrs r4, 24 + adds r0, r3, 0 + bl DestroyTask + ldr r0, _081230A8 @ =0x0201b000 + ldr r1, _081230AC @ =0x00000262 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r0, _081230B0 @ =gPlayerParty + ldr r1, _081230B4 @ =gPlayerPartyCount + ldrb r2, [r1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _081230B8 @ =sub_8123004 + str r5, [sp] + adds r1, r4, 0 + bl sub_809D8BC +_08123092: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0812309C: .4byte gPaletteFade +_081230A0: .4byte gSprites +_081230A4: .4byte gTasks +_081230A8: .4byte 0x0201b000 +_081230AC: .4byte 0x00000262 +_081230B0: .4byte gPlayerParty +_081230B4: .4byte gPlayerPartyCount +_081230B8: .4byte sub_8123004 + thumb_func_end sub_8123034 + + thumb_func_start sub_81230BC +sub_81230BC: @ 81230BC + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _081230EC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _081230F0 @ =sub_8123034 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081230EC: .4byte gTasks +_081230F0: .4byte sub_8123034 + thumb_func_end sub_81230BC + + thumb_func_start sub_81230F4 +sub_81230F4: @ 81230F4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + movs r0, 0x14 + movs r1, 0xA + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + bl sub_8072DEC + movs r0, 0xF + movs r1, 0 + bl sub_806D538 + ldr r1, _08123130 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08123134 @ =sub_8122E0C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08123130: .4byte gTasks +_08123134: .4byte sub_8122E0C + thumb_func_end sub_81230F4 + + thumb_func_start sub_8123138 +sub_8123138: @ 8123138 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _08123168 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0812316C @ =sub_8123170 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08123168: .4byte gTasks +_0812316C: .4byte sub_8123170 + thumb_func_end sub_8123138 + + thumb_func_start sub_8123170 +sub_8123170: @ 8123170 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0812319C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08123194 + ldr r0, _081231A0 @ =gUnknown_0300485C + ldr r1, _081231A4 @ =sub_81231AC + str r1, [r0] + ldr r0, _081231A8 @ =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_08123194: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0812319C: .4byte gPaletteFade +_081231A0: .4byte gUnknown_0300485C +_081231A4: .4byte sub_81231AC +_081231A8: .4byte c2_exit_to_overworld_2_switch + thumb_func_end sub_8123170 + + thumb_func_start sub_81231AC +sub_81231AC: @ 81231AC + push {lr} + bl pal_fill_black + ldr r0, _081231C0 @ =sub_81231C4 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_081231C0: .4byte sub_81231C4 + thumb_func_end sub_81231AC + + thumb_func_start sub_81231C4 +sub_81231C4: @ 81231C4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081231E4 + adds r0, r4, 0 + bl DestroyTask + bl ScriptContext2_Disable + bl EnableBothScriptContexts +_081231E4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81231C4 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/coins.s b/asm/coins.s new file mode 100644 index 000000000..164e75007 --- /dev/null +++ b/asm/coins.s @@ -0,0 +1,251 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_811A704 +sub_811A704: @ 811A704 + push {r4,lr} + adds r4, r1, 0 + adds r3, r2, 0 + lsls r4, 24 + lsls r3, 24 + movs r1, 0x80 + lsls r1, 18 + adds r4, r1 + lsrs r4, 24 + movs r1, 0x80 + lsls r1, 17 + adds r3, r1 + lsrs r3, 24 + movs r1, 0x4 + adds r2, r4, 0 + bl sub_811A798 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_811A704 + + thumb_func_start sub_811A72C +sub_811A72C: @ 811A72C + push {r4-r6,lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r4, r1, 0 + adds r3, r2, 0 + lsls r4, 24 + lsls r3, 24 + lsrs r6, r4, 24 + movs r0, 0x90 + lsls r0, 20 + adds r4, r0 + lsrs r4, 24 + lsrs r5, r3, 24 + movs r0, 0xC0 + lsls r0, 18 + adds r3, r0 + lsrs r3, 24 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl MenuDrawTextWindow + mov r0, r8 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_811A704 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_811A72C + + thumb_func_start sub_811A770 +sub_811A770: @ 811A770 + push {r4,lr} + adds r2, r0, 0 + adds r3, r1, 0 + lsls r2, 24 + lsls r3, 24 + lsrs r0, r2, 24 + movs r1, 0x90 + lsls r1, 20 + adds r2, r1 + lsrs r2, 24 + lsrs r1, r3, 24 + movs r4, 0xC0 + lsls r4, 18 + adds r3, r4 + lsrs r3, 24 + bl MenuZeroFillWindowRect + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_811A770 + + thumb_func_start sub_811A798 +sub_811A798: @ 811A798 + push {r4-r7,lr} + sub sp, 0x10 + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r5, r1, 0 + lsls r2, 24 + lsrs r6, r2, 24 + lsls r3, 24 + lsrs r7, r3, 24 + mov r0, sp + adds r1, r4, 0 + bl ConvertIntToDecimalString + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 1 + adds r1, 0x21 + adds r0, r5, 0x2 + lsls r0, 3 + subs r1, r0 + lsls r1, 24 + lsrs r0, r1, 27 + subs r0, r6, r0 + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0xE0 + lsls r0, 19 + ands r0, r1 + lsrs r1, r0, 24 + ldr r4, _0811A824 @ =gStringVar1 + cmp r1, 0 + beq _0811A7EA + movs r0, 0xFC + strb r0, [r4] + movs r0, 0x11 + strb r0, [r4, 0x1] + movs r0, 0x8 + subs r0, r1 + strb r0, [r4, 0x2] + adds r4, 0x3 +_0811A7EA: + movs r0, 0xFC + strb r0, [r4] + movs r0, 0x11 + strb r0, [r4, 0x1] + mov r0, sp + bl StringLength + lsls r0, 16 + lsrs r0, 16 + subs r0, r5, r0 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 1 + strb r1, [r4, 0x2] + adds r4, 0x3 + adds r0, r4, 0 + mov r1, sp + bl StringCopy + ldr r0, _0811A828 @ =gOtherText_Coins2 + adds r1, r6, 0 + adds r2, r7, 0 + bl MenuPrint + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811A824: .4byte gStringVar1 +_0811A828: .4byte gOtherText_Coins2 + thumb_func_end sub_811A798 + + thumb_func_start GetCoins +GetCoins: @ 811A82C + ldr r0, _0811A838 @ =gSaveBlock1 + ldr r1, _0811A83C @ =0x00000494 + adds r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_0811A838: .4byte gSaveBlock1 +_0811A83C: .4byte 0x00000494 + thumb_func_end GetCoins + + thumb_func_start GiveCoins +GiveCoins: @ 811A840 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + bl GetCoins + lsls r0, 16 + ldr r1, _0811A858 @ =0x270e0000 + cmp r0, r1 + bls _0811A85C + movs r0, 0 + b _0811A88C + .align 2, 0 +_0811A858: .4byte 0x270e0000 +_0811A85C: + ldr r0, _0811A874 @ =gSaveBlock1 + ldr r1, _0811A878 @ =0x00000494 + adds r3, r0, r1 + ldrh r1, [r3] + adds r2, r4, r1 + lsls r0, r2, 16 + lsrs r0, 16 + cmp r1, r0 + bls _0811A880 + ldr r0, _0811A87C @ =0x0000270f + strh r0, [r3] + b _0811A88A + .align 2, 0 +_0811A874: .4byte gSaveBlock1 +_0811A878: .4byte 0x00000494 +_0811A87C: .4byte 0x0000270f +_0811A880: + strh r2, [r3] + ldr r1, _0811A894 @ =0x0000270f + cmp r0, r1 + bls _0811A88A + strh r1, [r3] +_0811A88A: + movs r0, 0x1 +_0811A88C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811A894: .4byte 0x0000270f + thumb_func_end GiveCoins + + thumb_func_start TakeCoins +TakeCoins: @ 811A898 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + bl GetCoins + lsls r0, 16 + lsrs r0, 16 + cmp r0, r4 + bcs _0811A8AE + movs r0, 0 + b _0811A8BC +_0811A8AE: + ldr r1, _0811A8C4 @ =gSaveBlock1 + ldr r0, _0811A8C8 @ =0x00000494 + adds r1, r0 + ldrh r0, [r1] + subs r0, r4 + strh r0, [r1] + movs r0, 0x1 +_0811A8BC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0811A8C4: .4byte gSaveBlock1 +_0811A8C8: .4byte 0x00000494 + thumb_func_end TakeCoins + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s new file mode 100644 index 000000000..125f7d0e7 --- /dev/null +++ b/asm/evolution_scene.s @@ -0,0 +1,6717 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_8111894 +sub_8111894: @ 8111894 + push {lr} + bl UpdatePaletteFade + bl RunTasks + pop {r0} + bx r0 + thumb_func_end sub_8111894 + + thumb_func_start sub_81118A4 +sub_81118A4: @ 81118A4 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + movs r7, 0 + ldr r1, _081118C8 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081118CC + cmp r0, 0x1 + beq _081118E4 + b _08111918 + .align 2, 0 +_081118C8: .4byte gTasks +_081118CC: + movs r0, 0x1 + negs r0, r0 + str r7, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _08111918 +_081118E4: + ldr r0, _08111920 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08111918 + movs r0, 0xA + ldrsh r7, [r4, r0] + movs r1, 0xC + ldrsh r0, [r4, r1] + lsls r0, 16 + orrs r7, r0 + ldrh r5, [r4, 0x10] + ldrb r6, [r4, 0x12] + ldrh r4, [r4, 0x20] + lsls r4, 24 + lsrs r4, 24 + adds r0, r2, 0 + bl DestroyTask + adds r0, r7, 0 + adds r1, r5, 0 + adds r2, r6, 0 + adds r3, r4, 0 + bl evolution_cutscene +_08111918: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08111920: .4byte gPaletteFade + thumb_func_end sub_81118A4 + + thumb_func_start sub_8111924 +sub_8111924: @ 8111924 + push {r4-r6,lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r0, _08111978 @ =sub_81118A4 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0811197C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + mov r0, r8 + strh r0, [r1, 0xA] + mov r0, r8 + lsrs r0, 16 + strh r0, [r1, 0xC] + strh r4, [r1, 0x10] + strh r5, [r1, 0x12] + strh r6, [r1, 0x20] + ldr r0, _08111980 @ =sub_8111894 + bl SetMainCallback2 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08111978: .4byte sub_81118A4 +_0811197C: .4byte gTasks +_08111980: .4byte sub_8111894 + thumb_func_end sub_8111924 + + thumb_func_start evolution_cutscene +evolution_cutscene: @ 8111984 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x38 + str r0, [sp, 0x20] + mov r10, r1 + mov r0, r10 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x24] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x28] + movs r0, 0 + bl SetHBlankCallback + movs r0, 0 + bl SetVBlankCallback + movs r5, 0 + str r5, [sp, 0x1C] + add r0, sp, 0x1C + movs r1, 0xC0 + lsls r1, 19 + ldr r2, _08111C10 @ =0x05006000 + bl CpuSet + ldr r0, _08111C14 @ =REG_MOSAIC + strh r5, [r0] + subs r0, 0xC + strh r5, [r0] + adds r0, 0x4 + strh r5, [r0] + subs r0, 0x2 + strh r5, [r0] + adds r0, 0x4 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + ldr r4, _08111C18 @ =gWindowConfig_81E6C58 + adds r0, r4, 0 + bl SetUpWindowConfig + bl ResetPaletteFade + ldr r0, _08111C1C @ =gUnknown_030042A4 + strh r5, [r0] + ldr r0, _08111C20 @ =gUnknown_030042A0 + strh r5, [r0] + ldr r0, _08111C24 @ =gUnknown_030042C0 + strh r5, [r0] + ldr r0, _08111C28 @ =gUnknown_030041B4 + strh r5, [r0] + ldr r0, _08111C2C @ =gUnknown_03004288 + strh r5, [r0] + ldr r0, _08111C30 @ =gUnknown_03004280 + strh r5, [r0] + ldr r1, _08111C34 @ =gUnknown_030041B0 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08111C38 @ =gUnknown_030041B8 + strh r5, [r0] + ldr r0, _08111C3C @ =gUnknown_03004210 + adds r1, r4, 0 + bl InitWindowFromConfig + ldr r1, _08111C40 @ =gUnknown_0300428C + movs r0, 0x9 + strb r0, [r1] + bl sub_800D6D4 + bl sub_800DAB8 + bl ResetSpriteData + bl remove_some_task + bl ResetTasks + bl FreeAllSpritePalettes + ldr r0, _08111C44 @ =gReservedSpritePaletteCount + movs r3, 0x4 + strb r3, [r0] + ldr r0, [sp, 0x20] + movs r1, 0x2 + add r2, sp, 0x8 + bl GetMonData + ldr r0, _08111C48 @ =gStringVar1 + add r1, sp, 0x8 + bl StringCopy10 + ldr r0, _08111C4C @ =gStringVar2 + movs r1, 0xB + mov r4, r10 + muls r4, r1 + adds r1, r4, 0 + ldr r2, _08111C50 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldr r0, [sp, 0x20] + movs r1, 0xB + bl GetMonData + adds r6, r0, 0 + lsls r6, 16 + lsrs r6, 16 + ldr r0, [sp, 0x20] + movs r1, 0x1 + bl GetMonData + str r0, [sp, 0x2C] + ldr r0, [sp, 0x20] + movs r1, 0 + bl GetMonData + str r0, [sp, 0x30] + lsls r0, r6, 3 + ldr r1, _08111C54 @ =gMonFrontPicTable + adds r0, r1 + lsls r2, r6, 2 + ldr r3, _08111C58 @ =gMonFrontPicCoords + adds r2, r3 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + ldr r4, _08111C5C @ =gUnknown_081FAF4C + ldr r3, [r4, 0x4] + str r3, [sp] + str r6, [sp, 0x4] + movs r3, 0x80 + lsls r3, 18 + bl DecompressPicFromTable_2 + adds r0, r6, 0 + ldr r1, [sp, 0x2C] + ldr r2, [sp, 0x30] + bl sub_80409C8 + ldr r0, [r0] + movs r1, 0x88 + lsls r1, 1 + movs r2, 0x20 + bl LoadCompressedPalette + adds r0, r6, 0 + movs r1, 0x1 + bl GetMonSpriteTemplate_803C56C + ldr r0, _08111C60 @ =gUnknown_02024E8C + mov r9, r0 + ldr r1, _08111C64 @ =gDummySpriteAffineAnimTable + str r1, [r0, 0x10] + movs r1, 0x78 + movs r2, 0x40 + movs r3, 0x1E + bl CreateSprite + lsls r1, r0, 24 + lsrs r2, r1, 24 + ldr r3, _08111C68 @ =0x02014800 + strb r0, [r3] + ldr r7, _08111C6C @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + movs r4, 0x1C + adds r4, r7 + mov r8, r4 + adds r0, r1, r4 + ldr r2, _08111C70 @ =nullsub_37 + str r2, [r0] + adds r1, r7 + ldrb r2, [r1, 0x5] + movs r4, 0xF + adds r0, r4, 0 + ands r0, r2 + movs r2, 0x10 + orrs r0, r2 + strb r0, [r1, 0x5] + adds r1, 0x3E + ldrb r0, [r1] + movs r3, 0x4 + orrs r0, r3 + strb r0, [r1] + mov r1, r10 + lsls r0, r1, 3 + ldr r2, _08111C54 @ =gMonFrontPicTable + adds r0, r2 + lsls r2, r1, 2 + ldr r3, _08111C58 @ =gMonFrontPicCoords + adds r2, r3 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + str r2, [sp, 0x34] + ldr r2, _08111C5C @ =gUnknown_081FAF4C + ldr r2, [r2, 0xC] + str r2, [sp] + mov r3, r10 + str r3, [sp, 0x4] + ldr r2, [sp, 0x34] + movs r3, 0x80 + lsls r3, 18 + bl DecompressPicFromTable_2 + mov r0, r10 + ldr r1, [sp, 0x2C] + ldr r2, [sp, 0x30] + bl sub_80409C8 + ldr r0, [r0] + movs r1, 0x90 + lsls r1, 1 + movs r2, 0x20 + bl LoadCompressedPalette + mov r0, r10 + movs r1, 0x3 + bl GetMonSpriteTemplate_803C56C + ldr r0, _08111C64 @ =gDummySpriteAffineAnimTable + mov r1, r9 + str r0, [r1, 0x10] + mov r0, r9 + movs r1, 0x78 + movs r2, 0x40 + movs r3, 0x1E + bl CreateSprite + lsls r1, r0, 24 + lsrs r2, r1, 24 + ldr r3, _08111C68 @ =0x02014800 + strb r0, [r3, 0x1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r8, r1 + ldr r0, _08111C70 @ =nullsub_37 + mov r2, r8 + str r0, [r2] + adds r1, r7 + ldrb r0, [r1, 0x5] + ands r4, r0 + movs r0, 0x20 + orrs r4, r0 + strb r4, [r1, 0x5] + adds r1, 0x3E + ldrb r0, [r1] + movs r3, 0x4 + orrs r0, r3 + strb r0, [r1] + bl sub_8149954 + ldr r0, _08111C74 @ =sub_811240C + movs r1, 0 + bl CreateTask + lsls r1, r0, 24 + lsrs r2, r1, 24 + ldr r4, _08111C68 @ =0x02014800 + strb r0, [r4, 0x2] + ldr r1, _08111C78 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x8] + strh r6, [r0, 0xE] + mov r1, r10 + strh r1, [r0, 0x10] + mov r2, sp + ldrh r2, [r2, 0x20] + strh r2, [r0, 0xA] + ldr r3, [sp, 0x20] + lsrs r1, r3, 16 + strh r1, [r0, 0xC] + mov r4, sp + ldrh r4, [r4, 0x24] + strh r4, [r0, 0x12] + movs r1, 0x1 + strh r1, [r0, 0x14] + strh r5, [r0, 0x1E] + mov r1, sp + ldrh r1, [r1, 0x28] + strh r1, [r0, 0x20] + ldr r0, _08111C7C @ =0x02009000 + ldr r1, _08111C80 @ =gPlttBufferUnfaded + 0x40 + movs r2, 0x60 + bl memcpy + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08111C84 @ =nullsub_73 + bl SetHBlankCallback + ldr r0, _08111C88 @ =sub_8114FD4 + bl SetVBlankCallback + bl m4aMPlayAllStop + ldr r0, _08111C8C @ =sub_8112270 + bl SetMainCallback2 + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08111C10: .4byte 0x05006000 +_08111C14: .4byte REG_MOSAIC +_08111C18: .4byte gWindowConfig_81E6C58 +_08111C1C: .4byte gUnknown_030042A4 +_08111C20: .4byte gUnknown_030042A0 +_08111C24: .4byte gUnknown_030042C0 +_08111C28: .4byte gUnknown_030041B4 +_08111C2C: .4byte gUnknown_03004288 +_08111C30: .4byte gUnknown_03004280 +_08111C34: .4byte gUnknown_030041B0 +_08111C38: .4byte gUnknown_030041B8 +_08111C3C: .4byte gUnknown_03004210 +_08111C40: .4byte gUnknown_0300428C +_08111C44: .4byte gReservedSpritePaletteCount +_08111C48: .4byte gStringVar1 +_08111C4C: .4byte gStringVar2 +_08111C50: .4byte gSpeciesNames +_08111C54: .4byte gMonFrontPicTable +_08111C58: .4byte gMonFrontPicCoords +_08111C5C: .4byte gUnknown_081FAF4C +_08111C60: .4byte gUnknown_02024E8C +_08111C64: .4byte gDummySpriteAffineAnimTable +_08111C68: .4byte 0x02014800 +_08111C6C: .4byte gSprites +_08111C70: .4byte nullsub_37 +_08111C74: .4byte sub_811240C +_08111C78: .4byte gTasks +_08111C7C: .4byte 0x02009000 +_08111C80: .4byte gPlttBufferUnfaded + 0x40 +_08111C84: .4byte nullsub_73 +_08111C88: .4byte sub_8114FD4 +_08111C8C: .4byte sub_8112270 + thumb_func_end evolution_cutscene + + thumb_func_start sub_8111C90 +sub_8111C90: @ 8111C90 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0xC + ldr r2, _08111E14 @ =gTasks + ldr r0, _08111E18 @ =0x02014800 + mov r9, r0 + ldrb r1, [r0, 0x2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x20 + ldrsh r2, [r0, r1] + movs r1, 0x64 + adds r4, r2, 0 + muls r4, r1 + ldr r1, _08111E1C @ =gPlayerParty + adds r4, r1 + ldrh r6, [r0, 0x10] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + mov r10, r0 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + mov r8, r0 + movs r0, 0 + bl SetHBlankCallback + movs r0, 0 + bl SetVBlankCallback + movs r5, 0 + str r5, [sp, 0x8] + movs r1, 0xC0 + lsls r1, 19 + ldr r2, _08111E20 @ =0x05006000 + add r0, sp, 0x8 + bl CpuSet + ldr r0, _08111E24 @ =REG_MOSAIC + strh r5, [r0] + subs r0, 0xC + strh r5, [r0] + adds r0, 0x4 + strh r5, [r0] + subs r0, 0x2 + strh r5, [r0] + adds r0, 0x4 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + ldr r4, _08111E28 @ =gWindowConfig_81E6C58 + adds r0, r4, 0 + bl SetUpWindowConfig + bl ResetPaletteFade + ldr r0, _08111E2C @ =gUnknown_030042A4 + strh r5, [r0] + ldr r0, _08111E30 @ =gUnknown_030042A0 + strh r5, [r0] + ldr r0, _08111E34 @ =gUnknown_030042C0 + strh r5, [r0] + ldr r0, _08111E38 @ =gUnknown_030041B4 + strh r5, [r0] + ldr r0, _08111E3C @ =gUnknown_03004288 + strh r5, [r0] + ldr r0, _08111E40 @ =gUnknown_03004280 + strh r5, [r0] + ldr r1, _08111E44 @ =gUnknown_030041B0 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08111E48 @ =gUnknown_030041B8 + strh r5, [r0] + ldr r0, _08111E4C @ =gUnknown_03004210 + adds r1, r4, 0 + bl InitWindowFromConfig + ldr r1, _08111E50 @ =gUnknown_0300428C + movs r0, 0x9 + strb r0, [r1] + bl sub_800D6D4 + bl sub_800DAB8 + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _08111E54 @ =gReservedSpritePaletteCount + movs r0, 0x4 + strb r0, [r1] + lsls r0, r6, 3 + ldr r1, _08111E58 @ =gMonFrontPicTable + adds r0, r1 + ldr r1, _08111E5C @ =gMonFrontPicCoords + lsls r2, r6, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _08111E60 @ =gUnknown_081FAF4C + ldr r4, [r4, 0xC] + str r4, [sp] + str r6, [sp, 0x4] + bl DecompressPicFromTable_2 + adds r0, r6, 0 + mov r1, r10 + mov r2, r8 + bl sub_80409C8 + ldr r0, [r0] + movs r1, 0x90 + lsls r1, 1 + movs r2, 0x20 + bl LoadCompressedPalette + adds r0, r6, 0 + movs r1, 0x3 + bl GetMonSpriteTemplate_803C56C + ldr r0, _08111E64 @ =gUnknown_02024E8C + ldr r1, _08111E68 @ =gDummySpriteAffineAnimTable + str r1, [r0, 0x10] + movs r1, 0x78 + movs r2, 0x40 + movs r3, 0x1E + bl CreateSprite + lsls r2, r0, 24 + lsrs r2, 24 + mov r1, r9 + strb r0, [r1, 0x1] + ldr r3, _08111E6C @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x1C + adds r0, r1, r0 + ldr r2, _08111E70 @ =nullsub_37 + str r2, [r0] + adds r1, r3 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + movs r2, 0x20 + orrs r0, r2 + strb r0, [r1, 0x5] + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08111E74 @ =nullsub_73 + bl SetHBlankCallback + ldr r0, _08111E78 @ =sub_8114FD4 + bl SetVBlankCallback + ldr r0, _08111E7C @ =sub_8112270 + bl SetMainCallback2 + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08111E14: .4byte gTasks +_08111E18: .4byte 0x02014800 +_08111E1C: .4byte gPlayerParty +_08111E20: .4byte 0x05006000 +_08111E24: .4byte REG_MOSAIC +_08111E28: .4byte gWindowConfig_81E6C58 +_08111E2C: .4byte gUnknown_030042A4 +_08111E30: .4byte gUnknown_030042A0 +_08111E34: .4byte gUnknown_030042C0 +_08111E38: .4byte gUnknown_030041B4 +_08111E3C: .4byte gUnknown_03004288 +_08111E40: .4byte gUnknown_03004280 +_08111E44: .4byte gUnknown_030041B0 +_08111E48: .4byte gUnknown_030041B8 +_08111E4C: .4byte gUnknown_03004210 +_08111E50: .4byte gUnknown_0300428C +_08111E54: .4byte gReservedSpritePaletteCount +_08111E58: .4byte gMonFrontPicTable +_08111E5C: .4byte gMonFrontPicCoords +_08111E60: .4byte gUnknown_081FAF4C +_08111E64: .4byte gUnknown_02024E8C +_08111E68: .4byte gDummySpriteAffineAnimTable +_08111E6C: .4byte gSprites +_08111E70: .4byte nullsub_37 +_08111E74: .4byte nullsub_73 +_08111E78: .4byte sub_8114FD4 +_08111E7C: .4byte sub_8112270 + thumb_func_end sub_8111C90 + + thumb_func_start sub_8111E80 +sub_8111E80: @ 8111E80 + push {r4-r7,lr} + sub sp, 0x8 + ldr r2, _08111EB8 @ =gTasks + ldr r0, _08111EBC @ =0x02014800 + ldrb r1, [r0, 0x2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x20 + ldrsh r2, [r0, r1] + movs r1, 0x64 + muls r2, r1 + ldr r1, _08111EC0 @ =gPlayerParty + adds r4, r2, r1 + ldrh r7, [r0, 0x10] + ldr r0, _08111EC4 @ =gMain + ldr r2, _08111EC8 @ =0x0000043c + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x6 + bls _08111EAE + b _081120D6 +_08111EAE: + lsls r0, 2 + ldr r1, _08111ECC @ =_08111ED0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08111EB8: .4byte gTasks +_08111EBC: .4byte 0x02014800 +_08111EC0: .4byte gPlayerParty +_08111EC4: .4byte gMain +_08111EC8: .4byte 0x0000043c +_08111ECC: .4byte _08111ED0 + .align 2, 0 +_08111ED0: + .4byte _08111EEC + .4byte _08111F68 + .4byte _08111F88 + .4byte _08111FDC + .4byte _08111FE2 + .4byte _08112048 + .4byte _081120B4 +_08111EEC: + movs r0, 0x80 + lsls r0, 19 + movs r4, 0 + strh r4, [r0] + movs r0, 0 + bl SetHBlankCallback + movs r0, 0 + bl SetVBlankCallback + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _08111F3C @ =gReservedSpritePaletteCount + movs r0, 0x4 + strb r0, [r1] + ldr r0, _08111F40 @ =gUnknown_030042A4 + strh r4, [r0] + ldr r0, _08111F44 @ =gUnknown_030042A0 + strh r4, [r0] + ldr r0, _08111F48 @ =gUnknown_030042C0 + strh r4, [r0] + ldr r0, _08111F4C @ =gUnknown_030041B4 + strh r4, [r0] + ldr r0, _08111F50 @ =gUnknown_03004288 + strh r4, [r0] + ldr r0, _08111F54 @ =gUnknown_03004280 + strh r4, [r0] + ldr r1, _08111F58 @ =gUnknown_030041B0 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08111F5C @ =gUnknown_030041B8 + strh r4, [r0] + ldr r1, _08111F60 @ =gMain + ldr r0, _08111F64 @ =0x0000043c + adds r1, r0 + b _0811208E + .align 2, 0 +_08111F3C: .4byte gReservedSpritePaletteCount +_08111F40: .4byte gUnknown_030042A4 +_08111F44: .4byte gUnknown_030042A0 +_08111F48: .4byte gUnknown_030042C0 +_08111F4C: .4byte gUnknown_030041B4 +_08111F50: .4byte gUnknown_03004288 +_08111F54: .4byte gUnknown_03004280 +_08111F58: .4byte gUnknown_030041B0 +_08111F5C: .4byte gUnknown_030041B8 +_08111F60: .4byte gMain +_08111F64: .4byte 0x0000043c +_08111F68: + ldr r4, _08111F80 @ =gWindowConfig_81E6F84 + adds r0, r4, 0 + bl SetUpWindowConfig + ldr r0, _08111F84 @ =gUnknown_03004828 + ldr r0, [r0] + adds r0, 0x4 + adds r1, r4, 0 + bl InitWindowFromConfig + b _08112088 + .align 2, 0 +_08111F80: .4byte gWindowConfig_81E6F84 +_08111F84: .4byte gUnknown_03004828 +_08111F88: + ldr r4, _08111FC8 @ =gUnknown_03004828 + ldr r0, [r4] + adds r0, 0x4 + bl LoadTextWindowGraphics + movs r0, 0x2 + bl SetTextWindowBaseTileNum + ldr r1, [r4] + adds r1, 0x34 + strb r0, [r1] + ldr r0, [r4] + adds r0, 0x4 + bl LoadTextWindowGraphics + bl MenuZeroFillScreen + bl ResetPaletteFade + ldr r1, _08111FCC @ =gMain + ldr r0, _08111FD0 @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, _08111FD4 @ =nullsub_73 + bl SetHBlankCallback + ldr r0, _08111FD8 @ =sub_811505C + bl SetVBlankCallback + b _081120D6 + .align 2, 0 +_08111FC8: .4byte gUnknown_03004828 +_08111FCC: .4byte gMain +_08111FD0: .4byte 0x0000043c +_08111FD4: .4byte nullsub_73 +_08111FD8: .4byte sub_811505C +_08111FDC: + bl sub_804E22C + b _08112088 +_08111FE2: + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + adds r6, r0, 0 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r5, r0, 0 + lsls r0, r7, 3 + ldr r1, _08112034 @ =gMonFrontPicTable + adds r0, r1 + ldr r1, _08112038 @ =gMonFrontPicCoords + lsls r2, r7, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _0811203C @ =gUnknown_081FAF4C + ldr r4, [r4, 0xC] + str r4, [sp] + str r7, [sp, 0x4] + bl DecompressPicFromTable_2 + adds r0, r7, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80409C8 + ldr r0, [r0] + movs r1, 0x90 + lsls r1, 1 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r1, _08112040 @ =gMain + ldr r0, _08112044 @ =0x0000043c + adds r1, r0 + b _0811208E + .align 2, 0 +_08112034: .4byte gMonFrontPicTable +_08112038: .4byte gMonFrontPicCoords +_0811203C: .4byte gUnknown_081FAF4C +_08112040: .4byte gMain +_08112044: .4byte 0x0000043c +_08112048: + adds r0, r7, 0 + movs r1, 0x3 + bl GetMonSpriteTemplate_803C56C + ldr r0, _08112098 @ =gUnknown_02024E8C + ldr r1, _0811209C @ =gDummySpriteAffineAnimTable + str r1, [r0, 0x10] + movs r1, 0x78 + movs r2, 0x40 + movs r3, 0x1E + bl CreateSprite + ldr r1, _081120A0 @ =0x02014800 + lsls r2, r0, 24 + lsrs r2, 24 + strb r0, [r1, 0x1] + ldr r3, _081120A4 @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x1C + adds r0, r1, r0 + ldr r2, _081120A8 @ =nullsub_37 + str r2, [r0] + adds r1, r3 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + movs r2, 0x20 + orrs r0, r2 + strb r0, [r1, 0x5] +_08112088: + ldr r1, _081120AC @ =gMain + ldr r2, _081120B0 @ =0x0000043c + adds r1, r2 +_0811208E: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _081120D6 + .align 2, 0 +_08112098: .4byte gUnknown_02024E8C +_0811209C: .4byte gDummySpriteAffineAnimTable +_081120A0: .4byte 0x02014800 +_081120A4: .4byte gSprites +_081120A8: .4byte nullsub_37 +_081120AC: .4byte gMain +_081120B0: .4byte 0x0000043c +_081120B4: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _081120E0 @ =sub_8112290 + bl SetMainCallback2 + movs r1, 0x80 + lsls r1, 19 + movs r2, 0x9A + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] +_081120D6: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081120E0: .4byte sub_8112290 + thumb_func_end sub_8111E80 + + thumb_func_start sub_81120E4 +sub_81120E4: @ 81120E4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + str r0, [sp, 0x1C] + adds r5, r1, 0 + adds r4, r2, 0 + mov r10, r3 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 24 + lsrs r4, 24 + mov r0, r10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, [sp, 0x1C] + movs r1, 0x2 + add r2, sp, 0x8 + bl GetMonData + ldr r0, _08112234 @ =gStringVar1 + add r1, sp, 0x8 + bl StringCopy10 + ldr r0, _08112238 @ =gStringVar2 + movs r1, 0xB + muls r1, r5 + ldr r2, _0811223C @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldr r1, _08112240 @ =gAffineAnimsDisabled + movs r0, 0x1 + strb r0, [r1] + ldr r0, [sp, 0x1C] + movs r1, 0xB + bl GetMonData + mov r8, r0 + mov r1, r8 + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + ldr r0, [sp, 0x1C] + movs r1, 0 + bl GetMonData + adds r6, r0, 0 + ldr r0, [sp, 0x1C] + movs r1, 0x1 + bl GetMonData + adds r7, r0, 0 + ldr r2, _08112244 @ =0x02014800 + mov r9, r2 + strb r4, [r2] + lsls r0, r5, 3 + ldr r1, _08112248 @ =gMonFrontPicTable + adds r0, r1 + ldr r1, _0811224C @ =gMonFrontPicCoords + lsls r2, r5, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _08112250 @ =gUnknown_081FAF4C + ldr r4, [r4, 0x4] + str r4, [sp] + str r5, [sp, 0x4] + bl DecompressPicFromTable_2 + adds r0, r5, 0 + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_80409C8 + ldr r0, [r0] + movs r1, 0x90 + lsls r1, 1 + movs r2, 0x20 + bl LoadCompressedPalette + adds r0, r5, 0 + movs r1, 0x1 + bl GetMonSpriteTemplate_803C56C + ldr r0, _08112254 @ =gUnknown_02024E8C + ldr r1, _08112258 @ =gDummySpriteAffineAnimTable + str r1, [r0, 0x10] + movs r1, 0x78 + movs r2, 0x40 + movs r3, 0x1E + bl CreateSprite + lsls r1, r0, 24 + lsrs r2, r1, 24 + mov r1, r9 + strb r0, [r1, 0x1] + ldr r3, _0811225C @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x1C + adds r0, r1, r0 + ldr r2, _08112260 @ =nullsub_37 + str r2, [r0] + adds r1, r3 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + movs r2, 0x20 + orrs r0, r2 + strb r0, [r1, 0x5] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + bl sub_8149954 + ldr r0, _08112264 @ =sub_8112FE8 + movs r1, 0 + bl CreateTask + lsls r1, r0, 24 + lsrs r2, r1, 24 + mov r1, r9 + strb r0, [r1, 0x2] + ldr r1, _08112268 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + strh r2, [r0, 0x8] + mov r1, r8 + strh r1, [r0, 0xE] + strh r5, [r0, 0x10] + mov r2, sp + ldrh r2, [r2, 0x1C] + strh r2, [r0, 0xA] + ldr r1, [sp, 0x1C] + lsrs r1, 16 + str r1, [sp, 0x20] + strh r1, [r0, 0xC] + movs r1, 0x1 + strh r1, [r0, 0x14] + movs r1, 0 + strh r1, [r0, 0x1E] + mov r2, r10 + strh r2, [r0, 0x20] + ldr r0, _0811226C @ =sub_8112290 + bl SetMainCallback2 + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08112234: .4byte gStringVar1 +_08112238: .4byte gStringVar2 +_0811223C: .4byte gSpeciesNames +_08112240: .4byte gAffineAnimsDisabled +_08112244: .4byte 0x02014800 +_08112248: .4byte gMonFrontPicTable +_0811224C: .4byte gMonFrontPicCoords +_08112250: .4byte gUnknown_081FAF4C +_08112254: .4byte gUnknown_02024E8C +_08112258: .4byte gDummySpriteAffineAnimTable +_0811225C: .4byte gSprites +_08112260: .4byte nullsub_37 +_08112264: .4byte sub_8112FE8 +_08112268: .4byte gTasks +_0811226C: .4byte sub_8112290 + thumb_func_end sub_81120E4 + + thumb_func_start sub_8112270 +sub_8112270: @ 8112270 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + ldr r0, _0811228C @ =gUnknown_03004210 + bl sub_800374C + bl UpdatePaletteFade + bl RunTasks + pop {r0} + bx r0 + .align 2, 0 +_0811228C: .4byte gUnknown_03004210 + thumb_func_end sub_8112270 + + thumb_func_start sub_8112290 +sub_8112290: @ 8112290 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + ldr r0, _081122B0 @ =gUnknown_03004828 + ldr r0, [r0] + adds r0, 0x4 + bl sub_80035AC + bl UpdatePaletteFade + bl RunTasks + pop {r0} + bx r0 + .align 2, 0 +_081122B0: .4byte gUnknown_03004828 + thumb_func_end sub_8112290 + + thumb_func_start sub_81122B4 +sub_81122B4: @ 81122B4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r10, r1 + lsls r0, 16 + lsrs r7, r0, 16 + movs r0, 0 + str r0, [sp] + ldr r0, _081123F4 @ =gEvolutionTable + mov r8, r0 + lsls r1, r7, 2 + mov r9, r1 + adds r0, r1, r7 + lsls r4, r0, 3 + mov r0, r8 + adds r6, r4, r0 + ldrh r0, [r6] + cmp r0, 0xD + beq _081122E2 + b _081123E2 +_081122E2: + ldr r1, _081123F8 @ =gPlayerPartyCount + ldrb r0, [r1] + cmp r0, 0x5 + bhi _081123E2 + adds r1, r0, 0 + movs r0, 0x64 + muls r1, r0 + ldr r0, _081123FC @ =gPlayerParty + adds r5, r1, r0 + adds r0, r5, 0 + mov r1, r10 + movs r2, 0x64 + bl CopyMon + mov r1, r8 + adds r2, r1, r4 + adds r2, 0xC + adds r0, r5, 0 + movs r1, 0xB + bl SetMonData + ldrh r1, [r6, 0xC] + movs r0, 0xB + adds r2, r1, 0 + muls r2, r0 + ldr r0, _08112400 @ =gSpeciesNames + adds r2, r0 + adds r0, r5, 0 + movs r1, 0x2 + bl SetMonData + adds r0, r5, 0 + movs r1, 0xC + mov r2, sp + bl SetMonData + adds r0, r5, 0 + movs r1, 0x8 + mov r2, sp + bl SetMonData + adds r0, r5, 0 + movs r1, 0xA + mov r2, sp + bl SetMonData + movs r4, 0x32 + mov r6, r9 +_08112342: + adds r0, r5, 0 + adds r1, r4, 0 + mov r2, sp + bl SetMonData + adds r4, 0x1 + cmp r4, 0x36 + ble _08112342 + movs r4, 0x43 +_08112354: + adds r0, r5, 0 + adds r1, r4, 0 + mov r2, sp + bl SetMonData + adds r4, 0x1 + cmp r4, 0x4F + ble _08112354 + adds r0, r5, 0 + movs r1, 0x37 + mov r2, sp + bl SetMonData + movs r0, 0xFF + str r0, [sp] + adds r0, r5, 0 + movs r1, 0x40 + mov r2, sp + bl SetMonData + adds r0, r5, 0 + bl CalculateMonStats + bl CalculatePlayerPartyCount + ldr r0, _081123F4 @ =gEvolutionTable + adds r4, r6, r7 + lsls r4, 3 + adds r4, r0 + ldrh r0, [r4, 0xC] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2 + bl sub_8090D90 + ldrh r0, [r4, 0xC] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl sub_8090D90 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + ldr r1, _08112404 @ =0x0000012f + cmp r0, r1 + bne _081123E2 + adds r0, r5, 0 + movs r1, 0x3 + bl GetMonData + cmp r0, 0x1 + bne _081123E2 + mov r0, r10 + movs r1, 0xB + bl GetMonData + movs r1, 0x97 + lsls r1, 1 + cmp r0, r1 + bne _081123E2 + ldr r2, _08112408 @ =gUnknown_083F868C + adds r0, r5, 0 + movs r1, 0x2 + bl SetMonData +_081123E2: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081123F4: .4byte gEvolutionTable +_081123F8: .4byte gPlayerPartyCount +_081123FC: .4byte gPlayerParty +_08112400: .4byte gSpeciesNames +_08112404: .4byte 0x0000012f +_08112408: .4byte gUnknown_083F868C + thumb_func_end sub_81122B4 + + thumb_func_start sub_811240C +sub_811240C: @ 811240C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x18 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, _08112490 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r3, r0, r2 + movs r1, 0xA + ldrsh r0, [r3, r1] + mov r9, r0 + movs r1, 0xC + ldrsh r0, [r3, r1] + lsls r0, 16 + mov r1, r9 + orrs r1, r0 + mov r9, r1 + ldr r0, _08112494 @ =gMain + ldrh r1, [r0, 0x2C] + adds r6, r2, 0 + adds r4, r0, 0 + cmp r1, 0x2 + bne _0811246E + movs r2, 0x8 + ldrsh r0, [r3, r2] + cmp r0, 0x8 + bne _0811246E + ldrh r1, [r3, 0x12] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0811246E + movs r0, 0x10 + strh r0, [r3, 0x8] + ldr r0, _08112498 @ =gUnknown_02024D1E + ldrb r1, [r0, 0x2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r1, r0, r6 + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _0811246E + strh r2, [r1, 0x18] +_0811246E: + lsls r1, r7, 2 + adds r0, r1, r7 + lsls r0, 3 + adds r0, r6 + movs r3, 0x8 + ldrsh r0, [r0, r3] + mov r8, r1 + cmp r0, 0x15 + bls _08112484 + bl _08112FD0 +_08112484: + lsls r0, 2 + ldr r1, _0811249C @ =_081124A0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08112490: .4byte gTasks +_08112494: .4byte gMain +_08112498: .4byte gUnknown_02024D1E +_0811249C: .4byte _081124A0 + .align 2, 0 +_081124A0: + .4byte _081124F8 + .4byte _0811253C + .4byte _08112588 + .4byte _08112594 + .4byte _081125BC + .4byte _081125FC + .4byte _08112630 + .4byte _0811266C + .4byte _081126A0 + .4byte _081126E0 + .4byte _081126FC + .4byte _08112728 + .4byte _08112754 + .4byte _081127A0 + .4byte _0811284C + .4byte _081128E4 + .4byte _08112934 + .4byte _08112974 + .4byte _081129A0 + .4byte _081129E8 + .4byte _08112A4C + .4byte _08112A88 +_081124F8: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r2, _08112530 @ =gSprites + ldr r0, _08112534 @ =0x02014800 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldr r0, _08112538 @ =gTasks + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + b _08112A2E + .align 2, 0 +_08112530: .4byte gSprites +_08112534: .4byte 0x02014800 +_08112538: .4byte gTasks +_0811253C: + ldr r0, _08112574 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0811254C + bl _08112FD0 +_0811254C: + ldr r4, _08112578 @ =gStringVar4 + ldr r1, _0811257C @ =gUnknown_08400C4A + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _08112580 @ =gUnknown_03004210 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r0, _08112584 @ =gTasks + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + b _08112A2E + .align 2, 0 +_08112574: .4byte gPaletteFade +_08112578: .4byte gStringVar4 +_0811257C: .4byte gUnknown_08400C4A +_08112580: .4byte gUnknown_03004210 +_08112584: .4byte gTasks +_08112588: + ldr r0, _08112590 @ =gUnknown_03004210 + ldrh r0, [r0, 0x16] + b _0811297C + .align 2, 0 +_08112590: .4byte gUnknown_03004210 +_08112594: + bl IsCryFinished + lsls r0, 24 + cmp r0, 0 + bne _081125A2 + bl _08112FD0 +_081125A2: + movs r0, 0xBC + lsls r0, 1 + bl PlaySE + ldr r0, _081125B8 @ =gTasks + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + b _08112A2E + .align 2, 0 +_081125B8: .4byte gTasks +_081125BC: + bl IsSEPlaying + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _081125CC + bl _08112FD0 +_081125CC: + ldr r0, _081125F4 @ =0x00000179 + bl PlayNewMapMusic + ldr r0, _081125F8 @ =gTasks + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + str r4, [sp] + movs r0, 0x1C + movs r1, 0x4 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + bl _08112FD0 + .align 2, 0 +_081125F4: .4byte 0x00000179 +_081125F8: .4byte gTasks +_081125FC: + ldr r0, _08112624 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0811260C + bl _08112FD0 +_0811260C: + movs r0, 0x11 + bl sub_8149970 + ldr r1, _08112628 @ =gUnknown_02024D1E + strb r0, [r1, 0x2] + ldr r0, _0811262C @ =gTasks + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + b _08112A2E + .align 2, 0 +_08112624: .4byte gPaletteFade +_08112628: .4byte gUnknown_02024D1E +_0811262C: .4byte gTasks +_08112630: + ldr r4, _08112664 @ =gUnknown_02024D1E + ldrb r0, [r4, 0x2] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r6 + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _08112646 + bl _08112FD0 +_08112646: + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r6 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + ldr r1, _08112668 @ =0x02014800 + movs r0, 0x1 + strb r0, [r1, 0x3] + bl sub_8149A90 + strb r0, [r4, 0x2] + bl _08112FD0 + .align 2, 0 +_08112664: .4byte gUnknown_02024D1E +_08112668: .4byte 0x02014800 +_0811266C: + ldr r4, _08112698 @ =gUnknown_02024D1E + ldrb r0, [r4, 0x2] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r6 + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _08112682 + bl _08112FD0 +_08112682: + ldr r1, _0811269C @ =0x02014800 + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + bl sub_8149E7C + strb r0, [r4, 0x2] + mov r0, r8 + adds r1, r0, r7 + lsls r1, 3 + adds r1, r6 + b _08112A2E + .align 2, 0 +_08112698: .4byte gUnknown_02024D1E +_0811269C: .4byte 0x02014800 +_081126A0: + ldr r1, _081126D8 @ =0x02014800 + ldrb r0, [r1, 0x3] + subs r0, 0x1 + strb r0, [r1, 0x3] + lsls r0, 24 + cmp r0, 0 + beq _081126B2 + bl _08112FD0 +_081126B2: + movs r0, 0x3 + strb r0, [r1, 0x3] + ldr r0, _081126DC @ =gUnknown_02024D1E + ldrb r1, [r0, 0x2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _081126CC + bl _08112FD0 +_081126CC: + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r6 + b _08112A2E + .align 2, 0 +_081126D8: .4byte 0x02014800 +_081126DC: .4byte gUnknown_02024D1E +_081126E0: + bl sub_8149B44 + ldr r1, _081126F4 @ =gUnknown_02024D1E + strb r0, [r1, 0x2] + ldr r0, _081126F8 @ =gTasks + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + b _08112A2E + .align 2, 0 +_081126F4: .4byte gUnknown_02024D1E +_081126F8: .4byte gTasks +_081126FC: + ldr r5, _08112724 @ =gUnknown_02024D1E + ldrb r0, [r5, 0x2] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r6 + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _08112712 + bl _08112FD0 +_08112712: + mov r0, r8 + adds r4, r0, r7 + lsls r4, 3 + adds r4, r6 + ldrh r0, [r4, 0x10] + bl sub_8149C20 + strb r0, [r5, 0x2] + b _08112992 + .align 2, 0 +_08112724: .4byte gUnknown_02024D1E +_08112728: + ldr r0, _08112750 @ =gUnknown_02024D1E + ldrb r1, [r0, 0x2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _0811273E + bl _08112FD0 +_0811273E: + movs r0, 0x21 + bl PlaySE + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r6 + b _08112A2E + .align 2, 0 +_08112750: .4byte gUnknown_02024D1E +_08112754: + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + bne _08112762 + bl _08112FD0 +_08112762: + bl m4aMPlayAllStop + ldr r0, _08112794 @ =gTasks + mov r3, r8 + adds r4, r3, r7 + lsls r4, 3 + adds r4, r0 + ldrh r0, [r4, 0x10] + movs r1, 0 + bl PlayCry1 + ldr r0, _08112798 @ =gPlttBufferUnfaded + 0x40 + ldr r1, _0811279C @ =0x02009000 + movs r2, 0x60 + bl memcpy + movs r0, 0 + str r0, [sp] + movs r0, 0x1C + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _08112992 + .align 2, 0 +_08112794: .4byte gTasks +_08112798: .4byte gPlttBufferUnfaded + 0x40 +_0811279C: .4byte 0x02009000 +_081127A0: + bl IsCryFinished + lsls r0, 24 + cmp r0, 0 + bne _081127AE + bl _08112FD0 +_081127AE: + ldr r0, _08112834 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081127BE + bl _08112FD0 +_081127BE: + ldr r4, _08112838 @ =gStringVar4 + ldr r1, _0811283C @ =gUnknown_08400C60 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _08112840 @ =gUnknown_03004210 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r0, _08112844 @ =0x00000173 + bl PlayBGM + ldr r2, _08112848 @ =gTasks + mov r0, r8 + adds r1, r0, r7 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + adds r2, r1 + adds r2, 0x10 + mov r0, r9 + movs r1, 0xB + bl SetMonData + mov r0, r9 + bl CalculateMonStats + ldrh r1, [r4, 0xE] + ldrh r2, [r4, 0x10] + mov r0, r9 + bl sub_803FB68 + ldrh r0, [r4, 0x10] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2 + bl sub_8090D90 + ldrh r0, [r4, 0x10] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl sub_8090D90 + movs r0, 0xE + bl sav12_xor_increment + b _08112FD0 + .align 2, 0 +_08112834: .4byte gPaletteFade +_08112838: .4byte gStringVar4 +_0811283C: .4byte gUnknown_08400C60 +_08112840: .4byte gUnknown_03004210 +_08112844: .4byte 0x00000173 +_08112848: .4byte gTasks +_0811284C: + ldr r0, _081128A4 @ =gUnknown_03004210 + ldrh r0, [r0, 0x16] + cmp r0, 0 + beq _08112856 + b _08112FD0 +_08112856: + mov r1, r8 + adds r0, r1, r7 + lsls r0, 3 + adds r5, r0, r6 + ldrb r1, [r5, 0x14] + mov r0, r9 + bl sub_803B7C8 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0 + beq _081128C4 + movs r2, 0x1E + ldrsh r4, [r5, r2] + cmp r4, 0 + bne _081128C4 + bl sub_8053E90 + ldrh r1, [r5, 0x12] + movs r0, 0x80 + orrs r0, r1 + strh r0, [r5, 0x12] + strh r4, [r5, 0x14] + strh r4, [r5, 0x18] + mov r0, r9 + movs r1, 0x2 + add r2, sp, 0x4 + bl GetMonData + ldr r0, _081128A8 @ =gUnknown_030041C0 + add r1, sp, 0x4 + bl StringCopy10 + ldr r0, _081128AC @ =0x0000ffff + cmp r6, r0 + bne _081128B0 + movs r0, 0x15 + strh r0, [r5, 0x8] + b _08112FD0 + .align 2, 0 +_081128A4: .4byte gUnknown_03004210 +_081128A8: .4byte gUnknown_030041C0 +_081128AC: .4byte 0x0000ffff +_081128B0: + ldr r0, _081128C0 @ =0x0000fffe + cmp r6, r0 + bne _081128B8 + b _08112FD0 +_081128B8: + movs r0, 0x13 + strh r0, [r5, 0x8] + b _08112FD0 + .align 2, 0 +_081128C0: .4byte 0x0000fffe +_081128C4: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _081128E0 @ =gTasks + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + b _08112A2E + .align 2, 0 +_081128E0: .4byte gTasks +_081128E4: + ldr r0, _0811292C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r2, 0x80 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _081128F4 + b _08112FD0 +_081128F4: + mov r1, r8 + adds r0, r1, r7 + lsls r0, 3 + adds r4, r0, r6 + ldrh r1, [r4, 0x12] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _0811290A + bl sub_8053E90 +_0811290A: + movs r2, 0x1E + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _0811291A + ldrh r0, [r4, 0xE] + mov r1, r9 + bl sub_81122B4 +_0811291A: + adds r0, r7, 0 + bl DestroyTask + ldr r0, _08112930 @ =gUnknown_03005E94 + ldr r0, [r0] + bl SetMainCallback2 + b _08112FD0 + .align 2, 0 +_0811292C: .4byte gPaletteFade +_08112930: .4byte gUnknown_03005E94 +_08112934: + ldr r0, _08112968 @ =gUnknown_02024D1E + ldrb r1, [r0, 0x2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _08112948 + b _08112FD0 +_08112948: + bl m4aMPlayAllStop + ldr r0, _0811296C @ =0x0006001c + ldr r1, _08112970 @ =0x00007fff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r6 + b _08112A2E + .align 2, 0 +_08112968: .4byte gUnknown_02024D1E +_0811296C: .4byte 0x0006001c +_08112970: .4byte 0x00007fff +_08112974: + ldr r0, _0811299C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 +_0811297C: + cmp r0, 0 + beq _08112982 + b _08112FD0 +_08112982: + mov r0, r8 + adds r4, r0, r7 + lsls r4, 3 + adds r4, r6 + ldrh r0, [r4, 0xE] + movs r1, 0 + bl PlayCry1 +_08112992: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _08112FD0 + .align 2, 0 +_0811299C: .4byte gPaletteFade +_081129A0: + bl IsCryFinished + lsls r0, 24 + cmp r0, 0 + bne _081129AC + b _08112FD0 +_081129AC: + ldr r4, _081129D8 @ =gStringVar4 + ldr r1, _081129DC @ =gUnknown_08400C8D + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _081129E0 @ =gUnknown_03004210 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r1, _081129E4 @ =gTasks + mov r2, r8 + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0, 0x1E] + b _08112F9A + .align 2, 0 +_081129D8: .4byte gStringVar4 +_081129DC: .4byte gUnknown_08400C8D +_081129E0: .4byte gUnknown_03004210 +_081129E4: .4byte gTasks +_081129E8: + ldr r4, _08112A38 @ =gUnknown_03004210 + ldrh r0, [r4, 0x16] + cmp r0, 0 + beq _081129F2 + b _08112FD0 +_081129F2: + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _081129FE + b _08112FD0 +_081129FE: + bl sub_8024CEC + ldr r0, _08112A3C @ =0x0000016f + bl PlayFanfare + ldr r0, _08112A40 @ =gUnknown_08400F8C + ldr r0, [r0, 0xC] + bl get_battle_strings_ + ldr r1, _08112A44 @ =gUnknown_020238CC + movs r0, 0xF + str r0, [sp] + adds r0, r4, 0 + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r0, _08112A48 @ =gTasks + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + movs r0, 0x40 + strh r0, [r1, 0x14] +_08112A2E: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _08112FD0 + .align 2, 0 +_08112A38: .4byte gUnknown_03004210 +_08112A3C: .4byte 0x0000016f +_08112A40: .4byte gUnknown_08400F8C +_08112A44: .4byte gUnknown_020238CC +_08112A48: .4byte gTasks +_08112A4C: + ldr r0, _08112A80 @ =gUnknown_03004210 + ldrh r0, [r0, 0x16] + cmp r0, 0 + beq _08112A56 + b _08112FD0 +_08112A56: + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _08112A62 + b _08112FD0 +_08112A62: + ldr r0, _08112A84 @ =gTasks + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x14] + subs r0, 0x1 + strh r0, [r1, 0x14] + lsls r0, 16 + cmp r0, 0 + beq _08112A7A + b _08112FD0 +_08112A7A: + movs r0, 0xE + strh r0, [r1, 0x8] + b _08112FD0 + .align 2, 0 +_08112A80: .4byte gUnknown_03004210 +_08112A84: .4byte gTasks +_08112A88: + mov r3, r8 + adds r0, r3, r7 + lsls r0, 3 + adds r0, r6 + movs r1, 0x18 + ldrsh r0, [r0, r1] + cmp r0, 0xB + bls _08112A9A + b _08112FD0 +_08112A9A: + lsls r0, 2 + ldr r1, _08112AA4 @ =_08112AA8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08112AA4: .4byte _08112AA8 + .align 2, 0 +_08112AA8: + .4byte _08112AD8 + .4byte _08112B2C + .4byte _08112B7C + .4byte _08112BC0 + .4byte _08112C0C + .4byte _08112D3C + .4byte _08112D8C + .4byte _08112E98 + .4byte _08112EE8 + .4byte _08112F38 + .4byte _08112F78 + .4byte _08112FB0 +_08112AD8: + ldr r4, _08112B1C @ =gUnknown_03004210 + ldrh r0, [r4, 0x16] + cmp r0, 0 + beq _08112AE2 + b _08112FD0 +_08112AE2: + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _08112AEE + b _08112FD0 +_08112AEE: + bl sub_8024CEC + ldr r0, _08112B20 @ =gUnknown_08400F8C + ldr r0, [r0, 0x10] + bl get_battle_strings_ + ldr r1, _08112B24 @ =gUnknown_020238CC + movs r0, 0xF + str r0, [sp] + adds r0, r4, 0 + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r0, _08112B28 @ =gTasks + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x18] + adds r0, 0x1 + b _08112FCE + .align 2, 0 +_08112B1C: .4byte gUnknown_03004210 +_08112B20: .4byte gUnknown_08400F8C +_08112B24: .4byte gUnknown_020238CC +_08112B28: .4byte gTasks +_08112B2C: + ldr r4, _08112B6C @ =gUnknown_03004210 + ldrh r0, [r4, 0x16] + cmp r0, 0 + beq _08112B36 + b _08112FD0 +_08112B36: + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _08112B42 + b _08112FD0 +_08112B42: + ldr r0, _08112B70 @ =gUnknown_08400F8C + ldr r0, [r0, 0x14] + bl get_battle_strings_ + ldr r1, _08112B74 @ =gUnknown_020238CC + movs r0, 0xF + str r0, [sp] + adds r0, r4, 0 + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r0, _08112B78 @ =gTasks + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x18] + adds r0, 0x1 + b _08112FCE + .align 2, 0 +_08112B6C: .4byte gUnknown_03004210 +_08112B70: .4byte gUnknown_08400F8C +_08112B74: .4byte gUnknown_020238CC +_08112B78: .4byte gTasks +_08112B7C: + ldr r4, _08112BF8 @ =gUnknown_03004210 + ldrh r0, [r4, 0x16] + cmp r0, 0 + beq _08112B86 + b _08112FD0 +_08112B86: + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + bne _08112BC0 + ldr r0, _08112BFC @ =gUnknown_08400F8C + ldr r0, [r0, 0x18] + bl get_battle_strings_ + ldr r1, _08112C00 @ =gUnknown_020238CC + movs r0, 0xF + str r0, [sp] + adds r0, r4, 0 + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r0, _08112C04 @ =gTasks + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + movs r0, 0x5 + strh r0, [r1, 0x1A] + movs r0, 0x9 + strh r0, [r1, 0x1C] + ldrh r0, [r1, 0x18] + adds r0, 0x1 + strh r0, [r1, 0x18] +_08112BC0: + ldr r0, _08112BF8 @ =gUnknown_03004210 + ldrh r0, [r0, 0x16] + cmp r0, 0 + beq _08112BCA + b _08112FD0 +_08112BCA: + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _08112BD6 + b _08112FD0 +_08112BD6: + bl sub_8023A80 + ldr r0, _08112C04 @ =gTasks + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x18] + adds r0, 0x1 + movs r2, 0 + strh r0, [r1, 0x18] + ldr r0, _08112C08 @ =gUnknown_02024D1E + strb r2, [r0, 0x1] + bl sub_802BC6C + b _08112FD0 + .align 2, 0 +_08112BF8: .4byte gUnknown_03004210 +_08112BFC: .4byte gUnknown_08400F8C +_08112C00: .4byte gUnknown_020238CC +_08112C04: .4byte gTasks +_08112C08: .4byte gUnknown_02024D1E +_08112C0C: + ldr r0, _08112CA4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08112C32 + ldr r4, _08112CA8 @ =gUnknown_02024D1E + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _08112C32 + movs r0, 0x5 + bl PlaySE + bl nullsub_6 + movs r0, 0 + strb r0, [r4, 0x1] + bl sub_802BC6C +_08112C32: + ldr r0, _08112CA4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08112C58 + ldr r4, _08112CA8 @ =gUnknown_02024D1E + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _08112C58 + movs r0, 0x5 + bl PlaySE + bl nullsub_6 + movs r0, 0x1 + strb r0, [r4, 0x1] + bl sub_802BC6C +_08112C58: + ldr r0, _08112CA4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08112CE2 + bl sub_8023AD8 + ldr r0, _08112CAC @ =gUnknown_08400F8C + movs r1, 0x92 + lsls r1, 3 + adds r0, r1 + ldr r0, [r0] + bl get_battle_strings_ + ldr r0, _08112CB0 @ =gUnknown_03004210 + ldr r1, _08112CB4 @ =gUnknown_020238CC + movs r2, 0xF + str r2, [sp] + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + movs r0, 0x5 + bl PlaySE + ldr r0, _08112CA8 @ =gUnknown_02024D1E + ldrb r2, [r0, 0x1] + cmp r2, 0 + beq _08112CBC + ldr r0, _08112CB8 @ =gTasks + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x1C] + strh r0, [r1, 0x18] + b _08112CE2 + .align 2, 0 +_08112CA4: .4byte gMain +_08112CA8: .4byte gUnknown_02024D1E +_08112CAC: .4byte gUnknown_08400F8C +_08112CB0: .4byte gUnknown_03004210 +_08112CB4: .4byte gUnknown_020238CC +_08112CB8: .4byte gTasks +_08112CBC: + ldr r0, _08112D28 @ =gTasks + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x1A] + strh r0, [r1, 0x18] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _08112CE2 + movs r0, 0x1 + negs r0, r0 + str r2, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade +_08112CE2: + ldr r0, _08112D2C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08112CF0 + b _08112FD0 +_08112CF0: + bl sub_8023AD8 + ldr r0, _08112D30 @ =gUnknown_08400F8C + movs r1, 0x92 + lsls r1, 3 + adds r0, r1 + ldr r0, [r0] + bl get_battle_strings_ + ldr r0, _08112D34 @ =gUnknown_03004210 + ldr r1, _08112D38 @ =gUnknown_020238CC + movs r2, 0xF + str r2, [sp] + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + movs r0, 0x5 + bl PlaySE + ldr r1, _08112D28 @ =gTasks + mov r2, r8 + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x1C] + strh r1, [r0, 0x18] + b _08112FD0 + .align 2, 0 +_08112D28: .4byte gTasks +_08112D2C: .4byte gMain +_08112D30: .4byte gUnknown_08400F8C +_08112D34: .4byte gUnknown_03004210 +_08112D38: .4byte gUnknown_020238CC +_08112D3C: + ldr r0, _08112D78 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08112D4A + b _08112FD0 +_08112D4A: + ldr r0, _08112D7C @ =gPlayerParty + mov r3, r8 + adds r5, r3, r7 + lsls r5, 3 + adds r5, r6 + ldrh r1, [r5, 0x20] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _08112D80 @ =gPlayerPartyCount + ldrb r2, [r2] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _08112D84 @ =sub_8111C90 + ldr r4, _08112D88 @ =word_2024E82 + ldrh r4, [r4] + str r4, [sp] + bl sub_809D9F0 + ldrh r0, [r5, 0x18] + adds r0, 0x1 + strh r0, [r5, 0x18] + b _08112FD0 + .align 2, 0 +_08112D78: .4byte gPaletteFade +_08112D7C: .4byte gPlayerParty +_08112D80: .4byte gPlayerPartyCount +_08112D84: .4byte sub_8111C90 +_08112D88: .4byte word_2024E82 +_08112D8C: + ldr r0, _08112DC0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08112D9A + b _08112FD0 +_08112D9A: + ldr r1, [r4, 0x4] + ldr r0, _08112DC4 @ =sub_8112270 + cmp r1, r0 + beq _08112DA4 + b _08112FD0 +_08112DA4: + bl sub_809FA30 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x4 + bne _08112DCC + ldr r0, _08112DC8 @ =gTasks + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + movs r0, 0x9 + b _08112FCE + .align 2, 0 +_08112DC0: .4byte gPaletteFade +_08112DC4: .4byte sub_8112270 +_08112DC8: .4byte gTasks +_08112DCC: + adds r1, r6, 0 + adds r1, 0xD + mov r0, r9 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl sub_8040A00 + cmp r0, 0 + beq _08112E24 + ldr r0, _08112E10 @ =gUnknown_08400F8C + ldr r3, _08112E14 @ =0x000004cc + adds r0, r3 + ldr r0, [r0] + bl get_battle_strings_ + ldr r0, _08112E18 @ =gUnknown_03004210 + ldr r1, _08112E1C @ =gUnknown_020238CC + movs r2, 0xF + str r2, [sp] + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r1, _08112E20 @ =gTasks + mov r2, r8 + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 + movs r1, 0xB + strh r1, [r0, 0x18] + b _08112FD0 + .align 2, 0 +_08112E10: .4byte gUnknown_08400F8C +_08112E14: .4byte 0x000004cc +_08112E18: .4byte gUnknown_03004210 +_08112E1C: .4byte gUnknown_020238CC +_08112E20: .4byte gTasks +_08112E24: + ldr r1, _08112E80 @ =gUnknown_03004290 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + strb r4, [r1, 0x2] + lsrs r0, r4, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + lsls r4, r6, 24 + lsrs r4, 24 + mov r0, r9 + adds r1, r4, 0 + bl RemoveMonPPBonus + ldr r0, _08112E84 @ =word_2024E82 + ldrh r1, [r0] + mov r0, r9 + adds r2, r4, 0 + bl SetMonMoveSlot + ldr r0, _08112E88 @ =gUnknown_08400F8C + movs r3, 0xCF + lsls r3, 2 + adds r0, r3 + ldr r0, [r0] + bl get_battle_strings_ + ldr r0, _08112E8C @ =gUnknown_03004210 + ldr r1, _08112E90 @ =gUnknown_020238CC + movs r2, 0xF + str r2, [sp] + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r0, _08112E94 @ =gTasks + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x18] + adds r0, 0x1 + b _08112FCE + .align 2, 0 +_08112E80: .4byte gUnknown_03004290 +_08112E84: .4byte word_2024E82 +_08112E88: .4byte gUnknown_08400F8C +_08112E8C: .4byte gUnknown_03004210 +_08112E90: .4byte gUnknown_020238CC +_08112E94: .4byte gTasks +_08112E98: + ldr r4, _08112ED8 @ =gUnknown_03004210 + ldrh r0, [r4, 0x16] + cmp r0, 0 + beq _08112EA2 + b _08112FD0 +_08112EA2: + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _08112EAE + b _08112FD0 +_08112EAE: + ldr r0, _08112EDC @ =gUnknown_08400F8C + ldr r0, [r0, 0x1C] + bl get_battle_strings_ + ldr r1, _08112EE0 @ =gUnknown_020238CC + movs r0, 0xF + str r0, [sp] + adds r0, r4, 0 + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r0, _08112EE4 @ =gTasks + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x18] + adds r0, 0x1 + b _08112FCE + .align 2, 0 +_08112ED8: .4byte gUnknown_03004210 +_08112EDC: .4byte gUnknown_08400F8C +_08112EE0: .4byte gUnknown_020238CC +_08112EE4: .4byte gTasks +_08112EE8: + ldr r4, _08112F28 @ =gUnknown_03004210 + ldrh r0, [r4, 0x16] + cmp r0, 0 + bne _08112FD0 + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + bne _08112FD0 + ldr r0, _08112F2C @ =gUnknown_08400F8C + movs r1, 0xD0 + lsls r1, 2 + adds r0, r1 + ldr r0, [r0] + bl get_battle_strings_ + ldr r1, _08112F30 @ =gUnknown_020238CC + movs r0, 0xF + str r0, [sp] + adds r0, r4, 0 + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r1, _08112F34 @ =gTasks + mov r2, r8 + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 + movs r1, 0x13 + strh r1, [r0, 0x8] + b _08112FD0 + .align 2, 0 +_08112F28: .4byte gUnknown_03004210 +_08112F2C: .4byte gUnknown_08400F8C +_08112F30: .4byte gUnknown_020238CC +_08112F34: .4byte gTasks +_08112F38: + ldr r0, _08112F68 @ =gUnknown_08400F8C + ldr r0, [r0, 0x20] + bl get_battle_strings_ + ldr r0, _08112F6C @ =gUnknown_03004210 + ldr r1, _08112F70 @ =gUnknown_020238CC + movs r2, 0xF + str r2, [sp] + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r1, _08112F74 @ =gTasks + mov r3, r8 + adds r0, r3, r7 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + movs r1, 0xA + strh r1, [r0, 0x1A] + strh r2, [r0, 0x1C] + movs r1, 0x3 + strh r1, [r0, 0x18] + b _08112FD0 + .align 2, 0 +_08112F68: .4byte gUnknown_08400F8C +_08112F6C: .4byte gUnknown_03004210 +_08112F70: .4byte gUnknown_020238CC +_08112F74: .4byte gTasks +_08112F78: + ldr r0, _08112FA0 @ =gUnknown_08400F8C + ldr r0, [r0, 0x24] + bl get_battle_strings_ + ldr r0, _08112FA4 @ =gUnknown_03004210 + ldr r1, _08112FA8 @ =gUnknown_020238CC + movs r2, 0xF + str r2, [sp] + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r1, _08112FAC @ =gTasks + mov r2, r8 + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 +_08112F9A: + movs r1, 0xE + strh r1, [r0, 0x8] + b _08112FD0 + .align 2, 0 +_08112FA0: .4byte gUnknown_08400F8C +_08112FA4: .4byte gUnknown_03004210 +_08112FA8: .4byte gUnknown_020238CC +_08112FAC: .4byte gTasks +_08112FB0: + ldr r0, _08112FE0 @ =gUnknown_03004210 + ldrh r0, [r0, 0x16] + cmp r0, 0 + bne _08112FD0 + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + bne _08112FD0 + ldr r0, _08112FE4 @ =gTasks + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + movs r0, 0x5 +_08112FCE: + strh r0, [r1, 0x18] +_08112FD0: + add sp, 0x18 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08112FE0: .4byte gUnknown_03004210 +_08112FE4: .4byte gTasks + thumb_func_end sub_811240C + + thumb_func_start sub_8112FE8 +sub_8112FE8: @ 8112FE8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x18 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, _0811302C @ =gTasks + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r2 + movs r3, 0xA + ldrsh r0, [r1, r3] + mov r8, r0 + movs r3, 0xC + ldrsh r0, [r1, r3] + lsls r0, 16 + mov r3, r8 + orrs r3, r0 + mov r8, r3 + movs r3, 0x8 + ldrsh r0, [r1, r3] + adds r6, r2, 0 + cmp r0, 0x11 + bls _08113020 + bl _08113B3A +_08113020: + lsls r0, 2 + ldr r1, _08113030 @ =_08113034 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811302C: .4byte gTasks +_08113030: .4byte _08113034 + .align 2, 0 +_08113034: + .4byte _0811307C + .4byte _081130B8 + .4byte _081130DC + .4byte _0811310C + .4byte _0811314C + .4byte _0811318C + .4byte _081131C8 + .4byte _081131F4 + .4byte _0811322C + .4byte _08113248 + .4byte _08113274 + .4byte _081132A8 + .4byte _081132F8 + .4byte _081133A8 + .4byte _0811346C + .4byte _08113490 + .4byte _081134F8 + .4byte _08113538 +_0811307C: + ldr r4, _081130A8 @ =gStringVar4 + ldr r1, _081130AC @ =gUnknown_08400C4A + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _081130B0 @ =gUnknown_03004828 + ldr r1, [r0] + adds r0, r1, 0x4 + adds r1, 0x34 + ldrb r2, [r1] + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x2 + bl sub_8002EB0 + ldr r1, _081130B4 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + b _08113298 + .align 2, 0 +_081130A8: .4byte gStringVar4 +_081130AC: .4byte gUnknown_08400C4A +_081130B0: .4byte gUnknown_03004828 +_081130B4: .4byte gTasks +_081130B8: + ldr r0, _081130D8 @ =gUnknown_03004828 + ldr r0, [r0] + ldrh r0, [r0, 0x1A] + cmp r0, 0 + beq _081130C6 + bl _08113B3A +_081130C6: + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r6 + ldrh r0, [r4, 0xE] + movs r1, 0 + bl PlayCry1 + b _081132E2 + .align 2, 0 +_081130D8: .4byte gUnknown_03004828 +_081130DC: + bl IsCryFinished + lsls r0, 24 + cmp r0, 0 + bne _081130EA + bl _08113B3A +_081130EA: + ldr r0, _08113104 @ =0x00000179 + bl m4aSongNumStop + movs r0, 0xBC + lsls r0, 1 + bl PlaySE + ldr r1, _08113108 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + b _08113298 + .align 2, 0 +_08113104: .4byte 0x00000179 +_08113108: .4byte gTasks +_0811310C: + bl IsSEPlaying + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _0811311C + bl _08113B3A +_0811311C: + ldr r0, _08113144 @ =0x00000179 + bl PlayBGM + ldr r1, _08113148 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + str r5, [sp] + movs r0, 0x1C + movs r1, 0x4 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + bl _08113B3A + .align 2, 0 +_08113144: .4byte 0x00000179 +_08113148: .4byte gTasks +_0811314C: + ldr r0, _08113180 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0811315C + bl _08113B3A +_0811315C: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0x9A + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0x11 + bl sub_8149970 + ldr r1, _08113184 @ =gUnknown_02024D1E + strb r0, [r1, 0x2] + ldr r1, _08113188 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + b _08113298 + .align 2, 0 +_08113180: .4byte gPaletteFade +_08113184: .4byte gUnknown_02024D1E +_08113188: .4byte gTasks +_0811318C: + ldr r4, _081131C0 @ =gUnknown_02024D1E + ldrb r0, [r4, 0x2] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r6 + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _081131A2 + bl _08113B3A +_081131A2: + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r6 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + ldr r1, _081131C4 @ =0x02014800 + movs r0, 0x1 + strb r0, [r1, 0x3] + bl sub_8149A90 + strb r0, [r4, 0x2] + bl _08113B3A + .align 2, 0 +_081131C0: .4byte gUnknown_02024D1E +_081131C4: .4byte 0x02014800 +_081131C8: + ldr r4, _081131EC @ =gUnknown_02024D1E + ldrb r0, [r4, 0x2] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r6 + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _081131DE + bl _08113B3A +_081131DE: + ldr r1, _081131F0 @ =0x02014800 + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + bl sub_8149E7C + strb r0, [r4, 0x2] + b _08113290 + .align 2, 0 +_081131EC: .4byte gUnknown_02024D1E +_081131F0: .4byte 0x02014800 +_081131F4: + ldr r1, _08113224 @ =0x02014800 + ldrb r0, [r1, 0x3] + subs r0, 0x1 + strb r0, [r1, 0x3] + lsls r0, 24 + cmp r0, 0 + beq _08113206 + bl _08113B3A +_08113206: + movs r0, 0x3 + strb r0, [r1, 0x3] + ldr r0, _08113228 @ =gUnknown_02024D1E + ldrb r1, [r0, 0x2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _08113220 + bl _08113B3A +_08113220: + b _08113290 + .align 2, 0 +_08113224: .4byte 0x02014800 +_08113228: .4byte gUnknown_02024D1E +_0811322C: + bl sub_8149B44 + ldr r1, _08113240 @ =gUnknown_02024D1E + strb r0, [r1, 0x2] + ldr r1, _08113244 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + b _08113298 + .align 2, 0 +_08113240: .4byte gUnknown_02024D1E +_08113244: .4byte gTasks +_08113248: + ldr r5, _08113270 @ =gUnknown_02024D1E + ldrb r0, [r5, 0x2] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r6 + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _0811325E + bl _08113B3A +_0811325E: + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r6 + ldrh r0, [r4, 0x10] + bl sub_8149D5C + strb r0, [r5, 0x2] + b _081132E2 + .align 2, 0 +_08113270: .4byte gUnknown_02024D1E +_08113274: + ldr r0, _081132A4 @ =gUnknown_02024D1E + ldrb r1, [r0, 0x2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _0811328A + bl _08113B3A +_0811328A: + movs r0, 0x21 + bl PlaySE +_08113290: + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r6 +_08113298: + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + bl _08113B3A + .align 2, 0 +_081132A4: .4byte gUnknown_02024D1E +_081132A8: + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + bne _081132B6 + bl _08113B3A +_081132B6: + ldr r0, _081132EC @ =gTasks + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r0 + ldrh r0, [r4, 0x10] + movs r1, 0 + bl PlayCry1 + ldr r0, _081132F0 @ =gPlttBufferUnfaded + 0x40 + ldr r1, _081132F4 @ =0x02009000 + movs r2, 0x60 + bl memcpy + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_081132E2: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + bl _08113B3A + .align 2, 0 +_081132EC: .4byte gTasks +_081132F0: .4byte gPlttBufferUnfaded + 0x40 +_081132F4: .4byte 0x02009000 +_081132F8: + bl IsCryFinished + lsls r0, 24 + cmp r0, 0 + bne _08113306 + bl _08113B3A +_08113306: + ldr r0, _08113390 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08113316 + bl _08113B3A +_08113316: + ldr r4, _08113394 @ =gStringVar4 + ldr r1, _08113398 @ =gUnknown_08400C60 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _0811339C @ =gUnknown_03004828 + ldr r1, [r0] + adds r0, r1, 0x4 + adds r1, 0x34 + ldrb r2, [r1] + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x2 + bl sub_8002EB0 + ldr r0, _081133A0 @ =0x00000173 + bl PlayFanfare + ldr r2, _081133A4 @ =gTasks + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + adds r2, r1 + adds r2, 0x10 + mov r0, r8 + movs r1, 0xB + bl SetMonData + mov r0, r8 + bl CalculateMonStats + ldrh r1, [r4, 0xE] + ldrh r2, [r4, 0x10] + mov r0, r8 + bl sub_803FB68 + ldrh r0, [r4, 0x10] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2 + bl sub_8090D90 + ldrh r0, [r4, 0x10] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl sub_8090D90 + movs r0, 0xE + bl sav12_xor_increment + b _08113B3A + .align 2, 0 +_08113390: .4byte gPaletteFade +_08113394: .4byte gStringVar4 +_08113398: .4byte gUnknown_08400C60 +_0811339C: .4byte gUnknown_03004828 +_081133A0: .4byte 0x00000173 +_081133A4: .4byte gTasks +_081133A8: + ldr r0, _08113410 @ =gUnknown_03004828 + ldr r0, [r0] + ldrh r0, [r0, 0x1A] + cmp r0, 0 + beq _081133B4 + b _08113B3A +_081133B4: + bl IsFanfareTaskInactive + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _081133C2 + b _08113B3A +_081133C2: + ldr r1, _08113414 @ =gTasks + lsls r4, r7, 2 + adds r0, r4, r7 + lsls r0, 3 + adds r5, r0, r1 + ldrb r1, [r5, 0x14] + mov r0, r8 + bl sub_803B7C8 + lsls r0, 16 + lsrs r6, r0, 16 + mov r9, r4 + cmp r6, 0 + beq _08113434 + movs r3, 0x1E + ldrsh r2, [r5, r3] + cmp r2, 0 + bne _08113434 + ldrh r1, [r5, 0x12] + movs r0, 0x80 + orrs r0, r1 + strh r0, [r5, 0x12] + strh r2, [r5, 0x14] + strh r2, [r5, 0x18] + mov r0, r8 + movs r1, 0x2 + add r2, sp, 0x4 + bl GetMonData + ldr r0, _08113418 @ =gUnknown_030041C0 + add r1, sp, 0x4 + bl StringCopy10 + ldr r0, _0811341C @ =0x0000ffff + cmp r6, r0 + bne _08113420 + movs r0, 0x11 + strh r0, [r5, 0x8] + b _08113B3A + .align 2, 0 +_08113410: .4byte gUnknown_03004828 +_08113414: .4byte gTasks +_08113418: .4byte gUnknown_030041C0 +_0811341C: .4byte 0x0000ffff +_08113420: + ldr r0, _08113430 @ =0x0000fffe + cmp r6, r0 + bne _08113428 + b _08113B3A +_08113428: + movs r0, 0xF + strh r0, [r5, 0x8] + b _08113B3A + .align 2, 0 +_08113430: .4byte 0x0000fffe +_08113434: + ldr r0, _0811345C @ =0x00000179 + bl PlayBGM + ldr r0, _08113460 @ =gUnknown_03004828 + ldr r2, [r0] + adds r0, r2, 0x4 + ldr r1, _08113464 @ =gOtherText_LinkStandby2 + adds r2, 0x34 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] + movs r3, 0x2 + bl sub_8002EB0 + ldr r0, _08113468 @ =gTasks + mov r2, r9 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + b _081134DC + .align 2, 0 +_0811345C: .4byte 0x00000179 +_08113460: .4byte gUnknown_03004828 +_08113464: .4byte gOtherText_LinkStandby2 +_08113468: .4byte gTasks +_0811346C: + ldr r0, _08113488 @ =gUnknown_03004828 + ldr r0, [r0] + ldrh r0, [r0, 0x1A] + cmp r0, 0 + beq _08113478 + b _08113B3A +_08113478: + adds r0, r7, 0 + bl DestroyTask + ldr r0, _0811348C @ =gUnknown_03005E94 + ldr r0, [r0] + bl SetMainCallback2 + b _08113B3A + .align 2, 0 +_08113488: .4byte gUnknown_03004828 +_0811348C: .4byte gUnknown_03005E94 +_08113490: + ldr r4, _081134E4 @ =gUnknown_03004828 + ldr r0, [r4] + ldrh r0, [r0, 0x1A] + cmp r0, 0 + beq _0811349C + b _08113B3A +_0811349C: + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _081134A8 + b _08113B3A +_081134A8: + bl sub_8024CEC + ldr r0, _081134E8 @ =0x0000016f + bl PlayFanfare + ldr r0, _081134EC @ =gUnknown_08400F8C + ldr r0, [r0, 0xC] + bl get_battle_strings_ + ldr r2, [r4] + adds r0, r2, 0x4 + ldr r1, _081134F0 @ =gUnknown_020238CC + adds r2, 0x34 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] + movs r3, 0x2 + bl sub_8002EB0 + ldr r0, _081134F4 @ =gTasks + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r0 + movs r0, 0x40 + strh r0, [r1, 0x14] +_081134DC: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _08113B3A + .align 2, 0 +_081134E4: .4byte gUnknown_03004828 +_081134E8: .4byte 0x0000016f +_081134EC: .4byte gUnknown_08400F8C +_081134F0: .4byte gUnknown_020238CC +_081134F4: .4byte gTasks +_081134F8: + ldr r0, _08113530 @ =gUnknown_03004828 + ldr r0, [r0] + ldrh r0, [r0, 0x1A] + cmp r0, 0 + beq _08113504 + b _08113B3A +_08113504: + bl IsFanfareTaskInactive + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08113512 + b _08113B3A +_08113512: + ldr r0, _08113534 @ =gTasks + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x14] + subs r0, 0x1 + strh r0, [r1, 0x14] + lsls r0, 16 + cmp r0, 0 + beq _0811352A + b _08113B3A +_0811352A: + movs r0, 0xD + strh r0, [r1, 0x8] + b _08113B3A + .align 2, 0 +_08113530: .4byte gUnknown_03004828 +_08113534: .4byte gTasks +_08113538: + lsls r1, r7, 2 + adds r0, r1, r7 + lsls r0, 3 + adds r0, r6 + movs r3, 0x18 + ldrsh r0, [r0, r3] + mov r9, r1 + cmp r0, 0xB + bls _0811354C + b _08113B3A +_0811354C: + lsls r0, 2 + ldr r1, _08113558 @ =_0811355C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08113558: .4byte _0811355C + .align 2, 0 +_0811355C: + .4byte _0811358C + .4byte _081135E4 + .4byte _08113638 + .4byte _08113682 + .4byte _0811371C + .4byte _0811387C + .4byte _081138CC + .4byte _081139E8 + .4byte _08113A3C + .4byte _08113A90 + .4byte _08113AD8 + .4byte _08113B18 +_0811358C: + ldr r4, _081135D4 @ =gUnknown_03004828 + ldr r0, [r4] + ldrh r0, [r0, 0x1A] + cmp r0, 0 + beq _08113598 + b _08113B3A +_08113598: + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _081135A4 + b _08113B3A +_081135A4: + bl sub_8024CEC + ldr r0, _081135D8 @ =gUnknown_08400F8C + ldr r0, [r0, 0x10] + bl get_battle_strings_ + ldr r2, [r4] + adds r0, r2, 0x4 + ldr r1, _081135DC @ =gUnknown_020238CC + adds r2, 0x34 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] + movs r3, 0x2 + bl sub_8002EB0 + ldr r0, _081135E0 @ =gTasks + mov r2, r9 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x18] + adds r0, 0x1 + b _08113B38 + .align 2, 0 +_081135D4: .4byte gUnknown_03004828 +_081135D8: .4byte gUnknown_08400F8C +_081135DC: .4byte gUnknown_020238CC +_081135E0: .4byte gTasks +_081135E4: + ldr r4, _08113628 @ =gUnknown_03004828 + ldr r0, [r4] + ldrh r0, [r0, 0x1A] + cmp r0, 0 + beq _081135F0 + b _08113B3A +_081135F0: + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _081135FC + b _08113B3A +_081135FC: + ldr r0, _0811362C @ =gUnknown_08400F8C + ldr r0, [r0, 0x14] + bl get_battle_strings_ + ldr r2, [r4] + adds r0, r2, 0x4 + ldr r1, _08113630 @ =gUnknown_020238CC + adds r2, 0x34 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] + movs r3, 0x2 + bl sub_8002EB0 + ldr r0, _08113634 @ =gTasks + mov r3, r9 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x18] + adds r0, 0x1 + b _08113B38 + .align 2, 0 +_08113628: .4byte gUnknown_03004828 +_0811362C: .4byte gUnknown_08400F8C +_08113630: .4byte gUnknown_020238CC +_08113634: .4byte gTasks +_08113638: + ldr r4, _081136FC @ =gUnknown_03004828 + ldr r0, [r4] + ldrh r0, [r0, 0x1A] + cmp r0, 0 + beq _08113644 + b _08113B3A +_08113644: + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + bne _08113682 + ldr r0, _08113700 @ =gUnknown_08400F8C + ldr r0, [r0, 0x18] + bl get_battle_strings_ + ldr r2, [r4] + adds r0, r2, 0x4 + ldr r1, _08113704 @ =gUnknown_020238CC + adds r2, 0x34 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] + movs r3, 0x2 + bl sub_8002EB0 + ldr r0, _08113708 @ =gTasks + mov r2, r9 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + movs r0, 0x5 + strh r0, [r1, 0x1A] + movs r0, 0x9 + strh r0, [r1, 0x1C] + ldrh r0, [r1, 0x18] + adds r0, 0x1 + strh r0, [r1, 0x18] +_08113682: + ldr r5, _081136FC @ =gUnknown_03004828 + ldr r0, [r5] + ldrh r0, [r0, 0x1A] + cmp r0, 0 + beq _0811368E + b _08113B3A +_0811368E: + bl IsSEPlaying + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + beq _0811369C + b _08113B3A +_0811369C: + ldr r0, [r5] + adds r0, 0x4 + movs r1, 0xD + str r1, [sp] + movs r1, 0x18 + movs r2, 0x8 + movs r3, 0x1D + bl DrawTextWindow + ldr r4, _0811370C @ =gUnknown_02024D1E + strb r6, [r4, 0x1] + ldr r2, [r5] + adds r0, r2, 0x4 + ldr r1, _08113710 @ =gOtherText_YesNoAndPlayer + adds r2, 0x34 + ldrb r2, [r2] + adds r2, 0x80 + movs r3, 0x9 + str r3, [sp] + movs r3, 0x19 + bl InitWindow + ldr r0, [r5] + adds r0, 0x4 + bl sub_8002F44 + ldr r1, _08113714 @ =0x0000ffff + ldr r3, _08113718 @ =0x00002d9f + movs r0, 0x20 + str r0, [sp] + movs r0, 0 + movs r2, 0xC + bl sub_814A5C0 + bl sub_81150D8 + ldr r0, _08113708 @ =gTasks + mov r3, r9 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x18] + adds r0, 0x1 + movs r2, 0 + strh r0, [r1, 0x18] + strb r2, [r4, 0x1] + b _08113B3A + .align 2, 0 +_081136FC: .4byte gUnknown_03004828 +_08113700: .4byte gUnknown_08400F8C +_08113704: .4byte gUnknown_020238CC +_08113708: .4byte gTasks +_0811370C: .4byte gUnknown_02024D1E +_08113710: .4byte gOtherText_YesNoAndPlayer +_08113714: .4byte 0x0000ffff +_08113718: .4byte 0x00002d9f +_0811371C: + ldr r0, _081137CC @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08113742 + ldr r4, _081137D0 @ =gUnknown_02024D1E + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _08113742 + movs r0, 0x5 + bl PlaySE + bl nullsub_24 + movs r0, 0 + strb r0, [r4, 0x1] + bl sub_81150D8 +_08113742: + ldr r0, _081137CC @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08113768 + ldr r4, _081137D0 @ =gUnknown_02024D1E + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _08113768 + movs r0, 0x5 + bl PlaySE + bl nullsub_24 + movs r0, 0x1 + strb r0, [r4, 0x1] + bl sub_81150D8 +_08113768: + ldr r0, _081137CC @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0811380A + ldr r4, _081137D4 @ =gUnknown_03004828 + ldr r0, [r4] + adds r0, 0x4 + movs r1, 0xD + str r1, [sp] + movs r1, 0x18 + movs r2, 0x8 + movs r3, 0x1D + bl ZeroFillWindowRect + bl sub_814A7FC + ldr r0, _081137D8 @ =gUnknown_08400F8C + movs r1, 0x92 + lsls r1, 3 + adds r0, r1 + ldr r0, [r0] + bl get_battle_strings_ + ldr r2, [r4] + adds r0, r2, 0x4 + ldr r1, _081137DC @ =gUnknown_020238CC + adds r2, 0x34 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] + movs r3, 0x2 + bl sub_8002EB0 + movs r0, 0x5 + bl PlaySE + ldr r0, _081137D0 @ =gUnknown_02024D1E + ldrb r2, [r0, 0x1] + cmp r2, 0 + beq _081137E4 + ldr r0, _081137E0 @ =gTasks + mov r2, r9 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x1C] + strh r0, [r1, 0x18] + b _0811380A + .align 2, 0 +_081137CC: .4byte gMain +_081137D0: .4byte gUnknown_02024D1E +_081137D4: .4byte gUnknown_03004828 +_081137D8: .4byte gUnknown_08400F8C +_081137DC: .4byte gUnknown_020238CC +_081137E0: .4byte gTasks +_081137E4: + ldr r0, _08113868 @ =gTasks + mov r3, r9 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x1A] + strh r0, [r1, 0x18] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _0811380A + movs r0, 0x1 + negs r0, r0 + str r2, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade +_0811380A: + ldr r0, _0811386C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08113818 + b _08113B3A +_08113818: + ldr r4, _08113870 @ =gUnknown_03004828 + ldr r0, [r4] + adds r0, 0x4 + movs r1, 0xD + str r1, [sp] + movs r1, 0x18 + movs r2, 0x8 + movs r3, 0x1D + bl ZeroFillWindowRect + bl sub_814A7FC + ldr r0, _08113874 @ =gUnknown_08400F8C + movs r1, 0x92 + lsls r1, 3 + adds r0, r1 + ldr r0, [r0] + bl get_battle_strings_ + ldr r2, [r4] + adds r0, r2, 0x4 + ldr r1, _08113878 @ =gUnknown_020238CC + adds r2, 0x34 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] + movs r3, 0x2 + bl sub_8002EB0 + movs r0, 0x5 + bl PlaySE + ldr r1, _08113868 @ =gTasks + mov r2, r9 + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x1C] + strh r1, [r0, 0x18] + b _08113B3A + .align 2, 0 +_08113868: .4byte gTasks +_0811386C: .4byte gMain +_08113870: .4byte gUnknown_03004828 +_08113874: .4byte gUnknown_08400F8C +_08113878: .4byte gUnknown_020238CC +_0811387C: + ldr r0, _081138B8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0811388A + b _08113B3A +_0811388A: + ldr r0, _081138BC @ =gPlayerParty + mov r3, r9 + adds r5, r3, r7 + lsls r5, 3 + adds r5, r6 + ldrh r1, [r5, 0x20] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _081138C0 @ =gPlayerPartyCount + ldrb r2, [r2] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _081138C4 @ =sub_8111E80 + ldr r4, _081138C8 @ =word_2024E82 + ldrh r4, [r4] + str r4, [sp] + bl sub_809D9F0 + ldrh r0, [r5, 0x18] + adds r0, 0x1 + strh r0, [r5, 0x18] + b _08113B3A + .align 2, 0 +_081138B8: .4byte gPaletteFade +_081138BC: .4byte gPlayerParty +_081138C0: .4byte gPlayerPartyCount +_081138C4: .4byte sub_8111E80 +_081138C8: .4byte word_2024E82 +_081138CC: + ldr r0, _08113900 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081138DA + b _08113B3A +_081138DA: + ldr r0, _08113904 @ =gMain + ldr r1, [r0, 0x4] + ldr r0, _08113908 @ =sub_8112290 + cmp r1, r0 + beq _081138E6 + b _08113B3A +_081138E6: + bl sub_809FA30 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x4 + bne _08113910 + ldr r0, _0811390C @ =gTasks + mov r2, r9 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + movs r0, 0x9 + b _08113B38 + .align 2, 0 +_08113900: .4byte gPaletteFade +_08113904: .4byte gMain +_08113908: .4byte sub_8112290 +_0811390C: .4byte gTasks +_08113910: + adds r1, r6, 0 + adds r1, 0xD + mov r0, r8 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl sub_8040A00 + cmp r0, 0 + beq _08113970 + ldr r0, _0811395C @ =gUnknown_08400F8C + ldr r3, _08113960 @ =0x000004cc + adds r0, r3 + ldr r0, [r0] + bl get_battle_strings_ + ldr r0, _08113964 @ =gUnknown_03004828 + ldr r2, [r0] + adds r0, r2, 0x4 + ldr r1, _08113968 @ =gUnknown_020238CC + adds r2, 0x34 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] + movs r3, 0x2 + bl sub_8002EB0 + ldr r1, _0811396C @ =gTasks + mov r2, r9 + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 + movs r1, 0xB + strh r1, [r0, 0x18] + b _08113B3A + .align 2, 0 +_0811395C: .4byte gUnknown_08400F8C +_08113960: .4byte 0x000004cc +_08113964: .4byte gUnknown_03004828 +_08113968: .4byte gUnknown_020238CC +_0811396C: .4byte gTasks +_08113970: + ldr r1, _081139D0 @ =gUnknown_03004290 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + strb r4, [r1, 0x2] + lsrs r0, r4, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + lsls r4, r6, 24 + lsrs r4, 24 + mov r0, r8 + adds r1, r4, 0 + bl RemoveMonPPBonus + ldr r0, _081139D4 @ =word_2024E82 + ldrh r1, [r0] + mov r0, r8 + adds r2, r4, 0 + bl SetMonMoveSlot + ldr r0, _081139D8 @ =gUnknown_08400F8C + movs r3, 0xCF + lsls r3, 2 + adds r0, r3 + ldr r0, [r0] + bl get_battle_strings_ + ldr r0, _081139DC @ =gUnknown_03004828 + ldr r2, [r0] + adds r0, r2, 0x4 + ldr r1, _081139E0 @ =gUnknown_020238CC + adds r2, 0x34 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] + movs r3, 0x2 + bl sub_8002EB0 + ldr r0, _081139E4 @ =gTasks + mov r2, r9 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x18] + adds r0, 0x1 + b _08113B38 + .align 2, 0 +_081139D0: .4byte gUnknown_03004290 +_081139D4: .4byte word_2024E82 +_081139D8: .4byte gUnknown_08400F8C +_081139DC: .4byte gUnknown_03004828 +_081139E0: .4byte gUnknown_020238CC +_081139E4: .4byte gTasks +_081139E8: + ldr r4, _08113A2C @ =gUnknown_03004828 + ldr r0, [r4] + ldrh r0, [r0, 0x1A] + cmp r0, 0 + beq _081139F4 + b _08113B3A +_081139F4: + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _08113A00 + b _08113B3A +_08113A00: + ldr r0, _08113A30 @ =gUnknown_08400F8C + ldr r0, [r0, 0x1C] + bl get_battle_strings_ + ldr r2, [r4] + adds r0, r2, 0x4 + ldr r1, _08113A34 @ =gUnknown_020238CC + adds r2, 0x34 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] + movs r3, 0x2 + bl sub_8002EB0 + ldr r0, _08113A38 @ =gTasks + mov r3, r9 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x18] + adds r0, 0x1 + b _08113B38 + .align 2, 0 +_08113A2C: .4byte gUnknown_03004828 +_08113A30: .4byte gUnknown_08400F8C +_08113A34: .4byte gUnknown_020238CC +_08113A38: .4byte gTasks +_08113A3C: + ldr r4, _08113A80 @ =gUnknown_03004828 + ldr r0, [r4] + ldrh r0, [r0, 0x1A] + cmp r0, 0 + bne _08113B3A + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + bne _08113B3A + ldr r0, _08113A84 @ =gUnknown_08400F8C + movs r1, 0xD0 + lsls r1, 2 + adds r0, r1 + ldr r0, [r0] + bl get_battle_strings_ + ldr r2, [r4] + adds r0, r2, 0x4 + ldr r1, _08113A88 @ =gUnknown_020238CC + adds r2, 0x34 + ldrb r2, [r2] + movs r4, 0xF + str r4, [sp] + movs r3, 0x2 + bl sub_8002EB0 + ldr r1, _08113A8C @ =gTasks + mov r2, r9 + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0x8] + b _08113B3A + .align 2, 0 +_08113A80: .4byte gUnknown_03004828 +_08113A84: .4byte gUnknown_08400F8C +_08113A88: .4byte gUnknown_020238CC +_08113A8C: .4byte gTasks +_08113A90: + ldr r0, _08113AC8 @ =gUnknown_08400F8C + ldr r0, [r0, 0x20] + bl get_battle_strings_ + ldr r0, _08113ACC @ =gUnknown_03004828 + ldr r2, [r0] + adds r0, r2, 0x4 + ldr r1, _08113AD0 @ =gUnknown_020238CC + adds r2, 0x34 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] + movs r3, 0x2 + bl sub_8002EB0 + ldr r1, _08113AD4 @ =gTasks + mov r3, r9 + adds r0, r3, r7 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + movs r1, 0xA + strh r1, [r0, 0x1A] + strh r2, [r0, 0x1C] + movs r1, 0x3 + strh r1, [r0, 0x18] + b _08113B3A + .align 2, 0 +_08113AC8: .4byte gUnknown_08400F8C +_08113ACC: .4byte gUnknown_03004828 +_08113AD0: .4byte gUnknown_020238CC +_08113AD4: .4byte gTasks +_08113AD8: + ldr r0, _08113B08 @ =gUnknown_08400F8C + ldr r0, [r0, 0x24] + bl get_battle_strings_ + ldr r0, _08113B0C @ =gUnknown_03004828 + ldr r2, [r0] + adds r0, r2, 0x4 + ldr r1, _08113B10 @ =gUnknown_020238CC + adds r2, 0x34 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] + movs r3, 0x2 + bl sub_8002EB0 + ldr r1, _08113B14 @ =gTasks + mov r2, r9 + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 + movs r1, 0xD + strh r1, [r0, 0x8] + b _08113B3A + .align 2, 0 +_08113B08: .4byte gUnknown_08400F8C +_08113B0C: .4byte gUnknown_03004828 +_08113B10: .4byte gUnknown_020238CC +_08113B14: .4byte gTasks +_08113B18: + ldr r0, _08113B48 @ =gUnknown_03004828 + ldr r0, [r0] + ldrh r0, [r0, 0x1A] + cmp r0, 0 + bne _08113B3A + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + bne _08113B3A + ldr r0, _08113B4C @ =gTasks + mov r3, r9 + adds r1, r3, r7 + lsls r1, 3 + adds r1, r0 + movs r0, 0x5 +_08113B38: + strh r0, [r1, 0x18] +_08113B3A: + add sp, 0x18 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08113B48: .4byte gUnknown_03004828 +_08113B4C: .4byte gTasks + thumb_func_end sub_8112FE8 + + thumb_func_start unref_sub_8113B50 +unref_sub_8113B50: @ 8113B50 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x3C + str r0, [sp] + str r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + movs r1, 0 + str r1, [sp, 0x10] + movs r2, 0 + str r2, [sp, 0x8] + ldr r3, _08113C60 @ =0x02014800 + mov r12, r3 + ldr r4, _08113C64 @ =0x000018c4 + add r4, r12 + mov r10, r4 + ldr r5, _08113C68 @ =0x000020c4 + add r5, r12 + mov r8, r5 +_08113B7C: + adds r0, r3, 0 + adds r0, 0x84 + ldr r1, [sp, 0x8] + adds r0, r1, r0 + strb r2, [r0] + adds r0, r3, 0x4 + adds r0, r1, r0 + strb r2, [r0] + ldr r4, _08113C6C @ =0x02014844 + adds r0, r1, r4 + strb r2, [r0] + movs r6, 0 + lsls r1, 5 + mov r9, r1 + ldr r5, [sp, 0x8] + lsls r4, r5, 6 +_08113B9C: + mov r0, r9 + adds r1, r6, r0 + ldr r5, _08113C70 @ =0x020158c4 + adds r0, r1, r5 + strb r2, [r0] + mov r5, r10 + adds r0, r1, r5 + strb r2, [r0] + mov r5, r8 + adds r0, r1, r5 + strb r2, [r0] + ldr r5, _08113C74 @ =0x020170c4 + adds r0, r1, r5 + strb r2, [r0] + adds r7, r3, 0 + adds r7, 0xC4 + adds r0, r1, r7 + strb r2, [r0] + ldr r5, _08113C78 @ =0x000008c4 + adds r0, r3, r5 + adds r0, r1, r0 + strb r2, [r0] + ldr r5, _08113C7C @ =0x000030c4 + adds r0, r3, r5 + adds r0, r1, r0 + strb r2, [r0] + ldr r5, _08113C80 @ =0x000038c4 + adds r0, r3, r5 + adds r1, r0 + strb r2, [r1] + lsls r1, r6, 1 + adds r1, r4 + ldr r5, _08113C84 @ =0x000060c4 + adds r0, r3, r5 + adds r0, r1, r0 + strh r2, [r0] + ldr r5, _08113C88 @ =0x000070c4 + adds r0, r3, r5 + adds r0, r1, r0 + strh r2, [r0] + ldr r5, _08113C8C @ =0x000080c4 + adds r0, r3, r5 + adds r0, r1, r0 + strh r2, [r0] + ldr r5, _08113C90 @ =0x000090c4 + adds r0, r3, r5 + adds r1, r0 + strh r2, [r1] + adds r6, 0x1 + cmp r6, 0x1F + ble _08113B9C + ldr r0, [sp, 0x8] + adds r0, 0x1 + str r0, [sp, 0x8] + cmp r0, 0x3F + ble _08113B7C + ldr r1, _08113C94 @ =0x0000a0c4 + add r1, r12 + movs r0, 0x40 + strb r0, [r1] + movs r1, 0 + mov r8, r1 + movs r2, 0 + str r2, [sp, 0x8] + movs r3, 0x80 + lsls r3, 5 + adds r3, r7 + mov r12, r3 + movs r4, 0xC0 + lsls r4, 5 + adds r4, r7 + mov r9, r4 + movs r5, 0 + adds r4, r7, 0 + subs r4, 0xC0 +_08113C32: + movs r3, 0 + ldr r2, [sp] + add r2, r8 + movs r6, 0 + ldr r0, [sp, 0x8] + adds r0, 0x1 + str r0, [sp, 0x30] + ldr r1, [sp, 0x8] + lsls r1, 7 + mov r10, r1 + movs r7, 0x1 + negs r7, r7 +_08113C4A: + asrs r0, r6, 1 + lsls r0, 2 + add r0, r10 + ldr r1, _08113C98 @ =0x020188c4 + adds r0, r1 + str r2, [r0] + cmp r3, 0 + beq _08113C9C + cmp r3, 0x1 + beq _08113CC6 + b _08113CF4 + .align 2, 0 +_08113C60: .4byte 0x02014800 +_08113C64: .4byte 0x000018c4 +_08113C68: .4byte 0x000020c4 +_08113C6C: .4byte 0x02014844 +_08113C70: .4byte 0x020158c4 +_08113C74: .4byte 0x020170c4 +_08113C78: .4byte 0x000008c4 +_08113C7C: .4byte 0x000030c4 +_08113C80: .4byte 0x000038c4 +_08113C84: .4byte 0x000060c4 +_08113C88: .4byte 0x000070c4 +_08113C8C: .4byte 0x000080c4 +_08113C90: .4byte 0x000090c4 +_08113C94: .4byte 0x0000a0c4 +_08113C98: .4byte 0x020188c4 +_08113C9C: + movs r0, 0x1 + ands r0, r6 + cmp r0, 0 + beq _08113CAA + cmp r0, 0x1 + beq _08113CB0 + b _08113CF4 +_08113CAA: + ldrb r1, [r2] + movs r0, 0xF + b _08113CB4 +_08113CB0: + ldrb r1, [r2] + movs r0, 0xF0 +_08113CB4: + ands r0, r1 + cmp r0, 0 + beq _08113CF4 + ldrb r0, [r4] + adds r0, r5 + add r0, r12 + strb r6, [r0] + movs r3, 0x1 + b _08113CF4 +_08113CC6: + adds r0, r6, 0 + ands r0, r3 + cmp r0, 0 + beq _08113CD4 + cmp r0, 0x1 + beq _08113CDA + b _08113CF4 +_08113CD4: + ldrb r1, [r2] + movs r0, 0xF + b _08113CDE +_08113CDA: + ldrb r1, [r2] + movs r0, 0xF0 +_08113CDE: + ands r0, r1 + cmp r0, 0 + bne _08113CF4 + ldrb r0, [r4] + adds r0, r5 + add r0, r9 + strb r7, [r0] + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + movs r3, 0 +_08113CF4: + adds r0, r6, 0x1 + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + bne _08113D02 + adds r2, 0x1D + b _08113D0C +_08113D02: + movs r0, 0x1 + ands r0, r6 + cmp r0, 0 + beq _08113D0C + adds r2, 0x1 +_08113D0C: + adds r7, 0x1 + adds r6, 0x1 + cmp r6, 0x3F + ble _08113C4A + cmp r3, 0 + beq _08113D26 + ldrb r0, [r4] + adds r0, r5 + add r0, r9 + strb r6, [r0] + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_08113D26: + movs r0, 0x7 + ldr r2, [sp, 0x30] + ands r2, r0 + cmp r2, 0 + bne _08113D36 + movs r3, 0xE4 + add r8, r3 + b _08113D3A +_08113D36: + movs r0, 0x4 + add r8, r0 +_08113D3A: + adds r5, 0x20 + adds r4, 0x1 + ldr r1, [sp, 0x8] + adds r1, 0x1 + str r1, [sp, 0x8] + cmp r1, 0x3F + bgt _08113D4A + b _08113C32 +_08113D4A: + movs r2, 0 + mov r8, r2 + movs r3, 0 + str r3, [sp, 0x8] + ldr r0, _08113D84 @ =0x02014844 + movs r4, 0x82 + lsls r4, 6 + adds r4, r0 + mov r10, r4 + movs r5, 0xA2 + lsls r5, 6 + adds r7, r0, r5 + movs r5, 0 + adds r4, r0, 0 + movs r0, 0x1 + mov r9, r0 +_08113D6A: + movs r3, 0 + ldr r2, [sp, 0x4] + add r2, r8 + movs r6, 0 + ldr r1, [sp, 0x8] + adds r1, 0x1 + str r1, [sp, 0x30] +_08113D78: + cmp r3, 0 + beq _08113D88 + cmp r3, 0x1 + beq _08113DB4 + b _08113DE4 + .align 2, 0 +_08113D84: .4byte 0x02014844 +_08113D88: + adds r0, r6, 0 + mov r1, r9 + ands r0, r1 + cmp r0, 0 + beq _08113D98 + cmp r0, 0x1 + beq _08113D9E + b _08113DE4 +_08113D98: + ldrb r1, [r2] + movs r0, 0xF + b _08113DA2 +_08113D9E: + ldrb r1, [r2] + movs r0, 0xF0 +_08113DA2: + ands r0, r1 + cmp r0, 0 + beq _08113DE4 + ldrb r0, [r4] + adds r0, r5 + add r0, r10 + strb r6, [r0] + movs r3, 0x1 + b _08113DE4 +_08113DB4: + adds r0, r6, 0 + ands r0, r3 + cmp r0, 0 + beq _08113DC2 + cmp r0, 0x1 + beq _08113DC8 + b _08113DE4 +_08113DC2: + ldrb r1, [r2] + movs r0, 0xF + b _08113DCC +_08113DC8: + ldrb r1, [r2] + movs r0, 0xF0 +_08113DCC: + ands r0, r1 + cmp r0, 0 + bne _08113DE4 + ldrb r0, [r4] + adds r0, r5 + adds r0, r7 + subs r1, r6, 0x1 + strb r1, [r0] + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + movs r3, 0 +_08113DE4: + adds r1, r6, 0x1 + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + bne _08113DF2 + adds r2, 0x1D + b _08113DFC +_08113DF2: + mov r0, r9 + ands r6, r0 + cmp r6, 0 + beq _08113DFC + adds r2, 0x1 +_08113DFC: + adds r6, r1, 0 + cmp r6, 0x3F + ble _08113D78 + cmp r3, 0 + beq _08113E14 + ldrb r0, [r4] + adds r0, r5 + adds r0, r7 + strb r6, [r0] + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_08113E14: + movs r0, 0x7 + ldr r1, [sp, 0x30] + ands r1, r0 + cmp r1, 0 + bne _08113E24 + movs r2, 0xE4 + add r8, r2 + b _08113E28 +_08113E24: + movs r3, 0x4 + add r8, r3 +_08113E28: + adds r5, 0x20 + adds r4, 0x1 + ldr r0, [sp, 0x8] + adds r0, 0x1 + str r0, [sp, 0x8] + cmp r0, 0x3F + ble _08113D6A + movs r1, 0 + str r1, [sp, 0x8] +_08113E3A: + ldr r3, [sp, 0x8] + ldr r4, _08113EBC @ =0x02014804 + adds r2, r3, r4 + ldr r5, _08113EC0 @ =0x02014844 + adds r1, r3, r5 + ldrb r0, [r2] + adds r3, 0x1 + str r3, [sp, 0x30] + ldrb r1, [r1] + cmp r0, r1 + bcc _08113E52 + b _08113F9E +_08113E52: + movs r0, 0 + str r0, [sp, 0xC] + ldrb r2, [r2] + cmp r0, r2 + bge _08113F54 + ldr r0, _08113EC4 @ =0x02014800 + adds r0, 0x4 + ldr r1, [sp, 0x8] + adds r0, r1, r0 + str r0, [sp, 0x18] +_08113E66: + movs r2, 0x80 + lsls r2, 1 + str r2, [sp, 0x14] + movs r6, 0 + ldr r3, [sp, 0x8] + ldr r4, _08113EC0 @ =0x02014844 + adds r0, r3, r4 + ldr r5, [sp, 0xC] + adds r5, 0x1 + str r5, [sp, 0x34] + ldrb r0, [r0] + cmp r6, r0 + bge _08113F3E + ldr r0, _08113EC4 @ =0x02014800 + mov r10, r0 + lsls r0, r3, 5 + ldr r2, [sp, 0xC] + adds r1, r2, r0 + mov r9, r0 + ldr r0, _08113EC4 @ =0x02014800 + adds r0, 0xC4 + mov r3, r9 + adds r7, r3, r0 + mov r5, r9 + ldr r4, _08113EC4 @ =0x02014800 + ldr r2, _08113EC8 @ =0x000010c4 + adds r0, r4, r2 + adds r1, r0 + mov r8, r1 + ldrb r3, [r1] + str r3, [sp, 0x1C] +_08113EA4: + ldr r0, _08113ECC @ =0x000020c4 + add r0, r10 + adds r0, r5, r0 + ldr r4, [sp, 0x1C] + ldrb r1, [r0] + cmp r4, r1 + bls _08113ED0 + mov r2, r8 + ldrb r1, [r2] + ldrb r0, [r0] + b _08113ED6 + .align 2, 0 +_08113EBC: .4byte 0x02014804 +_08113EC0: .4byte 0x02014844 +_08113EC4: .4byte 0x02014800 +_08113EC8: .4byte 0x000010c4 +_08113ECC: .4byte 0x000020c4 +_08113ED0: + ldrb r1, [r0] + mov r3, r8 + ldrb r0, [r3] +_08113ED6: + subs r3, r1, r0 + ldr r1, [sp, 0xC] + add r1, r9 + ldr r0, _08113EFC @ =0x000018c4 + add r0, r10 + adds r4, r1, r0 + ldr r0, _08113F00 @ =0x000028c4 + add r0, r10 + adds r2, r5, r0 + ldrb r0, [r4] + ldr r1, _08113F04 @ =0x02014800 + mov r12, r1 + ldrb r1, [r2] + cmp r0, r1 + bls _08113F08 + adds r1, r0, 0 + ldrb r0, [r2] + b _08113F0C + .align 2, 0 +_08113EFC: .4byte 0x000018c4 +_08113F00: .4byte 0x000028c4 +_08113F04: .4byte 0x02014800 +_08113F08: + ldrb r1, [r2] + ldrb r0, [r4] +_08113F0C: + subs r1, r0 + adds r3, r1 + ldr r2, [sp, 0x14] + cmp r2, r3 + ble _08113F2C + ldrb r0, [r7] + cmp r0, 0 + bne _08113F2C + ldr r0, _08114050 @ =0x000008c4 + add r0, r12 + adds r0, r5, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _08113F2C + str r6, [sp, 0x10] + str r3, [sp, 0x14] +_08113F2C: + adds r7, 0x1 + adds r5, 0x1 + adds r6, 0x1 + ldr r3, [sp, 0x8] + ldr r4, _08114054 @ =0x02014844 + adds r0, r3, r4 + ldrb r0, [r0] + cmp r6, r0 + blt _08113EA4 +_08113F3E: + ldr r0, [sp, 0xC] + ldr r1, [sp, 0x10] + ldr r2, [sp, 0x8] + bl sub_81141F0 + ldr r5, [sp, 0x34] + str r5, [sp, 0xC] + ldr r0, [sp, 0x18] + ldrb r0, [r0] + cmp r5, r0 + blt _08113E66 +_08113F54: + movs r6, 0 + ldr r2, _08114058 @ =0x02014800 + ldr r1, [sp, 0x8] + ldr r3, _08114054 @ =0x02014844 + adds r0, r1, r3 + adds r4, r2, 0 + mov r12, r4 + ldrb r0, [r0] + cmp r6, r0 + bge _08113F9E + mov r0, r12 + adds r0, 0x44 + adds r4, r1, r0 +_08113F6E: + ldr r5, [sp, 0x8] + lsls r0, r5, 5 + adds r1, r6, r0 + adds r0, r2, 0 + adds r0, 0xC4 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _08113F94 + ldr r3, _08114050 @ =0x000008c4 + adds r0, r2, r3 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _08113F94 + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_811430C +_08113F94: + adds r6, 0x1 + ldr r2, _08114058 @ =0x02014800 + ldrb r5, [r4] + cmp r6, r5 + blt _08113F6E +_08113F9E: + ldr r0, [sp, 0x8] + ldr r1, _0811405C @ =0x02014804 + adds r2, r0, r1 + ldr r3, _08114054 @ =0x02014844 + adds r1, r0, r3 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bne _08113FCC + movs r6, 0 + ldrb r4, [r2] + cmp r6, r4 + bge _08113FCC + adds r4, r2, 0 +_08113FBA: + adds r0, r6, 0 + adds r1, r6, 0 + ldr r2, [sp, 0x8] + bl sub_81141F0 + adds r6, 0x1 + ldrb r5, [r4] + cmp r6, r5 + blt _08113FBA +_08113FCC: + ldr r0, [sp, 0x8] + ldr r1, _0811405C @ =0x02014804 + adds r2, r0, r1 + ldr r3, _08114054 @ =0x02014844 + adds r1, r0, r3 + ldrb r0, [r2] + ldr r4, _08114058 @ =0x02014800 + ldrb r5, [r1] + cmp r0, r5 + bhi _08113FE2 + b _081141C4 +_08113FE2: + movs r0, 0 + str r0, [sp, 0x10] + ldrb r1, [r1] + cmp r0, r1 + blt _08113FEE + b _08114104 +_08113FEE: + str r2, [sp, 0x2C] + ldr r1, [sp, 0x8] + lsls r1, 5 + mov r9, r1 + adds r0, r4, 0 + adds r0, 0x44 + ldr r2, [sp, 0x8] + adds r0, r2, r0 + str r0, [sp, 0x20] + mov r3, r9 + str r3, [sp, 0x24] +_08114004: + movs r4, 0x80 + lsls r4, 1 + str r4, [sp, 0x14] + movs r6, 0 + ldr r5, [sp, 0x10] + adds r5, 0x1 + str r5, [sp, 0x38] + ldr r0, [sp, 0x2C] + ldrb r0, [r0] + cmp r6, r0 + bge _081140C4 + ldr r1, [sp, 0x10] + ldr r2, [sp, 0x24] + adds r1, r2 + mov r10, r1 + ldr r0, _08114058 @ =0x02014800 + adds r0, 0xC4 + adds r2, r0 + mov r8, r2 + ldr r7, [sp, 0x24] + ldr r3, _08114058 @ =0x02014800 + ldr r4, _08114060 @ =0x000010c4 + adds r0, r3, r4 + adds r5, r7, r0 + ldr r0, _08114064 @ =0x020168c4 + add r0, r10 + mov r12, r0 + ldrb r1, [r0] + str r1, [sp, 0x28] +_0811403E: + ldrb r0, [r5] + ldr r2, [sp, 0x28] + cmp r0, r2 + bls _08114068 + adds r1, r0, 0 + mov r3, r12 + ldrb r0, [r3] + b _0811406E + .align 2, 0 +_08114050: .4byte 0x000008c4 +_08114054: .4byte 0x02014844 +_08114058: .4byte 0x02014800 +_0811405C: .4byte 0x02014804 +_08114060: .4byte 0x000010c4 +_08114064: .4byte 0x020168c4 +_08114068: + mov r4, r12 + ldrb r1, [r4] + ldrb r0, [r5] +_0811406E: + subs r3, r1, r0 + ldr r1, _0811408C @ =0x02014800 + ldr r2, _08114090 @ =0x000018c4 + adds r0, r1, r2 + adds r4, r7, r0 + ldr r2, _08114094 @ =0x020170c4 + add r2, r10 + ldrb r0, [r4] + ldrb r1, [r2] + cmp r0, r1 + bls _08114098 + adds r1, r0, 0 + ldrb r0, [r2] + b _0811409C + .align 2, 0 +_0811408C: .4byte 0x02014800 +_08114090: .4byte 0x000018c4 +_08114094: .4byte 0x020170c4 +_08114098: + ldrb r1, [r2] + ldrb r0, [r4] +_0811409C: + subs r1, r0 + adds r3, r1 + ldr r2, [sp, 0x14] + cmp r2, r3 + ble _081140B2 + mov r4, r8 + ldrb r0, [r4] + cmp r0, 0 + bne _081140B2 + str r6, [sp, 0xC] + str r3, [sp, 0x14] +_081140B2: + movs r0, 0x1 + add r8, r0 + adds r7, 0x1 + adds r5, 0x1 + adds r6, 0x1 + ldr r1, [sp, 0x2C] + ldrb r1, [r1] + cmp r6, r1 + blt _0811403E +_081140C4: + ldr r3, [sp, 0xC] + add r3, r9 + ldr r2, _08114164 @ =0x02014800 + ldr r4, _08114168 @ =0x000030c4 + adds r1, r2, r4 + adds r1, r3, r1 + ldr r2, [sp, 0x10] + add r2, r9 + ldr r5, _0811416C @ =0x020168c4 + adds r0, r2, r5 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _08114164 @ =0x02014800 + ldr r4, _08114170 @ =0x000038c4 + adds r1, r0, r4 + adds r1, r3, r1 + ldr r5, _08114174 @ =0x020170c4 + adds r2, r5 + ldrb r0, [r2] + strb r0, [r1] + ldr r0, _08114164 @ =0x02014800 + adds r0, 0xC4 + adds r3, r0 + movs r0, 0x1 + strb r0, [r3] + ldr r0, [sp, 0x38] + str r0, [sp, 0x10] + ldr r1, [sp, 0x20] + ldrb r1, [r1] + cmp r0, r1 + bge _08114104 + b _08114004 +_08114104: + movs r6, 0 + ldr r4, _08114164 @ =0x02014800 + ldr r2, [sp, 0x8] + ldr r3, _08114178 @ =0x02014804 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r6, r0 + bge _081141C4 + adds r7, r4, 0 + mov r9, r6 + movs r5, 0xC4 + adds r5, r7 + mov r8, r5 +_0811411E: + ldr r1, [sp, 0x8] + lsls r0, r1, 5 + adds r2, r6, r0 + ldr r3, _0811417C @ =0x000020c4 + adds r0, r7, r3 + adds r0, r2 + mov r10, r0 + ldr r5, _08114168 @ =0x000030c4 + adds r0, r7, r5 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, r10 + strb r0, [r1] + ldr r3, _08114180 @ =0x000028c4 + adds r0, r7, r3 + adds r3, r2, r0 + ldr r5, _08114170 @ =0x000038c4 + adds r0, r7, r5 + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r3] + mov r0, r8 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _08114184 + mov r2, r9 + strb r2, [r1] + adds r0, r6, 0 + adds r1, r6, 0 + ldr r2, [sp, 0x8] + bl sub_81141F0 + b _081141B4 + .align 2, 0 +_08114164: .4byte 0x02014800 +_08114168: .4byte 0x000030c4 +_0811416C: .4byte 0x020168c4 +_08114170: .4byte 0x000038c4 +_08114174: .4byte 0x020170c4 +_08114178: .4byte 0x02014804 +_0811417C: .4byte 0x000020c4 +_08114180: .4byte 0x000028c4 +_08114184: + ldr r5, _081141E0 @ =0x000010c4 + adds r1, r4, r5 + adds r1, r2, r1 + ldr r5, _081141E4 @ =0x000018c4 + adds r0, r4, r5 + adds r0, r2, r0 + ldrb r0, [r0] + ldrb r2, [r1] + subs r0, r2 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r2, r0 + strb r2, [r3] + mov r0, r10 + strb r2, [r0] + ldrb r0, [r3] + subs r0, 0x1 + strb r0, [r3] + adds r0, r6, 0 + adds r1, r6, 0 + ldr r2, [sp, 0x8] + bl sub_81141F0 +_081141B4: + adds r6, 0x1 + ldr r4, _081141E8 @ =0x02014800 + ldr r1, [sp, 0x8] + ldr r2, _081141EC @ =0x02014804 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r6, r0 + blt _0811411E +_081141C4: + ldr r3, [sp, 0x30] + str r3, [sp, 0x8] + cmp r3, 0x3F + bgt _081141CE + b _08113E3A +_081141CE: + add sp, 0x3C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081141E0: .4byte 0x000010c4 +_081141E4: .4byte 0x000018c4 +_081141E8: .4byte 0x02014800 +_081141EC: .4byte 0x02014804 + thumb_func_end unref_sub_8113B50 + + thumb_func_start sub_81141F0 +sub_81141F0: @ 81141F0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + mov r8, r1 + mov r9, r2 + ldr r3, _0811424C @ =0x02014800 + lsls r1, r2, 5 + mov r0, r8 + adds r4, r0, r1 + ldr r5, _08114250 @ =0x000030c4 + adds r2, r3, r5 + adds r2, r4, r2 + adds r1, r6, r1 + ldr r7, _08114254 @ =0x000010c4 + adds r0, r3, r7 + adds r5, r1, r0 + ldrb r0, [r5] + strb r0, [r2] + ldr r0, _08114258 @ =0x000038c4 + adds r2, r3, r0 + adds r2, r4, r2 + ldr r7, _0811425C @ =0x000018c4 + adds r0, r3, r7 + adds r1, r0 + ldrb r0, [r1] + strb r0, [r2] + movs r7, 0 + ldr r1, _08114260 @ =0x000020c4 + adds r0, r3, r1 + adds r2, r4, r0 + ldrb r1, [r5] + ldrb r0, [r2] + mov r12, r3 + cmp r1, r0 + bcs _08114264 + mov r0, r12 + adds r0, 0xC4 + adds r0, r4, r0 + movs r1, 0x4 + strb r1, [r0] + ldrb r1, [r2] + ldrb r0, [r5] + b _08114276 + .align 2, 0 +_0811424C: .4byte 0x02014800 +_08114250: .4byte 0x000030c4 +_08114254: .4byte 0x000010c4 +_08114258: .4byte 0x000038c4 +_0811425C: .4byte 0x000018c4 +_08114260: .4byte 0x000020c4 +_08114264: + cmp r1, r0 + bls _08114278 + mov r0, r12 + adds r0, 0xC4 + adds r0, r4, r0 + movs r1, 0x1 + strb r1, [r0] + ldrb r1, [r5] + ldrb r0, [r2] +_08114276: + subs r7, r1, r0 +_08114278: + mov r5, r8 + lsls r3, r5, 1 + mov r0, r9 + lsls r4, r0, 6 + adds r0, r3, r4 + ldr r1, _081142BC @ =0x000080c4 + add r1, r12 + adds r0, r1 + lsls r1, r7, 4 + strh r1, [r0] + movs r7, 0 + mov r1, r9 + lsls r2, r1, 5 + adds r1, r6, r2 + ldr r0, _081142C0 @ =0x000018c4 + add r0, r12 + adds r6, r1, r0 + adds r1, r5, r2 + ldr r0, _081142C4 @ =0x000028c4 + add r0, r12 + adds r5, r1, r0 + ldrb r2, [r6] + ldrb r0, [r5] + cmp r2, r0 + bcs _081142CC + ldr r0, _081142C8 @ =0x000008c4 + add r0, r12 + adds r0, r1, r0 + movs r1, 0x3 + strb r1, [r0] + ldrb r1, [r5] + ldrb r0, [r6] + b _081142DE + .align 2, 0 +_081142BC: .4byte 0x000080c4 +_081142C0: .4byte 0x000018c4 +_081142C4: .4byte 0x000028c4 +_081142C8: .4byte 0x000008c4 +_081142CC: + cmp r2, r0 + bls _081142E0 + ldr r0, _08114304 @ =0x000008c4 + add r0, r12 + adds r0, r1, r0 + movs r1, 0x2 + strb r1, [r0] + ldrb r1, [r6] + ldrb r0, [r5] +_081142DE: + subs r7, r1, r0 +_081142E0: + adds r0, r3, r4 + ldr r1, _08114308 @ =0x000090c4 + add r1, r12 + adds r0, r1 + lsls r1, r7, 4 + strh r1, [r0] + mov r1, r12 + adds r1, 0x84 + add r1, r9 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08114304: .4byte 0x000008c4 +_08114308: .4byte 0x000090c4 + thumb_func_end sub_81141F0 + + thumb_func_start sub_811430C +sub_811430C: @ 811430C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r5, _081143AC @ =0x02014800 + lsls r4, r1, 5 + adds r4, r0, r4 + ldr r2, _081143B0 @ =0x000028c4 + adds r2, r5 + mov r10, r2 + add r10, r4 + mov r3, r10 + ldrb r2, [r3] + ldr r6, _081143B4 @ =0x000020c4 + adds r6, r5 + mov r8, r6 + add r8, r4 + mov r6, r8 + ldrb r3, [r6] + subs r7, r2, r3 + ldr r2, _081143B8 @ =0x000030c4 + adds r6, r5, r2 + adds r6, r4, r6 + ldr r2, _081143BC @ =0x000038c4 + adds r2, r5 + mov r9, r2 + add r9, r4 + lsrs r2, r7, 31 + adds r2, r7, r2 + asrs r2, 1 + adds r3, r2 + mov r2, r9 + strb r3, [r2] + strb r3, [r6] + adds r2, r5, 0 + adds r2, 0xC4 + adds r2, r4, r2 + movs r3, 0x5 + strb r3, [r2] + ldr r3, _081143C0 @ =0x000008c4 + adds r2, r5, r3 + adds r4, r2 + movs r2, 0x7 + strb r2, [r4] + adds r3, r5, 0 + adds r3, 0x84 + adds r3, r1, r3 + ldrb r2, [r3] + adds r2, 0x1 + strb r2, [r3] + ldrb r3, [r6] + mov r4, r8 + ldrb r2, [r4] + subs r7, r3, r2 + lsls r0, 1 + lsls r1, 6 + adds r0, r1 + ldr r6, _081143C4 @ =0x000080c4 + adds r1, r5, r6 + adds r1, r0, r1 + lsls r2, r7, 4 + strh r2, [r1] + mov r1, r10 + ldrb r2, [r1] + mov r3, r9 + ldrb r1, [r3] + subs r7, r2, r1 + ldr r4, _081143C8 @ =0x000090c4 + adds r5, r4 + adds r0, r5 + lsls r1, r7, 4 + strh r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081143AC: .4byte 0x02014800 +_081143B0: .4byte 0x000028c4 +_081143B4: .4byte 0x000020c4 +_081143B8: .4byte 0x000030c4 +_081143BC: .4byte 0x000038c4 +_081143C0: .4byte 0x000008c4 +_081143C4: .4byte 0x000080c4 +_081143C8: .4byte 0x000090c4 + thumb_func_end sub_811430C + + thumb_func_start unref_sub_81143CC +unref_sub_81143CC: @ 81143CC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + movs r0, 0x1 + str r0, [sp, 0x4] + ldr r0, _08114408 @ =0x02014800 + ldr r2, _0811440C @ =0x0000a0c4 + adds r1, r0, r2 + ldrb r3, [r1] + adds r4, r0, 0 + cmp r3, 0 + beq _081143EE + subs r0, r3, 0x1 + strb r0, [r1] +_081143EE: + movs r5, 0 + str r5, [sp] +_081143F2: + movs r3, 0 + adds r2, r4, 0 + adds r0, r4, 0 + adds r0, 0x84 + ldr r1, [sp] + adds r0, r1, r0 + adds r1, 0x1 + str r1, [sp, 0x8] + bl _08114D84 + .align 2, 0 +_08114408: .4byte 0x02014800 +_0811440C: .4byte 0x0000a0c4 +_08114410: + ldr r5, [sp] + lsls r0, r5, 5 + adds r1, r3, r0 + adds r2, 0xC4 + adds r1, r2 + ldrb r2, [r1] + mov r8, r0 + adds r0, r3, 0x1 + mov r10, r0 + cmp r2, 0xC + bls _08114428 + b _081148D2 +_08114428: + lsls r0, r2, 2 + ldr r1, _08114434 @ =_08114438 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08114434: .4byte _08114438 + .align 2, 0 +_08114438: + .4byte _081148D2 + .4byte _0811446C + .4byte _081144F0 + .4byte _0811457C + .4byte _08114600 + .4byte _0811468C + .4byte _081146C8 + .4byte _08114704 + .4byte _08114740 + .4byte _0811477C + .4byte _081147D0 + .4byte _08114810 + .4byte _08114858 +_0811446C: + movs r1, 0 + str r1, [sp, 0x4] + lsls r0, r3, 1 + ldr r2, [sp] + lsls r1, r2, 6 + adds r0, r1 + ldr r5, _081144E0 @ =0x000060c4 + adds r2, r4, r5 + adds r2, r0, r2 + ldr r5, _081144E4 @ =0x000080c4 + adds r1, r4, r5 + adds r0, r1 + ldrh r1, [r0] + ldrh r0, [r2] + adds r1, r0 + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r5, r0, 8 + movs r0, 0xFF + ands r1, r0 + strh r1, [r2] + movs r6, 0 + adds r1, r3, 0x1 + mov r10, r1 + ldr r2, [sp, 0x4] + cmp r2, r5 + blt _081144A6 + b _081148D2 +_081144A6: + mov r9, r4 + mov r4, r8 + adds r7, r3, r4 + ldr r0, _081144E8 @ =0x000030c4 + add r0, r9 + adds r4, r7, r0 + ldr r0, _081144EC @ =0x000020c4 + add r0, r9 + adds r2, r7, r0 +_081144B8: + ldrb r0, [r4] + subs r0, 0x1 + strb r0, [r4] + ldrb r1, [r4] + ldr r0, [sp] + str r2, [sp, 0xC] + str r3, [sp, 0x10] + bl sub_8114DB4 + ldrb r0, [r4] + ldr r2, [sp, 0xC] + ldr r3, [sp, 0x10] + ldrb r1, [r2] + cmp r0, r1 + bne _081144D8 + b _081148A0 +_081144D8: + adds r6, 0x1 + cmp r6, r5 + blt _081144B8 + b _081148D2 + .align 2, 0 +_081144E0: .4byte 0x000060c4 +_081144E4: .4byte 0x000080c4 +_081144E8: .4byte 0x000030c4 +_081144EC: .4byte 0x000020c4 +_081144F0: + movs r2, 0 + str r2, [sp, 0x4] + ldr r4, _08114568 @ =0x02014800 + lsls r0, r3, 1 + ldr r5, [sp] + lsls r1, r5, 6 + adds r0, r1 + ldr r1, _0811456C @ =0x000060c4 + adds r2, r4, r1 + adds r2, r0, r2 + ldr r5, _08114570 @ =0x000080c4 + adds r1, r4, r5 + adds r0, r1 + ldrh r1, [r0] + ldrh r0, [r2] + adds r1, r0 + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r5, r0, 8 + movs r0, 0xFF + ands r1, r0 + strh r1, [r2] + movs r6, 0 + adds r1, r3, 0x1 + mov r10, r1 + ldr r2, [sp, 0x4] + cmp r2, r5 + blt _0811452C + b _081148D2 +_0811452C: + mov r9, r4 + mov r4, r8 + adds r7, r3, r4 + ldr r0, _08114574 @ =0x000030c4 + add r0, r9 + adds r4, r7, r0 + ldr r0, _08114578 @ =0x000020c4 + add r0, r9 + adds r2, r7, r0 +_0811453E: + ldrb r0, [r4] + ldrb r1, [r2] + cmp r0, r1 + bne _08114548 + b _081148B8 +_08114548: + adds r1, r0, 0 + ldr r0, [sp] + str r2, [sp, 0xC] + str r3, [sp, 0x10] + bl sub_8114DF0 + ldrb r0, [r4] + subs r0, 0x1 + strb r0, [r4] + adds r6, 0x1 + ldr r2, [sp, 0xC] + ldr r3, [sp, 0x10] + cmp r6, r5 + blt _0811453E + b _081148D2 + .align 2, 0 +_08114568: .4byte 0x02014800 +_0811456C: .4byte 0x000060c4 +_08114570: .4byte 0x000080c4 +_08114574: .4byte 0x000030c4 +_08114578: .4byte 0x000020c4 +_0811457C: + movs r2, 0 + str r2, [sp, 0x4] + lsls r0, r3, 1 + ldr r5, [sp] + lsls r1, r5, 6 + adds r0, r1 + ldr r1, _081145F0 @ =0x000060c4 + adds r2, r4, r1 + adds r2, r0, r2 + ldr r5, _081145F4 @ =0x000080c4 + adds r1, r4, r5 + adds r0, r1 + ldrh r1, [r0] + ldrh r0, [r2] + adds r1, r0 + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r5, r0, 8 + movs r0, 0xFF + ands r1, r0 + strh r1, [r2] + movs r6, 0 + adds r1, r3, 0x1 + mov r10, r1 + ldr r2, [sp, 0x4] + cmp r2, r5 + blt _081145B6 + b _081148D2 +_081145B6: + mov r9, r4 + mov r4, r8 + adds r7, r3, r4 + ldr r0, _081145F8 @ =0x000030c4 + add r0, r9 + adds r4, r7, r0 + ldr r0, _081145FC @ =0x000020c4 + add r0, r9 + adds r2, r7, r0 +_081145C8: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldrb r1, [r4] + ldr r0, [sp] + str r2, [sp, 0xC] + str r3, [sp, 0x10] + bl sub_8114DB4 + ldrb r0, [r4] + ldr r2, [sp, 0xC] + ldr r3, [sp, 0x10] + ldrb r1, [r2] + cmp r0, r1 + bne _081145E8 + b _081148AC +_081145E8: + adds r6, 0x1 + cmp r6, r5 + blt _081145C8 + b _081148D2 + .align 2, 0 +_081145F0: .4byte 0x000060c4 +_081145F4: .4byte 0x000080c4 +_081145F8: .4byte 0x000030c4 +_081145FC: .4byte 0x000020c4 +_08114600: + movs r2, 0 + str r2, [sp, 0x4] + ldr r4, _08114678 @ =0x02014800 + lsls r0, r3, 1 + ldr r5, [sp] + lsls r1, r5, 6 + adds r0, r1 + ldr r1, _0811467C @ =0x000060c4 + adds r2, r4, r1 + adds r2, r0, r2 + ldr r5, _08114680 @ =0x000080c4 + adds r1, r4, r5 + adds r0, r1 + ldrh r1, [r0] + ldrh r0, [r2] + adds r1, r0 + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r5, r0, 8 + movs r0, 0xFF + ands r1, r0 + strh r1, [r2] + movs r6, 0 + adds r1, r3, 0x1 + mov r10, r1 + ldr r2, [sp, 0x4] + cmp r2, r5 + blt _0811463C + b _081148D2 +_0811463C: + mov r9, r4 + mov r4, r8 + adds r7, r3, r4 + ldr r0, _08114684 @ =0x000030c4 + add r0, r9 + adds r4, r7, r0 + ldr r0, _08114688 @ =0x000020c4 + add r0, r9 + adds r2, r7, r0 +_0811464E: + ldrb r0, [r4] + ldrb r1, [r2] + cmp r0, r1 + bne _08114658 + b _081148B8 +_08114658: + adds r1, r0, 0 + ldr r0, [sp] + str r2, [sp, 0xC] + str r3, [sp, 0x10] + bl sub_8114DF0 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + adds r6, 0x1 + ldr r2, [sp, 0xC] + ldr r3, [sp, 0x10] + cmp r6, r5 + blt _0811464E + b _081148D2 + .align 2, 0 +_08114678: .4byte 0x02014800 +_0811467C: .4byte 0x000060c4 +_08114680: .4byte 0x000080c4 +_08114684: .4byte 0x000030c4 +_08114688: .4byte 0x000020c4 +_0811468C: + movs r2, 0 + str r2, [sp, 0x4] + ldr r5, _081146C0 @ =0x02014800 + mov r0, r8 + adds r4, r3, r0 + ldr r1, _081146C4 @ =0x000030c4 + adds r0, r5, r1 + adds r0, r4, r0 + ldrb r1, [r0] + ldr r0, [sp] + str r3, [sp, 0x10] + bl sub_8114E48 + lsls r0, 24 + ldr r3, [sp, 0x10] + adds r2, r3, 0x1 + mov r10, r2 + cmp r0, 0 + bne _081146B4 + b _081148D2 +_081146B4: + adds r0, r5, 0 + adds r0, 0xC4 + adds r0, r4, r0 + movs r1, 0x9 + strb r1, [r0] + b _081148D2 + .align 2, 0 +_081146C0: .4byte 0x02014800 +_081146C4: .4byte 0x000030c4 +_081146C8: + movs r4, 0 + str r4, [sp, 0x4] + ldr r5, _081146FC @ =0x02014800 + mov r0, r8 + adds r4, r3, r0 + ldr r1, _08114700 @ =0x000030c4 + adds r0, r5, r1 + adds r0, r4, r0 + ldrb r1, [r0] + ldr r0, [sp] + str r3, [sp, 0x10] + bl sub_8114E48 + lsls r0, 24 + ldr r3, [sp, 0x10] + adds r2, r3, 0x1 + mov r10, r2 + cmp r0, 0 + bne _081146F0 + b _081148D2 +_081146F0: + adds r0, r5, 0 + adds r0, 0xC4 + adds r0, r4, r0 + movs r1, 0xA + strb r1, [r0] + b _081148D2 + .align 2, 0 +_081146FC: .4byte 0x02014800 +_08114700: .4byte 0x000030c4 +_08114704: + movs r4, 0 + str r4, [sp, 0x4] + ldr r5, _08114738 @ =0x02014800 + mov r0, r8 + adds r4, r3, r0 + ldr r1, _0811473C @ =0x000030c4 + adds r0, r5, r1 + adds r0, r4, r0 + ldrb r1, [r0] + ldr r0, [sp] + str r3, [sp, 0x10] + bl sub_8114E48 + lsls r0, 24 + ldr r3, [sp, 0x10] + adds r2, r3, 0x1 + mov r10, r2 + cmp r0, 0 + bne _0811472C + b _081148D2 +_0811472C: + adds r0, r5, 0 + adds r0, 0xC4 + adds r0, r4, r0 + movs r1, 0xB + strb r1, [r0] + b _081148D2 + .align 2, 0 +_08114738: .4byte 0x02014800 +_0811473C: .4byte 0x000030c4 +_08114740: + movs r4, 0 + str r4, [sp, 0x4] + ldr r5, _08114774 @ =0x02014800 + mov r0, r8 + adds r4, r3, r0 + ldr r1, _08114778 @ =0x000030c4 + adds r0, r5, r1 + adds r0, r4, r0 + ldrb r1, [r0] + ldr r0, [sp] + str r3, [sp, 0x10] + bl sub_8114E48 + lsls r0, 24 + ldr r3, [sp, 0x10] + adds r2, r3, 0x1 + mov r10, r2 + cmp r0, 0 + bne _08114768 + b _081148D2 +_08114768: + adds r0, r5, 0 + adds r0, 0xC4 + adds r0, r4, r0 + movs r1, 0xC + strb r1, [r0] + b _081148D2 + .align 2, 0 +_08114774: .4byte 0x02014800 +_08114778: .4byte 0x000030c4 +_0811477C: + movs r4, 0 + str r4, [sp, 0x4] + ldr r6, _081147B4 @ =0x02014800 + mov r0, r8 + adds r5, r3, r0 + ldr r1, _081147B8 @ =0x000030c4 + adds r4, r6, r1 + adds r4, r5, r4 + ldrb r1, [r4] + ldr r0, [sp] + str r3, [sp, 0x10] + bl sub_8114DB4 + ldr r2, _081147BC @ =0x000020c4 + adds r0, r6, r2 + adds r0, r5, r0 + ldrb r1, [r4] + ldr r3, [sp, 0x10] + ldrb r0, [r0] + cmp r1, r0 + bne _081147C0 + adds r0, r6, 0 + adds r0, 0xC4 + adds r0, r5, r0 + mov r4, sp + ldrb r4, [r4, 0x4] + strb r4, [r0] + b _08114844 + .align 2, 0 +_081147B4: .4byte 0x02014800 +_081147B8: .4byte 0x000030c4 +_081147BC: .4byte 0x000020c4 +_081147C0: + adds r0, r6, 0 + adds r0, 0xC4 + adds r0, r5, r0 + movs r1, 0x1 + strb r1, [r0] + adds r0, r3, 0x1 + mov r10, r0 + b _081148D2 +_081147D0: + movs r1, 0 + str r1, [sp, 0x4] + ldr r6, _08114804 @ =0x02014800 + mov r2, r8 + adds r5, r3, r2 + ldr r0, _08114808 @ =0x000030c4 + adds r4, r6, r0 + adds r4, r5, r4 + ldrb r1, [r4] + ldr r0, [sp] + str r3, [sp, 0x10] + bl sub_8114DF0 + ldr r1, _0811480C @ =0x000020c4 + adds r0, r6, r1 + adds r0, r5, r0 + ldrb r1, [r4] + ldr r3, [sp, 0x10] + ldrb r0, [r0] + cmp r1, r0 + beq _08114882 + adds r0, r6, 0 + adds r0, 0xC4 + adds r0, r5, r0 + movs r1, 0x2 + b _08114842 + .align 2, 0 +_08114804: .4byte 0x02014800 +_08114808: .4byte 0x000030c4 +_0811480C: .4byte 0x000020c4 +_08114810: + movs r0, 0 + str r0, [sp, 0x4] + ldr r6, _0811484C @ =0x02014800 + mov r1, r8 + adds r5, r3, r1 + ldr r2, _08114850 @ =0x000030c4 + adds r4, r6, r2 + adds r4, r5, r4 + ldrb r1, [r4] + ldr r0, [sp] + str r3, [sp, 0x10] + bl sub_8114DB4 + ldr r1, _08114854 @ =0x000020c4 + adds r0, r6, r1 + adds r0, r5, r0 + ldrb r1, [r4] + ldr r3, [sp, 0x10] + ldrb r0, [r0] + cmp r1, r0 + beq _08114882 + adds r0, r6, 0 + adds r0, 0xC4 + adds r0, r5, r0 + movs r1, 0x3 +_08114842: + strb r1, [r0] +_08114844: + adds r5, r3, 0x1 + mov r10, r5 + b _081148D2 + .align 2, 0 +_0811484C: .4byte 0x02014800 +_08114850: .4byte 0x000030c4 +_08114854: .4byte 0x000020c4 +_08114858: + movs r0, 0 + str r0, [sp, 0x4] + ldr r6, _08114894 @ =0x02014800 + mov r1, r8 + adds r5, r3, r1 + ldr r2, _08114898 @ =0x000030c4 + adds r4, r6, r2 + adds r4, r5, r4 + ldrb r1, [r4] + ldr r0, [sp] + str r3, [sp, 0x10] + bl sub_8114DF0 + ldr r1, _0811489C @ =0x000020c4 + adds r0, r6, r1 + adds r0, r5, r0 + ldrb r1, [r4] + ldr r3, [sp, 0x10] + ldrb r0, [r0] + cmp r1, r0 + bne _081148C4 +_08114882: + adds r0, r6, 0 + adds r0, 0xC4 + adds r0, r5, r0 + mov r2, sp + ldrb r2, [r2, 0x4] + strb r2, [r0] + adds r4, r3, 0x1 + mov r10, r4 + b _081148D2 + .align 2, 0 +_08114894: .4byte 0x02014800 +_08114898: .4byte 0x000030c4 +_0811489C: .4byte 0x000020c4 +_081148A0: + mov r0, r9 + adds r0, 0xC4 + adds r0, r7, r0 + movs r5, 0 + strb r5, [r0] + b _081148D2 +_081148AC: + mov r0, r9 + adds r0, 0xC4 + adds r0, r7, r0 + movs r1, 0 + strb r1, [r0] + b _081148D2 +_081148B8: + mov r0, r9 + adds r0, 0xC4 + adds r0, r7, r0 + movs r1, 0 + strb r1, [r0] + b _081148D2 +_081148C4: + adds r0, r6, 0 + adds r0, 0xC4 + adds r0, r5, r0 + movs r1, 0x4 + strb r1, [r0] + adds r2, r3, 0x1 + mov r10, r2 +_081148D2: + ldr r0, _081148F4 @ =0x02014800 + mov r4, r8 + adds r1, r3, r4 + ldr r5, _081148F8 @ =0x000008c4 + adds r2, r0, r5 + adds r1, r2 + ldrb r1, [r1] + adds r4, r0, 0 + cmp r1, 0xC + bls _081148E8 + b _08114D76 +_081148E8: + lsls r0, r1, 2 + ldr r1, _081148FC @ =_08114900 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081148F4: .4byte 0x02014800 +_081148F8: .4byte 0x000008c4 +_081148FC: .4byte _08114900 + .align 2, 0 +_08114900: + .4byte _08114D76 + .4byte _08114934 + .4byte _081149B8 + .4byte _08114A3C + .4byte _08114AC0 + .4byte _08114B44 + .4byte _08114B7C + .4byte _08114BB4 + .4byte _08114BEC + .4byte _08114C24 + .4byte _08114C78 + .4byte _08114CB8 + .4byte _08114CF8 +_08114934: + movs r0, 0 + str r0, [sp, 0x4] + lsls r0, r3, 1 + ldr r2, [sp] + lsls r1, r2, 6 + adds r0, r1 + ldr r5, _081149A8 @ =0x000070c4 + adds r2, r4, r5 + adds r2, r0, r2 + ldr r5, _081149AC @ =0x000090c4 + adds r1, r4, r5 + adds r0, r1 + ldrh r1, [r0] + ldrh r0, [r2] + adds r1, r0 + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r5, r0, 8 + movs r0, 0xFF + ands r1, r0 + strh r1, [r2] + movs r6, 0 + ldr r1, [sp, 0x4] + cmp r1, r5 + blt _0811496A + b _08114D76 +_0811496A: + mov r9, r4 + mov r2, r8 + adds r7, r3, r2 + ldr r0, _081149B0 @ =0x000038c4 + add r0, r9 + adds r4, r7, r0 + movs r3, 0 + ldr r0, _081149B4 @ =0x000028c4 + add r0, r9 + adds r2, r7, r0 +_0811497E: + ldrb r0, [r4] + subs r0, 0x1 + strb r0, [r4] + ldrb r1, [r4] + ldr r0, [sp] + str r2, [sp, 0xC] + str r3, [sp, 0x10] + bl sub_8114DB4 + ldrb r0, [r4] + ldr r2, [sp, 0xC] + ldr r3, [sp, 0x10] + ldrb r1, [r2] + cmp r0, r1 + bne _0811499E + b _08114D4C +_0811499E: + adds r6, 0x1 + cmp r6, r5 + blt _0811497E + b _08114D76 + .align 2, 0 +_081149A8: .4byte 0x000070c4 +_081149AC: .4byte 0x000090c4 +_081149B0: .4byte 0x000038c4 +_081149B4: .4byte 0x000028c4 +_081149B8: + movs r2, 0 + str r2, [sp, 0x4] + ldr r4, _08114A28 @ =0x02014800 + lsls r0, r3, 1 + ldr r5, [sp] + lsls r1, r5, 6 + adds r0, r1 + ldr r1, _08114A2C @ =0x000070c4 + adds r2, r4, r1 + adds r2, r0, r2 + ldr r5, _08114A30 @ =0x000090c4 + adds r1, r4, r5 + adds r0, r1 + ldrh r1, [r0] + ldrh r0, [r2] + adds r1, r0 + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r5, r0, 8 + movs r0, 0xFF + ands r1, r0 + strh r1, [r2] + movs r6, 0 + ldr r1, [sp, 0x4] + cmp r1, r5 + blt _081149F0 + b _08114D76 +_081149F0: + mov r9, r4 + mov r2, r8 + adds r7, r3, r2 + ldr r0, _08114A34 @ =0x000038c4 + add r0, r9 + adds r4, r7, r0 + ldr r0, _08114A38 @ =0x000028c4 + add r0, r9 + adds r2, r7, r0 +_08114A02: + ldrb r0, [r4] + ldrb r1, [r2] + cmp r0, r1 + bne _08114A0C + b _08114D3C +_08114A0C: + adds r1, r0, 0 + ldr r0, [sp] + str r2, [sp, 0xC] + bl sub_8114DF0 + ldrb r0, [r4] + subs r0, 0x1 + strb r0, [r4] + adds r6, 0x1 + ldr r2, [sp, 0xC] + cmp r6, r5 + blt _08114A02 + b _08114D76 + .align 2, 0 +_08114A28: .4byte 0x02014800 +_08114A2C: .4byte 0x000070c4 +_08114A30: .4byte 0x000090c4 +_08114A34: .4byte 0x000038c4 +_08114A38: .4byte 0x000028c4 +_08114A3C: + movs r2, 0 + str r2, [sp, 0x4] + lsls r0, r3, 1 + ldr r5, [sp] + lsls r1, r5, 6 + adds r0, r1 + ldr r1, _08114AB0 @ =0x000070c4 + adds r2, r4, r1 + adds r2, r0, r2 + ldr r5, _08114AB4 @ =0x000090c4 + adds r1, r4, r5 + adds r0, r1 + ldrh r1, [r0] + ldrh r0, [r2] + adds r1, r0 + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r5, r0, 8 + movs r0, 0xFF + ands r1, r0 + strh r1, [r2] + movs r6, 0 + ldr r1, [sp, 0x4] + cmp r1, r5 + blt _08114A72 + b _08114D76 +_08114A72: + mov r9, r4 + mov r2, r8 + adds r7, r3, r2 + ldr r0, _08114AB8 @ =0x000038c4 + add r0, r9 + adds r4, r7, r0 + movs r3, 0 + ldr r0, _08114ABC @ =0x000028c4 + add r0, r9 + adds r2, r7, r0 +_08114A86: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldrb r1, [r4] + ldr r0, [sp] + str r2, [sp, 0xC] + str r3, [sp, 0x10] + bl sub_8114DB4 + ldrb r0, [r4] + ldr r2, [sp, 0xC] + ldr r3, [sp, 0x10] + ldrb r1, [r2] + cmp r0, r1 + bne _08114AA6 + b _08114D4C +_08114AA6: + adds r6, 0x1 + cmp r6, r5 + blt _08114A86 + b _08114D76 + .align 2, 0 +_08114AB0: .4byte 0x000070c4 +_08114AB4: .4byte 0x000090c4 +_08114AB8: .4byte 0x000038c4 +_08114ABC: .4byte 0x000028c4 +_08114AC0: + movs r2, 0 + str r2, [sp, 0x4] + ldr r4, _08114B30 @ =0x02014800 + lsls r0, r3, 1 + ldr r5, [sp] + lsls r1, r5, 6 + adds r0, r1 + ldr r1, _08114B34 @ =0x000070c4 + adds r2, r4, r1 + adds r2, r0, r2 + ldr r5, _08114B38 @ =0x000090c4 + adds r1, r4, r5 + adds r0, r1 + ldrh r1, [r0] + ldrh r0, [r2] + adds r1, r0 + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r5, r0, 8 + movs r0, 0xFF + ands r1, r0 + strh r1, [r2] + movs r6, 0 + ldr r1, [sp, 0x4] + cmp r1, r5 + blt _08114AF8 + b _08114D76 +_08114AF8: + mov r9, r4 + mov r2, r8 + adds r7, r3, r2 + ldr r0, _08114B3C @ =0x000038c4 + add r0, r9 + adds r4, r7, r0 + ldr r0, _08114B40 @ =0x000028c4 + add r0, r9 + adds r2, r7, r0 +_08114B0A: + ldrb r0, [r4] + ldrb r1, [r2] + cmp r0, r1 + bne _08114B14 + b _08114D5C +_08114B14: + adds r1, r0, 0 + ldr r0, [sp] + str r2, [sp, 0xC] + bl sub_8114DF0 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + adds r6, 0x1 + ldr r2, [sp, 0xC] + cmp r6, r5 + blt _08114B0A + b _08114D76 + .align 2, 0 +_08114B30: .4byte 0x02014800 +_08114B34: .4byte 0x000070c4 +_08114B38: .4byte 0x000090c4 +_08114B3C: .4byte 0x000038c4 +_08114B40: .4byte 0x000028c4 +_08114B44: + movs r2, 0 + str r2, [sp, 0x4] + ldr r5, _08114B70 @ =0x02014800 + mov r0, r8 + adds r4, r3, r0 + ldr r1, _08114B74 @ =0x000038c4 + adds r0, r5, r1 + adds r0, r4, r0 + ldrb r1, [r0] + ldr r0, [sp] + bl sub_8114E48 + lsls r0, 24 + cmp r0, 0 + bne _08114B64 + b _08114D76 +_08114B64: + ldr r2, _08114B78 @ =0x000008c4 + adds r0, r5, r2 + adds r0, r4, r0 + movs r1, 0x9 + b _08114D74 + .align 2, 0 +_08114B70: .4byte 0x02014800 +_08114B74: .4byte 0x000038c4 +_08114B78: .4byte 0x000008c4 +_08114B7C: + movs r4, 0 + str r4, [sp, 0x4] + ldr r5, _08114BA8 @ =0x02014800 + mov r0, r8 + adds r4, r3, r0 + ldr r1, _08114BAC @ =0x000038c4 + adds r0, r5, r1 + adds r0, r4, r0 + ldrb r1, [r0] + ldr r0, [sp] + bl sub_8114E48 + lsls r0, 24 + cmp r0, 0 + bne _08114B9C + b _08114D76 +_08114B9C: + ldr r2, _08114BB0 @ =0x000008c4 + adds r0, r5, r2 + adds r0, r4, r0 + movs r1, 0xA + b _08114D74 + .align 2, 0 +_08114BA8: .4byte 0x02014800 +_08114BAC: .4byte 0x000038c4 +_08114BB0: .4byte 0x000008c4 +_08114BB4: + movs r4, 0 + str r4, [sp, 0x4] + ldr r5, _08114BE0 @ =0x02014800 + mov r0, r8 + adds r4, r3, r0 + ldr r1, _08114BE4 @ =0x000038c4 + adds r0, r5, r1 + adds r0, r4, r0 + ldrb r1, [r0] + ldr r0, [sp] + bl sub_8114E48 + lsls r0, 24 + cmp r0, 0 + bne _08114BD4 + b _08114D76 +_08114BD4: + ldr r2, _08114BE8 @ =0x000008c4 + adds r0, r5, r2 + adds r0, r4, r0 + movs r1, 0xB + b _08114D74 + .align 2, 0 +_08114BE0: .4byte 0x02014800 +_08114BE4: .4byte 0x000038c4 +_08114BE8: .4byte 0x000008c4 +_08114BEC: + movs r4, 0 + str r4, [sp, 0x4] + ldr r5, _08114C18 @ =0x02014800 + mov r0, r8 + adds r4, r3, r0 + ldr r1, _08114C1C @ =0x000038c4 + adds r0, r5, r1 + adds r0, r4, r0 + ldrb r1, [r0] + ldr r0, [sp] + bl sub_8114E48 + lsls r0, 24 + cmp r0, 0 + bne _08114C0C + b _08114D76 +_08114C0C: + ldr r2, _08114C20 @ =0x000008c4 + adds r0, r5, r2 + adds r0, r4, r0 + movs r1, 0xC + b _08114D74 + .align 2, 0 +_08114C18: .4byte 0x02014800 +_08114C1C: .4byte 0x000038c4 +_08114C20: .4byte 0x000008c4 +_08114C24: + movs r4, 0 + str r4, [sp, 0x4] + ldr r6, _08114C58 @ =0x02014800 + mov r0, r8 + adds r5, r3, r0 + ldr r1, _08114C5C @ =0x000038c4 + adds r4, r6, r1 + adds r4, r5, r4 + ldrb r1, [r4] + ldr r0, [sp] + bl sub_8114DB4 + ldr r2, _08114C60 @ =0x000028c4 + adds r0, r6, r2 + adds r0, r5, r0 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + bne _08114C68 + ldr r4, _08114C64 @ =0x000008c4 + adds r0, r6, r4 + adds r0, r5, r0 + mov r5, sp + ldrb r5, [r5, 0x4] + strb r5, [r0] + b _08114D76 + .align 2, 0 +_08114C58: .4byte 0x02014800 +_08114C5C: .4byte 0x000038c4 +_08114C60: .4byte 0x000028c4 +_08114C64: .4byte 0x000008c4 +_08114C68: + ldr r1, _08114C74 @ =0x000008c4 + adds r0, r6, r1 + adds r0, r5, r0 + movs r1, 0x1 + b _08114D74 + .align 2, 0 +_08114C74: .4byte 0x000008c4 +_08114C78: + movs r2, 0 + str r2, [sp, 0x4] + ldr r6, _08114CA8 @ =0x02014800 + mov r4, r8 + adds r5, r3, r4 + ldr r0, _08114CAC @ =0x000038c4 + adds r4, r6, r0 + adds r4, r5, r4 + ldrb r1, [r4] + ldr r0, [sp] + bl sub_8114DF0 + ldr r1, _08114CB0 @ =0x000028c4 + adds r0, r6, r1 + adds r0, r5, r0 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + beq _08114D1E + ldr r1, _08114CB4 @ =0x000008c4 + adds r0, r6, r1 + adds r0, r5, r0 + movs r1, 0x2 + b _08114D74 + .align 2, 0 +_08114CA8: .4byte 0x02014800 +_08114CAC: .4byte 0x000038c4 +_08114CB0: .4byte 0x000028c4 +_08114CB4: .4byte 0x000008c4 +_08114CB8: + movs r2, 0 + str r2, [sp, 0x4] + ldr r6, _08114CE8 @ =0x02014800 + mov r4, r8 + adds r5, r3, r4 + ldr r0, _08114CEC @ =0x000038c4 + adds r4, r6, r0 + adds r4, r5, r4 + ldrb r1, [r4] + ldr r0, [sp] + bl sub_8114DB4 + ldr r1, _08114CF0 @ =0x000028c4 + adds r0, r6, r1 + adds r0, r5, r0 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + beq _08114D1E + ldr r1, _08114CF4 @ =0x000008c4 + adds r0, r6, r1 + adds r0, r5, r0 + movs r1, 0x3 + b _08114D74 + .align 2, 0 +_08114CE8: .4byte 0x02014800 +_08114CEC: .4byte 0x000038c4 +_08114CF0: .4byte 0x000028c4 +_08114CF4: .4byte 0x000008c4 +_08114CF8: + movs r2, 0 + str r2, [sp, 0x4] + ldr r6, _08114D2C @ =0x02014800 + mov r4, r8 + adds r5, r3, r4 + ldr r0, _08114D30 @ =0x000038c4 + adds r4, r6, r0 + adds r4, r5, r4 + ldrb r1, [r4] + ldr r0, [sp] + bl sub_8114DF0 + ldr r1, _08114D34 @ =0x000028c4 + adds r0, r6, r1 + adds r0, r5, r0 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + bne _08114D6C +_08114D1E: + ldr r2, _08114D38 @ =0x000008c4 + adds r0, r6, r2 + adds r0, r5, r0 + mov r4, sp + ldrb r4, [r4, 0x4] + strb r4, [r0] + b _08114D76 + .align 2, 0 +_08114D2C: .4byte 0x02014800 +_08114D30: .4byte 0x000038c4 +_08114D34: .4byte 0x000028c4 +_08114D38: .4byte 0x000008c4 +_08114D3C: + ldr r0, _08114D48 @ =0x000008c4 + add r0, r9 + adds r0, r7, r0 + movs r1, 0 + b _08114D74 + .align 2, 0 +_08114D48: .4byte 0x000008c4 +_08114D4C: + ldr r0, _08114D58 @ =0x000008c4 + add r0, r9 + adds r0, r7, r0 + strb r3, [r0] + b _08114D76 + .align 2, 0 +_08114D58: .4byte 0x000008c4 +_08114D5C: + ldr r0, _08114D68 @ =0x000008c4 + add r0, r9 + adds r0, r7, r0 + movs r1, 0 + b _08114D74 + .align 2, 0 +_08114D68: .4byte 0x000008c4 +_08114D6C: + ldr r1, _08114DAC @ =0x000008c4 + adds r0, r6, r1 + adds r0, r5, r0 + movs r1, 0x4 +_08114D74: + strb r1, [r0] +_08114D76: + mov r3, r10 + ldr r2, _08114DB0 @ =0x02014800 + adds r0, r2, 0 + adds r0, 0x84 + ldr r4, [sp] + adds r0, r4, r0 + adds r4, r2, 0 +_08114D84: + ldrb r0, [r0] + cmp r3, r0 + bge _08114D8E + bl _08114410 +_08114D8E: + ldr r5, [sp, 0x8] + str r5, [sp] + cmp r5, 0x3F + bgt _08114D9A + bl _081143F2 +_08114D9A: + ldr r0, [sp, 0x4] + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08114DAC: .4byte 0x000008c4 +_08114DB0: .4byte 0x02014800 + thumb_func_end unref_sub_81143CC + + thumb_func_start sub_8114DB4 +sub_8114DB4: @ 8114DB4 + push {lr} + lsls r1, 24 + lsrs r3, r1, 24 + ldr r2, _08114DDC @ =0x02014800 + lsrs r1, 25 + lsls r1, 2 + lsls r0, 7 + adds r1, r0 + ldr r0, _08114DE0 @ =0x000040c4 + adds r2, r0 + adds r1, r2 + ldr r2, [r1] + movs r0, 0x1 + ands r3, r0 + cmp r3, 0 + beq _08114DE4 + ldrb r0, [r2] + movs r1, 0xF0 + b _08114DE8 + .align 2, 0 +_08114DDC: .4byte 0x02014800 +_08114DE0: .4byte 0x000040c4 +_08114DE4: + ldrb r0, [r2] + movs r1, 0xF +_08114DE8: + orrs r0, r1 + strb r0, [r2] + pop {r0} + bx r0 + thumb_func_end sub_8114DB4 + + thumb_func_start sub_8114DF0 +sub_8114DF0: @ 8114DF0 + push {lr} + lsls r1, 24 + lsrs r3, r1, 24 + ldr r2, _08114E28 @ =0x02014800 + lsrs r1, 25 + lsls r1, 2 + lsls r0, 7 + adds r1, r0 + ldr r0, _08114E2C @ =0x000040c4 + adds r2, r0 + adds r1, r2 + ldr r2, [r1] + movs r0, 0xC0 + lsls r0, 7 + adds r1, r2, r0 + movs r0, 0x1 + ands r3, r0 + cmp r3, 0 + beq _08114E30 + ldrb r1, [r1] + movs r0, 0xF0 + ands r0, r1 + cmp r0, 0 + bne _08114E42 + ldrb r1, [r2] + movs r0, 0xF + b _08114E3E + .align 2, 0 +_08114E28: .4byte 0x02014800 +_08114E2C: .4byte 0x000040c4 +_08114E30: + ldrb r1, [r1] + movs r0, 0xF + ands r0, r1 + cmp r0, 0 + bne _08114E42 + ldrb r1, [r2] + movs r0, 0xF0 +_08114E3E: + ands r0, r1 + strb r0, [r2] +_08114E42: + pop {r0} + bx r0 + thumb_func_end sub_8114DF0 + + thumb_func_start sub_8114E48 +sub_8114E48: @ 8114E48 + push {r4-r7,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r1, _08114E6C @ =0x02014800 + ldr r2, _08114E70 @ =0x0000a0c4 + adds r0, r1, r2 + ldrb r0, [r0] + adds r5, r1, 0 + cmp r0, 0 + bne _08114E60 + b _08114F5E +_08114E60: + movs r1, 0 + movs r3, 0 + cmp r4, 0 + bne _08114E74 + movs r1, 0x1 + b _08114EA6 + .align 2, 0 +_08114E6C: .4byte 0x02014800 +_08114E70: .4byte 0x0000a0c4 +_08114E74: + subs r0, r4, 0x1 + lsls r0, 5 + adds r2, r3, r0 + adds r0, r5, 0 + adds r0, 0xC4 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _08114EA6 + ldr r7, _08114EC4 @ =0x000008c4 + adds r0, r5, r7 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _08114EA6 + adds r3, 0x1 + cmp r3, 0x1F + bgt _08114EA6 + cmp r4, 0 + bne _08114E74 + lsls r0, r1, 24 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r1, r0, 24 +_08114EA6: + cmp r3, 0x20 + bne _08114EB4 + lsls r0, r1, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r1, r0, 24 +_08114EB4: + movs r3, 0 + cmp r4, 0x3F + bne _08114EC8 + lsls r0, r1, 24 + movs r7, 0x80 + lsls r7, 17 + adds r0, r7 + b _08114EF8 + .align 2, 0 +_08114EC4: .4byte 0x000008c4 +_08114EC8: + adds r0, r4, 0x1 + lsls r0, 5 + adds r2, r3, r0 + adds r0, r5, 0 + adds r0, 0xC4 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _08114EFA + ldr r7, _08114F64 @ =0x000008c4 + adds r0, r5, r7 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _08114EFA + adds r3, 0x1 + cmp r3, 0x1F + bgt _08114EFA + cmp r4, 0x3F + bne _08114EC8 + lsls r0, r1, 24 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 +_08114EF8: + lsrs r1, r0, 24 +_08114EFA: + cmp r3, 0x20 + bne _08114F08 + lsls r0, r1, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r1, r0, 24 +_08114F08: + cmp r1, 0x2 + beq _08114F5E + subs r0, r6, 0x2 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r0, 0 + bge _08114F18 + movs r1, 0 +_08114F18: + adds r0, r6, 0x2 + lsls r0, 24 + lsrs r2, r0, 24 + asrs r0, 24 + cmp r0, 0x3F + ble _08114F26 + movs r2, 0x3F +_08114F26: + lsls r1, 24 + asrs r3, r1, 24 + lsls r0, r2, 24 + asrs r2, r0, 24 + adds r6, r1, 0 + adds r7, r0, 0 + cmp r3, r2 + bge _08114F7C + cmp r4, 0 + beq _08114F7C + subs r0, r4, 0x1 + lsls r5, r0, 7 + ldr r0, _08114F68 @ =0x020188c4 + mov r12, r0 +_08114F42: + asrs r0, r3, 1 + lsls r0, 2 + adds r0, r5 + add r0, r12 + ldr r1, [r0] + movs r0, 0x1 + ands r0, r3 + cmp r0, 0 + beq _08114F6C + ldrb r1, [r1] + movs r0, 0xF0 +_08114F58: + ands r0, r1 + cmp r0, 0 + beq _08114F72 +_08114F5E: + movs r0, 0x1 + b _08114FCA + .align 2, 0 +_08114F64: .4byte 0x000008c4 +_08114F68: .4byte 0x020188c4 +_08114F6C: + ldrb r1, [r1] + movs r0, 0xF + b _08114F58 +_08114F72: + adds r3, 0x1 + cmp r3, r2 + bge _08114F7C + cmp r4, 0 + bne _08114F42 +_08114F7C: + asrs r3, r6, 24 + asrs r1, r7, 24 + cmp r3, r1 + bge _08114FC8 + cmp r4, 0x3F + beq _08114FC8 + adds r0, r4, 0x1 + lsls r5, r0, 7 + ldr r6, _08114FB0 @ =0x020188c4 + adds r2, r1, 0 +_08114F90: + asrs r0, r3, 1 + lsls r0, 2 + adds r0, r5 + adds r0, r6 + ldr r1, [r0] + movs r0, 0x1 + ands r0, r3 + cmp r0, 0 + beq _08114FB4 + ldrb r1, [r1] + movs r0, 0xF0 + ands r0, r1 + cmp r0, 0 + beq _08114FBE + b _08114F5E + .align 2, 0 +_08114FB0: .4byte 0x020188c4 +_08114FB4: + ldrb r1, [r1] + movs r0, 0xF + ands r0, r1 + cmp r0, 0 + bne _08114F5E +_08114FBE: + adds r3, 0x1 + cmp r3, r2 + bge _08114FC8 + cmp r4, 0x3F + bne _08114F90 +_08114FC8: + movs r0, 0 +_08114FCA: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8114E48 + + thumb_func_start nullsub_73 +nullsub_73: @ 8114FD0 + bx lr + thumb_func_end nullsub_73 + + thumb_func_start sub_8114FD4 +sub_8114FD4: @ 8114FD4 + push {lr} + ldr r1, _08115034 @ =REG_BG0CNT + ldr r2, _08115038 @ =0x00009803 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x8 + ldr r0, _0811503C @ =gUnknown_030042A4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _08115040 @ =gUnknown_030042A0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _08115044 @ =gUnknown_030042C0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _08115048 @ =gUnknown_030041B4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0811504C @ =gUnknown_03004288 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _08115050 @ =gUnknown_03004280 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _08115054 @ =gUnknown_030041B0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _08115058 @ =gUnknown_030041B8 + ldrh r0, [r0] + strh r0, [r1] + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_8089668 + pop {r0} + bx r0 + .align 2, 0 +_08115034: .4byte REG_BG0CNT +_08115038: .4byte 0x00009803 +_0811503C: .4byte gUnknown_030042A4 +_08115040: .4byte gUnknown_030042A0 +_08115044: .4byte gUnknown_030042C0 +_08115048: .4byte gUnknown_030041B4 +_0811504C: .4byte gUnknown_03004288 +_08115050: .4byte gUnknown_03004280 +_08115054: .4byte gUnknown_030041B0 +_08115058: .4byte gUnknown_030041B8 + thumb_func_end sub_8114FD4 + + thumb_func_start sub_811505C +sub_811505C: @ 811505C + push {lr} + ldr r1, _081150B4 @ =REG_BG0HOFS + ldr r0, _081150B8 @ =gUnknown_030042A4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _081150BC @ =gUnknown_030042A0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _081150C0 @ =gUnknown_030042C0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _081150C4 @ =gUnknown_030041B4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _081150C8 @ =gUnknown_03004288 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _081150CC @ =gUnknown_03004280 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _081150D0 @ =gUnknown_030041B0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _081150D4 @ =gUnknown_030041B8 + ldrh r0, [r0] + strh r0, [r1] + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_8089668 + pop {r0} + bx r0 + .align 2, 0 +_081150B4: .4byte REG_BG0HOFS +_081150B8: .4byte gUnknown_030042A4 +_081150BC: .4byte gUnknown_030042A0 +_081150C0: .4byte gUnknown_030042C0 +_081150C4: .4byte gUnknown_030041B4 +_081150C8: .4byte gUnknown_03004288 +_081150CC: .4byte gUnknown_03004280 +_081150D0: .4byte gUnknown_030041B0 +_081150D4: .4byte gUnknown_030041B8 + thumb_func_end sub_811505C + + thumb_func_start sub_81150D8 +sub_81150D8: @ 81150D8 + push {lr} + ldr r0, _081150F4 @ =gUnknown_02024D1E + ldrb r1, [r0, 0x1] + lsls r1, 28 + movs r0, 0x90 + lsls r0, 23 + adds r1, r0 + lsrs r1, 24 + movs r0, 0xC8 + bl sub_814A880 + pop {r0} + bx r0 + .align 2, 0 +_081150F4: .4byte gUnknown_02024D1E + thumb_func_end sub_81150D8 + + thumb_func_start nullsub_24 +nullsub_24: @ 81150F8 + bx lr + thumb_func_end nullsub_24 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s new file mode 100644 index 000000000..3e811cd88 --- /dev/null +++ b/asm/fldeff_strength.s @@ -0,0 +1,152 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start SetUpFieldMove_Strength +SetUpFieldMove_Strength: @ 811A99C + push {lr} + bl sub_81474C8 + lsls r0, 24 + cmp r0, 0 + beq _0811A9D4 + ldr r1, _0811A9BC @ =gScriptResult + ldr r0, _0811A9C0 @ =gUnknown_03005CE0 + ldrb r0, [r0] + strh r0, [r1] + ldr r1, _0811A9C4 @ =gUnknown_0300485C + ldr r0, _0811A9C8 @ =sub_808AB90 + str r0, [r1] + ldr r1, _0811A9CC @ =gUnknown_03005CE4 + ldr r0, _0811A9D0 @ =sub_811AA38 + b _0811A9F8 + .align 2, 0 +_0811A9BC: .4byte gScriptResult +_0811A9C0: .4byte gUnknown_03005CE0 +_0811A9C4: .4byte gUnknown_0300485C +_0811A9C8: .4byte sub_808AB90 +_0811A9CC: .4byte gUnknown_03005CE4 +_0811A9D0: .4byte sub_811AA38 +_0811A9D4: + movs r0, 0x57 + bl npc_before_player_of_type + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0811A9E6 + movs r0, 0 + b _0811A9FC +_0811A9E6: + ldr r1, _0811AA00 @ =gScriptResult + ldr r0, _0811AA04 @ =gUnknown_03005CE0 + ldrb r0, [r0] + strh r0, [r1] + ldr r1, _0811AA08 @ =gUnknown_0300485C + ldr r0, _0811AA0C @ =sub_808AB90 + str r0, [r1] + ldr r1, _0811AA10 @ =gUnknown_03005CE4 + ldr r0, _0811AA14 @ =sub_811AA18 +_0811A9F8: + str r0, [r1] + movs r0, 0x1 +_0811A9FC: + pop {r1} + bx r1 + .align 2, 0 +_0811AA00: .4byte gScriptResult +_0811AA04: .4byte gUnknown_03005CE0 +_0811AA08: .4byte gUnknown_0300485C +_0811AA0C: .4byte sub_808AB90 +_0811AA10: .4byte gUnknown_03005CE4 +_0811AA14: .4byte sub_811AA18 + thumb_func_end SetUpFieldMove_Strength + + thumb_func_start sub_811AA18 +sub_811AA18: @ 811AA18 + push {lr} + ldr r1, _0811AA2C @ =gUnknown_0202FF84 + ldr r0, _0811AA30 @ =gUnknown_03005CE0 + ldrb r0, [r0] + str r0, [r1] + ldr r0, _0811AA34 @ =UseStrengthScript + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_0811AA2C: .4byte gUnknown_0202FF84 +_0811AA30: .4byte gUnknown_03005CE0 +_0811AA34: .4byte UseStrengthScript + thumb_func_end sub_811AA18 + + thumb_func_start sub_811AA38 +sub_811AA38: @ 811AA38 + push {lr} + ldr r0, _0811AA4C @ =gUnknown_0202FF84 + ldr r1, _0811AA50 @ =gUnknown_03005CE0 + ldrb r1, [r1] + str r1, [r0] + movs r0, 0x28 + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_0811AA4C: .4byte gUnknown_0202FF84 +_0811AA50: .4byte gUnknown_03005CE0 + thumb_func_end sub_811AA38 + + thumb_func_start FldEff_UseStrength +FldEff_UseStrength: @ 811AA54 + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0811AA88 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _0811AA8C @ =sub_811AA9C + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + ldr r0, _0811AA90 @ =gUnknown_0202FF84 + ldr r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0811AA94 @ =gPlayerParty + adds r0, r1 + ldr r1, _0811AA98 @ =gStringVar1 + bl GetMonNickname + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0811AA88: .4byte gTasks +_0811AA8C: .4byte sub_811AA9C +_0811AA90: .4byte gUnknown_0202FF84 +_0811AA94: .4byte gPlayerParty +_0811AA98: .4byte gStringVar1 + thumb_func_end FldEff_UseStrength + + thumb_func_start sub_811AA9C +sub_811AA9C: @ 811AA9C + push {lr} + bl sub_81474C8 + lsls r0, 24 + cmp r0, 0 + beq _0811AAAE + bl sub_8147514 + b _0811AAB8 +_0811AAAE: + movs r0, 0x28 + bl FieldEffectActiveListRemove + bl EnableBothScriptContexts +_0811AAB8: + pop {r0} + bx r0 + thumb_func_end sub_811AA9C + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/landmark.s b/asm/landmark.s new file mode 100644 index 000000000..7eed817a4 --- /dev/null +++ b/asm/landmark.s @@ -0,0 +1,132 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_811A8CC +sub_811A8CC: @ 811A8CC + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r5, r2, 24 + bl sub_811A920 + adds r4, r0, 0 + cmp r4, 0 + bne _0811A8E8 +_0811A8E4: + movs r0, 0 + b _0811A91A +_0811A8E8: + ldr r6, _0811A8EC @ =0x0000ffff + b _0811A8FE + .align 2, 0 +_0811A8EC: .4byte 0x0000ffff +_0811A8F0: + subs r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_0811A8F6: + adds r4, 0x4 + ldr r0, [r4] + cmp r0, 0 + beq _0811A8E4 +_0811A8FE: + ldr r1, [r4] + ldrh r0, [r1, 0x4] + cmp r0, r6 + beq _0811A912 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0811A8F6 +_0811A912: + cmp r5, 0 + bne _0811A8F0 + ldr r0, [r4] + ldr r0, [r0] +_0811A91A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_811A8CC + + thumb_func_start sub_811A920 +sub_811A920: @ 811A920 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + movs r2, 0 + ldr r0, _0811A964 @ =gLandmarkLists + ldrb r1, [r0] + adds r4, r0, 0 + cmp r1, 0x58 + beq _0811A990 + adds r1, r4, 0 +_0811A938: + lsls r0, r2, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, r3 + bhi _0811A990 + cmp r0, r3 + beq _0811A956 + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + lsls r0, r2, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x58 + bne _0811A938 +_0811A956: + lsls r0, r2, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x58 + bne _0811A970 + b _0811A990 + .align 2, 0 +_0811A964: .4byte gLandmarkLists +_0811A968: + adds r0, r4, 0x4 + adds r0, r1, r0 + ldr r0, [r0] + b _0811A992 +_0811A970: + cmp r0, r3 + bne _0811A990 + ldr r5, _0811A998 @ =gLandmarkLists +_0811A976: + lsls r1, r2, 3 + adds r0, r1, r5 + ldrb r0, [r0, 0x1] + cmp r0, r6 + beq _0811A968 + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + lsls r0, r2, 3 + adds r0, r4 + ldrb r0, [r0] + cmp r0, r3 + beq _0811A976 +_0811A990: + movs r0, 0 +_0811A992: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0811A998: .4byte gLandmarkLists + thumb_func_end sub_811A920 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s new file mode 100644 index 000000000..0c52c8580 --- /dev/null +++ b/asm/pokedex_area_screen.s @@ -0,0 +1,2371 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start unref_sub_8110664 +unref_sub_8110664: @ 8110664 + push {lr} + ldr r3, _08110678 @ =0x02000000 + str r1, [r3, 0x4] + str r2, [r3, 0x8] + strh r0, [r3, 0xE] + ldr r0, _0811067C @ =sub_8110680 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08110678: .4byte 0x02000000 +_0811067C: .4byte sub_8110680 + thumb_func_end unref_sub_8110664 + + thumb_func_start sub_8110680 +sub_8110680: @ 8110680 + push {r4,lr} + sub sp, 0x4 + ldr r0, _0811069C @ =gMain + ldr r1, _081106A0 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x7 + bls _08110692 + b _081107C0 +_08110692: + lsls r0, 2 + ldr r1, _081106A4 @ =_081106A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811069C: .4byte gMain +_081106A0: .4byte 0x0000043c +_081106A4: .4byte _081106A8 + .align 2, 0 +_081106A8: + .4byte _081106C8 + .4byte _08110720 + .4byte _08110740 + .4byte _08110746 + .4byte _08110752 + .4byte _08110770 + .4byte _08110782 + .4byte _081107A8 +_081106C8: + movs r0, 0 + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xC4 + lsls r2, 7 + adds r0, r2, 0 + strh r0, [r1] + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + bl FreeSpriteTileRanges + bl FreeAllSpritePalettes + ldr r0, _08110710 @ =REG_BG0HOFS + movs r1, 0 + strh r1, [r0] + ldr r2, _08110714 @ =REG_BG0VOFS + ldr r3, _08110718 @ =0x0000fff8 + adds r0, r3, 0 + strh r0, [r2] + ldr r0, _0811071C @ =REG_BG2VOFS + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + b _081107C0 + .align 2, 0 +_08110710: .4byte REG_BG0HOFS +_08110714: .4byte REG_BG0VOFS +_08110718: .4byte 0x0000fff8 +_0811071C: .4byte REG_BG2VOFS +_08110720: + ldr r4, _0811073C @ =0x020006e8 + adds r0, r4, 0 + movs r1, 0 + bl sub_80FA8EC + movs r0, 0x88 + lsls r0, 4 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x10 + bl StringFill + b _081107C0 + .align 2, 0 +_0811073C: .4byte 0x020006e8 +_08110740: + bl sub_8110824 + b _081107C0 +_08110746: + bl sub_8110838 + lsls r0, 24 + cmp r0, 0 + bne _081107CC + b _081107C0 +_08110752: + movs r0, 0x1 + movs r1, 0x1 + bl sub_80FBCF0 + movs r1, 0x8 + negs r1, r1 + movs r0, 0 + bl sub_80FB2A4 + ldr r0, _0811076C @ =sub_81107DC + bl SetVBlankCallback + b _081107C0 + .align 2, 0 +_0811076C: .4byte sub_81107DC +_08110770: + movs r0, 0x15 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _081107C0 +_08110782: + ldr r1, _0811079C @ =REG_BLDCNT + ldr r2, _081107A0 @ =0x00003f41 + adds r0, r2, 0 + strh r0, [r1] + bl sub_8111084 + movs r1, 0x80 + lsls r1, 19 + ldr r3, _081107A4 @ =0x00007741 + adds r0, r3, 0 + strh r0, [r1] + b _081107C0 + .align 2, 0 +_0811079C: .4byte REG_BLDCNT +_081107A0: .4byte 0x00003f41 +_081107A4: .4byte 0x00007741 +_081107A8: + ldr r0, _081107B8 @ =sub_8111288 + bl sub_8110814 + ldr r0, _081107BC @ =sub_81107F0 + bl SetMainCallback2 + b _081107CC + .align 2, 0 +_081107B8: .4byte sub_8111288 +_081107BC: .4byte sub_81107F0 +_081107C0: + ldr r1, _081107D4 @ =gMain + ldr r0, _081107D8 @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_081107CC: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081107D4: .4byte gMain +_081107D8: .4byte 0x0000043c + thumb_func_end sub_8110680 + + thumb_func_start sub_81107DC +sub_81107DC: @ 81107DC + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_81107DC + + thumb_func_start sub_81107F0 +sub_81107F0: @ 81107F0 + push {lr} + ldr r0, _08110810 @ =0x02000000 + ldr r0, [r0] + bl _call_via_r0 + bl sub_8111110 + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + .align 2, 0 +_08110810: .4byte 0x02000000 + thumb_func_end sub_81107F0 + + thumb_func_start sub_8110814 +sub_8110814: @ 8110814 + ldr r1, _08110820 @ =0x02000000 + str r0, [r1] + movs r0, 0 + strh r0, [r1, 0xC] + bx lr + .align 2, 0 +_08110820: .4byte 0x02000000 + thumb_func_end sub_8110814 + + thumb_func_start sub_8110824 +sub_8110824: @ 8110824 + ldr r0, _08110834 @ =0x02000000 + movs r1, 0x8A + lsls r1, 1 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + bx lr + .align 2, 0 +_08110834: .4byte 0x02000000 + thumb_func_end sub_8110824 + + thumb_func_start sub_8110838 +sub_8110838: @ 8110838 + push {lr} + ldr r1, _08110854 @ =0x02000000 + movs r2, 0x8A + lsls r2, 1 + adds r0, r1, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0x5 + bhi _081108E4 + lsls r0, 2 + ldr r1, _08110858 @ =_0811085C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08110854: .4byte 0x02000000 +_08110858: .4byte _0811085C + .align 2, 0 +_0811085C: + .4byte _08110874 + .4byte _08110884 + .4byte _0811088A + .4byte _0811089C + .4byte _081108C0 + .4byte _081108D0 +_08110874: + ldr r0, _08110880 @ =0x02000000 + ldrh r0, [r0, 0xE] + bl sub_8110908 + b _081108F0 + .align 2, 0 +_08110880: .4byte 0x02000000 +_08110884: + bl sub_8110C34 + b _081108F0 +_0811088A: + ldr r0, _08110894 @ =gUnknown_083F8438 + ldr r1, _08110898 @ =0x0600c000 + bl LZ77UnCompVram + b _081108F0 + .align 2, 0 +_08110894: .4byte gUnknown_083F8438 +_08110898: .4byte 0x0600c000 +_0811089C: + ldr r1, _081108B0 @ =0x040000d4 + ldr r0, _081108B4 @ =0x02000116 + str r0, [r1] + ldr r0, _081108B8 @ =0x0600f000 + str r0, [r1, 0x4] + ldr r0, _081108BC @ =0x80000280 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + b _081108F0 + .align 2, 0 +_081108B0: .4byte 0x040000d4 +_081108B4: .4byte 0x02000116 +_081108B8: .4byte 0x0600f000 +_081108BC: .4byte 0x80000280 +_081108C0: + ldr r0, _081108CC @ =gUnknown_083F8418 + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + b _081108F0 + .align 2, 0 +_081108CC: .4byte gUnknown_083F8418 +_081108D0: + ldr r1, _081108E8 @ =REG_BG0CNT + ldr r3, _081108EC @ =0x00001e0d + adds r0, r3, 0 + strh r0, [r1] + movs r0, 0x8A + lsls r0, 1 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_081108E4: + movs r0, 0 + b _08110900 + .align 2, 0 +_081108E8: .4byte REG_BG0CNT +_081108EC: .4byte 0x00001e0d +_081108F0: + ldr r1, _08110904 @ =0x02000000 + movs r2, 0x8A + lsls r2, 1 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_08110900: + pop {r1} + bx r1 + .align 2, 0 +_08110904: .4byte 0x02000000 + thumb_func_end sub_8110838 + + thumb_func_start sub_8110908 +sub_8110908: @ 8110908 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 16 + lsrs r7, r0, 16 + .ifdef SAPPHIRE + ldr r0, _sub_8110908_Latias @ =407 + .else + @ Latios + movs r0, 0xCC + lsls r0, 1 + .endif + cmp r7, r0 + bne _0811091E + b _08110A44 +_0811091E: + ldr r2, _08110988 @ =0x02000000 + movs r1, 0x88 + lsls r1, 1 + adds r0, r2, r1 + movs r1, 0 + strh r1, [r0] + movs r3, 0x89 + lsls r3, 1 + adds r0, r2, r3 + strh r1, [r0] + movs r6, 0 + ldr r1, _0811098C @ =gUnknown_083F856C +_08110936: + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r7 + bne _08110942 + b _08110A8C +_08110942: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0 + beq _08110936 + movs r6, 0 + ldr r4, _08110990 @ =gUnknown_083F856E + ldrh r0, [r4] + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _081109D0 + mov r8, r4 + adds r5, r4, 0x4 + mov r9, r1 +_08110960: + lsls r0, r6, 1 + adds r1, r0, r6 + lsls r2, r1, 1 + mov r3, r8 + adds r1, r2, r3 + adds r3, r0, 0 + ldrh r1, [r1] + cmp r7, r1 + bne _081109BA + adds r0, r4, 0x2 + adds r0, r2, r0 + ldrh r0, [r0] + cmp r0, 0x18 + beq _081109A6 + cmp r0, 0x18 + bgt _08110994 + cmp r0, 0 + beq _0811099A + b _081109BA + .align 2, 0 + .ifdef SAPPHIRE +_sub_8110908_Latias: .4byte 407 + .endif +_08110988: .4byte 0x02000000 +_0811098C: .4byte gUnknown_083F856C +_08110990: .4byte gUnknown_083F856E +_08110994: + cmp r0, 0x1A + beq _081109A6 + b _081109BA +_0811099A: + adds r0, r2, r5 + ldrh r1, [r0] + movs r0, 0 + bl sub_8110A98 + b _081109BA +_081109A6: + adds r1, r3, r6 + lsls r1, 1 + mov r0, r8 + adds r0, 0x2 + adds r0, r1, r0 + ldrh r0, [r0] + adds r1, r5 + ldrh r1, [r1] + bl sub_8110AE4 +_081109BA: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r4, _08110A00 @ =gUnknown_083F856E + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 1 + adds r0, r4 + ldrh r0, [r0] + cmp r0, r9 + bne _08110960 +_081109D0: + movs r6, 0 + ldr r1, _08110A04 @ =gWildMonHeaders + ldrb r0, [r1] + cmp r0, 0xFF + beq _08110A8C +_081109DA: + lsls r4, r6, 2 + adds r0, r4, r6 + lsls r0, 2 + adds r5, r0, r1 + adds r0, r5, 0 + adds r1, r7, 0 + bl sub_8110BA4 + lsls r0, 24 + cmp r0, 0 + beq _08110A28 + ldrb r0, [r5] + cmp r0, 0x18 + beq _08110A18 + cmp r0, 0x18 + bgt _08110A08 + cmp r0, 0 + beq _08110A0E + b _08110A28 + .align 2, 0 +_08110A00: .4byte gUnknown_083F856E +_08110A04: .4byte gWildMonHeaders +_08110A08: + cmp r0, 0x1A + beq _08110A18 + b _08110A28 +_08110A0E: + ldrb r1, [r5, 0x1] + movs r0, 0 + bl sub_8110A98 + b _08110A28 +_08110A18: + ldr r0, _08110A40 @ =gWildMonHeaders + adds r1, r4, r6 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + bl sub_8110AE4 +_08110A28: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, _08110A40 @ =gWildMonHeaders + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _081109DA + b _08110A8C + .align 2, 0 +_08110A40: .4byte gWildMonHeaders +_08110A44: + ldr r4, _08110A7C @ =0x02000000 + movs r0, 0x89 + lsls r0, 1 + adds r1, r4, r0 + movs r0, 0 + strh r0, [r1] + ldr r0, _08110A80 @ =gSaveBlock1 + 0x3144 + ldrb r2, [r0, 0x13] + cmp r2, 0 + beq _08110A84 + adds r0, r4, 0 + adds r0, 0x10 + adds r1, r4, 0 + adds r1, 0x11 + bl sub_8134538 + ldrb r0, [r4, 0x10] + ldrb r1, [r4, 0x11] + bl get_mapheader_by_bank_and_number + ldrb r0, [r0, 0x14] + strh r0, [r4, 0x12] + movs r3, 0x88 + lsls r3, 1 + adds r1, r4, r3 + movs r0, 0x1 + strh r0, [r1] + b _08110A8C + .align 2, 0 +_08110A7C: .4byte 0x02000000 +_08110A80: .4byte gSaveBlock1 + 0x3144 +_08110A84: + movs r1, 0x88 + lsls r1, 1 + adds r0, r4, r1 + strh r2, [r0] +_08110A8C: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8110908 + + thumb_func_start sub_8110A98 +sub_8110A98: @ 8110A98 + push {r4,r5,lr} + lsls r0, 16 + lsrs r2, r0, 16 + lsls r1, 16 + lsrs r1, 16 + ldr r5, _08110AE0 @ =0x02000000 + movs r0, 0x88 + lsls r0, 1 + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, 0x3F + bhi _08110AD8 + lsls r0, 2 + adds r0, r5 + strb r2, [r0, 0x10] + ldrh r0, [r4] + lsls r0, 2 + adds r0, r5 + strb r1, [r0, 0x11] + adds r0, r2, 0 + bl get_mapheader_by_bank_and_number + ldrb r0, [r0, 0x14] + bl sub_80FBA04 + ldrh r1, [r4] + lsls r1, 2 + adds r1, r5 + strh r0, [r1, 0x12] + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_08110AD8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08110AE0: .4byte 0x02000000 + thumb_func_end sub_8110A98 + + thumb_func_start sub_8110AE4 +sub_8110AE4: @ 8110AE4 + push {r4-r6,lr} + lsls r0, 16 + lsrs r2, r0, 16 + lsls r1, 16 + lsrs r1, 16 + ldr r0, _08110B9C @ =0x02000000 + movs r3, 0x89 + lsls r3, 1 + adds r0, r3 + ldrh r0, [r0] + cmp r0, 0x1F + bhi _08110B96 + adds r0, r2, 0 + bl get_mapheader_by_bank_and_number + adds r6, r0, 0 + ldrb r0, [r6, 0x14] + cmp r0, 0x57 + bhi _08110B96 + movs r4, 0 + ldr r1, _08110BA0 @ =gUnknown_083F857A + ldrh r0, [r1] + cmp r0, 0x58 + beq _08110B42 + adds r5, r1, 0 +_08110B16: + lsls r2, r4, 2 + adds r1, r2, r5 + ldrb r0, [r6, 0x14] + ldrh r1, [r1] + cmp r0, r1 + bne _08110B32 + adds r0, r5, 0x2 + adds r0, r2, r0 + ldrh r0, [r0] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _08110B96 +_08110B32: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + lsls r0, r4, 2 + adds r0, r5 + ldrh r0, [r0] + cmp r0, 0x58 + bne _08110B16 +_08110B42: + movs r4, 0 + ldr r0, _08110B9C @ =0x02000000 + movs r1, 0x89 + lsls r1, 1 + adds r2, r0, r1 + ldrh r3, [r2] + adds r1, r0, 0 + cmp r4, r3 + bcs _08110B76 + movs r0, 0xC4 + lsls r0, 3 + adds r5, r1, r0 + ldrh r0, [r5] + ldrb r2, [r6, 0x14] + cmp r0, r2 + beq _08110B76 +_08110B62: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r3 + bcs _08110B76 + lsls r0, r4, 1 + adds r0, r5 + ldrh r0, [r0] + cmp r0, r2 + bne _08110B62 +_08110B76: + movs r3, 0x89 + lsls r3, 1 + adds r2, r1, r3 + ldrh r0, [r2] + cmp r4, r0 + bne _08110B96 + lsls r0, r4, 1 + movs r3, 0xC4 + lsls r3, 3 + adds r1, r3 + adds r0, r1 + ldrb r1, [r6, 0x14] + strh r1, [r0] + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] +_08110B96: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08110B9C: .4byte 0x02000000 +_08110BA0: .4byte gUnknown_083F857A + thumb_func_end sub_8110AE4 + + thumb_func_start sub_8110BA4 +sub_8110BA4: @ 8110BA4 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r1, 16 + lsrs r4, r1, 16 + adds r6, r4, 0 + ldr r0, [r5, 0x4] + adds r1, r4, 0 + movs r2, 0xC + bl sub_8110BFC + lsls r0, 24 + cmp r0, 0 + bne _08110BF2 + ldr r0, [r5, 0x8] + adds r1, r4, 0 + movs r2, 0x5 + bl sub_8110BFC + lsls r0, 24 + cmp r0, 0 + bne _08110BF2 + ldr r0, [r5, 0x10] + adds r1, r4, 0 + movs r2, 0xC + bl sub_8110BFC + lsls r0, 24 + cmp r0, 0 + bne _08110BF2 + ldr r0, [r5, 0xC] + adds r1, r6, 0 + movs r2, 0x5 + bl sub_8110BFC + lsls r0, 24 + cmp r0, 0 + bne _08110BF2 + movs r0, 0 + b _08110BF4 +_08110BF2: + movs r0, 0x1 +_08110BF4: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8110BA4 + + thumb_func_start sub_8110BFC +sub_8110BFC: @ 8110BFC + push {r4,lr} + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 16 + lsrs r2, 16 + cmp r0, 0 + beq _08110C2A + movs r3, 0 + cmp r3, r2 + bcs _08110C2A + ldr r1, [r0, 0x4] +_08110C12: + lsls r0, r3, 2 + adds r0, r1 + ldrh r0, [r0, 0x2] + cmp r0, r4 + bne _08110C20 + movs r0, 0x1 + b _08110C2C +_08110C20: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r2 + bcc _08110C12 +_08110C2A: + movs r0, 0 +_08110C2C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8110BFC + + thumb_func_start sub_8110C34 +sub_8110C34: @ 8110C34 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + ldr r1, _08110E5C @ =gUnknown_02039260 + movs r0, 0 + strh r0, [r1] + mov r9, r1 + ldr r0, _08110E60 @ =0x02000000 + mov r8, r0 + ldr r1, _08110E64 @ =gUnknown_02039262 + mov r12, r1 + mov r1, r9 + movs r4, 0x8B + lsls r4, 1 + add r4, r8 + ldr r3, _08110E68 @ =0x0000027f + movs r2, 0 +_08110C5C: + ldrh r0, [r1] + lsls r0, 1 + adds r0, r4 + strh r2, [r0] + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, r3 + bls _08110C5C + movs r0, 0 + mov r3, r9 + strh r0, [r3] + movs r1, 0x88 + lsls r1, 1 + add r1, r8 + ldrh r0, [r1] + cmp r0, 0 + beq _08110D04 + ldr r4, _08110E6C @ =gUnknown_02039266 + movs r2, 0 + ldr r5, _08110E64 @ =gUnknown_02039262 + mov r0, r8 + str r0, [sp, 0x8] + movs r1, 0x8B + lsls r1, 1 + add r1, r8 + mov r10, r1 + ldr r6, _08110E70 @ =gUnknown_02039264 + mov r7, r9 +_08110C9A: + strh r2, [r4] + ldr r3, _08110E70 @ =gUnknown_02039264 + strh r2, [r3] +_08110CA0: + mov r0, r12 + strh r2, [r0] +_08110CA4: + ldrh r0, [r5] + ldrh r1, [r6] + str r2, [sp] + bl sub_80FB9A8 + ldrh r1, [r7] + lsls r1, 2 + ldr r3, [sp, 0x8] + adds r1, r3 + lsls r0, 16 + lsrs r0, 16 + ldr r2, [sp] + ldrh r1, [r1, 0x12] + cmp r0, r1 + bne _08110CCC + ldrh r0, [r4] + lsls r0, 1 + add r0, r10 + ldr r1, _08110E74 @ =0x0000ffff + strh r1, [r0] +_08110CCC: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1F + bls _08110CA4 + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + lsls r0, 16 + lsrs r0, 16 + ldr r1, _08110E64 @ =gUnknown_02039262 + mov r12, r1 + cmp r0, 0x13 + bls _08110CA0 + ldrh r0, [r7] + adds r0, 0x1 + strh r0, [r7] + lsls r0, 16 + lsrs r0, 16 + ldr r3, _08110E78 @ =0x02000110 + ldrh r3, [r3] + cmp r0, r3 + bcc _08110C9A +_08110D04: + movs r0, 0 + ldr r1, _08110E6C @ =gUnknown_02039266 + strh r0, [r1] + ldr r3, _08110E70 @ =gUnknown_02039264 + strh r0, [r3] + ldr r6, _08110E64 @ =gUnknown_02039262 + mov r10, r0 + adds r3, r1, 0 + ldr r5, _08110E7C @ =0x02000116 + ldr r4, _08110E74 @ =0x0000ffff + ldr r7, _08110E70 @ =gUnknown_02039264 +_08110D1A: + mov r0, r10 + strh r0, [r6] +_08110D1E: + ldrh r1, [r3] + lsls r0, r1, 1 + adds r0, r5 + ldrh r0, [r0] + cmp r0, r4 + bne _08110E10 + ldrh r0, [r6] + cmp r0, 0 + beq _08110D42 + subs r0, r1, 0x1 + lsls r0, 1 + adds r2, r0, r5 + ldrh r1, [r2] + cmp r1, r4 + beq _08110D42 + movs r0, 0x2 + orrs r0, r1 + strh r0, [r2] +_08110D42: + ldrh r0, [r6] + cmp r0, 0x1F + beq _08110D5C + ldrh r0, [r3] + adds r0, 0x1 + lsls r0, 1 + adds r2, r0, r5 + ldrh r1, [r2] + cmp r1, r4 + beq _08110D5C + movs r0, 0x1 + orrs r0, r1 + strh r0, [r2] +_08110D5C: + ldrh r0, [r7] + cmp r0, 0 + beq _08110D76 + ldrh r0, [r3] + subs r0, 0x20 + lsls r0, 1 + adds r2, r0, r5 + ldrh r1, [r2] + cmp r1, r4 + beq _08110D76 + movs r0, 0x8 + orrs r0, r1 + strh r0, [r2] +_08110D76: + ldrh r0, [r7] + cmp r0, 0x13 + beq _08110D90 + ldrh r0, [r3] + adds r0, 0x20 + lsls r0, 1 + adds r2, r0, r5 + ldrh r1, [r2] + cmp r1, r4 + beq _08110D90 + movs r0, 0x4 + orrs r0, r1 + strh r0, [r2] +_08110D90: + ldrh r0, [r6] + cmp r0, 0 + beq _08110DB0 + ldrh r0, [r7] + cmp r0, 0 + beq _08110DB0 + ldrh r0, [r3] + subs r0, 0x21 + lsls r0, 1 + adds r2, r0, r5 + ldrh r1, [r2] + cmp r1, r4 + beq _08110DB0 + movs r0, 0x10 + orrs r0, r1 + strh r0, [r2] +_08110DB0: + ldrh r0, [r6] + cmp r0, 0x1F + beq _08110DD0 + ldrh r0, [r7] + cmp r0, 0 + beq _08110DD0 + ldrh r0, [r3] + subs r0, 0x1F + lsls r0, 1 + adds r2, r0, r5 + ldrh r1, [r2] + cmp r1, r4 + beq _08110DD0 + movs r0, 0x40 + orrs r0, r1 + strh r0, [r2] +_08110DD0: + ldrh r0, [r6] + cmp r0, 0 + beq _08110DF0 + ldrh r0, [r7] + cmp r0, 0x13 + beq _08110DF0 + ldrh r0, [r3] + adds r0, 0x1F + lsls r0, 1 + adds r2, r0, r5 + ldrh r1, [r2] + cmp r1, r4 + beq _08110DF0 + movs r0, 0x20 + orrs r0, r1 + strh r0, [r2] +_08110DF0: + ldrh r0, [r6] + cmp r0, 0x1F + beq _08110E10 + ldrh r0, [r7] + cmp r0, 0x13 + beq _08110E10 + ldrh r0, [r3] + adds r0, 0x21 + lsls r0, 1 + adds r2, r0, r5 + ldrh r1, [r2] + cmp r1, r4 + beq _08110E10 + movs r0, 0x80 + orrs r0, r1 + strh r0, [r2] +_08110E10: + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1F + bhi _08110E26 + b _08110D1E +_08110E26: + ldrh r0, [r7] + adds r0, 0x1 + strh r0, [r7] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x13 + bhi _08110E36 + b _08110D1A +_08110E36: + movs r0, 0 + mov r1, r9 + strh r0, [r1] +_08110E3C: + mov r3, r9 + ldrh r0, [r3] + lsls r0, 1 + movs r4, 0x8B + lsls r4, 1 + add r4, r8 + adds r3, r0, r4 + ldrh r2, [r3] + adds r1, r2, 0 + ldr r0, _08110E74 @ =0x0000ffff + cmp r1, r0 + bne _08110E80 + movs r0, 0x10 + strh r0, [r3] + b _0811105E + .align 2, 0 +_08110E5C: .4byte gUnknown_02039260 +_08110E60: .4byte 0x02000000 +_08110E64: .4byte gUnknown_02039262 +_08110E68: .4byte 0x0000027f +_08110E6C: .4byte gUnknown_02039266 +_08110E70: .4byte gUnknown_02039264 +_08110E74: .4byte 0x0000ffff +_08110E78: .4byte 0x02000110 +_08110E7C: .4byte 0x02000116 +_08110E80: + cmp r1, 0 + bne _08110E86 + b _0811105E +_08110E86: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _08110E94 + ldr r0, _08110F28 @ =0x0000ffcf + ands r0, r2 + strh r0, [r3] +_08110E94: + mov r1, r9 + ldrh r0, [r1] + lsls r0, 1 + adds r2, r0, r4 + ldrh r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08110EAC + ldr r0, _08110F2C @ =0x0000ff3f + ands r0, r1 + strh r0, [r2] +_08110EAC: + mov r3, r9 + ldrh r0, [r3] + lsls r0, 1 + adds r2, r0, r4 + ldrh r1, [r2] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08110EC4 + ldr r0, _08110F30 @ =0x0000ffaf + ands r0, r1 + strh r0, [r2] +_08110EC4: + mov r1, r9 + ldrh r0, [r1] + lsls r0, 1 + adds r2, r0, r4 + ldrh r1, [r2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08110EDC + ldr r0, _08110F34 @ =0x0000ff5f + ands r0, r1 + strh r0, [r2] +_08110EDC: + ldr r6, _08110F38 @ =gUnknown_02039268 + mov r3, r9 + ldrh r0, [r3] + lsls r0, 1 + adds r0, r4 + ldrh r1, [r0] + movs r5, 0xF + adds r0, r5, 0 + ands r0, r1 + strh r0, [r6] + ldr r2, _08110F3C @ =gUnknown_0203926A + ldrh r0, [r3] + lsls r0, 1 + adds r0, r4 + ldrh r1, [r0] + movs r0, 0xF0 + ands r0, r1 + strh r0, [r2] + ldrh r1, [r3] + adds r3, r2, 0 + cmp r0, 0 + bne _08110F0A + b _0811105E +_08110F0A: + lsls r0, r1, 1 + adds r0, r4 + ldrh r2, [r0] + adds r1, r5, 0 + ands r1, r2 + strh r1, [r0] + ldrh r0, [r6] + cmp r0, 0xA + bls _08110F1E + b _0811105E +_08110F1E: + lsls r0, 2 + ldr r1, _08110F40 @ =_08110F44 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08110F28: .4byte 0x0000ffcf +_08110F2C: .4byte 0x0000ff3f +_08110F30: .4byte 0x0000ffaf +_08110F34: .4byte 0x0000ff5f +_08110F38: .4byte gUnknown_02039268 +_08110F3C: .4byte gUnknown_0203926A +_08110F40: .4byte _08110F44 + .align 2, 0 +_08110F44: + .4byte _08110F70 + .4byte _08110FAC + .4byte _08110F8E + .4byte _0811105E + .4byte _08111002 + .4byte _08111036 + .4byte _08111036 + .4byte _0811105E + .4byte _08110FCE + .4byte _0811104A + .4byte _0811104A +_08110F70: + ldrh r0, [r3] + lsls r1, r0, 16 + cmp r1, 0 + beq _0811105E + mov r0, r9 + ldrh r2, [r0] + lsls r2, 1 + movs r0, 0x8B + lsls r0, 1 + add r0, r8 + adds r2, r0 + ldrh r0, [r2] + adds r0, 0x10 + lsrs r1, 20 + b _08110FC8 +_08110F8E: + ldrh r0, [r3] + lsls r1, r0, 16 + cmp r1, 0 + beq _0811105E + mov r3, r9 + ldrh r2, [r3] + lsls r2, 1 + movs r0, 0x8B + lsls r0, 1 + add r0, r8 + adds r2, r0 + ldrh r0, [r2] + adds r0, 0x1E + lsrs r1, 20 + b _08110FC8 +_08110FAC: + ldrh r0, [r3] + lsls r1, r0, 16 + cmp r1, 0 + beq _0811105E + mov r0, r9 + ldrh r2, [r0] + lsls r2, 1 + movs r0, 0x8B + lsls r0, 1 + add r0, r8 + adds r2, r0 + ldrh r0, [r2] + adds r0, 0x20 + lsrs r1, 22 +_08110FC8: + adds r0, r1 + strh r0, [r2] + b _0811105E +_08110FCE: + ldrh r2, [r3] + cmp r2, 0 + beq _0811105E + movs r0, 0x80 + ands r0, r2 + lsls r0, 16 + lsrs r0, 16 + negs r0, r0 + lsrs r3, r0, 31 + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _08110FEC + movs r0, 0x2 + orrs r3, r0 +_08110FEC: + mov r0, r9 + ldrh r1, [r0] + lsls r1, 1 + movs r0, 0x8B + lsls r0, 1 + add r0, r8 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x20 + adds r0, r3 + b _0811105C +_08111002: + ldrh r2, [r3] + cmp r2, 0 + beq _0811105E + movs r0, 0x40 + ands r0, r2 + lsls r0, 16 + lsrs r0, 16 + negs r0, r0 + lsrs r3, r0, 31 + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + beq _08111020 + movs r0, 0x2 + orrs r3, r0 +_08111020: + mov r0, r9 + ldrh r1, [r0] + lsls r1, 1 + movs r0, 0x8B + lsls r0, 1 + add r0, r8 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x21 + adds r0, r3 + b _0811105C +_08111036: + mov r3, r9 + ldrh r1, [r3] + lsls r1, 1 + movs r0, 0x8B + lsls r0, 1 + add r0, r8 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x27 + b _0811105C +_0811104A: + mov r0, r9 + ldrh r1, [r0] + lsls r1, 1 + movs r0, 0x8B + lsls r0, 1 + add r0, r8 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x25 +_0811105C: + strh r0, [r1] +_0811105E: + mov r3, r9 + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] + lsls r0, 16 + ldr r1, _08111080 @ =0x027f0000 + cmp r0, r1 + bhi _08111070 + b _08110E3C +_08111070: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08111080: .4byte 0x027f0000 + thumb_func_end sub_8110C34 + + thumb_func_start sub_8111084 +sub_8111084: @ 8111084 + push {lr} + ldr r0, _081110AC @ =0x02000000 + movs r2, 0x89 + lsls r2, 1 + adds r1, r0, r2 + ldrh r1, [r1] + adds r2, r0, 0 + cmp r1, 0 + beq _081110B4 + movs r3, 0x88 + lsls r3, 1 + adds r0, r2, r3 + ldrh r0, [r0] + cmp r0, 0 + bne _081110B4 + ldr r0, _081110B0 @ =0x0000061e + adds r1, r2, r0 + movs r0, 0x1 + b _081110BA + .align 2, 0 +_081110AC: .4byte 0x02000000 +_081110B0: .4byte 0x0000061e +_081110B4: + ldr r3, _081110FC @ =0x0000061e + adds r1, r2, r3 + movs r0, 0 +_081110BA: + strb r0, [r1] + ldr r1, _08111100 @ =0x00000616 + adds r0, r2, r1 + movs r1, 0 + strh r1, [r0] + movs r3, 0xC3 + lsls r3, 3 + adds r0, r2, r3 + strh r1, [r0] + adds r3, 0x2 + adds r0, r2, r3 + strh r1, [r0] + ldr r0, _08111104 @ =0x0000061c + adds r1, r2, r0 + movs r0, 0x40 + strh r0, [r1] + adds r3, 0x5 + adds r1, r2, r3 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _08111108 @ =REG_BLDCNT + ldr r2, _0811110C @ =0x00003f41 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0x80 + lsls r3, 5 + adds r0, r3, 0 + strh r0, [r1] + bl sub_8111110 + pop {r0} + bx r0 + .align 2, 0 +_081110FC: .4byte 0x0000061e +_08111100: .4byte 0x00000616 +_08111104: .4byte 0x0000061c +_08111108: .4byte REG_BLDCNT +_0811110C: .4byte 0x00003f41 + thumb_func_end sub_8111084 + + thumb_func_start sub_8111110 +sub_8111110: @ 8111110 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _0811114C @ =0x02000000 + ldr r2, _08111150 @ =0x0000061e + adds r1, r0, r2 + ldrb r1, [r1] + adds r5, r0, 0 + cmp r1, 0 + bne _081111DE + ldr r3, _08111154 @ =0x00000616 + adds r1, r5, r3 + ldrh r0, [r1] + cmp r0, 0 + bne _081111D8 + movs r1, 0xC3 + lsls r1, 3 + adds r0, r5, r1 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08111158 + subs r2, 0x4 + adds r0, r5, r2 + b _0811115C + .align 2, 0 +_0811114C: .4byte 0x02000000 +_08111150: .4byte 0x0000061e +_08111154: .4byte 0x00000616 +_08111158: + ldr r3, _081111C0 @ =0x0000061c + adds r0, r5, r3 +_0811115C: + ldrh r1, [r0] + adds r1, 0x4 + movs r2, 0x7F + ands r1, r2 + strh r1, [r0] + ldr r2, _081111C4 @ =gSineTable + ldr r1, _081111C8 @ =0x0000061a + adds r0, r5, r1 + ldrh r0, [r0] + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + lsls r1, 16 + asrs r1, 20 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _081111C0 @ =0x0000061c + adds r0, r5, r3 + ldrh r0, [r0] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 20 + lsls r0, 16 + ldr r2, _081111CC @ =REG_BLDALPHA + lsrs r0, 8 + orrs r1, r0 + strh r1, [r2] + ldr r1, _081111D0 @ =0x00000616 + adds r0, r5, r1 + movs r2, 0 + strh r2, [r0] + subs r3, 0x4 + adds r1, r5, r3 + ldrh r0, [r1] + cmp r0, 0x40 + bne _0811126E + strh r2, [r1] + movs r1, 0x89 + lsls r1, 1 + adds r0, r5, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _0811126E + ldr r2, _081111D4 @ =0x0000061e + adds r1, r5, r2 + movs r0, 0x1 + b _0811126C + .align 2, 0 +_081111C0: .4byte 0x0000061c +_081111C4: .4byte gSineTable +_081111C8: .4byte 0x0000061a +_081111CC: .4byte REG_BLDALPHA +_081111D0: .4byte 0x00000616 +_081111D4: .4byte 0x0000061e +_081111D8: + subs r0, 0x1 + strh r0, [r1] + b _0811126E +_081111DE: + ldr r3, _0811127C @ =0x00000616 + adds r1, r5, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xC + bls _0811126E + movs r0, 0 + strh r0, [r1] + ldr r0, _08111280 @ =0x0000061f + adds r1, r5, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r4, 0 + movs r2, 0x89 + lsls r2, 1 + adds r0, r5, r2 + ldrh r3, [r0] + cmp r4, r3 + bcs _0811124C + movs r2, 0xCC + lsls r2, 3 + adds r2, r5 + mov r9, r2 + mov r8, r1 + movs r3, 0x1 + mov r12, r3 + adds r6, r0, 0 + movs r7, 0x5 + negs r7, r7 +_08111220: + lsls r0, r4, 2 + add r0, r9 + ldr r3, [r0] + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x1 + adds r3, 0x3E + ands r1, r0 + mov r2, r12 + ands r1, r2 + lsls r1, 2 + ldrb r2, [r3] + adds r0, r7, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldrh r3, [r6] + cmp r4, r3 + bcc _08111220 +_0811124C: + ldr r0, _08111280 @ =0x0000061f + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, 0x4 + bls _0811126E + movs r0, 0x1 + strb r0, [r1] + movs r1, 0x88 + lsls r1, 1 + adds r0, r5, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _0811126E + ldr r2, _08111284 @ =0x0000061e + adds r1, r5, r2 + movs r0, 0 +_0811126C: + strb r0, [r1] +_0811126E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811127C: .4byte 0x00000616 +_08111280: .4byte 0x0000061f +_08111284: .4byte 0x0000061e + thumb_func_end sub_8111110 + + thumb_func_start sub_8111288 +sub_8111288: @ 8111288 + push {lr} + ldr r1, _08111298 @ =0x02000000 + ldrh r0, [r1, 0xC] + cmp r0, 0 + beq _0811129C + cmp r0, 0x1 + beq _081112A2 + b _081112B2 + .align 2, 0 +_08111298: .4byte 0x02000000 +_0811129C: + movs r0, 0x1 + strh r0, [r1, 0xC] + b _081112B2 +_081112A2: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _081112B2 + ldr r0, _081112B8 @ =sub_81112BC + bl sub_8110814 +_081112B2: + pop {r0} + bx r0 + .align 2, 0 +_081112B8: .4byte sub_81112BC + thumb_func_end sub_8111288 + + thumb_func_start sub_81112BC +sub_81112BC: @ 81112BC + push {lr} + ldr r0, _081112DC @ =0x02000000 + ldrh r0, [r0, 0xC] + cmp r0, 0 + bne _08111308 + ldr r0, _081112E0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081112E8 + ldr r0, _081112E4 @ =sub_8111314 + bl sub_8110814 + b _08111308 + .align 2, 0 +_081112DC: .4byte 0x02000000 +_081112E0: .4byte gMain +_081112E4: .4byte sub_8111314 +_081112E8: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _08111302 + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _08111308 + ldr r0, _0811130C @ =gSaveBlock2 + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _08111308 +_08111302: + ldr r0, _08111310 @ =sub_8111360 + bl sub_8110814 +_08111308: + pop {r0} + bx r0 + .align 2, 0 +_0811130C: .4byte gSaveBlock2 +_08111310: .4byte sub_8111360 + thumb_func_end sub_81112BC + + thumb_func_start sub_8111314 +sub_8111314: @ 8111314 + push {r4,lr} + sub sp, 0x4 + ldr r4, _08111328 @ =0x02000000 + ldrh r1, [r4, 0xC] + cmp r1, 0 + beq _0811132C + cmp r1, 0x1 + beq _08111344 + b _08111358 + .align 2, 0 +_08111328: .4byte 0x02000000 +_0811132C: + movs r0, 0x15 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + b _08111358 +_08111344: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08111358 + bl sub_80FAB10 + ldr r0, [r4, 0x4] + bl SetMainCallback2 +_08111358: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8111314 + + thumb_func_start sub_8111360 +sub_8111360: @ 8111360 + push {r4,lr} + sub sp, 0x4 + ldr r4, _08111374 @ =0x02000000 + ldrh r1, [r4, 0xC] + cmp r1, 0 + beq _08111378 + cmp r1, 0x1 + beq _08111390 + b _081113A4 + .align 2, 0 +_08111374: .4byte 0x02000000 +_08111378: + movs r0, 0x15 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + b _081113A4 +_08111390: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _081113A4 + bl sub_80FAB10 + ldr r0, [r4, 0x8] + bl SetMainCallback2 +_081113A4: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8111360 + + thumb_func_start sub_81113AC +sub_81113AC: @ 81113AC + push {r4,lr} + ldr r2, _081113DC @ =0x02000000 + movs r3, 0 + movs r4, 0 + strh r0, [r2, 0xE] + ldr r0, _081113E0 @ =0x000006e4 + adds r2, r0 + str r1, [r2] + strb r3, [r1] + ldr r0, _081113E4 @ =sub_81113EC + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _081113E8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081113DC: .4byte 0x02000000 +_081113E0: .4byte 0x000006e4 +_081113E4: .4byte sub_81113EC +_081113E8: .4byte gTasks + thumb_func_end sub_81113AC + + thumb_func_start sub_81113EC +sub_81113EC: @ 81113EC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08111414 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0xB + bls _0811140A + b _08111540 +_0811140A: + lsls r0, 2 + ldr r1, _08111418 @ =_0811141C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08111414: .4byte gTasks +_08111418: .4byte _0811141C + .align 2, 0 +_0811141C: + .4byte _0811144C + .4byte _08111488 + .4byte _08111496 + .4byte _081114B8 + .4byte _081114BE + .4byte _081114CA + .4byte _081114DE + .4byte _081114E4 + .4byte _081114EA + .4byte _081114F0 + .4byte _08111502 + .4byte _08111528 +_0811144C: + movs r1, 0x80 + lsls r1, 19 + movs r3, 0xC4 + lsls r3, 7 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _08111478 @ =REG_BG0HOFS + movs r1, 0 + strh r1, [r0] + ldr r2, _0811147C @ =REG_BG0VOFS + ldr r3, _08111480 @ =0x0000fff8 + adds r0, r3, 0 + strh r0, [r2] + ldr r0, _08111484 @ =REG_BG2VOFS + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + b _08111540 + .align 2, 0 +_08111478: .4byte REG_BG0HOFS +_0811147C: .4byte REG_BG0VOFS +_08111480: .4byte 0x0000fff8 +_08111484: .4byte REG_BG2VOFS +_08111488: + bl ResetPaletteFade + bl ResetSpriteData + bl FreeAllSpritePalettes + b _08111540 +_08111496: + ldr r4, _081114B4 @ =0x020006e8 + adds r0, r4, 0 + movs r1, 0 + bl sub_80FA8EC + movs r0, 0x88 + lsls r0, 4 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x10 + bl StringFill + b _08111540 + .align 2, 0 +_081114B4: .4byte 0x020006e8 +_081114B8: + bl sub_8110824 + b _08111540 +_081114BE: + bl sub_8110838 + lsls r0, 24 + cmp r0, 0 + bne _08111550 + b _08111540 +_081114CA: + movs r0, 0x1 + movs r1, 0x1 + bl sub_80FBCF0 + movs r1, 0x8 + negs r1, r1 + movs r0, 0 + bl sub_80FB2A4 + b _08111540 +_081114DE: + bl sub_8111658 + b _08111540 +_081114E4: + bl sub_81117AC + b _08111540 +_081114EA: + bl sub_81117E4 + b _08111540 +_081114F0: + movs r0, 0x15 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _08111540 +_08111502: + ldr r1, _0811151C @ =REG_BLDCNT + ldr r2, _08111520 @ =0x00003f41 + adds r0, r2, 0 + strh r0, [r1] + bl sub_8111084 + movs r1, 0x80 + lsls r1, 19 + ldr r3, _08111524 @ =0x00007741 + adds r0, r3, 0 + strh r0, [r1] + b _08111540 + .align 2, 0 +_0811151C: .4byte REG_BLDCNT +_08111520: .4byte 0x00003f41 +_08111524: .4byte 0x00007741 +_08111528: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + ldr r1, _0811153C @ =sub_811155C + str r1, [r0] + movs r1, 0 + strh r1, [r0, 0x8] + b _08111550 + .align 2, 0 +_0811153C: .4byte sub_811155C +_08111540: + ldr r0, _08111558 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_08111550: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08111558: .4byte gTasks + thumb_func_end sub_81113EC + + thumb_func_start sub_811155C +sub_811155C: @ 811155C + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8111110 + ldr r1, _08111584 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + movs r0, 0x8 + ldrsh r1, [r5, r0] + cmp r1, 0x1 + beq _081115B4 + cmp r1, 0x1 + bgt _08111588 + cmp r1, 0 + beq _0811159E + b _08111590 + .align 2, 0 +_08111584: .4byte gTasks +_08111588: + cmp r1, 0x2 + beq _081115F8 + cmp r1, 0x3 + beq _0811160A +_08111590: + ldr r0, _081115AC @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0 + strh r0, [r1, 0x8] +_0811159E: + ldr r0, _081115B0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0811164C + b _0811163C + .align 2, 0 +_081115AC: .4byte gTasks +_081115B0: .4byte gPaletteFade +_081115B4: + ldr r0, _081115CC @ =gMain + ldrh r2, [r0, 0x2E] + movs r3, 0x2 + adds r0, r3, 0 + ands r0, r2 + cmp r0, 0 + beq _081115D0 + strh r1, [r5, 0xA] + movs r0, 0x3 + bl PlaySE + b _0811163C + .align 2, 0 +_081115CC: .4byte gMain +_081115D0: + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + bne _081115EA + movs r0, 0x80 + lsls r0, 1 + ands r0, r2 + cmp r0, 0 + beq _0811164C + ldr r0, _081115F4 @ =gSaveBlock2 + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _0811164C +_081115EA: + strh r3, [r5, 0xA] + movs r0, 0x6D + bl PlaySE + b _0811163C + .align 2, 0 +_081115F4: .4byte gSaveBlock2 +_081115F8: + movs r0, 0x15 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _0811163C +_0811160A: + ldr r0, _08111630 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0811164C + bl sub_8111738 + ldr r0, _08111634 @ =0x02000000 + ldr r1, _08111638 @ =0x000006e4 + adds r0, r1 + ldr r1, [r0] + ldrh r0, [r5, 0xA] + strb r0, [r1] + adds r0, r4, 0 + bl DestroyTask + b _0811164C + .align 2, 0 +_08111630: .4byte gPaletteFade +_08111634: .4byte 0x02000000 +_08111638: .4byte 0x000006e4 +_0811163C: + ldr r0, _08111654 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_0811164C: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08111654: .4byte gTasks + thumb_func_end sub_811155C + + thumb_func_start sub_8111658 +sub_8111658: @ 8111658 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _08111720 @ =gUnknown_083F858C + bl LoadSpriteSheet + ldr r0, _08111724 @ =gUnknown_083F8594 + bl LoadSpritePalette + movs r5, 0 + movs r1, 0 + ldr r0, _08111728 @ =0x02000000 + movs r3, 0x89 + lsls r3, 1 + adds r2, r0, r3 + ldrh r7, [r2] + cmp r5, r7 + bge _0811170C + adds r6, r0, 0 + mov r8, r2 +_08111680: + lsls r0, r1, 16 + asrs r4, r0, 16 + lsls r1, r4, 1 + movs r2, 0xC4 + lsls r2, 3 + adds r0, r6, r2 + adds r1, r0 + ldr r2, _0811172C @ =gRegionMapLocations + movs r3, 0 + ldrsh r0, [r1, r3] + lsls r0, 3 + adds r0, r2 + ldrb r1, [r0] + adds r1, 0x1 + lsls r1, 3 + adds r1, 0x4 + ldrb r2, [r0, 0x1] + lsls r2, 19 + ldrb r3, [r0, 0x2] + subs r3, 0x1 + lsls r3, 2 + ldrb r0, [r0, 0x3] + subs r0, 0x1 + lsls r0, 2 + movs r7, 0xE0 + lsls r7, 13 + adds r2, r7 + asrs r2, 16 + adds r1, r3 + adds r2, r0 + ldr r0, _08111730 @ =gSpriteTemplate_83F85A4 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _081116FC + ldr r0, _08111734 @ =gSprites + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r0 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + adds r1, r5, 0 + lsls r0, r1, 16 + movs r3, 0x80 + lsls r3, 9 + adds r0, r3 + lsrs r5, r0, 16 + lsls r1, 16 + asrs r1, 14 + movs r7, 0xCC + lsls r7, 3 + adds r0, r6, r7 + adds r1, r0 + str r2, [r1] +_081116FC: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + asrs r0, 16 + mov r2, r8 + ldrh r2, [r2] + cmp r0, r2 + blt _08111680 +_0811170C: + ldr r0, _08111728 @ =0x02000000 + movs r3, 0xDC + lsls r3, 3 + adds r0, r3 + strh r5, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08111720: .4byte gUnknown_083F858C +_08111724: .4byte gUnknown_083F8594 +_08111728: .4byte 0x02000000 +_0811172C: .4byte gRegionMapLocations +_08111730: .4byte gSpriteTemplate_83F85A4 +_08111734: .4byte gSprites + thumb_func_end sub_8111658 + + thumb_func_start sub_8111738 +sub_8111738: @ 8111738 + push {r4-r6,lr} + movs r0, 0x2 + bl FreeSpriteTilesByTag + movs r0, 0x2 + bl FreeSpritePaletteByTag + movs r4, 0 + ldr r1, _081117A4 @ =0x02000000 + movs r2, 0xDC + lsls r2, 3 + adds r0, r1, r2 + ldrh r2, [r0] + cmp r4, r2 + bcs _08111776 + adds r6, r1, 0 + adds r5, r0, 0 +_0811175A: + lsls r0, r4, 2 + movs r2, 0xCC + lsls r2, 3 + adds r1, r6, r2 + adds r0, r1 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldrh r0, [r5] + cmp r4, r0 + bcc _0811175A +_08111776: + movs r0, 0x3 + bl FreeSpriteTilesByTag + movs r0, 0x3 + bl FreeSpritePaletteByTag + movs r4, 0 + ldr r5, _081117A8 @ =0x02000fa8 +_08111786: + lsls r0, r4, 2 + adds r0, r5 + ldr r0, [r0] + cmp r0, 0 + beq _08111794 + bl DestroySprite +_08111794: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x2 + bls _08111786 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081117A4: .4byte 0x02000000 +_081117A8: .4byte 0x02000fa8 + thumb_func_end sub_8111738 + + thumb_func_start sub_81117AC +sub_81117AC: @ 81117AC + push {lr} + sub sp, 0x8 + ldr r0, _081117D4 @ =gUnknown_083F8664 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + ldr r0, _081117D8 @ =gAreaUnknownTiles + ldr r1, _081117DC @ =0x02000fb4 + bl LZ77UnCompWram + mov r0, sp + bl LoadSpriteSheet + ldr r0, _081117E0 @ =gUnknown_083F865C + bl LoadSpritePalette + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_081117D4: .4byte gUnknown_083F8664 +_081117D8: .4byte gAreaUnknownTiles +_081117DC: .4byte 0x02000fb4 +_081117E0: .4byte gUnknown_083F865C + thumb_func_end sub_81117AC + + thumb_func_start sub_81117E4 +sub_81117E4: @ 81117E4 + push {r4-r7,lr} + ldr r1, _08111810 @ =0x02000000 + movs r2, 0x88 + lsls r2, 1 + adds r0, r1, r2 + ldr r0, [r0] + cmp r0, 0 + beq _08111818 + movs r4, 0 + ldr r7, _08111814 @ =0x00000fa8 + adds r2, r1, r7 + movs r1, 0 +_081117FC: + lsls r0, r4, 2 + adds r0, r2 + str r1, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x2 + bls _081117FC + b _0811188E + .align 2, 0 +_08111810: .4byte 0x02000000 +_08111814: .4byte 0x00000fa8 +_08111818: + movs r4, 0 + ldr r6, _08111868 @ =gSprites + ldr r0, _0811186C @ =0x00000fa8 + adds r5, r1, r0 +_08111820: + lsls r1, r4, 21 + movs r2, 0xA0 + lsls r2, 16 + adds r1, r2 + asrs r1, 16 + ldr r0, _08111870 @ =gSpriteTemplate_83F8674 + movs r2, 0x8C + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _0811187C + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r6 + ldrh r3, [r2, 0x4] + lsls r0, r3, 22 + lsrs r0, 22 + lsls r1, r4, 4 + adds r0, r1 + ldr r7, _08111874 @ =0x000003ff + adds r1, r7, 0 + ands r0, r1 + ldr r7, _08111878 @ =0xfffffc00 + adds r1, r7, 0 + ands r3, r1 + orrs r3, r0 + strh r3, [r2, 0x4] + lsls r0, r4, 2 + adds r0, r5 + str r2, [r0] + b _08111884 + .align 2, 0 +_08111868: .4byte gSprites +_0811186C: .4byte 0x00000fa8 +_08111870: .4byte gSpriteTemplate_83F8674 +_08111874: .4byte 0x000003ff +_08111878: .4byte 0xfffffc00 +_0811187C: + lsls r0, r4, 2 + adds r0, r5 + movs r1, 0 + str r1, [r0] +_08111884: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x2 + bls _08111820 +_0811188E: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81117E4 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokedex_cry_screen.s b/asm/pokedex_cry_screen.s new file mode 100644 index 000000000..e14ca8f78 --- /dev/null +++ b/asm/pokedex_cry_screen.s @@ -0,0 +1,1164 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_8119E3C +sub_8119E3C: @ 8119E3C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + lsls r1, 24 + lsrs r2, r1, 24 + movs r0, 0 + mov r9, r0 + ldr r6, _08119E60 @ =gUnknown_03005E98 + ldrb r0, [r6] + cmp r0, 0x1 + beq _08119EE0 + cmp r0, 0x1 + bgt _08119E64 + cmp r0, 0 + beq _08119E6A + b _08119F74 + .align 2, 0 +_08119E60: .4byte gUnknown_03005E98 +_08119E64: + cmp r0, 0x2 + beq _08119F60 + b _08119F74 +_08119E6A: + ldr r4, _08119ECC @ =0x0201c000 + ldrh r0, [r5] + movs r1, 0 + strh r0, [r4, 0x14] + ldrb r0, [r5, 0x5] + strb r0, [r4, 0x16] + strb r1, [r4, 0x1A] + strb r1, [r4, 0x1B] + strb r1, [r4, 0x10] + movs r0, 0x1C + strb r0, [r4, 0x12] + strb r1, [r4, 0x11] + ldrb r1, [r5, 0x4] + lsls r1, 19 + negs r1, r1 + asrs r1, 16 + adds r0, r2, 0 + movs r2, 0x1 + bl sub_811A350 + movs r0, 0 + mov r12, r6 + ldr r1, _08119ED0 @ =0x040000d4 + ldr r7, _08119ED4 @ =gUnknown_083FB718 + ldr r2, _08119ED8 @ =0xfffe4000 + adds r6, r4, r2 + ldr r5, _08119EDC @ =0x80000010 +_08119EA0: + movs r3, 0 + adds r4, r0, 0x1 + lsls r2, r0, 5 +_08119EA6: + str r7, [r1] + adds r0, r2, r3 + lsls r0, 5 + adds r0, r6 + str r0, [r1, 0x4] + str r5, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1F + bls _08119EA6 + lsls r0, r4, 24 + lsrs r0, 24 + cmp r0, 0x6 + bls _08119EA0 + mov r1, r12 + b _08119F50 + .align 2, 0 +_08119ECC: .4byte 0x0201c000 +_08119ED0: .4byte 0x040000d4 +_08119ED4: .4byte gUnknown_083FB718 +_08119ED8: .4byte 0xfffe4000 +_08119EDC: .4byte 0x80000010 +_08119EE0: + ldrb r0, [r5, 0x2] + lsls r0, 27 + lsrs r7, r0, 16 + ldrb r1, [r5, 0x3] + lsls r1, 12 + ldrh r0, [r5] + lsls r0, 18 + lsrs r0, 23 + adds r1, r0 + lsls r1, 16 + lsrs r6, r1, 16 + movs r0, 0 + ldr r2, _08119F58 @ =0x0201c000 + mov r8, r2 + movs r1, 0xC0 + lsls r1, 19 + mov r12, r1 +_08119F02: + movs r3, 0 + adds r4, r0, 0x1 + lsls r5, r0, 6 +_08119F08: + lsls r1, r3, 1 + adds r1, r5 + adds r1, r7 + add r1, r12 + adds r2, r6, 0 + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + strh r2, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1F + bls _08119F08 + lsls r0, r4, 24 + lsrs r0, 24 + cmp r0, 0x6 + bls _08119F02 + mov r2, r8 + ldrb r0, [r2, 0x16] + movs r4, 0 + cmp r0, 0 + beq _08119F4E + mov r5, r8 +_08119F38: + adds r0, r4, 0 + movs r1, 0 + bl sub_811A1C8 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r5, 0x16] + lsls r0, 3 + cmp r4, r0 + blt _08119F38 +_08119F4E: + ldr r1, _08119F5C @ =gUnknown_03005E98 +_08119F50: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08119F74 + .align 2, 0 +_08119F58: .4byte 0x0201c000 +_08119F5C: .4byte gUnknown_03005E98 +_08119F60: + bl sub_811A324 + ldr r0, _08119F84 @ =gUnknown_083FB6F8 + ldrb r1, [r5, 0x3] + lsls r1, 4 + movs r2, 0x20 + bl LoadPalette + movs r0, 0x1 + mov r9, r0 +_08119F74: + mov r0, r9 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08119F84: .4byte gUnknown_083FB6F8 + thumb_func_end sub_8119E3C + + thumb_func_start sub_8119F88 +sub_8119F88: @ 8119F88 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_811A324 + adds r0, r4, 0 + bl sub_811A15C + ldr r1, _08119FC4 @ =0x0201c000 + ldrb r0, [r1, 0x1B] + cmp r0, 0 + beq _08119FA6 + subs r0, 0x1 + strb r0, [r1, 0x1B] +_08119FA6: + ldrb r0, [r1, 0x1A] + cmp r0, 0 + beq _08119FC8 + subs r0, 0x1 + strb r0, [r1, 0x1A] + lsls r0, 24 + cmp r0, 0 + bne _08119FC8 + ldrh r0, [r1, 0x18] + bl sub_811A0A0 + bl sub_811A124 + b _0811A044 + .align 2, 0 +_08119FC4: .4byte 0x0201c000 +_08119FC8: + ldr r5, _08119FD8 @ =0x0201c000 + ldrb r0, [r5, 0x10] + cmp r0, 0 + bne _08119FDC + bl sub_811A124 + b _0811A044 + .align 2, 0 +_08119FD8: .4byte 0x0201c000 +_08119FDC: + cmp r0, 0x1 + bne _08119FE6 + bl sub_811A0C0 + b _0811A006 +_08119FE6: + cmp r0, 0x8 + bls _0811A006 + bl IsCryPlaying + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08119FFE + bl sub_811A124 + strb r4, [r5, 0x10] + b _0811A044 +_08119FFE: + bl sub_811A0C0 + movs r0, 0x1 + strb r0, [r5, 0x10] +_0811A006: + ldr r5, _0811A04C @ =0x0201c000 + ldrb r4, [r5, 0x10] + subs r4, 0x1 + lsls r4, 25 + lsrs r4, 24 + ldrb r0, [r5, 0x16] + lsls r0, 3 + ldrb r1, [r5, 0x11] + adds r0, r1 + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, r5 + ldrb r1, [r1] + bl sub_811A1C8 + ldrb r0, [r5, 0x16] + lsls r0, 3 + ldrb r1, [r5, 0x11] + adds r0, r1 + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + adds r4, 0x1 + adds r4, r5 + ldrb r1, [r4] + bl sub_811A1C8 + ldrb r0, [r5, 0x10] + adds r0, 0x1 + strb r0, [r5, 0x10] +_0811A044: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811A04C: .4byte 0x0201c000 + thumb_func_end sub_8119F88 + + thumb_func_start sub_811A050 +sub_811A050: @ 811A050 + push {r4-r6,lr} + lsls r0, 16 + lsrs r5, r0, 16 + adds r6, r5, 0 + ldr r0, _0811A08C @ =gMPlay_BGM + ldr r0, [r0, 0x4] + cmp r0, 0 + bge _0811A09A + ldr r4, _0811A090 @ =0x0201c000 + ldrb r0, [r4, 0x1A] + cmp r0, 0 + bne _0811A09A + ldrb r0, [r4, 0x1B] + cmp r0, 0 + bne _0811A09A + movs r0, 0x4 + strb r0, [r4, 0x1B] + bl IsCryPlaying + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0811A094 + bl StopCry + strh r5, [r4, 0x18] + movs r0, 0x2 + strb r0, [r4, 0x1A] + b _0811A09A + .align 2, 0 +_0811A08C: .4byte gMPlay_BGM +_0811A090: .4byte 0x0201c000 +_0811A094: + adds r0, r6, 0 + bl sub_811A0A0 +_0811A09A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_811A050 + + thumb_func_start sub_811A0A0 +sub_811A0A0: @ 811A0A0 + push {lr} + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + movs r2, 0x7D + movs r3, 0xA + bl PlayCry2 + ldr r1, _0811A0BC @ =0x0201c000 + movs r0, 0x1 + strb r0, [r1, 0x10] + pop {r0} + bx r0 + .align 2, 0 +_0811A0BC: .4byte 0x0201c000 + thumb_func_end sub_811A0A0 + + thumb_func_start sub_811A0C0 +sub_811A0C0: @ 811A0C0 + push {r4,lr} + ldr r3, _0811A0D0 @ =gPcmDmaCounter + movs r0, 0 + ldrsb r0, [r3, r0] + cmp r0, 0x1 + bgt _0811A0D8 + ldr r0, _0811A0D4 @ =gSoundInfo + 0x350 + b _0811A0F0 + .align 2, 0 +_0811A0D0: .4byte gPcmDmaCounter +_0811A0D4: .4byte gSoundInfo + 0x350 +_0811A0D8: + ldr r2, _0811A11C @ =gSoundInfo + ldrb r1, [r2, 0xB] + movs r0, 0 + ldrsb r0, [r3, r0] + subs r0, 0x1 + subs r1, r0 + ldr r0, [r2, 0x10] + muls r0, r1 + movs r1, 0xD4 + lsls r1, 2 + adds r2, r1 + adds r0, r2 +_0811A0F0: + movs r1, 0xC6 + lsls r1, 3 + adds r3, r0, r1 + movs r2, 0 + ldr r4, _0811A120 @ =0x0201c000 +_0811A0FA: + adds r1, r2, r4 + lsls r0, r2, 1 + adds r0, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 1 + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xF + bls _0811A0FA + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811A11C: .4byte gSoundInfo +_0811A120: .4byte 0x0201c000 + thumb_func_end sub_811A0C0 + + thumb_func_start sub_811A124 +sub_811A124: @ 811A124 + push {r4,lr} + ldr r4, _0811A158 @ =0x0201c000 + ldrb r0, [r4, 0x16] + lsls r0, 3 + ldrb r1, [r4, 0x11] + adds r0, r1 + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_811A1C8 + ldrb r0, [r4, 0x16] + lsls r0, 3 + ldrb r4, [r4, 0x11] + adds r0, r4 + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_811A1C8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811A158: .4byte 0x0201c000 + thumb_func_end sub_811A124 + + thumb_func_start sub_811A15C +sub_811A15C: @ 811A15C + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, _0811A1B4 @ =0x0201c000 + ldrb r1, [r4, 0x11] + movs r2, 0 + bl sub_811A350 + ldrb r0, [r4, 0x11] + adds r0, 0x2 + strb r0, [r4, 0x11] + ldrb r0, [r4, 0x11] + lsrs r0, 3 + ldrb r2, [r4, 0x16] + adds r1, r0, r2 + adds r2, r1, 0x1 + adds r0, r2, 0 + asrs r0, 5 + lsls r0, 5 + subs r0, r2, r0 + lsls r0, 16 + lsrs r3, r0, 16 + movs r1, 0 + ldr r2, _0811A1B8 @ =0x040000d4 + ldr r6, _0811A1BC @ =gUnknown_083FB718 + ldr r0, _0811A1C0 @ =0xfffe4000 + adds r5, r4, r0 + ldr r4, _0811A1C4 @ =0x80000010 +_0811A194: + str r6, [r2] + lsls r0, r1, 5 + adds r0, r3 + lsls r0, 5 + adds r0, r5 + str r0, [r2, 0x4] + str r4, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x6 + bls _0811A194 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0811A1B4: .4byte 0x0201c000 +_0811A1B8: .4byte 0x040000d4 +_0811A1BC: .4byte gUnknown_083FB718 +_0811A1C0: .4byte 0xfffe4000 +_0811A1C4: .4byte 0x80000010 + thumb_func_end sub_811A15C + + thumb_func_start sub_811A1C8 +sub_811A1C8: @ 811A1C8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r5, r0, 24 + lsrs r4, r5, 24 + lsls r1, 24 + movs r0, 0xFE + lsls r0, 23 + adds r1, r0 + lsrs r1, 16 + adds r0, r1, 0 + bl __floatsidf + ldr r3, _0811A280 @ =0x00000000 + ldr r2, _0811A27C @ =0x40920000 + bl __divdf3 + bl __fixunsdfsi + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x37 + bls _0811A1FE + movs r6, 0x37 +_0811A1FE: + str r6, [sp] + movs r7, 0x1 + ands r7, r4 + ldr r0, _0811A284 @ =0x0201c000 + mov r10, r0 + lsrs r5, 27 + mov r8, r5 + ldr r0, _0811A288 @ =gUnknown_083FB738 + mov r1, r10 + ldrb r1, [r1, 0x12] + cmp r6, r1 + bls _0811A298 + adds r0, r7, r0 + ldrb r0, [r0] + mov r9, r0 + movs r2, 0x7 + ands r2, r4 +_0811A220: + lsls r1, r6, 1 + lsls r0, r2, 3 + adds r0, r2 + lsls r0, 4 + adds r1, r0 + ldr r3, _0811A28C @ =gUnknown_083FB274 + adds r1, r3 + mov r3, r8 + lsls r0, r3, 5 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0811A290 @ =0x02000000 + adds r5, r0, r1 + ldrb r4, [r5] + mov r3, r9 + ands r4, r3 + strb r4, [r5] + adds r0, r6, 0 + movs r1, 0x3 + str r2, [sp, 0x8] + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + movs r1, 0xF + ands r0, r1 + lsls r1, r7, 4 + adds r0, r1 + ldr r1, _0811A294 @ =gUnknown_083FB73A + adds r0, r1 + ldrb r0, [r0] + orrs r4, r0 + strb r4, [r5] + subs r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, [sp, 0x8] + ldr r3, _0811A284 @ =0x0201c000 + ldrb r3, [r3, 0x12] + cmp r6, r3 + bhi _0811A220 + b _0811A2FA + .align 2, 0 +_0811A27C: .4byte 0x40920000 +_0811A280: .4byte 0x00000000 +_0811A284: .4byte 0x0201c000 +_0811A288: .4byte gUnknown_083FB738 +_0811A28C: .4byte gUnknown_083FB274 +_0811A290: .4byte 0x02000000 +_0811A294: .4byte gUnknown_083FB73A +_0811A298: + lsls r1, r7, 4 + str r1, [sp, 0x4] + adds r0, r7, r0 + ldrb r0, [r0] + mov r9, r0 + movs r7, 0x7 + ands r7, r4 +_0811A2A6: + lsls r1, r6, 1 + lsls r0, r7, 3 + adds r0, r7 + lsls r0, 4 + adds r1, r0 + ldr r2, _0811A314 @ =gUnknown_083FB274 + adds r1, r2 + mov r3, r8 + lsls r0, r3, 5 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0811A318 @ =0x02000000 + adds r5, r0, r1 + ldrb r4, [r5] + mov r2, r9 + ands r4, r2 + strb r4, [r5] + adds r0, r6, 0 + movs r1, 0x3 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + movs r1, 0xF + ands r0, r1 + ldr r3, [sp, 0x4] + adds r0, r3 + ldr r1, _0811A31C @ =gUnknown_083FB73A + adds r0, r1 + ldrb r0, [r0] + orrs r4, r0 + strb r4, [r5] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, _0811A320 @ =0x0201c000 + ldrb r2, [r2, 0x12] + cmp r6, r2 + bcc _0811A2A6 +_0811A2FA: + mov r3, sp + ldrb r0, [r3] + mov r3, r10 + strb r0, [r3, 0x12] + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811A314: .4byte gUnknown_083FB274 +_0811A318: .4byte 0x02000000 +_0811A31C: .4byte gUnknown_083FB73A +_0811A320: .4byte 0x0201c000 + thumb_func_end sub_811A1C8 + + thumb_func_start sub_811A324 +sub_811A324: @ 811A324 + ldr r2, _0811A344 @ =0x040000d4 + ldr r0, _0811A348 @ =0x02000000 + str r0, [r2] + movs r1, 0xE0 + lsls r1, 9 + adds r0, r1 + ldrh r0, [r0, 0x14] + movs r1, 0xC0 + lsls r1, 19 + adds r0, r1 + str r0, [r2, 0x4] + ldr r0, _0811A34C @ =0x80000e00 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + bx lr + .align 2, 0 +_0811A344: .4byte 0x040000d4 +_0811A348: .4byte 0x02000000 +_0811A34C: .4byte 0x80000e00 + thumb_func_end sub_811A324 + + thumb_func_start sub_811A350 +sub_811A350: @ 811A350 + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 24 + lsrs r2, 24 + cmp r0, 0x1 + beq _0811A38C + cmp r0, 0x1 + bgt _0811A36E + cmp r0, 0 + beq _0811A378 + b _0811A3C4 +_0811A36E: + cmp r3, 0x2 + beq _0811A3A0 + cmp r3, 0x3 + beq _0811A3B4 + b _0811A3C4 +_0811A378: + cmp r2, 0 + beq _0811A384 + ldr r0, _0811A380 @ =REG_BG0VOFS + b _0811A3C2 + .align 2, 0 +_0811A380: .4byte REG_BG0VOFS +_0811A384: + ldr r0, _0811A388 @ =REG_BG0HOFS + b _0811A3C2 + .align 2, 0 +_0811A388: .4byte REG_BG0HOFS +_0811A38C: + cmp r2, 0 + beq _0811A398 + ldr r0, _0811A394 @ =REG_BG1VOFS + b _0811A3C2 + .align 2, 0 +_0811A394: .4byte REG_BG1VOFS +_0811A398: + ldr r0, _0811A39C @ =REG_BG1HOFS + b _0811A3C2 + .align 2, 0 +_0811A39C: .4byte REG_BG1HOFS +_0811A3A0: + cmp r2, 0 + beq _0811A3AC + ldr r0, _0811A3A8 @ =REG_BG2VOFS + b _0811A3C2 + .align 2, 0 +_0811A3A8: .4byte REG_BG2VOFS +_0811A3AC: + ldr r0, _0811A3B0 @ =REG_BG2HOFS + b _0811A3C2 + .align 2, 0 +_0811A3B0: .4byte REG_BG2HOFS +_0811A3B4: + cmp r2, 0 + beq _0811A3C0 + ldr r0, _0811A3BC @ =REG_BG3VOFS + b _0811A3C2 + .align 2, 0 +_0811A3BC: .4byte REG_BG3VOFS +_0811A3C0: + ldr r0, _0811A3C8 @ =REG_BG3HOFS +_0811A3C2: + strh r1, [r0] +_0811A3C4: + pop {r0} + bx r0 + .align 2, 0 +_0811A3C8: .4byte REG_BG3HOFS + thumb_func_end sub_811A350 + + thumb_func_start sub_811A3CC +sub_811A3CC: @ 811A3CC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r4, r0, 0 + movs r0, 0 + str r0, [sp] + ldr r0, _0811A3F4 @ =gUnknown_03005E98 + ldrb r1, [r0] + mov r10, r0 + cmp r1, 0x1 + beq _0811A42C + cmp r1, 0x1 + bgt _0811A3F8 + cmp r1, 0 + beq _0811A3FE + b _0811A4D6 + .align 2, 0 +_0811A3F4: .4byte gUnknown_03005E98 +_0811A3F8: + cmp r1, 0x2 + beq _0811A494 + b _0811A4D6 +_0811A3FE: + ldr r0, _0811A424 @ =gUnknown_083FAF3C + ldrh r1, [r4] + movs r2, 0xC0 + lsls r2, 19 + adds r1, r2 + bl LZ77UnCompVram + ldr r0, _0811A428 @ =gUnknown_083FAF1C + ldrb r1, [r4, 0x3] + lsls r1, 4 + movs r2, 0x20 + bl LoadPalette + mov r1, r10 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0811A4D6 + .align 2, 0 +_0811A424: .4byte gUnknown_083FAF3C +_0811A428: .4byte gUnknown_083FAF1C +_0811A42C: + ldrb r0, [r4, 0x2] + lsls r0, 11 + movs r1, 0xC0 + lsls r1, 19 + adds r0, r1 + mov r8, r0 + ldrh r0, [r4] + lsls r0, 18 + lsrs r0, 23 + mov r12, r0 + movs r5, 0 + ldr r2, _0811A490 @ =gUnknown_083FAE7C + mov r9, r2 +_0811A446: + movs r3, 0 + lsls r0, r5, 2 + adds r7, r5, 0x1 + adds r0, r5 + lsls r6, r0, 1 +_0811A450: + ldrb r0, [r4, 0x5] + adds r0, r5, r0 + ldrb r2, [r4, 0x4] + adds r2, r3, r2 + lsls r2, 1 + lsls r0, 6 + adds r2, r0 + add r2, r8 + adds r1, r6, r3 + lsls r1, 1 + add r1, r9 + ldrb r0, [r4, 0x3] + lsls r0, 12 + ldrh r1, [r1] + orrs r0, r1 + add r0, r12 + strh r0, [r2] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x9 + bls _0811A450 + lsls r0, r7, 24 + lsrs r5, r0, 24 + cmp r5, 0x7 + bls _0811A446 + mov r3, r10 + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + b _0811A4D6 + .align 2, 0 +_0811A490: .4byte gUnknown_083FAE7C +_0811A494: + ldr r0, _0811A4E8 @ =gCryMeterNeedleSpriteSheets + bl LoadSpriteSheets + ldr r0, _0811A4EC @ =gCryMeterNeedleSpritePalettes + bl LoadSpritePalettes + ldr r0, _0811A4F0 @ =gSpriteTemplate_83FB774 + ldrb r1, [r4, 0x4] + lsls r1, 19 + movs r2, 0xA0 + lsls r2, 14 + adds r1, r2 + asrs r1, 16 + ldrb r2, [r4, 0x5] + lsls r2, 19 + movs r3, 0xE0 + lsls r3, 14 + adds r2, r3 + asrs r2, 16 + movs r3, 0x1 + bl CreateSprite + ldr r1, _0811A4F4 @ =0x0201c800 + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + strh r0, [r1, 0x4] + movs r0, 0x20 + strb r0, [r1] + strb r0, [r1, 0x1] + strb r2, [r1, 0x2] + movs r0, 0x1 + str r0, [sp] +_0811A4D6: + ldr r0, [sp] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0811A4E8: .4byte gCryMeterNeedleSpriteSheets +_0811A4EC: .4byte gCryMeterNeedleSpritePalettes +_0811A4F0: .4byte gSpriteTemplate_83FB774 +_0811A4F4: .4byte 0x0201c800 + thumb_func_end sub_811A3CC + + thumb_func_start sub_811A4F8 +sub_811A4F8: @ 811A4F8 + push {r4,r5,lr} + ldr r5, _0811A52C @ =gSprites + ldr r4, _0811A530 @ =0x0201c800 + ldrh r1, [r4, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + bl GetSpritePaletteTagByPaletteNum + lsls r0, 16 + lsrs r0, 16 + bl FreeSpritePaletteByTag + ldrh r1, [r4, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811A52C: .4byte gSprites +_0811A530: .4byte 0x0201c800 + thumb_func_end sub_811A4F8 + + thumb_func_start sub_811A534 +sub_811A534: @ 811A534 + push {r4-r7,lr} + sub sp, 0x14 + adds r7, r0, 0 + ldr r3, _0811A578 @ =gSprites + ldr r5, _0811A57C @ =0x0201c800 + ldrh r1, [r5, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r2, [r0, 0x1] + movs r1, 0x4 + negs r1, r1 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0, 0x1] + ldrh r1, [r5, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x6] + ldr r0, _0811A580 @ =0xfffff800 + adds r1, r5, r0 + ldrb r0, [r1, 0x10] + cmp r0, 0x2 + beq _0811A5AA + cmp r0, 0x2 + bgt _0811A584 + cmp r0, 0 + beq _0811A58A + b _0811A5F4 + .align 2, 0 +_0811A578: .4byte gSprites +_0811A57C: .4byte 0x0201c800 +_0811A580: .4byte 0xfffff800 +_0811A584: + cmp r0, 0x6 + beq _0811A5E2 + b _0811A5F4 +_0811A58A: + movs r0, 0x20 + strb r0, [r5, 0x1] + movs r0, 0 + ldrsb r0, [r5, r0] + cmp r0, 0 + ble _0811A5A4 + ldrb r0, [r5, 0x2] + add r4, sp, 0xC + cmp r0, 0x1 + beq _0811A5F6 + subs r0, 0x1 + strb r0, [r5, 0x2] + b _0811A5F6 +_0811A5A4: + movs r0, 0x5 + strb r0, [r5, 0x2] + b _0811A5F4 +_0811A5AA: + movs r3, 0 + movs r2, 0 + add r4, sp, 0xC + adds r5, r1, 0 +_0811A5B2: + lsls r1, r3, 24 + asrs r1, 24 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r1, r0 + bge _0811A5C0 + adds r3, r0, 0 +_0811A5C0: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0xF + bls _0811A5B2 + lsls r0, r3, 24 + asrs r0, 24 + movs r1, 0xD0 + muls r0, r1 + cmp r0, 0 + bge _0811A5D8 + adds r0, 0xFF +_0811A5D8: + lsls r0, 16 + asrs r0, 24 + bl sub_811A6D8 + b _0811A5F6 +_0811A5E2: + ldr r1, _0811A620 @ =0xfffff80a + adds r0, r5, r1 + ldrb r1, [r0] + movs r0, 0xD0 + muls r0, r1 + lsls r0, 16 + asrs r0, 24 + bl sub_811A6D8 +_0811A5F4: + add r4, sp, 0xC +_0811A5F6: + ldr r0, _0811A624 @ =0x0201c800 + ldrb r3, [r0] + movs r2, 0 + ldrsb r2, [r0, r2] + ldrb r6, [r0, 0x1] + movs r1, 0x1 + ldrsb r1, [r0, r1] + adds r5, r0, 0 + cmp r2, r1 + beq _0811A63C + cmp r2, r1 + bge _0811A628 + ldrb r0, [r5, 0x2] + adds r0, r3, r0 + strb r0, [r5] + lsls r0, 24 + asrs r0, 24 + cmp r0, r1 + ble _0811A63C + b _0811A636 + .align 2, 0 +_0811A620: .4byte 0xfffff80a +_0811A624: .4byte 0x0201c800 +_0811A628: + ldrb r0, [r5, 0x2] + subs r0, r3, r0 + strb r0, [r5] + lsls r0, 24 + asrs r0, 24 + cmp r0, r1 + bge _0811A63C +_0811A636: + strb r6, [r5] + movs r0, 0 + strb r0, [r5, 0x1] +_0811A63C: + ldr r2, _0811A6CC @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r2 + movs r1, 0x80 + lsls r1, 1 + orrs r0, r1 + ldr r1, _0811A6D0 @ =0x0000ffff + ands r0, r1 + movs r1, 0x80 + lsls r1, 17 + orrs r0, r1 + str r0, [sp, 0x4] + movs r1, 0 + ldrsb r1, [r5, r1] + lsls r1, 24 + lsrs r1, 16 + ldr r0, [sp, 0x8] + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x8] + add r0, sp, 0x4 + adds r1, r4, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ObjAffineSet + add r0, sp, 0xC + ldrh r1, [r0] + ldrh r2, [r4, 0x2] + ldrh r3, [r4, 0x4] + ldrh r0, [r4, 0x6] + str r0, [sp] + movs r0, 0 + bl SetOamMatrix + ldr r2, _0811A6D4 @ =gSineTable + movs r0, 0 + ldrsb r0, [r5, r0] + adds r0, 0x7F + movs r1, 0xFF + ands r0, r1 + lsls r1, r0, 1 + adds r1, r2 + adds r0, 0x40 + lsls r0, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0 + ldrsh r1, [r1, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + cmp r0, 0 + bge _0811A6AA + adds r0, 0xFF +_0811A6AA: + asrs r0, 8 + strh r0, [r7, 0x24] + lsls r1, r2, 16 + asrs r1, 16 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + cmp r0, 0 + bge _0811A6BE + adds r0, 0xFF +_0811A6BE: + asrs r0, 8 + strh r0, [r7, 0x26] + add sp, 0x14 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811A6CC: .4byte 0xffff0000 +_0811A6D0: .4byte 0x0000ffff +_0811A6D4: .4byte gSineTable + thumb_func_end sub_811A534 + + thumb_func_start sub_811A6D8 +sub_811A6D8: @ 811A6D8 + push {lr} + lsls r0, 24 + asrs r0, 24 + movs r1, 0x20 + subs r2, r1, r0 + movs r0, 0xFF + ands r2, r0 + adds r0, r2, 0 + subs r0, 0x21 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xBE + bhi _0811A6F4 + movs r2, 0xE0 +_0811A6F4: + ldr r1, _0811A700 @ =0x0201c800 + strb r2, [r1, 0x1] + movs r0, 0x5 + strb r0, [r1, 0x2] + pop {r0} + bx r0 + .align 2, 0 +_0811A700: .4byte 0x0201c800 + thumb_func_end sub_811A6D8 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom6.s b/asm/rom6.s index aa8fcd710..df363ab44 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -9860,42379 +9860,4 @@ sub_810FF60: @ 810FF60 _0810FF74: .4byte gUnknown_0202E8CC thumb_func_end sub_810FF60 - thumb_func_start sub_810FF78 -sub_810FF78: @ 810FF78 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r2, _0810FFA4 @ =0x01000008 - mov r0, sp - adds r1, r4, 0 - bl CpuSet - movs r0, 0xFF - strb r0, [r4] - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810FFA4: .4byte 0x01000008 - thumb_func_end sub_810FF78 - - thumb_func_start sub_810FFA8 -sub_810FFA8: @ 810FFA8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0x4 -_0810FFAE: - adds r0, r4, 0 - bl sub_810FF78 - adds r4, 0x10 - subs r5, 0x1 - cmp r5, 0 - bge _0810FFAE - movs r0, 0x17 - movs r1, 0 - bl sav12_xor_set - movs r0, 0x18 - movs r1, 0 - bl sav12_xor_set - movs r0, 0x19 - movs r1, 0 - bl sav12_xor_set - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_810FFA8 - - thumb_func_start sub_810FFDC -sub_810FFDC: @ 810FFDC - adds r1, r0, 0 - ldrh r0, [r1, 0xA] - ldrh r2, [r1, 0xC] - adds r0, r2 - ldrh r1, [r1, 0xE] - adds r0, r1 - bx lr - thumb_func_end sub_810FFDC - - thumb_func_start sub_810FFEC -sub_810FFEC: @ 810FFEC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r1 - lsls r2, 16 - lsrs r7, r2, 16 - movs r5, 0 - ldr r6, _08110024 @ =gStringVar1 - adds r4, r0, 0 -_0810FFFE: - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0x7 - bl memcpy - movs r0, 0xFF - strb r0, [r6, 0x7] - adds r0, r6, 0 - mov r1, r8 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - bne _08110028 - ldrh r0, [r4, 0x8] - cmp r0, r7 - bne _08110028 - adds r0, r5, 0 - b _08110032 - .align 2, 0 -_08110024: .4byte gStringVar1 -_08110028: - adds r4, 0x10 - adds r5, 0x1 - cmp r5, 0x4 - ble _0810FFFE - movs r0, 0x5 -_08110032: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810FFEC - - thumb_func_start sub_811003C -sub_811003C: @ 811003C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - mov r8, r0 - movs r0, 0x4 -_0811004A: - subs r2, r0, 0x1 - mov r9, r2 - cmp r2, 0 - blt _081100A4 - lsls r0, 4 - mov r1, r8 - adds r6, r1, r0 - lsls r0, r2, 4 - adds r5, r0, r1 -_0811005C: - adds r0, r6, 0 - str r2, [sp, 0x10] - bl sub_810FFDC - adds r4, r0, 0 - adds r0, r5, 0 - bl sub_810FFDC - ldr r2, [sp, 0x10] - cmp r4, r0 - ble _08110096 - mov r1, sp - adds r0, r6, 0 - ldm r0!, {r3,r4,r7} - stm r1!, {r3,r4,r7} - ldr r0, [r0] - str r0, [r1] - adds r1, r6, 0 - adds r0, r5, 0 - ldm r0!, {r3,r4,r7} - stm r1!, {r3,r4,r7} - ldr r0, [r0] - str r0, [r1] - adds r1, r5, 0 - mov r0, sp - ldm r0!, {r3,r4,r7} - stm r1!, {r3,r4,r7} - ldr r0, [r0] - str r0, [r1] -_08110096: - subs r5, 0x10 - movs r0, 0x1 - negs r0, r0 - add r9, r0 - mov r1, r9 - cmp r1, 0 - bge _0811005C -_081100A4: - adds r0, r2, 0 - cmp r0, 0 - bgt _0811004A - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_811003C - - thumb_func_start sub_81100B8 -sub_81100B8: @ 81100B8 - push {lr} - adds r2, r0, 0 - cmp r1, 0x2 - beq _081100E8 - cmp r1, 0x2 - bgt _081100CA - cmp r1, 0x1 - beq _081100D0 - b _08110112 -_081100CA: - cmp r1, 0x3 - beq _08110100 - b _08110112 -_081100D0: - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - lsrs r0, 16 - ldr r1, _081100E4 @ =0x0000270f - cmp r0, r1 - bls _08110112 - strh r1, [r2, 0xA] - b _08110112 - .align 2, 0 -_081100E4: .4byte 0x0000270f -_081100E8: - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - lsls r0, 16 - lsrs r0, 16 - ldr r1, _081100FC @ =0x0000270f - cmp r0, r1 - bls _08110112 - strh r1, [r2, 0xC] - b _08110112 - .align 2, 0 -_081100FC: .4byte 0x0000270f -_08110100: - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08110118 @ =0x0000270f - cmp r0, r1 - bls _08110112 - strh r1, [r2, 0xE] -_08110112: - pop {r0} - bx r0 - .align 2, 0 -_08110118: .4byte 0x0000270f - thumb_func_end sub_81100B8 - - thumb_func_start sub_811011C -sub_811011C: @ 811011C - push {r4,lr} - cmp r0, 0x2 - beq _08110136 - cmp r0, 0x2 - bgt _0811012C - cmp r0, 0x1 - beq _08110132 - b _0811014E -_0811012C: - cmp r0, 0x3 - beq _0811013A - b _0811014E -_08110132: - movs r4, 0x17 - b _0811013C -_08110136: - movs r4, 0x18 - b _0811013C -_0811013A: - movs r4, 0x19 -_0811013C: - adds r0, r4, 0 - bl sub_8053108 - ldr r1, _08110154 @ =0x0000270e - cmp r0, r1 - bhi _0811014E - adds r0, r4, 0 - bl sav12_xor_increment -_0811014E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08110154: .4byte 0x0000270e - thumb_func_end sub_811011C - - thumb_func_start sub_8110158 -sub_8110158: @ 8110158 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r5, r0, 0 - adds r7, r1, 0 - mov r10, r3 - ldr r0, [sp, 0x20] - lsls r2, 16 - lsrs r2, 16 - mov r9, r2 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r0, r10 - bl sub_811011C - adds r0, r5, 0 - bl sub_811003C - adds r0, r5, 0 - adds r1, r7, 0 - mov r2, r9 - bl sub_810FFEC - adds r6, r0, 0 - cmp r6, 0x5 - bne _081101CC - movs r6, 0x4 - adds r4, r5, 0 - adds r4, 0x40 - adds r0, r4, 0 - bl sub_810FF78 - mov r0, r8 - cmp r0, 0x1 - bne _081101BA - movs r0, 0xFC - strb r0, [r4] - movs r0, 0x15 - strb r0, [r4, 0x1] - adds r0, r5, 0 - adds r0, 0x42 - adds r1, r7, 0 - movs r2, 0x5 - bl StringCopyN - b _081101C4 -_081101BA: - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0x7 - bl StringCopyN -_081101C4: - lsls r0, r6, 4 - adds r0, r5, r0 - mov r1, r9 - strh r1, [r0, 0x8] -_081101CC: - lsls r0, r6, 4 - adds r0, r5, r0 - mov r1, r10 - bl sub_81100B8 - adds r0, r5, 0 - bl sub_811003C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8110158 - - thumb_func_start GameFreakRTC_Reset -GameFreakRTC_Reset: @ 81101EC - push {lr} - ldr r0, _081101F8 @ =gSaveBlock1 + 0x30B8 - bl sub_810FFA8 - pop {r0} - bx r0 - .align 2, 0 -_081101F8: .4byte gSaveBlock1 + 0x30B8 - thumb_func_end GameFreakRTC_Reset - - thumb_func_start sub_81101FC -sub_81101FC: @ 81101FC - push {lr} - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 3 - ldr r0, _08110220 @ =gUnknown_0202FFD4 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - ldr r2, _08110224 @ =0x0000270f - cmp r0, r2 - bls _0811021A - strh r2, [r1] -_0811021A: - pop {r0} - bx r0 - .align 2, 0 -_08110220: .4byte gUnknown_0202FFD4 -_08110224: .4byte 0x0000270f - thumb_func_end sub_81101FC - - thumb_func_start sub_8110228 -sub_8110228: @ 8110228 - push {lr} - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 3 - ldr r0, _0811024C @ =gUnknown_0202FFD6 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - ldr r2, _08110250 @ =0x0000270f - cmp r0, r2 - bls _08110246 - strh r2, [r1] -_08110246: - pop {r0} - bx r0 - .align 2, 0 -_0811024C: .4byte gUnknown_0202FFD6 -_08110250: .4byte 0x0000270f - thumb_func_end sub_8110228 - - thumb_func_start sub_8110254 -sub_8110254: @ 8110254 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _08110268 @ =gUnknown_02024D26 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0811026C - cmp r0, 0x2 - beq _0811027A - b _08110288 - .align 2, 0 -_08110268: .4byte gUnknown_02024D26 -_0811026C: - eors r0, r4 - bl sub_81101FC - adds r0, r4, 0 - bl sub_8110228 - b _08110288 -_0811027A: - movs r0, 0x1 - eors r0, r4 - bl sub_8110228 - adds r0, r4, 0 - bl sub_81101FC -_08110288: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8110254 - - thumb_func_start sub_8110290 -sub_8110290: @ 8110290 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - bl sub_8110254 - ldr r0, _081102D4 @ =gSaveBlock1 + 0x30B8 - lsls r2, r4, 3 - subs r2, r4 - lsls r2, 3 - ldr r3, _081102D8 @ =gUnknown_0202FFF0 - adds r1, r2, r3 - subs r3, 0x30 - adds r2, r3 - ldrh r2, [r2, 0xE] - ldr r3, _081102DC @ =gUnknown_02024D26 - ldrb r3, [r3] - ldr r6, _081102E0 @ =gLinkPlayers - ldr r5, _081102E4 @ =gUnknown_02029818 - lsls r4, 2 - adds r4, r5 - ldrb r5, [r4, 0x1] - lsls r4, r5, 3 - subs r4, r5 - lsls r4, 2 - adds r4, r6 - ldrb r4, [r4, 0x1A] - str r4, [sp] - bl sub_8110158 - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081102D4: .4byte gSaveBlock1 + 0x30B8 -_081102D8: .4byte gUnknown_0202FFF0 -_081102DC: .4byte gUnknown_02024D26 -_081102E0: .4byte gLinkPlayers -_081102E4: .4byte gUnknown_02029818 - thumb_func_end sub_8110290 - - thumb_func_start sub_81102E8 -sub_81102E8: @ 81102E8 - push {r4,lr} - ldr r4, _08110338 @ =gStringVar1 - movs r0, 0x17 - bl sub_8053108 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN_DigitWidth6 - ldr r4, _0811033C @ =gStringVar2 - movs r0, 0x18 - bl sub_8053108 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN_DigitWidth6 - ldr r4, _08110340 @ =gStringVar3 - movs r0, 0x19 - bl sub_8053108 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN_DigitWidth6 - ldr r0, _08110344 @ =gOtherText_WinRecord - movs r1, 0x3 - movs r2, 0x3 - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08110338: .4byte gStringVar1 -_0811033C: .4byte gStringVar2 -_08110340: .4byte gStringVar3 -_08110344: .4byte gOtherText_WinRecord - thumb_func_end sub_81102E8 - - thumb_func_start sub_8110348 -sub_8110348: @ 8110348 - push {r4-r7,lr} - sub sp, 0x10 - adds r7, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - ldrh r0, [r7, 0xA] - cmp r0, 0 - bne _081103C0 - ldr r0, [r7, 0xC] - cmp r0, 0 - bne _081103C0 - mov r0, sp - movs r2, 0xFC - strb r2, [r0] - mov r1, sp - movs r0, 0x14 - strb r0, [r1, 0x1] - movs r0, 0x6 - strb r0, [r1, 0x2] - mov r0, sp - strb r2, [r0, 0x3] - movs r0, 0x11 - strb r0, [r1, 0x4] - movs r0, 0x1 - strb r0, [r1, 0x5] - mov r4, sp - adds r4, 0x6 - ldr r1, _081103B8 @ =gOtherText_SevenDashes - adds r0, r4, 0 - bl StringCopy - mov r0, sp - movs r1, 0x3 - adds r2, r6, 0 - bl MenuPrint - ldr r1, _081103BC @ =gOtherText_FourDashes - adds r0, r4, 0 - bl StringCopy - mov r0, sp - movs r1, 0xB - adds r2, r6, 0 - bl MenuPrint - mov r0, sp - movs r1, 0x11 - adds r2, r6, 0 - bl MenuPrint - mov r0, sp - movs r1, 0x17 - adds r2, r6, 0 - bl MenuPrint - b _0811042E - .align 2, 0 -_081103B8: .4byte gOtherText_SevenDashes -_081103BC: .4byte gOtherText_FourDashes -_081103C0: - ldr r4, _08110438 @ =gStringVar1 - adds r0, r4, 0 - movs r1, 0x8 - bl StringFillWithTerminator - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0x7 - bl StringCopyN - adds r0, r4, 0 - movs r1, 0x3 - adds r2, r6, 0 - bl MenuPrint - movs r0, 0xFC - strb r0, [r4] - movs r0, 0x14 - strb r0, [r4, 0x1] - movs r0, 0x6 - strb r0, [r4, 0x2] - adds r5, r4, 0x3 - ldrh r1, [r7, 0xA] - adds r0, r5, 0 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - movs r1, 0xB - adds r2, r6, 0 - bl MenuPrint - ldrh r1, [r7, 0xC] - adds r0, r5, 0 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - movs r1, 0x11 - adds r2, r6, 0 - bl MenuPrint - ldrh r1, [r7, 0xE] - adds r0, r5, 0 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - movs r1, 0x17 - adds r2, r6, 0 - bl MenuPrint -_0811042E: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08110438: .4byte gStringVar1 - thumb_func_end sub_8110348 - - thumb_func_start sub_811043C -sub_811043C: @ 811043C - push {r4,lr} - movs r0, 0x1 - movs r1, 0 - movs r2, 0x1C - movs r3, 0x12 - bl MenuDrawTextWindow - ldr r0, _08110488 @ =gOtherText_BattleResults - movs r1, 0 - movs r2, 0x1 - movs r3, 0xF0 - bl sub_8072BD8 - ldr r0, _0811048C @ =gSaveBlock1 + 0x30B8 - bl sub_81102E8 - ldr r0, _08110490 @ =gOtherText_WinLoseDraw - movs r1, 0xC - movs r2, 0x6 - bl MenuPrint - movs r4, 0 -_08110468: - lsls r0, r4, 4 - ldr r1, _0811048C @ =gSaveBlock1 + 0x30B8 - adds r0, r1 - adds r4, 0x1 - lsls r1, r4, 25 - movs r2, 0xC0 - lsls r2, 19 - adds r1, r2 - lsrs r1, 24 - bl sub_8110348 - cmp r4, 0x4 - ble _08110468 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08110488: .4byte gOtherText_BattleResults -_0811048C: .4byte gSaveBlock1 + 0x30B8 -_08110490: .4byte gOtherText_WinLoseDraw - thumb_func_end sub_811043C - - thumb_func_start sub_8110494 -sub_8110494: @ 8110494 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _081104B4 @ =gSaveBlock2 + 0xA8 - ldr r2, _081104B8 @ =0x000004ae - adds r1, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x6 - bhi _081104E0 - lsls r0, 2 - ldr r1, _081104BC @ =_081104C0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081104B4: .4byte gSaveBlock2 + 0xA8 -_081104B8: .4byte 0x000004ae -_081104BC: .4byte _081104C0 - .align 2, 0 -_081104C0: - .4byte _081104E0 - .4byte _081104E0 - .4byte _081104DC - .4byte _081104DC - .4byte _081104E0 - .4byte _081104E0 - .4byte _081104DC -_081104DC: - movs r0, 0x1 - b _081104E2 -_081104E0: - movs r0, 0 -_081104E2: - pop {r1} - bx r1 - thumb_func_end sub_8110494 - - thumb_func_start sub_81104E8 -sub_81104E8: @ 81104E8 - push {r4-r6,lr} - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 24 - lsrs r2, 24 - adds r5, r2, 0 - lsls r3, 24 - lsrs r3, 24 - adds r6, r3, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl MenuPrint - ldr r0, _0811052C @ =0x0000270f - cmp r4, r0 - bls _0811050A - adds r4, r0, 0 -_0811050A: - ldr r0, _08110530 @ =gStringVar1 - adds r1, r4, 0 - movs r2, 0x18 - movs r3, 0x1 - bl sub_8072C14 - ldr r0, _08110534 @ =gOtherText_WinStreak - adds r1, r5, 0x7 - lsls r1, 24 - lsrs r1, 24 - adds r2, r6, 0 - bl MenuPrint - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811052C: .4byte 0x0000270f -_08110530: .4byte gStringVar1 -_08110534: .4byte gOtherText_WinStreak - thumb_func_end sub_81104E8 - - thumb_func_start sub_8110538 -sub_8110538: @ 8110538 - push {r4,lr} - adds r4, r1, 0 - adds r3, r2, 0 - lsls r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r1, _08110564 @ =gSaveBlock2 + 0xA8 - lsrs r0, 23 - movs r2, 0x97 - lsls r2, 3 - adds r1, r2 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _08110568 @ =gOtherText_Record - adds r2, r4, 0 - bl sub_81104E8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08110564: .4byte gSaveBlock2 + 0xA8 -_08110568: .4byte gOtherText_Record - thumb_func_end sub_8110538 - - thumb_func_start sub_811056C -sub_811056C: @ 811056C - push {lr} - lsls r0, 24 - ldr r1, _08110588 @ =gSaveBlock2 - lsrs r0, 23 - ldr r2, _0811058C @ =0x00000574 - adds r1, r2 - adds r0, r1 - ldrh r0, [r0] - ldr r1, _08110590 @ =0x0000270f - cmp r0, r1 - bls _08110584 - adds r0, r1, 0 -_08110584: - pop {r1} - bx r1 - .align 2, 0 -_08110588: .4byte gSaveBlock2 -_0811058C: .4byte 0x00000574 -_08110590: .4byte 0x0000270f - thumb_func_end sub_811056C - - thumb_func_start sub_8110594 -sub_8110594: @ 8110594 - push {r4-r7,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - adds r0, r4, 0 - bl sub_811056C - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - bl sub_8110494 - cmp r0, 0x1 - bne _081105CC - ldr r0, _081105C8 @ =gOtherText_Current - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r7, 0 - bl sub_81104E8 - b _081105D8 - .align 2, 0 -_081105C8: .4byte gOtherText_Current -_081105CC: - ldr r0, _081105E0 @ =gOtherText_Prev - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r7, 0 - bl sub_81104E8 -_081105D8: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081105E0: .4byte gOtherText_Prev - thumb_func_end sub_8110594 - - thumb_func_start sub_81105E4 -sub_81105E4: @ 81105E4 - push {r4,lr} - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x1B - movs r3, 0x11 - bl MenuDrawTextWindow - ldr r0, _08110658 @ =gOtherText_BattleTowerResults - movs r1, 0x3 - movs r2, 0x2 - movs r3, 0xC8 - bl sub_8072BD8 - ldr r0, _0811065C @ =gOtherText_Lv50 - movs r1, 0x5 - movs r2, 0x6 - bl MenuPrint - ldr r0, _08110660 @ =gOtherText_Lv100 - movs r1, 0x5 - movs r2, 0xC - bl MenuPrint - movs r4, 0x5 -_08110614: - lsls r1, r4, 24 - lsrs r1, 24 - movs r0, 0xAE - movs r2, 0xA - bl sub_8071F60 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x19 - bls _08110614 - movs r0, 0 - movs r1, 0xA - movs r2, 0x6 - bl sub_8110594 - movs r0, 0 - movs r1, 0xA - movs r2, 0x8 - bl sub_8110538 - movs r0, 0x1 - movs r1, 0xA - movs r2, 0xC - bl sub_8110594 - movs r0, 0x1 - movs r1, 0xA - movs r2, 0xE - bl sub_8110538 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08110658: .4byte gOtherText_BattleTowerResults -_0811065C: .4byte gOtherText_Lv50 -_08110660: .4byte gOtherText_Lv100 - thumb_func_end sub_81105E4 - - thumb_func_start unref_sub_8110664 -unref_sub_8110664: @ 8110664 - push {lr} - ldr r3, _08110678 @ =0x02000000 - str r1, [r3, 0x4] - str r2, [r3, 0x8] - strh r0, [r3, 0xE] - ldr r0, _0811067C @ =sub_8110680 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08110678: .4byte 0x02000000 -_0811067C: .4byte sub_8110680 - thumb_func_end unref_sub_8110664 - - thumb_func_start sub_8110680 -sub_8110680: @ 8110680 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0811069C @ =gMain - ldr r1, _081106A0 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x7 - bls _08110692 - b _081107C0 -_08110692: - lsls r0, 2 - ldr r1, _081106A4 @ =_081106A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811069C: .4byte gMain -_081106A0: .4byte 0x0000043c -_081106A4: .4byte _081106A8 - .align 2, 0 -_081106A8: - .4byte _081106C8 - .4byte _08110720 - .4byte _08110740 - .4byte _08110746 - .4byte _08110752 - .4byte _08110770 - .4byte _08110782 - .4byte _081107A8 -_081106C8: - movs r0, 0 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xC4 - lsls r2, 7 - adds r0, r2, 0 - strh r0, [r1] - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - ldr r0, _08110710 @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - ldr r2, _08110714 @ =REG_BG0VOFS - ldr r3, _08110718 @ =0x0000fff8 - adds r0, r3, 0 - strh r0, [r2] - ldr r0, _0811071C @ =REG_BG2VOFS - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - b _081107C0 - .align 2, 0 -_08110710: .4byte REG_BG0HOFS -_08110714: .4byte REG_BG0VOFS -_08110718: .4byte 0x0000fff8 -_0811071C: .4byte REG_BG2VOFS -_08110720: - ldr r4, _0811073C @ =0x020006e8 - adds r0, r4, 0 - movs r1, 0 - bl sub_80FA8EC - movs r0, 0x88 - lsls r0, 4 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - bl StringFill - b _081107C0 - .align 2, 0 -_0811073C: .4byte 0x020006e8 -_08110740: - bl sub_8110824 - b _081107C0 -_08110746: - bl sub_8110838 - lsls r0, 24 - cmp r0, 0 - bne _081107CC - b _081107C0 -_08110752: - movs r0, 0x1 - movs r1, 0x1 - bl sub_80FBCF0 - movs r1, 0x8 - negs r1, r1 - movs r0, 0 - bl sub_80FB2A4 - ldr r0, _0811076C @ =sub_81107DC - bl SetVBlankCallback - b _081107C0 - .align 2, 0 -_0811076C: .4byte sub_81107DC -_08110770: - movs r0, 0x15 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _081107C0 -_08110782: - ldr r1, _0811079C @ =REG_BLDCNT - ldr r2, _081107A0 @ =0x00003f41 - adds r0, r2, 0 - strh r0, [r1] - bl sub_8111084 - movs r1, 0x80 - lsls r1, 19 - ldr r3, _081107A4 @ =0x00007741 - adds r0, r3, 0 - strh r0, [r1] - b _081107C0 - .align 2, 0 -_0811079C: .4byte REG_BLDCNT -_081107A0: .4byte 0x00003f41 -_081107A4: .4byte 0x00007741 -_081107A8: - ldr r0, _081107B8 @ =sub_8111288 - bl sub_8110814 - ldr r0, _081107BC @ =sub_81107F0 - bl SetMainCallback2 - b _081107CC - .align 2, 0 -_081107B8: .4byte sub_8111288 -_081107BC: .4byte sub_81107F0 -_081107C0: - ldr r1, _081107D4 @ =gMain - ldr r0, _081107D8 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_081107CC: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081107D4: .4byte gMain -_081107D8: .4byte 0x0000043c - thumb_func_end sub_8110680 - - thumb_func_start sub_81107DC -sub_81107DC: @ 81107DC - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_81107DC - - thumb_func_start sub_81107F0 -sub_81107F0: @ 81107F0 - push {lr} - ldr r0, _08110810 @ =0x02000000 - ldr r0, [r0] - bl _call_via_r0 - bl sub_8111110 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - .align 2, 0 -_08110810: .4byte 0x02000000 - thumb_func_end sub_81107F0 - - thumb_func_start sub_8110814 -sub_8110814: @ 8110814 - ldr r1, _08110820 @ =0x02000000 - str r0, [r1] - movs r0, 0 - strh r0, [r1, 0xC] - bx lr - .align 2, 0 -_08110820: .4byte 0x02000000 - thumb_func_end sub_8110814 - - thumb_func_start sub_8110824 -sub_8110824: @ 8110824 - ldr r0, _08110834 @ =0x02000000 - movs r1, 0x8A - lsls r1, 1 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - bx lr - .align 2, 0 -_08110834: .4byte 0x02000000 - thumb_func_end sub_8110824 - - thumb_func_start sub_8110838 -sub_8110838: @ 8110838 - push {lr} - ldr r1, _08110854 @ =0x02000000 - movs r2, 0x8A - lsls r2, 1 - adds r0, r1, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0x5 - bhi _081108E4 - lsls r0, 2 - ldr r1, _08110858 @ =_0811085C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08110854: .4byte 0x02000000 -_08110858: .4byte _0811085C - .align 2, 0 -_0811085C: - .4byte _08110874 - .4byte _08110884 - .4byte _0811088A - .4byte _0811089C - .4byte _081108C0 - .4byte _081108D0 -_08110874: - ldr r0, _08110880 @ =0x02000000 - ldrh r0, [r0, 0xE] - bl sub_8110908 - b _081108F0 - .align 2, 0 -_08110880: .4byte 0x02000000 -_08110884: - bl sub_8110C34 - b _081108F0 -_0811088A: - ldr r0, _08110894 @ =gUnknown_083F8438 - ldr r1, _08110898 @ =0x0600c000 - bl LZ77UnCompVram - b _081108F0 - .align 2, 0 -_08110894: .4byte gUnknown_083F8438 -_08110898: .4byte 0x0600c000 -_0811089C: - ldr r1, _081108B0 @ =0x040000d4 - ldr r0, _081108B4 @ =0x02000116 - str r0, [r1] - ldr r0, _081108B8 @ =0x0600f000 - str r0, [r1, 0x4] - ldr r0, _081108BC @ =0x80000280 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - b _081108F0 - .align 2, 0 -_081108B0: .4byte 0x040000d4 -_081108B4: .4byte 0x02000116 -_081108B8: .4byte 0x0600f000 -_081108BC: .4byte 0x80000280 -_081108C0: - ldr r0, _081108CC @ =gUnknown_083F8418 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - b _081108F0 - .align 2, 0 -_081108CC: .4byte gUnknown_083F8418 -_081108D0: - ldr r1, _081108E8 @ =REG_BG0CNT - ldr r3, _081108EC @ =0x00001e0d - adds r0, r3, 0 - strh r0, [r1] - movs r0, 0x8A - lsls r0, 1 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_081108E4: - movs r0, 0 - b _08110900 - .align 2, 0 -_081108E8: .4byte REG_BG0CNT -_081108EC: .4byte 0x00001e0d -_081108F0: - ldr r1, _08110904 @ =0x02000000 - movs r2, 0x8A - lsls r2, 1 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 -_08110900: - pop {r1} - bx r1 - .align 2, 0 -_08110904: .4byte 0x02000000 - thumb_func_end sub_8110838 - - thumb_func_start sub_8110908 -sub_8110908: @ 8110908 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 16 - lsrs r7, r0, 16 - .ifdef SAPPHIRE - ldr r0, _sub_8110908_Latias @ =407 - .else - @ Latios - movs r0, 0xCC - lsls r0, 1 - .endif - cmp r7, r0 - bne _0811091E - b _08110A44 -_0811091E: - ldr r2, _08110988 @ =0x02000000 - movs r1, 0x88 - lsls r1, 1 - adds r0, r2, r1 - movs r1, 0 - strh r1, [r0] - movs r3, 0x89 - lsls r3, 1 - adds r0, r2, r3 - strh r1, [r0] - movs r6, 0 - ldr r1, _0811098C @ =gUnknown_083F856C -_08110936: - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - bne _08110942 - b _08110A8C -_08110942: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - beq _08110936 - movs r6, 0 - ldr r4, _08110990 @ =gUnknown_083F856E - ldrh r0, [r4] - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _081109D0 - mov r8, r4 - adds r5, r4, 0x4 - mov r9, r1 -_08110960: - lsls r0, r6, 1 - adds r1, r0, r6 - lsls r2, r1, 1 - mov r3, r8 - adds r1, r2, r3 - adds r3, r0, 0 - ldrh r1, [r1] - cmp r7, r1 - bne _081109BA - adds r0, r4, 0x2 - adds r0, r2, r0 - ldrh r0, [r0] - cmp r0, 0x18 - beq _081109A6 - cmp r0, 0x18 - bgt _08110994 - cmp r0, 0 - beq _0811099A - b _081109BA - .align 2, 0 - .ifdef SAPPHIRE -_sub_8110908_Latias: .4byte 407 - .endif -_08110988: .4byte 0x02000000 -_0811098C: .4byte gUnknown_083F856C -_08110990: .4byte gUnknown_083F856E -_08110994: - cmp r0, 0x1A - beq _081109A6 - b _081109BA -_0811099A: - adds r0, r2, r5 - ldrh r1, [r0] - movs r0, 0 - bl sub_8110A98 - b _081109BA -_081109A6: - adds r1, r3, r6 - lsls r1, 1 - mov r0, r8 - adds r0, 0x2 - adds r0, r1, r0 - ldrh r0, [r0] - adds r1, r5 - ldrh r1, [r1] - bl sub_8110AE4 -_081109BA: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r4, _08110A00 @ =gUnknown_083F856E - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r9 - bne _08110960 -_081109D0: - movs r6, 0 - ldr r1, _08110A04 @ =gWildMonHeaders - ldrb r0, [r1] - cmp r0, 0xFF - beq _08110A8C -_081109DA: - lsls r4, r6, 2 - adds r0, r4, r6 - lsls r0, 2 - adds r5, r0, r1 - adds r0, r5, 0 - adds r1, r7, 0 - bl sub_8110BA4 - lsls r0, 24 - cmp r0, 0 - beq _08110A28 - ldrb r0, [r5] - cmp r0, 0x18 - beq _08110A18 - cmp r0, 0x18 - bgt _08110A08 - cmp r0, 0 - beq _08110A0E - b _08110A28 - .align 2, 0 -_08110A00: .4byte gUnknown_083F856E -_08110A04: .4byte gWildMonHeaders -_08110A08: - cmp r0, 0x1A - beq _08110A18 - b _08110A28 -_08110A0E: - ldrb r1, [r5, 0x1] - movs r0, 0 - bl sub_8110A98 - b _08110A28 -_08110A18: - ldr r0, _08110A40 @ =gWildMonHeaders - adds r1, r4, r6 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - bl sub_8110AE4 -_08110A28: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _08110A40 @ =gWildMonHeaders - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081109DA - b _08110A8C - .align 2, 0 -_08110A40: .4byte gWildMonHeaders -_08110A44: - ldr r4, _08110A7C @ =0x02000000 - movs r0, 0x89 - lsls r0, 1 - adds r1, r4, r0 - movs r0, 0 - strh r0, [r1] - ldr r0, _08110A80 @ =gSaveBlock1 + 0x3144 - ldrb r2, [r0, 0x13] - cmp r2, 0 - beq _08110A84 - adds r0, r4, 0 - adds r0, 0x10 - adds r1, r4, 0 - adds r1, 0x11 - bl sub_8134538 - ldrb r0, [r4, 0x10] - ldrb r1, [r4, 0x11] - bl get_mapheader_by_bank_and_number - ldrb r0, [r0, 0x14] - strh r0, [r4, 0x12] - movs r3, 0x88 - lsls r3, 1 - adds r1, r4, r3 - movs r0, 0x1 - strh r0, [r1] - b _08110A8C - .align 2, 0 -_08110A7C: .4byte 0x02000000 -_08110A80: .4byte gSaveBlock1 + 0x3144 -_08110A84: - movs r1, 0x88 - lsls r1, 1 - adds r0, r4, r1 - strh r2, [r0] -_08110A8C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8110908 - - thumb_func_start sub_8110A98 -sub_8110A98: @ 8110A98 - push {r4,r5,lr} - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r5, _08110AE0 @ =0x02000000 - movs r0, 0x88 - lsls r0, 1 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, 0x3F - bhi _08110AD8 - lsls r0, 2 - adds r0, r5 - strb r2, [r0, 0x10] - ldrh r0, [r4] - lsls r0, 2 - adds r0, r5 - strb r1, [r0, 0x11] - adds r0, r2, 0 - bl get_mapheader_by_bank_and_number - ldrb r0, [r0, 0x14] - bl sub_80FBA04 - ldrh r1, [r4] - lsls r1, 2 - adds r1, r5 - strh r0, [r1, 0x12] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_08110AD8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08110AE0: .4byte 0x02000000 - thumb_func_end sub_8110A98 - - thumb_func_start sub_8110AE4 -sub_8110AE4: @ 8110AE4 - push {r4-r6,lr} - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _08110B9C @ =0x02000000 - movs r3, 0x89 - lsls r3, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, 0x1F - bhi _08110B96 - adds r0, r2, 0 - bl get_mapheader_by_bank_and_number - adds r6, r0, 0 - ldrb r0, [r6, 0x14] - cmp r0, 0x57 - bhi _08110B96 - movs r4, 0 - ldr r1, _08110BA0 @ =gUnknown_083F857A - ldrh r0, [r1] - cmp r0, 0x58 - beq _08110B42 - adds r5, r1, 0 -_08110B16: - lsls r2, r4, 2 - adds r1, r2, r5 - ldrb r0, [r6, 0x14] - ldrh r1, [r1] - cmp r0, r1 - bne _08110B32 - adds r0, r5, 0x2 - adds r0, r2, r0 - ldrh r0, [r0] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08110B96 -_08110B32: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r0, r4, 2 - adds r0, r5 - ldrh r0, [r0] - cmp r0, 0x58 - bne _08110B16 -_08110B42: - movs r4, 0 - ldr r0, _08110B9C @ =0x02000000 - movs r1, 0x89 - lsls r1, 1 - adds r2, r0, r1 - ldrh r3, [r2] - adds r1, r0, 0 - cmp r4, r3 - bcs _08110B76 - movs r0, 0xC4 - lsls r0, 3 - adds r5, r1, r0 - ldrh r0, [r5] - ldrb r2, [r6, 0x14] - cmp r0, r2 - beq _08110B76 -_08110B62: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r3 - bcs _08110B76 - lsls r0, r4, 1 - adds r0, r5 - ldrh r0, [r0] - cmp r0, r2 - bne _08110B62 -_08110B76: - movs r3, 0x89 - lsls r3, 1 - adds r2, r1, r3 - ldrh r0, [r2] - cmp r4, r0 - bne _08110B96 - lsls r0, r4, 1 - movs r3, 0xC4 - lsls r3, 3 - adds r1, r3 - adds r0, r1 - ldrb r1, [r6, 0x14] - strh r1, [r0] - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] -_08110B96: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08110B9C: .4byte 0x02000000 -_08110BA0: .4byte gUnknown_083F857A - thumb_func_end sub_8110AE4 - - thumb_func_start sub_8110BA4 -sub_8110BA4: @ 8110BA4 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - adds r6, r4, 0 - ldr r0, [r5, 0x4] - adds r1, r4, 0 - movs r2, 0xC - bl sub_8110BFC - lsls r0, 24 - cmp r0, 0 - bne _08110BF2 - ldr r0, [r5, 0x8] - adds r1, r4, 0 - movs r2, 0x5 - bl sub_8110BFC - lsls r0, 24 - cmp r0, 0 - bne _08110BF2 - ldr r0, [r5, 0x10] - adds r1, r4, 0 - movs r2, 0xC - bl sub_8110BFC - lsls r0, 24 - cmp r0, 0 - bne _08110BF2 - ldr r0, [r5, 0xC] - adds r1, r6, 0 - movs r2, 0x5 - bl sub_8110BFC - lsls r0, 24 - cmp r0, 0 - bne _08110BF2 - movs r0, 0 - b _08110BF4 -_08110BF2: - movs r0, 0x1 -_08110BF4: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8110BA4 - - thumb_func_start sub_8110BFC -sub_8110BFC: @ 8110BFC - push {r4,lr} - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 16 - lsrs r2, 16 - cmp r0, 0 - beq _08110C2A - movs r3, 0 - cmp r3, r2 - bcs _08110C2A - ldr r1, [r0, 0x4] -_08110C12: - lsls r0, r3, 2 - adds r0, r1 - ldrh r0, [r0, 0x2] - cmp r0, r4 - bne _08110C20 - movs r0, 0x1 - b _08110C2C -_08110C20: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r2 - bcc _08110C12 -_08110C2A: - movs r0, 0 -_08110C2C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8110BFC - - thumb_func_start sub_8110C34 -sub_8110C34: @ 8110C34 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - ldr r1, _08110E5C @ =gUnknown_02039260 - movs r0, 0 - strh r0, [r1] - mov r9, r1 - ldr r0, _08110E60 @ =0x02000000 - mov r8, r0 - ldr r1, _08110E64 @ =gUnknown_02039262 - mov r12, r1 - mov r1, r9 - movs r4, 0x8B - lsls r4, 1 - add r4, r8 - ldr r3, _08110E68 @ =0x0000027f - movs r2, 0 -_08110C5C: - ldrh r0, [r1] - lsls r0, 1 - adds r0, r4 - strh r2, [r0] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, r3 - bls _08110C5C - movs r0, 0 - mov r3, r9 - strh r0, [r3] - movs r1, 0x88 - lsls r1, 1 - add r1, r8 - ldrh r0, [r1] - cmp r0, 0 - beq _08110D04 - ldr r4, _08110E6C @ =gUnknown_02039266 - movs r2, 0 - ldr r5, _08110E64 @ =gUnknown_02039262 - mov r0, r8 - str r0, [sp, 0x8] - movs r1, 0x8B - lsls r1, 1 - add r1, r8 - mov r10, r1 - ldr r6, _08110E70 @ =gUnknown_02039264 - mov r7, r9 -_08110C9A: - strh r2, [r4] - ldr r3, _08110E70 @ =gUnknown_02039264 - strh r2, [r3] -_08110CA0: - mov r0, r12 - strh r2, [r0] -_08110CA4: - ldrh r0, [r5] - ldrh r1, [r6] - str r2, [sp] - bl sub_80FB9A8 - ldrh r1, [r7] - lsls r1, 2 - ldr r3, [sp, 0x8] - adds r1, r3 - lsls r0, 16 - lsrs r0, 16 - ldr r2, [sp] - ldrh r1, [r1, 0x12] - cmp r0, r1 - bne _08110CCC - ldrh r0, [r4] - lsls r0, 1 - add r0, r10 - ldr r1, _08110E74 @ =0x0000ffff - strh r1, [r0] -_08110CCC: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1F - bls _08110CA4 - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08110E64 @ =gUnknown_02039262 - mov r12, r1 - cmp r0, 0x13 - bls _08110CA0 - ldrh r0, [r7] - adds r0, 0x1 - strh r0, [r7] - lsls r0, 16 - lsrs r0, 16 - ldr r3, _08110E78 @ =0x02000110 - ldrh r3, [r3] - cmp r0, r3 - bcc _08110C9A -_08110D04: - movs r0, 0 - ldr r1, _08110E6C @ =gUnknown_02039266 - strh r0, [r1] - ldr r3, _08110E70 @ =gUnknown_02039264 - strh r0, [r3] - ldr r6, _08110E64 @ =gUnknown_02039262 - mov r10, r0 - adds r3, r1, 0 - ldr r5, _08110E7C @ =0x02000116 - ldr r4, _08110E74 @ =0x0000ffff - ldr r7, _08110E70 @ =gUnknown_02039264 -_08110D1A: - mov r0, r10 - strh r0, [r6] -_08110D1E: - ldrh r1, [r3] - lsls r0, r1, 1 - adds r0, r5 - ldrh r0, [r0] - cmp r0, r4 - bne _08110E10 - ldrh r0, [r6] - cmp r0, 0 - beq _08110D42 - subs r0, r1, 0x1 - lsls r0, 1 - adds r2, r0, r5 - ldrh r1, [r2] - cmp r1, r4 - beq _08110D42 - movs r0, 0x2 - orrs r0, r1 - strh r0, [r2] -_08110D42: - ldrh r0, [r6] - cmp r0, 0x1F - beq _08110D5C - ldrh r0, [r3] - adds r0, 0x1 - lsls r0, 1 - adds r2, r0, r5 - ldrh r1, [r2] - cmp r1, r4 - beq _08110D5C - movs r0, 0x1 - orrs r0, r1 - strh r0, [r2] -_08110D5C: - ldrh r0, [r7] - cmp r0, 0 - beq _08110D76 - ldrh r0, [r3] - subs r0, 0x20 - lsls r0, 1 - adds r2, r0, r5 - ldrh r1, [r2] - cmp r1, r4 - beq _08110D76 - movs r0, 0x8 - orrs r0, r1 - strh r0, [r2] -_08110D76: - ldrh r0, [r7] - cmp r0, 0x13 - beq _08110D90 - ldrh r0, [r3] - adds r0, 0x20 - lsls r0, 1 - adds r2, r0, r5 - ldrh r1, [r2] - cmp r1, r4 - beq _08110D90 - movs r0, 0x4 - orrs r0, r1 - strh r0, [r2] -_08110D90: - ldrh r0, [r6] - cmp r0, 0 - beq _08110DB0 - ldrh r0, [r7] - cmp r0, 0 - beq _08110DB0 - ldrh r0, [r3] - subs r0, 0x21 - lsls r0, 1 - adds r2, r0, r5 - ldrh r1, [r2] - cmp r1, r4 - beq _08110DB0 - movs r0, 0x10 - orrs r0, r1 - strh r0, [r2] -_08110DB0: - ldrh r0, [r6] - cmp r0, 0x1F - beq _08110DD0 - ldrh r0, [r7] - cmp r0, 0 - beq _08110DD0 - ldrh r0, [r3] - subs r0, 0x1F - lsls r0, 1 - adds r2, r0, r5 - ldrh r1, [r2] - cmp r1, r4 - beq _08110DD0 - movs r0, 0x40 - orrs r0, r1 - strh r0, [r2] -_08110DD0: - ldrh r0, [r6] - cmp r0, 0 - beq _08110DF0 - ldrh r0, [r7] - cmp r0, 0x13 - beq _08110DF0 - ldrh r0, [r3] - adds r0, 0x1F - lsls r0, 1 - adds r2, r0, r5 - ldrh r1, [r2] - cmp r1, r4 - beq _08110DF0 - movs r0, 0x20 - orrs r0, r1 - strh r0, [r2] -_08110DF0: - ldrh r0, [r6] - cmp r0, 0x1F - beq _08110E10 - ldrh r0, [r7] - cmp r0, 0x13 - beq _08110E10 - ldrh r0, [r3] - adds r0, 0x21 - lsls r0, 1 - adds r2, r0, r5 - ldrh r1, [r2] - cmp r1, r4 - beq _08110E10 - movs r0, 0x80 - orrs r0, r1 - strh r0, [r2] -_08110E10: - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1F - bhi _08110E26 - b _08110D1E -_08110E26: - ldrh r0, [r7] - adds r0, 0x1 - strh r0, [r7] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x13 - bhi _08110E36 - b _08110D1A -_08110E36: - movs r0, 0 - mov r1, r9 - strh r0, [r1] -_08110E3C: - mov r3, r9 - ldrh r0, [r3] - lsls r0, 1 - movs r4, 0x8B - lsls r4, 1 - add r4, r8 - adds r3, r0, r4 - ldrh r2, [r3] - adds r1, r2, 0 - ldr r0, _08110E74 @ =0x0000ffff - cmp r1, r0 - bne _08110E80 - movs r0, 0x10 - strh r0, [r3] - b _0811105E - .align 2, 0 -_08110E5C: .4byte gUnknown_02039260 -_08110E60: .4byte 0x02000000 -_08110E64: .4byte gUnknown_02039262 -_08110E68: .4byte 0x0000027f -_08110E6C: .4byte gUnknown_02039266 -_08110E70: .4byte gUnknown_02039264 -_08110E74: .4byte 0x0000ffff -_08110E78: .4byte 0x02000110 -_08110E7C: .4byte 0x02000116 -_08110E80: - cmp r1, 0 - bne _08110E86 - b _0811105E -_08110E86: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _08110E94 - ldr r0, _08110F28 @ =0x0000ffcf - ands r0, r2 - strh r0, [r3] -_08110E94: - mov r1, r9 - ldrh r0, [r1] - lsls r0, 1 - adds r2, r0, r4 - ldrh r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08110EAC - ldr r0, _08110F2C @ =0x0000ff3f - ands r0, r1 - strh r0, [r2] -_08110EAC: - mov r3, r9 - ldrh r0, [r3] - lsls r0, 1 - adds r2, r0, r4 - ldrh r1, [r2] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08110EC4 - ldr r0, _08110F30 @ =0x0000ffaf - ands r0, r1 - strh r0, [r2] -_08110EC4: - mov r1, r9 - ldrh r0, [r1] - lsls r0, 1 - adds r2, r0, r4 - ldrh r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08110EDC - ldr r0, _08110F34 @ =0x0000ff5f - ands r0, r1 - strh r0, [r2] -_08110EDC: - ldr r6, _08110F38 @ =gUnknown_02039268 - mov r3, r9 - ldrh r0, [r3] - lsls r0, 1 - adds r0, r4 - ldrh r1, [r0] - movs r5, 0xF - adds r0, r5, 0 - ands r0, r1 - strh r0, [r6] - ldr r2, _08110F3C @ =gUnknown_0203926A - ldrh r0, [r3] - lsls r0, 1 - adds r0, r4 - ldrh r1, [r0] - movs r0, 0xF0 - ands r0, r1 - strh r0, [r2] - ldrh r1, [r3] - adds r3, r2, 0 - cmp r0, 0 - bne _08110F0A - b _0811105E -_08110F0A: - lsls r0, r1, 1 - adds r0, r4 - ldrh r2, [r0] - adds r1, r5, 0 - ands r1, r2 - strh r1, [r0] - ldrh r0, [r6] - cmp r0, 0xA - bls _08110F1E - b _0811105E -_08110F1E: - lsls r0, 2 - ldr r1, _08110F40 @ =_08110F44 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08110F28: .4byte 0x0000ffcf -_08110F2C: .4byte 0x0000ff3f -_08110F30: .4byte 0x0000ffaf -_08110F34: .4byte 0x0000ff5f -_08110F38: .4byte gUnknown_02039268 -_08110F3C: .4byte gUnknown_0203926A -_08110F40: .4byte _08110F44 - .align 2, 0 -_08110F44: - .4byte _08110F70 - .4byte _08110FAC - .4byte _08110F8E - .4byte _0811105E - .4byte _08111002 - .4byte _08111036 - .4byte _08111036 - .4byte _0811105E - .4byte _08110FCE - .4byte _0811104A - .4byte _0811104A -_08110F70: - ldrh r0, [r3] - lsls r1, r0, 16 - cmp r1, 0 - beq _0811105E - mov r0, r9 - ldrh r2, [r0] - lsls r2, 1 - movs r0, 0x8B - lsls r0, 1 - add r0, r8 - adds r2, r0 - ldrh r0, [r2] - adds r0, 0x10 - lsrs r1, 20 - b _08110FC8 -_08110F8E: - ldrh r0, [r3] - lsls r1, r0, 16 - cmp r1, 0 - beq _0811105E - mov r3, r9 - ldrh r2, [r3] - lsls r2, 1 - movs r0, 0x8B - lsls r0, 1 - add r0, r8 - adds r2, r0 - ldrh r0, [r2] - adds r0, 0x1E - lsrs r1, 20 - b _08110FC8 -_08110FAC: - ldrh r0, [r3] - lsls r1, r0, 16 - cmp r1, 0 - beq _0811105E - mov r0, r9 - ldrh r2, [r0] - lsls r2, 1 - movs r0, 0x8B - lsls r0, 1 - add r0, r8 - adds r2, r0 - ldrh r0, [r2] - adds r0, 0x20 - lsrs r1, 22 -_08110FC8: - adds r0, r1 - strh r0, [r2] - b _0811105E -_08110FCE: - ldrh r2, [r3] - cmp r2, 0 - beq _0811105E - movs r0, 0x80 - ands r0, r2 - lsls r0, 16 - lsrs r0, 16 - negs r0, r0 - lsrs r3, r0, 31 - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _08110FEC - movs r0, 0x2 - orrs r3, r0 -_08110FEC: - mov r0, r9 - ldrh r1, [r0] - lsls r1, 1 - movs r0, 0x8B - lsls r0, 1 - add r0, r8 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x20 - adds r0, r3 - b _0811105C -_08111002: - ldrh r2, [r3] - cmp r2, 0 - beq _0811105E - movs r0, 0x40 - ands r0, r2 - lsls r0, 16 - lsrs r0, 16 - negs r0, r0 - lsrs r3, r0, 31 - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _08111020 - movs r0, 0x2 - orrs r3, r0 -_08111020: - mov r0, r9 - ldrh r1, [r0] - lsls r1, 1 - movs r0, 0x8B - lsls r0, 1 - add r0, r8 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x21 - adds r0, r3 - b _0811105C -_08111036: - mov r3, r9 - ldrh r1, [r3] - lsls r1, 1 - movs r0, 0x8B - lsls r0, 1 - add r0, r8 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x27 - b _0811105C -_0811104A: - mov r0, r9 - ldrh r1, [r0] - lsls r1, 1 - movs r0, 0x8B - lsls r0, 1 - add r0, r8 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x25 -_0811105C: - strh r0, [r1] -_0811105E: - mov r3, r9 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] - lsls r0, 16 - ldr r1, _08111080 @ =0x027f0000 - cmp r0, r1 - bhi _08111070 - b _08110E3C -_08111070: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08111080: .4byte 0x027f0000 - thumb_func_end sub_8110C34 - - thumb_func_start sub_8111084 -sub_8111084: @ 8111084 - push {lr} - ldr r0, _081110AC @ =0x02000000 - movs r2, 0x89 - lsls r2, 1 - adds r1, r0, r2 - ldrh r1, [r1] - adds r2, r0, 0 - cmp r1, 0 - beq _081110B4 - movs r3, 0x88 - lsls r3, 1 - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, 0 - bne _081110B4 - ldr r0, _081110B0 @ =0x0000061e - adds r1, r2, r0 - movs r0, 0x1 - b _081110BA - .align 2, 0 -_081110AC: .4byte 0x02000000 -_081110B0: .4byte 0x0000061e -_081110B4: - ldr r3, _081110FC @ =0x0000061e - adds r1, r2, r3 - movs r0, 0 -_081110BA: - strb r0, [r1] - ldr r1, _08111100 @ =0x00000616 - adds r0, r2, r1 - movs r1, 0 - strh r1, [r0] - movs r3, 0xC3 - lsls r3, 3 - adds r0, r2, r3 - strh r1, [r0] - adds r3, 0x2 - adds r0, r2, r3 - strh r1, [r0] - ldr r0, _08111104 @ =0x0000061c - adds r1, r2, r0 - movs r0, 0x40 - strh r0, [r1] - adds r3, 0x5 - adds r1, r2, r3 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _08111108 @ =REG_BLDCNT - ldr r2, _0811110C @ =0x00003f41 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0x80 - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r1] - bl sub_8111110 - pop {r0} - bx r0 - .align 2, 0 -_081110FC: .4byte 0x0000061e -_08111100: .4byte 0x00000616 -_08111104: .4byte 0x0000061c -_08111108: .4byte REG_BLDCNT -_0811110C: .4byte 0x00003f41 - thumb_func_end sub_8111084 - - thumb_func_start sub_8111110 -sub_8111110: @ 8111110 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _0811114C @ =0x02000000 - ldr r2, _08111150 @ =0x0000061e - adds r1, r0, r2 - ldrb r1, [r1] - adds r5, r0, 0 - cmp r1, 0 - bne _081111DE - ldr r3, _08111154 @ =0x00000616 - adds r1, r5, r3 - ldrh r0, [r1] - cmp r0, 0 - bne _081111D8 - movs r1, 0xC3 - lsls r1, 3 - adds r0, r5, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08111158 - subs r2, 0x4 - adds r0, r5, r2 - b _0811115C - .align 2, 0 -_0811114C: .4byte 0x02000000 -_08111150: .4byte 0x0000061e -_08111154: .4byte 0x00000616 -_08111158: - ldr r3, _081111C0 @ =0x0000061c - adds r0, r5, r3 -_0811115C: - ldrh r1, [r0] - adds r1, 0x4 - movs r2, 0x7F - ands r1, r2 - strh r1, [r0] - ldr r2, _081111C4 @ =gSineTable - ldr r1, _081111C8 @ =0x0000061a - adds r0, r5, r1 - ldrh r0, [r0] - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 20 - lsls r1, 16 - lsrs r1, 16 - ldr r3, _081111C0 @ =0x0000061c - adds r0, r5, r3 - ldrh r0, [r0] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 20 - lsls r0, 16 - ldr r2, _081111CC @ =REG_BLDALPHA - lsrs r0, 8 - orrs r1, r0 - strh r1, [r2] - ldr r1, _081111D0 @ =0x00000616 - adds r0, r5, r1 - movs r2, 0 - strh r2, [r0] - subs r3, 0x4 - adds r1, r5, r3 - ldrh r0, [r1] - cmp r0, 0x40 - bne _0811126E - strh r2, [r1] - movs r1, 0x89 - lsls r1, 1 - adds r0, r5, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _0811126E - ldr r2, _081111D4 @ =0x0000061e - adds r1, r5, r2 - movs r0, 0x1 - b _0811126C - .align 2, 0 -_081111C0: .4byte 0x0000061c -_081111C4: .4byte gSineTable -_081111C8: .4byte 0x0000061a -_081111CC: .4byte REG_BLDALPHA -_081111D0: .4byte 0x00000616 -_081111D4: .4byte 0x0000061e -_081111D8: - subs r0, 0x1 - strh r0, [r1] - b _0811126E -_081111DE: - ldr r3, _0811127C @ =0x00000616 - adds r1, r5, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xC - bls _0811126E - movs r0, 0 - strh r0, [r1] - ldr r0, _08111280 @ =0x0000061f - adds r1, r5, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r4, 0 - movs r2, 0x89 - lsls r2, 1 - adds r0, r5, r2 - ldrh r3, [r0] - cmp r4, r3 - bcs _0811124C - movs r2, 0xCC - lsls r2, 3 - adds r2, r5 - mov r9, r2 - mov r8, r1 - movs r3, 0x1 - mov r12, r3 - adds r6, r0, 0 - movs r7, 0x5 - negs r7, r7 -_08111220: - lsls r0, r4, 2 - add r0, r9 - ldr r3, [r0] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x1 - adds r3, 0x3E - ands r1, r0 - mov r2, r12 - ands r1, r2 - lsls r1, 2 - ldrb r2, [r3] - adds r0, r7, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r3, [r6] - cmp r4, r3 - bcc _08111220 -_0811124C: - ldr r0, _08111280 @ =0x0000061f - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, 0x4 - bls _0811126E - movs r0, 0x1 - strb r0, [r1] - movs r1, 0x88 - lsls r1, 1 - adds r0, r5, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _0811126E - ldr r2, _08111284 @ =0x0000061e - adds r1, r5, r2 - movs r0, 0 -_0811126C: - strb r0, [r1] -_0811126E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811127C: .4byte 0x00000616 -_08111280: .4byte 0x0000061f -_08111284: .4byte 0x0000061e - thumb_func_end sub_8111110 - - thumb_func_start sub_8111288 -sub_8111288: @ 8111288 - push {lr} - ldr r1, _08111298 @ =0x02000000 - ldrh r0, [r1, 0xC] - cmp r0, 0 - beq _0811129C - cmp r0, 0x1 - beq _081112A2 - b _081112B2 - .align 2, 0 -_08111298: .4byte 0x02000000 -_0811129C: - movs r0, 0x1 - strh r0, [r1, 0xC] - b _081112B2 -_081112A2: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _081112B2 - ldr r0, _081112B8 @ =sub_81112BC - bl sub_8110814 -_081112B2: - pop {r0} - bx r0 - .align 2, 0 -_081112B8: .4byte sub_81112BC - thumb_func_end sub_8111288 - - thumb_func_start sub_81112BC -sub_81112BC: @ 81112BC - push {lr} - ldr r0, _081112DC @ =0x02000000 - ldrh r0, [r0, 0xC] - cmp r0, 0 - bne _08111308 - ldr r0, _081112E0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081112E8 - ldr r0, _081112E4 @ =sub_8111314 - bl sub_8110814 - b _08111308 - .align 2, 0 -_081112DC: .4byte 0x02000000 -_081112E0: .4byte gMain -_081112E4: .4byte sub_8111314 -_081112E8: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08111302 - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08111308 - ldr r0, _0811130C @ =gSaveBlock2 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _08111308 -_08111302: - ldr r0, _08111310 @ =sub_8111360 - bl sub_8110814 -_08111308: - pop {r0} - bx r0 - .align 2, 0 -_0811130C: .4byte gSaveBlock2 -_08111310: .4byte sub_8111360 - thumb_func_end sub_81112BC - - thumb_func_start sub_8111314 -sub_8111314: @ 8111314 - push {r4,lr} - sub sp, 0x4 - ldr r4, _08111328 @ =0x02000000 - ldrh r1, [r4, 0xC] - cmp r1, 0 - beq _0811132C - cmp r1, 0x1 - beq _08111344 - b _08111358 - .align 2, 0 -_08111328: .4byte 0x02000000 -_0811132C: - movs r0, 0x15 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - b _08111358 -_08111344: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08111358 - bl sub_80FAB10 - ldr r0, [r4, 0x4] - bl SetMainCallback2 -_08111358: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8111314 - - thumb_func_start sub_8111360 -sub_8111360: @ 8111360 - push {r4,lr} - sub sp, 0x4 - ldr r4, _08111374 @ =0x02000000 - ldrh r1, [r4, 0xC] - cmp r1, 0 - beq _08111378 - cmp r1, 0x1 - beq _08111390 - b _081113A4 - .align 2, 0 -_08111374: .4byte 0x02000000 -_08111378: - movs r0, 0x15 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - b _081113A4 -_08111390: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _081113A4 - bl sub_80FAB10 - ldr r0, [r4, 0x8] - bl SetMainCallback2 -_081113A4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8111360 - - thumb_func_start sub_81113AC -sub_81113AC: @ 81113AC - push {r4,lr} - ldr r2, _081113DC @ =0x02000000 - movs r3, 0 - movs r4, 0 - strh r0, [r2, 0xE] - ldr r0, _081113E0 @ =0x000006e4 - adds r2, r0 - str r1, [r2] - strb r3, [r1] - ldr r0, _081113E4 @ =sub_81113EC - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081113E8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081113DC: .4byte 0x02000000 -_081113E0: .4byte 0x000006e4 -_081113E4: .4byte sub_81113EC -_081113E8: .4byte gTasks - thumb_func_end sub_81113AC - - thumb_func_start sub_81113EC -sub_81113EC: @ 81113EC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08111414 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0xB - bls _0811140A - b _08111540 -_0811140A: - lsls r0, 2 - ldr r1, _08111418 @ =_0811141C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08111414: .4byte gTasks -_08111418: .4byte _0811141C - .align 2, 0 -_0811141C: - .4byte _0811144C - .4byte _08111488 - .4byte _08111496 - .4byte _081114B8 - .4byte _081114BE - .4byte _081114CA - .4byte _081114DE - .4byte _081114E4 - .4byte _081114EA - .4byte _081114F0 - .4byte _08111502 - .4byte _08111528 -_0811144C: - movs r1, 0x80 - lsls r1, 19 - movs r3, 0xC4 - lsls r3, 7 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _08111478 @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - ldr r2, _0811147C @ =REG_BG0VOFS - ldr r3, _08111480 @ =0x0000fff8 - adds r0, r3, 0 - strh r0, [r2] - ldr r0, _08111484 @ =REG_BG2VOFS - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - b _08111540 - .align 2, 0 -_08111478: .4byte REG_BG0HOFS -_0811147C: .4byte REG_BG0VOFS -_08111480: .4byte 0x0000fff8 -_08111484: .4byte REG_BG2VOFS -_08111488: - bl ResetPaletteFade - bl ResetSpriteData - bl FreeAllSpritePalettes - b _08111540 -_08111496: - ldr r4, _081114B4 @ =0x020006e8 - adds r0, r4, 0 - movs r1, 0 - bl sub_80FA8EC - movs r0, 0x88 - lsls r0, 4 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - bl StringFill - b _08111540 - .align 2, 0 -_081114B4: .4byte 0x020006e8 -_081114B8: - bl sub_8110824 - b _08111540 -_081114BE: - bl sub_8110838 - lsls r0, 24 - cmp r0, 0 - bne _08111550 - b _08111540 -_081114CA: - movs r0, 0x1 - movs r1, 0x1 - bl sub_80FBCF0 - movs r1, 0x8 - negs r1, r1 - movs r0, 0 - bl sub_80FB2A4 - b _08111540 -_081114DE: - bl sub_8111658 - b _08111540 -_081114E4: - bl sub_81117AC - b _08111540 -_081114EA: - bl sub_81117E4 - b _08111540 -_081114F0: - movs r0, 0x15 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _08111540 -_08111502: - ldr r1, _0811151C @ =REG_BLDCNT - ldr r2, _08111520 @ =0x00003f41 - adds r0, r2, 0 - strh r0, [r1] - bl sub_8111084 - movs r1, 0x80 - lsls r1, 19 - ldr r3, _08111524 @ =0x00007741 - adds r0, r3, 0 - strh r0, [r1] - b _08111540 - .align 2, 0 -_0811151C: .4byte REG_BLDCNT -_08111520: .4byte 0x00003f41 -_08111524: .4byte 0x00007741 -_08111528: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - ldr r1, _0811153C @ =sub_811155C - str r1, [r0] - movs r1, 0 - strh r1, [r0, 0x8] - b _08111550 - .align 2, 0 -_0811153C: .4byte sub_811155C -_08111540: - ldr r0, _08111558 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_08111550: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08111558: .4byte gTasks - thumb_func_end sub_81113EC - - thumb_func_start sub_811155C -sub_811155C: @ 811155C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8111110 - ldr r1, _08111584 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r0, 0x8 - ldrsh r1, [r5, r0] - cmp r1, 0x1 - beq _081115B4 - cmp r1, 0x1 - bgt _08111588 - cmp r1, 0 - beq _0811159E - b _08111590 - .align 2, 0 -_08111584: .4byte gTasks -_08111588: - cmp r1, 0x2 - beq _081115F8 - cmp r1, 0x3 - beq _0811160A -_08111590: - ldr r0, _081115AC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0 - strh r0, [r1, 0x8] -_0811159E: - ldr r0, _081115B0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811164C - b _0811163C - .align 2, 0 -_081115AC: .4byte gTasks -_081115B0: .4byte gPaletteFade -_081115B4: - ldr r0, _081115CC @ =gMain - ldrh r2, [r0, 0x2E] - movs r3, 0x2 - adds r0, r3, 0 - ands r0, r2 - cmp r0, 0 - beq _081115D0 - strh r1, [r5, 0xA] - movs r0, 0x3 - bl PlaySE - b _0811163C - .align 2, 0 -_081115CC: .4byte gMain -_081115D0: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - bne _081115EA - movs r0, 0x80 - lsls r0, 1 - ands r0, r2 - cmp r0, 0 - beq _0811164C - ldr r0, _081115F4 @ =gSaveBlock2 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _0811164C -_081115EA: - strh r3, [r5, 0xA] - movs r0, 0x6D - bl PlaySE - b _0811163C - .align 2, 0 -_081115F4: .4byte gSaveBlock2 -_081115F8: - movs r0, 0x15 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0811163C -_0811160A: - ldr r0, _08111630 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811164C - bl sub_8111738 - ldr r0, _08111634 @ =0x02000000 - ldr r1, _08111638 @ =0x000006e4 - adds r0, r1 - ldr r1, [r0] - ldrh r0, [r5, 0xA] - strb r0, [r1] - adds r0, r4, 0 - bl DestroyTask - b _0811164C - .align 2, 0 -_08111630: .4byte gPaletteFade -_08111634: .4byte 0x02000000 -_08111638: .4byte 0x000006e4 -_0811163C: - ldr r0, _08111654 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_0811164C: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08111654: .4byte gTasks - thumb_func_end sub_811155C - - thumb_func_start sub_8111658 -sub_8111658: @ 8111658 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08111720 @ =gUnknown_083F858C - bl LoadSpriteSheet - ldr r0, _08111724 @ =gUnknown_083F8594 - bl LoadSpritePalette - movs r5, 0 - movs r1, 0 - ldr r0, _08111728 @ =0x02000000 - movs r3, 0x89 - lsls r3, 1 - adds r2, r0, r3 - ldrh r7, [r2] - cmp r5, r7 - bge _0811170C - adds r6, r0, 0 - mov r8, r2 -_08111680: - lsls r0, r1, 16 - asrs r4, r0, 16 - lsls r1, r4, 1 - movs r2, 0xC4 - lsls r2, 3 - adds r0, r6, r2 - adds r1, r0 - ldr r2, _0811172C @ =gRegionMapLocations - movs r3, 0 - ldrsh r0, [r1, r3] - lsls r0, 3 - adds r0, r2 - ldrb r1, [r0] - adds r1, 0x1 - lsls r1, 3 - adds r1, 0x4 - ldrb r2, [r0, 0x1] - lsls r2, 19 - ldrb r3, [r0, 0x2] - subs r3, 0x1 - lsls r3, 2 - ldrb r0, [r0, 0x3] - subs r0, 0x1 - lsls r0, 2 - movs r7, 0xE0 - lsls r7, 13 - adds r2, r7 - asrs r2, 16 - adds r1, r3 - adds r2, r0 - ldr r0, _08111730 @ =gSpriteTemplate_83F85A4 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _081116FC - ldr r0, _08111734 @ =gSprites - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - adds r1, r5, 0 - lsls r0, r1, 16 - movs r3, 0x80 - lsls r3, 9 - adds r0, r3 - lsrs r5, r0, 16 - lsls r1, 16 - asrs r1, 14 - movs r7, 0xCC - lsls r7, 3 - adds r0, r6, r7 - adds r1, r0 - str r2, [r1] -_081116FC: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r0, 16 - mov r2, r8 - ldrh r2, [r2] - cmp r0, r2 - blt _08111680 -_0811170C: - ldr r0, _08111728 @ =0x02000000 - movs r3, 0xDC - lsls r3, 3 - adds r0, r3 - strh r5, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08111720: .4byte gUnknown_083F858C -_08111724: .4byte gUnknown_083F8594 -_08111728: .4byte 0x02000000 -_0811172C: .4byte gRegionMapLocations -_08111730: .4byte gSpriteTemplate_83F85A4 -_08111734: .4byte gSprites - thumb_func_end sub_8111658 - - thumb_func_start sub_8111738 -sub_8111738: @ 8111738 - push {r4-r6,lr} - movs r0, 0x2 - bl FreeSpriteTilesByTag - movs r0, 0x2 - bl FreeSpritePaletteByTag - movs r4, 0 - ldr r1, _081117A4 @ =0x02000000 - movs r2, 0xDC - lsls r2, 3 - adds r0, r1, r2 - ldrh r2, [r0] - cmp r4, r2 - bcs _08111776 - adds r6, r1, 0 - adds r5, r0, 0 -_0811175A: - lsls r0, r4, 2 - movs r2, 0xCC - lsls r2, 3 - adds r1, r6, r2 - adds r0, r1 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r0, [r5] - cmp r4, r0 - bcc _0811175A -_08111776: - movs r0, 0x3 - bl FreeSpriteTilesByTag - movs r0, 0x3 - bl FreeSpritePaletteByTag - movs r4, 0 - ldr r5, _081117A8 @ =0x02000fa8 -_08111786: - lsls r0, r4, 2 - adds r0, r5 - ldr r0, [r0] - cmp r0, 0 - beq _08111794 - bl DestroySprite -_08111794: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x2 - bls _08111786 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081117A4: .4byte 0x02000000 -_081117A8: .4byte 0x02000fa8 - thumb_func_end sub_8111738 - - thumb_func_start sub_81117AC -sub_81117AC: @ 81117AC - push {lr} - sub sp, 0x8 - ldr r0, _081117D4 @ =gUnknown_083F8664 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, _081117D8 @ =gAreaUnknownTiles - ldr r1, _081117DC @ =0x02000fb4 - bl LZ77UnCompWram - mov r0, sp - bl LoadSpriteSheet - ldr r0, _081117E0 @ =gUnknown_083F865C - bl LoadSpritePalette - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_081117D4: .4byte gUnknown_083F8664 -_081117D8: .4byte gAreaUnknownTiles -_081117DC: .4byte 0x02000fb4 -_081117E0: .4byte gUnknown_083F865C - thumb_func_end sub_81117AC - - thumb_func_start sub_81117E4 -sub_81117E4: @ 81117E4 - push {r4-r7,lr} - ldr r1, _08111810 @ =0x02000000 - movs r2, 0x88 - lsls r2, 1 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, 0 - beq _08111818 - movs r4, 0 - ldr r7, _08111814 @ =0x00000fa8 - adds r2, r1, r7 - movs r1, 0 -_081117FC: - lsls r0, r4, 2 - adds r0, r2 - str r1, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x2 - bls _081117FC - b _0811188E - .align 2, 0 -_08111810: .4byte 0x02000000 -_08111814: .4byte 0x00000fa8 -_08111818: - movs r4, 0 - ldr r6, _08111868 @ =gSprites - ldr r0, _0811186C @ =0x00000fa8 - adds r5, r1, r0 -_08111820: - lsls r1, r4, 21 - movs r2, 0xA0 - lsls r2, 16 - adds r1, r2 - asrs r1, 16 - ldr r0, _08111870 @ =gSpriteTemplate_83F8674 - movs r2, 0x8C - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0811187C - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldrh r3, [r2, 0x4] - lsls r0, r3, 22 - lsrs r0, 22 - lsls r1, r4, 4 - adds r0, r1 - ldr r7, _08111874 @ =0x000003ff - adds r1, r7, 0 - ands r0, r1 - ldr r7, _08111878 @ =0xfffffc00 - adds r1, r7, 0 - ands r3, r1 - orrs r3, r0 - strh r3, [r2, 0x4] - lsls r0, r4, 2 - adds r0, r5 - str r2, [r0] - b _08111884 - .align 2, 0 -_08111868: .4byte gSprites -_0811186C: .4byte 0x00000fa8 -_08111870: .4byte gSpriteTemplate_83F8674 -_08111874: .4byte 0x000003ff -_08111878: .4byte 0xfffffc00 -_0811187C: - lsls r0, r4, 2 - adds r0, r5 - movs r1, 0 - str r1, [r0] -_08111884: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x2 - bls _08111820 -_0811188E: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81117E4 - - thumb_func_start sub_8111894 -sub_8111894: @ 8111894 - push {lr} - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - thumb_func_end sub_8111894 - - thumb_func_start sub_81118A4 -sub_81118A4: @ 81118A4 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - movs r7, 0 - ldr r1, _081118C8 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081118CC - cmp r0, 0x1 - beq _081118E4 - b _08111918 - .align 2, 0 -_081118C8: .4byte gTasks -_081118CC: - movs r0, 0x1 - negs r0, r0 - str r7, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _08111918 -_081118E4: - ldr r0, _08111920 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08111918 - movs r0, 0xA - ldrsh r7, [r4, r0] - movs r1, 0xC - ldrsh r0, [r4, r1] - lsls r0, 16 - orrs r7, r0 - ldrh r5, [r4, 0x10] - ldrb r6, [r4, 0x12] - ldrh r4, [r4, 0x20] - lsls r4, 24 - lsrs r4, 24 - adds r0, r2, 0 - bl DestroyTask - adds r0, r7, 0 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r4, 0 - bl evolution_cutscene -_08111918: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08111920: .4byte gPaletteFade - thumb_func_end sub_81118A4 - - thumb_func_start sub_8111924 -sub_8111924: @ 8111924 - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r0, _08111978 @ =sub_81118A4 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0811197C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - mov r0, r8 - strh r0, [r1, 0xA] - mov r0, r8 - lsrs r0, 16 - strh r0, [r1, 0xC] - strh r4, [r1, 0x10] - strh r5, [r1, 0x12] - strh r6, [r1, 0x20] - ldr r0, _08111980 @ =sub_8111894 - bl SetMainCallback2 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08111978: .4byte sub_81118A4 -_0811197C: .4byte gTasks -_08111980: .4byte sub_8111894 - thumb_func_end sub_8111924 - - thumb_func_start evolution_cutscene -evolution_cutscene: @ 8111984 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x38 - str r0, [sp, 0x20] - mov r10, r1 - mov r0, r10 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x24] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x28] - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - movs r5, 0 - str r5, [sp, 0x1C] - add r0, sp, 0x1C - movs r1, 0xC0 - lsls r1, 19 - ldr r2, _08111C10 @ =0x05006000 - bl CpuSet - ldr r0, _08111C14 @ =REG_MOSAIC - strh r5, [r0] - subs r0, 0xC - strh r5, [r0] - adds r0, 0x4 - strh r5, [r0] - subs r0, 0x2 - strh r5, [r0] - adds r0, 0x4 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - ldr r4, _08111C18 @ =gWindowConfig_81E6C58 - adds r0, r4, 0 - bl SetUpWindowConfig - bl ResetPaletteFade - ldr r0, _08111C1C @ =gUnknown_030042A4 - strh r5, [r0] - ldr r0, _08111C20 @ =gUnknown_030042A0 - strh r5, [r0] - ldr r0, _08111C24 @ =gUnknown_030042C0 - strh r5, [r0] - ldr r0, _08111C28 @ =gUnknown_030041B4 - strh r5, [r0] - ldr r0, _08111C2C @ =gUnknown_03004288 - strh r5, [r0] - ldr r0, _08111C30 @ =gUnknown_03004280 - strh r5, [r0] - ldr r1, _08111C34 @ =gUnknown_030041B0 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08111C38 @ =gUnknown_030041B8 - strh r5, [r0] - ldr r0, _08111C3C @ =gUnknown_03004210 - adds r1, r4, 0 - bl InitWindowFromConfig - ldr r1, _08111C40 @ =gUnknown_0300428C - movs r0, 0x9 - strb r0, [r1] - bl sub_800D6D4 - bl sub_800DAB8 - bl ResetSpriteData - bl remove_some_task - bl ResetTasks - bl FreeAllSpritePalettes - ldr r0, _08111C44 @ =gReservedSpritePaletteCount - movs r3, 0x4 - strb r3, [r0] - ldr r0, [sp, 0x20] - movs r1, 0x2 - add r2, sp, 0x8 - bl GetMonData - ldr r0, _08111C48 @ =gStringVar1 - add r1, sp, 0x8 - bl StringCopy10 - ldr r0, _08111C4C @ =gStringVar2 - movs r1, 0xB - mov r4, r10 - muls r4, r1 - adds r1, r4, 0 - ldr r2, _08111C50 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, [sp, 0x20] - movs r1, 0xB - bl GetMonData - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - ldr r0, [sp, 0x20] - movs r1, 0x1 - bl GetMonData - str r0, [sp, 0x2C] - ldr r0, [sp, 0x20] - movs r1, 0 - bl GetMonData - str r0, [sp, 0x30] - lsls r0, r6, 3 - ldr r1, _08111C54 @ =gMonFrontPicTable - adds r0, r1 - lsls r2, r6, 2 - ldr r3, _08111C58 @ =gMonFrontPicCoords - adds r2, r3 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - ldr r4, _08111C5C @ =gUnknown_081FAF4C - ldr r3, [r4, 0x4] - str r3, [sp] - str r6, [sp, 0x4] - movs r3, 0x80 - lsls r3, 18 - bl DecompressPicFromTable_2 - adds r0, r6, 0 - ldr r1, [sp, 0x2C] - ldr r2, [sp, 0x30] - bl sub_80409C8 - ldr r0, [r0] - movs r1, 0x88 - lsls r1, 1 - movs r2, 0x20 - bl LoadCompressedPalette - adds r0, r6, 0 - movs r1, 0x1 - bl GetMonSpriteTemplate_803C56C - ldr r0, _08111C60 @ =gUnknown_02024E8C - mov r9, r0 - ldr r1, _08111C64 @ =gDummySpriteAffineAnimTable - str r1, [r0, 0x10] - movs r1, 0x78 - movs r2, 0x40 - movs r3, 0x1E - bl CreateSprite - lsls r1, r0, 24 - lsrs r2, r1, 24 - ldr r3, _08111C68 @ =0x02014800 - strb r0, [r3] - ldr r7, _08111C6C @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - movs r4, 0x1C - adds r4, r7 - mov r8, r4 - adds r0, r1, r4 - ldr r2, _08111C70 @ =nullsub_37 - str r2, [r0] - adds r1, r7 - ldrb r2, [r1, 0x5] - movs r4, 0xF - adds r0, r4, 0 - ands r0, r2 - movs r2, 0x10 - orrs r0, r2 - strb r0, [r1, 0x5] - adds r1, 0x3E - ldrb r0, [r1] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1] - mov r1, r10 - lsls r0, r1, 3 - ldr r2, _08111C54 @ =gMonFrontPicTable - adds r0, r2 - lsls r2, r1, 2 - ldr r3, _08111C58 @ =gMonFrontPicCoords - adds r2, r3 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - str r2, [sp, 0x34] - ldr r2, _08111C5C @ =gUnknown_081FAF4C - ldr r2, [r2, 0xC] - str r2, [sp] - mov r3, r10 - str r3, [sp, 0x4] - ldr r2, [sp, 0x34] - movs r3, 0x80 - lsls r3, 18 - bl DecompressPicFromTable_2 - mov r0, r10 - ldr r1, [sp, 0x2C] - ldr r2, [sp, 0x30] - bl sub_80409C8 - ldr r0, [r0] - movs r1, 0x90 - lsls r1, 1 - movs r2, 0x20 - bl LoadCompressedPalette - mov r0, r10 - movs r1, 0x3 - bl GetMonSpriteTemplate_803C56C - ldr r0, _08111C64 @ =gDummySpriteAffineAnimTable - mov r1, r9 - str r0, [r1, 0x10] - mov r0, r9 - movs r1, 0x78 - movs r2, 0x40 - movs r3, 0x1E - bl CreateSprite - lsls r1, r0, 24 - lsrs r2, r1, 24 - ldr r3, _08111C68 @ =0x02014800 - strb r0, [r3, 0x1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r8, r1 - ldr r0, _08111C70 @ =nullsub_37 - mov r2, r8 - str r0, [r2] - adds r1, r7 - ldrb r0, [r1, 0x5] - ands r4, r0 - movs r0, 0x20 - orrs r4, r0 - strb r4, [r1, 0x5] - adds r1, 0x3E - ldrb r0, [r1] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1] - bl sub_8149954 - ldr r0, _08111C74 @ =sub_811240C - movs r1, 0 - bl CreateTask - lsls r1, r0, 24 - lsrs r2, r1, 24 - ldr r4, _08111C68 @ =0x02014800 - strb r0, [r4, 0x2] - ldr r1, _08111C78 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - strh r6, [r0, 0xE] - mov r1, r10 - strh r1, [r0, 0x10] - mov r2, sp - ldrh r2, [r2, 0x20] - strh r2, [r0, 0xA] - ldr r3, [sp, 0x20] - lsrs r1, r3, 16 - strh r1, [r0, 0xC] - mov r4, sp - ldrh r4, [r4, 0x24] - strh r4, [r0, 0x12] - movs r1, 0x1 - strh r1, [r0, 0x14] - strh r5, [r0, 0x1E] - mov r1, sp - ldrh r1, [r1, 0x28] - strh r1, [r0, 0x20] - ldr r0, _08111C7C @ =0x02009000 - ldr r1, _08111C80 @ =gPlttBufferUnfaded + 0x40 - movs r2, 0x60 - bl memcpy - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08111C84 @ =nullsub_73 - bl SetHBlankCallback - ldr r0, _08111C88 @ =sub_8114FD4 - bl SetVBlankCallback - bl m4aMPlayAllStop - ldr r0, _08111C8C @ =sub_8112270 - bl SetMainCallback2 - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08111C10: .4byte 0x05006000 -_08111C14: .4byte REG_MOSAIC -_08111C18: .4byte gWindowConfig_81E6C58 -_08111C1C: .4byte gUnknown_030042A4 -_08111C20: .4byte gUnknown_030042A0 -_08111C24: .4byte gUnknown_030042C0 -_08111C28: .4byte gUnknown_030041B4 -_08111C2C: .4byte gUnknown_03004288 -_08111C30: .4byte gUnknown_03004280 -_08111C34: .4byte gUnknown_030041B0 -_08111C38: .4byte gUnknown_030041B8 -_08111C3C: .4byte gUnknown_03004210 -_08111C40: .4byte gUnknown_0300428C -_08111C44: .4byte gReservedSpritePaletteCount -_08111C48: .4byte gStringVar1 -_08111C4C: .4byte gStringVar2 -_08111C50: .4byte gSpeciesNames -_08111C54: .4byte gMonFrontPicTable -_08111C58: .4byte gMonFrontPicCoords -_08111C5C: .4byte gUnknown_081FAF4C -_08111C60: .4byte gUnknown_02024E8C -_08111C64: .4byte gDummySpriteAffineAnimTable -_08111C68: .4byte 0x02014800 -_08111C6C: .4byte gSprites -_08111C70: .4byte nullsub_37 -_08111C74: .4byte sub_811240C -_08111C78: .4byte gTasks -_08111C7C: .4byte 0x02009000 -_08111C80: .4byte gPlttBufferUnfaded + 0x40 -_08111C84: .4byte nullsub_73 -_08111C88: .4byte sub_8114FD4 -_08111C8C: .4byte sub_8112270 - thumb_func_end evolution_cutscene - - thumb_func_start sub_8111C90 -sub_8111C90: @ 8111C90 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0xC - ldr r2, _08111E14 @ =gTasks - ldr r0, _08111E18 @ =0x02014800 - mov r9, r0 - ldrb r1, [r0, 0x2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x20 - ldrsh r2, [r0, r1] - movs r1, 0x64 - adds r4, r2, 0 - muls r4, r1 - ldr r1, _08111E1C @ =gPlayerParty - adds r4, r1 - ldrh r6, [r0, 0x10] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - mov r10, r0 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - mov r8, r0 - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - movs r5, 0 - str r5, [sp, 0x8] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, _08111E20 @ =0x05006000 - add r0, sp, 0x8 - bl CpuSet - ldr r0, _08111E24 @ =REG_MOSAIC - strh r5, [r0] - subs r0, 0xC - strh r5, [r0] - adds r0, 0x4 - strh r5, [r0] - subs r0, 0x2 - strh r5, [r0] - adds r0, 0x4 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - ldr r4, _08111E28 @ =gWindowConfig_81E6C58 - adds r0, r4, 0 - bl SetUpWindowConfig - bl ResetPaletteFade - ldr r0, _08111E2C @ =gUnknown_030042A4 - strh r5, [r0] - ldr r0, _08111E30 @ =gUnknown_030042A0 - strh r5, [r0] - ldr r0, _08111E34 @ =gUnknown_030042C0 - strh r5, [r0] - ldr r0, _08111E38 @ =gUnknown_030041B4 - strh r5, [r0] - ldr r0, _08111E3C @ =gUnknown_03004288 - strh r5, [r0] - ldr r0, _08111E40 @ =gUnknown_03004280 - strh r5, [r0] - ldr r1, _08111E44 @ =gUnknown_030041B0 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08111E48 @ =gUnknown_030041B8 - strh r5, [r0] - ldr r0, _08111E4C @ =gUnknown_03004210 - adds r1, r4, 0 - bl InitWindowFromConfig - ldr r1, _08111E50 @ =gUnknown_0300428C - movs r0, 0x9 - strb r0, [r1] - bl sub_800D6D4 - bl sub_800DAB8 - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _08111E54 @ =gReservedSpritePaletteCount - movs r0, 0x4 - strb r0, [r1] - lsls r0, r6, 3 - ldr r1, _08111E58 @ =gMonFrontPicTable - adds r0, r1 - ldr r1, _08111E5C @ =gMonFrontPicCoords - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08111E60 @ =gUnknown_081FAF4C - ldr r4, [r4, 0xC] - str r4, [sp] - str r6, [sp, 0x4] - bl DecompressPicFromTable_2 - adds r0, r6, 0 - mov r1, r10 - mov r2, r8 - bl sub_80409C8 - ldr r0, [r0] - movs r1, 0x90 - lsls r1, 1 - movs r2, 0x20 - bl LoadCompressedPalette - adds r0, r6, 0 - movs r1, 0x3 - bl GetMonSpriteTemplate_803C56C - ldr r0, _08111E64 @ =gUnknown_02024E8C - ldr r1, _08111E68 @ =gDummySpriteAffineAnimTable - str r1, [r0, 0x10] - movs r1, 0x78 - movs r2, 0x40 - movs r3, 0x1E - bl CreateSprite - lsls r2, r0, 24 - lsrs r2, 24 - mov r1, r9 - strb r0, [r1, 0x1] - ldr r3, _08111E6C @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r0, r3, 0 - adds r0, 0x1C - adds r0, r1, r0 - ldr r2, _08111E70 @ =nullsub_37 - str r2, [r0] - adds r1, r3 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - movs r2, 0x20 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08111E74 @ =nullsub_73 - bl SetHBlankCallback - ldr r0, _08111E78 @ =sub_8114FD4 - bl SetVBlankCallback - ldr r0, _08111E7C @ =sub_8112270 - bl SetMainCallback2 - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08111E14: .4byte gTasks -_08111E18: .4byte 0x02014800 -_08111E1C: .4byte gPlayerParty -_08111E20: .4byte 0x05006000 -_08111E24: .4byte REG_MOSAIC -_08111E28: .4byte gWindowConfig_81E6C58 -_08111E2C: .4byte gUnknown_030042A4 -_08111E30: .4byte gUnknown_030042A0 -_08111E34: .4byte gUnknown_030042C0 -_08111E38: .4byte gUnknown_030041B4 -_08111E3C: .4byte gUnknown_03004288 -_08111E40: .4byte gUnknown_03004280 -_08111E44: .4byte gUnknown_030041B0 -_08111E48: .4byte gUnknown_030041B8 -_08111E4C: .4byte gUnknown_03004210 -_08111E50: .4byte gUnknown_0300428C -_08111E54: .4byte gReservedSpritePaletteCount -_08111E58: .4byte gMonFrontPicTable -_08111E5C: .4byte gMonFrontPicCoords -_08111E60: .4byte gUnknown_081FAF4C -_08111E64: .4byte gUnknown_02024E8C -_08111E68: .4byte gDummySpriteAffineAnimTable -_08111E6C: .4byte gSprites -_08111E70: .4byte nullsub_37 -_08111E74: .4byte nullsub_73 -_08111E78: .4byte sub_8114FD4 -_08111E7C: .4byte sub_8112270 - thumb_func_end sub_8111C90 - - thumb_func_start sub_8111E80 -sub_8111E80: @ 8111E80 - push {r4-r7,lr} - sub sp, 0x8 - ldr r2, _08111EB8 @ =gTasks - ldr r0, _08111EBC @ =0x02014800 - ldrb r1, [r0, 0x2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x20 - ldrsh r2, [r0, r1] - movs r1, 0x64 - muls r2, r1 - ldr r1, _08111EC0 @ =gPlayerParty - adds r4, r2, r1 - ldrh r7, [r0, 0x10] - ldr r0, _08111EC4 @ =gMain - ldr r2, _08111EC8 @ =0x0000043c - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x6 - bls _08111EAE - b _081120D6 -_08111EAE: - lsls r0, 2 - ldr r1, _08111ECC @ =_08111ED0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08111EB8: .4byte gTasks -_08111EBC: .4byte 0x02014800 -_08111EC0: .4byte gPlayerParty -_08111EC4: .4byte gMain -_08111EC8: .4byte 0x0000043c -_08111ECC: .4byte _08111ED0 - .align 2, 0 -_08111ED0: - .4byte _08111EEC - .4byte _08111F68 - .4byte _08111F88 - .4byte _08111FDC - .4byte _08111FE2 - .4byte _08112048 - .4byte _081120B4 -_08111EEC: - movs r0, 0x80 - lsls r0, 19 - movs r4, 0 - strh r4, [r0] - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _08111F3C @ =gReservedSpritePaletteCount - movs r0, 0x4 - strb r0, [r1] - ldr r0, _08111F40 @ =gUnknown_030042A4 - strh r4, [r0] - ldr r0, _08111F44 @ =gUnknown_030042A0 - strh r4, [r0] - ldr r0, _08111F48 @ =gUnknown_030042C0 - strh r4, [r0] - ldr r0, _08111F4C @ =gUnknown_030041B4 - strh r4, [r0] - ldr r0, _08111F50 @ =gUnknown_03004288 - strh r4, [r0] - ldr r0, _08111F54 @ =gUnknown_03004280 - strh r4, [r0] - ldr r1, _08111F58 @ =gUnknown_030041B0 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08111F5C @ =gUnknown_030041B8 - strh r4, [r0] - ldr r1, _08111F60 @ =gMain - ldr r0, _08111F64 @ =0x0000043c - adds r1, r0 - b _0811208E - .align 2, 0 -_08111F3C: .4byte gReservedSpritePaletteCount -_08111F40: .4byte gUnknown_030042A4 -_08111F44: .4byte gUnknown_030042A0 -_08111F48: .4byte gUnknown_030042C0 -_08111F4C: .4byte gUnknown_030041B4 -_08111F50: .4byte gUnknown_03004288 -_08111F54: .4byte gUnknown_03004280 -_08111F58: .4byte gUnknown_030041B0 -_08111F5C: .4byte gUnknown_030041B8 -_08111F60: .4byte gMain -_08111F64: .4byte 0x0000043c -_08111F68: - ldr r4, _08111F80 @ =gWindowConfig_81E6F84 - adds r0, r4, 0 - bl SetUpWindowConfig - ldr r0, _08111F84 @ =gUnknown_03004828 - ldr r0, [r0] - adds r0, 0x4 - adds r1, r4, 0 - bl InitWindowFromConfig - b _08112088 - .align 2, 0 -_08111F80: .4byte gWindowConfig_81E6F84 -_08111F84: .4byte gUnknown_03004828 -_08111F88: - ldr r4, _08111FC8 @ =gUnknown_03004828 - ldr r0, [r4] - adds r0, 0x4 - bl LoadTextWindowGraphics - movs r0, 0x2 - bl SetTextWindowBaseTileNum - ldr r1, [r4] - adds r1, 0x34 - strb r0, [r1] - ldr r0, [r4] - adds r0, 0x4 - bl LoadTextWindowGraphics - bl MenuZeroFillScreen - bl ResetPaletteFade - ldr r1, _08111FCC @ =gMain - ldr r0, _08111FD0 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, _08111FD4 @ =nullsub_73 - bl SetHBlankCallback - ldr r0, _08111FD8 @ =sub_811505C - bl SetVBlankCallback - b _081120D6 - .align 2, 0 -_08111FC8: .4byte gUnknown_03004828 -_08111FCC: .4byte gMain -_08111FD0: .4byte 0x0000043c -_08111FD4: .4byte nullsub_73 -_08111FD8: .4byte sub_811505C -_08111FDC: - bl sub_804E22C - b _08112088 -_08111FE2: - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - adds r6, r0, 0 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r5, r0, 0 - lsls r0, r7, 3 - ldr r1, _08112034 @ =gMonFrontPicTable - adds r0, r1 - ldr r1, _08112038 @ =gMonFrontPicCoords - lsls r2, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _0811203C @ =gUnknown_081FAF4C - ldr r4, [r4, 0xC] - str r4, [sp] - str r7, [sp, 0x4] - bl DecompressPicFromTable_2 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_80409C8 - ldr r0, [r0] - movs r1, 0x90 - lsls r1, 1 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r1, _08112040 @ =gMain - ldr r0, _08112044 @ =0x0000043c - adds r1, r0 - b _0811208E - .align 2, 0 -_08112034: .4byte gMonFrontPicTable -_08112038: .4byte gMonFrontPicCoords -_0811203C: .4byte gUnknown_081FAF4C -_08112040: .4byte gMain -_08112044: .4byte 0x0000043c -_08112048: - adds r0, r7, 0 - movs r1, 0x3 - bl GetMonSpriteTemplate_803C56C - ldr r0, _08112098 @ =gUnknown_02024E8C - ldr r1, _0811209C @ =gDummySpriteAffineAnimTable - str r1, [r0, 0x10] - movs r1, 0x78 - movs r2, 0x40 - movs r3, 0x1E - bl CreateSprite - ldr r1, _081120A0 @ =0x02014800 - lsls r2, r0, 24 - lsrs r2, 24 - strb r0, [r1, 0x1] - ldr r3, _081120A4 @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r0, r3, 0 - adds r0, 0x1C - adds r0, r1, r0 - ldr r2, _081120A8 @ =nullsub_37 - str r2, [r0] - adds r1, r3 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - movs r2, 0x20 - orrs r0, r2 - strb r0, [r1, 0x5] -_08112088: - ldr r1, _081120AC @ =gMain - ldr r2, _081120B0 @ =0x0000043c - adds r1, r2 -_0811208E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081120D6 - .align 2, 0 -_08112098: .4byte gUnknown_02024E8C -_0811209C: .4byte gDummySpriteAffineAnimTable -_081120A0: .4byte 0x02014800 -_081120A4: .4byte gSprites -_081120A8: .4byte nullsub_37 -_081120AC: .4byte gMain -_081120B0: .4byte 0x0000043c -_081120B4: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _081120E0 @ =sub_8112290 - bl SetMainCallback2 - movs r1, 0x80 - lsls r1, 19 - movs r2, 0x9A - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] -_081120D6: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081120E0: .4byte sub_8112290 - thumb_func_end sub_8111E80 - - thumb_func_start sub_81120E4 -sub_81120E4: @ 81120E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r0, [sp, 0x1C] - adds r5, r1, 0 - adds r4, r2, 0 - mov r10, r3 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 24 - lsrs r4, 24 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, [sp, 0x1C] - movs r1, 0x2 - add r2, sp, 0x8 - bl GetMonData - ldr r0, _08112234 @ =gStringVar1 - add r1, sp, 0x8 - bl StringCopy10 - ldr r0, _08112238 @ =gStringVar2 - movs r1, 0xB - muls r1, r5 - ldr r2, _0811223C @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r1, _08112240 @ =gAffineAnimsDisabled - movs r0, 0x1 - strb r0, [r1] - ldr r0, [sp, 0x1C] - movs r1, 0xB - bl GetMonData - mov r8, r0 - mov r1, r8 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - ldr r0, [sp, 0x1C] - movs r1, 0 - bl GetMonData - adds r6, r0, 0 - ldr r0, [sp, 0x1C] - movs r1, 0x1 - bl GetMonData - adds r7, r0, 0 - ldr r2, _08112244 @ =0x02014800 - mov r9, r2 - strb r4, [r2] - lsls r0, r5, 3 - ldr r1, _08112248 @ =gMonFrontPicTable - adds r0, r1 - ldr r1, _0811224C @ =gMonFrontPicCoords - lsls r2, r5, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08112250 @ =gUnknown_081FAF4C - ldr r4, [r4, 0x4] - str r4, [sp] - str r5, [sp, 0x4] - bl DecompressPicFromTable_2 - adds r0, r5, 0 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_80409C8 - ldr r0, [r0] - movs r1, 0x90 - lsls r1, 1 - movs r2, 0x20 - bl LoadCompressedPalette - adds r0, r5, 0 - movs r1, 0x1 - bl GetMonSpriteTemplate_803C56C - ldr r0, _08112254 @ =gUnknown_02024E8C - ldr r1, _08112258 @ =gDummySpriteAffineAnimTable - str r1, [r0, 0x10] - movs r1, 0x78 - movs r2, 0x40 - movs r3, 0x1E - bl CreateSprite - lsls r1, r0, 24 - lsrs r2, r1, 24 - mov r1, r9 - strb r0, [r1, 0x1] - ldr r3, _0811225C @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r0, r3, 0 - adds r0, 0x1C - adds r0, r1, r0 - ldr r2, _08112260 @ =nullsub_37 - str r2, [r0] - adds r1, r3 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - movs r2, 0x20 - orrs r0, r2 - strb r0, [r1, 0x5] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - bl sub_8149954 - ldr r0, _08112264 @ =sub_8112FE8 - movs r1, 0 - bl CreateTask - lsls r1, r0, 24 - lsrs r2, r1, 24 - mov r1, r9 - strb r0, [r1, 0x2] - ldr r1, _08112268 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - strh r2, [r0, 0x8] - mov r1, r8 - strh r1, [r0, 0xE] - strh r5, [r0, 0x10] - mov r2, sp - ldrh r2, [r2, 0x1C] - strh r2, [r0, 0xA] - ldr r1, [sp, 0x1C] - lsrs r1, 16 - str r1, [sp, 0x20] - strh r1, [r0, 0xC] - movs r1, 0x1 - strh r1, [r0, 0x14] - movs r1, 0 - strh r1, [r0, 0x1E] - mov r2, r10 - strh r2, [r0, 0x20] - ldr r0, _0811226C @ =sub_8112290 - bl SetMainCallback2 - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08112234: .4byte gStringVar1 -_08112238: .4byte gStringVar2 -_0811223C: .4byte gSpeciesNames -_08112240: .4byte gAffineAnimsDisabled -_08112244: .4byte 0x02014800 -_08112248: .4byte gMonFrontPicTable -_0811224C: .4byte gMonFrontPicCoords -_08112250: .4byte gUnknown_081FAF4C -_08112254: .4byte gUnknown_02024E8C -_08112258: .4byte gDummySpriteAffineAnimTable -_0811225C: .4byte gSprites -_08112260: .4byte nullsub_37 -_08112264: .4byte sub_8112FE8 -_08112268: .4byte gTasks -_0811226C: .4byte sub_8112290 - thumb_func_end sub_81120E4 - - thumb_func_start sub_8112270 -sub_8112270: @ 8112270 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - ldr r0, _0811228C @ =gUnknown_03004210 - bl sub_800374C - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - .align 2, 0 -_0811228C: .4byte gUnknown_03004210 - thumb_func_end sub_8112270 - - thumb_func_start sub_8112290 -sub_8112290: @ 8112290 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - ldr r0, _081122B0 @ =gUnknown_03004828 - ldr r0, [r0] - adds r0, 0x4 - bl sub_80035AC - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - .align 2, 0 -_081122B0: .4byte gUnknown_03004828 - thumb_func_end sub_8112290 - - thumb_func_start sub_81122B4 -sub_81122B4: @ 81122B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r1 - lsls r0, 16 - lsrs r7, r0, 16 - movs r0, 0 - str r0, [sp] - ldr r0, _081123F4 @ =gEvolutionTable - mov r8, r0 - lsls r1, r7, 2 - mov r9, r1 - adds r0, r1, r7 - lsls r4, r0, 3 - mov r0, r8 - adds r6, r4, r0 - ldrh r0, [r6] - cmp r0, 0xD - beq _081122E2 - b _081123E2 -_081122E2: - ldr r1, _081123F8 @ =gPlayerPartyCount - ldrb r0, [r1] - cmp r0, 0x5 - bhi _081123E2 - adds r1, r0, 0 - movs r0, 0x64 - muls r1, r0 - ldr r0, _081123FC @ =gPlayerParty - adds r5, r1, r0 - adds r0, r5, 0 - mov r1, r10 - movs r2, 0x64 - bl CopyMon - mov r1, r8 - adds r2, r1, r4 - adds r2, 0xC - adds r0, r5, 0 - movs r1, 0xB - bl SetMonData - ldrh r1, [r6, 0xC] - movs r0, 0xB - adds r2, r1, 0 - muls r2, r0 - ldr r0, _08112400 @ =gSpeciesNames - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x2 - bl SetMonData - adds r0, r5, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData - adds r0, r5, 0 - movs r1, 0x8 - mov r2, sp - bl SetMonData - adds r0, r5, 0 - movs r1, 0xA - mov r2, sp - bl SetMonData - movs r4, 0x32 - mov r6, r9 -_08112342: - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, sp - bl SetMonData - adds r4, 0x1 - cmp r4, 0x36 - ble _08112342 - movs r4, 0x43 -_08112354: - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, sp - bl SetMonData - adds r4, 0x1 - cmp r4, 0x4F - ble _08112354 - adds r0, r5, 0 - movs r1, 0x37 - mov r2, sp - bl SetMonData - movs r0, 0xFF - str r0, [sp] - adds r0, r5, 0 - movs r1, 0x40 - mov r2, sp - bl SetMonData - adds r0, r5, 0 - bl CalculateMonStats - bl CalculatePlayerPartyCount - ldr r0, _081123F4 @ =gEvolutionTable - adds r4, r6, r7 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0xC] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2 - bl sub_8090D90 - ldrh r0, [r4, 0xC] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl sub_8090D90 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - ldr r1, _08112404 @ =0x0000012f - cmp r0, r1 - bne _081123E2 - adds r0, r5, 0 - movs r1, 0x3 - bl GetMonData - cmp r0, 0x1 - bne _081123E2 - mov r0, r10 - movs r1, 0xB - bl GetMonData - movs r1, 0x97 - lsls r1, 1 - cmp r0, r1 - bne _081123E2 - ldr r2, _08112408 @ =gUnknown_083F868C - adds r0, r5, 0 - movs r1, 0x2 - bl SetMonData -_081123E2: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081123F4: .4byte gEvolutionTable -_081123F8: .4byte gPlayerPartyCount -_081123FC: .4byte gPlayerParty -_08112400: .4byte gSpeciesNames -_08112404: .4byte 0x0000012f -_08112408: .4byte gUnknown_083F868C - thumb_func_end sub_81122B4 - - thumb_func_start sub_811240C -sub_811240C: @ 811240C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _08112490 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r3, r0, r2 - movs r1, 0xA - ldrsh r0, [r3, r1] - mov r9, r0 - movs r1, 0xC - ldrsh r0, [r3, r1] - lsls r0, 16 - mov r1, r9 - orrs r1, r0 - mov r9, r1 - ldr r0, _08112494 @ =gMain - ldrh r1, [r0, 0x2C] - adds r6, r2, 0 - adds r4, r0, 0 - cmp r1, 0x2 - bne _0811246E - movs r2, 0x8 - ldrsh r0, [r3, r2] - cmp r0, 0x8 - bne _0811246E - ldrh r1, [r3, 0x12] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _0811246E - movs r0, 0x10 - strh r0, [r3, 0x8] - ldr r0, _08112498 @ =gUnknown_02024D1E - ldrb r1, [r0, 0x2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r1, r0, r6 - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _0811246E - strh r2, [r1, 0x18] -_0811246E: - lsls r1, r7, 2 - adds r0, r1, r7 - lsls r0, 3 - adds r0, r6 - movs r3, 0x8 - ldrsh r0, [r0, r3] - mov r8, r1 - cmp r0, 0x15 - bls _08112484 - bl _08112FD0 -_08112484: - lsls r0, 2 - ldr r1, _0811249C @ =_081124A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08112490: .4byte gTasks -_08112494: .4byte gMain -_08112498: .4byte gUnknown_02024D1E -_0811249C: .4byte _081124A0 - .align 2, 0 -_081124A0: - .4byte _081124F8 - .4byte _0811253C - .4byte _08112588 - .4byte _08112594 - .4byte _081125BC - .4byte _081125FC - .4byte _08112630 - .4byte _0811266C - .4byte _081126A0 - .4byte _081126E0 - .4byte _081126FC - .4byte _08112728 - .4byte _08112754 - .4byte _081127A0 - .4byte _0811284C - .4byte _081128E4 - .4byte _08112934 - .4byte _08112974 - .4byte _081129A0 - .4byte _081129E8 - .4byte _08112A4C - .4byte _08112A88 -_081124F8: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, _08112530 @ =gSprites - ldr r0, _08112534 @ =0x02014800 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldr r0, _08112538 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - b _08112A2E - .align 2, 0 -_08112530: .4byte gSprites -_08112534: .4byte 0x02014800 -_08112538: .4byte gTasks -_0811253C: - ldr r0, _08112574 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0811254C - bl _08112FD0 -_0811254C: - ldr r4, _08112578 @ =gStringVar4 - ldr r1, _0811257C @ =gUnknown_08400C4A - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _08112580 @ =gUnknown_03004210 - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r0, _08112584 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - b _08112A2E - .align 2, 0 -_08112574: .4byte gPaletteFade -_08112578: .4byte gStringVar4 -_0811257C: .4byte gUnknown_08400C4A -_08112580: .4byte gUnknown_03004210 -_08112584: .4byte gTasks -_08112588: - ldr r0, _08112590 @ =gUnknown_03004210 - ldrh r0, [r0, 0x16] - b _0811297C - .align 2, 0 -_08112590: .4byte gUnknown_03004210 -_08112594: - bl IsCryFinished - lsls r0, 24 - cmp r0, 0 - bne _081125A2 - bl _08112FD0 -_081125A2: - movs r0, 0xBC - lsls r0, 1 - bl PlaySE - ldr r0, _081125B8 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - b _08112A2E - .align 2, 0 -_081125B8: .4byte gTasks -_081125BC: - bl IsSEPlaying - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _081125CC - bl _08112FD0 -_081125CC: - ldr r0, _081125F4 @ =0x00000179 - bl PlayNewMapMusic - ldr r0, _081125F8 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - str r4, [sp] - movs r0, 0x1C - movs r1, 0x4 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - bl _08112FD0 - .align 2, 0 -_081125F4: .4byte 0x00000179 -_081125F8: .4byte gTasks -_081125FC: - ldr r0, _08112624 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0811260C - bl _08112FD0 -_0811260C: - movs r0, 0x11 - bl sub_8149970 - ldr r1, _08112628 @ =gUnknown_02024D1E - strb r0, [r1, 0x2] - ldr r0, _0811262C @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - b _08112A2E - .align 2, 0 -_08112624: .4byte gPaletteFade -_08112628: .4byte gUnknown_02024D1E -_0811262C: .4byte gTasks -_08112630: - ldr r4, _08112664 @ =gUnknown_02024D1E - ldrb r0, [r4, 0x2] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r6 - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _08112646 - bl _08112FD0 -_08112646: - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r6 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r1, _08112668 @ =0x02014800 - movs r0, 0x1 - strb r0, [r1, 0x3] - bl sub_8149A90 - strb r0, [r4, 0x2] - bl _08112FD0 - .align 2, 0 -_08112664: .4byte gUnknown_02024D1E -_08112668: .4byte 0x02014800 -_0811266C: - ldr r4, _08112698 @ =gUnknown_02024D1E - ldrb r0, [r4, 0x2] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r6 - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _08112682 - bl _08112FD0 -_08112682: - ldr r1, _0811269C @ =0x02014800 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - bl sub_8149E7C - strb r0, [r4, 0x2] - mov r0, r8 - adds r1, r0, r7 - lsls r1, 3 - adds r1, r6 - b _08112A2E - .align 2, 0 -_08112698: .4byte gUnknown_02024D1E -_0811269C: .4byte 0x02014800 -_081126A0: - ldr r1, _081126D8 @ =0x02014800 - ldrb r0, [r1, 0x3] - subs r0, 0x1 - strb r0, [r1, 0x3] - lsls r0, 24 - cmp r0, 0 - beq _081126B2 - bl _08112FD0 -_081126B2: - movs r0, 0x3 - strb r0, [r1, 0x3] - ldr r0, _081126DC @ =gUnknown_02024D1E - ldrb r1, [r0, 0x2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _081126CC - bl _08112FD0 -_081126CC: - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r6 - b _08112A2E - .align 2, 0 -_081126D8: .4byte 0x02014800 -_081126DC: .4byte gUnknown_02024D1E -_081126E0: - bl sub_8149B44 - ldr r1, _081126F4 @ =gUnknown_02024D1E - strb r0, [r1, 0x2] - ldr r0, _081126F8 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - b _08112A2E - .align 2, 0 -_081126F4: .4byte gUnknown_02024D1E -_081126F8: .4byte gTasks -_081126FC: - ldr r5, _08112724 @ =gUnknown_02024D1E - ldrb r0, [r5, 0x2] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r6 - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _08112712 - bl _08112FD0 -_08112712: - mov r0, r8 - adds r4, r0, r7 - lsls r4, 3 - adds r4, r6 - ldrh r0, [r4, 0x10] - bl sub_8149C20 - strb r0, [r5, 0x2] - b _08112992 - .align 2, 0 -_08112724: .4byte gUnknown_02024D1E -_08112728: - ldr r0, _08112750 @ =gUnknown_02024D1E - ldrb r1, [r0, 0x2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _0811273E - bl _08112FD0 -_0811273E: - movs r0, 0x21 - bl PlaySE - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r6 - b _08112A2E - .align 2, 0 -_08112750: .4byte gUnknown_02024D1E -_08112754: - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - bne _08112762 - bl _08112FD0 -_08112762: - bl m4aMPlayAllStop - ldr r0, _08112794 @ =gTasks - mov r3, r8 - adds r4, r3, r7 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0x10] - movs r1, 0 - bl PlayCry1 - ldr r0, _08112798 @ =gPlttBufferUnfaded + 0x40 - ldr r1, _0811279C @ =0x02009000 - movs r2, 0x60 - bl memcpy - movs r0, 0 - str r0, [sp] - movs r0, 0x1C - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _08112992 - .align 2, 0 -_08112794: .4byte gTasks -_08112798: .4byte gPlttBufferUnfaded + 0x40 -_0811279C: .4byte 0x02009000 -_081127A0: - bl IsCryFinished - lsls r0, 24 - cmp r0, 0 - bne _081127AE - bl _08112FD0 -_081127AE: - ldr r0, _08112834 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081127BE - bl _08112FD0 -_081127BE: - ldr r4, _08112838 @ =gStringVar4 - ldr r1, _0811283C @ =gUnknown_08400C60 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _08112840 @ =gUnknown_03004210 - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r0, _08112844 @ =0x00000173 - bl PlayBGM - ldr r2, _08112848 @ =gTasks - mov r0, r8 - adds r1, r0, r7 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - adds r2, r1 - adds r2, 0x10 - mov r0, r9 - movs r1, 0xB - bl SetMonData - mov r0, r9 - bl CalculateMonStats - ldrh r1, [r4, 0xE] - ldrh r2, [r4, 0x10] - mov r0, r9 - bl sub_803FB68 - ldrh r0, [r4, 0x10] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2 - bl sub_8090D90 - ldrh r0, [r4, 0x10] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl sub_8090D90 - movs r0, 0xE - bl sav12_xor_increment - b _08112FD0 - .align 2, 0 -_08112834: .4byte gPaletteFade -_08112838: .4byte gStringVar4 -_0811283C: .4byte gUnknown_08400C60 -_08112840: .4byte gUnknown_03004210 -_08112844: .4byte 0x00000173 -_08112848: .4byte gTasks -_0811284C: - ldr r0, _081128A4 @ =gUnknown_03004210 - ldrh r0, [r0, 0x16] - cmp r0, 0 - beq _08112856 - b _08112FD0 -_08112856: - mov r1, r8 - adds r0, r1, r7 - lsls r0, 3 - adds r5, r0, r6 - ldrb r1, [r5, 0x14] - mov r0, r9 - bl sub_803B7C8 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - beq _081128C4 - movs r2, 0x1E - ldrsh r4, [r5, r2] - cmp r4, 0 - bne _081128C4 - bl sub_8053E90 - ldrh r1, [r5, 0x12] - movs r0, 0x80 - orrs r0, r1 - strh r0, [r5, 0x12] - strh r4, [r5, 0x14] - strh r4, [r5, 0x18] - mov r0, r9 - movs r1, 0x2 - add r2, sp, 0x4 - bl GetMonData - ldr r0, _081128A8 @ =gUnknown_030041C0 - add r1, sp, 0x4 - bl StringCopy10 - ldr r0, _081128AC @ =0x0000ffff - cmp r6, r0 - bne _081128B0 - movs r0, 0x15 - strh r0, [r5, 0x8] - b _08112FD0 - .align 2, 0 -_081128A4: .4byte gUnknown_03004210 -_081128A8: .4byte gUnknown_030041C0 -_081128AC: .4byte 0x0000ffff -_081128B0: - ldr r0, _081128C0 @ =0x0000fffe - cmp r6, r0 - bne _081128B8 - b _08112FD0 -_081128B8: - movs r0, 0x13 - strh r0, [r5, 0x8] - b _08112FD0 - .align 2, 0 -_081128C0: .4byte 0x0000fffe -_081128C4: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _081128E0 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - b _08112A2E - .align 2, 0 -_081128E0: .4byte gTasks -_081128E4: - ldr r0, _0811292C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r2, 0x80 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _081128F4 - b _08112FD0 -_081128F4: - mov r1, r8 - adds r0, r1, r7 - lsls r0, 3 - adds r4, r0, r6 - ldrh r1, [r4, 0x12] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0811290A - bl sub_8053E90 -_0811290A: - movs r2, 0x1E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0811291A - ldrh r0, [r4, 0xE] - mov r1, r9 - bl sub_81122B4 -_0811291A: - adds r0, r7, 0 - bl DestroyTask - ldr r0, _08112930 @ =gUnknown_03005E94 - ldr r0, [r0] - bl SetMainCallback2 - b _08112FD0 - .align 2, 0 -_0811292C: .4byte gPaletteFade -_08112930: .4byte gUnknown_03005E94 -_08112934: - ldr r0, _08112968 @ =gUnknown_02024D1E - ldrb r1, [r0, 0x2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _08112948 - b _08112FD0 -_08112948: - bl m4aMPlayAllStop - ldr r0, _0811296C @ =0x0006001c - ldr r1, _08112970 @ =0x00007fff - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r6 - b _08112A2E - .align 2, 0 -_08112968: .4byte gUnknown_02024D1E -_0811296C: .4byte 0x0006001c -_08112970: .4byte 0x00007fff -_08112974: - ldr r0, _0811299C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 -_0811297C: - cmp r0, 0 - beq _08112982 - b _08112FD0 -_08112982: - mov r0, r8 - adds r4, r0, r7 - lsls r4, 3 - adds r4, r6 - ldrh r0, [r4, 0xE] - movs r1, 0 - bl PlayCry1 -_08112992: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _08112FD0 - .align 2, 0 -_0811299C: .4byte gPaletteFade -_081129A0: - bl IsCryFinished - lsls r0, 24 - cmp r0, 0 - bne _081129AC - b _08112FD0 -_081129AC: - ldr r4, _081129D8 @ =gStringVar4 - ldr r1, _081129DC @ =gUnknown_08400C8D - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _081129E0 @ =gUnknown_03004210 - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r1, _081129E4 @ =gTasks - mov r2, r8 - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x1E] - b _08112F9A - .align 2, 0 -_081129D8: .4byte gStringVar4 -_081129DC: .4byte gUnknown_08400C8D -_081129E0: .4byte gUnknown_03004210 -_081129E4: .4byte gTasks -_081129E8: - ldr r4, _08112A38 @ =gUnknown_03004210 - ldrh r0, [r4, 0x16] - cmp r0, 0 - beq _081129F2 - b _08112FD0 -_081129F2: - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _081129FE - b _08112FD0 -_081129FE: - bl sub_8024CEC - ldr r0, _08112A3C @ =0x0000016f - bl PlayFanfare - ldr r0, _08112A40 @ =gUnknown_08400F8C - ldr r0, [r0, 0xC] - bl get_battle_strings_ - ldr r1, _08112A44 @ =gUnknown_020238CC - movs r0, 0xF - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r0, _08112A48 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - movs r0, 0x40 - strh r0, [r1, 0x14] -_08112A2E: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _08112FD0 - .align 2, 0 -_08112A38: .4byte gUnknown_03004210 -_08112A3C: .4byte 0x0000016f -_08112A40: .4byte gUnknown_08400F8C -_08112A44: .4byte gUnknown_020238CC -_08112A48: .4byte gTasks -_08112A4C: - ldr r0, _08112A80 @ =gUnknown_03004210 - ldrh r0, [r0, 0x16] - cmp r0, 0 - beq _08112A56 - b _08112FD0 -_08112A56: - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _08112A62 - b _08112FD0 -_08112A62: - ldr r0, _08112A84 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x14] - subs r0, 0x1 - strh r0, [r1, 0x14] - lsls r0, 16 - cmp r0, 0 - beq _08112A7A - b _08112FD0 -_08112A7A: - movs r0, 0xE - strh r0, [r1, 0x8] - b _08112FD0 - .align 2, 0 -_08112A80: .4byte gUnknown_03004210 -_08112A84: .4byte gTasks -_08112A88: - mov r3, r8 - adds r0, r3, r7 - lsls r0, 3 - adds r0, r6 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0xB - bls _08112A9A - b _08112FD0 -_08112A9A: - lsls r0, 2 - ldr r1, _08112AA4 @ =_08112AA8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08112AA4: .4byte _08112AA8 - .align 2, 0 -_08112AA8: - .4byte _08112AD8 - .4byte _08112B2C - .4byte _08112B7C - .4byte _08112BC0 - .4byte _08112C0C - .4byte _08112D3C - .4byte _08112D8C - .4byte _08112E98 - .4byte _08112EE8 - .4byte _08112F38 - .4byte _08112F78 - .4byte _08112FB0 -_08112AD8: - ldr r4, _08112B1C @ =gUnknown_03004210 - ldrh r0, [r4, 0x16] - cmp r0, 0 - beq _08112AE2 - b _08112FD0 -_08112AE2: - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _08112AEE - b _08112FD0 -_08112AEE: - bl sub_8024CEC - ldr r0, _08112B20 @ =gUnknown_08400F8C - ldr r0, [r0, 0x10] - bl get_battle_strings_ - ldr r1, _08112B24 @ =gUnknown_020238CC - movs r0, 0xF - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r0, _08112B28 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x18] - adds r0, 0x1 - b _08112FCE - .align 2, 0 -_08112B1C: .4byte gUnknown_03004210 -_08112B20: .4byte gUnknown_08400F8C -_08112B24: .4byte gUnknown_020238CC -_08112B28: .4byte gTasks -_08112B2C: - ldr r4, _08112B6C @ =gUnknown_03004210 - ldrh r0, [r4, 0x16] - cmp r0, 0 - beq _08112B36 - b _08112FD0 -_08112B36: - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _08112B42 - b _08112FD0 -_08112B42: - ldr r0, _08112B70 @ =gUnknown_08400F8C - ldr r0, [r0, 0x14] - bl get_battle_strings_ - ldr r1, _08112B74 @ =gUnknown_020238CC - movs r0, 0xF - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r0, _08112B78 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x18] - adds r0, 0x1 - b _08112FCE - .align 2, 0 -_08112B6C: .4byte gUnknown_03004210 -_08112B70: .4byte gUnknown_08400F8C -_08112B74: .4byte gUnknown_020238CC -_08112B78: .4byte gTasks -_08112B7C: - ldr r4, _08112BF8 @ =gUnknown_03004210 - ldrh r0, [r4, 0x16] - cmp r0, 0 - beq _08112B86 - b _08112FD0 -_08112B86: - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - bne _08112BC0 - ldr r0, _08112BFC @ =gUnknown_08400F8C - ldr r0, [r0, 0x18] - bl get_battle_strings_ - ldr r1, _08112C00 @ =gUnknown_020238CC - movs r0, 0xF - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r0, _08112C04 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - movs r0, 0x5 - strh r0, [r1, 0x1A] - movs r0, 0x9 - strh r0, [r1, 0x1C] - ldrh r0, [r1, 0x18] - adds r0, 0x1 - strh r0, [r1, 0x18] -_08112BC0: - ldr r0, _08112BF8 @ =gUnknown_03004210 - ldrh r0, [r0, 0x16] - cmp r0, 0 - beq _08112BCA - b _08112FD0 -_08112BCA: - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _08112BD6 - b _08112FD0 -_08112BD6: - bl sub_8023A80 - ldr r0, _08112C04 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x18] - adds r0, 0x1 - movs r2, 0 - strh r0, [r1, 0x18] - ldr r0, _08112C08 @ =gUnknown_02024D1E - strb r2, [r0, 0x1] - bl sub_802BC6C - b _08112FD0 - .align 2, 0 -_08112BF8: .4byte gUnknown_03004210 -_08112BFC: .4byte gUnknown_08400F8C -_08112C00: .4byte gUnknown_020238CC -_08112C04: .4byte gTasks -_08112C08: .4byte gUnknown_02024D1E -_08112C0C: - ldr r0, _08112CA4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08112C32 - ldr r4, _08112CA8 @ =gUnknown_02024D1E - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _08112C32 - movs r0, 0x5 - bl PlaySE - bl nullsub_6 - movs r0, 0 - strb r0, [r4, 0x1] - bl sub_802BC6C -_08112C32: - ldr r0, _08112CA4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08112C58 - ldr r4, _08112CA8 @ =gUnknown_02024D1E - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _08112C58 - movs r0, 0x5 - bl PlaySE - bl nullsub_6 - movs r0, 0x1 - strb r0, [r4, 0x1] - bl sub_802BC6C -_08112C58: - ldr r0, _08112CA4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08112CE2 - bl sub_8023AD8 - ldr r0, _08112CAC @ =gUnknown_08400F8C - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - bl get_battle_strings_ - ldr r0, _08112CB0 @ =gUnknown_03004210 - ldr r1, _08112CB4 @ =gUnknown_020238CC - movs r2, 0xF - str r2, [sp] - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - movs r0, 0x5 - bl PlaySE - ldr r0, _08112CA8 @ =gUnknown_02024D1E - ldrb r2, [r0, 0x1] - cmp r2, 0 - beq _08112CBC - ldr r0, _08112CB8 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1C] - strh r0, [r1, 0x18] - b _08112CE2 - .align 2, 0 -_08112CA4: .4byte gMain -_08112CA8: .4byte gUnknown_02024D1E -_08112CAC: .4byte gUnknown_08400F8C -_08112CB0: .4byte gUnknown_03004210 -_08112CB4: .4byte gUnknown_020238CC -_08112CB8: .4byte gTasks -_08112CBC: - ldr r0, _08112D28 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1A] - strh r0, [r1, 0x18] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _08112CE2 - movs r0, 0x1 - negs r0, r0 - str r2, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_08112CE2: - ldr r0, _08112D2C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08112CF0 - b _08112FD0 -_08112CF0: - bl sub_8023AD8 - ldr r0, _08112D30 @ =gUnknown_08400F8C - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - bl get_battle_strings_ - ldr r0, _08112D34 @ =gUnknown_03004210 - ldr r1, _08112D38 @ =gUnknown_020238CC - movs r2, 0xF - str r2, [sp] - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - movs r0, 0x5 - bl PlaySE - ldr r1, _08112D28 @ =gTasks - mov r2, r8 - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x1C] - strh r1, [r0, 0x18] - b _08112FD0 - .align 2, 0 -_08112D28: .4byte gTasks -_08112D2C: .4byte gMain -_08112D30: .4byte gUnknown_08400F8C -_08112D34: .4byte gUnknown_03004210 -_08112D38: .4byte gUnknown_020238CC -_08112D3C: - ldr r0, _08112D78 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08112D4A - b _08112FD0 -_08112D4A: - ldr r0, _08112D7C @ =gPlayerParty - mov r3, r8 - adds r5, r3, r7 - lsls r5, 3 - adds r5, r6 - ldrh r1, [r5, 0x20] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _08112D80 @ =gPlayerPartyCount - ldrb r2, [r2] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _08112D84 @ =sub_8111C90 - ldr r4, _08112D88 @ =word_2024E82 - ldrh r4, [r4] - str r4, [sp] - bl sub_809D9F0 - ldrh r0, [r5, 0x18] - adds r0, 0x1 - strh r0, [r5, 0x18] - b _08112FD0 - .align 2, 0 -_08112D78: .4byte gPaletteFade -_08112D7C: .4byte gPlayerParty -_08112D80: .4byte gPlayerPartyCount -_08112D84: .4byte sub_8111C90 -_08112D88: .4byte word_2024E82 -_08112D8C: - ldr r0, _08112DC0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08112D9A - b _08112FD0 -_08112D9A: - ldr r1, [r4, 0x4] - ldr r0, _08112DC4 @ =sub_8112270 - cmp r1, r0 - beq _08112DA4 - b _08112FD0 -_08112DA4: - bl sub_809FA30 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x4 - bne _08112DCC - ldr r0, _08112DC8 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - movs r0, 0x9 - b _08112FCE - .align 2, 0 -_08112DC0: .4byte gPaletteFade -_08112DC4: .4byte sub_8112270 -_08112DC8: .4byte gTasks -_08112DCC: - adds r1, r6, 0 - adds r1, 0xD - mov r0, r9 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl sub_8040A00 - cmp r0, 0 - beq _08112E24 - ldr r0, _08112E10 @ =gUnknown_08400F8C - ldr r3, _08112E14 @ =0x000004cc - adds r0, r3 - ldr r0, [r0] - bl get_battle_strings_ - ldr r0, _08112E18 @ =gUnknown_03004210 - ldr r1, _08112E1C @ =gUnknown_020238CC - movs r2, 0xF - str r2, [sp] - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r1, _08112E20 @ =gTasks - mov r2, r8 - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0xB - strh r1, [r0, 0x18] - b _08112FD0 - .align 2, 0 -_08112E10: .4byte gUnknown_08400F8C -_08112E14: .4byte 0x000004cc -_08112E18: .4byte gUnknown_03004210 -_08112E1C: .4byte gUnknown_020238CC -_08112E20: .4byte gTasks -_08112E24: - ldr r1, _08112E80 @ =gUnknown_03004290 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - strb r4, [r1, 0x2] - lsrs r0, r4, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - lsls r4, r6, 24 - lsrs r4, 24 - mov r0, r9 - adds r1, r4, 0 - bl RemoveMonPPBonus - ldr r0, _08112E84 @ =word_2024E82 - ldrh r1, [r0] - mov r0, r9 - adds r2, r4, 0 - bl SetMonMoveSlot - ldr r0, _08112E88 @ =gUnknown_08400F8C - movs r3, 0xCF - lsls r3, 2 - adds r0, r3 - ldr r0, [r0] - bl get_battle_strings_ - ldr r0, _08112E8C @ =gUnknown_03004210 - ldr r1, _08112E90 @ =gUnknown_020238CC - movs r2, 0xF - str r2, [sp] - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r0, _08112E94 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x18] - adds r0, 0x1 - b _08112FCE - .align 2, 0 -_08112E80: .4byte gUnknown_03004290 -_08112E84: .4byte word_2024E82 -_08112E88: .4byte gUnknown_08400F8C -_08112E8C: .4byte gUnknown_03004210 -_08112E90: .4byte gUnknown_020238CC -_08112E94: .4byte gTasks -_08112E98: - ldr r4, _08112ED8 @ =gUnknown_03004210 - ldrh r0, [r4, 0x16] - cmp r0, 0 - beq _08112EA2 - b _08112FD0 -_08112EA2: - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _08112EAE - b _08112FD0 -_08112EAE: - ldr r0, _08112EDC @ =gUnknown_08400F8C - ldr r0, [r0, 0x1C] - bl get_battle_strings_ - ldr r1, _08112EE0 @ =gUnknown_020238CC - movs r0, 0xF - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r0, _08112EE4 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x18] - adds r0, 0x1 - b _08112FCE - .align 2, 0 -_08112ED8: .4byte gUnknown_03004210 -_08112EDC: .4byte gUnknown_08400F8C -_08112EE0: .4byte gUnknown_020238CC -_08112EE4: .4byte gTasks -_08112EE8: - ldr r4, _08112F28 @ =gUnknown_03004210 - ldrh r0, [r4, 0x16] - cmp r0, 0 - bne _08112FD0 - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - bne _08112FD0 - ldr r0, _08112F2C @ =gUnknown_08400F8C - movs r1, 0xD0 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - bl get_battle_strings_ - ldr r1, _08112F30 @ =gUnknown_020238CC - movs r0, 0xF - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r1, _08112F34 @ =gTasks - mov r2, r8 - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0x13 - strh r1, [r0, 0x8] - b _08112FD0 - .align 2, 0 -_08112F28: .4byte gUnknown_03004210 -_08112F2C: .4byte gUnknown_08400F8C -_08112F30: .4byte gUnknown_020238CC -_08112F34: .4byte gTasks -_08112F38: - ldr r0, _08112F68 @ =gUnknown_08400F8C - ldr r0, [r0, 0x20] - bl get_battle_strings_ - ldr r0, _08112F6C @ =gUnknown_03004210 - ldr r1, _08112F70 @ =gUnknown_020238CC - movs r2, 0xF - str r2, [sp] - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r1, _08112F74 @ =gTasks - mov r3, r8 - adds r0, r3, r7 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0xA - strh r1, [r0, 0x1A] - strh r2, [r0, 0x1C] - movs r1, 0x3 - strh r1, [r0, 0x18] - b _08112FD0 - .align 2, 0 -_08112F68: .4byte gUnknown_08400F8C -_08112F6C: .4byte gUnknown_03004210 -_08112F70: .4byte gUnknown_020238CC -_08112F74: .4byte gTasks -_08112F78: - ldr r0, _08112FA0 @ =gUnknown_08400F8C - ldr r0, [r0, 0x24] - bl get_battle_strings_ - ldr r0, _08112FA4 @ =gUnknown_03004210 - ldr r1, _08112FA8 @ =gUnknown_020238CC - movs r2, 0xF - str r2, [sp] - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r1, _08112FAC @ =gTasks - mov r2, r8 - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 -_08112F9A: - movs r1, 0xE - strh r1, [r0, 0x8] - b _08112FD0 - .align 2, 0 -_08112FA0: .4byte gUnknown_08400F8C -_08112FA4: .4byte gUnknown_03004210 -_08112FA8: .4byte gUnknown_020238CC -_08112FAC: .4byte gTasks -_08112FB0: - ldr r0, _08112FE0 @ =gUnknown_03004210 - ldrh r0, [r0, 0x16] - cmp r0, 0 - bne _08112FD0 - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - bne _08112FD0 - ldr r0, _08112FE4 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - movs r0, 0x5 -_08112FCE: - strh r0, [r1, 0x18] -_08112FD0: - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08112FE0: .4byte gUnknown_03004210 -_08112FE4: .4byte gTasks - thumb_func_end sub_811240C - - thumb_func_start sub_8112FE8 -sub_8112FE8: @ 8112FE8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _0811302C @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r2 - movs r3, 0xA - ldrsh r0, [r1, r3] - mov r8, r0 - movs r3, 0xC - ldrsh r0, [r1, r3] - lsls r0, 16 - mov r3, r8 - orrs r3, r0 - mov r8, r3 - movs r3, 0x8 - ldrsh r0, [r1, r3] - adds r6, r2, 0 - cmp r0, 0x11 - bls _08113020 - bl _08113B3A -_08113020: - lsls r0, 2 - ldr r1, _08113030 @ =_08113034 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811302C: .4byte gTasks -_08113030: .4byte _08113034 - .align 2, 0 -_08113034: - .4byte _0811307C - .4byte _081130B8 - .4byte _081130DC - .4byte _0811310C - .4byte _0811314C - .4byte _0811318C - .4byte _081131C8 - .4byte _081131F4 - .4byte _0811322C - .4byte _08113248 - .4byte _08113274 - .4byte _081132A8 - .4byte _081132F8 - .4byte _081133A8 - .4byte _0811346C - .4byte _08113490 - .4byte _081134F8 - .4byte _08113538 -_0811307C: - ldr r4, _081130A8 @ =gStringVar4 - ldr r1, _081130AC @ =gUnknown_08400C4A - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _081130B0 @ =gUnknown_03004828 - ldr r1, [r0] - adds r0, r1, 0x4 - adds r1, 0x34 - ldrb r2, [r1] - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x2 - bl sub_8002EB0 - ldr r1, _081130B4 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - b _08113298 - .align 2, 0 -_081130A8: .4byte gStringVar4 -_081130AC: .4byte gUnknown_08400C4A -_081130B0: .4byte gUnknown_03004828 -_081130B4: .4byte gTasks -_081130B8: - ldr r0, _081130D8 @ =gUnknown_03004828 - ldr r0, [r0] - ldrh r0, [r0, 0x1A] - cmp r0, 0 - beq _081130C6 - bl _08113B3A -_081130C6: - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r6 - ldrh r0, [r4, 0xE] - movs r1, 0 - bl PlayCry1 - b _081132E2 - .align 2, 0 -_081130D8: .4byte gUnknown_03004828 -_081130DC: - bl IsCryFinished - lsls r0, 24 - cmp r0, 0 - bne _081130EA - bl _08113B3A -_081130EA: - ldr r0, _08113104 @ =0x00000179 - bl m4aSongNumStop - movs r0, 0xBC - lsls r0, 1 - bl PlaySE - ldr r1, _08113108 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - b _08113298 - .align 2, 0 -_08113104: .4byte 0x00000179 -_08113108: .4byte gTasks -_0811310C: - bl IsSEPlaying - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _0811311C - bl _08113B3A -_0811311C: - ldr r0, _08113144 @ =0x00000179 - bl PlayBGM - ldr r1, _08113148 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - str r5, [sp] - movs r0, 0x1C - movs r1, 0x4 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - bl _08113B3A - .align 2, 0 -_08113144: .4byte 0x00000179 -_08113148: .4byte gTasks -_0811314C: - ldr r0, _08113180 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0811315C - bl _08113B3A -_0811315C: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0x9A - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0x11 - bl sub_8149970 - ldr r1, _08113184 @ =gUnknown_02024D1E - strb r0, [r1, 0x2] - ldr r1, _08113188 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - b _08113298 - .align 2, 0 -_08113180: .4byte gPaletteFade -_08113184: .4byte gUnknown_02024D1E -_08113188: .4byte gTasks -_0811318C: - ldr r4, _081131C0 @ =gUnknown_02024D1E - ldrb r0, [r4, 0x2] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r6 - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _081131A2 - bl _08113B3A -_081131A2: - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r6 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - ldr r1, _081131C4 @ =0x02014800 - movs r0, 0x1 - strb r0, [r1, 0x3] - bl sub_8149A90 - strb r0, [r4, 0x2] - bl _08113B3A - .align 2, 0 -_081131C0: .4byte gUnknown_02024D1E -_081131C4: .4byte 0x02014800 -_081131C8: - ldr r4, _081131EC @ =gUnknown_02024D1E - ldrb r0, [r4, 0x2] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r6 - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _081131DE - bl _08113B3A -_081131DE: - ldr r1, _081131F0 @ =0x02014800 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - bl sub_8149E7C - strb r0, [r4, 0x2] - b _08113290 - .align 2, 0 -_081131EC: .4byte gUnknown_02024D1E -_081131F0: .4byte 0x02014800 -_081131F4: - ldr r1, _08113224 @ =0x02014800 - ldrb r0, [r1, 0x3] - subs r0, 0x1 - strb r0, [r1, 0x3] - lsls r0, 24 - cmp r0, 0 - beq _08113206 - bl _08113B3A -_08113206: - movs r0, 0x3 - strb r0, [r1, 0x3] - ldr r0, _08113228 @ =gUnknown_02024D1E - ldrb r1, [r0, 0x2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _08113220 - bl _08113B3A -_08113220: - b _08113290 - .align 2, 0 -_08113224: .4byte 0x02014800 -_08113228: .4byte gUnknown_02024D1E -_0811322C: - bl sub_8149B44 - ldr r1, _08113240 @ =gUnknown_02024D1E - strb r0, [r1, 0x2] - ldr r1, _08113244 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - b _08113298 - .align 2, 0 -_08113240: .4byte gUnknown_02024D1E -_08113244: .4byte gTasks -_08113248: - ldr r5, _08113270 @ =gUnknown_02024D1E - ldrb r0, [r5, 0x2] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r6 - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _0811325E - bl _08113B3A -_0811325E: - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r6 - ldrh r0, [r4, 0x10] - bl sub_8149D5C - strb r0, [r5, 0x2] - b _081132E2 - .align 2, 0 -_08113270: .4byte gUnknown_02024D1E -_08113274: - ldr r0, _081132A4 @ =gUnknown_02024D1E - ldrb r1, [r0, 0x2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _0811328A - bl _08113B3A -_0811328A: - movs r0, 0x21 - bl PlaySE -_08113290: - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r6 -_08113298: - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - bl _08113B3A - .align 2, 0 -_081132A4: .4byte gUnknown_02024D1E -_081132A8: - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - bne _081132B6 - bl _08113B3A -_081132B6: - ldr r0, _081132EC @ =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0x10] - movs r1, 0 - bl PlayCry1 - ldr r0, _081132F0 @ =gPlttBufferUnfaded + 0x40 - ldr r1, _081132F4 @ =0x02009000 - movs r2, 0x60 - bl memcpy - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_081132E2: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - bl _08113B3A - .align 2, 0 -_081132EC: .4byte gTasks -_081132F0: .4byte gPlttBufferUnfaded + 0x40 -_081132F4: .4byte 0x02009000 -_081132F8: - bl IsCryFinished - lsls r0, 24 - cmp r0, 0 - bne _08113306 - bl _08113B3A -_08113306: - ldr r0, _08113390 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08113316 - bl _08113B3A -_08113316: - ldr r4, _08113394 @ =gStringVar4 - ldr r1, _08113398 @ =gUnknown_08400C60 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _0811339C @ =gUnknown_03004828 - ldr r1, [r0] - adds r0, r1, 0x4 - adds r1, 0x34 - ldrb r2, [r1] - movs r1, 0xF - str r1, [sp] - adds r1, r4, 0 - movs r3, 0x2 - bl sub_8002EB0 - ldr r0, _081133A0 @ =0x00000173 - bl PlayFanfare - ldr r2, _081133A4 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - adds r2, r1 - adds r2, 0x10 - mov r0, r8 - movs r1, 0xB - bl SetMonData - mov r0, r8 - bl CalculateMonStats - ldrh r1, [r4, 0xE] - ldrh r2, [r4, 0x10] - mov r0, r8 - bl sub_803FB68 - ldrh r0, [r4, 0x10] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2 - bl sub_8090D90 - ldrh r0, [r4, 0x10] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl sub_8090D90 - movs r0, 0xE - bl sav12_xor_increment - b _08113B3A - .align 2, 0 -_08113390: .4byte gPaletteFade -_08113394: .4byte gStringVar4 -_08113398: .4byte gUnknown_08400C60 -_0811339C: .4byte gUnknown_03004828 -_081133A0: .4byte 0x00000173 -_081133A4: .4byte gTasks -_081133A8: - ldr r0, _08113410 @ =gUnknown_03004828 - ldr r0, [r0] - ldrh r0, [r0, 0x1A] - cmp r0, 0 - beq _081133B4 - b _08113B3A -_081133B4: - bl IsFanfareTaskInactive - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081133C2 - b _08113B3A -_081133C2: - ldr r1, _08113414 @ =gTasks - lsls r4, r7, 2 - adds r0, r4, r7 - lsls r0, 3 - adds r5, r0, r1 - ldrb r1, [r5, 0x14] - mov r0, r8 - bl sub_803B7C8 - lsls r0, 16 - lsrs r6, r0, 16 - mov r9, r4 - cmp r6, 0 - beq _08113434 - movs r3, 0x1E - ldrsh r2, [r5, r3] - cmp r2, 0 - bne _08113434 - ldrh r1, [r5, 0x12] - movs r0, 0x80 - orrs r0, r1 - strh r0, [r5, 0x12] - strh r2, [r5, 0x14] - strh r2, [r5, 0x18] - mov r0, r8 - movs r1, 0x2 - add r2, sp, 0x4 - bl GetMonData - ldr r0, _08113418 @ =gUnknown_030041C0 - add r1, sp, 0x4 - bl StringCopy10 - ldr r0, _0811341C @ =0x0000ffff - cmp r6, r0 - bne _08113420 - movs r0, 0x11 - strh r0, [r5, 0x8] - b _08113B3A - .align 2, 0 -_08113410: .4byte gUnknown_03004828 -_08113414: .4byte gTasks -_08113418: .4byte gUnknown_030041C0 -_0811341C: .4byte 0x0000ffff -_08113420: - ldr r0, _08113430 @ =0x0000fffe - cmp r6, r0 - bne _08113428 - b _08113B3A -_08113428: - movs r0, 0xF - strh r0, [r5, 0x8] - b _08113B3A - .align 2, 0 -_08113430: .4byte 0x0000fffe -_08113434: - ldr r0, _0811345C @ =0x00000179 - bl PlayBGM - ldr r0, _08113460 @ =gUnknown_03004828 - ldr r2, [r0] - adds r0, r2, 0x4 - ldr r1, _08113464 @ =gOtherText_LinkStandby2 - adds r2, 0x34 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] - movs r3, 0x2 - bl sub_8002EB0 - ldr r0, _08113468 @ =gTasks - mov r2, r9 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - b _081134DC - .align 2, 0 -_0811345C: .4byte 0x00000179 -_08113460: .4byte gUnknown_03004828 -_08113464: .4byte gOtherText_LinkStandby2 -_08113468: .4byte gTasks -_0811346C: - ldr r0, _08113488 @ =gUnknown_03004828 - ldr r0, [r0] - ldrh r0, [r0, 0x1A] - cmp r0, 0 - beq _08113478 - b _08113B3A -_08113478: - adds r0, r7, 0 - bl DestroyTask - ldr r0, _0811348C @ =gUnknown_03005E94 - ldr r0, [r0] - bl SetMainCallback2 - b _08113B3A - .align 2, 0 -_08113488: .4byte gUnknown_03004828 -_0811348C: .4byte gUnknown_03005E94 -_08113490: - ldr r4, _081134E4 @ =gUnknown_03004828 - ldr r0, [r4] - ldrh r0, [r0, 0x1A] - cmp r0, 0 - beq _0811349C - b _08113B3A -_0811349C: - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _081134A8 - b _08113B3A -_081134A8: - bl sub_8024CEC - ldr r0, _081134E8 @ =0x0000016f - bl PlayFanfare - ldr r0, _081134EC @ =gUnknown_08400F8C - ldr r0, [r0, 0xC] - bl get_battle_strings_ - ldr r2, [r4] - adds r0, r2, 0x4 - ldr r1, _081134F0 @ =gUnknown_020238CC - adds r2, 0x34 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] - movs r3, 0x2 - bl sub_8002EB0 - ldr r0, _081134F4 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - movs r0, 0x40 - strh r0, [r1, 0x14] -_081134DC: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _08113B3A - .align 2, 0 -_081134E4: .4byte gUnknown_03004828 -_081134E8: .4byte 0x0000016f -_081134EC: .4byte gUnknown_08400F8C -_081134F0: .4byte gUnknown_020238CC -_081134F4: .4byte gTasks -_081134F8: - ldr r0, _08113530 @ =gUnknown_03004828 - ldr r0, [r0] - ldrh r0, [r0, 0x1A] - cmp r0, 0 - beq _08113504 - b _08113B3A -_08113504: - bl IsFanfareTaskInactive - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08113512 - b _08113B3A -_08113512: - ldr r0, _08113534 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x14] - subs r0, 0x1 - strh r0, [r1, 0x14] - lsls r0, 16 - cmp r0, 0 - beq _0811352A - b _08113B3A -_0811352A: - movs r0, 0xD - strh r0, [r1, 0x8] - b _08113B3A - .align 2, 0 -_08113530: .4byte gUnknown_03004828 -_08113534: .4byte gTasks -_08113538: - lsls r1, r7, 2 - adds r0, r1, r7 - lsls r0, 3 - adds r0, r6 - movs r3, 0x18 - ldrsh r0, [r0, r3] - mov r9, r1 - cmp r0, 0xB - bls _0811354C - b _08113B3A -_0811354C: - lsls r0, 2 - ldr r1, _08113558 @ =_0811355C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08113558: .4byte _0811355C - .align 2, 0 -_0811355C: - .4byte _0811358C - .4byte _081135E4 - .4byte _08113638 - .4byte _08113682 - .4byte _0811371C - .4byte _0811387C - .4byte _081138CC - .4byte _081139E8 - .4byte _08113A3C - .4byte _08113A90 - .4byte _08113AD8 - .4byte _08113B18 -_0811358C: - ldr r4, _081135D4 @ =gUnknown_03004828 - ldr r0, [r4] - ldrh r0, [r0, 0x1A] - cmp r0, 0 - beq _08113598 - b _08113B3A -_08113598: - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _081135A4 - b _08113B3A -_081135A4: - bl sub_8024CEC - ldr r0, _081135D8 @ =gUnknown_08400F8C - ldr r0, [r0, 0x10] - bl get_battle_strings_ - ldr r2, [r4] - adds r0, r2, 0x4 - ldr r1, _081135DC @ =gUnknown_020238CC - adds r2, 0x34 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] - movs r3, 0x2 - bl sub_8002EB0 - ldr r0, _081135E0 @ =gTasks - mov r2, r9 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x18] - adds r0, 0x1 - b _08113B38 - .align 2, 0 -_081135D4: .4byte gUnknown_03004828 -_081135D8: .4byte gUnknown_08400F8C -_081135DC: .4byte gUnknown_020238CC -_081135E0: .4byte gTasks -_081135E4: - ldr r4, _08113628 @ =gUnknown_03004828 - ldr r0, [r4] - ldrh r0, [r0, 0x1A] - cmp r0, 0 - beq _081135F0 - b _08113B3A -_081135F0: - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _081135FC - b _08113B3A -_081135FC: - ldr r0, _0811362C @ =gUnknown_08400F8C - ldr r0, [r0, 0x14] - bl get_battle_strings_ - ldr r2, [r4] - adds r0, r2, 0x4 - ldr r1, _08113630 @ =gUnknown_020238CC - adds r2, 0x34 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] - movs r3, 0x2 - bl sub_8002EB0 - ldr r0, _08113634 @ =gTasks - mov r3, r9 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x18] - adds r0, 0x1 - b _08113B38 - .align 2, 0 -_08113628: .4byte gUnknown_03004828 -_0811362C: .4byte gUnknown_08400F8C -_08113630: .4byte gUnknown_020238CC -_08113634: .4byte gTasks -_08113638: - ldr r4, _081136FC @ =gUnknown_03004828 - ldr r0, [r4] - ldrh r0, [r0, 0x1A] - cmp r0, 0 - beq _08113644 - b _08113B3A -_08113644: - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - bne _08113682 - ldr r0, _08113700 @ =gUnknown_08400F8C - ldr r0, [r0, 0x18] - bl get_battle_strings_ - ldr r2, [r4] - adds r0, r2, 0x4 - ldr r1, _08113704 @ =gUnknown_020238CC - adds r2, 0x34 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] - movs r3, 0x2 - bl sub_8002EB0 - ldr r0, _08113708 @ =gTasks - mov r2, r9 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - movs r0, 0x5 - strh r0, [r1, 0x1A] - movs r0, 0x9 - strh r0, [r1, 0x1C] - ldrh r0, [r1, 0x18] - adds r0, 0x1 - strh r0, [r1, 0x18] -_08113682: - ldr r5, _081136FC @ =gUnknown_03004828 - ldr r0, [r5] - ldrh r0, [r0, 0x1A] - cmp r0, 0 - beq _0811368E - b _08113B3A -_0811368E: - bl IsSEPlaying - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _0811369C - b _08113B3A -_0811369C: - ldr r0, [r5] - adds r0, 0x4 - movs r1, 0xD - str r1, [sp] - movs r1, 0x18 - movs r2, 0x8 - movs r3, 0x1D - bl DrawTextWindow - ldr r4, _0811370C @ =gUnknown_02024D1E - strb r6, [r4, 0x1] - ldr r2, [r5] - adds r0, r2, 0x4 - ldr r1, _08113710 @ =gOtherText_YesNoAndPlayer - adds r2, 0x34 - ldrb r2, [r2] - adds r2, 0x80 - movs r3, 0x9 - str r3, [sp] - movs r3, 0x19 - bl InitWindow - ldr r0, [r5] - adds r0, 0x4 - bl sub_8002F44 - ldr r1, _08113714 @ =0x0000ffff - ldr r3, _08113718 @ =0x00002d9f - movs r0, 0x20 - str r0, [sp] - movs r0, 0 - movs r2, 0xC - bl sub_814A5C0 - bl sub_81150D8 - ldr r0, _08113708 @ =gTasks - mov r3, r9 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x18] - adds r0, 0x1 - movs r2, 0 - strh r0, [r1, 0x18] - strb r2, [r4, 0x1] - b _08113B3A - .align 2, 0 -_081136FC: .4byte gUnknown_03004828 -_08113700: .4byte gUnknown_08400F8C -_08113704: .4byte gUnknown_020238CC -_08113708: .4byte gTasks -_0811370C: .4byte gUnknown_02024D1E -_08113710: .4byte gOtherText_YesNoAndPlayer -_08113714: .4byte 0x0000ffff -_08113718: .4byte 0x00002d9f -_0811371C: - ldr r0, _081137CC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08113742 - ldr r4, _081137D0 @ =gUnknown_02024D1E - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _08113742 - movs r0, 0x5 - bl PlaySE - bl nullsub_24 - movs r0, 0 - strb r0, [r4, 0x1] - bl sub_81150D8 -_08113742: - ldr r0, _081137CC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08113768 - ldr r4, _081137D0 @ =gUnknown_02024D1E - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _08113768 - movs r0, 0x5 - bl PlaySE - bl nullsub_24 - movs r0, 0x1 - strb r0, [r4, 0x1] - bl sub_81150D8 -_08113768: - ldr r0, _081137CC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0811380A - ldr r4, _081137D4 @ =gUnknown_03004828 - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0xD - str r1, [sp] - movs r1, 0x18 - movs r2, 0x8 - movs r3, 0x1D - bl ZeroFillWindowRect - bl sub_814A7FC - ldr r0, _081137D8 @ =gUnknown_08400F8C - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - bl get_battle_strings_ - ldr r2, [r4] - adds r0, r2, 0x4 - ldr r1, _081137DC @ =gUnknown_020238CC - adds r2, 0x34 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] - movs r3, 0x2 - bl sub_8002EB0 - movs r0, 0x5 - bl PlaySE - ldr r0, _081137D0 @ =gUnknown_02024D1E - ldrb r2, [r0, 0x1] - cmp r2, 0 - beq _081137E4 - ldr r0, _081137E0 @ =gTasks - mov r2, r9 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1C] - strh r0, [r1, 0x18] - b _0811380A - .align 2, 0 -_081137CC: .4byte gMain -_081137D0: .4byte gUnknown_02024D1E -_081137D4: .4byte gUnknown_03004828 -_081137D8: .4byte gUnknown_08400F8C -_081137DC: .4byte gUnknown_020238CC -_081137E0: .4byte gTasks -_081137E4: - ldr r0, _08113868 @ =gTasks - mov r3, r9 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1A] - strh r0, [r1, 0x18] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _0811380A - movs r0, 0x1 - negs r0, r0 - str r2, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0811380A: - ldr r0, _0811386C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08113818 - b _08113B3A -_08113818: - ldr r4, _08113870 @ =gUnknown_03004828 - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0xD - str r1, [sp] - movs r1, 0x18 - movs r2, 0x8 - movs r3, 0x1D - bl ZeroFillWindowRect - bl sub_814A7FC - ldr r0, _08113874 @ =gUnknown_08400F8C - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - bl get_battle_strings_ - ldr r2, [r4] - adds r0, r2, 0x4 - ldr r1, _08113878 @ =gUnknown_020238CC - adds r2, 0x34 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] - movs r3, 0x2 - bl sub_8002EB0 - movs r0, 0x5 - bl PlaySE - ldr r1, _08113868 @ =gTasks - mov r2, r9 - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x1C] - strh r1, [r0, 0x18] - b _08113B3A - .align 2, 0 -_08113868: .4byte gTasks -_0811386C: .4byte gMain -_08113870: .4byte gUnknown_03004828 -_08113874: .4byte gUnknown_08400F8C -_08113878: .4byte gUnknown_020238CC -_0811387C: - ldr r0, _081138B8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0811388A - b _08113B3A -_0811388A: - ldr r0, _081138BC @ =gPlayerParty - mov r3, r9 - adds r5, r3, r7 - lsls r5, 3 - adds r5, r6 - ldrh r1, [r5, 0x20] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _081138C0 @ =gPlayerPartyCount - ldrb r2, [r2] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _081138C4 @ =sub_8111E80 - ldr r4, _081138C8 @ =word_2024E82 - ldrh r4, [r4] - str r4, [sp] - bl sub_809D9F0 - ldrh r0, [r5, 0x18] - adds r0, 0x1 - strh r0, [r5, 0x18] - b _08113B3A - .align 2, 0 -_081138B8: .4byte gPaletteFade -_081138BC: .4byte gPlayerParty -_081138C0: .4byte gPlayerPartyCount -_081138C4: .4byte sub_8111E80 -_081138C8: .4byte word_2024E82 -_081138CC: - ldr r0, _08113900 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081138DA - b _08113B3A -_081138DA: - ldr r0, _08113904 @ =gMain - ldr r1, [r0, 0x4] - ldr r0, _08113908 @ =sub_8112290 - cmp r1, r0 - beq _081138E6 - b _08113B3A -_081138E6: - bl sub_809FA30 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x4 - bne _08113910 - ldr r0, _0811390C @ =gTasks - mov r2, r9 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - movs r0, 0x9 - b _08113B38 - .align 2, 0 -_08113900: .4byte gPaletteFade -_08113904: .4byte gMain -_08113908: .4byte sub_8112290 -_0811390C: .4byte gTasks -_08113910: - adds r1, r6, 0 - adds r1, 0xD - mov r0, r8 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl sub_8040A00 - cmp r0, 0 - beq _08113970 - ldr r0, _0811395C @ =gUnknown_08400F8C - ldr r3, _08113960 @ =0x000004cc - adds r0, r3 - ldr r0, [r0] - bl get_battle_strings_ - ldr r0, _08113964 @ =gUnknown_03004828 - ldr r2, [r0] - adds r0, r2, 0x4 - ldr r1, _08113968 @ =gUnknown_020238CC - adds r2, 0x34 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] - movs r3, 0x2 - bl sub_8002EB0 - ldr r1, _0811396C @ =gTasks - mov r2, r9 - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0xB - strh r1, [r0, 0x18] - b _08113B3A - .align 2, 0 -_0811395C: .4byte gUnknown_08400F8C -_08113960: .4byte 0x000004cc -_08113964: .4byte gUnknown_03004828 -_08113968: .4byte gUnknown_020238CC -_0811396C: .4byte gTasks -_08113970: - ldr r1, _081139D0 @ =gUnknown_03004290 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - strb r4, [r1, 0x2] - lsrs r0, r4, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - lsls r4, r6, 24 - lsrs r4, 24 - mov r0, r8 - adds r1, r4, 0 - bl RemoveMonPPBonus - ldr r0, _081139D4 @ =word_2024E82 - ldrh r1, [r0] - mov r0, r8 - adds r2, r4, 0 - bl SetMonMoveSlot - ldr r0, _081139D8 @ =gUnknown_08400F8C - movs r3, 0xCF - lsls r3, 2 - adds r0, r3 - ldr r0, [r0] - bl get_battle_strings_ - ldr r0, _081139DC @ =gUnknown_03004828 - ldr r2, [r0] - adds r0, r2, 0x4 - ldr r1, _081139E0 @ =gUnknown_020238CC - adds r2, 0x34 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] - movs r3, 0x2 - bl sub_8002EB0 - ldr r0, _081139E4 @ =gTasks - mov r2, r9 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x18] - adds r0, 0x1 - b _08113B38 - .align 2, 0 -_081139D0: .4byte gUnknown_03004290 -_081139D4: .4byte word_2024E82 -_081139D8: .4byte gUnknown_08400F8C -_081139DC: .4byte gUnknown_03004828 -_081139E0: .4byte gUnknown_020238CC -_081139E4: .4byte gTasks -_081139E8: - ldr r4, _08113A2C @ =gUnknown_03004828 - ldr r0, [r4] - ldrh r0, [r0, 0x1A] - cmp r0, 0 - beq _081139F4 - b _08113B3A -_081139F4: - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _08113A00 - b _08113B3A -_08113A00: - ldr r0, _08113A30 @ =gUnknown_08400F8C - ldr r0, [r0, 0x1C] - bl get_battle_strings_ - ldr r2, [r4] - adds r0, r2, 0x4 - ldr r1, _08113A34 @ =gUnknown_020238CC - adds r2, 0x34 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] - movs r3, 0x2 - bl sub_8002EB0 - ldr r0, _08113A38 @ =gTasks - mov r3, r9 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x18] - adds r0, 0x1 - b _08113B38 - .align 2, 0 -_08113A2C: .4byte gUnknown_03004828 -_08113A30: .4byte gUnknown_08400F8C -_08113A34: .4byte gUnknown_020238CC -_08113A38: .4byte gTasks -_08113A3C: - ldr r4, _08113A80 @ =gUnknown_03004828 - ldr r0, [r4] - ldrh r0, [r0, 0x1A] - cmp r0, 0 - bne _08113B3A - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - bne _08113B3A - ldr r0, _08113A84 @ =gUnknown_08400F8C - movs r1, 0xD0 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - bl get_battle_strings_ - ldr r2, [r4] - adds r0, r2, 0x4 - ldr r1, _08113A88 @ =gUnknown_020238CC - adds r2, 0x34 - ldrb r2, [r2] - movs r4, 0xF - str r4, [sp] - movs r3, 0x2 - bl sub_8002EB0 - ldr r1, _08113A8C @ =gTasks - mov r2, r9 - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x8] - b _08113B3A - .align 2, 0 -_08113A80: .4byte gUnknown_03004828 -_08113A84: .4byte gUnknown_08400F8C -_08113A88: .4byte gUnknown_020238CC -_08113A8C: .4byte gTasks -_08113A90: - ldr r0, _08113AC8 @ =gUnknown_08400F8C - ldr r0, [r0, 0x20] - bl get_battle_strings_ - ldr r0, _08113ACC @ =gUnknown_03004828 - ldr r2, [r0] - adds r0, r2, 0x4 - ldr r1, _08113AD0 @ =gUnknown_020238CC - adds r2, 0x34 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] - movs r3, 0x2 - bl sub_8002EB0 - ldr r1, _08113AD4 @ =gTasks - mov r3, r9 - adds r0, r3, r7 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0xA - strh r1, [r0, 0x1A] - strh r2, [r0, 0x1C] - movs r1, 0x3 - strh r1, [r0, 0x18] - b _08113B3A - .align 2, 0 -_08113AC8: .4byte gUnknown_08400F8C -_08113ACC: .4byte gUnknown_03004828 -_08113AD0: .4byte gUnknown_020238CC -_08113AD4: .4byte gTasks -_08113AD8: - ldr r0, _08113B08 @ =gUnknown_08400F8C - ldr r0, [r0, 0x24] - bl get_battle_strings_ - ldr r0, _08113B0C @ =gUnknown_03004828 - ldr r2, [r0] - adds r0, r2, 0x4 - ldr r1, _08113B10 @ =gUnknown_020238CC - adds r2, 0x34 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] - movs r3, 0x2 - bl sub_8002EB0 - ldr r1, _08113B14 @ =gTasks - mov r2, r9 - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0xD - strh r1, [r0, 0x8] - b _08113B3A - .align 2, 0 -_08113B08: .4byte gUnknown_08400F8C -_08113B0C: .4byte gUnknown_03004828 -_08113B10: .4byte gUnknown_020238CC -_08113B14: .4byte gTasks -_08113B18: - ldr r0, _08113B48 @ =gUnknown_03004828 - ldr r0, [r0] - ldrh r0, [r0, 0x1A] - cmp r0, 0 - bne _08113B3A - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - bne _08113B3A - ldr r0, _08113B4C @ =gTasks - mov r3, r9 - adds r1, r3, r7 - lsls r1, 3 - adds r1, r0 - movs r0, 0x5 -_08113B38: - strh r0, [r1, 0x18] -_08113B3A: - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08113B48: .4byte gUnknown_03004828 -_08113B4C: .4byte gTasks - thumb_func_end sub_8112FE8 - - thumb_func_start unref_sub_8113B50 -unref_sub_8113B50: @ 8113B50 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x3C - str r0, [sp] - str r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - movs r1, 0 - str r1, [sp, 0x10] - movs r2, 0 - str r2, [sp, 0x8] - ldr r3, _08113C60 @ =0x02014800 - mov r12, r3 - ldr r4, _08113C64 @ =0x000018c4 - add r4, r12 - mov r10, r4 - ldr r5, _08113C68 @ =0x000020c4 - add r5, r12 - mov r8, r5 -_08113B7C: - adds r0, r3, 0 - adds r0, 0x84 - ldr r1, [sp, 0x8] - adds r0, r1, r0 - strb r2, [r0] - adds r0, r3, 0x4 - adds r0, r1, r0 - strb r2, [r0] - ldr r4, _08113C6C @ =0x02014844 - adds r0, r1, r4 - strb r2, [r0] - movs r6, 0 - lsls r1, 5 - mov r9, r1 - ldr r5, [sp, 0x8] - lsls r4, r5, 6 -_08113B9C: - mov r0, r9 - adds r1, r6, r0 - ldr r5, _08113C70 @ =0x020158c4 - adds r0, r1, r5 - strb r2, [r0] - mov r5, r10 - adds r0, r1, r5 - strb r2, [r0] - mov r5, r8 - adds r0, r1, r5 - strb r2, [r0] - ldr r5, _08113C74 @ =0x020170c4 - adds r0, r1, r5 - strb r2, [r0] - adds r7, r3, 0 - adds r7, 0xC4 - adds r0, r1, r7 - strb r2, [r0] - ldr r5, _08113C78 @ =0x000008c4 - adds r0, r3, r5 - adds r0, r1, r0 - strb r2, [r0] - ldr r5, _08113C7C @ =0x000030c4 - adds r0, r3, r5 - adds r0, r1, r0 - strb r2, [r0] - ldr r5, _08113C80 @ =0x000038c4 - adds r0, r3, r5 - adds r1, r0 - strb r2, [r1] - lsls r1, r6, 1 - adds r1, r4 - ldr r5, _08113C84 @ =0x000060c4 - adds r0, r3, r5 - adds r0, r1, r0 - strh r2, [r0] - ldr r5, _08113C88 @ =0x000070c4 - adds r0, r3, r5 - adds r0, r1, r0 - strh r2, [r0] - ldr r5, _08113C8C @ =0x000080c4 - adds r0, r3, r5 - adds r0, r1, r0 - strh r2, [r0] - ldr r5, _08113C90 @ =0x000090c4 - adds r0, r3, r5 - adds r1, r0 - strh r2, [r1] - adds r6, 0x1 - cmp r6, 0x1F - ble _08113B9C - ldr r0, [sp, 0x8] - adds r0, 0x1 - str r0, [sp, 0x8] - cmp r0, 0x3F - ble _08113B7C - ldr r1, _08113C94 @ =0x0000a0c4 - add r1, r12 - movs r0, 0x40 - strb r0, [r1] - movs r1, 0 - mov r8, r1 - movs r2, 0 - str r2, [sp, 0x8] - movs r3, 0x80 - lsls r3, 5 - adds r3, r7 - mov r12, r3 - movs r4, 0xC0 - lsls r4, 5 - adds r4, r7 - mov r9, r4 - movs r5, 0 - adds r4, r7, 0 - subs r4, 0xC0 -_08113C32: - movs r3, 0 - ldr r2, [sp] - add r2, r8 - movs r6, 0 - ldr r0, [sp, 0x8] - adds r0, 0x1 - str r0, [sp, 0x30] - ldr r1, [sp, 0x8] - lsls r1, 7 - mov r10, r1 - movs r7, 0x1 - negs r7, r7 -_08113C4A: - asrs r0, r6, 1 - lsls r0, 2 - add r0, r10 - ldr r1, _08113C98 @ =0x020188c4 - adds r0, r1 - str r2, [r0] - cmp r3, 0 - beq _08113C9C - cmp r3, 0x1 - beq _08113CC6 - b _08113CF4 - .align 2, 0 -_08113C60: .4byte 0x02014800 -_08113C64: .4byte 0x000018c4 -_08113C68: .4byte 0x000020c4 -_08113C6C: .4byte 0x02014844 -_08113C70: .4byte 0x020158c4 -_08113C74: .4byte 0x020170c4 -_08113C78: .4byte 0x000008c4 -_08113C7C: .4byte 0x000030c4 -_08113C80: .4byte 0x000038c4 -_08113C84: .4byte 0x000060c4 -_08113C88: .4byte 0x000070c4 -_08113C8C: .4byte 0x000080c4 -_08113C90: .4byte 0x000090c4 -_08113C94: .4byte 0x0000a0c4 -_08113C98: .4byte 0x020188c4 -_08113C9C: - movs r0, 0x1 - ands r0, r6 - cmp r0, 0 - beq _08113CAA - cmp r0, 0x1 - beq _08113CB0 - b _08113CF4 -_08113CAA: - ldrb r1, [r2] - movs r0, 0xF - b _08113CB4 -_08113CB0: - ldrb r1, [r2] - movs r0, 0xF0 -_08113CB4: - ands r0, r1 - cmp r0, 0 - beq _08113CF4 - ldrb r0, [r4] - adds r0, r5 - add r0, r12 - strb r6, [r0] - movs r3, 0x1 - b _08113CF4 -_08113CC6: - adds r0, r6, 0 - ands r0, r3 - cmp r0, 0 - beq _08113CD4 - cmp r0, 0x1 - beq _08113CDA - b _08113CF4 -_08113CD4: - ldrb r1, [r2] - movs r0, 0xF - b _08113CDE -_08113CDA: - ldrb r1, [r2] - movs r0, 0xF0 -_08113CDE: - ands r0, r1 - cmp r0, 0 - bne _08113CF4 - ldrb r0, [r4] - adds r0, r5 - add r0, r9 - strb r7, [r0] - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - movs r3, 0 -_08113CF4: - adds r0, r6, 0x1 - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _08113D02 - adds r2, 0x1D - b _08113D0C -_08113D02: - movs r0, 0x1 - ands r0, r6 - cmp r0, 0 - beq _08113D0C - adds r2, 0x1 -_08113D0C: - adds r7, 0x1 - adds r6, 0x1 - cmp r6, 0x3F - ble _08113C4A - cmp r3, 0 - beq _08113D26 - ldrb r0, [r4] - adds r0, r5 - add r0, r9 - strb r6, [r0] - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_08113D26: - movs r0, 0x7 - ldr r2, [sp, 0x30] - ands r2, r0 - cmp r2, 0 - bne _08113D36 - movs r3, 0xE4 - add r8, r3 - b _08113D3A -_08113D36: - movs r0, 0x4 - add r8, r0 -_08113D3A: - adds r5, 0x20 - adds r4, 0x1 - ldr r1, [sp, 0x8] - adds r1, 0x1 - str r1, [sp, 0x8] - cmp r1, 0x3F - bgt _08113D4A - b _08113C32 -_08113D4A: - movs r2, 0 - mov r8, r2 - movs r3, 0 - str r3, [sp, 0x8] - ldr r0, _08113D84 @ =0x02014844 - movs r4, 0x82 - lsls r4, 6 - adds r4, r0 - mov r10, r4 - movs r5, 0xA2 - lsls r5, 6 - adds r7, r0, r5 - movs r5, 0 - adds r4, r0, 0 - movs r0, 0x1 - mov r9, r0 -_08113D6A: - movs r3, 0 - ldr r2, [sp, 0x4] - add r2, r8 - movs r6, 0 - ldr r1, [sp, 0x8] - adds r1, 0x1 - str r1, [sp, 0x30] -_08113D78: - cmp r3, 0 - beq _08113D88 - cmp r3, 0x1 - beq _08113DB4 - b _08113DE4 - .align 2, 0 -_08113D84: .4byte 0x02014844 -_08113D88: - adds r0, r6, 0 - mov r1, r9 - ands r0, r1 - cmp r0, 0 - beq _08113D98 - cmp r0, 0x1 - beq _08113D9E - b _08113DE4 -_08113D98: - ldrb r1, [r2] - movs r0, 0xF - b _08113DA2 -_08113D9E: - ldrb r1, [r2] - movs r0, 0xF0 -_08113DA2: - ands r0, r1 - cmp r0, 0 - beq _08113DE4 - ldrb r0, [r4] - adds r0, r5 - add r0, r10 - strb r6, [r0] - movs r3, 0x1 - b _08113DE4 -_08113DB4: - adds r0, r6, 0 - ands r0, r3 - cmp r0, 0 - beq _08113DC2 - cmp r0, 0x1 - beq _08113DC8 - b _08113DE4 -_08113DC2: - ldrb r1, [r2] - movs r0, 0xF - b _08113DCC -_08113DC8: - ldrb r1, [r2] - movs r0, 0xF0 -_08113DCC: - ands r0, r1 - cmp r0, 0 - bne _08113DE4 - ldrb r0, [r4] - adds r0, r5 - adds r0, r7 - subs r1, r6, 0x1 - strb r1, [r0] - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - movs r3, 0 -_08113DE4: - adds r1, r6, 0x1 - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _08113DF2 - adds r2, 0x1D - b _08113DFC -_08113DF2: - mov r0, r9 - ands r6, r0 - cmp r6, 0 - beq _08113DFC - adds r2, 0x1 -_08113DFC: - adds r6, r1, 0 - cmp r6, 0x3F - ble _08113D78 - cmp r3, 0 - beq _08113E14 - ldrb r0, [r4] - adds r0, r5 - adds r0, r7 - strb r6, [r0] - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_08113E14: - movs r0, 0x7 - ldr r1, [sp, 0x30] - ands r1, r0 - cmp r1, 0 - bne _08113E24 - movs r2, 0xE4 - add r8, r2 - b _08113E28 -_08113E24: - movs r3, 0x4 - add r8, r3 -_08113E28: - adds r5, 0x20 - adds r4, 0x1 - ldr r0, [sp, 0x8] - adds r0, 0x1 - str r0, [sp, 0x8] - cmp r0, 0x3F - ble _08113D6A - movs r1, 0 - str r1, [sp, 0x8] -_08113E3A: - ldr r3, [sp, 0x8] - ldr r4, _08113EBC @ =0x02014804 - adds r2, r3, r4 - ldr r5, _08113EC0 @ =0x02014844 - adds r1, r3, r5 - ldrb r0, [r2] - adds r3, 0x1 - str r3, [sp, 0x30] - ldrb r1, [r1] - cmp r0, r1 - bcc _08113E52 - b _08113F9E -_08113E52: - movs r0, 0 - str r0, [sp, 0xC] - ldrb r2, [r2] - cmp r0, r2 - bge _08113F54 - ldr r0, _08113EC4 @ =0x02014800 - adds r0, 0x4 - ldr r1, [sp, 0x8] - adds r0, r1, r0 - str r0, [sp, 0x18] -_08113E66: - movs r2, 0x80 - lsls r2, 1 - str r2, [sp, 0x14] - movs r6, 0 - ldr r3, [sp, 0x8] - ldr r4, _08113EC0 @ =0x02014844 - adds r0, r3, r4 - ldr r5, [sp, 0xC] - adds r5, 0x1 - str r5, [sp, 0x34] - ldrb r0, [r0] - cmp r6, r0 - bge _08113F3E - ldr r0, _08113EC4 @ =0x02014800 - mov r10, r0 - lsls r0, r3, 5 - ldr r2, [sp, 0xC] - adds r1, r2, r0 - mov r9, r0 - ldr r0, _08113EC4 @ =0x02014800 - adds r0, 0xC4 - mov r3, r9 - adds r7, r3, r0 - mov r5, r9 - ldr r4, _08113EC4 @ =0x02014800 - ldr r2, _08113EC8 @ =0x000010c4 - adds r0, r4, r2 - adds r1, r0 - mov r8, r1 - ldrb r3, [r1] - str r3, [sp, 0x1C] -_08113EA4: - ldr r0, _08113ECC @ =0x000020c4 - add r0, r10 - adds r0, r5, r0 - ldr r4, [sp, 0x1C] - ldrb r1, [r0] - cmp r4, r1 - bls _08113ED0 - mov r2, r8 - ldrb r1, [r2] - ldrb r0, [r0] - b _08113ED6 - .align 2, 0 -_08113EBC: .4byte 0x02014804 -_08113EC0: .4byte 0x02014844 -_08113EC4: .4byte 0x02014800 -_08113EC8: .4byte 0x000010c4 -_08113ECC: .4byte 0x000020c4 -_08113ED0: - ldrb r1, [r0] - mov r3, r8 - ldrb r0, [r3] -_08113ED6: - subs r3, r1, r0 - ldr r1, [sp, 0xC] - add r1, r9 - ldr r0, _08113EFC @ =0x000018c4 - add r0, r10 - adds r4, r1, r0 - ldr r0, _08113F00 @ =0x000028c4 - add r0, r10 - adds r2, r5, r0 - ldrb r0, [r4] - ldr r1, _08113F04 @ =0x02014800 - mov r12, r1 - ldrb r1, [r2] - cmp r0, r1 - bls _08113F08 - adds r1, r0, 0 - ldrb r0, [r2] - b _08113F0C - .align 2, 0 -_08113EFC: .4byte 0x000018c4 -_08113F00: .4byte 0x000028c4 -_08113F04: .4byte 0x02014800 -_08113F08: - ldrb r1, [r2] - ldrb r0, [r4] -_08113F0C: - subs r1, r0 - adds r3, r1 - ldr r2, [sp, 0x14] - cmp r2, r3 - ble _08113F2C - ldrb r0, [r7] - cmp r0, 0 - bne _08113F2C - ldr r0, _08114050 @ =0x000008c4 - add r0, r12 - adds r0, r5, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _08113F2C - str r6, [sp, 0x10] - str r3, [sp, 0x14] -_08113F2C: - adds r7, 0x1 - adds r5, 0x1 - adds r6, 0x1 - ldr r3, [sp, 0x8] - ldr r4, _08114054 @ =0x02014844 - adds r0, r3, r4 - ldrb r0, [r0] - cmp r6, r0 - blt _08113EA4 -_08113F3E: - ldr r0, [sp, 0xC] - ldr r1, [sp, 0x10] - ldr r2, [sp, 0x8] - bl sub_81141F0 - ldr r5, [sp, 0x34] - str r5, [sp, 0xC] - ldr r0, [sp, 0x18] - ldrb r0, [r0] - cmp r5, r0 - blt _08113E66 -_08113F54: - movs r6, 0 - ldr r2, _08114058 @ =0x02014800 - ldr r1, [sp, 0x8] - ldr r3, _08114054 @ =0x02014844 - adds r0, r1, r3 - adds r4, r2, 0 - mov r12, r4 - ldrb r0, [r0] - cmp r6, r0 - bge _08113F9E - mov r0, r12 - adds r0, 0x44 - adds r4, r1, r0 -_08113F6E: - ldr r5, [sp, 0x8] - lsls r0, r5, 5 - adds r1, r6, r0 - adds r0, r2, 0 - adds r0, 0xC4 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _08113F94 - ldr r3, _08114050 @ =0x000008c4 - adds r0, r2, r3 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _08113F94 - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_811430C -_08113F94: - adds r6, 0x1 - ldr r2, _08114058 @ =0x02014800 - ldrb r5, [r4] - cmp r6, r5 - blt _08113F6E -_08113F9E: - ldr r0, [sp, 0x8] - ldr r1, _0811405C @ =0x02014804 - adds r2, r0, r1 - ldr r3, _08114054 @ =0x02014844 - adds r1, r0, r3 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bne _08113FCC - movs r6, 0 - ldrb r4, [r2] - cmp r6, r4 - bge _08113FCC - adds r4, r2, 0 -_08113FBA: - adds r0, r6, 0 - adds r1, r6, 0 - ldr r2, [sp, 0x8] - bl sub_81141F0 - adds r6, 0x1 - ldrb r5, [r4] - cmp r6, r5 - blt _08113FBA -_08113FCC: - ldr r0, [sp, 0x8] - ldr r1, _0811405C @ =0x02014804 - adds r2, r0, r1 - ldr r3, _08114054 @ =0x02014844 - adds r1, r0, r3 - ldrb r0, [r2] - ldr r4, _08114058 @ =0x02014800 - ldrb r5, [r1] - cmp r0, r5 - bhi _08113FE2 - b _081141C4 -_08113FE2: - movs r0, 0 - str r0, [sp, 0x10] - ldrb r1, [r1] - cmp r0, r1 - blt _08113FEE - b _08114104 -_08113FEE: - str r2, [sp, 0x2C] - ldr r1, [sp, 0x8] - lsls r1, 5 - mov r9, r1 - adds r0, r4, 0 - adds r0, 0x44 - ldr r2, [sp, 0x8] - adds r0, r2, r0 - str r0, [sp, 0x20] - mov r3, r9 - str r3, [sp, 0x24] -_08114004: - movs r4, 0x80 - lsls r4, 1 - str r4, [sp, 0x14] - movs r6, 0 - ldr r5, [sp, 0x10] - adds r5, 0x1 - str r5, [sp, 0x38] - ldr r0, [sp, 0x2C] - ldrb r0, [r0] - cmp r6, r0 - bge _081140C4 - ldr r1, [sp, 0x10] - ldr r2, [sp, 0x24] - adds r1, r2 - mov r10, r1 - ldr r0, _08114058 @ =0x02014800 - adds r0, 0xC4 - adds r2, r0 - mov r8, r2 - ldr r7, [sp, 0x24] - ldr r3, _08114058 @ =0x02014800 - ldr r4, _08114060 @ =0x000010c4 - adds r0, r3, r4 - adds r5, r7, r0 - ldr r0, _08114064 @ =0x020168c4 - add r0, r10 - mov r12, r0 - ldrb r1, [r0] - str r1, [sp, 0x28] -_0811403E: - ldrb r0, [r5] - ldr r2, [sp, 0x28] - cmp r0, r2 - bls _08114068 - adds r1, r0, 0 - mov r3, r12 - ldrb r0, [r3] - b _0811406E - .align 2, 0 -_08114050: .4byte 0x000008c4 -_08114054: .4byte 0x02014844 -_08114058: .4byte 0x02014800 -_0811405C: .4byte 0x02014804 -_08114060: .4byte 0x000010c4 -_08114064: .4byte 0x020168c4 -_08114068: - mov r4, r12 - ldrb r1, [r4] - ldrb r0, [r5] -_0811406E: - subs r3, r1, r0 - ldr r1, _0811408C @ =0x02014800 - ldr r2, _08114090 @ =0x000018c4 - adds r0, r1, r2 - adds r4, r7, r0 - ldr r2, _08114094 @ =0x020170c4 - add r2, r10 - ldrb r0, [r4] - ldrb r1, [r2] - cmp r0, r1 - bls _08114098 - adds r1, r0, 0 - ldrb r0, [r2] - b _0811409C - .align 2, 0 -_0811408C: .4byte 0x02014800 -_08114090: .4byte 0x000018c4 -_08114094: .4byte 0x020170c4 -_08114098: - ldrb r1, [r2] - ldrb r0, [r4] -_0811409C: - subs r1, r0 - adds r3, r1 - ldr r2, [sp, 0x14] - cmp r2, r3 - ble _081140B2 - mov r4, r8 - ldrb r0, [r4] - cmp r0, 0 - bne _081140B2 - str r6, [sp, 0xC] - str r3, [sp, 0x14] -_081140B2: - movs r0, 0x1 - add r8, r0 - adds r7, 0x1 - adds r5, 0x1 - adds r6, 0x1 - ldr r1, [sp, 0x2C] - ldrb r1, [r1] - cmp r6, r1 - blt _0811403E -_081140C4: - ldr r3, [sp, 0xC] - add r3, r9 - ldr r2, _08114164 @ =0x02014800 - ldr r4, _08114168 @ =0x000030c4 - adds r1, r2, r4 - adds r1, r3, r1 - ldr r2, [sp, 0x10] - add r2, r9 - ldr r5, _0811416C @ =0x020168c4 - adds r0, r2, r5 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _08114164 @ =0x02014800 - ldr r4, _08114170 @ =0x000038c4 - adds r1, r0, r4 - adds r1, r3, r1 - ldr r5, _08114174 @ =0x020170c4 - adds r2, r5 - ldrb r0, [r2] - strb r0, [r1] - ldr r0, _08114164 @ =0x02014800 - adds r0, 0xC4 - adds r3, r0 - movs r0, 0x1 - strb r0, [r3] - ldr r0, [sp, 0x38] - str r0, [sp, 0x10] - ldr r1, [sp, 0x20] - ldrb r1, [r1] - cmp r0, r1 - bge _08114104 - b _08114004 -_08114104: - movs r6, 0 - ldr r4, _08114164 @ =0x02014800 - ldr r2, [sp, 0x8] - ldr r3, _08114178 @ =0x02014804 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r6, r0 - bge _081141C4 - adds r7, r4, 0 - mov r9, r6 - movs r5, 0xC4 - adds r5, r7 - mov r8, r5 -_0811411E: - ldr r1, [sp, 0x8] - lsls r0, r1, 5 - adds r2, r6, r0 - ldr r3, _0811417C @ =0x000020c4 - adds r0, r7, r3 - adds r0, r2 - mov r10, r0 - ldr r5, _08114168 @ =0x000030c4 - adds r0, r7, r5 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, r10 - strb r0, [r1] - ldr r3, _08114180 @ =0x000028c4 - adds r0, r7, r3 - adds r3, r2, r0 - ldr r5, _08114170 @ =0x000038c4 - adds r0, r7, r5 - adds r0, r2, r0 - ldrb r0, [r0] - strb r0, [r3] - mov r0, r8 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _08114184 - mov r2, r9 - strb r2, [r1] - adds r0, r6, 0 - adds r1, r6, 0 - ldr r2, [sp, 0x8] - bl sub_81141F0 - b _081141B4 - .align 2, 0 -_08114164: .4byte 0x02014800 -_08114168: .4byte 0x000030c4 -_0811416C: .4byte 0x020168c4 -_08114170: .4byte 0x000038c4 -_08114174: .4byte 0x020170c4 -_08114178: .4byte 0x02014804 -_0811417C: .4byte 0x000020c4 -_08114180: .4byte 0x000028c4 -_08114184: - ldr r5, _081141E0 @ =0x000010c4 - adds r1, r4, r5 - adds r1, r2, r1 - ldr r5, _081141E4 @ =0x000018c4 - adds r0, r4, r5 - adds r0, r2, r0 - ldrb r0, [r0] - ldrb r2, [r1] - subs r0, r2 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r2, r0 - strb r2, [r3] - mov r0, r10 - strb r2, [r0] - ldrb r0, [r3] - subs r0, 0x1 - strb r0, [r3] - adds r0, r6, 0 - adds r1, r6, 0 - ldr r2, [sp, 0x8] - bl sub_81141F0 -_081141B4: - adds r6, 0x1 - ldr r4, _081141E8 @ =0x02014800 - ldr r1, [sp, 0x8] - ldr r2, _081141EC @ =0x02014804 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r6, r0 - blt _0811411E -_081141C4: - ldr r3, [sp, 0x30] - str r3, [sp, 0x8] - cmp r3, 0x3F - bgt _081141CE - b _08113E3A -_081141CE: - add sp, 0x3C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081141E0: .4byte 0x000010c4 -_081141E4: .4byte 0x000018c4 -_081141E8: .4byte 0x02014800 -_081141EC: .4byte 0x02014804 - thumb_func_end unref_sub_8113B50 - - thumb_func_start sub_81141F0 -sub_81141F0: @ 81141F0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - mov r8, r1 - mov r9, r2 - ldr r3, _0811424C @ =0x02014800 - lsls r1, r2, 5 - mov r0, r8 - adds r4, r0, r1 - ldr r5, _08114250 @ =0x000030c4 - adds r2, r3, r5 - adds r2, r4, r2 - adds r1, r6, r1 - ldr r7, _08114254 @ =0x000010c4 - adds r0, r3, r7 - adds r5, r1, r0 - ldrb r0, [r5] - strb r0, [r2] - ldr r0, _08114258 @ =0x000038c4 - adds r2, r3, r0 - adds r2, r4, r2 - ldr r7, _0811425C @ =0x000018c4 - adds r0, r3, r7 - adds r1, r0 - ldrb r0, [r1] - strb r0, [r2] - movs r7, 0 - ldr r1, _08114260 @ =0x000020c4 - adds r0, r3, r1 - adds r2, r4, r0 - ldrb r1, [r5] - ldrb r0, [r2] - mov r12, r3 - cmp r1, r0 - bcs _08114264 - mov r0, r12 - adds r0, 0xC4 - adds r0, r4, r0 - movs r1, 0x4 - strb r1, [r0] - ldrb r1, [r2] - ldrb r0, [r5] - b _08114276 - .align 2, 0 -_0811424C: .4byte 0x02014800 -_08114250: .4byte 0x000030c4 -_08114254: .4byte 0x000010c4 -_08114258: .4byte 0x000038c4 -_0811425C: .4byte 0x000018c4 -_08114260: .4byte 0x000020c4 -_08114264: - cmp r1, r0 - bls _08114278 - mov r0, r12 - adds r0, 0xC4 - adds r0, r4, r0 - movs r1, 0x1 - strb r1, [r0] - ldrb r1, [r5] - ldrb r0, [r2] -_08114276: - subs r7, r1, r0 -_08114278: - mov r5, r8 - lsls r3, r5, 1 - mov r0, r9 - lsls r4, r0, 6 - adds r0, r3, r4 - ldr r1, _081142BC @ =0x000080c4 - add r1, r12 - adds r0, r1 - lsls r1, r7, 4 - strh r1, [r0] - movs r7, 0 - mov r1, r9 - lsls r2, r1, 5 - adds r1, r6, r2 - ldr r0, _081142C0 @ =0x000018c4 - add r0, r12 - adds r6, r1, r0 - adds r1, r5, r2 - ldr r0, _081142C4 @ =0x000028c4 - add r0, r12 - adds r5, r1, r0 - ldrb r2, [r6] - ldrb r0, [r5] - cmp r2, r0 - bcs _081142CC - ldr r0, _081142C8 @ =0x000008c4 - add r0, r12 - adds r0, r1, r0 - movs r1, 0x3 - strb r1, [r0] - ldrb r1, [r5] - ldrb r0, [r6] - b _081142DE - .align 2, 0 -_081142BC: .4byte 0x000080c4 -_081142C0: .4byte 0x000018c4 -_081142C4: .4byte 0x000028c4 -_081142C8: .4byte 0x000008c4 -_081142CC: - cmp r2, r0 - bls _081142E0 - ldr r0, _08114304 @ =0x000008c4 - add r0, r12 - adds r0, r1, r0 - movs r1, 0x2 - strb r1, [r0] - ldrb r1, [r6] - ldrb r0, [r5] -_081142DE: - subs r7, r1, r0 -_081142E0: - adds r0, r3, r4 - ldr r1, _08114308 @ =0x000090c4 - add r1, r12 - adds r0, r1 - lsls r1, r7, 4 - strh r1, [r0] - mov r1, r12 - adds r1, 0x84 - add r1, r9 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08114304: .4byte 0x000008c4 -_08114308: .4byte 0x000090c4 - thumb_func_end sub_81141F0 - - thumb_func_start sub_811430C -sub_811430C: @ 811430C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r5, _081143AC @ =0x02014800 - lsls r4, r1, 5 - adds r4, r0, r4 - ldr r2, _081143B0 @ =0x000028c4 - adds r2, r5 - mov r10, r2 - add r10, r4 - mov r3, r10 - ldrb r2, [r3] - ldr r6, _081143B4 @ =0x000020c4 - adds r6, r5 - mov r8, r6 - add r8, r4 - mov r6, r8 - ldrb r3, [r6] - subs r7, r2, r3 - ldr r2, _081143B8 @ =0x000030c4 - adds r6, r5, r2 - adds r6, r4, r6 - ldr r2, _081143BC @ =0x000038c4 - adds r2, r5 - mov r9, r2 - add r9, r4 - lsrs r2, r7, 31 - adds r2, r7, r2 - asrs r2, 1 - adds r3, r2 - mov r2, r9 - strb r3, [r2] - strb r3, [r6] - adds r2, r5, 0 - adds r2, 0xC4 - adds r2, r4, r2 - movs r3, 0x5 - strb r3, [r2] - ldr r3, _081143C0 @ =0x000008c4 - adds r2, r5, r3 - adds r4, r2 - movs r2, 0x7 - strb r2, [r4] - adds r3, r5, 0 - adds r3, 0x84 - adds r3, r1, r3 - ldrb r2, [r3] - adds r2, 0x1 - strb r2, [r3] - ldrb r3, [r6] - mov r4, r8 - ldrb r2, [r4] - subs r7, r3, r2 - lsls r0, 1 - lsls r1, 6 - adds r0, r1 - ldr r6, _081143C4 @ =0x000080c4 - adds r1, r5, r6 - adds r1, r0, r1 - lsls r2, r7, 4 - strh r2, [r1] - mov r1, r10 - ldrb r2, [r1] - mov r3, r9 - ldrb r1, [r3] - subs r7, r2, r1 - ldr r4, _081143C8 @ =0x000090c4 - adds r5, r4 - adds r0, r5 - lsls r1, r7, 4 - strh r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081143AC: .4byte 0x02014800 -_081143B0: .4byte 0x000028c4 -_081143B4: .4byte 0x000020c4 -_081143B8: .4byte 0x000030c4 -_081143BC: .4byte 0x000038c4 -_081143C0: .4byte 0x000008c4 -_081143C4: .4byte 0x000080c4 -_081143C8: .4byte 0x000090c4 - thumb_func_end sub_811430C - - thumb_func_start unref_sub_81143CC -unref_sub_81143CC: @ 81143CC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - movs r0, 0x1 - str r0, [sp, 0x4] - ldr r0, _08114408 @ =0x02014800 - ldr r2, _0811440C @ =0x0000a0c4 - adds r1, r0, r2 - ldrb r3, [r1] - adds r4, r0, 0 - cmp r3, 0 - beq _081143EE - subs r0, r3, 0x1 - strb r0, [r1] -_081143EE: - movs r5, 0 - str r5, [sp] -_081143F2: - movs r3, 0 - adds r2, r4, 0 - adds r0, r4, 0 - adds r0, 0x84 - ldr r1, [sp] - adds r0, r1, r0 - adds r1, 0x1 - str r1, [sp, 0x8] - bl _08114D84 - .align 2, 0 -_08114408: .4byte 0x02014800 -_0811440C: .4byte 0x0000a0c4 -_08114410: - ldr r5, [sp] - lsls r0, r5, 5 - adds r1, r3, r0 - adds r2, 0xC4 - adds r1, r2 - ldrb r2, [r1] - mov r8, r0 - adds r0, r3, 0x1 - mov r10, r0 - cmp r2, 0xC - bls _08114428 - b _081148D2 -_08114428: - lsls r0, r2, 2 - ldr r1, _08114434 @ =_08114438 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08114434: .4byte _08114438 - .align 2, 0 -_08114438: - .4byte _081148D2 - .4byte _0811446C - .4byte _081144F0 - .4byte _0811457C - .4byte _08114600 - .4byte _0811468C - .4byte _081146C8 - .4byte _08114704 - .4byte _08114740 - .4byte _0811477C - .4byte _081147D0 - .4byte _08114810 - .4byte _08114858 -_0811446C: - movs r1, 0 - str r1, [sp, 0x4] - lsls r0, r3, 1 - ldr r2, [sp] - lsls r1, r2, 6 - adds r0, r1 - ldr r5, _081144E0 @ =0x000060c4 - adds r2, r4, r5 - adds r2, r0, r2 - ldr r5, _081144E4 @ =0x000080c4 - adds r1, r4, r5 - adds r0, r1 - ldrh r1, [r0] - ldrh r0, [r2] - adds r1, r0 - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r5, r0, 8 - movs r0, 0xFF - ands r1, r0 - strh r1, [r2] - movs r6, 0 - adds r1, r3, 0x1 - mov r10, r1 - ldr r2, [sp, 0x4] - cmp r2, r5 - blt _081144A6 - b _081148D2 -_081144A6: - mov r9, r4 - mov r4, r8 - adds r7, r3, r4 - ldr r0, _081144E8 @ =0x000030c4 - add r0, r9 - adds r4, r7, r0 - ldr r0, _081144EC @ =0x000020c4 - add r0, r9 - adds r2, r7, r0 -_081144B8: - ldrb r0, [r4] - subs r0, 0x1 - strb r0, [r4] - ldrb r1, [r4] - ldr r0, [sp] - str r2, [sp, 0xC] - str r3, [sp, 0x10] - bl sub_8114DB4 - ldrb r0, [r4] - ldr r2, [sp, 0xC] - ldr r3, [sp, 0x10] - ldrb r1, [r2] - cmp r0, r1 - bne _081144D8 - b _081148A0 -_081144D8: - adds r6, 0x1 - cmp r6, r5 - blt _081144B8 - b _081148D2 - .align 2, 0 -_081144E0: .4byte 0x000060c4 -_081144E4: .4byte 0x000080c4 -_081144E8: .4byte 0x000030c4 -_081144EC: .4byte 0x000020c4 -_081144F0: - movs r2, 0 - str r2, [sp, 0x4] - ldr r4, _08114568 @ =0x02014800 - lsls r0, r3, 1 - ldr r5, [sp] - lsls r1, r5, 6 - adds r0, r1 - ldr r1, _0811456C @ =0x000060c4 - adds r2, r4, r1 - adds r2, r0, r2 - ldr r5, _08114570 @ =0x000080c4 - adds r1, r4, r5 - adds r0, r1 - ldrh r1, [r0] - ldrh r0, [r2] - adds r1, r0 - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r5, r0, 8 - movs r0, 0xFF - ands r1, r0 - strh r1, [r2] - movs r6, 0 - adds r1, r3, 0x1 - mov r10, r1 - ldr r2, [sp, 0x4] - cmp r2, r5 - blt _0811452C - b _081148D2 -_0811452C: - mov r9, r4 - mov r4, r8 - adds r7, r3, r4 - ldr r0, _08114574 @ =0x000030c4 - add r0, r9 - adds r4, r7, r0 - ldr r0, _08114578 @ =0x000020c4 - add r0, r9 - adds r2, r7, r0 -_0811453E: - ldrb r0, [r4] - ldrb r1, [r2] - cmp r0, r1 - bne _08114548 - b _081148B8 -_08114548: - adds r1, r0, 0 - ldr r0, [sp] - str r2, [sp, 0xC] - str r3, [sp, 0x10] - bl sub_8114DF0 - ldrb r0, [r4] - subs r0, 0x1 - strb r0, [r4] - adds r6, 0x1 - ldr r2, [sp, 0xC] - ldr r3, [sp, 0x10] - cmp r6, r5 - blt _0811453E - b _081148D2 - .align 2, 0 -_08114568: .4byte 0x02014800 -_0811456C: .4byte 0x000060c4 -_08114570: .4byte 0x000080c4 -_08114574: .4byte 0x000030c4 -_08114578: .4byte 0x000020c4 -_0811457C: - movs r2, 0 - str r2, [sp, 0x4] - lsls r0, r3, 1 - ldr r5, [sp] - lsls r1, r5, 6 - adds r0, r1 - ldr r1, _081145F0 @ =0x000060c4 - adds r2, r4, r1 - adds r2, r0, r2 - ldr r5, _081145F4 @ =0x000080c4 - adds r1, r4, r5 - adds r0, r1 - ldrh r1, [r0] - ldrh r0, [r2] - adds r1, r0 - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r5, r0, 8 - movs r0, 0xFF - ands r1, r0 - strh r1, [r2] - movs r6, 0 - adds r1, r3, 0x1 - mov r10, r1 - ldr r2, [sp, 0x4] - cmp r2, r5 - blt _081145B6 - b _081148D2 -_081145B6: - mov r9, r4 - mov r4, r8 - adds r7, r3, r4 - ldr r0, _081145F8 @ =0x000030c4 - add r0, r9 - adds r4, r7, r0 - ldr r0, _081145FC @ =0x000020c4 - add r0, r9 - adds r2, r7, r0 -_081145C8: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldrb r1, [r4] - ldr r0, [sp] - str r2, [sp, 0xC] - str r3, [sp, 0x10] - bl sub_8114DB4 - ldrb r0, [r4] - ldr r2, [sp, 0xC] - ldr r3, [sp, 0x10] - ldrb r1, [r2] - cmp r0, r1 - bne _081145E8 - b _081148AC -_081145E8: - adds r6, 0x1 - cmp r6, r5 - blt _081145C8 - b _081148D2 - .align 2, 0 -_081145F0: .4byte 0x000060c4 -_081145F4: .4byte 0x000080c4 -_081145F8: .4byte 0x000030c4 -_081145FC: .4byte 0x000020c4 -_08114600: - movs r2, 0 - str r2, [sp, 0x4] - ldr r4, _08114678 @ =0x02014800 - lsls r0, r3, 1 - ldr r5, [sp] - lsls r1, r5, 6 - adds r0, r1 - ldr r1, _0811467C @ =0x000060c4 - adds r2, r4, r1 - adds r2, r0, r2 - ldr r5, _08114680 @ =0x000080c4 - adds r1, r4, r5 - adds r0, r1 - ldrh r1, [r0] - ldrh r0, [r2] - adds r1, r0 - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r5, r0, 8 - movs r0, 0xFF - ands r1, r0 - strh r1, [r2] - movs r6, 0 - adds r1, r3, 0x1 - mov r10, r1 - ldr r2, [sp, 0x4] - cmp r2, r5 - blt _0811463C - b _081148D2 -_0811463C: - mov r9, r4 - mov r4, r8 - adds r7, r3, r4 - ldr r0, _08114684 @ =0x000030c4 - add r0, r9 - adds r4, r7, r0 - ldr r0, _08114688 @ =0x000020c4 - add r0, r9 - adds r2, r7, r0 -_0811464E: - ldrb r0, [r4] - ldrb r1, [r2] - cmp r0, r1 - bne _08114658 - b _081148B8 -_08114658: - adds r1, r0, 0 - ldr r0, [sp] - str r2, [sp, 0xC] - str r3, [sp, 0x10] - bl sub_8114DF0 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - adds r6, 0x1 - ldr r2, [sp, 0xC] - ldr r3, [sp, 0x10] - cmp r6, r5 - blt _0811464E - b _081148D2 - .align 2, 0 -_08114678: .4byte 0x02014800 -_0811467C: .4byte 0x000060c4 -_08114680: .4byte 0x000080c4 -_08114684: .4byte 0x000030c4 -_08114688: .4byte 0x000020c4 -_0811468C: - movs r2, 0 - str r2, [sp, 0x4] - ldr r5, _081146C0 @ =0x02014800 - mov r0, r8 - adds r4, r3, r0 - ldr r1, _081146C4 @ =0x000030c4 - adds r0, r5, r1 - adds r0, r4, r0 - ldrb r1, [r0] - ldr r0, [sp] - str r3, [sp, 0x10] - bl sub_8114E48 - lsls r0, 24 - ldr r3, [sp, 0x10] - adds r2, r3, 0x1 - mov r10, r2 - cmp r0, 0 - bne _081146B4 - b _081148D2 -_081146B4: - adds r0, r5, 0 - adds r0, 0xC4 - adds r0, r4, r0 - movs r1, 0x9 - strb r1, [r0] - b _081148D2 - .align 2, 0 -_081146C0: .4byte 0x02014800 -_081146C4: .4byte 0x000030c4 -_081146C8: - movs r4, 0 - str r4, [sp, 0x4] - ldr r5, _081146FC @ =0x02014800 - mov r0, r8 - adds r4, r3, r0 - ldr r1, _08114700 @ =0x000030c4 - adds r0, r5, r1 - adds r0, r4, r0 - ldrb r1, [r0] - ldr r0, [sp] - str r3, [sp, 0x10] - bl sub_8114E48 - lsls r0, 24 - ldr r3, [sp, 0x10] - adds r2, r3, 0x1 - mov r10, r2 - cmp r0, 0 - bne _081146F0 - b _081148D2 -_081146F0: - adds r0, r5, 0 - adds r0, 0xC4 - adds r0, r4, r0 - movs r1, 0xA - strb r1, [r0] - b _081148D2 - .align 2, 0 -_081146FC: .4byte 0x02014800 -_08114700: .4byte 0x000030c4 -_08114704: - movs r4, 0 - str r4, [sp, 0x4] - ldr r5, _08114738 @ =0x02014800 - mov r0, r8 - adds r4, r3, r0 - ldr r1, _0811473C @ =0x000030c4 - adds r0, r5, r1 - adds r0, r4, r0 - ldrb r1, [r0] - ldr r0, [sp] - str r3, [sp, 0x10] - bl sub_8114E48 - lsls r0, 24 - ldr r3, [sp, 0x10] - adds r2, r3, 0x1 - mov r10, r2 - cmp r0, 0 - bne _0811472C - b _081148D2 -_0811472C: - adds r0, r5, 0 - adds r0, 0xC4 - adds r0, r4, r0 - movs r1, 0xB - strb r1, [r0] - b _081148D2 - .align 2, 0 -_08114738: .4byte 0x02014800 -_0811473C: .4byte 0x000030c4 -_08114740: - movs r4, 0 - str r4, [sp, 0x4] - ldr r5, _08114774 @ =0x02014800 - mov r0, r8 - adds r4, r3, r0 - ldr r1, _08114778 @ =0x000030c4 - adds r0, r5, r1 - adds r0, r4, r0 - ldrb r1, [r0] - ldr r0, [sp] - str r3, [sp, 0x10] - bl sub_8114E48 - lsls r0, 24 - ldr r3, [sp, 0x10] - adds r2, r3, 0x1 - mov r10, r2 - cmp r0, 0 - bne _08114768 - b _081148D2 -_08114768: - adds r0, r5, 0 - adds r0, 0xC4 - adds r0, r4, r0 - movs r1, 0xC - strb r1, [r0] - b _081148D2 - .align 2, 0 -_08114774: .4byte 0x02014800 -_08114778: .4byte 0x000030c4 -_0811477C: - movs r4, 0 - str r4, [sp, 0x4] - ldr r6, _081147B4 @ =0x02014800 - mov r0, r8 - adds r5, r3, r0 - ldr r1, _081147B8 @ =0x000030c4 - adds r4, r6, r1 - adds r4, r5, r4 - ldrb r1, [r4] - ldr r0, [sp] - str r3, [sp, 0x10] - bl sub_8114DB4 - ldr r2, _081147BC @ =0x000020c4 - adds r0, r6, r2 - adds r0, r5, r0 - ldrb r1, [r4] - ldr r3, [sp, 0x10] - ldrb r0, [r0] - cmp r1, r0 - bne _081147C0 - adds r0, r6, 0 - adds r0, 0xC4 - adds r0, r5, r0 - mov r4, sp - ldrb r4, [r4, 0x4] - strb r4, [r0] - b _08114844 - .align 2, 0 -_081147B4: .4byte 0x02014800 -_081147B8: .4byte 0x000030c4 -_081147BC: .4byte 0x000020c4 -_081147C0: - adds r0, r6, 0 - adds r0, 0xC4 - adds r0, r5, r0 - movs r1, 0x1 - strb r1, [r0] - adds r0, r3, 0x1 - mov r10, r0 - b _081148D2 -_081147D0: - movs r1, 0 - str r1, [sp, 0x4] - ldr r6, _08114804 @ =0x02014800 - mov r2, r8 - adds r5, r3, r2 - ldr r0, _08114808 @ =0x000030c4 - adds r4, r6, r0 - adds r4, r5, r4 - ldrb r1, [r4] - ldr r0, [sp] - str r3, [sp, 0x10] - bl sub_8114DF0 - ldr r1, _0811480C @ =0x000020c4 - adds r0, r6, r1 - adds r0, r5, r0 - ldrb r1, [r4] - ldr r3, [sp, 0x10] - ldrb r0, [r0] - cmp r1, r0 - beq _08114882 - adds r0, r6, 0 - adds r0, 0xC4 - adds r0, r5, r0 - movs r1, 0x2 - b _08114842 - .align 2, 0 -_08114804: .4byte 0x02014800 -_08114808: .4byte 0x000030c4 -_0811480C: .4byte 0x000020c4 -_08114810: - movs r0, 0 - str r0, [sp, 0x4] - ldr r6, _0811484C @ =0x02014800 - mov r1, r8 - adds r5, r3, r1 - ldr r2, _08114850 @ =0x000030c4 - adds r4, r6, r2 - adds r4, r5, r4 - ldrb r1, [r4] - ldr r0, [sp] - str r3, [sp, 0x10] - bl sub_8114DB4 - ldr r1, _08114854 @ =0x000020c4 - adds r0, r6, r1 - adds r0, r5, r0 - ldrb r1, [r4] - ldr r3, [sp, 0x10] - ldrb r0, [r0] - cmp r1, r0 - beq _08114882 - adds r0, r6, 0 - adds r0, 0xC4 - adds r0, r5, r0 - movs r1, 0x3 -_08114842: - strb r1, [r0] -_08114844: - adds r5, r3, 0x1 - mov r10, r5 - b _081148D2 - .align 2, 0 -_0811484C: .4byte 0x02014800 -_08114850: .4byte 0x000030c4 -_08114854: .4byte 0x000020c4 -_08114858: - movs r0, 0 - str r0, [sp, 0x4] - ldr r6, _08114894 @ =0x02014800 - mov r1, r8 - adds r5, r3, r1 - ldr r2, _08114898 @ =0x000030c4 - adds r4, r6, r2 - adds r4, r5, r4 - ldrb r1, [r4] - ldr r0, [sp] - str r3, [sp, 0x10] - bl sub_8114DF0 - ldr r1, _0811489C @ =0x000020c4 - adds r0, r6, r1 - adds r0, r5, r0 - ldrb r1, [r4] - ldr r3, [sp, 0x10] - ldrb r0, [r0] - cmp r1, r0 - bne _081148C4 -_08114882: - adds r0, r6, 0 - adds r0, 0xC4 - adds r0, r5, r0 - mov r2, sp - ldrb r2, [r2, 0x4] - strb r2, [r0] - adds r4, r3, 0x1 - mov r10, r4 - b _081148D2 - .align 2, 0 -_08114894: .4byte 0x02014800 -_08114898: .4byte 0x000030c4 -_0811489C: .4byte 0x000020c4 -_081148A0: - mov r0, r9 - adds r0, 0xC4 - adds r0, r7, r0 - movs r5, 0 - strb r5, [r0] - b _081148D2 -_081148AC: - mov r0, r9 - adds r0, 0xC4 - adds r0, r7, r0 - movs r1, 0 - strb r1, [r0] - b _081148D2 -_081148B8: - mov r0, r9 - adds r0, 0xC4 - adds r0, r7, r0 - movs r1, 0 - strb r1, [r0] - b _081148D2 -_081148C4: - adds r0, r6, 0 - adds r0, 0xC4 - adds r0, r5, r0 - movs r1, 0x4 - strb r1, [r0] - adds r2, r3, 0x1 - mov r10, r2 -_081148D2: - ldr r0, _081148F4 @ =0x02014800 - mov r4, r8 - adds r1, r3, r4 - ldr r5, _081148F8 @ =0x000008c4 - adds r2, r0, r5 - adds r1, r2 - ldrb r1, [r1] - adds r4, r0, 0 - cmp r1, 0xC - bls _081148E8 - b _08114D76 -_081148E8: - lsls r0, r1, 2 - ldr r1, _081148FC @ =_08114900 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081148F4: .4byte 0x02014800 -_081148F8: .4byte 0x000008c4 -_081148FC: .4byte _08114900 - .align 2, 0 -_08114900: - .4byte _08114D76 - .4byte _08114934 - .4byte _081149B8 - .4byte _08114A3C - .4byte _08114AC0 - .4byte _08114B44 - .4byte _08114B7C - .4byte _08114BB4 - .4byte _08114BEC - .4byte _08114C24 - .4byte _08114C78 - .4byte _08114CB8 - .4byte _08114CF8 -_08114934: - movs r0, 0 - str r0, [sp, 0x4] - lsls r0, r3, 1 - ldr r2, [sp] - lsls r1, r2, 6 - adds r0, r1 - ldr r5, _081149A8 @ =0x000070c4 - adds r2, r4, r5 - adds r2, r0, r2 - ldr r5, _081149AC @ =0x000090c4 - adds r1, r4, r5 - adds r0, r1 - ldrh r1, [r0] - ldrh r0, [r2] - adds r1, r0 - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r5, r0, 8 - movs r0, 0xFF - ands r1, r0 - strh r1, [r2] - movs r6, 0 - ldr r1, [sp, 0x4] - cmp r1, r5 - blt _0811496A - b _08114D76 -_0811496A: - mov r9, r4 - mov r2, r8 - adds r7, r3, r2 - ldr r0, _081149B0 @ =0x000038c4 - add r0, r9 - adds r4, r7, r0 - movs r3, 0 - ldr r0, _081149B4 @ =0x000028c4 - add r0, r9 - adds r2, r7, r0 -_0811497E: - ldrb r0, [r4] - subs r0, 0x1 - strb r0, [r4] - ldrb r1, [r4] - ldr r0, [sp] - str r2, [sp, 0xC] - str r3, [sp, 0x10] - bl sub_8114DB4 - ldrb r0, [r4] - ldr r2, [sp, 0xC] - ldr r3, [sp, 0x10] - ldrb r1, [r2] - cmp r0, r1 - bne _0811499E - b _08114D4C -_0811499E: - adds r6, 0x1 - cmp r6, r5 - blt _0811497E - b _08114D76 - .align 2, 0 -_081149A8: .4byte 0x000070c4 -_081149AC: .4byte 0x000090c4 -_081149B0: .4byte 0x000038c4 -_081149B4: .4byte 0x000028c4 -_081149B8: - movs r2, 0 - str r2, [sp, 0x4] - ldr r4, _08114A28 @ =0x02014800 - lsls r0, r3, 1 - ldr r5, [sp] - lsls r1, r5, 6 - adds r0, r1 - ldr r1, _08114A2C @ =0x000070c4 - adds r2, r4, r1 - adds r2, r0, r2 - ldr r5, _08114A30 @ =0x000090c4 - adds r1, r4, r5 - adds r0, r1 - ldrh r1, [r0] - ldrh r0, [r2] - adds r1, r0 - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r5, r0, 8 - movs r0, 0xFF - ands r1, r0 - strh r1, [r2] - movs r6, 0 - ldr r1, [sp, 0x4] - cmp r1, r5 - blt _081149F0 - b _08114D76 -_081149F0: - mov r9, r4 - mov r2, r8 - adds r7, r3, r2 - ldr r0, _08114A34 @ =0x000038c4 - add r0, r9 - adds r4, r7, r0 - ldr r0, _08114A38 @ =0x000028c4 - add r0, r9 - adds r2, r7, r0 -_08114A02: - ldrb r0, [r4] - ldrb r1, [r2] - cmp r0, r1 - bne _08114A0C - b _08114D3C -_08114A0C: - adds r1, r0, 0 - ldr r0, [sp] - str r2, [sp, 0xC] - bl sub_8114DF0 - ldrb r0, [r4] - subs r0, 0x1 - strb r0, [r4] - adds r6, 0x1 - ldr r2, [sp, 0xC] - cmp r6, r5 - blt _08114A02 - b _08114D76 - .align 2, 0 -_08114A28: .4byte 0x02014800 -_08114A2C: .4byte 0x000070c4 -_08114A30: .4byte 0x000090c4 -_08114A34: .4byte 0x000038c4 -_08114A38: .4byte 0x000028c4 -_08114A3C: - movs r2, 0 - str r2, [sp, 0x4] - lsls r0, r3, 1 - ldr r5, [sp] - lsls r1, r5, 6 - adds r0, r1 - ldr r1, _08114AB0 @ =0x000070c4 - adds r2, r4, r1 - adds r2, r0, r2 - ldr r5, _08114AB4 @ =0x000090c4 - adds r1, r4, r5 - adds r0, r1 - ldrh r1, [r0] - ldrh r0, [r2] - adds r1, r0 - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r5, r0, 8 - movs r0, 0xFF - ands r1, r0 - strh r1, [r2] - movs r6, 0 - ldr r1, [sp, 0x4] - cmp r1, r5 - blt _08114A72 - b _08114D76 -_08114A72: - mov r9, r4 - mov r2, r8 - adds r7, r3, r2 - ldr r0, _08114AB8 @ =0x000038c4 - add r0, r9 - adds r4, r7, r0 - movs r3, 0 - ldr r0, _08114ABC @ =0x000028c4 - add r0, r9 - adds r2, r7, r0 -_08114A86: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldrb r1, [r4] - ldr r0, [sp] - str r2, [sp, 0xC] - str r3, [sp, 0x10] - bl sub_8114DB4 - ldrb r0, [r4] - ldr r2, [sp, 0xC] - ldr r3, [sp, 0x10] - ldrb r1, [r2] - cmp r0, r1 - bne _08114AA6 - b _08114D4C -_08114AA6: - adds r6, 0x1 - cmp r6, r5 - blt _08114A86 - b _08114D76 - .align 2, 0 -_08114AB0: .4byte 0x000070c4 -_08114AB4: .4byte 0x000090c4 -_08114AB8: .4byte 0x000038c4 -_08114ABC: .4byte 0x000028c4 -_08114AC0: - movs r2, 0 - str r2, [sp, 0x4] - ldr r4, _08114B30 @ =0x02014800 - lsls r0, r3, 1 - ldr r5, [sp] - lsls r1, r5, 6 - adds r0, r1 - ldr r1, _08114B34 @ =0x000070c4 - adds r2, r4, r1 - adds r2, r0, r2 - ldr r5, _08114B38 @ =0x000090c4 - adds r1, r4, r5 - adds r0, r1 - ldrh r1, [r0] - ldrh r0, [r2] - adds r1, r0 - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r5, r0, 8 - movs r0, 0xFF - ands r1, r0 - strh r1, [r2] - movs r6, 0 - ldr r1, [sp, 0x4] - cmp r1, r5 - blt _08114AF8 - b _08114D76 -_08114AF8: - mov r9, r4 - mov r2, r8 - adds r7, r3, r2 - ldr r0, _08114B3C @ =0x000038c4 - add r0, r9 - adds r4, r7, r0 - ldr r0, _08114B40 @ =0x000028c4 - add r0, r9 - adds r2, r7, r0 -_08114B0A: - ldrb r0, [r4] - ldrb r1, [r2] - cmp r0, r1 - bne _08114B14 - b _08114D5C -_08114B14: - adds r1, r0, 0 - ldr r0, [sp] - str r2, [sp, 0xC] - bl sub_8114DF0 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - adds r6, 0x1 - ldr r2, [sp, 0xC] - cmp r6, r5 - blt _08114B0A - b _08114D76 - .align 2, 0 -_08114B30: .4byte 0x02014800 -_08114B34: .4byte 0x000070c4 -_08114B38: .4byte 0x000090c4 -_08114B3C: .4byte 0x000038c4 -_08114B40: .4byte 0x000028c4 -_08114B44: - movs r2, 0 - str r2, [sp, 0x4] - ldr r5, _08114B70 @ =0x02014800 - mov r0, r8 - adds r4, r3, r0 - ldr r1, _08114B74 @ =0x000038c4 - adds r0, r5, r1 - adds r0, r4, r0 - ldrb r1, [r0] - ldr r0, [sp] - bl sub_8114E48 - lsls r0, 24 - cmp r0, 0 - bne _08114B64 - b _08114D76 -_08114B64: - ldr r2, _08114B78 @ =0x000008c4 - adds r0, r5, r2 - adds r0, r4, r0 - movs r1, 0x9 - b _08114D74 - .align 2, 0 -_08114B70: .4byte 0x02014800 -_08114B74: .4byte 0x000038c4 -_08114B78: .4byte 0x000008c4 -_08114B7C: - movs r4, 0 - str r4, [sp, 0x4] - ldr r5, _08114BA8 @ =0x02014800 - mov r0, r8 - adds r4, r3, r0 - ldr r1, _08114BAC @ =0x000038c4 - adds r0, r5, r1 - adds r0, r4, r0 - ldrb r1, [r0] - ldr r0, [sp] - bl sub_8114E48 - lsls r0, 24 - cmp r0, 0 - bne _08114B9C - b _08114D76 -_08114B9C: - ldr r2, _08114BB0 @ =0x000008c4 - adds r0, r5, r2 - adds r0, r4, r0 - movs r1, 0xA - b _08114D74 - .align 2, 0 -_08114BA8: .4byte 0x02014800 -_08114BAC: .4byte 0x000038c4 -_08114BB0: .4byte 0x000008c4 -_08114BB4: - movs r4, 0 - str r4, [sp, 0x4] - ldr r5, _08114BE0 @ =0x02014800 - mov r0, r8 - adds r4, r3, r0 - ldr r1, _08114BE4 @ =0x000038c4 - adds r0, r5, r1 - adds r0, r4, r0 - ldrb r1, [r0] - ldr r0, [sp] - bl sub_8114E48 - lsls r0, 24 - cmp r0, 0 - bne _08114BD4 - b _08114D76 -_08114BD4: - ldr r2, _08114BE8 @ =0x000008c4 - adds r0, r5, r2 - adds r0, r4, r0 - movs r1, 0xB - b _08114D74 - .align 2, 0 -_08114BE0: .4byte 0x02014800 -_08114BE4: .4byte 0x000038c4 -_08114BE8: .4byte 0x000008c4 -_08114BEC: - movs r4, 0 - str r4, [sp, 0x4] - ldr r5, _08114C18 @ =0x02014800 - mov r0, r8 - adds r4, r3, r0 - ldr r1, _08114C1C @ =0x000038c4 - adds r0, r5, r1 - adds r0, r4, r0 - ldrb r1, [r0] - ldr r0, [sp] - bl sub_8114E48 - lsls r0, 24 - cmp r0, 0 - bne _08114C0C - b _08114D76 -_08114C0C: - ldr r2, _08114C20 @ =0x000008c4 - adds r0, r5, r2 - adds r0, r4, r0 - movs r1, 0xC - b _08114D74 - .align 2, 0 -_08114C18: .4byte 0x02014800 -_08114C1C: .4byte 0x000038c4 -_08114C20: .4byte 0x000008c4 -_08114C24: - movs r4, 0 - str r4, [sp, 0x4] - ldr r6, _08114C58 @ =0x02014800 - mov r0, r8 - adds r5, r3, r0 - ldr r1, _08114C5C @ =0x000038c4 - adds r4, r6, r1 - adds r4, r5, r4 - ldrb r1, [r4] - ldr r0, [sp] - bl sub_8114DB4 - ldr r2, _08114C60 @ =0x000028c4 - adds r0, r6, r2 - adds r0, r5, r0 - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - bne _08114C68 - ldr r4, _08114C64 @ =0x000008c4 - adds r0, r6, r4 - adds r0, r5, r0 - mov r5, sp - ldrb r5, [r5, 0x4] - strb r5, [r0] - b _08114D76 - .align 2, 0 -_08114C58: .4byte 0x02014800 -_08114C5C: .4byte 0x000038c4 -_08114C60: .4byte 0x000028c4 -_08114C64: .4byte 0x000008c4 -_08114C68: - ldr r1, _08114C74 @ =0x000008c4 - adds r0, r6, r1 - adds r0, r5, r0 - movs r1, 0x1 - b _08114D74 - .align 2, 0 -_08114C74: .4byte 0x000008c4 -_08114C78: - movs r2, 0 - str r2, [sp, 0x4] - ldr r6, _08114CA8 @ =0x02014800 - mov r4, r8 - adds r5, r3, r4 - ldr r0, _08114CAC @ =0x000038c4 - adds r4, r6, r0 - adds r4, r5, r4 - ldrb r1, [r4] - ldr r0, [sp] - bl sub_8114DF0 - ldr r1, _08114CB0 @ =0x000028c4 - adds r0, r6, r1 - adds r0, r5, r0 - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - beq _08114D1E - ldr r1, _08114CB4 @ =0x000008c4 - adds r0, r6, r1 - adds r0, r5, r0 - movs r1, 0x2 - b _08114D74 - .align 2, 0 -_08114CA8: .4byte 0x02014800 -_08114CAC: .4byte 0x000038c4 -_08114CB0: .4byte 0x000028c4 -_08114CB4: .4byte 0x000008c4 -_08114CB8: - movs r2, 0 - str r2, [sp, 0x4] - ldr r6, _08114CE8 @ =0x02014800 - mov r4, r8 - adds r5, r3, r4 - ldr r0, _08114CEC @ =0x000038c4 - adds r4, r6, r0 - adds r4, r5, r4 - ldrb r1, [r4] - ldr r0, [sp] - bl sub_8114DB4 - ldr r1, _08114CF0 @ =0x000028c4 - adds r0, r6, r1 - adds r0, r5, r0 - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - beq _08114D1E - ldr r1, _08114CF4 @ =0x000008c4 - adds r0, r6, r1 - adds r0, r5, r0 - movs r1, 0x3 - b _08114D74 - .align 2, 0 -_08114CE8: .4byte 0x02014800 -_08114CEC: .4byte 0x000038c4 -_08114CF0: .4byte 0x000028c4 -_08114CF4: .4byte 0x000008c4 -_08114CF8: - movs r2, 0 - str r2, [sp, 0x4] - ldr r6, _08114D2C @ =0x02014800 - mov r4, r8 - adds r5, r3, r4 - ldr r0, _08114D30 @ =0x000038c4 - adds r4, r6, r0 - adds r4, r5, r4 - ldrb r1, [r4] - ldr r0, [sp] - bl sub_8114DF0 - ldr r1, _08114D34 @ =0x000028c4 - adds r0, r6, r1 - adds r0, r5, r0 - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - bne _08114D6C -_08114D1E: - ldr r2, _08114D38 @ =0x000008c4 - adds r0, r6, r2 - adds r0, r5, r0 - mov r4, sp - ldrb r4, [r4, 0x4] - strb r4, [r0] - b _08114D76 - .align 2, 0 -_08114D2C: .4byte 0x02014800 -_08114D30: .4byte 0x000038c4 -_08114D34: .4byte 0x000028c4 -_08114D38: .4byte 0x000008c4 -_08114D3C: - ldr r0, _08114D48 @ =0x000008c4 - add r0, r9 - adds r0, r7, r0 - movs r1, 0 - b _08114D74 - .align 2, 0 -_08114D48: .4byte 0x000008c4 -_08114D4C: - ldr r0, _08114D58 @ =0x000008c4 - add r0, r9 - adds r0, r7, r0 - strb r3, [r0] - b _08114D76 - .align 2, 0 -_08114D58: .4byte 0x000008c4 -_08114D5C: - ldr r0, _08114D68 @ =0x000008c4 - add r0, r9 - adds r0, r7, r0 - movs r1, 0 - b _08114D74 - .align 2, 0 -_08114D68: .4byte 0x000008c4 -_08114D6C: - ldr r1, _08114DAC @ =0x000008c4 - adds r0, r6, r1 - adds r0, r5, r0 - movs r1, 0x4 -_08114D74: - strb r1, [r0] -_08114D76: - mov r3, r10 - ldr r2, _08114DB0 @ =0x02014800 - adds r0, r2, 0 - adds r0, 0x84 - ldr r4, [sp] - adds r0, r4, r0 - adds r4, r2, 0 -_08114D84: - ldrb r0, [r0] - cmp r3, r0 - bge _08114D8E - bl _08114410 -_08114D8E: - ldr r5, [sp, 0x8] - str r5, [sp] - cmp r5, 0x3F - bgt _08114D9A - bl _081143F2 -_08114D9A: - ldr r0, [sp, 0x4] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08114DAC: .4byte 0x000008c4 -_08114DB0: .4byte 0x02014800 - thumb_func_end unref_sub_81143CC - - thumb_func_start sub_8114DB4 -sub_8114DB4: @ 8114DB4 - push {lr} - lsls r1, 24 - lsrs r3, r1, 24 - ldr r2, _08114DDC @ =0x02014800 - lsrs r1, 25 - lsls r1, 2 - lsls r0, 7 - adds r1, r0 - ldr r0, _08114DE0 @ =0x000040c4 - adds r2, r0 - adds r1, r2 - ldr r2, [r1] - movs r0, 0x1 - ands r3, r0 - cmp r3, 0 - beq _08114DE4 - ldrb r0, [r2] - movs r1, 0xF0 - b _08114DE8 - .align 2, 0 -_08114DDC: .4byte 0x02014800 -_08114DE0: .4byte 0x000040c4 -_08114DE4: - ldrb r0, [r2] - movs r1, 0xF -_08114DE8: - orrs r0, r1 - strb r0, [r2] - pop {r0} - bx r0 - thumb_func_end sub_8114DB4 - - thumb_func_start sub_8114DF0 -sub_8114DF0: @ 8114DF0 - push {lr} - lsls r1, 24 - lsrs r3, r1, 24 - ldr r2, _08114E28 @ =0x02014800 - lsrs r1, 25 - lsls r1, 2 - lsls r0, 7 - adds r1, r0 - ldr r0, _08114E2C @ =0x000040c4 - adds r2, r0 - adds r1, r2 - ldr r2, [r1] - movs r0, 0xC0 - lsls r0, 7 - adds r1, r2, r0 - movs r0, 0x1 - ands r3, r0 - cmp r3, 0 - beq _08114E30 - ldrb r1, [r1] - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0 - bne _08114E42 - ldrb r1, [r2] - movs r0, 0xF - b _08114E3E - .align 2, 0 -_08114E28: .4byte 0x02014800 -_08114E2C: .4byte 0x000040c4 -_08114E30: - ldrb r1, [r1] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _08114E42 - ldrb r1, [r2] - movs r0, 0xF0 -_08114E3E: - ands r0, r1 - strb r0, [r2] -_08114E42: - pop {r0} - bx r0 - thumb_func_end sub_8114DF0 - - thumb_func_start sub_8114E48 -sub_8114E48: @ 8114E48 - push {r4-r7,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r1, _08114E6C @ =0x02014800 - ldr r2, _08114E70 @ =0x0000a0c4 - adds r0, r1, r2 - ldrb r0, [r0] - adds r5, r1, 0 - cmp r0, 0 - bne _08114E60 - b _08114F5E -_08114E60: - movs r1, 0 - movs r3, 0 - cmp r4, 0 - bne _08114E74 - movs r1, 0x1 - b _08114EA6 - .align 2, 0 -_08114E6C: .4byte 0x02014800 -_08114E70: .4byte 0x0000a0c4 -_08114E74: - subs r0, r4, 0x1 - lsls r0, 5 - adds r2, r3, r0 - adds r0, r5, 0 - adds r0, 0xC4 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _08114EA6 - ldr r7, _08114EC4 @ =0x000008c4 - adds r0, r5, r7 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _08114EA6 - adds r3, 0x1 - cmp r3, 0x1F - bgt _08114EA6 - cmp r4, 0 - bne _08114E74 - lsls r0, r1, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r1, r0, 24 -_08114EA6: - cmp r3, 0x20 - bne _08114EB4 - lsls r0, r1, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r1, r0, 24 -_08114EB4: - movs r3, 0 - cmp r4, 0x3F - bne _08114EC8 - lsls r0, r1, 24 - movs r7, 0x80 - lsls r7, 17 - adds r0, r7 - b _08114EF8 - .align 2, 0 -_08114EC4: .4byte 0x000008c4 -_08114EC8: - adds r0, r4, 0x1 - lsls r0, 5 - adds r2, r3, r0 - adds r0, r5, 0 - adds r0, 0xC4 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _08114EFA - ldr r7, _08114F64 @ =0x000008c4 - adds r0, r5, r7 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _08114EFA - adds r3, 0x1 - cmp r3, 0x1F - bgt _08114EFA - cmp r4, 0x3F - bne _08114EC8 - lsls r0, r1, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 -_08114EF8: - lsrs r1, r0, 24 -_08114EFA: - cmp r3, 0x20 - bne _08114F08 - lsls r0, r1, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r1, r0, 24 -_08114F08: - cmp r1, 0x2 - beq _08114F5E - subs r0, r6, 0x2 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r0, 0 - bge _08114F18 - movs r1, 0 -_08114F18: - adds r0, r6, 0x2 - lsls r0, 24 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, 0x3F - ble _08114F26 - movs r2, 0x3F -_08114F26: - lsls r1, 24 - asrs r3, r1, 24 - lsls r0, r2, 24 - asrs r2, r0, 24 - adds r6, r1, 0 - adds r7, r0, 0 - cmp r3, r2 - bge _08114F7C - cmp r4, 0 - beq _08114F7C - subs r0, r4, 0x1 - lsls r5, r0, 7 - ldr r0, _08114F68 @ =0x020188c4 - mov r12, r0 -_08114F42: - asrs r0, r3, 1 - lsls r0, 2 - adds r0, r5 - add r0, r12 - ldr r1, [r0] - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _08114F6C - ldrb r1, [r1] - movs r0, 0xF0 -_08114F58: - ands r0, r1 - cmp r0, 0 - beq _08114F72 -_08114F5E: - movs r0, 0x1 - b _08114FCA - .align 2, 0 -_08114F64: .4byte 0x000008c4 -_08114F68: .4byte 0x020188c4 -_08114F6C: - ldrb r1, [r1] - movs r0, 0xF - b _08114F58 -_08114F72: - adds r3, 0x1 - cmp r3, r2 - bge _08114F7C - cmp r4, 0 - bne _08114F42 -_08114F7C: - asrs r3, r6, 24 - asrs r1, r7, 24 - cmp r3, r1 - bge _08114FC8 - cmp r4, 0x3F - beq _08114FC8 - adds r0, r4, 0x1 - lsls r5, r0, 7 - ldr r6, _08114FB0 @ =0x020188c4 - adds r2, r1, 0 -_08114F90: - asrs r0, r3, 1 - lsls r0, 2 - adds r0, r5 - adds r0, r6 - ldr r1, [r0] - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _08114FB4 - ldrb r1, [r1] - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0 - beq _08114FBE - b _08114F5E - .align 2, 0 -_08114FB0: .4byte 0x020188c4 -_08114FB4: - ldrb r1, [r1] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _08114F5E -_08114FBE: - adds r3, 0x1 - cmp r3, r2 - bge _08114FC8 - cmp r4, 0x3F - bne _08114F90 -_08114FC8: - movs r0, 0 -_08114FCA: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8114E48 - - thumb_func_start nullsub_73 -nullsub_73: @ 8114FD0 - bx lr - thumb_func_end nullsub_73 - - thumb_func_start sub_8114FD4 -sub_8114FD4: @ 8114FD4 - push {lr} - ldr r1, _08115034 @ =REG_BG0CNT - ldr r2, _08115038 @ =0x00009803 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x8 - ldr r0, _0811503C @ =gUnknown_030042A4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _08115040 @ =gUnknown_030042A0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _08115044 @ =gUnknown_030042C0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _08115048 @ =gUnknown_030041B4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0811504C @ =gUnknown_03004288 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _08115050 @ =gUnknown_03004280 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _08115054 @ =gUnknown_030041B0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _08115058 @ =gUnknown_030041B8 - ldrh r0, [r0] - strh r0, [r1] - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_8089668 - pop {r0} - bx r0 - .align 2, 0 -_08115034: .4byte REG_BG0CNT -_08115038: .4byte 0x00009803 -_0811503C: .4byte gUnknown_030042A4 -_08115040: .4byte gUnknown_030042A0 -_08115044: .4byte gUnknown_030042C0 -_08115048: .4byte gUnknown_030041B4 -_0811504C: .4byte gUnknown_03004288 -_08115050: .4byte gUnknown_03004280 -_08115054: .4byte gUnknown_030041B0 -_08115058: .4byte gUnknown_030041B8 - thumb_func_end sub_8114FD4 - - thumb_func_start sub_811505C -sub_811505C: @ 811505C - push {lr} - ldr r1, _081150B4 @ =REG_BG0HOFS - ldr r0, _081150B8 @ =gUnknown_030042A4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _081150BC @ =gUnknown_030042A0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _081150C0 @ =gUnknown_030042C0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _081150C4 @ =gUnknown_030041B4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _081150C8 @ =gUnknown_03004288 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _081150CC @ =gUnknown_03004280 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _081150D0 @ =gUnknown_030041B0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _081150D4 @ =gUnknown_030041B8 - ldrh r0, [r0] - strh r0, [r1] - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_8089668 - pop {r0} - bx r0 - .align 2, 0 -_081150B4: .4byte REG_BG0HOFS -_081150B8: .4byte gUnknown_030042A4 -_081150BC: .4byte gUnknown_030042A0 -_081150C0: .4byte gUnknown_030042C0 -_081150C4: .4byte gUnknown_030041B4 -_081150C8: .4byte gUnknown_03004288 -_081150CC: .4byte gUnknown_03004280 -_081150D0: .4byte gUnknown_030041B0 -_081150D4: .4byte gUnknown_030041B8 - thumb_func_end sub_811505C - - thumb_func_start sub_81150D8 -sub_81150D8: @ 81150D8 - push {lr} - ldr r0, _081150F4 @ =gUnknown_02024D1E - ldrb r1, [r0, 0x1] - lsls r1, 28 - movs r0, 0x90 - lsls r0, 23 - adds r1, r0 - lsrs r1, 24 - movs r0, 0xC8 - bl sub_814A880 - pop {r0} - bx r0 - .align 2, 0 -_081150F4: .4byte gUnknown_02024D1E - thumb_func_end sub_81150D8 - - thumb_func_start nullsub_24 -nullsub_24: @ 81150F8 - bx lr - thumb_func_end nullsub_24 - - thumb_func_start sub_81150FC -sub_81150FC: @ 81150FC - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - ldr r0, _08115120 @ =0x02019000 - adds r1, r0, 0 - adds r1, 0xB8 - ldrb r0, [r1] - cmp r0, 0 - beq _0811511C - adds r0, r1, 0 - bl task_tutorial_controls_fadein -_0811511C: - pop {r0} - bx r0 - .align 2, 0 -_08115120: .4byte 0x02019000 - thumb_func_end sub_81150FC - - thumb_func_start sub_8115124 -sub_8115124: @ 8115124 - push {r4,lr} - sub sp, 0x4 - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_8117434 - ldr r2, _08115188 @ =REG_BG1HOFS - ldr r3, _0811518C @ =0x02019000 - ldrh r1, [r3, 0x26] - movs r4, 0x80 - lsls r4, 2 - adds r0, r4, 0 - subs r0, r1 - strh r0, [r2] - ldrb r0, [r3, 0x1] - cmp r0, 0 - beq _08115154 - ldr r1, _08115190 @ =REG_BLDALPHA - ldrh r0, [r3, 0x34] - strh r0, [r1] -_08115154: - movs r1, 0x2A - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _08115170 - ldr r1, _08115194 @ =0x040000d4 - ldr r0, _08115198 @ =gBG1TilemapBuffer + 0x1C0 - str r0, [r1] - ldr r0, _0811519C @ =0x060021c0 - str r0, [r1, 0x4] - ldr r0, _081151A0 @ =0x800001a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0 - strh r0, [r3, 0x2A] -_08115170: - movs r2, 0x28 - ldrsh r0, [r3, r2] - cmp r0, 0x1 - beq _081151A4 - cmp r0, 0x1 - ble _0811521A - cmp r0, 0x2 - beq _081151D4 - cmp r0, 0xFF - beq _081151F8 - b _0811521A - .align 2, 0 -_08115188: .4byte REG_BG1HOFS -_0811518C: .4byte 0x02019000 -_08115190: .4byte REG_BLDALPHA -_08115194: .4byte 0x040000d4 -_08115198: .4byte gBG1TilemapBuffer + 0x1C0 -_0811519C: .4byte 0x060021c0 -_081151A0: .4byte 0x800001a0 -_081151A4: - ldr r1, _081151C4 @ =REG_BG0CNT - movs r4, 0xF8 - lsls r4, 5 - adds r0, r4, 0 - strh r0, [r1] - adds r1, 0xCC - ldr r0, _081151C8 @ =gBG2TilemapBuffer + 0x1C0 - str r0, [r1] - ldr r0, _081151CC @ =0x0600f9c0 - str r0, [r1, 0x4] - ldr r0, _081151D0 @ =0x800001a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0x2 - b _08115218 - .align 2, 0 -_081151C4: .4byte REG_BG0CNT -_081151C8: .4byte gBG2TilemapBuffer + 0x1C0 -_081151CC: .4byte 0x0600f9c0 -_081151D0: .4byte 0x800001a0 -_081151D4: - ldr r1, _081151E8 @ =0x040000d4 - ldr r0, _081151EC @ =gBG2TilemapBuffer + 0x1C0 - str r0, [r1] - ldr r0, _081151F0 @ =0x0600f9c0 - str r0, [r1, 0x4] - ldr r0, _081151F4 @ =0x800001a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - b _0811521A - .align 2, 0 -_081151E8: .4byte 0x040000d4 -_081151EC: .4byte gBG2TilemapBuffer + 0x1C0 -_081151F0: .4byte 0x0600f9c0 -_081151F4: .4byte 0x800001a0 -_081151F8: - ldr r1, _08115224 @ =REG_BG0CNT - ldr r2, _08115228 @ =0x00001f08 - adds r0, r2, 0 - strh r0, [r1] - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r1, _0811522C @ =0x040000d4 - mov r4, sp - str r4, [r1] - ldr r0, _08115230 @ =0x0600f9c0 - str r0, [r1, 0x4] - ldr r0, _08115234 @ =0x810001a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0 -_08115218: - strh r0, [r3, 0x28] -_0811521A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08115224: .4byte REG_BG0CNT -_08115228: .4byte 0x00001f08 -_0811522C: .4byte 0x040000d4 -_08115230: .4byte 0x0600f9c0 -_08115234: .4byte 0x810001a0 - thumb_func_end sub_8115124 - - thumb_func_start sub_8115238 -sub_8115238: @ 8115238 - push {r4-r6,lr} - sub sp, 0x8 - ldr r1, _081152C0 @ =gUnknown_083F8EC4 - mov r0, sp - movs r2, 0x6 - bl memcpy - ldr r5, _081152C4 @ =0x02019000 - movs r2, 0xBE - lsls r2, 1 - adds r0, r5, 0 - movs r1, 0 - bl memset - ldr r0, _081152C8 @ =gUnknown_0202E8CC - ldrh r2, [r0] - movs r0, 0x1 - ands r0, r2 - ldrb r1, [r5, 0x4] - movs r3, 0x4 - negs r3, r3 - ands r3, r1 - orrs r3, r0 - strb r3, [r5, 0x4] - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _08115276 - movs r0, 0x80 - orrs r3, r0 - strb r3, [r5, 0x4] -_08115276: - ldr r3, _081152CC @ =gUnknown_083F8DF4 - ldrb r2, [r5, 0x4] - lsls r1, r2, 30 - lsrs r0, r1, 25 - adds r0, r3 - ldrb r0, [r0, 0x3] - adds r4, r5, 0 - adds r4, 0x22 - strb r0, [r4] - lsrs r0, r1, 25 - adds r0, r3 - ldrb r0, [r0, 0x4] - adds r3, r5, 0 - adds r3, 0x23 - strb r0, [r3] - ldr r0, _081152D0 @ =gUnknown_083F8DF0 - lsrs r1, 30 - lsls r2, 24 - lsrs r2, 31 - lsls r2, 1 - adds r1, r2 - adds r1, r0 - ldrb r2, [r1] - strb r2, [r5, 0x19] - ldrb r1, [r5, 0x1A] - movs r0, 0xF - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r5, 0x1A] - cmp r2, 0x1 - bne _081152DC - ldr r4, _081152D4 @ =gPlttBufferUnfaded - ldr r3, _081152D8 @ =gPlttBufferFaded - mov r0, sp - ldrh r2, [r0] - b _081152E4 - .align 2, 0 -_081152C0: .4byte gUnknown_083F8EC4 -_081152C4: .4byte 0x02019000 -_081152C8: .4byte gUnknown_0202E8CC -_081152CC: .4byte gUnknown_083F8DF4 -_081152D0: .4byte gUnknown_083F8DF0 -_081152D4: .4byte gPlttBufferUnfaded -_081152D8: .4byte gPlttBufferFaded -_081152DC: - ldr r4, _08115348 @ =gPlttBufferUnfaded - ldr r3, _0811534C @ =gPlttBufferFaded - mov r0, sp - ldrh r2, [r0, 0x2] -_081152E4: - adds r0, r3, 0 - adds r0, 0xA2 - strh r2, [r0] - ldr r1, _08115350 @ =0x0000ffff - adds r0, r1, 0 - ands r0, r2 - strh r0, [r3] - ands r0, r1 - adds r2, r4, 0 - adds r2, 0xA2 - strh r0, [r2] - ands r0, r1 - strh r0, [r4] - ldr r0, _08115354 @ =0x020190b8 - bl sub_8124918 - movs r4, 0 - ldr r5, _08115358 @ =gUnknown_083F8E34 -_08115308: - lsls r2, r4, 3 - adds r2, r5 - ldr r0, _08115354 @ =0x020190b8 - adds r1, r4, 0 - bl sub_812492C - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xC - bls _08115308 - movs r4, 0 - ldr r5, _0811535C @ =0x02019000 -_08115322: - movs r0, 0x64 - muls r0, r4 - ldr r1, _08115360 @ =gPlayerParty - adds r0, r1 - movs r1, 0x41 - bl GetMonData - adds r1, r0, 0 - movs r0, 0x98 - lsls r0, 1 - cmp r1, r0 - beq _08115364 - adds r0, 0x2 - cmp r1, r0 - bne _0811536C - ldrb r0, [r5, 0x2] - movs r1, 0x1 - b _08115368 - .align 2, 0 -_08115348: .4byte gPlttBufferUnfaded -_0811534C: .4byte gPlttBufferFaded -_08115350: .4byte 0x0000ffff -_08115354: .4byte 0x020190b8 -_08115358: .4byte gUnknown_083F8E34 -_0811535C: .4byte 0x02019000 -_08115360: .4byte gPlayerParty -_08115364: - ldrb r0, [r5, 0x2] - movs r1, 0x2 -_08115368: - orrs r0, r1 - strb r0, [r5, 0x2] -_0811536C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08115322 - bl RtcCalcLocalTime - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8115238 - - thumb_func_start sub_8115384 -sub_8115384: @ 8115384 - push {r4,lr} - sub sp, 0x4 - ldr r1, _081153A4 @ =gMain - ldr r2, _081153A8 @ =0x0000043c - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0x7 - bls _08115398 - b _081155FE -_08115398: - lsls r0, 2 - ldr r1, _081153AC @ =_081153B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081153A4: .4byte gMain -_081153A8: .4byte 0x0000043c -_081153AC: .4byte _081153B0 - .align 2, 0 -_081153B0: - .4byte _081153D0 - .4byte _08115444 - .4byte _08115460 - .4byte _08115494 - .4byte _081154CC - .4byte _081154FC - .4byte _0811556C - .4byte _0811558C -_081153D0: - movs r0, 0 - bl SetVBlankCallback - bl remove_some_task - bl sub_80F9438 - bl sub_80F9368 - ldr r1, _08115420 @ =REG_BG2CNT - ldr r3, _08115424 @ =0x00004686 - adds r0, r3, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _08115428 @ =0x00004401 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x46 - movs r3, 0x90 - lsls r3, 6 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _0811542C @ =0x0000060a - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08115430 @ =gUnknown_08E8096C - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08115434 @ =gUnknown_08E81098 - ldr r1, _08115438 @ =0x06004000 - bl LZ77UnCompVram - ldr r1, _0811543C @ =gMain - ldr r3, _08115440 @ =0x0000043c - adds r1, r3 - b _0811557A - .align 2, 0 -_08115420: .4byte REG_BG2CNT -_08115424: .4byte 0x00004686 -_08115428: .4byte 0x00004401 -_0811542C: .4byte 0x0000060a -_08115430: .4byte gUnknown_08E8096C -_08115434: .4byte gUnknown_08E81098 -_08115438: .4byte 0x06004000 -_0811543C: .4byte gMain -_08115440: .4byte 0x0000043c -_08115444: - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - ldr r1, _08115458 @ =gMain - ldr r0, _0811545C @ =0x0000043c - adds r1, r0 - b _0811557A - .align 2, 0 -_08115458: .4byte gMain -_0811545C: .4byte 0x0000043c -_08115460: - ldr r0, _08115480 @ =gWindowConfig_81E6C3C - bl SetUpWindowConfig - ldr r0, _08115484 @ =gWindowConfig_81E6CE4 - bl InitMenuWindow - ldr r0, _08115488 @ =gUnknown_083F86BC - movs r2, 0xE0 - lsls r2, 1 - movs r1, 0 - bl LoadPalette - ldr r1, _0811548C @ =gMain - ldr r2, _08115490 @ =0x0000043c - adds r1, r2 - b _0811557A - .align 2, 0 -_08115480: .4byte gWindowConfig_81E6C3C -_08115484: .4byte gWindowConfig_81E6CE4 -_08115488: .4byte gUnknown_083F86BC -_0811548C: .4byte gMain -_08115490: .4byte 0x0000043c -_08115494: - bl sub_8115238 - bl sub_80F9020 - ldr r0, _081154B4 @ =gUnknown_083F88BC - ldr r1, _081154B8 @ =0x02018800 - bl LZ77UnCompWram - ldr r0, _081154BC @ =gUnknown_083F8A60 - ldr r1, _081154C0 @ =0x06003000 - bl LZ77UnCompVram - ldr r1, _081154C4 @ =gMain - ldr r3, _081154C8 @ =0x0000043c - adds r1, r3 - b _0811557A - .align 2, 0 -_081154B4: .4byte gUnknown_083F88BC -_081154B8: .4byte 0x02018800 -_081154BC: .4byte gUnknown_083F8A60 -_081154C0: .4byte 0x06003000 -_081154C4: .4byte gMain -_081154C8: .4byte 0x0000043c -_081154CC: - movs r0, 0 - bl sub_8117838 - bl sub_811857C - bl sub_81184D8 - bl sub_8117F2C - bl sub_8117900 - bl sub_8117BBC - bl sub_8117DF4 - ldr r1, _081154F4 @ =gMain - ldr r0, _081154F8 @ =0x0000043c - adds r1, r0 - b _0811557A - .align 2, 0 -_081154F4: .4byte gMain -_081154F8: .4byte 0x0000043c -_081154FC: - bl AnimateSprites - bl BuildOamBuffer - ldr r0, _08115550 @ =gSaveBlock1 - ldr r1, _08115554 @ =0x00000494 - adds r0, r1 - ldrh r0, [r0] - bl sub_81180F4 - movs r0, 0x6 - bl sub_81182F8 - movs r0, 0 - bl sub_811829C - movs r0, 0 - bl sub_8117158 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08115558 @ =gUnknown_081C4157 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _0811555C @ =gSpriteCoordOffsetX - movs r2, 0x3C - negs r2, r2 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _08115560 @ =gSpriteCoordOffsetY - movs r0, 0 - strh r0, [r1] - ldr r1, _08115564 @ =gMain - ldr r3, _08115568 @ =0x0000043c - adds r1, r3 - b _0811557A - .align 2, 0 -_08115550: .4byte gSaveBlock1 -_08115554: .4byte 0x00000494 -_08115558: .4byte gUnknown_081C4157 -_0811555C: .4byte gSpriteCoordOffsetX -_08115560: .4byte gSpriteCoordOffsetY -_08115564: .4byte gMain -_08115568: .4byte 0x0000043c -_0811556C: - movs r1, 0x80 - lsls r1, 19 - ldr r3, _08115584 @ =0x00001741 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _08115588 @ =0x0000043c - adds r1, r2, r0 -_0811557A: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081155FE - .align 2, 0 -_08115584: .4byte 0x00001741 -_08115588: .4byte 0x0000043c -_0811558C: - ldr r3, _08115608 @ =0x04000208 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _0811560C @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08115610 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _08115614 @ =sub_8115124 - bl SetVBlankCallback - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginHardwarePaletteFade - ldr r0, _08115618 @ =sub_81156BC - movs r1, 0 - bl CreateTask - ldr r4, _0811561C @ =0x02019000 - adds r1, r4, 0 - adds r1, 0xA4 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08115620 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0x6 - strh r0, [r1, 0x14] - ldr r0, _08115624 @ =gSaveBlock1 - ldr r2, _08115628 @ =0x00000494 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1, 0x22] - ldr r0, _0811562C @ =sub_8115634 - movs r1, 0x1 - bl CreateTask - adds r4, 0xA5 - strb r0, [r4] - ldr r0, _08115630 @ =sub_81150FC - bl SetMainCallback2 -_081155FE: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08115608: .4byte 0x04000208 -_0811560C: .4byte 0x04000200 -_08115610: .4byte REG_DISPSTAT -_08115614: .4byte sub_8115124 -_08115618: .4byte sub_81156BC -_0811561C: .4byte 0x02019000 -_08115620: .4byte gTasks -_08115624: .4byte gSaveBlock1 -_08115628: .4byte 0x00000494 -_0811562C: .4byte sub_8115634 -_08115630: .4byte sub_81150FC - thumb_func_end sub_8115384 - - thumb_func_start sub_8115634 -sub_8115634: @ 8115634 - push {r4-r6,lr} - ldr r0, _081156B8 @ =0x02019000 - adds r3, r0, 0 - adds r3, 0x21 - ldrb r1, [r3] - adds r2, r1, 0x1 - strb r2, [r3] - adds r2, r0, 0 - adds r2, 0x23 - lsls r1, 24 - lsrs r1, 24 - adds r6, r0, 0 - ldrb r2, [r2] - cmp r1, r2 - bne _08115674 - movs r0, 0 - strb r0, [r3] - adds r2, r6, 0 - adds r2, 0x22 - ldrb r1, [r2] - ldrh r0, [r6, 0x24] - subs r0, r1 - strh r0, [r6, 0x24] - lsls r0, 16 - cmp r0, 0 - bge _08115674 - ldrb r1, [r2] - movs r2, 0xB4 - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r6, 0x24] -_08115674: - adds r4, r6, 0 - ldrh r0, [r4, 0x24] - bl Sin2 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r0, [r4, 0x24] - bl Cos2 - lsls r0, 16 - lsrs r1, r0, 16 - lsls r0, r5, 16 - asrs r0, 16 - cmp r0, 0 - bge _08115694 - adds r0, 0xF -_08115694: - lsls r0, 12 - lsrs r5, r0, 16 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0 - bge _081156A2 - adds r0, 0xF -_081156A2: - asrs r0, 4 - strh r0, [r6, 0x32] - strh r0, [r6, 0x2C] - strh r5, [r6, 0x2E] - lsls r0, r5, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r6, 0x30] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081156B8: .4byte 0x02019000 - thumb_func_end sub_8115634 - - thumb_func_start sub_81156BC -sub_81156BC: @ 81156BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl UpdatePaletteFade - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _08115716 - ldr r2, _0811571C @ =REG_BLDCNT - ldrh r0, [r2] - movs r5, 0x90 - lsls r5, 6 - adds r1, r5, 0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _08115720 @ =REG_BLDALPHA - ldr r2, _08115724 @ =0x00000808 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _08115728 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x14] - adds r0, r4, 0 - bl sub_8116CAC - bl sub_8116CF8 - bl sub_81185E8 - movs r0, 0 - bl sub_8117158 - movs r0, 0x6 - bl sub_81182F8 - ldr r1, _0811572C @ =sub_81159BC - ldr r2, _08115730 @ =0x0000ffff - adds r0, r4, 0 - movs r3, 0x3 - bl sub_8116C34 -_08115716: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811571C: .4byte REG_BLDCNT -_08115720: .4byte REG_BLDALPHA -_08115724: .4byte 0x00000808 -_08115728: .4byte gTasks -_0811572C: .4byte sub_81159BC -_08115730: .4byte 0x0000ffff - thumb_func_end sub_81156BC - - thumb_func_start sub_8115734 -sub_8115734: @ 8115734 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r0, _08115770 @ =0x00002d9e - bl sub_814AAF8 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08115774 @ =gUnknown_081C41E3 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _08115778 @ =gUnknown_083F8EBC - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08115770: .4byte 0x00002d9e -_08115774: .4byte gUnknown_081C41E3 -_08115778: .4byte gUnknown_083F8EBC - thumb_func_end sub_8115734 - - thumb_func_start sub_811577C -sub_811577C: @ 811577C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1A - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r1, _081157A4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _081157A8 @ =sub_81159BC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081157A4: .4byte gTasks -_081157A8: .4byte sub_81159BC - thumb_func_end sub_811577C - - thumb_func_start sub_81157AC -sub_81157AC: @ 81157AC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _081157CC @ =0x02019000 - adds r0, 0xA5 - ldrb r0, [r0] - bl DestroyTask - adds r0, r4, 0 - bl sub_8116AB0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081157CC: .4byte 0x02019000 - thumb_func_end sub_81157AC - - thumb_func_start sub_81157D0 -sub_81157D0: @ 81157D0 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bhi _081158C8 - lsls r0, r4, 2 - ldr r1, _081157E8 @ =_081157EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081157E8: .4byte _081157EC - .align 2, 0 -_081157EC: - .4byte _0811582C - .4byte _08115848 - .4byte _08115848 - .4byte _08115848 - .4byte _08115848 - .4byte _08115884 - .4byte _081158C8 - .4byte _081158C8 - .4byte _081158C8 - .4byte _081158C8 - .4byte _08115884 - .4byte _081158C8 - .4byte _081158C8 - .4byte _081158C8 - .4byte _081158C8 - .4byte _08115884 -_0811582C: - ldr r0, _08115844 @ =gBG2TilemapBuffer - movs r1, 0x10 - str r1, [sp] - movs r1, 0xD - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xE - movs r3, 0x7 - bl sub_8124DDC - b _08115918 - .align 2, 0 -_08115844: .4byte gBG2TilemapBuffer -_08115848: - lsls r0, r4, 1 - adds r0, r4 - adds r0, 0xE - lsls r0, 24 - lsrs r7, r0, 24 - ldr r5, _0811587C @ =gBG2TilemapBuffer - movs r0, 0x10 - str r0, [sp] - movs r4, 0xD - str r4, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x7 - bl sub_8124DDC - ldr r1, _08115880 @ =0x02018a32 - movs r0, 0x3 - str r0, [sp] - str r4, [sp, 0x4] - adds r0, r5, 0 - adds r2, r7, 0 - movs r3, 0x7 - bl sub_8124E2C - b _08115918 - .align 2, 0 -_0811587C: .4byte gBG2TilemapBuffer -_08115880: .4byte 0x02018a32 -_08115884: - subs r0, r4, 0x1 - movs r1, 0x5 - bl __divsi3 - lsls r1, r0, 1 - adds r1, r0 - adds r1, 0xA - lsls r1, 24 - lsrs r6, r1, 24 - ldr r5, _081158C0 @ =gBG2TilemapBuffer - movs r4, 0x10 - str r4, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x7 - bl sub_8124DDC - ldr r1, _081158C4 @ =0x02018a80 - str r4, [sp] - movs r0, 0x3 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0xE - adds r3, r6, 0 - bl sub_8124E2C - b _08115918 - .align 2, 0 -_081158C0: .4byte gBG2TilemapBuffer -_081158C4: .4byte 0x02018a80 -_081158C8: - adds r0, r4, 0 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - adds r1, 0xE - lsls r1, 24 - lsrs r7, r1, 24 - subs r0, r4, 0x1 - movs r1, 0x5 - bl __divsi3 - lsls r1, r0, 1 - adds r1, r0 - adds r1, 0x7 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r4, _08115920 @ =gBG2TilemapBuffer - movs r0, 0x10 - str r0, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x7 - bl sub_8124DDC - ldr r1, _08115924 @ =0x02018a20 - movs r0, 0x3 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r4, 0 - adds r2, r7, 0 - adds r3, r6, 0 - bl sub_8124E2C -_08115918: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08115920: .4byte gBG2TilemapBuffer -_08115924: .4byte 0x02018a20 - thumb_func_end sub_81157D0 - - thumb_func_start sub_8115928 -sub_8115928: @ 8115928 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - cmp r1, 0 - bne _0811594C - ldr r1, _08115948 @ =gTasks - lsls r4, r5, 2 - adds r0, r4, r5 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x10] - bl sub_811829C - b _08115960 - .align 2, 0 -_08115948: .4byte gTasks -_0811594C: - ldr r0, _08115974 @ =0x02019000 - ldrb r1, [r0, 0x1A] - lsls r1, 28 - lsrs r1, 28 - adds r0, 0x1B - adds r1, r0 - ldrb r0, [r1] - bl sub_811829C - lsls r4, r5, 2 -_08115960: - ldr r0, _08115978 @ =gTasks - adds r1, r4, r5 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x10] - bl sub_81157D0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08115974: .4byte 0x02019000 -_08115978: .4byte gTasks - thumb_func_end sub_8115928 - - thumb_func_start sub_811597C -sub_811597C: @ 811597C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _081159B0 @ =0x02019000 - movs r6, 0 - movs r1, 0x1 - strh r1, [r5, 0x28] - ldr r1, _081159B4 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldrb r0, [r4, 0x10] - bl sub_81157D0 - adds r1, r5, 0 - adds r1, 0x23 - movs r0, 0x2 - strb r0, [r1] - adds r5, 0x21 - strb r6, [r5] - ldr r0, _081159B8 @ =sub_8115E14 - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081159B0: .4byte 0x02019000 -_081159B4: .4byte gTasks -_081159B8: .4byte sub_8115E14 - thumb_func_end sub_811597C - - thumb_func_start sub_81159BC -sub_81159BC: @ 81159BC - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, _08115A10 @ =0x02019000 - ldr r1, [r3, 0x8] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08115A1C - movs r2, 0xB - ldr r5, _08115A14 @ =gUnknown_083F8C00 - adds r0, r5, 0 - adds r0, 0xE4 - ldr r0, [r0] - ands r1, r0 - ldr r0, _08115A18 @ =gTasks - mov r12, r0 - lsls r7, r6, 2 - cmp r1, 0 - beq _08115A5A - adds r4, r3, 0 - adds r3, r5, 0 - adds r3, 0x8 -_081159EA: - lsls r0, r2, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r2, r0, 16 - asrs r1, r0, 16 - cmp r1, 0xD - bgt _08115A5A - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, [r4, 0x8] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _081159EA - b _08115A5A - .align 2, 0 -_08115A10: .4byte 0x02019000 -_08115A14: .4byte gUnknown_083F8C00 -_08115A18: .4byte gTasks -_08115A1C: - movs r2, 0x6 - ldr r5, _08115A88 @ =gUnknown_083F8C00 - adds r0, r5, 0 - adds r0, 0x80 - ldr r0, [r0] - ands r1, r0 - ldr r0, _08115A8C @ =gTasks - mov r12, r0 - lsls r7, r6, 2 - cmp r1, 0 - beq _08115A5A - adds r4, r3, 0 - adds r3, r5, 0 - adds r3, 0x8 -_08115A38: - lsls r0, r2, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r2, r0, 16 - asrs r1, r0, 16 - cmp r1, 0x9 - bgt _08115A5A - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, [r4, 0x8] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08115A38 -_08115A5A: - adds r4, r7, r6 - lsls r4, 3 - add r4, r12 - movs r5, 0 - strh r2, [r4, 0x10] - adds r0, r6, 0 - bl sub_8116CAC - ldrb r0, [r4, 0x10] - bl sub_8117158 - ldrb r0, [r4, 0x10] - bl sub_811829C - ldrb r0, [r4, 0x10] - bl sub_8116EF8 - strh r5, [r4, 0xA] - ldr r0, _08115A90 @ =sub_811597C - str r0, [r4] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08115A88: .4byte gUnknown_083F8C00 -_08115A8C: .4byte gTasks -_08115A90: .4byte sub_811597C - thumb_func_end sub_81159BC - - thumb_func_start sub_8115A94 -sub_8115A94: @ 8115A94 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - movs r6, 0 - movs r7, 0 - ldr r1, _08115ADC @ =gUnknown_083F8ECA - mov r0, sp - movs r2, 0x4 - bl memcpy - ldrb r0, [r4] - mov r8, r0 - cmp r5, 0 - blt _08115B08 - cmp r5, 0x1 - bgt _08115AE0 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x5 - bl __modsi3 - lsls r0, 24 - lsrs r6, r0, 24 - movs r2, 0xF0 - lsls r2, 20 - adds r1, r0, r2 - lsrs r7, r1, 24 - cmp r0, 0 - bne _08115B08 - movs r6, 0x5 - b _08115B08 - .align 2, 0 -_08115ADC: .4byte gUnknown_083F8ECA -_08115AE0: - cmp r5, 0x3 - bgt _08115B08 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x5 - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 24 - lsrs r6, r1, 24 - movs r2, 0x80 - lsls r2, 19 - adds r0, r1, r2 - lsrs r7, r0, 24 - cmp r1, 0 - bne _08115B08 - movs r6, 0x1 -_08115B08: - mov r1, sp - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r2, [r4] - adds r0, r2 - strh r0, [r4] - lsls r1, r6, 24 - asrs r3, r1, 24 - lsls r0, 16 - asrs r0, 16 - lsls r2, r7, 24 - cmp r0, r3 - bge _08115B2A - asrs r0, r2, 24 - strh r0, [r4] -_08115B2A: - movs r0, 0 - ldrsh r1, [r4, r0] - asrs r0, r2, 24 - cmp r1, r0 - ble _08115B36 - strh r3, [r4] -_08115B36: - mov r1, r8 - lsls r0, r1, 24 - movs r2, 0 - ldrsh r1, [r4, r2] - asrs r0, 24 - cmp r1, r0 - bne _08115B48 - movs r0, 0 - b _08115B4A -_08115B48: - movs r0, 0x1 -_08115B4A: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8115A94 - - thumb_func_start sub_8115B58 -sub_8115B58: @ 8115B58 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0 - mov r8, r0 - movs r5, 0 - ldr r4, _08115D30 @ =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08115B94 - movs r5, 0x1 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _08115D34 @ =gTasks + 0x8 - adds r0, r1 - adds r0, 0x8 - movs r1, 0 - bl sub_8115A94 - lsls r0, 24 - cmp r0, 0 - bne _08115B94 - b _08115D20 -_08115B94: - ldrh r1, [r4, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08115BBA - movs r5, 0x1 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _08115D34 @ =gTasks + 0x8 - adds r0, r1 - adds r0, 0x8 - movs r1, 0x1 - bl sub_8115A94 - lsls r0, 24 - cmp r0, 0 - bne _08115BBA - b _08115D20 -_08115BBA: - ldrh r1, [r4, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08115BE0 - movs r5, 0x1 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _08115D34 @ =gTasks + 0x8 - adds r0, r1 - adds r0, 0x8 - movs r1, 0x2 - bl sub_8115A94 - lsls r0, 24 - cmp r0, 0 - bne _08115BE0 - b _08115D20 -_08115BE0: - ldrh r1, [r4, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08115C06 - movs r5, 0x1 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _08115D34 @ =gTasks + 0x8 - adds r0, r1 - adds r0, 0x8 - movs r1, 0x3 - bl sub_8115A94 - lsls r0, 24 - cmp r0, 0 - bne _08115C06 - b _08115D20 -_08115C06: - cmp r5, 0 - bne _08115C0C - b _08115D20 -_08115C0C: - ldr r0, _08115D38 @ =gTasks - lsls r6, r7, 2 - adds r4, r6, r7 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x10] - bl sub_8117158 - adds r0, r7, 0 - movs r1, 0 - bl sub_8115928 - mov r1, r8 - strh r1, [r4, 0xA] - movs r0, 0x5 - bl PlaySE - ldr r5, _08115D3C @ =0x020190b8 - ldr r1, _08115D40 @ =0x0000ffff - adds r0, r5, 0 - bl sub_8124D3C - adds r3, r5, 0 - adds r3, 0xB8 - ldrb r2, [r3] - movs r1, 0x7F - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3] - subs r3, 0xC - ldrb r2, [r3] - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3] - adds r2, r5, 0 - adds r2, 0xA0 - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - ldrb r0, [r4, 0x10] - bl sub_8116EF8 - movs r4, 0 - mov r12, r6 - ldr r6, _08115D44 @ =gSprites - movs r2, 0x7C - negs r2, r2 - adds r2, r5 - mov r10, r2 - movs r0, 0x8 - adds r0, r6 - mov r8, r0 - ldr r1, _08115D48 @ =0xfffffc00 - mov r9, r1 - ldr r2, _08115D4C @ =0x000003ff - adds r5, r2, 0 -_08115C7C: - adds r0, r4, 0 - adds r0, 0x29 - add r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r6 - adds r2, r3, 0 - adds r2, 0x40 - add r0, r8 - ldr r0, [r0] - ldr r0, [r0] - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r2 - ands r1, r5 - ldrh r2, [r3, 0x4] - mov r0, r9 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08115C7C - ldr r0, _08115D38 @ =gTasks - mov r2, r12 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - ldrh r3, [r1, 0x10] - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x3 - bhi _08115D20 - ldr r2, _08115D50 @ =gUnknown_083F8C00 - movs r0, 0x10 - ldrsh r1, [r1, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x8 - adds r0, r2 - ldr r2, _08115D54 @ =0x02019000 - ldr r1, [r2, 0x8] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08115D20 - subs r0, r3, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - adds r0, r2, 0 - add r0, r8 - adds r0, 0x65 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08115D44 @ =gSprites - adds r3, r0, r1 - adds r2, r3, 0 - adds r2, 0x40 - adds r1, 0x8 - adds r0, r1 - ldr r0, [r0] - ldr r0, [r0] - ldrh r1, [r0, 0x4] - ldrh r2, [r2] - adds r1, r2 - ldr r2, _08115D4C @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x4] - ldr r0, _08115D48 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] -_08115D20: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08115D30: .4byte gMain -_08115D34: .4byte gTasks + 0x8 -_08115D38: .4byte gTasks -_08115D3C: .4byte 0x020190b8 -_08115D40: .4byte 0x0000ffff -_08115D44: .4byte gSprites -_08115D48: .4byte 0xfffffc00 -_08115D4C: .4byte 0x000003ff -_08115D50: .4byte gUnknown_083F8C00 -_08115D54: .4byte 0x02019000 - thumb_func_end sub_8115B58 - - thumb_func_start sub_8115D58 -sub_8115D58: @ 8115D58 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _08115D70 @ =0x02019000 - movs r0, 0xFF - strh r0, [r1, 0x28] - ldrb r0, [r1, 0x19] - cmp r0, 0x1 - bne _08115D74 - adds r2, r1, 0 - adds r2, 0x23 - b _08115D7A - .align 2, 0 -_08115D70: .4byte 0x02019000 -_08115D74: - adds r2, r1, 0 - adds r2, 0x23 - movs r0, 0 -_08115D7A: - strb r0, [r2] - adds r1, 0x21 - movs r0, 0 - strb r0, [r1] - ldr r1, _08115D98 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x20 - strh r1, [r0, 0xA] - ldr r1, _08115D9C @ =sub_8115ECC - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_08115D98: .4byte gTasks -_08115D9C: .4byte sub_8115ECC - thumb_func_end sub_8115D58 - - thumb_func_start sub_8115DA0 -sub_8115DA0: @ 8115DA0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08115E08 @ =0x02019000 - ldrb r2, [r4, 0x1A] - lsls r2, 28 - lsrs r2, 28 - adds r5, r4, 0 - adds r5, 0x1B - adds r2, r5 - ldr r3, _08115E0C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r6, r1, r3 - ldrh r0, [r6, 0x10] - strb r0, [r2] - ldrb r0, [r4, 0x1A] - lsls r0, 28 - lsrs r0, 28 - adds r0, r5 - ldrb r0, [r0] - bl sub_8117380 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0xC] - ldrb r0, [r4, 0x1A] - lsls r0, 28 - lsrs r0, 28 - adds r0, r5 - ldrb r0, [r0] - bl sub_811829C - ldrb r1, [r4, 0x19] - ldrh r0, [r6, 0x22] - subs r0, r1 - strh r0, [r6, 0x22] - lsls r0, 16 - cmp r0, 0 - bge _08115DF6 - movs r0, 0 - strh r0, [r6, 0x22] -_08115DF6: - ldrh r0, [r6, 0x22] - bl sub_81180F4 - ldr r0, _08115E10 @ =sub_8115D58 - str r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08115E08: .4byte 0x02019000 -_08115E0C: .4byte gTasks -_08115E10: .4byte sub_8115D58 - thumb_func_end sub_8115DA0 - - thumb_func_start sub_8115E14 -sub_8115E14: @ 8115E14 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_8115B58 - ldr r1, _08115E3C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x1E - beq _08115E4A - cmp r0, 0x1E - bgt _08115E40 - cmp r0, 0 - beq _08115E46 - b _08115E5E - .align 2, 0 -_08115E3C: .4byte gTasks -_08115E40: - cmp r0, 0x3B - beq _08115E58 - b _08115E5E -_08115E46: - ldrb r0, [r4, 0x10] - b _08115E4C -_08115E4A: - movs r0, 0 -_08115E4C: - bl sub_81157D0 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _08115E6E -_08115E58: - movs r0, 0 - strh r0, [r4, 0xA] - b _08115E6E -_08115E5E: - ldr r0, _08115EA8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] -_08115E6E: - ldr r0, _08115EAC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08115EC2 - ldr r3, _08115EB0 @ =0x02019000 - ldr r2, _08115EB4 @ =gUnknown_083F8C00 - ldr r1, _08115EA8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x10 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x8 - adds r0, r2 - ldr r1, [r3, 0x8] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08115EB8 - movs r0, 0x16 - bl PlaySE - b _08115EC2 - .align 2, 0 -_08115EA8: .4byte gTasks -_08115EAC: .4byte gMain -_08115EB0: .4byte 0x02019000 -_08115EB4: .4byte gUnknown_083F8C00 -_08115EB8: - movs r0, 0x5F - bl m4aSongNumStart - ldr r0, _08115EC8 @ =sub_8115DA0 - str r0, [r4] -_08115EC2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08115EC8: .4byte sub_8115DA0 - thumb_func_end sub_8115E14 - - thumb_func_start sub_8115ECC -sub_8115ECC: @ 8115ECC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08115F20 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0xA] - subs r1, r0, 0x1 - strh r1, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - ble _08115F34 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _08115EF8 - ldr r1, _08115F24 @ =gSpriteCoordOffsetX - ldrh r0, [r1] - adds r0, 0x2 - strh r0, [r1] -_08115EF8: - ldr r1, _08115F28 @ =0x02019000 - ldrh r0, [r1, 0x26] - adds r0, 0x4 - strh r0, [r1, 0x26] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x68 - bne _08115F4C - ldr r2, _08115F2C @ =gSprites - adds r0, r1, 0 - adds r0, 0x55 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _08115F30 @ =SpriteCallbackDummy - str r1, [r0] - b _08115F4C - .align 2, 0 -_08115F20: .4byte gTasks -_08115F24: .4byte gSpriteCoordOffsetX -_08115F28: .4byte 0x02019000 -_08115F2C: .4byte gSprites -_08115F30: .4byte SpriteCallbackDummy -_08115F34: - movs r0, 0x1 - movs r1, 0xFF - bl sub_8117AA8 - movs r0, 0x1 - movs r1, 0xFF - bl sub_8117C60 - ldr r0, _08115F54 @ =sub_8116100 - str r0, [r4] - movs r0, 0 - strh r0, [r4, 0xA] -_08115F4C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08115F54: .4byte sub_8116100 - thumb_func_end sub_8115ECC - - thumb_func_start sub_8115F58 -sub_8115F58: @ 8115F58 - push {r4,lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _08115F74 @ =0x02019000 - ldrb r2, [r0, 0x2] - adds r4, r0, 0 - cmp r2, 0x2 - bgt _08115F78 - cmp r2, 0x1 - bge _08115F7E - b _08116048 - .align 2, 0 -_08115F74: .4byte 0x02019000 -_08115F78: - cmp r2, 0x3 - beq _08115FE0 - b _08116048 -_08115F7E: - ldr r0, _08115FA8 @ =gLocalTime - ldrb r0, [r0, 0x2] - subs r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bhi _08115FB0 - cmp r3, 0xB - bls _08115F98 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0811605E -_08115F98: - ldr r0, _08115FAC @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - lsrs r0, 1 - b _081160F4 - .align 2, 0 -_08115FA8: .4byte gLocalTime -_08115FAC: .4byte gUnknown_083F8DF4 -_08115FB0: - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08115FCC - ldr r0, _08115FC8 @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - lsrs r0, 1 - b _081160F4 - .align 2, 0 -_08115FC8: .4byte gUnknown_083F8DF4 -_08115FCC: - ldr r0, _08115FDC @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - b _081160F4 - .align 2, 0 -_08115FDC: .4byte gUnknown_083F8DF4 -_08115FE0: - ldr r0, _0811600C @ =gLocalTime - ldrb r0, [r0, 0x2] - subs r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bhi _08116014 - cmp r3, 0x5 - bls _08115FFA - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0811605E -_08115FFA: - ldr r0, _08116010 @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - lsrs r0, 1 - b _081160F4 - .align 2, 0 -_0811600C: .4byte gLocalTime -_08116010: .4byte gUnknown_083F8DF4 -_08116014: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08116034 - cmp r3, 0x6 - bls _08116034 - ldr r0, _08116030 @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - lsrs r0, 2 - b _081160F4 - .align 2, 0 -_08116030: .4byte gUnknown_083F8DF4 -_08116034: - ldr r0, _08116044 @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - lsrs r0, 1 - b _081160F4 - .align 2, 0 -_08116044: .4byte gUnknown_083F8DF4 -_08116048: - ldr r0, _08116064 @ =gLocalTime - ldrb r0, [r0, 0x2] - subs r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bhi _0811607C - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08116068 -_0811605E: - movs r0, 0x1 - b _081160F4 - .align 2, 0 -_08116064: .4byte gLocalTime -_08116068: - ldr r0, _08116078 @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - lsrs r0, 1 - b _081160F4 - .align 2, 0 -_08116078: .4byte gUnknown_083F8DF4 -_0811607C: - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081160B0 - cmp r3, 0xC - bls _0811609C - ldr r0, _08116098 @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - lsrs r0, 1 - b _081160F4 - .align 2, 0 -_08116098: .4byte gUnknown_083F8DF4 -_0811609C: - ldr r0, _081160AC @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - b _081160F4 - .align 2, 0 -_081160AC: .4byte gUnknown_083F8DF4 -_081160B0: - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _081160E4 - cmp r3, 0xC - bls _081160D0 - ldr r0, _081160CC @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - b _081160F4 - .align 2, 0 -_081160CC: .4byte gUnknown_083F8DF4 -_081160D0: - ldr r0, _081160E0 @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x1] - b _081160F4 - .align 2, 0 -_081160E0: .4byte gUnknown_083F8DF4 -_081160E4: - ldr r0, _081160FC @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 25 - lsrs r0, 24 -_081160F4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081160FC: .4byte gUnknown_083F8DF4 - thumb_func_end sub_8115F58 - - thumb_func_start sub_8116100 -sub_8116100: @ 8116100 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r4, 0 - ldr r1, _08116188 @ =gUnknown_083F8ECE - mov r0, sp - movs r2, 0x8 - bl memcpy - bl Random - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r7, 0 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r3, _0811618C @ =0x02019000 - ldr r1, _08116190 @ =gTasks - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - ldrh r2, [r0, 0x14] - adds r1, r3, 0 - adds r1, 0x7C - strb r2, [r1] - adds r1, 0x3 - strb r4, [r1] - subs r1, 0x1 - strb r4, [r1] - subs r1, 0x1 - strb r4, [r1] - ldrh r0, [r0, 0x18] - adds r1, r7, 0 - bl sub_8115F58 - adds r4, r0, 0 - lsls r4, 24 - lsrs r1, r4, 24 - adds r0, r7, 0 - bl __modsi3 - lsrs r4, 25 - subs r0, r4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08116194 @ =gLocalTime - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - movs r5, 0x1 - cmp r0, 0xC - bgt _08116180 - movs r5, 0 -_08116180: - cmp r6, 0x4F - bhi _08116198 - lsls r0, r5, 25 - b _081161A2 - .align 2, 0 -_08116188: .4byte gUnknown_083F8ECE -_0811618C: .4byte 0x02019000 -_08116190: .4byte gTasks -_08116194: .4byte gLocalTime -_08116198: - lsls r1, r5, 24 - asrs r1, 24 - movs r0, 0x1 - subs r0, r1 - lsls r0, 25 -_081161A2: - lsrs r5, r0, 24 - ldr r6, _081162D8 @ =0x02019000 - ldrb r0, [r6, 0x4] - lsls r0, 30 - mov r10, r0 - lsrs r0, 25 - ldr r1, _081162DC @ =gUnknown_083F8DF4 - adds r0, r1 - lsls r4, 24 - asrs r4, 24 - ldrh r0, [r0, 0x1A] - adds r4, r0 - adds r0, r6, 0 - adds r0, 0x80 - strh r4, [r0] - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _081161D4 - ldr r1, _081162E0 @ =0x47800000 - bl __addsf3 -_081161D4: - ldr r1, _081162E4 @ =0x40a00000 - bl __divsf3 - bl __fixunssfsi - lsls r0, 16 - lsrs r4, r0, 16 - lsls r0, r4, 1 - adds r0, r4 - mov r8, r0 - adds r0, r6, 0 - adds r0, 0x82 - mov r2, r8 - strh r2, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - movs r0, 0x1 - ands r0, r7 - lsls r1, r5, 24 - asrs r1, 24 - adds r0, r1 - lsls r0, 1 - add r0, sp - movs r1, 0 - ldrsh r4, [r0, r1] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _0811621A - ldr r1, _081162E0 @ =0x47800000 - bl __addsf3 -_0811621A: - ldr r2, _081162E8 @ =0x02019088 - str r0, [r2] - adds r7, r6, 0 - adds r7, 0x8C - mov r1, r10 - lsrs r0, r1, 25 - ldr r2, _081162DC @ =gUnknown_083F8DF4 - adds r0, r2 - movs r1, 0x18 - ldrsh r4, [r0, r1] - adds r0, r4, 0 - bl __floatsisf - adds r5, r0, 0 - cmp r4, 0 - bge _08116242 - ldr r1, _081162E0 @ =0x47800000 - bl __addsf3 - adds r5, r0, 0 -_08116242: - str r5, [r7] - adds r7, r6, 0 - adds r7, 0x90 - ldr r1, _081162EC @ =0x3f000000 - adds r0, r5, 0 - bl __mulsf3 - adds r1, r5, 0 - bl __subsf3 - adds r5, r0, 0 - mov r2, r8 - lsls r0, r2, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - bl __floatsisf - adds r2, r0, 0 - cmp r4, 0 - bge _08116272 - ldr r1, _081162E0 @ =0x47800000 - bl __addsf3 - adds r2, r0, 0 -_08116272: - adds r0, r5, 0 - adds r1, r2, 0 - bl __divsf3 - str r0, [r7] - adds r1, r6, 0 - adds r1, 0x94 - ldr r0, _081162F0 @ =0x42880000 - str r0, [r1] - adds r1, 0x8 - ldr r0, _081162F4 @ =0x00000000 - str r0, [r1] - adds r5, r6, 0 - adds r5, 0x98 - adds r0, r4, 0 - bl __floatsisf - adds r2, r0, 0 - cmp r4, 0 - bge _081162A2 - ldr r1, _081162E0 @ =0x47800000 - bl __addsf3 - adds r2, r0, 0 -_081162A2: - ldr r0, _081162F8 @ =0x41000000 - adds r1, r2, 0 - bl __divsf3 - bl __negsf2 - str r0, [r5] - adds r1, r6, 0 - adds r1, 0xA0 - ldr r0, _081162FC @ =0x42100000 - str r0, [r1] - ldr r1, _08116300 @ =gTasks - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - ldr r1, _08116304 @ =sub_8116308 - str r1, [r0] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081162D8: .4byte 0x02019000 -_081162DC: .4byte gUnknown_083F8DF4 -_081162E0: .4byte 0x47800000 -_081162E4: .4byte 0x40a00000 -_081162E8: .4byte 0x02019088 -_081162EC: .4byte 0x3f000000 -_081162F0: .4byte 0x42880000 -_081162F4: .4byte 0x00000000 -_081162F8: .4byte 0x41000000 -_081162FC: .4byte 0x42100000 -_08116300: .4byte gTasks -_08116304: .4byte sub_8116308 - thumb_func_end sub_8116100 - - thumb_func_start sub_8116308 -sub_8116308: @ 8116308 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08116368 @ =0x02019000 - ldrb r1, [r3, 0x3] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r3, 0x3] - adds r2, r3, 0 - adds r2, 0x7C - adds r1, r3, 0 - adds r1, 0x3C - ldrb r2, [r2] - adds r1, r2 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r2, _0811636C @ =gSprites - adds r1, r2 - str r1, [r3, 0x38] - ldr r2, _08116370 @ =sub_81191F4 - str r2, [r1, 0x1C] - ldr r1, _08116374 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldrh r1, [r4, 0x14] - adds r1, 0x1 - strh r1, [r4, 0x14] - ldrh r0, [r4, 0x18] - adds r0, 0x1 - strh r0, [r4, 0x18] - movs r0, 0x6 - subs r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl sub_81182F8 - movs r0, 0x5C - bl m4aSongNumStart - ldr r0, _08116378 @ =sub_811637C - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08116368: .4byte 0x02019000 -_0811636C: .4byte gSprites -_08116370: .4byte sub_81191F4 -_08116374: .4byte gTasks -_08116378: .4byte sub_811637C - thumb_func_end sub_8116308 - - thumb_func_start sub_811637C -sub_811637C: @ 811637C - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _081163B0 @ =0x02019000 - adds r0, r4, 0 - adds r0, 0x7D - ldrb r0, [r0] - cmp r0, 0 - beq _08116464 - ldrb r1, [r4, 0x3] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081163B4 - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08116464 - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - strb r0, [r4, 0x3] - b _08116464 - .align 2, 0 -_081163B0: .4byte 0x02019000 -_081163B4: - ldr r2, _08116428 @ =gTasks - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - adds r6, r0, r2 - movs r2, 0xA - ldrsh r0, [r6, r2] - adds r7, r1, 0 - cmp r0, 0 - bne _08116400 - adds r0, r4, 0 - adds r0, 0x7E - ldrb r1, [r0] - adds r0, r5, 0 - bl sub_8116D54 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r4, 0x1A] - lsls r1, 28 - lsrs r1, 28 - adds r2, r4, 0 - adds r2, 0x1B - adds r1, r2 - ldrb r1, [r1] - bl sub_8116E5C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x12] - cmp r0, 0x1 - bne _08116400 - adds r0, r4, 0 - adds r0, 0xB8 - movs r1, 0x80 - lsls r1, 5 - bl sub_8124CE8 -_08116400: - ldr r0, _08116428 @ =gTasks - adds r1, r7, r5 - lsls r1, 3 - adds r4, r1, r0 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x3C - bgt _08116430 - ldr r0, _0811642C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08116420 - movs r0, 0x3C - strh r0, [r4, 0xA] -_08116420: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _08116464 - .align 2, 0 -_08116428: .4byte gTasks -_0811642C: .4byte gMain -_08116430: - ldr r1, _0811646C @ =0x02019000 - ldrb r0, [r1, 0x1A] - lsls r0, 28 - lsrs r0, 28 - adds r1, 0x1B - adds r0, r1 - ldrb r0, [r0] - bl sub_8117158 - ldrh r1, [r4, 0x20] - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_8117AA8 - ldrb r1, [r4, 0x14] - subs r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_8117C60 - movs r0, 0x20 - strh r0, [r4, 0xA] - ldr r0, _08116470 @ =sub_8116474 - str r0, [r4] -_08116464: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811646C: .4byte 0x02019000 -_08116470: .4byte sub_8116474 - thumb_func_end sub_811637C - - thumb_func_start sub_8116474 -sub_8116474: @ 8116474 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _081164C8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0xA] - subs r1, r0, 0x1 - strh r1, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - ble _081164DC - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _081164A0 - ldr r1, _081164CC @ =gSpriteCoordOffsetX - ldrh r0, [r1] - subs r0, 0x2 - strh r0, [r1] -_081164A0: - ldr r1, _081164D0 @ =0x02019000 - ldrh r0, [r1, 0x26] - subs r0, 0x4 - strh r0, [r1, 0x26] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x68 - bne _08116504 - ldr r2, _081164D4 @ =gSprites - adds r0, r1, 0 - adds r0, 0x55 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _081164D8 @ =sub_81184CC - str r1, [r0] - b _08116504 - .align 2, 0 -_081164C8: .4byte gTasks -_081164CC: .4byte gSpriteCoordOffsetX -_081164D0: .4byte 0x02019000 -_081164D4: .4byte gSprites -_081164D8: .4byte sub_81184CC -_081164DC: - ldrh r0, [r4, 0x20] - lsls r0, 24 - lsrs r0, 24 - bl sub_8117D68 - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _081164F2 - movs r0, 0x79 - b _081164F4 -_081164F2: - movs r0, 0x3D -_081164F4: - strh r0, [r4, 0xA] - ldr r0, _0811650C @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _08116510 @ =sub_8116514 - str r0, [r1] -_08116504: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811650C: .4byte gTasks -_08116510: .4byte sub_8116514 - thumb_func_end sub_8116474 - - thumb_func_start sub_8116514 -sub_8116514: @ 8116514 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _08116564 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0xA] - subs r1, r0, 0x1 - strh r1, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _08116584 - movs r0, 0xA - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _0811653E - adds r0, 0xF -_0811653E: - asrs r0, 4 - lsls r0, 4 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - beq _08116568 - cmp r0, 0x8 - bne _08116590 - movs r0, 0 - movs r1, 0xFF - bl sub_8117AA8 - movs r0, 0 - movs r1, 0xFF - bl sub_8117C60 - b _08116590 - .align 2, 0 -_08116564: .4byte gTasks -_08116568: - ldrh r1, [r4, 0x20] - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_8117AA8 - ldrb r1, [r4, 0x14] - subs r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_8117C60 - b _08116590 -_08116584: - ldr r1, _08116598 @ =sub_8116638 - adds r0, r2, 0 - movs r2, 0x1E - movs r3, 0 - bl sub_8116C34 -_08116590: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08116598: .4byte sub_8116638 - thumb_func_end sub_8116514 - - thumb_func_start sub_811659C -sub_811659C: @ 811659C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _081165F4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08116600 - cmp r0, 0 - blt _08116600 - cmp r0, 0x2 - bgt _08116600 - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _08116624 - movs r0, 0x1D - bl sub_8053108 - ldrh r1, [r4, 0x1E] - adds r1, 0x1 - strh r1, [r4, 0x1E] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - bcs _081165E4 - movs r0, 0x1E - ldrsh r1, [r4, r0] - movs r0, 0x1D - bl sav12_xor_set -_081165E4: - ldr r1, _081165F8 @ =sub_811677C - ldr r2, _081165FC @ =0x0000ffff - adds r0, r5, 0 - movs r3, 0x3 - bl sub_8116C34 - b _08116624 - .align 2, 0 -_081165F4: .4byte gTasks -_081165F8: .4byte sub_811677C -_081165FC: .4byte 0x0000ffff -_08116600: - bl IsSEPlaying - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _08116624 - ldr r1, _0811662C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x1E] - ldr r1, _08116630 @ =sub_81167F4 - ldr r2, _08116634 @ =0x0000ffff - adds r0, r5, 0 - movs r3, 0x3 - bl sub_8116C34 -_08116624: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811662C: .4byte gTasks -_08116630: .4byte sub_81167F4 -_08116634: .4byte 0x0000ffff - thumb_func_end sub_811659C - - thumb_func_start sub_8116638 -sub_8116638: @ 8116638 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08116678 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x12 - ldrsh r1, [r0, r2] - cmp r1, 0 - beq _081166A8 - cmp r1, 0 - blt _081166A8 - cmp r1, 0x2 - bgt _081166A8 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0xC - bne _08116684 - ldr r0, _0811667C @ =0x00000185 - bl PlayFanfare - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08116680 @ =gUnknown_081C41A5 - b _0811669A - .align 2, 0 -_08116678: .4byte gTasks -_0811667C: .4byte 0x00000185 -_08116680: .4byte gUnknown_081C41A5 -_08116684: - movs r0, 0xC3 - lsls r0, 1 - bl PlayFanfare - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _081166A4 @ =gUnknown_081C4199 -_0811669A: - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - b _081166C4 - .align 2, 0 -_081166A4: .4byte gUnknown_081C4199 -_081166A8: - movs r0, 0x20 - bl m4aSongNumStart - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _081166DC @ =gUnknown_081C41AE - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint -_081166C4: - ldr r1, _081166E0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xA] - ldr r1, _081166E4 @ =sub_811659C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081166DC: .4byte gUnknown_081C41AE -_081166E0: .4byte gTasks -_081166E4: .4byte sub_811659C - thumb_func_end sub_8116638 - - thumb_func_start sub_81166E8 -sub_81166E8: @ 81166E8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _0811670C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x16 - ldrsh r5, [r4, r0] - cmp r5, 0 - beq _08116710 - cmp r5, 0x3 - beq _08116740 - ldrh r0, [r4, 0x16] - adds r0, 0x1 - b _08116748 - .align 2, 0 -_0811670C: .4byte gTasks -_08116710: - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] - movs r0, 0x15 - bl m4aSongNumStart - ldrh r0, [r4, 0x22] - bl sub_81180F4 - movs r2, 0x22 - ldrsh r1, [r4, r2] - ldr r0, _08116730 @ =0x0000270e - cmp r1, r0 - ble _08116734 - strh r5, [r4, 0xA] - b _0811674A - .align 2, 0 -_08116730: .4byte 0x0000270e -_08116734: - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - b _08116748 -_08116740: - movs r0, 0x15 - bl m4aSongNumStop - movs r0, 0 -_08116748: - strh r0, [r4, 0x16] -_0811674A: - ldr r0, _08116770 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08116768 - ldr r1, _08116774 @ =sub_81167F4 - ldr r2, _08116778 @ =0x0000ffff - adds r0, r6, 0 - movs r3, 0x3 - bl sub_8116C34 -_08116768: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08116770: .4byte gTasks -_08116774: .4byte sub_81167F4 -_08116778: .4byte 0x0000ffff - thumb_func_end sub_81166E8 - - thumb_func_start sub_811677C -sub_811677C: @ 811677C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _081167DC @ =gStringVar1 - ldr r6, _081167E0 @ =0x02019000 - ldrb r2, [r6, 0x19] - ldr r1, _081167E4 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r1, 0xC - ldrsh r0, [r4, r1] - adds r1, r2, 0 - muls r1, r0 - adds r0, r3, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r5, _081167E8 @ =gStringVar4 - ldr r1, _081167EC @ =gUnknown_081C41BD - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldrb r1, [r6, 0x19] - movs r2, 0xC - ldrsh r0, [r4, r2] - muls r0, r1 - movs r1, 0 - strh r0, [r4, 0xA] - strh r1, [r4, 0x16] - ldr r0, _081167F0 @ =sub_81166E8 - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081167DC: .4byte gStringVar1 -_081167E0: .4byte 0x02019000 -_081167E4: .4byte gTasks -_081167E8: .4byte gStringVar4 -_081167EC: .4byte gUnknown_081C41BD -_081167F0: .4byte sub_81166E8 - thumb_func_end sub_811677C - - thumb_func_start sub_81167F4 -sub_81167F4: @ 81167F4 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _08116868 @ =0x020190b8 - ldr r1, _0811686C @ =0x0000ffff - adds r0, r4, 0 - bl sub_8124D3C - adds r3, r4, 0 - adds r3, 0xB8 - ldrb r2, [r3] - movs r1, 0x7F - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3] - subs r3, 0xC - ldrb r2, [r3] - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3] - adds r2, r4, 0 - adds r2, 0xA0 - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - ldr r6, _08116870 @ =gSprites - ldr r2, _08116874 @ =gUnknown_083F8C00 - ldr r0, _08116878 @ =gTasks - lsls r3, r5, 2 - adds r3, r5 - lsls r3, 3 - adds r3, r0 - movs r0, 0x20 - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - adds r4, r0 - subs r4, 0x75 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, _0811687C @ =sub_8116880 - str r0, [r3] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08116868: .4byte 0x020190b8 -_0811686C: .4byte 0x0000ffff -_08116870: .4byte gSprites -_08116874: .4byte gUnknown_083F8C00 -_08116878: .4byte gTasks -_0811687C: .4byte sub_8116880 - thumb_func_end sub_81167F4 - - thumb_func_start sub_8116880 -sub_8116880: @ 8116880 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r1, _08116954 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - strh r5, [r0, 0x10] - ldr r4, _08116958 @ =0x02019000 - ldrb r0, [r4, 0x1A] - lsls r0, 28 - lsrs r0, 28 - adds r1, r4, 0 - adds r1, 0x1B - adds r0, r1 - strb r2, [r0] - movs r0, 0 - bl sub_8117158 - ldr r3, _0811695C @ =gSprites - adds r0, r4, 0 - adds r0, 0x6C - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r7, r3, 0 - movs r0, 0x3C - adds r0, r4 - mov r10, r0 - movs r1, 0x8 - adds r1, r7 - mov r8, r1 - ldr r0, _08116960 @ =0xfffffc00 - mov r9, r0 - ldr r1, _08116964 @ =0x000003ff - mov r12, r1 -_081168E4: - adds r0, r5, 0 - adds r0, 0x29 - add r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r7 - adds r2, r3, 0 - adds r2, 0x40 - add r0, r8 - ldr r0, [r0] - ldr r0, [r0] - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r2 - mov r0, r12 - ands r1, r0 - ldrh r2, [r3, 0x4] - mov r0, r9 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _081168E4 - ldr r0, _08116954 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r2, r1, r0 - movs r1, 0x22 - ldrsh r0, [r2, r1] - ldrb r4, [r4, 0x19] - cmp r0, r4 - blt _081169BC - movs r1, 0x14 - ldrsh r0, [r2, r1] - cmp r0, 0x6 - bne _08116970 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08116968 @ =gUnknown_081C41F1 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _0811696C @ =dp01t_12_3_battle_menu - b _08116992 - .align 2, 0 -_08116954: .4byte gTasks -_08116958: .4byte 0x02019000 -_0811695C: .4byte gSprites -_08116960: .4byte 0xfffffc00 -_08116964: .4byte 0x000003ff -_08116968: .4byte gUnknown_081C41F1 -_0811696C: .4byte dp01t_12_3_battle_menu -_08116970: - movs r0, 0x22 - ldrsh r1, [r2, r0] - ldr r0, _081169A0 @ =0x0000270f - cmp r1, r0 - bne _081169B0 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _081169A4 @ =gUnknown_081C4231 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _081169A8 @ =sub_8115734 -_08116992: - ldr r2, _081169AC @ =0x0000ffff - adds r0, r6, 0 - movs r3, 0x3 - bl sub_8116C34 - b _081169DE - .align 2, 0 -_081169A0: .4byte 0x0000270f -_081169A4: .4byte gUnknown_081C4231 -_081169A8: .4byte sub_8115734 -_081169AC: .4byte 0x0000ffff -_081169B0: - ldr r0, _081169B8 @ =sub_8115734 - str r0, [r2] - b _081169DE - .align 2, 0 -_081169B8: .4byte sub_8115734 -_081169BC: - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _081169EC @ =gUnknown_081C41D2 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _081169F0 @ =sub_81157AC - adds r0, r6, 0 - movs r2, 0x3C - movs r3, 0x3 - bl sub_8116C34 -_081169DE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081169EC: .4byte gUnknown_081C41D2 -_081169F0: .4byte sub_81157AC - thumb_func_end sub_8116880 - - thumb_func_start dp01t_12_3_battle_menu -dp01t_12_3_battle_menu: @ 81169F4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r1, _08116A84 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x14] - adds r0, r5, 0 - bl sub_8116CAC - bl sub_8116CF8 - bl sub_81185E8 - movs r0, 0 - bl sub_8117158 - movs r0, 0x6 - bl sub_81182F8 - ldr r7, _08116A88 @ =gSprites - ldr r3, _08116A8C @ =0x0201903c - movs r6, 0x5 - negs r6, r6 -_08116A2A: - adds r0, r4, 0x7 - adds r0, r3 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xB - bls _08116A2A - ldr r1, _08116A84 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r2, r0, r1 - movs r0, 0x22 - ldrsh r1, [r2, r0] - ldr r0, _08116A90 @ =0x0000270f - cmp r1, r0 - bne _08116AA0 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08116A94 @ =gUnknown_081C4231 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _08116A98 @ =sub_8115734 - ldr r2, _08116A9C @ =0x0000ffff - adds r0, r5, 0 - movs r3, 0x3 - bl sub_8116C34 - b _08116AA4 - .align 2, 0 -_08116A84: .4byte gTasks -_08116A88: .4byte gSprites -_08116A8C: .4byte 0x0201903c -_08116A90: .4byte 0x0000270f -_08116A94: .4byte gUnknown_081C4231 -_08116A98: .4byte sub_8115734 -_08116A9C: .4byte 0x0000ffff -_08116AA0: - ldr r0, _08116AAC @ =sub_8115734 - str r0, [r2] -_08116AA4: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08116AAC: .4byte sub_8115734 - thumb_func_end dp01t_12_3_battle_menu - - thumb_func_start sub_8116AB0 -sub_8116AB0: @ 8116AB0 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _08116AF0 @ =0x020190b8 - ldr r1, _08116AF4 @ =0x0000ffff - adds r0, r4, 0 - bl sub_8124D3C - adds r0, r4, 0 - bl sub_8124918 - ldr r1, _08116AF8 @ =gSaveBlock1 - ldr r2, _08116AFC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x22] - ldr r2, _08116B00 @ =0x00000494 - adds r1, r2 - strh r0, [r1] - subs r4, 0xB8 - lsls r0, 16 - lsrs r0, 16 - ldrb r4, [r4, 0x19] - cmp r0, r4 - bcs _08116B08 - ldr r1, _08116B04 @ =gUnknown_0202E8CC - movs r0, 0x1 - b _08116B0C - .align 2, 0 -_08116AF0: .4byte 0x020190b8 -_08116AF4: .4byte 0x0000ffff -_08116AF8: .4byte gSaveBlock1 -_08116AFC: .4byte gTasks -_08116B00: .4byte 0x00000494 -_08116B04: .4byte gUnknown_0202E8CC -_08116B08: - ldr r1, _08116B34 @ =gUnknown_0202E8CC - movs r0, 0 -_08116B0C: - strh r0, [r1] - movs r0, 0 - str r0, [sp] - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginHardwarePaletteFade - ldr r1, _08116B38 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _08116B3C @ =sub_8116B40 - str r1, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08116B34: .4byte gUnknown_0202E8CC -_08116B38: .4byte gTasks -_08116B3C: .4byte sub_8116B40 - thumb_func_end sub_8116AB0 - - thumb_func_start sub_8116B40 -sub_8116B40: @ 8116B40 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl UpdatePaletteFade - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08116B9E - movs r0, 0 - bl SetVBlankCallback - ldr r0, _08116BA4 @ =0x02019000 - movs r2, 0xBE - lsls r2, 1 - movs r1, 0 - bl memset - ldr r1, _08116BA8 @ =gSpriteCoordOffsetX - ldr r0, _08116BAC @ =gSpriteCoordOffsetY - strh r4, [r0] - strh r4, [r1] - bl sub_80F9368 - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl ResetSpriteData - bl sub_80F9020 - ldr r0, _08116BB0 @ =REG_BLDCNT - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - ldr r1, _08116BB4 @ =gUnknown_0300485C - ldr r0, _08116BB8 @ =sub_8080990 - str r0, [r1] - ldr r0, _08116BBC @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - adds r0, r5, 0 - bl DestroyTask -_08116B9E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08116BA4: .4byte 0x02019000 -_08116BA8: .4byte gSpriteCoordOffsetX -_08116BAC: .4byte gSpriteCoordOffsetY -_08116BB0: .4byte REG_BLDCNT -_08116BB4: .4byte gUnknown_0300485C -_08116BB8: .4byte sub_8080990 -_08116BBC: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_8116B40 - - thumb_func_start sub_8116BC0 -sub_8116BC0: @ 8116BC0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _08116C24 @ =0x02019000 - adds r7, r0, 0 - adds r7, 0xA8 - ldrh r1, [r7] - adds r6, r0, 0 - cmp r1, 0 - beq _08116BE4 - ldr r0, _08116C28 @ =gMain - adds r2, r6, 0 - adds r2, 0xAA - ldrh r1, [r0, 0x2E] - ldrh r0, [r2] - ands r0, r1 - cmp r0, 0 - beq _08116C0E -_08116BE4: - ldr r1, _08116C2C @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - adds r5, r6, 0 - adds r5, 0xAC - ldr r1, [r5] - str r1, [r0] - adds r4, r6, 0 - adds r4, 0xAA - ldrh r0, [r4] - cmp r0, 0 - beq _08116C06 - movs r0, 0x5 - bl PlaySE -_08116C06: - movs r0, 0 - str r0, [r5] - strh r0, [r4] - strh r0, [r7] -_08116C0E: - adds r2, r6, 0 - adds r2, 0xA8 - ldrh r1, [r2] - ldr r0, _08116C30 @ =0x0000ffff - cmp r1, r0 - beq _08116C1E - subs r0, r1, 0x1 - strh r0, [r2] -_08116C1E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08116C24: .4byte 0x02019000 -_08116C28: .4byte gMain -_08116C2C: .4byte gTasks -_08116C30: .4byte 0x0000ffff - thumb_func_end sub_8116BC0 - - thumb_func_start sub_8116C34 -sub_8116C34: @ 8116C34 - push {r4-r7,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r2, 16 - lsrs r4, r2, 16 - lsls r3, 16 - lsrs r3, 16 - ldr r0, _08116C84 @ =0x02019000 - mov r12, r0 - mov r2, r12 - adds r2, 0xB4 - ldr r1, _08116C88 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - mov r2, r12 - adds r7, r1, 0 - cmp r5, 0 - bne _08116C64 - adds r5, r0, 0 -_08116C64: - adds r0, r2, 0 - adds r0, 0xAC - str r5, [r0] - subs r0, 0x4 - strh r4, [r0] - ldr r0, _08116C8C @ =0x0000ffff - cmp r4, r0 - bne _08116C90 - cmp r3, 0 - bne _08116C90 - adds r1, r2, 0 - adds r1, 0xAA - ldrh r0, [r1] - orrs r4, r0 - strh r4, [r1] - b _08116C96 - .align 2, 0 -_08116C84: .4byte 0x02019000 -_08116C88: .4byte gTasks -_08116C8C: .4byte 0x0000ffff -_08116C90: - adds r0, r2, 0 - adds r0, 0xAA - strh r3, [r0] -_08116C96: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r7 - ldr r1, _08116CA8 @ =sub_8116BC0 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08116CA8: .4byte sub_8116BC0 - thumb_func_end sub_8116C34 - - thumb_func_start sub_8116CAC -sub_8116CAC: @ 8116CAC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r2, 0 - ldr r0, _08116CF0 @ =0x02019000 - strb r2, [r0] - movs r1, 0 - strb r1, [r0, 0x3] - adds r3, r0, 0 - ldr r6, _08116CF4 @ =gTasks - adds r4, r3, 0 - adds r4, 0x1B -_08116CC4: - adds r0, r2, r4 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _08116CC4 - ldrb r1, [r3, 0x1A] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - strb r0, [r3, 0x1A] - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r6 - movs r1, 0 - strh r1, [r0, 0xA] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08116CF0: .4byte 0x02019000 -_08116CF4: .4byte gTasks - thumb_func_end sub_8116CAC - - thumb_func_start sub_8116CF8 -sub_8116CF8: @ 8116CF8 - push {lr} - ldr r1, _08116D48 @ =0x02019000 - movs r0, 0 - str r0, [r1, 0x8] - movs r2, 0 - adds r1, 0xC - movs r3, 0 -_08116D06: - adds r0, r2, r1 - strb r3, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _08116D06 - movs r2, 0 - ldr r3, _08116D4C @ =0x02019012 - movs r1, 0 -_08116D1A: - adds r0, r2, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _08116D1A - movs r2, 0 - ldr r3, _08116D50 @ =0x02019016 - movs r1, 0 -_08116D2E: - adds r0, r2, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _08116D2E - movs r0, 0x1 - movs r1, 0xFF - bl sub_8117C60 - pop {r0} - bx r0 - .align 2, 0 -_08116D48: .4byte 0x02019000 -_08116D4C: .4byte 0x02019012 -_08116D50: .4byte 0x02019016 - thumb_func_end sub_8116CF8 - - thumb_func_start sub_8116D54 -sub_8116D54: @ 8116D54 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x1C - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - mov r1, sp - ldr r0, _08116D88 @ =gUnknown_083F8ED8 - ldm r0!, {r2,r4,r6} - stm r1!, {r2,r4,r6} - ldr r0, [r0] - str r0, [r1] - add r2, sp, 0x10 - adds r1, r2, 0 - ldr r0, _08116D8C @ =gUnknown_083F8EE8 - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - mov r9, r2 - cmp r5, 0xB - bls _08116D90 - movs r0, 0 - b _08116E38 - .align 2, 0 -_08116D88: .4byte gUnknown_083F8ED8 -_08116D8C: .4byte gUnknown_083F8EE8 -_08116D90: - ldr r6, _08116E48 @ =0x02019000 - ldr r1, _08116E4C @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r7, 0x14 - ldrsh r2, [r0, r7] - adds r2, r6, r2 - ldr r4, _08116E50 @ =gUnknown_083F8D90 - lsls r5, 3 - adds r3, r5, r4 - ldrb r1, [r3, 0x2] - strb r1, [r2, 0xB] - ldrb r1, [r3, 0x2] - strh r1, [r0, 0x20] - adds r0, r4, 0x4 - adds r0, r5, r0 - ldr r1, [r6, 0x8] - ldr r0, [r0] - orrs r1, r0 - str r1, [r6, 0x8] - movs r3, 0 - mov r8, r4 - mov r12, r5 - adds r5, r0, 0 - adds r4, r6, 0 - adds r4, 0x12 -_08116DC8: - lsls r0, r3, 2 - mov r1, sp - adds r2, r1, r0 - ldr r0, [r2] - ands r0, r5 - cmp r0, 0 - beq _08116DDE - adds r1, r3, r4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08116DDE: - adds r0, r3, r4 - ldrb r0, [r0] - cmp r0, 0x2 - bls _08116DEE - ldr r0, [r6, 0x8] - ldr r1, [r2] - orrs r0, r1 - str r0, [r6, 0x8] -_08116DEE: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _08116DC8 - movs r2, 0 - ldr r0, _08116E54 @ =gUnknown_083F8D94 - add r0, r12 - ldr r7, [r0] - ldr r4, _08116E58 @ =0x02019016 - mov r5, r9 -_08116E04: - lsls r0, r2, 2 - adds r3, r5, r0 - ldr r0, [r3] - ands r0, r7 - cmp r0, 0 - beq _08116E18 - adds r1, r2, r4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08116E18: - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, 0x3 - bls _08116E28 - ldr r0, [r6, 0x8] - ldr r1, [r3] - orrs r0, r1 - str r0, [r6, 0x8] -_08116E28: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _08116E04 - mov r0, r12 - add r0, r8 - ldrb r0, [r0, 0x2] -_08116E38: - add sp, 0x1C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08116E48: .4byte 0x02019000 -_08116E4C: .4byte gTasks -_08116E50: .4byte gUnknown_083F8D90 -_08116E54: .4byte gUnknown_083F8D94 -_08116E58: .4byte 0x02019016 - thumb_func_end sub_8116D54 - - thumb_func_start sub_8116E5C -sub_8116E5C: @ 8116E5C - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - lsrs r3, r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x12 - bhi _08116EF0 - cmp r2, 0xF - bhi _08116EEC - lsls r0, r2, 2 - ldr r1, _08116E80 @ =_08116E84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08116E80: .4byte _08116E84 - .align 2, 0 -_08116E84: - .4byte _08116EC4 - .4byte _08116EC8 - .4byte _08116EC8 - .4byte _08116EC8 - .4byte _08116EC8 - .4byte _08116EDC - .4byte _08116EEC - .4byte _08116EEC - .4byte _08116EEC - .4byte _08116EEC - .4byte _08116EDC - .4byte _08116EEC - .4byte _08116EEC - .4byte _08116EEC - .4byte _08116EEC - .4byte _08116EDC -_08116EC4: - movs r0, 0x3 - b _08116EF2 -_08116EC8: - adds r0, r2, 0x5 - cmp r3, r0 - beq _08116EE8 - adds r0, 0x5 - cmp r3, r0 - beq _08116EE8 - adds r0, 0x5 - cmp r3, r0 - bne _08116EF0 - b _08116EE8 -_08116EDC: - adds r0, r2, 0x1 - cmp r3, r0 - blt _08116EF0 - adds r0, r2, 0x4 - cmp r3, r0 - bgt _08116EF0 -_08116EE8: - movs r0, 0x1 - b _08116EF2 -_08116EEC: - cmp r3, r2 - beq _08116EE8 -_08116EF0: - movs r0, 0 -_08116EF2: - pop {r1} - bx r1 - thumb_func_end sub_8116E5C - - thumb_func_start sub_8116EF8 -sub_8116EF8: @ 8116EF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0 - str r0, [sp, 0x18] - cmp r6, 0xA - beq _08116F1E - cmp r6, 0xA - bgt _08116F1A - cmp r6, 0x5 - beq _08116F1E - b _08116F7C -_08116F1A: - cmp r6, 0xF - bne _08116F7C -_08116F1E: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0x5 - ldr r7, _08116F70 @ =0x020190b8 - cmp r4, r0 - bge _08116F5E - adds r1, r7, 0 - subs r1, 0xB8 - ldr r3, _08116F74 @ =gUnknown_083F8C00 - ldr r5, [r1, 0x8] - adds r6, r3, 0 - adds r6, 0x8 - adds r2, r0, 0 -_08116F3A: - lsls r0, r4, 2 - adds r0, r4 - lsls r1, r0, 2 - adds r0, r1, r6 - ldr r0, [r0] - ands r0, r5 - cmp r0, 0 - bne _08116F54 - adds r0, r1, r3 - ldrh r0, [r0, 0x10] - ldr r1, [sp, 0x18] - orrs r1, r0 - str r1, [sp, 0x18] -_08116F54: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r2 - blt _08116F3A -_08116F5E: - ldr r0, _08116F78 @ =0x0000dfff - ldr r2, [sp, 0x18] - ands r2, r0 - str r2, [sp, 0x18] - adds r0, r7, 0 - adds r1, r2, 0 - bl sub_8124CE8 - b _0811713C - .align 2, 0 -_08116F70: .4byte 0x020190b8 -_08116F74: .4byte gUnknown_083F8C00 -_08116F78: .4byte 0x0000dfff -_08116F7C: - mov r0, sp - ldr r1, _08116FC8 @ =gUnknown_083F8E9C - ldm r1!, {r2-r4} - stm r0!, {r2-r4} - ldm r1!, {r2-r4} - stm r0!, {r2-r4} - subs r0, r6, 0x1 - lsls r0, 24 - lsrs r0, 24 - movs r3, 0x1 - mov r10, r3 - cmp r0, 0x3 - bhi _08116F9A - movs r4, 0x3 - mov r10, r4 -_08116F9A: - adds r0, r6, 0 - movs r1, 0x5 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 8 - ldr r1, _08116FCC @ =0xffff0000 - adds r0, r1 - lsrs r7, r0, 16 - adds r0, r6, 0 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _08116FF8 - cmp r0, 0x2 - bgt _08116FD4 - cmp r0, 0x1 - beq _08116FE4 - ldr r4, _08116FD0 @ =0x02019000 - b _0811703A - .align 2, 0 -_08116FC8: .4byte gUnknown_083F8E9C -_08116FCC: .4byte 0xffff0000 -_08116FD0: .4byte 0x02019000 -_08116FD4: - cmp r0, 0x3 - beq _0811700C - cmp r0, 0x4 - beq _08117020 - ldr r4, _08116FE0 @ =0x02019000 - b _0811703A - .align 2, 0 -_08116FE0: .4byte 0x02019000 -_08116FE4: - ldr r3, _08116FF0 @ =gSprites - ldr r2, _08116FF4 @ =0x02019000 - adds r0, r2, 0 - adds r0, 0x43 - b _08117028 - .align 2, 0 -_08116FF0: .4byte gSprites -_08116FF4: .4byte 0x02019000 -_08116FF8: - ldr r3, _08117004 @ =gSprites - ldr r2, _08117008 @ =0x02019000 - adds r0, r2, 0 - adds r0, 0x44 - b _08117028 - .align 2, 0 -_08117004: .4byte gSprites -_08117008: .4byte 0x02019000 -_0811700C: - ldr r3, _08117018 @ =gSprites - ldr r2, _0811701C @ =0x02019000 - adds r0, r2, 0 - adds r0, 0x45 - b _08117028 - .align 2, 0 -_08117018: .4byte gSprites -_0811701C: .4byte 0x02019000 -_08117020: - ldr r3, _08117088 @ =gSprites - ldr r2, _0811708C @ =0x02019000 - adds r0, r2, 0 - adds r0, 0x46 -_08117028: - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - lsls r7, r0, 4 - adds r4, r2, 0 -_0811703A: - mov r2, r10 - cmp r2, 0x1 - bne _08117094 - ldr r1, _08117090 @ =gUnknown_083F8C00 - lsls r2, r6, 2 - adds r0, r2, r6 - lsls r0, 2 - adds r1, 0x8 - adds r0, r1 - ldr r1, [r4, 0x8] - ldr r0, [r0] - ands r1, r0 - str r2, [sp, 0x1C] - cmp r1, 0 - bne _0811713C - adds r0, r6, 0 - movs r1, 0x5 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - subs r1, r0, 0x1 - lsls r1, 3 - mov r3, sp - adds r2, r3, r1 - ldrh r1, [r2, 0x2] - adds r1, r7, r1 - strh r1, [r2, 0x2] - adds r1, r4, 0 - adds r1, 0xB8 - lsls r0, 3 - subs r0, 0x8 - adds r2, r3, r0 - adds r0, r1, 0 - movs r1, 0xD - bl sub_812492C - b _08117122 - .align 2, 0 -_08117088: .4byte gSprites -_0811708C: .4byte 0x02019000 -_08117090: .4byte gUnknown_083F8C00 -_08117094: - movs r4, 0 - lsls r0, r6, 2 - str r0, [sp, 0x1C] - ldr r1, _0811714C @ =0x02019000 - mov r8, r1 - ldr r2, _08117150 @ =gUnknown_083F8C00 - mov r9, r2 -_081170A2: - lsls r0, r4, 2 - adds r0, r4 - adds r0, r6, r0 - adds r0, 0x5 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r5, r0, 2 - mov r0, r9 - adds r0, 0x8 - adds r0, r5, r0 - mov r3, r8 - ldr r1, [r3, 0x8] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0811710E - adds r0, r2, 0 - movs r1, 0x5 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - subs r1, r0, 0x1 - lsls r1, 3 - mov r3, sp - adds r2, r3, r1 - ldrh r1, [r2, 0x2] - adds r1, r7, r1 - strh r1, [r2, 0x2] - adds r1, r4, 0 - adds r1, 0xD - lsls r1, 24 - lsrs r1, 24 - lsls r0, 3 - subs r0, 0x8 - adds r2, r3, r0 - mov r0, r8 - adds r0, 0xB8 - bl sub_812492C - mov r0, r10 - cmp r0, 0x3 - bne _08117104 - mov r1, r9 - adds r0, r5, r1 - ldrh r0, [r0, 0x10] - str r0, [sp, 0x18] -_08117104: - mov r0, r10 - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 -_0811710E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081170A2 - mov r2, r10 - cmp r2, 0x2 - beq _08117122 - movs r3, 0 - str r3, [sp, 0x18] -_08117122: - ldr r0, _08117154 @ =0x020190b8 - ldr r2, _08117150 @ =gUnknown_083F8C00 - ldr r4, [sp, 0x1C] - adds r1, r4, r6 - lsls r1, 2 - adds r1, r2 - ldrh r1, [r1, 0x10] - ldr r2, [sp, 0x18] - orrs r2, r1 - str r2, [sp, 0x18] - adds r1, r2, 0 - bl sub_8124CE8 -_0811713C: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811714C: .4byte 0x02019000 -_08117150: .4byte gUnknown_083F8C00 -_08117154: .4byte 0x020190b8 - thumb_func_end sub_8116EF8 - - thumb_func_start sub_8117158 -sub_8117158: @ 8117158 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _0811719C @ =0x02019000 - movs r0, 0x1 - strh r0, [r4, 0x2A] - movs r0, 0 - movs r1, 0 - bl sub_8117AA8 - ldr r0, _081171A0 @ =gBG1TilemapBuffer - ldr r1, _081171A4 @ =0xfffff800 - adds r4, r1 - movs r1, 0x10 - str r1, [sp] - movs r1, 0xD - str r1, [sp, 0x4] - adds r1, r4, 0 - movs r2, 0xE - movs r3, 0x7 - bl sub_8124E2C - cmp r5, 0xF - bhi _08117250 - lsls r0, r5, 2 - ldr r1, _081171A8 @ =_081171AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811719C: .4byte 0x02019000 -_081171A0: .4byte gBG1TilemapBuffer -_081171A4: .4byte 0xfffff800 -_081171A8: .4byte _081171AC - .align 2, 0 -_081171AC: - .4byte _08117360 - .4byte _081171EC - .4byte _081171EC - .4byte _081171EC - .4byte _081171EC - .4byte _08117220 - .4byte _08117250 - .4byte _08117250 - .4byte _08117250 - .4byte _08117250 - .4byte _08117220 - .4byte _08117250 - .4byte _08117250 - .4byte _08117250 - .4byte _08117250 - .4byte _08117220 -_081171EC: - movs r0, 0x4 - str r0, [sp, 0x18] - add r1, sp, 0x8 - movs r0, 0 - strb r0, [r1] - adds r0, r1, 0 - ldrb r0, [r0] - cmp r0, 0x3 - bhi _08117258 - add r4, sp, 0x10 - adds r3, r1, 0 -_08117202: - ldrb r2, [r3] - adds r2, r4 - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - adds r0, r5, r0 - strb r0, [r2] - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - ldrb r0, [r3] - ldr r1, [sp, 0x18] - cmp r0, r1 - bcc _08117202 - b _08117258 -_08117220: - movs r0, 0x5 - str r0, [sp, 0x18] - add r1, sp, 0x8 - movs r0, 0 - strb r0, [r1] - adds r0, r1, 0 - ldrb r0, [r0] - cmp r0, 0x4 - bhi _08117258 - add r3, sp, 0x10 - adds r2, r1, 0 -_08117236: - ldrb r1, [r2] - adds r1, r3 - ldrb r0, [r2] - adds r0, r5, r0 - strb r0, [r1] - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - ldrb r0, [r2] - ldr r1, [sp, 0x18] - cmp r0, r1 - bcc _08117236 - b _08117258 -_08117250: - movs r0, 0x1 - str r0, [sp, 0x18] - add r0, sp, 0x10 - strb r5, [r0] -_08117258: - add r1, sp, 0x8 - movs r0, 0 - strb r0, [r1] - adds r0, r1, 0 - ldrb r0, [r0] - ldr r1, [sp, 0x18] - cmp r0, r1 - bcs _08117360 - mov r0, sp - adds r0, 0xE - str r0, [sp, 0x1C] - add r1, sp, 0x10 - mov r9, r1 - add r0, sp, 0x8 - mov r12, r0 - mov r1, sp - adds r1, 0xA - str r1, [sp, 0x20] -_0811727C: - mov r1, r12 - ldrb r0, [r1] - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - ldr r1, _08117370 @ =gUnknown_083F8C00 - adds r0, r1 - ldrb r0, [r0, 0x6] - ldr r1, [sp, 0x1C] - strb r0, [r1] - mov r1, r12 - ldrb r0, [r1] - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - ldr r1, _08117370 @ =gUnknown_083F8C00 - adds r0, r1 - ldrb r0, [r0, 0x3] - ldr r1, [sp, 0x20] - strh r0, [r1] - mov r4, sp - adds r4, 0x9 - movs r0, 0 - strb r0, [r4] - ldrb r0, [r4] - cmp r0, 0x2 - bhi _08117350 - add r5, sp, 0xC - ldr r7, [sp, 0x20] - ldr r0, _08117374 @ =gBG1TilemapBuffer - mov r8, r0 - ldr r6, [sp, 0x1C] - ldr r1, _08117378 @ =0x020189a0 - mov r10, r1 -_081172C8: - mov r1, r12 - ldrb r0, [r1] - add r0, r9 - ldrb r0, [r0] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - ldr r0, _08117370 @ =gUnknown_083F8C00 - adds r1, r0 - adds r3, r4, 0 - ldrb r0, [r4] - ldrb r1, [r1, 0x4] - adds r0, r1 - lsls r0, 5 - strh r0, [r5] - ldrh r0, [r7] - ldrh r2, [r5] - adds r2, r0 - lsls r2, 1 - add r2, r8 - ldrb r0, [r6] - ldrb r1, [r4] - adds r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - add r0, r10 - ldrh r0, [r0] - strh r0, [r2] - ldrh r0, [r7] - ldrh r2, [r5] - adds r2, r0 - adds r2, 0x1 - lsls r2, 1 - add r2, r8 - ldrb r0, [r6] - ldrb r1, [r4] - adds r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - mov r1, r10 - adds r1, 0x2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - ldrh r0, [r7] - ldrh r2, [r5] - adds r2, r0 - adds r2, 0x2 - lsls r2, 1 - add r2, r8 - ldrb r0, [r6] - ldrb r1, [r4] - adds r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - ldr r1, _0811737C @ =0x020189a4 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldrb r0, [r3] - cmp r0, 0x2 - bls _081172C8 -_08117350: - mov r1, r12 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldrb r0, [r1] - ldr r1, [sp, 0x18] - cmp r0, r1 - bcc _0811727C -_08117360: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08117370: .4byte gUnknown_083F8C00 -_08117374: .4byte gBG1TilemapBuffer -_08117378: .4byte 0x020189a0 -_0811737C: .4byte 0x020189a4 - thumb_func_end sub_8117158 - - thumb_func_start sub_8117380 -sub_8117380: @ 8117380 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _081173B8 @ =gUnknown_083F8EF4 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x13 - bls _08117398 - movs r4, 0 -_08117398: - ldr r3, _081173BC @ =gUnknown_083F8C00 - lsls r0, r4, 2 - adds r0, r4 - lsls r2, r0, 2 - adds r0, r2, r3 - ldrb r0, [r0, 0x1] - lsls r0, 28 - lsrs r0, 28 - cmp r0, 0x4 - beq _081173EC - cmp r0, 0x4 - bgt _081173C0 - cmp r0, 0x3 - beq _081173C6 - b _08117428 - .align 2, 0 -_081173B8: .4byte gUnknown_083F8EF4 -_081173BC: .4byte gUnknown_083F8C00 -_081173C0: - cmp r0, 0xC - beq _0811740C - b _08117428 -_081173C6: - adds r0, r4, 0 - movs r1, 0x5 - bl __udivsi3 - subs r0, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _081173E8 @ =0x02019000 - adds r0, 0x16 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0x3 - bhi _08117428 - ldrb r0, [r1] - adds r0, 0x1 - b _08117402 - .align 2, 0 -_081173E8: .4byte 0x02019000 -_081173EC: - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08117408 @ =0x02019000 - adds r0, 0x12 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0x2 - bhi _08117428 - ldrb r0, [r1] - adds r0, 0x2 -_08117402: - add r0, sp - ldrb r0, [r0] - b _0811742A - .align 2, 0 -_08117408: .4byte 0x02019000 -_0811740C: - ldr r1, _08117424 @ =0x02019000 - adds r0, r3, 0 - adds r0, 0x8 - adds r0, r2, r0 - ldr r1, [r1, 0x8] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08117428 - mov r0, sp - ldrb r0, [r0, 0x4] - b _0811742A - .align 2, 0 -_08117424: .4byte 0x02019000 -_08117428: - movs r0, 0 -_0811742A: - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8117380 - - thumb_func_start sub_8117434 -sub_8117434: @ 8117434 - push {r4-r6,lr} - ldr r1, _081174AC @ =REG_BG2PA - ldr r4, _081174B0 @ =0x02019000 - ldrh r0, [r4, 0x2C] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x2E] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x30] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x32] - strh r0, [r1] - movs r0, 0x2E - ldrsh r2, [r4, r0] - ldr r0, _081174B4 @ =gSpriteCoordOffsetY - movs r3, 0 - ldrsh r1, [r0, r3] - adds r1, 0x50 - adds r0, r2, 0 - muls r0, r1 - movs r2, 0xE8 - lsls r2, 7 - subs r2, r0 - movs r6, 0x2C - ldrsh r5, [r4, r6] - ldr r0, _081174B8 @ =gSpriteCoordOffsetX - movs r6, 0 - ldrsh r3, [r0, r6] - adds r3, 0x74 - adds r0, r5, 0 - muls r0, r3 - subs r2, r0 - movs r5, 0x32 - ldrsh r0, [r4, r5] - muls r0, r1 - movs r1, 0xA8 - lsls r1, 7 - subs r1, r0 - movs r6, 0x30 - ldrsh r0, [r4, r6] - muls r0, r3 - subs r1, r0 - ldr r0, _081174BC @ =REG_BG2X_L - strh r2, [r0] - adds r0, 0x2 - ldr r3, _081174C0 @ =0x0fff0000 - ands r2, r3 - asrs r2, 16 - strh r2, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - ands r1, r3 - asrs r1, 16 - strh r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081174AC: .4byte REG_BG2PA -_081174B0: .4byte 0x02019000 -_081174B4: .4byte gSpriteCoordOffsetY -_081174B8: .4byte gSpriteCoordOffsetX -_081174BC: .4byte REG_BG2X_L -_081174C0: .4byte 0x0fff0000 - thumb_func_end sub_8117434 - - thumb_func_start sub_81174C4 -sub_81174C4: @ 81174C4 - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - muls r0, r1 - adds r1, r0, 0 - cmp r0, 0 - bge _081174D8 - adds r1, 0xFF -_081174D8: - lsls r0, r1, 8 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_81174C4 - - thumb_func_start sub_81174E0 -sub_81174E0: @ 81174E0 - push {lr} - adds r1, r0, 0 - movs r0, 0x80 - lsls r0, 9 - lsls r1, 16 - asrs r1, 16 - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_81174E0 - - thumb_func_start sub_81174F8 -sub_81174F8: @ 81174F8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r0, _08117520 @ =0x00002d9e - bl sub_814AAF8 - ldr r1, _08117524 @ =gUnknown_083F8EB4 - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08117520: .4byte 0x00002d9e -_08117524: .4byte gUnknown_083F8EB4 - thumb_func_end sub_81174F8 - - thumb_func_start sub_8117528 -sub_8117528: @ 8117528 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08117554 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811754C - movs r0, 0 - bl SetVBlankCallback - ldr r0, _08117558 @ =sub_8115384 - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_0811754C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08117554: .4byte gPaletteFade -_08117558: .4byte sub_8115384 - thumb_func_end sub_8117528 - - thumb_func_start sub_811755C -sub_811755C: @ 811755C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1A - movs r3, 0xD - bl MenuZeroFillWindowRect - bl MenuZeroFillScreen - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r2, _081175B4 @ =gPaletteFade - ldrb r1, [r2, 0x8] - lsls r1, 26 - lsrs r1, 26 - ldrb r3, [r2, 0x4] - movs r0, 0x40 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x4] - bl UpdatePaletteFade - ldr r1, _081175B8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _081175BC @ =sub_8117528 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081175B4: .4byte gPaletteFade -_081175B8: .4byte gTasks -_081175BC: .4byte sub_8117528 - thumb_func_end sub_811755C - - thumb_func_start sub_81175C0 -sub_81175C0: @ 81175C0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl MenuZeroFillScreen - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81175C0 - - thumb_func_start sub_81175DC -sub_81175DC: @ 81175DC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r1, _08117624 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r2, r1, 0x1 - strh r2, [r0, 0x8] - ldr r0, _08117628 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08117608 - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _0811761C -_08117608: - ldr r1, _0811762C @ =gUnknown_0202E8CC - movs r0, 0x1 - strh r0, [r1] - bl MenuZeroFillScreen - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask -_0811761C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08117624: .4byte gTasks -_08117628: .4byte gMain -_0811762C: .4byte gUnknown_0202E8CC - thumb_func_end sub_81175DC - - thumb_func_start sub_8117630 -sub_8117630: @ 8117630 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r2, _0811768C @ =gUnknown_083F8DF0 - ldr r0, _08117690 @ =gUnknown_0202E8CC - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - lsrs r1, 7 - lsls r1, 1 - adds r0, r1 - adds r0, r2 - ldrb r1, [r0] - ldr r0, _08117694 @ =gStringVar1 - movs r2, 0x2 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r5, _08117698 @ =gStringVar4 - ldr r1, _0811769C @ =gUnknown_081C40DF - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _081176A0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _081176A4 @ =sub_81174F8 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811768C: .4byte gUnknown_083F8DF0 -_08117690: .4byte gUnknown_0202E8CC -_08117694: .4byte gStringVar1 -_08117698: .4byte gStringVar4 -_0811769C: .4byte gUnknown_081C40DF -_081176A0: .4byte gTasks -_081176A4: .4byte sub_81174F8 - thumb_func_end sub_8117630 - - thumb_func_start Task_Roulette_0 -Task_Roulette_0: @ 81176A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08117758 @ =gStringVar1 - mov r10, r0 - ldr r1, _0811775C @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r6, r0, r1 - movs r0, 0x22 - ldrsh r1, [r6, r0] - mov r0, r10 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r5, _08117760 @ =gStringVar4 - ldr r1, _08117764 @ =gOtherText_Coins - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0 - movs r1, 0 - movs r2, 0x9 - movs r3, 0x3 - bl MenuDrawTextWindow - adds r0, r5, 0 - movs r1, 0x9 - movs r2, 0x1 - bl MenuPrint_RightAligned - ldr r2, _08117768 @ =gUnknown_083F8DF0 - ldr r1, _0811776C @ =gUnknown_0202E8CC - mov r8, r1 - ldrh r1, [r1] - movs r0, 0x1 - mov r9, r0 - ands r0, r1 - lsrs r1, 7 - lsls r1, 1 - adds r0, r1 - adds r0, r2 - ldrb r4, [r0] - mov r0, r10 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - movs r1, 0x22 - ldrsh r0, [r6, r1] - cmp r0, r4 - blt _081177BC - mov r0, r8 - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0811777C - mov r0, r9 - ands r0, r1 - cmp r0, 0 - beq _0811777C - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08117770 @ =gUnknown_081C4139 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _08117774 @ =sub_8117630 - ldr r2, _08117778 @ =0x0000ffff - adds r0, r7, 0 - movs r3, 0x3 - bl sub_8116C34 - b _081177E4 - .align 2, 0 -_08117758: .4byte gStringVar1 -_0811775C: .4byte gTasks -_08117760: .4byte gStringVar4 -_08117764: .4byte gOtherText_Coins -_08117768: .4byte gUnknown_083F8DF0 -_0811776C: .4byte gUnknown_0202E8CC -_08117770: .4byte gUnknown_081C4139 -_08117774: .4byte sub_8117630 -_08117778: .4byte 0x0000ffff -_0811777C: - ldr r4, _081177AC @ =gStringVar4 - ldr r1, _081177B0 @ =gUnknown_081C40DF - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _081177B4 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, _081177B8 @ =sub_81174F8 - str r1, [r0] - b _081177E4 - .align 2, 0 -_081177AC: .4byte gStringVar4 -_081177B0: .4byte gUnknown_081C40DF -_081177B4: .4byte gTasks -_081177B8: .4byte sub_81174F8 -_081177BC: - ldr r1, _081177F4 @ =gUnknown_081C411C - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r0, _081177F8 @ =sub_81175DC - str r0, [r6] - movs r0, 0 - strh r0, [r6, 0x22] - strh r0, [r6, 0x8] -_081177E4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081177F4: .4byte gUnknown_081C411C -_081177F8: .4byte sub_81175DC - thumb_func_end Task_Roulette_0 - - thumb_func_start PlayRoulette -PlayRoulette: @ 81177FC - push {lr} - bl ScriptContext2_Enable - ldr r0, _08117828 @ =sub_81176A8 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0811782C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _08117830 @ =gSaveBlock1 - ldr r2, _08117834 @ =0x00000494 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1, 0x22] - pop {r0} - bx r0 - .align 2, 0 -_08117828: .4byte Task_Roulette_0 -_0811782C: .4byte gTasks -_08117830: .4byte gSaveBlock1 -_08117834: .4byte 0x00000494 - thumb_func_end PlayRoulette - - thumb_func_start sub_8117838 -sub_8117838: @ 8117838 - push {r4,lr} - lsls r0, 24 - cmp r0, 0 - bne _08117884 - bl FreeAllSpritePalettes - ldr r0, _08117870 @ =gUnknown_083F9E30 - bl LoadSpritePalettes - ldr r0, _08117874 @ =gUnknown_083F92A8 - ldr r4, _08117878 @ =0x02017000 - adds r1, r4, 0 - bl LZ77UnCompWram - ldr r0, _0811787C @ =gUnknown_083F90FC - movs r2, 0xE0 - lsls r2, 4 - adds r1, r4, r2 - bl LZ77UnCompWram - ldr r0, _08117880 @ =gUnknown_083F9D3C - movs r1, 0x80 - lsls r1, 5 - adds r4, r1 - adds r1, r4, 0 - bl LZ77UnCompWram - b _08117888 - .align 2, 0 -_08117870: .4byte gUnknown_083F9E30 -_08117874: .4byte gUnknown_083F92A8 -_08117878: .4byte 0x02017000 -_0811787C: .4byte gUnknown_083F90FC -_08117880: .4byte gUnknown_083F9D3C -_08117884: - bl FreeAllSpritePalettes -_08117888: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8117838 - - thumb_func_start sub_8117890 -sub_8117890: @ 8117890 - push {r4-r6,lr} - adds r4, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, [r0, 0x4] - ldrb r3, [r1] - movs r1, 0x74 - movs r2, 0x50 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r0, _081178F4 @ =gSprites - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r6] - strh r0, [r1, 0x2E] - strh r4, [r1, 0x30] - adds r3, r1, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r3] - adds r1, 0x2C - ldrb r0, [r1] - movs r2, 0x40 - orrs r0, r2 - movs r2, 0x80 - orrs r0, r2 - strb r0, [r1] - ldrh r2, [r6] - adds r0, r2, 0 - adds r0, 0x1E - strh r0, [r6] - lsls r0, 16 - ldr r1, _081178F8 @ =0x01670000 - cmp r0, r1 - bls _081178EC - ldr r1, _081178FC @ =0xfffffeb6 - adds r0, r2, r1 - strh r0, [r6] -_081178EC: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_081178F4: .4byte gSprites -_081178F8: .4byte 0x01670000 -_081178FC: .4byte 0xfffffeb6 - thumb_func_end sub_8117890 - - thumb_func_start sub_8117900 -sub_8117900: @ 8117900 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - ldr r4, _08117A50 @ =gUnknown_083F9F54 - ldr r0, [r4] - ldr r5, _08117A54 @ =0x02000000 - adds r1, r5, 0 - bl LZ77UnCompWram - str r5, [sp] - mov r6, sp - ldrh r1, [r4, 0x6] - lsls r1, 16 - ldrh r0, [r4, 0x4] - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - ldr r4, _08117A58 @ =gUnknown_083F9F5C - ldr r0, [r4] - adds r1, r5, 0 - bl LZ77UnCompWram - str r5, [sp] - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x4] - ldrh r0, [r4, 0x6] - strh r0, [r6, 0x6] - mov r0, sp - bl LoadSpriteSheet - movs r7, 0 - ldr r0, _08117A5C @ =0x0001903c - adds r0, r5 - mov r9, r0 - ldr r0, _08117A60 @ =gSprites - mov r8, r0 -_08117950: - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 27 - lsrs r4, r0, 24 - movs r6, 0 - lsls r5, r7, 2 -_0811795C: - lsls r1, r6, 1 - adds r1, r6 - lsls r1, 3 - ldr r0, _08117A64 @ =gSpriteTemplate_83FA07C - adds r0, r1, r0 - adds r1, 0x94 - adds r2, r4, 0 - adds r2, 0x5C - movs r3, 0x1E - bl CreateSprite - adds r1, r6, 0 - adds r1, 0x1D - adds r1, r5, r1 - add r1, r9 - strb r0, [r1] - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0 - adds r0, 0x18 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x47 - bls _081179A0 - movs r4, 0 -_081179A0: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bls _0811795C - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _08117950 - movs r7, 0 - ldr r5, _08117A68 @ =0x0201903c - ldr r4, _08117A60 @ =gSprites -_081179BA: - lsls r1, r7, 1 - adds r1, r7 - lsls r1, 3 - ldr r0, _08117A6C @ =gSpriteTemplate_83F9FD4 - adds r0, r1, r0 - adds r1, 0x94 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x46 - movs r3, 0x1E - bl CreateSprite - adds r1, r7, 0 - adds r1, 0x29 - adds r1, r5 - strb r0, [r1] - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x3 - bls _081179BA - movs r7, 0 - ldr r5, _08117A68 @ =0x0201903c - ldr r4, _08117A60 @ =gSprites -_08117A00: - lsls r2, r7, 1 - adds r2, r7 - lsls r2, 3 - ldr r0, _08117A70 @ =gSpriteTemplate_83FA034 - adds r0, r2, r0 - adds r2, 0x5C - lsls r2, 16 - asrs r2, 16 - movs r1, 0x7E - movs r3, 0x1E - bl CreateSprite - adds r1, r7, 0 - adds r1, 0x2D - adds r1, r5 - strb r0, [r1] - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _08117A00 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08117A50: .4byte gUnknown_083F9F54 -_08117A54: .4byte 0x02000000 -_08117A58: .4byte gUnknown_083F9F5C -_08117A5C: .4byte 0x0001903c -_08117A60: .4byte gSprites -_08117A64: .4byte gSpriteTemplate_83FA07C -_08117A68: .4byte 0x0201903c -_08117A6C: .4byte gSpriteTemplate_83F9FD4 -_08117A70: .4byte gSpriteTemplate_83FA034 - thumb_func_end sub_8117900 - - thumb_func_start unref_sub_8117A74 -unref_sub_8117A74: @ 8117A74 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _08117AA0 @ =0x0201903c -_08117A7A: - adds r0, r4, 0 - adds r0, 0x1D - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08117AA4 @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xB - bls _08117A7A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08117AA0: .4byte 0x0201903c -_08117AA4: .4byte gSprites - thumb_func_end unref_sub_8117A74 - - thumb_func_start sub_8117AA8 -sub_8117AA8: @ 8117AA8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - cmp r0, 0 - beq _08117AF8 - cmp r0, 0x1 - bne _08117BA8 - movs r3, 0 - ldr r5, _08117AF0 @ =gSprites - ldr r4, _08117AF4 @ =0x0201903c - movs r2, 0x4 -_08117ACA: - adds r0, r3, 0 - adds r0, 0x1D - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x12 - bls _08117ACA - b _08117BA8 - .align 2, 0 -_08117AF0: .4byte gSprites -_08117AF4: .4byte 0x0201903c -_08117AF8: - movs r3, 0 - ldr r0, _08117B48 @ =gUnknown_083F8D90 - mov r12, r0 - ldr r7, _08117B4C @ =0x02019000 - movs r1, 0x4 - add r1, r12 - mov r9, r1 - ldr r5, _08117B50 @ =gSprites - adds r4, r7, 0 - adds r4, 0x3C - movs r6, 0x5 - negs r6, r6 -_08117B10: - lsls r2, r3, 3 - mov r1, r9 - adds r0, r2, r1 - ldr r1, [r7, 0x8] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08117B54 - mov r1, r12 - adds r0, r2, r1 - ldrb r0, [r0, 0x2] - cmp r0, r8 - beq _08117B54 - adds r0, r3, 0 - adds r0, 0x1D - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _08117B6E - .align 2, 0 -_08117B48: .4byte gUnknown_083F8D90 -_08117B4C: .4byte 0x02019000 -_08117B50: .4byte gSprites -_08117B54: - adds r0, r3, 0 - adds r0, 0x1D - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1] -_08117B6E: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xB - bls _08117B10 - cmp r3, 0x12 - bhi _08117BA8 - ldr r6, _08117BB4 @ =gSprites - ldr r4, _08117BB8 @ =0x0201903c - movs r5, 0x5 - negs r5, r5 -_08117B84: - adds r0, r3, 0 - adds r0, 0x1D - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r5, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x12 - bls _08117B84 -_08117BA8: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08117BB4: .4byte gSprites -_08117BB8: .4byte 0x0201903c - thumb_func_end sub_8117AA8 - - thumb_func_start sub_8117BBC -sub_8117BBC: @ 8117BBC - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r5, 0 - ldr r0, _08117C50 @ =0x0201903c - mov r8, r0 - ldr r4, _08117C54 @ =gSprites - movs r6, 0x4 -_08117BCC: - ldr r0, _08117C58 @ =gSpriteTemplate_83FA40C - movs r1, 0x74 - movs r2, 0x14 - movs r3, 0xA - bl CreateSprite - adds r3, r5, 0 - adds r3, 0x31 - add r3, r8 - strb r0, [r3] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r6 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - strh r1, [r0, 0x2E] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _08117C5C @ =sub_81184CC - str r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x5] - movs r7, 0xD - negs r7, r7 - adds r2, r7, 0 - ands r1, r2 - orrs r1, r6 - strb r1, [r0, 0x5] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x8 - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08117BCC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08117C50: .4byte 0x0201903c -_08117C54: .4byte gSprites -_08117C58: .4byte gSpriteTemplate_83FA40C -_08117C5C: .4byte sub_81184CC - thumb_func_end sub_8117BBC - - thumb_func_start sub_8117C60 -sub_8117C60: @ 8117C60 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r5, 0 - cmp r0, 0 - beq _08117CAC - ldr r4, _08117CA4 @ =gSprites - ldr r3, _08117CA8 @ =0x0201903c - movs r2, 0x4 -_08117C7E: - adds r0, r5, 0 - adds r0, 0x31 - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08117C7E - b _08117D58 - .align 2, 0 -_08117CA4: .4byte gSprites -_08117CA8: .4byte 0x0201903c -_08117CAC: - ldr r0, _08117CEC @ =0x02019000 - mov r12, r0 - ldr r6, _08117CF0 @ =gSprites - movs r0, 0x3C - add r0, r12 - mov r8, r0 - ldr r7, _08117CF4 @ =gUnknown_083F8C00 - movs r0, 0x5 - negs r0, r0 - mov r10, r0 -_08117CC0: - mov r0, r12 - adds r0, 0xC - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0 - beq _08117CD0 - cmp r5, r9 - bne _08117CF8 -_08117CD0: - adds r0, r5, 0 - adds r0, 0x31 - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _08117D4E - .align 2, 0 -_08117CEC: .4byte 0x02019000 -_08117CF0: .4byte gSprites -_08117CF4: .4byte gUnknown_083F8C00 -_08117CF8: - adds r3, r5, 0 - adds r3, 0x31 - add r3, r8 - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r10 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r3] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0, 0x3] - adds r0, 0x1 - lsls r0, 3 - adds r0, 0x4 - strh r0, [r2, 0x20] - ldrb r0, [r3] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0, 0x4] - adds r0, 0x1 - lsls r0, 3 - adds r0, 0x3 - strh r0, [r2, 0x22] -_08117D4E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08117CC0 -_08117D58: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8117C60 - - thumb_func_start sub_8117D68 -sub_8117D68: @ 8117D68 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08117D98 - ldr r2, _08117D90 @ =gSprites - ldr r0, _08117D94 @ =0x02019000 - adds r0, 0x6C - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _08117DE2 - .align 2, 0 -_08117D90: .4byte gSprites -_08117D94: .4byte 0x02019000 -_08117D98: - ldr r4, _08117DE8 @ =gSprites - ldr r3, _08117DEC @ =0x02019000 - adds r3, 0x6C - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldr r0, _08117DF0 @ =gUnknown_083F8C00 - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 2 - adds r2, r0 - ldrb r0, [r2, 0x3] - adds r0, 0x2 - lsls r0, 3 - strh r0, [r1, 0x20] - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r2, 0x4] - adds r0, 0x2 - lsls r0, 3 - strh r0, [r1, 0x22] -_08117DE2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08117DE8: .4byte gSprites -_08117DEC: .4byte 0x02019000 -_08117DF0: .4byte gUnknown_083F8C00 - thumb_func_end sub_8117D68 - - thumb_func_start sub_8117DF4 -sub_8117DF4: @ 8117DF4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - ldr r4, _08117E84 @ =gUnknown_083F9EE8 - ldr r0, [r4] - ldr r5, _08117E88 @ =0x02000000 - adds r1, r5, 0 - bl LZ77UnCompWram - str r5, [sp, 0x4] - add r0, sp, 0x4 - ldrh r2, [r4, 0x6] - lsls r2, 16 - ldrh r1, [r4, 0x4] - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadSpriteSheet - movs r1, 0xF - mov r0, sp - strh r1, [r0] - movs r0, 0 - ldr r1, _08117E8C @ =0x0001903c - adds r1, r5 - mov r8, r1 - ldr r7, _08117E90 @ =gSprites -_08117E2A: - movs r4, 0 - adds r6, r0, 0x1 - lsls r5, r0, 2 -_08117E30: - adds r1, r5, r4 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldr r1, _08117E94 @ =gSpriteTemplate_83FA0DC - adds r0, r1 - movs r1, 0x28 - mov r2, sp - bl sub_8117890 - adds r1, r4, 0x7 - adds r1, r5, r1 - add r1, r8 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - adds r1, 0x2C - ldrb r0, [r1] - movs r2, 0x40 - orrs r0, r2 - movs r2, 0x80 - orrs r0, r2 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08117E30 - lsls r0, r6, 24 - lsrs r0, 24 - cmp r0, 0x2 - bls _08117E2A - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08117E84: .4byte gUnknown_083F9EE8 -_08117E88: .4byte 0x02000000 -_08117E8C: .4byte 0x0001903c -_08117E90: .4byte gSprites -_08117E94: .4byte gSpriteTemplate_83FA0DC - thumb_func_end sub_8117DF4 - - thumb_func_start sub_8117E98 -sub_8117E98: @ 8117E98 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _08117F1C @ =0x02019000 - ldrh r1, [r6, 0x2E] - ldrh r0, [r0, 0x24] - adds r1, r0 - lsls r1, 16 - lsrs r4, r1, 16 - asrs r1, 16 - ldr r0, _08117F20 @ =0x00000167 - cmp r1, r0 - ble _08117EB8 - ldr r2, _08117F24 @ =0xfffffe98 - adds r0, r1, r2 - lsls r0, 16 - lsrs r4, r0, 16 -_08117EB8: - adds r0, r4, 0 - bl Sin2 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - bl Cos2 - lsls r2, r5, 16 - asrs r2, 16 - movs r3, 0x30 - ldrsh r1, [r6, r3] - muls r1, r2 - asrs r1, 12 - strh r1, [r6, 0x24] - lsls r0, 16 - asrs r4, r0, 16 - negs r1, r4 - movs r3, 0x30 - ldrsh r0, [r6, r3] - muls r0, r1 - asrs r0, 12 - strh r0, [r6, 0x26] - ldrb r0, [r6, 0x3] - lsls r0, 26 - lsrs r3, r0, 27 - cmp r2, 0 - bge _08117EF2 - adds r2, 0xF -_08117EF2: - lsls r0, r2, 12 - lsrs r5, r0, 16 - ldr r1, _08117F28 @ =gOamMatrices - lsls r0, r3, 3 - adds r1, r0, r1 - adds r0, r4, 0 - cmp r0, 0 - bge _08117F04 - adds r0, 0xF -_08117F04: - asrs r0, 4 - strh r0, [r1, 0x6] - strh r0, [r1] - strh r5, [r1, 0x2] - lsls r0, r5, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r1, 0x4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08117F1C: .4byte 0x02019000 -_08117F20: .4byte 0x00000167 -_08117F24: .4byte 0xfffffe98 -_08117F28: .4byte gOamMatrices - thumb_func_end sub_8117E98 - - thumb_func_start sub_8117F2C -sub_8117F2C: @ 8117F2C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r5, 0 - ldr r7, _081180C8 @ =0x02000000 - mov r6, sp -_08117F3A: - ldr r0, _081180CC @ =gUnknown_083FA21C - lsls r4, r5, 3 - adds r4, r0 - ldr r0, [r4] - adds r1, r7, 0 - bl LZ77UnCompWram - str r7, [sp] - ldrh r2, [r4, 0x4] - ldr r0, _081180D0 @ =0xffff0000 - ldr r1, [r6, 0x4] - ands r1, r0 - orrs r1, r2 - str r1, [r6, 0x4] - ldrh r2, [r4, 0x6] - lsls r2, 16 - ldr r0, _081180D4 @ =0x0000ffff - ands r0, r1 - orrs r0, r2 - str r0, [r6, 0x4] - mov r0, sp - bl LoadSpriteSheet - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _08117F3A - ldr r0, _081180D8 @ =gSpriteTemplate_83FA2B0 - movs r1, 0xD0 - movs r2, 0x10 - movs r3, 0x4 - bl CreateSprite - ldr r4, _081180DC @ =0x02019000 - adds r1, r4, 0 - adds r1, 0x50 - strb r0, [r1] - ldr r3, _081180E0 @ =gSprites - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - movs r5, 0 - adds r4, 0x3C - adds r7, r3, 0 -_08117FA2: - lsls r1, r5, 19 - movs r0, 0xC4 - lsls r0, 16 - adds r1, r0 - asrs r1, 16 - ldr r0, _081180E4 @ =gSpriteTemplate_83FA2C8 - movs r2, 0x18 - movs r3, 0 - bl CreateSprite - adds r3, r5, 0 - adds r3, 0x15 - adds r3, r4 - strb r0, [r3] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - adds r0, 0x2C - ldrb r1, [r0] - movs r6, 0x40 - orrs r1, r6 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _08117FA2 - ldr r0, _081180E8 @ =gSpriteTemplate_83FA2E0 - movs r1, 0x78 - movs r2, 0x44 - movs r3, 0x4 - bl CreateSprite - ldr r3, _081180DC @ =0x02019000 - adds r1, r3, 0 - adds r1, 0x55 - strb r0, [r1] - ldr r2, _081180E0 @ =gSprites - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x2C - ldrb r1, [r0] - orrs r1, r6 - strb r1, [r0] - movs r5, 0 - adds r3, 0x3C - mov r8, r3 - adds r4, r2, 0 -_08118020: - lsls r1, r5, 20 - movs r0, 0xC0 - lsls r0, 16 - adds r1, r0 - asrs r1, 16 - ldr r0, _081180EC @ =gSpriteTemplate_83FA2F8 - movs r2, 0x24 - movs r3, 0x4 - bl CreateSprite - adds r2, r5, 0 - adds r2, 0x1A - add r2, r8 - strb r0, [r2] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - movs r7, 0x4 - orrs r1, r7 - strb r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x2C - ldrb r1, [r0] - movs r6, 0x40 - orrs r1, r6 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08118020 - ldr r0, _081180F0 @ =gSpriteTemplate_83FA310 - movs r1, 0x98 - movs r2, 0x60 - movs r3, 0x9 - bl CreateSprite - ldr r3, _081180DC @ =0x02019000 - adds r3, 0x6C - strb r0, [r3] - ldr r4, _081180E0 @ =gSprites - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r7 - strb r0, [r1, 0x5] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x2C - ldrb r1, [r0] - orrs r1, r6 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r7 - strb r1, [r0] - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081180C8: .4byte 0x02000000 -_081180CC: .4byte gUnknown_083FA21C -_081180D0: .4byte 0xffff0000 -_081180D4: .4byte 0x0000ffff -_081180D8: .4byte gSpriteTemplate_83FA2B0 -_081180DC: .4byte 0x02019000 -_081180E0: .4byte gSprites -_081180E4: .4byte gSpriteTemplate_83FA2C8 -_081180E8: .4byte gSpriteTemplate_83FA2E0 -_081180EC: .4byte gSpriteTemplate_83FA2F8 -_081180F0: .4byte gSpriteTemplate_83FA310 - thumb_func_end sub_8117F2C - - thumb_func_start sub_81180F4 -sub_81180F4: @ 81180F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r7, r0, 16 - movs r0, 0xFA - lsls r0, 2 - mov r8, r0 - movs r4, 0 - movs r6, 0 - ldr r1, _081181D4 @ =0x02019000 - mov r9, r1 - ldr r0, _081181D8 @ =gSprites - mov r10, r0 -_08118114: - adds r0, r7, 0 - mov r1, r8 - bl __udivsi3 - lsls r0, 24 - lsrs r5, r0, 24 - adds r3, r6, 0 - adds r3, 0x15 - mov r0, r9 - adds r0, 0x3C - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081181D8 @ =gSprites - adds r0, r1 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r3, 0 - cmp r5, 0 - bne _0811814E - cmp r4, 0 - bne _0811814E - cmp r6, 0x3 - bne _081181A2 -_0811814E: - mov r3, r9 - adds r3, 0x3C - adds r3, r0, r3 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - adds r0, 0x3E - ldrb r1, [r0] - movs r4, 0x5 - negs r4, r4 - adds r2, r4, 0 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r1, r10 - adds r3, r0, r1 - adds r4, r3, 0 - adds r4, 0x40 - ldr r1, _081181DC @ =gSprites + 0x8 - adds r0, r1 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, 2 - adds r0, r1 - ldrh r2, [r0] - ldrh r4, [r4] - adds r2, r4 - ldr r4, _081181E0 @ =0x000003ff - adds r0, r4, 0 - ands r2, r0 - ldrh r0, [r3, 0x4] - ldr r4, _081181E4 @ =0xfffffc00 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r2 - strh r0, [r3, 0x4] - movs r4, 0x1 -_081181A2: - adds r0, r7, 0 - mov r1, r8 - bl __umodsi3 - lsls r0, 16 - lsrs r7, r0, 16 - mov r0, r8 - movs r1, 0xA - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bls _08118114 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081181D4: .4byte 0x02019000 -_081181D8: .4byte gSprites -_081181DC: .4byte gSprites + 0x8 -_081181E0: .4byte 0x000003ff -_081181E4: .4byte 0xfffffc00 - thumb_func_end sub_81180F4 - - thumb_func_start sub_81181E8 -sub_81181E8: @ 81181E8 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08118220 @ =gUnknown_083FA608 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x13 - bls _08118200 - movs r4, 0 -_08118200: - ldr r3, _08118224 @ =gUnknown_083F8C00 - lsls r0, r4, 2 - adds r0, r4 - lsls r2, r0, 2 - adds r0, r2, r3 - ldrb r0, [r0, 0x1] - lsls r0, 28 - lsrs r0, 28 - cmp r0, 0x4 - beq _08118254 - cmp r0, 0x4 - bgt _08118228 - cmp r0, 0x3 - beq _0811822E - b _08118290 - .align 2, 0 -_08118220: .4byte gUnknown_083FA608 -_08118224: .4byte gUnknown_083F8C00 -_08118228: - cmp r0, 0xC - beq _08118274 - b _08118290 -_0811822E: - adds r0, r4, 0 - movs r1, 0x5 - bl __udivsi3 - subs r0, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08118250 @ =0x02019000 - adds r0, 0x16 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0x3 - bhi _08118290 - ldrb r0, [r1] - adds r0, 0x1 - b _0811826A - .align 2, 0 -_08118250: .4byte 0x02019000 -_08118254: - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08118270 @ =0x02019000 - adds r0, 0x12 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0x2 - bhi _08118290 - ldrb r0, [r1] - adds r0, 0x2 -_0811826A: - add r0, sp - ldrb r0, [r0] - b _08118292 - .align 2, 0 -_08118270: .4byte 0x02019000 -_08118274: - ldr r1, _0811828C @ =0x02019000 - adds r0, r3, 0 - adds r0, 0x8 - adds r0, r2, r0 - ldr r1, [r1, 0x8] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08118290 - mov r0, sp - ldrb r0, [r0, 0x4] - b _08118292 - .align 2, 0 -_0811828C: .4byte 0x02019000 -_08118290: - movs r0, 0 -_08118292: - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81181E8 - - thumb_func_start sub_811829C -sub_811829C: @ 811829C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _081182E8 @ =0x02019000 - adds r1, 0x55 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r2, _081182EC @ =gSprites - adds r4, r1, r2 - bl sub_81181E8 - adds r3, r4, 0 - adds r3, 0x2B - strb r0, [r3] - adds r2, r4, 0 - adds r2, 0x40 - ldr r1, [r4, 0x8] - ldrb r0, [r3] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r2 - ldr r2, _081182F0 @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r4, 0x4] - ldr r0, _081182F4 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081182E8: .4byte 0x02019000 -_081182EC: .4byte gSprites -_081182F0: .4byte 0x000003ff -_081182F4: .4byte 0xfffffc00 - thumb_func_end sub_811829C - - thumb_func_start sub_81182F8 -sub_81182F8: @ 81182F8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r2, r0, 24 - movs r5, 0 - ldr r0, _08118320 @ =0x02019000 - ldrb r1, [r0, 0x19] - adds r3, r0, 0 - cmp r1, 0x1 - bne _08118310 - movs r5, 0x2 -_08118310: - cmp r2, 0x6 - bls _08118316 - b _08118464 -_08118316: - lsls r0, r2, 2 - ldr r1, _08118324 @ =_08118328 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08118320: .4byte 0x02019000 -_08118324: .4byte _08118328 - .align 2, 0 -_08118328: - .4byte _08118464 - .4byte _08118420 - .4byte _081183F8 - .4byte _081183EC - .4byte _081183C4 - .4byte _081183B8 - .4byte _08118344 -_08118344: - movs r4, 0 - ldr r5, _081183A8 @ =gSprites - ldr r0, _081183AC @ =0x0201903c - mov r8, r0 - movs r2, 0x5 - negs r2, r2 - mov r12, r2 - adds r6, r5, 0 - adds r6, 0x8 - ldr r7, _081183B0 @ =0xfffffc00 -_08118358: - adds r3, r4, 0 - adds r3, 0x1A - add r3, r8 - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r12 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r5 - adds r2, r3, 0 - adds r2, 0x40 - adds r0, r6 - ldr r0, [r0] - ldr r0, [r0] - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r2 - ldr r2, _081183B4 @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x4] - adds r0, r7, 0 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08118358 - b _081184B2 - .align 2, 0 -_081183A8: .4byte gSprites -_081183AC: .4byte 0x0201903c -_081183B0: .4byte 0xfffffc00 -_081183B4: .4byte 0x000003ff -_081183B8: - ldr r2, _081183C0 @ =gSprites - adds r0, r3, 0 - adds r0, 0x58 - b _08118426 - .align 2, 0 -_081183C0: .4byte gSprites -_081183C4: - ldr r2, _081183E8 @ =gSprites - adds r0, r3, 0 - adds r0, 0x58 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r2 - adds r4, r3, 0 - adds r4, 0x40 - adds r2, 0x8 - adds r0, r2 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, 2 - adds r0, r1 - ldrh r1, [r0, 0x8] - b _08118442 - .align 2, 0 -_081183E8: .4byte gSprites -_081183EC: - ldr r2, _081183F4 @ =gSprites - adds r0, r3, 0 - adds r0, 0x57 - b _08118426 - .align 2, 0 -_081183F4: .4byte gSprites -_081183F8: - ldr r2, _0811841C @ =gSprites - adds r0, r3, 0 - adds r0, 0x57 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r2 - adds r4, r3, 0 - adds r4, 0x40 - adds r2, 0x8 - adds r0, r2 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, 2 - adds r0, r1 - ldrh r1, [r0, 0x8] - b _08118442 - .align 2, 0 -_0811841C: .4byte gSprites -_08118420: - ldr r2, _08118458 @ =gSprites - adds r0, r3, 0 - adds r0, 0x56 -_08118426: - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r2 - adds r4, r3, 0 - adds r4, 0x40 - adds r2, 0x8 - adds r0, r2 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, 2 - adds r0, r1 - ldrh r1, [r0, 0x4] -_08118442: - ldrh r4, [r4] - adds r1, r4 - ldr r2, _0811845C @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x4] - ldr r0, _08118460 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - b _081184B2 - .align 2, 0 -_08118458: .4byte gSprites -_0811845C: .4byte 0x000003ff -_08118460: .4byte 0xfffffc00 -_08118464: - movs r4, 0 - lsls r6, r5, 2 - ldr r5, _081184BC @ =gSprites - ldr r0, _081184C0 @ =0x0201903c - mov r8, r0 - adds r7, r5, 0 - adds r7, 0x8 - ldr r2, _081184C4 @ =0xfffffc00 - mov r12, r2 -_08118476: - adds r0, r4, 0 - adds r0, 0x1A - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r5 - adds r2, r3, 0 - adds r2, 0x40 - adds r0, r7 - ldr r0, [r0] - ldr r0, [r0] - adds r0, r6, r0 - ldrh r1, [r0, 0x8] - ldrh r2, [r2] - adds r1, r2 - ldr r2, _081184C8 @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x4] - mov r0, r12 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08118476 -_081184B2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081184BC: .4byte gSprites -_081184C0: .4byte 0x0201903c -_081184C4: .4byte 0xfffffc00 -_081184C8: .4byte 0x000003ff - thumb_func_end sub_81182F8 - - thumb_func_start sub_81184CC -sub_81184CC: @ 81184CC - ldr r1, _081184D4 @ =0x02019000 - ldrh r1, [r1, 0x26] - strh r1, [r0, 0x24] - bx lr - .align 2, 0 -_081184D4: .4byte 0x02019000 - thumb_func_end sub_81184CC - - thumb_func_start sub_81184D8 -sub_81184D8: @ 81184D8 - push {r4,r5,lr} - sub sp, 0x8 - ldr r4, _08118544 @ =gUnknown_083FA42C - ldr r0, [r4] - ldr r5, _08118548 @ =0x02000000 - adds r1, r5, 0 - bl LZ77UnCompWram - str r5, [sp] - ldrh r1, [r4, 0x6] - lsls r1, 16 - ldrh r0, [r4, 0x4] - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - ldr r0, _0811854C @ =gSpriteTemplate_83FA434 - movs r1, 0x74 - movs r2, 0x50 - movs r3, 0x51 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08118550 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0xC8 - lsls r0, 9 - adds r5, r0 - ldrh r0, [r5, 0x24] - movs r2, 0 - strh r0, [r1, 0x2E] - strh r2, [r1, 0x30] - adds r3, r1, 0 - adds r3, 0x2C - ldrb r0, [r3] - movs r2, 0x40 - orrs r0, r2 - movs r2, 0x80 - orrs r0, r2 - strb r0, [r3] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1] - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08118544: .4byte gUnknown_083FA42C -_08118548: .4byte 0x02000000 -_0811854C: .4byte gSpriteTemplate_83FA434 -_08118550: .4byte gSprites - thumb_func_end sub_81184D8 - - thumb_func_start sub_8118554 -sub_8118554: @ 8118554 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - ldr r1, _08118574 @ =gOamMatrices - lsls r0, 3 - adds r0, r1 - ldr r2, _08118578 @ =0x02019000 - ldrh r1, [r2, 0x2C] - strh r1, [r0, 0x6] - ldrh r1, [r2, 0x2C] - strh r1, [r0] - ldrh r1, [r2, 0x2E] - strh r1, [r0, 0x2] - ldrh r1, [r2, 0x30] - strh r1, [r0, 0x4] - bx lr - .align 2, 0 -_08118574: .4byte gOamMatrices -_08118578: .4byte 0x02019000 - thumb_func_end sub_8118554 - - thumb_func_start sub_811857C -sub_811857C: @ 811857C - push {r4-r6,lr} - movs r4, 0 - ldr r6, _081185DC @ =0x0201903c - ldr r5, _081185E0 @ =gSprites -_08118584: - movs r3, 0x39 - subs r3, r4 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _081185E4 @ =gSpriteTemplate_83FA40C - movs r1, 0x74 - movs r2, 0x50 - bl CreateSprite - adds r3, r4, r6 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _081185CA - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] -_081185CA: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08118584 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081185DC: .4byte 0x0201903c -_081185E0: .4byte gSprites -_081185E4: .4byte gSpriteTemplate_83FA40C - thumb_func_end sub_811857C - - thumb_func_start sub_81185E8 -sub_81185E8: @ 81185E8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _08118660 @ =0x02019000 - adds r0, 0x3C - ldrb r5, [r0] - movs r6, 0 - ldr r7, _08118664 @ =gSprites - movs r0, 0x1C - adds r0, r7 - mov r10, r0 - movs r1, 0x2E - adds r1, r7 - mov r9, r1 - mov r8, r6 -_0811860A: - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - adds r0, r4, r7 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r3] - mov r1, r10 - adds r2, r4, r1 - ldr r1, _08118668 @ =SpriteCallbackDummy - str r1, [r2] - movs r1, 0 - bl StartSpriteAnim - movs r1, 0 - adds r2, r5, 0x1 - adds r3, r6, 0x1 -_08118632: - lsls r0, r1, 1 - adds r0, r4 - add r0, r9 - mov r5, r8 - strh r5, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x7 - bls _08118632 - lsls r0, r2, 24 - lsrs r5, r0, 24 - lsls r0, r3, 24 - lsrs r6, r0, 24 - cmp r6, 0x5 - bls _0811860A - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08118660: .4byte 0x02019000 -_08118664: .4byte gSprites -_08118668: .4byte SpriteCallbackDummy - thumb_func_end sub_81185E8 - - thumb_func_start sub_811866C -sub_811866C: @ 811866C - push {r4,r5,lr} - adds r3, r0, 0 - ldr r0, _0811869C @ =0x02019000 - ldrh r4, [r0, 0x24] - movs r2, 0x24 - ldrsh r1, [r0, r2] - ldrh r2, [r3, 0x34] - movs r5, 0x34 - ldrsh r0, [r3, r5] - cmp r1, r0 - ble _081186A8 - movs r1, 0xB4 - lsls r1, 1 - adds r0, r2, r1 - subs r2, r0, r4 - strh r2, [r3, 0x3A] - lsls r1, r2, 16 - ldr r0, _081186A0 @ =0x01670000 - cmp r1, r0 - ble _081186AC - ldr r5, _081186A4 @ =0xfffffe98 - adds r0, r2, r5 - b _081186AA - .align 2, 0 -_0811869C: .4byte 0x02019000 -_081186A0: .4byte 0x01670000 -_081186A4: .4byte 0xfffffe98 -_081186A8: - subs r0, r2, r4 -_081186AA: - strh r0, [r3, 0x3A] -_081186AC: - movs r1, 0x3A - ldrsh r0, [r3, r1] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_811866C - - thumb_func_start sub_81186B8 -sub_81186B8: @ 81186B8 - push {r4,lr} - bl sub_811866C - ldr r4, _081186E0 @ =0x02019000 - lsls r0, 16 - asrs r0, 16 - bl __floatsisf - ldr r1, _081186E4 @ =0x41f00000 - bl __divsf3 - bl __fixunssfsi - adds r4, 0x7E - strb r0, [r4] - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081186E0: .4byte 0x02019000 -_081186E4: .4byte 0x41f00000 - thumb_func_end sub_81186B8 - - thumb_func_start sub_81186E8 -sub_81186E8: @ 81186E8 - push {r4,lr} - adds r4, r0, 0 - bl sub_811866C - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1E - bl __modsi3 - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0xE - bne _08118708 - movs r0, 0 - strh r0, [r4, 0x32] - b _0811871E -_08118708: - cmp r1, 0xD - bgt _08118710 - movs r0, 0xE - b _08118712 -_08118710: - movs r0, 0x2B -_08118712: - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 -_0811871E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81186E8 - - thumb_func_start sub_8118724 -sub_8118724: @ 8118724 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldr r5, _08118770 @ =0x02019000 - adds r4, r5, 0 - adds r4, 0x8C - adds r1, r5, 0 - adds r1, 0x90 - ldr r0, [r4] - ldr r1, [r1] - bl __addsf3 - adds r1, r0, 0 - str r1, [r4] - movs r0, 0x88 - adds r0, r5 - mov r8, r0 - ldr r0, [r0] - bl __addsf3 - adds r4, r0, 0 - mov r1, r8 - str r4, [r1] - ldr r7, _08118774 @ =0x43b40000 - adds r1, r7, 0 - bl __gesf2 - cmp r0, 0 - blt _08118778 - adds r0, r4, 0 - adds r1, r7, 0 - bl __subsf3 - mov r2, r8 - str r0, [r2] - b _08118790 - .align 2, 0 -_08118770: .4byte 0x02019000 -_08118774: .4byte 0x43b40000 -_08118778: - ldr r1, _08118824 @ =0x00000000 - adds r0, r4, 0 - bl __ltsf2 - cmp r0, 0 - bge _08118790 - adds r0, r4, 0 - adds r1, r7, 0 - bl __addsf3 - mov r1, r8 - str r0, [r1] -_08118790: - adds r0, r5, 0 - adds r0, 0x88 - ldr r0, [r0] - bl __fixsfsi - strh r0, [r6, 0x34] - adds r4, r5, 0 - adds r4, 0x98 - adds r1, r5, 0 - adds r1, 0x9C - ldr r0, [r4] - ldr r1, [r1] - bl __addsf3 - adds r1, r0, 0 - str r1, [r4] - subs r4, 0x4 - ldr r0, [r4] - bl __addsf3 - str r0, [r4] - bl __fixsfsi - strh r0, [r6, 0x36] - ldrh r0, [r6, 0x34] - bl Sin2 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrh r0, [r6, 0x34] - bl Cos2 - lsls r4, 16 - asrs r4, 16 - movs r2, 0x36 - ldrsh r1, [r6, r2] - muls r1, r4 - asrs r1, 12 - strh r1, [r6, 0x24] - lsls r0, 16 - asrs r0, 16 - negs r0, r0 - movs r2, 0x36 - ldrsh r1, [r6, r2] - muls r0, r1 - asrs r0, 12 - strh r0, [r6, 0x26] - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _08118818 - ldr r0, _08118828 @ =gMPlay_SE1 - ldr r4, _0811882C @ =0x0000ffff - ldrh r2, [r6, 0x24] - lsls r2, 24 - asrs r2, 24 - adds r1, r4, 0 - bl m4aMPlayPanpotControl - ldr r0, _08118830 @ =gMPlay_SE2 - ldrh r2, [r6, 0x24] - lsls r2, 24 - asrs r2, 24 - adds r1, r4, 0 - bl m4aMPlayPanpotControl -_08118818: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08118824: .4byte 0x00000000 -_08118828: .4byte gMPlay_SE1 -_0811882C: .4byte 0x0000ffff -_08118830: .4byte gMPlay_SE2 - thumb_func_end sub_8118724 - - thumb_func_start sub_8118834 -sub_8118834: @ 8118834 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r1, _0811888C @ =0x02019000 - ldrh r0, [r5, 0x3A] - ldrh r1, [r1, 0x24] - adds r2, r0, r1 - strh r2, [r5, 0x34] - lsls r1, r2, 16 - ldr r0, _08118890 @ =0x01670000 - cmp r1, r0 - ble _08118850 - ldr r1, _08118894 @ =0xfffffe98 - adds r0, r2, r1 - strh r0, [r5, 0x34] -_08118850: - ldrh r0, [r5, 0x34] - bl Sin2 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrh r0, [r5, 0x34] - bl Cos2 - lsls r4, 16 - asrs r4, 16 - movs r2, 0x36 - ldrsh r1, [r5, r2] - muls r1, r4 - asrs r1, 12 - strh r1, [r5, 0x24] - lsls r0, 16 - asrs r0, 16 - negs r0, r0 - movs r2, 0x36 - ldrsh r1, [r5, r2] - muls r0, r1 - ldr r1, _08118898 @ =gSpriteCoordOffsetY - asrs r0, 12 - ldrh r1, [r1] - adds r0, r1 - strh r0, [r5, 0x26] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811888C: .4byte 0x02019000 -_08118890: .4byte 0x01670000 -_08118894: .4byte 0xfffffe98 -_08118898: .4byte gSpriteCoordOffsetY - thumb_func_end sub_8118834 - - thumb_func_start sub_811889C -sub_811889C: @ 811889C - push {r4-r6,lr} - adds r5, r0, 0 - bl sub_8118724 - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x36] - adds r0, 0x84 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xD4 - bls _081188C2 - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - b _081188CE -_081188C2: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 -_081188CE: - strb r0, [r2] - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0x1D - ble _0811898E - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08118908 - ldr r6, _08118900 @ =0x02019000 - adds r4, r6, 0 - adds r4, 0x94 - adds r0, r6, 0 - adds r0, 0xA0 - ldr r0, [r0] - ldr r1, _08118904 @ =0x40000000 - bl __subsf3 - adds r1, r0, 0 - ldr r0, [r4] - bl __lesf2 - cmp r0, 0 - bgt _0811898E - b _08118926 - .align 2, 0 -_08118900: .4byte 0x02019000 -_08118904: .4byte 0x40000000 -_08118908: - ldr r6, _08118994 @ =0x02019000 - adds r4, r6, 0 - adds r4, 0x94 - adds r0, r6, 0 - adds r0, 0xA0 - ldr r0, [r0] - ldr r1, _08118998 @ =0x40000000 - bl __subsf3 - adds r1, r0, 0 - ldr r0, [r4] - bl __gesf2 - cmp r0, 0 - blt _0811898E -_08118926: - adds r1, r6, 0 - adds r1, 0x7D - movs r0, 0xFF - strb r0, [r1] - ldrb r1, [r6, 0x3] - movs r0, 0x7F - ands r0, r1 - strb r0, [r6, 0x3] - adds r0, r5, 0 - adds r0, 0x2B - ldrb r1, [r0] - adds r1, 0x3 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - adds r0, r5, 0 - bl sub_81186B8 - movs r0, 0x1E - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_811866C - movs r1, 0x3A - ldrsh r0, [r5, r1] - movs r1, 0x1E - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 1 - adds r1, 0xF - strh r1, [r5, 0x3A] - ldr r0, _0811899C @ =sub_8118834 - str r0, [r5, 0x1C] - movs r0, 0x47 - bl m4aSongNumStartOrChange - adds r2, r6, 0 - adds r2, 0x9C - adds r1, r6, 0 - adds r1, 0x98 - ldr r0, _081189A0 @ =0x00000000 - str r0, [r1] - str r0, [r2] - subs r1, 0xC - ldr r0, _081189A4 @ =0xbf800000 - str r0, [r1] -_0811898E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08118994: .4byte 0x02019000 -_08118998: .4byte 0x40000000 -_0811899C: .4byte sub_8118834 -_081189A0: .4byte 0x00000000 -_081189A4: .4byte 0xbf800000 - thumb_func_end sub_811889C - - thumb_func_start sub_81189A8 -sub_81189A8: @ 81189A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r7, r0, 0 - bl sub_8118724 - movs r1, 0x34 - ldrsh r0, [r7, r1] - cmp r0, 0 - beq _081189C6 - cmp r0, 0xB4 - beq _08118A2C - b _08118B0C -_081189C6: - movs r1, 0x2E - ldrsh r0, [r7, r1] - cmp r0, 0x1 - bne _081189D0 - b _08118B0C -_081189D0: - movs r1, 0x3C - ldrsh r0, [r7, r1] - bl __floatsisf - mov r8, r0 - ldr r0, _08118A24 @ =gUnknown_083F8DF4 - mov r9, r0 - ldr r1, _08118A28 @ =0x02019000 - mov r10, r1 - ldrb r4, [r1, 0x4] - lsls r4, 30 - lsrs r0, r4, 25 - add r0, r9 - ldrb r0, [r0, 0x1] - bl __floatsisf - adds r1, r0, 0 - mov r0, r8 - bl __mulsf3 - adds r6, r0, 0 - lsrs r0, r4, 25 - add r0, r9 - ldrb r0, [r0, 0x2] - subs r0, 0x1 - bl __floatsisf - adds r1, r0, 0 - adds r0, r6, 0 - bl __addsf3 - adds r5, r0, 0 - lsrs r4, 25 - add r4, r9 - ldrh r0, [r4, 0xC] - bl __floatsisf - adds r1, r0, 0 - mov r0, r8 - bl __divsf3 - b _08118A8A - .align 2, 0 -_08118A24: .4byte gUnknown_083F8DF4 -_08118A28: .4byte 0x02019000 -_08118A2C: - movs r1, 0x2E - ldrsh r0, [r7, r1] - cmp r0, 0 - beq _08118B0C - movs r1, 0x3C - ldrsh r0, [r7, r1] - bl __floatsisf - mov r8, r0 - ldr r0, _08118B1C @ =gUnknown_083F8DF4 - mov r9, r0 - ldr r1, _08118B20 @ =0x02019000 - mov r10, r1 - ldrb r4, [r1, 0x4] - lsls r4, 30 - lsrs r0, r4, 25 - add r0, r9 - ldrb r0, [r0, 0x1] - bl __floatsisf - adds r1, r0, 0 - mov r0, r8 - bl __mulsf3 - adds r6, r0, 0 - lsrs r0, r4, 25 - add r0, r9 - ldrb r0, [r0, 0x2] - subs r0, 0x1 - bl __floatsisf - adds r1, r0, 0 - adds r0, r6, 0 - bl __addsf3 - adds r5, r0, 0 - lsrs r4, 25 - add r4, r9 - ldrh r0, [r4, 0xC] - bl __floatsisf - adds r1, r0, 0 - mov r0, r8 - bl __divsf3 - bl __negsf2 -_08118A8A: - adds r2, r0, 0 - mov r6, r10 - adds r1, r6, 0 - adds r1, 0xA0 - adds r0, r6, 0 - adds r0, 0x94 - ldr r0, [r0] - str r0, [r1] - adds r0, r6, 0 - adds r0, 0x98 - str r2, [r0] - movs r0, 0x9C - adds r0, r6 - mov r8, r0 - adds r0, r2, 0 - adds r1, r2, 0 - bl __addsf3 - adds r1, r5, 0 - bl __divsf3 - adds r4, r0, 0 - adds r0, r5, 0 - adds r1, r5, 0 - bl __mulsf3 - adds r1, r0, 0 - ldr r0, _08118B24 @ =0x40000000 - bl __divsf3 - adds r1, r0, 0 - adds r0, r4, 0 - bl __addsf3 - bl __negsf2 - mov r1, r8 - str r0, [r1] - adds r1, r6, 0 - adds r1, 0x8C - ldr r0, _08118B28 @ =0x00000000 - str r0, [r1] - adds r2, r7, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r7, 0 - adds r0, 0x2A - movs r2, 0 - strb r2, [r0] - adds r3, r7, 0 - adds r3, 0x3F - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - ldr r0, _08118B2C @ =sub_811889C - str r0, [r7, 0x1C] - strh r2, [r7, 0x32] -_08118B0C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08118B1C: .4byte gUnknown_083F8DF4 -_08118B20: .4byte 0x02019000 -_08118B24: .4byte 0x40000000 -_08118B28: .4byte 0x00000000 -_08118B2C: .4byte sub_811889C - thumb_func_end sub_81189A8 - - thumb_func_start sub_8118B30 -sub_8118B30: @ 8118B30 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x32 - ldrsh r0, [r5, r1] - bl __floatsisf - adds r4, r0, 0 - ldr r1, _08118BCC @ =0x3d4ccccd - bl __mulsf3 - adds r1, r4, 0 - bl __mulsf3 - bl __fixsfsi - adds r1, r0, 0 - subs r1, 0x2D - strh r1, [r5, 0x26] - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1D - ble _08118BC6 - lsls r0, r1, 16 - cmp r0, 0 - blt _08118BC6 - ldr r4, _08118BD0 @ =0x02019000 - adds r1, r4, 0 - adds r1, 0x7D - movs r0, 0xFF - strb r0, [r1] - ldrb r1, [r4, 0x3] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4, 0x3] - adds r0, r5, 0 - adds r0, 0x2B - ldrb r1, [r0] - adds r1, 0x3 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - adds r0, r5, 0 - bl sub_81186B8 - movs r0, 0x1E - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_811866C - movs r1, 0x3A - ldrsh r0, [r5, r1] - movs r1, 0x1E - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 1 - adds r1, 0xF - strh r1, [r5, 0x3A] - ldr r0, _08118BD4 @ =sub_8118834 - str r0, [r5, 0x1C] - movs r0, 0x47 - bl m4aSongNumStartOrChange - ldrb r0, [r4, 0x3] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4, 0x3] -_08118BC6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08118BCC: .4byte 0x3d4ccccd -_08118BD0: .4byte 0x02019000 -_08118BD4: .4byte sub_8118834 - thumb_func_end sub_8118B30 - - thumb_func_start sub_8118BD8 -sub_8118BD8: @ 8118BD8 - push {r4,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x32] - adds r1, r0, 0x1 - strh r1, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2C - bgt _08118C1C - ldrh r4, [r3, 0x26] - subs r0, r4, 0x1 - strh r0, [r3, 0x26] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x2D - bne _08118CA2 - ldr r2, _08118C14 @ =gSprites - ldr r0, _08118C18 @ =0x02019000 - adds r0, 0x73 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x1 - bne _08118CA2 - strh r4, [r3, 0x26] - b _08118CA2 - .align 2, 0 -_08118C14: .4byte gSprites -_08118C18: .4byte 0x02019000 -_08118C1C: - lsls r0, r1, 16 - asrs r0, 16 - movs r2, 0x3C - ldrsh r1, [r3, r2] - cmp r0, r1 - bge _08118C68 - ldr r2, _08118C58 @ =gSprites - ldr r0, _08118C5C @ =0x02019000 - adds r0, 0x73 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x2C - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bne _08118CA2 - adds r0, r1, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x1 - bne _08118C60 - ldrh r0, [r3, 0x26] - adds r0, 0x1 - strh r0, [r3, 0x26] - b _08118CA2 - .align 2, 0 -_08118C58: .4byte gSprites -_08118C5C: .4byte 0x02019000 -_08118C60: - ldrh r0, [r3, 0x26] - subs r0, 0x1 - strh r0, [r3, 0x26] - b _08118CA2 -_08118C68: - adds r2, r3, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, 0 - adds r1, 0x2A - movs r2, 0 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x3F - adds r0, r3 - mov r12, r0 - ldrb r0, [r0] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - mov r1, r12 - strb r0, [r1] - strh r2, [r3, 0x32] - ldr r0, _08118CA8 @ =sub_8118B30 - str r0, [r3, 0x1C] - movs r0, 0x3D - bl m4aSongNumStart -_08118CA2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08118CA8: .4byte sub_8118B30 - thumb_func_end sub_8118BD8 - - thumb_func_start sub_8118CAC -sub_8118CAC: @ 8118CAC - push {r4,lr} - adds r4, r0, 0 - bl sub_8118724 - movs r0, 0x34 - ldrsh r1, [r4, r0] - cmp r1, 0x5A - beq _08118CC6 - movs r0, 0x87 - lsls r0, 1 - cmp r1, r0 - beq _08118CD0 - b _08118CE0 -_08118CC6: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08118CE0 - b _08118CD8 -_08118CD0: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08118CE0 -_08118CD8: - ldr r0, _08118CE8 @ =sub_8118BD8 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x32] -_08118CE0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08118CE8: .4byte sub_8118BD8 - thumb_func_end sub_8118CAC - - thumb_func_start sub_8118CEC -sub_8118CEC: @ 8118CEC - push {r4,lr} - adds r4, r0, 0 - bl sub_8118724 - ldr r0, _08118D10 @ =0x02019000 - ldrb r0, [r0, 0x3] - lsls r0, 27 - lsrs r0, 27 - cmp r0, 0 - beq _08118D04 - cmp r0, 0x1 - beq _08118D18 -_08118D04: - adds r0, r4, 0 - bl sub_8119224 - ldr r0, _08118D14 @ =sub_81189A8 - b _08118D20 - .align 2, 0 -_08118D10: .4byte 0x02019000 -_08118D14: .4byte sub_81189A8 -_08118D18: - adds r0, r4, 0 - bl sub_81193D4 - ldr r0, _08118D28 @ =sub_8118CAC -_08118D20: - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08118D28: .4byte sub_8118CAC - thumb_func_end sub_8118CEC - - thumb_func_start prev_quest_read_x24_hm_usage -prev_quest_read_x24_hm_usage: @ 8118D2C - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_8118724 - ldrh r0, [r5, 0x32] - subs r0, 0x1 - strh r0, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - bne _08118D50 - ldr r4, _08118DB8 @ =0x02019000 - adds r4, 0x98 - ldr r0, [r4] - ldr r1, _08118DBC @ =0xbf800000 - bl __mulsf3 - str r0, [r4] -_08118D50: - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08118DDC - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08118DC4 - ldr r1, _08118DB8 @ =0x02019000 - adds r2, r1, 0 - adds r2, 0x7D - movs r0, 0xFF - strb r0, [r2] - ldrb r2, [r1, 0x3] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1, 0x3] - adds r0, r5, 0 - adds r0, 0x2B - ldrb r1, [r0] - adds r1, 0x3 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - adds r0, r5, 0 - bl sub_81186B8 - movs r0, 0x1E - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_811866C - movs r1, 0x3A - ldrsh r0, [r5, r1] - movs r1, 0x1E - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 1 - adds r1, 0xF - strh r1, [r5, 0x3A] - ldr r0, _08118DC0 @ =sub_8118834 - str r0, [r5, 0x1C] - movs r0, 0x47 - bl m4aSongNumStartOrChange - b _08118DDC - .align 2, 0 -_08118DB8: .4byte 0x02019000 -_08118DBC: .4byte 0xbf800000 -_08118DC0: .4byte sub_8118834 -_08118DC4: - adds r0, r5, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - movs r0, 0x38 - bl m4aSongNumStart - adds r0, r5, 0 - bl sub_811952C -_08118DDC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end prev_quest_read_x24_hm_usage - - thumb_func_start sub_8118DE4 -sub_8118DE4: @ 8118DE4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - bl sub_8118724 - movs r0, 0 - strh r0, [r7, 0x32] - adds r0, r7, 0 - bl sub_81186B8 - ldr r1, _08118E70 @ =gUnknown_083F8D90 - ldr r6, _08118E74 @ =0x02019000 - movs r0, 0x7E - adds r0, r6 - mov r8, r0 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r0, [r0] - ldr r1, [r6, 0x8] - ands r0, r1 - cmp r0, 0 - bne _08118E7C - adds r1, r6, 0 - adds r1, 0x7D - movs r0, 0xFF - strb r0, [r1] - ldrb r1, [r6, 0x3] - movs r0, 0x7F - ands r0, r1 - strb r0, [r6, 0x3] - adds r0, r7, 0 - adds r0, 0x2B - ldrb r1, [r0] - adds r1, 0x3 - lsls r1, 24 - lsrs r1, 24 - adds r0, r7, 0 - bl StartSpriteAnim - adds r0, r7, 0 - bl sub_81186B8 - movs r0, 0x1E - strh r0, [r7, 0x36] - adds r0, r7, 0 - bl sub_811866C - movs r1, 0x3A - ldrsh r0, [r7, r1] - movs r1, 0x1E - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 1 - adds r1, 0xF - strh r1, [r7, 0x3A] - ldr r0, _08118E78 @ =sub_8118834 - str r0, [r7, 0x1C] - movs r0, 0x47 - bl m4aSongNumStartOrChange - b _08118F74 - .align 2, 0 -_08118E70: .4byte gUnknown_083F8D90 -_08118E74: .4byte 0x02019000 -_08118E78: .4byte sub_8118834 -_08118E7C: - movs r0, 0x38 - bl m4aSongNumStart - bl Random - movs r2, 0x1 - mov r9, r2 - mov r1, r9 - ands r1, r0 - mov r9, r1 - cmp r1, 0 - beq _08118EC0 - adds r1, r6, 0 - adds r1, 0x8C - ldr r0, _08118EB8 @ =0x00000000 - str r0, [r1] - mov r2, r8 - ldrb r0, [r2] - adds r0, 0x1 - movs r1, 0xC - bl __modsi3 - lsls r1, r0, 24 - lsrs r2, r1, 24 - adds r1, r6, 0 - adds r1, 0x7F - strb r0, [r1] - ldr r5, _08118EBC @ =gUnknown_083F8DF4 - b _08118EF4 - .align 2, 0 -_08118EB8: .4byte 0x00000000 -_08118EBC: .4byte gUnknown_083F8DF4 -_08118EC0: - adds r4, r6, 0 - adds r4, 0x8C - ldr r5, _08118F1C @ =gUnknown_083F8DF4 - ldrb r0, [r6, 0x4] - lsls r0, 30 - lsrs r0, 25 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - adds r0, r1, 0 - bl __addsf3 - str r0, [r4] - mov r0, r8 - ldrb r4, [r0] - adds r0, r4, 0 - adds r0, 0xB - movs r1, 0xC - bl __modsi3 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r6, 0 - adds r0, 0x7F - strb r4, [r0] -_08118EF4: - ldr r0, _08118F20 @ =gUnknown_083F8D90 - lsls r1, r2, 3 - adds r0, 0x4 - adds r1, r0 - ldr r2, _08118F24 @ =0x02019000 - ldr r1, [r1] - ldr r0, [r2, 0x8] - ands r1, r0 - cmp r1, 0 - beq _08118F28 - movs r0, 0x1 - strh r0, [r7, 0x2E] - ldrb r0, [r2, 0x4] - lsls r0, 30 - lsrs r0, 25 - adds r0, r5 - ldrb r0, [r0, 0x2] - strh r0, [r7, 0x32] - b _08118F64 - .align 2, 0 -_08118F1C: .4byte gUnknown_083F8DF4 -_08118F20: .4byte gUnknown_083F8D90 -_08118F24: .4byte 0x02019000 -_08118F28: - strh r1, [r7, 0x2E] - ldrb r1, [r2, 0x4] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08118F40 - lsls r0, r1, 30 - lsrs r0, 25 - adds r0, r5 - ldrb r0, [r0, 0x1] - strh r0, [r7, 0x32] - b _08118F64 -_08118F40: - lsls r0, r1, 30 - lsrs r0, 25 - adds r0, r5 - ldrb r0, [r0, 0x2] - strh r0, [r7, 0x32] - mov r1, r9 - cmp r1, 0 - beq _08118F5C - adds r1, r2, 0 - adds r1, 0x8C - ldr r0, _08118F58 @ =0x3f000000 - b _08118F62 - .align 2, 0 -_08118F58: .4byte 0x3f000000 -_08118F5C: - adds r1, r2, 0 - adds r1, 0x8C - ldr r0, _08118F80 @ =0xbfc00000 -_08118F62: - str r0, [r1] -_08118F64: - adds r1, r2, 0 - adds r1, 0x98 - ldr r0, _08118F84 @ =0x3dae147b - str r0, [r1] - ldr r0, _08118F88 @ =prev_quest_read_x24_hm_usage - str r0, [r7, 0x1C] - movs r0, 0x5 - strh r0, [r7, 0x30] -_08118F74: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08118F80: .4byte 0xbfc00000 -_08118F84: .4byte 0x3dae147b -_08118F88: .4byte prev_quest_read_x24_hm_usage - thumb_func_end sub_8118DE4 - - thumb_func_start sub_8118F8C -sub_8118F8C: @ 8118F8C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - bl sub_8118724 - ldr r5, _08119018 @ =0x02019000 - movs r0, 0x8C - adds r0, r5 - mov r8, r0 - ldr r0, [r0] - ldr r1, _0811901C @ =0x3f000000 - bl __gtsf2 - cmp r0, 0 - bgt _0811906E - adds r0, r6, 0 - bl sub_81186B8 - adds r0, r6, 0 - bl sub_81186E8 - lsls r0, 16 - cmp r0, 0 - bne _08119030 - adds r1, r5, 0 - adds r1, 0x90 - ldr r0, _08119020 @ =0x00000000 - str r0, [r1] - ldr r1, _08119024 @ =gUnknown_083F8DF4 - mov r9, r1 - ldrb r0, [r5, 0x4] - lsls r7, r0, 30 - lsrs r0, r7, 25 - add r0, r9 - movs r4, 0x3 - ldrsb r4, [r0, r4] - adds r0, r4, 0 - bl __floatsisf - adds r5, r0, 0 - cmp r4, 0 - bge _08118FEC - ldr r1, _08119028 @ =0x43800000 - bl __addsf3 - adds r5, r0, 0 -_08118FEC: - lsrs r0, r7, 25 - add r0, r9 - ldrb r0, [r0, 0x4] - adds r0, 0x1 - bl __floatsisf - adds r1, r0, 0 - adds r0, r5, 0 - bl __divsf3 - adds r1, r0, 0 - mov r2, r8 - ldr r0, [r2] - bl __subsf3 - mov r1, r8 - str r0, [r1] - movs r0, 0x4 - strh r0, [r6, 0x30] - ldr r0, _0811902C @ =sub_8118DE4 - str r0, [r6, 0x1C] - b _0811906E - .align 2, 0 -_08119018: .4byte 0x02019000 -_0811901C: .4byte 0x3f000000 -_08119020: .4byte 0x00000000 -_08119024: .4byte gUnknown_083F8DF4 -_08119028: .4byte 0x43800000 -_0811902C: .4byte sub_8118DE4 -_08119030: - adds r6, r5, 0 - adds r6, 0x90 - ldr r0, [r6] - ldr r4, _0811907C @ =0x00000000 - adds r1, r4, 0 - bl __nesf2 - cmp r0, 0 - beq _0811906E - mov r2, r8 - ldr r0, [r2] - adds r1, r4, 0 - bl __ltsf2 - cmp r0, 0 - bge _0811906E - str r4, [r6] - mov r0, r8 - str r4, [r0] - adds r4, r5, 0 - adds r4, 0x98 - ldr r0, [r4] - bl __extendsfdf2 - ldr r2, _08119080 @ =0x3ff33333 - ldr r3, _08119084 @ =0x33333333 - bl __divdf3 - bl __truncdfsf2 - str r0, [r4] -_0811906E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811907C: .4byte 0x00000000 -_08119080: .4byte 0x3ff33333 -_08119084: .4byte 0x33333333 - thumb_func_end sub_8118F8C - - thumb_func_start sub_8119088 -sub_8119088: @ 8119088 - push {r4-r7,lr} - adds r6, r0, 0 - bl sub_8118724 - ldr r5, _08119120 @ =0x02019000 - adds r0, r5, 0 - adds r0, 0x94 - ldr r0, [r0] - ldr r1, _08119124 @ =0x42200000 - bl __gtsf2 - cmp r0, 0 - bgt _0811911A - adds r7, r5, 0 - adds r7, 0x98 - adds r0, r5, 0 - adds r0, 0x86 - movs r1, 0 - ldrsh r4, [r0, r1] - adds r0, r4, 0 - bl __floatsisf - adds r2, r0, 0 - cmp r4, 0 - bge _081190C2 - ldr r1, _08119128 @ =0x47800000 - bl __addsf3 - adds r2, r0, 0 -_081190C2: - ldr r0, _0811912C @ =0x40800000 - adds r1, r2, 0 - bl __divsf3 - bl __negsf2 - str r0, [r7] - adds r7, r5, 0 - adds r7, 0x90 - adds r5, 0x8C - adds r0, r4, 0 - bl __floatsisf - adds r2, r0, 0 - cmp r4, 0 - bge _081190EA - ldr r1, _08119128 @ =0x47800000 - bl __addsf3 - adds r2, r0, 0 -_081190EA: - ldr r0, [r5] - adds r1, r2, 0 - bl __divsf3 - bl __negsf2 - str r0, [r7] - adds r1, r6, 0 - adds r1, 0x2A - movs r0, 0x2 - strb r0, [r1] - adds r2, r6, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r2] - movs r0, 0x3 - strh r0, [r6, 0x30] - ldr r0, _08119130 @ =sub_8118F8C - str r0, [r6, 0x1C] -_0811911A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08119120: .4byte 0x02019000 -_08119124: .4byte 0x42200000 -_08119128: .4byte 0x47800000 -_0811912C: .4byte 0x40800000 -_08119130: .4byte sub_8118F8C - thumb_func_end sub_8119088 - - thumb_func_start sub_8119134 -sub_8119134: @ 8119134 - push {r4-r7,lr} - adds r6, r0, 0 - bl sub_8118724 - ldr r4, _081191DC @ =0x02019000 - adds r0, r4, 0 - adds r0, 0x94 - ldr r0, [r0] - ldr r1, _081191E0 @ =0x42700000 - bl __gtsf2 - cmp r0, 0 - bgt _081191D4 - movs r0, 0x5D - bl m4aSongNumStartOrChange - adds r7, r4, 0 - adds r7, 0x98 - adds r0, r4, 0 - adds r0, 0x84 - movs r1, 0 - ldrsh r5, [r0, r1] - adds r0, r5, 0 - bl __floatsisf - adds r2, r0, 0 - cmp r5, 0 - bge _08119174 - ldr r1, _081191E4 @ =0x47800000 - bl __addsf3 - adds r2, r0, 0 -_08119174: - ldr r0, _081191E8 @ =0x41a00000 - adds r1, r2, 0 - bl __divsf3 - bl __negsf2 - str r0, [r7] - adds r7, r4, 0 - adds r7, 0x90 - adds r0, r4, 0 - adds r0, 0x8C - ldr r1, [r0] - ldr r0, _081191EC @ =0x3f800000 - bl __subsf3 - adds r4, r0, 0 - adds r0, r5, 0 - bl __floatsisf - adds r2, r0, 0 - cmp r5, 0 - bge _081191A8 - ldr r1, _081191E4 @ =0x47800000 - bl __addsf3 - adds r2, r0, 0 -_081191A8: - adds r0, r4, 0 - adds r1, r2, 0 - bl __divsf3 - str r0, [r7] - adds r1, r6, 0 - adds r1, 0x2A - movs r0, 0x1 - strb r0, [r1] - adds r2, r6, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r2] - movs r0, 0x2 - strh r0, [r6, 0x30] - ldr r0, _081191F0 @ =sub_8119088 - str r0, [r6, 0x1C] -_081191D4: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081191DC: .4byte 0x02019000 -_081191E0: .4byte 0x42700000 -_081191E4: .4byte 0x47800000 -_081191E8: .4byte 0x41a00000 -_081191EC: .4byte 0x3f800000 -_081191F0: .4byte sub_8119088 - thumb_func_end sub_8119134 - - thumb_func_start sub_81191F4 -sub_81191F4: @ 81191F4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - movs r0, 0x1 - strh r0, [r4, 0x30] - strh r1, [r4, 0x32] - adds r0, r4, 0 - bl sub_8118724 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, _08119220 @ =sub_8119134 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08119220: .4byte sub_8119134 - thumb_func_end sub_81191F4 - - thumb_func_start sub_8119224 -sub_8119224: @ 8119224 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r7, r0, 0 - ldr r1, _081193B8 @ =gUnknown_083FA60E - mov r0, sp - movs r2, 0x8 - bl memcpy - ldrh r0, [r7, 0x3C] - subs r0, 0x2 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - ldr r5, _081193BC @ =0x02019000 - ldr r0, _081193C0 @ =gSpriteTemplate_83FA50C - movs r2, 0xC - negs r2, r2 - movs r1, 0x24 - movs r3, 0x32 - bl CreateSprite - adds r1, r5, 0 - adds r1, 0x73 - strb r0, [r1] - ldr r4, _081193C4 @ =gSpriteTemplate_83FA5C0 - movs r0, 0x2E - ldrsh r2, [r7, r0] - lsls r2, 2 - mov r1, sp - adds r0, r1, r2 - movs r3, 0 - ldrsh r1, [r0, r3] - mov r0, sp - adds r0, 0x2 - adds r0, r2 - movs r3, 0 - ldrsh r2, [r0, r3] - adds r0, r4, 0 - movs r3, 0x3B - bl CreateSprite - adds r1, r5, 0 - adds r1, 0x74 - strb r0, [r1] - adds r4, 0x18 - adds r0, r4, 0 - movs r1, 0x24 - movs r2, 0x8C - movs r3, 0x33 - bl CreateSprite - adds r1, r5, 0 - adds r1, 0x75 - strb r0, [r1] - ldr r3, _081193C8 @ =gSprites - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0, 0x1] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x1] - movs r6, 0 - adds r4, r3, 0 - mov r12, r5 - ldr r0, _081193CC @ =gUnknown_083F8DF4 - mov r8, r0 - mov r10, r12 -_081192BE: - mov r1, r12 - adds r3, r1, r6 - adds r3, 0x73 - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r1, r12 - adds r1, 0x73 - ldrb r1, [r1] - strh r1, [r0, 0x36] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r5, r12 - adds r5, 0x74 - ldrb r1, [r5] - strh r1, [r0, 0x38] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r1, r12 - adds r1, 0x75 - ldrb r1, [r1] - strh r1, [r0, 0x3A] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r1, r9 - strh r1, [r0, 0x32] - ldrb r0, [r3] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - movs r0, 0x3C - ldrsh r3, [r7, r0] - mov r0, r12 - ldrb r1, [r0, 0x4] - lsls r1, 30 - lsrs r0, r1, 25 - add r0, r8 - ldrb r0, [r0, 0x1] - muls r3, r0 - lsrs r1, 25 - add r1, r8 - ldrb r0, [r1, 0x2] - ldr r1, _081193D0 @ =0x0000ffff - adds r0, r1 - adds r3, r0 - strh r3, [r2, 0x34] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _081193C8 @ =gSprites - cmp r6, 0x2 - bls _081192BE - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] - mov r3, r10 - str r7, [r3, 0x38] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081193B8: .4byte gUnknown_083FA60E -_081193BC: .4byte 0x02019000 -_081193C0: .4byte gSpriteTemplate_83FA50C -_081193C4: .4byte gSpriteTemplate_83FA5C0 -_081193C8: .4byte gSprites -_081193CC: .4byte gUnknown_083F8DF4 -_081193D0: .4byte 0x0000ffff - thumb_func_end sub_8119224 - - thumb_func_start sub_81193D4 -sub_81193D4: @ 81193D4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - adds r7, r0, 0 - movs r0, 0 - mov r8, r0 - ldr r1, _08119514 @ =gUnknown_083FA616 - mov r0, sp - movs r2, 0x8 - bl memcpy - ldrh r0, [r7, 0x3C] - subs r0, 0x2 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - ldr r0, _08119518 @ =gSpriteTemplate_83FA524 - movs r1, 0x2E - ldrsh r2, [r7, r1] - lsls r2, 2 - mov r3, sp - adds r1, r3, r2 - movs r3, 0 - ldrsh r1, [r1, r3] - mov r4, sp - adds r4, 0x2 - adds r2, r4, r2 - movs r3, 0 - ldrsh r2, [r2, r3] - movs r3, 0x32 - bl CreateSprite - ldr r6, _0811951C @ =0x02019000 - adds r1, r6, 0 - adds r1, 0x73 - strb r0, [r1] - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _08119520 @ =gSprites - adds r0, r5 - ldrh r1, [r7, 0x2E] - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim - ldr r0, _08119524 @ =gSpriteTemplate_83FA5F0 - movs r1, 0x2E - ldrsh r2, [r7, r1] - lsls r2, 2 - mov r3, sp - adds r1, r3, r2 - movs r3, 0 - ldrsh r1, [r1, r3] - adds r4, r2 - movs r3, 0 - ldrsh r2, [r4, r3] - movs r3, 0x33 - bl CreateSprite - adds r4, r6, 0 - adds r4, 0x74 - strb r0, [r4] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - mov r0, r9 - lsls r2, r0, 16 - asrs r2, 16 - ldr r3, _08119528 @ =gUnknown_083F8DF4 - ldrb r1, [r6, 0x4] - lsls r1, 30 - lsrs r0, r1, 25 - adds r0, r3 - ldrb r0, [r0, 0x1] - muls r2, r0 - lsrs r1, 25 - adds r1, r3 - ldrh r0, [r1, 0x10] - adds r0, 0x2D - adds r2, r0 - strh r2, [r7, 0x3C] - adds r3, r6, 0 -_081194A2: - mov r1, r8 - adds r2, r6, r1 - adds r2, 0x73 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r1, r6, 0 - adds r1, 0x73 - ldrb r1, [r1] - strh r1, [r0, 0x36] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x38] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x3A] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r9 - strh r1, [r0, 0x32] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrh r0, [r7, 0x3C] - subs r0, 0x2D - strh r0, [r1, 0x34] - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x1 - bls _081194A2 - str r7, [r3, 0x38] - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08119514: .4byte gUnknown_083FA616 -_08119518: .4byte gSpriteTemplate_83FA524 -_0811951C: .4byte 0x02019000 -_08119520: .4byte gSprites -_08119524: .4byte gSpriteTemplate_83FA5F0 -_08119528: .4byte gUnknown_083F8DF4 - thumb_func_end sub_81193D4 - - thumb_func_start sub_811952C -sub_811952C: @ 811952C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - mov r8, r0 - movs r0, 0 - mov r10, r0 - movs r1, 0x5 - mov r9, r1 - movs r2, 0 - str r2, [sp, 0xC] - mov r0, sp - movs r1, 0 - movs r2, 0xA - bl memset - bl Random - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x10] - ldr r7, _08119610 @ =0x02019000 - adds r0, r7, 0 - adds r0, 0x7D - movs r6, 0x1 - strb r6, [r0] - ldrb r4, [r7, 0x3] - movs r0, 0x20 - orrs r4, r0 - movs r0, 0x41 - negs r0, r0 - ands r4, r0 - strb r4, [r7, 0x3] - adds r1, r7, 0 - adds r1, 0x7E - movs r0, 0xFF - strb r0, [r1] - adds r5, r7, 0 - adds r5, 0x88 - mov r3, r8 - movs r1, 0x34 - ldrsh r0, [r3, r1] - bl __floatsisf - str r0, [r5] - adds r1, r7, 0 - adds r1, 0x98 - ldr r0, _08119614 @ =0x00000000 - str r0, [r1] - adds r3, r7, 0 - adds r3, 0x8C - ldr r2, _08119618 @ =gUnknown_083F8DF4 - ldrb r0, [r7, 0x4] - lsls r0, 30 - lsrs r1, r0, 25 - adds r2, 0x1C - adds r1, r2 - ldr r1, [r1] - str r1, [r3] - lsrs r0, 30 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 1 - adds r1, 0x21 - lsls r4, 27 - lsrs r4, 27 - subs r6, r4 - lsls r0, r6, 4 - subs r0, r6 - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - mov r5, r10 - mov r3, r8 - movs r0, 0x34 - ldrsh r2, [r3, r0] -_081195C8: - cmp r1, r2 - bge _081195D4 - adds r0, r1, 0 - adds r0, 0x5A - cmp r2, r0 - ble _08119638 -_081195D4: - cmp r5, 0x3 - beq _0811961C - adds r0, r1, 0 - adds r0, 0x5A - lsls r0, 16 - lsrs r1, r0, 16 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _081195C8 -_081195EA: - ldr r0, _08119610 @ =0x02019000 - ldrb r1, [r0, 0x3] - movs r0, 0x1F - ands r0, r1 - cmp r0, 0 - beq _08119664 - mov r1, r8 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _08119658 - movs r0, 0x98 - lsls r0, 1 - movs r1, 0x3F - negs r1, r1 - bl PlayCry1 - b _08119670 - .align 2, 0 -_08119610: .4byte 0x02019000 -_08119614: .4byte 0x00000000 -_08119618: .4byte gUnknown_083F8DF4 -_0811961C: - movs r0, 0x1 - mov r3, r8 - strh r0, [r3, 0x2E] - ldr r2, _08119634 @ =0x02019000 - ldrb r1, [r2, 0x3] - subs r0, 0x21 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x3] - b _081195EA - .align 2, 0 -_08119634: .4byte 0x02019000 -_08119638: - lsrs r0, r5, 1 - mov r1, r8 - strh r0, [r1, 0x2E] - ldr r3, _08119654 @ =0x02019000 - movs r1, 0x1 - ands r1, r5 - ldrb r2, [r3, 0x3] - movs r0, 0x20 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x3] - b _081195EA - .align 2, 0 -_08119654: .4byte 0x02019000 -_08119658: - movs r0, 0x98 - lsls r0, 1 - movs r1, 0x3F - bl PlayCry1 - b _08119670 -_08119664: - movs r0, 0x99 - lsls r0, 1 - movs r1, 0x3F - negs r1, r1 - bl PlayCry1 -_08119670: - movs r5, 0x2 - ldr r4, _081196A0 @ =0x02019000 - adds r0, r4, 0 - adds r0, 0x7F - ldrb r0, [r0] - adds r0, 0x2 - movs r1, 0xC - bl __modsi3 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r1, [r4, 0x3] - movs r0, 0x1F - ands r0, r1 - cmp r0, 0x1 - bne _081196A4 - ldrb r1, [r4, 0x4] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - bne _081196A4 - mov r0, r9 - adds r0, 0x6 - b _081196A8 - .align 2, 0 -_081196A0: .4byte 0x02019000 -_081196A4: - mov r2, r9 - adds r0, r2, r5 -_081196A8: - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - cmp r5, r9 - bcs _0811970E - ldr r6, _08119734 @ =0x02019000 - ldr r7, _08119738 @ =gUnknown_083F8C0C -_081196B6: - lsls r0, r3, 3 - ldr r1, _0811973C @ =gUnknown_083F8D94 - adds r0, r1 - ldr r1, [r6, 0x8] - ldr r2, [r0] - ands r1, r2 - cmp r1, 0 - bne _081196F8 - mov r0, r10 - adds r1, r0, 0x1 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - add r0, sp - strb r5, [r0] - ldr r0, [sp, 0xC] - cmp r0, 0 - bne _081196F8 - ldrb r0, [r6, 0x1A] - lsls r0, 28 - lsrs r0, 28 - ldr r1, _08119740 @ =0x0201901b - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - beq _081196F8 - str r5, [sp, 0xC] -_081196F8: - adds r0, r3, 0x1 - movs r1, 0xC - bl __modsi3 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r9 - bcc _081196B6 -_0811970E: - ldrb r0, [r4, 0x3] - lsls r0, 27 - lsrs r0, 27 - adds r0, 0x1 - ldrb r1, [r4, 0x2] - ands r0, r1 - cmp r0, 0 - beq _08119756 - ldr r2, [sp, 0xC] - cmp r2, 0 - beq _08119744 - movs r0, 0xFF - ldr r3, [sp, 0x10] - ands r0, r3 - cmp r0, 0xBF - bhi _08119744 - mov r0, r8 - strh r2, [r0, 0x3C] - b _08119766 - .align 2, 0 -_08119734: .4byte 0x02019000 -_08119738: .4byte gUnknown_083F8C0C -_0811973C: .4byte gUnknown_083F8D94 -_08119740: .4byte 0x0201901b -_08119744: - ldr r0, [sp, 0x10] - mov r1, r10 - bl __modsi3 - add r0, sp - ldrb r0, [r0] - mov r1, r8 - strh r0, [r1, 0x3C] - b _08119766 -_08119756: - ldr r0, [sp, 0x10] - mov r1, r10 - bl __modsi3 - add r0, sp - ldrb r0, [r0] - mov r2, r8 - strh r0, [r2, 0x3C] -_08119766: - ldr r3, _0811977C @ =sub_8118CEC - mov r0, r8 - str r3, [r0, 0x1C] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811977C: .4byte sub_8118CEC - thumb_func_end sub_811952C - - thumb_func_start sub_8119780 -sub_8119780: @ 8119780 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - adds r1, r0, 0x1 - strh r1, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x34 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _081197CA - ldrh r0, [r2, 0x20] - subs r0, 0x2 - strh r0, [r2, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _081197CA - ldr r4, _081197D0 @ =0x02019000 - ldrb r1, [r4, 0x3] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _081197BA - movs r0, 0x40 - orrs r0, r1 - strb r0, [r4, 0x3] -_081197BA: - adds r0, r2, 0 - bl DestroySprite - movs r0, 0 - strb r0, [r4, 0x1] - ldr r0, _081197D4 @ =gUnknown_083FA61E - ldrh r0, [r0] - strh r0, [r4, 0x34] -_081197CA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081197D0: .4byte 0x02019000 -_081197D4: .4byte gUnknown_083FA61E - thumb_func_end sub_8119780 - - thumb_func_start sub_81197D8 -sub_81197D8: @ 81197D8 - push {r4,lr} - sub sp, 0x18 - adds r4, r0, 0 - ldr r1, _08119854 @ =gUnknown_083FA632 - mov r0, sp - movs r2, 0x18 - bl memcpy - ldrh r0, [r4, 0x30] - adds r2, r0, 0x1 - strh r2, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x34 - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _0811985C - movs r0, 0x1 - ands r2, r0 - cmp r2, 0 - beq _08119836 - ldr r3, _08119858 @ =gSpriteCoordOffsetY - movs r0, 0x3C - ldrsh r2, [r4, r0] - lsls r2, 1 - movs r1, 0x32 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r0, 3 - adds r2, r0 - mov r1, sp - adds r0, r1, r2 - ldrh r0, [r0] - strh r0, [r3] - movs r3, 0x3C - ldrsh r2, [r4, r3] - adds r1, r2, 0x1 - adds r0, r1, 0 - cmp r1, 0 - bge _0811982E - adds r0, r2, 0x4 -_0811982E: - asrs r0, 2 - lsls r0, 2 - subs r0, r1, r0 - strh r0, [r4, 0x3C] -_08119836: - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _08119884 - .align 2, 0 -_08119854: .4byte gUnknown_083FA632 -_08119858: .4byte gSpriteCoordOffsetY -_0811985C: - ldr r1, _0811988C @ =gSpriteCoordOffsetY - movs r0, 0 - strh r0, [r1] - ldr r2, _08119890 @ =gSprites - ldr r0, _08119894 @ =0x02019000 - adds r0, 0x73 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x2C - ldrb r2, [r0] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - adds r0, r4, 0 - bl DestroySprite -_08119884: - add sp, 0x18 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811988C: .4byte gSpriteCoordOffsetY -_08119890: .4byte gSprites -_08119894: .4byte 0x02019000 - thumb_func_end sub_81197D8 - - thumb_func_start sub_8119898 -sub_8119898: @ 8119898 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - movs r1, 0x30 - ldrsh r0, [r5, r1] - bl __floatsisf - adds r4, r0, 0 - ldr r1, _08119948 @ =0x3d1fbe77 - bl __mulsf3 - adds r1, r4, 0 - bl __mulsf3 - bl __fixsfsi - strh r0, [r5, 0x26] - ldr r3, _0811994C @ =0x02019000 - ldr r2, _08119950 @ =gUnknown_083FA61E - ldrb r0, [r3, 0x1] - subs r0, 0x1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r3, 0x34] - ldrb r0, [r3, 0x1] - cmp r0, 0x12 - bhi _081198DE - adds r0, 0x1 - strb r0, [r3, 0x1] -_081198DE: - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0x3C - ble _08119940 - movs r0, 0 - strh r0, [r5, 0x30] - ldr r3, _08119954 @ =sub_8119780 - str r3, [r5, 0x1C] - ldr r2, _08119958 @ =gSprites - movs r0, 0x3A - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r2, 0 - adds r4, 0x1C - adds r0, r4 - str r3, [r0] - movs r0, 0x3A - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _0811995C @ =0x0000fffe - strh r1, [r0, 0x30] - movs r0, 0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - movs r0, 0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _08119960 @ =sub_81197D8 - str r1, [r0] - movs r0, 0xD6 - bl m4aSongNumStart -_08119940: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08119948: .4byte 0x3d1fbe77 -_0811994C: .4byte 0x02019000 -_08119950: .4byte gUnknown_083FA61E -_08119954: .4byte sub_8119780 -_08119958: .4byte gSprites -_0811995C: .4byte 0x0000fffe -_08119960: .4byte sub_81197D8 - thumb_func_end sub_8119898 - - thumb_func_start sub_8119964 -sub_8119964: @ 8119964 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081199E4 - ldr r3, _08119990 @ =0x02019000 - ldr r1, [r3, 0x38] - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08119998 - movs r0, 0x34 - ldrsh r2, [r1, r0] - ldr r1, _08119994 @ =gUnknown_083F8DF4 - ldrb r0, [r3, 0x4] - lsls r0, 30 - lsrs r0, 25 - adds r0, r1 - ldrh r0, [r0, 0x8] - b _081199AA - .align 2, 0 -_08119990: .4byte 0x02019000 -_08119994: .4byte gUnknown_083F8DF4 -_08119998: - movs r0, 0x34 - ldrsh r2, [r1, r0] - ldr r1, _081199D8 @ =gUnknown_083F8DF4 - ldrb r0, [r3, 0x4] - lsls r0, 30 - lsrs r0, 25 - adds r0, r1 - ldrh r0, [r0, 0x8] - adds r0, 0xB4 -_081199AA: - cmp r2, r0 - bne _08119A78 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - movs r0, 0x2B - bl m4aSongNumStart - ldr r1, _081199DC @ =0x02019000 - movs r0, 0x1 - strb r0, [r1, 0x1] - ldr r0, _081199E0 @ =gUnknown_083FA61E - ldrh r0, [r0] - strh r0, [r1, 0x34] - b _08119A78 - .align 2, 0 -_081199D8: .4byte gUnknown_083F8DF4 -_081199DC: .4byte 0x02019000 -_081199E0: .4byte gUnknown_083FA61E -_081199E4: - ldr r3, _08119A20 @ =0x02019000 - ldr r2, _08119A24 @ =gUnknown_083FA61E - ldrb r0, [r3, 0x1] - subs r0, 0x1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r3, 0x34] - ldrb r0, [r3, 0x1] - cmp r0, 0x12 - bhi _08119A04 - adds r0, 0x1 - strb r0, [r3, 0x1] -_08119A04: - ldr r1, [r3, 0x38] - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08119A2C - movs r0, 0x34 - ldrsh r2, [r1, r0] - ldr r1, _08119A28 @ =gUnknown_083F8DF4 - ldrb r0, [r3, 0x4] - lsls r0, 30 - lsrs r0, 25 - adds r0, r1 - ldrh r0, [r0, 0xA] - b _08119A3E - .align 2, 0 -_08119A20: .4byte 0x02019000 -_08119A24: .4byte gUnknown_083FA61E -_08119A28: .4byte gUnknown_083F8DF4 -_08119A2C: - movs r0, 0x34 - ldrsh r2, [r1, r0] - ldr r1, _08119A80 @ =gUnknown_083F8DF4 - ldrb r0, [r3, 0x4] - lsls r0, 30 - lsrs r0, 25 - adds r0, r1 - ldrh r0, [r0, 0xA] - adds r0, 0xB4 -_08119A3E: - cmp r2, r0 - bne _08119A78 - ldr r2, _08119A84 @ =gSprites - movs r0, 0x36 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _08119A88 @ =sub_8119898 - str r1, [r0] - movs r0, 0x36 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldr r0, _08119A8C @ =SpriteCallbackDummy - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x3C] -_08119A78: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08119A80: .4byte gUnknown_083F8DF4 -_08119A84: .4byte gSprites -_08119A88: .4byte sub_8119898 -_08119A8C: .4byte SpriteCallbackDummy - thumb_func_end sub_8119964 - - thumb_func_start sub_8119A90 -sub_8119A90: @ 8119A90 - adds r0, 0x3E - ldrb r3, [r0] - lsls r1, r3, 29 - lsrs r1, 31 - movs r2, 0x1 - eors r2, r1 - lsls r2, 2 - movs r1, 0x5 - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_8119A90 - - thumb_func_start sub_8119AAC -sub_8119AAC: @ 8119AAC - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x22] - movs r0, 0x22 - ldrsh r1, [r4, r0] - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - ble _08119AC4 - subs r0, r2, 0x1 - strh r0, [r4, 0x22] - b _08119B12 -_08119AC4: - ldr r0, _08119B18 @ =SpriteCallbackDummy - str r0, [r4, 0x1C] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - subs r2, 0x12 - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x5E - bl m4aSongNumStop - adds r0, r4, 0 - bl DestroySprite - ldr r5, _08119B1C @ =gSprites - ldr r4, _08119B20 @ =0x02019000 - adds r4, 0x74 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite -_08119B12: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08119B18: .4byte SpriteCallbackDummy -_08119B1C: .4byte gSprites -_08119B20: .4byte 0x02019000 - thumb_func_end sub_8119AAC - - thumb_func_start sub_8119B24 -sub_8119B24: @ 8119B24 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - blt _08119B4E - subs r1, 0x1 - strh r1, [r4, 0x30] - ldrh r0, [r4, 0x22] - subs r0, 0x1 - strh r0, [r4, 0x22] - lsls r1, 16 - cmp r1, 0 - bne _08119BB8 - adds r0, r4, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x1 - bne _08119BB8 - b _08119B74 -_08119B4E: - ldrh r1, [r4, 0x34] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0 - blt _08119B84 - subs r0, r1, 0x1 - strh r0, [r4, 0x34] - adds r0, r4, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - bne _08119BB8 - adds r0, r4, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x1 - bne _08119B7C -_08119B74: - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - b _08119BB8 -_08119B7C: - ldrh r0, [r4, 0x26] - subs r0, 0x1 - strh r0, [r4, 0x26] - b _08119BB8 -_08119B84: - movs r0, 0x2B - bl m4aSongNumStart - ldr r0, _08119BC0 @ =0x02019000 - ldr r0, [r0, 0x38] - ldrh r1, [r0, 0x2E] - adds r1, 0x4 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _08119BC4 @ =sub_8119AAC - str r0, [r4, 0x1C] - ldr r2, _08119BC8 @ =gSprites - movs r0, 0x3A - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x2C - ldrb r2, [r0] - movs r1, 0x7F - ands r1, r2 - strb r1, [r0] -_08119BB8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08119BC0: .4byte 0x02019000 -_08119BC4: .4byte sub_8119AAC -_08119BC8: .4byte gSprites - thumb_func_end sub_8119B24 - - thumb_func_start sub_8119BCC -sub_8119BCC: @ 8119BCC - push {r4,r5,lr} - sub sp, 0x14 - adds r4, r0, 0 - ldr r1, _08119C44 @ =gUnknown_083FA64A - mov r0, sp - movs r2, 0x2 - bl memcpy - add r5, sp, 0x4 - ldr r1, _08119C48 @ =gUnknown_083FA64C - adds r0, r5, 0 - movs r2, 0x10 - bl memcpy - ldrh r0, [r4, 0x30] - subs r1, r0, 0x1 - strh r1, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _08119C5C - ldr r0, _08119C4C @ =0x02019000 - ldr r0, [r0, 0x38] - movs r1, 0x2E - ldrsh r0, [r0, r1] - add r0, sp - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _08119CF6 - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r4, 0x74 - subs r4, r0 - lsrs r0, r4, 31 - adds r4, r0 - asrs r4, 1 - negs r4, r4 - ldr r0, _08119C50 @ =gMPlay_SE1 - ldr r5, _08119C54 @ =0x0000ffff - lsls r4, 24 - asrs r4, 24 - adds r1, r5, 0 - adds r2, r4, 0 - bl m4aMPlayPanpotControl - ldr r0, _08119C58 @ =gMPlay_SE2 - adds r1, r5, 0 - adds r2, r4, 0 - bl m4aMPlayPanpotControl - b _08119CF6 - .align 2, 0 -_08119C44: .4byte gUnknown_083FA64A -_08119C48: .4byte gUnknown_083FA64C -_08119C4C: .4byte 0x02019000 -_08119C50: .4byte gMPlay_SE1 -_08119C54: .4byte 0x0000ffff -_08119C58: .4byte gMPlay_SE2 -_08119C5C: - lsls r0, r1, 16 - cmp r0, 0 - blt _08119CAC - ldr r0, _08119CA8 @ =0x02019000 - ldr r0, [r0, 0x38] - movs r2, 0x2E - ldrsh r0, [r0, r2] - add r0, sp - movs r2, 0 - ldrsb r2, [r0, r2] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x7 - subs r0, r1, r0 - lsls r0, 1 - adds r0, r5, r0 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - muls r0, r2 - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - movs r2, 0x30 - ldrsh r0, [r4, r2] - subs r1, r0 - lsls r1, 1 - mov r0, sp - adds r0, 0x5 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - b _08119CF6 - .align 2, 0 -_08119CA8: .4byte 0x02019000 -_08119CAC: - movs r0, 0x5E - bl m4aSongNumStartOrChange - ldr r0, _08119CCC @ =0x02019000 - ldr r0, [r0, 0x38] - movs r2, 0x2E - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _08119CD0 - movs r0, 0x98 - lsls r0, 1 - movs r1, 0x3F - bl PlayCry1 - b _08119CDC - .align 2, 0 -_08119CCC: .4byte 0x02019000 -_08119CD0: - movs r0, 0x98 - lsls r0, 1 - movs r1, 0x3F - negs r1, r1 - bl PlayCry1 -_08119CDC: - ldr r0, _08119D00 @ =0x02019000 - ldr r0, [r0, 0x38] - ldrh r1, [r0, 0x2E] - adds r1, 0x2 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - movs r0, 0x2D - strh r0, [r4, 0x30] - ldr r0, _08119D04 @ =sub_8119B24 - str r0, [r4, 0x1C] -_08119CF6: - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08119D00: .4byte 0x02019000 -_08119D04: .4byte sub_8119B24 - thumb_func_end sub_8119BCC - - thumb_func_start sub_8119D08 -sub_8119D08: @ 8119D08 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r1, _08119D64 @ =gUnknown_083FA64A - mov r0, sp - movs r2, 0x2 - bl memcpy - ldrh r0, [r4, 0x30] - subs r1, r0, 0x1 - strh r1, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - blt _08119D70 - ldr r0, _08119D68 @ =0x02019000 - ldr r0, [r0, 0x38] - movs r1, 0x2E - ldrsh r0, [r0, r1] - add r0, sp - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldr r1, _08119D6C @ =gSprites - movs r2, 0x3A - ldrsh r0, [r4, r2] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - adds r2, 0x3E - ldrb r3, [r2] - lsls r0, r3, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - b _08119D74 - .align 2, 0 -_08119D64: .4byte gUnknown_083FA64A -_08119D68: .4byte 0x02019000 -_08119D6C: .4byte gSprites -_08119D70: - ldr r0, _08119D7C @ =sub_8119A90 - str r0, [r4, 0x1C] -_08119D74: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08119D7C: .4byte sub_8119A90 - thumb_func_end sub_8119D08 - - thumb_func_start sub_8119D80 -sub_8119D80: @ 8119D80 - push {r4,lr} - adds r4, r0, 0 - ldr r3, _08119DB8 @ =0x02019000 - ldr r1, [r3, 0x38] - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08119DC4 - movs r0, 0x34 - ldrsh r2, [r1, r0] - ldr r1, _08119DBC @ =gUnknown_083F8DF4 - ldrb r0, [r3, 0x4] - lsls r0, 30 - lsrs r0, 25 - adds r0, r1 - ldrh r0, [r0, 0x12] - adds r0, 0x5A - cmp r2, r0 - bne _08119E26 - ldr r2, _08119DC0 @ =gSprites - movs r0, 0x3A - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r3, 0x34 - b _08119DEE - .align 2, 0 -_08119DB8: .4byte 0x02019000 -_08119DBC: .4byte gUnknown_083F8DF4 -_08119DC0: .4byte gSprites -_08119DC4: - movs r0, 0x34 - ldrsh r2, [r1, r0] - ldr r1, _08119E2C @ =gUnknown_083F8DF4 - ldrb r0, [r3, 0x4] - lsls r0, 30 - lsrs r0, 25 - adds r0, r1 - ldrh r0, [r0, 0x14] - movs r1, 0x87 - lsls r1, 1 - adds r0, r1 - cmp r2, r0 - bne _08119E26 - ldr r2, _08119E30 @ =gSprites - movs r0, 0x3A - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r3, 0x2E -_08119DEE: - strh r3, [r0, 0x30] - movs r0, 0x36 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x30] - movs r0, 0x3A - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _08119E34 @ =sub_8119D08 - str r1, [r0] - movs r0, 0x36 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _08119E38 @ =sub_8119BCC - str r1, [r0] - movs r0, 0x2B - bl m4aSongNumStart -_08119E26: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08119E2C: .4byte gUnknown_083F8DF4 -_08119E30: .4byte gSprites -_08119E34: .4byte sub_8119D08 -_08119E38: .4byte sub_8119BCC - thumb_func_end sub_8119D80 - - thumb_func_start sub_8119E3C -sub_8119E3C: @ 8119E3C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - lsls r1, 24 - lsrs r2, r1, 24 - movs r0, 0 - mov r9, r0 - ldr r6, _08119E60 @ =gUnknown_03005E98 - ldrb r0, [r6] - cmp r0, 0x1 - beq _08119EE0 - cmp r0, 0x1 - bgt _08119E64 - cmp r0, 0 - beq _08119E6A - b _08119F74 - .align 2, 0 -_08119E60: .4byte gUnknown_03005E98 -_08119E64: - cmp r0, 0x2 - beq _08119F60 - b _08119F74 -_08119E6A: - ldr r4, _08119ECC @ =0x0201c000 - ldrh r0, [r5] - movs r1, 0 - strh r0, [r4, 0x14] - ldrb r0, [r5, 0x5] - strb r0, [r4, 0x16] - strb r1, [r4, 0x1A] - strb r1, [r4, 0x1B] - strb r1, [r4, 0x10] - movs r0, 0x1C - strb r0, [r4, 0x12] - strb r1, [r4, 0x11] - ldrb r1, [r5, 0x4] - lsls r1, 19 - negs r1, r1 - asrs r1, 16 - adds r0, r2, 0 - movs r2, 0x1 - bl sub_811A350 - movs r0, 0 - mov r12, r6 - ldr r1, _08119ED0 @ =0x040000d4 - ldr r7, _08119ED4 @ =gUnknown_083FB718 - ldr r2, _08119ED8 @ =0xfffe4000 - adds r6, r4, r2 - ldr r5, _08119EDC @ =0x80000010 -_08119EA0: - movs r3, 0 - adds r4, r0, 0x1 - lsls r2, r0, 5 -_08119EA6: - str r7, [r1] - adds r0, r2, r3 - lsls r0, 5 - adds r0, r6 - str r0, [r1, 0x4] - str r5, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1F - bls _08119EA6 - lsls r0, r4, 24 - lsrs r0, 24 - cmp r0, 0x6 - bls _08119EA0 - mov r1, r12 - b _08119F50 - .align 2, 0 -_08119ECC: .4byte 0x0201c000 -_08119ED0: .4byte 0x040000d4 -_08119ED4: .4byte gUnknown_083FB718 -_08119ED8: .4byte 0xfffe4000 -_08119EDC: .4byte 0x80000010 -_08119EE0: - ldrb r0, [r5, 0x2] - lsls r0, 27 - lsrs r7, r0, 16 - ldrb r1, [r5, 0x3] - lsls r1, 12 - ldrh r0, [r5] - lsls r0, 18 - lsrs r0, 23 - adds r1, r0 - lsls r1, 16 - lsrs r6, r1, 16 - movs r0, 0 - ldr r2, _08119F58 @ =0x0201c000 - mov r8, r2 - movs r1, 0xC0 - lsls r1, 19 - mov r12, r1 -_08119F02: - movs r3, 0 - adds r4, r0, 0x1 - lsls r5, r0, 6 -_08119F08: - lsls r1, r3, 1 - adds r1, r5 - adds r1, r7 - add r1, r12 - adds r2, r6, 0 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - strh r2, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1F - bls _08119F08 - lsls r0, r4, 24 - lsrs r0, 24 - cmp r0, 0x6 - bls _08119F02 - mov r2, r8 - ldrb r0, [r2, 0x16] - movs r4, 0 - cmp r0, 0 - beq _08119F4E - mov r5, r8 -_08119F38: - adds r0, r4, 0 - movs r1, 0 - bl sub_811A1C8 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r5, 0x16] - lsls r0, 3 - cmp r4, r0 - blt _08119F38 -_08119F4E: - ldr r1, _08119F5C @ =gUnknown_03005E98 -_08119F50: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08119F74 - .align 2, 0 -_08119F58: .4byte 0x0201c000 -_08119F5C: .4byte gUnknown_03005E98 -_08119F60: - bl sub_811A324 - ldr r0, _08119F84 @ =gUnknown_083FB6F8 - ldrb r1, [r5, 0x3] - lsls r1, 4 - movs r2, 0x20 - bl LoadPalette - movs r0, 0x1 - mov r9, r0 -_08119F74: - mov r0, r9 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08119F84: .4byte gUnknown_083FB6F8 - thumb_func_end sub_8119E3C - - thumb_func_start sub_8119F88 -sub_8119F88: @ 8119F88 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_811A324 - adds r0, r4, 0 - bl sub_811A15C - ldr r1, _08119FC4 @ =0x0201c000 - ldrb r0, [r1, 0x1B] - cmp r0, 0 - beq _08119FA6 - subs r0, 0x1 - strb r0, [r1, 0x1B] -_08119FA6: - ldrb r0, [r1, 0x1A] - cmp r0, 0 - beq _08119FC8 - subs r0, 0x1 - strb r0, [r1, 0x1A] - lsls r0, 24 - cmp r0, 0 - bne _08119FC8 - ldrh r0, [r1, 0x18] - bl sub_811A0A0 - bl sub_811A124 - b _0811A044 - .align 2, 0 -_08119FC4: .4byte 0x0201c000 -_08119FC8: - ldr r5, _08119FD8 @ =0x0201c000 - ldrb r0, [r5, 0x10] - cmp r0, 0 - bne _08119FDC - bl sub_811A124 - b _0811A044 - .align 2, 0 -_08119FD8: .4byte 0x0201c000 -_08119FDC: - cmp r0, 0x1 - bne _08119FE6 - bl sub_811A0C0 - b _0811A006 -_08119FE6: - cmp r0, 0x8 - bls _0811A006 - bl IsCryPlaying - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08119FFE - bl sub_811A124 - strb r4, [r5, 0x10] - b _0811A044 -_08119FFE: - bl sub_811A0C0 - movs r0, 0x1 - strb r0, [r5, 0x10] -_0811A006: - ldr r5, _0811A04C @ =0x0201c000 - ldrb r4, [r5, 0x10] - subs r4, 0x1 - lsls r4, 25 - lsrs r4, 24 - ldrb r0, [r5, 0x16] - lsls r0, 3 - ldrb r1, [r5, 0x11] - adds r0, r1 - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, r5 - ldrb r1, [r1] - bl sub_811A1C8 - ldrb r0, [r5, 0x16] - lsls r0, 3 - ldrb r1, [r5, 0x11] - adds r0, r1 - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - adds r4, 0x1 - adds r4, r5 - ldrb r1, [r4] - bl sub_811A1C8 - ldrb r0, [r5, 0x10] - adds r0, 0x1 - strb r0, [r5, 0x10] -_0811A044: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811A04C: .4byte 0x0201c000 - thumb_func_end sub_8119F88 - - thumb_func_start sub_811A050 -sub_811A050: @ 811A050 - push {r4-r6,lr} - lsls r0, 16 - lsrs r5, r0, 16 - adds r6, r5, 0 - ldr r0, _0811A08C @ =gMPlay_BGM - ldr r0, [r0, 0x4] - cmp r0, 0 - bge _0811A09A - ldr r4, _0811A090 @ =0x0201c000 - ldrb r0, [r4, 0x1A] - cmp r0, 0 - bne _0811A09A - ldrb r0, [r4, 0x1B] - cmp r0, 0 - bne _0811A09A - movs r0, 0x4 - strb r0, [r4, 0x1B] - bl IsCryPlaying - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0811A094 - bl StopCry - strh r5, [r4, 0x18] - movs r0, 0x2 - strb r0, [r4, 0x1A] - b _0811A09A - .align 2, 0 -_0811A08C: .4byte gMPlay_BGM -_0811A090: .4byte 0x0201c000 -_0811A094: - adds r0, r6, 0 - bl sub_811A0A0 -_0811A09A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_811A050 - - thumb_func_start sub_811A0A0 -sub_811A0A0: @ 811A0A0 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - movs r2, 0x7D - movs r3, 0xA - bl PlayCry2 - ldr r1, _0811A0BC @ =0x0201c000 - movs r0, 0x1 - strb r0, [r1, 0x10] - pop {r0} - bx r0 - .align 2, 0 -_0811A0BC: .4byte 0x0201c000 - thumb_func_end sub_811A0A0 - - thumb_func_start sub_811A0C0 -sub_811A0C0: @ 811A0C0 - push {r4,lr} - ldr r3, _0811A0D0 @ =gPcmDmaCounter - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r0, 0x1 - bgt _0811A0D8 - ldr r0, _0811A0D4 @ =gSoundInfo + 0x350 - b _0811A0F0 - .align 2, 0 -_0811A0D0: .4byte gPcmDmaCounter -_0811A0D4: .4byte gSoundInfo + 0x350 -_0811A0D8: - ldr r2, _0811A11C @ =gSoundInfo - ldrb r1, [r2, 0xB] - movs r0, 0 - ldrsb r0, [r3, r0] - subs r0, 0x1 - subs r1, r0 - ldr r0, [r2, 0x10] - muls r0, r1 - movs r1, 0xD4 - lsls r1, 2 - adds r2, r1 - adds r0, r2 -_0811A0F0: - movs r1, 0xC6 - lsls r1, 3 - adds r3, r0, r1 - movs r2, 0 - ldr r4, _0811A120 @ =0x0201c000 -_0811A0FA: - adds r1, r2, r4 - lsls r0, r2, 1 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _0811A0FA - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811A11C: .4byte gSoundInfo -_0811A120: .4byte 0x0201c000 - thumb_func_end sub_811A0C0 - - thumb_func_start sub_811A124 -sub_811A124: @ 811A124 - push {r4,lr} - ldr r4, _0811A158 @ =0x0201c000 - ldrb r0, [r4, 0x16] - lsls r0, 3 - ldrb r1, [r4, 0x11] - adds r0, r1 - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_811A1C8 - ldrb r0, [r4, 0x16] - lsls r0, 3 - ldrb r4, [r4, 0x11] - adds r0, r4 - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_811A1C8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811A158: .4byte 0x0201c000 - thumb_func_end sub_811A124 - - thumb_func_start sub_811A15C -sub_811A15C: @ 811A15C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _0811A1B4 @ =0x0201c000 - ldrb r1, [r4, 0x11] - movs r2, 0 - bl sub_811A350 - ldrb r0, [r4, 0x11] - adds r0, 0x2 - strb r0, [r4, 0x11] - ldrb r0, [r4, 0x11] - lsrs r0, 3 - ldrb r2, [r4, 0x16] - adds r1, r0, r2 - adds r2, r1, 0x1 - adds r0, r2, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r2, r0 - lsls r0, 16 - lsrs r3, r0, 16 - movs r1, 0 - ldr r2, _0811A1B8 @ =0x040000d4 - ldr r6, _0811A1BC @ =gUnknown_083FB718 - ldr r0, _0811A1C0 @ =0xfffe4000 - adds r5, r4, r0 - ldr r4, _0811A1C4 @ =0x80000010 -_0811A194: - str r6, [r2] - lsls r0, r1, 5 - adds r0, r3 - lsls r0, 5 - adds r0, r5 - str r0, [r2, 0x4] - str r4, [r2, 0x8] - ldr r0, [r2, 0x8] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x6 - bls _0811A194 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811A1B4: .4byte 0x0201c000 -_0811A1B8: .4byte 0x040000d4 -_0811A1BC: .4byte gUnknown_083FB718 -_0811A1C0: .4byte 0xfffe4000 -_0811A1C4: .4byte 0x80000010 - thumb_func_end sub_811A15C - - thumb_func_start sub_811A1C8 -sub_811A1C8: @ 811A1C8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r5, r0, 24 - lsrs r4, r5, 24 - lsls r1, 24 - movs r0, 0xFE - lsls r0, 23 - adds r1, r0 - lsrs r1, 16 - adds r0, r1, 0 - bl __floatsidf - ldr r3, _0811A280 @ =0x00000000 - ldr r2, _0811A27C @ =0x40920000 - bl __divdf3 - bl __fixunsdfsi - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x37 - bls _0811A1FE - movs r6, 0x37 -_0811A1FE: - str r6, [sp] - movs r7, 0x1 - ands r7, r4 - ldr r0, _0811A284 @ =0x0201c000 - mov r10, r0 - lsrs r5, 27 - mov r8, r5 - ldr r0, _0811A288 @ =gUnknown_083FB738 - mov r1, r10 - ldrb r1, [r1, 0x12] - cmp r6, r1 - bls _0811A298 - adds r0, r7, r0 - ldrb r0, [r0] - mov r9, r0 - movs r2, 0x7 - ands r2, r4 -_0811A220: - lsls r1, r6, 1 - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 4 - adds r1, r0 - ldr r3, _0811A28C @ =gUnknown_083FB274 - adds r1, r3 - mov r3, r8 - lsls r0, r3, 5 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0811A290 @ =0x02000000 - adds r5, r0, r1 - ldrb r4, [r5] - mov r3, r9 - ands r4, r3 - strb r4, [r5] - adds r0, r6, 0 - movs r1, 0x3 - str r2, [sp, 0x8] - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - movs r1, 0xF - ands r0, r1 - lsls r1, r7, 4 - adds r0, r1 - ldr r1, _0811A294 @ =gUnknown_083FB73A - adds r0, r1 - ldrb r0, [r0] - orrs r4, r0 - strb r4, [r5] - subs r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, [sp, 0x8] - ldr r3, _0811A284 @ =0x0201c000 - ldrb r3, [r3, 0x12] - cmp r6, r3 - bhi _0811A220 - b _0811A2FA - .align 2, 0 -_0811A27C: .4byte 0x40920000 -_0811A280: .4byte 0x00000000 -_0811A284: .4byte 0x0201c000 -_0811A288: .4byte gUnknown_083FB738 -_0811A28C: .4byte gUnknown_083FB274 -_0811A290: .4byte 0x02000000 -_0811A294: .4byte gUnknown_083FB73A -_0811A298: - lsls r1, r7, 4 - str r1, [sp, 0x4] - adds r0, r7, r0 - ldrb r0, [r0] - mov r9, r0 - movs r7, 0x7 - ands r7, r4 -_0811A2A6: - lsls r1, r6, 1 - lsls r0, r7, 3 - adds r0, r7 - lsls r0, 4 - adds r1, r0 - ldr r2, _0811A314 @ =gUnknown_083FB274 - adds r1, r2 - mov r3, r8 - lsls r0, r3, 5 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0811A318 @ =0x02000000 - adds r5, r0, r1 - ldrb r4, [r5] - mov r2, r9 - ands r4, r2 - strb r4, [r5] - adds r0, r6, 0 - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - movs r1, 0xF - ands r0, r1 - ldr r3, [sp, 0x4] - adds r0, r3 - ldr r1, _0811A31C @ =gUnknown_083FB73A - adds r0, r1 - ldrb r0, [r0] - orrs r4, r0 - strb r4, [r5] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _0811A320 @ =0x0201c000 - ldrb r2, [r2, 0x12] - cmp r6, r2 - bcc _0811A2A6 -_0811A2FA: - mov r3, sp - ldrb r0, [r3] - mov r3, r10 - strb r0, [r3, 0x12] - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811A314: .4byte gUnknown_083FB274 -_0811A318: .4byte 0x02000000 -_0811A31C: .4byte gUnknown_083FB73A -_0811A320: .4byte 0x0201c000 - thumb_func_end sub_811A1C8 - - thumb_func_start sub_811A324 -sub_811A324: @ 811A324 - ldr r2, _0811A344 @ =0x040000d4 - ldr r0, _0811A348 @ =0x02000000 - str r0, [r2] - movs r1, 0xE0 - lsls r1, 9 - adds r0, r1 - ldrh r0, [r0, 0x14] - movs r1, 0xC0 - lsls r1, 19 - adds r0, r1 - str r0, [r2, 0x4] - ldr r0, _0811A34C @ =0x80000e00 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - bx lr - .align 2, 0 -_0811A344: .4byte 0x040000d4 -_0811A348: .4byte 0x02000000 -_0811A34C: .4byte 0x80000e00 - thumb_func_end sub_811A324 - - thumb_func_start sub_811A350 -sub_811A350: @ 811A350 - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 24 - lsrs r2, 24 - cmp r0, 0x1 - beq _0811A38C - cmp r0, 0x1 - bgt _0811A36E - cmp r0, 0 - beq _0811A378 - b _0811A3C4 -_0811A36E: - cmp r3, 0x2 - beq _0811A3A0 - cmp r3, 0x3 - beq _0811A3B4 - b _0811A3C4 -_0811A378: - cmp r2, 0 - beq _0811A384 - ldr r0, _0811A380 @ =REG_BG0VOFS - b _0811A3C2 - .align 2, 0 -_0811A380: .4byte REG_BG0VOFS -_0811A384: - ldr r0, _0811A388 @ =REG_BG0HOFS - b _0811A3C2 - .align 2, 0 -_0811A388: .4byte REG_BG0HOFS -_0811A38C: - cmp r2, 0 - beq _0811A398 - ldr r0, _0811A394 @ =REG_BG1VOFS - b _0811A3C2 - .align 2, 0 -_0811A394: .4byte REG_BG1VOFS -_0811A398: - ldr r0, _0811A39C @ =REG_BG1HOFS - b _0811A3C2 - .align 2, 0 -_0811A39C: .4byte REG_BG1HOFS -_0811A3A0: - cmp r2, 0 - beq _0811A3AC - ldr r0, _0811A3A8 @ =REG_BG2VOFS - b _0811A3C2 - .align 2, 0 -_0811A3A8: .4byte REG_BG2VOFS -_0811A3AC: - ldr r0, _0811A3B0 @ =REG_BG2HOFS - b _0811A3C2 - .align 2, 0 -_0811A3B0: .4byte REG_BG2HOFS -_0811A3B4: - cmp r2, 0 - beq _0811A3C0 - ldr r0, _0811A3BC @ =REG_BG3VOFS - b _0811A3C2 - .align 2, 0 -_0811A3BC: .4byte REG_BG3VOFS -_0811A3C0: - ldr r0, _0811A3C8 @ =REG_BG3HOFS -_0811A3C2: - strh r1, [r0] -_0811A3C4: - pop {r0} - bx r0 - .align 2, 0 -_0811A3C8: .4byte REG_BG3HOFS - thumb_func_end sub_811A350 - - thumb_func_start sub_811A3CC -sub_811A3CC: @ 811A3CC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0 - str r0, [sp] - ldr r0, _0811A3F4 @ =gUnknown_03005E98 - ldrb r1, [r0] - mov r10, r0 - cmp r1, 0x1 - beq _0811A42C - cmp r1, 0x1 - bgt _0811A3F8 - cmp r1, 0 - beq _0811A3FE - b _0811A4D6 - .align 2, 0 -_0811A3F4: .4byte gUnknown_03005E98 -_0811A3F8: - cmp r1, 0x2 - beq _0811A494 - b _0811A4D6 -_0811A3FE: - ldr r0, _0811A424 @ =gUnknown_083FAF3C - ldrh r1, [r4] - movs r2, 0xC0 - lsls r2, 19 - adds r1, r2 - bl LZ77UnCompVram - ldr r0, _0811A428 @ =gUnknown_083FAF1C - ldrb r1, [r4, 0x3] - lsls r1, 4 - movs r2, 0x20 - bl LoadPalette - mov r1, r10 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0811A4D6 - .align 2, 0 -_0811A424: .4byte gUnknown_083FAF3C -_0811A428: .4byte gUnknown_083FAF1C -_0811A42C: - ldrb r0, [r4, 0x2] - lsls r0, 11 - movs r1, 0xC0 - lsls r1, 19 - adds r0, r1 - mov r8, r0 - ldrh r0, [r4] - lsls r0, 18 - lsrs r0, 23 - mov r12, r0 - movs r5, 0 - ldr r2, _0811A490 @ =gUnknown_083FAE7C - mov r9, r2 -_0811A446: - movs r3, 0 - lsls r0, r5, 2 - adds r7, r5, 0x1 - adds r0, r5 - lsls r6, r0, 1 -_0811A450: - ldrb r0, [r4, 0x5] - adds r0, r5, r0 - ldrb r2, [r4, 0x4] - adds r2, r3, r2 - lsls r2, 1 - lsls r0, 6 - adds r2, r0 - add r2, r8 - adds r1, r6, r3 - lsls r1, 1 - add r1, r9 - ldrb r0, [r4, 0x3] - lsls r0, 12 - ldrh r1, [r1] - orrs r0, r1 - add r0, r12 - strh r0, [r2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x9 - bls _0811A450 - lsls r0, r7, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _0811A446 - mov r3, r10 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - b _0811A4D6 - .align 2, 0 -_0811A490: .4byte gUnknown_083FAE7C -_0811A494: - ldr r0, _0811A4E8 @ =gCryMeterNeedleSpriteSheets - bl LoadSpriteSheets - ldr r0, _0811A4EC @ =gCryMeterNeedleSpritePalettes - bl LoadSpritePalettes - ldr r0, _0811A4F0 @ =gSpriteTemplate_83FB774 - ldrb r1, [r4, 0x4] - lsls r1, 19 - movs r2, 0xA0 - lsls r2, 14 - adds r1, r2 - asrs r1, 16 - ldrb r2, [r4, 0x5] - lsls r2, 19 - movs r3, 0xE0 - lsls r3, 14 - adds r2, r3 - asrs r2, 16 - movs r3, 0x1 - bl CreateSprite - ldr r1, _0811A4F4 @ =0x0201c800 - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - strh r0, [r1, 0x4] - movs r0, 0x20 - strb r0, [r1] - strb r0, [r1, 0x1] - strb r2, [r1, 0x2] - movs r0, 0x1 - str r0, [sp] -_0811A4D6: - ldr r0, [sp] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0811A4E8: .4byte gCryMeterNeedleSpriteSheets -_0811A4EC: .4byte gCryMeterNeedleSpritePalettes -_0811A4F0: .4byte gSpriteTemplate_83FB774 -_0811A4F4: .4byte 0x0201c800 - thumb_func_end sub_811A3CC - - thumb_func_start sub_811A4F8 -sub_811A4F8: @ 811A4F8 - push {r4,r5,lr} - ldr r5, _0811A52C @ =gSprites - ldr r4, _0811A530 @ =0x0201c800 - ldrh r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - bl GetSpritePaletteTagByPaletteNum - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag - ldrh r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811A52C: .4byte gSprites -_0811A530: .4byte 0x0201c800 - thumb_func_end sub_811A4F8 - - thumb_func_start sub_811A534 -sub_811A534: @ 811A534 - push {r4-r7,lr} - sub sp, 0x14 - adds r7, r0, 0 - ldr r3, _0811A578 @ =gSprites - ldr r5, _0811A57C @ =0x0201c800 - ldrh r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0, 0x1] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0, 0x1] - ldrh r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x6] - ldr r0, _0811A580 @ =0xfffff800 - adds r1, r5, r0 - ldrb r0, [r1, 0x10] - cmp r0, 0x2 - beq _0811A5AA - cmp r0, 0x2 - bgt _0811A584 - cmp r0, 0 - beq _0811A58A - b _0811A5F4 - .align 2, 0 -_0811A578: .4byte gSprites -_0811A57C: .4byte 0x0201c800 -_0811A580: .4byte 0xfffff800 -_0811A584: - cmp r0, 0x6 - beq _0811A5E2 - b _0811A5F4 -_0811A58A: - movs r0, 0x20 - strb r0, [r5, 0x1] - movs r0, 0 - ldrsb r0, [r5, r0] - cmp r0, 0 - ble _0811A5A4 - ldrb r0, [r5, 0x2] - add r4, sp, 0xC - cmp r0, 0x1 - beq _0811A5F6 - subs r0, 0x1 - strb r0, [r5, 0x2] - b _0811A5F6 -_0811A5A4: - movs r0, 0x5 - strb r0, [r5, 0x2] - b _0811A5F4 -_0811A5AA: - movs r3, 0 - movs r2, 0 - add r4, sp, 0xC - adds r5, r1, 0 -_0811A5B2: - lsls r1, r3, 24 - asrs r1, 24 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r1, r0 - bge _0811A5C0 - adds r3, r0, 0 -_0811A5C0: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xF - bls _0811A5B2 - lsls r0, r3, 24 - asrs r0, 24 - movs r1, 0xD0 - muls r0, r1 - cmp r0, 0 - bge _0811A5D8 - adds r0, 0xFF -_0811A5D8: - lsls r0, 16 - asrs r0, 24 - bl sub_811A6D8 - b _0811A5F6 -_0811A5E2: - ldr r1, _0811A620 @ =0xfffff80a - adds r0, r5, r1 - ldrb r1, [r0] - movs r0, 0xD0 - muls r0, r1 - lsls r0, 16 - asrs r0, 24 - bl sub_811A6D8 -_0811A5F4: - add r4, sp, 0xC -_0811A5F6: - ldr r0, _0811A624 @ =0x0201c800 - ldrb r3, [r0] - movs r2, 0 - ldrsb r2, [r0, r2] - ldrb r6, [r0, 0x1] - movs r1, 0x1 - ldrsb r1, [r0, r1] - adds r5, r0, 0 - cmp r2, r1 - beq _0811A63C - cmp r2, r1 - bge _0811A628 - ldrb r0, [r5, 0x2] - adds r0, r3, r0 - strb r0, [r5] - lsls r0, 24 - asrs r0, 24 - cmp r0, r1 - ble _0811A63C - b _0811A636 - .align 2, 0 -_0811A620: .4byte 0xfffff80a -_0811A624: .4byte 0x0201c800 -_0811A628: - ldrb r0, [r5, 0x2] - subs r0, r3, r0 - strb r0, [r5] - lsls r0, 24 - asrs r0, 24 - cmp r0, r1 - bge _0811A63C -_0811A636: - strb r6, [r5] - movs r0, 0 - strb r0, [r5, 0x1] -_0811A63C: - ldr r2, _0811A6CC @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r2 - movs r1, 0x80 - lsls r1, 1 - orrs r0, r1 - ldr r1, _0811A6D0 @ =0x0000ffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 17 - orrs r0, r1 - str r0, [sp, 0x4] - movs r1, 0 - ldrsb r1, [r5, r1] - lsls r1, 24 - lsrs r1, 16 - ldr r0, [sp, 0x8] - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x8] - add r0, sp, 0x4 - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ObjAffineSet - add r0, sp, 0xC - ldrh r1, [r0] - ldrh r2, [r4, 0x2] - ldrh r3, [r4, 0x4] - ldrh r0, [r4, 0x6] - str r0, [sp] - movs r0, 0 - bl SetOamMatrix - ldr r2, _0811A6D4 @ =gSineTable - movs r0, 0 - ldrsb r0, [r5, r0] - adds r0, 0x7F - movs r1, 0xFF - ands r0, r1 - lsls r1, r0, 1 - adds r1, r2 - adds r0, 0x40 - lsls r0, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0 - ldrsh r1, [r1, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - cmp r0, 0 - bge _0811A6AA - adds r0, 0xFF -_0811A6AA: - asrs r0, 8 - strh r0, [r7, 0x24] - lsls r1, r2, 16 - asrs r1, 16 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - cmp r0, 0 - bge _0811A6BE - adds r0, 0xFF -_0811A6BE: - asrs r0, 8 - strh r0, [r7, 0x26] - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811A6CC: .4byte 0xffff0000 -_0811A6D0: .4byte 0x0000ffff -_0811A6D4: .4byte gSineTable - thumb_func_end sub_811A534 - - thumb_func_start sub_811A6D8 -sub_811A6D8: @ 811A6D8 - push {lr} - lsls r0, 24 - asrs r0, 24 - movs r1, 0x20 - subs r2, r1, r0 - movs r0, 0xFF - ands r2, r0 - adds r0, r2, 0 - subs r0, 0x21 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xBE - bhi _0811A6F4 - movs r2, 0xE0 -_0811A6F4: - ldr r1, _0811A700 @ =0x0201c800 - strb r2, [r1, 0x1] - movs r0, 0x5 - strb r0, [r1, 0x2] - pop {r0} - bx r0 - .align 2, 0 -_0811A700: .4byte 0x0201c800 - thumb_func_end sub_811A6D8 - - thumb_func_start sub_811A704 -sub_811A704: @ 811A704 - push {r4,lr} - adds r4, r1, 0 - adds r3, r2, 0 - lsls r4, 24 - lsls r3, 24 - movs r1, 0x80 - lsls r1, 18 - adds r4, r1 - lsrs r4, 24 - movs r1, 0x80 - lsls r1, 17 - adds r3, r1 - lsrs r3, 24 - movs r1, 0x4 - adds r2, r4, 0 - bl sub_811A798 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_811A704 - - thumb_func_start sub_811A72C -sub_811A72C: @ 811A72C - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, 0 - adds r3, r2, 0 - lsls r4, 24 - lsls r3, 24 - lsrs r6, r4, 24 - movs r0, 0x90 - lsls r0, 20 - adds r4, r0 - lsrs r4, 24 - lsrs r5, r3, 24 - movs r0, 0xC0 - lsls r0, 18 - adds r3, r0 - lsrs r3, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl MenuDrawTextWindow - mov r0, r8 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_811A704 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_811A72C - - thumb_func_start sub_811A770 -sub_811A770: @ 811A770 - push {r4,lr} - adds r2, r0, 0 - adds r3, r1, 0 - lsls r2, 24 - lsls r3, 24 - lsrs r0, r2, 24 - movs r1, 0x90 - lsls r1, 20 - adds r2, r1 - lsrs r2, 24 - lsrs r1, r3, 24 - movs r4, 0xC0 - lsls r4, 18 - adds r3, r4 - lsrs r3, 24 - bl MenuZeroFillWindowRect - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_811A770 - - thumb_func_start sub_811A798 -sub_811A798: @ 811A798 - push {r4-r7,lr} - sub sp, 0x10 - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r5, r1, 0 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 24 - lsrs r7, r3, 24 - mov r0, sp - adds r1, r4, 0 - bl ConvertIntToDecimalString - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 1 - adds r1, 0x21 - adds r0, r5, 0x2 - lsls r0, 3 - subs r1, r0 - lsls r1, 24 - lsrs r0, r1, 27 - subs r0, r6, r0 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0xE0 - lsls r0, 19 - ands r0, r1 - lsrs r1, r0, 24 - ldr r4, _0811A824 @ =gStringVar1 - cmp r1, 0 - beq _0811A7EA - movs r0, 0xFC - strb r0, [r4] - movs r0, 0x11 - strb r0, [r4, 0x1] - movs r0, 0x8 - subs r0, r1 - strb r0, [r4, 0x2] - adds r4, 0x3 -_0811A7EA: - movs r0, 0xFC - strb r0, [r4] - movs r0, 0x11 - strb r0, [r4, 0x1] - mov r0, sp - bl StringLength - lsls r0, 16 - lsrs r0, 16 - subs r0, r5, r0 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - strb r1, [r4, 0x2] - adds r4, 0x3 - adds r0, r4, 0 - mov r1, sp - bl StringCopy - ldr r0, _0811A828 @ =gOtherText_Coins2 - adds r1, r6, 0 - adds r2, r7, 0 - bl MenuPrint - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811A824: .4byte gStringVar1 -_0811A828: .4byte gOtherText_Coins2 - thumb_func_end sub_811A798 - - thumb_func_start GetCoins -GetCoins: @ 811A82C - ldr r0, _0811A838 @ =gSaveBlock1 - ldr r1, _0811A83C @ =0x00000494 - adds r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_0811A838: .4byte gSaveBlock1 -_0811A83C: .4byte 0x00000494 - thumb_func_end GetCoins - - thumb_func_start GiveCoins -GiveCoins: @ 811A840 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl GetCoins - lsls r0, 16 - ldr r1, _0811A858 @ =0x270e0000 - cmp r0, r1 - bls _0811A85C - movs r0, 0 - b _0811A88C - .align 2, 0 -_0811A858: .4byte 0x270e0000 -_0811A85C: - ldr r0, _0811A874 @ =gSaveBlock1 - ldr r1, _0811A878 @ =0x00000494 - adds r3, r0, r1 - ldrh r1, [r3] - adds r2, r4, r1 - lsls r0, r2, 16 - lsrs r0, 16 - cmp r1, r0 - bls _0811A880 - ldr r0, _0811A87C @ =0x0000270f - strh r0, [r3] - b _0811A88A - .align 2, 0 -_0811A874: .4byte gSaveBlock1 -_0811A878: .4byte 0x00000494 -_0811A87C: .4byte 0x0000270f -_0811A880: - strh r2, [r3] - ldr r1, _0811A894 @ =0x0000270f - cmp r0, r1 - bls _0811A88A - strh r1, [r3] -_0811A88A: - movs r0, 0x1 -_0811A88C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811A894: .4byte 0x0000270f - thumb_func_end GiveCoins - - thumb_func_start TakeCoins -TakeCoins: @ 811A898 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl GetCoins - lsls r0, 16 - lsrs r0, 16 - cmp r0, r4 - bcs _0811A8AE - movs r0, 0 - b _0811A8BC -_0811A8AE: - ldr r1, _0811A8C4 @ =gSaveBlock1 - ldr r0, _0811A8C8 @ =0x00000494 - adds r1, r0 - ldrh r0, [r1] - subs r0, r4 - strh r0, [r1] - movs r0, 0x1 -_0811A8BC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811A8C4: .4byte gSaveBlock1 -_0811A8C8: .4byte 0x00000494 - thumb_func_end TakeCoins - - thumb_func_start sub_811A8CC -sub_811A8CC: @ 811A8CC - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - bl sub_811A920 - adds r4, r0, 0 - cmp r4, 0 - bne _0811A8E8 -_0811A8E4: - movs r0, 0 - b _0811A91A -_0811A8E8: - ldr r6, _0811A8EC @ =0x0000ffff - b _0811A8FE - .align 2, 0 -_0811A8EC: .4byte 0x0000ffff -_0811A8F0: - subs r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_0811A8F6: - adds r4, 0x4 - ldr r0, [r4] - cmp r0, 0 - beq _0811A8E4 -_0811A8FE: - ldr r1, [r4] - ldrh r0, [r1, 0x4] - cmp r0, r6 - beq _0811A912 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0811A8F6 -_0811A912: - cmp r5, 0 - bne _0811A8F0 - ldr r0, [r4] - ldr r0, [r0] -_0811A91A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_811A8CC - - thumb_func_start sub_811A920 -sub_811A920: @ 811A920 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - movs r2, 0 - ldr r0, _0811A964 @ =gLandmarkLists - ldrb r1, [r0] - adds r4, r0, 0 - cmp r1, 0x58 - beq _0811A990 - adds r1, r4, 0 -_0811A938: - lsls r0, r2, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, r3 - bhi _0811A990 - cmp r0, r3 - beq _0811A956 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r0, r2, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x58 - bne _0811A938 -_0811A956: - lsls r0, r2, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x58 - bne _0811A970 - b _0811A990 - .align 2, 0 -_0811A964: .4byte gLandmarkLists -_0811A968: - adds r0, r4, 0x4 - adds r0, r1, r0 - ldr r0, [r0] - b _0811A992 -_0811A970: - cmp r0, r3 - bne _0811A990 - ldr r5, _0811A998 @ =gLandmarkLists -_0811A976: - lsls r1, r2, 3 - adds r0, r1, r5 - ldrb r0, [r0, 0x1] - cmp r0, r6 - beq _0811A968 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r0, r2, 3 - adds r0, r4 - ldrb r0, [r0] - cmp r0, r3 - beq _0811A976 -_0811A990: - movs r0, 0 -_0811A992: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0811A998: .4byte gLandmarkLists - thumb_func_end sub_811A920 - - thumb_func_start SetUpFieldMove_Strength -SetUpFieldMove_Strength: @ 811A99C - push {lr} - bl sub_81474C8 - lsls r0, 24 - cmp r0, 0 - beq _0811A9D4 - ldr r1, _0811A9BC @ =gScriptResult - ldr r0, _0811A9C0 @ =gUnknown_03005CE0 - ldrb r0, [r0] - strh r0, [r1] - ldr r1, _0811A9C4 @ =gUnknown_0300485C - ldr r0, _0811A9C8 @ =sub_808AB90 - str r0, [r1] - ldr r1, _0811A9CC @ =gUnknown_03005CE4 - ldr r0, _0811A9D0 @ =sub_811AA38 - b _0811A9F8 - .align 2, 0 -_0811A9BC: .4byte gScriptResult -_0811A9C0: .4byte gUnknown_03005CE0 -_0811A9C4: .4byte gUnknown_0300485C -_0811A9C8: .4byte sub_808AB90 -_0811A9CC: .4byte gUnknown_03005CE4 -_0811A9D0: .4byte sub_811AA38 -_0811A9D4: - movs r0, 0x57 - bl npc_before_player_of_type - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0811A9E6 - movs r0, 0 - b _0811A9FC -_0811A9E6: - ldr r1, _0811AA00 @ =gScriptResult - ldr r0, _0811AA04 @ =gUnknown_03005CE0 - ldrb r0, [r0] - strh r0, [r1] - ldr r1, _0811AA08 @ =gUnknown_0300485C - ldr r0, _0811AA0C @ =sub_808AB90 - str r0, [r1] - ldr r1, _0811AA10 @ =gUnknown_03005CE4 - ldr r0, _0811AA14 @ =sub_811AA18 -_0811A9F8: - str r0, [r1] - movs r0, 0x1 -_0811A9FC: - pop {r1} - bx r1 - .align 2, 0 -_0811AA00: .4byte gScriptResult -_0811AA04: .4byte gUnknown_03005CE0 -_0811AA08: .4byte gUnknown_0300485C -_0811AA0C: .4byte sub_808AB90 -_0811AA10: .4byte gUnknown_03005CE4 -_0811AA14: .4byte sub_811AA18 - thumb_func_end SetUpFieldMove_Strength - - thumb_func_start sub_811AA18 -sub_811AA18: @ 811AA18 - push {lr} - ldr r1, _0811AA2C @ =gUnknown_0202FF84 - ldr r0, _0811AA30 @ =gUnknown_03005CE0 - ldrb r0, [r0] - str r0, [r1] - ldr r0, _0811AA34 @ =UseStrengthScript - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_0811AA2C: .4byte gUnknown_0202FF84 -_0811AA30: .4byte gUnknown_03005CE0 -_0811AA34: .4byte UseStrengthScript - thumb_func_end sub_811AA18 - - thumb_func_start sub_811AA38 -sub_811AA38: @ 811AA38 - push {lr} - ldr r0, _0811AA4C @ =gUnknown_0202FF84 - ldr r1, _0811AA50 @ =gUnknown_03005CE0 - ldrb r1, [r1] - str r1, [r0] - movs r0, 0x28 - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_0811AA4C: .4byte gUnknown_0202FF84 -_0811AA50: .4byte gUnknown_03005CE0 - thumb_func_end sub_811AA38 - - thumb_func_start FldEff_UseStrength -FldEff_UseStrength: @ 811AA54 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0811AA88 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _0811AA8C @ =sub_811AA9C - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - ldr r0, _0811AA90 @ =gUnknown_0202FF84 - ldr r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0811AA94 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811AA98 @ =gStringVar1 - bl GetMonNickname - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0811AA88: .4byte gTasks -_0811AA8C: .4byte sub_811AA9C -_0811AA90: .4byte gUnknown_0202FF84 -_0811AA94: .4byte gPlayerParty -_0811AA98: .4byte gStringVar1 - thumb_func_end FldEff_UseStrength - - thumb_func_start sub_811AA9C -sub_811AA9C: @ 811AA9C - push {lr} - bl sub_81474C8 - lsls r0, 24 - cmp r0, 0 - beq _0811AAAE - bl sub_8147514 - b _0811AAB8 -_0811AAAE: - movs r0, 0x28 - bl FieldEffectActiveListRemove - bl EnableBothScriptContexts -_0811AAB8: - pop {r0} - bx r0 - thumb_func_end sub_811AA9C - - thumb_func_start sub_811AABC -sub_811AABC: @ 811AABC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0811AAD0 @ =gMain - ldr r1, _0811AAD4 @ =sub_8054398 - str r1, [r2, 0x4] - bl sub_811AB20 - pop {r0} - bx r0 - .align 2, 0 -_0811AAD0: .4byte gMain -_0811AAD4: .4byte sub_8054398 - thumb_func_end sub_811AABC - - thumb_func_start sub_811AAD8 -sub_811AAD8: @ 811AAD8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_811AB20 - pop {r0} - bx r0 - thumb_func_end sub_811AAD8 - - thumb_func_start sub_811AAE8 -sub_811AAE8: @ 811AAE8 - push {lr} - ldr r0, _0811AB0C @ =sub_811AB50 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _0811AB10 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0x26 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0811AB14 - movs r0, 0 - b _0811AB1C - .align 2, 0 -_0811AB0C: .4byte sub_811AB50 -_0811AB10: .4byte gTasks -_0811AB14: - adds r0, r2, 0 - bl DestroyTask - movs r0, 0x1 -_0811AB1C: - pop {r1} - bx r1 - thumb_func_end sub_811AAE8 - - thumb_func_start sub_811AB20 -sub_811AB20: @ 811AB20 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0811AB48 @ =sub_811AB50 - movs r1, 0x2 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0811AB4C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811AB48: .4byte sub_811AB50 -_0811AB4C: .4byte gTasks - thumb_func_end sub_811AB20 - - thumb_func_start sub_811AB50 -sub_811AB50: @ 811AB50 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0811AB80 @ =gUnknown_083FD794 - ldr r2, _0811AB84 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0811AB62: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0811AB62 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811AB80: .4byte gUnknown_083FD794 -_0811AB84: .4byte gTasks - thumb_func_end sub_811AB50 - - thumb_func_start sub_811AB88 -sub_811AB88: @ 811AB88 - push {r4,lr} - adds r4, r0, 0 - bl sub_807DE10 - ldr r0, _0811ABB4 @ =gPlttBufferFaded - ldr r1, _0811ABB8 @ =gPlttBufferUnfaded - ldr r2, _0811ABBC @ =0x04000100 - bl CpuSet - ldr r1, _0811ABC0 @ =gUnknown_083FD70C - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - bne _0811ABC4 - movs r0, 0x2 - strh r0, [r4, 0x8] - movs r0, 0x1 - b _0811ABD2 - .align 2, 0 -_0811ABB4: .4byte gPlttBufferFaded -_0811ABB8: .4byte gPlttBufferUnfaded -_0811ABBC: .4byte 0x04000100 -_0811ABC0: .4byte gUnknown_083FD70C -_0811ABC4: - movs r1, 0x4 - bl CreateTask - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 -_0811ABD2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_811AB88 - - thumb_func_start sub_811ABD8 -sub_811ABD8: @ 811ABD8 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _0811ABF8 @ =gUnknown_083FD70C - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0811ABFC - movs r0, 0 - b _0811AC04 - .align 2, 0 -_0811ABF8: .4byte gUnknown_083FD70C -_0811ABFC: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 -_0811AC04: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_811ABD8 - - thumb_func_start sub_811AC0C -sub_811AC0C: @ 811AC0C - push {r4,lr} - adds r4, r0, 0 - ldr r1, _0811AC30 @ =gBattleTransitionFuncs - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - bl CreateTask - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811AC30: .4byte gBattleTransitionFuncs - thumb_func_end sub_811AC0C - - thumb_func_start sub_811AC34 -sub_811AC34: @ 811AC34 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0 - strh r0, [r4, 0x26] - ldr r1, _0811AC60 @ =gBattleTransitionFuncs - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0811AC58 - movs r0, 0x1 - strh r0, [r4, 0x26] -_0811AC58: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811AC60: .4byte gBattleTransitionFuncs - thumb_func_end sub_811AC34 - - thumb_func_start sub_811AC64 -sub_811AC64: @ 811AC64 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r1, _0811AC98 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0x8] - movs r3, 0x8 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _0811AC9C - adds r0, r2, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x2 - bl sub_811D4C8 - b _0811ACAC - .align 2, 0 -_0811AC98: .4byte gTasks -_0811AC9C: - bl sub_811D52C - lsls r0, 24 - cmp r0, 0 - beq _0811ACAC - adds r0, r4, 0 - bl DestroyTask -_0811ACAC: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_811AC64 - - thumb_func_start sub_811ACB4 -sub_811ACB4: @ 811ACB4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0811ACE4 @ =gUnknown_083FD7A4 - ldr r2, _0811ACE8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0811ACC6: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0811ACC6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811ACE4: .4byte gUnknown_083FD7A4 -_0811ACE8: .4byte gTasks - thumb_func_end sub_811ACB4 - - thumb_func_start sub_811ACEC -sub_811ACEC: @ 811ACEC - ldr r2, _0811AD18 @ =REG_MOSAIC - movs r1, 0 - strh r1, [r2] - subs r2, 0x42 - ldrh r1, [r2] - movs r3, 0x40 - orrs r1, r3 - strh r1, [r2] - adds r2, 0x2 - ldrh r1, [r2] - orrs r1, r3 - strh r1, [r2] - adds r2, 0x2 - ldrh r1, [r2] - orrs r1, r3 - strh r1, [r2] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - movs r0, 0x1 - bx lr - .align 2, 0 -_0811AD18: .4byte REG_MOSAIC - thumb_func_end sub_811ACEC - - thumb_func_start sub_811AD1C -sub_811AD1C: @ 811AD1C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0xA] - movs r1, 0xA - ldrsh r2, [r4, r1] - cmp r2, 0 - beq _0811AD32 - subs r0, 0x1 - strh r0, [r4, 0xA] - b _0811AD70 -_0811AD32: - movs r0, 0x4 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _0811AD54 - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - adds r0, r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0811AD54: - ldr r2, _0811AD7C @ =REG_MOSAIC - ldrh r0, [r4, 0xC] - movs r1, 0xF - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - strh r0, [r2] - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0xE - ble _0811AD70 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0811AD70: - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811AD7C: .4byte REG_MOSAIC - thumb_func_end sub_811AD1C - - thumb_func_start sub_811AD80 -sub_811AD80: @ 811AD80 - push {lr} - ldr r0, _0811ADA4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811AD9C - ldr r0, _0811ADA8 @ =sub_811ACB4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0811AD9C: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0811ADA4: .4byte gPaletteFade -_0811ADA8: .4byte sub_811ACB4 - thumb_func_end sub_811AD80 - - thumb_func_start sub_811ADAC -sub_811ADAC: @ 811ADAC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0811ADDC @ =gUnknown_083FD7B0 - ldr r2, _0811ADE0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0811ADBE: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0811ADBE - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811ADDC: .4byte gUnknown_083FD7B0 -_0811ADE0: .4byte gTasks - thumb_func_end sub_811ADAC - - thumb_func_start sub_811ADE4 -sub_811ADE4: @ 811ADE4 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - bl sub_811D658 - bl dp12_8087EA4 - movs r0, 0x1 - negs r0, r0 - movs r4, 0 - str r4, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _0811AE54 @ =gUnknown_03005560 - ldr r1, _0811AE58 @ =0x0200c000 - movs r2, 0x14 - ldrsh r1, [r1, r2] - str r4, [sp] - movs r2, 0xA0 - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0x2 - bl sub_811D6E8 - ldr r0, _0811AE5C @ =sub_811AEE0 - bl SetVBlankCallback - ldr r0, _0811AE60 @ =sub_811AF18 - bl SetHBlankCallback - ldr r3, _0811AE64 @ =0x04000208 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _0811AE68 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x3 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _0811AE6C @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x18 - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0811AE54: .4byte gUnknown_03005560 -_0811AE58: .4byte 0x0200c000 -_0811AE5C: .4byte sub_811AEE0 -_0811AE60: .4byte sub_811AF18 -_0811AE64: .4byte 0x04000208 -_0811AE68: .4byte 0x04000200 -_0811AE6C: .4byte REG_DISPSTAT - thumb_func_end sub_811ADE4 - - thumb_func_start sub_811AE70 -sub_811AE70: @ 811AE70 - push {r4,r5,lr} - sub sp, 0x8 - ldr r4, _0811AED0 @ =0x0200c000 - ldrb r1, [r4] - movs r1, 0 - strb r1, [r4] - ldrh r1, [r0, 0xA] - adds r1, 0x4 - strh r1, [r0, 0xA] - ldrh r1, [r0, 0xC] - adds r1, 0x8 - strh r1, [r0, 0xC] - ldr r3, _0811AED4 @ =gUnknown_03004DE0 - movs r2, 0x14 - ldrsh r1, [r4, r2] - movs r5, 0xA - ldrsh r2, [r0, r5] - movs r5, 0xC - ldrsh r0, [r0, r5] - str r0, [sp] - movs r0, 0xA0 - str r0, [sp, 0x4] - adds r0, r3, 0 - movs r3, 0x2 - bl sub_811D6E8 - ldr r0, _0811AED8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811AEBE - ldr r0, _0811AEDC @ =sub_811ADAC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0811AEBE: - ldrb r0, [r4] - adds r0, 0x1 - ldrb r1, [r4] - strb r0, [r4] - movs r0, 0 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0811AED0: .4byte 0x0200c000 -_0811AED4: .4byte gUnknown_03004DE0 -_0811AED8: .4byte gPaletteFade -_0811AEDC: .4byte sub_811ADAC - thumb_func_end sub_811AE70 - - thumb_func_start sub_811AEE0 -sub_811AEE0: @ 811AEE0 - push {lr} - bl sub_811D67C - ldr r0, _0811AF08 @ =0x0200c000 - ldrb r0, [r0] - cmp r0, 0 - beq _0811AF02 - ldr r1, _0811AF0C @ =0x040000d4 - ldr r0, _0811AF10 @ =gUnknown_03004DE0 - str r0, [r1] - movs r2, 0xF0 - lsls r2, 3 - adds r0, r2 - str r0, [r1, 0x4] - ldr r0, _0811AF14 @ =0x800000a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_0811AF02: - pop {r0} - bx r0 - .align 2, 0 -_0811AF08: .4byte 0x0200c000 -_0811AF0C: .4byte 0x040000d4 -_0811AF10: .4byte gUnknown_03004DE0 -_0811AF14: .4byte 0x800000a0 - thumb_func_end sub_811AEE0 - - thumb_func_start sub_811AF18 -sub_811AF18: @ 811AF18 - ldr r1, _0811AF38 @ =gUnknown_03004DE0 - ldr r0, _0811AF3C @ =REG_VCOUNT - ldrh r0, [r0] - lsls r0, 1 - movs r2, 0xF0 - lsls r2, 3 - adds r1, r2 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _0811AF40 @ =REG_BG1HOFS - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - bx lr - .align 2, 0 -_0811AF38: .4byte gUnknown_03004DE0 -_0811AF3C: .4byte REG_VCOUNT -_0811AF40: .4byte REG_BG1HOFS - thumb_func_end sub_811AF18 - - thumb_func_start sub_811AF44 -sub_811AF44: @ 811AF44 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0811AF74 @ =gUnknown_083FD7B8 - ldr r2, _0811AF78 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0811AF56: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0811AF56 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811AF74: .4byte gUnknown_083FD7B8 -_0811AF78: .4byte gTasks - thumb_func_end sub_811AF44 - - thumb_func_start sub_811AF7C -sub_811AF7C: @ 811AF7C - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - bl sub_811D658 - bl dp12_8087EA4 - movs r0, 0x1 - negs r0, r0 - movs r4, 0 - str r4, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0811AFE4 @ =0x0200c000 - ldr r0, _0811AFE8 @ =gUnknown_03005560 - movs r2, 0x16 - ldrsh r1, [r1, r2] - movs r2, 0xA0 - lsls r2, 1 - bl memset - ldr r0, _0811AFEC @ =sub_811B08C - bl SetVBlankCallback - ldr r0, _0811AFF0 @ =sub_811B0C4 - bl SetHBlankCallback - ldr r3, _0811AFF4 @ =0x04000208 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _0811AFF8 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x3 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _0811AFFC @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x18 - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0811AFE4: .4byte 0x0200c000 -_0811AFE8: .4byte gUnknown_03005560 -_0811AFEC: .4byte sub_811B08C -_0811AFF0: .4byte sub_811B0C4 -_0811AFF4: .4byte 0x04000208 -_0811AFF8: .4byte 0x04000200 -_0811AFFC: .4byte REG_DISPSTAT - thumb_func_end sub_811AF7C - - thumb_func_start sub_811B000 -sub_811B000: @ 811B000 - push {r4-r7,lr} - ldr r2, _0811B07C @ =0x0200c000 - ldrb r1, [r2] - movs r1, 0 - strb r1, [r2] - ldrh r4, [r0, 0xA] - ldrh r2, [r0, 0xC] - lsls r3, r2, 16 - asrs r3, 24 - movs r5, 0x84 - lsls r5, 5 - adds r1, r4, r5 - strh r1, [r0, 0xA] - movs r1, 0xC0 - lsls r1, 1 - adds r2, r1 - strh r2, [r0, 0xC] - movs r5, 0 - lsls r7, r3, 16 -_0811B026: - lsrs r0, r4, 8 - asrs r1, r7, 16 - bl Sin - ldr r2, _0811B080 @ =gUnknown_03004DE0 - lsls r1, r5, 1 - adds r1, r2 - ldr r6, _0811B07C @ =0x0200c000 - ldrh r2, [r6, 0x16] - adds r0, r2 - strh r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - movs r1, 0x84 - lsls r1, 5 - adds r0, r4, r1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r5, 0x9F - bls _0811B026 - ldr r0, _0811B084 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811B06A - ldr r0, _0811B088 @ =sub_811AF44 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0811B06A: - ldrb r0, [r6] - adds r0, 0x1 - ldrb r1, [r6] - strb r0, [r6] - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0811B07C: .4byte 0x0200c000 -_0811B080: .4byte gUnknown_03004DE0 -_0811B084: .4byte gPaletteFade -_0811B088: .4byte sub_811AF44 - thumb_func_end sub_811B000 - - thumb_func_start sub_811B08C -sub_811B08C: @ 811B08C - push {lr} - bl sub_811D67C - ldr r0, _0811B0B4 @ =0x0200c000 - ldrb r0, [r0] - cmp r0, 0 - beq _0811B0AE - ldr r1, _0811B0B8 @ =0x040000d4 - ldr r0, _0811B0BC @ =gUnknown_03004DE0 - str r0, [r1] - movs r2, 0xF0 - lsls r2, 3 - adds r0, r2 - str r0, [r1, 0x4] - ldr r0, _0811B0C0 @ =0x800000a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_0811B0AE: - pop {r0} - bx r0 - .align 2, 0 -_0811B0B4: .4byte 0x0200c000 -_0811B0B8: .4byte 0x040000d4 -_0811B0BC: .4byte gUnknown_03004DE0 -_0811B0C0: .4byte 0x800000a0 - thumb_func_end sub_811B08C - - thumb_func_start sub_811B0C4 -sub_811B0C4: @ 811B0C4 - ldr r1, _0811B0E4 @ =gUnknown_03004DE0 - ldr r0, _0811B0E8 @ =REG_VCOUNT - ldrh r0, [r0] - lsls r0, 1 - movs r2, 0xF0 - lsls r2, 3 - adds r1, r2 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _0811B0EC @ =REG_BG1VOFS - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - bx lr - .align 2, 0 -_0811B0E4: .4byte gUnknown_03004DE0 -_0811B0E8: .4byte REG_VCOUNT -_0811B0EC: .4byte REG_BG1VOFS - thumb_func_end sub_811B0C4 - - thumb_func_start sub_811B0F0 -sub_811B0F0: @ 811B0F0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0811B120 @ =gUnknown_083FD7C0 - ldr r2, _0811B124 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0811B102: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0811B102 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811B120: .4byte gUnknown_083FD7C0 -_0811B124: .4byte gTasks - thumb_func_end sub_811B0F0 - - thumb_func_start sub_811B128 -sub_811B128: @ 811B128 - push {r4-r6,lr} - sub sp, 0xC - adds r4, r0, 0 - bl sub_811D658 - bl dp12_8087EA4 - movs r2, 0 - movs r3, 0x10 - strh r3, [r4, 0xA] - strh r2, [r4, 0xC] - strh r2, [r4, 0x10] - movs r0, 0x80 - lsls r0, 7 - strh r0, [r4, 0x12] - ldr r1, _0811B1BC @ =0x0200c000 - movs r0, 0x3F - strh r0, [r1, 0x2] - strh r2, [r1, 0x4] - movs r0, 0xF0 - strh r0, [r1, 0x6] - movs r0, 0xA0 - strh r0, [r1, 0x8] - ldr r0, _0811B1C0 @ =0x00003f41 - strh r0, [r1, 0xE] - lsls r3, 8 - strh r3, [r1, 0x10] - movs r1, 0 - add r5, sp, 0x4 - add r6, sp, 0x8 - ldr r3, _0811B1C4 @ =gUnknown_03005560 - movs r2, 0xF0 -_0811B168: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x9F - bls _0811B168 - ldr r0, _0811B1C8 @ =sub_811B520 - bl SetVBlankCallback - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_811D6A8 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r1, [sp, 0x4] - ldr r2, _0811B1CC @ =0x01000400 - mov r0, sp - bl CpuSet - ldr r0, _0811B1D0 @ =gUnknown_083FBB88 - ldr r1, [sp, 0x8] - movs r2, 0xB0 - lsls r2, 2 - bl CpuSet - ldr r0, _0811B1D4 @ =gFieldEffectObjectPalette10 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0811B1BC: .4byte 0x0200c000 -_0811B1C0: .4byte 0x00003f41 -_0811B1C4: .4byte gUnknown_03005560 -_0811B1C8: .4byte sub_811B520 -_0811B1CC: .4byte 0x01000400 -_0811B1D0: .4byte gUnknown_083FBB88 -_0811B1D4: .4byte gFieldEffectObjectPalette10 - thumb_func_end sub_811B128 - - thumb_func_start sub_811B1D8 -sub_811B1D8: @ 811B1D8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - adds r7, r0, 0 - ldr r5, _0811B260 @ =gUnknown_083FDB44 - add r1, sp, 0xC - add r0, sp, 0x8 - bl sub_811D6A8 - movs r1, 0 - ldr r0, [sp, 0x8] - mov r9, r0 - ldr r6, _0811B264 @ =gUnknown_03004DE0 - mov r8, r6 - movs r0, 0xF0 - lsls r0, 8 - mov r12, r0 -_0811B1FE: - movs r0, 0 - lsls r3, r1, 16 - asrs r4, r3, 11 -_0811B204: - lsls r2, r0, 16 - asrs r2, 16 - adds r1, r4, r2 - lsls r1, 1 - add r1, r9 - ldrh r0, [r5] - mov r6, r12 - orrs r0, r6 - strh r0, [r1] - adds r2, 0x1 - lsls r2, 16 - adds r5, 0x2 - lsrs r0, r2, 16 - asrs r2, 16 - cmp r2, 0x1D - ble _0811B204 - movs r1, 0x80 - lsls r1, 9 - adds r0, r3, r1 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _0811B1FE - movs r6, 0x10 - ldrsh r2, [r7, r6] - movs r1, 0x12 - ldrsh r0, [r7, r1] - str r0, [sp] - movs r0, 0xA0 - str r0, [sp, 0x4] - mov r0, r8 - movs r1, 0 - movs r3, 0x84 - bl sub_811D6E8 - ldrh r0, [r7, 0x8] - adds r0, 0x1 - strh r0, [r7, 0x8] - movs r0, 0x1 - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0811B260: .4byte gUnknown_083FDB44 -_0811B264: .4byte gUnknown_03004DE0 - thumb_func_end sub_811B1D8 - - thumb_func_start sub_811B268 -sub_811B268: @ 811B268 - push {r4,lr} - sub sp, 0x8 - adds r2, r0, 0 - ldr r1, _0811B2E8 @ =0x0200c000 - ldrb r0, [r1] - movs r0, 0 - strb r0, [r1] - ldrh r3, [r2, 0xE] - movs r4, 0xE - ldrsh r0, [r2, r4] - adds r4, r1, 0 - cmp r0, 0 - beq _0811B28C - subs r0, r3, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _0811B296 -_0811B28C: - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - movs r0, 0x2 - strh r0, [r2, 0xE] -_0811B296: - ldrh r0, [r2, 0xA] - lsls r0, 8 - ldrh r1, [r2, 0xC] - orrs r0, r1 - strh r0, [r4, 0x10] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0xF - ble _0811B2AE - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_0811B2AE: - ldrh r0, [r2, 0x10] - adds r0, 0x8 - strh r0, [r2, 0x10] - ldr r0, _0811B2EC @ =0xffffff00 - adds r1, r0, 0 - ldrh r3, [r2, 0x12] - adds r1, r3 - strh r1, [r2, 0x12] - ldr r0, _0811B2F0 @ =gUnknown_03004DE0 - movs r3, 0x10 - ldrsh r2, [r2, r3] - lsls r1, 16 - asrs r1, 24 - str r1, [sp] - movs r1, 0xA0 - str r1, [sp, 0x4] - movs r1, 0 - movs r3, 0x84 - bl sub_811D6E8 - ldrb r0, [r4] - adds r0, 0x1 - ldrb r1, [r4] - strb r0, [r4] - movs r0, 0 - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811B2E8: .4byte 0x0200c000 -_0811B2EC: .4byte 0xffffff00 -_0811B2F0: .4byte gUnknown_03004DE0 - thumb_func_end sub_811B268 - - thumb_func_start sub_811B2F4 -sub_811B2F4: @ 811B2F4 - push {r4,r5,lr} - sub sp, 0x8 - adds r3, r0, 0 - ldr r1, _0811B374 @ =0x0200c000 - ldrb r0, [r1] - movs r0, 0 - strb r0, [r1] - ldrh r2, [r3, 0xE] - movs r4, 0xE - ldrsh r0, [r3, r4] - adds r4, r1, 0 - cmp r0, 0 - beq _0811B318 - subs r0, r2, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _0811B322 -_0811B318: - ldrh r0, [r3, 0xA] - subs r0, 0x1 - strh r0, [r3, 0xA] - movs r0, 0x2 - strh r0, [r3, 0xE] -_0811B322: - ldrh r0, [r3, 0xA] - lsls r1, r0, 8 - ldrh r2, [r3, 0xC] - orrs r1, r2 - strh r1, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bne _0811B338 - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_0811B338: - ldrh r0, [r3, 0x10] - adds r0, 0x8 - strh r0, [r3, 0x10] - ldr r5, _0811B378 @ =0xffffff00 - adds r1, r5, 0 - ldrh r0, [r3, 0x12] - adds r1, r0 - strh r1, [r3, 0x12] - ldr r0, _0811B37C @ =gUnknown_03004DE0 - movs r5, 0x10 - ldrsh r2, [r3, r5] - lsls r1, 16 - asrs r1, 24 - str r1, [sp] - movs r1, 0xA0 - str r1, [sp, 0x4] - movs r1, 0 - movs r3, 0x84 - bl sub_811D6E8 - ldrb r0, [r4] - adds r0, 0x1 - ldrb r1, [r4] - strb r0, [r4] - movs r0, 0 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0811B374: .4byte 0x0200c000 -_0811B378: .4byte 0xffffff00 -_0811B37C: .4byte gUnknown_03004DE0 - thumb_func_end sub_811B2F4 - - thumb_func_start sub_811B380 -sub_811B380: @ 811B380 - push {r4-r7,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r5, _0811B3E0 @ =0x0200c000 - ldrb r0, [r5] - movs r7, 0 - strb r7, [r5] - ldrh r0, [r4, 0x10] - adds r0, 0x8 - strh r0, [r4, 0x10] - ldr r0, _0811B3E4 @ =0xffffff00 - adds r1, r0, 0 - ldrh r3, [r4, 0x12] - adds r1, r3 - strh r1, [r4, 0x12] - ldr r0, _0811B3E8 @ =gUnknown_03004DE0 - movs r3, 0x10 - ldrsh r2, [r4, r3] - lsls r1, 16 - asrs r1, 24 - str r1, [sp] - movs r6, 0xA0 - str r6, [sp, 0x4] - movs r1, 0 - movs r3, 0x84 - bl sub_811D6E8 - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - bgt _0811B3CE - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - strh r6, [r4, 0xA] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0xC] - strh r7, [r4, 0xE] -_0811B3CE: - ldrb r0, [r5] - adds r0, 0x1 - ldrb r1, [r5] - strb r0, [r5] - movs r0, 0 - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0811B3E0: .4byte 0x0200c000 -_0811B3E4: .4byte 0xffffff00 -_0811B3E8: .4byte gUnknown_03004DE0 - thumb_func_end sub_811B380 - - thumb_func_start sub_811B3EC -sub_811B3EC: @ 811B3EC - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0811B488 @ =0x0200c000 - ldrb r1, [r0] - movs r3, 0 - strb r3, [r0] - ldrh r2, [r4, 0xC] - movs r0, 0xC - ldrsh r1, [r4, r0] - ldr r0, _0811B48C @ =0x000003ff - cmp r1, r0 - bgt _0811B40A - adds r0, r2, 0 - adds r0, 0x80 - strh r0, [r4, 0xC] -_0811B40A: - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0811B426 - ldrh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 24 - subs r0, r1, r0 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bge _0811B426 - strh r3, [r4, 0xA] -_0811B426: - ldr r0, _0811B490 @ =gUnknown_03004DE0 - movs r1, 0xA - ldrsh r3, [r4, r1] - movs r1, 0x78 - movs r2, 0x50 - bl sub_811D764 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0811B462 - ldr r1, _0811B494 @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _0811B498 @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _0811B49C @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - bl sub_811D6D4 - ldr r0, _0811B4A0 @ =sub_811B0F0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0811B462: - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0811B476 - adds r0, r1, 0x1 - strh r0, [r4, 0xE] - ldr r0, _0811B4A4 @ =sub_811B54C - bl SetVBlankCallback -_0811B476: - ldr r0, _0811B488 @ =0x0200c000 - ldrb r1, [r0] - adds r1, 0x1 - ldrb r2, [r0] - strb r1, [r0] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811B488: .4byte 0x0200c000 -_0811B48C: .4byte 0x000003ff -_0811B490: .4byte gUnknown_03004DE0 -_0811B494: .4byte 0x040000b0 -_0811B498: .4byte 0x0000c5ff -_0811B49C: .4byte 0x00007fff -_0811B4A0: .4byte sub_811B0F0 -_0811B4A4: .4byte sub_811B54C - thumb_func_end sub_811B3EC - - thumb_func_start sub_811B4A8 -sub_811B4A8: @ 811B4A8 - push {lr} - ldr r1, _0811B500 @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _0811B504 @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _0811B508 @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - bl sub_811D67C - ldr r2, _0811B50C @ =0x0200c000 - ldrb r0, [r2] - cmp r0, 0 - beq _0811B4DE - ldr r1, _0811B510 @ =0x040000d4 - ldr r0, _0811B514 @ =gUnknown_03004DE0 - str r0, [r1] - movs r3, 0xF0 - lsls r3, 3 - adds r0, r3 - str r0, [r1, 0x4] - ldr r0, _0811B518 @ =0x800000a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_0811B4DE: - ldr r1, _0811B51C @ =REG_WININ - ldrh r0, [r2, 0x2] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r2, 0x4] - strh r0, [r1] - subs r1, 0x6 - ldrh r0, [r2, 0x8] - strh r0, [r1] - adds r1, 0xC - ldrh r0, [r2, 0xE] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r2, 0x10] - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0811B500: .4byte 0x040000b0 -_0811B504: .4byte 0x0000c5ff -_0811B508: .4byte 0x00007fff -_0811B50C: .4byte 0x0200c000 -_0811B510: .4byte 0x040000d4 -_0811B514: .4byte gUnknown_03004DE0 -_0811B518: .4byte 0x800000a0 -_0811B51C: .4byte REG_WININ - thumb_func_end sub_811B4A8 - - thumb_func_start sub_811B520 -sub_811B520: @ 811B520 - push {lr} - bl sub_811B4A8 - ldr r1, _0811B53C @ =0x040000b0 - ldr r0, _0811B540 @ =gUnknown_03005560 - str r0, [r1] - ldr r0, _0811B544 @ =REG_BG0HOFS - str r0, [r1, 0x4] - ldr r0, _0811B548 @ =0xa2400001 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_0811B53C: .4byte 0x040000b0 -_0811B540: .4byte gUnknown_03005560 -_0811B544: .4byte REG_BG0HOFS -_0811B548: .4byte 0xa2400001 - thumb_func_end sub_811B520 - - thumb_func_start sub_811B54C -sub_811B54C: @ 811B54C - push {lr} - bl sub_811B4A8 - ldr r1, _0811B568 @ =0x040000b0 - ldr r0, _0811B56C @ =gUnknown_03005560 - str r0, [r1] - ldr r0, _0811B570 @ =REG_WIN0H - str r0, [r1, 0x4] - ldr r0, _0811B574 @ =0xa2400001 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_0811B568: .4byte 0x040000b0 -_0811B56C: .4byte gUnknown_03005560 -_0811B570: .4byte REG_WIN0H -_0811B574: .4byte 0xa2400001 - thumb_func_end sub_811B54C - - thumb_func_start sub_811B578 -sub_811B578: @ 811B578 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0811B5A8 @ =gUnknown_083FD7D8 - ldr r2, _0811B5AC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0811B58A: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0811B58A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811B5A8: .4byte gUnknown_083FD7D8 -_0811B5AC: .4byte gTasks - thumb_func_end sub_811B578 - - thumb_func_start sub_811B5B0 -sub_811B5B0: @ 811B5B0 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - add r0, sp, 0x4 - add r1, sp, 0x8 - bl sub_811D6A8 - ldr r0, _0811B5F0 @ =gUnknown_083FC108 - ldr r1, [sp, 0x8] - movs r2, 0x20 - bl CpuSet - movs r0, 0 - str r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, _0811B5F4 @ =0x05000200 - mov r0, sp - bl CpuSet - ldr r0, _0811B5F8 @ =gFieldEffectObjectPalette10 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811B5F0: .4byte gUnknown_083FC108 -_0811B5F4: .4byte 0x05000200 -_0811B5F8: .4byte gFieldEffectObjectPalette10 - thumb_func_end sub_811B5B0 - - thumb_func_start sub_811B5FC -sub_811B5FC: @ 811B5FC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r7, r0, 0 - ldr r1, _0811B67C @ =gUnknown_083FD7E4 - mov r0, sp - movs r2, 0x4 - bl memcpy - add r4, sp, 0x4 - ldr r1, _0811B680 @ =gUnknown_083FD7E8 - adds r0, r4, 0 - movs r2, 0xA - bl memcpy - bl Random - movs r5, 0x1 - ands r5, r0 - movs r1, 0 - mov r8, r4 - ldr r6, _0811B684 @ =gUnknown_0202FF84 -_0811B62A: - lsls r5, 16 - asrs r5, 16 - lsls r0, r5, 1 - add r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - str r0, [r6] - lsls r4, r1, 16 - asrs r4, 16 - lsls r0, r4, 5 - adds r0, 0x10 - str r0, [r6, 0x4] - str r5, [r6, 0x8] - lsls r0, r4, 1 - add r0, r8 - movs r1, 0 - ldrsh r0, [r0, r1] - str r0, [r6, 0xC] - movs r0, 0x2D - bl FieldEffectStart - adds r4, 0x1 - lsls r4, 16 - movs r0, 0x1 - eors r5, r0 - lsls r5, 16 - lsrs r5, 16 - lsrs r1, r4, 16 - asrs r4, 16 - cmp r4, 0x4 - ble _0811B62A - ldrh r0, [r7, 0x8] - adds r0, 0x1 - strh r0, [r7, 0x8] - movs r0, 0 - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0811B67C: .4byte gUnknown_083FD7E4 -_0811B680: .4byte gUnknown_083FD7E8 -_0811B684: .4byte gUnknown_0202FF84 - thumb_func_end sub_811B5FC - - thumb_func_start sub_811B688 -sub_811B688: @ 811B688 - push {lr} - movs r0, 0x2D - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _0811B6A8 - bl sub_811D6D4 - ldr r0, _0811B6B0 @ =sub_811B578 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0811B6A8: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0811B6B0: .4byte sub_811B578 - thumb_func_end sub_811B688 - - thumb_func_start FldEff_Pokeball -FldEff_Pokeball: @ 811B6B4 - push {r4,r5,lr} - ldr r0, _0811B710 @ =gSpriteTemplate_83FD98C - ldr r5, _0811B714 @ =gUnknown_0202FF84 - movs r2, 0 - ldrsh r1, [r5, r2] - movs r3, 0x4 - ldrsh r2, [r5, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0811B718 @ =gSprites - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r4, r1 - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x5] - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, [r5, 0x8] - strh r0, [r4, 0x2E] - ldr r0, [r5, 0xC] - strh r0, [r4, 0x30] - ldr r0, _0811B71C @ =0x0000ffff - strh r0, [r4, 0x32] - adds r0, r4, 0 - bl InitSpriteAffineAnim - ldrb r1, [r5, 0x8] - adds r0, r4, 0 - bl StartSpriteAffineAnim - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0811B710: .4byte gSpriteTemplate_83FD98C -_0811B714: .4byte gUnknown_0202FF84 -_0811B718: .4byte gSprites -_0811B71C: .4byte 0x0000ffff - thumb_func_end FldEff_Pokeball - - thumb_func_start sub_811B720 -sub_811B720: @ 811B720 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r1, _0811B740 @ =gUnknown_083FD7F2 - mov r0, sp - movs r2, 0x4 - bl memcpy - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0811B744 - subs r0, r1, 0x1 - strh r0, [r4, 0x30] - b _0811B7D6 - .align 2, 0 -_0811B740: .4byte gUnknown_083FD7F2 -_0811B744: - ldrh r0, [r4, 0x20] - lsls r1, r0, 16 - lsrs r0, r1, 16 - cmp r0, 0xF0 - bhi _0811B7B2 - asrs r0, r1, 19 - lsls r0, 16 - ldrh r1, [r4, 0x22] - lsls r1, 16 - asrs r1, 19 - lsls r1, 16 - lsrs r1, 16 - lsrs r2, r0, 16 - asrs r5, r0, 16 - movs r3, 0x32 - ldrsh r0, [r4, r3] - cmp r5, r0 - beq _0811B7B2 - strh r2, [r4, 0x32] - ldr r0, _0811B7E0 @ =REG_BG0CNT - ldrh r2, [r0] - lsrs r2, 8 - movs r0, 0x1F - ands r2, r0 - lsls r2, 11 - movs r0, 0xC0 - lsls r0, 19 - adds r2, r0 - lsls r1, 16 - asrs r1, 16 - subs r0, r1, 0x2 - lsls r0, 5 - adds r0, r5 - lsls r0, 1 - adds r0, r2 - ldr r6, _0811B7E4 @ =0x0000f001 - adds r3, r6, 0 - strh r3, [r0] - subs r0, r1, 0x1 - lsls r0, 5 - adds r0, r5 - lsls r0, 1 - adds r0, r2 - strh r3, [r0] - lsls r0, r1, 5 - adds r0, r5 - lsls r0, 1 - adds r0, r2 - strh r3, [r0] - adds r1, 0x1 - lsls r1, 5 - adds r1, r5 - lsls r1, 1 - adds r1, r2 - strh r3, [r1] -_0811B7B2: - movs r1, 0x2E - ldrsh r0, [r4, r1] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - adds r0, 0xF - lsls r0, 16 - movs r1, 0x87 - lsls r1, 17 - cmp r0, r1 - bls _0811B7D6 - adds r0, r4, 0 - movs r1, 0x2D - bl FieldEffectStop -_0811B7D6: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811B7E0: .4byte REG_BG0CNT -_0811B7E4: .4byte 0x0000f001 - thumb_func_end sub_811B720 - - thumb_func_start sub_811B7E8 -sub_811B7E8: @ 811B7E8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0811B818 @ =gUnknown_083FD7F8 - ldr r2, _0811B81C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0811B7FA: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0811B7FA - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811B818: .4byte gUnknown_083FD7F8 -_0811B81C: .4byte gTasks - thumb_func_end sub_811B7E8 - - thumb_func_start sub_811B820 -sub_811B820: @ 811B820 - push {r4,lr} - adds r4, r0, 0 - bl sub_811D658 - bl dp12_8087EA4 - ldr r1, _0811B870 @ =0x0200c000 - movs r0, 0 - strh r0, [r1, 0x2] - movs r0, 0x3F - strh r0, [r1, 0x4] - ldr r0, _0811B874 @ =0x0000f0f1 - strh r0, [r1, 0x6] - movs r0, 0xA0 - strh r0, [r1, 0x8] - movs r1, 0 - ldr r3, _0811B878 @ =gUnknown_03005560 - ldr r2, _0811B87C @ =0x0000f3f4 -_0811B844: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x9F - bls _0811B844 - ldr r0, _0811B880 @ =sub_811BC2C - bl SetVBlankCallback - ldr r1, _0811B870 @ =0x0200c000 - movs r0, 0x78 - strh r0, [r1, 0x2C] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811B870: .4byte 0x0200c000 -_0811B874: .4byte 0x0000f0f1 -_0811B878: .4byte gUnknown_03005560 -_0811B87C: .4byte 0x0000f3f4 -_0811B880: .4byte sub_811BC2C - thumb_func_end sub_811B820 - - thumb_func_start sub_811B884 -sub_811B884: @ 811B884 - push {r4-r6,lr} - sub sp, 0xC - adds r6, r0, 0 - ldr r4, _0811B904 @ =0x0200c000 - ldrb r0, [r4] - movs r0, 0 - strb r0, [r4] - adds r0, r4, 0 - adds r0, 0x24 - movs r1, 0x2C - ldrsh r3, [r4, r1] - movs r1, 0x1 - negs r1, r1 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x78 - movs r2, 0x50 - bl sub_811D8FC - ldr r5, _0811B908 @ =gUnknown_03004DE0 -_0811B8B0: - movs r3, 0x2A - ldrsh r2, [r4, r3] - lsls r2, 1 - adds r2, r5 - ldrh r0, [r4, 0x28] - adds r0, 0x1 - movs r3, 0xF0 - lsls r3, 7 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - adds r0, r4, 0 - adds r0, 0x24 - movs r1, 0x1 - movs r2, 0x1 - bl sub_811D978 - lsls r0, 24 - cmp r0, 0 - beq _0811B8B0 - ldr r2, _0811B904 @ =0x0200c000 - ldrh r0, [r2, 0x2C] - adds r0, 0x10 - strh r0, [r2, 0x2C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xEF - ble _0811B8F2 - movs r0, 0 - strh r0, [r2, 0x2E] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] -_0811B8F2: - ldrb r0, [r2] - adds r0, 0x1 - ldrb r1, [r2] - strb r0, [r2] - movs r0, 0 - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0811B904: .4byte 0x0200c000 -_0811B908: .4byte gUnknown_03004DE0 - thumb_func_end sub_811B884 - - thumb_func_start sub_811B90C -sub_811B90C: @ 811B90C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r7, r0, 0 - add r1, sp, 0xC - movs r0, 0 - strb r0, [r1] - ldr r4, _0811B988 @ =0x0200c000 - ldrb r0, [r4] - movs r0, 0 - strb r0, [r4] - adds r0, r4, 0 - adds r0, 0x24 - movs r2, 0x2E - ldrsh r1, [r4, r2] - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0xF0 - bl sub_811D8FC - adds r6, r4, 0 - ldr r5, _0811B98C @ =gUnknown_03004DE0 - mov r8, r5 - add r5, sp, 0xC -_0811B946: - movs r1, 0x78 - ldrh r0, [r4, 0x28] - adds r0, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0x4F - ble _0811B95C - ldrh r1, [r4, 0x28] - movs r3, 0xF0 -_0811B95C: - movs r0, 0x2A - ldrsh r2, [r4, r0] - lsls r2, 1 - add r2, r8 - lsls r1, 16 - asrs r1, 8 - lsls r0, r3, 16 - asrs r3, r0, 16 - orrs r3, r1 - strh r3, [r2] - ldrb r0, [r5] - cmp r0, 0 - bne _0811B990 - adds r0, r4, 0 - adds r0, 0x24 - movs r1, 0x1 - movs r2, 0x1 - bl sub_811D978 - strb r0, [r5] - b _0811B946 - .align 2, 0 -_0811B988: .4byte 0x0200c000 -_0811B98C: .4byte gUnknown_03004DE0 -_0811B990: - ldrh r0, [r4, 0x2E] - adds r0, 0x8 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0x9F - ble _0811B9AA - movs r0, 0xF0 - strh r0, [r4, 0x2C] - ldrh r0, [r7, 0x8] - adds r0, 0x1 - strh r0, [r7, 0x8] - b _0811B9D0 -_0811B9AA: - movs r2, 0x2A - ldrsh r0, [r4, r2] - cmp r0, r1 - bge _0811B9D0 - ldr r4, _0811B9E8 @ =gUnknown_03004DE0 - ldr r2, _0811B9EC @ =0x0200c000 -_0811B9B6: - ldrh r0, [r2, 0x2A] - adds r0, 0x1 - strh r0, [r2, 0x2A] - lsls r0, 16 - asrs r0, 15 - adds r0, r4 - strh r3, [r0] - movs r5, 0x2A - ldrsh r1, [r2, r5] - movs r5, 0x2E - ldrsh r0, [r2, r5] - cmp r1, r0 - blt _0811B9B6 -_0811B9D0: - ldrb r0, [r6] - adds r0, 0x1 - ldrb r1, [r6] - strb r0, [r6] - movs r0, 0 - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0811B9E8: .4byte gUnknown_03004DE0 -_0811B9EC: .4byte 0x0200c000 - thumb_func_end sub_811B90C - - thumb_func_start sub_811B9F0 -sub_811B9F0: @ 811B9F0 - push {r4-r6,lr} - sub sp, 0xC - adds r6, r0, 0 - ldr r4, _0811BA68 @ =0x0200c000 - ldrb r0, [r4] - movs r0, 0 - strb r0, [r4] - adds r0, r4, 0 - adds r0, 0x24 - movs r1, 0x2C - ldrsh r3, [r4, r1] - movs r1, 0xA0 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x78 - movs r2, 0x50 - bl sub_811D8FC - ldr r5, _0811BA6C @ =gUnknown_03004DE0 -_0811BA1A: - movs r0, 0x2A - ldrsh r2, [r4, r0] - lsls r2, 1 - adds r2, r5 - ldrh r0, [r4, 0x28] - lsls r0, 8 - movs r1, 0xF0 - orrs r0, r1 - strh r0, [r2] - adds r0, r4, 0 - adds r0, 0x24 - movs r1, 0x1 - movs r2, 0x1 - bl sub_811D978 - lsls r0, 24 - cmp r0, 0 - beq _0811BA1A - ldr r2, _0811BA68 @ =0x0200c000 - ldrh r0, [r2, 0x2C] - subs r0, 0x10 - strh r0, [r2, 0x2C] - lsls r0, 16 - cmp r0, 0 - bgt _0811BA56 - movs r0, 0xA0 - strh r0, [r2, 0x2E] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] -_0811BA56: - ldrb r0, [r2] - adds r0, 0x1 - ldrb r1, [r2] - strb r0, [r2] - movs r0, 0 - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0811BA68: .4byte 0x0200c000 -_0811BA6C: .4byte gUnknown_03004DE0 - thumb_func_end sub_811B9F0 - - thumb_func_start sub_811BA70 -sub_811BA70: @ 811BA70 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - mov r8, r0 - add r1, sp, 0xC - movs r0, 0 - strb r0, [r1] - ldr r4, _0811BAF0 @ =0x0200c000 - ldrb r0, [r4] - movs r0, 0 - strb r0, [r4] - adds r0, r4, 0 - adds r0, 0x24 - movs r2, 0x2E - ldrsh r1, [r4, r2] - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0 - bl sub_811D8FC - ldr r3, _0811BAF4 @ =gUnknown_03004DE0 - mov r9, r3 - mov r10, r4 - add r6, sp, 0xC -_0811BAAE: - movs r5, 0x2A - ldrsh r0, [r4, r5] - lsls r0, 1 - mov r7, r9 - adds r5, r0, r7 - ldrb r1, [r5] - ldrh r2, [r4, 0x28] - adds r3, r2, 0 - movs r7, 0x2E - ldrsh r0, [r4, r7] - cmp r0, 0x50 - bgt _0811BACA - movs r2, 0x78 - adds r1, r3, 0 -_0811BACA: - lsls r0, r2, 16 - asrs r0, 8 - lsls r1, 16 - asrs r1, 16 - orrs r1, r0 - movs r3, 0 - strh r1, [r5] - ldrb r0, [r6] - cmp r0, 0 - bne _0811BAF8 - adds r0, r4, 0 - adds r0, 0x24 - movs r1, 0x1 - movs r2, 0x1 - bl sub_811D978 - strb r0, [r6] - b _0811BAAE - .align 2, 0 -_0811BAF0: .4byte 0x0200c000 -_0811BAF4: .4byte gUnknown_03004DE0 -_0811BAF8: - ldrh r0, [r4, 0x2E] - subs r0, 0x8 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - bgt _0811BB12 - strh r3, [r4, 0x2C] - mov r1, r8 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0811BB3A -_0811BB12: - movs r3, 0x2A - ldrsh r0, [r4, r3] - cmp r0, r2 - ble _0811BB3A - ldr r4, _0811BB58 @ =gUnknown_03004DE0 - ldr r2, _0811BB5C @ =0x0200c000 - adds r3, r1, 0 -_0811BB20: - ldrh r0, [r2, 0x2A] - subs r0, 0x1 - strh r0, [r2, 0x2A] - lsls r0, 16 - asrs r0, 15 - adds r0, r4 - strh r3, [r0] - movs r5, 0x2A - ldrsh r1, [r2, r5] - movs r7, 0x2E - ldrsh r0, [r2, r7] - cmp r1, r0 - bgt _0811BB20 -_0811BB3A: - mov r1, r10 - ldrb r0, [r1] - adds r0, 0x1 - ldrb r1, [r1] - mov r2, r10 - strb r0, [r2] - movs r0, 0 - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0811BB58: .4byte gUnknown_03004DE0 -_0811BB5C: .4byte 0x0200c000 - thumb_func_end sub_811BA70 - - thumb_func_start sub_811BB60 -sub_811BB60: @ 811BB60 - push {r4-r6,lr} - sub sp, 0xC - adds r6, r0, 0 - ldr r4, _0811BBE4 @ =0x0200c000 - ldrb r0, [r4] - movs r1, 0 - strb r1, [r4] - adds r0, r4, 0 - adds r0, 0x24 - movs r2, 0x2C - ldrsh r3, [r4, r2] - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x78 - movs r2, 0x50 - bl sub_811D8FC - ldr r5, _0811BBE8 @ =gUnknown_03004DE0 -_0811BB88: - movs r2, 0x78 - ldrh r3, [r4, 0x28] - movs r1, 0x28 - ldrsh r0, [r4, r1] - cmp r0, 0x77 - ble _0811BB98 - movs r2, 0 - movs r3, 0xF0 -_0811BB98: - movs r0, 0x2A - ldrsh r1, [r4, r0] - lsls r1, 1 - adds r1, r5 - lsls r2, 8 - lsls r0, r3, 16 - asrs r0, 16 - orrs r0, r2 - strh r0, [r1] - adds r0, r4, 0 - adds r0, 0x24 - movs r1, 0x1 - movs r2, 0x1 - bl sub_811D978 - lsls r0, 24 - cmp r0, 0 - beq _0811BB88 - ldr r2, _0811BBE4 @ =0x0200c000 - ldrh r0, [r2, 0x2C] - adds r0, 0x10 - strh r0, [r2, 0x2C] - movs r1, 0x28 - ldrsh r0, [r2, r1] - cmp r0, 0x78 - ble _0811BBD2 - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] -_0811BBD2: - ldrb r0, [r2] - adds r0, 0x1 - ldrb r1, [r2] - strb r0, [r2] - movs r0, 0 - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0811BBE4: .4byte 0x0200c000 -_0811BBE8: .4byte gUnknown_03004DE0 - thumb_func_end sub_811BB60 - - thumb_func_start sub_811BBEC -sub_811BBEC: @ 811BBEC - push {lr} - ldr r1, _0811BC1C @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _0811BC20 @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _0811BC24 @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - bl sub_811D6D4 - ldr r0, _0811BC28 @ =sub_811B7E8 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0811BC1C: .4byte 0x040000b0 -_0811BC20: .4byte 0x0000c5ff -_0811BC24: .4byte 0x00007fff -_0811BC28: .4byte sub_811B7E8 - thumb_func_end sub_811BBEC - - thumb_func_start sub_811BC2C -sub_811BC2C: @ 811BC2C - push {r4,lr} - ldr r4, _0811BC94 @ =0x040000b0 - ldrh r1, [r4, 0xA] - ldr r0, _0811BC98 @ =0x0000c5ff - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r1, [r4, 0xA] - ldr r0, _0811BC9C @ =0x00007fff - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xA] - bl sub_811D67C - ldr r2, _0811BCA0 @ =0x0200c000 - ldrb r0, [r2] - cmp r0, 0 - beq _0811BC62 - ldr r1, _0811BCA4 @ =0x040000d4 - ldr r0, _0811BCA8 @ =gUnknown_03004DE0 - str r0, [r1] - movs r3, 0xF0 - lsls r3, 3 - adds r0, r3 - str r0, [r1, 0x4] - ldr r0, _0811BCAC @ =0x800000a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_0811BC62: - ldr r1, _0811BCB0 @ =REG_WININ - ldrh r0, [r2, 0x2] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r2, 0x4] - strh r0, [r1] - subs r1, 0x6 - ldrh r0, [r2, 0x8] - strh r0, [r1] - ldr r2, _0811BCB4 @ =REG_WIN0H - ldr r0, _0811BCA8 @ =gUnknown_03004DE0 - movs r1, 0xF0 - lsls r1, 3 - adds r0, r1 - ldrh r1, [r0] - strh r1, [r2] - str r0, [r4] - str r2, [r4, 0x4] - ldr r0, _0811BCB8 @ =0xa2400001 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811BC94: .4byte 0x040000b0 -_0811BC98: .4byte 0x0000c5ff -_0811BC9C: .4byte 0x00007fff -_0811BCA0: .4byte 0x0200c000 -_0811BCA4: .4byte 0x040000d4 -_0811BCA8: .4byte gUnknown_03004DE0 -_0811BCAC: .4byte 0x800000a0 -_0811BCB0: .4byte REG_WININ -_0811BCB4: .4byte REG_WIN0H -_0811BCB8: .4byte 0xa2400001 - thumb_func_end sub_811BC2C - - thumb_func_start sub_811BCBC -sub_811BCBC: @ 811BCBC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0811BCEC @ =gUnknown_083FD814 - ldr r2, _0811BCF0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0811BCCE: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0811BCCE - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811BCEC: .4byte gUnknown_083FD814 -_0811BCF0: .4byte gTasks - thumb_func_end sub_811BCBC - - thumb_func_start sub_811BCF4 -sub_811BCF4: @ 811BCF4 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_811D658 - bl dp12_8087EA4 - movs r2, 0 - ldr r4, _0811BD48 @ =gUnknown_03005560 - ldr r3, _0811BD4C @ =0x0200c000 -_0811BD06: - lsls r0, r2, 1 - adds r0, r4 - ldrh r1, [r3, 0x16] - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x9F - bls _0811BD06 - ldr r0, _0811BD50 @ =sub_811BE3C - bl SetVBlankCallback - ldr r0, _0811BD54 @ =sub_811BE74 - bl SetHBlankCallback - ldr r2, _0811BD58 @ =0x04000200 - ldrh r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strh r0, [r2] - ldr r2, _0811BD5C @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x10 - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0811BD48: .4byte gUnknown_03005560 -_0811BD4C: .4byte 0x0200c000 -_0811BD50: .4byte sub_811BE3C -_0811BD54: .4byte sub_811BE74 -_0811BD58: .4byte 0x04000200 -_0811BD5C: .4byte REG_DISPSTAT - thumb_func_end sub_811BCF4 - - thumb_func_start sub_811BD60 -sub_811BD60: @ 811BD60 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r6, r0, 0 - ldr r1, _0811BE28 @ =0x0200c000 - ldrb r0, [r1] - movs r0, 0 - strb r0, [r1] - ldrh r2, [r6, 0xC] - lsls r1, r2, 16 - asrs r0, r1, 24 - lsls r0, 16 - lsrs r3, r0, 16 - ldrh r4, [r6, 0xA] - movs r0, 0xC0 - lsls r0, 1 - mov r8, r0 - movs r5, 0x80 - lsls r5, 3 - adds r0, r4, r5 - strh r0, [r6, 0xA] - ldr r0, _0811BE2C @ =0x1fff0000 - cmp r1, r0 - bgt _0811BD9A - movs r1, 0xC0 - lsls r1, 1 - adds r0, r2, r1 - strh r0, [r6, 0xC] -_0811BD9A: - movs r5, 0 - lsls r7, r3, 16 -_0811BD9E: - lsrs r0, r4, 8 - asrs r1, r7, 16 - bl Sin - ldr r1, _0811BE30 @ =gUnknown_03004DE0 - lsls r2, r5, 1 - adds r2, r1 - ldr r1, _0811BE28 @ =0x0200c000 - ldrh r1, [r1, 0x16] - adds r0, r1 - strh r0, [r2] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r1, r8 - adds r0, r4, r1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r5, 0x9F - bls _0811BD9E - ldrh r0, [r6, 0xE] - adds r0, 0x1 - strh r0, [r6, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x51 - bne _0811BDEC - ldrh r0, [r6, 0x10] - adds r0, 0x1 - strh r0, [r6, 0x10] - movs r0, 0x1 - negs r0, r0 - movs r1, 0x2 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade -_0811BDEC: - movs r5, 0x10 - ldrsh r0, [r6, r5] - cmp r0, 0 - beq _0811BE0E - ldr r0, _0811BE34 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811BE0E - ldr r0, _0811BE38 @ =sub_811BCBC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0811BE0E: - ldr r0, _0811BE28 @ =0x0200c000 - ldrb r1, [r0] - adds r1, 0x1 - ldrb r2, [r0] - strb r1, [r0] - movs r0, 0 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0811BE28: .4byte 0x0200c000 -_0811BE2C: .4byte 0x1fff0000 -_0811BE30: .4byte gUnknown_03004DE0 -_0811BE34: .4byte gPaletteFade -_0811BE38: .4byte sub_811BCBC - thumb_func_end sub_811BD60 - - thumb_func_start sub_811BE3C -sub_811BE3C: @ 811BE3C - push {lr} - bl sub_811D67C - ldr r0, _0811BE64 @ =0x0200c000 - ldrb r0, [r0] - cmp r0, 0 - beq _0811BE5E - ldr r1, _0811BE68 @ =0x040000d4 - ldr r0, _0811BE6C @ =gUnknown_03004DE0 - str r0, [r1] - movs r2, 0xF0 - lsls r2, 3 - adds r0, r2 - str r0, [r1, 0x4] - ldr r0, _0811BE70 @ =0x800000a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_0811BE5E: - pop {r0} - bx r0 - .align 2, 0 -_0811BE64: .4byte 0x0200c000 -_0811BE68: .4byte 0x040000d4 -_0811BE6C: .4byte gUnknown_03004DE0 -_0811BE70: .4byte 0x800000a0 - thumb_func_end sub_811BE3C - - thumb_func_start sub_811BE74 -sub_811BE74: @ 811BE74 - ldr r1, _0811BE94 @ =gUnknown_03004DE0 - ldr r0, _0811BE98 @ =REG_VCOUNT - ldrh r0, [r0] - lsls r0, 1 - movs r2, 0xF0 - lsls r2, 3 - adds r1, r2 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _0811BE9C @ =REG_BG1VOFS - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - bx lr - .align 2, 0 -_0811BE94: .4byte gUnknown_03004DE0 -_0811BE98: .4byte REG_VCOUNT -_0811BE9C: .4byte REG_BG1VOFS - thumb_func_end sub_811BE74 - - thumb_func_start sub_811BEA0 -sub_811BEA0: @ 811BEA0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0811BED0 @ =gUnknown_083FD81C - ldr r2, _0811BED4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0811BEB2: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0811BEB2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811BED0: .4byte gUnknown_083FD81C -_0811BED4: .4byte gTasks - thumb_func_end sub_811BEA0 - - thumb_func_start sub_811BED8 -sub_811BED8: @ 811BED8 - push {r4,lr} - adds r4, r0, 0 - bl sub_811D658 - bl dp12_8087EA4 - ldr r1, _0811BF20 @ =0x0200c000 - movs r2, 0 - movs r0, 0x3F - strh r0, [r1, 0x2] - strh r2, [r1, 0x4] - movs r0, 0xF0 - strh r0, [r1, 0x6] - movs r0, 0xA0 - strh r0, [r1, 0x8] - movs r1, 0 - ldr r3, _0811BF24 @ =gUnknown_03005560 - movs r2, 0xF2 -_0811BEFC: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9F - bls _0811BEFC - ldr r0, _0811BF28 @ =sub_811C004 - bl SetVBlankCallback - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811BF20: .4byte 0x0200c000 -_0811BF24: .4byte gUnknown_03005560 -_0811BF28: .4byte sub_811C004 - thumb_func_end sub_811BED8 - - thumb_func_start sub_811BF2C -sub_811BF2C: @ 811BF2C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - ldr r1, _0811BFBC @ =0x0200c000 - ldrb r0, [r1] - movs r0, 0 - strb r0, [r1] - ldr r7, _0811BFC0 @ =gUnknown_03004DE0 - ldrh r0, [r4, 0xC] - ldrb r5, [r4, 0xC] - adds r0, 0x10 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0xA] - adds r0, 0x8 - strh r0, [r4, 0xA] - movs r6, 0 - movs r0, 0x1 - mov r8, r0 -_0811BF52: - adds r0, r5, 0 - movs r1, 0x28 - bl Sin - ldrh r1, [r4, 0xA] - adds r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r0, 0 - bge _0811BF68 - movs r1, 0 -_0811BF68: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xF0 - ble _0811BF72 - movs r1, 0xF0 -_0811BF72: - lsls r0, r1, 16 - asrs r0, 16 - lsls r1, r0, 8 - movs r2, 0xF1 - orrs r1, r2 - strh r1, [r7] - cmp r0, 0xEF - bgt _0811BF86 - movs r0, 0 - mov r8, r0 -_0811BF86: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r5, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, 0x2 - cmp r6, 0x9F - bls _0811BF52 - mov r1, r8 - cmp r1, 0 - beq _0811BFA4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0811BFA4: - ldr r0, _0811BFBC @ =0x0200c000 - ldrb r1, [r0] - adds r1, 0x1 - ldrb r2, [r0] - strb r1, [r0] - movs r0, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0811BFBC: .4byte 0x0200c000 -_0811BFC0: .4byte gUnknown_03004DE0 - thumb_func_end sub_811BF2C - - thumb_func_start sub_811BFC4 -sub_811BFC4: @ 811BFC4 - push {lr} - ldr r1, _0811BFF4 @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _0811BFF8 @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _0811BFFC @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - bl sub_811D6D4 - ldr r0, _0811C000 @ =sub_811BEA0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0811BFF4: .4byte 0x040000b0 -_0811BFF8: .4byte 0x0000c5ff -_0811BFFC: .4byte 0x00007fff -_0811C000: .4byte sub_811BEA0 - thumb_func_end sub_811BFC4 - - thumb_func_start sub_811C004 -sub_811C004: @ 811C004 - push {r4,lr} - ldr r4, _0811C060 @ =0x040000b0 - ldrh r1, [r4, 0xA] - ldr r0, _0811C064 @ =0x0000c5ff - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r1, [r4, 0xA] - ldr r0, _0811C068 @ =0x00007fff - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xA] - bl sub_811D67C - ldr r2, _0811C06C @ =0x0200c000 - ldrb r0, [r2] - cmp r0, 0 - beq _0811C03A - ldr r1, _0811C070 @ =0x040000d4 - ldr r0, _0811C074 @ =gUnknown_03004DE0 - str r0, [r1] - movs r3, 0xF0 - lsls r3, 3 - adds r0, r3 - str r0, [r1, 0x4] - ldr r0, _0811C078 @ =0x800000a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_0811C03A: - ldr r1, _0811C07C @ =REG_WININ - ldrh r0, [r2, 0x2] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r2, 0x4] - strh r0, [r1] - subs r1, 0x6 - ldrh r0, [r2, 0x8] - strh r0, [r1] - ldr r0, _0811C080 @ =gUnknown_03005560 - str r0, [r4] - ldr r0, _0811C084 @ =REG_WIN0H - str r0, [r4, 0x4] - ldr r0, _0811C088 @ =0xa2400001 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811C060: .4byte 0x040000b0 -_0811C064: .4byte 0x0000c5ff -_0811C068: .4byte 0x00007fff -_0811C06C: .4byte 0x0200c000 -_0811C070: .4byte 0x040000d4 -_0811C074: .4byte gUnknown_03004DE0 -_0811C078: .4byte 0x800000a0 -_0811C07C: .4byte REG_WININ -_0811C080: .4byte gUnknown_03005560 -_0811C084: .4byte REG_WIN0H -_0811C088: .4byte 0xa2400001 - thumb_func_end sub_811C004 - - thumb_func_start sub_811C08C -sub_811C08C: @ 811C08C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0811C0A8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x26] - bl sub_811C12C - pop {r0} - bx r0 - .align 2, 0 -_0811C0A8: .4byte gTasks - thumb_func_end sub_811C08C - - thumb_func_start sub_811C0AC -sub_811C0AC: @ 811C0AC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0811C0C8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x1 - strh r2, [r1, 0x26] - bl sub_811C12C - pop {r0} - bx r0 - .align 2, 0 -_0811C0C8: .4byte gTasks - thumb_func_end sub_811C0AC - - thumb_func_start sub_811C0CC -sub_811C0CC: @ 811C0CC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0811C0E8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x2 - strh r2, [r1, 0x26] - bl sub_811C12C - pop {r0} - bx r0 - .align 2, 0 -_0811C0E8: .4byte gTasks - thumb_func_end sub_811C0CC - - thumb_func_start sub_811C0EC -sub_811C0EC: @ 811C0EC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0811C108 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x3 - strh r2, [r1, 0x26] - bl sub_811C12C - pop {r0} - bx r0 - .align 2, 0 -_0811C108: .4byte gTasks - thumb_func_end sub_811C0EC - - thumb_func_start sub_811C10C -sub_811C10C: @ 811C10C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0811C128 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x4 - strh r2, [r1, 0x26] - bl sub_811C12C - pop {r0} - bx r0 - .align 2, 0 -_0811C128: .4byte gTasks - thumb_func_end sub_811C10C - - thumb_func_start sub_811C12C -sub_811C12C: @ 811C12C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0811C15C @ =gUnknown_083FD828 - ldr r2, _0811C160 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0811C13E: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0811C13E - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811C15C: .4byte gUnknown_083FD828 -_0811C160: .4byte gTasks - thumb_func_end sub_811C12C - - thumb_func_start sub_811C164 -sub_811C164: @ 811C164 - push {r4,lr} - adds r4, r0, 0 - bl sub_811D658 - bl dp12_8087EA4 - adds r0, r4, 0 - bl sub_811C7B0 - movs r0, 0 - strh r0, [r4, 0xA] - movs r0, 0x1 - strh r0, [r4, 0xC] - movs r0, 0xEF - strh r0, [r4, 0xE] - ldr r1, _0811C1BC @ =0x0200c000 - movs r0, 0x3F - strh r0, [r1, 0x2] - movs r0, 0x3E - strh r0, [r1, 0x4] - movs r0, 0xA0 - strh r0, [r1, 0x8] - movs r1, 0 - ldr r3, _0811C1C0 @ =gUnknown_03005560 - ldr r2, _0811C1C4 @ =0x0000f0f1 -_0811C196: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9F - bls _0811C196 - ldr r0, _0811C1C8 @ =sub_811C670 - bl SetVBlankCallback - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811C1BC: .4byte 0x0200c000 -_0811C1C0: .4byte gUnknown_03005560 -_0811C1C4: .4byte 0x0000f0f1 -_0811C1C8: .4byte sub_811C670 - thumb_func_end sub_811C164 - - thumb_func_start sub_811C1CC -sub_811C1CC: @ 811C1CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - mov r8, r0 - ldr r6, _0811C284 @ =gUnknown_083FDFF4 - add r1, sp, 0x4 - mov r0, sp - bl sub_811D6A8 - ldr r0, _0811C288 @ =gUnknown_083FC348 - ldr r1, [sp, 0x4] - movs r2, 0xF0 - bl CpuSet - ldr r1, _0811C28C @ =gUnknown_083FDB00 - mov r2, r8 - movs r3, 0x26 - ldrsh r0, [r2, r3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r1, _0811C290 @ =gUnknown_083FDB14 - ldr r0, _0811C294 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0xFA - movs r2, 0xC - bl LoadPalette - movs r1, 0 - ldr r5, [sp] - ldr r0, _0811C298 @ =sub_811C77C - mov r12, r0 - movs r2, 0xF0 - lsls r2, 8 - adds r7, r2, 0 -_0811C222: - movs r0, 0 - lsls r3, r1, 16 - asrs r4, r3, 11 -_0811C228: - lsls r2, r0, 16 - asrs r2, 16 - adds r1, r4, r2 - lsls r1, 1 - adds r1, r5 - ldrh r0, [r6] - orrs r0, r7 - strh r0, [r1] - adds r2, 0x1 - lsls r2, 16 - adds r6, 0x2 - lsrs r0, r2, 16 - asrs r2, 16 - cmp r2, 0x1F - ble _0811C228 - movs r1, 0x80 - lsls r1, 9 - adds r0, r3, r1 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _0811C222 - ldr r2, _0811C29C @ =0x04000200 - ldrh r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strh r0, [r2] - ldr r2, _0811C2A0 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x10 - orrs r0, r1 - strh r0, [r2] - mov r0, r12 - bl SetHBlankCallback - mov r2, r8 - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - movs r0, 0 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0811C284: .4byte gUnknown_083FDFF4 -_0811C288: .4byte gUnknown_083FC348 -_0811C28C: .4byte gUnknown_083FDB00 -_0811C290: .4byte gUnknown_083FDB14 -_0811C294: .4byte gSaveBlock2 -_0811C298: .4byte sub_811C77C -_0811C29C: .4byte 0x04000200 -_0811C2A0: .4byte REG_DISPSTAT - thumb_func_end sub_811C1CC - - thumb_func_start sub_811C2A4 -sub_811C2A4: @ 811C2A4 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r1, _0811C384 @ =0x0200c000 - ldrb r0, [r1] - movs r0, 0 - strb r0, [r1] - ldr r7, _0811C388 @ =gUnknown_03004DE0 - ldrh r0, [r4, 0xA] - ldrb r5, [r4, 0xA] - adds r0, 0x10 - strh r0, [r4, 0xA] - movs r6, 0 -_0811C2BC: - adds r0, r5, 0 - movs r1, 0x10 - bl Sin - ldrh r1, [r4, 0xC] - adds r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r0, 0 - bge _0811C2D2 - movs r2, 0x1 -_0811C2D2: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0xF0 - ble _0811C2DC - movs r2, 0xF0 -_0811C2DC: - strh r2, [r7] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r7, 0x2 - adds r0, r5, 0 - adds r0, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r6, 0x4F - bls _0811C2BC - cmp r6, 0x9F - bhi _0811C334 -_0811C2F6: - adds r0, r5, 0 - movs r1, 0x10 - bl Sin - ldrh r1, [r4, 0xE] - subs r1, r0 - lsls r1, 16 - lsrs r2, r1, 16 - cmp r1, 0 - bge _0811C30C - movs r2, 0 -_0811C30C: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0xEF - ble _0811C316 - movs r2, 0xEF -_0811C316: - lsls r0, r2, 16 - asrs r0, 8 - movs r1, 0xF0 - orrs r0, r1 - strh r0, [r7] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r7, 0x2 - adds r0, r5, 0 - adds r0, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r6, 0x9F - bls _0811C2F6 -_0811C334: - ldrh r1, [r4, 0xC] - adds r1, 0x8 - strh r1, [r4, 0xC] - ldrh r0, [r4, 0xE] - subs r0, 0x8 - strh r0, [r4, 0xE] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0xF0 - ble _0811C34C - movs r0, 0xF0 - strh r0, [r4, 0xC] -_0811C34C: - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _0811C358 - movs r0, 0 - strh r0, [r4, 0xE] -_0811C358: - ldr r0, [r4, 0xC] - cmp r0, 0xF0 - bne _0811C364 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0811C364: - ldr r1, _0811C384 @ =0x0200c000 - ldrh r0, [r1, 0x18] - subs r0, 0x8 - strh r0, [r1, 0x18] - ldrh r0, [r1, 0x1A] - adds r0, 0x8 - strh r0, [r1, 0x1A] - ldrb r0, [r1] - adds r0, 0x1 - ldrb r2, [r1] - strb r0, [r1] - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0811C384: .4byte 0x0200c000 -_0811C388: .4byte gUnknown_03004DE0 - thumb_func_end sub_811C2A4 - - thumb_func_start sub_811C38C -sub_811C38C: @ 811C38C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _0811C3F8 @ =0x0200c000 - ldrb r1, [r0] - movs r1, 0 - strb r1, [r0] - ldr r2, _0811C3FC @ =gUnknown_03004DE0 - adds r5, r0, 0 - movs r3, 0xF0 -_0811C39E: - strh r3, [r2] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - adds r2, 0x2 - cmp r1, 0x9F - bls _0811C39E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xA] - strh r1, [r4, 0xC] - strh r1, [r4, 0xE] - ldrh r0, [r5, 0x18] - subs r0, 0x8 - strh r0, [r5, 0x18] - ldrh r0, [r5, 0x1A] - adds r0, 0x8 - strh r0, [r5, 0x1A] - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r1, 0 - bl sub_811CA10 - movs r1, 0x24 - ldrsh r0, [r4, r1] - movs r1, 0x1 - bl sub_811CA10 - movs r1, 0x22 - ldrsh r0, [r4, r1] - bl sub_811CA28 - movs r0, 0x68 - bl PlaySE - ldrb r0, [r5] - adds r0, 0x1 - ldrb r1, [r5] - strb r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0811C3F8: .4byte 0x0200c000 -_0811C3FC: .4byte gUnknown_03004DE0 - thumb_func_end sub_811C38C - - thumb_func_start sub_811C400 -sub_811C400: @ 811C400 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _0811C438 @ =0x0200c000 - ldrh r0, [r1, 0x18] - subs r0, 0x8 - strh r0, [r1, 0x18] - ldrh r0, [r1, 0x1A] - adds r0, 0x8 - strh r0, [r1, 0x1A] - movs r1, 0x22 - ldrsh r0, [r4, r1] - bl sub_811CA44 - lsls r0, 16 - cmp r0, 0 - beq _0811C42E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r1, 0x24 - ldrsh r0, [r4, r1] - bl sub_811CA28 -_0811C42E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811C438: .4byte 0x0200c000 - thumb_func_end sub_811C400 - - thumb_func_start sub_811C43C -sub_811C43C: @ 811C43C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldr r7, _0811C4D0 @ =0x0200c000 - ldrh r0, [r7, 0x18] - subs r0, 0x8 - movs r1, 0 - mov r8, r1 - strh r0, [r7, 0x18] - ldrh r0, [r7, 0x1A] - adds r0, 0x8 - strh r0, [r7, 0x1A] - movs r1, 0x24 - ldrsh r0, [r6, r1] - bl sub_811CA44 - lsls r0, 16 - cmp r0, 0 - beq _0811C4C4 - ldrb r0, [r7] - movs r0, 0 - strb r0, [r7] - movs r0, 0 - bl SetVBlankCallback - ldr r1, _0811C4D4 @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _0811C4D8 @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _0811C4DC @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - ldr r4, _0811C4E0 @ =gUnknown_03004DE0 - movs r5, 0xA0 - lsls r5, 1 - adds r0, r4, 0 - movs r1, 0 - adds r2, r5, 0 - bl memset - movs r0, 0xF0 - lsls r0, 3 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0 - adds r2, r5, 0 - bl memset - ldr r1, _0811C4E4 @ =REG_WIN0H - movs r0, 0xF0 - strh r0, [r1] - ldr r0, _0811C4E8 @ =REG_BLDY - mov r1, r8 - strh r1, [r0] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - strh r1, [r6, 0xE] - strh r1, [r6, 0x10] - movs r0, 0xBF - strh r0, [r7, 0xE] - ldr r0, _0811C4EC @ =sub_811C700 - bl SetVBlankCallback -_0811C4C4: - movs r0, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0811C4D0: .4byte 0x0200c000 -_0811C4D4: .4byte 0x040000b0 -_0811C4D8: .4byte 0x0000c5ff -_0811C4DC: .4byte 0x00007fff -_0811C4E0: .4byte gUnknown_03004DE0 -_0811C4E4: .4byte REG_WIN0H -_0811C4E8: .4byte REG_BLDY -_0811C4EC: .4byte sub_811C700 - thumb_func_end sub_811C43C - - thumb_func_start sub_811C4F0 -sub_811C4F0: @ 811C4F0 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r1, _0811C5AC @ =0x0200c000 - ldrb r0, [r1] - movs r0, 0 - strb r0, [r1] - movs r6, 0x1 - ldrh r0, [r1, 0x18] - subs r0, 0x8 - strh r0, [r1, 0x18] - ldrh r0, [r1, 0x1A] - adds r0, 0x8 - strh r0, [r1, 0x1A] - ldrh r2, [r4, 0x10] - movs r3, 0x10 - ldrsh r0, [r4, r3] - adds r7, r1, 0 - cmp r0, 0x4F - bgt _0811C51A - adds r0, r2, 0x2 - strh r0, [r4, 0x10] -_0811C51A: - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0x50 - ble _0811C526 - movs r0, 0x50 - strh r0, [r4, 0x10] -_0811C526: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - movs r1, 0x1 - ands r0, r1 - ldrh r2, [r4, 0x10] - cmp r0, 0 - beq _0811C58C - movs r3, 0 - lsls r0, r2, 16 - movs r6, 0 - cmp r0, 0 - blt _0811C58C - movs r2, 0x50 - mov r12, r2 - ldr r5, _0811C5B0 @ =gUnknown_03004DE0 -_0811C546: - lsls r0, r3, 16 - asrs r2, r0, 16 - mov r3, r12 - subs r1, r3, r2 - adds r0, r2, 0 - adds r0, 0x50 - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - asrs r1, 15 - adds r1, r5 - ldrh r0, [r1] - cmp r0, 0xF - bhi _0811C568 - movs r6, 0x1 - adds r0, 0x1 - strh r0, [r1] -_0811C568: - lsls r0, r3, 16 - asrs r0, 15 - adds r1, r0, r5 - ldrh r0, [r1] - cmp r0, 0xF - bhi _0811C57A - movs r6, 0x1 - adds r0, 0x1 - strh r0, [r1] -_0811C57A: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - asrs r0, 16 - movs r2, 0x10 - ldrsh r1, [r4, r2] - ldrh r2, [r4, 0x10] - cmp r0, r1 - ble _0811C546 -_0811C58C: - cmp r2, 0x50 - bne _0811C59A - cmp r6, 0 - bne _0811C59A - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0811C59A: - ldrb r0, [r7] - adds r0, 0x1 - ldrb r1, [r7] - strb r0, [r7] - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0811C5AC: .4byte 0x0200c000 -_0811C5B0: .4byte gUnknown_03004DE0 - thumb_func_end sub_811C4F0 - - thumb_func_start sub_811C5B4 -sub_811C5B4: @ 811C5B4 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _0811C5E0 @ =0x0200c000 - ldrb r0, [r4] - movs r6, 0 - strb r6, [r4] - movs r0, 0x1 - negs r0, r0 - ldr r2, _0811C5E4 @ =0x00007fff - movs r1, 0x10 - bl BlendPalettes - movs r0, 0xFF - strh r0, [r4, 0xE] - strh r6, [r5, 0xE] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0811C5E0: .4byte 0x0200c000 -_0811C5E4: .4byte 0x00007fff - thumb_func_end sub_811C5B4 - - thumb_func_start sub_811C5E8 -sub_811C5E8: @ 811C5E8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _0811C628 @ =0x0200c000 - ldrb r0, [r5] - movs r0, 0 - strb r0, [r5] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - ldr r0, _0811C62C @ =gUnknown_03004DE0 - movs r2, 0xE - ldrsh r1, [r4, r2] - movs r2, 0xA0 - lsls r2, 1 - bl memset - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0xF - ble _0811C616 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0811C616: - ldrb r0, [r5] - adds r0, 0x1 - ldrb r1, [r5] - strb r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0811C628: .4byte 0x0200c000 -_0811C62C: .4byte gUnknown_03004DE0 - thumb_func_end sub_811C5E8 - - thumb_func_start sub_811C630 -sub_811C630: @ 811C630 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _0811C664 @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _0811C668 @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _0811C66C @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - bl sub_811D6D4 - ldr r0, [r4] - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811C664: .4byte 0x040000b0 -_0811C668: .4byte 0x0000c5ff -_0811C66C: .4byte 0x00007fff - thumb_func_end sub_811C630 - - thumb_func_start sub_811C670 -sub_811C670: @ 811C670 - push {r4,lr} - ldr r4, _0811C6D4 @ =0x040000b0 - ldrh r1, [r4, 0xA] - ldr r0, _0811C6D8 @ =0x0000c5ff - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r1, [r4, 0xA] - ldr r0, _0811C6DC @ =0x00007fff - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xA] - bl sub_811D67C - ldr r2, _0811C6E0 @ =0x0200c000 - ldrb r0, [r2] - cmp r0, 0 - beq _0811C6A6 - ldr r1, _0811C6E4 @ =0x040000d4 - ldr r0, _0811C6E8 @ =gUnknown_03004DE0 - str r0, [r1] - movs r3, 0xF0 - lsls r3, 3 - adds r0, r3 - str r0, [r1, 0x4] - ldr r0, _0811C6EC @ =0x800000a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_0811C6A6: - ldr r1, _0811C6F0 @ =REG_BG0VOFS - ldrh r0, [r2, 0x1C] - strh r0, [r1] - adds r1, 0x36 - ldrh r0, [r2, 0x2] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r2, 0x4] - strh r0, [r1] - subs r1, 0x6 - ldrh r0, [r2, 0x8] - strh r0, [r1] - ldr r0, _0811C6F4 @ =gUnknown_03005560 - str r0, [r4] - ldr r0, _0811C6F8 @ =REG_WIN0H - str r0, [r4, 0x4] - ldr r0, _0811C6FC @ =0xa2400001 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811C6D4: .4byte 0x040000b0 -_0811C6D8: .4byte 0x0000c5ff -_0811C6DC: .4byte 0x00007fff -_0811C6E0: .4byte 0x0200c000 -_0811C6E4: .4byte 0x040000d4 -_0811C6E8: .4byte gUnknown_03004DE0 -_0811C6EC: .4byte 0x800000a0 -_0811C6F0: .4byte REG_BG0VOFS -_0811C6F4: .4byte gUnknown_03005560 -_0811C6F8: .4byte REG_WIN0H -_0811C6FC: .4byte 0xa2400001 - thumb_func_end sub_811C670 - - thumb_func_start sub_811C700 -sub_811C700: @ 811C700 - push {r4,lr} - ldr r4, _0811C750 @ =0x040000b0 - ldrh r1, [r4, 0xA] - ldr r0, _0811C754 @ =0x0000c5ff - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r1, [r4, 0xA] - ldr r0, _0811C758 @ =0x00007fff - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xA] - bl sub_811D67C - ldr r2, _0811C75C @ =0x0200c000 - ldrb r0, [r2] - cmp r0, 0 - beq _0811C736 - ldr r1, _0811C760 @ =0x040000d4 - ldr r0, _0811C764 @ =gUnknown_03004DE0 - str r0, [r1] - movs r3, 0xF0 - lsls r3, 3 - adds r0, r3 - str r0, [r1, 0x4] - ldr r0, _0811C768 @ =0x800000a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_0811C736: - ldr r1, _0811C76C @ =REG_BLDCNT - ldrh r0, [r2, 0xE] - strh r0, [r1] - ldr r0, _0811C770 @ =gUnknown_03005560 - str r0, [r4] - ldr r0, _0811C774 @ =REG_BLDY - str r0, [r4, 0x4] - ldr r0, _0811C778 @ =0xa2400001 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811C750: .4byte 0x040000b0 -_0811C754: .4byte 0x0000c5ff -_0811C758: .4byte 0x00007fff -_0811C75C: .4byte 0x0200c000 -_0811C760: .4byte 0x040000d4 -_0811C764: .4byte gUnknown_03004DE0 -_0811C768: .4byte 0x800000a0 -_0811C76C: .4byte REG_BLDCNT -_0811C770: .4byte gUnknown_03005560 -_0811C774: .4byte REG_BLDY -_0811C778: .4byte 0xa2400001 - thumb_func_end sub_811C700 - - thumb_func_start sub_811C77C -sub_811C77C: @ 811C77C - push {lr} - ldr r0, _0811C790 @ =REG_VCOUNT - ldrh r0, [r0] - cmp r0, 0x4F - bhi _0811C79C - ldr r0, _0811C794 @ =REG_BG0HOFS - ldr r1, _0811C798 @ =0x0200c000 - ldrh r1, [r1, 0x18] - b _0811C7A2 - .align 2, 0 -_0811C790: .4byte REG_VCOUNT -_0811C794: .4byte REG_BG0HOFS -_0811C798: .4byte 0x0200c000 -_0811C79C: - ldr r0, _0811C7A8 @ =REG_BG0HOFS - ldr r1, _0811C7AC @ =0x0200c000 - ldrh r1, [r1, 0x1A] -_0811C7A2: - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_0811C7A8: .4byte REG_BG0HOFS -_0811C7AC: .4byte 0x0200c000 - thumb_func_end sub_811C77C - - thumb_func_start sub_811C7B0 -sub_811C7B0: @ 811C7B0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r4, r0, 0 - ldr r0, _0811C8EC @ =gUnknown_083FD850 - movs r2, 0x26 - ldrsh r1, [r4, r2] - mov r8, r1 - add r0, r8 - ldrb r0, [r0] - ldr r2, _0811C8F0 @ =gUnknown_083FD86A - lsls r1, 2 - mov r8, r1 - adds r1, r2 - ldrh r1, [r1] - subs r1, 0x20 - lsls r1, 16 - asrs r1, 16 - adds r2, 0x2 - add r2, r8 - ldrh r2, [r2] - adds r2, 0x2A - lsls r2, 16 - asrs r2, 16 - ldr r5, _0811C8F4 @ =0x0200c03c - str r5, [sp] - movs r3, 0 - bl CreateTrainerSprite_BirchSpeech - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r0, _0811C8F8 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - movs r1, 0x88 - lsls r1, 1 - str r5, [sp] - movs r2, 0x6A - movs r3, 0 - bl CreateTrainerSprite_BirchSpeech - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x24] - movs r3, 0x22 - ldrsh r0, [r4, r3] - lsls r5, r0, 4 - adds r5, r0 - lsls r5, 2 - ldr r1, _0811C8FC @ =gSprites - adds r5, r1 - movs r2, 0x24 - ldrsh r0, [r4, r2] - lsls r6, r0, 4 - adds r6, r0 - lsls r6, 2 - adds r6, r1 - ldr r0, _0811C900 @ =sub_811C90C - str r0, [r5, 0x1C] - str r0, [r6, 0x1C] - ldrb r0, [r5, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r5, 0x1] - ldrb r0, [r6, 0x1] - orrs r0, r1 - strb r0, [r6, 0x1] - bl AllocOamMatrix - lsls r0, 24 - lsrs r0, 24 - movs r3, 0x1F - mov r9, r3 - mov r4, r9 - ands r0, r4 - lsls r0, 1 - ldrb r2, [r5, 0x3] - movs r4, 0x3F - negs r4, r4 - adds r1, r4, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x3] - bl AllocOamMatrix - lsls r0, 24 - lsrs r0, 24 - mov r1, r9 - ands r0, r1 - lsls r0, 1 - ldrb r1, [r6, 0x3] - ands r4, r1 - orrs r4, r0 - strb r4, [r6, 0x3] - ldrb r2, [r5, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r2 - movs r2, 0x40 - orrs r0, r2 - strb r0, [r5, 0x1] - ldrb r0, [r6, 0x1] - ands r1, r0 - orrs r1, r2 - strb r1, [r6, 0x1] - ldrb r0, [r5, 0x3] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r5, 0x3] - ldrb r0, [r6, 0x3] - orrs r0, r1 - strb r0, [r6, 0x3] - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x3 - bl CalcCenterToCornerVec - adds r0, r6, 0 - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x3 - bl CalcCenterToCornerVec - ldrb r0, [r5, 0x3] - lsls r0, 26 - lsrs r0, 27 - ldr r2, _0811C904 @ =gUnknown_083FD856 - mov r3, r8 - adds r1, r3, r2 - movs r4, 0 - ldrsh r1, [r1, r4] - adds r2, 0x2 - add r8, r2 - mov r3, r8 - movs r4, 0 - ldrsh r2, [r3, r4] - movs r3, 0 - bl SetOamMatrixRotationScaling - ldrb r0, [r6, 0x3] - lsls r0, 26 - lsrs r0, 27 - ldr r1, _0811C908 @ =0xfffffe00 - movs r2, 0x80 - lsls r2, 2 - movs r3, 0 - bl SetOamMatrixRotationScaling - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811C8EC: .4byte gUnknown_083FD850 -_0811C8F0: .4byte gUnknown_083FD86A -_0811C8F4: .4byte 0x0200c03c -_0811C8F8: .4byte gSaveBlock2 -_0811C8FC: .4byte gSprites -_0811C900: .4byte sub_811C90C -_0811C904: .4byte gUnknown_083FD856 -_0811C908: .4byte 0xfffffe00 - thumb_func_end sub_811C7B0 - - thumb_func_start sub_811C90C -sub_811C90C: @ 811C90C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _0811C930 @ =gUnknown_083FD880 -_0811C912: - movs r1, 0x2E - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0811C912 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811C930: .4byte gUnknown_083FD880 - thumb_func_end sub_811C90C - - thumb_func_start sub_811C934 -sub_811C934: @ 811C934 - movs r0, 0 - bx lr - thumb_func_end sub_811C934 - - thumb_func_start sub_811C938 -sub_811C938: @ 811C938 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - ldr r1, _0811C97C @ =gUnknown_083FD89C - mov r0, sp - movs r2, 0x4 - bl memcpy - add r4, sp, 0x4 - ldr r1, _0811C980 @ =gUnknown_083FD8A0 - adds r0, r4, 0 - movs r2, 0x4 - bl memcpy - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - movs r1, 0x3C - ldrsh r0, [r5, r1] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r5, 0x30] - movs r1, 0x3C - ldrsh r0, [r5, r1] - lsls r0, 1 - adds r4, r0 - ldrh r0, [r4] - strh r0, [r5, 0x32] - movs r0, 0x1 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0811C97C: .4byte gUnknown_083FD89C -_0811C980: .4byte gUnknown_083FD8A0 - thumb_func_end sub_811C938 - - thumb_func_start sub_811C984 -sub_811C984: @ 811C984 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - ldrh r3, [r1, 0x20] - adds r2, r0, r3 - strh r2, [r1, 0x20] - movs r3, 0x3C - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _0811C9A2 - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x84 - bgt _0811C9B0 - b _0811C9AA -_0811C9A2: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x67 - ble _0811C9B0 -_0811C9AA: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] -_0811C9B0: - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_811C984 - - thumb_func_start sub_811C9B8 -sub_811C9B8: @ 811C9B8 - push {lr} - adds r2, r0, 0 - ldrh r3, [r2, 0x32] - ldrh r0, [r2, 0x30] - adds r1, r3, r0 - strh r1, [r2, 0x30] - ldrh r0, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - lsls r1, 16 - cmp r1, 0 - bne _0811C9DE - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - negs r0, r3 - strh r0, [r2, 0x32] - movs r0, 0x1 - strh r0, [r2, 0x3A] -_0811C9DE: - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_811C9B8 - - thumb_func_start sub_811C9E4 -sub_811C9E4: @ 811C9E4 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x30] - adds r0, r1 - strh r0, [r2, 0x30] - ldrh r1, [r2, 0x20] - adds r1, r0 - strh r1, [r2, 0x20] - adds r1, 0x1F - lsls r1, 16 - movs r0, 0x97 - lsls r0, 17 - cmp r1, r0 - bls _0811CA08 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] -_0811CA08: - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_811C9E4 - - thumb_func_start sub_811CA10 -sub_811CA10: @ 811CA10 - ldr r3, _0811CA24 @ =gSprites - lsls r0, 16 - asrs r0, 16 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - strh r1, [r2, 0x3C] - bx lr - .align 2, 0 -_0811CA24: .4byte gSprites - thumb_func_end sub_811CA10 - - thumb_func_start sub_811CA28 -sub_811CA28: @ 811CA28 - ldr r2, _0811CA40 @ =gSprites - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - bx lr - .align 2, 0 -_0811CA40: .4byte gSprites - thumb_func_end sub_811CA28 - - thumb_func_start sub_811CA44 -sub_811CA44: @ 811CA44 - ldr r2, _0811CA58 @ =gSprites - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r2, 0x3A - ldrsh r0, [r1, r2] - bx lr - .align 2, 0 -_0811CA58: .4byte gSprites - thumb_func_end sub_811CA44 - - thumb_func_start sub_811CA5C -sub_811CA5C: @ 811CA5C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0811CA8C @ =gUnknown_083FD8A4 - ldr r2, _0811CA90 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0811CA6E: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0811CA6E - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811CA8C: .4byte gUnknown_083FD8A4 -_0811CA90: .4byte gTasks - thumb_func_end sub_811CA5C - - thumb_func_start sub_811CA94 -sub_811CA94: @ 811CA94 - push {r4-r6,lr} - adds r4, r0, 0 - bl sub_811D658 - bl dp12_8087EA4 - movs r2, 0 - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0xC] - movs r0, 0x1 - strh r0, [r4, 0xE] - ldr r1, _0811CB08 @ =0x0200c000 - movs r0, 0x3F - strh r0, [r1, 0x2] - strh r2, [r1, 0x4] - movs r0, 0xA0 - strh r0, [r1, 0x8] - ldr r3, _0811CB0C @ =gUnknown_03005560 - adds r6, r1, 0 - movs r5, 0xF0 -_0811CABE: - lsls r0, r2, 1 - adds r0, r3 - ldrh r1, [r6, 0x14] - strh r1, [r0] - adds r0, r2, 0 - adds r0, 0xA0 - lsls r0, 1 - adds r0, r3 - strh r5, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x9F - bls _0811CABE - ldr r2, _0811CB10 @ =0x04000200 - ldrh r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strh r0, [r2] - ldr r2, _0811CB14 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x10 - orrs r0, r1 - strh r0, [r2] - ldr r0, _0811CB18 @ =sub_811CC28 - bl SetVBlankCallback - ldr r0, _0811CB1C @ =sub_811CCB0 - bl SetHBlankCallback - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0811CB08: .4byte 0x0200c000 -_0811CB0C: .4byte gUnknown_03005560 -_0811CB10: .4byte 0x04000200 -_0811CB14: .4byte REG_DISPSTAT -_0811CB18: .4byte sub_811CC28 -_0811CB1C: .4byte sub_811CCB0 - thumb_func_end sub_811CA94 - - thumb_func_start sub_811CB20 -sub_811CB20: @ 811CB20 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r2, r0, 0 - ldr r1, _0811CB98 @ =0x0200c000 - ldrb r0, [r1] - movs r0, 0 - strb r0, [r1] - ldrh r0, [r2, 0xC] - lsls r0, 16 - asrs r0, 24 - ldrh r3, [r2, 0xA] - adds r0, r3 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - mov r12, r1 - cmp r0, 0xF0 - ble _0811CB4A - movs r0, 0xF0 - strh r0, [r2, 0xA] -_0811CB4A: - ldrh r4, [r2, 0xC] - movs r0, 0xC - ldrsh r1, [r2, r0] - ldr r0, _0811CB9C @ =0x00000fff - ldrh r3, [r2, 0xE] - cmp r1, r0 - bgt _0811CB5C - adds r0, r4, r3 - strh r0, [r2, 0xC] -_0811CB5C: - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, 0x7F - bgt _0811CB68 - lsls r0, r3, 1 - strh r0, [r2, 0xE] -_0811CB68: - movs r5, 0 - ldr r7, _0811CBA0 @ =gUnknown_03004DE0 - movs r1, 0xA0 - lsls r1, 1 - adds r1, r7 - mov r8, r1 - mov r6, r12 -_0811CB76: - lsls r0, r5, 1 - adds r3, r0, r7 - mov r1, r8 - adds r4, r0, r1 - movs r0, 0x1 - ands r0, r5 - cmp r0, 0 - beq _0811CBA4 - ldrh r0, [r2, 0xA] - ldrh r1, [r6, 0x14] - adds r0, r1 - strh r0, [r3] - ldrh r1, [r2, 0xA] - movs r0, 0xF0 - subs r0, r1 - b _0811CBB4 - .align 2, 0 -_0811CB98: .4byte 0x0200c000 -_0811CB9C: .4byte 0x00000fff -_0811CBA0: .4byte gUnknown_03004DE0 -_0811CBA4: - ldrh r0, [r6, 0x14] - ldrh r1, [r2, 0xA] - subs r0, r1 - strh r0, [r3] - ldrh r0, [r2, 0xA] - lsls r0, 8 - movs r1, 0xF1 - orrs r0, r1 -_0811CBB4: - strh r0, [r4] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x9F - bls _0811CB76 - movs r3, 0xA - ldrsh r0, [r2, r3] - cmp r0, 0xEF - ble _0811CBCE - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_0811CBCE: - mov r1, r12 - ldrb r0, [r1] - adds r0, 0x1 - ldrb r1, [r1] - mov r2, r12 - strb r0, [r2] - movs r0, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_811CB20 - - thumb_func_start sub_811CBE8 -sub_811CBE8: @ 811CBE8 - push {lr} - ldr r1, _0811CC18 @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _0811CC1C @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _0811CC20 @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - bl sub_811D6D4 - ldr r0, _0811CC24 @ =sub_811CA5C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0811CC18: .4byte 0x040000b0 -_0811CC1C: .4byte 0x0000c5ff -_0811CC20: .4byte 0x00007fff -_0811CC24: .4byte sub_811CA5C - thumb_func_end sub_811CBE8 - - thumb_func_start sub_811CC28 -sub_811CC28: @ 811CC28 - push {r4,lr} - ldr r4, _0811CC84 @ =0x040000b0 - ldrh r1, [r4, 0xA] - ldr r0, _0811CC88 @ =0x0000c5ff - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r1, [r4, 0xA] - ldr r0, _0811CC8C @ =0x00007fff - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xA] - bl sub_811D67C - ldr r2, _0811CC90 @ =REG_WININ - ldr r1, _0811CC94 @ =0x0200c000 - ldrh r0, [r1, 0x2] - strh r0, [r2] - adds r2, 0x2 - ldrh r0, [r1, 0x4] - strh r0, [r2] - subs r2, 0x6 - ldrh r0, [r1, 0x8] - strh r0, [r2] - ldrb r0, [r1] - cmp r0, 0 - beq _0811CC70 - ldr r1, _0811CC98 @ =0x040000d4 - ldr r0, _0811CC9C @ =gUnknown_03004DE0 - str r0, [r1] - movs r2, 0xF0 - lsls r2, 3 - adds r0, r2 - str r0, [r1, 0x4] - ldr r0, _0811CCA0 @ =0x80000140 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_0811CC70: - ldr r0, _0811CCA4 @ =gUnknown_030056A0 - str r0, [r4] - ldr r0, _0811CCA8 @ =REG_WIN0H - str r0, [r4, 0x4] - ldr r0, _0811CCAC @ =0xa2400001 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811CC84: .4byte 0x040000b0 -_0811CC88: .4byte 0x0000c5ff -_0811CC8C: .4byte 0x00007fff -_0811CC90: .4byte REG_WININ -_0811CC94: .4byte 0x0200c000 -_0811CC98: .4byte 0x040000d4 -_0811CC9C: .4byte gUnknown_03004DE0 -_0811CCA0: .4byte 0x80000140 -_0811CCA4: .4byte gUnknown_030056A0 -_0811CCA8: .4byte REG_WIN0H -_0811CCAC: .4byte 0xa2400001 - thumb_func_end sub_811CC28 - - thumb_func_start sub_811CCB0 -sub_811CCB0: @ 811CCB0 - ldr r1, _0811CCD0 @ =gUnknown_03004DE0 - ldr r0, _0811CCD4 @ =REG_VCOUNT - ldrh r0, [r0] - lsls r0, 1 - movs r2, 0xF0 - lsls r2, 3 - adds r1, r2 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _0811CCD8 @ =REG_BG1HOFS - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - bx lr - .align 2, 0 -_0811CCD0: .4byte gUnknown_03004DE0 -_0811CCD4: .4byte REG_VCOUNT -_0811CCD8: .4byte REG_BG1HOFS - thumb_func_end sub_811CCB0 - - thumb_func_start sub_811CCDC -sub_811CCDC: @ 811CCDC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0811CD0C @ =gUnknown_083FD8B0 - ldr r2, _0811CD10 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0811CCEE: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0811CCEE - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811CD0C: .4byte gUnknown_083FD8B0 -_0811CD10: .4byte gTasks - thumb_func_end sub_811CCDC - - thumb_func_start sub_811CD14 -sub_811CD14: @ 811CD14 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_811D658 - bl dp12_8087EA4 - ldr r1, _0811CD88 @ =0x0200c000 - movs r2, 0 - movs r0, 0xBF - strh r0, [r1, 0xE] - strh r2, [r1, 0x12] - movs r0, 0x1E - strh r0, [r1, 0x2] - movs r0, 0x3F - strh r0, [r1, 0x4] - movs r0, 0xA0 - strh r0, [r1, 0x8] - movs r1, 0 - ldr r2, _0811CD8C @ =gUnknown_03005560 - movs r4, 0 - movs r3, 0xF0 -_0811CD3E: - lsls r0, r1, 1 - adds r0, r2 - strh r4, [r0] - adds r0, r1, 0 - adds r0, 0xA0 - lsls r0, 1 - adds r0, r2 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x9F - bls _0811CD3E - ldr r2, _0811CD90 @ =0x04000200 - ldrh r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strh r0, [r2] - ldr r2, _0811CD94 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x10 - orrs r0, r1 - strh r0, [r2] - ldr r0, _0811CD98 @ =sub_811CFAC - bl SetHBlankCallback - ldr r0, _0811CD9C @ =sub_811CEE4 - bl SetVBlankCallback - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0811CD88: .4byte 0x0200c000 -_0811CD8C: .4byte gUnknown_03005560 -_0811CD90: .4byte 0x04000200 -_0811CD94: .4byte REG_DISPSTAT -_0811CD98: .4byte sub_811CFAC -_0811CD9C: .4byte sub_811CEE4 - thumb_func_end sub_811CD14 - - thumb_func_start sub_811CDA0 -sub_811CDA0: @ 811CDA0 - push {r4-r6,lr} - sub sp, 0x10 - adds r6, r0, 0 - ldr r1, _0811CE08 @ =gUnknown_083FD8C4 - mov r0, sp - movs r2, 0x10 - bl memcpy - movs r5, 0 - movs r4, 0 -_0811CDB4: - ldr r0, _0811CE0C @ =sub_811CFD0 - bl CreateInvisibleSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0811CE10 @ =gSprites - adds r2, r1, r0 - movs r0, 0xF0 - strh r0, [r2, 0x20] - strh r4, [r2, 0x22] - lsls r1, r5, 16 - asrs r1, 16 - lsls r0, r1, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r2, 0x38] - adds r1, 0x1 - lsls r1, 16 - lsls r0, r4, 16 - movs r3, 0xA0 - lsls r3, 13 - adds r0, r3 - lsrs r4, r0, 16 - lsrs r5, r1, 16 - asrs r1, 16 - cmp r1, 0x7 - ble _0811CDB4 - ldrh r0, [r2, 0x3A] - adds r0, 0x1 - strh r0, [r2, 0x3A] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - movs r0, 0 - add sp, 0x10 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0811CE08: .4byte gUnknown_083FD8C4 -_0811CE0C: .4byte sub_811CFD0 -_0811CE10: .4byte gSprites - thumb_func_end sub_811CDA0 - - thumb_func_start sub_811CE14 -sub_811CE14: @ 811CE14 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0811CE44 @ =0x0200c000 - ldrb r1, [r0] - movs r1, 0 - strb r1, [r0] - movs r1, 0x20 - ldrsh r0, [r0, r1] - cmp r0, 0x7 - ble _0811CE3A - movs r0, 0x1 - negs r0, r0 - ldr r2, _0811CE48 @ =0x00007fff - movs r1, 0x10 - bl BlendPalettes - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0811CE3A: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811CE44: .4byte 0x0200c000 -_0811CE48: .4byte 0x00007fff - thumb_func_end sub_811CE14 - - thumb_func_start sub_811CE4C -sub_811CE4C: @ 811CE4C - push {r4-r6,lr} - adds r6, r0, 0 - ldr r4, _0811CE9C @ =0x0200c000 - ldrb r0, [r4] - movs r5, 0 - strb r5, [r4] - ldr r1, _0811CEA0 @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _0811CEA4 @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _0811CEA8 @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - movs r0, 0xF0 - strh r0, [r4, 0x6] - strh r5, [r4, 0x12] - movs r0, 0xFF - strh r0, [r4, 0xE] - movs r0, 0x3F - strh r0, [r4, 0x2] - ldr r0, _0811CEAC @ =sub_811CF74 - bl SetVBlankCallback - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0811CE9C: .4byte 0x0200c000 -_0811CEA0: .4byte 0x040000b0 -_0811CEA4: .4byte 0x0000c5ff -_0811CEA8: .4byte 0x00007fff -_0811CEAC: .4byte sub_811CF74 - thumb_func_end sub_811CE4C - - thumb_func_start sub_811CEB0 -sub_811CEB0: @ 811CEB0 - push {lr} - ldr r1, _0811CEDC @ =0x0200c000 - ldrh r0, [r1, 0x12] - adds r0, 0x1 - strh r0, [r1, 0x12] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x10 - bls _0811CED4 - bl sub_811D6D4 - ldr r0, _0811CEE0 @ =sub_811CCDC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0811CED4: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0811CEDC: .4byte 0x0200c000 -_0811CEE0: .4byte sub_811CCDC - thumb_func_end sub_811CEB0 - - thumb_func_start sub_811CEE4 -sub_811CEE4: @ 811CEE4 - push {r4,lr} - ldr r4, _0811CF48 @ =0x040000b0 - ldrh r1, [r4, 0xA] - ldr r0, _0811CF4C @ =0x0000c5ff - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r1, [r4, 0xA] - ldr r0, _0811CF50 @ =0x00007fff - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xA] - bl sub_811D67C - ldr r2, _0811CF54 @ =REG_BLDCNT - ldr r1, _0811CF58 @ =0x0200c000 - ldrh r0, [r1, 0xE] - strh r0, [r2] - subs r2, 0x8 - ldrh r0, [r1, 0x2] - strh r0, [r2] - adds r2, 0x2 - ldrh r0, [r1, 0x4] - strh r0, [r2] - subs r2, 0x6 - ldrh r0, [r1, 0x6] - strh r0, [r2] - ldrb r0, [r1] - cmp r0, 0 - beq _0811CF32 - ldr r1, _0811CF5C @ =0x040000d4 - ldr r0, _0811CF60 @ =gUnknown_03004DE0 - str r0, [r1] - movs r2, 0xF0 - lsls r2, 3 - adds r0, r2 - str r0, [r1, 0x4] - ldr r0, _0811CF64 @ =0x80000140 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_0811CF32: - ldr r0, _0811CF68 @ =gUnknown_030056A0 - str r0, [r4] - ldr r0, _0811CF6C @ =REG_WIN0H - str r0, [r4, 0x4] - ldr r0, _0811CF70 @ =0xa2400001 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811CF48: .4byte 0x040000b0 -_0811CF4C: .4byte 0x0000c5ff -_0811CF50: .4byte 0x00007fff -_0811CF54: .4byte REG_BLDCNT -_0811CF58: .4byte 0x0200c000 -_0811CF5C: .4byte 0x040000d4 -_0811CF60: .4byte gUnknown_03004DE0 -_0811CF64: .4byte 0x80000140 -_0811CF68: .4byte gUnknown_030056A0 -_0811CF6C: .4byte REG_WIN0H -_0811CF70: .4byte 0xa2400001 - thumb_func_end sub_811CEE4 - - thumb_func_start sub_811CF74 -sub_811CF74: @ 811CF74 - push {lr} - bl sub_811D67C - ldr r1, _0811CFA4 @ =REG_BLDY - ldr r2, _0811CFA8 @ =0x0200c000 - ldrh r0, [r2, 0x12] - strh r0, [r1] - subs r1, 0x4 - ldrh r0, [r2, 0xE] - strh r0, [r1] - subs r1, 0x8 - ldrh r0, [r2, 0x2] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r2, 0x4] - strh r0, [r1] - subs r1, 0xA - ldrh r0, [r2, 0x6] - strh r0, [r1] - adds r1, 0x4 - ldrh r0, [r2, 0x8] - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0811CFA4: .4byte REG_BLDY -_0811CFA8: .4byte 0x0200c000 - thumb_func_end sub_811CF74 - - thumb_func_start sub_811CFAC -sub_811CFAC: @ 811CFAC - ldr r2, _0811CFC4 @ =REG_BLDY - ldr r1, _0811CFC8 @ =gUnknown_03004DE0 - ldr r0, _0811CFCC @ =REG_VCOUNT - ldrh r0, [r0] - lsls r0, 1 - movs r3, 0xF0 - lsls r3, 3 - adds r1, r3 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .align 2, 0 -_0811CFC4: .4byte REG_BLDY -_0811CFC8: .4byte gUnknown_03004DE0 -_0811CFCC: .4byte REG_VCOUNT - thumb_func_end sub_811CFAC - - thumb_func_start sub_811CFD0 -sub_811CFD0: @ 811CFD0 - push {r4-r6,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x38] - movs r2, 0x38 - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _0811CFF8 - subs r0, r1, 0x1 - strh r0, [r3, 0x38] - movs r1, 0x3A - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _0811D0AA - ldr r0, _0811CFF4 @ =0x0200c000 - ldrb r1, [r0] - movs r1, 0x1 - strb r1, [r0] - b _0811D0AA - .align 2, 0 -_0811CFF4: .4byte 0x0200c000 -_0811CFF8: - movs r2, 0x22 - ldrsh r1, [r3, r2] - lsls r1, 1 - ldr r0, _0811D0B0 @ =gUnknown_03004DE0 - adds r6, r1, r0 - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2 - adds r5, r1, r0 - movs r4, 0 -_0811D00C: - lsls r1, r4, 1 - adds r2, r1, r6 - ldrh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2] - adds r1, r5 - ldrh r0, [r3, 0x20] - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x13 - bls _0811D00C - movs r1, 0x20 - ldrsh r0, [r3, r1] - ldrh r2, [r3, 0x20] - cmp r0, 0 - bne _0811D046 - movs r0, 0x2E - ldrsh r1, [r3, r0] - movs r0, 0x80 - lsls r0, 5 - cmp r1, r0 - bne _0811D046 - movs r0, 0x1 - strh r0, [r3, 0x30] -_0811D046: - adds r1, r2, 0 - subs r1, 0x10 - strh r1, [r3, 0x20] - ldrh r0, [r3, 0x2E] - adds r0, 0x80 - strh r0, [r3, 0x2E] - lsls r1, 16 - cmp r1, 0 - bge _0811D05C - movs r0, 0 - strh r0, [r3, 0x20] -_0811D05C: - movs r1, 0x2E - ldrsh r0, [r3, r1] - movs r1, 0x80 - lsls r1, 5 - cmp r0, r1 - ble _0811D06A - strh r1, [r3, 0x2E] -_0811D06A: - movs r0, 0x3A - ldrsh r2, [r3, r0] - cmp r2, 0 - beq _0811D07A - ldr r0, _0811D0B4 @ =0x0200c000 - ldrb r1, [r0] - movs r1, 0x1 - strb r1, [r0] -_0811D07A: - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _0811D0AA - ldr r4, _0811D0B4 @ =0x0200c000 - cmp r2, 0 - beq _0811D09E - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x6 - ble _0811D0AA - ldrh r0, [r3, 0x32] - adds r1, r0, 0x1 - strh r1, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _0811D0AA -_0811D09E: - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - adds r0, r3, 0 - bl DestroySprite -_0811D0AA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811D0B0: .4byte gUnknown_03004DE0 -_0811D0B4: .4byte 0x0200c000 - thumb_func_end sub_811CFD0 - - thumb_func_start sub_811D0B8 -sub_811D0B8: @ 811D0B8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0811D0E8 @ =gUnknown_083FD8D4 - ldr r2, _0811D0EC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0811D0CA: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0811D0CA - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811D0E8: .4byte gUnknown_083FD8D4 -_0811D0EC: .4byte gTasks - thumb_func_end sub_811D0B8 - - thumb_func_start sub_811D0F0 -sub_811D0F0: @ 811D0F0 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - add r0, sp, 0x4 - add r1, sp, 0x8 - bl sub_811D6A8 - ldr r0, _0811D138 @ =gUnknown_083FD528 - ldr r1, [sp, 0x8] - movs r2, 0x10 - bl CpuSet - mov r1, sp - movs r2, 0xF0 - lsls r2, 8 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, [sp, 0x4] - ldr r2, _0811D13C @ =0x01000400 - mov r0, sp - bl CpuSet - ldr r0, _0811D140 @ =gFieldEffectObjectPalette10 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811D138: .4byte gUnknown_083FD528 -_0811D13C: .4byte 0x01000400 -_0811D140: .4byte gFieldEffectObjectPalette10 - thumb_func_end sub_811D0F0 - - thumb_func_start sub_811D144 -sub_811D144: @ 811D144 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0811D186 - mov r0, sp - bl sub_811D690 - movs r0, 0x3 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0xC - ldrsh r0, [r4, r1] - lsls r0, 5 - ldr r1, _0811D198 @ =gUnknown_083FD528 - adds r0, r1 - ldr r1, [sp] - movs r2, 0x10 - bl CpuSet - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0xD - ble _0811D186 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x10 - strh r0, [r4, 0xA] -_0811D186: - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811D198: .4byte gUnknown_083FD528 - thumb_func_end sub_811D144 - - thumb_func_start sub_811D19C -sub_811D19C: @ 811D19C - push {lr} - ldrh r1, [r0, 0xA] - subs r1, 0x1 - strh r1, [r0, 0xA] - lsls r1, 16 - cmp r1, 0 - bne _0811D1BC - bl sub_811D6D4 - ldr r0, _0811D1C4 @ =sub_811D0B8 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0811D1BC: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0811D1C4: .4byte sub_811D0B8 - thumb_func_end sub_811D19C - - thumb_func_start sub_811D1C8 -sub_811D1C8: @ 811D1C8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0811D1F8 @ =gUnknown_083FD8E0 - ldr r2, _0811D1FC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0811D1DA: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0811D1DA - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811D1F8: .4byte gUnknown_083FD8E0 -_0811D1FC: .4byte gTasks - thumb_func_end sub_811D1C8 - - thumb_func_start sub_811D200 -sub_811D200: @ 811D200 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_811D658 - bl dp12_8087EA4 - ldr r1, _0811D254 @ =0x0200c000 - movs r2, 0 - movs r0, 0x3F - strh r0, [r1, 0x2] - strh r2, [r1, 0x4] - movs r0, 0xA0 - strh r0, [r1, 0x8] - movs r1, 0 - ldr r2, _0811D258 @ =gUnknown_03004DE0 - movs r3, 0xF0 - adds r4, r2, 0 -_0811D222: - lsls r0, r1, 1 - adds r0, r2 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x9F - bls _0811D222 - movs r0, 0xF0 - lsls r0, 3 - adds r1, r4, r0 - adds r0, r4, 0 - movs r2, 0xA0 - bl CpuSet - ldr r0, _0811D25C @ =sub_811D438 - bl SetVBlankCallback - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0811D254: .4byte 0x0200c000 -_0811D258: .4byte gUnknown_03004DE0 -_0811D25C: .4byte sub_811D438 - thumb_func_end sub_811D200 - - thumb_func_start sub_811D260 -sub_811D260: @ 811D260 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - mov r8, r0 - ldr r0, _0811D2D0 @ =0x0200c024 - ldr r6, _0811D2D4 @ =gUnknown_083FD8F4 - mov r2, r8 - movs r3, 0xA - ldrsh r1, [r2, r3] - lsls r4, r1, 2 - adds r4, r1 - lsls r4, 1 - adds r1, r4, r6 - movs r5, 0 - ldrsh r1, [r1, r5] - adds r2, r6, 0x2 - adds r2, r4, r2 - movs r3, 0 - ldrsh r2, [r2, r3] - adds r3, r6, 0x4 - adds r3, r4, r3 - movs r5, 0 - ldrsh r3, [r3, r5] - adds r5, r6, 0x6 - adds r4, r5 - movs r5, 0 - ldrsh r4, [r4, r5] - str r4, [sp] - movs r4, 0x1 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - bl sub_811D8FC - mov r0, r8 - movs r2, 0xA - ldrsh r1, [r0, r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - adds r6, 0x8 - adds r0, r6 - ldrh r0, [r0] - mov r3, r8 - strh r0, [r3, 0xC] - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - movs r0, 0x1 - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0811D2D0: .4byte 0x0200c024 -_0811D2D4: .4byte gUnknown_083FD8F4 - thumb_func_end sub_811D260 - - thumb_func_start sub_811D2D8 -sub_811D2D8: @ 811D2D8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - ldr r0, _0811D324 @ =0x0200c000 - ldrb r1, [r0] - movs r1, 0 - strb r1, [r0] - mov r8, r1 - mov r12, r1 - adds r6, r0, 0 - ldr r0, _0811D328 @ =gUnknown_03004DE0 - mov r9, r0 -_0811D2F4: - ldr r1, _0811D328 @ =gUnknown_03004DE0 - movs r2, 0x2A - ldrsh r0, [r6, r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsrs r3, r0, 8 - movs r4, 0xFF - ands r4, r0 - movs r1, 0xC - ldrsh r0, [r7, r1] - cmp r0, 0 - bne _0811D32C - movs r2, 0x28 - ldrsh r0, [r6, r2] - cmp r3, r0 - bge _0811D318 - ldrh r3, [r6, 0x28] -_0811D318: - lsls r0, r3, 16 - lsls r1, r4, 16 - cmp r0, r1 - ble _0811D344 - lsrs r3, r1, 16 - b _0811D344 - .align 2, 0 -_0811D324: .4byte 0x0200c000 -_0811D328: .4byte gUnknown_03004DE0 -_0811D32C: - lsls r0, r4, 16 - asrs r0, 16 - movs r2, 0x28 - ldrsh r1, [r6, r2] - cmp r0, r1 - ble _0811D33A - ldrh r4, [r6, 0x28] -_0811D33A: - lsls r0, r4, 16 - lsls r1, r3, 16 - cmp r0, r1 - bgt _0811D344 - lsrs r4, r1, 16 -_0811D344: - ldr r5, _0811D368 @ =0x0200c000 - movs r0, 0x2A - ldrsh r2, [r5, r0] - lsls r2, 1 - add r2, r9 - lsls r1, r3, 16 - asrs r1, 8 - lsls r0, r4, 16 - asrs r0, 16 - orrs r0, r1 - strh r0, [r2] - mov r1, r12 - cmp r1, 0 - beq _0811D36C - ldrh r0, [r7, 0x8] - adds r0, 0x1 - strh r0, [r7, 0x8] - b _0811D392 - .align 2, 0 -_0811D368: .4byte 0x0200c000 -_0811D36C: - adds r0, r5, 0 - adds r0, 0x24 - movs r1, 0x1 - movs r2, 0x1 - bl sub_811D978 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - mov r2, r8 - lsls r0, r2, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r2, r0, 16 - mov r8, r2 - asrs r0, 16 - cmp r0, 0xF - ble _0811D2F4 -_0811D392: - ldr r0, _0811D3AC @ =0x0200c000 - ldrb r1, [r0] - adds r1, 0x1 - ldrb r2, [r0] - strb r1, [r0] - movs r0, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0811D3AC: .4byte 0x0200c000 - thumb_func_end sub_811D2D8 - - thumb_func_start sub_811D3B0 -sub_811D3B0: @ 811D3B0 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - ble _0811D3FC - ldr r1, _0811D3EC @ =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, _0811D3F0 @ =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, _0811D3F4 @ =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - bl sub_811D6D4 - ldr r0, _0811D3F8 @ =sub_811D1C8 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - b _0811D414 - .align 2, 0 -_0811D3EC: .4byte 0x040000b0 -_0811D3F0: .4byte 0x0000c5ff -_0811D3F4: .4byte 0x00007fff -_0811D3F8: .4byte sub_811D1C8 -_0811D3FC: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - ldr r1, _0811D418 @ =gUnknown_083FD93A - movs r3, 0xA - ldrsh r0, [r2, r3] - subs r0, 0x1 - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2, 0xE] - movs r0, 0x1 -_0811D414: - pop {r1} - bx r1 - .align 2, 0 -_0811D418: .4byte gUnknown_083FD93A - thumb_func_end sub_811D3B0 - - thumb_func_start sub_811D41C -sub_811D41C: @ 811D41C - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0xE] - subs r0, 0x1 - strh r0, [r1, 0xE] - lsls r0, 16 - cmp r0, 0 - beq _0811D430 - movs r0, 0 - b _0811D434 -_0811D430: - movs r0, 0x1 - strh r0, [r1, 0x8] -_0811D434: - pop {r1} - bx r1 - thumb_func_end sub_811D41C - - thumb_func_start sub_811D438 -sub_811D438: @ 811D438 - push {r4,lr} - ldr r4, _0811D4A0 @ =0x040000b0 - ldrh r1, [r4, 0xA] - ldr r0, _0811D4A4 @ =0x0000c5ff - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r1, [r4, 0xA] - ldr r0, _0811D4A8 @ =0x00007fff - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xA] - bl sub_811D67C - ldr r2, _0811D4AC @ =0x0200c000 - ldrb r0, [r2] - cmp r0, 0 - beq _0811D46E - ldr r1, _0811D4B0 @ =0x040000d4 - ldr r0, _0811D4B4 @ =gUnknown_03004DE0 - str r0, [r1] - movs r3, 0xF0 - lsls r3, 3 - adds r0, r3 - str r0, [r1, 0x4] - ldr r0, _0811D4B8 @ =0x800000a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_0811D46E: - ldr r1, _0811D4BC @ =REG_WININ - ldrh r0, [r2, 0x2] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r2, 0x4] - strh r0, [r1] - subs r1, 0x6 - ldrh r0, [r2, 0x8] - strh r0, [r1] - ldr r2, _0811D4C0 @ =REG_WIN0H - ldr r0, _0811D4B4 @ =gUnknown_03004DE0 - movs r1, 0xF0 - lsls r1, 3 - adds r0, r1 - ldrh r1, [r0] - strh r1, [r2] - str r0, [r4] - str r2, [r4, 0x4] - ldr r0, _0811D4C4 @ =0xa2400001 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811D4A0: .4byte 0x040000b0 -_0811D4A4: .4byte 0x0000c5ff -_0811D4A8: .4byte 0x00007fff -_0811D4AC: .4byte 0x0200c000 -_0811D4B0: .4byte 0x040000d4 -_0811D4B4: .4byte gUnknown_03004DE0 -_0811D4B8: .4byte 0x800000a0 -_0811D4BC: .4byte REG_WININ -_0811D4C0: .4byte REG_WIN0H -_0811D4C4: .4byte 0xa2400001 - thumb_func_end sub_811D438 - - thumb_func_start sub_811D4C8 -sub_811D4C8: @ 811D4C8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - mov r8, r0 - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r3, [sp, 0x18] - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - lsls r3, 16 - lsrs r3, 16 - ldr r0, _0811D524 @ =sub_811D54C - movs r1, 0x3 - str r3, [sp] - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0811D528 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - mov r0, r8 - strh r0, [r1, 0xA] - strh r4, [r1, 0xC] - strh r5, [r1, 0xE] - strh r6, [r1, 0x10] - ldr r3, [sp] - strh r3, [r1, 0x12] - strh r0, [r1, 0x14] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811D524: .4byte sub_811D54C -_0811D528: .4byte gTasks - thumb_func_end sub_811D4C8 - - thumb_func_start sub_811D52C -sub_811D52C: @ 811D52C - push {lr} - ldr r0, _0811D540 @ =sub_811D54C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0811D544 - movs r0, 0 - b _0811D546 - .align 2, 0 -_0811D540: .4byte sub_811D54C -_0811D544: - movs r0, 0x1 -_0811D546: - pop {r1} - bx r1 - thumb_func_end sub_811D52C - - thumb_func_start sub_811D54C -sub_811D54C: @ 811D54C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0811D57C @ =gUnknown_083FD948 - ldr r2, _0811D580 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_0811D55E: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _0811D55E - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811D57C: .4byte gUnknown_083FD948 -_0811D580: .4byte gTasks - thumb_func_end sub_811D54C - - thumb_func_start sub_811D584 -sub_811D584: @ 811D584 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x14] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0811D59C - subs r0, r1, 0x1 - strh r0, [r4, 0x14] - lsls r0, 16 - cmp r0, 0 - bne _0811D5C0 -_0811D59C: - ldrh r0, [r4, 0xA] - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x10] - ldrh r1, [r4, 0x16] - adds r0, r1 - strh r0, [r4, 0x16] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _0811D5B4 - movs r0, 0x10 - strh r0, [r4, 0x16] -_0811D5B4: - movs r0, 0x1 - negs r0, r0 - ldrb r1, [r4, 0x16] - ldr r2, _0811D5DC @ =0x00002d6b - bl BlendPalettes -_0811D5C0: - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r0, 0xF - ble _0811D5D2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xC] - strh r0, [r4, 0x14] -_0811D5D2: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0811D5DC: .4byte 0x00002d6b - thumb_func_end sub_811D584 - - thumb_func_start sub_811D5E0 -sub_811D5E0: @ 811D5E0 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x14] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0811D5F8 - subs r0, r1, 0x1 - strh r0, [r4, 0x14] - lsls r0, 16 - cmp r0, 0 - bne _0811D61A -_0811D5F8: - ldrh r0, [r4, 0xC] - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x16] - ldrh r1, [r4, 0x12] - subs r0, r1 - strh r0, [r4, 0x16] - lsls r0, 16 - cmp r0, 0 - bge _0811D60E - movs r0, 0 - strh r0, [r4, 0x16] -_0811D60E: - movs r0, 0x1 - negs r0, r0 - ldrb r1, [r4, 0x16] - ldr r2, _0811D640 @ =0x00002d6b - bl BlendPalettes -_0811D61A: - movs r0, 0x16 - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _0811D64E - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _0811D648 - ldr r0, _0811D644 @ =sub_811D54C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - b _0811D64E - .align 2, 0 -_0811D640: .4byte 0x00002d6b -_0811D644: .4byte sub_811D54C -_0811D648: - ldrh r0, [r4, 0xA] - strh r0, [r4, 0x14] - strh r1, [r4, 0x8] -_0811D64E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_811D5E0 - - thumb_func_start sub_811D658 -sub_811D658: @ 811D658 - push {lr} - ldr r0, _0811D674 @ =gUnknown_083FD708 - ldr r0, [r0] - movs r1, 0 - movs r2, 0x3C - bl memset - ldr r0, _0811D678 @ =0x0200c014 - adds r1, r0, 0x2 - bl sub_8057B14 - pop {r0} - bx r0 - .align 2, 0 -_0811D674: .4byte gUnknown_083FD708 -_0811D678: .4byte 0x0200c014 - thumb_func_end sub_811D658 - - thumb_func_start sub_811D67C -sub_811D67C: @ 811D67C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_811D67C - - thumb_func_start sub_811D690 -sub_811D690: @ 811D690 - ldr r1, _0811D6A4 @ =REG_BG0CNT - ldrh r1, [r1] - lsrs r1, 2 - lsls r1, 30 - lsrs r1, 16 - movs r2, 0xC0 - lsls r2, 19 - adds r1, r2 - str r1, [r0] - bx lr - .align 2, 0 -_0811D6A4: .4byte REG_BG0CNT - thumb_func_end sub_811D690 - - thumb_func_start sub_811D6A8 -sub_811D6A8: @ 811D6A8 - push {r4,lr} - ldr r3, _0811D6D0 @ =REG_BG0CNT - ldrh r2, [r3] - lsrs r2, 8 - ldrh r3, [r3] - lsrs r3, 2 - lsls r2, 27 - lsrs r2, 16 - lsls r3, 30 - lsrs r3, 16 - movs r4, 0xC0 - lsls r4, 19 - adds r2, r4 - str r2, [r0] - adds r3, r4 - str r3, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811D6D0: .4byte REG_BG0CNT - thumb_func_end sub_811D6A8 - - thumb_func_start sub_811D6D4 -sub_811D6D4: @ 811D6D4 - push {lr} - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - pop {r0} - bx r0 - thumb_func_end sub_811D6D4 - - thumb_func_start sub_811D6E8 -sub_811D6E8: @ 811D6E8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r0 - ldr r0, [sp, 0x20] - ldr r4, [sp, 0x24] - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r0, 16 - lsrs r1, r0, 16 - lsls r4, 16 - movs r6, 0 - lsrs r5, r4, 16 - cmp r4, 0 - ble _0811D750 - lsls r0, r7, 16 - asrs r0, 16 - mov r9, r0 - lsls r1, 16 - mov r8, r1 - lsls r0, r3, 16 - asrs r7, r0, 16 -_0811D720: - lsls r4, r2, 16 - asrs r4, 16 - movs r0, 0xFF - ands r0, r4 - mov r2, r8 - asrs r1, r2, 16 - bl Sin - lsls r1, r6, 1 - add r1, r10 - add r0, r9 - strh r0, [r1] - lsls r1, r5, 16 - ldr r0, _0811D760 @ =0xffff0000 - adds r1, r0 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r4, r7 - lsls r4, 16 - lsrs r2, r4, 16 - lsrs r5, r1, 16 - cmp r1, 0 - bgt _0811D720 -_0811D750: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811D760: .4byte 0xffff0000 - thumb_func_end sub_811D6E8 - - thumb_func_start sub_811D764 -sub_811D764: @ 811D764 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - mov r9, r0 - adds r5, r2, 0 - adds r4, r3, 0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - movs r2, 0xA0 - lsls r2, 1 - movs r1, 0xA - bl memset - movs r1, 0 - lsls r4, 16 - asrs r4, 16 - str r4, [sp, 0x4] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x8] -_0811D79C: - lsls r5, r1, 16 - asrs r0, r5, 16 - mov r10, r0 - ldr r1, [sp, 0x4] - bl Sin - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r10 - ldr r1, [sp, 0x4] - bl Cos - ldr r2, [sp] - lsls r1, r2, 16 - asrs r1, 16 - lsls r4, 16 - asrs r4, 16 - subs r2, r1, r4 - lsls r2, 16 - adds r1, r4 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r0, 16 - asrs r0, 16 - ldr r3, [sp, 0x8] - subs r1, r3, r0 - lsls r1, 16 - lsrs r7, r1, 16 - adds r0, r3, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsrs r1, r2, 16 - str r5, [sp, 0x10] - cmp r2, 0 - bge _0811D7E8 - movs r1, 0 -_0811D7E8: - lsls r0, r6, 16 - asrs r0, 16 - cmp r0, 0xF0 - ble _0811D7F2 - movs r6, 0xF0 -_0811D7F2: - lsls r0, r7, 16 - cmp r0, 0 - bge _0811D7FA - movs r7, 0 -_0811D7FA: - mov r2, r8 - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x9F - ble _0811D808 - movs r3, 0x9F - mov r8, r3 -_0811D808: - lsls r0, r1, 24 - lsrs r0, 16 - orrs r6, r0 - lsls r0, r7, 16 - asrs r0, 16 - str r0, [sp, 0xC] - lsls r0, 1 - add r0, r9 - strh r6, [r0] - mov r0, r8 - lsls r4, r0, 16 - asrs r0, r4, 15 - add r0, r9 - strh r6, [r0] - mov r0, r10 - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - ldr r1, [sp, 0x4] - bl Cos - lsls r0, 16 - asrs r0, 16 - ldr r2, [sp, 0x8] - subs r1, r2, r0 - lsls r1, 16 - adds r0, r2, r0 - lsls r0, 16 - lsrs r2, r0, 16 - lsrs r3, r1, 16 - cmp r1, 0 - bge _0811D84A - movs r3, 0 -_0811D84A: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x9F - ble _0811D854 - movs r2, 0x9F -_0811D854: - lsls r0, r3, 16 - asrs r1, r0, 16 - adds r3, r0, 0 - lsls r5, r2, 16 - ldr r0, [sp, 0xC] - cmp r0, r1 - ble _0811D878 - adds r2, r1, 0 -_0811D864: - lsls r1, r7, 16 - ldr r0, _0811D8F8 @ =0xffff0000 - adds r1, r0 - asrs r0, r1, 15 - add r0, r9 - strh r6, [r0] - lsrs r7, r1, 16 - asrs r1, 16 - cmp r1, r2 - bgt _0811D864 -_0811D878: - lsls r1, r7, 16 - asrs r0, r3, 16 - cmp r1, r3 - bge _0811D896 - adds r2, r0, 0 -_0811D882: - movs r3, 0x80 - lsls r3, 9 - adds r0, r1, r3 - asrs r1, r0, 15 - add r1, r9 - strh r6, [r1] - adds r1, r0, 0 - asrs r0, r1, 16 - cmp r0, r2 - blt _0811D882 -_0811D896: - asrs r0, r5, 16 - cmp r4, r5 - ble _0811D8B4 - adds r1, r0, 0 -_0811D89E: - ldr r2, _0811D8F8 @ =0xffff0000 - adds r0, r4, r2 - lsrs r3, r0, 16 - mov r8, r3 - asrs r0, 15 - add r0, r9 - strh r6, [r0] - lsls r4, r3, 16 - asrs r0, r4, 16 - cmp r0, r1 - bgt _0811D89E -_0811D8B4: - mov r0, r8 - lsls r4, r0, 16 - asrs r0, r5, 16 - cmp r4, r5 - bge _0811D8D4 - adds r2, r0, 0 -_0811D8C0: - movs r1, 0x80 - lsls r1, 9 - adds r0, r4, r1 - asrs r1, r0, 15 - add r1, r9 - strh r6, [r1] - adds r4, r0, 0 - asrs r0, r4, 16 - cmp r0, r2 - blt _0811D8C0 -_0811D8D4: - ldr r2, [sp, 0x10] - movs r3, 0x80 - lsls r3, 9 - adds r0, r2, r3 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0x3F - bgt _0811D8E6 - b _0811D79C -_0811D8E6: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811D8F8: .4byte 0xffff0000 - thumb_func_end sub_811D764 - - thumb_func_start sub_811D8FC -sub_811D8FC: @ 811D8FC - push {r4-r7,lr} - adds r6, r0, 0 - ldr r0, [sp, 0x14] - ldr r5, [sp, 0x18] - ldr r4, [sp, 0x1C] - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r0, 16 - lsrs r0, 16 - adds r7, r0, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - strh r1, [r6] - strh r2, [r6, 0x2] - strh r1, [r6, 0x4] - strh r2, [r6, 0x6] - strh r3, [r6, 0x8] - strh r7, [r6, 0xA] - strh r5, [r6, 0xC] - strh r4, [r6, 0xE] - lsls r3, 16 - asrs r3, 16 - lsls r1, 16 - asrs r1, 16 - subs r3, r1 - strh r3, [r6, 0x10] - lsls r0, r3, 16 - cmp r0, 0 - bge _0811D94E - negs r0, r3 - strh r0, [r6, 0x10] - lsls r0, r5, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r6, 0xC] -_0811D94E: - lsls r0, r7, 16 - asrs r0, 16 - lsls r1, r2, 16 - asrs r1, 16 - subs r1, r0, r1 - strh r1, [r6, 0x12] - lsls r0, r1, 16 - cmp r0, 0 - bge _0811D96C - negs r0, r1 - strh r0, [r6, 0x12] - lsls r0, r4, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r6, 0xE] -_0811D96C: - movs r0, 0 - strh r0, [r6, 0x14] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_811D8FC - - thumb_func_start sub_811D978 -sub_811D978: @ 811D978 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r3, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - ldrh r0, [r3, 0x10] - mov r8, r0 - movs r1, 0x10 - ldrsh r6, [r3, r1] - ldrh r2, [r3, 0x12] - mov r12, r2 - movs r4, 0x12 - ldrsh r5, [r3, r4] - cmp r6, r5 - ble _0811D9C8 - ldrh r0, [r3, 0xC] - ldrh r2, [r3, 0x4] - adds r1, r0, r2 - strh r1, [r3, 0x4] - ldrh r2, [r3, 0x14] - add r2, r12 - strh r2, [r3, 0x14] - lsls r1, r2, 16 - asrs r1, 16 - adds r4, r0, 0 - ldrh r7, [r3, 0xE] - cmp r1, r6 - ble _0811D9EE - ldrh r1, [r3, 0x6] - adds r0, r7, r1 - strh r0, [r3, 0x6] - mov r1, r8 - b _0811D9EA -_0811D9C8: - ldrh r0, [r3, 0xE] - ldrh r2, [r3, 0x6] - adds r1, r0, r2 - strh r1, [r3, 0x6] - ldrh r2, [r3, 0x14] - add r2, r8 - strh r2, [r3, 0x14] - lsls r1, r2, 16 - asrs r1, 16 - ldrh r4, [r3, 0xC] - adds r7, r0, 0 - cmp r1, r5 - ble _0811D9EE - ldrh r1, [r3, 0x4] - adds r0, r4, r1 - strh r0, [r3, 0x4] - mov r1, r12 -_0811D9EA: - subs r0, r2, r1 - strh r0, [r3, 0x14] -_0811D9EE: - movs r5, 0 - lsls r0, r4, 16 - asrs r2, r0, 16 - cmp r2, 0 - ble _0811DA06 - movs r4, 0x4 - ldrsh r1, [r3, r4] - movs r4, 0x8 - ldrsh r0, [r3, r4] - ldrh r4, [r3, 0x8] - cmp r1, r0 - bge _0811DA18 -_0811DA06: - cmp r2, 0 - bge _0811DA26 - movs r0, 0x4 - ldrsh r1, [r3, r0] - movs r2, 0x8 - ldrsh r0, [r3, r2] - ldrh r4, [r3, 0x8] - cmp r1, r0 - bgt _0811DA26 -_0811DA18: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, r9 - cmp r0, 0 - beq _0811DA26 - strh r4, [r3, 0x4] -_0811DA26: - lsls r0, r7, 16 - asrs r2, r0, 16 - cmp r2, 0 - ble _0811DA3C - movs r4, 0x6 - ldrsh r1, [r3, r4] - movs r4, 0xA - ldrsh r0, [r3, r4] - ldrh r4, [r3, 0xA] - cmp r1, r0 - bge _0811DA4E -_0811DA3C: - cmp r2, 0 - bge _0811DA5C - movs r0, 0x6 - ldrsh r1, [r3, r0] - movs r2, 0xA - ldrsh r0, [r3, r2] - ldrh r4, [r3, 0xA] - cmp r1, r0 - bgt _0811DA5C -_0811DA4E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, r10 - cmp r0, 0 - beq _0811DA5C - strh r4, [r3, 0x6] -_0811DA5C: - cmp r5, 0x2 - beq _0811DA64 - movs r0, 0 - b _0811DA66 -_0811DA64: - movs r0, 0x1 -_0811DA66: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_811D978 - - thumb_func_start nullsub_74 -nullsub_74: @ 811DA74 - bx lr - thumb_func_end nullsub_74 - - thumb_func_start sub_811DA78 -sub_811DA78: @ 811DA78 - ldr r1, _0811DA88 @ =gUnknown_03004330 - ldr r0, _0811DA8C @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811DA90 @ =sub_811DA94 - str r1, [r0] - bx lr - .align 2, 0 -_0811DA88: .4byte gUnknown_03004330 -_0811DA8C: .4byte gUnknown_02024A60 -_0811DA90: .4byte sub_811DA94 - thumb_func_end sub_811DA78 - - thumb_func_start sub_811DA94 -sub_811DA94: @ 811DA94 - push {lr} - ldr r2, _0811DAC8 @ =gUnknown_02024A64 - ldr r1, _0811DACC @ =gBitTable - ldr r0, _0811DAD0 @ =gUnknown_02024A60 - ldrb r3, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0811DAE0 - ldr r0, _0811DAD4 @ =gUnknown_02023A60 - lsls r1, r3, 9 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x38 - bhi _0811DADC - ldr r0, _0811DAD8 @ =gUnknown_083FE4F4 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _0811DAE0 - .align 2, 0 -_0811DAC8: .4byte gUnknown_02024A64 -_0811DACC: .4byte gBitTable -_0811DAD0: .4byte gUnknown_02024A60 -_0811DAD4: .4byte gUnknown_02023A60 -_0811DAD8: .4byte gUnknown_083FE4F4 -_0811DADC: - bl dp01_tbl3_exec_completed -_0811DAE0: - pop {r0} - bx r0 - thumb_func_end sub_811DA94 - - thumb_func_start sub_811DAE4 -sub_811DAE4: @ 811DAE4 - push {lr} - ldr r2, _0811DB0C @ =gSprites - ldr r1, _0811DB10 @ =gUnknown_02024BE0 - ldr r0, _0811DB14 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _0811DB18 @ =SpriteCallbackDummy - cmp r1, r0 - bne _0811DB08 - bl dp01_tbl3_exec_completed -_0811DB08: - pop {r0} - bx r0 - .align 2, 0 -_0811DB0C: .4byte gSprites -_0811DB10: .4byte gUnknown_02024BE0 -_0811DB14: .4byte gUnknown_02024A60 -_0811DB18: .4byte SpriteCallbackDummy - thumb_func_end sub_811DAE4 - - thumb_func_start sub_811DB1C -sub_811DB1C: @ 811DB1C - push {r4-r6,lr} - ldr r6, _0811DB74 @ =gSprites - ldr r5, _0811DB78 @ =gUnknown_02024BE0 - ldr r4, _0811DB7C @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, _0811DB80 @ =SpriteCallbackDummy - cmp r1, r0 - bne _0811DB6C - movs r0, 0 - bl nullsub_10 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl FreeSpriteOamMatrix - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - bl dp01_tbl3_exec_completed -_0811DB6C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811DB74: .4byte gSprites -_0811DB78: .4byte gUnknown_02024BE0 -_0811DB7C: .4byte gUnknown_02024A60 -_0811DB80: .4byte SpriteCallbackDummy - thumb_func_end sub_811DB1C - - thumb_func_start sub_811DB84 -sub_811DB84: @ 811DB84 - push {lr} - ldr r3, _0811DBB8 @ =gUnknown_02024A60 - ldrb r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r2, _0811DBBC @ =0x02017810 - adds r1, r2 - ldrb r0, [r1, 0x9] - subs r0, 0x1 - strb r0, [r1, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0811DBB4 - ldrb r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strb r0, [r1, 0x9] - bl dp01_tbl3_exec_completed -_0811DBB4: - pop {r0} - bx r0 - .align 2, 0 -_0811DBB8: .4byte gUnknown_02024A60 -_0811DBBC: .4byte 0x02017810 - thumb_func_end sub_811DB84 - - thumb_func_start sub_811DBC0 -sub_811DBC0: @ 811DBC0 - push {r4-r6,lr} - movs r6, 0 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0811DBE4 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0811DC18 - ldr r0, _0811DC04 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0811DC18 -_0811DBE4: - ldr r2, _0811DC08 @ =gSprites - ldr r1, _0811DC0C @ =gUnknown_03004340 - ldr r0, _0811DC10 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _0811DC14 @ =SpriteCallbackDummy - cmp r1, r0 - bne _0811DC50 - b _0811DC4E - .align 2, 0 -_0811DC04: .4byte gUnknown_020239F8 -_0811DC08: .4byte gSprites -_0811DC0C: .4byte gUnknown_03004340 -_0811DC10: .4byte gUnknown_02024A60 -_0811DC14: .4byte SpriteCallbackDummy -_0811DC18: - ldr r2, _0811DC84 @ =gSprites - ldr r5, _0811DC88 @ =gUnknown_03004340 - ldr r0, _0811DC8C @ =gUnknown_02024A60 - ldrb r3, [r0] - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r2, 0 - adds r4, 0x1C - adds r0, r4 - ldr r2, [r0] - ldr r0, _0811DC90 @ =SpriteCallbackDummy - cmp r2, r0 - bne _0811DC50 - movs r0, 0x2 - eors r3, r0 - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - cmp r0, r2 - bne _0811DC50 -_0811DC4E: - movs r6, 0x1 -_0811DC50: - bl IsCryPlayingOrClearCrySongs - lsls r0, 24 - cmp r0, 0 - beq _0811DC5C - movs r6, 0 -_0811DC5C: - cmp r6, 0 - beq _0811DC7E - ldr r2, _0811DC8C @ =gUnknown_02024A60 - ldrb r1, [r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0811DC94 @ =0x02017810 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0, 0x9] - ldr r1, _0811DC98 @ =gUnknown_03004330 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811DC9C @ =sub_811DB84 - str r1, [r0] -_0811DC7E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811DC84: .4byte gSprites -_0811DC88: .4byte gUnknown_03004340 -_0811DC8C: .4byte gUnknown_02024A60 -_0811DC90: .4byte SpriteCallbackDummy -_0811DC94: .4byte 0x02017810 -_0811DC98: .4byte gUnknown_03004330 -_0811DC9C: .4byte sub_811DB84 - thumb_func_end sub_811DBC0 - - thumb_func_start sub_811DCA0 -sub_811DCA0: @ 811DCA0 - push {r4-r7,lr} - ldr r6, _0811DDBC @ =gUnknown_02024A60 - ldrb r2, [r6] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r4, _0811DDC0 @ =0x02017810 - adds r3, r0, r4 - ldrb r1, [r3] - movs r5, 0x8 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _0811DDB4 - movs r7, 0x2 - adds r1, r7, 0 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - adds r0, r5, 0 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _0811DDB4 - ldrb r0, [r3, 0x9] - adds r0, 0x1 - strb r0, [r3, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0811DDB4 - ldrb r0, [r6] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - strb r2, [r1, 0x9] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0811DD56 - ldr r0, _0811DDC4 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0811DD56 - ldr r1, _0811DDC8 @ =gUnknown_0300434C - ldrb r0, [r6] - eors r0, r7 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0811DDCC @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r4, _0811DDD0 @ =gUnknown_03004340 - ldrb r0, [r6] - adds r1, r7, 0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _0811DDD4 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _0811DDD8 @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl sub_8045A5C - ldrb r0, [r6] - eors r0, r7 - bl sub_804777C - ldrb r0, [r6] - eors r0, r7 - adds r0, r4 - ldrb r0, [r0] - bl sub_8043DFC -_0811DD56: - ldr r1, _0811DDC8 @ =gUnknown_0300434C - ldr r4, _0811DDBC @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0811DDCC @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r5, _0811DDD0 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _0811DDD4 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _0811DDD8 @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl sub_8045A5C - ldrb r0, [r4] - bl sub_804777C - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_8043DFC - ldr r2, _0811DDDC @ =0x02017840 - ldrb r1, [r2, 0x9] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x9] - ldr r1, _0811DDE0 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811DDE4 @ =sub_811DBC0 - str r1, [r0] -_0811DDB4: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811DDBC: .4byte gUnknown_02024A60 -_0811DDC0: .4byte 0x02017810 -_0811DDC4: .4byte gUnknown_020239F8 -_0811DDC8: .4byte gUnknown_0300434C -_0811DDCC: .4byte gSprites -_0811DDD0: .4byte gUnknown_03004340 -_0811DDD4: .4byte gUnknown_02024A6A -_0811DDD8: .4byte gPlayerParty -_0811DDDC: .4byte 0x02017840 -_0811DDE0: .4byte gUnknown_03004330 -_0811DDE4: .4byte sub_811DBC0 - thumb_func_end sub_811DCA0 - - thumb_func_start sub_811DDE8 -sub_811DDE8: @ 811DDE8 - push {lr} - ldr r2, _0811DE1C @ =gSprites - ldr r1, _0811DE20 @ =gUnknown_02024BE0 - ldr r0, _0811DE24 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - cmp r0, 0 - bge _0811DE16 - movs r2, 0x24 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _0811DE16 - bl dp01_tbl3_exec_completed -_0811DE16: - pop {r0} - bx r0 - .align 2, 0 -_0811DE1C: .4byte gSprites -_0811DE20: .4byte gUnknown_02024BE0 -_0811DE24: .4byte gUnknown_02024A60 - thumb_func_end sub_811DDE8 - - thumb_func_start bx_t3_healthbar_update -bx_t3_healthbar_update: @ 811DE28 - push {r4-r6,lr} - ldr r5, _0811DE68 @ =gUnknown_02024A60 - ldrb r0, [r5] - ldr r6, _0811DE6C @ =gUnknown_03004340 - adds r1, r0, r6 - ldrb r1, [r1] - movs r2, 0 - movs r3, 0 - bl sub_8045C78 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - bl sub_8043DFC - lsls r4, 16 - asrs r1, r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0811DE70 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - movs r2, 0 - bl sub_80440EC - b _0811DE8A - .align 2, 0 -_0811DE68: .4byte gUnknown_02024A60 -_0811DE6C: .4byte gUnknown_03004340 -_0811DE70: - ldr r2, _0811DE90 @ =gUnknown_02024A6A - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _0811DE94 @ =gPlayerParty - adds r0, r2 - bl sub_80324F8 - bl dp01_tbl3_exec_completed -_0811DE8A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811DE90: .4byte gUnknown_02024A6A -_0811DE94: .4byte gPlayerParty - thumb_func_end bx_t3_healthbar_update - - thumb_func_start sub_811DE98 -sub_811DE98: @ 811DE98 - push {r4-r6,lr} - ldr r6, _0811DF1C @ =gSprites - ldr r5, _0811DF20 @ =gUnknown_02024BE0 - ldr r4, _0811DF24 @ =gUnknown_02024A60 - ldrb r2, [r4] - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r3, 0x22 - ldrsh r1, [r0, r3] - movs r3, 0x26 - ldrsh r0, [r0, r3] - adds r1, r0 - cmp r1, 0xA0 - ble _0811DF14 - ldr r1, _0811DF28 @ =gUnknown_02024A6A - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0811DF2C @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl nullsub_9 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - ldr r1, _0811DF30 @ =gUnknown_03004340 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DB0 - bl dp01_tbl3_exec_completed -_0811DF14: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811DF1C: .4byte gSprites -_0811DF20: .4byte gUnknown_02024BE0 -_0811DF24: .4byte gUnknown_02024A60 -_0811DF28: .4byte gUnknown_02024A6A -_0811DF2C: .4byte gPlayerParty -_0811DF30: .4byte gUnknown_03004340 - thumb_func_end sub_811DE98 - - thumb_func_start sub_811DF34 -sub_811DF34: @ 811DF34 - push {r4-r6,lr} - ldr r6, _0811DF8C @ =gUnknown_02024A60 - ldrb r2, [r6] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _0811DF90 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0811DF84 - ldr r5, _0811DF94 @ =gUnknown_02024BE0 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0811DF98 @ =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldr r1, _0811DF9C @ =gUnknown_03004340 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DB0 - bl dp01_tbl3_exec_completed -_0811DF84: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811DF8C: .4byte gUnknown_02024A60 -_0811DF90: .4byte 0x02017810 -_0811DF94: .4byte gUnknown_02024BE0 -_0811DF98: .4byte gSprites -_0811DF9C: .4byte gUnknown_03004340 - thumb_func_end sub_811DF34 - - thumb_func_start sub_811DFA0 -sub_811DFA0: @ 811DFA0 - push {lr} - ldr r0, _0811DFB4 @ =gUnknown_03004210 - ldrh r0, [r0, 0x16] - cmp r0, 0 - bne _0811DFAE - bl dp01_tbl3_exec_completed -_0811DFAE: - pop {r0} - bx r0 - .align 2, 0 -_0811DFB4: .4byte gUnknown_03004210 - thumb_func_end sub_811DFA0 - - thumb_func_start bx_blink_t3 -bx_blink_t3: @ 811DFB8 - push {r4,lr} - ldr r1, _0811DFF4 @ =gUnknown_02024BE0 - ldr r0, _0811DFF8 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - ldr r2, _0811DFFC @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _0811E004 - movs r3, 0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - ldr r0, _0811E000 @ =gUnknown_02024E6D - strb r3, [r0] - bl dp01_tbl3_exec_completed - b _0811E02E - .align 2, 0 -_0811DFF4: .4byte gUnknown_02024BE0 -_0811DFF8: .4byte gUnknown_02024A60 -_0811DFFC: .4byte gSprites -_0811E000: .4byte gUnknown_02024E6D -_0811E004: - ldrh r0, [r4, 0x30] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0811E028 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0811E028: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_0811E02E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end bx_blink_t3 - - thumb_func_start sub_811E034 -sub_811E034: @ 811E034 - push {r4,lr} - ldr r2, _0811E084 @ =gSprites - ldr r0, _0811E088 @ =gUnknown_03004340 - ldr r4, _0811E08C @ =gUnknown_02024A60 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _0811E090 @ =SpriteCallbackDummy - cmp r1, r0 - bne _0811E07C - lsls r0, r3, 2 - ldr r1, _0811E094 @ =0x02017800 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0811E070 - adds r0, r3, 0 - adds r1, r3, 0 - adds r2, r3, 0 - movs r3, 0x6 - bl move_anim_start_t4 -_0811E070: - ldr r0, _0811E098 @ =gUnknown_03004330 - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, _0811E09C @ =sub_811E0A0 - str r0, [r1] -_0811E07C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811E084: .4byte gSprites -_0811E088: .4byte gUnknown_03004340 -_0811E08C: .4byte gUnknown_02024A60 -_0811E090: .4byte SpriteCallbackDummy -_0811E094: .4byte 0x02017800 -_0811E098: .4byte gUnknown_03004330 -_0811E09C: .4byte sub_811E0A0 - thumb_func_end sub_811E034 - - thumb_func_start sub_811E0A0 -sub_811E0A0: @ 811E0A0 - push {lr} - ldr r0, _0811E0C4 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0811E0C8 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0811E0BE - bl dp01_tbl3_exec_completed -_0811E0BE: - pop {r0} - bx r0 - .align 2, 0 -_0811E0C4: .4byte gUnknown_02024A60 -_0811E0C8: .4byte 0x02017810 - thumb_func_end sub_811E0A0 - - thumb_func_start sub_811E0CC -sub_811E0CC: @ 811E0CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r7, _0811E190 @ =gUnknown_02024A60 - ldrb r1, [r7] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r3, _0811E194 @ =0x02017810 - adds r2, r0, r3 - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0811E186 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, _0811E198 @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - ldr r0, _0811E19C @ =c3_0802FDF4 - movs r1, 0xA - bl CreateTask - ldr r0, _0811E1A0 @ =gUnknown_02024A6A - mov r8, r0 - ldrb r1, [r7] - lsls r0, r1, 1 - add r0, r8 - ldrh r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, _0811E1A4 @ =gPlayerParty - adds r0, r5 - bl sub_80324F8 - ldr r1, _0811E1A8 @ =gUnknown_02024BE0 - ldrb r0, [r7] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0811E1AC @ =gSprites - adds r0, r1 - movs r1, 0 - bl StartSpriteAnim - ldr r4, _0811E1B0 @ =gUnknown_03004340 - ldrb r1, [r7] - adds r0, r1, r4 - ldrb r0, [r0] - lsls r1, 1 - add r1, r8 - ldrh r1, [r1] - muls r1, r6 - adds r1, r5 - movs r2, 0 - bl sub_8045A5C - ldrb r0, [r7] - bl sub_804777C - ldrb r0, [r7] - adds r0, r4 - ldrb r0, [r0] - bl sub_8043DFC - ldrb r0, [r7] - bl sub_8031F88 - ldr r1, _0811E1B4 @ =gUnknown_03004330 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811E1B8 @ =sub_811E034 - str r1, [r0] -_0811E186: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811E190: .4byte gUnknown_02024A60 -_0811E194: .4byte 0x02017810 -_0811E198: .4byte 0x000027f9 -_0811E19C: .4byte c3_0802FDF4 -_0811E1A0: .4byte gUnknown_02024A6A -_0811E1A4: .4byte gPlayerParty -_0811E1A8: .4byte gUnknown_02024BE0 -_0811E1AC: .4byte gSprites -_0811E1B0: .4byte gUnknown_03004340 -_0811E1B4: .4byte gUnknown_03004330 -_0811E1B8: .4byte sub_811E034 - thumb_func_end sub_811E0CC - - thumb_func_start sub_811E1BC -sub_811E1BC: @ 811E1BC - push {r4-r6,lr} - ldr r4, _0811E234 @ =gUnknown_02024A60 - ldrb r2, [r4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - ldr r6, _0811E238 @ =0x02017810 - adds r0, r6 - ldrb r1, [r0] - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _0811E1EA - ldr r0, _0811E23C @ =gUnknown_02024A6A - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _0811E240 @ =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8141828 -_0811E1EA: - ldr r5, _0811E244 @ =gSprites - ldr r0, _0811E248 @ =gUnknown_0300434C - ldrb r2, [r4] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r5, 0 - adds r0, 0x1C - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, _0811E24C @ =SpriteCallbackDummy - cmp r1, r0 - bne _0811E22C - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0811E22C - adds r0, r3, r5 - bl DestroySprite - ldr r1, _0811E250 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811E254 @ =sub_811E0CC - str r1, [r0] -_0811E22C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811E234: .4byte gUnknown_02024A60 -_0811E238: .4byte 0x02017810 -_0811E23C: .4byte gUnknown_02024A6A -_0811E240: .4byte gPlayerParty -_0811E244: .4byte gSprites -_0811E248: .4byte gUnknown_0300434C -_0811E24C: .4byte SpriteCallbackDummy -_0811E250: .4byte gUnknown_03004330 -_0811E254: .4byte sub_811E0CC - thumb_func_end sub_811E1BC - - thumb_func_start sub_811E258 -sub_811E258: @ 811E258 - push {lr} - ldr r0, _0811E288 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _0811E284 - movs r0, 0x5A - bl m4aSongNumStop - ldr r3, _0811E28C @ =gMain - ldr r0, _0811E290 @ =0x0000043d - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, _0811E294 @ =gUnknown_030042D0 - ldr r0, [r0] - str r0, [r3] - ldr r0, _0811E298 @ =c2_8011A1C - bl SetMainCallback2 -_0811E284: - pop {r0} - bx r0 - .align 2, 0 -_0811E288: .4byte gReceivedRemoteLinkPlayers -_0811E28C: .4byte gMain -_0811E290: .4byte 0x0000043d -_0811E294: .4byte gUnknown_030042D0 -_0811E298: .4byte c2_8011A1C - thumb_func_end sub_811E258 - - thumb_func_start sub_811E29C -sub_811E29C: @ 811E29C - push {lr} - ldr r0, _0811E2CC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811E302 - ldr r0, _0811E2D0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0811E2E0 - bl sub_800832C - ldr r1, _0811E2D4 @ =gUnknown_03004330 - ldr r0, _0811E2D8 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811E2DC @ =sub_811E258 - str r1, [r0] - b _0811E302 - .align 2, 0 -_0811E2CC: .4byte gPaletteFade -_0811E2D0: .4byte gUnknown_020239F8 -_0811E2D4: .4byte gUnknown_03004330 -_0811E2D8: .4byte gUnknown_02024A60 -_0811E2DC: .4byte sub_811E258 -_0811E2E0: - movs r0, 0x5A - bl m4aSongNumStop - ldr r2, _0811E308 @ =gMain - ldr r0, _0811E30C @ =0x0000043d - adds r3, r2, r0 - ldrb r1, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldr r0, _0811E310 @ =gUnknown_030042D0 - ldr r0, [r0] - str r0, [r2] - ldr r0, [r2, 0x8] - bl SetMainCallback2 -_0811E302: - pop {r0} - bx r0 - .align 2, 0 -_0811E308: .4byte gMain -_0811E30C: .4byte 0x0000043d -_0811E310: .4byte gUnknown_030042D0 - thumb_func_end sub_811E29C - - thumb_func_start dp01_tbl3_exec_completed -dp01_tbl3_exec_completed: @ 811E314 - push {r4,lr} - sub sp, 0x4 - ldr r1, _0811E354 @ =gUnknown_03004330 - ldr r4, _0811E358 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811E35C @ =sub_811DA94 - str r1, [r0] - ldr r0, _0811E360 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0811E368 - bl GetMultiplayerId - mov r1, sp - strb r0, [r1] - movs r0, 0x2 - movs r1, 0x4 - mov r2, sp - bl dp01_prepare_buffer_wireless_probably - ldr r1, _0811E364 @ =gUnknown_02023A60 - ldrb r0, [r4] - lsls r0, 9 - adds r0, r1 - movs r1, 0x38 - strb r1, [r0] - b _0811E37A - .align 2, 0 -_0811E354: .4byte gUnknown_03004330 -_0811E358: .4byte gUnknown_02024A60 -_0811E35C: .4byte sub_811DA94 -_0811E360: .4byte gUnknown_020239F8 -_0811E364: .4byte gUnknown_02023A60 -_0811E368: - ldr r2, _0811E384 @ =gUnknown_02024A64 - ldr r1, _0811E388 @ =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_0811E37A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811E384: .4byte gUnknown_02024A64 -_0811E388: .4byte gBitTable - thumb_func_end dp01_tbl3_exec_completed - - thumb_func_start sub_811E38C -sub_811E38C: @ 811E38C - push {lr} - ldr r0, _0811E3B0 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0811E3B4 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0811E3AA - bl dp01_tbl3_exec_completed -_0811E3AA: - pop {r0} - bx r0 - .align 2, 0 -_0811E3B0: .4byte gUnknown_02024A60 -_0811E3B4: .4byte 0x02017810 - thumb_func_end sub_811E38C - - thumb_func_start sub_811E3B8 -sub_811E3B8: @ 811E3B8 - push {lr} - ldr r0, _0811E3DC @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0811E3E0 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0811E3D6 - bl dp01_tbl3_exec_completed -_0811E3D6: - pop {r0} - bx r0 - .align 2, 0 -_0811E3DC: .4byte gUnknown_02024A60 -_0811E3E0: .4byte 0x02017810 - thumb_func_end sub_811E3B8 - - thumb_func_start dp01t_00_3_getattr -dp01t_00_3_getattr: @ 811E3E4 - push {r4-r6,lr} - sub sp, 0x100 - movs r6, 0 - ldr r1, _0811E410 @ =gUnknown_02023A60 - ldr r0, _0811E414 @ =gUnknown_02024A60 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _0811E41C - ldr r0, _0811E418 @ =gUnknown_02024A6A - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - mov r1, sp - bl dp01_getattr_by_ch1_for_player_pokemon - adds r6, r0, 0 - b _0811E43E - .align 2, 0 -_0811E410: .4byte gUnknown_02023A60 -_0811E414: .4byte gUnknown_02024A60 -_0811E418: .4byte gUnknown_02024A6A -_0811E41C: - ldrb r4, [r1] - movs r5, 0 -_0811E420: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0811E436 - lsls r0, r5, 24 - lsrs r0, 24 - mov r2, sp - adds r1, r2, r6 - bl dp01_getattr_by_ch1_for_player_pokemon - adds r6, r0 -_0811E436: - lsrs r4, 1 - adds r5, 0x1 - cmp r5, 0x5 - ble _0811E420 -_0811E43E: - lsls r1, r6, 16 - lsrs r1, 16 - movs r0, 0x1 - mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl dp01_tbl3_exec_completed - add sp, 0x100 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end dp01t_00_3_getattr - - thumb_func_start dp01_getattr_by_ch1_for_player_pokemon -dp01_getattr_by_ch1_for_player_pokemon: @ 811E458 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x90 - adds r7, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r2, _0811E48C @ =gUnknown_02023A60 - ldr r3, _0811E490 @ =gUnknown_02024A60 - ldrb r0, [r3] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3B - bls _0811E482 - bl _0811EBEE -_0811E482: - lsls r0, 2 - ldr r1, _0811E494 @ =_0811E498 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811E48C: .4byte gUnknown_02023A60 -_0811E490: .4byte gUnknown_02024A60 -_0811E494: .4byte _0811E498 - .align 2, 0 -_0811E498: - .4byte _0811E588 - .4byte _0811E7AC - .4byte _0811E7BC - .4byte _0811E7CC - .4byte _0811E834 - .4byte _0811E834 - .4byte _0811E834 - .4byte _0811E834 - .4byte _0811E850 - .4byte _0811E88C - .4byte _0811E88C - .4byte _0811E88C - .4byte _0811E88C - .4byte _0811EBEE - .4byte _0811EBEE - .4byte _0811EBEE - .4byte _0811EBEE - .4byte _0811E8A8 - .4byte _0811E8B8 - .4byte _0811E8E8 - .4byte _0811E8F8 - .4byte _0811E908 - .4byte _0811E918 - .4byte _0811E928 - .4byte _0811E938 - .4byte _0811E948 - .4byte _0811E958 - .4byte _0811E968 - .4byte _0811E978 - .4byte _0811E988 - .4byte _0811E998 - .4byte _0811E9A8 - .4byte _0811E9F8 - .4byte _0811EA08 - .4byte _0811EA18 - .4byte _0811EA28 - .4byte _0811EA38 - .4byte _0811EA48 - .4byte _0811EA58 - .4byte _0811EA68 - .4byte _0811EA78 - .4byte _0811EAAC - .4byte _0811EABC - .4byte _0811EACC - .4byte _0811EADC - .4byte _0811EAEC - .4byte _0811EAFC - .4byte _0811EB0C - .4byte _0811EB1C - .4byte _0811EB3C - .4byte _0811EB4C - .4byte _0811EB5C - .4byte _0811EB6C - .4byte _0811EB7C - .4byte _0811EB8C - .4byte _0811EB9C - .4byte _0811EBAC - .4byte _0811EBBC - .4byte _0811EBCC - .4byte _0811EBDC -_0811E588: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0811E79C @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2E] - movs r6, 0 - add r0, sp, 0x24 - mov r9, r0 - movs r1, 0x3B - add r1, sp - mov r10, r1 - mov r2, sp - adds r2, 0x2B - str r2, [sp, 0x80] - mov r0, sp - adds r0, 0x2A - str r0, [sp, 0x7C] - mov r1, sp - adds r1, 0x68 - str r1, [sp, 0x8C] - adds r2, 0x5 - str r2, [sp, 0x84] - adds r0, 0x12 - str r0, [sp, 0x88] - mov r8, r4 - add r4, sp, 0xC -_0811E5D4: - adds r1, r6, 0 - adds r1, 0xD - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, 0 - adds r1, 0x11 - mov r0, r8 - bl GetMonData - mov r2, r9 - adds r1, r2, r6 - strb r0, [r1] - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _0811E5D4 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0811E79C @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - mov r1, r10 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - ldr r2, [sp, 0x80] - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x44] - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - mov r3, sp - movs r5, 0x1F - ands r0, r5 - ldrb r2, [r3, 0x14] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - mov r3, sp - movs r6, 0x1F - ands r0, r6 - lsls r0, 5 - ldrh r2, [r3, 0x14] - ldr r1, _0811E7A0 @ =0xfffffc1f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 2 - ldrb r2, [r3, 0x15] - movs r1, 0x7D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x15] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - movs r1, 0x1F - ands r1, r0 - lsls r1, 15 - ldr r0, [sp, 0x14] - ldr r2, _0811E7A4 @ =0xfff07fff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x14] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, 4 - ldrh r2, [r3, 0x16] - ldr r1, _0811E7A8 @ =0xfffffe0f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x16] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 1 - ldrb r2, [r3, 0x17] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x48] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - str r0, [sp, 0x4C] - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - ldr r1, [sp, 0x7C] - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, 0x28] - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2C] - adds r0, r4, 0 - movs r1, 0x3B - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2] - adds r0, r4, 0 - movs r1, 0x3C - bl GetMonData - mov r1, sp - strh r0, [r1, 0x4] - adds r0, r4, 0 - movs r1, 0x3D - bl GetMonData - mov r1, sp - strh r0, [r1, 0x6] - adds r0, r4, 0 - movs r1, 0x3E - bl GetMonData - mov r1, sp - strh r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0x3F - bl GetMonData - mov r1, sp - strh r0, [r1, 0xA] - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - mov r3, sp - movs r1, 0x1 - ands r0, r1 - lsls r0, 6 - ldrb r2, [r3, 0x17] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - mov r3, sp - lsls r0, 7 - ldrb r2, [r3, 0x17] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - str r0, [sp, 0x54] - adds r0, r4, 0 - movs r1, 0x2 - ldr r2, [sp, 0x8C] - bl GetMonData - ldr r0, [sp, 0x84] - ldr r1, [sp, 0x8C] - bl StringCopy10 - adds r0, r4, 0 - movs r1, 0x7 - ldr r2, [sp, 0x88] - bl GetMonData - mov r2, sp - movs r6, 0 -_0811E78C: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0x57 - bls _0811E78C - b _0811EBEE - .align 2, 0 -_0811E79C: .4byte gPlayerParty -_0811E7A0: .4byte 0xfffffc1f -_0811E7A4: .4byte 0xfff07fff -_0811E7A8: .4byte 0xfffffe0f -_0811E7AC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E7B8 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - b _0811EB26 - .align 2, 0 -_0811E7B8: .4byte gPlayerParty -_0811E7BC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E7C8 @ =gPlayerParty - adds r0, r1 - movs r1, 0xC - b _0811EB26 - .align 2, 0 -_0811E7C8: .4byte gPlayerParty -_0811E7CC: - movs r6, 0 - add r2, sp, 0x58 - mov r9, r2 - add r0, sp, 0x60 - mov r10, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0811E830 @ =gPlayerParty - adds r4, r1, r0 - mov r8, r9 -_0811E7E2: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, 0 - adds r1, 0x11 - adds r0, r4, 0 - bl GetMonData - mov r2, r10 - adds r1, r2, r6 - strb r0, [r1] - movs r0, 0x2 - add r8, r0 - adds r6, 0x1 - cmp r6, 0x3 - ble _0811E7E2 - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E830 @ =gPlayerParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - mov r1, r9 - strb r0, [r1, 0xC] - mov r2, r9 - movs r6, 0 -_0811E820: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0xF - bls _0811E820 - b _0811EBEE - .align 2, 0 -_0811E830: .4byte gPlayerParty -_0811E834: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E84C @ =gPlayerParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x9 - b _0811EB26 - .align 2, 0 -_0811E84C: .4byte gPlayerParty -_0811E850: - movs r6, 0 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r2, _0811E888 @ =gPlayerParty - mov r8, r2 -_0811E85C: - adds r1, r6, 0 - adds r1, 0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - cmp r6, 0x3 - ble _0811E85C - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E888 @ =gPlayerParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - b _0811EBEE - .align 2, 0 -_0811E888: .4byte gPlayerParty -_0811E88C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E8A4 @ =gPlayerParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x8 - b _0811EBE6 - .align 2, 0 -_0811E8A4: .4byte gPlayerParty -_0811E8A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E8B4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1 - b _0811E8C2 - .align 2, 0 -_0811E8B4: .4byte gPlayerParty -_0811E8B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E8E4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x19 -_0811E8C2: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - movs r6, 0x3 - b _0811EBEE - .align 2, 0 -_0811E8E4: .4byte gPlayerParty -_0811E8E8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E8F4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1A - b _0811EBE6 - .align 2, 0 -_0811E8F4: .4byte gPlayerParty -_0811E8F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E904 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1B - b _0811EBE6 - .align 2, 0 -_0811E904: .4byte gPlayerParty -_0811E908: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E914 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1C - b _0811EBE6 - .align 2, 0 -_0811E914: .4byte gPlayerParty -_0811E918: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E924 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1D - b _0811EBE6 - .align 2, 0 -_0811E924: .4byte gPlayerParty -_0811E928: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E934 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1E - b _0811EBE6 - .align 2, 0 -_0811E934: .4byte gPlayerParty -_0811E938: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E944 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1F - b _0811EBE6 - .align 2, 0 -_0811E944: .4byte gPlayerParty -_0811E948: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E954 @ =gPlayerParty - adds r0, r1 - movs r1, 0x20 - b _0811EBE6 - .align 2, 0 -_0811E954: .4byte gPlayerParty -_0811E958: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E964 @ =gPlayerParty - adds r0, r1 - movs r1, 0x22 - b _0811EBE6 - .align 2, 0 -_0811E964: .4byte gPlayerParty -_0811E968: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E974 @ =gPlayerParty - adds r0, r1 - movs r1, 0x23 - b _0811EBE6 - .align 2, 0 -_0811E974: .4byte gPlayerParty -_0811E978: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E984 @ =gPlayerParty - adds r0, r1 - movs r1, 0x24 - b _0811EBE6 - .align 2, 0 -_0811E984: .4byte gPlayerParty -_0811E988: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E994 @ =gPlayerParty - adds r0, r1 - movs r1, 0x25 - b _0811EBE6 - .align 2, 0 -_0811E994: .4byte gPlayerParty -_0811E998: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811E9A4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x26 - b _0811EBE6 - .align 2, 0 -_0811E9A4: .4byte gPlayerParty -_0811E9A8: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0811E9F4 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - strb r0, [r7, 0x1] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - strb r0, [r7, 0x2] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - strb r0, [r7, 0x3] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - strb r0, [r7, 0x4] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - strb r0, [r7, 0x5] - movs r6, 0x6 - b _0811EBEE - .align 2, 0 -_0811E9F4: .4byte gPlayerParty -_0811E9F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EA04 @ =gPlayerParty - adds r0, r1 - movs r1, 0x27 - b _0811EBE6 - .align 2, 0 -_0811EA04: .4byte gPlayerParty -_0811EA08: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EA14 @ =gPlayerParty - adds r0, r1 - movs r1, 0x28 - b _0811EBE6 - .align 2, 0 -_0811EA14: .4byte gPlayerParty -_0811EA18: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EA24 @ =gPlayerParty - adds r0, r1 - movs r1, 0x29 - b _0811EBE6 - .align 2, 0 -_0811EA24: .4byte gPlayerParty -_0811EA28: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EA34 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2A - b _0811EBE6 - .align 2, 0 -_0811EA34: .4byte gPlayerParty -_0811EA38: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EA44 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2B - b _0811EBE6 - .align 2, 0 -_0811EA44: .4byte gPlayerParty -_0811EA48: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EA54 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2C - b _0811EBE6 - .align 2, 0 -_0811EA54: .4byte gPlayerParty -_0811EA58: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EA64 @ =gPlayerParty - adds r0, r1 - movs r1, 0 - b _0811EA82 - .align 2, 0 -_0811EA64: .4byte gPlayerParty -_0811EA68: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EA74 @ =gPlayerParty - adds r0, r1 - movs r1, 0x9 - b _0811EB26 - .align 2, 0 -_0811EA74: .4byte gPlayerParty -_0811EA78: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EAA8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x37 -_0811EA82: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - lsrs r0, r1, 24 - strb r0, [r7, 0x3] - movs r6, 0x4 - b _0811EBEE - .align 2, 0 -_0811EAA8: .4byte gPlayerParty -_0811EAAC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EAB8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x38 - b _0811EBE6 - .align 2, 0 -_0811EAB8: .4byte gPlayerParty -_0811EABC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EAC8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x39 - b _0811EB26 - .align 2, 0 -_0811EAC8: .4byte gPlayerParty -_0811EACC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EAD8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3A - b _0811EB26 - .align 2, 0 -_0811EAD8: .4byte gPlayerParty -_0811EADC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EAE8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3B - b _0811EB26 - .align 2, 0 -_0811EAE8: .4byte gPlayerParty -_0811EAEC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EAF8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3C - b _0811EB26 - .align 2, 0 -_0811EAF8: .4byte gPlayerParty -_0811EAFC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EB08 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3D - b _0811EB26 - .align 2, 0 -_0811EB08: .4byte gPlayerParty -_0811EB0C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EB18 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3E - b _0811EB26 - .align 2, 0 -_0811EB18: .4byte gPlayerParty -_0811EB1C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EB38 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3F -_0811EB26: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - strb r0, [r7] - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r6, 0x2 - b _0811EBEE - .align 2, 0 -_0811EB38: .4byte gPlayerParty -_0811EB3C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EB48 @ =gPlayerParty - adds r0, r1 - movs r1, 0x16 - b _0811EBE6 - .align 2, 0 -_0811EB48: .4byte gPlayerParty -_0811EB4C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EB58 @ =gPlayerParty - adds r0, r1 - movs r1, 0x17 - b _0811EBE6 - .align 2, 0 -_0811EB58: .4byte gPlayerParty -_0811EB5C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EB68 @ =gPlayerParty - adds r0, r1 - movs r1, 0x18 - b _0811EBE6 - .align 2, 0 -_0811EB68: .4byte gPlayerParty -_0811EB6C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EB78 @ =gPlayerParty - adds r0, r1 - movs r1, 0x21 - b _0811EBE6 - .align 2, 0 -_0811EB78: .4byte gPlayerParty -_0811EB7C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EB88 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2F - b _0811EBE6 - .align 2, 0 -_0811EB88: .4byte gPlayerParty -_0811EB8C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EB98 @ =gPlayerParty - adds r0, r1 - movs r1, 0x30 - b _0811EBE6 - .align 2, 0 -_0811EB98: .4byte gPlayerParty -_0811EB9C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EBA8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x32 - b _0811EBE6 - .align 2, 0 -_0811EBA8: .4byte gPlayerParty -_0811EBAC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EBB8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x33 - b _0811EBE6 - .align 2, 0 -_0811EBB8: .4byte gPlayerParty -_0811EBBC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EBC8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x34 - b _0811EBE6 - .align 2, 0 -_0811EBC8: .4byte gPlayerParty -_0811EBCC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EBD8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x35 - b _0811EBE6 - .align 2, 0 -_0811EBD8: .4byte gPlayerParty -_0811EBDC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EC00 @ =gPlayerParty - adds r0, r1 - movs r1, 0x36 -_0811EBE6: - bl GetMonData - strb r0, [r7] - movs r6, 0x1 -_0811EBEE: - adds r0, r6, 0 - add sp, 0x90 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0811EC00: .4byte gPlayerParty - thumb_func_end dp01_getattr_by_ch1_for_player_pokemon - - thumb_func_start sub_811EC04 -sub_811EC04: @ 811EC04 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_811EC04 - - thumb_func_start sub_811EC10 -sub_811EC10: @ 811EC10 - push {r4,r5,lr} - ldr r1, _0811EC34 @ =gUnknown_02023A60 - ldr r0, _0811EC38 @ =gUnknown_02024A60 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _0811EC40 - ldr r0, _0811EC3C @ =gUnknown_02024A6A - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - bl sub_811EC68 - b _0811EC5E - .align 2, 0 -_0811EC34: .4byte gUnknown_02023A60 -_0811EC38: .4byte gUnknown_02024A60 -_0811EC3C: .4byte gUnknown_02024A6A -_0811EC40: - ldrb r4, [r1] - movs r5, 0 -_0811EC44: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0811EC52 - adds r0, r5, 0 - bl sub_811EC68 -_0811EC52: - lsrs r4, 1 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _0811EC44 -_0811EC5E: - bl dp01_tbl3_exec_completed - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_811EC10 - - thumb_func_start sub_811EC68 -sub_811EC68: @ 811EC68 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0811ECA0 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - ldr r2, _0811ECA4 @ =gUnknown_02023A63 - adds r3, r0, r2 - adds r6, r3, 0 - subs r1, r2, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r7, r2, 0 - cmp r0, 0x3B - bls _0811EC94 - bl _0811F62E -_0811EC94: - lsls r0, 2 - ldr r1, _0811ECA8 @ =_0811ECAC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811ECA0: .4byte gUnknown_02024A60 -_0811ECA4: .4byte gUnknown_02023A63 -_0811ECA8: .4byte _0811ECAC - .align 2, 0 -_0811ECAC: - .4byte _0811ED9C - .4byte _0811EF34 - .4byte _0811EF54 - .4byte _0811EF74 - .4byte _0811EFCC - .4byte _0811EFCC - .4byte _0811EFCC - .4byte _0811EFCC - .4byte _0811EFF4 - .4byte _0811F058 - .4byte _0811F058 - .4byte _0811F058 - .4byte _0811F058 - .4byte _0811F62E - .4byte _0811F62E - .4byte _0811F62E - .4byte _0811F62E - .4byte _0811F088 - .4byte _0811F0A8 - .4byte _0811F0C8 - .4byte _0811F0E8 - .4byte _0811F108 - .4byte _0811F128 - .4byte _0811F148 - .4byte _0811F168 - .4byte _0811F188 - .4byte _0811F1A8 - .4byte _0811F1C8 - .4byte _0811F1E8 - .4byte _0811F208 - .4byte _0811F228 - .4byte _0811F248 - .4byte _0811F2B8 - .4byte _0811F2D8 - .4byte _0811F2F8 - .4byte _0811F318 - .4byte _0811F338 - .4byte _0811F358 - .4byte _0811F378 - .4byte _0811F398 - .4byte _0811F3B8 - .4byte _0811F3D8 - .4byte _0811F3F8 - .4byte _0811F418 - .4byte _0811F438 - .4byte _0811F458 - .4byte _0811F478 - .4byte _0811F498 - .4byte _0811F4B8 - .4byte _0811F4D8 - .4byte _0811F4F8 - .4byte _0811F518 - .4byte _0811F538 - .4byte _0811F558 - .4byte _0811F578 - .4byte _0811F598 - .4byte _0811F5B8 - .4byte _0811F5D8 - .4byte _0811F5F8 - .4byte _0811F618 -_0811ED9C: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0811EF30 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - adds r2, r6, 0 - bl SetMonData - adds r2, r6, 0 - adds r2, 0x2E - adds r0, r4, 0 - movs r1, 0xC - bl SetMonData - movs r0, 0 - mov r8, r0 - movs r0, 0x3B - adds r0, r6 - mov r10, r0 - adds r0, r6, 0 - adds r0, 0x2B - str r0, [sp, 0x20] - adds r0, 0x19 - str r0, [sp, 0x28] - adds r0, 0x4 - str r0, [sp, 0x2C] - adds r0, 0x4 - str r0, [sp, 0x30] - subs r0, 0x22 - str r0, [sp, 0x1C] - subs r0, 0x2 - str r0, [sp, 0x18] - adds r0, 0x4 - str r0, [sp, 0x24] - adds r0, r6, 0x2 - str r0, [sp, 0x4] - adds r0, r6, 0x4 - str r0, [sp, 0x8] - adds r0, r6, 0x6 - str r0, [sp, 0xC] - adds r0, 0x2 - str r0, [sp, 0x10] - adds r0, 0x2 - str r0, [sp, 0x14] - mov r9, r4 - adds r7, r6, 0 - adds r7, 0x24 - adds r4, r6, 0 - adds r4, 0xC -_0811EE02: - mov r1, r8 - adds r1, 0xD - mov r0, r9 - adds r2, r4, 0 - bl SetMonData - mov r1, r8 - adds r1, 0x11 - mov r0, r9 - adds r2, r7, 0 - bl SetMonData - adds r7, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _0811EE02 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0811EF30 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - mov r2, r10 - bl SetMonData - adds r0, r4, 0 - movs r1, 0x20 - ldr r2, [sp, 0x20] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x19 - ldr r2, [sp, 0x28] - bl SetMonData - ldrb r0, [r6, 0x14] - lsls r0, 27 - lsrs r0, 27 - mov r1, sp - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x27 - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, 0x14] - lsls r0, 22 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x28 - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, 0x15] - lsls r0, 25 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x29 - mov r2, sp - bl SetMonData - mov r1, sp - ldr r0, [r6, 0x14] - lsls r0, 12 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2A - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, 0x16] - lsls r0, 23 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2B - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, 0x17] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2C - mov r2, sp - bl SetMonData - adds r0, r4, 0 - movs r1, 0 - ldr r2, [sp, 0x2C] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x37 - ldr r2, [sp, 0x30] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x38 - ldr r2, [sp, 0x1C] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x39 - ldr r2, [sp, 0x18] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3A - ldr r2, [sp, 0x24] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3B - ldr r2, [sp, 0x4] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3C - ldr r2, [sp, 0x8] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3D - ldr r2, [sp, 0xC] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3E - ldr r2, [sp, 0x10] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3F - ldr r2, [sp, 0x14] - bl SetMonData - b _0811F62E - .align 2, 0 -_0811EF30: .4byte gPlayerParty -_0811EF34: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EF4C @ =gPlayerParty - adds r0, r1 - ldr r1, _0811EF50 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0xB - bl SetMonData - b _0811F62E - .align 2, 0 -_0811EF4C: .4byte gPlayerParty -_0811EF50: .4byte gUnknown_02024A60 -_0811EF54: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EF6C @ =gPlayerParty - adds r0, r1 - ldr r1, _0811EF70 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0xC - bl SetMonData - b _0811F62E - .align 2, 0 -_0811EF6C: .4byte gPlayerParty -_0811EF70: .4byte gUnknown_02024A60 -_0811EF74: - movs r0, 0 - mov r8, r0 - movs r0, 0xC - adds r0, r3 - mov r9, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0811EFC8 @ =gPlayerParty - adds r7, r1, r0 - adds r6, r3, 0 - adds r6, 0x8 - adds r4, r3, 0 -_0811EF8E: - mov r1, r8 - adds r1, 0xD - adds r0, r7, 0 - adds r2, r4, 0 - bl SetMonData - mov r1, r8 - adds r1, 0x11 - adds r0, r7, 0 - adds r2, r6, 0 - bl SetMonData - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _0811EF8E - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EFC8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x15 - mov r2, r9 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811EFC8: .4byte gPlayerParty -_0811EFCC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811EFE8 @ =gPlayerParty - adds r0, r1 - ldr r3, _0811EFEC @ =gUnknown_02023A60 - ldr r1, _0811EFF0 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x9 - b _0811F070 - .align 2, 0 -_0811EFE8: .4byte gPlayerParty -_0811EFEC: .4byte gUnknown_02023A60 -_0811EFF0: .4byte gUnknown_02024A60 -_0811EFF4: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0811F050 @ =gPlayerParty - adds r4, r0 - ldr r5, _0811F054 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r2, 9 - adds r2, r7 - adds r0, r4, 0 - movs r1, 0x11 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x12 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x13 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x14 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F050: .4byte gPlayerParty -_0811F054: .4byte gUnknown_02024A60 -_0811F058: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F07C @ =gPlayerParty - adds r0, r1 - ldr r3, _0811F080 @ =gUnknown_02023A60 - ldr r1, _0811F084 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x8 -_0811F070: - adds r3, 0x3 - adds r2, r3 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F07C: .4byte gPlayerParty -_0811F080: .4byte gUnknown_02023A60 -_0811F084: .4byte gUnknown_02024A60 -_0811F088: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F0A0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F0A4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F0A0: .4byte gPlayerParty -_0811F0A4: .4byte gUnknown_02024A60 -_0811F0A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F0C0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F0C4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x19 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F0C0: .4byte gPlayerParty -_0811F0C4: .4byte gUnknown_02024A60 -_0811F0C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F0E0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F0E4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1A - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F0E0: .4byte gPlayerParty -_0811F0E4: .4byte gUnknown_02024A60 -_0811F0E8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F100 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F104 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1B - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F100: .4byte gPlayerParty -_0811F104: .4byte gUnknown_02024A60 -_0811F108: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F120 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F124 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1C - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F120: .4byte gPlayerParty -_0811F124: .4byte gUnknown_02024A60 -_0811F128: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F140 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F144 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1D - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F140: .4byte gPlayerParty -_0811F144: .4byte gUnknown_02024A60 -_0811F148: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F160 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F164 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1E - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F160: .4byte gPlayerParty -_0811F164: .4byte gUnknown_02024A60 -_0811F168: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F180 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F184 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1F - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F180: .4byte gPlayerParty -_0811F184: .4byte gUnknown_02024A60 -_0811F188: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F1A0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F1A4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x20 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F1A0: .4byte gPlayerParty -_0811F1A4: .4byte gUnknown_02024A60 -_0811F1A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F1C0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F1C4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x22 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F1C0: .4byte gPlayerParty -_0811F1C4: .4byte gUnknown_02024A60 -_0811F1C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F1E0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F1E4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x23 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F1E0: .4byte gPlayerParty -_0811F1E4: .4byte gUnknown_02024A60 -_0811F1E8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F200 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F204 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x24 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F200: .4byte gPlayerParty -_0811F204: .4byte gUnknown_02024A60 -_0811F208: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F220 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F224 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x25 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F220: .4byte gPlayerParty -_0811F224: .4byte gUnknown_02024A60 -_0811F228: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F240 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F244 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x26 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F240: .4byte gPlayerParty -_0811F244: .4byte gUnknown_02024A60 -_0811F248: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0811F2B0 @ =gPlayerParty - adds r4, r0 - ldr r5, _0811F2B4 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r2, 9 - adds r2, r7 - adds r0, r4, 0 - movs r1, 0x27 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x28 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x29 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2A - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2B - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x5 - adds r2, r0 - adds r0, r4, 0 - b _0811F368 - .align 2, 0 -_0811F2B0: .4byte gPlayerParty -_0811F2B4: .4byte gUnknown_02024A60 -_0811F2B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F2D0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F2D4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x27 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F2D0: .4byte gPlayerParty -_0811F2D4: .4byte gUnknown_02024A60 -_0811F2D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F2F0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F2F4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x28 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F2F0: .4byte gPlayerParty -_0811F2F4: .4byte gUnknown_02024A60 -_0811F2F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F310 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F314 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x29 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F310: .4byte gPlayerParty -_0811F314: .4byte gUnknown_02024A60 -_0811F318: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F330 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F334 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2A - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F330: .4byte gPlayerParty -_0811F334: .4byte gUnknown_02024A60 -_0811F338: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F350 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F354 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2B - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F350: .4byte gPlayerParty -_0811F354: .4byte gUnknown_02024A60 -_0811F358: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F370 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F374 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 -_0811F368: - movs r1, 0x2C - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F370: .4byte gPlayerParty -_0811F374: .4byte gUnknown_02024A60 -_0811F378: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F390 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F394 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F390: .4byte gPlayerParty -_0811F394: .4byte gUnknown_02024A60 -_0811F398: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F3B0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F3B4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x9 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F3B0: .4byte gPlayerParty -_0811F3B4: .4byte gUnknown_02024A60 -_0811F3B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F3D0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F3D4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x37 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F3D0: .4byte gPlayerParty -_0811F3D4: .4byte gUnknown_02024A60 -_0811F3D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F3F0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F3F4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x38 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F3F0: .4byte gPlayerParty -_0811F3F4: .4byte gUnknown_02024A60 -_0811F3F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F410 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F414 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x39 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F410: .4byte gPlayerParty -_0811F414: .4byte gUnknown_02024A60 -_0811F418: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F430 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F434 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3A - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F430: .4byte gPlayerParty -_0811F434: .4byte gUnknown_02024A60 -_0811F438: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F450 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F454 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3B - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F450: .4byte gPlayerParty -_0811F454: .4byte gUnknown_02024A60 -_0811F458: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F470 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F474 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3C - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F470: .4byte gPlayerParty -_0811F474: .4byte gUnknown_02024A60 -_0811F478: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F490 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F494 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3D - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F490: .4byte gPlayerParty -_0811F494: .4byte gUnknown_02024A60 -_0811F498: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F4B0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F4B4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3E - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F4B0: .4byte gPlayerParty -_0811F4B4: .4byte gUnknown_02024A60 -_0811F4B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F4D0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F4D4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3F - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F4D0: .4byte gPlayerParty -_0811F4D4: .4byte gUnknown_02024A60 -_0811F4D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F4F0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F4F4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x16 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F4F0: .4byte gPlayerParty -_0811F4F4: .4byte gUnknown_02024A60 -_0811F4F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F510 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F514 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x17 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F510: .4byte gPlayerParty -_0811F514: .4byte gUnknown_02024A60 -_0811F518: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F530 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F534 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x18 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F530: .4byte gPlayerParty -_0811F534: .4byte gUnknown_02024A60 -_0811F538: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F550 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F554 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x21 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F550: .4byte gPlayerParty -_0811F554: .4byte gUnknown_02024A60 -_0811F558: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F570 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F574 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2F - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F570: .4byte gPlayerParty -_0811F574: .4byte gUnknown_02024A60 -_0811F578: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F590 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F594 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x30 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F590: .4byte gPlayerParty -_0811F594: .4byte gUnknown_02024A60 -_0811F598: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F5B0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F5B4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x32 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F5B0: .4byte gPlayerParty -_0811F5B4: .4byte gUnknown_02024A60 -_0811F5B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F5D0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F5D4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x33 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F5D0: .4byte gPlayerParty -_0811F5D4: .4byte gUnknown_02024A60 -_0811F5D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F5F0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F5F4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x34 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F5F0: .4byte gPlayerParty -_0811F5F4: .4byte gUnknown_02024A60 -_0811F5F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F610 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F614 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x35 - bl SetMonData - b _0811F62E - .align 2, 0 -_0811F610: .4byte gPlayerParty -_0811F614: .4byte gUnknown_02024A60 -_0811F618: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0811F658 @ =gPlayerParty - adds r0, r1 - ldr r1, _0811F65C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x36 - bl SetMonData -_0811F62E: - ldr r2, _0811F660 @ =gUnknown_02024A6A - ldr r0, _0811F65C @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _0811F658 @ =gPlayerParty - adds r0, r2 - bl sub_80324F8 - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811F658: .4byte gPlayerParty -_0811F65C: .4byte gUnknown_02024A60 -_0811F660: .4byte gUnknown_02024A6A - thumb_func_end sub_811EC68 - - thumb_func_start sub_811F664 -sub_811F664: @ 811F664 - push {r4-r7,lr} - ldr r1, _0811F6C8 @ =gUnknown_02024A6A - ldr r7, _0811F6CC @ =gUnknown_02024A60 - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - adds r3, r1, 0 - muls r3, r0 - ldr r4, _0811F6D0 @ =gUnknown_02023A60 - lsls r2, 9 - adds r0, r4, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, _0811F6D4 @ =gPlayerParty - adds r0, r1 - adds r5, r3, r0 - movs r3, 0 - adds r0, r4, 0x2 - adds r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bcs _0811F6BC - adds r6, r4, 0 - adds r2, r7, 0 - adds r4, r0, 0 -_0811F69A: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, 9 - adds r0, 0x3 - adds r0, r3, r0 - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r2] - lsls r0, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r3, r0 - bcc _0811F69A -_0811F6BC: - bl dp01_tbl3_exec_completed - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811F6C8: .4byte gUnknown_02024A6A -_0811F6CC: .4byte gUnknown_02024A60 -_0811F6D0: .4byte gUnknown_02023A60 -_0811F6D4: .4byte gPlayerParty - thumb_func_end sub_811F664 - - thumb_func_start sub_811F6D8 -sub_811F6D8: @ 811F6D8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, _0811F7CC @ =gUnknown_02024A6A - mov r8, r0 - ldr r6, _0811F7D0 @ =gUnknown_02024A60 - ldrb r1, [r6] - lsls r0, r1, 1 - add r0, r8 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, _0811F7D4 @ =gPlayerParty - adds r0, r4 - bl sub_80318FC - ldrb r0, [r6] - lsls r0, 1 - add r0, r8 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl GetMonSpriteTemplate_803C56C - ldr r0, _0811F7D8 @ =gUnknown_02024E8C - mov r8, r0 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r6] - bl sub_8077F68 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r6] - bl sub_8079E90 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - adds r1, r5, 0 - adds r2, r4, 0 - bl CreateSprite - ldr r4, _0811F7DC @ =gUnknown_02024BE0 - ldrb r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r5, _0811F7E0 @ =gSprites - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0811F7E4 @ =0x0000ff10 - strh r1, [r0, 0x24] - ldrb r2, [r6] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x2E] - ldrb r3, [r6] - adds r0, r3, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r2, [r6] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0811F7E8 @ =gUnknown_02024E84 - adds r2, r1 - ldrb r1, [r2] - bl StartSpriteAnim - ldr r1, _0811F7EC @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811F7F0 @ =sub_811DDE8 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811F7CC: .4byte gUnknown_02024A6A -_0811F7D0: .4byte gUnknown_02024A60 -_0811F7D4: .4byte gPlayerParty -_0811F7D8: .4byte gUnknown_02024E8C -_0811F7DC: .4byte gUnknown_02024BE0 -_0811F7E0: .4byte gSprites -_0811F7E4: .4byte 0x0000ff10 -_0811F7E8: .4byte gUnknown_02024E84 -_0811F7EC: .4byte gUnknown_03004330 -_0811F7F0: .4byte sub_811DDE8 - thumb_func_end sub_811F6D8 - - thumb_func_start sub_811F7F4 -sub_811F7F4: @ 811F7F4 - push {r4-r6,lr} - ldr r5, _0811F84C @ =gUnknown_02024A60 - ldrb r0, [r5] - ldr r4, _0811F850 @ =gUnknown_02023A60 - lsls r1, r0, 9 - adds r6, r4, 0x2 - adds r1, r6 - ldrb r1, [r1] - bl sub_8032AA8 - ldr r2, _0811F854 @ =gUnknown_02024A6A - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r2 - lsls r0, 9 - adds r4, 0x1 - adds r0, r4 - ldrb r0, [r0] - strh r0, [r1] - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _0811F858 @ =gPlayerParty - adds r0, r2 - bl sub_80318FC - ldrb r0, [r5] - lsls r1, r0, 9 - adds r1, r6 - ldrb r1, [r1] - bl sub_811F864 - ldr r1, _0811F85C @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811F860 @ =sub_811E1BC - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811F84C: .4byte gUnknown_02024A60 -_0811F850: .4byte gUnknown_02023A60 -_0811F854: .4byte gUnknown_02024A6A -_0811F858: .4byte gPlayerParty -_0811F85C: .4byte gUnknown_03004330 -_0811F860: .4byte sub_811E1BC - thumb_func_end sub_811F7F4 - - thumb_func_start sub_811F864 -sub_811F864: @ 811F864 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8032AA8 - ldr r0, _0811F9A8 @ =gUnknown_02024A6A - lsls r2, r6, 1 - adds r2, r0 - ldr r0, _0811F9AC @ =gUnknown_02023A60 - lsls r1, r6, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - strh r0, [r2] - ldrh r1, [r2] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0811F9B0 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, _0811F9B4 @ =sub_80312F0 - bl object_new_hidden_with_callback - ldr r1, _0811F9B8 @ =gUnknown_0300434C - mov r9, r1 - add r9, r6 - mov r1, r9 - strb r0, [r1] - adds r0, r6, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl GetMonSpriteTemplate_803C56C - ldr r0, _0811F9BC @ =gUnknown_02024E8C - mov r10, r0 - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8077ABC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - bl sub_8077F68 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_8079E90 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r10 - adds r1, r5, 0 - adds r2, r4, 0 - bl CreateSprite - ldr r4, _0811F9C0 @ =gUnknown_02024BE0 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, _0811F9C4 @ =gSprites - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r6, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0811F9C8 @ =gUnknown_02024E84 - adds r6, r1 - ldrb r1, [r6] - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0811F9CC @ =SpriteCallbackDummy - str r1, [r0] - movs r0, 0 - movs r1, 0xFF - bl sub_8046400 - mov r1, r9 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2E] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811F9A8: .4byte gUnknown_02024A6A -_0811F9AC: .4byte gUnknown_02023A60 -_0811F9B0: .4byte gPlayerParty -_0811F9B4: .4byte sub_80312F0 -_0811F9B8: .4byte gUnknown_0300434C -_0811F9BC: .4byte gUnknown_02024E8C -_0811F9C0: .4byte gUnknown_02024BE0 -_0811F9C4: .4byte gSprites -_0811F9C8: .4byte gUnknown_02024E84 -_0811F9CC: .4byte SpriteCallbackDummy - thumb_func_end sub_811F864 - - thumb_func_start sub_811F9D0 -sub_811F9D0: @ 811F9D0 - push {r4-r6,lr} - ldr r1, _0811FA00 @ =gUnknown_02023A60 - ldr r6, _0811FA04 @ =gUnknown_02024A60 - ldrb r2, [r6] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r3, [r0] - cmp r3, 0 - bne _0811FA14 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _0811FA08 @ =0x02017810 - adds r0, r1 - strb r3, [r0, 0x4] - ldr r1, _0811FA0C @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811FA10 @ =sub_811FA5C - str r1, [r0] - b _0811FA4A - .align 2, 0 -_0811FA00: .4byte gUnknown_02023A60 -_0811FA04: .4byte gUnknown_02024A60 -_0811FA08: .4byte 0x02017810 -_0811FA0C: .4byte gUnknown_03004330 -_0811FA10: .4byte sub_811FA5C -_0811FA14: - ldr r5, _0811FA50 @ =gUnknown_02024BE0 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0811FA54 @ =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldr r1, _0811FA58 @ =gUnknown_03004340 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DB0 - bl dp01_tbl3_exec_completed -_0811FA4A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811FA50: .4byte gUnknown_02024BE0 -_0811FA54: .4byte gSprites -_0811FA58: .4byte gUnknown_03004340 - thumb_func_end sub_811F9D0 - - thumb_func_start sub_811FA5C -sub_811FA5C: @ 811FA5C - push {r4,r5,lr} - ldr r5, _0811FA78 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r4, _0811FA7C @ =0x02017810 - adds r3, r0, r4 - ldrb r0, [r3, 0x4] - cmp r0, 0 - beq _0811FA80 - cmp r0, 0x1 - beq _0811FAAC - b _0811FAD4 - .align 2, 0 -_0811FA78: .4byte gUnknown_02024A60 -_0811FA7C: .4byte 0x02017810 -_0811FA80: - lsls r0, r2, 2 - adds r1, r4, 0 - subs r1, 0x10 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0811FA9C - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0811FA9C: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _0811FAD4 -_0811FAAC: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0811FAD4 - strb r0, [r3, 0x4] - ldrb r2, [r5] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x1 - bl move_anim_start_t4 - ldr r1, _0811FADC @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811FAE0 @ =sub_811DF34 - str r1, [r0] -_0811FAD4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811FADC: .4byte gUnknown_03004330 -_0811FAE0: .4byte sub_811DF34 - thumb_func_end sub_811FA5C - - thumb_func_start sub_811FAE4 -sub_811FAE4: @ 811FAE4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, _0811FB14 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0811FB24 - ldr r6, _0811FB18 @ =gUnknown_02024A60 - ldrb r0, [r6] - bl battle_get_per_side_status - movs r1, 0x2 - ands r1, r0 - ldr r5, _0811FB1C @ =0x0000fff0 - cmp r1, 0 - beq _0811FB0A - movs r5, 0x10 -_0811FB0A: - ldr r4, _0811FB20 @ =gLinkPlayers - ldrb r0, [r6] - bl sub_803FC34 - b _0811FB34 - .align 2, 0 -_0811FB14: .4byte gUnknown_020239F8 -_0811FB18: .4byte gUnknown_02024A60 -_0811FB1C: .4byte 0x0000fff0 -_0811FB20: .4byte gLinkPlayers -_0811FB24: - movs r5, 0 - ldr r4, _0811FC08 @ =gLinkPlayers - bl GetMultiplayerId - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 -_0811FB34: - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r4, [r1, 0x13] - ldr r6, _0811FC0C @ =gUnknown_02024A60 - ldrb r1, [r6] - adds r0, r4, 0 - bl sub_8031AF4 - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl GetMonSpriteTemplate_803C5A0 - ldr r0, _0811FC10 @ =gUnknown_02024E8C - mov r8, r0 - lsls r5, 16 - movs r0, 0xA0 - lsls r0, 15 - adds r5, r0 - asrs r5, 16 - ldr r0, _0811FC14 @ =gTrainerBackPicCoords - lsls r4, 2 - adds r4, r0 - ldrb r0, [r4] - movs r4, 0x8 - subs r4, r0 - lsls r4, 18 - movs r0, 0xA0 - lsls r0, 15 - adds r4, r0 - asrs r4, 16 - ldrb r0, [r6] - bl sub_8079E90 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - adds r1, r5, 0 - adds r2, r4, 0 - bl CreateSprite - ldr r5, _0811FC18 @ =gUnknown_02024BE0 - ldrb r1, [r6] - adds r1, r5 - strb r0, [r1] - ldr r4, _0811FC1C @ =gSprites - ldrb r3, [r6] - adds r0, r3, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xF0 - strh r1, [r0, 0x24] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _0811FC20 @ =0x0000fffe - strh r1, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _0811FC24 @ =sub_80313A0 - str r1, [r0] - ldr r1, _0811FC28 @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811FC2C @ =sub_811DAE4 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811FC08: .4byte gLinkPlayers -_0811FC0C: .4byte gUnknown_02024A60 -_0811FC10: .4byte gUnknown_02024E8C -_0811FC14: .4byte gTrainerBackPicCoords -_0811FC18: .4byte gUnknown_02024BE0 -_0811FC1C: .4byte gSprites -_0811FC20: .4byte 0x0000fffe -_0811FC24: .4byte sub_80313A0 -_0811FC28: .4byte gUnknown_03004330 -_0811FC2C: .4byte sub_811DAE4 - thumb_func_end sub_811FAE4 - - thumb_func_start sub_811FC30 -sub_811FC30: @ 811FC30 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_811FC30 - - thumb_func_start sub_811FC3C -sub_811FC3C: @ 811FC3C - push {r4-r6,lr} - ldr r6, _0811FCC8 @ =gUnknown_02024BE0 - ldr r4, _0811FCCC @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _0811FCD0 @ =gSprites - adds r0, r5 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x23 - strh r1, [r0, 0x2E] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0811FCD4 @ =0x0000ffd8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0811FCD8 @ =sub_8078B34 - str r1, [r0] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0811FCDC @ =SpriteCallbackDummy - bl oamt_set_x3A_32 - ldr r1, _0811FCE0 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811FCE4 @ =sub_811DB1C - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811FCC8: .4byte gUnknown_02024BE0 -_0811FCCC: .4byte gUnknown_02024A60 -_0811FCD0: .4byte gSprites -_0811FCD4: .4byte 0x0000ffd8 -_0811FCD8: .4byte sub_8078B34 -_0811FCDC: .4byte SpriteCallbackDummy -_0811FCE0: .4byte gUnknown_03004330 -_0811FCE4: .4byte sub_811DB1C - thumb_func_end sub_811FC3C - - thumb_func_start sub_811FCE8 -sub_811FCE8: @ 811FCE8 - push {r4,r5,lr} - ldr r5, _0811FD2C @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r4, _0811FD30 @ =0x02017810 - adds r3, r0, r4 - ldrb r0, [r3, 0x4] - cmp r0, 0 - bne _0811FD34 - lsls r0, r2, 2 - adds r1, r4, 0 - subs r1, 0x10 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0811FD1A - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0811FD1A: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _0811FDAA - .align 2, 0 -_0811FD2C: .4byte gUnknown_02024A60 -_0811FD30: .4byte 0x02017810 -_0811FD34: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0811FDAA - strb r4, [r3, 0x4] - ldr r2, _0811FDB0 @ =gUnknown_02024A6A - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _0811FDB4 @ =gPlayerParty - adds r0, r2 - bl sub_80324F8 - movs r1, 0x40 - negs r1, r1 - movs r0, 0x10 - bl PlaySE12WithPanning - ldr r2, _0811FDB8 @ =gSprites - ldr r3, _0811FDBC @ =gUnknown_02024BE0 - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x30] - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x5 - strh r1, [r0, 0x32] - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _0811FDC0 @ =sub_80105EC - str r1, [r0] - ldr r1, _0811FDC4 @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811FDC8 @ =sub_811DE98 - str r1, [r0] -_0811FDAA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811FDB0: .4byte gUnknown_02024A6A -_0811FDB4: .4byte gPlayerParty -_0811FDB8: .4byte gSprites -_0811FDBC: .4byte gUnknown_02024BE0 -_0811FDC0: .4byte sub_80105EC -_0811FDC4: .4byte gUnknown_03004330 -_0811FDC8: .4byte sub_811DE98 - thumb_func_end sub_811FCE8 - - thumb_func_start sub_811FDCC -sub_811FDCC: @ 811FDCC - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_811FDCC - - thumb_func_start sub_811FDD8 -sub_811FDD8: @ 811FDD8 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_811FDD8 - - thumb_func_start sub_811FDE4 -sub_811FDE4: @ 811FDE4 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_811FDE4 - - thumb_func_start sub_811FDF0 -sub_811FDF0: @ 811FDF0 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_811FDF0 - - thumb_func_start sub_811FDFC -sub_811FDFC: @ 811FDFC - push {r4-r6,lr} - ldr r6, _0811FEE0 @ =gUnknown_02024A60 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - beq _0811FE0E - b _0811FF1E -_0811FE0E: - ldr r0, _0811FEE4 @ =gUnknown_02023A60 - mov r12, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r0, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, r12 - adds r1, 0x2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - ldr r5, _0811FEE8 @ =gUnknown_0202F7C4 - mov r1, r12 - adds r1, 0x3 - adds r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, _0811FEEC @ =gUnknown_0202F7BC - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x5 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r4, _0811FEF0 @ =gUnknown_0202F7B8 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r3, r1 - mov r1, r12 - adds r1, 0x8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 16 - orrs r3, r1 - mov r1, r12 - adds r1, 0x9 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 24 - orrs r3, r1 - str r3, [r4] - ldr r3, _0811FEF4 @ =gUnknown_0202F7BE - ldrb r1, [r6] - lsls r1, 9 - mov r2, r12 - adds r2, 0xA - adds r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, _0811FEF8 @ =gUnknown_0202F7C0 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0xC - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0xD - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r3, _0811FEFC @ =gUnknown_0202F7B4 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x10 - adds r2, r1 - str r2, [r3] - ldr r3, _0811FF00 @ =gUnknown_02024E70 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl sub_8031720 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0811FF04 - bl dp01_tbl3_exec_completed - b _0811FF1E - .align 2, 0 -_0811FEE0: .4byte gUnknown_02024A60 -_0811FEE4: .4byte gUnknown_02023A60 -_0811FEE8: .4byte gUnknown_0202F7C4 -_0811FEEC: .4byte gUnknown_0202F7BC -_0811FEF0: .4byte gUnknown_0202F7B8 -_0811FEF4: .4byte gUnknown_0202F7BE -_0811FEF8: .4byte gUnknown_0202F7C0 -_0811FEFC: .4byte gUnknown_0202F7B4 -_0811FF00: .4byte gUnknown_02024E70 -_0811FF04: - ldrb r1, [r6] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0811FF24 @ =0x02017810 - adds r0, r1 - strb r2, [r0, 0x4] - ldr r1, _0811FF28 @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _0811FF2C @ =sub_811FF30 - str r1, [r0] -_0811FF1E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0811FF24: .4byte 0x02017810 -_0811FF28: .4byte gUnknown_03004330 -_0811FF2C: .4byte sub_811FF30 - thumb_func_end sub_811FDFC - - thumb_func_start sub_811FF30 -sub_811FF30: @ 811FF30 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r2, _0811FF74 @ =gUnknown_02023A60 - ldr r5, _0811FF78 @ =gUnknown_02024A60 - ldrb r3, [r5] - lsls r1, r3, 9 - adds r0, r2, 0x1 - mov r9, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r6, r2, 0x2 - mov r8, r6 - adds r0, r1, r6 - ldrb r0, [r0] - lsls r0, 8 - orrs r4, r0 - adds r2, 0xB - adds r1, r2 - ldrb r7, [r1] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - ldr r6, _0811FF7C @ =0x02017810 - adds r0, r6 - ldrb r2, [r0, 0x4] - cmp r2, 0x1 - beq _0811FFBE - cmp r2, 0x1 - bgt _0811FF80 - cmp r2, 0 - beq _0811FF8A - b _08120088 - .align 2, 0 -_0811FF74: .4byte gUnknown_02023A60 -_0811FF78: .4byte gUnknown_02024A60 -_0811FF7C: .4byte 0x02017810 -_0811FF80: - cmp r2, 0x2 - beq _0811FFE4 - cmp r2, 0x3 - beq _08120050 - b _08120088 -_0811FF8A: - lsls r1, r3, 2 - adds r0, r6, 0 - subs r0, 0x10 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0xC - ands r0, r2 - cmp r0, 0x4 - bne _0811FFAE - movs r0, 0x8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r5] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0811FFAE: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08120088 -_0811FFBE: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08120088 - movs r0, 0 - bl sub_80326EC - adds r0, r4, 0 - bl move_anim_start_t1 - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08120088 -_0811FFE4: - ldr r0, _08120040 @ =gUnknown_0202F7AC - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08120044 @ =gUnknown_0202F7B1 - ldrb r0, [r0] - cmp r0, 0 - bne _08120088 - movs r0, 0x1 - bl sub_80326EC - ldrb r2, [r5] - lsls r0, r2, 2 - adds r4, r6, 0 - subs r4, 0x10 - adds r0, r4 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0812002C - cmp r7, 0x1 - bhi _0812002C - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl move_anim_start_t4 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0] - movs r1, 0x9 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_0812002C: - ldr r0, _08120048 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0812004C @ =0x02017810 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0, 0x4] - b _08120088 - .align 2, 0 -_08120040: .4byte gUnknown_0202F7AC -_08120044: .4byte gUnknown_0202F7B1 -_08120048: .4byte gUnknown_02024A60 -_0812004C: .4byte 0x02017810 -_08120050: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08120088 - bl sub_8031F24 - ldrb r0, [r5] - lsls r2, r0, 9 - mov r3, r9 - adds r1, r2, r3 - ldrb r1, [r1] - add r2, r8 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - bl sub_80324BC - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strb r4, [r0, 0x4] - bl dp01_tbl3_exec_completed -_08120088: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_811FF30 - - thumb_func_start sub_8120094 -sub_8120094: @ 8120094 - push {r4,lr} - sub sp, 0x4 - ldr r0, _081200D8 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _081200DC @ =gUnknown_030042A0 - strh r1, [r0] - ldr r4, _081200E0 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r0, 9 - ldr r1, _081200E4 @ =gUnknown_02023A62 - adds r0, r1 - ldrh r0, [r0] - bl sub_8120AA8 - ldr r0, _081200E8 @ =gUnknown_03004210 - ldr r1, _081200EC @ =gUnknown_020238CC - movs r2, 0xF - str r2, [sp] - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r1, _081200F0 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _081200F4 @ =sub_811DFA0 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081200D8: .4byte gUnknown_030042A4 -_081200DC: .4byte gUnknown_030042A0 -_081200E0: .4byte gUnknown_02024A60 -_081200E4: .4byte gUnknown_02023A62 -_081200E8: .4byte gUnknown_03004210 -_081200EC: .4byte gUnknown_020238CC -_081200F0: .4byte gUnknown_03004330 -_081200F4: .4byte sub_811DFA0 - thumb_func_end sub_8120094 - - thumb_func_start sub_81200F8 -sub_81200F8: @ 81200F8 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_81200F8 - - thumb_func_start sub_8120104 -sub_8120104: @ 8120104 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120104 - - thumb_func_start sub_8120110 -sub_8120110: @ 8120110 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120110 - - thumb_func_start sub_812011C -sub_812011C: @ 812011C - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_812011C - - thumb_func_start sub_8120128 -sub_8120128: @ 8120128 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120128 - - thumb_func_start sub_8120134 -sub_8120134: @ 8120134 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120134 - - thumb_func_start sub_8120140 -sub_8120140: @ 8120140 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120140 - - thumb_func_start sub_812014C -sub_812014C: @ 812014C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0 - bl load_gfxc_health_bar - ldr r3, _081201C4 @ =gUnknown_02023A60 - ldr r0, _081201C8 @ =gUnknown_02024A60 - mov r9, r0 - ldrb r4, [r0] - lsls r2, r4, 9 - adds r0, r3, 0x2 - adds r0, r2, r0 - ldrb r1, [r0] - adds r3, 0x3 - adds r2, r3 - ldrb r0, [r2] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - asrs r7, r1, 16 - ldr r0, _081201CC @ =0x00007fff - cmp r7, r0 - beq _081201DC - ldr r6, _081201D0 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r6 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, _081201D4 @ =gPlayerParty - adds r0, r4 - movs r1, 0x3A - bl GetMonData - mov r8, r0 - mov r1, r9 - ldrb r0, [r1] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, _081201D8 @ =gUnknown_03004340 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl sub_8043D84 - b _08120206 - .align 2, 0 -_081201C4: .4byte gUnknown_02023A60 -_081201C8: .4byte gUnknown_02024A60 -_081201CC: .4byte 0x00007fff -_081201D0: .4byte gUnknown_02024A6A -_081201D4: .4byte gPlayerParty -_081201D8: .4byte gUnknown_03004340 -_081201DC: - ldr r1, _08120224 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08120228 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, _0812022C @ =gUnknown_03004340 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - movs r3, 0 - bl sub_8043D84 -_08120206: - ldr r1, _08120230 @ =gUnknown_03004330 - ldr r0, _08120234 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _08120238 @ =bx_t3_healthbar_update - str r1, [r0] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08120224: .4byte gUnknown_02024A6A -_08120228: .4byte gPlayerParty -_0812022C: .4byte gUnknown_03004340 -_08120230: .4byte gUnknown_03004330 -_08120234: .4byte gUnknown_02024A60 -_08120238: .4byte bx_t3_healthbar_update - thumb_func_end sub_812014C - - thumb_func_start sub_812023C -sub_812023C: @ 812023C - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_812023C - - thumb_func_start sub_8120248 -sub_8120248: @ 8120248 - push {r4,lr} - ldr r4, _081202A0 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08120298 - ldr r0, _081202A4 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _081202A8 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _081202AC @ =gPlayerParty - adds r1, r2 - movs r2, 0x9 - bl sub_8045A5C - ldrb r0, [r4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, _081202B0 @ =0x02017810 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, _081202B4 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _081202B8 @ =sub_811E38C - str r1, [r0] -_08120298: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081202A0: .4byte gUnknown_02024A60 -_081202A4: .4byte gUnknown_03004340 -_081202A8: .4byte gUnknown_02024A6A -_081202AC: .4byte gPlayerParty -_081202B0: .4byte 0x02017810 -_081202B4: .4byte gUnknown_03004330 -_081202B8: .4byte sub_811E38C - thumb_func_end sub_8120248 - - thumb_func_start sub_81202BC -sub_81202BC: @ 81202BC - push {r4,r5,lr} - ldr r5, _08120314 @ =gUnknown_02024A60 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _0812030C - ldr r4, _08120318 @ =gUnknown_02023A60 - ldrb r3, [r5] - lsls r3, 9 - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - adds r2, r4, 0x4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 16 - orrs r1, r2 - adds r4, 0x5 - adds r3, r4 - ldrb r2, [r3] - lsls r2, 24 - orrs r1, r2 - bl move_anim_start_t2_for_situation - ldr r1, _0812031C @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _08120320 @ =sub_811E38C - str r1, [r0] -_0812030C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08120314: .4byte gUnknown_02024A60 -_08120318: .4byte gUnknown_02023A60 -_0812031C: .4byte gUnknown_03004330 -_08120320: .4byte sub_811E38C - thumb_func_end sub_81202BC - - thumb_func_start sub_8120324 -sub_8120324: @ 8120324 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120324 - - thumb_func_start sub_8120330 -sub_8120330: @ 8120330 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120330 - - thumb_func_start sub_812033C -sub_812033C: @ 812033C - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_812033C - - thumb_func_start sub_8120348 -sub_8120348: @ 8120348 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120348 - - thumb_func_start sub_8120354 -sub_8120354: @ 8120354 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120354 - - thumb_func_start sub_8120360 -sub_8120360: @ 8120360 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120360 - - thumb_func_start sub_812036C -sub_812036C: @ 812036C - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_812036C - - thumb_func_start sub_8120378 -sub_8120378: @ 8120378 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120378 - - thumb_func_start sub_8120384 -sub_8120384: @ 8120384 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120384 - - thumb_func_start sub_8120390 -sub_8120390: @ 8120390 - push {lr} - ldr r2, _081203A8 @ =gUnknown_020238C8 - ldrb r1, [r2] - movs r0, 0x80 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_081203A8: .4byte gUnknown_020238C8 - thumb_func_end sub_8120390 - - thumb_func_start sub_81203AC -sub_81203AC: @ 81203AC - push {lr} - ldr r3, _081203D8 @ =gUnknown_020238C8 - ldr r1, _081203DC @ =gUnknown_02023A60 - ldr r0, _081203E0 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x7F - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_081203D8: .4byte gUnknown_020238C8 -_081203DC: .4byte gUnknown_02023A60 -_081203E0: .4byte gUnknown_02024A60 - thumb_func_end sub_81203AC - - thumb_func_start sub_81203E4 -sub_81203E4: @ 81203E4 - push {lr} - ldr r2, _081203F8 @ =gUnknown_020238C8 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_081203F8: .4byte gUnknown_020238C8 - thumb_func_end sub_81203E4 - - thumb_func_start sub_81203FC -sub_81203FC: @ 81203FC - push {lr} - ldr r3, _08120420 @ =gUnknown_020238C8 - ldr r1, [r3] - lsls r1, 24 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 7 - ldrb r2, [r3] - movs r0, 0x7F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_08120420: .4byte gUnknown_020238C8 - thumb_func_end sub_81203FC - - thumb_func_start dp01t_29_3_blink -dp01t_29_3_blink: @ 8120424 - push {r4,lr} - ldr r3, _0812044C @ =gSprites - ldr r2, _08120450 @ =gUnknown_02024BE0 - ldr r4, _08120454 @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _08120458 - bl dp01_tbl3_exec_completed - b _08120482 - .align 2, 0 -_0812044C: .4byte gSprites -_08120450: .4byte gUnknown_02024BE0 -_08120454: .4byte gUnknown_02024A60 -_08120458: - ldr r1, _08120488 @ =gUnknown_02024E6D - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x30] - ldrb r0, [r4] - bl sub_8047858 - ldr r1, _0812048C @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08120490 @ =bx_blink_t3 - str r1, [r0] -_08120482: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08120488: .4byte gUnknown_02024E6D -_0812048C: .4byte gUnknown_03004330 -_08120490: .4byte bx_blink_t3 - thumb_func_end dp01t_29_3_blink - - thumb_func_start sub_8120494 -sub_8120494: @ 8120494 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120494 - - thumb_func_start sub_81204A0 -sub_81204A0: @ 81204A0 - push {r4,lr} - ldr r4, _081204DC @ =gUnknown_02024A60 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - movs r3, 0x3F - cmp r0, 0 - bne _081204B4 - movs r3, 0xC0 -_081204B4: - ldr r2, _081204E0 @ =gUnknown_02023A60 - ldrb r1, [r4] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - lsls r1, r3, 24 - asrs r1, 24 - bl PlaySE12WithPanning - bl dp01_tbl3_exec_completed - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081204DC: .4byte gUnknown_02024A60 -_081204E0: .4byte gUnknown_02023A60 - thumb_func_end sub_81204A0 - - thumb_func_start sub_81204E4 -sub_81204E4: @ 81204E4 - push {lr} - ldr r2, _0812050C @ =gUnknown_02023A60 - ldr r0, _08120510 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl PlayFanfare - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_0812050C: .4byte gUnknown_02023A60 -_08120510: .4byte gUnknown_02024A60 - thumb_func_end sub_81204E4 - - thumb_func_start sub_8120514 -sub_8120514: @ 8120514 - push {lr} - ldr r1, _08120548 @ =gUnknown_02024A6A - ldr r0, _0812054C @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08120550 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - negs r1, r1 - movs r2, 0x5 - bl PlayCry3 - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_08120548: .4byte gUnknown_02024A6A -_0812054C: .4byte gUnknown_02024A60 -_08120550: .4byte gPlayerParty - thumb_func_end sub_8120514 - - thumb_func_start dp01t_2E_3_battle_intro -dp01t_2E_3_battle_intro: @ 8120554 - push {lr} - ldr r1, _0812057C @ =gUnknown_02023A60 - ldr r0, _08120580 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl sub_80E43C0 - ldr r2, _08120584 @ =gUnknown_02024DE8 - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_0812057C: .4byte gUnknown_02023A60 -_08120580: .4byte gUnknown_02024A60 -_08120584: .4byte gUnknown_02024DE8 - thumb_func_end dp01t_2E_3_battle_intro - - thumb_func_start sub_8120588 -sub_8120588: @ 8120588 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r6, _081206DC @ =gUnknown_02024BE0 - ldr r7, _081206E0 @ =gUnknown_02024A60 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _081206E4 @ =gSprites - adds r0, r5 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x32 - strh r1, [r0, 0x2E] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _081206E8 @ =0x0000ffd8 - strh r1, [r0, 0x32] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _081206EC @ =sub_8078B34 - str r1, [r0] - ldrb r2, [r7] - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x38] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _081206F0 @ =sub_8030E38 - bl oamt_set_x3A_32 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, _081206F4 @ =0x0000d6f9 - bl AllocSpritePalette - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _081206F8 @ =gTrainerBackPicPaletteTable - mov r8, r0 - ldrb r0, [r7] - bl sub_803FC34 - ldr r2, _081206FC @ =gLinkPlayers - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x13] - lsls r0, 3 - add r0, r8 - ldr r0, [r0] - lsls r4, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - movs r2, 0x20 - bl LoadCompressedPalette - ldrb r0, [r7] - adds r0, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r4 - strb r0, [r1, 0x5] - ldr r0, _08120700 @ =sub_812071C - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08120704 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - ldrb r0, [r7] - strh r0, [r1, 0x8] - ldrb r3, [r7] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - ldr r2, _08120708 @ =0x02017810 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081206BA - ldr r0, _0812070C @ =gUnknown_02024E68 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldr r1, _08120710 @ =sub_8044CA0 - str r1, [r0] -_081206BA: - adds r2, 0x30 - ldrb r0, [r2, 0x9] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - ldr r1, _08120714 @ =gUnknown_03004330 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, _08120718 @ =nullsub_74 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081206DC: .4byte gUnknown_02024BE0 -_081206E0: .4byte gUnknown_02024A60 -_081206E4: .4byte gSprites -_081206E8: .4byte 0x0000ffd8 -_081206EC: .4byte sub_8078B34 -_081206F0: .4byte sub_8030E38 -_081206F4: .4byte 0x0000d6f9 -_081206F8: .4byte gTrainerBackPicPaletteTable -_081206FC: .4byte gLinkPlayers -_08120700: .4byte sub_812071C -_08120704: .4byte gTasks -_08120708: .4byte 0x02017810 -_0812070C: .4byte gUnknown_02024E68 -_08120710: .4byte sub_8044CA0 -_08120714: .4byte gUnknown_03004330 -_08120718: .4byte nullsub_74 - thumb_func_end sub_8120588 - - thumb_func_start sub_812071C -sub_812071C: @ 812071C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, _08120744 @ =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x17 - bgt _08120748 - adds r0, r2, 0x1 - strh r0, [r1, 0xA] - b _08120804 - .align 2, 0 -_08120744: .4byte gTasks -_08120748: - ldr r7, _08120788 @ =gUnknown_02024A60 - ldrb r0, [r7] - mov r9, r0 - ldrh r0, [r1, 0x8] - strb r0, [r7] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08120768 - ldr r0, _0812078C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08120798 -_08120768: - ldr r0, _08120790 @ =gUnknown_02023A60 - ldrb r1, [r7] - lsls r2, r1, 9 - adds r0, 0x1 - adds r2, r0 - ldr r0, _08120794 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, 0 - bl sub_811F864 - b _081207EC - .align 2, 0 -_08120788: .4byte gUnknown_02024A60 -_0812078C: .4byte gUnknown_020239F8 -_08120790: .4byte gUnknown_02023A60 -_08120794: .4byte gUnknown_02024A6A -_08120798: - ldr r4, _08120810 @ =gUnknown_02023A60 - ldrb r0, [r7] - lsls r1, r0, 9 - adds r4, 0x1 - adds r1, r4 - ldr r5, _08120814 @ =gUnknown_02024A6A - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_811F864 - ldrb r0, [r7] - movs r6, 0x2 - eors r0, r6 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, 9 - adds r1, r4 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r1, [r7] - lsls r0, r1, 1 - adds r0, r5 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _08120818 @ =gPlayerParty - adds r0, r2 - bl sub_80318FC - ldrb r0, [r7] - movs r1, 0 - bl sub_811F864 - ldrb r0, [r7] - eors r0, r6 - strb r0, [r7] -_081207EC: - ldr r1, _0812081C @ =gUnknown_03004330 - ldr r2, _08120820 @ =gUnknown_02024A60 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _08120824 @ =sub_811DCA0 - str r1, [r0] - mov r3, r9 - strb r3, [r2] - mov r0, r8 - bl DestroyTask -_08120804: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08120810: .4byte gUnknown_02023A60 -_08120814: .4byte gUnknown_02024A6A -_08120818: .4byte gPlayerParty -_0812081C: .4byte gUnknown_03004330 -_08120820: .4byte gUnknown_02024A60 -_08120824: .4byte sub_811DCA0 - thumb_func_end sub_812071C - - thumb_func_start dp01t_30_3_80EB11C -dp01t_30_3_80EB11C: @ 8120828 - push {r4-r6,lr} - ldr r1, _08120850 @ =gUnknown_02023A60 - ldr r0, _08120854 @ =gUnknown_02024A60 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08120858 - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08120858 - bl dp01_tbl3_exec_completed - b _081208C0 - .align 2, 0 -_08120850: .4byte gUnknown_02023A60 -_08120854: .4byte gUnknown_02024A60 -_08120858: - ldr r5, _081208C8 @ =gUnknown_02024A60 - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r6, _081208CC @ =0x02017810 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r5] - lsls r3, r0, 9 - ldr r4, _081208D0 @ =gUnknown_02023A64 - adds r1, r3, r4 - subs r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, 0x2 - adds r3, r4 - ldrb r3, [r3] - bl sub_8044804 - ldr r2, _081208D4 @ =gUnknown_02024E68 - ldrb r1, [r5] - adds r1, r2 - movs r2, 0 - strb r0, [r1] - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strb r2, [r0, 0x5] - ldrb r1, [r5] - lsls r0, r1, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _081208B4 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5D - strb r1, [r0, 0x5] -_081208B4: - ldr r0, _081208D8 @ =gUnknown_03004330 - ldrb r1, [r5] - lsls r1, 2 - adds r1, r0 - ldr r0, _081208DC @ =sub_81208E0 - str r0, [r1] -_081208C0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081208C8: .4byte gUnknown_02024A60 -_081208CC: .4byte 0x02017810 -_081208D0: .4byte gUnknown_02023A64 -_081208D4: .4byte gUnknown_02024E68 -_081208D8: .4byte gUnknown_03004330 -_081208DC: .4byte sub_81208E0 - thumb_func_end dp01t_30_3_80EB11C - - thumb_func_start sub_81208E0 -sub_81208E0: @ 81208E0 - push {r4,lr} - ldr r4, _08120918 @ =gUnknown_02024A60 - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r3, _0812091C @ =0x02017810 - adds r0, r3 - ldrb r1, [r0, 0x5] - adds r2, r1, 0x1 - strb r2, [r0, 0x5] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x5C - bls _08120910 - ldrb r0, [r4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r0, 0 - strb r0, [r1, 0x5] - bl dp01_tbl3_exec_completed -_08120910: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08120918: .4byte gUnknown_02024A60 -_0812091C: .4byte 0x02017810 - thumb_func_end sub_81208E0 - - thumb_func_start sub_8120920 -sub_8120920: @ 8120920 - push {lr} - ldr r0, _08120958 @ =gUnknown_02024A60 - ldrb r3, [r0] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - ldr r1, _0812095C @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812094E - ldr r2, _08120960 @ =gTasks - ldr r0, _08120964 @ =gUnknown_02024E68 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _08120968 @ =sub_8044CA0 - str r1, [r0] -_0812094E: - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_08120958: .4byte gUnknown_02024A60 -_0812095C: .4byte 0x02017810 -_08120960: .4byte gTasks -_08120964: .4byte gUnknown_02024E68 -_08120968: .4byte sub_8044CA0 - thumb_func_end sub_8120920 - - thumb_func_start sub_812096C -sub_812096C: @ 812096C - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_812096C - - thumb_func_start sub_8120978 -sub_8120978: @ 8120978 - push {r4,lr} - ldr r4, _081209C8 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl sub_8078874 - lsls r0, 24 - cmp r0, 0 - beq _081209BE - ldr r3, _081209CC @ =gSprites - ldr r0, _081209D0 @ =gUnknown_02024BE0 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldr r0, _081209D4 @ =gUnknown_02023A60 - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - adds r2, 0x3E - movs r0, 0x1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl sub_8031F88 -_081209BE: - bl dp01_tbl3_exec_completed - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081209C8: .4byte gUnknown_02024A60 -_081209CC: .4byte gSprites -_081209D0: .4byte gUnknown_02024BE0 -_081209D4: .4byte gUnknown_02023A60 - thumb_func_end sub_8120978 - - thumb_func_start sub_81209D8 -sub_81209D8: @ 81209D8 - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, _08120A1C @ =gUnknown_02024A60 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08120A30 - ldr r5, _08120A20 @ =gUnknown_02023A60 - ldrb r2, [r6] - lsls r1, r2, 9 - adds r0, r5, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, 0x3 - adds r1, r5 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, 0 - adds r1, r2, 0 - bl move_anim_start_t3 - lsls r0, 24 - cmp r0, 0 - beq _08120A24 - bl dp01_tbl3_exec_completed - b _08120A30 - .align 2, 0 -_08120A1C: .4byte gUnknown_02024A60 -_08120A20: .4byte gUnknown_02023A60 -_08120A24: - ldr r0, _08120A38 @ =gUnknown_03004330 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, _08120A3C @ =sub_811E3B8 - str r0, [r1] -_08120A30: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08120A38: .4byte gUnknown_03004330 -_08120A3C: .4byte sub_811E3B8 - thumb_func_end sub_81209D8 - - thumb_func_start sub_8120A40 -sub_8120A40: @ 8120A40 - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120A40 - - thumb_func_start sub_8120A4C -sub_8120A4C: @ 8120A4C - push {lr} - bl dp01_tbl3_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8120A4C - - thumb_func_start sub_8120A58 -sub_8120A58: @ 8120A58 - push {r4,lr} - ldr r2, _08120A90 @ =gUnknown_02024D26 - ldr r1, _08120A94 @ =gUnknown_02023A60 - ldr r4, _08120A98 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0x5 - bl FadeOutMapMusic - movs r0, 0x3 - bl BeginFastPaletteFade - bl dp01_tbl3_exec_completed - ldr r1, _08120A9C @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08120AA0 @ =sub_811E29C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08120A90: .4byte gUnknown_02024D26 -_08120A94: .4byte gUnknown_02023A60 -_08120A98: .4byte gUnknown_02024A60 -_08120A9C: .4byte gUnknown_03004330 -_08120AA0: .4byte sub_811E29C - thumb_func_end sub_8120A58 - - thumb_func_start nullsub_75 -nullsub_75: @ 8120AA4 - bx lr - thumb_func_end nullsub_75 - - thumb_func_start sub_8120AA8 -sub_8120AA8: @ 8120AA8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r7, r0, 16 - movs r6, 0 - ldr r5, _08120B70 @ =gUnknown_02039270 - ldr r4, _08120B74 @ =gUnknown_02024A60 - ldrb r1, [r4] - lsls r1, 9 - ldr r0, _08120B78 @ =gUnknown_02023A64 - adds r1, r0 - str r1, [r5] - ldr r2, _08120B7C @ =gUnknown_02024C04 - ldrh r0, [r1, 0x4] - strh r0, [r2] - ldr r2, _08120B80 @ =byte_2024C06 - ldrb r0, [r1, 0x6] - strb r0, [r2] - ldr r3, _08120B84 @ =0x02000000 - ldrb r0, [r1, 0x7] - mov r8, r0 - ldr r2, _08120B88 @ =0x00016003 - adds r0, r3, r2 - mov r2, r8 - strb r2, [r0] - ldrb r0, [r1, 0x8] - mov r8, r0 - ldr r2, _08120B8C @ =0x0001605e - adds r0, r3, r2 - mov r2, r8 - strb r2, [r0] - ldrb r0, [r1, 0x9] - mov r8, r0 - ldr r2, _08120B90 @ =0x000160c1 - adds r0, r3, r2 - mov r2, r8 - strb r2, [r0] - ldr r2, _08120B94 @ =gUnknown_02024C0B - ldrb r0, [r1, 0xA] - strb r0, [r2] - ldrb r1, [r1, 0xB] - ldr r2, _08120B98 @ =0x000160a0 - adds r0, r3, r2 - strb r1, [r0] - movs r2, 0 - mov r9, r3 - ldr r3, _08120B9C @ =gUnknown_030041C0 - mov r10, r3 - ldr r3, _08120BA0 @ =gUnknown_0203926C -_08120B10: - adds r0, r2, r3 - ldr r1, [r5] - adds r1, 0xC - adds r1, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x3 - ble _08120B10 - movs r2, 0 - ldr r0, _08120B9C @ =gUnknown_030041C0 - mov r8, r0 - ldr r3, _08120B70 @ =gUnknown_02039270 - ldr r1, _08120BA4 @ =gUnknown_03004290 - mov r12, r1 - ldr r5, _08120BA8 @ =gUnknown_030042B0 -_08120B30: - mov r0, r8 - adds r1, r2, r0 - ldr r0, [r3] - adds r0, 0x10 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - mov r0, r12 - adds r1, r2, r0 - ldr r0, [r3] - adds r0, 0x20 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r2, r5 - ldr r0, [r3] - adds r0, 0x30 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0xF - ble _08120B30 - cmp r7, 0x5 - bls _08120B64 - b _08120F50 -_08120B64: - lsls r0, r7, 2 - ldr r1, _08120BAC @ =_08120BB0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08120B70: .4byte gUnknown_02039270 -_08120B74: .4byte gUnknown_02024A60 -_08120B78: .4byte gUnknown_02023A64 -_08120B7C: .4byte gUnknown_02024C04 -_08120B80: .4byte byte_2024C06 -_08120B84: .4byte 0x02000000 -_08120B88: .4byte 0x00016003 -_08120B8C: .4byte 0x0001605e -_08120B90: .4byte 0x000160c1 -_08120B94: .4byte gUnknown_02024C0B -_08120B98: .4byte 0x000160a0 -_08120B9C: .4byte gUnknown_030041C0 -_08120BA0: .4byte gUnknown_0203926C -_08120BA4: .4byte gUnknown_03004290 -_08120BA8: .4byte gUnknown_030042B0 -_08120BAC: .4byte _08120BB0 - .align 2, 0 -_08120BB0: - .4byte _08120BC8 - .4byte _08120C40 - .4byte _08120CCC - .4byte _08120D5C - .4byte _08120DE8 - .4byte _08120E50 -_08120BC8: - ldr r0, _08120BEC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08120C00 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08120BF8 - movs r0, 0x40 - ands r0, r1 - ldr r6, _08120BF0 @ =gUnknown_084005C7 - cmp r0, 0 - bne _08120BE8 - b _08120F70 -_08120BE8: - ldr r6, _08120BF4 @ =gUnknown_084005DB - b _08120F70 - .align 2, 0 -_08120BEC: .4byte gUnknown_020239F8 -_08120BF0: .4byte gUnknown_084005C7 -_08120BF4: .4byte gUnknown_084005DB -_08120BF8: - ldr r6, _08120BFC @ =gUnknown_084005AA - b _08120F70 - .align 2, 0 -_08120BFC: .4byte gUnknown_084005AA -_08120C00: - movs r0, 0x80 - lsls r0, 6 - ands r0, r1 - cmp r0, 0 - beq _08120C14 - ldr r6, _08120C10 @ =gUnknown_08400568 - b _08120F70 - .align 2, 0 -_08120C10: .4byte gUnknown_08400568 -_08120C14: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08120C24 - ldr r6, _08120C20 @ =gUnknown_08400590 - b _08120F70 - .align 2, 0 -_08120C20: .4byte gUnknown_08400590 -_08120C24: - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - ldr r6, _08120C38 @ =gUnknown_08400555 - cmp r0, 0 - bne _08120C32 - b _08120F70 -_08120C32: - ldr r6, _08120C3C @ =gUnknown_0840057B - b _08120F70 - .align 2, 0 -_08120C38: .4byte gUnknown_08400555 -_08120C3C: .4byte gUnknown_0840057B -_08120C40: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08120C7C - ldr r0, _08120C68 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08120C74 - movs r0, 0x40 - ands r0, r1 - ldr r6, _08120C6C @ =gUnknown_084006A4 - cmp r0, 0 - bne _08120C64 - b _08120F70 -_08120C64: - ldr r6, _08120C70 @ =gUnknown_084006F1 - b _08120F70 - .align 2, 0 -_08120C68: .4byte gUnknown_020239F8 -_08120C6C: .4byte gUnknown_084006A4 -_08120C70: .4byte gUnknown_084006F1 -_08120C74: - ldr r6, _08120C78 @ =gUnknown_0840069C - b _08120F70 - .align 2, 0 -_08120C78: .4byte gUnknown_0840069C -_08120C7C: - ldr r0, _08120C94 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08120CB4 - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08120C9C - ldr r6, _08120C98 @ =gUnknown_0840065C - b _08120F70 - .align 2, 0 -_08120C94: .4byte gUnknown_020239F8 -_08120C98: .4byte gUnknown_0840065C -_08120C9C: - movs r0, 0x2 - ands r0, r1 - ldr r6, _08120CAC @ =gUnknown_08400608 - cmp r0, 0 - bne _08120CA8 - b _08120F70 -_08120CA8: - ldr r6, _08120CB0 @ =gUnknown_08400645 - b _08120F70 - .align 2, 0 -_08120CAC: .4byte gUnknown_08400608 -_08120CB0: .4byte gUnknown_08400645 -_08120CB4: - movs r0, 0x2 - ands r0, r1 - ldr r6, _08120CC4 @ =gUnknown_084005F5 - cmp r0, 0 - bne _08120CC0 - b _08120F70 -_08120CC0: - ldr r6, _08120CC8 @ =gUnknown_08400635 - b _08120F70 - .align 2, 0 -_08120CC4: .4byte gUnknown_084005F5 -_08120CC8: .4byte gUnknown_08400635 -_08120CCC: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08120D24 - ldr r0, _08120CE8 @ =0x02000000 - ldr r1, _08120CEC @ =0x000160c1 - adds r0, r1 - ldrb r2, [r0] - cmp r2, 0 - bne _08120CF4 - ldr r6, _08120CF0 @ =gUnknown_08400709 - b _08120F70 - .align 2, 0 -_08120CE8: .4byte 0x02000000 -_08120CEC: .4byte 0x000160c1 -_08120CF0: .4byte gUnknown_08400709 -_08120CF4: - cmp r2, 0x1 - beq _08120D04 - ldr r0, _08120D08 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08120D10 -_08120D04: - ldr r6, _08120D0C @ =gUnknown_08400727 - b _08120F70 - .align 2, 0 -_08120D08: .4byte gUnknown_020239F8 -_08120D0C: .4byte gUnknown_08400727 -_08120D10: - ldr r6, _08120D1C @ =gUnknown_08400749 - cmp r2, 0x2 - beq _08120D18 - b _08120F70 -_08120D18: - ldr r6, _08120D20 @ =gUnknown_08400736 - b _08120F70 - .align 2, 0 -_08120D1C: .4byte gUnknown_08400749 -_08120D20: .4byte gUnknown_08400736 -_08120D24: - ldr r0, _08120D44 @ =gTrainerBattleOpponent - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 4 - cmp r1, r0 - bne _08120D54 - ldr r0, _08120D48 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - ldr r6, _08120D4C @ =gUnknown_08400771 - cmp r0, 0 - bne _08120D40 - b _08120F70 -_08120D40: - ldr r6, _08120D50 @ =gUnknown_08400781 - b _08120F70 - .align 2, 0 -_08120D44: .4byte gTrainerBattleOpponent -_08120D48: .4byte gUnknown_020239F8 -_08120D4C: .4byte gUnknown_08400771 -_08120D50: .4byte gUnknown_08400781 -_08120D54: - ldr r6, _08120D58 @ =gUnknown_0840075E - b _08120F70 - .align 2, 0 -_08120D58: .4byte gUnknown_0840075E -_08120D5C: - ldr r0, _08120D88 @ =0x00016003 - add r0, r9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08120DB8 - ldr r0, _08120D8C @ =0x000160c1 - add r0, r9 - ldrb r3, [r0] - cmp r3, 0 - beq _08120D82 - ldr r0, _08120D90 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08120D98 -_08120D82: - ldr r6, _08120D94 @ =gUnknown_084006B3 - b _08120F70 - .align 2, 0 -_08120D88: .4byte 0x00016003 -_08120D8C: .4byte 0x000160c1 -_08120D90: .4byte gUnknown_020239F8 -_08120D94: .4byte gUnknown_084006B3 -_08120D98: - cmp r3, 0x1 - bne _08120DA4 - ldr r6, _08120DA0 @ =gUnknown_084006BB - b _08120F70 - .align 2, 0 -_08120DA0: .4byte gUnknown_084006BB -_08120DA4: - ldr r6, _08120DB0 @ =gUnknown_084006D5 - cmp r3, 0x2 - beq _08120DAC - b _08120F70 -_08120DAC: - ldr r6, _08120DB4 @ =gUnknown_084006C6 - b _08120F70 - .align 2, 0 -_08120DB0: .4byte gUnknown_084006D5 -_08120DB4: .4byte gUnknown_084006C6 -_08120DB8: - ldr r0, _08120DD4 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08120DE0 - movs r0, 0x40 - ands r0, r1 - ldr r6, _08120DD8 @ =gUnknown_0840067C - cmp r0, 0 - bne _08120DD0 - b _08120F70 -_08120DD0: - ldr r6, _08120DDC @ =gUnknown_0840068C - b _08120F70 - .align 2, 0 -_08120DD4: .4byte gUnknown_020239F8 -_08120DD8: .4byte gUnknown_0840067C -_08120DDC: .4byte gUnknown_0840068C -_08120DE0: - ldr r6, _08120DE4 @ =gUnknown_08400622 - b _08120F70 - .align 2, 0 -_08120DE4: .4byte gUnknown_08400622 -_08120DE8: - mov r0, r10 - bl sub_8121D1C - ldr r0, _08120E14 @ =gUnknown_02039270 - ldr r2, [r0] - ldrh r1, [r2] - movs r0, 0xB1 - lsls r0, 1 - cmp r1, r0 - bls _08120E28 - ldr r0, _08120E18 @ =gUnknown_03004290 - ldr r2, _08120E1C @ =gUnknown_08401674 - ldr r1, _08120E20 @ =0x02000000 - ldr r3, _08120E24 @ =0x000160a0 - adds r1, r3 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - b _08120E38 - .align 2, 0 -_08120E14: .4byte gUnknown_02039270 -_08120E18: .4byte gUnknown_03004290 -_08120E1C: .4byte gUnknown_08401674 -_08120E20: .4byte 0x02000000 -_08120E24: .4byte 0x000160a0 -_08120E28: - ldr r0, _08120E44 @ =gUnknown_03004290 - ldrh r2, [r2] - movs r1, 0xD - muls r1, r2 - ldr r2, _08120E48 @ =gMoveNames - adds r1, r2 - bl StringCopy -_08120E38: - ldr r0, _08120E44 @ =gUnknown_03004290 - bl sub_8121D74 - ldr r6, _08120E4C @ =gUnknown_084007BD - b _08120F70 - .align 2, 0 -_08120E44: .4byte gUnknown_03004290 -_08120E48: .4byte gMoveNames -_08120E4C: .4byte gUnknown_084007BD -_08120E50: - ldr r5, _08120E90 @ =gUnknown_030041C0 - ldrb r1, [r5] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08120EB8 - movs r0, 0x7F - ands r0, r1 - strb r0, [r5] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08120E7C - ldrb r1, [r5] - cmp r1, 0x3 - beq _08120E7C - movs r0, 0x3 - eors r0, r1 - strb r0, [r5] -_08120E7C: - ldr r0, _08120E90 @ =gUnknown_030041C0 - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08120E98 - ldr r6, _08120E94 @ =gUnknown_083FFEFC - b _08120F70 - .align 2, 0 -_08120E90: .4byte gUnknown_030041C0 -_08120E94: .4byte gUnknown_083FFEFC -_08120E98: - ldr r0, _08120EAC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - ldr r6, _08120EB0 @ =gUnknown_083FFFEA - cmp r0, 0 - beq _08120F70 - ldr r6, _08120EB4 @ =gUnknown_083FFFF7 - b _08120F70 - .align 2, 0 -_08120EAC: .4byte gUnknown_020239F8 -_08120EB0: .4byte gUnknown_083FFFEA -_08120EB4: .4byte gUnknown_083FFFF7 -_08120EB8: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08120ED2 - ldrb r1, [r5] - cmp r1, 0x3 - beq _08120ED2 - movs r0, 0x3 - eors r0, r1 - strb r0, [r5] -_08120ED2: - ldr r0, _08120EF0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08120F18 - ldr r0, _08120EF4 @ =gUnknown_030041C0 - ldrb r0, [r0] - cmp r0, 0x2 - beq _08120F08 - cmp r0, 0x2 - bgt _08120EF8 - cmp r0, 0x1 - beq _08120EFE - b _08120F70 - .align 2, 0 -_08120EF0: .4byte gUnknown_020239F8 -_08120EF4: .4byte gUnknown_030041C0 -_08120EF8: - cmp r0, 0x3 - beq _08120F10 - b _08120F70 -_08120EFE: - ldr r6, _08120F04 @ =gUnknown_083FFF6A - b _08120F70 - .align 2, 0 -_08120F04: .4byte gUnknown_083FFF6A -_08120F08: - ldr r6, _08120F0C @ =gUnknown_083FFF99 - b _08120F70 - .align 2, 0 -_08120F0C: .4byte gUnknown_083FFF99 -_08120F10: - ldr r6, _08120F14 @ =gUnknown_083FFFCB - b _08120F70 - .align 2, 0 -_08120F14: .4byte gUnknown_083FFFCB -_08120F18: - ldr r0, _08120F2C @ =gUnknown_030041C0 - ldrb r0, [r0] - cmp r0, 0x2 - beq _08120F40 - cmp r0, 0x2 - bgt _08120F30 - cmp r0, 0x1 - beq _08120F36 - b _08120F70 - .align 2, 0 -_08120F2C: .4byte gUnknown_030041C0 -_08120F30: - cmp r0, 0x3 - beq _08120F48 - b _08120F70 -_08120F36: - ldr r6, _08120F3C @ =gUnknown_083FFF56 - b _08120F70 - .align 2, 0 -_08120F3C: .4byte gUnknown_083FFF56 -_08120F40: - ldr r6, _08120F44 @ =gUnknown_083FFF81 - b _08120F70 - .align 2, 0 -_08120F44: .4byte gUnknown_083FFF81 -_08120F48: - ldr r6, _08120F4C @ =gUnknown_083FFFB3 - b _08120F70 - .align 2, 0 -_08120F4C: .4byte gUnknown_083FFFB3 -_08120F50: - movs r0, 0xB5 - lsls r0, 1 - cmp r7, r0 - bls _08120F64 - ldr r1, _08120F60 @ =gUnknown_020238CC - movs r0, 0xFF - strb r0, [r1] - b _08120F76 - .align 2, 0 -_08120F60: .4byte gUnknown_020238CC -_08120F64: - ldr r1, _08120F84 @ =gUnknown_08400F8C - adds r0, r7, 0 - subs r0, 0xC - lsls r0, 2 - adds r0, r1 - ldr r6, [r0] -_08120F70: - adds r0, r6, 0 - bl get_battle_strings_ -_08120F76: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08120F84: .4byte gUnknown_08400F8C - thumb_func_end sub_8120AA8 - - thumb_func_start get_battle_strings_ -get_battle_strings_: @ 8120F88 - push {lr} - ldr r1, _08120F94 @ =gUnknown_020238CC - bl sub_8120FFC - pop {r1} - bx r1 - .align 2, 0 -_08120F94: .4byte gUnknown_020238CC - thumb_func_end get_battle_strings_ - - thumb_func_start sub_8120F98 -sub_8120F98: @ 8120F98 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, _08120FB0 @ =gUnknown_084017A8 - mov r0, sp - movs r2, 0x8 - bl memcpy - mov r2, sp - movs r3, 0 - b _08120FC0 - .align 2, 0 -_08120FB0: .4byte gUnknown_084017A8 -_08120FB4: - strb r1, [r2] - adds r4, 0x1 - adds r2, 0x1 - adds r3, 0x1 - cmp r3, 0x7 - bhi _08120FC8 -_08120FC0: - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _08120FB4 -_08120FC8: - ldr r5, [sp] - ldr r4, [sp, 0x4] - movs r3, 0 - ldr r2, _08120FE4 @ =gUnknown_081FA6D4 -_08120FD0: - ldr r1, [r2] - ldr r0, [r1] - cmp r5, r0 - bne _08120FE8 - ldr r0, [r1, 0x4] - cmp r4, r0 - bne _08120FE8 - ldr r0, [r2, 0x4] - b _08120FF2 - .align 2, 0 -_08120FE4: .4byte gUnknown_081FA6D4 -_08120FE8: - adds r2, 0x8 - adds r3, 0x1 - cmp r3, 0x6 - bls _08120FD0 - movs r0, 0 -_08120FF2: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8120F98 - - thumb_func_start sub_8120FFC -sub_8120FFC: @ 8120FFC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - mov r9, r0 - mov r8, r1 - movs r6, 0 - movs r4, 0 - bl GetMultiplayerId - lsls r0, 24 - lsrs r7, r0, 24 - mov r0, r9 - ldrb r1, [r0] - bl _08121A40 -_0812101E: - cmp r1, 0xFD - beq _08121026 - bl _08121A30 -_08121026: - movs r1, 0x1 - add r9, r1 - mov r2, r9 - ldrb r0, [r2] - cmp r0, 0x2A - bls _08121036 - bl _081219E6 -_08121036: - lsls r0, 2 - ldr r1, _08121040 @ =_08121044 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08121040: .4byte _08121044 - .align 2, 0 -_08121044: - .4byte _081210F0 - .4byte _0812111E - .4byte _0812115A - .4byte _08121180 - .4byte _081211A4 - .4byte _081211C8 - .4byte _081211EC - .4byte _08121218 - .4byte _08121248 - .4byte _08121278 - .4byte _081212A8 - .4byte _0812133C - .4byte _081213A8 - .4byte _0812141C - .4byte _08121490 - .4byte _08121504 - .4byte _08121578 - .4byte _081215F8 - .4byte _08121620 - .4byte _08121660 - .4byte _081216EC - .4byte _081216F4 - .4byte _08121704 - .4byte _08121714 - .4byte _0812172C - .4byte _0812174C - .4byte _081217C0 - .4byte _08121830 - .4byte _08121840 - .4byte _08121854 - .4byte _08121868 - .4byte _0812188C - .4byte _081218B0 - .4byte _081218B8 - .4byte _081218C0 - .4byte _0812195C - .4byte _081219A4 - .4byte _081219AC - .4byte _0812197C - .4byte _08121984 - .4byte _081219CC - .4byte _081219D4 - .4byte _08121134 -_081210F0: - ldr r5, _08121100 @ =gUnknown_030041C0 - ldrb r0, [r5] - cmp r0, 0xFD - bne _08121108 - ldr r4, _08121104 @ =gStringVar1 - adds r0, r5, 0 - b _08121140 - .align 2, 0 -_08121100: .4byte gUnknown_030041C0 -_08121104: .4byte gStringVar1 -_08121108: - adds r0, r5, 0 - bl sub_8120F98 - adds r4, r0, 0 - cmp r4, 0 - beq _08121118 - bl _081219E6 -_08121118: - adds r4, r5, 0 - bl _081219E6 -_0812111E: - ldr r1, _0812112C @ =gUnknown_03004290 - ldrb r0, [r1] - cmp r0, 0xFD - bne _08121154 - ldr r4, _08121130 @ =gStringVar2 - b _0812113E - .align 2, 0 -_0812112C: .4byte gUnknown_03004290 -_08121130: .4byte gStringVar2 -_08121134: - ldr r1, _0812114C @ =gUnknown_030042B0 - ldrb r0, [r1] - cmp r0, 0xFD - bne _08121154 - ldr r4, _08121150 @ =gStringVar3 -_0812113E: - adds r0, r1, 0 -_08121140: - adds r1, r4, 0 - bl sub_8121A68 - bl _081219E6 - .align 2, 0 -_0812114C: .4byte gUnknown_030042B0 -_08121150: .4byte gStringVar3 -_08121154: - adds r4, r1, 0 - bl _081219E6 -_0812115A: - movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _08121178 @ =gUnknown_02024A6A - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0812117C @ =gPlayerParty - adds r0, r1 - bl _0812190E - .align 2, 0 -_08121178: .4byte gUnknown_02024A6A -_0812117C: .4byte gPlayerParty -_08121180: - movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r1, _0812119C @ =gUnknown_02024A6A - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _081211A0 @ =gEnemyParty - adds r0, r1 - b _0812190E - .align 2, 0 -_0812119C: .4byte gUnknown_02024A6A -_081211A0: .4byte gEnemyParty -_081211A4: - movs r0, 0x2 - bl battle_get_side_with_given_state - ldr r1, _081211C0 @ =gUnknown_02024A6A - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _081211C4 @ =gPlayerParty - adds r0, r1 - b _0812190E - .align 2, 0 -_081211C0: .4byte gUnknown_02024A6A -_081211C4: .4byte gPlayerParty -_081211C8: - movs r0, 0x3 - bl battle_get_side_with_given_state - ldr r1, _081211E4 @ =gUnknown_02024A6A - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _081211E8 @ =gEnemyParty - adds r0, r1 - b _0812190E - .align 2, 0 -_081211E4: .4byte gUnknown_02024A6A -_081211E8: .4byte gEnemyParty -_081211EC: - ldr r2, _0812120C @ =gUnknown_02024A6A - ldr r1, _08121210 @ =gLinkPlayers - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x18] - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08121214 @ =gPlayerParty - adds r0, r1 - b _0812190E - .align 2, 0 -_0812120C: .4byte gUnknown_02024A6A -_08121210: .4byte gLinkPlayers -_08121214: .4byte gPlayerParty -_08121218: - ldr r2, _0812123C @ =gUnknown_02024A6A - ldr r1, _08121240 @ =gLinkPlayers - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x18] - movs r0, 0x1 - eors r0, r1 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08121244 @ =gEnemyParty - adds r0, r1 - b _0812190E - .align 2, 0 -_0812123C: .4byte gUnknown_02024A6A -_08121240: .4byte gLinkPlayers -_08121244: .4byte gEnemyParty -_08121248: - ldr r2, _0812126C @ =gUnknown_02024A6A - ldr r1, _08121270 @ =gLinkPlayers - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x18] - movs r0, 0x2 - eors r0, r1 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08121274 @ =gPlayerParty - adds r0, r1 - b _0812190E - .align 2, 0 -_0812126C: .4byte gUnknown_02024A6A -_08121270: .4byte gLinkPlayers -_08121274: .4byte gPlayerParty -_08121278: - ldr r2, _0812129C @ =gUnknown_02024A6A - ldr r1, _081212A0 @ =gLinkPlayers - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x18] - movs r0, 0x3 - eors r0, r1 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _081212A4 @ =gEnemyParty - adds r0, r1 - b _0812190E - .align 2, 0 -_0812129C: .4byte gUnknown_02024A6A -_081212A0: .4byte gLinkPlayers -_081212A4: .4byte gEnemyParty -_081212A8: - ldr r4, _081212CC @ =gUnknown_02024C07 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - adds r2, r4, 0 - cmp r0, 0 - beq _0812131C - ldr r0, _081212D0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - ldr r4, _081212D4 @ =gUnknown_08400791 - cmp r0, 0 - beq _081212E6 - ldr r4, _081212D8 @ =gUnknown_08400797 - b _081212E6 - .align 2, 0 -_081212CC: .4byte gUnknown_02024C07 -_081212D0: .4byte gUnknown_020239F8 -_081212D4: .4byte gUnknown_08400791 -_081212D8: .4byte gUnknown_08400797 -_081212DC: - mov r3, r8 - adds r0, r3, r6 - strb r1, [r0] - adds r6, 0x1 - adds r4, 0x1 -_081212E6: - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _081212DC - ldrb r0, [r2] - bl battle_get_per_side_status - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - bl battle_get_side_with_given_state - ldr r1, _08121314 @ =gUnknown_02024A6A - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08121318 @ =gEnemyParty - adds r0, r1 - b _0812190E - .align 2, 0 -_08121314: .4byte gUnknown_02024A6A -_08121318: .4byte gEnemyParty -_0812131C: - ldrb r0, [r2] - bl battle_get_per_side_status - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - bl battle_get_side_with_given_state - ldr r1, _08121338 @ =gUnknown_02024A6A - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r1, [r0] - b _0812193A - .align 2, 0 -_08121338: .4byte gUnknown_02024A6A -_0812133C: - ldr r4, _08121370 @ =gUnknown_02024C07 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0812137C - ldrb r0, [r4] - bl battle_get_per_side_status - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - bl battle_get_side_with_given_state - ldr r1, _08121374 @ =gUnknown_02024A6A - lsls r0, 24 - lsrs r0, 23 - adds r0, 0x4 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08121378 @ =gPlayerParty - adds r0, r1 - b _0812190E - .align 2, 0 -_08121370: .4byte gUnknown_02024C07 -_08121374: .4byte gUnknown_02024A6A -_08121378: .4byte gPlayerParty -_0812137C: - ldrb r0, [r4] - bl battle_get_per_side_status - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - bl battle_get_side_with_given_state - ldr r1, _081213A0 @ =gUnknown_02024A6A - lsls r0, 24 - lsrs r0, 23 - adds r0, 0x4 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _081213A4 @ =gEnemyParty - b _08121940 - .align 2, 0 -_081213A0: .4byte gUnknown_02024A6A -_081213A4: .4byte gEnemyParty -_081213A8: - ldr r5, _081213F4 @ =gUnknown_02024C07 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _0812140C - ldr r0, _081213F8 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - ldr r4, _081213FC @ =gUnknown_08400791 - cmp r0, 0 - beq _081213C6 - ldr r4, _08121400 @ =gUnknown_08400797 -_081213C6: - ldrb r1, [r4] - adds r0, r1, 0 - ldr r3, _08121404 @ =gUnknown_02024A6A - ldr r2, _08121408 @ =gEnemyParty - mov r12, r2 - adds r2, r5, 0 - cmp r0, 0xFF - beq _081213E8 -_081213D6: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, 0x1 - adds r4, 0x1 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _081213D6 -_081213E8: - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r1, [r0] - b _08121908 - .align 2, 0 -_081213F4: .4byte gUnknown_02024C07 -_081213F8: .4byte gUnknown_020239F8 -_081213FC: .4byte gUnknown_08400791 -_08121400: .4byte gUnknown_08400797 -_08121404: .4byte gUnknown_02024A6A -_08121408: .4byte gEnemyParty -_0812140C: - ldr r1, _08121418 @ =gUnknown_02024A6A - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - b _0812193A - .align 2, 0 -_08121418: .4byte gUnknown_02024A6A -_0812141C: - ldr r5, _08121468 @ =gUnknown_02024C08 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08121480 - ldr r0, _0812146C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - ldr r4, _08121470 @ =gUnknown_08400791 - cmp r0, 0 - beq _0812143A - ldr r4, _08121474 @ =gUnknown_08400797 -_0812143A: - ldrb r1, [r4] - adds r0, r1, 0 - ldr r3, _08121478 @ =gUnknown_02024A6A - ldr r2, _0812147C @ =gEnemyParty - mov r12, r2 - adds r2, r5, 0 - cmp r0, 0xFF - beq _0812145C -_0812144A: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, 0x1 - adds r4, 0x1 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _0812144A -_0812145C: - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r1, [r0] - b _08121908 - .align 2, 0 -_08121468: .4byte gUnknown_02024C08 -_0812146C: .4byte gUnknown_020239F8 -_08121470: .4byte gUnknown_08400791 -_08121474: .4byte gUnknown_08400797 -_08121478: .4byte gUnknown_02024A6A -_0812147C: .4byte gEnemyParty -_08121480: - ldr r1, _0812148C @ =gUnknown_02024A6A - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - b _0812193A - .align 2, 0 -_0812148C: .4byte gUnknown_02024A6A -_08121490: - ldr r5, _081214DC @ =gUnknown_02024C0A - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _081214F4 - ldr r0, _081214E0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - ldr r4, _081214E4 @ =gUnknown_08400791 - cmp r0, 0 - beq _081214AE - ldr r4, _081214E8 @ =gUnknown_08400797 -_081214AE: - ldrb r1, [r4] - adds r0, r1, 0 - ldr r3, _081214EC @ =gUnknown_02024A6A - ldr r2, _081214F0 @ =gEnemyParty - mov r12, r2 - adds r2, r5, 0 - cmp r0, 0xFF - beq _081214D0 -_081214BE: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, 0x1 - adds r4, 0x1 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _081214BE -_081214D0: - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r1, [r0] - b _08121908 - .align 2, 0 -_081214DC: .4byte gUnknown_02024C0A -_081214E0: .4byte gUnknown_020239F8 -_081214E4: .4byte gUnknown_08400791 -_081214E8: .4byte gUnknown_08400797 -_081214EC: .4byte gUnknown_02024A6A -_081214F0: .4byte gEnemyParty -_081214F4: - ldr r1, _08121500 @ =gUnknown_02024A6A - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - b _0812193A - .align 2, 0 -_08121500: .4byte gUnknown_02024A6A -_08121504: - ldr r5, _08121550 @ =gUnknown_02024A60 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08121568 - ldr r0, _08121554 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - ldr r4, _08121558 @ =gUnknown_08400791 - cmp r0, 0 - beq _08121522 - ldr r4, _0812155C @ =gUnknown_08400797 -_08121522: - ldrb r1, [r4] - adds r0, r1, 0 - ldr r3, _08121560 @ =gUnknown_02024A6A - ldr r2, _08121564 @ =gEnemyParty - mov r12, r2 - adds r2, r5, 0 - cmp r0, 0xFF - beq _08121544 -_08121532: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, 0x1 - adds r4, 0x1 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _08121532 -_08121544: - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r1, [r0] - b _08121908 - .align 2, 0 -_08121550: .4byte gUnknown_02024A60 -_08121554: .4byte gUnknown_020239F8 -_08121558: .4byte gUnknown_08400791 -_0812155C: .4byte gUnknown_08400797 -_08121560: .4byte gUnknown_02024A6A -_08121564: .4byte gEnemyParty -_08121568: - ldr r1, _08121574 @ =gUnknown_02024A6A - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - b _0812193A - .align 2, 0 -_08121574: .4byte gUnknown_02024A6A -_08121578: - ldr r4, _081215CC @ =0x02000000 - ldr r0, _081215D0 @ =0x00016003 - adds r5, r4, r0 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - adds r2, r4, 0 - cmp r0, 0 - beq _081215E8 - ldr r0, _081215D4 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - ldr r4, _081215D8 @ =gUnknown_08400791 - cmp r0, 0 - beq _0812159C - ldr r4, _081215DC @ =gUnknown_08400797 -_0812159C: - ldrb r1, [r4] - adds r0, r1, 0 - ldr r3, _081215E0 @ =gUnknown_02024A6A - ldr r5, _081215E4 @ =gEnemyParty - mov r12, r5 - cmp r0, 0xFF - beq _081215BC -_081215AA: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, 0x1 - adds r4, 0x1 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _081215AA -_081215BC: - ldr r1, _081215D0 @ =0x00016003 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r3 - ldrh r1, [r0] - b _08121908 - .align 2, 0 -_081215CC: .4byte 0x02000000 -_081215D0: .4byte 0x00016003 -_081215D4: .4byte gUnknown_020239F8 -_081215D8: .4byte gUnknown_08400791 -_081215DC: .4byte gUnknown_08400797 -_081215E0: .4byte gUnknown_02024A6A -_081215E4: .4byte gEnemyParty -_081215E8: - ldr r1, _081215F4 @ =gUnknown_02024A6A - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - b _0812193A - .align 2, 0 -_081215F4: .4byte gUnknown_02024A6A -_081215F8: - ldr r0, _08121610 @ =gUnknown_02039270 - ldr r2, [r0] - ldrh r1, [r2] - movs r0, 0xB1 - lsls r0, 1 - cmp r1, r0 - bls _0812161C - ldr r0, _08121614 @ =0x02000000 - ldr r2, _08121618 @ =0x000160a0 - adds r0, r2 - b _08121634 - .align 2, 0 -_08121610: .4byte gUnknown_02039270 -_08121614: .4byte 0x02000000 -_08121618: .4byte 0x000160a0 -_0812161C: - ldrh r1, [r2] - b _08121652 -_08121620: - ldr r0, _08121640 @ =gUnknown_02039270 - ldr r2, [r0] - ldrh r1, [r2, 0x2] - movs r0, 0xB1 - lsls r0, 1 - cmp r1, r0 - bls _08121650 - ldr r0, _08121644 @ =0x02000000 - ldr r3, _08121648 @ =0x000160a0 - adds r0, r3 -_08121634: - ldrb r0, [r0] - lsls r0, 2 - ldr r1, _0812164C @ =gUnknown_08401674 - adds r4, r0, r1 - b _081219E6 - .align 2, 0 -_08121640: .4byte gUnknown_02039270 -_08121644: .4byte 0x02000000 -_08121648: .4byte 0x000160a0 -_0812164C: .4byte gUnknown_08401674 -_08121650: - ldrh r1, [r2, 0x2] -_08121652: - movs r0, 0xD - muls r1, r0 - ldr r0, _0812165C @ =gMoveNames - adds r4, r1, r0 - b _081219E6 - .align 2, 0 -_0812165C: .4byte gMoveNames -_08121660: - ldr r0, _081216AC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081216D8 - ldr r1, _081216B0 @ =gUnknown_02024C04 - ldrh r0, [r1] - cmp r0, 0xAF - bne _081216D4 - ldr r2, _081216B4 @ =gLinkPlayers - ldr r0, _081216B8 @ =0x02000000 - ldr r5, _081216BC @ =0x000160cb - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _081216C0 @ =gUnknown_02024C0B - ldrb r2, [r1] - ldrh r0, [r0, 0x18] - cmp r0, r2 - bne _081216CC - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - ldr r0, _081216C4 @ =gEnigmaBerries - adds r1, r0 - mov r0, sp - bl StringCopy - ldr r1, _081216C8 @ =gUnknown_08400A85 - mov r0, sp - bl StringAppend - mov r4, sp - b _081219E6 - .align 2, 0 -_081216AC: .4byte gUnknown_020239F8 -_081216B0: .4byte gUnknown_02024C04 -_081216B4: .4byte gLinkPlayers -_081216B8: .4byte 0x02000000 -_081216BC: .4byte 0x000160cb -_081216C0: .4byte gUnknown_02024C0B -_081216C4: .4byte gEnigmaBerries -_081216C8: .4byte gUnknown_08400A85 -_081216CC: - ldr r4, _081216D0 @ =gUnknown_08400A78 - b _081219E6 - .align 2, 0 -_081216D0: .4byte gUnknown_08400A78 -_081216D4: - ldrh r0, [r1] - b _081216DC -_081216D8: - ldr r0, _081216E8 @ =gUnknown_02024C04 - ldrh r0, [r0] -_081216DC: - mov r1, sp - bl CopyItemName - mov r4, sp - b _081219E6 - .align 2, 0 -_081216E8: .4byte gUnknown_02024C04 -_081216EC: - ldr r0, _081216F0 @ =byte_2024C06 - b _08121734 - .align 2, 0 -_081216F0: .4byte byte_2024C06 -_081216F4: - ldr r1, _081216FC @ =gUnknown_0203926C - ldr r0, _08121700 @ =gUnknown_02024C07 - b _08121730 - .align 2, 0 -_081216FC: .4byte gUnknown_0203926C -_08121700: .4byte gUnknown_02024C07 -_08121704: - ldr r1, _0812170C @ =gUnknown_0203926C - ldr r0, _08121710 @ =gUnknown_02024C08 - b _08121730 - .align 2, 0 -_0812170C: .4byte gUnknown_0203926C -_08121710: .4byte gUnknown_02024C08 -_08121714: - ldr r1, _08121720 @ =gUnknown_0203926C - ldr r0, _08121724 @ =0x02000000 - ldr r2, _08121728 @ =0x00016003 - adds r0, r2 - b _08121730 - .align 2, 0 -_08121720: .4byte gUnknown_0203926C -_08121724: .4byte 0x02000000 -_08121728: .4byte 0x00016003 -_0812172C: - ldr r1, _08121740 @ =gUnknown_0203926C - ldr r0, _08121744 @ =gUnknown_02024C0A -_08121730: - ldrb r0, [r0] - adds r0, r1 -_08121734: - ldrb r1, [r0] - movs r0, 0xD - muls r1, r0 - ldr r0, _08121748 @ =gAbilityNames - adds r4, r1, r0 - b _081219E6 - .align 2, 0 -_08121740: .4byte gUnknown_0203926C -_08121744: .4byte gUnknown_02024C0A -_08121748: .4byte gAbilityNames -_0812174C: - ldr r3, _08121764 @ =gTrainerBattleOpponent - ldrh r1, [r3] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - bne _08121768 - bl GetSecretBaseTrainerNameIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xD - b _081217AE - .align 2, 0 -_08121764: .4byte gTrainerBattleOpponent -_08121768: - ldr r0, _08121784 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08121788 - bl get_trainer_class_name_index - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xD - b _081217AE - .align 2, 0 -_08121784: .4byte gUnknown_020239F8 -_08121788: - movs r0, 0x80 - lsls r0, 4 - ands r0, r1 - cmp r0, 0 - beq _0812179E - bl sub_8135FD8 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xD - b _081217AE -_0812179E: - ldr r2, _081217B8 @ =gTrainers - ldrh r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r0, 0xD -_081217AE: - muls r1, r0 - ldr r0, _081217BC @ =gTrainerClassNames - adds r4, r1, r0 - b _081219E6 - .align 2, 0 -_081217B8: .4byte gTrainers -_081217BC: .4byte gTrainerClassNames -_081217C0: - ldr r2, _081217E4 @ =gTrainerBattleOpponent - ldrh r1, [r2] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - bne _081217EC - mov r0, sp - movs r1, 0xFF - movs r2, 0x8 - bl memset - ldr r1, _081217E8 @ =0x02017002 - mov r0, sp - movs r2, 0x7 - bl memcpy - mov r4, sp - b _081219E6 - .align 2, 0 -_081217E4: .4byte gTrainerBattleOpponent -_081217E8: .4byte 0x02017002 -_081217EC: - ldr r0, _08121804 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08121808 - mov r0, sp - bl get_trainer_name - mov r4, sp - b _081219E6 - .align 2, 0 -_08121804: .4byte gUnknown_020239F8 -_08121808: - movs r0, 0x80 - lsls r0, 4 - ands r0, r1 - cmp r0, 0 - beq _0812181C - mov r0, sp - bl sub_8135FF4 - mov r4, sp - b _081219E6 -_0812181C: - ldrh r0, [r2] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0812182C @ =gTrainers + 0x4 - adds r4, r1, r0 - b _081219E6 - .align 2, 0 -_0812182C: .4byte gTrainers + 0x4 -_08121830: - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - ldr r1, _0812183C @ =gLinkPlayers + 0x8 - adds r4, r0, r1 - b _081219E6 - .align 2, 0 -_0812183C: .4byte gLinkPlayers + 0x8 -_08121840: - ldr r4, _08121850 @ =gLinkPlayers - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x18] - movs r0, 0x2 - b _08121876 - .align 2, 0 -_08121850: .4byte gLinkPlayers -_08121854: - ldr r4, _08121864 @ =gLinkPlayers - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x18] - movs r0, 0x1 - b _08121876 - .align 2, 0 -_08121864: .4byte gLinkPlayers -_08121868: - ldr r4, _08121888 @ =gLinkPlayers - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x18] - movs r0, 0x3 -_08121876: - eors r0, r1 - bl sub_803FC34 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r4, 0x8 - adds r4, r1, r4 - b _081219E6 - .align 2, 0 -_08121888: .4byte gLinkPlayers -_0812188C: - ldr r0, _081218A4 @ =0x02000000 - ldr r3, _081218A8 @ =0x00016003 - adds r0, r3 - ldrb r0, [r0] - bl sub_803FC34 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r0, _081218AC @ =gLinkPlayers + 0x8 - adds r4, r1, r0 - b _081219E6 - .align 2, 0 -_081218A4: .4byte 0x02000000 -_081218A8: .4byte 0x00016003 -_081218AC: .4byte gLinkPlayers + 0x8 -_081218B0: - ldr r4, _081218B4 @ =gSaveBlock2 - b _081219E6 - .align 2, 0 -_081218B4: .4byte gSaveBlock2 -_081218B8: - bl sub_8082830 - adds r4, r0, 0 - b _081219E6 -_081218C0: - ldr r5, _08121918 @ =0x02000000 - ldr r1, _0812191C @ =0x00016003 - adds r0, r5, r1 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08121934 - ldr r0, _08121920 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - ldr r4, _08121924 @ =gUnknown_08400791 - cmp r0, 0 - beq _081218E2 - ldr r4, _08121928 @ =gUnknown_08400797 -_081218E2: - ldrb r1, [r4] - adds r0, r1, 0 - ldr r2, _0812192C @ =gEnemyParty - mov r12, r2 - adds r2, r5, 0 - cmp r0, 0xFF - beq _08121902 -_081218F0: - mov r3, r8 - adds r0, r3, r6 - strb r1, [r0] - adds r6, 0x1 - adds r4, 0x1 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _081218F0 -_08121902: - ldr r5, _08121930 @ =0x0001605e - adds r0, r2, r5 - ldrb r1, [r0] -_08121908: - movs r0, 0x64 - muls r0, r1 - add r0, r12 -_0812190E: - movs r1, 0x2 - mov r2, sp - bl GetMonData - b _0812194A - .align 2, 0 -_08121918: .4byte 0x02000000 -_0812191C: .4byte 0x00016003 -_08121920: .4byte gUnknown_020239F8 -_08121924: .4byte gUnknown_08400791 -_08121928: .4byte gUnknown_08400797 -_0812192C: .4byte gEnemyParty -_08121930: .4byte 0x0001605e -_08121934: - ldr r1, _08121954 @ =0x0001605e - adds r0, r5, r1 - ldrb r1, [r0] -_0812193A: - movs r0, 0x64 - muls r0, r1 - ldr r1, _08121958 @ =gPlayerParty -_08121940: - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData -_0812194A: - mov r0, sp - bl StringGetEnd10 - mov r4, sp - b _081219E6 - .align 2, 0 -_08121954: .4byte 0x0001605e -_08121958: .4byte gPlayerParty -_0812195C: - ldr r0, _08121970 @ =0x0000084b - bl FlagGet - lsls r0, 24 - ldr r4, _08121974 @ =gUnknown_084009ED - cmp r0, 0 - beq _081219E6 - ldr r4, _08121978 @ =gUnknown_084009F7 - b _081219E6 - .align 2, 0 -_08121970: .4byte 0x0000084b -_08121974: .4byte gUnknown_084009ED -_08121978: .4byte gUnknown_084009F7 -_0812197C: - ldr r0, _08121980 @ =gUnknown_02024C07 - b _08121986 - .align 2, 0 -_08121980: .4byte gUnknown_02024C07 -_08121984: - ldr r0, _08121998 @ =gUnknown_02024C08 -_08121986: - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - ldr r4, _0812199C @ =gUnknown_084007A7 - cmp r0, 0 - bne _081219E6 - ldr r4, _081219A0 @ =gUnknown_084007AC - b _081219E6 - .align 2, 0 -_08121998: .4byte gUnknown_02024C08 -_0812199C: .4byte gUnknown_084007A7 -_081219A0: .4byte gUnknown_084007AC -_081219A4: - ldr r0, _081219A8 @ =gUnknown_02024C07 - b _081219AE - .align 2, 0 -_081219A8: .4byte gUnknown_02024C07 -_081219AC: - ldr r0, _081219C0 @ =gUnknown_02024C08 -_081219AE: - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - ldr r4, _081219C4 @ =gUnknown_0840079C - cmp r0, 0 - bne _081219E6 - ldr r4, _081219C8 @ =gUnknown_084007A1 - b _081219E6 - .align 2, 0 -_081219C0: .4byte gUnknown_02024C08 -_081219C4: .4byte gUnknown_0840079C -_081219C8: .4byte gUnknown_084007A1 -_081219CC: - ldr r0, _081219D0 @ =gUnknown_02024C07 - b _081219D6 - .align 2, 0 -_081219D0: .4byte gUnknown_02024C07 -_081219D4: - ldr r0, _08121A24 @ =gUnknown_02024C08 -_081219D6: - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - ldr r4, _08121A28 @ =gUnknown_084007B2 - cmp r0, 0 - bne _081219E6 - ldr r4, _08121A2C @ =gUnknown_084007B7 -_081219E6: - ldrb r1, [r4] - adds r0, r1, 0 - mov r3, r9 - ldrb r2, [r3] - adds r3, 0x1 - cmp r0, 0xFF - beq _08121A06 -_081219F4: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, 0x1 - adds r4, 0x1 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _081219F4 -_08121A06: - lsls r0, r2, 24 - lsrs r0, 24 - cmp r0, 0x21 - bne _08121A3C - mov r0, r8 - adds r1, r0, r6 - movs r0, 0xFC - strb r0, [r1] - adds r6, 0x1 - mov r2, r8 - adds r1, r2, r6 - movs r0, 0x9 - strb r0, [r1] - adds r6, 0x1 - b _08121A3C - .align 2, 0 -_08121A24: .4byte gUnknown_02024C08 -_08121A28: .4byte gUnknown_084007B2 -_08121A2C: .4byte gUnknown_084007B7 -_08121A30: - mov r3, r8 - adds r0, r3, r6 - strb r1, [r0] - adds r6, 0x1 - mov r3, r9 - adds r3, 0x1 -_08121A3C: - mov r9, r3 - ldrb r1, [r3] -_08121A40: - adds r0, r1, 0 - cmp r0, 0xFF - beq _08121A4A - bl _0812101E -_08121A4A: - mov r5, r8 - adds r1, r5, r6 - mov r2, r9 - ldrb r0, [r2] - strb r0, [r1] - adds r6, 0x1 - adds r0, r6, 0 - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8120FFC - - thumb_func_start sub_8121A68 -sub_8121A68: @ 8121A68 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r7, r0, 0 - adds r6, r1, 0 - movs r5, 0x1 - movs r0, 0 - mov r8, r0 - movs r0, 0xFF - strb r0, [r6] - ldrb r0, [r7, 0x1] - cmp r0, 0xFF - bne _08121A86 - b _08121D0E -_08121A86: - adds r0, r7, r5 - ldrb r1, [r0] - adds r4, r0, 0 - cmp r1, 0xA - bls _08121A92 - b _08121D04 -_08121A92: - lsls r0, r1, 2 - ldr r1, _08121A9C @ =_08121AA0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08121A9C: .4byte _08121AA0 - .align 2, 0 -_08121AA0: - .4byte _08121ACC - .4byte _08121AE8 - .4byte _08121B3C - .4byte _08121B54 - .4byte _08121B64 - .4byte _08121BDC - .4byte _08121BF0 - .4byte _08121C02 - .4byte _08121C48 - .4byte _08121C5C - .4byte _08121C78 -_08121ACC: - adds r0, r5, r7 - ldrb r1, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r1, r0 - ldr r0, _08121AE4 @ =gUnknown_08400F8C - subs r1, 0xC - lsls r1, 2 - adds r1, r0 - ldr r1, [r1] - b _08121CE2 - .align 2, 0 -_08121AE4: .4byte gUnknown_08400F8C -_08121AE8: - ldrb r0, [r4, 0x1] - cmp r0, 0x2 - beq _08121B04 - cmp r0, 0x2 - bgt _08121AF8 - cmp r0, 0x1 - beq _08121AFE - b _08121B26 -_08121AF8: - cmp r0, 0x4 - beq _08121B0C - b _08121B26 -_08121AFE: - ldrb r4, [r4, 0x3] - mov r8, r4 - b _08121B26 -_08121B04: - ldrb r1, [r4, 0x3] - ldrb r0, [r4, 0x4] - lsls r0, 8 - b _08121B22 -_08121B0C: - ldrb r0, [r4, 0x3] - mov r8, r0 - ldrb r0, [r4, 0x4] - lsls r0, 8 - mov r1, r8 - orrs r1, r0 - ldrb r0, [r4, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r4, 0x6] - lsls r0, 24 -_08121B22: - orrs r1, r0 - mov r8, r1 -_08121B26: - adds r4, r5, r7 - ldrb r3, [r4, 0x2] - adds r0, r6, 0 - mov r1, r8 - movs r2, 0 - bl ConvertIntToDecimalStringN - adds r0, r5, 0x3 - ldrb r4, [r4, 0x1] - adds r5, r0, r4 - b _08121D04 -_08121B3C: - adds r0, r5, r7 - ldrb r1, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r1, r0 - movs r0, 0xD - muls r1, r0 - ldr r0, _08121B50 @ =gMoveNames - adds r1, r0 - b _08121CE2 - .align 2, 0 -_08121B50: .4byte gMoveNames -_08121B54: - adds r0, r5, r7 - ldrb r0, [r0, 0x1] - lsls r1, r0, 3 - subs r1, r0 - ldr r0, _08121B60 @ =gTypeNames - b _08121C66 - .align 2, 0 -_08121B60: .4byte gTypeNames -_08121B64: - ldrb r0, [r4, 0x1] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08121B88 - ldrb r1, [r4, 0x2] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08121B84 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData - b _08121BC4 - .align 2, 0 -_08121B84: .4byte gPlayerParty -_08121B88: - ldr r0, _08121BA0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08121BA8 - ldr r1, _08121BA4 @ =gUnknown_08400797 - adds r0, r6, 0 - bl StringAppend - b _08121BB0 - .align 2, 0 -_08121BA0: .4byte gUnknown_020239F8 -_08121BA4: .4byte gUnknown_08400797 -_08121BA8: - ldr r1, _08121BD4 @ =gUnknown_08400791 - adds r0, r6, 0 - bl StringAppend -_08121BB0: - adds r0, r5, r7 - ldrb r1, [r0, 0x2] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08121BD8 @ =gEnemyParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData -_08121BC4: - mov r0, sp - bl StringGetEnd10 - adds r0, r6, 0 - mov r1, sp - bl StringAppend - b _08121D02 - .align 2, 0 -_08121BD4: .4byte gUnknown_08400791 -_08121BD8: .4byte gEnemyParty -_08121BDC: - ldr r1, _08121BEC @ =gUnknown_08400F58 - adds r0, r5, r7 - ldrb r0, [r0, 0x1] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - b _08121C68 - .align 2, 0 -_08121BEC: .4byte gUnknown_08400F58 -_08121BF0: - adds r0, r5, r7 - ldrb r1, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r1, r0 - adds r0, r6, 0 - bl GetSpeciesName - b _08121D02 -_08121C02: - adds r4, r5, r7 - ldrb r0, [r4, 0x1] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08121C28 - ldrb r1, [r4, 0x2] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08121C24 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2 - adds r2, r6, 0 - bl GetMonData - b _08121C3A - .align 2, 0 -_08121C24: .4byte gPlayerParty -_08121C28: - ldrb r1, [r4, 0x2] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08121C44 @ =gEnemyParty - adds r0, r1 - movs r1, 0x2 - adds r2, r6, 0 - bl GetMonData -_08121C3A: - adds r0, r6, 0 - bl StringGetEnd10 - b _08121D02 - .align 2, 0 -_08121C44: .4byte gEnemyParty -_08121C48: - ldr r1, _08121C58 @ =gUnknown_08400F78 - adds r0, r5, r7 - ldrb r0, [r0, 0x1] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - b _08121C68 - .align 2, 0 -_08121C58: .4byte gUnknown_08400F78 -_08121C5C: - adds r0, r5, r7 - ldrb r1, [r0, 0x1] - movs r0, 0xD - muls r1, r0 - ldr r0, _08121C74 @ =gAbilityNames -_08121C66: - adds r1, r0 -_08121C68: - adds r0, r6, 0 - bl StringAppend - adds r5, 0x2 - b _08121D04 - .align 2, 0 -_08121C74: .4byte gAbilityNames -_08121C78: - adds r0, r5, r7 - ldrb r2, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r2, r0 - ldr r0, _08121CC4 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08121CFA - cmp r2, 0xAF - bne _08121CF0 - ldr r2, _08121CC8 @ =gLinkPlayers - ldr r0, _08121CCC @ =0x02000000 - ldr r1, _08121CD0 @ =0x000160cb - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _08121CD4 @ =gUnknown_02024C0B - ldrb r2, [r1] - ldrh r0, [r0, 0x18] - cmp r0, r2 - bne _08121CE0 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - ldr r0, _08121CD8 @ =gEnigmaBerries - adds r1, r0 - adds r0, r6, 0 - bl StringCopy - ldr r1, _08121CDC @ =gUnknown_08400A85 - b _08121CE2 - .align 2, 0 -_08121CC4: .4byte gUnknown_020239F8 -_08121CC8: .4byte gLinkPlayers -_08121CCC: .4byte 0x02000000 -_08121CD0: .4byte 0x000160cb -_08121CD4: .4byte gUnknown_02024C0B -_08121CD8: .4byte gEnigmaBerries -_08121CDC: .4byte gUnknown_08400A85 -_08121CE0: - ldr r1, _08121CEC @ =gUnknown_08400A78 -_08121CE2: - adds r0, r6, 0 - bl StringAppend - b _08121D02 - .align 2, 0 -_08121CEC: .4byte gUnknown_08400A78 -_08121CF0: - adds r0, r2, 0 - adds r1, r6, 0 - bl CopyItemName - b _08121D02 -_08121CFA: - adds r0, r2, 0 - adds r1, r6, 0 - bl CopyItemName -_08121D02: - adds r5, 0x3 -_08121D04: - adds r0, r7, r5 - ldrb r0, [r0] - cmp r0, 0xFF - beq _08121D0E - b _08121A86 -_08121D0E: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8121A68 - - thumb_func_start sub_8121D1C -sub_8121D1C: @ 8121D1C - push {r4,r5,lr} - adds r4, r0, 0 - movs r2, 0 - ldr r5, _08121D50 @ =gUnknown_02039270 - ldr r3, _08121D54 @ =gUnknown_084016BC -_08121D26: - cmp r2, 0x4 - beq _08121D3C - ldrh r1, [r3] - cmp r1, 0 - bne _08121D32 - adds r2, 0x1 -_08121D32: - ldr r0, [r5] - adds r3, 0x2 - ldrh r0, [r0] - cmp r1, r0 - bne _08121D26 -_08121D3C: - cmp r2, 0 - blt _08121D68 - cmp r2, 0x2 - bgt _08121D5C - ldr r1, _08121D58 @ =gUnknown_08400E5E - adds r0, r4, 0 - bl StringCopy - b _08121D68 - .align 2, 0 -_08121D50: .4byte gUnknown_02039270 -_08121D54: .4byte gUnknown_084016BC -_08121D58: .4byte gUnknown_08400E5E -_08121D5C: - cmp r2, 0x4 - bgt _08121D68 - ldr r1, _08121D70 @ =gUnknown_08400E62 - adds r0, r4, 0 - bl StringCopy -_08121D68: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08121D70: .4byte gUnknown_08400E62 - thumb_func_end sub_8121D1C - - thumb_func_start sub_8121D74 -sub_8121D74: @ 8121D74 - push {r4,r5,lr} - adds r3, r0, 0 - movs r4, 0 - b _08121D7E -_08121D7C: - adds r3, 0x1 -_08121D7E: - ldrb r0, [r3] - cmp r0, 0xFF - bne _08121D7C - ldr r1, _08121DB4 @ =gUnknown_084016BC - ldr r5, _08121DB8 @ =gUnknown_02039270 - movs r0, 0 - lsls r0, 1 - adds r2, r0, r1 -_08121D8E: - cmp r4, 0x4 - beq _08121DA8 - ldrh r1, [r2] - cmp r1, 0 - bne _08121D9A - adds r4, 0x1 -_08121D9A: - ldr r0, [r5] - adds r2, 0x2 - ldrh r0, [r0] - cmp r1, r0 - bne _08121D8E - cmp r4, 0x4 - bhi _08121E04 -_08121DA8: - lsls r0, r4, 2 - ldr r1, _08121DBC @ =_08121DC0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08121DB4: .4byte gUnknown_084016BC -_08121DB8: .4byte gUnknown_02039270 -_08121DBC: .4byte _08121DC0 - .align 2, 0 -_08121DC0: - .4byte _08121DD4 - .4byte _08121DDC - .4byte _08121DE4 - .4byte _08121DEC - .4byte _08121DFC -_08121DD4: - ldr r1, _08121DD8 @ =gUnknown_084007C8 - b _08121DEE - .align 2, 0 -_08121DD8: .4byte gUnknown_084007C8 -_08121DDC: - ldr r1, _08121DE0 @ =gUnknown_084007CA - b _08121DEE - .align 2, 0 -_08121DE0: .4byte gUnknown_084007CA -_08121DE4: - ldr r1, _08121DE8 @ =gUnknown_084007CC - b _08121DEE - .align 2, 0 -_08121DE8: .4byte gUnknown_084007CC -_08121DEC: - ldr r1, _08121DF8 @ =gUnknown_084007CE -_08121DEE: - adds r0, r3, 0 - bl StringCopy - b _08121E04 - .align 2, 0 -_08121DF8: .4byte gUnknown_084007CE -_08121DFC: - ldr r1, _08121E0C @ =gUnknown_084007D0 - adds r0, r3, 0 - bl StringCopy -_08121E04: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08121E0C: .4byte gUnknown_084007D0 - thumb_func_end sub_8121D74 - - thumb_func_start sub_8121E10 -sub_8121E10: @ 8121E10 - push {lr} - bl sub_8121E58 - ldr r0, _08121E2C @ =0x0201b000 - ldr r1, _08121E30 @ =0x00000263 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x4 - bl OpenPartyMenu - pop {r0} - bx r0 - .align 2, 0 -_08121E2C: .4byte 0x0201b000 -_08121E30: .4byte 0x00000263 - thumb_func_end sub_8121E10 - - thumb_func_start sub_8121E34 -sub_8121E34: @ 8121E34 - push {lr} - bl sub_8121E58 - ldr r0, _08121E50 @ =0x0201b000 - ldr r1, _08121E54 @ =0x00000263 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - movs r0, 0x4 - movs r1, 0 - bl OpenPartyMenu - pop {r0} - bx r0 - .align 2, 0 -_08121E50: .4byte 0x0201b000 -_08121E54: .4byte 0x00000263 - thumb_func_end sub_8121E34 - - thumb_func_start sub_8121E58 -sub_8121E58: @ 8121E58 - push {lr} - movs r1, 0 - ldr r3, _08121E74 @ =gUnknown_02039270 - movs r2, 0 -_08121E60: - adds r0, r1, r3 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bls _08121E60 - pop {r0} - bx r0 - .align 2, 0 -_08121E74: .4byte gUnknown_02039270 - thumb_func_end sub_8121E58 - - thumb_func_start sub_8121E78 -sub_8121E78: @ 8121E78 - push {r4-r6,lr} - ldr r1, _08121E98 @ =0x0201b000 - movs r2, 0x99 - lsls r2, 2 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0x7 - bls _08121E8E - b _08122026 -_08121E8E: - lsls r0, 2 - ldr r1, _08121E9C @ =_08121EA0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08121E98: .4byte 0x0201b000 -_08121E9C: .4byte _08121EA0 - .align 2, 0 -_08121EA0: - .4byte _08121EC0 - .4byte _08121F00 - .4byte _08121F14 - .4byte _08121F28 - .4byte _08121F54 - .4byte _08121F68 - .4byte _08121F6E - .4byte _08121FF8 -_08121EC0: - ldr r0, _08121EE8 @ =0x00000266 - adds r5, r4, r0 - movs r1, 0 - ldrsh r3, [r5, r1] - ldr r0, _08121EEC @ =gPlayerPartyCount - ldrb r0, [r0] - cmp r3, r0 - bge _08121EF4 - movs r2, 0x98 - lsls r2, 2 - adds r0, r4, r2 - ldrb r0, [r0] - ldrb r1, [r5] - movs r2, 0x64 - muls r2, r3 - ldr r3, _08121EF0 @ =gPlayerParty - adds r2, r3 - bl sub_806D90C - b _08122020 - .align 2, 0 -_08121EE8: .4byte 0x00000266 -_08121EEC: .4byte gPlayerPartyCount -_08121EF0: .4byte gPlayerParty -_08121EF4: - movs r0, 0 - strh r0, [r5] - movs r0, 0x99 - lsls r0, 2 - adds r1, r4, r0 - b _08121FE8 -_08121F00: - bl sub_806DA98 - ldr r1, _08121F10 @ =0x0201b000 - movs r2, 0x99 - lsls r2, 2 - adds r1, r2 - b _08121FE8 - .align 2, 0 -_08121F10: .4byte 0x0201b000 -_08121F14: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_806DC34 - movs r2, 0x99 - lsls r2, 2 - adds r1, r4, r2 - b _08121FE8 -_08121F28: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - ldr r2, _08121F50 @ =0x00000266 - adds r5, r4, r2 - ldrb r1, [r5] - bl sub_806BD58 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08122020 - movs r0, 0 - strh r0, [r5] - movs r0, 0x99 - lsls r0, 2 - adds r1, r4, r0 - b _08121FE8 - .align 2, 0 -_08121F50: .4byte 0x00000266 -_08121F54: - bl sub_806E334 - ldr r1, _08121F64 @ =0x0201b000 - movs r2, 0x99 - lsls r2, 2 - adds r1, r2 - b _08121FE8 - .align 2, 0 -_08121F64: .4byte 0x0201b000 -_08121F68: - bl sub_806E0C4 - b _08121FE0 -_08121F6E: - movs r5, 0 - b _08121FD8 -_08121F72: - movs r4, 0 - adds r6, r5, 0x1 - b _08121F7E -_08121F78: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_08121F7E: - cmp r4, 0x2 - bhi _08121FA0 - ldr r0, _08121FC4 @ =gUnknown_02039270 - adds r0, r4, r0 - ldrb r0, [r0] - cmp r0, r6 - bne _08121F78 - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 25 - movs r2, 0xE0 - lsls r2, 21 - adds r1, r2 - lsrs r1, 24 - adds r0, r5, 0 - bl sub_806BC3C -_08121FA0: - cmp r4, 0x3 - bne _08121FD4 - movs r0, 0x64 - muls r0, r5 - ldr r1, _08121FC8 @ =gPlayerParty - adds r0, r1 - bl sub_8122030 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08121FCC - adds r0, r5, 0 - movs r1, 0x70 - bl sub_806BC3C - b _08121FD4 - .align 2, 0 -_08121FC4: .4byte gUnknown_02039270 -_08121FC8: .4byte gPlayerParty -_08121FCC: - adds r0, r5, 0 - movs r1, 0x7E - bl sub_806BC3C -_08121FD4: - lsls r0, r6, 24 - lsrs r5, r0, 24 -_08121FD8: - ldr r0, _08121FF0 @ =gPlayerPartyCount - ldrb r0, [r0] - cmp r5, r0 - bcc _08121F72 -_08121FE0: - ldr r1, _08121FF4 @ =0x0201b000 - movs r0, 0x99 - lsls r0, 2 - adds r1, r0 -_08121FE8: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08122026 - .align 2, 0 -_08121FF0: .4byte gPlayerPartyCount -_08121FF4: .4byte 0x0201b000 -_08121FF8: - ldr r1, _0812201C @ =0x00000266 - adds r5, r4, r1 - ldrb r0, [r5] - bl sub_806B58C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08122020 - movs r1, 0 - strh r1, [r5] - movs r2, 0x99 - lsls r2, 2 - adds r0, r4, r2 - strh r1, [r0] - movs r0, 0x1 - b _08122028 - .align 2, 0 -_0812201C: .4byte 0x00000266 -_08122020: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_08122026: - movs r0, 0 -_08122028: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8121E78 - - thumb_func_start sub_8122030 -sub_8122030: @ 8122030 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0812207C - ldr r0, _08122058 @ =0x0201b000 - ldr r1, _0812205C @ =0x00000263 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08122060 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0812207C - b _081220B6 - .align 2, 0 -_08122058: .4byte 0x0201b000 -_0812205C: .4byte 0x00000263 -_08122060: - ldr r0, _08122080 @ =gSaveBlock2 - ldr r1, _08122084 @ =0x00000554 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08122088 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x32 - bls _08122088 -_0812207C: - movs r0, 0 - b _081220B8 - .align 2, 0 -_08122080: .4byte gSaveBlock2 -_08122084: .4byte 0x00000554 -_08122088: - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r3, r0, 16 - ldr r1, _081220C0 @ =gBattleTowerBanlist - movs r0, 0 - lsls r0, 1 - adds r2, r0, r1 - ldrh r0, [r2] - ldr r1, _081220C4 @ =0x0000ffff - cmp r0, r1 - beq _081220B6 - adds r4, r1, 0 - adds r1, r2, 0 -_081220A8: - ldrh r0, [r1] - cmp r0, r3 - beq _0812207C - adds r1, 0x2 - ldrh r0, [r1] - cmp r0, r4 - bne _081220A8 -_081220B6: - movs r0, 0x1 -_081220B8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081220C0: .4byte gBattleTowerBanlist -_081220C4: .4byte 0x0000ffff - thumb_func_end sub_8122030 - - thumb_func_start sub_81220C8 -sub_81220C8: @ 81220C8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r1, _081220EC @ =0x0201b000 - ldr r2, _081220F0 @ =0x00000263 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _081221A2 - ldr r0, _081220F4 @ =gUnknown_02039270 - ldrb r0, [r0, 0x2] - cmp r0, 0 - bne _08122100 - movs r0, 0x11 - b _081221A4 - .align 2, 0 -_081220EC: .4byte 0x0201b000 -_081220F0: .4byte 0x00000263 -_081220F4: .4byte gUnknown_02039270 -_081220F8: - movs r0, 0x12 - b _081221A4 -_081220FC: - movs r0, 0x13 - b _081221A4 -_08122100: - movs r5, 0 -_08122102: - ldr r4, _081221B4 @ =gUnknown_02039270 - adds r4, r5, r4 - ldrb r0, [r4] - movs r1, 0x64 - muls r0, r1 - ldr r2, _081221B8 @ =gUnknown_030042FC - adds r0, r2 - movs r1, 0xB - bl GetMonData - ldr r1, _081221BC @ =0x0201b000 - ldr r2, _081221C0 @ =0x00000282 - adds r6, r1, r2 - strh r0, [r6] - ldrb r0, [r4] - movs r1, 0x64 - muls r0, r1 - ldr r2, _081221B8 @ =gUnknown_030042FC - adds r0, r2 - movs r1, 0xC - bl GetMonData - ldr r1, _081221C4 @ =0x0201b280 - strh r0, [r1] - adds r1, r5, 0x1 - lsls r0, r1, 24 - lsrs r5, r0, 24 - mov r10, r1 - cmp r5, 0x2 - bhi _08122198 - ldr r2, _081221C8 @ =0xfffffd7e - adds r2, r6 - mov r9, r2 - movs r0, 0x64 - mov r8, r0 - ldr r7, _081221B8 @ =gUnknown_030042FC -_0812214A: - ldr r0, _081221C0 @ =0x00000282 - add r0, r9 - movs r1, 0 - ldrsh r4, [r0, r1] - ldr r0, _081221B4 @ =gUnknown_02039270 - adds r6, r5, r0 - ldrb r0, [r6] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0xB - bl GetMonData - cmp r4, r0 - beq _081220F8 - movs r1, 0xA0 - lsls r1, 2 - add r1, r9 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0812218E - adds r4, r0, 0 - ldrb r0, [r6] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - movs r1, 0xC - bl GetMonData - cmp r4, r0 - beq _081220FC -_0812218E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _0812214A -_08122198: - mov r2, r10 - lsls r0, r2, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _08122102 -_081221A2: - movs r0, 0xFF -_081221A4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_081221B4: .4byte gUnknown_02039270 -_081221B8: .4byte gUnknown_030042FC -_081221BC: .4byte 0x0201b000 -_081221C0: .4byte 0x00000282 -_081221C4: .4byte 0x0201b280 -_081221C8: .4byte 0xfffffd7e - thumb_func_end sub_81220C8 - - thumb_func_start sub_81221CC -sub_81221CC: @ 81221CC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, _081221E4 @ =gUnknown_02039270 -_081221D6: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081221E8 - movs r0, 0x1 - b _081221F4 - .align 2, 0 -_081221E4: .4byte gUnknown_02039270 -_081221E8: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bls _081221D6 - movs r0, 0 -_081221F4: - pop {r1} - bx r1 - thumb_func_end sub_81221CC - - thumb_func_start sub_81221F8 -sub_81221F8: @ 81221F8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x5 - movs r1, 0x1 - bl sub_806D538 - ldr r5, _08122248 @ =gUnknown_03005CE0 - ldrb r1, [r5] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0812224C @ =gPlayerParty - adds r0, r1 - bl sub_8122030 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08122284 - ldrb r0, [r5] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - bl sub_81221CC - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1 - bne _0812225C - ldr r1, _08122250 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x10] - ldr r1, _08122254 @ =gUnknown_084017D8 - ldr r2, _08122258 @ =gUnknown_084017B0 - movs r0, 0x1 - b _08122270 - .align 2, 0 -_08122248: .4byte gUnknown_03005CE0 -_0812224C: .4byte gPlayerParty -_08122250: .4byte gTasks -_08122254: .4byte gUnknown_084017D8 -_08122258: .4byte gUnknown_084017B0 -_0812225C: - ldr r1, _08122278 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x10] - ldr r1, _0812227C @ =gUnknown_084017D8 - ldr r2, _08122280 @ =gUnknown_084017B0 - movs r0, 0 -_08122270: - movs r3, 0 - bl sub_806E750 - b _0812229E - .align 2, 0 -_08122278: .4byte gTasks -_0812227C: .4byte gUnknown_084017D8 -_08122280: .4byte gUnknown_084017B0 -_08122284: - ldr r1, _081222A4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x10] - ldr r1, _081222A8 @ =gUnknown_084017D8 - ldr r2, _081222AC @ =gUnknown_084017B0 - movs r0, 0x2 - movs r3, 0 - bl sub_806E750 -_0812229E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081222A4: .4byte gTasks -_081222A8: .4byte gUnknown_084017D8 -_081222AC: .4byte gUnknown_084017B0 - thumb_func_end sub_81221F8 - - thumb_func_start sub_81222B0 -sub_81222B0: @ 81222B0 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _081222DC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0812237C - adds r0, r4, 0 - bl sub_806BE38 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _081222E0 - cmp r0, 0x2 - beq _08122354 - b _0812237C - .align 2, 0 -_081222DC: .4byte gPaletteFade -_081222E0: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_806CA38 - ldr r1, _08122320 @ =gUnknown_03005CE0 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - beq _08122334 - ldrb r1, [r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08122324 @ =gPlayerParty - adds r0, r1 - ldr r1, _08122328 @ =gStringVar1 - bl GetMonNickname - adds r0, r4, 0 - bl sub_81221F8 - ldr r1, _0812232C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08122330 @ =sub_812238C - str r1, [r0] - b _08122342 - .align 2, 0 -_08122320: .4byte gUnknown_03005CE0 -_08122324: .4byte gPlayerParty -_08122328: .4byte gStringVar1 -_0812232C: .4byte gTasks -_08122330: .4byte sub_812238C -_08122334: - ldr r0, _0812234C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08122350 @ =sub_81224A8 - str r0, [r1] -_08122342: - adds r0, r4, 0 - bl sub_808B5B4 - b _0812237C - .align 2, 0 -_0812234C: .4byte gTasks -_08122350: .4byte sub_81224A8 -_08122354: - movs r0, 0x5 - bl PlaySE - bl sub_8121E58 - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08122384 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08122388 @ =sub_8122450 - str r1, [r0] -_0812237C: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08122384: .4byte gTasks -_08122388: .4byte sub_8122450 - thumb_func_end sub_81222B0 - - thumb_func_start sub_812238C -sub_812238C: @ 812238C - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - adds r4, r7, 0 - ldr r0, _081223C8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r3, 0x80 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0812244A - ldr r2, _081223CC @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081223D0 - bl GetMenuCursorPos - lsls r0, 24 - cmp r0, 0 - beq _0812244A - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _0812244A - .align 2, 0 -_081223C8: .4byte gPaletteFade -_081223CC: .4byte gMain -_081223D0: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _081223F2 - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _0812244A - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _0812244A -_081223F2: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812243C - movs r0, 0x5 - bl PlaySE - ldr r1, _08122430 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrb r4, [r0, 0x10] - ldr r5, _08122434 @ =gUnknown_084017D8 - ldr r6, _08122438 @ =gUnknown_084017B0 - bl GetMenuCursorPos - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_806E81C - adds r1, r0, 0 - adds r0, r7, 0 - bl _call_via_r1 - b _0812244A - .align 2, 0 -_08122430: .4byte gTasks -_08122434: .4byte gUnknown_084017D8 -_08122438: .4byte gUnknown_084017B0 -_0812243C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0812244A - adds r0, r4, 0 - bl sub_8122838 -_0812244A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_812238C - - thumb_func_start sub_8122450 -sub_8122450: @ 8122450 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08122478 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08122470 - ldr r0, _0812247C @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_08122470: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08122478: .4byte gPaletteFade -_0812247C: .4byte gMain - thumb_func_end sub_8122450 - - thumb_func_start sub_8122480 -sub_8122480: @ 8122480 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _081224A4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0812249A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081224A0 -_0812249A: - adds r0, r2, 0 - bl sub_8122838 -_081224A0: - pop {r0} - bx r0 - .align 2, 0 -_081224A4: .4byte gMain - thumb_func_end sub_8122480 - - thumb_func_start sub_81224A8 -sub_81224A8: @ 81224A8 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_81220C8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _081224D0 - movs r1, 0 - bl sub_806D538 - ldr r0, _081224CC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - b _08122518 - .align 2, 0 -_081224CC: .4byte gTasks -_081224D0: - ldr r0, _081224F8 @ =gUnknown_02039270 - ldrb r0, [r0] - cmp r0, 0 - beq _08122504 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _081224FC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08122500 @ =sub_8122450 - str r1, [r0] - b _08122520 - .align 2, 0 -_081224F8: .4byte gUnknown_02039270 -_081224FC: .4byte gTasks -_08122500: .4byte sub_8122450 -_08122504: - movs r0, 0x20 - bl PlaySE - movs r0, 0xE - movs r1, 0 - bl sub_806D538 - ldr r0, _08122528 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 -_08122518: - lsls r1, 3 - adds r1, r0 - ldr r0, _0812252C @ =sub_8122480 - str r0, [r1] -_08122520: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08122528: .4byte gTasks -_0812252C: .4byte sub_8122480 - thumb_func_end sub_81224A8 - - thumb_func_start sub_8122530 -sub_8122530: @ 8122530 - push {r4,r5,lr} - ldr r5, _08122578 @ =0x0201b260 - ldr r4, _0812257C @ =gUnknown_020384F0 -_08122536: - bl sub_806B124 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08122590 - ldrb r0, [r5] - ldrb r1, [r4] - bl sub_806C994 - ldrb r0, [r5] - movs r1, 0 - bl sub_806C658 - ldrb r1, [r4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08122580 @ =gPlayerParty - adds r0, r1 - ldr r1, _08122584 @ =gStringVar1 - bl GetMonNickname - ldr r1, _08122588 @ =gUnknown_03005CE0 - ldrb r0, [r4] - strb r0, [r1] - ldrb r0, [r5] - bl sub_81221F8 - ldr r0, _0812258C @ =sub_806AEDC - bl SetMainCallback2 - b _0812259C - .align 2, 0 -_08122578: .4byte 0x0201b260 -_0812257C: .4byte gUnknown_020384F0 -_08122580: .4byte gPlayerParty -_08122584: .4byte gStringVar1 -_08122588: .4byte gUnknown_03005CE0 -_0812258C: .4byte sub_806AEDC -_08122590: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08122536 -_0812259C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8122530 - - thumb_func_start sub_81225A4 -sub_81225A4: @ 81225A4 - push {lr} - ldr r2, _081225C8 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r2, _081225CC @ =sub_812238C - movs r0, 0x4 - movs r1, 0xFF - movs r3, 0x5 - bl sub_806AF4C - ldr r0, _081225D0 @ =sub_8122530 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_081225C8: .4byte gPaletteFade -_081225CC: .4byte sub_812238C -_081225D0: .4byte sub_8122530 - thumb_func_end sub_81225A4 - - thumb_func_start sub_81225D4 -sub_81225D4: @ 81225D4 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _0812263C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08122632 - ldr r2, _08122640 @ =gSprites - ldr r1, _08122644 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0xE] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r4, [r0, 0x2E] - lsls r4, 24 - lsrs r4, 24 - adds r0, r3, 0 - bl DestroyTask - ldr r0, _08122648 @ =0x0201b000 - ldr r1, _0812264C @ =0x00000262 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _08122650 @ =gPlayerParty - ldr r1, _08122654 @ =gPlayerPartyCount - ldrb r2, [r1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _08122658 @ =sub_81225A4 - str r5, [sp] - adds r1, r4, 0 - bl sub_809D8BC -_08122632: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812263C: .4byte gPaletteFade -_08122640: .4byte gSprites -_08122644: .4byte gTasks -_08122648: .4byte 0x0201b000 -_0812264C: .4byte 0x00000262 -_08122650: .4byte gPlayerParty -_08122654: .4byte gPlayerPartyCount -_08122658: .4byte sub_81225A4 - thumb_func_end sub_81225D4 - - thumb_func_start sub_812265C -sub_812265C: @ 812265C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0812268C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08122690 @ =sub_81225D4 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812268C: .4byte gTasks -_08122690: .4byte sub_81225D4 - thumb_func_end sub_812265C - - thumb_func_start sub_8122694 -sub_8122694: @ 8122694 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r3, _081226D4 @ =gUnknown_02039270 - ldr r2, _081226D8 @ =gUnknown_03005CE0 -_081226A0: - adds r1, r4, r3 - ldrb r0, [r1] - cmp r0, 0 - bne _081226DC - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r1] - ldrb r0, [r2] - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 25 - movs r2, 0xE0 - lsls r2, 21 - adds r1, r2 - lsrs r1, 24 - bl sub_806BC3C - cmp r4, 0x2 - bne _081226CC - adds r0, r5, 0 - bl sub_806C890 -_081226CC: - adds r0, r5, 0 - bl sub_8122838 - b _08122716 - .align 2, 0 -_081226D4: .4byte gUnknown_02039270 -_081226D8: .4byte gUnknown_03005CE0 -_081226DC: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081226A0 - movs r0, 0x20 - bl PlaySE - movs r0, 0x14 - movs r1, 0xA - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - bl sub_8072DEC - bl sub_806D5A4 - ldr r0, _0812271C @ =gOtherText_NoMoreThreePoke - movs r1, 0x1 - bl sub_806E834 - ldr r1, _08122720 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _08122724 @ =sub_8122728 - str r1, [r0] -_08122716: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812271C: .4byte gOtherText_NoMoreThreePoke -_08122720: .4byte gTasks -_08122724: .4byte sub_8122728 - thumb_func_end sub_8122694 - - thumb_func_start sub_8122728 -sub_8122728: @ 8122728 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08122768 @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08122760 - ldr r0, _0812276C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0812274A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08122760 -_0812274A: - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - bl sub_8072DEC - adds r0, r4, 0 - bl sub_8122838 -_08122760: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08122768: .4byte gUnknown_0202E8F6 -_0812276C: .4byte gMain - thumb_func_end sub_8122728 - - thumb_func_start sub_8122770 -sub_8122770: @ 8122770 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r5, _08122798 @ =gUnknown_03005CE0 - ldr r3, _0812279C @ =gUnknown_02039270 -_0812277C: - adds r2, r4, r3 - ldrb r1, [r2] - ldrb r0, [r5] - adds r0, 0x1 - cmp r1, r0 - bne _081227B4 - movs r1, 0 - strb r1, [r2] - cmp r4, 0 - beq _081227A0 - cmp r4, 0x1 - beq _081227AC - b _081227BE - .align 2, 0 -_08122798: .4byte gUnknown_03005CE0 -_0812279C: .4byte gUnknown_02039270 -_081227A0: - ldrb r0, [r3, 0x1] - strb r0, [r3] - ldrb r0, [r3, 0x2] - strb r0, [r3, 0x1] - strb r4, [r3, 0x2] - b _081227BE -_081227AC: - ldrb r0, [r3, 0x2] - strb r0, [r3, 0x1] - strb r1, [r3, 0x2] - b _081227BE -_081227B4: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0812277C -_081227BE: - ldrb r0, [r5] - movs r1, 0x70 - bl sub_806BC3C - ldr r4, _081227F8 @ =gUnknown_02039270 - ldrb r0, [r4] - cmp r0, 0 - beq _081227DA - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1C - bl sub_806BC3C -_081227DA: - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _081227EC - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2A - bl sub_806BC3C -_081227EC: - adds r0, r6, 0 - bl sub_8122838 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081227F8: .4byte gUnknown_02039270 - thumb_func_end sub_8122770 - - thumb_func_start sub_81227FC -sub_81227FC: @ 81227FC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0xA - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - bl sub_806D538 - ldr r1, _08122830 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08122834 @ =sub_81222B0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08122830: .4byte gTasks -_08122834: .4byte sub_81222B0 - thumb_func_end sub_81227FC - - thumb_func_start sub_8122838 -sub_8122838: @ 8122838 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_81227FC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8122838 - - thumb_func_start sub_8122854 -sub_8122854: @ 8122854 - push {r4,lr} - ldr r1, _08122874 @ =0x0201b000 - movs r2, 0x99 - lsls r2, 2 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0x4 - bhi _081228E0 - lsls r0, 2 - ldr r1, _08122878 @ =_0812287C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08122874: .4byte 0x0201b000 -_08122878: .4byte _0812287C - .align 2, 0 -_0812287C: - .4byte _08122890 - .4byte _081228A4 - .4byte _081228AA - .4byte _081228BE - .4byte _081228D8 -_08122890: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_81228E8 - movs r2, 0x99 - lsls r2, 2 - adds r1, r4, r2 - b _081228CA -_081228A4: - bl sub_806DA98 - b _081228C2 -_081228AA: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_8122950 - movs r2, 0x99 - lsls r2, 2 - adds r1, r4, r2 - b _081228CA -_081228BE: - bl sub_81229B8 -_081228C2: - ldr r1, _081228D4 @ =0x0201b000 - movs r0, 0x99 - lsls r0, 2 - adds r1, r0 -_081228CA: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _081228E0 - .align 2, 0 -_081228D4: .4byte 0x0201b000 -_081228D8: - bl sub_806B908 - movs r0, 0x1 - b _081228E2 -_081228E0: - movs r0, 0 -_081228E2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8122854 - - thumb_func_start sub_81228E8 -sub_81228E8: @ 81228E8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 -_081228F0: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08122948 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08122912 - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x3 - adds r3, r4, 0 - bl sub_806D880 -_08122912: - ldr r0, _0812294C @ =gUnknown_02023A00 - lsls r1, r5, 5 - adds r3, r1, r0 - ldrh r0, [r3] - cmp r0, 0 - beq _08122936 - adds r4, r5, 0x3 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0x3 - bl sub_806D99C - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_806D50C -_08122936: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _081228F0 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08122948: .4byte gPlayerParty -_0812294C: .4byte gUnknown_02023A00 - thumb_func_end sub_81228E8 - - thumb_func_start sub_8122950 -sub_8122950: @ 8122950 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 -_08122958: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _081229B0 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08122984 - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_806DCD4 -_08122984: - ldr r0, _081229B4 @ =gUnknown_02023A00 - lsls r1, r5, 5 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, 0 - beq _0812299E - adds r1, r5, 0x3 - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r2, 0x2] - adds r0, r6, 0 - bl sub_806DCD4 -_0812299E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08122958 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081229B0: .4byte gPlayerParty -_081229B4: .4byte gUnknown_02023A00 - thumb_func_end sub_8122950 - - thumb_func_start sub_81229B8 -sub_81229B8: @ 81229B8 - push {r4-r7,lr} - movs r5, 0 - movs r7, 0x64 - ldr r6, _08122A00 @ =gPlayerParty -_081229C0: - adds r0, r5, 0 - muls r0, r7 - adds r4, r0, r6 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08122A36 - adds r0, r5, 0 - movs r1, 0x3 - adds r2, r4, 0 - bl sub_806E4A4 - adds r0, r4, 0 - bl sub_80A1CD8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08122A04 - cmp r0, 0x6 - beq _08122A04 - subs r2, r0, 0x1 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - movs r1, 0x3 - bl sub_806E104 - b _08122A12 - .align 2, 0 -_08122A00: .4byte gPlayerParty -_08122A04: - adds r2, r5, 0 - muls r2, r7 - adds r2, r6 - adds r0, r5, 0 - movs r1, 0x3 - bl sub_806E294 -_08122A12: - adds r4, r5, 0 - muls r4, r7 - adds r4, r6 - adds r0, r5, 0 - movs r1, 0x3 - adds r2, r4, 0 - bl sub_806E3C0 - adds r0, r5, 0 - movs r1, 0x3 - adds r2, r4, 0 - bl sub_806E050 - adds r0, r5, 0 - movs r1, 0x3 - adds r2, r4, 0 - bl sub_806E630 -_08122A36: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _081229C0 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81229B8 - - thumb_func_start sub_8122A48 -sub_8122A48: @ 8122A48 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _08122AA0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08122A98 - ldr r0, _08122AA4 @ =gTasks - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r0 - movs r0, 0x1E - strh r0, [r4, 0x8] - ldr r5, _08122AA8 @ =gUnknown_02023A00 - ldrh r1, [r5] - adds r0, r6, 0 - movs r2, 0 - bl sub_806D4AC - ldrh r1, [r5, 0x20] - adds r0, r6, 0 - movs r2, 0x1 - bl sub_806D4AC - adds r5, 0x40 - ldrh r1, [r5] - adds r0, r6, 0 - movs r2, 0x2 - bl sub_806D4AC - ldr r0, _08122AAC @ =sub_8122AB8 - str r0, [r4] - ldr r0, _08122AB0 @ =0x0201b000 - ldr r1, _08122AB4 @ =0x00000261 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] -_08122A98: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08122AA0: .4byte gPaletteFade -_08122AA4: .4byte gTasks -_08122AA8: .4byte gUnknown_02023A00 -_08122AAC: .4byte sub_8122AB8 -_08122AB0: .4byte 0x0201b000 -_08122AB4: .4byte 0x00000261 - thumb_func_end sub_8122A48 - - thumb_func_start sub_8122AB8 -sub_8122AB8: @ 8122AB8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08122AFC @ =gUnknown_02023A00 - ldrh r1, [r0, 0x20] - adds r0, 0x40 - ldrh r2, [r0] - adds r0, r4, 0 - bl sub_806D3B4 - ldr r1, _08122B00 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08122AF4 - ldr r0, _08122B04 @ =sub_8122B10 - str r0, [r1] - ldr r0, _08122B08 @ =0x0201b000 - ldr r1, _08122B0C @ =0x00000261 - adds r0, r1 - movs r1, 0x2 - strb r1, [r0] - movs r0, 0x78 - bl PlaySE -_08122AF4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08122AFC: .4byte gUnknown_02023A00 -_08122B00: .4byte gTasks -_08122B04: .4byte sub_8122B10 -_08122B08: .4byte 0x0201b000 -_08122B0C: .4byte 0x00000261 - thumb_func_end sub_8122AB8 - - thumb_func_start sub_8122B10 -sub_8122B10: @ 8122B10 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0 - mov r8, r0 - ldr r1, _08122B5C @ =gUnknown_02023A00 - mov r10, r1 - ldr r2, _08122B60 @ =gStringVar1 - mov r9, r2 -_08122B2E: - mov r1, r8 - lsls r0, r1, 5 - mov r2, r10 - adds r6, r0, r2 - ldrh r1, [r6] - adds r7, r0, 0 - cmp r1, 0 - beq _08122BDA - mov r4, r8 - adds r4, 0x3 - lsls r0, r4, 24 - lsrs r5, r0, 24 - ldrh r2, [r6, 0x10] - ldrh r3, [r6, 0x12] - adds r0, r5, 0 - movs r1, 0x3 - bl sub_806E420 - ldrh r0, [r6, 0x10] - cmp r0, 0 - bne _08122B64 - movs r2, 0x7 - b _08122B76 - .align 2, 0 -_08122B5C: .4byte gUnknown_02023A00 -_08122B60: .4byte gStringVar1 -_08122B64: - ldr r1, _08122B88 @ =gUnknown_02023A14 - adds r0, r7, r1 - ldr r0, [r0] - bl pokemon_ailments_get_primary - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _08122B8C -_08122B76: - lsls r0, r4, 24 - lsrs r0, 24 - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x3 - bl sub_806E104 - b _08122B96 - .align 2, 0 -_08122B88: .4byte gUnknown_02023A14 -_08122B8C: - ldrb r2, [r6, 0xF] - adds r0, r5, 0 - movs r1, 0x3 - bl sub_806E1F4 -_08122B96: - mov r2, r10 - adds r6, r7, r2 - ldrh r0, [r6] - ldrb r1, [r6, 0x1C] - lsls r4, 24 - lsrs r4, 24 - ldr r2, _08122C0C @ =gUnknown_02023A04 - adds r5, r7, r2 - str r5, [sp] - movs r2, 0x3 - adds r3, r4, 0 - bl sub_806E35C - mov r0, r9 - adds r1, r5, 0 - bl StringCopy - mov r0, r9 - bl StringGetEnd10 - mov r0, r9 - bl sub_814A568 - adds r0, r4, 0 - movs r1, 0x3 - mov r2, r9 - bl box_print - ldrh r2, [r6, 0x10] - ldrh r3, [r6, 0x12] - adds r0, r4, 0 - movs r1, 0x3 - bl sub_806E574 -_08122BDA: - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x2 - bls _08122B2E - ldr r1, _08122C10 @ =gTasks - ldr r2, [sp, 0x4] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - ldr r1, _08122C14 @ =sub_8122C18 - str r1, [r0] - movs r1, 0 - strh r1, [r0, 0x8] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08122C0C: .4byte gUnknown_02023A04 -_08122C10: .4byte gTasks -_08122C14: .4byte sub_8122C18 - thumb_func_end sub_8122B10 - - thumb_func_start sub_8122C18 -sub_8122C18: @ 8122C18 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08122C58 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bne _08122C4E - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _08122C5C @ =sub_8122450 - str r0, [r4] -_08122C4E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08122C58: .4byte gTasks -_08122C5C: .4byte sub_8122450 - thumb_func_end sub_8122C18 - - thumb_func_start unref_sub_8122C60 -unref_sub_8122C60: @ 8122C60 - push {r4,r5,lr} - ldr r1, _08122C80 @ =0x0201b000 - movs r2, 0x99 - lsls r2, 2 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0x7 - bls _08122C76 - b _08122D8A -_08122C76: - lsls r0, 2 - ldr r1, _08122C84 @ =_08122C88 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08122C80: .4byte 0x0201b000 -_08122C84: .4byte _08122C88 - .align 2, 0 -_08122C88: - .4byte _08122CA8 - .4byte _08122CE8 - .4byte _08122CEE - .4byte _08122D02 - .4byte _08122D2C - .4byte _08122D32 - .4byte _08122D44 - .4byte _08122D5C -_08122CA8: - ldr r0, _08122CD0 @ =0x00000266 - adds r5, r4, r0 - movs r1, 0 - ldrsh r3, [r5, r1] - ldr r0, _08122CD4 @ =gPlayerPartyCount - ldrb r0, [r0] - cmp r3, r0 - bge _08122CDC - movs r2, 0x98 - lsls r2, 2 - adds r0, r4, r2 - ldrb r0, [r0] - ldrb r1, [r5] - movs r2, 0x64 - muls r2, r3 - ldr r3, _08122CD8 @ =gPlayerParty - adds r2, r3 - bl sub_806D90C - b _08122D84 - .align 2, 0 -_08122CD0: .4byte 0x00000266 -_08122CD4: .4byte gPlayerPartyCount -_08122CD8: .4byte gPlayerParty -_08122CDC: - movs r0, 0 - strh r0, [r5] - movs r0, 0x99 - lsls r0, 2 - adds r1, r4, r0 - b _08122D50 -_08122CE8: - bl sub_806DA98 - b _08122D48 -_08122CEE: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_806DC34 - movs r2, 0x99 - lsls r2, 2 - adds r1, r4, r2 - b _08122D50 -_08122D02: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - ldr r2, _08122D28 @ =0x00000266 - adds r5, r4, r2 - ldrb r1, [r5] - bl sub_806BD58 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08122D84 - movs r0, 0 - strh r0, [r5] - movs r0, 0x99 - lsls r0, 2 - adds r1, r4, r0 - b _08122D50 - .align 2, 0 -_08122D28: .4byte 0x00000266 -_08122D2C: - bl sub_806E334 - b _08122D48 -_08122D32: - bl sub_806E0C4 - ldr r1, _08122D40 @ =0x0201b000 - movs r0, 0x99 - lsls r0, 2 - adds r1, r0 - b _08122D50 - .align 2, 0 -_08122D40: .4byte 0x0201b000 -_08122D44: - bl sub_806BCE8 -_08122D48: - ldr r1, _08122D58 @ =0x0201b000 - movs r2, 0x99 - lsls r2, 2 - adds r1, r2 -_08122D50: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08122D8A - .align 2, 0 -_08122D58: .4byte 0x0201b000 -_08122D5C: - ldr r0, _08122D80 @ =0x00000266 - adds r5, r4, r0 - ldrb r0, [r5] - bl sub_806B58C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08122D84 - movs r1, 0 - strh r1, [r5] - movs r2, 0x99 - lsls r2, 2 - adds r0, r4, r2 - strh r1, [r0] - movs r0, 0x1 - b _08122D8C - .align 2, 0 -_08122D80: .4byte 0x00000266 -_08122D84: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_08122D8A: - movs r0, 0 -_08122D8C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end unref_sub_8122C60 - - thumb_func_start sub_8122D94 -sub_8122D94: @ 8122D94 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08122DCC @ =gUnknown_03005CE0 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08122DD0 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2D - bl GetMonData - adds r2, r0, 0 - cmp r2, 0 - bne _08122DE0 - ldr r1, _08122DD4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x10] - ldr r1, _08122DD8 @ =gUnknown_08401810 - ldr r2, _08122DDC @ =gUnknown_084017F0 - movs r0, 0 - movs r3, 0 - bl sub_806E750 - b _08122DFA - .align 2, 0 -_08122DCC: .4byte gUnknown_03005CE0 -_08122DD0: .4byte gPlayerParty -_08122DD4: .4byte gTasks -_08122DD8: .4byte gUnknown_08401810 -_08122DDC: .4byte gUnknown_084017F0 -_08122DE0: - ldr r1, _08122E00 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x10] - ldr r1, _08122E04 @ =gUnknown_08401810 - ldr r2, _08122E08 @ =gUnknown_084017F0 - movs r0, 0x1 - movs r3, 0 - bl sub_806E750 -_08122DFA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08122E00: .4byte gTasks -_08122E04: .4byte gUnknown_08401810 -_08122E08: .4byte gUnknown_084017F0 - thumb_func_end sub_8122D94 - - thumb_func_start sub_8122E0C -sub_8122E0C: @ 8122E0C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08122E34 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08122E9C - adds r0, r4, 0 - bl sub_806BD80 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _08122E38 - cmp r0, 0x2 - beq _08122E84 - b _08122E9C - .align 2, 0 -_08122E34: .4byte gPaletteFade -_08122E38: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_806CA38 - ldr r1, _08122E70 @ =gUnknown_03005CE0 - strb r0, [r1] - ldrb r1, [r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08122E74 @ =gPlayerParty - adds r0, r1 - ldr r1, _08122E78 @ =gStringVar1 - bl GetMonNickname - adds r0, r4, 0 - bl sub_8122D94 - ldr r1, _08122E7C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08122E80 @ =sub_8122EAC - str r1, [r0] - b _08122E9C - .align 2, 0 -_08122E70: .4byte gUnknown_03005CE0 -_08122E74: .4byte gPlayerParty -_08122E78: .4byte gStringVar1 -_08122E7C: .4byte gTasks -_08122E80: .4byte sub_8122EAC -_08122E84: - movs r0, 0x5 - bl PlaySE - ldr r1, _08122EA4 @ =gUnknown_03005CE0 - movs r0, 0xFF - strb r0, [r1] - ldr r1, _08122EA8 @ =gUnknown_0202E8CC - movs r0, 0xFF - strh r0, [r1] - adds r0, r4, 0 - bl sub_8123138 -_08122E9C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08122EA4: .4byte gUnknown_03005CE0 -_08122EA8: .4byte gUnknown_0202E8CC - thumb_func_end sub_8122E0C - - thumb_func_start sub_8122EAC -sub_8122EAC: @ 8122EAC - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - adds r4, r7, 0 - ldr r0, _08122EE8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r3, 0x80 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _08122F6A - ldr r2, _08122EEC @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08122EF0 - bl GetMenuCursorPos - lsls r0, 24 - cmp r0, 0 - beq _08122F6A - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _08122F6A - .align 2, 0 -_08122EE8: .4byte gPaletteFade -_08122EEC: .4byte gMain -_08122EF0: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08122F12 - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _08122F6A - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _08122F6A -_08122F12: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08122F5C - movs r0, 0x5 - bl PlaySE - ldr r1, _08122F50 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrb r4, [r0, 0x10] - ldr r5, _08122F54 @ =gUnknown_08401810 - ldr r6, _08122F58 @ =gUnknown_084017F0 - bl GetMenuCursorPos - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_806E81C - adds r1, r0, 0 - adds r0, r7, 0 - bl _call_via_r1 - b _08122F6A - .align 2, 0 -_08122F50: .4byte gTasks -_08122F54: .4byte gUnknown_08401810 -_08122F58: .4byte gUnknown_084017F0 -_08122F5C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08122F6A - adds r0, r4, 0 - bl sub_81230F4 -_08122F6A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8122EAC - - thumb_func_start sub_8122F70 -sub_8122F70: @ 8122F70 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08122F88 @ =gUnknown_0202E8CC - ldr r1, _08122F8C @ =gUnknown_03005CE0 - ldrb r1, [r1] - strh r1, [r2] - bl sub_8123138 - pop {r0} - bx r0 - .align 2, 0 -_08122F88: .4byte gUnknown_0202E8CC -_08122F8C: .4byte gUnknown_03005CE0 - thumb_func_end sub_8122F70 - - thumb_func_start sub_8122F90 -sub_8122F90: @ 8122F90 - push {r4,r5,lr} - ldr r5, _08122FD8 @ =0x0201b260 - ldr r4, _08122FDC @ =gUnknown_020384F0 -_08122F96: - bl sub_806B124 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08122FF0 - ldrb r0, [r5] - ldrb r1, [r4] - bl sub_806C994 - ldrb r0, [r5] - movs r1, 0 - bl sub_806BF74 - ldrb r1, [r4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08122FE0 @ =gPlayerParty - adds r0, r1 - ldr r1, _08122FE4 @ =gStringVar1 - bl GetMonNickname - ldr r1, _08122FE8 @ =gUnknown_03005CE0 - ldrb r0, [r4] - strb r0, [r1] - ldrb r0, [r5] - bl sub_8122D94 - ldr r0, _08122FEC @ =sub_806AEDC - bl SetMainCallback2 - b _08122FFC - .align 2, 0 -_08122FD8: .4byte 0x0201b260 -_08122FDC: .4byte gUnknown_020384F0 -_08122FE0: .4byte gPlayerParty -_08122FE4: .4byte gStringVar1 -_08122FE8: .4byte gUnknown_03005CE0 -_08122FEC: .4byte sub_806AEDC -_08122FF0: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08122F96 -_08122FFC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8122F90 - - thumb_func_start sub_8123004 -sub_8123004: @ 8123004 - push {lr} - ldr r2, _08123028 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r2, _0812302C @ =sub_8122EAC - movs r0, 0x6 - movs r1, 0xFF - movs r3, 0x5 - bl sub_806AF4C - ldr r0, _08123030 @ =sub_8122F90 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08123028: .4byte gPaletteFade -_0812302C: .4byte sub_8122EAC -_08123030: .4byte sub_8122F90 - thumb_func_end sub_8123004 - - thumb_func_start sub_8123034 -sub_8123034: @ 8123034 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _0812309C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08123092 - ldr r2, _081230A0 @ =gSprites - ldr r1, _081230A4 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0xE] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r4, [r0, 0x2E] - lsls r4, 24 - lsrs r4, 24 - adds r0, r3, 0 - bl DestroyTask - ldr r0, _081230A8 @ =0x0201b000 - ldr r1, _081230AC @ =0x00000262 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _081230B0 @ =gPlayerParty - ldr r1, _081230B4 @ =gPlayerPartyCount - ldrb r2, [r1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _081230B8 @ =sub_8123004 - str r5, [sp] - adds r1, r4, 0 - bl sub_809D8BC -_08123092: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812309C: .4byte gPaletteFade -_081230A0: .4byte gSprites -_081230A4: .4byte gTasks -_081230A8: .4byte 0x0201b000 -_081230AC: .4byte 0x00000262 -_081230B0: .4byte gPlayerParty -_081230B4: .4byte gPlayerPartyCount -_081230B8: .4byte sub_8123004 - thumb_func_end sub_8123034 - - thumb_func_start sub_81230BC -sub_81230BC: @ 81230BC - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _081230EC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _081230F0 @ =sub_8123034 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081230EC: .4byte gTasks -_081230F0: .4byte sub_8123034 - thumb_func_end sub_81230BC - - thumb_func_start sub_81230F4 -sub_81230F4: @ 81230F4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - movs r0, 0x14 - movs r1, 0xA - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - bl sub_8072DEC - movs r0, 0xF - movs r1, 0 - bl sub_806D538 - ldr r1, _08123130 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08123134 @ =sub_8122E0C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08123130: .4byte gTasks -_08123134: .4byte sub_8122E0C - thumb_func_end sub_81230F4 - - thumb_func_start sub_8123138 -sub_8123138: @ 8123138 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08123168 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0812316C @ =sub_8123170 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08123168: .4byte gTasks -_0812316C: .4byte sub_8123170 - thumb_func_end sub_8123138 - - thumb_func_start sub_8123170 -sub_8123170: @ 8123170 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0812319C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08123194 - ldr r0, _081231A0 @ =gUnknown_0300485C - ldr r1, _081231A4 @ =sub_81231AC - str r1, [r0] - ldr r0, _081231A8 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_08123194: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812319C: .4byte gPaletteFade -_081231A0: .4byte gUnknown_0300485C -_081231A4: .4byte sub_81231AC -_081231A8: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_8123170 - - thumb_func_start sub_81231AC -sub_81231AC: @ 81231AC - push {lr} - bl pal_fill_black - ldr r0, _081231C0 @ =sub_81231C4 - movs r1, 0xA - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_081231C0: .4byte sub_81231C4 - thumb_func_end sub_81231AC - - thumb_func_start sub_81231C4 -sub_81231C4: @ 81231C4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081231E4 - adds r0, r4, 0 - bl DestroyTask - bl ScriptContext2_Disable - bl EnableBothScriptContexts -_081231E4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81231C4 - - thumb_func_start sub_81231EC -sub_81231EC: @ 81231EC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08123210 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812320A - ldr r0, _08123214 @ =sub_8123244 - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_0812320A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08123210: .4byte gPaletteFade -_08123214: .4byte sub_8123244 - thumb_func_end sub_81231EC - - thumb_func_start sub_8123218 -sub_8123218: @ 8123218 - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - ldr r0, _08123240 @ =sub_81231EC - movs r1, 0x1 - bl CreateTask - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08123240: .4byte sub_81231EC - thumb_func_end sub_8123218 - - thumb_func_start sub_8123244 -sub_8123244: @ 8123244 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - ldr r1, _08123268 @ =gMain - ldr r2, _0812326C @ =0x0000043c - adds r0, r1, r2 - ldrb r0, [r0] - mov r9, r1 - cmp r0, 0x8 - bhi _08123298 - lsls r0, 2 - ldr r1, _08123270 @ =_08123274 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08123268: .4byte gMain -_0812326C: .4byte 0x0000043c -_08123270: .4byte _08123274 - .align 2, 0 -_08123274: - .4byte _08123298 - .4byte _08123384 - .4byte _081233E8 - .4byte _08123484 - .4byte _081234A0 - .4byte _08123504 - .4byte _08123598 - .4byte _08123678 - .4byte _081236B0 -_08123298: - movs r0, 0 - bl SetVBlankCallback - bl remove_some_task - movs r3, 0xC0 - lsls r3, 19 - movs r4, 0xC0 - lsls r4, 9 - add r0, sp, 0xC - mov r9, r0 - add r2, sp, 0x8 - movs r6, 0 - ldr r1, _08123368 @ =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _0812336C @ =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r8, r0 -_081232C0: - strh r6, [r2] - add r0, sp, 0x8 - str r0, [r1] - str r3, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r5 - subs r4, r5 - cmp r4, r5 - bhi _081232C0 - strh r6, [r2] - add r2, sp, 0x8 - str r2, [r1] - str r3, [r1, 0x4] - lsrs r0, r4, 1 - mov r2, r8 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 19 - movs r3, 0x80 - lsls r3, 3 - movs r4, 0 - str r4, [sp, 0xC] - ldr r2, _08123368 @ =0x040000d4 - mov r1, r9 - str r1, [r2] - str r0, [r2, 0x4] - lsrs r0, r3, 2 - movs r1, 0x85 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r1, 0xA0 - lsls r1, 19 - add r0, sp, 0x8 - strh r4, [r0] - str r0, [r2] - str r1, [r2, 0x4] - lsrs r3, 1 - movs r4, 0x81 - lsls r4, 24 - orrs r3, r4 - str r3, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r1, _08123370 @ =gUnknown_02039274 - ldr r0, _08123374 @ =0x02017000 - str r0, [r1] - adds r3, r0, 0 - ldr r5, _08123378 @ =0x000010fc - ldr r0, _0812337C @ =gMain - mov r9, r0 - add r1, sp, 0x8 - movs r7, 0 - movs r6, 0x80 - lsls r6, 5 - ldr r0, _0812336C @ =0x81000800 - mov r8, r0 -_08123338: - strh r7, [r1] - add r0, sp, 0x8 - str r0, [r2] - str r3, [r2, 0x4] - mov r0, r8 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - adds r3, r6 - subs r5, r6 - cmp r5, r6 - bhi _08123338 - strh r7, [r1] - add r1, sp, 0x8 - str r1, [r2] - str r3, [r2, 0x4] - lsrs r0, r5, 1 - orrs r0, r4 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r1, _08123380 @ =0x0000043c - add r1, r9 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_08123368: .4byte 0x040000d4 -_0812336C: .4byte 0x81000800 -_08123370: .4byte gUnknown_02039274 -_08123374: .4byte 0x02017000 -_08123378: .4byte 0x000010fc -_0812337C: .4byte gMain -_08123380: .4byte 0x0000043c -_08123384: - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl sub_807C828 - movs r4, 0 - ldr r0, _081233D4 @ =gUnknown_08396FC4 - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0xF0 - movs r2, 0 -_081233A4: - lsls r0, r4, 2 - adds r0, r1, r0 - str r2, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x13 - bls _081233A4 - bl InitMapMusic - bl ResetMapMusic - ldr r2, _081233D8 @ =gSpriteCoordOffsetX - ldr r1, _081233DC @ =gSpriteCoordOffsetY - movs r0, 0 - strh r0, [r1] - strh r0, [r2] - ldr r1, _081233E0 @ =gMain - ldr r2, _081233E4 @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_081233D4: .4byte gUnknown_08396FC4 -_081233D8: .4byte gSpriteCoordOffsetX -_081233DC: .4byte gSpriteCoordOffsetY -_081233E0: .4byte gMain -_081233E4: .4byte 0x0000043c -_081233E8: - movs r4, 0 - ldr r5, _08123454 @ =gUnknown_08401CF8 -_081233EC: - lsls r0, r4, 3 - adds r0, r5 - bl LoadCompressedObjectPic - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081233EC - ldr r0, _08123458 @ =gUnknown_08401D18 - bl LoadSpritePalettes - ldr r0, _0812345C @ =gCableCarMtChimneyTilemap - ldr r4, _08123460 @ =0x02019000 - adds r1, r4, 0 - bl sub_800D238 - ldr r0, _08123464 @ =gCableCarTreeTilemap - movs r2, 0xB4 - lsls r2, 1 - adds r1, r4, r2 - bl sub_800D238 - ldr r0, _08123468 @ =gCableCarMountainTilemap - movs r2, 0xA5 - lsls r2, 3 - adds r1, r4, r2 - bl sub_800D238 - ldr r0, _0812346C @ =gCableCarPylonStemTilemap - ldr r1, _08123470 @ =0x000009d8 - adds r4, r1 - adds r1, r4, 0 - bl sub_800D238 - ldr r0, _08123474 @ =gCableCarBG_Pal - movs r1, 0 - movs r2, 0x80 - bl LoadPalette - ldr r0, _08123478 @ =gCableCarBG_Gfx - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r1, _0812347C @ =gMain - ldr r2, _08123480 @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_08123454: .4byte gUnknown_08401CF8 -_08123458: .4byte gUnknown_08401D18 -_0812345C: .4byte gCableCarMtChimneyTilemap -_08123460: .4byte 0x02019000 -_08123464: .4byte gCableCarTreeTilemap -_08123468: .4byte gCableCarMountainTilemap -_0812346C: .4byte gCableCarPylonStemTilemap -_08123470: .4byte 0x000009d8 -_08123474: .4byte gCableCarBG_Pal -_08123478: .4byte gCableCarBG_Gfx -_0812347C: .4byte gMain -_08123480: .4byte 0x0000043c -_08123484: - bl sub_8124118 - bl RunTasks - ldr r1, _08123498 @ =gMain - ldr r0, _0812349C @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_08123498: .4byte gMain -_0812349C: .4byte 0x0000043c -_081234A0: - ldr r0, _081234B4 @ =gUnknown_02039274 - ldr r0, [r0] - ldrb r0, [r0, 0x2] - cmp r0, 0x7 - bne _081234BC - ldr r1, _081234B8 @ =0x0000043c - add r1, r9 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_081234B4: .4byte gUnknown_02039274 -_081234B8: .4byte 0x0000043c -_081234BC: - ldr r0, _081234FC @ =gUnknown_08396FC4 - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0xF0 - ldr r0, [r1] - cmp r0, 0 - bne _081234CC - b _0812370E -_081234CC: - movs r4, 0 - adds r3, r1, 0 - movs r5, 0xD - negs r5, r5 -_081234D4: - lsls r0, r4, 2 - adds r0, r3, r0 - ldr r2, [r0] - cmp r2, 0 - beq _081234E6 - ldrb r1, [r2, 0x5] - adds r0, r5, 0 - ands r0, r1 - strb r0, [r2, 0x5] -_081234E6: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x13 - bls _081234D4 - ldr r1, _08123500 @ =0x0000043c - add r1, r9 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_081234FC: .4byte gUnknown_08396FC4 -_08123500: .4byte 0x0000043c -_08123504: - ldr r0, _08123578 @ =0x0600e800 - ldr r5, _0812357C @ =0x02019168 - movs r1, 0x20 - str r1, [sp] - movs r1, 0xF - str r1, [sp, 0x4] - adds r1, r5, 0 - movs r2, 0 - movs r3, 0x11 - bl sub_8124F08 - ldr r0, _08123580 @ =0x0600f000 - movs r2, 0xF0 - lsls r2, 2 - adds r1, r5, r2 - movs r2, 0x1E - str r2, [sp] - movs r2, 0x14 - mov r9, r2 - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8124F08 - ldr r0, _08123584 @ =gUnknown_02039274 - mov r8, r0 - ldr r0, [r0] - ldr r6, _08123588 @ =0x000008fc - adds r0, r6 - ldr r1, _0812358C @ =gCableCarPylonHookTilemapEntries - movs r2, 0x5 - str r2, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8124F08 - mov r1, r8 - ldr r0, [r1] - adds r0, r6 - movs r2, 0x87 - lsls r2, 4 - adds r5, r2 - str r4, [sp] - mov r1, r9 - str r1, [sp, 0x4] - adds r1, r5, 0 - movs r2, 0 - movs r3, 0x2 - bl sub_8124F08 - ldr r1, _08123590 @ =gMain - ldr r2, _08123594 @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_08123578: .4byte 0x0600e800 -_0812357C: .4byte 0x02019168 -_08123580: .4byte 0x0600f000 -_08123584: .4byte gUnknown_02039274 -_08123588: .4byte 0x000008fc -_0812358C: .4byte gCableCarPylonHookTilemapEntries -_08123590: .4byte gMain -_08123594: .4byte 0x0000043c -_08123598: - ldr r0, _08123664 @ =gUnknown_0202E8CC - ldrb r0, [r0] - bl sub_81248AC - ldr r0, _08123668 @ =gUnknown_02039274 - mov r8, r0 - ldr r0, [r0] - adds r0, 0xFC - ldr r4, _0812366C @ =0x02019090 - movs r6, 0xC - str r6, [sp] - movs r5, 0x3 - str r5, [sp, 0x4] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0xE - bl sub_8124F08 - mov r1, r8 - ldr r0, [r1] - adds r0, 0xFC - adds r1, r4, 0 - adds r1, 0x48 - str r6, [sp] - str r5, [sp, 0x4] - movs r2, 0xC - movs r3, 0x11 - bl sub_8124F08 - mov r2, r8 - ldr r0, [r2] - adds r0, 0xFC - adds r1, r4, 0 - adds r1, 0x90 - str r6, [sp] - str r5, [sp, 0x4] - movs r2, 0x18 - movs r3, 0x14 - bl sub_8124F08 - mov r1, r8 - ldr r0, [r1] - adds r0, 0xFC - movs r2, 0x90 - negs r2, r2 - adds r2, r4 - mov r9, r2 - str r6, [sp] - str r5, [sp, 0x4] - mov r1, r9 - movs r2, 0 - movs r3, 0x11 - bl sub_8124F08 - mov r1, r8 - ldr r0, [r1] - adds r0, 0xFC - subs r4, 0x48 - str r6, [sp] - str r5, [sp, 0x4] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x14 - bl sub_8124F08 - mov r2, r8 - ldr r0, [r2] - adds r0, 0xFC - str r6, [sp] - str r5, [sp, 0x4] - mov r1, r9 - movs r2, 0xC - movs r3, 0x14 - bl sub_8124F08 - mov r1, r8 - ldr r0, [r1] - adds r0, 0xFC - str r6, [sp] - str r5, [sp, 0x4] - adds r1, r4, 0 - movs r2, 0xC - movs r3, 0x17 - bl sub_8124F08 - mov r2, r8 - ldr r0, [r2] - adds r0, 0xFC - str r6, [sp] - str r5, [sp, 0x4] - mov r1, r9 - movs r2, 0x18 - movs r3, 0x17 - bl sub_8124F08 - ldr r1, _08123670 @ =gMain - ldr r0, _08123674 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_08123664: .4byte gUnknown_0202E8CC -_08123668: .4byte gUnknown_02039274 -_0812366C: .4byte 0x02019090 -_08123670: .4byte gMain -_08123674: .4byte 0x0000043c -_08123678: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r1, 0x3 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _081236A4 @ =0x000001a9 - movs r1, 0x1 - bl FadeInNewBGM - movs r0, 0x1 - bl sub_8123FBC - ldr r1, _081236A8 @ =gMain - ldr r2, _081236AC @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_081236A4: .4byte 0x000001a9 -_081236A8: .4byte gMain -_081236AC: .4byte 0x0000043c -_081236B0: - ldr r3, _081236E4 @ =0x04000208 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _081236E8 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r0, _081236EC @ =sub_8123C40 - bl SetVBlankCallback - ldr r0, _081236F0 @ =mainloop - bl SetMainCallback2 - ldr r0, _081236F4 @ =sub_8123878 - movs r1, 0 - bl CreateTask - ldr r0, _081236F8 @ =gUnknown_0202E8CC - ldrh r0, [r0] - cmp r0, 0 - bne _08123700 - ldr r0, _081236FC @ =sub_81239E4 - b _08123702 - .align 2, 0 -_081236E4: .4byte 0x04000208 -_081236E8: .4byte 0x04000200 -_081236EC: .4byte sub_8123C40 -_081236F0: .4byte mainloop -_081236F4: .4byte sub_8123878 -_081236F8: .4byte gUnknown_0202E8CC -_081236FC: .4byte sub_81239E4 -_08123700: - ldr r0, _0812371C @ =sub_8123AF8 -_08123702: - movs r1, 0x1 - bl CreateTask - ldr r1, _08123720 @ =gUnknown_02039274 - ldr r1, [r1] -_0812370C: - strb r0, [r1] -_0812370E: - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812371C: .4byte sub_8123AF8 -_08123720: .4byte gUnknown_02039274 - thumb_func_end sub_8123244 - - thumb_func_start mainloop -mainloop: @ 8123724 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - bl MapMusicMain - pop {r0} - bx r0 - thumb_func_end mainloop - - thumb_func_start sub_8123740 -sub_8123740: @ 8123740 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r4, 0 - movs r0, 0 - bl sub_8123FBC - ldr r0, _08123854 @ =gSpriteCoordOffsetX - strh r4, [r0] - movs r0, 0 - bl sub_807C9B4 - add r7, sp, 0x4 - ldr r0, _08123858 @ =gUnknown_08396FC4 - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0xF0 - movs r2, 0 -_08123766: - lsls r0, r4, 2 - adds r0, r1, r0 - str r2, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x13 - bls _08123766 - bl ResetTasks - bl ResetSpriteData - bl ResetPaletteFade - ldr r2, _0812385C @ =0x02000000 - movs r3, 0x80 - lsls r3, 10 - movs r5, 0 - ldr r1, _08123860 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - ldr r6, _08123864 @ =0x85000400 - movs r0, 0x85 - lsls r0, 24 - mov r12, r0 -_08123798: - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _08123798 - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _08123868 @ =gUnknown_02039274 - movs r0, 0 - str r0, [r1] - movs r3, 0xC0 - lsls r3, 19 - movs r4, 0xC0 - lsls r4, 9 - adds r2, r7, 0 - movs r6, 0 - ldr r1, _08123860 @ =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r0, _0812386C @ =0x81000800 - mov r12, r0 - movs r0, 0x81 - lsls r0, 24 - mov r8, r0 -_081237E0: - strh r6, [r2] - str r2, [r1] - str r3, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r5 - subs r4, r5 - cmp r4, r5 - bhi _081237E0 - strh r6, [r7] - str r7, [r1] - str r3, [r1, 0x4] - lsrs r0, r4, 1 - mov r2, r8 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 19 - movs r3, 0x80 - lsls r3, 3 - movs r4, 0 - str r4, [sp] - ldr r2, _08123860 @ =0x040000d4 - mov r1, sp - str r1, [r2] - str r0, [r2, 0x4] - lsrs r0, r3, 2 - movs r1, 0x85 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r0, 0xA0 - lsls r0, 19 - strh r4, [r7] - str r7, [r2] - str r0, [r2, 0x4] - lsrs r3, 1 - movs r0, 0x81 - lsls r0, 24 - orrs r3, r0 - str r3, [r2, 0x8] - ldr r0, [r2, 0x8] - bl warp_in - ldr r0, _08123870 @ =gUnknown_0300485C - str r4, [r0] - ldr r0, _08123874 @ =CB2_LoadMap - bl SetMainCallback2 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08123854: .4byte gSpriteCoordOffsetX -_08123858: .4byte gUnknown_08396FC4 -_0812385C: .4byte 0x02000000 -_08123860: .4byte 0x040000d4 -_08123864: .4byte 0x85000400 -_08123868: .4byte gUnknown_02039274 -_0812386C: .4byte 0x81000800 -_08123870: .4byte gUnknown_0300485C -_08123874: .4byte CB2_LoadMap - thumb_func_end sub_8123740 - - thumb_func_start sub_8123878 -sub_8123878: @ 8123878 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r5, _081238A4 @ =gUnknown_02039274 - ldr r3, [r5] - ldrh r0, [r3, 0x6] - adds r0, 0x1 - strh r0, [r3, 0x6] - ldrb r2, [r3, 0x1] - adds r7, r5, 0 - cmp r2, 0x2 - beq _0812397E - cmp r2, 0x2 - bgt _081238A8 - cmp r2, 0 - beq _081238B6 - cmp r2, 0x1 - beq _081238D0 - b _081239D6 - .align 2, 0 -_081238A4: .4byte gUnknown_02039274 -_081238A8: - cmp r2, 0x3 - bne _081238AE - b _081239A4 -_081238AE: - cmp r2, 0xFF - bne _081238B4 - b _081239BC -_081238B4: - b _081239D6 -_081238B6: - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r3, 0x4] - cmp r0, r1 - beq _081238C2 - b _081239D6 -_081238C2: - ldrb r0, [r3, 0x2] - bl DoWeatherEffect - ldr r1, [r5] - movs r0, 0x1 - strb r0, [r1, 0x1] - b _081239D6 -_081238D0: - ldrb r0, [r3, 0x2] - cmp r0, 0x2 - beq _08123924 - cmp r0, 0x7 - beq _081238DC - b _081239D6 -_081238DC: - ldr r0, _08123920 @ =gUnknown_08396FC4 - ldr r0, [r0] - adds r2, r0, 0 - adds r2, 0xF0 - ldr r0, [r2] - cmp r0, 0 - beq _081239D6 - ldrb r1, [r0, 0x5] - movs r0, 0xC - ands r0, r1 - cmp r0, 0 - beq _081239D6 - adds r3, r2, 0 - movs r5, 0xD - negs r5, r5 -_081238FA: - lsls r0, r4, 2 - adds r0, r3, r0 - ldr r2, [r0] - cmp r2, 0 - beq _0812390C - ldrb r1, [r2, 0x5] - adds r0, r5, 0 - ands r0, r1 - strb r0, [r2, 0x5] -_0812390C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x13 - bls _081238FA - ldr r1, [r7] - movs r0, 0x2 - strb r0, [r1, 0x1] - b _081239D6 - .align 2, 0 -_08123920: .4byte gUnknown_08396FC4 -_08123924: - ldr r0, _08123938 @ =gUnknown_08396FC4 - ldr r2, [r0] - movs r1, 0xDA - lsls r1, 3 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x2 - bne _0812393C - strb r0, [r3, 0x1] - b _081239D6 - .align 2, 0 -_08123938: .4byte gUnknown_08396FC4 -_0812393C: - ldrh r1, [r3, 0x6] - ldrh r0, [r3, 0x4] - adds r0, 0x8 - cmp r1, r0 - blt _081239D6 - adds r6, r2, 0 - adds r6, 0xF0 - movs r5, 0x1 - movs r7, 0x5 - negs r7, r7 -_08123950: - lsls r0, r4, 2 - adds r0, r6, r0 - ldr r0, [r0] - cmp r0, 0 - beq _08123972 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r1, r2, 29 - lsrs r1, 31 - eors r1, r5 - ands r1, r5 - lsls r1, 2 - adds r0, r7, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08123972: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x13 - bls _08123950 - b _081239D6 -_0812397E: - lsls r1, r0, 16 - ldr r0, _081239A0 @ =0x023a0000 - cmp r1, r0 - bne _081239D6 - movs r0, 0x3 - strb r0, [r3, 0x1] - subs r0, 0x4 - str r4, [sp] - movs r1, 0x3 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0x4 - bl FadeOutBGM - b _081239D6 - .align 2, 0 -_081239A0: .4byte 0x023a0000 -_081239A4: - ldr r0, _081239B8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081239D6 - movs r0, 0xFF - strb r0, [r3, 0x1] - b _081239D6 - .align 2, 0 -_081239B8: .4byte gPaletteFade -_081239BC: - movs r0, 0 - bl SetVBlankCallback - adds r0, r6, 0 - bl DestroyTask - ldr r0, [r5] - ldrb r0, [r0] - bl DestroyTask - ldr r0, _081239E0 @ =sub_8123740 - bl SetMainCallback2 -_081239D6: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081239E0: .4byte sub_8123740 - thumb_func_end sub_8123878 - - thumb_func_start sub_81239E4 -sub_81239E4: @ 81239E4 - push {r4-r6,lr} - sub sp, 0x8 - ldr r6, _08123A38 @ =gUnknown_02039274 - ldr r1, [r6] - ldrb r0, [r1, 0x1] - cmp r0, 0xFF - beq _08123AC0 - ldrb r0, [r1, 0x14] - subs r0, 0x1 - strb r0, [r1, 0x14] - ldr r1, [r6] - ldrh r0, [r1, 0x6] - movs r3, 0x1 - ands r0, r3 - cmp r0, 0 - bne _08123A0A - ldrb r0, [r1, 0x15] - subs r0, 0x1 - strb r0, [r1, 0x15] -_08123A0A: - ldr r2, [r6] - ldrh r0, [r2, 0x6] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _08123A24 - ldrb r0, [r2, 0xC] - subs r0, 0x1 - strb r0, [r2, 0xC] - ldr r1, [r6] - ldrb r0, [r1, 0xD] - subs r0, 0x1 - strb r0, [r1, 0xD] -_08123A24: - ldr r0, [r6] - ldrb r1, [r0, 0x14] - cmp r1, 0x20 - beq _08123A74 - cmp r1, 0x20 - bgt _08123A3C - cmp r1, 0x10 - beq _08123A90 - b _08123AC0 - .align 2, 0 -_08123A38: .4byte gUnknown_02039274 -_08123A3C: - cmp r1, 0x28 - beq _08123A60 - cmp r1, 0xAF - bne _08123AC0 - ldr r1, _08123A5C @ =0x000008fc - adds r0, r1 - movs r1, 0x2 - str r1, [sp] - movs r1, 0xA - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0x16 - bl sub_8124E7C - b _08123AC0 - .align 2, 0 -_08123A5C: .4byte 0x000008fc -_08123A60: - ldr r1, _08123A70 @ =0x000008fc - adds r0, r1 - movs r1, 0x2 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0x3 - b _08123A82 - .align 2, 0 -_08123A70: .4byte 0x000008fc -_08123A74: - ldr r1, _08123A8C @ =0x000008fc - adds r0, r1 - str r3, [sp] - movs r1, 0x2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0x2 -_08123A82: - movs r3, 0 - bl sub_8124E7C - b _08123AC0 - .align 2, 0 -_08123A8C: .4byte 0x000008fc -_08123A90: - ldr r5, _08123AE8 @ =0x000008fc - adds r0, r5 - ldr r1, _08123AEC @ =gCableCarPylonHookTilemapEntries - movs r2, 0x5 - str r2, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8124F08 - ldr r0, [r6] - adds r0, r5 - ldr r1, _08123AF0 @ =0x020199d8 - str r4, [sp] - movs r2, 0x1E - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0x2 - bl sub_8124F08 - ldr r1, [r6] - movs r0, 0x40 - strb r0, [r1, 0x15] -_08123AC0: - bl sub_812453C - ldr r3, _08123AF4 @ =gSpriteCoordOffsetX - movs r0, 0 - ldrsh r2, [r3, r0] - adds r1, r2, 0x1 - adds r0, r1, 0 - cmp r1, 0 - bge _08123AD6 - adds r0, r2, 0 - adds r0, 0x80 -_08123AD6: - asrs r0, 7 - lsls r0, 7 - subs r0, r1, r0 - strh r0, [r3] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08123AE8: .4byte 0x000008fc -_08123AEC: .4byte gCableCarPylonHookTilemapEntries -_08123AF0: .4byte 0x020199d8 -_08123AF4: .4byte gSpriteCoordOffsetX - thumb_func_end sub_81239E4 - - thumb_func_start sub_8123AF8 -sub_8123AF8: @ 8123AF8 - push {r4-r6,lr} - sub sp, 0x8 - ldr r6, _08123B4C @ =gUnknown_02039274 - ldr r1, [r6] - ldrb r0, [r1, 0x1] - cmp r0, 0xFF - beq _08123BEE - ldrb r0, [r1, 0x14] - adds r0, 0x1 - strb r0, [r1, 0x14] - ldr r2, [r6] - ldrh r0, [r2, 0x6] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08123B1E - ldrb r0, [r2, 0x15] - adds r0, 0x1 - strb r0, [r2, 0x15] -_08123B1E: - ldr r2, [r6] - ldrh r0, [r2, 0x6] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _08123B38 - ldrb r0, [r2, 0xC] - adds r0, 0x1 - strb r0, [r2, 0xC] - ldr r1, [r6] - ldrb r0, [r1, 0xD] - adds r0, 0x1 - strb r0, [r1, 0xD] -_08123B38: - ldr r3, [r6] - ldrb r0, [r3, 0x14] - cmp r0, 0x20 - beq _08123BB0 - cmp r0, 0x20 - bgt _08123B50 - cmp r0, 0x10 - beq _08123B78 - b _08123BEE - .align 2, 0 -_08123B4C: .4byte gUnknown_02039274 -_08123B50: - cmp r0, 0x28 - beq _08123BDC - cmp r0, 0xB0 - bne _08123BEE - ldr r1, _08123B70 @ =0x000008fc - adds r0, r3, r1 - ldr r1, _08123B74 @ =0x020199d8 - movs r2, 0x2 - str r2, [sp] - movs r2, 0x1E - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0x2 - bl sub_8124F08 - b _08123BEE - .align 2, 0 -_08123B70: .4byte 0x000008fc -_08123B74: .4byte 0x020199d8 -_08123B78: - ldr r5, _08123BAC @ =0x000008fc - adds r0, r3, r5 - movs r1, 0x3 - str r1, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - movs r1, 0 - movs r2, 0x2 - movs r3, 0 - bl sub_8124E7C - ldr r0, [r6] - adds r0, r5 - str r4, [sp] - movs r1, 0xA - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0x16 - bl sub_8124E7C - ldr r1, [r6] - movs r0, 0xC0 - strb r0, [r1, 0x15] - b _08123BEE - .align 2, 0 -_08123BAC: .4byte 0x000008fc -_08123BB0: - ldr r1, _08123BD4 @ =gCableCarPylonHookTilemapEntries + 0x4 - ldrh r2, [r1] - movs r4, 0x90 - lsls r4, 4 - adds r0, r3, r4 - strh r2, [r0] - ldrh r2, [r1, 0x2] - adds r4, 0x2 - adds r0, r3, r4 - strh r2, [r0] - ldrh r2, [r1, 0xA] - adds r4, 0x3E - adds r0, r3, r4 - strh r2, [r0] - ldrh r1, [r1, 0xC] - ldr r2, _08123BD8 @ =0x00000942 - b _08123BEA - .align 2, 0 -_08123BD4: .4byte gCableCarPylonHookTilemapEntries + 0x4 -_08123BD8: .4byte 0x00000942 -_08123BDC: - ldr r2, _08123C08 @ =gCableCarPylonHookTilemapEntries + 0x8 - ldrh r1, [r2] - ldr r4, _08123C0C @ =0x00000904 - adds r0, r3, r4 - strh r1, [r0] - ldrh r1, [r2, 0xA] - ldr r2, _08123C10 @ =0x00000944 -_08123BEA: - adds r0, r3, r2 - strh r1, [r0] -_08123BEE: - bl sub_8124598 - ldr r0, _08123C14 @ =gUnknown_02039274 - ldr r1, [r0] - ldrh r0, [r1, 0x6] - ldrh r1, [r1, 0x4] - cmp r0, r1 - bcs _08123C1C - ldr r4, _08123C18 @ =gSpriteCoordOffsetX - movs r1, 0 - ldrsh r0, [r4, r1] - b _08123C26 - .align 2, 0 -_08123C08: .4byte gCableCarPylonHookTilemapEntries + 0x8 -_08123C0C: .4byte 0x00000904 -_08123C10: .4byte 0x00000944 -_08123C14: .4byte gUnknown_02039274 -_08123C18: .4byte gSpriteCoordOffsetX -_08123C1C: - ldr r0, _08123C38 @ =gUnknown_08396FC4 - ldr r4, [r0] - ldr r2, _08123C3C @ =0x000006fc - adds r4, r2 - ldrh r0, [r4] -_08123C26: - adds r0, 0xF7 - movs r1, 0xF8 - bl __modsi3 - strh r0, [r4] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08123C38: .4byte gUnknown_08396FC4 -_08123C3C: .4byte 0x000006fc - thumb_func_end sub_8123AF8 - - thumb_func_start sub_8123C40 -sub_8123C40: @ 8123C40 - push {r4,lr} - ldr r1, _08123C9C @ =0x040000d4 - ldr r0, _08123CA0 @ =gUnknown_02039274 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0xFC - str r0, [r1] - ldr r0, _08123CA4 @ =0x0600e000 - str r0, [r1, 0x4] - ldr r3, _08123CA8 @ =0x80000400 - str r3, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r4, _08123CAC @ =0x000008fc - adds r0, r2, r4 - str r0, [r1] - ldr r0, _08123CB0 @ =0x0600f800 - str r0, [r1, 0x4] - str r3, [r1, 0x8] - ldr r0, [r1, 0x8] - subs r1, 0xB8 - ldrb r0, [r2, 0x14] - strh r0, [r1] - adds r1, 0x2 - ldrb r0, [r2, 0x15] - strh r0, [r1] - subs r1, 0xA - ldrb r0, [r2, 0xC] - strh r0, [r1] - adds r1, 0x2 - ldrb r0, [r2, 0xD] - strh r0, [r1] - subs r1, 0x6 - ldrb r0, [r2, 0x8] - strh r0, [r1] - adds r1, 0x2 - ldrb r0, [r2, 0x9] - strh r0, [r1] - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08123C9C: .4byte 0x040000d4 -_08123CA0: .4byte gUnknown_02039274 -_08123CA4: .4byte 0x0600e000 -_08123CA8: .4byte 0x80000400 -_08123CAC: .4byte 0x000008fc -_08123CB0: .4byte 0x0600f800 - thumb_func_end sub_8123C40 - - thumb_func_start nullsub_76 -nullsub_76: @ 8123CB4 - bx lr - thumb_func_end nullsub_76 - - thumb_func_start sub_8123CB8 -sub_8123CB8: @ 8123CB8 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _08123D20 @ =gUnknown_02039274 - ldr r6, [r0] - ldrb r0, [r6, 0x1] - cmp r0, 0xFF - beq _08123D84 - ldr r0, _08123D24 @ =gUnknown_0202E8CC - ldrh r0, [r0] - cmp r0, 0 - bne _08123D34 - movs r0, 0x6 - ldrsh r4, [r6, r0] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08123CE2 - ldr r1, _08123D28 @ =0x47800000 - bl __addsf3 -_08123CE2: - ldr r1, _08123D2C @ =0x3e0f5c29 - bl __mulsf3 - bl __fixunssfsi - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x2E] - subs r1, r0 - strh r1, [r5, 0x20] - movs r1, 0x6 - ldrsh r4, [r6, r1] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08123D0A - ldr r1, _08123D28 @ =0x47800000 - bl __addsf3 -_08123D0A: - ldr r1, _08123D30 @ =0x3d89374c - bl __mulsf3 - bl __fixunssfsi - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x30] - subs r1, r0 - strh r1, [r5, 0x22] - b _08123D84 - .align 2, 0 -_08123D20: .4byte gUnknown_02039274 -_08123D24: .4byte gUnknown_0202E8CC -_08123D28: .4byte 0x47800000 -_08123D2C: .4byte 0x3e0f5c29 -_08123D30: .4byte 0x3d89374c -_08123D34: - movs r0, 0x6 - ldrsh r4, [r6, r0] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08123D48 - ldr r1, _08123D8C @ =0x47800000 - bl __addsf3 -_08123D48: - ldr r1, _08123D90 @ =0x3e0f5c29 - bl __mulsf3 - bl __fixunssfsi - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x2E] - adds r0, r1 - strh r0, [r5, 0x20] - movs r0, 0x6 - ldrsh r4, [r6, r0] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08123D70 - ldr r1, _08123D8C @ =0x47800000 - bl __addsf3 -_08123D70: - ldr r1, _08123D94 @ =0x3d89374c - bl __mulsf3 - bl __fixunssfsi - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x30] - adds r0, r1 - strh r0, [r5, 0x22] -_08123D84: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08123D8C: .4byte 0x47800000 -_08123D90: .4byte 0x3e0f5c29 -_08123D94: .4byte 0x3d89374c - thumb_func_end sub_8123CB8 - - thumb_func_start sub_8123D98 -sub_8123D98: @ 8123D98 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _08123E04 @ =gUnknown_02039274 - ldr r6, [r0] - ldrb r0, [r6, 0x1] - cmp r0, 0xFF - bne _08123DA8 - b _08123EB0 -_08123DA8: - ldr r0, _08123E08 @ =gUnknown_0202E8CC - ldrh r0, [r0] - cmp r0, 0 - bne _08123E18 - movs r0, 0x6 - ldrsh r4, [r6, r0] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08123DC4 - ldr r1, _08123E0C @ =0x47800000 - bl __addsf3 -_08123DC4: - ldr r1, _08123E10 @ =0x3e0f5c29 - bl __mulsf3 - bl __fixunssfsi - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x2E] - subs r1, r0 - strh r1, [r5, 0x20] - movs r1, 0x6 - ldrsh r4, [r6, r1] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08123DEC - ldr r1, _08123E0C @ =0x47800000 - bl __addsf3 -_08123DEC: - ldr r1, _08123E14 @ =0x3d89374c - bl __mulsf3 - bl __fixunssfsi - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x30] - subs r1, r0 - strh r1, [r5, 0x22] - b _08123E68 - .align 2, 0 -_08123E04: .4byte gUnknown_02039274 -_08123E08: .4byte gUnknown_0202E8CC -_08123E0C: .4byte 0x47800000 -_08123E10: .4byte 0x3e0f5c29 -_08123E14: .4byte 0x3d89374c -_08123E18: - movs r0, 0x6 - ldrsh r4, [r6, r0] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08123E2C - ldr r1, _08123E8C @ =0x47800000 - bl __addsf3 -_08123E2C: - ldr r1, _08123E90 @ =0x3e0f5c29 - bl __mulsf3 - bl __fixunssfsi - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x2E] - adds r0, r1 - strh r0, [r5, 0x20] - movs r0, 0x6 - ldrsh r4, [r6, r0] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08123E54 - ldr r1, _08123E8C @ =0x47800000 - bl __addsf3 -_08123E54: - ldr r1, _08123E94 @ =0x3d89374c - bl __mulsf3 - bl __fixunssfsi - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x30] - adds r0, r1 - strh r0, [r5, 0x22] -_08123E68: - movs r0, 0x32 - ldrsh r2, [r5, r0] - cmp r2, 0 - bne _08123E98 - movs r0, 0x11 - strh r0, [r5, 0x26] - ldrh r0, [r5, 0x34] - adds r1, r0, 0x1 - strh r1, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - ble _08123EB0 - strh r2, [r5, 0x34] - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - b _08123EB0 - .align 2, 0 -_08123E8C: .4byte 0x47800000 -_08123E90: .4byte 0x3e0f5c29 -_08123E94: .4byte 0x3d89374c -_08123E98: - movs r2, 0 - movs r0, 0x10 - strh r0, [r5, 0x26] - ldrh r0, [r5, 0x34] - adds r1, r0, 0x1 - strh r1, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - ble _08123EB0 - strh r2, [r5, 0x34] - strh r2, [r5, 0x32] -_08123EB0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8123D98 - - thumb_func_start sub_8123EB8 -sub_8123EB8: @ 8123EB8 - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _08123EE8 - adds r0, r2, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - ldrh r3, [r2, 0x20] - adds r0, r3 - strh r0, [r2, 0x20] - ldrh r1, [r2, 0x22] - adds r1, 0x10 - adds r0, r2, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - strh r0, [r2, 0x22] -_08123EE8: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _08123F3E - movs r0, 0x30 - ldrsh r1, [r2, r0] - cmp r1, 0 - beq _08123F08 - cmp r1, 0x1 - beq _08123F12 - b _08123F30 -_08123F08: - ldrh r0, [r2, 0x20] - adds r0, 0x1 - strh r0, [r2, 0x20] - ldrh r0, [r2, 0x2E] - b _08123F22 -_08123F12: - ldrh r0, [r2, 0x2E] - ands r0, r1 - cmp r0, 0 - beq _08123F30 - ldrh r0, [r2, 0x20] - adds r0, 0x1 - strh r0, [r2, 0x20] - ldrh r0, [r2, 0x20] -_08123F22: - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08123F30 - ldrh r0, [r2, 0x22] - adds r0, 0x1 - strh r0, [r2, 0x22] -_08123F30: - movs r1, 0x22 - ldrsh r0, [r2, r1] - cmp r0, 0xA0 - ble _08123F3E - adds r0, r2, 0 - bl DestroySprite -_08123F3E: - pop {r0} - bx r0 - thumb_func_end sub_8123EB8 - - thumb_func_start sub_8123F44 -sub_8123F44: @ 8123F44 - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _08123F62 - ldrh r1, [r2, 0x22] - adds r1, 0x10 - adds r0, r2, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - strh r0, [r2, 0x22] -_08123F62: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _08123FB8 - movs r0, 0x30 - ldrsh r1, [r2, r0] - cmp r1, 0 - beq _08123F82 - cmp r1, 0x1 - beq _08123F8C - b _08123FAA -_08123F82: - ldrh r0, [r2, 0x20] - subs r0, 0x1 - strh r0, [r2, 0x20] - ldrh r0, [r2, 0x2E] - b _08123F9C -_08123F8C: - ldrh r0, [r2, 0x2E] - ands r0, r1 - cmp r0, 0 - beq _08123FAA - ldrh r0, [r2, 0x20] - subs r0, 0x1 - strh r0, [r2, 0x20] - ldrh r0, [r2, 0x20] -_08123F9C: - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08123FAA - ldrh r0, [r2, 0x22] - subs r0, 0x1 - strh r0, [r2, 0x22] -_08123FAA: - movs r1, 0x22 - ldrsh r0, [r2, r1] - cmp r0, 0x4F - bgt _08123FB8 - adds r0, r2, 0 - bl DestroySprite -_08123FB8: - pop {r0} - bx r0 - thumb_func_end sub_8123F44 - - thumb_func_start sub_8123FBC -sub_8123FBC: @ 8123FBC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08123FCA - cmp r0, 0x1 - beq _08124024 -_08123FCA: - ldr r1, _08124020 @ =REG_WININ - movs r0, 0 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - subs r1, 0xA - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - subs r1, 0x46 - strh r0, [r1] - adds r1, 0xE - strh r0, [r1] - subs r1, 0x2 - strh r0, [r1] - subs r1, 0x2 - strh r0, [r1] - subs r1, 0x2 - strh r0, [r1] - adds r1, 0x14 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - subs r1, 0x6 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - subs r1, 0x6 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - subs r1, 0x6 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x3E - strh r0, [r1] - b _081240EE - .align 2, 0 -_08124020: .4byte REG_WININ -_08124024: - ldr r0, _08124060 @ =REG_WININ - movs r3, 0 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - subs r0, 0xA - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - ldr r0, _08124064 @ =gUnknown_0202E8CC - ldrh r0, [r0] - cmp r0, 0 - bne _0812406C - ldr r1, _08124068 @ =gUnknown_02039274 - ldr r2, [r1] - movs r0, 0xB0 - strb r0, [r2, 0x14] - ldr r2, [r1] - movs r0, 0x10 - strb r0, [r2, 0x15] - ldr r0, [r1] - strb r3, [r0, 0xC] - ldr r2, [r1] - movs r0, 0x50 - b _08124082 - .align 2, 0 -_08124060: .4byte REG_WININ -_08124064: .4byte gUnknown_0202E8CC -_08124068: .4byte gUnknown_02039274 -_0812406C: - ldr r1, _081240F4 @ =gUnknown_02039274 - ldr r2, [r1] - movs r0, 0x60 - strb r0, [r2, 0x14] - ldr r2, [r1] - movs r0, 0xE8 - strb r0, [r2, 0x15] - ldr r0, [r1] - strb r3, [r0, 0xC] - ldr r2, [r1] - movs r0, 0x4 -_08124082: - strb r0, [r2, 0xD] - ldr r0, [r1] - strb r3, [r0, 0x9] - ldr r0, [r1] - strb r3, [r0, 0x9] - adds r2, r1, 0 - ldr r1, _081240F8 @ =REG_BG3HOFS - ldr r2, [r2] - ldrb r0, [r2, 0x14] - strh r0, [r1] - adds r1, 0x2 - ldrb r0, [r2, 0x15] - strh r0, [r1] - ldr r0, _081240FC @ =REG_BG2HOFS - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _08124100 @ =REG_BG1HOFS - ldrb r0, [r2, 0xC] - strh r0, [r1] - adds r1, 0x2 - ldrb r0, [r2, 0xD] - strh r0, [r1] - subs r1, 0x6 - ldrb r0, [r2, 0x8] - strh r0, [r1] - adds r1, 0x2 - ldrb r0, [r2, 0x9] - strh r0, [r1] - subs r1, 0xA - ldr r2, _08124104 @ =0x00003c01 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _08124108 @ =0x00003d02 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _0812410C @ =0x00003e03 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08124110 @ =REG_BG3CNT - movs r3, 0xFC - lsls r3, 6 - adds r2, r3, 0 - strh r2, [r0] - subs r1, 0xC - movs r3, 0xFA - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _08124114 @ =REG_BLDCNT - strh r2, [r0] -_081240EE: - pop {r0} - bx r0 - .align 2, 0 -_081240F4: .4byte gUnknown_02039274 -_081240F8: .4byte REG_BG3HOFS -_081240FC: .4byte REG_BG2HOFS -_08124100: .4byte REG_BG1HOFS -_08124104: .4byte 0x00003c01 -_08124108: .4byte 0x00003d02 -_0812410C: .4byte 0x00003e03 -_08124110: .4byte REG_BG3CNT -_08124114: .4byte REG_BLDCNT - thumb_func_end sub_8123FBC - - thumb_func_start sub_8124118 -sub_8124118: @ 8124118 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - ldr r1, _0812422C @ =gCableCarPlayerGraphicsIDs - add r0, sp, 0x8 - movs r2, 0x2 - bl memcpy - bl Random - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - add r6, sp, 0xC - ldr r1, _08124230 @ =gMtChimneyHikerGraphicsIDs - adds r0, r6, 0 - movs r2, 0x4 - bl memcpy - add r5, sp, 0x10 - ldr r1, _08124234 @ =gMtChimneyHikerCoords - adds r0, r5, 0 - movs r2, 0x8 - bl memcpy - add r4, sp, 0x18 - ldr r1, _08124238 @ =gMtChimneyHikerMovementDelayTable - adds r0, r4, 0 - movs r2, 0x4 - bl memcpy - ldr r0, _0812423C @ =gUnknown_08401D9C - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x1C] - str r1, [sp, 0x20] - ldr r0, _08124240 @ =gUnknown_0202E8CC - ldrh r0, [r0] - mov r8, r6 - mov r10, r5 - cmp r0, 0 - beq _08124176 - cmp r0, 0x1 - beq _08124258 -_08124176: - ldr r0, _08124244 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - add r0, sp - adds r0, 0x8 - ldrb r0, [r0] - ldr r1, _08124248 @ =sub_8123D98 - movs r2, 0x66 - str r2, [sp] - movs r2, 0xC8 - movs r3, 0x49 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x40 - beq _081241BE - ldr r0, _0812424C @ =gSprites - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r0, 0x8 - strh r0, [r1, 0x24] - movs r0, 0x10 - strh r0, [r1, 0x26] - movs r0, 0xC8 - strh r0, [r1, 0x2E] - movs r0, 0x49 - strh r0, [r1, 0x30] -_081241BE: - ldr r4, _08124250 @ =gSpriteTemplate_8401D40 - adds r0, r4, 0 - movs r1, 0xB0 - movs r2, 0x2B - movs r3, 0x67 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _0812424C @ =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r5 - movs r1, 0x20 - strh r1, [r0, 0x26] - strh r1, [r0, 0x24] - movs r1, 0xB0 - strh r1, [r0, 0x2E] - movs r1, 0x2B - strh r1, [r0, 0x30] - adds r4, 0x18 - adds r0, r4, 0 - movs r1, 0xC8 - movs r2, 0x63 - movs r3, 0x65 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r5 - movs r1, 0x8 - strh r1, [r0, 0x24] - movs r1, 0x4 - strh r1, [r0, 0x26] - movs r1, 0xC8 - strh r1, [r0, 0x2E] - movs r1, 0x63 - strh r1, [r0, 0x30] - ldr r2, _08124254 @ =gUnknown_02039274 - ldr r1, [r2] - movs r0, 0x7 - strb r0, [r1, 0x2] - ldr r1, [r2] - movs r0, 0xAF - lsls r0, 1 - strh r0, [r1, 0x4] - movs r0, 0x2 - bl sub_807C9B4 - b _0812431E - .align 2, 0 -_0812422C: .4byte gCableCarPlayerGraphicsIDs -_08124230: .4byte gMtChimneyHikerGraphicsIDs -_08124234: .4byte gMtChimneyHikerCoords -_08124238: .4byte gMtChimneyHikerMovementDelayTable -_0812423C: .4byte gUnknown_08401D9C -_08124240: .4byte gUnknown_0202E8CC -_08124244: .4byte gSaveBlock2 -_08124248: .4byte sub_8123D98 -_0812424C: .4byte gSprites -_08124250: .4byte gSpriteTemplate_8401D40 -_08124254: .4byte gUnknown_02039274 -_08124258: - ldr r7, _081243EC @ =gUnknown_02039274 - ldr r0, [r7] - adds r0, 0xFC - ldr r1, _081243F0 @ =0x02019048 - movs r2, 0xC - str r2, [sp] - movs r2, 0x3 - str r2, [sp, 0x4] - movs r2, 0x18 - movs r3, 0x1A - bl sub_8124F08 - ldr r0, _081243F4 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - add r0, sp - adds r0, 0x8 - ldrb r0, [r0] - ldr r1, _081243F8 @ =sub_8123D98 - movs r2, 0x66 - str r2, [sp] - movs r2, 0x80 - movs r3, 0x27 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x40 - beq _081242B8 - ldr r0, _081243FC @ =gSprites - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r0, 0x8 - strh r0, [r1, 0x24] - movs r0, 0x10 - strh r0, [r1, 0x26] - movs r0, 0x80 - strh r0, [r1, 0x2E] - movs r0, 0x27 - strh r0, [r1, 0x30] -_081242B8: - ldr r4, _08124400 @ =gSpriteTemplate_8401D40 - adds r0, r4, 0 - movs r1, 0x68 - movs r2, 0x9 - movs r3, 0x67 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _081243FC @ =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r5 - movs r1, 0x20 - strh r1, [r0, 0x26] - strh r1, [r0, 0x24] - movs r1, 0x68 - strh r1, [r0, 0x2E] - movs r1, 0x9 - strh r1, [r0, 0x30] - adds r4, 0x18 - adds r0, r4, 0 - movs r1, 0x80 - movs r2, 0x41 - movs r3, 0x65 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r5 - movs r1, 0x8 - strh r1, [r0, 0x24] - movs r1, 0x4 - strh r1, [r0, 0x26] - movs r1, 0x80 - strh r1, [r0, 0x2E] - movs r1, 0x41 - strh r1, [r0, 0x30] - ldr r1, [r7] - movs r0, 0x2 - strb r0, [r1, 0x2] - ldr r1, [r7] - ldr r0, _08124404 @ =0x00000109 - strh r0, [r1, 0x4] - movs r0, 0x7 - bl sub_807C9B4 -_0812431E: - movs r4, 0 - ldr r5, _081243FC @ =gSprites -_08124322: - lsls r1, r4, 20 - movs r0, 0xC0 - lsls r0, 15 - adds r1, r0 - asrs r1, 16 - lsls r2, r4, 19 - ldr r3, _08124408 @ =0xfff80000 - adds r2, r3 - asrs r2, 16 - ldr r0, _0812440C @ =gSpriteTemplate_8401D70 - movs r3, 0x68 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r5 - movs r1, 0x8 - strh r1, [r0, 0x24] - strh r1, [r0, 0x26] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x8 - bls _08124322 - movs r0, 0x3F - mov r4, r9 - ands r0, r4 - cmp r0, 0 - bne _08124458 - mov r0, r9 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - add r0, r8 - ldrb r0, [r0] - ldr r5, _08124410 @ =gUnknown_0202E8CC - ldrh r4, [r5] - lsls r4, 2 - add r1, sp, 0x1C - adds r1, r4, r1 - ldr r1, [r1] - mov r3, r10 - adds r2, r3, r4 - movs r3, 0 - ldrsh r2, [r2, r3] - mov r3, sp - adds r3, 0x12 - adds r3, r4 - movs r4, 0 - ldrsh r3, [r3, r4] - movs r4, 0x6A - str r4, [sp] - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x40 - beq _08124458 - ldr r1, _081243FC @ =gSprites - lsls r2, r6, 4 - adds r0, r2, r6 - lsls r0, 2 - adds r4, r0, r1 - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r4, 0x5] - adds r0, r4, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x24] - adds r0, r4, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r5] - mov r8, r2 - cmp r0, 0 - bne _0812441A - movs r7, 0x1 - mov r5, r9 - ands r5, r7 - cmp r5, 0 - beq _08124414 - adds r0, r4, 0 - movs r1, 0x6 - b _08124428 - .align 2, 0 -_081243EC: .4byte gUnknown_02039274 -_081243F0: .4byte 0x02019048 -_081243F4: .4byte gSaveBlock2 -_081243F8: .4byte sub_8123D98 -_081243FC: .4byte gSprites -_08124400: .4byte gSpriteTemplate_8401D40 -_08124404: .4byte 0x00000109 -_08124408: .4byte 0xfff80000 -_0812440C: .4byte gSpriteTemplate_8401D70 -_08124410: .4byte gUnknown_0202E8CC -_08124414: - adds r0, r4, 0 - movs r1, 0x7 - b _0812443A -_0812441A: - movs r7, 0x1 - mov r5, r9 - ands r5, r7 - cmp r5, 0 - beq _08124436 - adds r0, r4, 0 - movs r1, 0x7 -_08124428: - bl StartSpriteAnim - strh r7, [r4, 0x30] - ldrh r0, [r4, 0x22] - adds r0, 0x2 - strh r0, [r4, 0x22] - b _08124440 -_08124436: - adds r0, r4, 0 - movs r1, 0x6 -_0812443A: - bl StartSpriteAnim - strh r5, [r4, 0x30] -_08124440: - ldr r0, _08124468 @ =gSprites - mov r2, r8 - adds r1, r2, r6 - lsls r1, 2 - adds r1, r0 - movs r0, 0x3 - mov r3, r9 - ands r0, r3 - add r0, sp - adds r0, 0x18 - ldrb r0, [r0] - strh r0, [r1, 0x32] -_08124458: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08124468: .4byte gSprites - thumb_func_end sub_8124118 - - thumb_func_start sub_812446C -sub_812446C: @ 812446C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r3, 0 - mov r9, r3 - ldr r2, _08124530 @ =gUnknown_02039274 - ldr r0, [r2] - ldrb r1, [r0, 0x1B] - adds r1, 0x2 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 26 - lsrs r0, 24 - mov r12, r0 -_0812448E: - movs r6, 0 - lsls r0, r3, 1 - adds r1, r3, 0x3 - adds r2, r3, 0x6 - adds r4, r3, 0x1 - str r4, [sp] - adds r0, r3 - lsls r0, 3 - mov r10, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - mov r8, r0 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - str r0, [sp, 0x4] -_081244B0: - ldr r7, _08124530 @ =gUnknown_02039274 - ldr r5, [r7] - lsls r3, r6, 1 - mov r0, r10 - adds r2, r3, r0 - adds r4, r5, 0 - adds r4, 0x22 - adds r2, r4, r2 - mov r1, r12 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r1, 1 - ldr r7, _08124534 @ =0x02019000 - adds r1, r7 - ldrh r0, [r1] - strh r0, [r2] - mov r0, r8 - adds r1, r3, r0 - adds r1, r4, r1 - mov r7, r9 - lsls r2, r7, 1 - ldr r7, _08124534 @ =0x02019000 - adds r0, r2, r7 - ldrh r0, [r0] - strh r0, [r1] - ldr r0, [sp, 0x4] - adds r3, r0 - adds r4, r3 - ldr r1, _08124538 @ =0x02019048 - adds r2, r1 - ldrh r0, [r2] - strh r0, [r4] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xB - bls _081244B0 - ldr r4, [sp] - lsls r0, r4, 24 - lsrs r3, r0, 24 - cmp r3, 0x2 - bls _0812448E - ldrb r0, [r5, 0x1B] - adds r0, 0x1 - movs r1, 0x3 - bl __modsi3 - strb r0, [r5, 0x1B] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08124530: .4byte gUnknown_02039274 -_08124534: .4byte 0x02019000 -_08124538: .4byte 0x02019048 - thumb_func_end sub_812446C - - thumb_func_start sub_812453C -sub_812453C: @ 812453C - push {r4,r5,lr} - ldr r5, _08124594 @ =gUnknown_02039274 - ldr r4, [r5] - ldrb r0, [r4, 0x1C] - adds r0, 0x1 - movs r1, 0x60 - bl __modsi3 - strb r0, [r4, 0x1C] - ldr r1, [r5] - ldrb r0, [r1, 0x1F] - ldrb r2, [r1, 0x1D] - subs r0, r2 - strb r0, [r1, 0x8] - ldr r2, [r5] - adds r0, r2, 0 - adds r0, 0x20 - ldrb r0, [r0] - ldrb r1, [r2, 0x1E] - subs r0, r1 - strb r0, [r2, 0x9] - ldr r1, [r5] - ldrb r0, [r1, 0x1D] - adds r0, 0x1 - strb r0, [r1, 0x1D] - ldr r2, [r5] - ldrb r0, [r2, 0x1D] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08124580 - ldrb r0, [r2, 0x1E] - adds r0, 0x1 - strb r0, [r2, 0x1E] -_08124580: - ldr r0, [r5] - ldrb r0, [r0, 0x1D] - cmp r0, 0x10 - bls _0812458C - bl sub_81245F4 -_0812458C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08124594: .4byte gUnknown_02039274 - thumb_func_end sub_812453C - - thumb_func_start sub_8124598 -sub_8124598: @ 8124598 - push {r4,r5,lr} - ldr r5, _081245F0 @ =gUnknown_02039274 - ldr r4, [r5] - ldrb r0, [r4, 0x1C] - adds r0, 0x1 - movs r1, 0x60 - bl __modsi3 - strb r0, [r4, 0x1C] - ldr r1, [r5] - ldrb r0, [r1, 0x1D] - ldrb r2, [r1, 0x1F] - adds r0, r2 - strb r0, [r1, 0x8] - ldr r1, [r5] - adds r2, r1, 0 - adds r2, 0x20 - ldrb r0, [r1, 0x1E] - ldrb r2, [r2] - adds r0, r2 - strb r0, [r1, 0x9] - ldr r1, [r5] - ldrb r0, [r1, 0x1D] - adds r0, 0x1 - strb r0, [r1, 0x1D] - ldr r2, [r5] - ldrb r0, [r2, 0x1D] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081245DC - ldrb r0, [r2, 0x1E] - adds r0, 0x1 - strb r0, [r2, 0x1E] -_081245DC: - ldr r0, [r5] - ldrb r0, [r0, 0x1D] - cmp r0, 0x10 - bls _081245E8 - bl sub_812476C -_081245E8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081245F0: .4byte gUnknown_02039274 - thumb_func_end sub_8124598 - - thumb_func_start sub_81245F4 -sub_81245F4: @ 81245F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0 - mov r12, r0 - ldr r2, _0812475C @ =gUnknown_02039274 - ldr r0, [r2] - mov r1, r12 - strb r1, [r0, 0x1E] - strb r1, [r0, 0x1D] - ldr r1, [r2] - ldrb r0, [r1, 0x8] - strb r0, [r1, 0x1F] - ldr r0, [r2] - ldrb r1, [r0, 0x9] - adds r0, 0x20 - strb r1, [r0] - ldr r4, [r2] - ldrb r1, [r4, 0x19] - adds r3, r1, 0 - adds r3, 0x1E - adds r0, r3, 0 - mov r9, r2 - asrs r0, 5 - lsls r0, 5 - subs r0, r3, r0 - strb r0, [r4, 0x19] - mov r2, r9 - ldr r1, [r2] - ldrb r0, [r1, 0x18] - subs r0, 0x2 - strb r0, [r1, 0x18] - ldr r0, [r2] - ldrb r1, [r0, 0x1A] - adds r2, r1, 0 - adds r2, 0x17 - adds r0, r2, 0 - ldr r3, _08124760 @ =gUnknown_0203927A - mov r10, r3 - asrs r0, 5 - lsls r0, 5 - subs r0, r2, r0 - mov r4, r10 - strb r0, [r4] - ldr r7, _08124764 @ =gUnknown_02039278 - ldr r0, _08124768 @ =gUnknown_02039279 - mov r8, r0 -_08124658: - mov r1, r9 - ldr r3, [r1] - ldrb r0, [r3, 0x19] - strb r0, [r7] - mov r2, r10 - ldrb r0, [r2] - mov r4, r12 - adds r1, r0, r4 - adds r0, r1, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r1, r0 - mov r1, r8 - strb r0, [r1] - ldrb r2, [r7] - lsls r2, 1 - ldrb r0, [r1] - lsls r0, 6 - adds r2, r0 - adds r6, r3, 0 - adds r6, 0xFC - adds r2, r6, r2 - ldrb r1, [r3, 0x18] - lsls r1, 1 - mov r4, r12 - lsls r0, r4, 1 - add r0, r12 - lsls r5, r0, 3 - adds r1, r5 - adds r4, r3, 0 - adds r4, 0x22 - adds r1, r4, r1 - ldrh r0, [r1] - strh r0, [r2] - ldrb r1, [r7] - adds r2, r1, 0x1 - adds r0, r2, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r2, r0 - strb r0, [r7] - ldrb r1, [r7] - lsls r1, 1 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 6 - adds r1, r0 - adds r1, r6, r1 - ldrb r0, [r3, 0x18] - adds r0, 0x1 - lsls r0, 1 - adds r0, r5 - adds r0, r4, r0 - ldrh r0, [r0] - strh r0, [r1] - mov r0, r12 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - cmp r0, 0x8 - bls _08124658 - ldr r4, _08124764 @ =gUnknown_02039278 - mov r5, r9 - ldr r3, [r5] - ldrb r1, [r3, 0x19] - adds r2, r1, 0 - adds r2, 0x1E - adds r0, r2, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r2, r0 - strb r0, [r4] - adds r0, r3, 0 - adds r0, 0xFC - ldrb r2, [r4] - movs r1, 0x2 - str r1, [sp] - movs r6, 0x20 - str r6, [sp, 0x4] - movs r1, 0 - movs r3, 0 - bl sub_8124E7C - ldr r1, [r5] - ldrb r0, [r1, 0x18] - cmp r0, 0 - bne _0812474C - ldrb r2, [r1, 0x1A] - adds r3, r2, 0 - adds r3, 0x1D - adds r0, r3, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r3, r0 - strb r0, [r1, 0x1A] - mov r3, r9 - ldr r1, [r3] - movs r0, 0xC - strb r0, [r1, 0x18] - bl sub_812446C - mov r4, r9 - ldr r1, [r4] - ldrb r3, [r1, 0x1A] - adds r4, r3, 0x1 - adds r0, r4, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r4, r0 - ldr r2, _08124764 @ =gUnknown_02039278 - strb r0, [r2] - adds r0, r1, 0 - adds r0, 0xFC - ldrb r3, [r2] - str r6, [sp] - movs r1, 0x9 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - bl sub_8124E7C -_0812474C: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812475C: .4byte gUnknown_02039274 -_08124760: .4byte gUnknown_0203927A -_08124764: .4byte gUnknown_02039278 -_08124768: .4byte gUnknown_02039279 - thumb_func_end sub_81245F4 - - thumb_func_start sub_812476C -sub_812476C: @ 812476C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0 - mov r12, r0 - ldr r2, _0812489C @ =gUnknown_02039274 - ldr r0, [r2] - mov r1, r12 - strb r1, [r0, 0x1E] - strb r1, [r0, 0x1D] - ldr r1, [r2] - ldrb r0, [r1, 0x8] - strb r0, [r1, 0x1F] - ldr r0, [r2] - ldrb r1, [r0, 0x9] - adds r0, 0x20 - strb r1, [r0] - ldr r4, [r2] - ldrb r1, [r4, 0x19] - adds r3, r1, 0x2 - adds r0, r3, 0 - mov r9, r2 - asrs r0, 5 - lsls r0, 5 - subs r0, r3, r0 - strb r0, [r4, 0x19] - mov r2, r9 - ldr r1, [r2] - ldrb r0, [r1, 0x18] - adds r0, 0x2 - strb r0, [r1, 0x18] - ldr r1, _081248A0 @ =gUnknown_0203927D - ldr r0, [r2] - ldrb r0, [r0, 0x1A] - strb r0, [r1] - ldr r4, _081248A4 @ =gUnknown_0203927C - mov r10, r4 - ldr r7, _081248A8 @ =gUnknown_0203927B - mov r8, r10 -_081247C0: - mov r0, r9 - ldr r3, [r0] - ldrb r0, [r3, 0x19] - strb r0, [r7] - ldr r1, _081248A0 @ =gUnknown_0203927D - ldrb r0, [r1] - mov r2, r12 - adds r1, r0, r2 - adds r0, r1, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r1, r0 - mov r4, r8 - strb r0, [r4] - ldrb r2, [r7] - lsls r2, 1 - ldrb r0, [r4] - lsls r0, 6 - adds r2, r0 - adds r6, r3, 0 - adds r6, 0xFC - adds r2, r6, r2 - ldrb r1, [r3, 0x18] - lsls r1, 1 - mov r4, r12 - lsls r0, r4, 1 - add r0, r12 - lsls r5, r0, 3 - adds r1, r5 - adds r4, r3, 0 - adds r4, 0x22 - adds r1, r4, r1 - ldrh r0, [r1] - strh r0, [r2] - ldrb r1, [r7] - adds r2, r1, 0x1 - adds r0, r2, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r2, r0 - strb r0, [r7] - ldrb r1, [r7] - lsls r1, 1 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 6 - adds r1, r0 - adds r1, r6, r1 - ldrb r0, [r3, 0x18] - adds r0, 0x1 - lsls r0, 1 - adds r0, r5 - adds r0, r4, r0 - ldrh r0, [r0] - strh r0, [r1] - mov r0, r12 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - cmp r0, 0x8 - bls _081247C0 - mov r4, r9 - ldr r1, [r4] - ldrb r2, [r1, 0x1A] - adds r3, r2, 0 - adds r3, 0x17 - adds r0, r3, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r3, r0 - mov r2, r10 - strb r0, [r2] - adds r0, r1, 0 - adds r0, 0xFC - ldrb r2, [r1, 0x19] - mov r1, r10 - ldrb r3, [r1] - movs r1, 0x2 - str r1, [sp] - movs r1, 0x9 - str r1, [sp, 0x4] - movs r1, 0 - bl sub_8124E7C - ldr r1, [r4] - ldrb r0, [r1, 0x18] - cmp r0, 0xA - bne _0812488C - ldrb r2, [r1, 0x1A] - adds r3, r2, 0x3 - adds r0, r3, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r3, r0 - strb r0, [r1, 0x1A] - mov r2, r9 - ldr r1, [r2] - movs r0, 0xFE - strb r0, [r1, 0x18] - bl sub_812446C -_0812488C: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812489C: .4byte gUnknown_02039274 -_081248A0: .4byte gUnknown_0203927D -_081248A4: .4byte gUnknown_0203927C -_081248A8: .4byte gUnknown_0203927B - thumb_func_end sub_812476C - - thumb_func_start sub_81248AC -sub_81248AC: @ 81248AC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081248BA - cmp r0, 0x1 - beq _081248E4 -_081248BA: - ldr r1, _081248E0 @ =gUnknown_02039274 - ldr r2, [r1] - movs r3, 0 - movs r0, 0x2 - strb r0, [r2, 0x1B] - ldr r0, [r1] - strb r3, [r0, 0x19] - ldr r2, [r1] - movs r0, 0x14 - strb r0, [r2, 0x1A] - ldr r1, [r1] - movs r0, 0xC - strb r0, [r1, 0x18] - bl sub_812446C - bl sub_81245F4 - b _08124906 - .align 2, 0 -_081248E0: .4byte gUnknown_02039274 -_081248E4: - ldr r1, _08124914 @ =gUnknown_02039274 - ldr r2, [r1] - movs r0, 0x2 - strb r0, [r2, 0x1B] - ldr r2, [r1] - movs r0, 0x1C - strb r0, [r2, 0x19] - ldr r2, [r1] - movs r0, 0x14 - strb r0, [r2, 0x1A] - ldr r1, [r1] - movs r0, 0x4 - strb r0, [r1, 0x18] - bl sub_812446C - bl sub_812476C -_08124906: - ldr r0, _08124914 @ =gUnknown_02039274 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x1C] - pop {r0} - bx r0 - .align 2, 0 -_08124914: .4byte gUnknown_02039274 - thumb_func_end sub_81248AC - - thumb_func_start sub_8124918 -sub_8124918: @ 8124918 - push {lr} - movs r1, 0 - strb r1, [r0] - strh r1, [r0, 0x2] - adds r0, 0x4 - movs r2, 0xC0 - bl memset - pop {r0} - bx r0 - thumb_func_end sub_8124918 - - thumb_func_start sub_812492C -sub_812492C: @ 812492C - push {r4-r7,lr} - adds r3, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r6, 0xF - bhi _08124948 - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r5, r3, r0 - ldrb r7, [r5, 0x4] - lsrs r0, r7, 7 - cmp r0, 0 - beq _0812494C -_08124948: - movs r0, 0xFF - b _081249AA -_0812494C: - ldrh r0, [r2] - movs r4, 0 - strh r0, [r5, 0x8] - ldrh r0, [r2, 0x2] - strh r0, [r5, 0xA] - ldrb r0, [r2, 0x4] - strb r0, [r5, 0xC] - ldrb r0, [r2, 0x5] - strb r0, [r5, 0xD] - ldrb r0, [r2, 0x6] - strb r0, [r5, 0xE] - ldrb r3, [r2, 0x7] - lsls r0, r3, 27 - lsrs r0, 27 - ldrb r2, [r5, 0xF] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - movs r0, 0x60 - ands r0, r3 - movs r2, 0x61 - negs r2, r2 - ands r1, r2 - orrs r1, r0 - lsls r3, 24 - asrs r3, 31 - lsls r3, 7 - movs r0, 0x7F - ands r1, r0 - orrs r1, r3 - strb r1, [r5, 0xF] - subs r0, 0xFF - ands r0, r7 - movs r2, 0x80 - orrs r0, r2 - strb r0, [r5, 0x4] - strb r4, [r5, 0x6] - strb r4, [r5, 0x5] - lsls r1, 24 - cmp r1, 0 - bge _081249A4 - movs r0, 0xFF - b _081249A6 -_081249A4: - movs r0, 0x1 -_081249A6: - strb r0, [r5, 0x7] - adds r0, r6, 0 -_081249AA: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_812492C - - thumb_func_start unref_sub_81249B0 -unref_sub_81249B0: @ 81249B0 - push {r4,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r4, r1, 0 - cmp r4, 0xF - bhi _081249DC - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r1, r2, r0 - ldrb r0, [r1, 0x4] - lsrs r0, 7 - cmp r0, 0 - beq _081249DC - adds r0, r1, 0x4 - movs r1, 0 - movs r2, 0xC - bl memset - adds r0, r4, 0 - b _081249DE -_081249DC: - movs r0, 0xFF -_081249DE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end unref_sub_81249B0 - - thumb_func_start sub_81249E4 -sub_81249E4: @ 81249E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r5, r0, 0 - movs r0, 0 - mov r12, r0 - ldrb r1, [r5, 0x8] - cmp r12, r1 - bcc _081249FC - b _08124B94 -_081249FC: - movs r7, 0x1F - ldr r0, _08124A2C @ =0xfffffc1f - mov r10, r0 - movs r1, 0x7D - negs r1, r1 - mov r9, r1 - movs r0, 0x1F - mov r8, r0 -_08124A0C: - ldrh r0, [r5, 0x6] - add r0, r12 - lsls r0, 1 - ldr r1, _08124A30 @ =gPlttBufferFaded - adds r3, r0, r1 - ldr r1, _08124A34 @ =gPlttBufferUnfaded - adds r6, r0, r1 - ldrb r0, [r5] - lsls r0, 25 - lsrs r0, 25 - cmp r0, 0x1 - beq _08124A38 - cmp r0, 0x2 - beq _08124A96 - b _08124B82 - .align 2, 0 -_08124A2C: .4byte 0xfffffc1f -_08124A30: .4byte gPlttBufferFaded -_08124A34: .4byte gPlttBufferUnfaded -_08124A38: - ldr r0, [r3] - lsls r2, r0, 27 - lsrs r0, r2, 27 - movs r1, 0x3 - ldrsb r1, [r5, r1] - adds r0, r1 - cmp r0, 0x1F - bhi _08124A5A - lsrs r0, r2, 27 - adds r0, r1 - ands r0, r7 - ldrb r2, [r3] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_08124A5A: - ldr r0, [r3] - lsls r2, r0, 22 - lsrs r0, r2, 27 - movs r1, 0x3 - ldrsb r1, [r5, r1] - adds r0, r1 - cmp r0, 0x1F - bhi _08124A7E - lsrs r0, r2, 27 - adds r0, r1 - mov r1, r8 - ands r0, r1 - lsls r0, 5 - ldrh r2, [r3] - mov r1, r10 - ands r1, r2 - orrs r1, r0 - strh r1, [r3] -_08124A7E: - ldr r0, [r3] - lsls r2, r0, 17 - lsrs r0, r2, 27 - movs r1, 0x3 - ldrsb r1, [r5, r1] - adds r0, r1 - cmp r0, 0x1F - bls _08124A90 - b _08124B82 -_08124A90: - lsrs r0, r2, 27 - adds r0, r1 - b _08124B74 -_08124A96: - movs r0, 0x3 - ldrsb r0, [r5, r0] - cmp r0, 0 - bge _08124B08 - ldr r0, [r3] - lsls r4, r0, 27 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 27 - lsrs r0, 27 - cmp r1, r0 - blt _08124AC6 - lsrs r0, r4, 27 - adds r0, r2 - ands r0, r7 - ldrb r2, [r3] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_08124AC6: - ldr r0, [r3] - lsls r4, r0, 22 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 22 - lsrs r0, 27 - cmp r1, r0 - blt _08124AF0 - lsrs r0, r4, 27 - adds r0, r2 - mov r1, r8 - ands r0, r1 - lsls r0, 5 - ldrh r2, [r3] - mov r1, r10 - ands r1, r2 - orrs r1, r0 - strh r1, [r3] -_08124AF0: - ldr r0, [r3] - lsls r4, r0, 17 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 17 - lsrs r0, 27 - cmp r1, r0 - blt _08124B82 - b _08124B70 -_08124B08: - ldr r0, [r3] - lsls r4, r0, 27 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 27 - lsrs r0, 27 - cmp r1, r0 - bgt _08124B30 - lsrs r0, r4, 27 - adds r0, r2 - ands r0, r7 - ldrb r2, [r3] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_08124B30: - ldr r0, [r3] - lsls r4, r0, 22 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 22 - lsrs r0, 27 - cmp r1, r0 - bgt _08124B5A - lsrs r0, r4, 27 - adds r0, r2 - mov r1, r8 - ands r0, r1 - lsls r0, 5 - ldrh r2, [r3] - mov r1, r10 - ands r1, r2 - orrs r1, r0 - strh r1, [r3] -_08124B5A: - ldr r0, [r3] - lsls r4, r0, 17 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 17 - lsrs r0, 27 - cmp r1, r0 - bgt _08124B82 -_08124B70: - lsrs r0, r4, 27 - adds r0, r2 -_08124B74: - ands r0, r7 - lsls r0, 2 - ldrb r2, [r3, 0x1] - mov r1, r9 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x1] -_08124B82: - mov r0, r12 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - ldrb r0, [r5, 0x8] - cmp r12, r0 - bcs _08124B94 - b _08124A0C -_08124B94: - ldrb r1, [r5, 0x2] - adds r0, r1, 0x1 - strb r0, [r5, 0x2] - ldrb r0, [r5, 0xB] - lsls r0, 27 - lsls r1, 24 - asrs r0, 3 - cmp r1, r0 - beq _08124BAA - movs r0, 0 - b _08124BDE -_08124BAA: - movs r0, 0 - strb r0, [r5, 0x2] - movs r0, 0x3 - ldrsb r0, [r5, r0] - negs r0, r0 - strb r0, [r5, 0x3] - ldrb r2, [r5] - movs r1, 0x7F - movs r0, 0x7F - ands r0, r2 - cmp r0, 0x1 - bne _08124BCA - lsls r0, r2, 25 - lsrs r0, 25 - adds r0, 0x1 - b _08124BD0 -_08124BCA: - lsls r0, r2, 25 - lsrs r0, 25 - subs r0, 0x1 -_08124BD0: - ands r0, r1 - movs r1, 0x80 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - movs r0, 0x1 -_08124BDE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81249E4 - - thumb_func_start sub_8124BEC -sub_8124BEC: @ 8124BEC - push {r4,r5,lr} - adds r3, r0, 0 - movs r2, 0 - ldrb r0, [r3] - lsls r0, 25 - lsrs r0, 25 - cmp r0, 0x1 - beq _08124C02 - cmp r0, 0x2 - beq _08124C30 - b _08124C6A -_08124C02: - ldrb r0, [r3, 0x8] - cmp r2, r0 - bcs _08124C22 - ldr r4, _08124C2C @ =gPlttBufferFaded -_08124C0A: - ldrh r0, [r3, 0x6] - adds r0, r2 - lsls r0, 1 - adds r0, r4 - ldrh r1, [r3, 0x4] - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r3, 0x8] - cmp r2, r0 - bcc _08124C0A -_08124C22: - ldrb r2, [r3] - lsls r1, r2, 25 - lsrs r1, 25 - adds r1, 0x1 - b _08124C5C - .align 2, 0 -_08124C2C: .4byte gPlttBufferFaded -_08124C30: - ldrb r0, [r3, 0x8] - cmp r2, r0 - bcs _08124C54 - ldr r5, _08124C74 @ =gPlttBufferFaded - ldr r4, _08124C78 @ =gPlttBufferUnfaded -_08124C3A: - ldrh r0, [r3, 0x6] - adds r0, r2 - lsls r0, 1 - adds r1, r0, r5 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r3, 0x8] - cmp r2, r0 - bcc _08124C3A -_08124C54: - ldrb r2, [r3] - lsls r1, r2, 25 - lsrs r1, 25 - subs r1, 0x1 -_08124C5C: - movs r0, 0x7F - ands r1, r0 - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08124C6A: - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08124C74: .4byte gPlttBufferFaded -_08124C78: .4byte gPlttBufferUnfaded - thumb_func_end sub_8124BEC - - thumb_func_start task_tutorial_controls_fadein -task_tutorial_controls_fadein: @ 8124C7C - push {r4-r6,lr} - adds r4, r0, 0 - movs r5, 0 - ldrb r0, [r4] - cmp r0, 0 - beq _08124CE0 -_08124C88: - ldrh r0, [r4, 0x2] - asrs r0, r5 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08124CD6 - lsls r1, r5, 1 - adds r0, r1, r5 - lsls r3, r0, 2 - adds r2, r4, r3 - ldrb r0, [r2, 0x5] - subs r0, 0x1 - strb r0, [r2, 0x5] - lsls r0, 24 - lsrs r0, 24 - adds r6, r1, 0 - cmp r0, 0xFF - bne _08124CD6 - ldrh r0, [r2, 0x8] - movs r2, 0x80 - lsls r2, 8 - adds r1, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08124CC4 - adds r0, r3, 0x4 - adds r0, r4, r0 - bl sub_81249E4 - b _08124CCC -_08124CC4: - adds r0, r3, 0x4 - adds r0, r4, r0 - bl sub_8124BEC -_08124CCC: - adds r0, r6, r5 - lsls r0, 2 - adds r0, r4, r0 - ldrb r1, [r0, 0xD] - strb r1, [r0, 0x5] -_08124CD6: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _08124C88 -_08124CE0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end task_tutorial_controls_fadein - - thumb_func_start sub_8124CE8 -sub_8124CE8: @ 8124CE8 - push {r4-r7,lr} - adds r3, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - movs r4, 0 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - movs r5, 0x1 - movs r7, 0x80 - negs r7, r7 -_08124CFE: - adds r0, r6, 0 - asrs r0, r4 - ands r0, r5 - cmp r0, 0 - beq _08124D2C - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r2, r3, r0 - ldrb r0, [r2, 0x4] - lsrs r0, 7 - cmp r0, 0 - beq _08124D2C - adds r0, r5, 0 - lsls r0, r4 - ldrh r1, [r3, 0x2] - orrs r0, r1 - strh r0, [r3, 0x2] - ldrb r1, [r2, 0x4] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r5 - strb r0, [r2, 0x4] -_08124D2C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _08124CFE - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8124CE8 - - thumb_func_start sub_8124D3C -sub_8124D3C: @ 8124D3C - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - lsls r1, 16 - lsrs r7, r1, 16 - movs r5, 0 - movs r3, 0x1 -_08124D4A: - ldrh r0, [r6, 0x2] - asrs r0, r5 - ands r0, r3 - cmp r0, 0 - beq _08124DB2 - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r4, r6, r0 - ldrb r0, [r4, 0x4] - lsrs r0, 7 - cmp r0, 0 - beq _08124DB2 - adds r0, r7, 0 - asrs r0, r5 - ands r0, r3 - cmp r0, 0 - beq _08124DB2 - ldrh r1, [r4, 0xA] - lsls r1, 1 - ldr r0, _08124DA8 @ =gPlttBufferFaded - adds r0, r1, r0 - ldr r2, _08124DAC @ =gPlttBufferUnfaded - adds r1, r2 - ldrb r2, [r4, 0xC] - lsls r2, 1 - str r3, [sp] - bl memcpy - ldrb r0, [r4, 0x4] - movs r2, 0x80 - negs r2, r2 - adds r1, r2, 0 - ands r0, r1 - strb r0, [r4, 0x4] - movs r0, 0 - strb r0, [r4, 0x6] - strb r0, [r4, 0x5] - ldrb r0, [r4, 0xF] - lsls r0, 24 - ldr r3, [sp] - cmp r0, 0 - bge _08124DB0 - movs r0, 0xFF - strb r0, [r4, 0x7] - b _08124DB2 - .align 2, 0 -_08124DA8: .4byte gPlttBufferFaded -_08124DAC: .4byte gPlttBufferUnfaded -_08124DB0: - strb r3, [r4, 0x7] -_08124DB2: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _08124D4A - ldr r0, _08124DC8 @ =0x0000ffff - cmp r7, r0 - bne _08124DCC - movs r0, 0 - strb r0, [r6] - b _08124DD0 - .align 2, 0 -_08124DC8: .4byte 0x0000ffff -_08124DCC: - ldrh r0, [r6, 0x2] - bics r0, r7 -_08124DD0: - strh r0, [r6, 0x2] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8124D3C - - thumb_func_start sub_8124DDC -sub_8124DDC: @ 8124DDC - push {r4-r7,lr} - adds r6, r0, 0 - ldr r0, [sp, 0x14] - ldr r4, [sp, 0x18] - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - movs r1, 0 - lsrs r3, 19 - adds r3, r2 - lsls r3, 1 - adds r6, r3 - cmp r1, r4 - bcs _08124E26 -_08124E04: - lsls r0, r1, 6 - adds r2, r6, r0 - movs r0, 0 - adds r3, r1, 0x1 - cmp r0, r5 - bcs _08124E1E -_08124E10: - strh r7, [r2] - adds r2, 0x2 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r5 - bcc _08124E10 -_08124E1E: - lsls r0, r3, 24 - lsrs r1, r0, 24 - cmp r1, r4 - bcc _08124E04 -_08124E26: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8124DDC - - thumb_func_start sub_8124E2C -sub_8124E2C: @ 8124E2C - push {r4-r7,lr} - adds r7, r0, 0 - ldr r0, [sp, 0x14] - ldr r4, [sp, 0x18] - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r6, r4, 24 - movs r4, 0 - lsrs r3, 19 - adds r3, r2 - lsls r3, 1 - adds r7, r3 - cmp r4, r6 - bcs _08124E76 -_08124E50: - lsls r0, r4, 6 - adds r2, r7, r0 - movs r3, 0 - adds r4, 0x1 - cmp r3, r5 - bcs _08124E6E -_08124E5C: - ldrh r0, [r1] - strh r0, [r2] - adds r1, 0x2 - adds r2, 0x2 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r5 - bcc _08124E5C -_08124E6E: - lsls r0, r4, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _08124E50 -_08124E76: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8124E2C - - thumb_func_start sub_8124E7C -sub_8124E7C: @ 8124E7C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r0 - ldr r0, [sp, 0x24] - ldr r4, [sp, 0x28] - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - lsls r3, 24 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, 24 - lsrs r4, 24 - mov r8, r4 - movs r0, 0 - lsrs r4, r3, 24 - cmp r0, r8 - bcs _08124EF6 -_08124EAE: - ldr r2, [sp] - movs r3, 0 - adds r6, r4, 0x1 - adds r0, 0x1 - mov r12, r0 - cmp r3, r7 - bcs _08124EE0 - lsls r5, r4, 6 -_08124EBE: - lsls r0, r2, 1 - adds r0, r5 - add r0, r10 - mov r1, r9 - strh r1, [r0] - adds r1, r2, 0x1 - adds r0, r1, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r1, r0 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r7 - bcc _08124EBE -_08124EE0: - adds r0, r6, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r6, r0 - lsls r0, 24 - lsrs r4, r0, 24 - mov r1, r12 - lsls r0, r1, 24 - lsrs r0, 24 - cmp r0, r8 - bcc _08124EAE -_08124EF6: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8124E7C - - thumb_func_start sub_8124F08 -sub_8124F08: @ 8124F08 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r0 - ldr r0, [sp, 0x24] - ldr r4, [sp, 0x28] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - lsls r3, 24 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r4, 24 - lsrs r4, 24 - mov r9, r4 - movs r0, 0 - adds r5, r1, 0 - lsrs r4, r3, 24 - cmp r0, r9 - bcs _08124F82 -_08124F38: - ldr r2, [sp] - movs r3, 0 - adds r7, r4, 0x1 - adds r0, 0x1 - mov r8, r0 - cmp r3, r12 - bcs _08124F6C - lsls r6, r4, 6 -_08124F48: - lsls r0, r2, 1 - adds r0, r6 - add r0, r10 - ldrh r1, [r5] - strh r1, [r0] - adds r5, 0x2 - adds r1, r2, 0x1 - adds r0, r1, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r1, r0 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r12 - bcc _08124F48 -_08124F6C: - adds r0, r7, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r7, r0 - lsls r0, 24 - lsrs r4, r0, 24 - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 - cmp r0, r9 - bcc _08124F38 -_08124F82: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8124F08 - - thumb_func_start unref_sub_8124F94 -unref_sub_8124F94: @ 8124F94 - sub sp, 0x4 - movs r3, 0 - strb r3, [r0, 0x1] - strb r3, [r0] - strh r3, [r0, 0x2] - movs r1, 0xC0 - lsls r1, 19 - str r1, [r0, 0x4] - mov r1, sp - strh r3, [r1] - ldr r2, _08124FCC @ =0x040000d4 - str r1, [r2] - adds r1, r0, 0 - adds r1, 0x8 - str r1, [r2, 0x4] - ldr r1, _08124FD0 @ =0x81000040 - str r1, [r2, 0x8] - ldr r1, [r2, 0x8] - mov r1, sp - strh r3, [r1] - str r1, [r2] - adds r0, 0x88 - str r0, [r2, 0x4] - ldr r0, _08124FD4 @ =0x810000c0 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - add sp, 0x4 - bx lr - .align 2, 0 -_08124FCC: .4byte 0x040000d4 -_08124FD0: .4byte 0x81000040 -_08124FD4: .4byte 0x810000c0 - thumb_func_end unref_sub_8124F94 - - thumb_func_start unref_sub_8124FD8 -unref_sub_8124FD8: @ 8124FD8 - push {r4-r7,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r7, _08124FE4 @ =0x040000d4 - b _0812508A - .align 2, 0 -_08124FE4: .4byte 0x040000d4 -_08124FE8: - ldrb r0, [r4, 0x1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r0, r4, 0 - adds r0, 0x88 - adds r0, r1 - str r3, [r0] - ldrb r1, [r4, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldrb r1, [r5, 0x6] - adds r0, 0x8E - strb r1, [r0] - ldrb r1, [r4, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldrb r1, [r5, 0x4] - adds r0, 0x8C - strb r1, [r0] - ldrb r1, [r4, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldrb r1, [r5, 0x5] - adds r0, 0x8D - strb r1, [r0] - ldrb r1, [r5, 0x4] - ldrb r0, [r5, 0x5] - adds r6, r1, 0 - muls r6, r0 - ldrh r2, [r4, 0x2] - adds r1, r2, r6 - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - ble _08125040 - movs r0, 0x2 - b _0812509C -_08125040: - ldrh r0, [r5, 0x8] - cmp r0, 0 - bne _08125060 - str r3, [r7] - ldrh r1, [r4, 0x2] - lsls r1, 6 - ldr r0, [r4, 0x4] - adds r0, r1 - str r0, [r7, 0x4] - lsls r0, r6, 4 - movs r1, 0x80 - lsls r1, 24 - orrs r0, r1 - str r0, [r7, 0x8] - ldr r0, [r7, 0x8] - b _0812506C -_08125060: - lsls r0, r2, 6 - ldr r1, [r4, 0x4] - adds r1, r0 - adds r0, r3, 0 - bl sub_800D238 -_0812506C: - ldrb r1, [r4, 0x1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldrh r1, [r4, 0x2] - adds r0, 0x90 - strh r1, [r0] - ldrh r0, [r4, 0x2] - adds r0, r6, r0 - strh r0, [r4, 0x2] - ldrb r0, [r4, 0x1] - adds r0, 0x1 - strb r0, [r4, 0x1] - adds r5, 0xC -_0812508A: - ldrb r0, [r4, 0x1] - cmp r0, 0x1F - bhi _0812509A - ldr r3, [r5] - cmp r3, 0 - bne _08124FE8 - movs r0, 0 - b _0812509C -_0812509A: - movs r0, 0x1 -_0812509C: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end unref_sub_8124FD8 - - thumb_func_start unref_sub_81250A4 -unref_sub_81250A4: @ 81250A4 - push {r4,r5,lr} - sub sp, 0x20 - adds r4, r0, 0 - adds r5, r1, 0 - b _081250FC -_081250AE: - ldrb r1, [r4] - lsls r1, 3 - adds r0, r4, 0 - adds r0, 0x8 - adds r0, r1 - str r2, [r0] - ldrb r0, [r4] - lsls r0, 3 - adds r0, r4, r0 - ldrb r1, [r5, 0x4] - strb r1, [r0, 0xC] - ldrb r0, [r5, 0x5] - cmp r0, 0 - bne _081250D8 - ldrb r1, [r4] - lsls r1, 4 - adds r0, r2, 0 - movs r2, 0x20 - bl LoadPalette - b _081250EC -_081250D8: - adds r0, r2, 0 - mov r1, sp - bl sub_800D238 - ldrb r1, [r4] - lsls r1, 4 - mov r0, sp - movs r2, 0x20 - bl LoadPalette -_081250EC: - ldrb r0, [r4] - lsls r1, r0, 3 - adds r1, r4, r1 - strb r0, [r1, 0xD] - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - adds r5, 0x8 -_081250FC: - ldrb r0, [r4] - cmp r0, 0xF - bhi _0812510C - ldr r2, [r5] - cmp r2, 0 - bne _081250AE - movs r0, 0 - b _0812510E -_0812510C: - movs r0, 0x1 -_0812510E: - add sp, 0x20 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end unref_sub_81250A4 - - thumb_func_start unref_sub_8125118 -unref_sub_8125118: @ 8125118 - push {r4-r7,lr} - ldr r4, _0812514C @ =0xfffffe00 - add sp, r4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r2, 0x80 - lsls r2, 2 - mov r0, sp - movs r1, 0 - bl memset - ldrb r7, [r6, 0x5] - ldr r0, [r6] - mov r1, sp - bl sub_800D238 - ldrb r4, [r5] - cmp r4, r7 - bcs _08125186 -_0812513E: - ldrb r0, [r5] - adds r0, r4 - cmp r0, 0xF - ble _08125150 - movs r0, 0x1 - b _08125188 - .align 2, 0 -_0812514C: .4byte 0xfffffe00 -_08125150: - lsls r2, r4, 3 - adds r0, r5, 0 - adds r0, 0x8 - adds r0, r2 - ldr r1, [r6] - str r1, [r0] - adds r2, r5, r2 - ldrb r0, [r6, 0x4] - adds r0, r4, r0 - strb r0, [r2, 0xC] - ldrb r0, [r5] - strb r0, [r2, 0xD] - lsls r0, r4, 5 - add r0, sp - ldrb r1, [r5] - lsls r1, 4 - movs r2, 0x20 - bl LoadPalette - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r7 - bcc _0812513E -_08125186: - movs r0, 0 -_08125188: - movs r3, 0x80 - lsls r3, 2 - add sp, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end unref_sub_8125118 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/roulette.s b/asm/roulette.s new file mode 100644 index 000000000..f26f66698 --- /dev/null +++ b/asm/roulette.s @@ -0,0 +1,9659 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_81150FC +sub_81150FC: @ 81150FC + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + ldr r0, _08115120 @ =0x02019000 + adds r1, r0, 0 + adds r1, 0xB8 + ldrb r0, [r1] + cmp r0, 0 + beq _0811511C + adds r0, r1, 0 + bl task_tutorial_controls_fadein +_0811511C: + pop {r0} + bx r0 + .align 2, 0 +_08115120: .4byte 0x02019000 + thumb_func_end sub_81150FC + + thumb_func_start sub_8115124 +sub_8115124: @ 8115124 + push {r4,lr} + sub sp, 0x4 + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_8117434 + ldr r2, _08115188 @ =REG_BG1HOFS + ldr r3, _0811518C @ =0x02019000 + ldrh r1, [r3, 0x26] + movs r4, 0x80 + lsls r4, 2 + adds r0, r4, 0 + subs r0, r1 + strh r0, [r2] + ldrb r0, [r3, 0x1] + cmp r0, 0 + beq _08115154 + ldr r1, _08115190 @ =REG_BLDALPHA + ldrh r0, [r3, 0x34] + strh r0, [r1] +_08115154: + movs r1, 0x2A + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _08115170 + ldr r1, _08115194 @ =0x040000d4 + ldr r0, _08115198 @ =gBG1TilemapBuffer + 0x1C0 + str r0, [r1] + ldr r0, _0811519C @ =0x060021c0 + str r0, [r1, 0x4] + ldr r0, _081151A0 @ =0x800001a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0 + strh r0, [r3, 0x2A] +_08115170: + movs r2, 0x28 + ldrsh r0, [r3, r2] + cmp r0, 0x1 + beq _081151A4 + cmp r0, 0x1 + ble _0811521A + cmp r0, 0x2 + beq _081151D4 + cmp r0, 0xFF + beq _081151F8 + b _0811521A + .align 2, 0 +_08115188: .4byte REG_BG1HOFS +_0811518C: .4byte 0x02019000 +_08115190: .4byte REG_BLDALPHA +_08115194: .4byte 0x040000d4 +_08115198: .4byte gBG1TilemapBuffer + 0x1C0 +_0811519C: .4byte 0x060021c0 +_081151A0: .4byte 0x800001a0 +_081151A4: + ldr r1, _081151C4 @ =REG_BG0CNT + movs r4, 0xF8 + lsls r4, 5 + adds r0, r4, 0 + strh r0, [r1] + adds r1, 0xCC + ldr r0, _081151C8 @ =gBG2TilemapBuffer + 0x1C0 + str r0, [r1] + ldr r0, _081151CC @ =0x0600f9c0 + str r0, [r1, 0x4] + ldr r0, _081151D0 @ =0x800001a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0x2 + b _08115218 + .align 2, 0 +_081151C4: .4byte REG_BG0CNT +_081151C8: .4byte gBG2TilemapBuffer + 0x1C0 +_081151CC: .4byte 0x0600f9c0 +_081151D0: .4byte 0x800001a0 +_081151D4: + ldr r1, _081151E8 @ =0x040000d4 + ldr r0, _081151EC @ =gBG2TilemapBuffer + 0x1C0 + str r0, [r1] + ldr r0, _081151F0 @ =0x0600f9c0 + str r0, [r1, 0x4] + ldr r0, _081151F4 @ =0x800001a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + b _0811521A + .align 2, 0 +_081151E8: .4byte 0x040000d4 +_081151EC: .4byte gBG2TilemapBuffer + 0x1C0 +_081151F0: .4byte 0x0600f9c0 +_081151F4: .4byte 0x800001a0 +_081151F8: + ldr r1, _08115224 @ =REG_BG0CNT + ldr r2, _08115228 @ =0x00001f08 + adds r0, r2, 0 + strh r0, [r1] + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r1, _0811522C @ =0x040000d4 + mov r4, sp + str r4, [r1] + ldr r0, _08115230 @ =0x0600f9c0 + str r0, [r1, 0x4] + ldr r0, _08115234 @ =0x810001a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0 +_08115218: + strh r0, [r3, 0x28] +_0811521A: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08115224: .4byte REG_BG0CNT +_08115228: .4byte 0x00001f08 +_0811522C: .4byte 0x040000d4 +_08115230: .4byte 0x0600f9c0 +_08115234: .4byte 0x810001a0 + thumb_func_end sub_8115124 + + thumb_func_start sub_8115238 +sub_8115238: @ 8115238 + push {r4-r6,lr} + sub sp, 0x8 + ldr r1, _081152C0 @ =gUnknown_083F8EC4 + mov r0, sp + movs r2, 0x6 + bl memcpy + ldr r5, _081152C4 @ =0x02019000 + movs r2, 0xBE + lsls r2, 1 + adds r0, r5, 0 + movs r1, 0 + bl memset + ldr r0, _081152C8 @ =gUnknown_0202E8CC + ldrh r2, [r0] + movs r0, 0x1 + ands r0, r2 + ldrb r1, [r5, 0x4] + movs r3, 0x4 + negs r3, r3 + ands r3, r1 + orrs r3, r0 + strb r3, [r5, 0x4] + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _08115276 + movs r0, 0x80 + orrs r3, r0 + strb r3, [r5, 0x4] +_08115276: + ldr r3, _081152CC @ =gUnknown_083F8DF4 + ldrb r2, [r5, 0x4] + lsls r1, r2, 30 + lsrs r0, r1, 25 + adds r0, r3 + ldrb r0, [r0, 0x3] + adds r4, r5, 0 + adds r4, 0x22 + strb r0, [r4] + lsrs r0, r1, 25 + adds r0, r3 + ldrb r0, [r0, 0x4] + adds r3, r5, 0 + adds r3, 0x23 + strb r0, [r3] + ldr r0, _081152D0 @ =gUnknown_083F8DF0 + lsrs r1, 30 + lsls r2, 24 + lsrs r2, 31 + lsls r2, 1 + adds r1, r2 + adds r1, r0 + ldrb r2, [r1] + strb r2, [r5, 0x19] + ldrb r1, [r5, 0x1A] + movs r0, 0xF + ands r0, r1 + movs r1, 0x10 + orrs r0, r1 + strb r0, [r5, 0x1A] + cmp r2, 0x1 + bne _081152DC + ldr r4, _081152D4 @ =gPlttBufferUnfaded + ldr r3, _081152D8 @ =gPlttBufferFaded + mov r0, sp + ldrh r2, [r0] + b _081152E4 + .align 2, 0 +_081152C0: .4byte gUnknown_083F8EC4 +_081152C4: .4byte 0x02019000 +_081152C8: .4byte gUnknown_0202E8CC +_081152CC: .4byte gUnknown_083F8DF4 +_081152D0: .4byte gUnknown_083F8DF0 +_081152D4: .4byte gPlttBufferUnfaded +_081152D8: .4byte gPlttBufferFaded +_081152DC: + ldr r4, _08115348 @ =gPlttBufferUnfaded + ldr r3, _0811534C @ =gPlttBufferFaded + mov r0, sp + ldrh r2, [r0, 0x2] +_081152E4: + adds r0, r3, 0 + adds r0, 0xA2 + strh r2, [r0] + ldr r1, _08115350 @ =0x0000ffff + adds r0, r1, 0 + ands r0, r2 + strh r0, [r3] + ands r0, r1 + adds r2, r4, 0 + adds r2, 0xA2 + strh r0, [r2] + ands r0, r1 + strh r0, [r4] + ldr r0, _08115354 @ =0x020190b8 + bl sub_8124918 + movs r4, 0 + ldr r5, _08115358 @ =gUnknown_083F8E34 +_08115308: + lsls r2, r4, 3 + adds r2, r5 + ldr r0, _08115354 @ =0x020190b8 + adds r1, r4, 0 + bl sub_812492C + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xC + bls _08115308 + movs r4, 0 + ldr r5, _0811535C @ =0x02019000 +_08115322: + movs r0, 0x64 + muls r0, r4 + ldr r1, _08115360 @ =gPlayerParty + adds r0, r1 + movs r1, 0x41 + bl GetMonData + adds r1, r0, 0 + movs r0, 0x98 + lsls r0, 1 + cmp r1, r0 + beq _08115364 + adds r0, 0x2 + cmp r1, r0 + bne _0811536C + ldrb r0, [r5, 0x2] + movs r1, 0x1 + b _08115368 + .align 2, 0 +_08115348: .4byte gPlttBufferUnfaded +_0811534C: .4byte gPlttBufferFaded +_08115350: .4byte 0x0000ffff +_08115354: .4byte 0x020190b8 +_08115358: .4byte gUnknown_083F8E34 +_0811535C: .4byte 0x02019000 +_08115360: .4byte gPlayerParty +_08115364: + ldrb r0, [r5, 0x2] + movs r1, 0x2 +_08115368: + orrs r0, r1 + strb r0, [r5, 0x2] +_0811536C: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _08115322 + bl RtcCalcLocalTime + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8115238 + + thumb_func_start sub_8115384 +sub_8115384: @ 8115384 + push {r4,lr} + sub sp, 0x4 + ldr r1, _081153A4 @ =gMain + ldr r2, _081153A8 @ =0x0000043c + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0x7 + bls _08115398 + b _081155FE +_08115398: + lsls r0, 2 + ldr r1, _081153AC @ =_081153B0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081153A4: .4byte gMain +_081153A8: .4byte 0x0000043c +_081153AC: .4byte _081153B0 + .align 2, 0 +_081153B0: + .4byte _081153D0 + .4byte _08115444 + .4byte _08115460 + .4byte _08115494 + .4byte _081154CC + .4byte _081154FC + .4byte _0811556C + .4byte _0811558C +_081153D0: + movs r0, 0 + bl SetVBlankCallback + bl remove_some_task + bl sub_80F9438 + bl sub_80F9368 + ldr r1, _08115420 @ =REG_BG2CNT + ldr r3, _08115424 @ =0x00004686 + adds r0, r3, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _08115428 @ =0x00004401 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x46 + movs r3, 0x90 + lsls r3, 6 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _0811542C @ =0x0000060a + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08115430 @ =gUnknown_08E8096C + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _08115434 @ =gUnknown_08E81098 + ldr r1, _08115438 @ =0x06004000 + bl LZ77UnCompVram + ldr r1, _0811543C @ =gMain + ldr r3, _08115440 @ =0x0000043c + adds r1, r3 + b _0811557A + .align 2, 0 +_08115420: .4byte REG_BG2CNT +_08115424: .4byte 0x00004686 +_08115428: .4byte 0x00004401 +_0811542C: .4byte 0x0000060a +_08115430: .4byte gUnknown_08E8096C +_08115434: .4byte gUnknown_08E81098 +_08115438: .4byte 0x06004000 +_0811543C: .4byte gMain +_08115440: .4byte 0x0000043c +_08115444: + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + ldr r1, _08115458 @ =gMain + ldr r0, _0811545C @ =0x0000043c + adds r1, r0 + b _0811557A + .align 2, 0 +_08115458: .4byte gMain +_0811545C: .4byte 0x0000043c +_08115460: + ldr r0, _08115480 @ =gWindowConfig_81E6C3C + bl SetUpWindowConfig + ldr r0, _08115484 @ =gWindowConfig_81E6CE4 + bl InitMenuWindow + ldr r0, _08115488 @ =gUnknown_083F86BC + movs r2, 0xE0 + lsls r2, 1 + movs r1, 0 + bl LoadPalette + ldr r1, _0811548C @ =gMain + ldr r2, _08115490 @ =0x0000043c + adds r1, r2 + b _0811557A + .align 2, 0 +_08115480: .4byte gWindowConfig_81E6C3C +_08115484: .4byte gWindowConfig_81E6CE4 +_08115488: .4byte gUnknown_083F86BC +_0811548C: .4byte gMain +_08115490: .4byte 0x0000043c +_08115494: + bl sub_8115238 + bl sub_80F9020 + ldr r0, _081154B4 @ =gUnknown_083F88BC + ldr r1, _081154B8 @ =0x02018800 + bl LZ77UnCompWram + ldr r0, _081154BC @ =gUnknown_083F8A60 + ldr r1, _081154C0 @ =0x06003000 + bl LZ77UnCompVram + ldr r1, _081154C4 @ =gMain + ldr r3, _081154C8 @ =0x0000043c + adds r1, r3 + b _0811557A + .align 2, 0 +_081154B4: .4byte gUnknown_083F88BC +_081154B8: .4byte 0x02018800 +_081154BC: .4byte gUnknown_083F8A60 +_081154C0: .4byte 0x06003000 +_081154C4: .4byte gMain +_081154C8: .4byte 0x0000043c +_081154CC: + movs r0, 0 + bl sub_8117838 + bl sub_811857C + bl sub_81184D8 + bl sub_8117F2C + bl sub_8117900 + bl sub_8117BBC + bl sub_8117DF4 + ldr r1, _081154F4 @ =gMain + ldr r0, _081154F8 @ =0x0000043c + adds r1, r0 + b _0811557A + .align 2, 0 +_081154F4: .4byte gMain +_081154F8: .4byte 0x0000043c +_081154FC: + bl AnimateSprites + bl BuildOamBuffer + ldr r0, _08115550 @ =gSaveBlock1 + ldr r1, _08115554 @ =0x00000494 + adds r0, r1 + ldrh r0, [r0] + bl sub_81180F4 + movs r0, 0x6 + bl sub_81182F8 + movs r0, 0 + bl sub_811829C + movs r0, 0 + bl sub_8117158 + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08115558 @ =gUnknown_081C4157 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _0811555C @ =gSpriteCoordOffsetX + movs r2, 0x3C + negs r2, r2 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _08115560 @ =gSpriteCoordOffsetY + movs r0, 0 + strh r0, [r1] + ldr r1, _08115564 @ =gMain + ldr r3, _08115568 @ =0x0000043c + adds r1, r3 + b _0811557A + .align 2, 0 +_08115550: .4byte gSaveBlock1 +_08115554: .4byte 0x00000494 +_08115558: .4byte gUnknown_081C4157 +_0811555C: .4byte gSpriteCoordOffsetX +_08115560: .4byte gSpriteCoordOffsetY +_08115564: .4byte gMain +_08115568: .4byte 0x0000043c +_0811556C: + movs r1, 0x80 + lsls r1, 19 + ldr r3, _08115584 @ =0x00001741 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _08115588 @ =0x0000043c + adds r1, r2, r0 +_0811557A: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _081155FE + .align 2, 0 +_08115584: .4byte 0x00001741 +_08115588: .4byte 0x0000043c +_0811558C: + ldr r3, _08115608 @ =0x04000208 + ldrh r2, [r3] + movs r0, 0 + strh r0, [r3] + ldr r4, _0811560C @ =0x04000200 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _08115610 @ =REG_DISPSTAT + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r0, _08115614 @ =sub_8115124 + bl SetVBlankCallback + movs r0, 0x1 + str r0, [sp] + movs r0, 0xFF + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginHardwarePaletteFade + ldr r0, _08115618 @ =sub_81156BC + movs r1, 0 + bl CreateTask + ldr r4, _0811561C @ =0x02019000 + adds r1, r4, 0 + adds r1, 0xA4 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08115620 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0x6 + strh r0, [r1, 0x14] + ldr r0, _08115624 @ =gSaveBlock1 + ldr r2, _08115628 @ =0x00000494 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1, 0x22] + ldr r0, _0811562C @ =sub_8115634 + movs r1, 0x1 + bl CreateTask + adds r4, 0xA5 + strb r0, [r4] + ldr r0, _08115630 @ =sub_81150FC + bl SetMainCallback2 +_081155FE: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08115608: .4byte 0x04000208 +_0811560C: .4byte 0x04000200 +_08115610: .4byte REG_DISPSTAT +_08115614: .4byte sub_8115124 +_08115618: .4byte sub_81156BC +_0811561C: .4byte 0x02019000 +_08115620: .4byte gTasks +_08115624: .4byte gSaveBlock1 +_08115628: .4byte 0x00000494 +_0811562C: .4byte sub_8115634 +_08115630: .4byte sub_81150FC + thumb_func_end sub_8115384 + + thumb_func_start sub_8115634 +sub_8115634: @ 8115634 + push {r4-r6,lr} + ldr r0, _081156B8 @ =0x02019000 + adds r3, r0, 0 + adds r3, 0x21 + ldrb r1, [r3] + adds r2, r1, 0x1 + strb r2, [r3] + adds r2, r0, 0 + adds r2, 0x23 + lsls r1, 24 + lsrs r1, 24 + adds r6, r0, 0 + ldrb r2, [r2] + cmp r1, r2 + bne _08115674 + movs r0, 0 + strb r0, [r3] + adds r2, r6, 0 + adds r2, 0x22 + ldrb r1, [r2] + ldrh r0, [r6, 0x24] + subs r0, r1 + strh r0, [r6, 0x24] + lsls r0, 16 + cmp r0, 0 + bge _08115674 + ldrb r1, [r2] + movs r2, 0xB4 + lsls r2, 1 + adds r0, r2, 0 + subs r0, r1 + strh r0, [r6, 0x24] +_08115674: + adds r4, r6, 0 + ldrh r0, [r4, 0x24] + bl Sin2 + lsls r0, 16 + lsrs r5, r0, 16 + ldrh r0, [r4, 0x24] + bl Cos2 + lsls r0, 16 + lsrs r1, r0, 16 + lsls r0, r5, 16 + asrs r0, 16 + cmp r0, 0 + bge _08115694 + adds r0, 0xF +_08115694: + lsls r0, 12 + lsrs r5, r0, 16 + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0 + bge _081156A2 + adds r0, 0xF +_081156A2: + asrs r0, 4 + strh r0, [r6, 0x32] + strh r0, [r6, 0x2C] + strh r5, [r6, 0x2E] + lsls r0, r5, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r6, 0x30] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081156B8: .4byte 0x02019000 + thumb_func_end sub_8115634 + + thumb_func_start sub_81156BC +sub_81156BC: @ 81156BC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl UpdatePaletteFade + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _08115716 + ldr r2, _0811571C @ =REG_BLDCNT + ldrh r0, [r2] + movs r5, 0x90 + lsls r5, 6 + adds r1, r5, 0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _08115720 @ =REG_BLDALPHA + ldr r2, _08115724 @ =0x00000808 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _08115728 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r3, [r0, 0x14] + adds r0, r4, 0 + bl sub_8116CAC + bl sub_8116CF8 + bl sub_81185E8 + movs r0, 0 + bl sub_8117158 + movs r0, 0x6 + bl sub_81182F8 + ldr r1, _0811572C @ =sub_81159BC + ldr r2, _08115730 @ =0x0000ffff + adds r0, r4, 0 + movs r3, 0x3 + bl sub_8116C34 +_08115716: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811571C: .4byte REG_BLDCNT +_08115720: .4byte REG_BLDALPHA +_08115724: .4byte 0x00000808 +_08115728: .4byte gTasks +_0811572C: .4byte sub_81159BC +_08115730: .4byte 0x0000ffff + thumb_func_end sub_81156BC + + thumb_func_start sub_8115734 +sub_8115734: @ 8115734 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r0, _08115770 @ =0x00002d9e + bl sub_814AAF8 + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08115774 @ =gUnknown_081C41E3 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _08115778 @ =gUnknown_083F8EBC + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08115770: .4byte 0x00002d9e +_08115774: .4byte gUnknown_081C41E3 +_08115778: .4byte gUnknown_083F8EBC + thumb_func_end sub_8115734 + + thumb_func_start sub_811577C +sub_811577C: @ 811577C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1A + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r1, _081157A4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _081157A8 @ =sub_81159BC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081157A4: .4byte gTasks +_081157A8: .4byte sub_81159BC + thumb_func_end sub_811577C + + thumb_func_start sub_81157AC +sub_81157AC: @ 81157AC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _081157CC @ =0x02019000 + adds r0, 0xA5 + ldrb r0, [r0] + bl DestroyTask + adds r0, r4, 0 + bl sub_8116AB0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081157CC: .4byte 0x02019000 + thumb_func_end sub_81157AC + + thumb_func_start sub_81157D0 +sub_81157D0: @ 81157D0 + push {r4-r7,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bhi _081158C8 + lsls r0, r4, 2 + ldr r1, _081157E8 @ =_081157EC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081157E8: .4byte _081157EC + .align 2, 0 +_081157EC: + .4byte _0811582C + .4byte _08115848 + .4byte _08115848 + .4byte _08115848 + .4byte _08115848 + .4byte _08115884 + .4byte _081158C8 + .4byte _081158C8 + .4byte _081158C8 + .4byte _081158C8 + .4byte _08115884 + .4byte _081158C8 + .4byte _081158C8 + .4byte _081158C8 + .4byte _081158C8 + .4byte _08115884 +_0811582C: + ldr r0, _08115844 @ =gBG2TilemapBuffer + movs r1, 0x10 + str r1, [sp] + movs r1, 0xD + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xE + movs r3, 0x7 + bl sub_8124DDC + b _08115918 + .align 2, 0 +_08115844: .4byte gBG2TilemapBuffer +_08115848: + lsls r0, r4, 1 + adds r0, r4 + adds r0, 0xE + lsls r0, 24 + lsrs r7, r0, 24 + ldr r5, _0811587C @ =gBG2TilemapBuffer + movs r0, 0x10 + str r0, [sp] + movs r4, 0xD + str r4, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x7 + bl sub_8124DDC + ldr r1, _08115880 @ =0x02018a32 + movs r0, 0x3 + str r0, [sp] + str r4, [sp, 0x4] + adds r0, r5, 0 + adds r2, r7, 0 + movs r3, 0x7 + bl sub_8124E2C + b _08115918 + .align 2, 0 +_0811587C: .4byte gBG2TilemapBuffer +_08115880: .4byte 0x02018a32 +_08115884: + subs r0, r4, 0x1 + movs r1, 0x5 + bl __divsi3 + lsls r1, r0, 1 + adds r1, r0 + adds r1, 0xA + lsls r1, 24 + lsrs r6, r1, 24 + ldr r5, _081158C0 @ =gBG2TilemapBuffer + movs r4, 0x10 + str r4, [sp] + movs r0, 0xD + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x7 + bl sub_8124DDC + ldr r1, _081158C4 @ =0x02018a80 + str r4, [sp] + movs r0, 0x3 + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r2, 0xE + adds r3, r6, 0 + bl sub_8124E2C + b _08115918 + .align 2, 0 +_081158C0: .4byte gBG2TilemapBuffer +_081158C4: .4byte 0x02018a80 +_081158C8: + adds r0, r4, 0 + movs r1, 0x5 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + adds r1, 0xE + lsls r1, 24 + lsrs r7, r1, 24 + subs r0, r4, 0x1 + movs r1, 0x5 + bl __divsi3 + lsls r1, r0, 1 + adds r1, r0 + adds r1, 0x7 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r4, _08115920 @ =gBG2TilemapBuffer + movs r0, 0x10 + str r0, [sp] + movs r0, 0xD + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x7 + bl sub_8124DDC + ldr r1, _08115924 @ =0x02018a20 + movs r0, 0x3 + str r0, [sp] + str r0, [sp, 0x4] + adds r0, r4, 0 + adds r2, r7, 0 + adds r3, r6, 0 + bl sub_8124E2C +_08115918: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08115920: .4byte gBG2TilemapBuffer +_08115924: .4byte 0x02018a20 + thumb_func_end sub_81157D0 + + thumb_func_start sub_8115928 +sub_8115928: @ 8115928 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + cmp r1, 0 + bne _0811594C + ldr r1, _08115948 @ =gTasks + lsls r4, r5, 2 + adds r0, r4, r5 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x10] + bl sub_811829C + b _08115960 + .align 2, 0 +_08115948: .4byte gTasks +_0811594C: + ldr r0, _08115974 @ =0x02019000 + ldrb r1, [r0, 0x1A] + lsls r1, 28 + lsrs r1, 28 + adds r0, 0x1B + adds r1, r0 + ldrb r0, [r1] + bl sub_811829C + lsls r4, r5, 2 +_08115960: + ldr r0, _08115978 @ =gTasks + adds r1, r4, r5 + lsls r1, 3 + adds r1, r0 + ldrb r0, [r1, 0x10] + bl sub_81157D0 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08115974: .4byte 0x02019000 +_08115978: .4byte gTasks + thumb_func_end sub_8115928 + + thumb_func_start sub_811597C +sub_811597C: @ 811597C + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _081159B0 @ =0x02019000 + movs r6, 0 + movs r1, 0x1 + strh r1, [r5, 0x28] + ldr r1, _081159B4 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldrb r0, [r4, 0x10] + bl sub_81157D0 + adds r1, r5, 0 + adds r1, 0x23 + movs r0, 0x2 + strb r0, [r1] + adds r5, 0x21 + strb r6, [r5] + ldr r0, _081159B8 @ =sub_8115E14 + str r0, [r4] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081159B0: .4byte 0x02019000 +_081159B4: .4byte gTasks +_081159B8: .4byte sub_8115E14 + thumb_func_end sub_811597C + + thumb_func_start sub_81159BC +sub_81159BC: @ 81159BC + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r3, _08115A10 @ =0x02019000 + ldr r1, [r3, 0x8] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08115A1C + movs r2, 0xB + ldr r5, _08115A14 @ =gUnknown_083F8C00 + adds r0, r5, 0 + adds r0, 0xE4 + ldr r0, [r0] + ands r1, r0 + ldr r0, _08115A18 @ =gTasks + mov r12, r0 + lsls r7, r6, 2 + cmp r1, 0 + beq _08115A5A + adds r4, r3, 0 + adds r3, r5, 0 + adds r3, 0x8 +_081159EA: + lsls r0, r2, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r2, r0, 16 + asrs r1, r0, 16 + cmp r1, 0xD + bgt _08115A5A + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r1, [r4, 0x8] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _081159EA + b _08115A5A + .align 2, 0 +_08115A10: .4byte 0x02019000 +_08115A14: .4byte gUnknown_083F8C00 +_08115A18: .4byte gTasks +_08115A1C: + movs r2, 0x6 + ldr r5, _08115A88 @ =gUnknown_083F8C00 + adds r0, r5, 0 + adds r0, 0x80 + ldr r0, [r0] + ands r1, r0 + ldr r0, _08115A8C @ =gTasks + mov r12, r0 + lsls r7, r6, 2 + cmp r1, 0 + beq _08115A5A + adds r4, r3, 0 + adds r3, r5, 0 + adds r3, 0x8 +_08115A38: + lsls r0, r2, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r2, r0, 16 + asrs r1, r0, 16 + cmp r1, 0x9 + bgt _08115A5A + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r1, [r4, 0x8] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08115A38 +_08115A5A: + adds r4, r7, r6 + lsls r4, 3 + add r4, r12 + movs r5, 0 + strh r2, [r4, 0x10] + adds r0, r6, 0 + bl sub_8116CAC + ldrb r0, [r4, 0x10] + bl sub_8117158 + ldrb r0, [r4, 0x10] + bl sub_811829C + ldrb r0, [r4, 0x10] + bl sub_8116EF8 + strh r5, [r4, 0xA] + ldr r0, _08115A90 @ =sub_811597C + str r0, [r4] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08115A88: .4byte gUnknown_083F8C00 +_08115A8C: .4byte gTasks +_08115A90: .4byte sub_811597C + thumb_func_end sub_81159BC + + thumb_func_start sub_8115A94 +sub_8115A94: @ 8115A94 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + movs r6, 0 + movs r7, 0 + ldr r1, _08115ADC @ =gUnknown_083F8ECA + mov r0, sp + movs r2, 0x4 + bl memcpy + ldrb r0, [r4] + mov r8, r0 + cmp r5, 0 + blt _08115B08 + cmp r5, 0x1 + bgt _08115AE0 + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x5 + bl __modsi3 + lsls r0, 24 + lsrs r6, r0, 24 + movs r2, 0xF0 + lsls r2, 20 + adds r1, r0, r2 + lsrs r7, r1, 24 + cmp r0, 0 + bne _08115B08 + movs r6, 0x5 + b _08115B08 + .align 2, 0 +_08115ADC: .4byte gUnknown_083F8ECA +_08115AE0: + cmp r5, 0x3 + bgt _08115B08 + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x5 + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 24 + lsrs r6, r1, 24 + movs r2, 0x80 + lsls r2, 19 + adds r0, r1, r2 + lsrs r7, r0, 24 + cmp r1, 0 + bne _08115B08 + movs r6, 0x1 +_08115B08: + mov r1, sp + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrh r2, [r4] + adds r0, r2 + strh r0, [r4] + lsls r1, r6, 24 + asrs r3, r1, 24 + lsls r0, 16 + asrs r0, 16 + lsls r2, r7, 24 + cmp r0, r3 + bge _08115B2A + asrs r0, r2, 24 + strh r0, [r4] +_08115B2A: + movs r0, 0 + ldrsh r1, [r4, r0] + asrs r0, r2, 24 + cmp r1, r0 + ble _08115B36 + strh r3, [r4] +_08115B36: + mov r1, r8 + lsls r0, r1, 24 + movs r2, 0 + ldrsh r1, [r4, r2] + asrs r0, 24 + cmp r1, r0 + bne _08115B48 + movs r0, 0 + b _08115B4A +_08115B48: + movs r0, 0x1 +_08115B4A: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8115A94 + + thumb_func_start sub_8115B58 +sub_8115B58: @ 8115B58 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0 + mov r8, r0 + movs r5, 0 + ldr r4, _08115D30 @ =gMain + ldrh r1, [r4, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08115B94 + movs r5, 0x1 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _08115D34 @ =gTasks + 0x8 + adds r0, r1 + adds r0, 0x8 + movs r1, 0 + bl sub_8115A94 + lsls r0, 24 + cmp r0, 0 + bne _08115B94 + b _08115D20 +_08115B94: + ldrh r1, [r4, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08115BBA + movs r5, 0x1 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _08115D34 @ =gTasks + 0x8 + adds r0, r1 + adds r0, 0x8 + movs r1, 0x1 + bl sub_8115A94 + lsls r0, 24 + cmp r0, 0 + bne _08115BBA + b _08115D20 +_08115BBA: + ldrh r1, [r4, 0x2E] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08115BE0 + movs r5, 0x1 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _08115D34 @ =gTasks + 0x8 + adds r0, r1 + adds r0, 0x8 + movs r1, 0x2 + bl sub_8115A94 + lsls r0, 24 + cmp r0, 0 + bne _08115BE0 + b _08115D20 +_08115BE0: + ldrh r1, [r4, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08115C06 + movs r5, 0x1 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _08115D34 @ =gTasks + 0x8 + adds r0, r1 + adds r0, 0x8 + movs r1, 0x3 + bl sub_8115A94 + lsls r0, 24 + cmp r0, 0 + bne _08115C06 + b _08115D20 +_08115C06: + cmp r5, 0 + bne _08115C0C + b _08115D20 +_08115C0C: + ldr r0, _08115D38 @ =gTasks + lsls r6, r7, 2 + adds r4, r6, r7 + lsls r4, 3 + adds r4, r0 + ldrb r0, [r4, 0x10] + bl sub_8117158 + adds r0, r7, 0 + movs r1, 0 + bl sub_8115928 + mov r1, r8 + strh r1, [r4, 0xA] + movs r0, 0x5 + bl PlaySE + ldr r5, _08115D3C @ =0x020190b8 + ldr r1, _08115D40 @ =0x0000ffff + adds r0, r5, 0 + bl sub_8124D3C + adds r3, r5, 0 + adds r3, 0xB8 + ldrb r2, [r3] + movs r1, 0x7F + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3] + subs r3, 0xC + ldrb r2, [r3] + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3] + adds r2, r5, 0 + adds r2, 0xA0 + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + ldrb r0, [r4, 0x10] + bl sub_8116EF8 + movs r4, 0 + mov r12, r6 + ldr r6, _08115D44 @ =gSprites + movs r2, 0x7C + negs r2, r2 + adds r2, r5 + mov r10, r2 + movs r0, 0x8 + adds r0, r6 + mov r8, r0 + ldr r1, _08115D48 @ =0xfffffc00 + mov r9, r1 + ldr r2, _08115D4C @ =0x000003ff + adds r5, r2, 0 +_08115C7C: + adds r0, r4, 0 + adds r0, 0x29 + add r0, r10 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0, r6 + adds r2, r3, 0 + adds r2, 0x40 + add r0, r8 + ldr r0, [r0] + ldr r0, [r0] + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r2 + ands r1, r5 + ldrh r2, [r3, 0x4] + mov r0, r9 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _08115C7C + ldr r0, _08115D38 @ =gTasks + mov r2, r12 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + ldrh r3, [r1, 0x10] + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x3 + bhi _08115D20 + ldr r2, _08115D50 @ =gUnknown_083F8C00 + movs r0, 0x10 + ldrsh r1, [r1, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x8 + adds r0, r2 + ldr r2, _08115D54 @ =0x02019000 + ldr r1, [r2, 0x8] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08115D20 + subs r0, r3, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + adds r0, r2, 0 + add r0, r8 + adds r0, 0x65 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08115D44 @ =gSprites + adds r3, r0, r1 + adds r2, r3, 0 + adds r2, 0x40 + adds r1, 0x8 + adds r0, r1 + ldr r0, [r0] + ldr r0, [r0] + ldrh r1, [r0, 0x4] + ldrh r2, [r2] + adds r1, r2 + ldr r2, _08115D4C @ =0x000003ff + adds r0, r2, 0 + ands r1, r0 + ldrh r2, [r3, 0x4] + ldr r0, _08115D48 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] +_08115D20: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08115D30: .4byte gMain +_08115D34: .4byte gTasks + 0x8 +_08115D38: .4byte gTasks +_08115D3C: .4byte 0x020190b8 +_08115D40: .4byte 0x0000ffff +_08115D44: .4byte gSprites +_08115D48: .4byte 0xfffffc00 +_08115D4C: .4byte 0x000003ff +_08115D50: .4byte gUnknown_083F8C00 +_08115D54: .4byte 0x02019000 + thumb_func_end sub_8115B58 + + thumb_func_start sub_8115D58 +sub_8115D58: @ 8115D58 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _08115D70 @ =0x02019000 + movs r0, 0xFF + strh r0, [r1, 0x28] + ldrb r0, [r1, 0x19] + cmp r0, 0x1 + bne _08115D74 + adds r2, r1, 0 + adds r2, 0x23 + b _08115D7A + .align 2, 0 +_08115D70: .4byte 0x02019000 +_08115D74: + adds r2, r1, 0 + adds r2, 0x23 + movs r0, 0 +_08115D7A: + strb r0, [r2] + adds r1, 0x21 + movs r0, 0 + strb r0, [r1] + ldr r1, _08115D98 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x20 + strh r1, [r0, 0xA] + ldr r1, _08115D9C @ =sub_8115ECC + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_08115D98: .4byte gTasks +_08115D9C: .4byte sub_8115ECC + thumb_func_end sub_8115D58 + + thumb_func_start sub_8115DA0 +sub_8115DA0: @ 8115DA0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08115E08 @ =0x02019000 + ldrb r2, [r4, 0x1A] + lsls r2, 28 + lsrs r2, 28 + adds r5, r4, 0 + adds r5, 0x1B + adds r2, r5 + ldr r3, _08115E0C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r6, r1, r3 + ldrh r0, [r6, 0x10] + strb r0, [r2] + ldrb r0, [r4, 0x1A] + lsls r0, 28 + lsrs r0, 28 + adds r0, r5 + ldrb r0, [r0] + bl sub_8117380 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0xC] + ldrb r0, [r4, 0x1A] + lsls r0, 28 + lsrs r0, 28 + adds r0, r5 + ldrb r0, [r0] + bl sub_811829C + ldrb r1, [r4, 0x19] + ldrh r0, [r6, 0x22] + subs r0, r1 + strh r0, [r6, 0x22] + lsls r0, 16 + cmp r0, 0 + bge _08115DF6 + movs r0, 0 + strh r0, [r6, 0x22] +_08115DF6: + ldrh r0, [r6, 0x22] + bl sub_81180F4 + ldr r0, _08115E10 @ =sub_8115D58 + str r0, [r6] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08115E08: .4byte 0x02019000 +_08115E0C: .4byte gTasks +_08115E10: .4byte sub_8115D58 + thumb_func_end sub_8115DA0 + + thumb_func_start sub_8115E14 +sub_8115E14: @ 8115E14 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl sub_8115B58 + ldr r1, _08115E3C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x1E + beq _08115E4A + cmp r0, 0x1E + bgt _08115E40 + cmp r0, 0 + beq _08115E46 + b _08115E5E + .align 2, 0 +_08115E3C: .4byte gTasks +_08115E40: + cmp r0, 0x3B + beq _08115E58 + b _08115E5E +_08115E46: + ldrb r0, [r4, 0x10] + b _08115E4C +_08115E4A: + movs r0, 0 +_08115E4C: + bl sub_81157D0 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _08115E6E +_08115E58: + movs r0, 0 + strh r0, [r4, 0xA] + b _08115E6E +_08115E5E: + ldr r0, _08115EA8 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] +_08115E6E: + ldr r0, _08115EAC @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08115EC2 + ldr r3, _08115EB0 @ =0x02019000 + ldr r2, _08115EB4 @ =gUnknown_083F8C00 + ldr r1, _08115EA8 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r0, 0x10 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x8 + adds r0, r2 + ldr r1, [r3, 0x8] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08115EB8 + movs r0, 0x16 + bl PlaySE + b _08115EC2 + .align 2, 0 +_08115EA8: .4byte gTasks +_08115EAC: .4byte gMain +_08115EB0: .4byte 0x02019000 +_08115EB4: .4byte gUnknown_083F8C00 +_08115EB8: + movs r0, 0x5F + bl m4aSongNumStart + ldr r0, _08115EC8 @ =sub_8115DA0 + str r0, [r4] +_08115EC2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08115EC8: .4byte sub_8115DA0 + thumb_func_end sub_8115E14 + + thumb_func_start sub_8115ECC +sub_8115ECC: @ 8115ECC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08115F20 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0xA] + subs r1, r0, 0x1 + strh r1, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + ble _08115F34 + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _08115EF8 + ldr r1, _08115F24 @ =gSpriteCoordOffsetX + ldrh r0, [r1] + adds r0, 0x2 + strh r0, [r1] +_08115EF8: + ldr r1, _08115F28 @ =0x02019000 + ldrh r0, [r1, 0x26] + adds r0, 0x4 + strh r0, [r1, 0x26] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x68 + bne _08115F4C + ldr r2, _08115F2C @ =gSprites + adds r0, r1, 0 + adds r0, 0x55 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _08115F30 @ =SpriteCallbackDummy + str r1, [r0] + b _08115F4C + .align 2, 0 +_08115F20: .4byte gTasks +_08115F24: .4byte gSpriteCoordOffsetX +_08115F28: .4byte 0x02019000 +_08115F2C: .4byte gSprites +_08115F30: .4byte SpriteCallbackDummy +_08115F34: + movs r0, 0x1 + movs r1, 0xFF + bl sub_8117AA8 + movs r0, 0x1 + movs r1, 0xFF + bl sub_8117C60 + ldr r0, _08115F54 @ =sub_8116100 + str r0, [r4] + movs r0, 0 + strh r0, [r4, 0xA] +_08115F4C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08115F54: .4byte sub_8116100 + thumb_func_end sub_8115ECC + + thumb_func_start sub_8115F58 +sub_8115F58: @ 8115F58 + push {r4,lr} + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + lsrs r1, 16 + ldr r0, _08115F74 @ =0x02019000 + ldrb r2, [r0, 0x2] + adds r4, r0, 0 + cmp r2, 0x2 + bgt _08115F78 + cmp r2, 0x1 + bge _08115F7E + b _08116048 + .align 2, 0 +_08115F74: .4byte 0x02019000 +_08115F78: + cmp r2, 0x3 + beq _08115FE0 + b _08116048 +_08115F7E: + ldr r0, _08115FA8 @ =gLocalTime + ldrb r0, [r0, 0x2] + subs r0, 0x4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bhi _08115FB0 + cmp r3, 0xB + bls _08115F98 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0811605E +_08115F98: + ldr r0, _08115FAC @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + lsrs r0, 1 + b _081160F4 + .align 2, 0 +_08115FA8: .4byte gLocalTime +_08115FAC: .4byte gUnknown_083F8DF4 +_08115FB0: + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08115FCC + ldr r0, _08115FC8 @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + lsrs r0, 1 + b _081160F4 + .align 2, 0 +_08115FC8: .4byte gUnknown_083F8DF4 +_08115FCC: + ldr r0, _08115FDC @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + b _081160F4 + .align 2, 0 +_08115FDC: .4byte gUnknown_083F8DF4 +_08115FE0: + ldr r0, _0811600C @ =gLocalTime + ldrb r0, [r0, 0x2] + subs r0, 0x4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bhi _08116014 + cmp r3, 0x5 + bls _08115FFA + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0811605E +_08115FFA: + ldr r0, _08116010 @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + lsrs r0, 1 + b _081160F4 + .align 2, 0 +_0811600C: .4byte gLocalTime +_08116010: .4byte gUnknown_083F8DF4 +_08116014: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08116034 + cmp r3, 0x6 + bls _08116034 + ldr r0, _08116030 @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + lsrs r0, 2 + b _081160F4 + .align 2, 0 +_08116030: .4byte gUnknown_083F8DF4 +_08116034: + ldr r0, _08116044 @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + lsrs r0, 1 + b _081160F4 + .align 2, 0 +_08116044: .4byte gUnknown_083F8DF4 +_08116048: + ldr r0, _08116064 @ =gLocalTime + ldrb r0, [r0, 0x2] + subs r0, 0x4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bhi _0811607C + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08116068 +_0811605E: + movs r0, 0x1 + b _081160F4 + .align 2, 0 +_08116064: .4byte gLocalTime +_08116068: + ldr r0, _08116078 @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + lsrs r0, 1 + b _081160F4 + .align 2, 0 +_08116078: .4byte gUnknown_083F8DF4 +_0811607C: + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _081160B0 + cmp r3, 0xC + bls _0811609C + ldr r0, _08116098 @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + lsrs r0, 1 + b _081160F4 + .align 2, 0 +_08116098: .4byte gUnknown_083F8DF4 +_0811609C: + ldr r0, _081160AC @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + b _081160F4 + .align 2, 0 +_081160AC: .4byte gUnknown_083F8DF4 +_081160B0: + movs r0, 0x80 + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _081160E4 + cmp r3, 0xC + bls _081160D0 + ldr r0, _081160CC @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + b _081160F4 + .align 2, 0 +_081160CC: .4byte gUnknown_083F8DF4 +_081160D0: + ldr r0, _081160E0 @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x1] + b _081160F4 + .align 2, 0 +_081160E0: .4byte gUnknown_083F8DF4 +_081160E4: + ldr r0, _081160FC @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x1] + lsls r0, 25 + lsrs r0, 24 +_081160F4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081160FC: .4byte gUnknown_083F8DF4 + thumb_func_end sub_8115F58 + + thumb_func_start sub_8116100 +sub_8116100: @ 8116100 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r4, 0 + ldr r1, _08116188 @ =gUnknown_083F8ECE + mov r0, sp + movs r2, 0x8 + bl memcpy + bl Random + lsls r0, 16 + lsrs r7, r0, 16 + adds r0, r7, 0 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r3, _0811618C @ =0x02019000 + ldr r1, _08116190 @ =gTasks + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + ldrh r2, [r0, 0x14] + adds r1, r3, 0 + adds r1, 0x7C + strb r2, [r1] + adds r1, 0x3 + strb r4, [r1] + subs r1, 0x1 + strb r4, [r1] + subs r1, 0x1 + strb r4, [r1] + ldrh r0, [r0, 0x18] + adds r1, r7, 0 + bl sub_8115F58 + adds r4, r0, 0 + lsls r4, 24 + lsrs r1, r4, 24 + adds r0, r7, 0 + bl __modsi3 + lsrs r4, 25 + subs r0, r4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08116194 @ =gLocalTime + ldrb r0, [r0, 0x2] + lsls r0, 24 + asrs r0, 24 + movs r5, 0x1 + cmp r0, 0xC + bgt _08116180 + movs r5, 0 +_08116180: + cmp r6, 0x4F + bhi _08116198 + lsls r0, r5, 25 + b _081161A2 + .align 2, 0 +_08116188: .4byte gUnknown_083F8ECE +_0811618C: .4byte 0x02019000 +_08116190: .4byte gTasks +_08116194: .4byte gLocalTime +_08116198: + lsls r1, r5, 24 + asrs r1, 24 + movs r0, 0x1 + subs r0, r1 + lsls r0, 25 +_081161A2: + lsrs r5, r0, 24 + ldr r6, _081162D8 @ =0x02019000 + ldrb r0, [r6, 0x4] + lsls r0, 30 + mov r10, r0 + lsrs r0, 25 + ldr r1, _081162DC @ =gUnknown_083F8DF4 + adds r0, r1 + lsls r4, 24 + asrs r4, 24 + ldrh r0, [r0, 0x1A] + adds r4, r0 + adds r0, r6, 0 + adds r0, 0x80 + strh r4, [r0] + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + bl __floatsisf + cmp r4, 0 + bge _081161D4 + ldr r1, _081162E0 @ =0x47800000 + bl __addsf3 +_081161D4: + ldr r1, _081162E4 @ =0x40a00000 + bl __divsf3 + bl __fixunssfsi + lsls r0, 16 + lsrs r4, r0, 16 + lsls r0, r4, 1 + adds r0, r4 + mov r8, r0 + adds r0, r6, 0 + adds r0, 0x82 + mov r2, r8 + strh r2, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + movs r0, 0x1 + ands r0, r7 + lsls r1, r5, 24 + asrs r1, 24 + adds r0, r1 + lsls r0, 1 + add r0, sp + movs r1, 0 + ldrsh r4, [r0, r1] + adds r0, r4, 0 + bl __floatsisf + cmp r4, 0 + bge _0811621A + ldr r1, _081162E0 @ =0x47800000 + bl __addsf3 +_0811621A: + ldr r2, _081162E8 @ =0x02019088 + str r0, [r2] + adds r7, r6, 0 + adds r7, 0x8C + mov r1, r10 + lsrs r0, r1, 25 + ldr r2, _081162DC @ =gUnknown_083F8DF4 + adds r0, r2 + movs r1, 0x18 + ldrsh r4, [r0, r1] + adds r0, r4, 0 + bl __floatsisf + adds r5, r0, 0 + cmp r4, 0 + bge _08116242 + ldr r1, _081162E0 @ =0x47800000 + bl __addsf3 + adds r5, r0, 0 +_08116242: + str r5, [r7] + adds r7, r6, 0 + adds r7, 0x90 + ldr r1, _081162EC @ =0x3f000000 + adds r0, r5, 0 + bl __mulsf3 + adds r1, r5, 0 + bl __subsf3 + adds r5, r0, 0 + mov r2, r8 + lsls r0, r2, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + bl __floatsisf + adds r2, r0, 0 + cmp r4, 0 + bge _08116272 + ldr r1, _081162E0 @ =0x47800000 + bl __addsf3 + adds r2, r0, 0 +_08116272: + adds r0, r5, 0 + adds r1, r2, 0 + bl __divsf3 + str r0, [r7] + adds r1, r6, 0 + adds r1, 0x94 + ldr r0, _081162F0 @ =0x42880000 + str r0, [r1] + adds r1, 0x8 + ldr r0, _081162F4 @ =0x00000000 + str r0, [r1] + adds r5, r6, 0 + adds r5, 0x98 + adds r0, r4, 0 + bl __floatsisf + adds r2, r0, 0 + cmp r4, 0 + bge _081162A2 + ldr r1, _081162E0 @ =0x47800000 + bl __addsf3 + adds r2, r0, 0 +_081162A2: + ldr r0, _081162F8 @ =0x41000000 + adds r1, r2, 0 + bl __divsf3 + bl __negsf2 + str r0, [r5] + adds r1, r6, 0 + adds r1, 0xA0 + ldr r0, _081162FC @ =0x42100000 + str r0, [r1] + ldr r1, _08116300 @ =gTasks + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + ldr r1, _08116304 @ =sub_8116308 + str r1, [r0] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081162D8: .4byte 0x02019000 +_081162DC: .4byte gUnknown_083F8DF4 +_081162E0: .4byte 0x47800000 +_081162E4: .4byte 0x40a00000 +_081162E8: .4byte 0x02019088 +_081162EC: .4byte 0x3f000000 +_081162F0: .4byte 0x42880000 +_081162F4: .4byte 0x00000000 +_081162F8: .4byte 0x41000000 +_081162FC: .4byte 0x42100000 +_08116300: .4byte gTasks +_08116304: .4byte sub_8116308 + thumb_func_end sub_8116100 + + thumb_func_start sub_8116308 +sub_8116308: @ 8116308 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _08116368 @ =0x02019000 + ldrb r1, [r3, 0x3] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r3, 0x3] + adds r2, r3, 0 + adds r2, 0x7C + adds r1, r3, 0 + adds r1, 0x3C + ldrb r2, [r2] + adds r1, r2 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r2, _0811636C @ =gSprites + adds r1, r2 + str r1, [r3, 0x38] + ldr r2, _08116370 @ =sub_81191F4 + str r2, [r1, 0x1C] + ldr r1, _08116374 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldrh r1, [r4, 0x14] + adds r1, 0x1 + strh r1, [r4, 0x14] + ldrh r0, [r4, 0x18] + adds r0, 0x1 + strh r0, [r4, 0x18] + movs r0, 0x6 + subs r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_81182F8 + movs r0, 0x5C + bl m4aSongNumStart + ldr r0, _08116378 @ =sub_811637C + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08116368: .4byte 0x02019000 +_0811636C: .4byte gSprites +_08116370: .4byte sub_81191F4 +_08116374: .4byte gTasks +_08116378: .4byte sub_811637C + thumb_func_end sub_8116308 + + thumb_func_start sub_811637C +sub_811637C: @ 811637C + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _081163B0 @ =0x02019000 + adds r0, r4, 0 + adds r0, 0x7D + ldrb r0, [r0] + cmp r0, 0 + beq _08116464 + ldrb r1, [r4, 0x3] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081163B4 + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08116464 + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + movs r1, 0x21 + negs r1, r1 + ands r0, r1 + strb r0, [r4, 0x3] + b _08116464 + .align 2, 0 +_081163B0: .4byte 0x02019000 +_081163B4: + ldr r2, _08116428 @ =gTasks + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + adds r6, r0, r2 + movs r2, 0xA + ldrsh r0, [r6, r2] + adds r7, r1, 0 + cmp r0, 0 + bne _08116400 + adds r0, r4, 0 + adds r0, 0x7E + ldrb r1, [r0] + adds r0, r5, 0 + bl sub_8116D54 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r4, 0x1A] + lsls r1, 28 + lsrs r1, 28 + adds r2, r4, 0 + adds r2, 0x1B + adds r1, r2 + ldrb r1, [r1] + bl sub_8116E5C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x12] + cmp r0, 0x1 + bne _08116400 + adds r0, r4, 0 + adds r0, 0xB8 + movs r1, 0x80 + lsls r1, 5 + bl sub_8124CE8 +_08116400: + ldr r0, _08116428 @ =gTasks + adds r1, r7, r5 + lsls r1, 3 + adds r4, r1, r0 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x3C + bgt _08116430 + ldr r0, _0811642C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08116420 + movs r0, 0x3C + strh r0, [r4, 0xA] +_08116420: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _08116464 + .align 2, 0 +_08116428: .4byte gTasks +_0811642C: .4byte gMain +_08116430: + ldr r1, _0811646C @ =0x02019000 + ldrb r0, [r1, 0x1A] + lsls r0, 28 + lsrs r0, 28 + adds r1, 0x1B + adds r0, r1 + ldrb r0, [r0] + bl sub_8117158 + ldrh r1, [r4, 0x20] + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_8117AA8 + ldrb r1, [r4, 0x14] + subs r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_8117C60 + movs r0, 0x20 + strh r0, [r4, 0xA] + ldr r0, _08116470 @ =sub_8116474 + str r0, [r4] +_08116464: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811646C: .4byte 0x02019000 +_08116470: .4byte sub_8116474 + thumb_func_end sub_811637C + + thumb_func_start sub_8116474 +sub_8116474: @ 8116474 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _081164C8 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0xA] + subs r1, r0, 0x1 + strh r1, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + ble _081164DC + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _081164A0 + ldr r1, _081164CC @ =gSpriteCoordOffsetX + ldrh r0, [r1] + subs r0, 0x2 + strh r0, [r1] +_081164A0: + ldr r1, _081164D0 @ =0x02019000 + ldrh r0, [r1, 0x26] + subs r0, 0x4 + strh r0, [r1, 0x26] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x68 + bne _08116504 + ldr r2, _081164D4 @ =gSprites + adds r0, r1, 0 + adds r0, 0x55 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _081164D8 @ =sub_81184CC + str r1, [r0] + b _08116504 + .align 2, 0 +_081164C8: .4byte gTasks +_081164CC: .4byte gSpriteCoordOffsetX +_081164D0: .4byte 0x02019000 +_081164D4: .4byte gSprites +_081164D8: .4byte sub_81184CC +_081164DC: + ldrh r0, [r4, 0x20] + lsls r0, 24 + lsrs r0, 24 + bl sub_8117D68 + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _081164F2 + movs r0, 0x79 + b _081164F4 +_081164F2: + movs r0, 0x3D +_081164F4: + strh r0, [r4, 0xA] + ldr r0, _0811650C @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _08116510 @ =sub_8116514 + str r0, [r1] +_08116504: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811650C: .4byte gTasks +_08116510: .4byte sub_8116514 + thumb_func_end sub_8116474 + + thumb_func_start sub_8116514 +sub_8116514: @ 8116514 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _08116564 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0xA] + subs r1, r0, 0x1 + strh r1, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _08116584 + movs r0, 0xA + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _0811653E + adds r0, 0xF +_0811653E: + asrs r0, 4 + lsls r0, 4 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + beq _08116568 + cmp r0, 0x8 + bne _08116590 + movs r0, 0 + movs r1, 0xFF + bl sub_8117AA8 + movs r0, 0 + movs r1, 0xFF + bl sub_8117C60 + b _08116590 + .align 2, 0 +_08116564: .4byte gTasks +_08116568: + ldrh r1, [r4, 0x20] + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_8117AA8 + ldrb r1, [r4, 0x14] + subs r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_8117C60 + b _08116590 +_08116584: + ldr r1, _08116598 @ =sub_8116638 + adds r0, r2, 0 + movs r2, 0x1E + movs r3, 0 + bl sub_8116C34 +_08116590: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08116598: .4byte sub_8116638 + thumb_func_end sub_8116514 + + thumb_func_start sub_811659C +sub_811659C: @ 811659C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _081165F4 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _08116600 + cmp r0, 0 + blt _08116600 + cmp r0, 0x2 + bgt _08116600 + bl IsFanfareTaskInactive + lsls r0, 24 + cmp r0, 0 + beq _08116624 + movs r0, 0x1D + bl sub_8053108 + ldrh r1, [r4, 0x1E] + adds r1, 0x1 + strh r1, [r4, 0x1E] + lsls r1, 16 + asrs r1, 16 + cmp r0, r1 + bcs _081165E4 + movs r0, 0x1E + ldrsh r1, [r4, r0] + movs r0, 0x1D + bl sav12_xor_set +_081165E4: + ldr r1, _081165F8 @ =sub_811677C + ldr r2, _081165FC @ =0x0000ffff + adds r0, r5, 0 + movs r3, 0x3 + bl sub_8116C34 + b _08116624 + .align 2, 0 +_081165F4: .4byte gTasks +_081165F8: .4byte sub_811677C +_081165FC: .4byte 0x0000ffff +_08116600: + bl IsSEPlaying + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _08116624 + ldr r1, _0811662C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x1E] + ldr r1, _08116630 @ =sub_81167F4 + ldr r2, _08116634 @ =0x0000ffff + adds r0, r5, 0 + movs r3, 0x3 + bl sub_8116C34 +_08116624: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811662C: .4byte gTasks +_08116630: .4byte sub_81167F4 +_08116634: .4byte 0x0000ffff + thumb_func_end sub_811659C + + thumb_func_start sub_8116638 +sub_8116638: @ 8116638 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08116678 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x12 + ldrsh r1, [r0, r2] + cmp r1, 0 + beq _081166A8 + cmp r1, 0 + blt _081166A8 + cmp r1, 0x2 + bgt _081166A8 + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0xC + bne _08116684 + ldr r0, _0811667C @ =0x00000185 + bl PlayFanfare + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08116680 @ =gUnknown_081C41A5 + b _0811669A + .align 2, 0 +_08116678: .4byte gTasks +_0811667C: .4byte 0x00000185 +_08116680: .4byte gUnknown_081C41A5 +_08116684: + movs r0, 0xC3 + lsls r0, 1 + bl PlayFanfare + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _081166A4 @ =gUnknown_081C4199 +_0811669A: + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + b _081166C4 + .align 2, 0 +_081166A4: .4byte gUnknown_081C4199 +_081166A8: + movs r0, 0x20 + bl m4aSongNumStart + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _081166DC @ =gUnknown_081C41AE + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint +_081166C4: + ldr r1, _081166E0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xA] + ldr r1, _081166E4 @ =sub_811659C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081166DC: .4byte gUnknown_081C41AE +_081166E0: .4byte gTasks +_081166E4: .4byte sub_811659C + thumb_func_end sub_8116638 + + thumb_func_start sub_81166E8 +sub_81166E8: @ 81166E8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _0811670C @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r1 + movs r0, 0x16 + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _08116710 + cmp r5, 0x3 + beq _08116740 + ldrh r0, [r4, 0x16] + adds r0, 0x1 + b _08116748 + .align 2, 0 +_0811670C: .4byte gTasks +_08116710: + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] + movs r0, 0x15 + bl m4aSongNumStart + ldrh r0, [r4, 0x22] + bl sub_81180F4 + movs r2, 0x22 + ldrsh r1, [r4, r2] + ldr r0, _08116730 @ =0x0000270e + cmp r1, r0 + ble _08116734 + strh r5, [r4, 0xA] + b _0811674A + .align 2, 0 +_08116730: .4byte 0x0000270e +_08116734: + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + b _08116748 +_08116740: + movs r0, 0x15 + bl m4aSongNumStop + movs r0, 0 +_08116748: + strh r0, [r4, 0x16] +_0811674A: + ldr r0, _08116770 @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _08116768 + ldr r1, _08116774 @ =sub_81167F4 + ldr r2, _08116778 @ =0x0000ffff + adds r0, r6, 0 + movs r3, 0x3 + bl sub_8116C34 +_08116768: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08116770: .4byte gTasks +_08116774: .4byte sub_81167F4 +_08116778: .4byte 0x0000ffff + thumb_func_end sub_81166E8 + + thumb_func_start sub_811677C +sub_811677C: @ 811677C + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _081167DC @ =gStringVar1 + ldr r6, _081167E0 @ =0x02019000 + ldrb r2, [r6, 0x19] + ldr r1, _081167E4 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + movs r1, 0xC + ldrsh r0, [r4, r1] + adds r1, r2, 0 + muls r1, r0 + adds r0, r3, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r5, _081167E8 @ =gStringVar4 + ldr r1, _081167EC @ =gUnknown_081C41BD + adds r0, r5, 0 + bl StringExpandPlaceholders + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldrb r1, [r6, 0x19] + movs r2, 0xC + ldrsh r0, [r4, r2] + muls r0, r1 + movs r1, 0 + strh r0, [r4, 0xA] + strh r1, [r4, 0x16] + ldr r0, _081167F0 @ =sub_81166E8 + str r0, [r4] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081167DC: .4byte gStringVar1 +_081167E0: .4byte 0x02019000 +_081167E4: .4byte gTasks +_081167E8: .4byte gStringVar4 +_081167EC: .4byte gUnknown_081C41BD +_081167F0: .4byte sub_81166E8 + thumb_func_end sub_811677C + + thumb_func_start sub_81167F4 +sub_81167F4: @ 81167F4 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r4, _08116868 @ =0x020190b8 + ldr r1, _0811686C @ =0x0000ffff + adds r0, r4, 0 + bl sub_8124D3C + adds r3, r4, 0 + adds r3, 0xB8 + ldrb r2, [r3] + movs r1, 0x7F + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3] + subs r3, 0xC + ldrb r2, [r3] + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3] + adds r2, r4, 0 + adds r2, 0xA0 + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + ldr r6, _08116870 @ =gSprites + ldr r2, _08116874 @ =gUnknown_083F8C00 + ldr r0, _08116878 @ =gTasks + lsls r3, r5, 2 + adds r3, r5 + lsls r3, 3 + adds r3, r0 + movs r0, 0x20 + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + adds r4, r0 + subs r4, 0x75 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r0, _0811687C @ =sub_8116880 + str r0, [r3] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08116868: .4byte 0x020190b8 +_0811686C: .4byte 0x0000ffff +_08116870: .4byte gSprites +_08116874: .4byte gUnknown_083F8C00 +_08116878: .4byte gTasks +_0811687C: .4byte sub_8116880 + thumb_func_end sub_81167F4 + + thumb_func_start sub_8116880 +sub_8116880: @ 8116880 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + ldr r1, _08116954 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + strh r5, [r0, 0x10] + ldr r4, _08116958 @ =0x02019000 + ldrb r0, [r4, 0x1A] + lsls r0, 28 + lsrs r0, 28 + adds r1, r4, 0 + adds r1, 0x1B + adds r0, r1 + strb r2, [r0] + movs r0, 0 + bl sub_8117158 + ldr r3, _0811695C @ =gSprites + adds r0, r4, 0 + adds r0, 0x6C + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r7, r3, 0 + movs r0, 0x3C + adds r0, r4 + mov r10, r0 + movs r1, 0x8 + adds r1, r7 + mov r8, r1 + ldr r0, _08116960 @ =0xfffffc00 + mov r9, r0 + ldr r1, _08116964 @ =0x000003ff + mov r12, r1 +_081168E4: + adds r0, r5, 0 + adds r0, 0x29 + add r0, r10 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0, r7 + adds r2, r3, 0 + adds r2, 0x40 + add r0, r8 + ldr r0, [r0] + ldr r0, [r0] + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r2 + mov r0, r12 + ands r1, r0 + ldrh r2, [r3, 0x4] + mov r0, r9 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _081168E4 + ldr r0, _08116954 @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r2, r1, r0 + movs r1, 0x22 + ldrsh r0, [r2, r1] + ldrb r4, [r4, 0x19] + cmp r0, r4 + blt _081169BC + movs r1, 0x14 + ldrsh r0, [r2, r1] + cmp r0, 0x6 + bne _08116970 + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08116968 @ =gUnknown_081C41F1 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _0811696C @ =dp01t_12_3_battle_menu + b _08116992 + .align 2, 0 +_08116954: .4byte gTasks +_08116958: .4byte 0x02019000 +_0811695C: .4byte gSprites +_08116960: .4byte 0xfffffc00 +_08116964: .4byte 0x000003ff +_08116968: .4byte gUnknown_081C41F1 +_0811696C: .4byte dp01t_12_3_battle_menu +_08116970: + movs r0, 0x22 + ldrsh r1, [r2, r0] + ldr r0, _081169A0 @ =0x0000270f + cmp r1, r0 + bne _081169B0 + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _081169A4 @ =gUnknown_081C4231 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _081169A8 @ =sub_8115734 +_08116992: + ldr r2, _081169AC @ =0x0000ffff + adds r0, r6, 0 + movs r3, 0x3 + bl sub_8116C34 + b _081169DE + .align 2, 0 +_081169A0: .4byte 0x0000270f +_081169A4: .4byte gUnknown_081C4231 +_081169A8: .4byte sub_8115734 +_081169AC: .4byte 0x0000ffff +_081169B0: + ldr r0, _081169B8 @ =sub_8115734 + str r0, [r2] + b _081169DE + .align 2, 0 +_081169B8: .4byte sub_8115734 +_081169BC: + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _081169EC @ =gUnknown_081C41D2 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _081169F0 @ =sub_81157AC + adds r0, r6, 0 + movs r2, 0x3C + movs r3, 0x3 + bl sub_8116C34 +_081169DE: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081169EC: .4byte gUnknown_081C41D2 +_081169F0: .4byte sub_81157AC + thumb_func_end sub_8116880 + + thumb_func_start dp01t_12_3_battle_menu +dp01t_12_3_battle_menu: @ 81169F4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r1, _08116A84 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0x14] + adds r0, r5, 0 + bl sub_8116CAC + bl sub_8116CF8 + bl sub_81185E8 + movs r0, 0 + bl sub_8117158 + movs r0, 0x6 + bl sub_81182F8 + ldr r7, _08116A88 @ =gSprites + ldr r3, _08116A8C @ =0x0201903c + movs r6, 0x5 + negs r6, r6 +_08116A2A: + adds r0, r4, 0x7 + adds r0, r3 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xB + bls _08116A2A + ldr r1, _08116A84 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r2, r0, r1 + movs r0, 0x22 + ldrsh r1, [r2, r0] + ldr r0, _08116A90 @ =0x0000270f + cmp r1, r0 + bne _08116AA0 + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08116A94 @ =gUnknown_081C4231 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _08116A98 @ =sub_8115734 + ldr r2, _08116A9C @ =0x0000ffff + adds r0, r5, 0 + movs r3, 0x3 + bl sub_8116C34 + b _08116AA4 + .align 2, 0 +_08116A84: .4byte gTasks +_08116A88: .4byte gSprites +_08116A8C: .4byte 0x0201903c +_08116A90: .4byte 0x0000270f +_08116A94: .4byte gUnknown_081C4231 +_08116A98: .4byte sub_8115734 +_08116A9C: .4byte 0x0000ffff +_08116AA0: + ldr r0, _08116AAC @ =sub_8115734 + str r0, [r2] +_08116AA4: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08116AAC: .4byte sub_8115734 + thumb_func_end dp01t_12_3_battle_menu + + thumb_func_start sub_8116AB0 +sub_8116AB0: @ 8116AB0 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _08116AF0 @ =0x020190b8 + ldr r1, _08116AF4 @ =0x0000ffff + adds r0, r4, 0 + bl sub_8124D3C + adds r0, r4, 0 + bl sub_8124918 + ldr r1, _08116AF8 @ =gSaveBlock1 + ldr r2, _08116AFC @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + ldrh r0, [r0, 0x22] + ldr r2, _08116B00 @ =0x00000494 + adds r1, r2 + strh r0, [r1] + subs r4, 0xB8 + lsls r0, 16 + lsrs r0, 16 + ldrb r4, [r4, 0x19] + cmp r0, r4 + bcs _08116B08 + ldr r1, _08116B04 @ =gUnknown_0202E8CC + movs r0, 0x1 + b _08116B0C + .align 2, 0 +_08116AF0: .4byte 0x020190b8 +_08116AF4: .4byte 0x0000ffff +_08116AF8: .4byte gSaveBlock1 +_08116AFC: .4byte gTasks +_08116B00: .4byte 0x00000494 +_08116B04: .4byte gUnknown_0202E8CC +_08116B08: + ldr r1, _08116B34 @ =gUnknown_0202E8CC + movs r0, 0 +_08116B0C: + strh r0, [r1] + movs r0, 0 + str r0, [sp] + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginHardwarePaletteFade + ldr r1, _08116B38 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _08116B3C @ =sub_8116B40 + str r1, [r0] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08116B34: .4byte gUnknown_0202E8CC +_08116B38: .4byte gTasks +_08116B3C: .4byte sub_8116B40 + thumb_func_end sub_8116AB0 + + thumb_func_start sub_8116B40 +sub_8116B40: @ 8116B40 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl UpdatePaletteFade + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08116B9E + movs r0, 0 + bl SetVBlankCallback + ldr r0, _08116BA4 @ =0x02019000 + movs r2, 0xBE + lsls r2, 1 + movs r1, 0 + bl memset + ldr r1, _08116BA8 @ =gSpriteCoordOffsetX + ldr r0, _08116BAC @ =gSpriteCoordOffsetY + strh r4, [r0] + strh r4, [r1] + bl sub_80F9368 + bl FreeAllSpritePalettes + bl ResetPaletteFade + bl ResetSpriteData + bl sub_80F9020 + ldr r0, _08116BB0 @ =REG_BLDCNT + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + ldr r1, _08116BB4 @ =gUnknown_0300485C + ldr r0, _08116BB8 @ =sub_8080990 + str r0, [r1] + ldr r0, _08116BBC @ =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + adds r0, r5, 0 + bl DestroyTask +_08116B9E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08116BA4: .4byte 0x02019000 +_08116BA8: .4byte gSpriteCoordOffsetX +_08116BAC: .4byte gSpriteCoordOffsetY +_08116BB0: .4byte REG_BLDCNT +_08116BB4: .4byte gUnknown_0300485C +_08116BB8: .4byte sub_8080990 +_08116BBC: .4byte c2_exit_to_overworld_2_switch + thumb_func_end sub_8116B40 + + thumb_func_start sub_8116BC0 +sub_8116BC0: @ 8116BC0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _08116C24 @ =0x02019000 + adds r7, r0, 0 + adds r7, 0xA8 + ldrh r1, [r7] + adds r6, r0, 0 + cmp r1, 0 + beq _08116BE4 + ldr r0, _08116C28 @ =gMain + adds r2, r6, 0 + adds r2, 0xAA + ldrh r1, [r0, 0x2E] + ldrh r0, [r2] + ands r0, r1 + cmp r0, 0 + beq _08116C0E +_08116BE4: + ldr r1, _08116C2C @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + adds r5, r6, 0 + adds r5, 0xAC + ldr r1, [r5] + str r1, [r0] + adds r4, r6, 0 + adds r4, 0xAA + ldrh r0, [r4] + cmp r0, 0 + beq _08116C06 + movs r0, 0x5 + bl PlaySE +_08116C06: + movs r0, 0 + str r0, [r5] + strh r0, [r4] + strh r0, [r7] +_08116C0E: + adds r2, r6, 0 + adds r2, 0xA8 + ldrh r1, [r2] + ldr r0, _08116C30 @ =0x0000ffff + cmp r1, r0 + beq _08116C1E + subs r0, r1, 0x1 + strh r0, [r2] +_08116C1E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08116C24: .4byte 0x02019000 +_08116C28: .4byte gMain +_08116C2C: .4byte gTasks +_08116C30: .4byte 0x0000ffff + thumb_func_end sub_8116BC0 + + thumb_func_start sub_8116C34 +sub_8116C34: @ 8116C34 + push {r4-r7,lr} + adds r5, r1, 0 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r2, 16 + lsrs r4, r2, 16 + lsls r3, 16 + lsrs r3, 16 + ldr r0, _08116C84 @ =0x02019000 + mov r12, r0 + mov r2, r12 + adds r2, 0xB4 + ldr r1, _08116C88 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r0, [r0] + str r0, [r2] + mov r2, r12 + adds r7, r1, 0 + cmp r5, 0 + bne _08116C64 + adds r5, r0, 0 +_08116C64: + adds r0, r2, 0 + adds r0, 0xAC + str r5, [r0] + subs r0, 0x4 + strh r4, [r0] + ldr r0, _08116C8C @ =0x0000ffff + cmp r4, r0 + bne _08116C90 + cmp r3, 0 + bne _08116C90 + adds r1, r2, 0 + adds r1, 0xAA + ldrh r0, [r1] + orrs r4, r0 + strh r4, [r1] + b _08116C96 + .align 2, 0 +_08116C84: .4byte 0x02019000 +_08116C88: .4byte gTasks +_08116C8C: .4byte 0x0000ffff +_08116C90: + adds r0, r2, 0 + adds r0, 0xAA + strh r3, [r0] +_08116C96: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r7 + ldr r1, _08116CA8 @ =sub_8116BC0 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08116CA8: .4byte sub_8116BC0 + thumb_func_end sub_8116C34 + + thumb_func_start sub_8116CAC +sub_8116CAC: @ 8116CAC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r2, 0 + ldr r0, _08116CF0 @ =0x02019000 + strb r2, [r0] + movs r1, 0 + strb r1, [r0, 0x3] + adds r3, r0, 0 + ldr r6, _08116CF4 @ =gTasks + adds r4, r3, 0 + adds r4, 0x1B +_08116CC4: + adds r0, r2, r4 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x5 + bls _08116CC4 + ldrb r1, [r3, 0x1A] + movs r0, 0x10 + negs r0, r0 + ands r0, r1 + strb r0, [r3, 0x1A] + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r6 + movs r1, 0 + strh r1, [r0, 0xA] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08116CF0: .4byte 0x02019000 +_08116CF4: .4byte gTasks + thumb_func_end sub_8116CAC + + thumb_func_start sub_8116CF8 +sub_8116CF8: @ 8116CF8 + push {lr} + ldr r1, _08116D48 @ =0x02019000 + movs r0, 0 + str r0, [r1, 0x8] + movs r2, 0 + adds r1, 0xC + movs r3, 0 +_08116D06: + adds r0, r2, r1 + strb r3, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x5 + bls _08116D06 + movs r2, 0 + ldr r3, _08116D4C @ =0x02019012 + movs r1, 0 +_08116D1A: + adds r0, r2, r3 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _08116D1A + movs r2, 0 + ldr r3, _08116D50 @ =0x02019016 + movs r1, 0 +_08116D2E: + adds r0, r2, r3 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _08116D2E + movs r0, 0x1 + movs r1, 0xFF + bl sub_8117C60 + pop {r0} + bx r0 + .align 2, 0 +_08116D48: .4byte 0x02019000 +_08116D4C: .4byte 0x02019012 +_08116D50: .4byte 0x02019016 + thumb_func_end sub_8116CF8 + + thumb_func_start sub_8116D54 +sub_8116D54: @ 8116D54 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x1C + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + mov r1, sp + ldr r0, _08116D88 @ =gUnknown_083F8ED8 + ldm r0!, {r2,r4,r6} + stm r1!, {r2,r4,r6} + ldr r0, [r0] + str r0, [r1] + add r2, sp, 0x10 + adds r1, r2, 0 + ldr r0, _08116D8C @ =gUnknown_083F8EE8 + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + mov r9, r2 + cmp r5, 0xB + bls _08116D90 + movs r0, 0 + b _08116E38 + .align 2, 0 +_08116D88: .4byte gUnknown_083F8ED8 +_08116D8C: .4byte gUnknown_083F8EE8 +_08116D90: + ldr r6, _08116E48 @ =0x02019000 + ldr r1, _08116E4C @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r7, 0x14 + ldrsh r2, [r0, r7] + adds r2, r6, r2 + ldr r4, _08116E50 @ =gUnknown_083F8D90 + lsls r5, 3 + adds r3, r5, r4 + ldrb r1, [r3, 0x2] + strb r1, [r2, 0xB] + ldrb r1, [r3, 0x2] + strh r1, [r0, 0x20] + adds r0, r4, 0x4 + adds r0, r5, r0 + ldr r1, [r6, 0x8] + ldr r0, [r0] + orrs r1, r0 + str r1, [r6, 0x8] + movs r3, 0 + mov r8, r4 + mov r12, r5 + adds r5, r0, 0 + adds r4, r6, 0 + adds r4, 0x12 +_08116DC8: + lsls r0, r3, 2 + mov r1, sp + adds r2, r1, r0 + ldr r0, [r2] + ands r0, r5 + cmp r0, 0 + beq _08116DDE + adds r1, r3, r4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08116DDE: + adds r0, r3, r4 + ldrb r0, [r0] + cmp r0, 0x2 + bls _08116DEE + ldr r0, [r6, 0x8] + ldr r1, [r2] + orrs r0, r1 + str r0, [r6, 0x8] +_08116DEE: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _08116DC8 + movs r2, 0 + ldr r0, _08116E54 @ =gUnknown_083F8D94 + add r0, r12 + ldr r7, [r0] + ldr r4, _08116E58 @ =0x02019016 + mov r5, r9 +_08116E04: + lsls r0, r2, 2 + adds r3, r5, r0 + ldr r0, [r3] + ands r0, r7 + cmp r0, 0 + beq _08116E18 + adds r1, r2, r4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08116E18: + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, 0x3 + bls _08116E28 + ldr r0, [r6, 0x8] + ldr r1, [r3] + orrs r0, r1 + str r0, [r6, 0x8] +_08116E28: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _08116E04 + mov r0, r12 + add r0, r8 + ldrb r0, [r0, 0x2] +_08116E38: + add sp, 0x1C + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08116E48: .4byte 0x02019000 +_08116E4C: .4byte gTasks +_08116E50: .4byte gUnknown_083F8D90 +_08116E54: .4byte gUnknown_083F8D94 +_08116E58: .4byte 0x02019016 + thumb_func_end sub_8116D54 + + thumb_func_start sub_8116E5C +sub_8116E5C: @ 8116E5C + push {lr} + lsls r0, 24 + lsls r1, 24 + lsrs r2, r1, 24 + lsrs r3, r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x12 + bhi _08116EF0 + cmp r2, 0xF + bhi _08116EEC + lsls r0, r2, 2 + ldr r1, _08116E80 @ =_08116E84 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08116E80: .4byte _08116E84 + .align 2, 0 +_08116E84: + .4byte _08116EC4 + .4byte _08116EC8 + .4byte _08116EC8 + .4byte _08116EC8 + .4byte _08116EC8 + .4byte _08116EDC + .4byte _08116EEC + .4byte _08116EEC + .4byte _08116EEC + .4byte _08116EEC + .4byte _08116EDC + .4byte _08116EEC + .4byte _08116EEC + .4byte _08116EEC + .4byte _08116EEC + .4byte _08116EDC +_08116EC4: + movs r0, 0x3 + b _08116EF2 +_08116EC8: + adds r0, r2, 0x5 + cmp r3, r0 + beq _08116EE8 + adds r0, 0x5 + cmp r3, r0 + beq _08116EE8 + adds r0, 0x5 + cmp r3, r0 + bne _08116EF0 + b _08116EE8 +_08116EDC: + adds r0, r2, 0x1 + cmp r3, r0 + blt _08116EF0 + adds r0, r2, 0x4 + cmp r3, r0 + bgt _08116EF0 +_08116EE8: + movs r0, 0x1 + b _08116EF2 +_08116EEC: + cmp r3, r2 + beq _08116EE8 +_08116EF0: + movs r0, 0 +_08116EF2: + pop {r1} + bx r1 + thumb_func_end sub_8116E5C + + thumb_func_start sub_8116EF8 +sub_8116EF8: @ 8116EF8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0 + str r0, [sp, 0x18] + cmp r6, 0xA + beq _08116F1E + cmp r6, 0xA + bgt _08116F1A + cmp r6, 0x5 + beq _08116F1E + b _08116F7C +_08116F1A: + cmp r6, 0xF + bne _08116F7C +_08116F1E: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r6, 0x5 + ldr r7, _08116F70 @ =0x020190b8 + cmp r4, r0 + bge _08116F5E + adds r1, r7, 0 + subs r1, 0xB8 + ldr r3, _08116F74 @ =gUnknown_083F8C00 + ldr r5, [r1, 0x8] + adds r6, r3, 0 + adds r6, 0x8 + adds r2, r0, 0 +_08116F3A: + lsls r0, r4, 2 + adds r0, r4 + lsls r1, r0, 2 + adds r0, r1, r6 + ldr r0, [r0] + ands r0, r5 + cmp r0, 0 + bne _08116F54 + adds r0, r1, r3 + ldrh r0, [r0, 0x10] + ldr r1, [sp, 0x18] + orrs r1, r0 + str r1, [sp, 0x18] +_08116F54: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r2 + blt _08116F3A +_08116F5E: + ldr r0, _08116F78 @ =0x0000dfff + ldr r2, [sp, 0x18] + ands r2, r0 + str r2, [sp, 0x18] + adds r0, r7, 0 + adds r1, r2, 0 + bl sub_8124CE8 + b _0811713C + .align 2, 0 +_08116F70: .4byte 0x020190b8 +_08116F74: .4byte gUnknown_083F8C00 +_08116F78: .4byte 0x0000dfff +_08116F7C: + mov r0, sp + ldr r1, _08116FC8 @ =gUnknown_083F8E9C + ldm r1!, {r2-r4} + stm r0!, {r2-r4} + ldm r1!, {r2-r4} + stm r0!, {r2-r4} + subs r0, r6, 0x1 + lsls r0, 24 + lsrs r0, 24 + movs r3, 0x1 + mov r10, r3 + cmp r0, 0x3 + bhi _08116F9A + movs r4, 0x3 + mov r10, r4 +_08116F9A: + adds r0, r6, 0 + movs r1, 0x5 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 8 + ldr r1, _08116FCC @ =0xffff0000 + adds r0, r1 + lsrs r7, r0, 16 + adds r0, r6, 0 + movs r1, 0x5 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _08116FF8 + cmp r0, 0x2 + bgt _08116FD4 + cmp r0, 0x1 + beq _08116FE4 + ldr r4, _08116FD0 @ =0x02019000 + b _0811703A + .align 2, 0 +_08116FC8: .4byte gUnknown_083F8E9C +_08116FCC: .4byte 0xffff0000 +_08116FD0: .4byte 0x02019000 +_08116FD4: + cmp r0, 0x3 + beq _0811700C + cmp r0, 0x4 + beq _08117020 + ldr r4, _08116FE0 @ =0x02019000 + b _0811703A + .align 2, 0 +_08116FE0: .4byte 0x02019000 +_08116FE4: + ldr r3, _08116FF0 @ =gSprites + ldr r2, _08116FF4 @ =0x02019000 + adds r0, r2, 0 + adds r0, 0x43 + b _08117028 + .align 2, 0 +_08116FF0: .4byte gSprites +_08116FF4: .4byte 0x02019000 +_08116FF8: + ldr r3, _08117004 @ =gSprites + ldr r2, _08117008 @ =0x02019000 + adds r0, r2, 0 + adds r0, 0x44 + b _08117028 + .align 2, 0 +_08117004: .4byte gSprites +_08117008: .4byte 0x02019000 +_0811700C: + ldr r3, _08117018 @ =gSprites + ldr r2, _0811701C @ =0x02019000 + adds r0, r2, 0 + adds r0, 0x45 + b _08117028 + .align 2, 0 +_08117018: .4byte gSprites +_0811701C: .4byte 0x02019000 +_08117020: + ldr r3, _08117088 @ =gSprites + ldr r2, _0811708C @ =0x02019000 + adds r0, r2, 0 + adds r0, 0x46 +_08117028: + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + lsls r7, r0, 4 + adds r4, r2, 0 +_0811703A: + mov r2, r10 + cmp r2, 0x1 + bne _08117094 + ldr r1, _08117090 @ =gUnknown_083F8C00 + lsls r2, r6, 2 + adds r0, r2, r6 + lsls r0, 2 + adds r1, 0x8 + adds r0, r1 + ldr r1, [r4, 0x8] + ldr r0, [r0] + ands r1, r0 + str r2, [sp, 0x1C] + cmp r1, 0 + bne _0811713C + adds r0, r6, 0 + movs r1, 0x5 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + subs r1, r0, 0x1 + lsls r1, 3 + mov r3, sp + adds r2, r3, r1 + ldrh r1, [r2, 0x2] + adds r1, r7, r1 + strh r1, [r2, 0x2] + adds r1, r4, 0 + adds r1, 0xB8 + lsls r0, 3 + subs r0, 0x8 + adds r2, r3, r0 + adds r0, r1, 0 + movs r1, 0xD + bl sub_812492C + b _08117122 + .align 2, 0 +_08117088: .4byte gSprites +_0811708C: .4byte 0x02019000 +_08117090: .4byte gUnknown_083F8C00 +_08117094: + movs r4, 0 + lsls r0, r6, 2 + str r0, [sp, 0x1C] + ldr r1, _0811714C @ =0x02019000 + mov r8, r1 + ldr r2, _08117150 @ =gUnknown_083F8C00 + mov r9, r2 +_081170A2: + lsls r0, r4, 2 + adds r0, r4 + adds r0, r6, r0 + adds r0, 0x5 + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r5, r0, 2 + mov r0, r9 + adds r0, 0x8 + adds r0, r5, r0 + mov r3, r8 + ldr r1, [r3, 0x8] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0811710E + adds r0, r2, 0 + movs r1, 0x5 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + subs r1, r0, 0x1 + lsls r1, 3 + mov r3, sp + adds r2, r3, r1 + ldrh r1, [r2, 0x2] + adds r1, r7, r1 + strh r1, [r2, 0x2] + adds r1, r4, 0 + adds r1, 0xD + lsls r1, 24 + lsrs r1, 24 + lsls r0, 3 + subs r0, 0x8 + adds r2, r3, r0 + mov r0, r8 + adds r0, 0xB8 + bl sub_812492C + mov r0, r10 + cmp r0, 0x3 + bne _08117104 + mov r1, r9 + adds r0, r5, r1 + ldrh r0, [r0, 0x10] + str r0, [sp, 0x18] +_08117104: + mov r0, r10 + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 +_0811710E: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _081170A2 + mov r2, r10 + cmp r2, 0x2 + beq _08117122 + movs r3, 0 + str r3, [sp, 0x18] +_08117122: + ldr r0, _08117154 @ =0x020190b8 + ldr r2, _08117150 @ =gUnknown_083F8C00 + ldr r4, [sp, 0x1C] + adds r1, r4, r6 + lsls r1, 2 + adds r1, r2 + ldrh r1, [r1, 0x10] + ldr r2, [sp, 0x18] + orrs r2, r1 + str r2, [sp, 0x18] + adds r1, r2, 0 + bl sub_8124CE8 +_0811713C: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811714C: .4byte 0x02019000 +_08117150: .4byte gUnknown_083F8C00 +_08117154: .4byte 0x020190b8 + thumb_func_end sub_8116EF8 + + thumb_func_start sub_8117158 +sub_8117158: @ 8117158 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _0811719C @ =0x02019000 + movs r0, 0x1 + strh r0, [r4, 0x2A] + movs r0, 0 + movs r1, 0 + bl sub_8117AA8 + ldr r0, _081171A0 @ =gBG1TilemapBuffer + ldr r1, _081171A4 @ =0xfffff800 + adds r4, r1 + movs r1, 0x10 + str r1, [sp] + movs r1, 0xD + str r1, [sp, 0x4] + adds r1, r4, 0 + movs r2, 0xE + movs r3, 0x7 + bl sub_8124E2C + cmp r5, 0xF + bhi _08117250 + lsls r0, r5, 2 + ldr r1, _081171A8 @ =_081171AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811719C: .4byte 0x02019000 +_081171A0: .4byte gBG1TilemapBuffer +_081171A4: .4byte 0xfffff800 +_081171A8: .4byte _081171AC + .align 2, 0 +_081171AC: + .4byte _08117360 + .4byte _081171EC + .4byte _081171EC + .4byte _081171EC + .4byte _081171EC + .4byte _08117220 + .4byte _08117250 + .4byte _08117250 + .4byte _08117250 + .4byte _08117250 + .4byte _08117220 + .4byte _08117250 + .4byte _08117250 + .4byte _08117250 + .4byte _08117250 + .4byte _08117220 +_081171EC: + movs r0, 0x4 + str r0, [sp, 0x18] + add r1, sp, 0x8 + movs r0, 0 + strb r0, [r1] + adds r0, r1, 0 + ldrb r0, [r0] + cmp r0, 0x3 + bhi _08117258 + add r4, sp, 0x10 + adds r3, r1, 0 +_08117202: + ldrb r2, [r3] + adds r2, r4 + ldrb r1, [r3] + lsls r0, r1, 2 + adds r0, r1 + adds r0, r5, r0 + strb r0, [r2] + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + ldrb r0, [r3] + ldr r1, [sp, 0x18] + cmp r0, r1 + bcc _08117202 + b _08117258 +_08117220: + movs r0, 0x5 + str r0, [sp, 0x18] + add r1, sp, 0x8 + movs r0, 0 + strb r0, [r1] + adds r0, r1, 0 + ldrb r0, [r0] + cmp r0, 0x4 + bhi _08117258 + add r3, sp, 0x10 + adds r2, r1, 0 +_08117236: + ldrb r1, [r2] + adds r1, r3 + ldrb r0, [r2] + adds r0, r5, r0 + strb r0, [r1] + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + ldrb r0, [r2] + ldr r1, [sp, 0x18] + cmp r0, r1 + bcc _08117236 + b _08117258 +_08117250: + movs r0, 0x1 + str r0, [sp, 0x18] + add r0, sp, 0x10 + strb r5, [r0] +_08117258: + add r1, sp, 0x8 + movs r0, 0 + strb r0, [r1] + adds r0, r1, 0 + ldrb r0, [r0] + ldr r1, [sp, 0x18] + cmp r0, r1 + bcs _08117360 + mov r0, sp + adds r0, 0xE + str r0, [sp, 0x1C] + add r1, sp, 0x10 + mov r9, r1 + add r0, sp, 0x8 + mov r12, r0 + mov r1, sp + adds r1, 0xA + str r1, [sp, 0x20] +_0811727C: + mov r1, r12 + ldrb r0, [r1] + add r0, r9 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r1, _08117370 @ =gUnknown_083F8C00 + adds r0, r1 + ldrb r0, [r0, 0x6] + ldr r1, [sp, 0x1C] + strb r0, [r1] + mov r1, r12 + ldrb r0, [r1] + add r0, r9 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r1, _08117370 @ =gUnknown_083F8C00 + adds r0, r1 + ldrb r0, [r0, 0x3] + ldr r1, [sp, 0x20] + strh r0, [r1] + mov r4, sp + adds r4, 0x9 + movs r0, 0 + strb r0, [r4] + ldrb r0, [r4] + cmp r0, 0x2 + bhi _08117350 + add r5, sp, 0xC + ldr r7, [sp, 0x20] + ldr r0, _08117374 @ =gBG1TilemapBuffer + mov r8, r0 + ldr r6, [sp, 0x1C] + ldr r1, _08117378 @ =0x020189a0 + mov r10, r1 +_081172C8: + mov r1, r12 + ldrb r0, [r1] + add r0, r9 + ldrb r0, [r0] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + ldr r0, _08117370 @ =gUnknown_083F8C00 + adds r1, r0 + adds r3, r4, 0 + ldrb r0, [r4] + ldrb r1, [r1, 0x4] + adds r0, r1 + lsls r0, 5 + strh r0, [r5] + ldrh r0, [r7] + ldrh r2, [r5] + adds r2, r0 + lsls r2, 1 + add r2, r8 + ldrb r0, [r6] + ldrb r1, [r4] + adds r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + add r0, r10 + ldrh r0, [r0] + strh r0, [r2] + ldrh r0, [r7] + ldrh r2, [r5] + adds r2, r0 + adds r2, 0x1 + lsls r2, 1 + add r2, r8 + ldrb r0, [r6] + ldrb r1, [r4] + adds r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + mov r1, r10 + adds r1, 0x2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + ldrh r0, [r7] + ldrh r2, [r5] + adds r2, r0 + adds r2, 0x2 + lsls r2, 1 + add r2, r8 + ldrb r0, [r6] + ldrb r1, [r4] + adds r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + ldr r1, _0811737C @ =0x020189a4 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldrb r0, [r3] + cmp r0, 0x2 + bls _081172C8 +_08117350: + mov r1, r12 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldrb r0, [r1] + ldr r1, [sp, 0x18] + cmp r0, r1 + bcc _0811727C +_08117360: + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08117370: .4byte gUnknown_083F8C00 +_08117374: .4byte gBG1TilemapBuffer +_08117378: .4byte 0x020189a0 +_0811737C: .4byte 0x020189a4 + thumb_func_end sub_8117158 + + thumb_func_start sub_8117380 +sub_8117380: @ 8117380 + push {r4,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _081173B8 @ =gUnknown_083F8EF4 + mov r0, sp + movs r2, 0x5 + bl memcpy + cmp r4, 0x13 + bls _08117398 + movs r4, 0 +_08117398: + ldr r3, _081173BC @ =gUnknown_083F8C00 + lsls r0, r4, 2 + adds r0, r4 + lsls r2, r0, 2 + adds r0, r2, r3 + ldrb r0, [r0, 0x1] + lsls r0, 28 + lsrs r0, 28 + cmp r0, 0x4 + beq _081173EC + cmp r0, 0x4 + bgt _081173C0 + cmp r0, 0x3 + beq _081173C6 + b _08117428 + .align 2, 0 +_081173B8: .4byte gUnknown_083F8EF4 +_081173BC: .4byte gUnknown_083F8C00 +_081173C0: + cmp r0, 0xC + beq _0811740C + b _08117428 +_081173C6: + adds r0, r4, 0 + movs r1, 0x5 + bl __udivsi3 + subs r0, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _081173E8 @ =0x02019000 + adds r0, 0x16 + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, 0x3 + bhi _08117428 + ldrb r0, [r1] + adds r0, 0x1 + b _08117402 + .align 2, 0 +_081173E8: .4byte 0x02019000 +_081173EC: + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08117408 @ =0x02019000 + adds r0, 0x12 + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, 0x2 + bhi _08117428 + ldrb r0, [r1] + adds r0, 0x2 +_08117402: + add r0, sp + ldrb r0, [r0] + b _0811742A + .align 2, 0 +_08117408: .4byte 0x02019000 +_0811740C: + ldr r1, _08117424 @ =0x02019000 + adds r0, r3, 0 + adds r0, 0x8 + adds r0, r2, r0 + ldr r1, [r1, 0x8] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08117428 + mov r0, sp + ldrb r0, [r0, 0x4] + b _0811742A + .align 2, 0 +_08117424: .4byte 0x02019000 +_08117428: + movs r0, 0 +_0811742A: + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8117380 + + thumb_func_start sub_8117434 +sub_8117434: @ 8117434 + push {r4-r6,lr} + ldr r1, _081174AC @ =REG_BG2PA + ldr r4, _081174B0 @ =0x02019000 + ldrh r0, [r4, 0x2C] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r4, 0x2E] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r4, 0x30] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r4, 0x32] + strh r0, [r1] + movs r0, 0x2E + ldrsh r2, [r4, r0] + ldr r0, _081174B4 @ =gSpriteCoordOffsetY + movs r3, 0 + ldrsh r1, [r0, r3] + adds r1, 0x50 + adds r0, r2, 0 + muls r0, r1 + movs r2, 0xE8 + lsls r2, 7 + subs r2, r0 + movs r6, 0x2C + ldrsh r5, [r4, r6] + ldr r0, _081174B8 @ =gSpriteCoordOffsetX + movs r6, 0 + ldrsh r3, [r0, r6] + adds r3, 0x74 + adds r0, r5, 0 + muls r0, r3 + subs r2, r0 + movs r5, 0x32 + ldrsh r0, [r4, r5] + muls r0, r1 + movs r1, 0xA8 + lsls r1, 7 + subs r1, r0 + movs r6, 0x30 + ldrsh r0, [r4, r6] + muls r0, r3 + subs r1, r0 + ldr r0, _081174BC @ =REG_BG2X_L + strh r2, [r0] + adds r0, 0x2 + ldr r3, _081174C0 @ =0x0fff0000 + ands r2, r3 + asrs r2, 16 + strh r2, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + ands r1, r3 + asrs r1, 16 + strh r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081174AC: .4byte REG_BG2PA +_081174B0: .4byte 0x02019000 +_081174B4: .4byte gSpriteCoordOffsetY +_081174B8: .4byte gSpriteCoordOffsetX +_081174BC: .4byte REG_BG2X_L +_081174C0: .4byte 0x0fff0000 + thumb_func_end sub_8117434 + + thumb_func_start sub_81174C4 +sub_81174C4: @ 81174C4 + push {lr} + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + muls r0, r1 + adds r1, r0, 0 + cmp r0, 0 + bge _081174D8 + adds r1, 0xFF +_081174D8: + lsls r0, r1, 8 + asrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_81174C4 + + thumb_func_start sub_81174E0 +sub_81174E0: @ 81174E0 + push {lr} + adds r1, r0, 0 + movs r0, 0x80 + lsls r0, 9 + lsls r1, 16 + asrs r1, 16 + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_81174E0 + + thumb_func_start sub_81174F8 +sub_81174F8: @ 81174F8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r0, _08117520 @ =0x00002d9e + bl sub_814AAF8 + ldr r1, _08117524 @ =gUnknown_083F8EB4 + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08117520: .4byte 0x00002d9e +_08117524: .4byte gUnknown_083F8EB4 + thumb_func_end sub_81174F8 + + thumb_func_start sub_8117528 +sub_8117528: @ 8117528 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08117554 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0811754C + movs r0, 0 + bl SetVBlankCallback + ldr r0, _08117558 @ =sub_8115384 + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_0811754C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08117554: .4byte gPaletteFade +_08117558: .4byte sub_8115384 + thumb_func_end sub_8117528 + + thumb_func_start sub_811755C +sub_811755C: @ 811755C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1A + movs r3, 0xD + bl MenuZeroFillWindowRect + bl MenuZeroFillScreen + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r2, _081175B4 @ =gPaletteFade + ldrb r1, [r2, 0x8] + lsls r1, 26 + lsrs r1, 26 + ldrb r3, [r2, 0x4] + movs r0, 0x40 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x4] + bl UpdatePaletteFade + ldr r1, _081175B8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _081175BC @ =sub_8117528 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081175B4: .4byte gPaletteFade +_081175B8: .4byte gTasks +_081175BC: .4byte sub_8117528 + thumb_func_end sub_811755C + + thumb_func_start sub_81175C0 +sub_81175C0: @ 81175C0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl MenuZeroFillScreen + bl ScriptContext2_Disable + adds r0, r4, 0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81175C0 + + thumb_func_start sub_81175DC +sub_81175DC: @ 81175DC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r1, _08117624 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + adds r2, r1, 0x1 + strh r2, [r0, 0x8] + ldr r0, _08117628 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08117608 + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _0811761C +_08117608: + ldr r1, _0811762C @ =gUnknown_0202E8CC + movs r0, 0x1 + strh r0, [r1] + bl MenuZeroFillScreen + bl ScriptContext2_Disable + adds r0, r4, 0 + bl DestroyTask +_0811761C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08117624: .4byte gTasks +_08117628: .4byte gMain +_0811762C: .4byte gUnknown_0202E8CC + thumb_func_end sub_81175DC + + thumb_func_start sub_8117630 +sub_8117630: @ 8117630 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r2, _0811768C @ =gUnknown_083F8DF0 + ldr r0, _08117690 @ =gUnknown_0202E8CC + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + lsrs r1, 7 + lsls r1, 1 + adds r0, r1 + adds r0, r2 + ldrb r1, [r0] + ldr r0, _08117694 @ =gStringVar1 + movs r2, 0x2 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + ldr r5, _08117698 @ =gStringVar4 + ldr r1, _0811769C @ =gUnknown_081C40DF + adds r0, r5, 0 + bl StringExpandPlaceholders + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _081176A0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _081176A4 @ =sub_81174F8 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811768C: .4byte gUnknown_083F8DF0 +_08117690: .4byte gUnknown_0202E8CC +_08117694: .4byte gStringVar1 +_08117698: .4byte gStringVar4 +_0811769C: .4byte gUnknown_081C40DF +_081176A0: .4byte gTasks +_081176A4: .4byte sub_81174F8 + thumb_func_end sub_8117630 + + thumb_func_start Task_Roulette_0 +Task_Roulette_0: @ 81176A8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _08117758 @ =gStringVar1 + mov r10, r0 + ldr r1, _0811775C @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r6, r0, r1 + movs r0, 0x22 + ldrsh r1, [r6, r0] + mov r0, r10 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r5, _08117760 @ =gStringVar4 + ldr r1, _08117764 @ =gOtherText_Coins + adds r0, r5, 0 + bl StringExpandPlaceholders + movs r0, 0 + movs r1, 0 + movs r2, 0x9 + movs r3, 0x3 + bl MenuDrawTextWindow + adds r0, r5, 0 + movs r1, 0x9 + movs r2, 0x1 + bl MenuPrint_RightAligned + ldr r2, _08117768 @ =gUnknown_083F8DF0 + ldr r1, _0811776C @ =gUnknown_0202E8CC + mov r8, r1 + ldrh r1, [r1] + movs r0, 0x1 + mov r9, r0 + ands r0, r1 + lsrs r1, 7 + lsls r1, 1 + adds r0, r1 + adds r0, r2 + ldrb r4, [r0] + mov r0, r10 + adds r1, r4, 0 + movs r2, 0x2 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + movs r1, 0x22 + ldrsh r0, [r6, r1] + cmp r0, r4 + blt _081177BC + mov r0, r8 + ldrh r1, [r0] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0811777C + mov r0, r9 + ands r0, r1 + cmp r0, 0 + beq _0811777C + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08117770 @ =gUnknown_081C4139 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _08117774 @ =sub_8117630 + ldr r2, _08117778 @ =0x0000ffff + adds r0, r7, 0 + movs r3, 0x3 + bl sub_8116C34 + b _081177E4 + .align 2, 0 +_08117758: .4byte gStringVar1 +_0811775C: .4byte gTasks +_08117760: .4byte gStringVar4 +_08117764: .4byte gOtherText_Coins +_08117768: .4byte gUnknown_083F8DF0 +_0811776C: .4byte gUnknown_0202E8CC +_08117770: .4byte gUnknown_081C4139 +_08117774: .4byte sub_8117630 +_08117778: .4byte 0x0000ffff +_0811777C: + ldr r4, _081177AC @ =gStringVar4 + ldr r1, _081177B0 @ =gUnknown_081C40DF + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _081177B4 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, _081177B8 @ =sub_81174F8 + str r1, [r0] + b _081177E4 + .align 2, 0 +_081177AC: .4byte gStringVar4 +_081177B0: .4byte gUnknown_081C40DF +_081177B4: .4byte gTasks +_081177B8: .4byte sub_81174F8 +_081177BC: + ldr r1, _081177F4 @ =gUnknown_081C411C + adds r0, r5, 0 + bl StringExpandPlaceholders + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r0, _081177F8 @ =sub_81175DC + str r0, [r6] + movs r0, 0 + strh r0, [r6, 0x22] + strh r0, [r6, 0x8] +_081177E4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081177F4: .4byte gUnknown_081C411C +_081177F8: .4byte sub_81175DC + thumb_func_end Task_Roulette_0 + + thumb_func_start PlayRoulette +PlayRoulette: @ 81177FC + push {lr} + bl ScriptContext2_Enable + ldr r0, _08117828 @ =sub_81176A8 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0811782C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _08117830 @ =gSaveBlock1 + ldr r2, _08117834 @ =0x00000494 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1, 0x22] + pop {r0} + bx r0 + .align 2, 0 +_08117828: .4byte Task_Roulette_0 +_0811782C: .4byte gTasks +_08117830: .4byte gSaveBlock1 +_08117834: .4byte 0x00000494 + thumb_func_end PlayRoulette + + thumb_func_start sub_8117838 +sub_8117838: @ 8117838 + push {r4,lr} + lsls r0, 24 + cmp r0, 0 + bne _08117884 + bl FreeAllSpritePalettes + ldr r0, _08117870 @ =gUnknown_083F9E30 + bl LoadSpritePalettes + ldr r0, _08117874 @ =gUnknown_083F92A8 + ldr r4, _08117878 @ =0x02017000 + adds r1, r4, 0 + bl LZ77UnCompWram + ldr r0, _0811787C @ =gUnknown_083F90FC + movs r2, 0xE0 + lsls r2, 4 + adds r1, r4, r2 + bl LZ77UnCompWram + ldr r0, _08117880 @ =gUnknown_083F9D3C + movs r1, 0x80 + lsls r1, 5 + adds r4, r1 + adds r1, r4, 0 + bl LZ77UnCompWram + b _08117888 + .align 2, 0 +_08117870: .4byte gUnknown_083F9E30 +_08117874: .4byte gUnknown_083F92A8 +_08117878: .4byte 0x02017000 +_0811787C: .4byte gUnknown_083F90FC +_08117880: .4byte gUnknown_083F9D3C +_08117884: + bl FreeAllSpritePalettes +_08117888: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8117838 + + thumb_func_start sub_8117890 +sub_8117890: @ 8117890 + push {r4-r6,lr} + adds r4, r1, 0 + adds r6, r2, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, [r0, 0x4] + ldrb r3, [r1] + movs r1, 0x74 + movs r2, 0x50 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r0, _081178F4 @ =gSprites + lsls r1, r5, 4 + adds r1, r5 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r6] + strh r0, [r1, 0x2E] + strh r4, [r1, 0x30] + adds r3, r1, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r3] + adds r1, 0x2C + ldrb r0, [r1] + movs r2, 0x40 + orrs r0, r2 + movs r2, 0x80 + orrs r0, r2 + strb r0, [r1] + ldrh r2, [r6] + adds r0, r2, 0 + adds r0, 0x1E + strh r0, [r6] + lsls r0, 16 + ldr r1, _081178F8 @ =0x01670000 + cmp r0, r1 + bls _081178EC + ldr r1, _081178FC @ =0xfffffeb6 + adds r0, r2, r1 + strh r0, [r6] +_081178EC: + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_081178F4: .4byte gSprites +_081178F8: .4byte 0x01670000 +_081178FC: .4byte 0xfffffeb6 + thumb_func_end sub_8117890 + + thumb_func_start sub_8117900 +sub_8117900: @ 8117900 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + ldr r4, _08117A50 @ =gUnknown_083F9F54 + ldr r0, [r4] + ldr r5, _08117A54 @ =0x02000000 + adds r1, r5, 0 + bl LZ77UnCompWram + str r5, [sp] + mov r6, sp + ldrh r1, [r4, 0x6] + lsls r1, 16 + ldrh r0, [r4, 0x4] + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + ldr r4, _08117A58 @ =gUnknown_083F9F5C + ldr r0, [r4] + adds r1, r5, 0 + bl LZ77UnCompWram + str r5, [sp] + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x4] + ldrh r0, [r4, 0x6] + strh r0, [r6, 0x6] + mov r0, sp + bl LoadSpriteSheet + movs r7, 0 + ldr r0, _08117A5C @ =0x0001903c + adds r0, r5 + mov r9, r0 + ldr r0, _08117A60 @ =gSprites + mov r8, r0 +_08117950: + lsls r0, r7, 1 + adds r0, r7 + lsls r0, 27 + lsrs r4, r0, 24 + movs r6, 0 + lsls r5, r7, 2 +_0811795C: + lsls r1, r6, 1 + adds r1, r6 + lsls r1, 3 + ldr r0, _08117A64 @ =gSpriteTemplate_83FA07C + adds r0, r1, r0 + adds r1, 0x94 + adds r2, r4, 0 + adds r2, 0x5C + movs r3, 0x1E + bl CreateSprite + adds r1, r6, 0 + adds r1, 0x1D + adds r1, r5, r1 + add r1, r9 + strb r0, [r1] + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + adds r0, r4, 0 + adds r0, 0x18 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x47 + bls _081179A0 + movs r4, 0 +_081179A0: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bls _0811795C + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bls _08117950 + movs r7, 0 + ldr r5, _08117A68 @ =0x0201903c + ldr r4, _08117A60 @ =gSprites +_081179BA: + lsls r1, r7, 1 + adds r1, r7 + lsls r1, 3 + ldr r0, _08117A6C @ =gSpriteTemplate_83F9FD4 + adds r0, r1, r0 + adds r1, 0x94 + lsls r1, 16 + asrs r1, 16 + movs r2, 0x46 + movs r3, 0x1E + bl CreateSprite + adds r1, r7, 0 + adds r1, 0x29 + adds r1, r5 + strb r0, [r1] + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x3 + bls _081179BA + movs r7, 0 + ldr r5, _08117A68 @ =0x0201903c + ldr r4, _08117A60 @ =gSprites +_08117A00: + lsls r2, r7, 1 + adds r2, r7 + lsls r2, 3 + ldr r0, _08117A70 @ =gSpriteTemplate_83FA034 + adds r0, r2, r0 + adds r2, 0x5C + lsls r2, 16 + asrs r2, 16 + movs r1, 0x7E + movs r3, 0x1E + bl CreateSprite + adds r1, r7, 0 + adds r1, 0x2D + adds r1, r5 + strb r0, [r1] + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bls _08117A00 + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08117A50: .4byte gUnknown_083F9F54 +_08117A54: .4byte 0x02000000 +_08117A58: .4byte gUnknown_083F9F5C +_08117A5C: .4byte 0x0001903c +_08117A60: .4byte gSprites +_08117A64: .4byte gSpriteTemplate_83FA07C +_08117A68: .4byte 0x0201903c +_08117A6C: .4byte gSpriteTemplate_83F9FD4 +_08117A70: .4byte gSpriteTemplate_83FA034 + thumb_func_end sub_8117900 + + thumb_func_start unref_sub_8117A74 +unref_sub_8117A74: @ 8117A74 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _08117AA0 @ =0x0201903c +_08117A7A: + adds r0, r4, 0 + adds r0, 0x1D + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08117AA4 @ =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xB + bls _08117A7A + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08117AA0: .4byte 0x0201903c +_08117AA4: .4byte gSprites + thumb_func_end unref_sub_8117A74 + + thumb_func_start sub_8117AA8 +sub_8117AA8: @ 8117AA8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + cmp r0, 0 + beq _08117AF8 + cmp r0, 0x1 + bne _08117BA8 + movs r3, 0 + ldr r5, _08117AF0 @ =gSprites + ldr r4, _08117AF4 @ =0x0201903c + movs r2, 0x4 +_08117ACA: + adds r0, r3, 0 + adds r0, 0x1D + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x12 + bls _08117ACA + b _08117BA8 + .align 2, 0 +_08117AF0: .4byte gSprites +_08117AF4: .4byte 0x0201903c +_08117AF8: + movs r3, 0 + ldr r0, _08117B48 @ =gUnknown_083F8D90 + mov r12, r0 + ldr r7, _08117B4C @ =0x02019000 + movs r1, 0x4 + add r1, r12 + mov r9, r1 + ldr r5, _08117B50 @ =gSprites + adds r4, r7, 0 + adds r4, 0x3C + movs r6, 0x5 + negs r6, r6 +_08117B10: + lsls r2, r3, 3 + mov r1, r9 + adds r0, r2, r1 + ldr r1, [r7, 0x8] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08117B54 + mov r1, r12 + adds r0, r2, r1 + ldrb r0, [r0, 0x2] + cmp r0, r8 + beq _08117B54 + adds r0, r3, 0 + adds r0, 0x1D + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _08117B6E + .align 2, 0 +_08117B48: .4byte gUnknown_083F8D90 +_08117B4C: .4byte 0x02019000 +_08117B50: .4byte gSprites +_08117B54: + adds r0, r3, 0 + adds r0, 0x1D + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1] +_08117B6E: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0xB + bls _08117B10 + cmp r3, 0x12 + bhi _08117BA8 + ldr r6, _08117BB4 @ =gSprites + ldr r4, _08117BB8 @ =0x0201903c + movs r5, 0x5 + negs r5, r5 +_08117B84: + adds r0, r3, 0 + adds r0, 0x1D + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r5, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x12 + bls _08117B84 +_08117BA8: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08117BB4: .4byte gSprites +_08117BB8: .4byte 0x0201903c + thumb_func_end sub_8117AA8 + + thumb_func_start sub_8117BBC +sub_8117BBC: @ 8117BBC + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r5, 0 + ldr r0, _08117C50 @ =0x0201903c + mov r8, r0 + ldr r4, _08117C54 @ =gSprites + movs r6, 0x4 +_08117BCC: + ldr r0, _08117C58 @ =gSpriteTemplate_83FA40C + movs r1, 0x74 + movs r2, 0x14 + movs r3, 0xA + bl CreateSprite + adds r3, r5, 0 + adds r3, 0x31 + add r3, r8 + strb r0, [r3] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r6 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x1 + strh r1, [r0, 0x2E] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _08117C5C @ =sub_81184CC + str r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x5] + movs r7, 0xD + negs r7, r7 + adds r2, r7, 0 + ands r1, r2 + orrs r1, r6 + strb r1, [r0, 0x5] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x8 + bl StartSpriteAnim + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _08117BCC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08117C50: .4byte 0x0201903c +_08117C54: .4byte gSprites +_08117C58: .4byte gSpriteTemplate_83FA40C +_08117C5C: .4byte sub_81184CC + thumb_func_end sub_8117BBC + + thumb_func_start sub_8117C60 +sub_8117C60: @ 8117C60 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + movs r5, 0 + cmp r0, 0 + beq _08117CAC + ldr r4, _08117CA4 @ =gSprites + ldr r3, _08117CA8 @ =0x0201903c + movs r2, 0x4 +_08117C7E: + adds r0, r5, 0 + adds r0, 0x31 + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _08117C7E + b _08117D58 + .align 2, 0 +_08117CA4: .4byte gSprites +_08117CA8: .4byte 0x0201903c +_08117CAC: + ldr r0, _08117CEC @ =0x02019000 + mov r12, r0 + ldr r6, _08117CF0 @ =gSprites + movs r0, 0x3C + add r0, r12 + mov r8, r0 + ldr r7, _08117CF4 @ =gUnknown_083F8C00 + movs r0, 0x5 + negs r0, r0 + mov r10, r0 +_08117CC0: + mov r0, r12 + adds r0, 0xC + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0 + beq _08117CD0 + cmp r5, r9 + bne _08117CF8 +_08117CD0: + adds r0, r5, 0 + adds r0, 0x31 + add r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _08117D4E + .align 2, 0 +_08117CEC: .4byte 0x02019000 +_08117CF0: .4byte gSprites +_08117CF4: .4byte gUnknown_083F8C00 +_08117CF8: + adds r3, r5, 0 + adds r3, 0x31 + add r3, r8 + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r1, 0x3E + ldrb r2, [r1] + mov r0, r10 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r3] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r6 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r0, [r0, 0x3] + adds r0, 0x1 + lsls r0, 3 + adds r0, 0x4 + strh r0, [r2, 0x20] + ldrb r0, [r3] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r6 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r0, [r0, 0x4] + adds r0, 0x1 + lsls r0, 3 + adds r0, 0x3 + strh r0, [r2, 0x22] +_08117D4E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _08117CC0 +_08117D58: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8117C60 + + thumb_func_start sub_8117D68 +sub_8117D68: @ 8117D68 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _08117D98 + ldr r2, _08117D90 @ =gSprites + ldr r0, _08117D94 @ =0x02019000 + adds r0, 0x6C + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _08117DE2 + .align 2, 0 +_08117D90: .4byte gSprites +_08117D94: .4byte 0x02019000 +_08117D98: + ldr r4, _08117DE8 @ =gSprites + ldr r3, _08117DEC @ =0x02019000 + adds r3, 0x6C + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldr r0, _08117DF0 @ =gUnknown_083F8C00 + lsls r2, r5, 2 + adds r2, r5 + lsls r2, 2 + adds r2, r0 + ldrb r0, [r2, 0x3] + adds r0, 0x2 + lsls r0, 3 + strh r0, [r1, 0x20] + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r2, 0x4] + adds r0, 0x2 + lsls r0, 3 + strh r0, [r1, 0x22] +_08117DE2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08117DE8: .4byte gSprites +_08117DEC: .4byte 0x02019000 +_08117DF0: .4byte gUnknown_083F8C00 + thumb_func_end sub_8117D68 + + thumb_func_start sub_8117DF4 +sub_8117DF4: @ 8117DF4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + ldr r4, _08117E84 @ =gUnknown_083F9EE8 + ldr r0, [r4] + ldr r5, _08117E88 @ =0x02000000 + adds r1, r5, 0 + bl LZ77UnCompWram + str r5, [sp, 0x4] + add r0, sp, 0x4 + ldrh r2, [r4, 0x6] + lsls r2, 16 + ldrh r1, [r4, 0x4] + orrs r1, r2 + str r1, [r0, 0x4] + bl LoadSpriteSheet + movs r1, 0xF + mov r0, sp + strh r1, [r0] + movs r0, 0 + ldr r1, _08117E8C @ =0x0001903c + adds r1, r5 + mov r8, r1 + ldr r7, _08117E90 @ =gSprites +_08117E2A: + movs r4, 0 + adds r6, r0, 0x1 + lsls r5, r0, 2 +_08117E30: + adds r1, r5, r4 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + ldr r1, _08117E94 @ =gSpriteTemplate_83FA0DC + adds r0, r1 + movs r1, 0x28 + mov r2, sp + bl sub_8117890 + adds r1, r4, 0x7 + adds r1, r5, r1 + add r1, r8 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + adds r1, 0x2C + ldrb r0, [r1] + movs r2, 0x40 + orrs r0, r2 + movs r2, 0x80 + orrs r0, r2 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _08117E30 + lsls r0, r6, 24 + lsrs r0, 24 + cmp r0, 0x2 + bls _08117E2A + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08117E84: .4byte gUnknown_083F9EE8 +_08117E88: .4byte 0x02000000 +_08117E8C: .4byte 0x0001903c +_08117E90: .4byte gSprites +_08117E94: .4byte gSpriteTemplate_83FA0DC + thumb_func_end sub_8117DF4 + + thumb_func_start sub_8117E98 +sub_8117E98: @ 8117E98 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _08117F1C @ =0x02019000 + ldrh r1, [r6, 0x2E] + ldrh r0, [r0, 0x24] + adds r1, r0 + lsls r1, 16 + lsrs r4, r1, 16 + asrs r1, 16 + ldr r0, _08117F20 @ =0x00000167 + cmp r1, r0 + ble _08117EB8 + ldr r2, _08117F24 @ =0xfffffe98 + adds r0, r1, r2 + lsls r0, 16 + lsrs r4, r0, 16 +_08117EB8: + adds r0, r4, 0 + bl Sin2 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + bl Cos2 + lsls r2, r5, 16 + asrs r2, 16 + movs r3, 0x30 + ldrsh r1, [r6, r3] + muls r1, r2 + asrs r1, 12 + strh r1, [r6, 0x24] + lsls r0, 16 + asrs r4, r0, 16 + negs r1, r4 + movs r3, 0x30 + ldrsh r0, [r6, r3] + muls r0, r1 + asrs r0, 12 + strh r0, [r6, 0x26] + ldrb r0, [r6, 0x3] + lsls r0, 26 + lsrs r3, r0, 27 + cmp r2, 0 + bge _08117EF2 + adds r2, 0xF +_08117EF2: + lsls r0, r2, 12 + lsrs r5, r0, 16 + ldr r1, _08117F28 @ =gOamMatrices + lsls r0, r3, 3 + adds r1, r0, r1 + adds r0, r4, 0 + cmp r0, 0 + bge _08117F04 + adds r0, 0xF +_08117F04: + asrs r0, 4 + strh r0, [r1, 0x6] + strh r0, [r1] + strh r5, [r1, 0x2] + lsls r0, r5, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r1, 0x4] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08117F1C: .4byte 0x02019000 +_08117F20: .4byte 0x00000167 +_08117F24: .4byte 0xfffffe98 +_08117F28: .4byte gOamMatrices + thumb_func_end sub_8117E98 + + thumb_func_start sub_8117F2C +sub_8117F2C: @ 8117F2C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r5, 0 + ldr r7, _081180C8 @ =0x02000000 + mov r6, sp +_08117F3A: + ldr r0, _081180CC @ =gUnknown_083FA21C + lsls r4, r5, 3 + adds r4, r0 + ldr r0, [r4] + adds r1, r7, 0 + bl LZ77UnCompWram + str r7, [sp] + ldrh r2, [r4, 0x4] + ldr r0, _081180D0 @ =0xffff0000 + ldr r1, [r6, 0x4] + ands r1, r0 + orrs r1, r2 + str r1, [r6, 0x4] + ldrh r2, [r4, 0x6] + lsls r2, 16 + ldr r0, _081180D4 @ =0x0000ffff + ands r0, r1 + orrs r0, r2 + str r0, [r6, 0x4] + mov r0, sp + bl LoadSpriteSheet + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bls _08117F3A + ldr r0, _081180D8 @ =gSpriteTemplate_83FA2B0 + movs r1, 0xD0 + movs r2, 0x10 + movs r3, 0x4 + bl CreateSprite + ldr r4, _081180DC @ =0x02019000 + adds r1, r4, 0 + adds r1, 0x50 + strb r0, [r1] + ldr r3, _081180E0 @ =gSprites + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + movs r5, 0 + adds r4, 0x3C + adds r7, r3, 0 +_08117FA2: + lsls r1, r5, 19 + movs r0, 0xC4 + lsls r0, 16 + adds r1, r0 + asrs r1, 16 + ldr r0, _081180E4 @ =gSpriteTemplate_83FA2C8 + movs r2, 0x18 + movs r3, 0 + bl CreateSprite + adds r3, r5, 0 + adds r3, 0x15 + adds r3, r4 + strb r0, [r3] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + adds r0, 0x2C + ldrb r1, [r0] + movs r6, 0x40 + orrs r1, r6 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _08117FA2 + ldr r0, _081180E8 @ =gSpriteTemplate_83FA2E0 + movs r1, 0x78 + movs r2, 0x44 + movs r3, 0x4 + bl CreateSprite + ldr r3, _081180DC @ =0x02019000 + adds r1, r3, 0 + adds r1, 0x55 + strb r0, [r1] + ldr r2, _081180E0 @ =gSprites + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x2C + ldrb r1, [r0] + orrs r1, r6 + strb r1, [r0] + movs r5, 0 + adds r3, 0x3C + mov r8, r3 + adds r4, r2, 0 +_08118020: + lsls r1, r5, 20 + movs r0, 0xC0 + lsls r0, 16 + adds r1, r0 + asrs r1, 16 + ldr r0, _081180EC @ =gSpriteTemplate_83FA2F8 + movs r2, 0x24 + movs r3, 0x4 + bl CreateSprite + adds r2, r5, 0 + adds r2, 0x1A + add r2, r8 + strb r0, [r2] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + movs r7, 0x4 + orrs r1, r7 + strb r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x2C + ldrb r1, [r0] + movs r6, 0x40 + orrs r1, r6 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _08118020 + ldr r0, _081180F0 @ =gSpriteTemplate_83FA310 + movs r1, 0x98 + movs r2, 0x60 + movs r3, 0x9 + bl CreateSprite + ldr r3, _081180DC @ =0x02019000 + adds r3, 0x6C + strb r0, [r3] + ldr r4, _081180E0 @ =gSprites + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r7 + strb r0, [r1, 0x5] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x2C + ldrb r1, [r0] + orrs r1, r6 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r7 + strb r1, [r0] + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081180C8: .4byte 0x02000000 +_081180CC: .4byte gUnknown_083FA21C +_081180D0: .4byte 0xffff0000 +_081180D4: .4byte 0x0000ffff +_081180D8: .4byte gSpriteTemplate_83FA2B0 +_081180DC: .4byte 0x02019000 +_081180E0: .4byte gSprites +_081180E4: .4byte gSpriteTemplate_83FA2C8 +_081180E8: .4byte gSpriteTemplate_83FA2E0 +_081180EC: .4byte gSpriteTemplate_83FA2F8 +_081180F0: .4byte gSpriteTemplate_83FA310 + thumb_func_end sub_8117F2C + + thumb_func_start sub_81180F4 +sub_81180F4: @ 81180F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r7, r0, 16 + movs r0, 0xFA + lsls r0, 2 + mov r8, r0 + movs r4, 0 + movs r6, 0 + ldr r1, _081181D4 @ =0x02019000 + mov r9, r1 + ldr r0, _081181D8 @ =gSprites + mov r10, r0 +_08118114: + adds r0, r7, 0 + mov r1, r8 + bl __udivsi3 + lsls r0, 24 + lsrs r5, r0, 24 + adds r3, r6, 0 + adds r3, 0x15 + mov r0, r9 + adds r0, 0x3C + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _081181D8 @ =gSprites + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r0, r3, 0 + cmp r5, 0 + bne _0811814E + cmp r4, 0 + bne _0811814E + cmp r6, 0x3 + bne _081181A2 +_0811814E: + mov r3, r9 + adds r3, 0x3C + adds r3, r0, r3 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + adds r0, 0x3E + ldrb r1, [r0] + movs r4, 0x5 + negs r4, r4 + adds r2, r4, 0 + ands r1, r2 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + mov r1, r10 + adds r3, r0, r1 + adds r4, r3, 0 + adds r4, 0x40 + ldr r1, _081181DC @ =gSprites + 0x8 + adds r0, r1 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, 2 + adds r0, r1 + ldrh r2, [r0] + ldrh r4, [r4] + adds r2, r4 + ldr r4, _081181E0 @ =0x000003ff + adds r0, r4, 0 + ands r2, r0 + ldrh r0, [r3, 0x4] + ldr r4, _081181E4 @ =0xfffffc00 + adds r1, r4, 0 + ands r0, r1 + orrs r0, r2 + strh r0, [r3, 0x4] + movs r4, 0x1 +_081181A2: + adds r0, r7, 0 + mov r1, r8 + bl __umodsi3 + lsls r0, 16 + lsrs r7, r0, 16 + mov r0, r8 + movs r1, 0xA + bl __udivsi3 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bls _08118114 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081181D4: .4byte 0x02019000 +_081181D8: .4byte gSprites +_081181DC: .4byte gSprites + 0x8 +_081181E0: .4byte 0x000003ff +_081181E4: .4byte 0xfffffc00 + thumb_func_end sub_81180F4 + + thumb_func_start sub_81181E8 +sub_81181E8: @ 81181E8 + push {r4,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08118220 @ =gUnknown_083FA608 + mov r0, sp + movs r2, 0x5 + bl memcpy + cmp r4, 0x13 + bls _08118200 + movs r4, 0 +_08118200: + ldr r3, _08118224 @ =gUnknown_083F8C00 + lsls r0, r4, 2 + adds r0, r4 + lsls r2, r0, 2 + adds r0, r2, r3 + ldrb r0, [r0, 0x1] + lsls r0, 28 + lsrs r0, 28 + cmp r0, 0x4 + beq _08118254 + cmp r0, 0x4 + bgt _08118228 + cmp r0, 0x3 + beq _0811822E + b _08118290 + .align 2, 0 +_08118220: .4byte gUnknown_083FA608 +_08118224: .4byte gUnknown_083F8C00 +_08118228: + cmp r0, 0xC + beq _08118274 + b _08118290 +_0811822E: + adds r0, r4, 0 + movs r1, 0x5 + bl __udivsi3 + subs r0, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08118250 @ =0x02019000 + adds r0, 0x16 + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, 0x3 + bhi _08118290 + ldrb r0, [r1] + adds r0, 0x1 + b _0811826A + .align 2, 0 +_08118250: .4byte 0x02019000 +_08118254: + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08118270 @ =0x02019000 + adds r0, 0x12 + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, 0x2 + bhi _08118290 + ldrb r0, [r1] + adds r0, 0x2 +_0811826A: + add r0, sp + ldrb r0, [r0] + b _08118292 + .align 2, 0 +_08118270: .4byte 0x02019000 +_08118274: + ldr r1, _0811828C @ =0x02019000 + adds r0, r3, 0 + adds r0, 0x8 + adds r0, r2, r0 + ldr r1, [r1, 0x8] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08118290 + mov r0, sp + ldrb r0, [r0, 0x4] + b _08118292 + .align 2, 0 +_0811828C: .4byte 0x02019000 +_08118290: + movs r0, 0 +_08118292: + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81181E8 + + thumb_func_start sub_811829C +sub_811829C: @ 811829C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _081182E8 @ =0x02019000 + adds r1, 0x55 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r2, _081182EC @ =gSprites + adds r4, r1, r2 + bl sub_81181E8 + adds r3, r4, 0 + adds r3, 0x2B + strb r0, [r3] + adds r2, r4, 0 + adds r2, 0x40 + ldr r1, [r4, 0x8] + ldrb r0, [r3] + ldr r1, [r1] + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r2 + ldr r2, _081182F0 @ =0x000003ff + adds r0, r2, 0 + ands r1, r0 + ldrh r2, [r4, 0x4] + ldr r0, _081182F4 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081182E8: .4byte 0x02019000 +_081182EC: .4byte gSprites +_081182F0: .4byte 0x000003ff +_081182F4: .4byte 0xfffffc00 + thumb_func_end sub_811829C + + thumb_func_start sub_81182F8 +sub_81182F8: @ 81182F8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r2, r0, 24 + movs r5, 0 + ldr r0, _08118320 @ =0x02019000 + ldrb r1, [r0, 0x19] + adds r3, r0, 0 + cmp r1, 0x1 + bne _08118310 + movs r5, 0x2 +_08118310: + cmp r2, 0x6 + bls _08118316 + b _08118464 +_08118316: + lsls r0, r2, 2 + ldr r1, _08118324 @ =_08118328 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08118320: .4byte 0x02019000 +_08118324: .4byte _08118328 + .align 2, 0 +_08118328: + .4byte _08118464 + .4byte _08118420 + .4byte _081183F8 + .4byte _081183EC + .4byte _081183C4 + .4byte _081183B8 + .4byte _08118344 +_08118344: + movs r4, 0 + ldr r5, _081183A8 @ =gSprites + ldr r0, _081183AC @ =0x0201903c + mov r8, r0 + movs r2, 0x5 + negs r2, r2 + mov r12, r2 + adds r6, r5, 0 + adds r6, 0x8 + ldr r7, _081183B0 @ =0xfffffc00 +_08118358: + adds r3, r4, 0 + adds r3, 0x1A + add r3, r8 + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r2, [r1] + mov r0, r12 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0, r5 + adds r2, r3, 0 + adds r2, 0x40 + adds r0, r6 + ldr r0, [r0] + ldr r0, [r0] + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r2 + ldr r2, _081183B4 @ =0x000003ff + adds r0, r2, 0 + ands r1, r0 + ldrh r2, [r3, 0x4] + adds r0, r7, 0 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _08118358 + b _081184B2 + .align 2, 0 +_081183A8: .4byte gSprites +_081183AC: .4byte 0x0201903c +_081183B0: .4byte 0xfffffc00 +_081183B4: .4byte 0x000003ff +_081183B8: + ldr r2, _081183C0 @ =gSprites + adds r0, r3, 0 + adds r0, 0x58 + b _08118426 + .align 2, 0 +_081183C0: .4byte gSprites +_081183C4: + ldr r2, _081183E8 @ =gSprites + adds r0, r3, 0 + adds r0, 0x58 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0, r2 + adds r4, r3, 0 + adds r4, 0x40 + adds r2, 0x8 + adds r0, r2 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, 2 + adds r0, r1 + ldrh r1, [r0, 0x8] + b _08118442 + .align 2, 0 +_081183E8: .4byte gSprites +_081183EC: + ldr r2, _081183F4 @ =gSprites + adds r0, r3, 0 + adds r0, 0x57 + b _08118426 + .align 2, 0 +_081183F4: .4byte gSprites +_081183F8: + ldr r2, _0811841C @ =gSprites + adds r0, r3, 0 + adds r0, 0x57 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0, r2 + adds r4, r3, 0 + adds r4, 0x40 + adds r2, 0x8 + adds r0, r2 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, 2 + adds r0, r1 + ldrh r1, [r0, 0x8] + b _08118442 + .align 2, 0 +_0811841C: .4byte gSprites +_08118420: + ldr r2, _08118458 @ =gSprites + adds r0, r3, 0 + adds r0, 0x56 +_08118426: + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0, r2 + adds r4, r3, 0 + adds r4, 0x40 + adds r2, 0x8 + adds r0, r2 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, 2 + adds r0, r1 + ldrh r1, [r0, 0x4] +_08118442: + ldrh r4, [r4] + adds r1, r4 + ldr r2, _0811845C @ =0x000003ff + adds r0, r2, 0 + ands r1, r0 + ldrh r2, [r3, 0x4] + ldr r0, _08118460 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + b _081184B2 + .align 2, 0 +_08118458: .4byte gSprites +_0811845C: .4byte 0x000003ff +_08118460: .4byte 0xfffffc00 +_08118464: + movs r4, 0 + lsls r6, r5, 2 + ldr r5, _081184BC @ =gSprites + ldr r0, _081184C0 @ =0x0201903c + mov r8, r0 + adds r7, r5, 0 + adds r7, 0x8 + ldr r2, _081184C4 @ =0xfffffc00 + mov r12, r2 +_08118476: + adds r0, r4, 0 + adds r0, 0x1A + add r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0, r5 + adds r2, r3, 0 + adds r2, 0x40 + adds r0, r7 + ldr r0, [r0] + ldr r0, [r0] + adds r0, r6, r0 + ldrh r1, [r0, 0x8] + ldrh r2, [r2] + adds r1, r2 + ldr r2, _081184C8 @ =0x000003ff + adds r0, r2, 0 + ands r1, r0 + ldrh r2, [r3, 0x4] + mov r0, r12 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _08118476 +_081184B2: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081184BC: .4byte gSprites +_081184C0: .4byte 0x0201903c +_081184C4: .4byte 0xfffffc00 +_081184C8: .4byte 0x000003ff + thumb_func_end sub_81182F8 + + thumb_func_start sub_81184CC +sub_81184CC: @ 81184CC + ldr r1, _081184D4 @ =0x02019000 + ldrh r1, [r1, 0x26] + strh r1, [r0, 0x24] + bx lr + .align 2, 0 +_081184D4: .4byte 0x02019000 + thumb_func_end sub_81184CC + + thumb_func_start sub_81184D8 +sub_81184D8: @ 81184D8 + push {r4,r5,lr} + sub sp, 0x8 + ldr r4, _08118544 @ =gUnknown_083FA42C + ldr r0, [r4] + ldr r5, _08118548 @ =0x02000000 + adds r1, r5, 0 + bl LZ77UnCompWram + str r5, [sp] + ldrh r1, [r4, 0x6] + lsls r1, 16 + ldrh r0, [r4, 0x4] + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + ldr r0, _0811854C @ =gSpriteTemplate_83FA434 + movs r1, 0x74 + movs r2, 0x50 + movs r3, 0x51 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08118550 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0xC8 + lsls r0, 9 + adds r5, r0 + ldrh r0, [r5, 0x24] + movs r2, 0 + strh r0, [r1, 0x2E] + strh r2, [r1, 0x30] + adds r3, r1, 0 + adds r3, 0x2C + ldrb r0, [r3] + movs r2, 0x40 + orrs r0, r2 + movs r2, 0x80 + orrs r0, r2 + strb r0, [r3] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r1] + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08118544: .4byte gUnknown_083FA42C +_08118548: .4byte 0x02000000 +_0811854C: .4byte gSpriteTemplate_83FA434 +_08118550: .4byte gSprites + thumb_func_end sub_81184D8 + + thumb_func_start sub_8118554 +sub_8118554: @ 8118554 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + ldr r1, _08118574 @ =gOamMatrices + lsls r0, 3 + adds r0, r1 + ldr r2, _08118578 @ =0x02019000 + ldrh r1, [r2, 0x2C] + strh r1, [r0, 0x6] + ldrh r1, [r2, 0x2C] + strh r1, [r0] + ldrh r1, [r2, 0x2E] + strh r1, [r0, 0x2] + ldrh r1, [r2, 0x30] + strh r1, [r0, 0x4] + bx lr + .align 2, 0 +_08118574: .4byte gOamMatrices +_08118578: .4byte 0x02019000 + thumb_func_end sub_8118554 + + thumb_func_start sub_811857C +sub_811857C: @ 811857C + push {r4-r6,lr} + movs r4, 0 + ldr r6, _081185DC @ =0x0201903c + ldr r5, _081185E0 @ =gSprites +_08118584: + movs r3, 0x39 + subs r3, r4 + lsls r3, 24 + lsrs r3, 24 + ldr r0, _081185E4 @ =gSpriteTemplate_83FA40C + movs r1, 0x74 + movs r2, 0x50 + bl CreateSprite + adds r3, r4, r6 + strb r0, [r3] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _081185CA + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] +_081185CA: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _08118584 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081185DC: .4byte 0x0201903c +_081185E0: .4byte gSprites +_081185E4: .4byte gSpriteTemplate_83FA40C + thumb_func_end sub_811857C + + thumb_func_start sub_81185E8 +sub_81185E8: @ 81185E8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _08118660 @ =0x02019000 + adds r0, 0x3C + ldrb r5, [r0] + movs r6, 0 + ldr r7, _08118664 @ =gSprites + movs r0, 0x1C + adds r0, r7 + mov r10, r0 + movs r1, 0x2E + adds r1, r7 + mov r9, r1 + mov r8, r6 +_0811860A: + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + adds r0, r4, r7 + adds r3, r0, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r3] + mov r1, r10 + adds r2, r4, r1 + ldr r1, _08118668 @ =SpriteCallbackDummy + str r1, [r2] + movs r1, 0 + bl StartSpriteAnim + movs r1, 0 + adds r2, r5, 0x1 + adds r3, r6, 0x1 +_08118632: + lsls r0, r1, 1 + adds r0, r4 + add r0, r9 + mov r5, r8 + strh r5, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x7 + bls _08118632 + lsls r0, r2, 24 + lsrs r5, r0, 24 + lsls r0, r3, 24 + lsrs r6, r0, 24 + cmp r6, 0x5 + bls _0811860A + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08118660: .4byte 0x02019000 +_08118664: .4byte gSprites +_08118668: .4byte SpriteCallbackDummy + thumb_func_end sub_81185E8 + + thumb_func_start sub_811866C +sub_811866C: @ 811866C + push {r4,r5,lr} + adds r3, r0, 0 + ldr r0, _0811869C @ =0x02019000 + ldrh r4, [r0, 0x24] + movs r2, 0x24 + ldrsh r1, [r0, r2] + ldrh r2, [r3, 0x34] + movs r5, 0x34 + ldrsh r0, [r3, r5] + cmp r1, r0 + ble _081186A8 + movs r1, 0xB4 + lsls r1, 1 + adds r0, r2, r1 + subs r2, r0, r4 + strh r2, [r3, 0x3A] + lsls r1, r2, 16 + ldr r0, _081186A0 @ =0x01670000 + cmp r1, r0 + ble _081186AC + ldr r5, _081186A4 @ =0xfffffe98 + adds r0, r2, r5 + b _081186AA + .align 2, 0 +_0811869C: .4byte 0x02019000 +_081186A0: .4byte 0x01670000 +_081186A4: .4byte 0xfffffe98 +_081186A8: + subs r0, r2, r4 +_081186AA: + strh r0, [r3, 0x3A] +_081186AC: + movs r1, 0x3A + ldrsh r0, [r3, r1] + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_811866C + + thumb_func_start sub_81186B8 +sub_81186B8: @ 81186B8 + push {r4,lr} + bl sub_811866C + ldr r4, _081186E0 @ =0x02019000 + lsls r0, 16 + asrs r0, 16 + bl __floatsisf + ldr r1, _081186E4 @ =0x41f00000 + bl __divsf3 + bl __fixunssfsi + adds r4, 0x7E + strb r0, [r4] + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081186E0: .4byte 0x02019000 +_081186E4: .4byte 0x41f00000 + thumb_func_end sub_81186B8 + + thumb_func_start sub_81186E8 +sub_81186E8: @ 81186E8 + push {r4,lr} + adds r4, r0, 0 + bl sub_811866C + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1E + bl __modsi3 + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0xE + bne _08118708 + movs r0, 0 + strh r0, [r4, 0x32] + b _0811871E +_08118708: + cmp r1, 0xD + bgt _08118710 + movs r0, 0xE + b _08118712 +_08118710: + movs r0, 0x2B +_08118712: + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 +_0811871E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81186E8 + + thumb_func_start sub_8118724 +sub_8118724: @ 8118724 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldr r5, _08118770 @ =0x02019000 + adds r4, r5, 0 + adds r4, 0x8C + adds r1, r5, 0 + adds r1, 0x90 + ldr r0, [r4] + ldr r1, [r1] + bl __addsf3 + adds r1, r0, 0 + str r1, [r4] + movs r0, 0x88 + adds r0, r5 + mov r8, r0 + ldr r0, [r0] + bl __addsf3 + adds r4, r0, 0 + mov r1, r8 + str r4, [r1] + ldr r7, _08118774 @ =0x43b40000 + adds r1, r7, 0 + bl __gesf2 + cmp r0, 0 + blt _08118778 + adds r0, r4, 0 + adds r1, r7, 0 + bl __subsf3 + mov r2, r8 + str r0, [r2] + b _08118790 + .align 2, 0 +_08118770: .4byte 0x02019000 +_08118774: .4byte 0x43b40000 +_08118778: + ldr r1, _08118824 @ =0x00000000 + adds r0, r4, 0 + bl __ltsf2 + cmp r0, 0 + bge _08118790 + adds r0, r4, 0 + adds r1, r7, 0 + bl __addsf3 + mov r1, r8 + str r0, [r1] +_08118790: + adds r0, r5, 0 + adds r0, 0x88 + ldr r0, [r0] + bl __fixsfsi + strh r0, [r6, 0x34] + adds r4, r5, 0 + adds r4, 0x98 + adds r1, r5, 0 + adds r1, 0x9C + ldr r0, [r4] + ldr r1, [r1] + bl __addsf3 + adds r1, r0, 0 + str r1, [r4] + subs r4, 0x4 + ldr r0, [r4] + bl __addsf3 + str r0, [r4] + bl __fixsfsi + strh r0, [r6, 0x36] + ldrh r0, [r6, 0x34] + bl Sin2 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrh r0, [r6, 0x34] + bl Cos2 + lsls r4, 16 + asrs r4, 16 + movs r2, 0x36 + ldrsh r1, [r6, r2] + muls r1, r4 + asrs r1, 12 + strh r1, [r6, 0x24] + lsls r0, 16 + asrs r0, 16 + negs r0, r0 + movs r2, 0x36 + ldrsh r1, [r6, r2] + muls r0, r1 + asrs r0, 12 + strh r0, [r6, 0x26] + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _08118818 + ldr r0, _08118828 @ =gMPlay_SE1 + ldr r4, _0811882C @ =0x0000ffff + ldrh r2, [r6, 0x24] + lsls r2, 24 + asrs r2, 24 + adds r1, r4, 0 + bl m4aMPlayPanpotControl + ldr r0, _08118830 @ =gMPlay_SE2 + ldrh r2, [r6, 0x24] + lsls r2, 24 + asrs r2, 24 + adds r1, r4, 0 + bl m4aMPlayPanpotControl +_08118818: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08118824: .4byte 0x00000000 +_08118828: .4byte gMPlay_SE1 +_0811882C: .4byte 0x0000ffff +_08118830: .4byte gMPlay_SE2 + thumb_func_end sub_8118724 + + thumb_func_start sub_8118834 +sub_8118834: @ 8118834 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r1, _0811888C @ =0x02019000 + ldrh r0, [r5, 0x3A] + ldrh r1, [r1, 0x24] + adds r2, r0, r1 + strh r2, [r5, 0x34] + lsls r1, r2, 16 + ldr r0, _08118890 @ =0x01670000 + cmp r1, r0 + ble _08118850 + ldr r1, _08118894 @ =0xfffffe98 + adds r0, r2, r1 + strh r0, [r5, 0x34] +_08118850: + ldrh r0, [r5, 0x34] + bl Sin2 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrh r0, [r5, 0x34] + bl Cos2 + lsls r4, 16 + asrs r4, 16 + movs r2, 0x36 + ldrsh r1, [r5, r2] + muls r1, r4 + asrs r1, 12 + strh r1, [r5, 0x24] + lsls r0, 16 + asrs r0, 16 + negs r0, r0 + movs r2, 0x36 + ldrsh r1, [r5, r2] + muls r0, r1 + ldr r1, _08118898 @ =gSpriteCoordOffsetY + asrs r0, 12 + ldrh r1, [r1] + adds r0, r1 + strh r0, [r5, 0x26] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811888C: .4byte 0x02019000 +_08118890: .4byte 0x01670000 +_08118894: .4byte 0xfffffe98 +_08118898: .4byte gSpriteCoordOffsetY + thumb_func_end sub_8118834 + + thumb_func_start sub_811889C +sub_811889C: @ 811889C + push {r4-r6,lr} + adds r5, r0, 0 + bl sub_8118724 + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x36] + adds r0, 0x84 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xD4 + bls _081188C2 + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + b _081188CE +_081188C2: + adds r2, r5, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 +_081188CE: + strb r0, [r2] + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0x1D + ble _0811898E + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _08118908 + ldr r6, _08118900 @ =0x02019000 + adds r4, r6, 0 + adds r4, 0x94 + adds r0, r6, 0 + adds r0, 0xA0 + ldr r0, [r0] + ldr r1, _08118904 @ =0x40000000 + bl __subsf3 + adds r1, r0, 0 + ldr r0, [r4] + bl __lesf2 + cmp r0, 0 + bgt _0811898E + b _08118926 + .align 2, 0 +_08118900: .4byte 0x02019000 +_08118904: .4byte 0x40000000 +_08118908: + ldr r6, _08118994 @ =0x02019000 + adds r4, r6, 0 + adds r4, 0x94 + adds r0, r6, 0 + adds r0, 0xA0 + ldr r0, [r0] + ldr r1, _08118998 @ =0x40000000 + bl __subsf3 + adds r1, r0, 0 + ldr r0, [r4] + bl __gesf2 + cmp r0, 0 + blt _0811898E +_08118926: + adds r1, r6, 0 + adds r1, 0x7D + movs r0, 0xFF + strb r0, [r1] + ldrb r1, [r6, 0x3] + movs r0, 0x7F + ands r0, r1 + strb r0, [r6, 0x3] + adds r0, r5, 0 + adds r0, 0x2B + ldrb r1, [r0] + adds r1, 0x3 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim + adds r0, r5, 0 + bl sub_81186B8 + movs r0, 0x1E + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_811866C + movs r1, 0x3A + ldrsh r0, [r5, r1] + movs r1, 0x1E + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 1 + adds r1, 0xF + strh r1, [r5, 0x3A] + ldr r0, _0811899C @ =sub_8118834 + str r0, [r5, 0x1C] + movs r0, 0x47 + bl m4aSongNumStartOrChange + adds r2, r6, 0 + adds r2, 0x9C + adds r1, r6, 0 + adds r1, 0x98 + ldr r0, _081189A0 @ =0x00000000 + str r0, [r1] + str r0, [r2] + subs r1, 0xC + ldr r0, _081189A4 @ =0xbf800000 + str r0, [r1] +_0811898E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08118994: .4byte 0x02019000 +_08118998: .4byte 0x40000000 +_0811899C: .4byte sub_8118834 +_081189A0: .4byte 0x00000000 +_081189A4: .4byte 0xbf800000 + thumb_func_end sub_811889C + + thumb_func_start sub_81189A8 +sub_81189A8: @ 81189A8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r7, r0, 0 + bl sub_8118724 + movs r1, 0x34 + ldrsh r0, [r7, r1] + cmp r0, 0 + beq _081189C6 + cmp r0, 0xB4 + beq _08118A2C + b _08118B0C +_081189C6: + movs r1, 0x2E + ldrsh r0, [r7, r1] + cmp r0, 0x1 + bne _081189D0 + b _08118B0C +_081189D0: + movs r1, 0x3C + ldrsh r0, [r7, r1] + bl __floatsisf + mov r8, r0 + ldr r0, _08118A24 @ =gUnknown_083F8DF4 + mov r9, r0 + ldr r1, _08118A28 @ =0x02019000 + mov r10, r1 + ldrb r4, [r1, 0x4] + lsls r4, 30 + lsrs r0, r4, 25 + add r0, r9 + ldrb r0, [r0, 0x1] + bl __floatsisf + adds r1, r0, 0 + mov r0, r8 + bl __mulsf3 + adds r6, r0, 0 + lsrs r0, r4, 25 + add r0, r9 + ldrb r0, [r0, 0x2] + subs r0, 0x1 + bl __floatsisf + adds r1, r0, 0 + adds r0, r6, 0 + bl __addsf3 + adds r5, r0, 0 + lsrs r4, 25 + add r4, r9 + ldrh r0, [r4, 0xC] + bl __floatsisf + adds r1, r0, 0 + mov r0, r8 + bl __divsf3 + b _08118A8A + .align 2, 0 +_08118A24: .4byte gUnknown_083F8DF4 +_08118A28: .4byte 0x02019000 +_08118A2C: + movs r1, 0x2E + ldrsh r0, [r7, r1] + cmp r0, 0 + beq _08118B0C + movs r1, 0x3C + ldrsh r0, [r7, r1] + bl __floatsisf + mov r8, r0 + ldr r0, _08118B1C @ =gUnknown_083F8DF4 + mov r9, r0 + ldr r1, _08118B20 @ =0x02019000 + mov r10, r1 + ldrb r4, [r1, 0x4] + lsls r4, 30 + lsrs r0, r4, 25 + add r0, r9 + ldrb r0, [r0, 0x1] + bl __floatsisf + adds r1, r0, 0 + mov r0, r8 + bl __mulsf3 + adds r6, r0, 0 + lsrs r0, r4, 25 + add r0, r9 + ldrb r0, [r0, 0x2] + subs r0, 0x1 + bl __floatsisf + adds r1, r0, 0 + adds r0, r6, 0 + bl __addsf3 + adds r5, r0, 0 + lsrs r4, 25 + add r4, r9 + ldrh r0, [r4, 0xC] + bl __floatsisf + adds r1, r0, 0 + mov r0, r8 + bl __divsf3 + bl __negsf2 +_08118A8A: + adds r2, r0, 0 + mov r6, r10 + adds r1, r6, 0 + adds r1, 0xA0 + adds r0, r6, 0 + adds r0, 0x94 + ldr r0, [r0] + str r0, [r1] + adds r0, r6, 0 + adds r0, 0x98 + str r2, [r0] + movs r0, 0x9C + adds r0, r6 + mov r8, r0 + adds r0, r2, 0 + adds r1, r2, 0 + bl __addsf3 + adds r1, r5, 0 + bl __divsf3 + adds r4, r0, 0 + adds r0, r5, 0 + adds r1, r5, 0 + bl __mulsf3 + adds r1, r0, 0 + ldr r0, _08118B24 @ =0x40000000 + bl __divsf3 + adds r1, r0, 0 + adds r0, r4, 0 + bl __addsf3 + bl __negsf2 + mov r1, r8 + str r0, [r1] + adds r1, r6, 0 + adds r1, 0x8C + ldr r0, _08118B28 @ =0x00000000 + str r0, [r1] + adds r2, r7, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r7, 0 + adds r0, 0x2A + movs r2, 0 + strb r2, [r0] + adds r3, r7, 0 + adds r3, 0x3F + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + ldr r0, _08118B2C @ =sub_811889C + str r0, [r7, 0x1C] + strh r2, [r7, 0x32] +_08118B0C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08118B1C: .4byte gUnknown_083F8DF4 +_08118B20: .4byte 0x02019000 +_08118B24: .4byte 0x40000000 +_08118B28: .4byte 0x00000000 +_08118B2C: .4byte sub_811889C + thumb_func_end sub_81189A8 + + thumb_func_start sub_8118B30 +sub_8118B30: @ 8118B30 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x32 + ldrsh r0, [r5, r1] + bl __floatsisf + adds r4, r0, 0 + ldr r1, _08118BCC @ =0x3d4ccccd + bl __mulsf3 + adds r1, r4, 0 + bl __mulsf3 + bl __fixsfsi + adds r1, r0, 0 + subs r1, 0x2D + strh r1, [r5, 0x26] + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1D + ble _08118BC6 + lsls r0, r1, 16 + cmp r0, 0 + blt _08118BC6 + ldr r4, _08118BD0 @ =0x02019000 + adds r1, r4, 0 + adds r1, 0x7D + movs r0, 0xFF + strb r0, [r1] + ldrb r1, [r4, 0x3] + movs r0, 0x7F + ands r0, r1 + strb r0, [r4, 0x3] + adds r0, r5, 0 + adds r0, 0x2B + ldrb r1, [r0] + adds r1, 0x3 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim + adds r0, r5, 0 + bl sub_81186B8 + movs r0, 0x1E + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_811866C + movs r1, 0x3A + ldrsh r0, [r5, r1] + movs r1, 0x1E + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 1 + adds r1, 0xF + strh r1, [r5, 0x3A] + ldr r0, _08118BD4 @ =sub_8118834 + str r0, [r5, 0x1C] + movs r0, 0x47 + bl m4aSongNumStartOrChange + ldrb r0, [r4, 0x3] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r4, 0x3] +_08118BC6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08118BCC: .4byte 0x3d4ccccd +_08118BD0: .4byte 0x02019000 +_08118BD4: .4byte sub_8118834 + thumb_func_end sub_8118B30 + + thumb_func_start sub_8118BD8 +sub_8118BD8: @ 8118BD8 + push {r4,lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x32] + adds r1, r0, 0x1 + strh r1, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2C + bgt _08118C1C + ldrh r4, [r3, 0x26] + subs r0, r4, 0x1 + strh r0, [r3, 0x26] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x2D + bne _08118CA2 + ldr r2, _08118C14 @ =gSprites + ldr r0, _08118C18 @ =0x02019000 + adds r0, 0x73 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x2B + ldrb r0, [r0] + cmp r0, 0x1 + bne _08118CA2 + strh r4, [r3, 0x26] + b _08118CA2 + .align 2, 0 +_08118C14: .4byte gSprites +_08118C18: .4byte 0x02019000 +_08118C1C: + lsls r0, r1, 16 + asrs r0, 16 + movs r2, 0x3C + ldrsh r1, [r3, r2] + cmp r0, r1 + bge _08118C68 + ldr r2, _08118C58 @ =gSprites + ldr r0, _08118C5C @ =0x02019000 + adds r0, 0x73 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x2C + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bne _08118CA2 + adds r0, r1, 0 + adds r0, 0x2B + ldrb r0, [r0] + cmp r0, 0x1 + bne _08118C60 + ldrh r0, [r3, 0x26] + adds r0, 0x1 + strh r0, [r3, 0x26] + b _08118CA2 + .align 2, 0 +_08118C58: .4byte gSprites +_08118C5C: .4byte 0x02019000 +_08118C60: + ldrh r0, [r3, 0x26] + subs r0, 0x1 + strh r0, [r3, 0x26] + b _08118CA2 +_08118C68: + adds r2, r3, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r1, r3, 0 + adds r1, 0x2A + movs r2, 0 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0x3F + adds r0, r3 + mov r12, r0 + ldrb r0, [r0] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + mov r1, r12 + strb r0, [r1] + strh r2, [r3, 0x32] + ldr r0, _08118CA8 @ =sub_8118B30 + str r0, [r3, 0x1C] + movs r0, 0x3D + bl m4aSongNumStart +_08118CA2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08118CA8: .4byte sub_8118B30 + thumb_func_end sub_8118BD8 + + thumb_func_start sub_8118CAC +sub_8118CAC: @ 8118CAC + push {r4,lr} + adds r4, r0, 0 + bl sub_8118724 + movs r0, 0x34 + ldrsh r1, [r4, r0] + cmp r1, 0x5A + beq _08118CC6 + movs r0, 0x87 + lsls r0, 1 + cmp r1, r0 + beq _08118CD0 + b _08118CE0 +_08118CC6: + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08118CE0 + b _08118CD8 +_08118CD0: + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _08118CE0 +_08118CD8: + ldr r0, _08118CE8 @ =sub_8118BD8 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x32] +_08118CE0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08118CE8: .4byte sub_8118BD8 + thumb_func_end sub_8118CAC + + thumb_func_start sub_8118CEC +sub_8118CEC: @ 8118CEC + push {r4,lr} + adds r4, r0, 0 + bl sub_8118724 + ldr r0, _08118D10 @ =0x02019000 + ldrb r0, [r0, 0x3] + lsls r0, 27 + lsrs r0, 27 + cmp r0, 0 + beq _08118D04 + cmp r0, 0x1 + beq _08118D18 +_08118D04: + adds r0, r4, 0 + bl sub_8119224 + ldr r0, _08118D14 @ =sub_81189A8 + b _08118D20 + .align 2, 0 +_08118D10: .4byte 0x02019000 +_08118D14: .4byte sub_81189A8 +_08118D18: + adds r0, r4, 0 + bl sub_81193D4 + ldr r0, _08118D28 @ =sub_8118CAC +_08118D20: + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08118D28: .4byte sub_8118CAC + thumb_func_end sub_8118CEC + + thumb_func_start prev_quest_read_x24_hm_usage +prev_quest_read_x24_hm_usage: @ 8118D2C + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_8118724 + ldrh r0, [r5, 0x32] + subs r0, 0x1 + strh r0, [r5, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + bne _08118D50 + ldr r4, _08118DB8 @ =0x02019000 + adds r4, 0x98 + ldr r0, [r4] + ldr r1, _08118DBC @ =0xbf800000 + bl __mulsf3 + str r0, [r4] +_08118D50: + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _08118DDC + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _08118DC4 + ldr r1, _08118DB8 @ =0x02019000 + adds r2, r1, 0 + adds r2, 0x7D + movs r0, 0xFF + strb r0, [r2] + ldrb r2, [r1, 0x3] + movs r0, 0x7F + ands r0, r2 + strb r0, [r1, 0x3] + adds r0, r5, 0 + adds r0, 0x2B + ldrb r1, [r0] + adds r1, 0x3 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim + adds r0, r5, 0 + bl sub_81186B8 + movs r0, 0x1E + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_811866C + movs r1, 0x3A + ldrsh r0, [r5, r1] + movs r1, 0x1E + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 1 + adds r1, 0xF + strh r1, [r5, 0x3A] + ldr r0, _08118DC0 @ =sub_8118834 + str r0, [r5, 0x1C] + movs r0, 0x47 + bl m4aSongNumStartOrChange + b _08118DDC + .align 2, 0 +_08118DB8: .4byte 0x02019000 +_08118DBC: .4byte 0xbf800000 +_08118DC0: .4byte sub_8118834 +_08118DC4: + adds r0, r5, 0 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + movs r0, 0x38 + bl m4aSongNumStart + adds r0, r5, 0 + bl sub_811952C +_08118DDC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end prev_quest_read_x24_hm_usage + + thumb_func_start sub_8118DE4 +sub_8118DE4: @ 8118DE4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + bl sub_8118724 + movs r0, 0 + strh r0, [r7, 0x32] + adds r0, r7, 0 + bl sub_81186B8 + ldr r1, _08118E70 @ =gUnknown_083F8D90 + ldr r6, _08118E74 @ =0x02019000 + movs r0, 0x7E + adds r0, r6 + mov r8, r0 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r0, [r0] + ldr r1, [r6, 0x8] + ands r0, r1 + cmp r0, 0 + bne _08118E7C + adds r1, r6, 0 + adds r1, 0x7D + movs r0, 0xFF + strb r0, [r1] + ldrb r1, [r6, 0x3] + movs r0, 0x7F + ands r0, r1 + strb r0, [r6, 0x3] + adds r0, r7, 0 + adds r0, 0x2B + ldrb r1, [r0] + adds r1, 0x3 + lsls r1, 24 + lsrs r1, 24 + adds r0, r7, 0 + bl StartSpriteAnim + adds r0, r7, 0 + bl sub_81186B8 + movs r0, 0x1E + strh r0, [r7, 0x36] + adds r0, r7, 0 + bl sub_811866C + movs r1, 0x3A + ldrsh r0, [r7, r1] + movs r1, 0x1E + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 1 + adds r1, 0xF + strh r1, [r7, 0x3A] + ldr r0, _08118E78 @ =sub_8118834 + str r0, [r7, 0x1C] + movs r0, 0x47 + bl m4aSongNumStartOrChange + b _08118F74 + .align 2, 0 +_08118E70: .4byte gUnknown_083F8D90 +_08118E74: .4byte 0x02019000 +_08118E78: .4byte sub_8118834 +_08118E7C: + movs r0, 0x38 + bl m4aSongNumStart + bl Random + movs r2, 0x1 + mov r9, r2 + mov r1, r9 + ands r1, r0 + mov r9, r1 + cmp r1, 0 + beq _08118EC0 + adds r1, r6, 0 + adds r1, 0x8C + ldr r0, _08118EB8 @ =0x00000000 + str r0, [r1] + mov r2, r8 + ldrb r0, [r2] + adds r0, 0x1 + movs r1, 0xC + bl __modsi3 + lsls r1, r0, 24 + lsrs r2, r1, 24 + adds r1, r6, 0 + adds r1, 0x7F + strb r0, [r1] + ldr r5, _08118EBC @ =gUnknown_083F8DF4 + b _08118EF4 + .align 2, 0 +_08118EB8: .4byte 0x00000000 +_08118EBC: .4byte gUnknown_083F8DF4 +_08118EC0: + adds r4, r6, 0 + adds r4, 0x8C + ldr r5, _08118F1C @ =gUnknown_083F8DF4 + ldrb r0, [r6, 0x4] + lsls r0, 30 + lsrs r0, 25 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + adds r0, r1, 0 + bl __addsf3 + str r0, [r4] + mov r0, r8 + ldrb r4, [r0] + adds r0, r4, 0 + adds r0, 0xB + movs r1, 0xC + bl __modsi3 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r6, 0 + adds r0, 0x7F + strb r4, [r0] +_08118EF4: + ldr r0, _08118F20 @ =gUnknown_083F8D90 + lsls r1, r2, 3 + adds r0, 0x4 + adds r1, r0 + ldr r2, _08118F24 @ =0x02019000 + ldr r1, [r1] + ldr r0, [r2, 0x8] + ands r1, r0 + cmp r1, 0 + beq _08118F28 + movs r0, 0x1 + strh r0, [r7, 0x2E] + ldrb r0, [r2, 0x4] + lsls r0, 30 + lsrs r0, 25 + adds r0, r5 + ldrb r0, [r0, 0x2] + strh r0, [r7, 0x32] + b _08118F64 + .align 2, 0 +_08118F1C: .4byte gUnknown_083F8DF4 +_08118F20: .4byte gUnknown_083F8D90 +_08118F24: .4byte 0x02019000 +_08118F28: + strh r1, [r7, 0x2E] + ldrb r1, [r2, 0x4] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08118F40 + lsls r0, r1, 30 + lsrs r0, 25 + adds r0, r5 + ldrb r0, [r0, 0x1] + strh r0, [r7, 0x32] + b _08118F64 +_08118F40: + lsls r0, r1, 30 + lsrs r0, 25 + adds r0, r5 + ldrb r0, [r0, 0x2] + strh r0, [r7, 0x32] + mov r1, r9 + cmp r1, 0 + beq _08118F5C + adds r1, r2, 0 + adds r1, 0x8C + ldr r0, _08118F58 @ =0x3f000000 + b _08118F62 + .align 2, 0 +_08118F58: .4byte 0x3f000000 +_08118F5C: + adds r1, r2, 0 + adds r1, 0x8C + ldr r0, _08118F80 @ =0xbfc00000 +_08118F62: + str r0, [r1] +_08118F64: + adds r1, r2, 0 + adds r1, 0x98 + ldr r0, _08118F84 @ =0x3dae147b + str r0, [r1] + ldr r0, _08118F88 @ =prev_quest_read_x24_hm_usage + str r0, [r7, 0x1C] + movs r0, 0x5 + strh r0, [r7, 0x30] +_08118F74: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08118F80: .4byte 0xbfc00000 +_08118F84: .4byte 0x3dae147b +_08118F88: .4byte prev_quest_read_x24_hm_usage + thumb_func_end sub_8118DE4 + + thumb_func_start sub_8118F8C +sub_8118F8C: @ 8118F8C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + bl sub_8118724 + ldr r5, _08119018 @ =0x02019000 + movs r0, 0x8C + adds r0, r5 + mov r8, r0 + ldr r0, [r0] + ldr r1, _0811901C @ =0x3f000000 + bl __gtsf2 + cmp r0, 0 + bgt _0811906E + adds r0, r6, 0 + bl sub_81186B8 + adds r0, r6, 0 + bl sub_81186E8 + lsls r0, 16 + cmp r0, 0 + bne _08119030 + adds r1, r5, 0 + adds r1, 0x90 + ldr r0, _08119020 @ =0x00000000 + str r0, [r1] + ldr r1, _08119024 @ =gUnknown_083F8DF4 + mov r9, r1 + ldrb r0, [r5, 0x4] + lsls r7, r0, 30 + lsrs r0, r7, 25 + add r0, r9 + movs r4, 0x3 + ldrsb r4, [r0, r4] + adds r0, r4, 0 + bl __floatsisf + adds r5, r0, 0 + cmp r4, 0 + bge _08118FEC + ldr r1, _08119028 @ =0x43800000 + bl __addsf3 + adds r5, r0, 0 +_08118FEC: + lsrs r0, r7, 25 + add r0, r9 + ldrb r0, [r0, 0x4] + adds r0, 0x1 + bl __floatsisf + adds r1, r0, 0 + adds r0, r5, 0 + bl __divsf3 + adds r1, r0, 0 + mov r2, r8 + ldr r0, [r2] + bl __subsf3 + mov r1, r8 + str r0, [r1] + movs r0, 0x4 + strh r0, [r6, 0x30] + ldr r0, _0811902C @ =sub_8118DE4 + str r0, [r6, 0x1C] + b _0811906E + .align 2, 0 +_08119018: .4byte 0x02019000 +_0811901C: .4byte 0x3f000000 +_08119020: .4byte 0x00000000 +_08119024: .4byte gUnknown_083F8DF4 +_08119028: .4byte 0x43800000 +_0811902C: .4byte sub_8118DE4 +_08119030: + adds r6, r5, 0 + adds r6, 0x90 + ldr r0, [r6] + ldr r4, _0811907C @ =0x00000000 + adds r1, r4, 0 + bl __nesf2 + cmp r0, 0 + beq _0811906E + mov r2, r8 + ldr r0, [r2] + adds r1, r4, 0 + bl __ltsf2 + cmp r0, 0 + bge _0811906E + str r4, [r6] + mov r0, r8 + str r4, [r0] + adds r4, r5, 0 + adds r4, 0x98 + ldr r0, [r4] + bl __extendsfdf2 + ldr r2, _08119080 @ =0x3ff33333 + ldr r3, _08119084 @ =0x33333333 + bl __divdf3 + bl __truncdfsf2 + str r0, [r4] +_0811906E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811907C: .4byte 0x00000000 +_08119080: .4byte 0x3ff33333 +_08119084: .4byte 0x33333333 + thumb_func_end sub_8118F8C + + thumb_func_start sub_8119088 +sub_8119088: @ 8119088 + push {r4-r7,lr} + adds r6, r0, 0 + bl sub_8118724 + ldr r5, _08119120 @ =0x02019000 + adds r0, r5, 0 + adds r0, 0x94 + ldr r0, [r0] + ldr r1, _08119124 @ =0x42200000 + bl __gtsf2 + cmp r0, 0 + bgt _0811911A + adds r7, r5, 0 + adds r7, 0x98 + adds r0, r5, 0 + adds r0, 0x86 + movs r1, 0 + ldrsh r4, [r0, r1] + adds r0, r4, 0 + bl __floatsisf + adds r2, r0, 0 + cmp r4, 0 + bge _081190C2 + ldr r1, _08119128 @ =0x47800000 + bl __addsf3 + adds r2, r0, 0 +_081190C2: + ldr r0, _0811912C @ =0x40800000 + adds r1, r2, 0 + bl __divsf3 + bl __negsf2 + str r0, [r7] + adds r7, r5, 0 + adds r7, 0x90 + adds r5, 0x8C + adds r0, r4, 0 + bl __floatsisf + adds r2, r0, 0 + cmp r4, 0 + bge _081190EA + ldr r1, _08119128 @ =0x47800000 + bl __addsf3 + adds r2, r0, 0 +_081190EA: + ldr r0, [r5] + adds r1, r2, 0 + bl __divsf3 + bl __negsf2 + str r0, [r7] + adds r1, r6, 0 + adds r1, 0x2A + movs r0, 0x2 + strb r0, [r1] + adds r2, r6, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r2] + movs r0, 0x3 + strh r0, [r6, 0x30] + ldr r0, _08119130 @ =sub_8118F8C + str r0, [r6, 0x1C] +_0811911A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08119120: .4byte 0x02019000 +_08119124: .4byte 0x42200000 +_08119128: .4byte 0x47800000 +_0811912C: .4byte 0x40800000 +_08119130: .4byte sub_8118F8C + thumb_func_end sub_8119088 + + thumb_func_start sub_8119134 +sub_8119134: @ 8119134 + push {r4-r7,lr} + adds r6, r0, 0 + bl sub_8118724 + ldr r4, _081191DC @ =0x02019000 + adds r0, r4, 0 + adds r0, 0x94 + ldr r0, [r0] + ldr r1, _081191E0 @ =0x42700000 + bl __gtsf2 + cmp r0, 0 + bgt _081191D4 + movs r0, 0x5D + bl m4aSongNumStartOrChange + adds r7, r4, 0 + adds r7, 0x98 + adds r0, r4, 0 + adds r0, 0x84 + movs r1, 0 + ldrsh r5, [r0, r1] + adds r0, r5, 0 + bl __floatsisf + adds r2, r0, 0 + cmp r5, 0 + bge _08119174 + ldr r1, _081191E4 @ =0x47800000 + bl __addsf3 + adds r2, r0, 0 +_08119174: + ldr r0, _081191E8 @ =0x41a00000 + adds r1, r2, 0 + bl __divsf3 + bl __negsf2 + str r0, [r7] + adds r7, r4, 0 + adds r7, 0x90 + adds r0, r4, 0 + adds r0, 0x8C + ldr r1, [r0] + ldr r0, _081191EC @ =0x3f800000 + bl __subsf3 + adds r4, r0, 0 + adds r0, r5, 0 + bl __floatsisf + adds r2, r0, 0 + cmp r5, 0 + bge _081191A8 + ldr r1, _081191E4 @ =0x47800000 + bl __addsf3 + adds r2, r0, 0 +_081191A8: + adds r0, r4, 0 + adds r1, r2, 0 + bl __divsf3 + str r0, [r7] + adds r1, r6, 0 + adds r1, 0x2A + movs r0, 0x1 + strb r0, [r1] + adds r2, r6, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r2] + movs r0, 0x2 + strh r0, [r6, 0x30] + ldr r0, _081191F0 @ =sub_8119088 + str r0, [r6, 0x1C] +_081191D4: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081191DC: .4byte 0x02019000 +_081191E0: .4byte 0x42700000 +_081191E4: .4byte 0x47800000 +_081191E8: .4byte 0x41a00000 +_081191EC: .4byte 0x3f800000 +_081191F0: .4byte sub_8119088 + thumb_func_end sub_8119134 + + thumb_func_start sub_81191F4 +sub_81191F4: @ 81191F4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + movs r0, 0x1 + strh r0, [r4, 0x30] + strh r1, [r4, 0x32] + adds r0, r4, 0 + bl sub_8118724 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r0, _08119220 @ =sub_8119134 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08119220: .4byte sub_8119134 + thumb_func_end sub_81191F4 + + thumb_func_start sub_8119224 +sub_8119224: @ 8119224 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r7, r0, 0 + ldr r1, _081193B8 @ =gUnknown_083FA60E + mov r0, sp + movs r2, 0x8 + bl memcpy + ldrh r0, [r7, 0x3C] + subs r0, 0x2 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + ldr r5, _081193BC @ =0x02019000 + ldr r0, _081193C0 @ =gSpriteTemplate_83FA50C + movs r2, 0xC + negs r2, r2 + movs r1, 0x24 + movs r3, 0x32 + bl CreateSprite + adds r1, r5, 0 + adds r1, 0x73 + strb r0, [r1] + ldr r4, _081193C4 @ =gSpriteTemplate_83FA5C0 + movs r0, 0x2E + ldrsh r2, [r7, r0] + lsls r2, 2 + mov r1, sp + adds r0, r1, r2 + movs r3, 0 + ldrsh r1, [r0, r3] + mov r0, sp + adds r0, 0x2 + adds r0, r2 + movs r3, 0 + ldrsh r2, [r0, r3] + adds r0, r4, 0 + movs r3, 0x3B + bl CreateSprite + adds r1, r5, 0 + adds r1, 0x74 + strb r0, [r1] + adds r4, 0x18 + adds r0, r4, 0 + movs r1, 0x24 + movs r2, 0x8C + movs r3, 0x33 + bl CreateSprite + adds r1, r5, 0 + adds r1, 0x75 + strb r0, [r1] + ldr r3, _081193C8 @ =gSprites + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r2, [r0, 0x1] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x1] + movs r6, 0 + adds r4, r3, 0 + mov r12, r5 + ldr r0, _081193CC @ =gUnknown_083F8DF4 + mov r8, r0 + mov r10, r12 +_081192BE: + mov r1, r12 + adds r3, r1, r6 + adds r3, 0x73 + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x3 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r1, r12 + adds r1, 0x73 + ldrb r1, [r1] + strh r1, [r0, 0x36] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r5, r12 + adds r5, 0x74 + ldrb r1, [r5] + strh r1, [r0, 0x38] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r1, r12 + adds r1, 0x75 + ldrb r1, [r1] + strh r1, [r0, 0x3A] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r1, r9 + strh r1, [r0, 0x32] + ldrb r0, [r3] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + movs r0, 0x3C + ldrsh r3, [r7, r0] + mov r0, r12 + ldrb r1, [r0, 0x4] + lsls r1, 30 + lsrs r0, r1, 25 + add r0, r8 + ldrb r0, [r0, 0x1] + muls r3, r0 + lsrs r1, 25 + add r1, r8 + ldrb r0, [r1, 0x2] + ldr r1, _081193D0 @ =0x0000ffff + adds r0, r1 + adds r3, r0 + strh r3, [r2, 0x34] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, _081193C8 @ =gSprites + cmp r6, 0x2 + bls _081192BE + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] + mov r3, r10 + str r7, [r3, 0x38] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081193B8: .4byte gUnknown_083FA60E +_081193BC: .4byte 0x02019000 +_081193C0: .4byte gSpriteTemplate_83FA50C +_081193C4: .4byte gSpriteTemplate_83FA5C0 +_081193C8: .4byte gSprites +_081193CC: .4byte gUnknown_083F8DF4 +_081193D0: .4byte 0x0000ffff + thumb_func_end sub_8119224 + + thumb_func_start sub_81193D4 +sub_81193D4: @ 81193D4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + adds r7, r0, 0 + movs r0, 0 + mov r8, r0 + ldr r1, _08119514 @ =gUnknown_083FA616 + mov r0, sp + movs r2, 0x8 + bl memcpy + ldrh r0, [r7, 0x3C] + subs r0, 0x2 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + ldr r0, _08119518 @ =gSpriteTemplate_83FA524 + movs r1, 0x2E + ldrsh r2, [r7, r1] + lsls r2, 2 + mov r3, sp + adds r1, r3, r2 + movs r3, 0 + ldrsh r1, [r1, r3] + mov r4, sp + adds r4, 0x2 + adds r2, r4, r2 + movs r3, 0 + ldrsh r2, [r2, r3] + movs r3, 0x32 + bl CreateSprite + ldr r6, _0811951C @ =0x02019000 + adds r1, r6, 0 + adds r1, 0x73 + strb r0, [r1] + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _08119520 @ =gSprites + adds r0, r5 + ldrh r1, [r7, 0x2E] + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + ldr r0, _08119524 @ =gSpriteTemplate_83FA5F0 + movs r1, 0x2E + ldrsh r2, [r7, r1] + lsls r2, 2 + mov r3, sp + adds r1, r3, r2 + movs r3, 0 + ldrsh r1, [r1, r3] + adds r4, r2 + movs r3, 0 + ldrsh r2, [r4, r3] + movs r3, 0x33 + bl CreateSprite + adds r4, r6, 0 + adds r4, 0x74 + strb r0, [r4] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + mov r0, r9 + lsls r2, r0, 16 + asrs r2, 16 + ldr r3, _08119528 @ =gUnknown_083F8DF4 + ldrb r1, [r6, 0x4] + lsls r1, 30 + lsrs r0, r1, 25 + adds r0, r3 + ldrb r0, [r0, 0x1] + muls r2, r0 + lsrs r1, 25 + adds r1, r3 + ldrh r0, [r1, 0x10] + adds r0, 0x2D + adds r2, r0 + strh r2, [r7, 0x3C] + adds r3, r6, 0 +_081194A2: + mov r1, r8 + adds r2, r6, r1 + adds r2, 0x73 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r1, r6, 0 + adds r1, 0x73 + ldrb r1, [r1] + strh r1, [r0, 0x36] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x38] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x3A] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r9 + strh r1, [r0, 0x32] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrh r0, [r7, 0x3C] + subs r0, 0x2D + strh r0, [r1, 0x34] + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x1 + bls _081194A2 + str r7, [r3, 0x38] + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08119514: .4byte gUnknown_083FA616 +_08119518: .4byte gSpriteTemplate_83FA524 +_0811951C: .4byte 0x02019000 +_08119520: .4byte gSprites +_08119524: .4byte gSpriteTemplate_83FA5F0 +_08119528: .4byte gUnknown_083F8DF4 + thumb_func_end sub_81193D4 + + thumb_func_start sub_811952C +sub_811952C: @ 811952C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + mov r8, r0 + movs r0, 0 + mov r10, r0 + movs r1, 0x5 + mov r9, r1 + movs r2, 0 + str r2, [sp, 0xC] + mov r0, sp + movs r1, 0 + movs r2, 0xA + bl memset + bl Random + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x10] + ldr r7, _08119610 @ =0x02019000 + adds r0, r7, 0 + adds r0, 0x7D + movs r6, 0x1 + strb r6, [r0] + ldrb r4, [r7, 0x3] + movs r0, 0x20 + orrs r4, r0 + movs r0, 0x41 + negs r0, r0 + ands r4, r0 + strb r4, [r7, 0x3] + adds r1, r7, 0 + adds r1, 0x7E + movs r0, 0xFF + strb r0, [r1] + adds r5, r7, 0 + adds r5, 0x88 + mov r3, r8 + movs r1, 0x34 + ldrsh r0, [r3, r1] + bl __floatsisf + str r0, [r5] + adds r1, r7, 0 + adds r1, 0x98 + ldr r0, _08119614 @ =0x00000000 + str r0, [r1] + adds r3, r7, 0 + adds r3, 0x8C + ldr r2, _08119618 @ =gUnknown_083F8DF4 + ldrb r0, [r7, 0x4] + lsls r0, 30 + lsrs r1, r0, 25 + adds r2, 0x1C + adds r1, r2 + ldr r1, [r1] + str r1, [r3] + lsrs r0, 30 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 1 + adds r1, 0x21 + lsls r4, 27 + lsrs r4, 27 + subs r6, r4 + lsls r0, r6, 4 + subs r0, r6 + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + mov r5, r10 + mov r3, r8 + movs r0, 0x34 + ldrsh r2, [r3, r0] +_081195C8: + cmp r1, r2 + bge _081195D4 + adds r0, r1, 0 + adds r0, 0x5A + cmp r2, r0 + ble _08119638 +_081195D4: + cmp r5, 0x3 + beq _0811961C + adds r0, r1, 0 + adds r0, 0x5A + lsls r0, 16 + lsrs r1, r0, 16 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _081195C8 +_081195EA: + ldr r0, _08119610 @ =0x02019000 + ldrb r1, [r0, 0x3] + movs r0, 0x1F + ands r0, r1 + cmp r0, 0 + beq _08119664 + mov r1, r8 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _08119658 + movs r0, 0x98 + lsls r0, 1 + movs r1, 0x3F + negs r1, r1 + bl PlayCry1 + b _08119670 + .align 2, 0 +_08119610: .4byte 0x02019000 +_08119614: .4byte 0x00000000 +_08119618: .4byte gUnknown_083F8DF4 +_0811961C: + movs r0, 0x1 + mov r3, r8 + strh r0, [r3, 0x2E] + ldr r2, _08119634 @ =0x02019000 + ldrb r1, [r2, 0x3] + subs r0, 0x21 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x3] + b _081195EA + .align 2, 0 +_08119634: .4byte 0x02019000 +_08119638: + lsrs r0, r5, 1 + mov r1, r8 + strh r0, [r1, 0x2E] + ldr r3, _08119654 @ =0x02019000 + movs r1, 0x1 + ands r1, r5 + ldrb r2, [r3, 0x3] + movs r0, 0x20 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x3] + b _081195EA + .align 2, 0 +_08119654: .4byte 0x02019000 +_08119658: + movs r0, 0x98 + lsls r0, 1 + movs r1, 0x3F + bl PlayCry1 + b _08119670 +_08119664: + movs r0, 0x99 + lsls r0, 1 + movs r1, 0x3F + negs r1, r1 + bl PlayCry1 +_08119670: + movs r5, 0x2 + ldr r4, _081196A0 @ =0x02019000 + adds r0, r4, 0 + adds r0, 0x7F + ldrb r0, [r0] + adds r0, 0x2 + movs r1, 0xC + bl __modsi3 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r1, [r4, 0x3] + movs r0, 0x1F + ands r0, r1 + cmp r0, 0x1 + bne _081196A4 + ldrb r1, [r4, 0x4] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + bne _081196A4 + mov r0, r9 + adds r0, 0x6 + b _081196A8 + .align 2, 0 +_081196A0: .4byte 0x02019000 +_081196A4: + mov r2, r9 + adds r0, r2, r5 +_081196A8: + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + cmp r5, r9 + bcs _0811970E + ldr r6, _08119734 @ =0x02019000 + ldr r7, _08119738 @ =gUnknown_083F8C0C +_081196B6: + lsls r0, r3, 3 + ldr r1, _0811973C @ =gUnknown_083F8D94 + adds r0, r1 + ldr r1, [r6, 0x8] + ldr r2, [r0] + ands r1, r2 + cmp r1, 0 + bne _081196F8 + mov r0, r10 + adds r1, r0, 0x1 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + add r0, sp + strb r5, [r0] + ldr r0, [sp, 0xC] + cmp r0, 0 + bne _081196F8 + ldrb r0, [r6, 0x1A] + lsls r0, 28 + lsrs r0, 28 + ldr r1, _08119740 @ =0x0201901b + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r0, [r0] + ands r2, r0 + cmp r2, 0 + beq _081196F8 + str r5, [sp, 0xC] +_081196F8: + adds r0, r3, 0x1 + movs r1, 0xC + bl __modsi3 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r9 + bcc _081196B6 +_0811970E: + ldrb r0, [r4, 0x3] + lsls r0, 27 + lsrs r0, 27 + adds r0, 0x1 + ldrb r1, [r4, 0x2] + ands r0, r1 + cmp r0, 0 + beq _08119756 + ldr r2, [sp, 0xC] + cmp r2, 0 + beq _08119744 + movs r0, 0xFF + ldr r3, [sp, 0x10] + ands r0, r3 + cmp r0, 0xBF + bhi _08119744 + mov r0, r8 + strh r2, [r0, 0x3C] + b _08119766 + .align 2, 0 +_08119734: .4byte 0x02019000 +_08119738: .4byte gUnknown_083F8C0C +_0811973C: .4byte gUnknown_083F8D94 +_08119740: .4byte 0x0201901b +_08119744: + ldr r0, [sp, 0x10] + mov r1, r10 + bl __modsi3 + add r0, sp + ldrb r0, [r0] + mov r1, r8 + strh r0, [r1, 0x3C] + b _08119766 +_08119756: + ldr r0, [sp, 0x10] + mov r1, r10 + bl __modsi3 + add r0, sp + ldrb r0, [r0] + mov r2, r8 + strh r0, [r2, 0x3C] +_08119766: + ldr r3, _0811977C @ =sub_8118CEC + mov r0, r8 + str r3, [r0, 0x1C] + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811977C: .4byte sub_8118CEC + thumb_func_end sub_811952C + + thumb_func_start sub_8119780 +sub_8119780: @ 8119780 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + adds r1, r0, 0x1 + strh r1, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x34 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _081197CA + ldrh r0, [r2, 0x20] + subs r0, 0x2 + strh r0, [r2, 0x20] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bge _081197CA + ldr r4, _081197D0 @ =0x02019000 + ldrb r1, [r4, 0x3] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _081197BA + movs r0, 0x40 + orrs r0, r1 + strb r0, [r4, 0x3] +_081197BA: + adds r0, r2, 0 + bl DestroySprite + movs r0, 0 + strb r0, [r4, 0x1] + ldr r0, _081197D4 @ =gUnknown_083FA61E + ldrh r0, [r0] + strh r0, [r4, 0x34] +_081197CA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081197D0: .4byte 0x02019000 +_081197D4: .4byte gUnknown_083FA61E + thumb_func_end sub_8119780 + + thumb_func_start sub_81197D8 +sub_81197D8: @ 81197D8 + push {r4,lr} + sub sp, 0x18 + adds r4, r0, 0 + ldr r1, _08119854 @ =gUnknown_083FA632 + mov r0, sp + movs r2, 0x18 + bl memcpy + ldrh r0, [r4, 0x30] + adds r2, r0, 0x1 + strh r2, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x34 + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _0811985C + movs r0, 0x1 + ands r2, r0 + cmp r2, 0 + beq _08119836 + ldr r3, _08119858 @ =gSpriteCoordOffsetY + movs r0, 0x3C + ldrsh r2, [r4, r0] + lsls r2, 1 + movs r1, 0x32 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + lsls r0, 3 + adds r2, r0 + mov r1, sp + adds r0, r1, r2 + ldrh r0, [r0] + strh r0, [r3] + movs r3, 0x3C + ldrsh r2, [r4, r3] + adds r1, r2, 0x1 + adds r0, r1, 0 + cmp r1, 0 + bge _0811982E + adds r0, r2, 0x4 +_0811982E: + asrs r0, 2 + lsls r0, 2 + subs r0, r1, r0 + strh r0, [r4, 0x3C] +_08119836: + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _08119884 + .align 2, 0 +_08119854: .4byte gUnknown_083FA632 +_08119858: .4byte gSpriteCoordOffsetY +_0811985C: + ldr r1, _0811988C @ =gSpriteCoordOffsetY + movs r0, 0 + strh r0, [r1] + ldr r2, _08119890 @ =gSprites + ldr r0, _08119894 @ =0x02019000 + adds r0, 0x73 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x2C + ldrb r2, [r0] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + adds r0, r4, 0 + bl DestroySprite +_08119884: + add sp, 0x18 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811988C: .4byte gSpriteCoordOffsetY +_08119890: .4byte gSprites +_08119894: .4byte 0x02019000 + thumb_func_end sub_81197D8 + + thumb_func_start sub_8119898 +sub_8119898: @ 8119898 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x30] + adds r0, 0x1 + strh r0, [r5, 0x30] + movs r1, 0x30 + ldrsh r0, [r5, r1] + bl __floatsisf + adds r4, r0, 0 + ldr r1, _08119948 @ =0x3d1fbe77 + bl __mulsf3 + adds r1, r4, 0 + bl __mulsf3 + bl __fixsfsi + strh r0, [r5, 0x26] + ldr r3, _0811994C @ =0x02019000 + ldr r2, _08119950 @ =gUnknown_083FA61E + ldrb r0, [r3, 0x1] + subs r0, 0x1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r3, 0x34] + ldrb r0, [r3, 0x1] + cmp r0, 0x12 + bhi _081198DE + adds r0, 0x1 + strb r0, [r3, 0x1] +_081198DE: + movs r1, 0x30 + ldrsh r0, [r5, r1] + cmp r0, 0x3C + ble _08119940 + movs r0, 0 + strh r0, [r5, 0x30] + ldr r3, _08119954 @ =sub_8119780 + str r3, [r5, 0x1C] + ldr r2, _08119958 @ =gSprites + movs r0, 0x3A + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r2, 0 + adds r4, 0x1C + adds r0, r4 + str r3, [r0] + movs r0, 0x3A + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _0811995C @ =0x0000fffe + strh r1, [r0, 0x30] + movs r0, 0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + movs r0, 0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _08119960 @ =sub_81197D8 + str r1, [r0] + movs r0, 0xD6 + bl m4aSongNumStart +_08119940: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08119948: .4byte 0x3d1fbe77 +_0811994C: .4byte 0x02019000 +_08119950: .4byte gUnknown_083FA61E +_08119954: .4byte sub_8119780 +_08119958: .4byte gSprites +_0811995C: .4byte 0x0000fffe +_08119960: .4byte sub_81197D8 + thumb_func_end sub_8119898 + + thumb_func_start sub_8119964 +sub_8119964: @ 8119964 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081199E4 + ldr r3, _08119990 @ =0x02019000 + ldr r1, [r3, 0x38] + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _08119998 + movs r0, 0x34 + ldrsh r2, [r1, r0] + ldr r1, _08119994 @ =gUnknown_083F8DF4 + ldrb r0, [r3, 0x4] + lsls r0, 30 + lsrs r0, 25 + adds r0, r1 + ldrh r0, [r0, 0x8] + b _081199AA + .align 2, 0 +_08119990: .4byte 0x02019000 +_08119994: .4byte gUnknown_083F8DF4 +_08119998: + movs r0, 0x34 + ldrsh r2, [r1, r0] + ldr r1, _081199D8 @ =gUnknown_083F8DF4 + ldrb r0, [r3, 0x4] + lsls r0, 30 + lsrs r0, 25 + adds r0, r1 + ldrh r0, [r0, 0x8] + adds r0, 0xB4 +_081199AA: + cmp r2, r0 + bne _08119A78 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + movs r0, 0x2B + bl m4aSongNumStart + ldr r1, _081199DC @ =0x02019000 + movs r0, 0x1 + strb r0, [r1, 0x1] + ldr r0, _081199E0 @ =gUnknown_083FA61E + ldrh r0, [r0] + strh r0, [r1, 0x34] + b _08119A78 + .align 2, 0 +_081199D8: .4byte gUnknown_083F8DF4 +_081199DC: .4byte 0x02019000 +_081199E0: .4byte gUnknown_083FA61E +_081199E4: + ldr r3, _08119A20 @ =0x02019000 + ldr r2, _08119A24 @ =gUnknown_083FA61E + ldrb r0, [r3, 0x1] + subs r0, 0x1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r3, 0x34] + ldrb r0, [r3, 0x1] + cmp r0, 0x12 + bhi _08119A04 + adds r0, 0x1 + strb r0, [r3, 0x1] +_08119A04: + ldr r1, [r3, 0x38] + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _08119A2C + movs r0, 0x34 + ldrsh r2, [r1, r0] + ldr r1, _08119A28 @ =gUnknown_083F8DF4 + ldrb r0, [r3, 0x4] + lsls r0, 30 + lsrs r0, 25 + adds r0, r1 + ldrh r0, [r0, 0xA] + b _08119A3E + .align 2, 0 +_08119A20: .4byte 0x02019000 +_08119A24: .4byte gUnknown_083FA61E +_08119A28: .4byte gUnknown_083F8DF4 +_08119A2C: + movs r0, 0x34 + ldrsh r2, [r1, r0] + ldr r1, _08119A80 @ =gUnknown_083F8DF4 + ldrb r0, [r3, 0x4] + lsls r0, 30 + lsrs r0, 25 + adds r0, r1 + ldrh r0, [r0, 0xA] + adds r0, 0xB4 +_08119A3E: + cmp r2, r0 + bne _08119A78 + ldr r2, _08119A84 @ =gSprites + movs r0, 0x36 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r2, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _08119A88 @ =sub_8119898 + str r1, [r0] + movs r0, 0x36 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldr r0, _08119A8C @ =SpriteCallbackDummy + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x3C] +_08119A78: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08119A80: .4byte gUnknown_083F8DF4 +_08119A84: .4byte gSprites +_08119A88: .4byte sub_8119898 +_08119A8C: .4byte SpriteCallbackDummy + thumb_func_end sub_8119964 + + thumb_func_start sub_8119A90 +sub_8119A90: @ 8119A90 + adds r0, 0x3E + ldrb r3, [r0] + lsls r1, r3, 29 + lsrs r1, 31 + movs r2, 0x1 + eors r2, r1 + lsls r2, 2 + movs r1, 0x5 + negs r1, r1 + ands r1, r3 + orrs r1, r2 + strb r1, [r0] + bx lr + thumb_func_end sub_8119A90 + + thumb_func_start sub_8119AAC +sub_8119AAC: @ 8119AAC + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x22] + movs r0, 0x22 + ldrsh r1, [r4, r0] + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + ble _08119AC4 + subs r0, r2, 0x1 + strh r0, [r4, 0x22] + b _08119B12 +_08119AC4: + ldr r0, _08119B18 @ =SpriteCallbackDummy + str r0, [r4, 0x1C] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + subs r2, 0x12 + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x5E + bl m4aSongNumStop + adds r0, r4, 0 + bl DestroySprite + ldr r5, _08119B1C @ =gSprites + ldr r4, _08119B20 @ =0x02019000 + adds r4, 0x74 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite +_08119B12: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08119B18: .4byte SpriteCallbackDummy +_08119B1C: .4byte gSprites +_08119B20: .4byte 0x02019000 + thumb_func_end sub_8119AAC + + thumb_func_start sub_8119B24 +sub_8119B24: @ 8119B24 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0 + blt _08119B4E + subs r1, 0x1 + strh r1, [r4, 0x30] + ldrh r0, [r4, 0x22] + subs r0, 0x1 + strh r0, [r4, 0x22] + lsls r1, 16 + cmp r1, 0 + bne _08119BB8 + adds r0, r4, 0 + adds r0, 0x2B + ldrb r0, [r0] + cmp r0, 0x1 + bne _08119BB8 + b _08119B74 +_08119B4E: + ldrh r1, [r4, 0x34] + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r0, 0 + blt _08119B84 + subs r0, r1, 0x1 + strh r0, [r4, 0x34] + adds r0, r4, 0 + adds r0, 0x2C + ldrb r1, [r0] + movs r0, 0x3F + ands r0, r1 + cmp r0, 0 + bne _08119BB8 + adds r0, r4, 0 + adds r0, 0x2B + ldrb r0, [r0] + cmp r0, 0x1 + bne _08119B7C +_08119B74: + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] + b _08119BB8 +_08119B7C: + ldrh r0, [r4, 0x26] + subs r0, 0x1 + strh r0, [r4, 0x26] + b _08119BB8 +_08119B84: + movs r0, 0x2B + bl m4aSongNumStart + ldr r0, _08119BC0 @ =0x02019000 + ldr r0, [r0, 0x38] + ldrh r1, [r0, 0x2E] + adds r1, 0x4 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _08119BC4 @ =sub_8119AAC + str r0, [r4, 0x1C] + ldr r2, _08119BC8 @ =gSprites + movs r0, 0x3A + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x2C + ldrb r2, [r0] + movs r1, 0x7F + ands r1, r2 + strb r1, [r0] +_08119BB8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08119BC0: .4byte 0x02019000 +_08119BC4: .4byte sub_8119AAC +_08119BC8: .4byte gSprites + thumb_func_end sub_8119B24 + + thumb_func_start sub_8119BCC +sub_8119BCC: @ 8119BCC + push {r4,r5,lr} + sub sp, 0x14 + adds r4, r0, 0 + ldr r1, _08119C44 @ =gUnknown_083FA64A + mov r0, sp + movs r2, 0x2 + bl memcpy + add r5, sp, 0x4 + ldr r1, _08119C48 @ =gUnknown_083FA64C + adds r0, r5, 0 + movs r2, 0x10 + bl memcpy + ldrh r0, [r4, 0x30] + subs r1, r0, 0x1 + strh r1, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _08119C5C + ldr r0, _08119C4C @ =0x02019000 + ldr r0, [r0, 0x38] + movs r1, 0x2E + ldrsh r0, [r0, r1] + add r0, sp + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 1 + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _08119CF6 + movs r1, 0x20 + ldrsh r0, [r4, r1] + movs r4, 0x74 + subs r4, r0 + lsrs r0, r4, 31 + adds r4, r0 + asrs r4, 1 + negs r4, r4 + ldr r0, _08119C50 @ =gMPlay_SE1 + ldr r5, _08119C54 @ =0x0000ffff + lsls r4, 24 + asrs r4, 24 + adds r1, r5, 0 + adds r2, r4, 0 + bl m4aMPlayPanpotControl + ldr r0, _08119C58 @ =gMPlay_SE2 + adds r1, r5, 0 + adds r2, r4, 0 + bl m4aMPlayPanpotControl + b _08119CF6 + .align 2, 0 +_08119C44: .4byte gUnknown_083FA64A +_08119C48: .4byte gUnknown_083FA64C +_08119C4C: .4byte 0x02019000 +_08119C50: .4byte gMPlay_SE1 +_08119C54: .4byte 0x0000ffff +_08119C58: .4byte gMPlay_SE2 +_08119C5C: + lsls r0, r1, 16 + cmp r0, 0 + blt _08119CAC + ldr r0, _08119CA8 @ =0x02019000 + ldr r0, [r0, 0x38] + movs r2, 0x2E + ldrsh r0, [r0, r2] + add r0, sp + movs r2, 0 + ldrsb r2, [r0, r2] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x7 + subs r0, r1, r0 + lsls r0, 1 + adds r0, r5, r0 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + muls r0, r2 + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + movs r2, 0x30 + ldrsh r0, [r4, r2] + subs r1, r0 + lsls r1, 1 + mov r0, sp + adds r0, 0x5 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + b _08119CF6 + .align 2, 0 +_08119CA8: .4byte 0x02019000 +_08119CAC: + movs r0, 0x5E + bl m4aSongNumStartOrChange + ldr r0, _08119CCC @ =0x02019000 + ldr r0, [r0, 0x38] + movs r2, 0x2E + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _08119CD0 + movs r0, 0x98 + lsls r0, 1 + movs r1, 0x3F + bl PlayCry1 + b _08119CDC + .align 2, 0 +_08119CCC: .4byte 0x02019000 +_08119CD0: + movs r0, 0x98 + lsls r0, 1 + movs r1, 0x3F + negs r1, r1 + bl PlayCry1 +_08119CDC: + ldr r0, _08119D00 @ =0x02019000 + ldr r0, [r0, 0x38] + ldrh r1, [r0, 0x2E] + adds r1, 0x2 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + movs r0, 0x2D + strh r0, [r4, 0x30] + ldr r0, _08119D04 @ =sub_8119B24 + str r0, [r4, 0x1C] +_08119CF6: + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08119D00: .4byte 0x02019000 +_08119D04: .4byte sub_8119B24 + thumb_func_end sub_8119BCC + + thumb_func_start sub_8119D08 +sub_8119D08: @ 8119D08 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r1, _08119D64 @ =gUnknown_083FA64A + mov r0, sp + movs r2, 0x2 + bl memcpy + ldrh r0, [r4, 0x30] + subs r1, r0, 0x1 + strh r1, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + blt _08119D70 + ldr r0, _08119D68 @ =0x02019000 + ldr r0, [r0, 0x38] + movs r1, 0x2E + ldrsh r0, [r0, r1] + add r0, sp + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 1 + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldr r1, _08119D6C @ =gSprites + movs r2, 0x3A + ldrsh r0, [r4, r2] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + adds r2, 0x3E + ldrb r3, [r2] + lsls r0, r3, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + b _08119D74 + .align 2, 0 +_08119D64: .4byte gUnknown_083FA64A +_08119D68: .4byte 0x02019000 +_08119D6C: .4byte gSprites +_08119D70: + ldr r0, _08119D7C @ =sub_8119A90 + str r0, [r4, 0x1C] +_08119D74: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08119D7C: .4byte sub_8119A90 + thumb_func_end sub_8119D08 + + thumb_func_start sub_8119D80 +sub_8119D80: @ 8119D80 + push {r4,lr} + adds r4, r0, 0 + ldr r3, _08119DB8 @ =0x02019000 + ldr r1, [r3, 0x38] + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _08119DC4 + movs r0, 0x34 + ldrsh r2, [r1, r0] + ldr r1, _08119DBC @ =gUnknown_083F8DF4 + ldrb r0, [r3, 0x4] + lsls r0, 30 + lsrs r0, 25 + adds r0, r1 + ldrh r0, [r0, 0x12] + adds r0, 0x5A + cmp r2, r0 + bne _08119E26 + ldr r2, _08119DC0 @ =gSprites + movs r0, 0x3A + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r3, 0x34 + b _08119DEE + .align 2, 0 +_08119DB8: .4byte 0x02019000 +_08119DBC: .4byte gUnknown_083F8DF4 +_08119DC0: .4byte gSprites +_08119DC4: + movs r0, 0x34 + ldrsh r2, [r1, r0] + ldr r1, _08119E2C @ =gUnknown_083F8DF4 + ldrb r0, [r3, 0x4] + lsls r0, 30 + lsrs r0, 25 + adds r0, r1 + ldrh r0, [r0, 0x14] + movs r1, 0x87 + lsls r1, 1 + adds r0, r1 + cmp r2, r0 + bne _08119E26 + ldr r2, _08119E30 @ =gSprites + movs r0, 0x3A + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r3, 0x2E +_08119DEE: + strh r3, [r0, 0x30] + movs r0, 0x36 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x30] + movs r0, 0x3A + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _08119E34 @ =sub_8119D08 + str r1, [r0] + movs r0, 0x36 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _08119E38 @ =sub_8119BCC + str r1, [r0] + movs r0, 0x2B + bl m4aSongNumStart +_08119E26: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08119E2C: .4byte gUnknown_083F8DF4 +_08119E30: .4byte gSprites +_08119E34: .4byte sub_8119D08 +_08119E38: .4byte sub_8119BCC + thumb_func_end sub_8119D80 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/roulette_util.s b/asm/roulette_util.s new file mode 100644 index 000000000..569a42712 --- /dev/null +++ b/asm/roulette_util.s @@ -0,0 +1,780 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_8124918 +sub_8124918: @ 8124918 + push {lr} + movs r1, 0 + strb r1, [r0] + strh r1, [r0, 0x2] + adds r0, 0x4 + movs r2, 0xC0 + bl memset + pop {r0} + bx r0 + thumb_func_end sub_8124918 + + thumb_func_start sub_812492C +sub_812492C: @ 812492C + push {r4-r7,lr} + adds r3, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + cmp r6, 0xF + bhi _08124948 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r5, r3, r0 + ldrb r7, [r5, 0x4] + lsrs r0, r7, 7 + cmp r0, 0 + beq _0812494C +_08124948: + movs r0, 0xFF + b _081249AA +_0812494C: + ldrh r0, [r2] + movs r4, 0 + strh r0, [r5, 0x8] + ldrh r0, [r2, 0x2] + strh r0, [r5, 0xA] + ldrb r0, [r2, 0x4] + strb r0, [r5, 0xC] + ldrb r0, [r2, 0x5] + strb r0, [r5, 0xD] + ldrb r0, [r2, 0x6] + strb r0, [r5, 0xE] + ldrb r3, [r2, 0x7] + lsls r0, r3, 27 + lsrs r0, 27 + ldrb r2, [r5, 0xF] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + movs r0, 0x60 + ands r0, r3 + movs r2, 0x61 + negs r2, r2 + ands r1, r2 + orrs r1, r0 + lsls r3, 24 + asrs r3, 31 + lsls r3, 7 + movs r0, 0x7F + ands r1, r0 + orrs r1, r3 + strb r1, [r5, 0xF] + subs r0, 0xFF + ands r0, r7 + movs r2, 0x80 + orrs r0, r2 + strb r0, [r5, 0x4] + strb r4, [r5, 0x6] + strb r4, [r5, 0x5] + lsls r1, 24 + cmp r1, 0 + bge _081249A4 + movs r0, 0xFF + b _081249A6 +_081249A4: + movs r0, 0x1 +_081249A6: + strb r0, [r5, 0x7] + adds r0, r6, 0 +_081249AA: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_812492C + + thumb_func_start unref_sub_81249B0 +unref_sub_81249B0: @ 81249B0 + push {r4,lr} + adds r2, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r4, r1, 0 + cmp r4, 0xF + bhi _081249DC + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r1, r2, r0 + ldrb r0, [r1, 0x4] + lsrs r0, 7 + cmp r0, 0 + beq _081249DC + adds r0, r1, 0x4 + movs r1, 0 + movs r2, 0xC + bl memset + adds r0, r4, 0 + b _081249DE +_081249DC: + movs r0, 0xFF +_081249DE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end unref_sub_81249B0 + + thumb_func_start sub_81249E4 +sub_81249E4: @ 81249E4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r5, r0, 0 + movs r0, 0 + mov r12, r0 + ldrb r1, [r5, 0x8] + cmp r12, r1 + bcc _081249FC + b _08124B94 +_081249FC: + movs r7, 0x1F + ldr r0, _08124A2C @ =0xfffffc1f + mov r10, r0 + movs r1, 0x7D + negs r1, r1 + mov r9, r1 + movs r0, 0x1F + mov r8, r0 +_08124A0C: + ldrh r0, [r5, 0x6] + add r0, r12 + lsls r0, 1 + ldr r1, _08124A30 @ =gPlttBufferFaded + adds r3, r0, r1 + ldr r1, _08124A34 @ =gPlttBufferUnfaded + adds r6, r0, r1 + ldrb r0, [r5] + lsls r0, 25 + lsrs r0, 25 + cmp r0, 0x1 + beq _08124A38 + cmp r0, 0x2 + beq _08124A96 + b _08124B82 + .align 2, 0 +_08124A2C: .4byte 0xfffffc1f +_08124A30: .4byte gPlttBufferFaded +_08124A34: .4byte gPlttBufferUnfaded +_08124A38: + ldr r0, [r3] + lsls r2, r0, 27 + lsrs r0, r2, 27 + movs r1, 0x3 + ldrsb r1, [r5, r1] + adds r0, r1 + cmp r0, 0x1F + bhi _08124A5A + lsrs r0, r2, 27 + adds r0, r1 + ands r0, r7 + ldrb r2, [r3] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] +_08124A5A: + ldr r0, [r3] + lsls r2, r0, 22 + lsrs r0, r2, 27 + movs r1, 0x3 + ldrsb r1, [r5, r1] + adds r0, r1 + cmp r0, 0x1F + bhi _08124A7E + lsrs r0, r2, 27 + adds r0, r1 + mov r1, r8 + ands r0, r1 + lsls r0, 5 + ldrh r2, [r3] + mov r1, r10 + ands r1, r2 + orrs r1, r0 + strh r1, [r3] +_08124A7E: + ldr r0, [r3] + lsls r2, r0, 17 + lsrs r0, r2, 27 + movs r1, 0x3 + ldrsb r1, [r5, r1] + adds r0, r1 + cmp r0, 0x1F + bls _08124A90 + b _08124B82 +_08124A90: + lsrs r0, r2, 27 + adds r0, r1 + b _08124B74 +_08124A96: + movs r0, 0x3 + ldrsb r0, [r5, r0] + cmp r0, 0 + bge _08124B08 + ldr r0, [r3] + lsls r4, r0, 27 + lsrs r1, r4, 27 + movs r2, 0x3 + ldrsb r2, [r5, r2] + adds r1, r2 + ldr r0, [r6] + lsls r0, 27 + lsrs r0, 27 + cmp r1, r0 + blt _08124AC6 + lsrs r0, r4, 27 + adds r0, r2 + ands r0, r7 + ldrb r2, [r3] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] +_08124AC6: + ldr r0, [r3] + lsls r4, r0, 22 + lsrs r1, r4, 27 + movs r2, 0x3 + ldrsb r2, [r5, r2] + adds r1, r2 + ldr r0, [r6] + lsls r0, 22 + lsrs r0, 27 + cmp r1, r0 + blt _08124AF0 + lsrs r0, r4, 27 + adds r0, r2 + mov r1, r8 + ands r0, r1 + lsls r0, 5 + ldrh r2, [r3] + mov r1, r10 + ands r1, r2 + orrs r1, r0 + strh r1, [r3] +_08124AF0: + ldr r0, [r3] + lsls r4, r0, 17 + lsrs r1, r4, 27 + movs r2, 0x3 + ldrsb r2, [r5, r2] + adds r1, r2 + ldr r0, [r6] + lsls r0, 17 + lsrs r0, 27 + cmp r1, r0 + blt _08124B82 + b _08124B70 +_08124B08: + ldr r0, [r3] + lsls r4, r0, 27 + lsrs r1, r4, 27 + movs r2, 0x3 + ldrsb r2, [r5, r2] + adds r1, r2 + ldr r0, [r6] + lsls r0, 27 + lsrs r0, 27 + cmp r1, r0 + bgt _08124B30 + lsrs r0, r4, 27 + adds r0, r2 + ands r0, r7 + ldrb r2, [r3] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] +_08124B30: + ldr r0, [r3] + lsls r4, r0, 22 + lsrs r1, r4, 27 + movs r2, 0x3 + ldrsb r2, [r5, r2] + adds r1, r2 + ldr r0, [r6] + lsls r0, 22 + lsrs r0, 27 + cmp r1, r0 + bgt _08124B5A + lsrs r0, r4, 27 + adds r0, r2 + mov r1, r8 + ands r0, r1 + lsls r0, 5 + ldrh r2, [r3] + mov r1, r10 + ands r1, r2 + orrs r1, r0 + strh r1, [r3] +_08124B5A: + ldr r0, [r3] + lsls r4, r0, 17 + lsrs r1, r4, 27 + movs r2, 0x3 + ldrsb r2, [r5, r2] + adds r1, r2 + ldr r0, [r6] + lsls r0, 17 + lsrs r0, 27 + cmp r1, r0 + bgt _08124B82 +_08124B70: + lsrs r0, r4, 27 + adds r0, r2 +_08124B74: + ands r0, r7 + lsls r0, 2 + ldrb r2, [r3, 0x1] + mov r1, r9 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x1] +_08124B82: + mov r0, r12 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + ldrb r0, [r5, 0x8] + cmp r12, r0 + bcs _08124B94 + b _08124A0C +_08124B94: + ldrb r1, [r5, 0x2] + adds r0, r1, 0x1 + strb r0, [r5, 0x2] + ldrb r0, [r5, 0xB] + lsls r0, 27 + lsls r1, 24 + asrs r0, 3 + cmp r1, r0 + beq _08124BAA + movs r0, 0 + b _08124BDE +_08124BAA: + movs r0, 0 + strb r0, [r5, 0x2] + movs r0, 0x3 + ldrsb r0, [r5, r0] + negs r0, r0 + strb r0, [r5, 0x3] + ldrb r2, [r5] + movs r1, 0x7F + movs r0, 0x7F + ands r0, r2 + cmp r0, 0x1 + bne _08124BCA + lsls r0, r2, 25 + lsrs r0, 25 + adds r0, 0x1 + b _08124BD0 +_08124BCA: + lsls r0, r2, 25 + lsrs r0, 25 + subs r0, 0x1 +_08124BD0: + ands r0, r1 + movs r1, 0x80 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r5] + movs r0, 0x1 +_08124BDE: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81249E4 + + thumb_func_start sub_8124BEC +sub_8124BEC: @ 8124BEC + push {r4,r5,lr} + adds r3, r0, 0 + movs r2, 0 + ldrb r0, [r3] + lsls r0, 25 + lsrs r0, 25 + cmp r0, 0x1 + beq _08124C02 + cmp r0, 0x2 + beq _08124C30 + b _08124C6A +_08124C02: + ldrb r0, [r3, 0x8] + cmp r2, r0 + bcs _08124C22 + ldr r4, _08124C2C @ =gPlttBufferFaded +_08124C0A: + ldrh r0, [r3, 0x6] + adds r0, r2 + lsls r0, 1 + adds r0, r4 + ldrh r1, [r3, 0x4] + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r3, 0x8] + cmp r2, r0 + bcc _08124C0A +_08124C22: + ldrb r2, [r3] + lsls r1, r2, 25 + lsrs r1, 25 + adds r1, 0x1 + b _08124C5C + .align 2, 0 +_08124C2C: .4byte gPlttBufferFaded +_08124C30: + ldrb r0, [r3, 0x8] + cmp r2, r0 + bcs _08124C54 + ldr r5, _08124C74 @ =gPlttBufferFaded + ldr r4, _08124C78 @ =gPlttBufferUnfaded +_08124C3A: + ldrh r0, [r3, 0x6] + adds r0, r2 + lsls r0, 1 + adds r1, r0, r5 + adds r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r3, 0x8] + cmp r2, r0 + bcc _08124C3A +_08124C54: + ldrb r2, [r3] + lsls r1, r2, 25 + lsrs r1, 25 + subs r1, 0x1 +_08124C5C: + movs r0, 0x7F + ands r1, r0 + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08124C6A: + movs r0, 0x1 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08124C74: .4byte gPlttBufferFaded +_08124C78: .4byte gPlttBufferUnfaded + thumb_func_end sub_8124BEC + + thumb_func_start task_tutorial_controls_fadein +task_tutorial_controls_fadein: @ 8124C7C + push {r4-r6,lr} + adds r4, r0, 0 + movs r5, 0 + ldrb r0, [r4] + cmp r0, 0 + beq _08124CE0 +_08124C88: + ldrh r0, [r4, 0x2] + asrs r0, r5 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08124CD6 + lsls r1, r5, 1 + adds r0, r1, r5 + lsls r3, r0, 2 + adds r2, r4, r3 + ldrb r0, [r2, 0x5] + subs r0, 0x1 + strb r0, [r2, 0x5] + lsls r0, 24 + lsrs r0, 24 + adds r6, r1, 0 + cmp r0, 0xFF + bne _08124CD6 + ldrh r0, [r2, 0x8] + movs r2, 0x80 + lsls r2, 8 + adds r1, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _08124CC4 + adds r0, r3, 0x4 + adds r0, r4, r0 + bl sub_81249E4 + b _08124CCC +_08124CC4: + adds r0, r3, 0x4 + adds r0, r4, r0 + bl sub_8124BEC +_08124CCC: + adds r0, r6, r5 + lsls r0, 2 + adds r0, r4, r0 + ldrb r1, [r0, 0xD] + strb r1, [r0, 0x5] +_08124CD6: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xF + bls _08124C88 +_08124CE0: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end task_tutorial_controls_fadein + + thumb_func_start sub_8124CE8 +sub_8124CE8: @ 8124CE8 + push {r4-r7,lr} + adds r3, r0, 0 + lsls r1, 16 + lsrs r6, r1, 16 + movs r4, 0 + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + movs r5, 0x1 + movs r7, 0x80 + negs r7, r7 +_08124CFE: + adds r0, r6, 0 + asrs r0, r4 + ands r0, r5 + cmp r0, 0 + beq _08124D2C + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r2, r3, r0 + ldrb r0, [r2, 0x4] + lsrs r0, 7 + cmp r0, 0 + beq _08124D2C + adds r0, r5, 0 + lsls r0, r4 + ldrh r1, [r3, 0x2] + orrs r0, r1 + strh r0, [r3, 0x2] + ldrb r1, [r2, 0x4] + adds r0, r7, 0 + ands r0, r1 + orrs r0, r5 + strb r0, [r2, 0x4] +_08124D2C: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bls _08124CFE + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8124CE8 + + thumb_func_start sub_8124D3C +sub_8124D3C: @ 8124D3C + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + lsls r1, 16 + lsrs r7, r1, 16 + movs r5, 0 + movs r3, 0x1 +_08124D4A: + ldrh r0, [r6, 0x2] + asrs r0, r5 + ands r0, r3 + cmp r0, 0 + beq _08124DB2 + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + adds r4, r6, r0 + ldrb r0, [r4, 0x4] + lsrs r0, 7 + cmp r0, 0 + beq _08124DB2 + adds r0, r7, 0 + asrs r0, r5 + ands r0, r3 + cmp r0, 0 + beq _08124DB2 + ldrh r1, [r4, 0xA] + lsls r1, 1 + ldr r0, _08124DA8 @ =gPlttBufferFaded + adds r0, r1, r0 + ldr r2, _08124DAC @ =gPlttBufferUnfaded + adds r1, r2 + ldrb r2, [r4, 0xC] + lsls r2, 1 + str r3, [sp] + bl memcpy + ldrb r0, [r4, 0x4] + movs r2, 0x80 + negs r2, r2 + adds r1, r2, 0 + ands r0, r1 + strb r0, [r4, 0x4] + movs r0, 0 + strb r0, [r4, 0x6] + strb r0, [r4, 0x5] + ldrb r0, [r4, 0xF] + lsls r0, 24 + ldr r3, [sp] + cmp r0, 0 + bge _08124DB0 + movs r0, 0xFF + strb r0, [r4, 0x7] + b _08124DB2 + .align 2, 0 +_08124DA8: .4byte gPlttBufferFaded +_08124DAC: .4byte gPlttBufferUnfaded +_08124DB0: + strb r3, [r4, 0x7] +_08124DB2: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xF + bls _08124D4A + ldr r0, _08124DC8 @ =0x0000ffff + cmp r7, r0 + bne _08124DCC + movs r0, 0 + strb r0, [r6] + b _08124DD0 + .align 2, 0 +_08124DC8: .4byte 0x0000ffff +_08124DCC: + ldrh r0, [r6, 0x2] + bics r0, r7 +_08124DD0: + strh r0, [r6, 0x2] + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8124D3C + + thumb_func_start sub_8124DDC +sub_8124DDC: @ 8124DDC + push {r4-r7,lr} + adds r6, r0, 0 + ldr r0, [sp, 0x14] + ldr r4, [sp, 0x18] + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + movs r1, 0 + lsrs r3, 19 + adds r3, r2 + lsls r3, 1 + adds r6, r3 + cmp r1, r4 + bcs _08124E26 +_08124E04: + lsls r0, r1, 6 + adds r2, r6, r0 + movs r0, 0 + adds r3, r1, 0x1 + cmp r0, r5 + bcs _08124E1E +_08124E10: + strh r7, [r2] + adds r2, 0x2 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, r5 + bcc _08124E10 +_08124E1E: + lsls r0, r3, 24 + lsrs r1, r0, 24 + cmp r1, r4 + bcc _08124E04 +_08124E26: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8124DDC + + thumb_func_start sub_8124E2C +sub_8124E2C: @ 8124E2C + push {r4-r7,lr} + adds r7, r0, 0 + ldr r0, [sp, 0x14] + ldr r4, [sp, 0x18] + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r6, r4, 24 + movs r4, 0 + lsrs r3, 19 + adds r3, r2 + lsls r3, 1 + adds r7, r3 + cmp r4, r6 + bcs _08124E76 +_08124E50: + lsls r0, r4, 6 + adds r2, r7, r0 + movs r3, 0 + adds r4, 0x1 + cmp r3, r5 + bcs _08124E6E +_08124E5C: + ldrh r0, [r1] + strh r0, [r2] + adds r1, 0x2 + adds r2, 0x2 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r5 + bcc _08124E5C +_08124E6E: + lsls r0, r4, 24 + lsrs r4, r0, 24 + cmp r4, r6 + bcc _08124E50 +_08124E76: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8124E2C + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/unused_8124F94.s b/asm/unused_8124F94.s new file mode 100644 index 000000000..56b90ca23 --- /dev/null +++ b/asm/unused_8124F94.s @@ -0,0 +1,285 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start unref_sub_8124F94 +unref_sub_8124F94: @ 8124F94 + sub sp, 0x4 + movs r3, 0 + strb r3, [r0, 0x1] + strb r3, [r0] + strh r3, [r0, 0x2] + movs r1, 0xC0 + lsls r1, 19 + str r1, [r0, 0x4] + mov r1, sp + strh r3, [r1] + ldr r2, _08124FCC @ =0x040000d4 + str r1, [r2] + adds r1, r0, 0 + adds r1, 0x8 + str r1, [r2, 0x4] + ldr r1, _08124FD0 @ =0x81000040 + str r1, [r2, 0x8] + ldr r1, [r2, 0x8] + mov r1, sp + strh r3, [r1] + str r1, [r2] + adds r0, 0x88 + str r0, [r2, 0x4] + ldr r0, _08124FD4 @ =0x810000c0 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + add sp, 0x4 + bx lr + .align 2, 0 +_08124FCC: .4byte 0x040000d4 +_08124FD0: .4byte 0x81000040 +_08124FD4: .4byte 0x810000c0 + thumb_func_end unref_sub_8124F94 + + thumb_func_start unref_sub_8124FD8 +unref_sub_8124FD8: @ 8124FD8 + push {r4-r7,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldr r7, _08124FE4 @ =0x040000d4 + b _0812508A + .align 2, 0 +_08124FE4: .4byte 0x040000d4 +_08124FE8: + ldrb r0, [r4, 0x1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r0, r4, 0 + adds r0, 0x88 + adds r0, r1 + str r3, [r0] + ldrb r1, [r4, 0x1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4, r0 + ldrb r1, [r5, 0x6] + adds r0, 0x8E + strb r1, [r0] + ldrb r1, [r4, 0x1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4, r0 + ldrb r1, [r5, 0x4] + adds r0, 0x8C + strb r1, [r0] + ldrb r1, [r4, 0x1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4, r0 + ldrb r1, [r5, 0x5] + adds r0, 0x8D + strb r1, [r0] + ldrb r1, [r5, 0x4] + ldrb r0, [r5, 0x5] + adds r6, r1, 0 + muls r6, r0 + ldrh r2, [r4, 0x2] + adds r1, r2, r6 + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + ble _08125040 + movs r0, 0x2 + b _0812509C +_08125040: + ldrh r0, [r5, 0x8] + cmp r0, 0 + bne _08125060 + str r3, [r7] + ldrh r1, [r4, 0x2] + lsls r1, 6 + ldr r0, [r4, 0x4] + adds r0, r1 + str r0, [r7, 0x4] + lsls r0, r6, 4 + movs r1, 0x80 + lsls r1, 24 + orrs r0, r1 + str r0, [r7, 0x8] + ldr r0, [r7, 0x8] + b _0812506C +_08125060: + lsls r0, r2, 6 + ldr r1, [r4, 0x4] + adds r1, r0 + adds r0, r3, 0 + bl sub_800D238 +_0812506C: + ldrb r1, [r4, 0x1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4, r0 + ldrh r1, [r4, 0x2] + adds r0, 0x90 + strh r1, [r0] + ldrh r0, [r4, 0x2] + adds r0, r6, r0 + strh r0, [r4, 0x2] + ldrb r0, [r4, 0x1] + adds r0, 0x1 + strb r0, [r4, 0x1] + adds r5, 0xC +_0812508A: + ldrb r0, [r4, 0x1] + cmp r0, 0x1F + bhi _0812509A + ldr r3, [r5] + cmp r3, 0 + bne _08124FE8 + movs r0, 0 + b _0812509C +_0812509A: + movs r0, 0x1 +_0812509C: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end unref_sub_8124FD8 + + thumb_func_start unref_sub_81250A4 +unref_sub_81250A4: @ 81250A4 + push {r4,r5,lr} + sub sp, 0x20 + adds r4, r0, 0 + adds r5, r1, 0 + b _081250FC +_081250AE: + ldrb r1, [r4] + lsls r1, 3 + adds r0, r4, 0 + adds r0, 0x8 + adds r0, r1 + str r2, [r0] + ldrb r0, [r4] + lsls r0, 3 + adds r0, r4, r0 + ldrb r1, [r5, 0x4] + strb r1, [r0, 0xC] + ldrb r0, [r5, 0x5] + cmp r0, 0 + bne _081250D8 + ldrb r1, [r4] + lsls r1, 4 + adds r0, r2, 0 + movs r2, 0x20 + bl LoadPalette + b _081250EC +_081250D8: + adds r0, r2, 0 + mov r1, sp + bl sub_800D238 + ldrb r1, [r4] + lsls r1, 4 + mov r0, sp + movs r2, 0x20 + bl LoadPalette +_081250EC: + ldrb r0, [r4] + lsls r1, r0, 3 + adds r1, r4, r1 + strb r0, [r1, 0xD] + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + adds r5, 0x8 +_081250FC: + ldrb r0, [r4] + cmp r0, 0xF + bhi _0812510C + ldr r2, [r5] + cmp r2, 0 + bne _081250AE + movs r0, 0 + b _0812510E +_0812510C: + movs r0, 0x1 +_0812510E: + add sp, 0x20 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end unref_sub_81250A4 + + thumb_func_start unref_sub_8125118 +unref_sub_8125118: @ 8125118 + push {r4-r7,lr} + ldr r4, _0812514C @ =0xfffffe00 + add sp, r4 + adds r5, r0, 0 + adds r6, r1, 0 + movs r2, 0x80 + lsls r2, 2 + mov r0, sp + movs r1, 0 + bl memset + ldrb r7, [r6, 0x5] + ldr r0, [r6] + mov r1, sp + bl sub_800D238 + ldrb r4, [r5] + cmp r4, r7 + bcs _08125186 +_0812513E: + ldrb r0, [r5] + adds r0, r4 + cmp r0, 0xF + ble _08125150 + movs r0, 0x1 + b _08125188 + .align 2, 0 +_0812514C: .4byte 0xfffffe00 +_08125150: + lsls r2, r4, 3 + adds r0, r5, 0 + adds r0, 0x8 + adds r0, r2 + ldr r1, [r6] + str r1, [r0] + adds r2, r5, r2 + ldrb r0, [r6, 0x4] + adds r0, r4, r0 + strb r0, [r2, 0xC] + ldrb r0, [r5] + strb r0, [r2, 0xD] + lsls r0, r4, 5 + add r0, sp + ldrb r1, [r5] + lsls r1, 4 + movs r2, 0x20 + bl LoadPalette + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r7 + bcc _0812513E +_08125186: + movs r0, 0 +_08125188: + movs r3, 0x80 + lsls r3, 2 + add sp, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end unref_sub_8125118 + + .align 2, 0 @ Don't pad with nop. diff --git a/ld_script.txt b/ld_script.txt index 9031badf6..0a0dbea63 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -149,6 +149,22 @@ SECTIONS { src/starter_choose.o(.text); src/wallclock.o(.text); asm/rom6.o(.text); + asm/battle_records.o(.text); + asm/pokedex_area_screen.o(.text); + asm/evolution_scene.o(.text); + asm/roulette.o(.text); + asm/pokedex_cry_screen.o(.text); + asm/coins.o(.text); + asm/landmark.o(.text); + asm/fldeff_strength.o(.text); + asm/battle_transition.o(.text); + asm/battle_811DA74.o(.text); + asm/battle_message.o(.text); + asm/choose_party.o(.text); + asm/cable_car.o(.text); + asm/roulette_util.o(.text); + asm/cable_car_util.o(.text); + asm/unused_8124F94.o(.text); src/save.o(.text); asm/mystery_event_script.o(.text); asm/field_effect_helpers.o(.text); |