diff options
Diffstat (limited to 'asm')
-rw-r--r-- | asm/berry.s | 1089 | ||||
-rw-r--r-- | asm/rom5_part2.s | 176766 | ||||
-rw-r--r-- | asm/rom_80B5054.s | 175695 |
3 files changed, 176784 insertions, 176766 deletions
diff --git a/asm/berry.s b/asm/berry.s new file mode 100644 index 000000000..e7d9d241a --- /dev/null +++ b/asm/berry.s @@ -0,0 +1,1089 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start unref_sub_80B4884 +unref_sub_80B4884: @ 80B4884 + push {lr} + sub sp, 0x4 + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r1, _080B48A0 + ldr r2, _080B48A4 + mov r0, sp + bl CpuSet + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080B48A0: .4byte gSaveBlock1 + 0x3160 +_080B48A4: .4byte 0x01000298 + thumb_func_end unref_sub_80B4884 + + thumb_func_start sub_80B48A8 +sub_80B48A8: @ 80B48A8 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r3, _080B48E0 + movs r2, 0 + ldr r6, _080B48E4 + ldr r0, _080B48E8 + adds r4, r3, r0 +_080B48B6: + adds r0, r3, r2 + adds r1, r5, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, r6 + bls _080B48B6 + ldr r2, _080B48EC + adds r1, r4, r2 + ldr r2, _080B48F0 + adds r0, r4, r2 + str r0, [r1] + ldr r0, _080B48F4 + adds r1, r4, r0 + adds r2, 0x2D + adds r0, r4, r2 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B48E0: .4byte gSaveBlock1 + 0x3160 +_080B48E4: .4byte 0x0000052f +_080B48E8: .4byte 0xffffcea0 +_080B48EC: .4byte 0x0000316c +_080B48F0: .4byte 0x0000361c +_080B48F4: .4byte 0x00003170 + thumb_func_end sub_80B48A8 + + thumb_func_start sub_80B48F8 +sub_80B48F8: @ 80B48F8 + push {r4-r7,lr} + ldr r3, _080B4934 + ldr r1, _080B4938 + adds r4, r3, r1 + ldr r6, [r4] + adds r1, 0x4 + adds r2, r3, r1 + ldr r7, [r2] + movs r1, 0 + str r1, [r4] + str r1, [r2] + adds r4, r0, 0 + movs r2, 0 + ldr r5, _080B493C +_080B4914: + adds r0, r4, r1 + ldrb r0, [r0] + adds r2, r0 + adds r1, 0x1 + cmp r1, r5 + bls _080B4914 + ldr r1, _080B4938 + adds r0, r3, r1 + str r6, [r0] + adds r1, 0x4 + adds r0, r3, r1 + str r7, [r0] + adds r0, r2, 0 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080B4934: .4byte gSaveBlock1 +_080B4938: .4byte 0x0000316c +_080B493C: .4byte 0x0000052b + thumb_func_end sub_80B48F8 + + thumb_func_start sub_80B4940 +sub_80B4940: @ 80B4940 + push {r4,lr} + ldr r4, _080B4970 + ldr r1, _080B4974 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080B4984 + ldr r2, _080B4978 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080B4984 + ldr r1, _080B497C + adds r0, r4, r1 + bl sub_80B48F8 + ldr r2, _080B4980 + adds r1, r4, r2 + ldr r1, [r1] + cmp r0, r1 + bne _080B4984 + movs r0, 0x1 + b _080B4986 + .align 2, 0 +_080B4970: .4byte gSaveBlock1 +_080B4974: .4byte 0x00003174 +_080B4978: .4byte 0x0000316a +_080B497C: .4byte 0x00003160 +_080B4980: .4byte 0x0000368c +_080B4984: + movs r0, 0 +_080B4986: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80B4940 + + thumb_func_start GetBerryInfo +GetBerryInfo: @ 80B498C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2B + bne _080B49A8 + bl sub_80B4940 + cmp r0, 0 + beq _080B49A8 + ldr r0, _080B49A4 + b _080B49BE + .align 2, 0 +_080B49A4: .4byte gSaveBlock1 + 0x3160 +_080B49A8: + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2A + bls _080B49B4 + movs r4, 0x1 +_080B49B4: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r1, _080B49C4 + adds r0, r1 +_080B49BE: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B49C4: .4byte gBerries - 0x1C + thumb_func_end GetBerryInfo + + thumb_func_start GetBerryTreeInfo +GetBerryTreeInfo: @ 80B49C8 + lsls r0, 24 + lsrs r0, 21 + ldr r1, _080B49D4 + adds r0, r1 + bx lr + .align 2, 0 +_080B49D4: .4byte gSaveBlock1 + 0x1608 + thumb_func_end GetBerryTreeInfo + + thumb_func_start FieldObjectInteractionWaterBerryTree +FieldObjectInteractionWaterBerryTree: @ 80B49D8 + push {lr} + ldr r0, _080B4A00 + ldrb r0, [r0] + bl FieldObjectGetBerryTreeId + lsls r0, 24 + lsrs r0, 24 + bl GetBerryTreeInfo + adds r2, r0, 0 + ldrb r0, [r2, 0x1] + lsls r0, 25 + lsrs r0, 25 + cmp r0, 0x2 + beq _080B4A14 + cmp r0, 0x2 + bgt _080B4A04 + cmp r0, 0x1 + beq _080B4A0E + b _080B4A2A + .align 2, 0 +_080B4A00: .4byte gSelectedMapObject +_080B4A04: + cmp r0, 0x3 + beq _080B4A1A + cmp r0, 0x4 + beq _080B4A20 + b _080B4A2A +_080B4A0E: + ldrb r0, [r2, 0x5] + movs r1, 0x10 + b _080B4A24 +_080B4A14: + ldrb r0, [r2, 0x5] + movs r1, 0x20 + b _080B4A24 +_080B4A1A: + ldrb r0, [r2, 0x5] + movs r1, 0x40 + b _080B4A24 +_080B4A20: + ldrb r0, [r2, 0x5] + movs r1, 0x80 +_080B4A24: + orrs r0, r1 + strb r0, [r2, 0x5] + b _080B4A2E +_080B4A2A: + movs r0, 0 + b _080B4A30 +_080B4A2E: + movs r0, 0x1 +_080B4A30: + pop {r1} + bx r1 + thumb_func_end FieldObjectInteractionWaterBerryTree + + thumb_func_start IsPlayerFacingPlantedBerryTree +IsPlayerFacingPlantedBerryTree: @ 80B4A34 + push {lr} + bl GetFieldObjectScriptPointerForComparison + ldr r1, _080B4A5C + cmp r0, r1 + bne _080B4A64 + ldr r0, _080B4A60 + ldrb r0, [r0] + bl FieldObjectGetBerryTreeId + lsls r0, 24 + lsrs r0, 24 + bl GetStageByBerryTreeId + lsls r0, 24 + cmp r0, 0 + bne _080B4A64 + movs r0, 0x1 + b _080B4A66 + .align 2, 0 +_080B4A5C: .4byte BerryTreeScript +_080B4A60: .4byte gSelectedMapObject +_080B4A64: + movs r0, 0 +_080B4A66: + pop {r1} + bx r1 + thumb_func_end IsPlayerFacingPlantedBerryTree + + thumb_func_start WaterBerryTree +WaterBerryTree: @ 80B4A6C + push {lr} + bl GetFieldObjectScriptPointerForComparison + ldr r1, _080B4A84 + cmp r0, r1 + bne _080B4A88 + bl FieldObjectInteractionWaterBerryTree + lsls r0, 24 + lsrs r0, 24 + b _080B4A8A + .align 2, 0 +_080B4A84: .4byte BerryTreeScript +_080B4A88: + movs r0, 0 +_080B4A8A: + pop {r1} + bx r1 + thumb_func_end WaterBerryTree + + thumb_func_start sub_80B4A90 +sub_80B4A90: @ 80B4A90 + push {r4,lr} + ldr r1, _080B4AB4 + ldr r0, _080B4AB8 + ldr r3, [r0] + ldr r4, [r0, 0x4] + movs r2, 0x7F + movs r0, 0xD0 + lsls r0, 5 + adds r1, r0 +_080B4AA2: + str r3, [r1] + str r4, [r1, 0x4] + subs r1, 0x8 + subs r2, 0x1 + cmp r2, 0 + bge _080B4AA2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B4AB4: .4byte gSaveBlock1 +_080B4AB8: .4byte gUnknown_083CD780 + thumb_func_end sub_80B4A90 + + thumb_func_start BerryTreeGrow +BerryTreeGrow: @ 80B4ABC + push {r4,lr} + adds r4, r0, 0 + ldrb r1, [r4, 0x1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080B4ACE +_080B4ACA: + movs r0, 0 + b _080B4B5A +_080B4ACE: + lsls r0, r1, 25 + lsrs r0, 25 + cmp r0, 0x5 + bhi _080B4B58 + lsls r0, 2 + ldr r1, _080B4AE0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B4AE0: .4byte _080B4AE4 + .align 2, 0 +_080B4AE4: + .4byte _080B4ACA + .4byte _080B4B04 + .4byte _080B4B04 + .4byte _080B4B04 + .4byte _080B4AFC + .4byte _080B4B1C +_080B4AFC: + adds r0, r4, 0 + bl CalcBerryYield + strb r0, [r4, 0x4] +_080B4B04: + ldrb r2, [r4, 0x1] + lsls r1, r2, 25 + lsrs r1, 25 + adds r1, 0x1 + movs r0, 0x7F + ands r1, r0 + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x1] + b _080B4B58 +_080B4B1C: + ldrb r0, [r4, 0x5] + movs r1, 0x11 + negs r1, r1 + ands r1, r0 + movs r0, 0x21 + negs r0, r0 + ands r1, r0 + subs r0, 0x20 + ands r1, r0 + movs r0, 0x7F + ands r1, r0 + movs r0, 0 + strb r0, [r4, 0x4] + ldrb r2, [r4, 0x1] + subs r0, 0x80 + ands r0, r2 + movs r2, 0x2 + orrs r0, r2 + strb r0, [r4, 0x1] + adds r1, 0x1 + movs r0, 0xF + ands r1, r0 + strb r1, [r4, 0x5] + cmp r1, 0xA + bne _080B4B58 + ldr r0, _080B4B60 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [r4] + str r1, [r4, 0x4] +_080B4B58: + movs r0, 0x1 +_080B4B5A: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B4B60: .4byte gUnknown_083CD780 + thumb_func_end BerryTreeGrow + + thumb_func_start BerryTreeTimeUpdate +BerryTreeTimeUpdate: @ 80B4B64 + push {r4-r7,lr} + adds r6, r0, 0 + movs r2, 0 +_080B4B6A: + lsls r0, r2, 3 + ldr r1, _080B4BAC + adds r4, r0, r1 + ldrb r0, [r4] + adds r7, r2, 0x1 + cmp r0, 0 + beq _080B4BF8 + ldrb r1, [r4, 0x1] + movs r0, 0x7F + ands r0, r1 + cmp r0, 0 + beq _080B4BF8 + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B4BF8 + ldrb r0, [r4] + bl GetStageDurationByBerryType + lsls r0, 16 + lsrs r0, 16 + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 3 + subs r1, r0 + cmp r6, r1 + blt _080B4BB4 + ldr r0, _080B4BB0 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [r4] + str r1, [r4, 0x4] + b _080B4BF8 + .align 2, 0 +_080B4BAC: .4byte gSaveBlock1 + 0x1608 +_080B4BB0: .4byte gUnknown_083CD780 +_080B4BB4: + adds r5, r6, 0 + cmp r5, 0 + beq _080B4BF8 + ldrh r1, [r4, 0x2] + cmp r1, r5 + ble _080B4BC4 + subs r0, r1, r5 + b _080B4BF6 +_080B4BC4: + subs r5, r1 + ldrb r0, [r4] + bl GetStageDurationByBerryType + strh r0, [r4, 0x2] + adds r0, r4, 0 + bl BerryTreeGrow + cmp r0, 0 + beq _080B4BF8 + ldrb r1, [r4, 0x1] + movs r0, 0x7F + ands r0, r1 + cmp r0, 0x5 + bne _080B4BE8 + ldrh r0, [r4, 0x2] + lsls r0, 2 + strh r0, [r4, 0x2] +_080B4BE8: + cmp r5, 0 + beq _080B4BF8 + ldrh r0, [r4, 0x2] + adds r1, r0, 0 + cmp r0, r5 + ble _080B4BC4 + subs r0, r5 +_080B4BF6: + strh r0, [r4, 0x2] +_080B4BF8: + adds r2, r7, 0 + cmp r2, 0x7F + ble _080B4B6A + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end BerryTreeTimeUpdate + + thumb_func_start PlantBerryTree +PlantBerryTree: @ 80B4C04 + push {r4-r7,lr} + adds r4, r1, 0 + adds r5, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r3, 24 + lsrs r7, r3, 24 + bl GetBerryTreeInfo + adds r6, r0, 0 + ldr r0, _080B4C68 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [r6] + str r1, [r6, 0x4] + strb r4, [r6] + adds r0, r4, 0 + bl GetStageDurationByBerryType + strh r0, [r6, 0x2] + movs r1, 0x7F + ands r1, r5 + ldrb r2, [r6, 0x1] + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r6, 0x1] + cmp r5, 0x5 + bne _080B4C56 + adds r0, r6, 0 + bl CalcBerryYield + strb r0, [r6, 0x4] + ldrh r0, [r6, 0x2] + lsls r0, 2 + strh r0, [r6, 0x2] +_080B4C56: + cmp r7, 0 + bne _080B4C62 + ldrb r0, [r6, 0x1] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r6, 0x1] +_080B4C62: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B4C68: .4byte gUnknown_083CD780 + thumb_func_end PlantBerryTree + + thumb_func_start RemoveBerryTree +RemoveBerryTree: @ 80B4C6C + lsls r0, 24 + ldr r1, _080B4C84 + lsrs r0, 21 + ldr r2, _080B4C88 + adds r1, r2 + adds r0, r1 + ldr r1, _080B4C8C + ldr r2, [r1, 0x4] + ldr r1, [r1] + str r1, [r0] + str r2, [r0, 0x4] + bx lr + .align 2, 0 +_080B4C84: .4byte gSaveBlock1 +_080B4C88: .4byte 0x00001608 +_080B4C8C: .4byte gUnknown_083CD780 + thumb_func_end RemoveBerryTree + + thumb_func_start GetBerryTypeByBerryTreeId +GetBerryTypeByBerryTreeId: @ 80B4C90 + lsls r0, 24 + ldr r1, _080B4CA0 + lsrs r0, 21 + adds r0, r1 + ldr r1, _080B4CA4 + adds r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080B4CA0: .4byte gSaveBlock1 +_080B4CA4: .4byte 0x00001608 + thumb_func_end GetBerryTypeByBerryTreeId + + thumb_func_start GetStageByBerryTreeId +GetStageByBerryTreeId: @ 80B4CA8 + lsls r0, 24 + ldr r1, _080B4CBC + lsrs r0, 21 + adds r0, r1 + ldr r1, _080B4CC0 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 25 + lsrs r0, 25 + bx lr + .align 2, 0 +_080B4CBC: .4byte gSaveBlock1 +_080B4CC0: .4byte 0x00001609 + thumb_func_end GetStageByBerryTreeId + + thumb_func_start ItemIdToBerryType +ItemIdToBerryType: @ 80B4CC4 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + ldr r2, _080B4CE0 + adds r0, r2 + lsrs r0, 16 + cmp r0, 0x2A + bhi _080B4CE4 + adds r0, r1, 0 + adds r0, 0x7C + lsls r0, 24 + lsrs r0, 24 + b _080B4CE6 + .align 2, 0 +_080B4CE0: .4byte 0xff7b0000 +_080B4CE4: + movs r0, 0x1 +_080B4CE6: + pop {r1} + bx r1 + thumb_func_end ItemIdToBerryType + + thumb_func_start BerryTypeToItemId +BerryTypeToItemId: @ 80B4CEC + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + ldr r2, _080B4D08 + adds r0, r2 + lsrs r0, 16 + cmp r0, 0x2A + bhi _080B4D0C + adds r0, r1, 0 + adds r0, 0x84 + lsls r0, 16 + lsrs r0, 16 + b _080B4D0E + .align 2, 0 +_080B4D08: .4byte 0xffff0000 +_080B4D0C: + movs r0, 0x85 +_080B4D0E: + pop {r1} + bx r1 + thumb_func_end BerryTypeToItemId + + thumb_func_start GetBerryNameByBerryType +GetBerryNameByBerryType: @ 80B4D14 + push {r4,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r0, 24 + bl GetBerryInfo + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0x6 + bl memcpy + movs r0, 0xFF + strb r0, [r4, 0x6] + pop {r4} + pop {r0} + bx r0 + thumb_func_end GetBerryNameByBerryType + + thumb_func_start ResetBerryTreeSparkleFlag +ResetBerryTreeSparkleFlag: @ 80B4D34 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl GetBerryTreeInfo + ldrb r2, [r0, 0x1] + movs r1, 0x7F + ands r1, r2 + strb r1, [r0, 0x1] + pop {r0} + bx r0 + thumb_func_end ResetBerryTreeSparkleFlag + + thumb_func_start BerryTreeGetNumStagesWatered +BerryTreeGetNumStagesWatered: @ 80B4D4C + push {lr} + ldrb r2, [r0, 0x5] + movs r0, 0x10 + ands r0, r2 + lsls r0, 24 + lsrs r0, 24 + negs r0, r0 + lsrs r1, r0, 31 + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _080B4D66 + adds r1, 0x1 +_080B4D66: + movs r0, 0x40 + ands r0, r2 + cmp r0, 0 + beq _080B4D74 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 +_080B4D74: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _080B4D82 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 +_080B4D82: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end BerryTreeGetNumStagesWatered + + thumb_func_start GetNumStagesWateredByBerryTreeId +GetNumStagesWateredByBerryTreeId: @ 80B4D88 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl GetBerryTreeInfo + bl BerryTreeGetNumStagesWatered + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end GetNumStagesWateredByBerryTreeId + + thumb_func_start CalcBerryYieldInternal +CalcBerryYieldInternal: @ 80B4DA0 + push {r4-r6,lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 24 + lsrs r2, 24 + cmp r2, 0 + bne _080B4DB6 + lsls r0, r6, 24 + b _080B4DEA +_080B4DB6: + subs r1, r0, r6 + subs r0, r2, 0x1 + adds r5, r1, 0 + muls r5, r0 + adds r4, r1, 0 + muls r4, r2 + bl Random + lsls r0, 16 + lsrs r0, 16 + subs r4, r5 + adds r4, 0x1 + adds r1, r4, 0 + bl __umodsi3 + adds r5, r0 + movs r0, 0x3 + ands r0, r5 + cmp r0, 0x1 + bls _080B4DE4 + lsrs r0, r5, 2 + adds r0, 0x1 + b _080B4DE6 +_080B4DE4: + lsrs r0, r5, 2 +_080B4DE6: + adds r0, r6 + lsls r0, 24 +_080B4DEA: + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end CalcBerryYieldInternal + + thumb_func_start CalcBerryYield +CalcBerryYield: @ 80B4DF4 + push {r4-r6,lr} + adds r4, r0, 0 + ldrb r0, [r4] + bl GetBerryInfo + ldrb r6, [r0, 0xB] + ldrb r5, [r0, 0xA] + adds r0, r4, 0 + bl BerryTreeGetNumStagesWatered + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + adds r1, r6, 0 + bl CalcBerryYieldInternal + lsls r0, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end CalcBerryYield + + thumb_func_start GetBerryCountByBerryTreeId +GetBerryCountByBerryTreeId: @ 80B4E20 + lsls r0, 24 + ldr r1, _080B4E30 + lsrs r0, 21 + adds r0, r1 + ldr r1, _080B4E34 + adds r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080B4E30: .4byte gSaveBlock1 +_080B4E34: .4byte 0x0000160c + thumb_func_end GetBerryCountByBerryTreeId + + thumb_func_start GetStageDurationByBerryType +GetStageDurationByBerryType: @ 80B4E38 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl GetBerryInfo + ldrb r1, [r0, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 18 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end GetStageDurationByBerryType + + thumb_func_start FieldObjectInteractionGetBerryTreeData +FieldObjectInteractionGetBerryTreeData: @ 80B4E50 + push {r4-r6,lr} + ldr r0, _080B4E8C + ldrb r0, [r0] + bl FieldObjectGetBerryTreeId + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl GetBerryTypeByBerryTreeId + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r5, 0 + bl ResetBerryTreeSparkleFlag + ldr r0, _080B4E90 + ldrb r0, [r0] + ldr r2, _080B4E94 + ldrb r1, [r2, 0x5] + ldrb r2, [r2, 0x4] + bl sub_8060234 + lsls r0, 24 + cmp r0, 0 + beq _080B4E9C + ldr r1, _080B4E98 + movs r0, 0xFF + strh r0, [r1] + b _080B4EAA + .align 2, 0 +_080B4E8C: .4byte gSelectedMapObject +_080B4E90: .4byte gUnknown_0202E8DE +_080B4E94: .4byte gSaveBlock1 +_080B4E98: .4byte gUnknown_0202E8CC +_080B4E9C: + ldr r4, _080B4ED4 + adds r0, r5, 0 + bl GetStageByBerryTreeId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] +_080B4EAA: + ldr r4, _080B4ED8 + adds r0, r5, 0 + bl GetNumStagesWateredByBerryTreeId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + ldr r4, _080B4EDC + adds r0, r5, 0 + bl GetBerryCountByBerryTreeId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + ldr r1, _080B4EE0 + adds r0, r6, 0 + bl GetBerryNameByBerryType + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B4ED4: .4byte gUnknown_0202E8CC +_080B4ED8: .4byte gUnknown_0202E8CE +_080B4EDC: .4byte gUnknown_0202E8D0 +_080B4EE0: .4byte gStringVar1 + thumb_func_end FieldObjectInteractionGetBerryTreeData + + thumb_func_start sub_80B4EE4 +sub_80B4EE4: @ 80B4EE4 + push {lr} + ldr r0, _080B4EF0 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080B4EF0: .4byte sub_80A68CC + thumb_func_end sub_80B4EE4 + + thumb_func_start FieldObjectInteractionPlantBerryTree +FieldObjectInteractionPlantBerryTree: @ 80B4EF4 + push {r4,lr} + ldr r0, _080B4F24 + ldrh r0, [r0] + bl ItemIdToBerryType + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080B4F28 + ldrb r0, [r0] + bl FieldObjectGetBerryTreeId + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + movs r2, 0x1 + movs r3, 0x1 + bl PlantBerryTree + bl FieldObjectInteractionGetBerryTreeData + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B4F24: .4byte word_203855E +_080B4F28: .4byte gSelectedMapObject + thumb_func_end FieldObjectInteractionPlantBerryTree + + thumb_func_start FieldObjectInteractionPickBerryTree +FieldObjectInteractionPickBerryTree: @ 80B4F2C + push {r4-r6,lr} + ldr r0, _080B4F70 + ldrb r0, [r0] + bl FieldObjectGetBerryTreeId + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r5, 0 + bl GetBerryTypeByBerryTreeId + lsls r0, 24 + lsrs r0, 24 + ldr r6, _080B4F74 + bl BerryTypeToItemId + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + bl GetBerryCountByBerryTreeId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_80A9424 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B4F70: .4byte gSelectedMapObject +_080B4F74: .4byte gUnknown_0202E8CC + thumb_func_end FieldObjectInteractionPickBerryTree + + thumb_func_start FieldObjectInteractionRemoveBerryTree +FieldObjectInteractionRemoveBerryTree: @ 80B4F78 + push {lr} + ldr r0, _080B4F9C + ldrb r0, [r0] + bl FieldObjectGetBerryTreeId + lsls r0, 24 + lsrs r0, 24 + bl RemoveBerryTree + ldr r0, _080B4FA0 + ldrb r0, [r0] + ldr r2, _080B4FA4 + ldrb r1, [r2, 0x5] + ldrb r2, [r2, 0x4] + bl sub_8060288 + pop {r0} + bx r0 + .align 2, 0 +_080B4F9C: .4byte gSelectedMapObject +_080B4FA0: .4byte gUnknown_0202E8DE +_080B4FA4: .4byte gSaveBlock1 + thumb_func_end FieldObjectInteractionRemoveBerryTree + + thumb_func_start PlayerHasBerries +PlayerHasBerries: @ 80B4FA8 + push {lr} + movs r0, 0x4 + bl IsBagPocketNonEmpty + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end PlayerHasBerries + + thumb_func_start ResetBerryTreeSparkleFlags +ResetBerryTreeSparkleFlags: @ 80B4FB8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetCameraCoords + mov r0, sp + ldrh r2, [r0] + ldrh r1, [r4] + adds r1, 0x3 + adds r3, r2, 0 + adds r3, 0xE + lsls r1, 16 + movs r5, 0x80 + lsls r5, 12 + adds r0, r1, r5 + lsrs r0, 16 + mov r10, r0 + mov r5, sp + lsls r2, 16 + asrs r2, 16 + mov r9, r2 + ldr r4, _080B5050 + lsls r3, 16 + asrs r3, 16 + mov r8, r3 + asrs r7, r1, 16 + movs r6, 0xF +_080B4FFC: + ldrb r0, [r4] + lsls r0, 31 + cmp r0, 0 + beq _080B5038 + ldrb r0, [r4, 0x6] + cmp r0, 0xC + bne _080B5038 + ldrh r0, [r4, 0x10] + strh r0, [r5] + ldrh r0, [r4, 0x12] + mov r1, sp + strh r0, [r1, 0x2] + movs r2, 0 + ldrsh r1, [r5, r2] + cmp r9, r1 + bgt _080B5038 + cmp r1, r8 + bgt _080B5038 + lsls r0, 16 + asrs r1, r0, 16 + cmp r7, r1 + bgt _080B5038 + mov r2, r10 + lsls r0, r2, 16 + asrs r0, 16 + cmp r1, r0 + bgt _080B5038 + ldrb r0, [r4, 0x1D] + bl ResetBerryTreeSparkleFlag +_080B5038: + adds r4, 0x24 + subs r6, 0x1 + cmp r6, 0 + bge _080B4FFC + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B5050: .4byte gMapObjects + thumb_func_end ResetBerryTreeSparkleFlags + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom5_part2.s b/asm/rom5_part2.s index 5fc8859e9..9933f27b1 100644 --- a/asm/rom5_part2.s +++ b/asm/rom5_part2.s @@ -80066,176770 +80066,4 @@ _080B487E: bx r1 thumb_func_end sub_80B4850 - thumb_func_start unref_sub_80B4884 -unref_sub_80B4884: @ 80B4884 - push {lr} - sub sp, 0x4 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r1, _080B48A0 - ldr r2, _080B48A4 - mov r0, sp - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080B48A0: .4byte gSaveBlock1 + 0x3160 -_080B48A4: .4byte 0x01000298 - thumb_func_end unref_sub_80B4884 - - thumb_func_start sub_80B48A8 -sub_80B48A8: @ 80B48A8 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r3, _080B48E0 - movs r2, 0 - ldr r6, _080B48E4 - ldr r0, _080B48E8 - adds r4, r3, r0 -_080B48B6: - adds r0, r3, r2 - adds r1, r5, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, r6 - bls _080B48B6 - ldr r2, _080B48EC - adds r1, r4, r2 - ldr r2, _080B48F0 - adds r0, r4, r2 - str r0, [r1] - ldr r0, _080B48F4 - adds r1, r4, r0 - adds r2, 0x2D - adds r0, r4, r2 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B48E0: .4byte gSaveBlock1 + 0x3160 -_080B48E4: .4byte 0x0000052f -_080B48E8: .4byte 0xffffcea0 -_080B48EC: .4byte 0x0000316c -_080B48F0: .4byte 0x0000361c -_080B48F4: .4byte 0x00003170 - thumb_func_end sub_80B48A8 - - thumb_func_start sub_80B48F8 -sub_80B48F8: @ 80B48F8 - push {r4-r7,lr} - ldr r3, _080B4934 - ldr r1, _080B4938 - adds r4, r3, r1 - ldr r6, [r4] - adds r1, 0x4 - adds r2, r3, r1 - ldr r7, [r2] - movs r1, 0 - str r1, [r4] - str r1, [r2] - adds r4, r0, 0 - movs r2, 0 - ldr r5, _080B493C -_080B4914: - adds r0, r4, r1 - ldrb r0, [r0] - adds r2, r0 - adds r1, 0x1 - cmp r1, r5 - bls _080B4914 - ldr r1, _080B4938 - adds r0, r3, r1 - str r6, [r0] - adds r1, 0x4 - adds r0, r3, r1 - str r7, [r0] - adds r0, r2, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080B4934: .4byte gSaveBlock1 -_080B4938: .4byte 0x0000316c -_080B493C: .4byte 0x0000052b - thumb_func_end sub_80B48F8 - - thumb_func_start sub_80B4940 -sub_80B4940: @ 80B4940 - push {r4,lr} - ldr r4, _080B4970 - ldr r1, _080B4974 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080B4984 - ldr r2, _080B4978 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080B4984 - ldr r1, _080B497C - adds r0, r4, r1 - bl sub_80B48F8 - ldr r2, _080B4980 - adds r1, r4, r2 - ldr r1, [r1] - cmp r0, r1 - bne _080B4984 - movs r0, 0x1 - b _080B4986 - .align 2, 0 -_080B4970: .4byte gSaveBlock1 -_080B4974: .4byte 0x00003174 -_080B4978: .4byte 0x0000316a -_080B497C: .4byte 0x00003160 -_080B4980: .4byte 0x0000368c -_080B4984: - movs r0, 0 -_080B4986: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B4940 - - thumb_func_start GetBerryInfo -GetBerryInfo: @ 80B498C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2B - bne _080B49A8 - bl sub_80B4940 - cmp r0, 0 - beq _080B49A8 - ldr r0, _080B49A4 - b _080B49BE - .align 2, 0 -_080B49A4: .4byte gSaveBlock1 + 0x3160 -_080B49A8: - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2A - bls _080B49B4 - movs r4, 0x1 -_080B49B4: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r1, _080B49C4 - adds r0, r1 -_080B49BE: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B49C4: .4byte gBerries - 0x1C - thumb_func_end GetBerryInfo - - thumb_func_start GetBerryTreeInfo -GetBerryTreeInfo: @ 80B49C8 - lsls r0, 24 - lsrs r0, 21 - ldr r1, _080B49D4 - adds r0, r1 - bx lr - .align 2, 0 -_080B49D4: .4byte gSaveBlock1 + 0x1608 - thumb_func_end GetBerryTreeInfo - - thumb_func_start FieldObjectInteractionWaterBerryTree -FieldObjectInteractionWaterBerryTree: @ 80B49D8 - push {lr} - ldr r0, _080B4A00 - ldrb r0, [r0] - bl FieldObjectGetBerryTreeId - lsls r0, 24 - lsrs r0, 24 - bl GetBerryTreeInfo - adds r2, r0, 0 - ldrb r0, [r2, 0x1] - lsls r0, 25 - lsrs r0, 25 - cmp r0, 0x2 - beq _080B4A14 - cmp r0, 0x2 - bgt _080B4A04 - cmp r0, 0x1 - beq _080B4A0E - b _080B4A2A - .align 2, 0 -_080B4A00: .4byte gSelectedMapObject -_080B4A04: - cmp r0, 0x3 - beq _080B4A1A - cmp r0, 0x4 - beq _080B4A20 - b _080B4A2A -_080B4A0E: - ldrb r0, [r2, 0x5] - movs r1, 0x10 - b _080B4A24 -_080B4A14: - ldrb r0, [r2, 0x5] - movs r1, 0x20 - b _080B4A24 -_080B4A1A: - ldrb r0, [r2, 0x5] - movs r1, 0x40 - b _080B4A24 -_080B4A20: - ldrb r0, [r2, 0x5] - movs r1, 0x80 -_080B4A24: - orrs r0, r1 - strb r0, [r2, 0x5] - b _080B4A2E -_080B4A2A: - movs r0, 0 - b _080B4A30 -_080B4A2E: - movs r0, 0x1 -_080B4A30: - pop {r1} - bx r1 - thumb_func_end FieldObjectInteractionWaterBerryTree - - thumb_func_start IsPlayerFacingPlantedBerryTree -IsPlayerFacingPlantedBerryTree: @ 80B4A34 - push {lr} - bl GetFieldObjectScriptPointerForComparison - ldr r1, _080B4A5C - cmp r0, r1 - bne _080B4A64 - ldr r0, _080B4A60 - ldrb r0, [r0] - bl FieldObjectGetBerryTreeId - lsls r0, 24 - lsrs r0, 24 - bl GetStageByBerryTreeId - lsls r0, 24 - cmp r0, 0 - bne _080B4A64 - movs r0, 0x1 - b _080B4A66 - .align 2, 0 -_080B4A5C: .4byte BerryTreeScript -_080B4A60: .4byte gSelectedMapObject -_080B4A64: - movs r0, 0 -_080B4A66: - pop {r1} - bx r1 - thumb_func_end IsPlayerFacingPlantedBerryTree - - thumb_func_start WaterBerryTree -WaterBerryTree: @ 80B4A6C - push {lr} - bl GetFieldObjectScriptPointerForComparison - ldr r1, _080B4A84 - cmp r0, r1 - bne _080B4A88 - bl FieldObjectInteractionWaterBerryTree - lsls r0, 24 - lsrs r0, 24 - b _080B4A8A - .align 2, 0 -_080B4A84: .4byte BerryTreeScript -_080B4A88: - movs r0, 0 -_080B4A8A: - pop {r1} - bx r1 - thumb_func_end WaterBerryTree - - thumb_func_start sub_80B4A90 -sub_80B4A90: @ 80B4A90 - push {r4,lr} - ldr r1, _080B4AB4 - ldr r0, _080B4AB8 - ldr r3, [r0] - ldr r4, [r0, 0x4] - movs r2, 0x7F - movs r0, 0xD0 - lsls r0, 5 - adds r1, r0 -_080B4AA2: - str r3, [r1] - str r4, [r1, 0x4] - subs r1, 0x8 - subs r2, 0x1 - cmp r2, 0 - bge _080B4AA2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B4AB4: .4byte gSaveBlock1 -_080B4AB8: .4byte gUnknown_083CD780 - thumb_func_end sub_80B4A90 - - thumb_func_start BerryTreeGrow -BerryTreeGrow: @ 80B4ABC - push {r4,lr} - adds r4, r0, 0 - ldrb r1, [r4, 0x1] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080B4ACE -_080B4ACA: - movs r0, 0 - b _080B4B5A -_080B4ACE: - lsls r0, r1, 25 - lsrs r0, 25 - cmp r0, 0x5 - bhi _080B4B58 - lsls r0, 2 - ldr r1, _080B4AE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B4AE0: .4byte _080B4AE4 - .align 2, 0 -_080B4AE4: - .4byte _080B4ACA - .4byte _080B4B04 - .4byte _080B4B04 - .4byte _080B4B04 - .4byte _080B4AFC - .4byte _080B4B1C -_080B4AFC: - adds r0, r4, 0 - bl CalcBerryYield - strb r0, [r4, 0x4] -_080B4B04: - ldrb r2, [r4, 0x1] - lsls r1, r2, 25 - lsrs r1, 25 - adds r1, 0x1 - movs r0, 0x7F - ands r1, r0 - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x1] - b _080B4B58 -_080B4B1C: - ldrb r0, [r4, 0x5] - movs r1, 0x11 - negs r1, r1 - ands r1, r0 - movs r0, 0x21 - negs r0, r0 - ands r1, r0 - subs r0, 0x20 - ands r1, r0 - movs r0, 0x7F - ands r1, r0 - movs r0, 0 - strb r0, [r4, 0x4] - ldrb r2, [r4, 0x1] - subs r0, 0x80 - ands r0, r2 - movs r2, 0x2 - orrs r0, r2 - strb r0, [r4, 0x1] - adds r1, 0x1 - movs r0, 0xF - ands r1, r0 - strb r1, [r4, 0x5] - cmp r1, 0xA - bne _080B4B58 - ldr r0, _080B4B60 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [r4] - str r1, [r4, 0x4] -_080B4B58: - movs r0, 0x1 -_080B4B5A: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B4B60: .4byte gUnknown_083CD780 - thumb_func_end BerryTreeGrow - - thumb_func_start BerryTreeTimeUpdate -BerryTreeTimeUpdate: @ 80B4B64 - push {r4-r7,lr} - adds r6, r0, 0 - movs r2, 0 -_080B4B6A: - lsls r0, r2, 3 - ldr r1, _080B4BAC - adds r4, r0, r1 - ldrb r0, [r4] - adds r7, r2, 0x1 - cmp r0, 0 - beq _080B4BF8 - ldrb r1, [r4, 0x1] - movs r0, 0x7F - ands r0, r1 - cmp r0, 0 - beq _080B4BF8 - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B4BF8 - ldrb r0, [r4] - bl GetStageDurationByBerryType - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 3 - subs r1, r0 - cmp r6, r1 - blt _080B4BB4 - ldr r0, _080B4BB0 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [r4] - str r1, [r4, 0x4] - b _080B4BF8 - .align 2, 0 -_080B4BAC: .4byte gSaveBlock1 + 0x1608 -_080B4BB0: .4byte gUnknown_083CD780 -_080B4BB4: - adds r5, r6, 0 - cmp r5, 0 - beq _080B4BF8 - ldrh r1, [r4, 0x2] - cmp r1, r5 - ble _080B4BC4 - subs r0, r1, r5 - b _080B4BF6 -_080B4BC4: - subs r5, r1 - ldrb r0, [r4] - bl GetStageDurationByBerryType - strh r0, [r4, 0x2] - adds r0, r4, 0 - bl BerryTreeGrow - cmp r0, 0 - beq _080B4BF8 - ldrb r1, [r4, 0x1] - movs r0, 0x7F - ands r0, r1 - cmp r0, 0x5 - bne _080B4BE8 - ldrh r0, [r4, 0x2] - lsls r0, 2 - strh r0, [r4, 0x2] -_080B4BE8: - cmp r5, 0 - beq _080B4BF8 - ldrh r0, [r4, 0x2] - adds r1, r0, 0 - cmp r0, r5 - ble _080B4BC4 - subs r0, r5 -_080B4BF6: - strh r0, [r4, 0x2] -_080B4BF8: - adds r2, r7, 0 - cmp r2, 0x7F - ble _080B4B6A - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end BerryTreeTimeUpdate - - thumb_func_start PlantBerryTree -PlantBerryTree: @ 80B4C04 - push {r4-r7,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r3, 24 - lsrs r7, r3, 24 - bl GetBerryTreeInfo - adds r6, r0, 0 - ldr r0, _080B4C68 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [r6] - str r1, [r6, 0x4] - strb r4, [r6] - adds r0, r4, 0 - bl GetStageDurationByBerryType - strh r0, [r6, 0x2] - movs r1, 0x7F - ands r1, r5 - ldrb r2, [r6, 0x1] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, 0x1] - cmp r5, 0x5 - bne _080B4C56 - adds r0, r6, 0 - bl CalcBerryYield - strb r0, [r6, 0x4] - ldrh r0, [r6, 0x2] - lsls r0, 2 - strh r0, [r6, 0x2] -_080B4C56: - cmp r7, 0 - bne _080B4C62 - ldrb r0, [r6, 0x1] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r6, 0x1] -_080B4C62: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B4C68: .4byte gUnknown_083CD780 - thumb_func_end PlantBerryTree - - thumb_func_start RemoveBerryTree -RemoveBerryTree: @ 80B4C6C - lsls r0, 24 - ldr r1, _080B4C84 - lsrs r0, 21 - ldr r2, _080B4C88 - adds r1, r2 - adds r0, r1 - ldr r1, _080B4C8C - ldr r2, [r1, 0x4] - ldr r1, [r1] - str r1, [r0] - str r2, [r0, 0x4] - bx lr - .align 2, 0 -_080B4C84: .4byte gSaveBlock1 -_080B4C88: .4byte 0x00001608 -_080B4C8C: .4byte gUnknown_083CD780 - thumb_func_end RemoveBerryTree - - thumb_func_start GetBerryTypeByBerryTreeId -GetBerryTypeByBerryTreeId: @ 80B4C90 - lsls r0, 24 - ldr r1, _080B4CA0 - lsrs r0, 21 - adds r0, r1 - ldr r1, _080B4CA4 - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080B4CA0: .4byte gSaveBlock1 -_080B4CA4: .4byte 0x00001608 - thumb_func_end GetBerryTypeByBerryTreeId - - thumb_func_start GetStageByBerryTreeId -GetStageByBerryTreeId: @ 80B4CA8 - lsls r0, 24 - ldr r1, _080B4CBC - lsrs r0, 21 - adds r0, r1 - ldr r1, _080B4CC0 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 25 - lsrs r0, 25 - bx lr - .align 2, 0 -_080B4CBC: .4byte gSaveBlock1 -_080B4CC0: .4byte 0x00001609 - thumb_func_end GetStageByBerryTreeId - - thumb_func_start ItemIdToBerryType -ItemIdToBerryType: @ 80B4CC4 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _080B4CE0 - adds r0, r2 - lsrs r0, 16 - cmp r0, 0x2A - bhi _080B4CE4 - adds r0, r1, 0 - adds r0, 0x7C - lsls r0, 24 - lsrs r0, 24 - b _080B4CE6 - .align 2, 0 -_080B4CE0: .4byte 0xff7b0000 -_080B4CE4: - movs r0, 0x1 -_080B4CE6: - pop {r1} - bx r1 - thumb_func_end ItemIdToBerryType - - thumb_func_start BerryTypeToItemId -BerryTypeToItemId: @ 80B4CEC - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _080B4D08 - adds r0, r2 - lsrs r0, 16 - cmp r0, 0x2A - bhi _080B4D0C - adds r0, r1, 0 - adds r0, 0x84 - lsls r0, 16 - lsrs r0, 16 - b _080B4D0E - .align 2, 0 -_080B4D08: .4byte 0xffff0000 -_080B4D0C: - movs r0, 0x85 -_080B4D0E: - pop {r1} - bx r1 - thumb_func_end BerryTypeToItemId - - thumb_func_start GetBerryNameByBerryType -GetBerryNameByBerryType: @ 80B4D14 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - bl GetBerryInfo - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x6 - bl memcpy - movs r0, 0xFF - strb r0, [r4, 0x6] - pop {r4} - pop {r0} - bx r0 - thumb_func_end GetBerryNameByBerryType - - thumb_func_start ResetBerryTreeSparkleFlag -ResetBerryTreeSparkleFlag: @ 80B4D34 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl GetBerryTreeInfo - ldrb r2, [r0, 0x1] - movs r1, 0x7F - ands r1, r2 - strb r1, [r0, 0x1] - pop {r0} - bx r0 - thumb_func_end ResetBerryTreeSparkleFlag - - thumb_func_start BerryTreeGetNumStagesWatered -BerryTreeGetNumStagesWatered: @ 80B4D4C - push {lr} - ldrb r2, [r0, 0x5] - movs r0, 0x10 - ands r0, r2 - lsls r0, 24 - lsrs r0, 24 - negs r0, r0 - lsrs r1, r0, 31 - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _080B4D66 - adds r1, 0x1 -_080B4D66: - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - beq _080B4D74 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 -_080B4D74: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _080B4D82 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 -_080B4D82: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end BerryTreeGetNumStagesWatered - - thumb_func_start GetNumStagesWateredByBerryTreeId -GetNumStagesWateredByBerryTreeId: @ 80B4D88 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl GetBerryTreeInfo - bl BerryTreeGetNumStagesWatered - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end GetNumStagesWateredByBerryTreeId - - thumb_func_start CalcBerryYieldInternal -CalcBerryYieldInternal: @ 80B4DA0 - push {r4-r6,lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 24 - lsrs r2, 24 - cmp r2, 0 - bne _080B4DB6 - lsls r0, r6, 24 - b _080B4DEA -_080B4DB6: - subs r1, r0, r6 - subs r0, r2, 0x1 - adds r5, r1, 0 - muls r5, r0 - adds r4, r1, 0 - muls r4, r2 - bl Random - lsls r0, 16 - lsrs r0, 16 - subs r4, r5 - adds r4, 0x1 - adds r1, r4, 0 - bl __umodsi3 - adds r5, r0 - movs r0, 0x3 - ands r0, r5 - cmp r0, 0x1 - bls _080B4DE4 - lsrs r0, r5, 2 - adds r0, 0x1 - b _080B4DE6 -_080B4DE4: - lsrs r0, r5, 2 -_080B4DE6: - adds r0, r6 - lsls r0, 24 -_080B4DEA: - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CalcBerryYieldInternal - - thumb_func_start CalcBerryYield -CalcBerryYield: @ 80B4DF4 - push {r4-r6,lr} - adds r4, r0, 0 - ldrb r0, [r4] - bl GetBerryInfo - ldrb r6, [r0, 0xB] - ldrb r5, [r0, 0xA] - adds r0, r4, 0 - bl BerryTreeGetNumStagesWatered - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r6, 0 - bl CalcBerryYieldInternal - lsls r0, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CalcBerryYield - - thumb_func_start GetBerryCountByBerryTreeId -GetBerryCountByBerryTreeId: @ 80B4E20 - lsls r0, 24 - ldr r1, _080B4E30 - lsrs r0, 21 - adds r0, r1 - ldr r1, _080B4E34 - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080B4E30: .4byte gSaveBlock1 -_080B4E34: .4byte 0x0000160c - thumb_func_end GetBerryCountByBerryTreeId - - thumb_func_start GetStageDurationByBerryType -GetStageDurationByBerryType: @ 80B4E38 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl GetBerryInfo - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 18 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end GetStageDurationByBerryType - - thumb_func_start FieldObjectInteractionGetBerryTreeData -FieldObjectInteractionGetBerryTreeData: @ 80B4E50 - push {r4-r6,lr} - ldr r0, _080B4E8C - ldrb r0, [r0] - bl FieldObjectGetBerryTreeId - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl GetBerryTypeByBerryTreeId - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r5, 0 - bl ResetBerryTreeSparkleFlag - ldr r0, _080B4E90 - ldrb r0, [r0] - ldr r2, _080B4E94 - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl sub_8060234 - lsls r0, 24 - cmp r0, 0 - beq _080B4E9C - ldr r1, _080B4E98 - movs r0, 0xFF - strh r0, [r1] - b _080B4EAA - .align 2, 0 -_080B4E8C: .4byte gSelectedMapObject -_080B4E90: .4byte gUnknown_0202E8DE -_080B4E94: .4byte gSaveBlock1 -_080B4E98: .4byte gUnknown_0202E8CC -_080B4E9C: - ldr r4, _080B4ED4 - adds r0, r5, 0 - bl GetStageByBerryTreeId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_080B4EAA: - ldr r4, _080B4ED8 - adds r0, r5, 0 - bl GetNumStagesWateredByBerryTreeId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - ldr r4, _080B4EDC - adds r0, r5, 0 - bl GetBerryCountByBerryTreeId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - ldr r1, _080B4EE0 - adds r0, r6, 0 - bl GetBerryNameByBerryType - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B4ED4: .4byte gUnknown_0202E8CC -_080B4ED8: .4byte gUnknown_0202E8CE -_080B4EDC: .4byte gUnknown_0202E8D0 -_080B4EE0: .4byte gStringVar1 - thumb_func_end FieldObjectInteractionGetBerryTreeData - - thumb_func_start sub_80B4EE4 -sub_80B4EE4: @ 80B4EE4 - push {lr} - ldr r0, _080B4EF0 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080B4EF0: .4byte sub_80A68CC - thumb_func_end sub_80B4EE4 - - thumb_func_start FieldObjectInteractionPlantBerryTree -FieldObjectInteractionPlantBerryTree: @ 80B4EF4 - push {r4,lr} - ldr r0, _080B4F24 - ldrh r0, [r0] - bl ItemIdToBerryType - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080B4F28 - ldrb r0, [r0] - bl FieldObjectGetBerryTreeId - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x1 - bl PlantBerryTree - bl FieldObjectInteractionGetBerryTreeData - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B4F24: .4byte word_203855E -_080B4F28: .4byte gSelectedMapObject - thumb_func_end FieldObjectInteractionPlantBerryTree - - thumb_func_start FieldObjectInteractionPickBerryTree -FieldObjectInteractionPickBerryTree: @ 80B4F2C - push {r4-r6,lr} - ldr r0, _080B4F70 - ldrb r0, [r0] - bl FieldObjectGetBerryTreeId - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r5, 0 - bl GetBerryTypeByBerryTreeId - lsls r0, 24 - lsrs r0, 24 - ldr r6, _080B4F74 - bl BerryTypeToItemId - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl GetBerryCountByBerryTreeId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_80A9424 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B4F70: .4byte gSelectedMapObject -_080B4F74: .4byte gUnknown_0202E8CC - thumb_func_end FieldObjectInteractionPickBerryTree - - thumb_func_start FieldObjectInteractionRemoveBerryTree -FieldObjectInteractionRemoveBerryTree: @ 80B4F78 - push {lr} - ldr r0, _080B4F9C - ldrb r0, [r0] - bl FieldObjectGetBerryTreeId - lsls r0, 24 - lsrs r0, 24 - bl RemoveBerryTree - ldr r0, _080B4FA0 - ldrb r0, [r0] - ldr r2, _080B4FA4 - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl sub_8060288 - pop {r0} - bx r0 - .align 2, 0 -_080B4F9C: .4byte gSelectedMapObject -_080B4FA0: .4byte gUnknown_0202E8DE -_080B4FA4: .4byte gSaveBlock1 - thumb_func_end FieldObjectInteractionRemoveBerryTree - - thumb_func_start PlayerHasBerries -PlayerHasBerries: @ 80B4FA8 - push {lr} - movs r0, 0x4 - bl IsBagPocketNonEmpty - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end PlayerHasBerries - - thumb_func_start ResetBerryTreeSparkleFlags -ResetBerryTreeSparkleFlags: @ 80B4FB8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetCameraCoords - mov r0, sp - ldrh r2, [r0] - ldrh r1, [r4] - adds r1, 0x3 - adds r3, r2, 0 - adds r3, 0xE - lsls r1, 16 - movs r5, 0x80 - lsls r5, 12 - adds r0, r1, r5 - lsrs r0, 16 - mov r10, r0 - mov r5, sp - lsls r2, 16 - asrs r2, 16 - mov r9, r2 - ldr r4, _080B5050 - lsls r3, 16 - asrs r3, 16 - mov r8, r3 - asrs r7, r1, 16 - movs r6, 0xF -_080B4FFC: - ldrb r0, [r4] - lsls r0, 31 - cmp r0, 0 - beq _080B5038 - ldrb r0, [r4, 0x6] - cmp r0, 0xC - bne _080B5038 - ldrh r0, [r4, 0x10] - strh r0, [r5] - ldrh r0, [r4, 0x12] - mov r1, sp - strh r0, [r1, 0x2] - movs r2, 0 - ldrsh r1, [r5, r2] - cmp r9, r1 - bgt _080B5038 - cmp r1, r8 - bgt _080B5038 - lsls r0, 16 - asrs r1, r0, 16 - cmp r7, r1 - bgt _080B5038 - mov r2, r10 - lsls r0, r2, 16 - asrs r0, 16 - cmp r1, r0 - bgt _080B5038 - ldrb r0, [r4, 0x1D] - bl ResetBerryTreeSparkleFlag -_080B5038: - adds r4, 0x24 - subs r6, 0x1 - cmp r6, 0 - bge _080B4FFC - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B5050: .4byte gMapObjects - thumb_func_end ResetBerryTreeSparkleFlags - - thumb_func_start sub_80B5054 -sub_80B5054: @ 80B5054 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - lsls r3, 24 - lsrs r5, r3, 24 - ldr r0, _080B5098 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080B50A4 - ldr r1, _080B509C - movs r0, 0xFF - strh r0, [r1] - ldr r1, _080B50A0 - lsls r0, r4, 3 - adds r0, r1 - ldrb r2, [r0, 0x4] - ldr r3, [r0] - str r5, [sp] - movs r0, 0 - str r0, [sp, 0x4] - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_80B5138 - movs r0, 0x1 - b _080B50A6 - .align 2, 0 -_080B5098: .4byte sub_80B52B4 -_080B509C: .4byte gScriptResult -_080B50A0: .4byte gMultichoiceLists -_080B50A4: - movs r0, 0 -_080B50A6: - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80B5054 - - thumb_func_start sub_80B50B0 -sub_80B50B0: @ 80B50B0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - ldr r4, [sp, 0x20] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - lsls r3, 24 - lsrs r6, r3, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080B5100 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080B510C - ldr r1, _080B5104 - movs r0, 0xFF - strh r0, [r1] - ldr r1, _080B5108 - lsls r0, r5, 3 - adds r0, r1 - ldrb r2, [r0, 0x4] - ldr r3, [r0] - str r6, [sp] - str r4, [sp, 0x4] - mov r0, r8 - adds r1, r7, 0 - bl sub_80B5138 - movs r0, 0x1 - b _080B510E - .align 2, 0 -_080B5100: .4byte sub_80B52B4 -_080B5104: .4byte gScriptResult -_080B5108: .4byte gMultichoiceLists -_080B510C: - movs r0, 0 -_080B510E: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80B50B0 - - thumb_func_start GetStringWidthInTilesForScriptMenu -GetStringWidthInTilesForScriptMenu: @ 80B511C - push {lr} - adds r1, r0, 0 - ldr r0, _080B5134 - bl GetStringWidthGivenWindowConfig - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0x7 - lsrs r0, r1, 3 - pop {r1} - bx r1 - .align 2, 0 -_080B5134: .4byte gWindowConfig_81E6CE4 - thumb_func_end GetStringWidthInTilesForScriptMenu - - thumb_func_start sub_80B5138 -sub_80B5138: @ 80B5138 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - mov r10, r3 - ldr r3, [sp, 0x34] - ldr r4, [sp, 0x38] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x8] - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0xC] - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x10] - mov r1, r10 - ldr r0, [r1] - bl GetStringWidthInTilesForScriptMenu - lsls r0, 16 - lsrs r5, r0, 16 - movs r4, 0x1 - cmp r4, r8 - bcs _080B5198 -_080B517A: - lsls r0, r4, 3 - add r0, r10 - ldr r0, [r0] - bl GetStringWidthInTilesForScriptMenu - lsls r0, 16 - lsrs r0, 16 - cmp r5, r0 - bcs _080B518E - adds r5, r0, 0 -_080B518E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r8 - bcc _080B517A -_080B5198: - lsls r0, r5, 24 - lsrs r7, r0, 24 - mov r1, r9 - adds r0, r7, r1 - adds r0, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x1D - bls _080B51B8 - mov r0, r9 - adds r0, 0x1D - subs r0, r7 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r7, 0x1D -_080B51B8: - mov r1, r8 - lsls r0, r1, 1 - adds r0, 0x1 - ldr r1, [sp, 0x8] - lsls r4, r1, 24 - asrs r4, 24 - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - mov r0, r9 - adds r2, r7, 0 - adds r3, r4, 0 - bl MenuDrawTextWindow - mov r6, r9 - adds r6, 0x1 - lsls r6, 24 - lsrs r6, 24 - ldr r5, [sp, 0x8] - adds r5, 0x1 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - adds r1, r5, 0 - mov r2, r8 - mov r3, r10 - bl PrintMenuItems - ldr r0, [sp, 0x10] - str r0, [sp] - mov r1, r9 - subs r0, r7, r1 - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0 - adds r1, r6, 0 - adds r2, r5, 0 - mov r3, r8 - bl InitMenu - ldr r0, [sp, 0xC] - str r0, [sp] - mov r1, r8 - str r1, [sp, 0x4] - mov r0, r9 - ldr r1, [sp, 0x8] - adds r2, r7, 0 - adds r3, r4, 0 - bl sub_80B5230 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B5138 - - thumb_func_start sub_80B5230 -sub_80B5230: @ 80B5230 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - ldr r0, [sp, 0x1C] - mov r8, r0 - ldr r0, [sp, 0x20] - mov r9, r0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _080B5298 - movs r1, 0x50 - str r3, [sp] - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B529C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - strh r5, [r1, 0xA] - strh r6, [r1, 0xC] - ldr r3, [sp] - strh r3, [r1, 0xE] - mov r0, r8 - strh r0, [r1, 0x10] - mov r0, r9 - cmp r0, 0x3 - bls _080B52A0 - movs r0, 0x1 - b _080B52A2 - .align 2, 0 -_080B5298: .4byte sub_80B52B4 -_080B529C: .4byte gTasks -_080B52A0: - movs r0, 0 -_080B52A2: - strh r0, [r1, 0x12] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B5230 - - thumb_func_start sub_80B52B4 -sub_80B52B4: @ 80B52B4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080B52E0 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B534E - ldr r2, _080B52E4 - lsls r1, r4, 2 - adds r0, r1, r4 - lsls r0, 3 - adds r0, r2 - movs r2, 0x12 - ldrsh r0, [r0, r2] - adds r5, r1, 0 - cmp r0, 0 - bne _080B52E8 - bl ProcessMenuInputNoWrap - b _080B52EC - .align 2, 0 -_080B52E0: .4byte gPaletteFade -_080B52E4: .4byte gTasks -_080B52E8: - bl ProcessMenuInput -_080B52EC: - lsls r0, 24 - lsrs r0, 24 - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _080B534E - adds r0, 0x1 - cmp r1, r0 - bne _080B5328 - ldr r0, _080B5320 - adds r1, r5, r4 - lsls r1, 3 - adds r1, r0 - movs r2, 0x10 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080B534E - movs r0, 0x5 - bl PlaySE - ldr r1, _080B5324 - movs r0, 0x7F - strh r0, [r1] - b _080B532C - .align 2, 0 -_080B5320: .4byte gTasks -_080B5324: .4byte gScriptResult -_080B5328: - ldr r0, _080B5354 - strh r1, [r0] -_080B532C: - bl sub_8072DEC - ldr r0, _080B5358 - adds r3, r5, r4 - lsls r3, 3 - adds r3, r0 - ldrb r0, [r3, 0x8] - ldrb r1, [r3, 0xA] - ldrb r2, [r3, 0xC] - ldrb r3, [r3, 0xE] - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts -_080B534E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B5354: .4byte gScriptResult -_080B5358: .4byte gTasks - thumb_func_end sub_80B52B4 - - thumb_func_start Multichoice -Multichoice: @ 80B535C - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - lsls r3, 24 - lsrs r5, r3, 24 - ldr r0, _080B539C - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080B53A8 - ldr r1, _080B53A0 - movs r0, 0xFF - strh r0, [r1] - ldr r1, _080B53A4 - lsls r0, r4, 3 - adds r0, r1 - ldrb r2, [r0, 0x4] - ldr r3, [r0] - str r5, [sp] - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_80B53B4 - movs r0, 0x1 - b _080B53AA - .align 2, 0 -_080B539C: .4byte sub_80B52B4 -_080B53A0: .4byte gScriptResult -_080B53A4: .4byte gMultichoiceLists -_080B53A8: - movs r0, 0 -_080B53AA: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end Multichoice - - thumb_func_start sub_80B53B4 -sub_80B53B4: @ 80B53B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r7, r3, 0 - ldr r3, [sp, 0x28] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r10, r3 - ldr r0, [r7] - bl GetStringWidthInTilesForScriptMenu - lsls r0, 16 - lsrs r4, r0, 16 - movs r5, 0x1 - cmp r5, r6 - bcs _080B5408 -_080B53EA: - lsls r0, r5, 3 - adds r0, r7 - ldr r0, [r0] - bl GetStringWidthInTilesForScriptMenu - lsls r0, 16 - lsrs r0, 16 - cmp r4, r0 - bcs _080B53FE - adds r4, r0, 0 -_080B53FE: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r6 - bcc _080B53EA -_080B5408: - lsls r4, 24 - lsrs r4, 24 - add r4, r8 - adds r4, 0x2 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r6, 1 - adds r0, 0x1 - mov r1, r9 - lsls r5, r1, 24 - asrs r5, 24 - adds r5, r0 - lsls r5, 24 - lsrs r5, 24 - mov r0, r8 - adds r2, r6, 0 - adds r3, r7, 0 - bl PrintMenuItems - movs r0, 0 - str r0, [sp] - mov r1, r8 - subs r0, r4, r1 - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0 - mov r2, r9 - adds r3, r6, 0 - bl InitMenu - mov r0, r10 - str r0, [sp] - str r6, [sp, 0x4] - mov r0, r8 - mov r1, r9 - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_80B5230 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B53B4 - - thumb_func_start yes_no_box -yes_no_box: @ 80B546C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r6, _080B54B4 - adds r0, r6, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080B54C0 - ldr r1, _080B54B8 - movs r0, 0xFF - strh r0, [r1] - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl DisplayYesNoMenu - adds r0, r6, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B54BC - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - strh r4, [r1, 0xA] - movs r0, 0x1 - b _080B54C2 - .align 2, 0 -_080B54B4: .4byte task_yes_no_maybe -_080B54B8: .4byte gScriptResult -_080B54BC: .4byte gTasks -_080B54C0: - movs r0, 0 -_080B54C2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end yes_no_box - - thumb_func_start unref_sub_80B54C8 -unref_sub_80B54C8: @ 80B54C8 - push {lr} - ldr r0, _080B54D8 - ldrh r0, [r0] - cmp r0, 0xFF - beq _080B54DC - movs r0, 0x1 - b _080B54DE - .align 2, 0 -_080B54D8: .4byte gScriptResult -_080B54DC: - movs r0, 0 -_080B54DE: - pop {r1} - bx r1 - thumb_func_end unref_sub_80B54C8 - - thumb_func_start task_yes_no_maybe -task_yes_no_maybe: @ 80B54E4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080B5504 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0x4 - bgt _080B5508 - adds r0, r2, 0x1 - strh r0, [r1, 0xC] - b _080B556A - .align 2, 0 -_080B5504: .4byte gTasks -_080B5508: - bl ProcessMenuInputNoWrap - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080B552C - cmp r1, r0 - bgt _080B5524 - subs r0, 0x1 - cmp r1, r0 - beq _080B556A - b _080B5542 -_080B5524: - cmp r1, 0 - beq _080B553C - cmp r1, 0x1 - bne _080B5542 -_080B552C: - movs r0, 0x5 - bl PlaySE - ldr r1, _080B5538 - movs r0, 0 - b _080B5540 - .align 2, 0 -_080B5538: .4byte gScriptResult -_080B553C: - ldr r1, _080B5570 - movs r0, 0x1 -_080B5540: - strh r0, [r1] -_080B5542: - ldr r0, _080B5574 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x8] - ldrb r1, [r1, 0xA] - adds r2, r0, 0x6 - lsls r2, 24 - lsrs r2, 24 - adds r3, r1, 0x5 - lsls r3, 24 - lsrs r3, 24 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts -_080B556A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B5570: .4byte gScriptResult -_080B5574: .4byte gTasks - thumb_func_end task_yes_no_maybe - - thumb_func_start sub_80B5578 -sub_80B5578: @ 80B5578 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - ldr r4, [sp, 0x30] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0xC] - lsls r4, 24 - lsrs r5, r4, 24 - movs r7, 0 - ldr r0, _080B55B8 - mov r10, r0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B55BC - movs r0, 0 - b _080B5670 - .align 2, 0 -_080B55B8: .4byte sub_80B5684 -_080B55BC: - ldr r1, _080B5620 - movs r0, 0xFF - strh r0, [r1] - ldr r0, _080B5624 - lsls r4, r6, 3 - adds r0, r4, r0 - ldrb r6, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r5, [sp, 0x4] - str r7, [sp, 0x8] - mov r0, r9 - mov r1, r8 - adds r2, r6, 0 - movs r3, 0 - bl sub_807274C - mov r0, r10 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r0, r6, 24 - lsrs r1, r0, 24 - lsrs r0, 25 - cmp r0, r5 - bcc _080B55FE - movs r0, 0x1 - ands r0, r6 - cmp r0, 0 - beq _080B5606 -_080B55FE: - cmp r5, 0x1 - beq _080B5606 - cmp r1, r5 - bne _080B5628 -_080B5606: - ldr r0, _080B5624 - adds r0, r4, r0 - ldrb r0, [r0, 0x4] - adds r1, r5, 0 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 23 - adds r0, 0x1 - mov r2, r8 - lsls r1, r2, 24 - b _080B563A - .align 2, 0 -_080B5620: .4byte gScriptResult -_080B5624: .4byte gMultichoiceLists -_080B5628: - adds r0, r6, 0 - adds r1, r5, 0 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 23 - adds r0, 0x3 - mov r3, r8 - lsls r1, r3, 24 -_080B563A: - asrs r1, 24 - adds r1, r0 - lsls r1, 24 - lsrs r7, r1, 24 - adds r0, r5, 0 - bl sub_807288C - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B5680 - mov r3, r10 - lsls r1, r3, 2 - add r1, r10 - lsls r1, 3 - adds r1, r2 - mov r2, r9 - strh r2, [r1, 0x8] - mov r3, r8 - strh r3, [r1, 0xA] - add r0, r9 - adds r0, 0x2 - strh r0, [r1, 0xC] - strh r7, [r1, 0xE] - mov r0, sp - ldrh r0, [r0, 0xC] - strh r0, [r1, 0x10] - movs r0, 0x1 -_080B5670: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080B5680: .4byte gTasks - thumb_func_end sub_80B5578 - - thumb_func_start sub_80B5684 -sub_80B5684: @ 80B5684 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_80727CC - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _080B56F4 - adds r0, 0x1 - cmp r1, r0 - bne _080B56CC - ldr r2, _080B56C4 - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - adds r0, r2 - movs r2, 0x10 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0 - bne _080B56F4 - movs r0, 0x5 - bl PlaySE - ldr r1, _080B56C8 - movs r0, 0x7F - strh r0, [r1] - b _080B56D2 - .align 2, 0 -_080B56C4: .4byte gTasks -_080B56C8: .4byte gScriptResult -_080B56CC: - ldr r0, _080B56FC - strh r1, [r0] - lsls r4, r5, 2 -_080B56D2: - bl sub_8072DEC - ldr r0, _080B5700 - adds r3, r4, r5 - lsls r3, 3 - adds r3, r0 - ldrb r0, [r3, 0x8] - ldrb r1, [r3, 0xA] - ldrb r2, [r3, 0xC] - ldrb r3, [r3, 0xE] - bl MenuZeroFillWindowRect - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts -_080B56F4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B56FC: .4byte gScriptResult -_080B5700: .4byte gTasks - thumb_func_end sub_80B5684 - - thumb_func_start sp109_CreatePCMenu -sp109_CreatePCMenu: @ 80B5704 - push {lr} - ldr r0, _080B5724 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080B572C - ldr r1, _080B5728 - movs r0, 0xFF - strh r0, [r1] - bl CreatePCMenu - movs r0, 0x1 - b _080B572E - .align 2, 0 -_080B5724: .4byte sub_80B52B4 -_080B5728: .4byte gScriptResult -_080B572C: - movs r0, 0 -_080B572E: - pop {r1} - bx r1 - thumb_func_end sp109_CreatePCMenu - - thumb_func_start CreatePCMenu -CreatePCMenu: @ 80B5734 - push {r4-r7,lr} - sub sp, 0x8 - ldr r0, _080B5758 - bl GetStringWidthInTilesForScriptMenu - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080B575C - bl GetStringWidthInTilesForScriptMenu - lsls r0, 16 - lsrs r0, 16 - cmp r4, r0 - bls _080B5760 - lsls r0, r4, 24 - lsrs r5, r0, 24 - b _080B5762 - .align 2, 0 -_080B5758: .4byte gPCText_PlayersPC -_080B575C: .4byte gPCText_SomeonesPC -_080B5760: - movs r5, 0x8 -_080B5762: - ldr r0, _080B5798 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080B57A4 - movs r7, 0x4 - adds r4, r5, 0x2 - lsls r2, r4, 24 - lsrs r2, 24 - movs r0, 0 - movs r1, 0 - movs r3, 0x9 - bl MenuDrawTextWindow - ldr r0, _080B579C - movs r1, 0x1 - movs r2, 0x5 - bl MenuPrint - ldr r0, _080B57A0 - movs r1, 0x1 - movs r2, 0x7 - bl MenuPrint - b _080B57C0 - .align 2, 0 -_080B5798: .4byte 0x00000804 -_080B579C: .4byte gPCText_HallOfFame -_080B57A0: .4byte gPCText_LogOff -_080B57A4: - movs r7, 0x3 - adds r4, r5, 0x2 - lsls r2, r4, 24 - lsrs r2, 24 - movs r0, 0 - movs r1, 0 - movs r3, 0x7 - bl MenuDrawTextWindow - ldr r0, _080B57DC - movs r1, 0x1 - movs r2, 0x5 - bl MenuPrint -_080B57C0: - adds r6, r4, 0 - ldr r0, _080B57E0 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080B57E8 - ldr r0, _080B57E4 - movs r1, 0x1 - movs r2, 0x1 - bl MenuPrint - b _080B57F2 - .align 2, 0 -_080B57DC: .4byte gPCText_LogOff -_080B57E0: .4byte 0x0000084b -_080B57E4: .4byte gPCText_LanettesPC -_080B57E8: - ldr r0, _080B5830 - movs r1, 0x1 - movs r2, 0x1 - bl MenuPrint -_080B57F2: - ldr r0, _080B5834 - movs r1, 0x1 - movs r2, 0x3 - bl MenuPrint - movs r4, 0 - str r4, [sp] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - adds r3, r7, 0 - bl InitMenu - lsls r2, r6, 24 - lsrs r2, 24 - lsls r3, r7, 1 - adds r3, 0x1 - str r4, [sp] - str r7, [sp, 0x4] - movs r0, 0 - movs r1, 0 - bl sub_80B5230 - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B5830: .4byte gPCText_SomeonesPC -_080B5834: .4byte gPCText_PlayersPC - thumb_func_end CreatePCMenu - - thumb_func_start sub_80B5838 -sub_80B5838: @ 80B5838 - push {lr} - bl MenuDisplayMessageBox - ldr r0, _080B584C - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - pop {r0} - bx r0 - .align 2, 0 -_080B584C: .4byte gUnknown_081A0A01 - thumb_func_end sub_80B5838 - - thumb_func_start task_picbox -task_picbox: @ 80B5850 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B5874 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B58BE - cmp r0, 0x1 - bgt _080B5878 - cmp r0, 0 - beq _080B5894 - b _080B58BE - .align 2, 0 -_080B5874: .4byte gTasks -_080B5878: - cmp r0, 0x2 - beq _080B5882 - cmp r0, 0x3 - beq _080B58A0 - b _080B58BE -_080B5882: - movs r0, 0xC - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B589C - adds r0, r1 - bl sub_8085C44 -_080B5894: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B58BE - .align 2, 0 -_080B589C: .4byte gSprites -_080B58A0: - ldrb r2, [r4, 0xE] - adds r0, r2, 0 - ldrb r3, [r4, 0x10] - adds r1, r3, 0 - adds r2, 0x9 - lsls r2, 24 - lsrs r2, 24 - adds r3, 0xA - lsls r3, 24 - lsrs r3, 24 - bl MenuZeroFillWindowRect - adds r0, r5, 0 - bl DestroyTask -_080B58BE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end task_picbox - - thumb_func_start sub_80B58C4 -sub_80B58C4: @ 80B58C4 - push {r4-r7,lr} - lsls r0, 16 - lsrs r7, r0, 16 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - ldr r4, _080B595C - adds r0, r4, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080B596C - adds r2, r6, 0 - adds r2, 0x9 - lsls r2, 24 - lsrs r2, 24 - adds r3, r5, 0 - adds r3, 0xA - lsls r3, 24 - lsrs r3, 24 - adds r0, r6, 0 - adds r1, r5, 0 - bl MenuDrawTextWindow - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B5960 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r0, 0 - strh r0, [r4, 0x8] - strh r7, [r4, 0xA] - lsls r1, r6, 19 - movs r0, 0xA0 - lsls r0, 14 - adds r1, r0 - asrs r1, 16 - lsls r2, r5, 19 - adds r2, r0 - asrs r2, 16 - adds r0, r7, 0 - movs r3, 0 - bl sub_8085AD4 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xC] - strh r6, [r4, 0xE] - strh r5, [r4, 0x10] - ldr r3, _080B5964 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r0, r3, 0 - adds r0, 0x1C - adds r0, r1, r0 - ldr r2, _080B5968 - str r2, [r0] - adds r1, r3 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] - movs r0, 0x1 - b _080B596E - .align 2, 0 -_080B595C: .4byte task_picbox -_080B5960: .4byte gTasks -_080B5964: .4byte gSprites -_080B5968: .4byte SpriteCallbackDummy -_080B596C: - movs r0, 0 -_080B596E: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80B58C4 - - thumb_func_start picbox_close -picbox_close: @ 80B5974 - push {lr} - ldr r0, _080B5998 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080B59A4 - ldr r0, _080B599C - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r0, _080B59A0 - b _080B59A6 - .align 2, 0 -_080B5998: .4byte task_picbox -_080B599C: .4byte gTasks -_080B59A0: .4byte sub_80B59AC -_080B59A4: - movs r0, 0 -_080B59A6: - pop {r1} - bx r1 - thumb_func_end picbox_close - - thumb_func_start sub_80B59AC -sub_80B59AC: @ 80B59AC - push {lr} - ldr r0, _080B59C0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080B59C4 - movs r0, 0 - b _080B59C6 - .align 2, 0 -_080B59C0: .4byte task_picbox -_080B59C4: - movs r0, 0x1 -_080B59C6: - pop {r1} - bx r1 - thumb_func_end sub_80B59AC - - thumb_func_start DoNamingScreen -DoNamingScreen: @ 80B59CC - push {r4,r5,lr} - sub sp, 0x8 - ldr r4, [sp, 0x14] - ldr r5, [sp, 0x18] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - str r4, [sp] - str r5, [sp, 0x4] - bl AddNamingScreenTask - ldr r0, _080B59F8 - bl SetMainCallback2 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B59F8: .4byte C2_NamingScreen - thumb_func_end DoNamingScreen - - thumb_func_start C2_NamingScreen -C2_NamingScreen: @ 80B59FC - push {lr} - ldr r0, _080B5A14 - ldr r1, _080B5A18 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x7 - bhi _080B5A96 - lsls r0, 2 - ldr r1, _080B5A1C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B5A14: .4byte gMain -_080B5A18: .4byte 0x0000043c -_080B5A1C: .4byte _080B5A20 - .align 2, 0 -_080B5A20: - .4byte _080B5A40 - .4byte _080B5A4A - .4byte _080B5A50 - .4byte _080B5A56 - .4byte _080B5A5C - .4byte _080B5A62 - .4byte _080B5A68 - .4byte _080B5A84 -_080B5A40: - bl NamingScreen_TurnOffScreen - bl NamingScreen_Init - b _080B5A6C -_080B5A4A: - bl NamingScreen_ClearVram - b _080B5A6C -_080B5A50: - bl NamingScreen_ClearOam - b _080B5A6C -_080B5A56: - bl NamingScreen_SetUpVideoRegs - b _080B5A6C -_080B5A5C: - bl sub_80B5DC8 - b _080B5A6C -_080B5A62: - bl NamingScreen_ResetObjects - b _080B5A6C -_080B5A68: - bl sub_80B5DFC -_080B5A6C: - ldr r1, _080B5A7C - ldr r0, _080B5A80 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080B5A96 - .align 2, 0 -_080B5A7C: .4byte gMain -_080B5A80: .4byte 0x0000043c -_080B5A84: - bl sub_80B5E20 - bl sub_80B5E3C - bl sub_80B5C04 - ldr r0, _080B5A9C - bl SetMainCallback2 -_080B5A96: - pop {r0} - bx r0 - .align 2, 0 -_080B5A9C: .4byte sub_80B5AA0 - thumb_func_end C2_NamingScreen - - thumb_func_start sub_80B5AA0 -sub_80B5AA0: @ 80B5AA0 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_80B5AA0 - - thumb_func_start sub_80B5AB8 -sub_80B5AB8: @ 80B5AB8 - push {r4,lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r1, _080B5B00 - ldr r4, _080B5B04 - ldrh r0, [r4, 0x4] - strh r0, [r1] - adds r1, 0x4 - ldrh r0, [r4, 0x6] - strh r0, [r1] - ldr r2, _080B5B08 - ldrh r1, [r2] - ldr r3, _080B5B0C - adds r0, r3, 0 - ands r0, r1 - strh r0, [r2] - ldrh r0, [r2] - ldrh r1, [r4, 0x8] - orrs r0, r1 - strh r0, [r2] - adds r2, 0x2 - ldrh r0, [r2] - ands r3, r0 - strh r3, [r2] - ldrh r0, [r2] - ldrh r1, [r4, 0xA] - orrs r0, r1 - strh r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B5B00: .4byte REG_BG1VOFS -_080B5B04: .4byte 0x02000000 -_080B5B08: .4byte REG_BG1CNT -_080B5B0C: .4byte 0x0000fffc - thumb_func_end sub_80B5AB8 - - thumb_func_start AddNamingScreenTask -AddNamingScreenTask: @ 80B5B10 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r8, r0 - mov r9, r1 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r7, [sp, 0x1C] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - ldr r0, _080B5B74 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080B5B78 - adds r4, r0 - mov r0, r8 - strh r0, [r4, 0x8] - strh r5, [r4, 0xA] - strh r6, [r4, 0xC] - lsrs r0, r7, 16 - strh r0, [r4, 0xE] - strh r7, [r4, 0x10] - adds r0, r4, 0 - adds r0, 0x12 - mov r1, r9 - bl StoreWordInTwoHalfwords - adds r4, 0x16 - adds r0, r4, 0 - ldr r1, [sp, 0x20] - bl StoreWordInTwoHalfwords - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B5B74: .4byte NamingScreenDummyTask -_080B5B78: .4byte gTasks - thumb_func_end AddNamingScreenTask - - thumb_func_start GetNamingScreenParameters -GetNamingScreenParameters: @ 80B5B7C - push {r4-r6,lr} - ldr r0, _080B5BD8 - bl FindTaskIdByFunc - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _080B5BDC - adds r4, r0 - ldr r6, _080B5BE0 - ldrh r0, [r4, 0x8] - strb r0, [r6, 0x1] - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x3E] - ldrh r1, [r4, 0xC] - adds r0, r6, 0 - adds r0, 0x40 - strh r1, [r0] - movs r1, 0xE - ldrsh r0, [r4, r1] - lsls r0, 16 - ldrh r1, [r4, 0x10] - orrs r0, r1 - str r0, [r6, 0x44] - adds r0, r4, 0 - adds r0, 0x12 - adds r1, r6, 0 - adds r1, 0x38 - bl LoadWordFromTwoHalfwords - adds r4, 0x16 - adds r1, r6, 0 - adds r1, 0x48 - adds r0, r4, 0 - bl LoadWordFromTwoHalfwords - adds r0, r5, 0 - bl DestroyTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B5BD8: .4byte NamingScreenDummyTask -_080B5BDC: .4byte gTasks -_080B5BE0: .4byte 0x02000000 - thumb_func_end GetNamingScreenParameters - - thumb_func_start NamingScreenDummyTask -NamingScreenDummyTask: @ 80B5BE4 - bx lr - thumb_func_end NamingScreenDummyTask - - thumb_func_start NamingScreen_TurnOffScreen -NamingScreen_TurnOffScreen: @ 80B5BE8 - push {lr} - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - pop {r0} - bx r0 - thumb_func_end NamingScreen_TurnOffScreen - - thumb_func_start sub_80B5C04 -sub_80B5C04: @ 80B5C04 - push {r4,lr} - ldr r0, _080B5C3C - bl SetVBlankCallback - ldr r3, _080B5C40 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _080B5C44 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _080B5C48 - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B5C3C: .4byte sub_80B5AB8 -_080B5C40: .4byte 0x04000208 -_080B5C44: .4byte 0x04000200 -_080B5C48: .4byte REG_DISPSTAT - thumb_func_end sub_80B5C04 - - thumb_func_start NamingScreen_ClearVram -NamingScreen_ClearVram: @ 80B5C4C - push {r4-r7,lr} - sub sp, 0x4 - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0x80 - lsls r3, 9 - mov r4, sp - movs r6, 0 - ldr r1, _080B5C98 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _080B5C9C - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_080B5C6A: - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r5 - subs r3, r5 - cmp r3, r5 - bhi _080B5C6A - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B5C98: .4byte 0x040000d4 -_080B5C9C: .4byte 0x81000800 - thumb_func_end NamingScreen_ClearVram - - thumb_func_start NamingScreen_ClearOam -NamingScreen_ClearOam: @ 80B5CA0 - sub sp, 0x4 - movs r2, 0xE0 - lsls r2, 19 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r0, _080B5CBC - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080B5CC0 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - add sp, 0x4 - bx lr - .align 2, 0 -_080B5CBC: .4byte 0x040000d4 -_080B5CC0: .4byte 0x81000200 - thumb_func_end NamingScreen_ClearOam - - thumb_func_start NamingScreen_SetUpVideoRegs -NamingScreen_SetUpVideoRegs: @ 80B5CC4 - push {r4,r5,lr} - ldr r5, _080B5D2C - movs r1, 0 - strh r1, [r5] - ldr r2, _080B5D30 - strh r1, [r2] - ldr r3, _080B5D34 - strh r1, [r3] - ldr r4, _080B5D38 - strh r1, [r4] - ldr r0, _080B5D3C - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - movs r1, 0xF8 - lsls r1, 5 - adds r0, r1, 0 - strh r0, [r5] - ldr r1, _080B5D40 - adds r0, r1, 0 - strh r0, [r2] - ldr r2, _080B5D44 - adds r0, r2, 0 - strh r0, [r3] - ldr r1, _080B5D48 - adds r0, r1, 0 - strh r0, [r4] - ldr r1, _080B5D4C - movs r2, 0xC8 - lsls r2, 3 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080B5D50 - adds r0, r2, 0 - strh r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B5D2C: .4byte REG_BG0CNT -_080B5D30: .4byte REG_BG1CNT -_080B5D34: .4byte REG_BG2CNT -_080B5D38: .4byte REG_BG3CNT -_080B5D3C: .4byte REG_BG0HOFS -_080B5D40: .4byte 0x00001c01 -_080B5D44: .4byte 0x00001d0a -_080B5D48: .4byte 0x00001e03 -_080B5D4C: .4byte REG_BLDCNT -_080B5D50: .4byte 0x0000080c - thumb_func_end NamingScreen_SetUpVideoRegs - - thumb_func_start NamingScreen_Init -NamingScreen_Init: @ 80B5D54 - push {r4-r6,lr} - bl GetNamingScreenParameters - ldr r4, _080B5DBC - movs r0, 0 - strb r0, [r4] - movs r2, 0 - strh r0, [r4, 0x4] - strh r0, [r4, 0x6] - movs r1, 0x1 - movs r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x2 - strh r0, [r4, 0xA] - strb r2, [r4, 0xC] - strb r1, [r4, 0xD] - ldr r1, _080B5DC0 - ldrb r0, [r4, 0x1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r4, 0x34] - ldrb r1, [r0, 0x4] - strb r1, [r4, 0xE] - ldrb r1, [r0, 0x1] - lsrs r1, 1 - movs r0, 0xE - subs r0, r1 - strh r0, [r4, 0x2] - ldr r6, _080B5DC4 - ldrh r0, [r6] - strh r0, [r4, 0x3C] - adds r5, r4, 0 - adds r5, 0x11 - adds r0, r5, 0 - movs r1, 0xFF - movs r2, 0x10 - bl memset - ldr r0, [r4, 0x34] - ldrb r0, [r0] - cmp r0, 0 - beq _080B5DB2 - ldr r1, [r4, 0x38] - adds r0, r5, 0 - bl StringCopy -_080B5DB2: - movs r0, 0x10 - strh r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B5DBC: .4byte 0x02000000 -_080B5DC0: .4byte gUnknown_083CE398 -_080B5DC4: .4byte gKeyRepeatStartDelay - thumb_func_end NamingScreen_Init - - thumb_func_start sub_80B5DC8 -sub_80B5DC8: @ 80B5DC8 - push {r4,lr} - ldr r4, _080B5DE0 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B5DE0: .4byte gWindowConfig_81E6E88 - thumb_func_end sub_80B5DC8 - - thumb_func_start NamingScreen_ResetObjects -NamingScreen_ResetObjects: @ 80B5DE4 - push {lr} - bl ResetPaletteFade - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - pop {r0} - bx r0 - thumb_func_end NamingScreen_ResetObjects - - thumb_func_start sub_80B5DFC -sub_80B5DFC: @ 80B5DFC - push {lr} - bl sub_80B7558 - bl sub_80B753C - bl sub_80B7680 - bl sub_80B75C4 - bl sub_80B7794 - bl sub_80B78A8 - bl sub_80B7960 - pop {r0} - bx r0 - thumb_func_end sub_80B5DFC - - thumb_func_start sub_80B5E20 -sub_80B5E20: @ 80B5E20 - push {lr} - bl sub_80B6774 - bl sub_80B6A80 - bl sub_80B6CA8 - bl sub_80B6D04 - bl sub_80B6E44 - pop {r0} - bx r0 - thumb_func_end sub_80B5E20 - - thumb_func_start sub_80B5E3C -sub_80B5E3C: @ 80B5E3C - push {lr} - bl sub_80B61D8 - bl sub_80B6438 - bl sub_80B5E50 - pop {r0} - bx r0 - thumb_func_end sub_80B5E3C - - thumb_func_start sub_80B5E50 -sub_80B5E50: @ 80B5E50 - push {r4,lr} - ldr r4, _080B5E6C - adds r0, r4, 0 - movs r1, 0x2 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B5E6C: .4byte sub_80B5E70 - thumb_func_end sub_80B5E50 - - thumb_func_start sub_80B5E70 -sub_80B5E70: @ 80B5E70 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r7, _080B5E9C - lsls r1, r0, 2 - adds r1, r0 - lsls r4, r1, 3 - ldr r6, _080B5EA0 - ldr r5, _080B5EA4 -_080B5E82: - ldrb r0, [r6] - lsls r0, 2 - adds r0, r7 - ldr r1, [r0] - adds r0, r4, r5 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _080B5E82 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B5E9C: .4byte gUnknown_083CE218 -_080B5EA0: .4byte 0x02000000 -_080B5EA4: .4byte gTasks - thumb_func_end sub_80B5E70 - - thumb_func_start sub_80B5EA8 -sub_80B5EA8: @ 80B5EA8 - push {lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _080B5ECC - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 - add sp, 0x4 - pop {r1} - bx r1 - .align 2, 0 -_080B5ECC: .4byte 0x02000000 - thumb_func_end sub_80B5EA8 - - thumb_func_start sub_80B5ED0 -sub_80B5ED0: @ 80B5ED0 - push {lr} - ldr r0, _080B5EF8 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B5EF2 - movs r0, 0x1 - bl sub_80B6210 - movs r0, 0x1 - bl sub_80B68D8 - ldr r1, _080B5EFC - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080B5EF2: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080B5EF8: .4byte gPaletteFade -_080B5EFC: .4byte 0x02000000 - thumb_func_end sub_80B5ED0 - - thumb_func_start sub_80B5F00 -sub_80B5F00: @ 80B5F00 - push {lr} - bl sub_80B60B8 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80B5F00 - - thumb_func_start sub_80B5F10 -sub_80B5F10: @ 80B5F10 - push {lr} - bl sub_80B6938 - lsls r0, 24 - cmp r0, 0 - beq _080B5F2C - movs r0, 0x1 - bl sub_80B6210 - bl sub_80B6878 - ldr r1, _080B5F34 - movs r0, 0x2 - strb r0, [r1] -_080B5F2C: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080B5F34: .4byte 0x02000000 - thumb_func_end sub_80B5F10 - - thumb_func_start sub_80B5F38 -sub_80B5F38: @ 80B5F38 - push {lr} - movs r0, 0 - bl sub_80B6210 - bl sub_80B6B14 - bl sub_80B65F0 - movs r0, 0x1 - bl sub_80B6888 - movs r0, 0 - movs r1, 0 - movs r2, 0x1 - bl sub_80B6460 - movs r0, 0x6 - bl PlaySE - ldr r1, _080B5F6C - movs r0, 0x5 - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080B5F6C: .4byte 0x02000000 - thumb_func_end sub_80B5F38 - - thumb_func_start sub_80B5F70 -sub_80B5F70: @ 80B5F70 - push {r4,r5,lr} - sub sp, 0x4 - bl sub_80B6610 - lsls r0, 24 - cmp r0, 0 - beq _080B5FDC - ldr r4, _080B5FE8 - movs r0, 0x2 - strb r0, [r4] - ldrb r0, [r4, 0xE] - adds r0, 0x1 - strb r0, [r4, 0xE] - ldrb r0, [r4, 0xE] - movs r1, 0x3 - bl __umodsi3 - strb r0, [r4, 0xE] - bl sub_80B7614 - bl sub_80B77F8 - movs r0, 0x1 - bl sub_80B6210 - mov r5, sp - adds r5, 0x2 - mov r0, sp - adds r1, r5, 0 - bl sub_80B6858 - ldrb r0, [r4, 0xE] - cmp r0, 0x2 - bne _080B5FC8 - mov r0, sp - ldrh r0, [r0] - subs r0, 0x6 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080B5FC8 - mov r1, sp - movs r0, 0x5 - strh r0, [r1] -_080B5FC8: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl sub_80B680C - movs r0, 0 - bl sub_80B6888 -_080B5FDC: - movs r0, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080B5FE8: .4byte 0x02000000 - thumb_func_end sub_80B5F70 - - thumb_func_start pokemon_store -pokemon_store: @ 80B5FEC - push {r4,lr} - bl sub_80B74B0 - movs r0, 0 - bl sub_80B6210 - movs r0, 0 - bl sub_80B68D8 - movs r0, 0x3 - movs r1, 0 - movs r2, 0x1 - bl sub_80B6460 - ldr r0, _080B6030 - ldr r4, _080B6034 - ldrh r1, [r4, 0x3C] - strh r1, [r0] - ldrb r0, [r4, 0x1] - cmp r0, 0x2 - bne _080B6038 - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bls _080B6038 - bl sub_80B74FC - movs r0, 0x7 - strb r0, [r4] - movs r0, 0 - b _080B6040 - .align 2, 0 -_080B6030: .4byte gKeyRepeatStartDelay -_080B6034: .4byte 0x02000000 -_080B6038: - ldr r1, _080B6048 - movs r0, 0x8 - strb r0, [r1] - movs r0, 0x1 -_080B6040: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B6048: .4byte 0x02000000 - thumb_func_end pokemon_store - - thumb_func_start sub_80B604C -sub_80B604C: @ 80B604C - push {lr} - bl MenuUpdateWindowText - lsls r0, 24 - cmp r0, 0 - beq _080B6060 - ldr r1, _080B6068 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080B6060: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080B6068: .4byte 0x02000000 - thumb_func_end sub_80B604C - - thumb_func_start sub_80B606C -sub_80B606C: @ 80B606C - push {lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080B6090 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 - add sp, 0x4 - pop {r1} - bx r1 - .align 2, 0 -_080B6090: .4byte 0x02000000 - thumb_func_end sub_80B606C - - thumb_func_start sub_80B6094 -sub_80B6094: @ 80B6094 - push {lr} - ldr r0, _080B60B0 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B60AA - ldr r0, _080B60B4 - ldr r0, [r0, 0x48] - bl SetMainCallback2 -_080B60AA: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080B60B0: .4byte gPaletteFade -_080B60B4: .4byte 0x02000000 - thumb_func_end sub_80B6094 - - thumb_func_start sub_80B60B8 -sub_80B60B8: @ 80B60B8 - push {r4,r5,lr} - bl sub_80B61EC - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_80B6958 - lsls r0, 24 - lsrs r0, 24 - cmp r4, 0x8 - bne _080B60D6 - bl sub_80B61C8 - b _080B60F2 -_080B60D6: - cmp r4, 0x6 - bne _080B60E0 - bl sub_80B6FBC - b _080B6100 -_080B60E0: - cmp r5, 0x7 - beq _080B60FC - ldr r1, _080B60F8 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 -_080B60F2: - lsls r0, 24 - lsrs r0, 24 - b _080B6102 - .align 2, 0 -_080B60F8: .4byte gUnknown_083CE240 -_080B60FC: - bl sub_80B7090 -_080B6100: - movs r0, 0 -_080B6102: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B60B8 - - thumb_func_start sub_80B6108 -sub_80B6108: @ 80B6108 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl sub_80B6460 - cmp r4, 0x5 - bne _080B613C - bl sub_80B7004 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80B6914 - cmp r4, 0 - beq _080B613C - movs r0, 0 - bl sub_80B6210 - ldr r1, _080B6144 - movs r0, 0x3 - strb r0, [r1] -_080B613C: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B6144: .4byte 0x02000000 - thumb_func_end sub_80B6108 - - thumb_func_start sub_80B6148 -sub_80B6148: @ 80B6148 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_80B6460 - cmp r4, 0x5 - beq _080B6162 - movs r0, 0 - b _080B616A -_080B6162: - bl sub_80B61C8 - lsls r0, 24 - lsrs r0, 24 -_080B616A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B6148 - - thumb_func_start sub_80B6170 -sub_80B6170: @ 80B6170 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl sub_80B6460 - cmp r4, 0x5 - bne _080B618A - bl sub_80B6FBC -_080B618A: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B6170 - - thumb_func_start sub_80B6194 -sub_80B6194: @ 80B6194 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl sub_80B6460 - cmp r4, 0x5 - beq _080B61AE - movs r0, 0 - b _080B61BC -_080B61AE: - movs r0, 0x5 - bl PlaySE - ldr r1, _080B61C4 - movs r0, 0x6 - strb r0, [r1] - movs r0, 0x1 -_080B61BC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B61C4: .4byte 0x02000000 - thumb_func_end sub_80B6194 - - thumb_func_start sub_80B61C8 -sub_80B61C8: @ 80B61C8 - ldr r1, _080B61D4 - movs r0, 0x4 - strb r0, [r1] - movs r0, 0x1 - bx lr - .align 2, 0 -_080B61D4: .4byte 0x02000000 - thumb_func_end sub_80B61C8 - - thumb_func_start sub_80B61D8 -sub_80B61D8: @ 80B61D8 - push {lr} - ldr r0, _080B61E8 - movs r1, 0x1 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080B61E8: .4byte sub_80B623C - thumb_func_end sub_80B61D8 - - thumb_func_start sub_80B61EC -sub_80B61EC: @ 80B61EC - push {lr} - ldr r0, _080B6208 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B620C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r0, [r1, 0xA] - pop {r1} - bx r1 - .align 2, 0 -_080B6208: .4byte sub_80B623C -_080B620C: .4byte gTasks - thumb_func_end sub_80B61EC - - thumb_func_start sub_80B6210 -sub_80B6210: @ 80B6210 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080B6234 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B6238 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B6234: .4byte sub_80B623C -_080B6238: .4byte gTasks - thumb_func_end sub_80B6210 - - thumb_func_start sub_80B623C -sub_80B623C: @ 80B623C - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _080B6264 - ldr r2, _080B6268 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080B6264: .4byte gUnknown_083CE250 -_080B6268: .4byte gTasks - thumb_func_end sub_80B623C - - thumb_func_start sub_80B626C -sub_80B626C: @ 80B626C - movs r1, 0 - strh r1, [r0, 0xA] - bx lr - thumb_func_end sub_80B626C - - thumb_func_start sub_80B6274 -sub_80B6274: @ 80B6274 - push {lr} - adds r2, r0, 0 - movs r0, 0 - strh r0, [r2, 0xA] - ldr r0, _080B6290 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B6294 - movs r0, 0x5 - strh r0, [r2, 0xA] - b _080B62C8 - .align 2, 0 -_080B6290: .4byte gMain -_080B6294: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080B62A2 - movs r0, 0x6 - strh r0, [r2, 0xA] - b _080B62C8 -_080B62A2: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080B62B0 - movs r0, 0x8 - strh r0, [r2, 0xA] - b _080B62C8 -_080B62B0: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080B62C2 - movs r0, 0x9 - strh r0, [r2, 0xA] - bl sub_80B6878 - b _080B62C8 -_080B62C2: - adds r0, r2, 0 - bl sub_80B62CC -_080B62C8: - pop {r0} - bx r0 - thumb_func_end sub_80B6274 - - thumb_func_start sub_80B62CC -sub_80B62CC: @ 80B62CC - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl sub_80B6858 - ldr r0, _080B6374 - ldrh r2, [r0, 0x30] - movs r0, 0x40 - ands r0, r2 - lsls r0, 16 - lsrs r0, 16 - negs r0, r0 - lsrs r1, r0, 31 - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _080B62F8 - movs r1, 0x2 -_080B62F8: - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _080B6302 - movs r1, 0x3 -_080B6302: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _080B630C - movs r1, 0x4 -_080B630C: - mov r0, sp - ldrh r6, [r0] - mov r2, sp - ldr r0, _080B6378 - lsls r1, 1 - adds r0, r1, r0 - ldrh r3, [r0] - adds r0, r6, r3 - strh r0, [r2] - ldr r0, _080B637C - adds r1, r0 - ldrh r0, [r1] - ldrh r1, [r4] - adds r0, r1 - strh r0, [r4] - mov r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bge _080B633A - mov r1, sp - movs r0, 0x8 - strh r0, [r1] -_080B633A: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x8 - ble _080B634A - mov r1, sp - movs r0, 0 - strh r0, [r1] -_080B634A: - lsls r0, r3, 16 - asrs r1, r0, 16 - cmp r1, 0 - beq _080B63CA - ldr r0, _080B6380 - ldrb r0, [r0, 0xE] - cmp r0, 0x2 - bne _080B638A - mov r0, sp - ldrh r0, [r0] - subs r0, 0x6 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080B638A - cmp r1, 0 - ble _080B6384 - mov r1, sp - movs r0, 0x8 - b _080B6388 - .align 2, 0 -_080B6374: .4byte gMain -_080B6378: .4byte gUnknown_083CE258 -_080B637C: .4byte gUnknown_083CE262 -_080B6380: .4byte 0x02000000 -_080B6384: - mov r1, sp - movs r0, 0x5 -_080B6388: - strh r0, [r1] -_080B638A: - mov r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0x8 - bne _080B63AC - ldrh r0, [r4] - strh r0, [r5, 0xC] - ldr r1, _080B63A8 - movs r2, 0 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - b _080B63C8 - .align 2, 0 -_080B63A8: .4byte gUnknown_083CE26C -_080B63AC: - cmp r6, 0x8 - bne _080B63CA - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080B63BC - ldrh r0, [r5, 0xC] - b _080B63C8 -_080B63BC: - ldr r0, _080B63FC - movs r2, 0 - ldrsh r1, [r4, r2] - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] -_080B63C8: - strh r0, [r4] -_080B63CA: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x8 - bne _080B6408 - movs r2, 0 - ldrsh r0, [r4, r2] - cmp r0, 0 - bge _080B63E0 - movs r0, 0x2 - strh r0, [r4] -_080B63E0: - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x2 - ble _080B63EC - movs r0, 0 - strh r0, [r4] -_080B63EC: - movs r2, 0 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080B6400 - movs r0, 0x1 - strh r0, [r5, 0xC] - b _080B6420 - .align 2, 0 -_080B63FC: .4byte gUnknown_083CE274 -_080B6400: - cmp r0, 0x2 - bne _080B6420 - strh r0, [r5, 0xC] - b _080B6420 -_080B6408: - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _080B6414 - movs r0, 0x3 - strh r0, [r4] -_080B6414: - movs r2, 0 - ldrsh r0, [r4, r2] - cmp r0, 0x3 - ble _080B6420 - movs r0, 0 - strh r0, [r4] -_080B6420: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl sub_80B680C - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B62CC - - thumb_func_start sub_80B6438 -sub_80B6438: @ 80B6438 - push {lr} - ldr r0, _080B6458 - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B645C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0x3 - strh r0, [r1, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_080B6458: .4byte sub_80B64D4 -_080B645C: .4byte gTasks - thumb_func_end sub_80B6438 - - thumb_func_start sub_80B6460 -sub_80B6460: @ 80B6460 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r0, _080B6498 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B649C - adds r4, r1, r0 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r5, r0 - bne _080B64A0 - cmp r6, 0 - bne _080B64A0 - strh r7, [r4, 0xA] - movs r0, 0x1 - strh r0, [r4, 0xC] - b _080B64CC - .align 2, 0 -_080B6498: .4byte sub_80B64D4 -_080B649C: .4byte gTasks -_080B64A0: - cmp r5, 0x3 - bne _080B64B0 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080B64B0 - cmp r6, 0 - beq _080B64CC -_080B64B0: - ldrh r1, [r4, 0x8] - movs r2, 0x8 - ldrsh r0, [r4, r2] - cmp r0, 0x3 - beq _080B64C2 - lsls r0, r1, 24 - lsrs r0, 24 - bl sub_80B65AC -_080B64C2: - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r7, 0 - bl sub_80B65D4 -_080B64CC: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B6460 - - thumb_func_start sub_80B64D4 -sub_80B64D4: @ 80B64D4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B6548 - adds r4, r1, r0 - ldrh r1, [r4, 0x8] - movs r2, 0x8 - ldrsh r0, [r4, r2] - cmp r0, 0x3 - beq _080B6540 - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B6540 - lsls r0, r1, 24 - lsrs r0, 24 - bl sub_80B654C - lsls r0, 16 - lsrs r0, 16 - ldrb r3, [r4, 0xE] - adds r1, r3, 0 - adds r2, r3, 0 - bl sub_8085C7C - ldrh r1, [r4, 0x12] - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B6520 - subs r0, r1, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - cmp r0, 0 - bne _080B6540 -_080B6520: - movs r0, 0x2 - strh r0, [r4, 0x12] - ldrh r1, [r4, 0x10] - ldrh r2, [r4, 0xE] - adds r0, r1, r2 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - beq _080B653C - cmp r0, 0 - bne _080B6540 - ldrh r0, [r4, 0xA] - strh r0, [r4, 0xC] -_080B653C: - negs r0, r1 - strh r0, [r4, 0x10] -_080B6540: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B6548: .4byte gTasks - thumb_func_end sub_80B64D4 - - thumb_func_start sub_80B654C -sub_80B654C: @ 80B654C - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x4 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x87 - lsls r1, 1 - adds r5, r1, 0 - adds r0, r5 - add r6, sp, 0x8 - strh r0, [r6] - movs r0, 0x6 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x86 - lsls r1, 1 - adds r0, r1 - mov r1, sp - adds r1, 0xA - strh r0, [r1] - movs r0, 0x6 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - adds r0, r5 - add r1, sp, 0xC - strh r0, [r1] - mov r0, sp - adds r1, r6, 0 - movs r2, 0x6 - bl memcpy - lsls r4, 1 - mov r1, sp - adds r0, r1, r4 - ldrh r0, [r0] - add sp, 0x10 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80B654C - - thumb_func_start sub_80B65AC -sub_80B65AC: @ 80B65AC - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80B654C - lsls r0, 16 - ldr r2, _080B65CC - lsrs r0, 15 - adds r2, r0, r2 - ldr r1, _080B65D0 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - pop {r0} - bx r0 - .align 2, 0 -_080B65CC: .4byte gPlttBufferFaded -_080B65D0: .4byte gPlttBufferUnfaded - thumb_func_end sub_80B65AC - - thumb_func_start sub_80B65D4 -sub_80B65D4: @ 80B65D4 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - movs r3, 0 - strh r1, [r0, 0x8] - strh r2, [r0, 0xA] - movs r2, 0x1 - strh r2, [r0, 0xC] - movs r1, 0xF - strh r1, [r0, 0xE] - strh r2, [r0, 0x10] - strh r3, [r0, 0x12] - bx lr - thumb_func_end sub_80B65D4 - - thumb_func_start sub_80B65F0 -sub_80B65F0: @ 80B65F0 - push {r4,lr} - ldr r4, _080B660C - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B660C: .4byte sub_80B6630 - thumb_func_end sub_80B65F0 - - thumb_func_start sub_80B6610 -sub_80B6610: @ 80B6610 - push {lr} - ldr r0, _080B6624 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080B6628 - movs r0, 0 - b _080B662A - .align 2, 0 -_080B6624: .4byte sub_80B6630 -_080B6628: - movs r0, 0x1 -_080B662A: - pop {r1} - bx r1 - thumb_func_end sub_80B6610 - - thumb_func_start sub_80B6630 -sub_80B6630: @ 80B6630 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080B6660 - ldr r2, _080B6664 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_080B6642: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _080B6642 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B6660: .4byte gUnknown_083CE27C -_080B6664: .4byte gTasks - thumb_func_end sub_80B6630 - - thumb_func_start sub_80B6668 -sub_80B6668: @ 80B6668 - ldr r2, _080B667C - movs r1, 0 - strh r1, [r2, 0x4] - strh r1, [r2, 0x6] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - movs r0, 0 - bx lr - .align 2, 0 -_080B667C: .4byte 0x02000000 - thumb_func_end sub_80B6668 - - thumb_func_start sub_80B6680 -sub_80B6680: @ 80B6680 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, _080B66E4 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - ldrh r0, [r4, 0xA] - adds r0, 0x4 - strh r0, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r1, 0x28 - bl Sin - ldr r5, _080B66E8 - ldrb r1, [r5, 0xC] - lsls r1, 2 - add r1, sp - ldr r1, [r1] - strh r0, [r1] - ldrh r0, [r4, 0xA] - adds r0, 0x80 - movs r1, 0xFF - ands r0, r1 - movs r1, 0x28 - bl Sin - ldrb r1, [r5, 0xD] - lsls r1, 2 - add r1, sp - ldr r1, [r1] - strh r0, [r1] - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x3F - ble _080B66DA - ldrb r1, [r5, 0x8] - ldrh r0, [r5, 0xA] - strh r0, [r5, 0x8] - strh r1, [r5, 0xA] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B66DA: - movs r0, 0 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080B66E4: .4byte gUnknown_083CE28C -_080B66E8: .4byte 0x02000000 - thumb_func_end sub_80B6680 - - thumb_func_start sub_80B66EC -sub_80B66EC: @ 80B66EC - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, _080B6750 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - ldrh r0, [r4, 0xA] - adds r0, 0x4 - strh r0, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r1, 0x28 - bl Sin - ldr r5, _080B6754 - ldrb r1, [r5, 0xC] - lsls r1, 2 - add r1, sp - ldr r1, [r1] - strh r0, [r1] - ldrh r0, [r4, 0xA] - adds r0, 0x80 - movs r1, 0xFF - ands r0, r1 - movs r1, 0x28 - bl Sin - ldrb r1, [r5, 0xD] - lsls r1, 2 - add r1, sp - ldr r1, [r1] - strh r0, [r1] - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x7F - ble _080B6746 - ldrb r1, [r5, 0xC] - ldrb r0, [r5, 0xD] - strb r0, [r5, 0xC] - strb r1, [r5, 0xD] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080B6746: - movs r0, 0 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080B6750: .4byte gUnknown_083CE28C -_080B6754: .4byte 0x02000000 - thumb_func_end sub_80B66EC - - thumb_func_start sub_80B6758 -sub_80B6758: @ 80B6758 - push {lr} - ldr r0, _080B6770 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080B6770: .4byte sub_80B6630 - thumb_func_end sub_80B6758 - - thumb_func_start sub_80B6774 -sub_80B6774: @ 80B6774 - push {r4,r5,lr} - ldr r0, _080B67E0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - ldr r4, _080B67E4 - strb r0, [r4, 0xF] - ldr r5, _080B67E8 - ldrb r0, [r4, 0xF] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r3, [r1, 0x5] - movs r2, 0xD - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4, 0xF] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - ands r2, r1 - orrs r2, r3 - strb r2, [r0, 0x1] - ldrb r1, [r4, 0xF] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x1 - strh r1, [r0, 0x3A] - ldrb r1, [r4, 0xF] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x2 - strh r1, [r0, 0x3A] - movs r0, 0 - movs r1, 0 - bl sub_80B680C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B67E0: .4byte gSpriteTemplate_83CE640 -_080B67E4: .4byte 0x02000000 -_080B67E8: .4byte gSprites - thumb_func_end sub_80B6774 - - thumb_func_start sub_80B67EC -sub_80B67EC: @ 80B67EC - ldr r3, _080B6804 - lsls r0, 16 - asrs r0, 16 - ldr r1, _080B6808 - ldrb r2, [r1, 0xE] - lsls r1, r2, 3 - adds r1, r2 - adds r0, r1 - adds r0, r3 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080B6804: .4byte gUnknown_083CE294 -_080B6808: .4byte 0x02000000 - thumb_func_end sub_80B67EC - - thumb_func_start sub_80B680C -sub_80B680C: @ 80B680C - push {r4-r6,lr} - adds r5, r1, 0 - lsls r0, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r1, _080B6850 - ldrb r1, [r1, 0xF] - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - ldr r1, _080B6854 - adds r4, r1 - lsrs r6, r0, 16 - asrs r0, 16 - bl sub_80B67EC - lsls r0, 24 - lsrs r0, 21 - adds r0, 0x1B - strh r0, [r4, 0x20] - lsls r0, r5, 16 - asrs r0, 12 - adds r0, 0x50 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x2E] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x30] - strh r0, [r4, 0x34] - strh r6, [r4, 0x2E] - strh r5, [r4, 0x30] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B6850: .4byte 0x02000000 -_080B6854: .4byte gSprites - thumb_func_end sub_80B680C - - thumb_func_start sub_80B6858 -sub_80B6858: @ 80B6858 - ldr r2, _080B6870 - ldrb r3, [r2, 0xF] - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - ldr r3, _080B6874 - adds r2, r3 - ldrh r3, [r2, 0x2E] - strh r3, [r0] - ldrh r0, [r2, 0x30] - strh r0, [r1] - bx lr - .align 2, 0 -_080B6870: .4byte 0x02000000 -_080B6874: .4byte gSprites - thumb_func_end sub_80B6858 - - thumb_func_start sub_80B6878 -sub_80B6878: @ 80B6878 - push {lr} - movs r0, 0x8 - movs r1, 0x2 - bl sub_80B680C - pop {r0} - bx r0 - thumb_func_end sub_80B6878 - - thumb_func_start sub_80B6888 -sub_80B6888: @ 80B6888 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080B68CC - ldr r4, _080B68D0 - ldrb r1, [r4, 0xF] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r5 - ldrh r3, [r2, 0x36] - ldr r1, _080B68D4 - ands r1, r3 - strh r1, [r2, 0x36] - ldrb r2, [r4, 0xF] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - ldrh r2, [r1, 0x36] - orrs r0, r2 - strh r0, [r1, 0x36] - ldrb r1, [r4, 0xF] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0 - bl StartSpriteAnim - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B68CC: .4byte gSprites -_080B68D0: .4byte 0x02000000 -_080B68D4: .4byte 0xffffff00 - thumb_func_end sub_80B6888 - - thumb_func_start sub_80B68D8 -sub_80B68D8: @ 80B68D8 - push {r4,r5,lr} - lsls r0, 24 - ldr r5, _080B690C - ldr r4, _080B6910 - ldrb r1, [r4, 0xF] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r5 - ldrh r3, [r2, 0x36] - movs r1, 0xFF - ands r1, r3 - strh r1, [r2, 0x36] - ldrb r2, [r4, 0xF] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - lsrs r0, 16 - ldrh r2, [r1, 0x36] - orrs r0, r2 - strh r0, [r1, 0x36] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B690C: .4byte gSprites -_080B6910: .4byte 0x02000000 - thumb_func_end sub_80B68D8 - - thumb_func_start sub_80B6914 -sub_80B6914: @ 80B6914 - push {lr} - ldr r0, _080B6930 - ldrb r1, [r0, 0xF] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B6934 - adds r0, r1 - movs r1, 0x1 - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_080B6930: .4byte 0x02000000 -_080B6934: .4byte gSprites - thumb_func_end sub_80B6914 - - thumb_func_start sub_80B6938 -sub_80B6938: @ 80B6938 - ldr r2, _080B6950 - ldr r0, _080B6954 - ldrb r1, [r0, 0xF] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - lsrs r0, 31 - bx lr - .align 2, 0 -_080B6950: .4byte gSprites -_080B6954: .4byte 0x02000000 - thumb_func_end sub_80B6938 - - thumb_func_start sub_80B6958 -sub_80B6958: @ 80B6958 - push {r4,r5,lr} - sub sp, 0x8 - ldr r1, _080B6988 - mov r0, sp - movs r2, 0x3 - bl memcpy - add r4, sp, 0x4 - mov r5, sp - adds r5, 0x6 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80B6858 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x7 - ble _080B698C - movs r1, 0 - ldrsh r0, [r5, r1] - add r0, sp - ldrb r0, [r0] - b _080B698E - .align 2, 0 -_080B6988: .4byte gUnknown_083CE2AF -_080B698C: - movs r0, 0 -_080B698E: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B6958 - - thumb_func_start sub_80B6998 -sub_80B6998: @ 80B6998 - push {r4,r5,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B69B0 - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim -_080B69B0: - ldrh r1, [r4, 0x36] - movs r0, 0xFF - ands r0, r1 - adds r3, r4, 0 - adds r3, 0x3E - movs r1, 0x1 - ands r0, r1 - lsls r0, 2 - ldrb r1, [r3] - movs r2, 0x5 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r3] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x8 - bne _080B69DA - movs r0, 0x4 - orrs r2, r0 - strb r2, [r3] -_080B69DA: - ldrb r1, [r3] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _080B6A0A - movs r2, 0x36 - ldrsh r0, [r4, r2] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080B6A0A - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080B6A0A - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _080B6A16 -_080B6A0A: - movs r0, 0 - strh r0, [r4, 0x38] - movs r0, 0x1 - strh r0, [r4, 0x3A] - movs r0, 0x2 - strh r0, [r4, 0x3C] -_080B6A16: - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - cmp r0, 0 - bne _080B6A3E - ldrh r1, [r4, 0x3A] - ldrh r2, [r4, 0x38] - adds r0, r1, r2 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - beq _080B6A36 - cmp r0, 0 - bne _080B6A3A -_080B6A36: - negs r0, r1 - strh r0, [r4, 0x3A] -_080B6A3A: - movs r0, 0x2 - strh r0, [r4, 0x3C] -_080B6A3E: - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080B6A74 - ldrh r4, [r4, 0x38] - lsls r5, r4, 24 - lsrs r5, 24 - lsls r4, 16 - asrs r4, 17 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r2, _080B6A7C - adds r0, r2 - lsrs r0, 16 - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r5, 0 - bl sub_8085C7C -_080B6A74: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B6A7C: .4byte 0x01010000 - thumb_func_end sub_80B6998 - - thumb_func_start sub_80B6A80 -sub_80B6A80: @ 80B6A80 - push {r4,r5,lr} - ldr r0, _080B6AF8 - movs r1, 0xCC - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B6AFC - strb r0, [r1, 0x10] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r5, _080B6B00 - adds r4, r5 - ldr r1, _080B6B04 - adds r0, r4, 0 - bl SetSubspriteTables - ldr r0, _080B6B08 - movs r1, 0xCC - movs r2, 0x4C - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x3A] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r5 - ldr r1, _080B6B0C - adds r0, r2, 0 - bl SetSubspriteTables - ldr r0, _080B6B10 - movs r1, 0xCC - movs r2, 0x4B - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r3, [r1, 0x5] - movs r2, 0xD - negs r2, r2 - ands r2, r3 - movs r3, 0x4 - orrs r2, r3 - strb r2, [r1, 0x5] - strh r0, [r4, 0x3C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B6AF8: .4byte gSpriteTemplate_83CE5C8 -_080B6AFC: .4byte 0x02000000 -_080B6B00: .4byte gSprites -_080B6B04: .4byte gUnknown_083CE558 -_080B6B08: .4byte gSpriteTemplate_83CE5F8 -_080B6B0C: .4byte gUnknown_083CE560 -_080B6B10: .4byte gSpriteTemplate_83CE5E0 - thumb_func_end sub_80B6A80 - - thumb_func_start sub_80B6B14 -sub_80B6B14: @ 80B6B14 - ldr r2, _080B6B2C - ldrb r1, [r2, 0x10] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B6B30 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x2E] - ldrb r1, [r2, 0xE] - strh r1, [r0, 0x30] - bx lr - .align 2, 0 -_080B6B2C: .4byte 0x02000000 -_080B6B30: .4byte gSprites - thumb_func_end sub_80B6B14 - - thumb_func_start sub_80B6B34 -sub_80B6B34: @ 80B6B34 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080B6B58 -_080B6B3A: - movs r1, 0x2E - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _080B6B3A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B6B58: .4byte gUnknown_083CE2B4 - thumb_func_end sub_80B6B34 - - thumb_func_start sub_80B6B5C -sub_80B6B5C: @ 80B6B5C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r3, _080B6B90 - adds r1, r3 - movs r2, 0x3C - ldrsh r0, [r4, r2] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldr r0, _080B6B94 - ldrb r0, [r0, 0xE] - bl sub_80B6C48 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B6B90: .4byte gSprites -_080B6B94: .4byte 0x02000000 - thumb_func_end sub_80B6B5C - - thumb_func_start sub_80B6B98 -sub_80B6B98: @ 80B6B98 - movs r0, 0 - bx lr - thumb_func_end sub_80B6B98 - - thumb_func_start sub_80B6B9C -sub_80B6B9C: @ 80B6B9C - push {r4,r5,lr} - adds r3, r0, 0 - movs r0, 0x3A - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r2, _080B6C00 - adds r4, r0, r2 - movs r0, 0x3C - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r5, r0, r2 - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080B6BF8 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - ldr r0, _080B6C04 - strh r0, [r4, 0x26] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, 0x30] - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - bl __modsi3 - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_80B6C48 -_080B6BF8: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080B6C00: .4byte gSprites -_080B6C04: .4byte 0x0000fffc - thumb_func_end sub_80B6B9C - - thumb_func_start sub_80B6C08 -sub_80B6C08: @ 80B6C08 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x3A - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B6C44 - adds r2, r0, r1 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldrh r0, [r2, 0x26] - adds r0, 0x1 - strh r0, [r2, 0x26] - lsls r0, 16 - cmp r0, 0 - blt _080B6C3C - movs r0, 0 - strh r0, [r2, 0x26] - movs r0, 0x1 - strh r0, [r4, 0x2E] -_080B6C3C: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080B6C44: .4byte gSprites - thumb_func_end sub_80B6C08 - - thumb_func_start sub_80B6C48 -sub_80B6C48: @ 80B6C48 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080B6CA0 - lsls r4, r5, 1 - adds r0, r4, r0 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 4 - mov r1, r8 - ldrb r2, [r1, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - mov r0, r8 - strb r1, [r0, 0x5] - ldr r0, _080B6CA4 - adds r4, r0 - ldrh r0, [r4] - bl GetSpriteTileStartByTag - adds r1, r6, 0 - adds r1, 0x40 - strh r0, [r1] - adds r6, 0x42 - movs r1, 0x3F - ands r1, r5 - ldrb r2, [r6] - movs r0, 0x40 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B6CA0: .4byte gUnknown_083CE2C4 -_080B6CA4: .4byte gUnknown_083CE2CA - thumb_func_end sub_80B6C48 - - thumb_func_start sub_80B6CA8 -sub_80B6CA8: @ 80B6CA8 - push {r4,r5,lr} - ldr r0, _080B6CF4 - movs r1, 0xCC - movs r2, 0x6C - movs r3, 0 - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080B6CF8 - adds r0, r4 - ldr r5, _080B6CFC - adds r1, r5, 0 - bl SetSubspriteTables - ldr r0, _080B6D00 - movs r1, 0xCC - movs r2, 0x84 - movs r3, 0 - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r1, r5, 0 - bl SetSubspriteTables - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B6CF4: .4byte gSpriteTemplate_83CE610 -_080B6CF8: .4byte gSprites -_080B6CFC: .4byte gUnknown_083CE578 -_080B6D00: .4byte gSpriteTemplate_83CE628 - thumb_func_end sub_80B6CA8 - - thumb_func_start sub_80B6D04 -sub_80B6D04: @ 80B6D04 - push {r4-r6,lr} - ldr r4, _080B6D8C - ldrh r1, [r4, 0x2] - subs r1, 0x1 - lsls r1, 3 - adds r1, 0x4 - ldr r0, _080B6D90 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x28 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r3, _080B6D94 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - ldrh r0, [r4, 0x2] - lsls r0, 3 - adds r0, 0x4 - lsls r0, 16 - lsrs r1, r0, 16 - movs r5, 0 - ldr r0, [r4, 0x34] - ldrb r0, [r0, 0x1] - cmp r5, r0 - bcs _080B6D86 - adds r6, r3, 0 -_080B6D4A: - lsls r4, r1, 16 - asrs r4, 16 - ldr r0, _080B6D98 - adds r1, r4, 0 - movs r2, 0x2C - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - strh r5, [r0, 0x2E] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x8 - lsls r4, 16 - lsrs r1, r4, 16 - ldr r0, _080B6D8C - ldr r0, [r0, 0x34] - ldrb r0, [r0, 0x1] - cmp r5, r0 - bcc _080B6D4A -_080B6D86: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B6D8C: .4byte 0x02000000 -_080B6D90: .4byte gSpriteTemplate_83CE658 -_080B6D94: .4byte gSprites -_080B6D98: .4byte gSpriteTemplate_83CE670 - thumb_func_end sub_80B6D04 - - thumb_func_start sub_80B6D9C -sub_80B6D9C: @ 80B6D9C - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, _080B6DE4 - mov r0, sp - movs r2, 0x8 - bl memcpy - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080B6DC0 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080B6DCE -_080B6DC0: - movs r0, 0x8 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - strh r0, [r4, 0x30] -_080B6DCE: - movs r1, 0x30 - ldrsh r0, [r4, r1] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x24] - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B6DE4: .4byte gUnknown_083CE2D0 - thumb_func_end sub_80B6D9C - - thumb_func_start sub_80B6DE8 -sub_80B6DE8: @ 80B6DE8 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, _080B6E10 - mov r0, sp - movs r2, 0x8 - bl memcpy - bl sub_80B6F44 - lsls r0, 24 - ldrh r1, [r4, 0x2E] - lsls r1, 24 - cmp r0, r1 - beq _080B6E14 - movs r0, 0 - strh r0, [r4, 0x26] - strh r0, [r4, 0x30] - b _080B6E3A - .align 2, 0 -_080B6E10: .4byte gUnknown_083CE2D8 -_080B6E14: - movs r1, 0x30 - ldrsh r0, [r4, r1] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080B6E3C - ldrh r0, [r4, 0x30] - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - strh r0, [r4, 0x30] - movs r0, 0 -_080B6E3A: - strh r0, [r4, 0x32] -_080B6E3C: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B6DE8 - - thumb_func_start sub_80B6E44 -sub_80B6E44: @ 80B6E44 - push {lr} - ldr r1, _080B6E5C - ldr r0, _080B6E60 - ldr r0, [r0, 0x34] - ldrb r0, [r0, 0x2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .align 2, 0 -_080B6E5C: .4byte gUnknown_083CE2E0 -_080B6E60: .4byte 0x02000000 - thumb_func_end sub_80B6E44 - - thumb_func_start nullsub_40 -nullsub_40: @ 80B6E64 - bx lr - thumb_func_end nullsub_40 - - thumb_func_start sub_80B6E68 -sub_80B6E68: @ 80B6E68 - push {lr} - sub sp, 0x4 - ldr r0, _080B6EB0 - ldrh r1, [r0, 0x3E] - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_805983C - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B6EB4 - movs r2, 0 - str r2, [sp] - movs r2, 0x38 - movs r3, 0x18 - bl AddPseudoFieldObject - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080B6EB8 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x4 - bl StartSpriteAnim - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080B6EB0: .4byte 0x02000000 -_080B6EB4: .4byte SpriteCallbackDummy -_080B6EB8: .4byte gSprites - thumb_func_end sub_80B6E68 - - thumb_func_start sub_80B6EBC -sub_80B6EBC: @ 80B6EBC - push {r4,lr} - ldr r0, _080B6EF0 - movs r1, 0x34 - movs r2, 0x18 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _080B6EF4 - adds r4, r0 - ldr r1, _080B6EF8 - adds r0, r4, 0 - bl SetSubspriteTables - ldrb r0, [r4, 0x5] - movs r1, 0xC - orrs r0, r1 - strb r0, [r4, 0x5] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B6EF0: .4byte gSpriteTemplate_83CE688 -_080B6EF4: .4byte gSprites -_080B6EF8: .4byte gUnknown_083CE580 - thumb_func_end sub_80B6EBC - - thumb_func_start sub_80B6EFC -sub_80B6EFC: @ 80B6EFC - push {lr} - sub sp, 0x8 - bl sub_809D51C - ldr r3, _080B6F38 - ldrh r0, [r3, 0x3E] - ldr r1, _080B6F3C - movs r2, 0 - str r2, [sp] - ldr r2, [r3, 0x44] - str r2, [sp, 0x4] - movs r2, 0x34 - movs r3, 0x18 - bl sub_809D2FC - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B6F40 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x5] - movs r2, 0xC - orrs r0, r2 - strb r0, [r1, 0x5] - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080B6F38: .4byte 0x02000000 -_080B6F3C: .4byte SpriteCallbackDummy -_080B6F40: .4byte gSprites - thumb_func_end sub_80B6EFC - - thumb_func_start sub_80B6F44 -sub_80B6F44: @ 80B6F44 - push {r4,lr} - movs r2, 0 - ldr r1, _080B6F64 - ldr r0, [r1, 0x34] - ldrb r0, [r0, 0x1] - adds r4, r1, 0 - cmp r2, r0 - bcs _080B6F72 - adds r1, 0x11 - adds r3, r0, 0 -_080B6F58: - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080B6F68 - adds r0, r2, 0 - b _080B6F7C - .align 2, 0 -_080B6F64: .4byte 0x02000000 -_080B6F68: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r3 - bcc _080B6F58 -_080B6F72: - ldr r0, [r4, 0x34] - ldrb r0, [r0, 0x1] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 -_080B6F7C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B6F44 - - thumb_func_start sub_80B6F84 -sub_80B6F84: @ 80B6F84 - push {lr} - ldr r2, _080B6FA8 - ldr r0, [r2, 0x34] - ldrb r0, [r0, 0x1] - subs r0, 0x1 - lsls r1, r0, 24 - cmp r1, 0 - ble _080B6FB4 - adds r3, r2, 0 - adds r3, 0x11 -_080B6F98: - asrs r2, r1, 24 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, 0xFF - beq _080B6FAC - lsrs r0, r1, 24 - b _080B6FB6 - .align 2, 0 -_080B6FA8: .4byte 0x02000000 -_080B6FAC: - subs r0, r2, 0x1 - lsls r1, r0, 24 - cmp r1, 0 - bgt _080B6F98 -_080B6FB4: - movs r0, 0 -_080B6FB6: - pop {r1} - bx r1 - thumb_func_end sub_80B6F84 - - thumb_func_start sub_80B6FBC -sub_80B6FBC: @ 80B6FBC - push {r4,lr} - bl sub_80B6F84 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080B7000 - adds r0, 0x11 - adds r4, r0 - movs r0, 0 - strb r0, [r4] - bl sub_80B7960 - movs r0, 0xFF - strb r0, [r4] - bl sub_80B6958 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080B6FEA - cmp r0, 0x2 - bne _080B6FF4 -_080B6FEA: - movs r0, 0x1 - movs r1, 0 - movs r2, 0x1 - bl sub_80B6460 -_080B6FF4: - movs r0, 0x17 - bl PlaySE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7000: .4byte 0x02000000 - thumb_func_end sub_80B6FBC - - thumb_func_start sub_80B7004 -sub_80B7004: @ 80B7004 - push {r4,r5,lr} - sub sp, 0x4 - mov r5, sp - adds r5, 0x2 - mov r0, sp - adds r1, r5, 0 - bl sub_80B6858 - mov r4, sp - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - bl sub_80B67EC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - mov r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0 - ldrsh r1, [r5, r2] - bl sub_80B7768 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - movs r4, 0x1 - cmp r0, 0xFF - bne _080B7046 - bl sub_80B7104 - b _080B704E -_080B7046: - cmp r0, 0xFE - bne _080B7054 - bl sub_80B713C -_080B704E: - lsls r0, 24 - lsrs r4, r0, 24 - b _080B705A -_080B7054: - adds r0, r1, 0 - bl sub_80B7174 -_080B705A: - bl sub_80B7960 - movs r0, 0x5 - bl PlaySE - cmp r4, 0 - beq _080B7084 - bl sub_80B6F84 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B7080 - ldr r1, [r1, 0x34] - ldrb r1, [r1, 0x1] - subs r1, 0x1 - cmp r0, r1 - bne _080B7084 - movs r0, 0x1 - b _080B7086 - .align 2, 0 -_080B7080: .4byte 0x02000000 -_080B7084: - movs r0, 0 -_080B7086: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B7004 - - thumb_func_start sub_80B7090 -sub_80B7090: @ 80B7090 - push {r4-r7,lr} - bl sub_80B6F84 - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - ldr r0, _080B70C8 - adds r0, 0x11 - adds r0, r5, r0 - ldrb r4, [r0] - adds r6, r4, 0 - adds r0, r4, 0 - bl sub_80B7198 - lsls r0, 24 - cmp r0, 0 - beq _080B70D6 - adds r0, r4, 0 - bl sub_80B7264 - lsls r0, 24 - cmp r0, 0 - beq _080B70CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80B7370 - b _080B70F4 - .align 2, 0 -_080B70C8: .4byte 0x02000000 -_080B70CC: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80B73CC - b _080B70F4 -_080B70D6: - adds r0, r4, 0 - bl sub_80B71E4 - lsls r0, 24 - cmp r0, 0 - beq _080B70EC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80B7474 - b _080B70F4 -_080B70EC: - adds r0, r6, 0 - adds r1, r7, 0 - bl sub_80B72A4 -_080B70F4: - bl sub_80B7960 - movs r0, 0x5 - bl PlaySE - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B7090 - - thumb_func_start sub_80B7104 -sub_80B7104: @ 80B7104 - push {r4,r5,lr} - bl sub_80B6F84 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080B7128 - adds r0, 0x11 - adds r0, r5, r0 - ldrb r4, [r0] - adds r0, r4, 0 - bl sub_80B720C - lsls r0, 24 - cmp r0, 0 - bne _080B712C - movs r0, 0 - b _080B7136 - .align 2, 0 -_080B7128: .4byte 0x02000000 -_080B712C: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80B72A4 - movs r0, 0x1 -_080B7136: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B7104 - - thumb_func_start sub_80B713C -sub_80B713C: @ 80B713C - push {r4,r5,lr} - bl sub_80B6F84 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080B7160 - adds r0, 0x11 - adds r0, r5, r0 - ldrb r4, [r0] - adds r0, r4, 0 - bl sub_80B7264 - lsls r0, 24 - cmp r0, 0 - bne _080B7164 - movs r0, 0 - b _080B716E - .align 2, 0 -_080B7160: .4byte 0x02000000 -_080B7164: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80B7370 - movs r0, 0x1 -_080B716E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B713C - - thumb_func_start sub_80B7174 -sub_80B7174: @ 80B7174 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80B6F44 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B7194 - adds r1, 0x11 - adds r0, r1 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7194: .4byte 0x02000000 - thumb_func_end sub_80B7174 - - thumb_func_start sub_80B7198 -sub_80B7198: @ 80B7198 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xC9 - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x13 - bls _080B71DA - adds r0, r1, 0 - adds r0, 0x79 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B71DA - adds r0, r1, 0 - adds r0, 0x74 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B71DA - adds r0, r1, 0 - adds r0, 0x6F - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B71DA - adds r0, r1, 0 - adds r0, 0x6A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B71DE -_080B71DA: - movs r0, 0x1 - b _080B71E0 -_080B71DE: - movs r0, 0 -_080B71E0: - pop {r1} - bx r1 - thumb_func_end sub_80B7198 - - thumb_func_start sub_80B71E4 -sub_80B71E4: @ 80B71E4 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xB5 - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B7202 - adds r0, r1, 0 - adds r0, 0x65 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B7206 -_080B7202: - movs r0, 0x1 - b _080B7208 -_080B7206: - movs r0, 0 -_080B7208: - pop {r1} - bx r1 - thumb_func_end sub_80B71E4 - - thumb_func_start sub_80B720C -sub_80B720C: @ 80B720C - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFA - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0xE - bls _080B725A - adds r0, r1, 0 - subs r0, 0x1A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B725A - adds r0, r1, 0 - subs r0, 0x4B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B725A - adds r0, r1, 0 - subs r0, 0x56 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE - bls _080B725A - adds r0, r1, 0 - subs r0, 0x6A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B725A - adds r0, r1, 0 - adds r0, 0x65 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B725E -_080B725A: - movs r0, 0x1 - b _080B7260 -_080B725E: - movs r0, 0 -_080B7260: - pop {r1} - bx r1 - thumb_func_end sub_80B720C - - thumb_func_start sub_80B7264 -sub_80B7264: @ 80B7264 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xE6 - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B729A - adds r0, r1, 0 - subs r0, 0x46 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B729A - adds r0, r1, 0 - subs r0, 0x6A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B729A - adds r0, r1, 0 - adds r0, 0x6A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B729E -_080B729A: - movs r0, 0x1 - b _080B72A0 -_080B729E: - movs r0, 0 -_080B72A0: - pop {r1} - bx r1 - thumb_func_end sub_80B7264 - - thumb_func_start sub_80B72A4 -sub_80B72A4: @ 80B72A4 - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsrs r2, r0, 24 - movs r3, 0xFA - lsls r3, 24 - adds r0, r3 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B72C0 - adds r0, r2, 0 - adds r0, 0x31 - b _080B735A -_080B72C0: - adds r0, r2, 0 - subs r0, 0xB - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B72D2 - adds r0, r2, 0 - adds r0, 0x31 - b _080B735A -_080B72D2: - adds r0, r2, 0 - subs r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B72E4 - adds r0, r2, 0 - adds r0, 0x31 - b _080B735A -_080B72E4: - adds r0, r2, 0 - subs r0, 0x1A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B72F6 - adds r0, r2, 0 - adds r0, 0x2C - b _080B735A -_080B72F6: - adds r0, r2, 0 - subs r0, 0x4B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B7356 - adds r0, r2, 0 - subs r0, 0x56 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B7314 - adds r0, r2, 0 - adds r0, 0x31 - b _080B735A -_080B7314: - adds r0, r2, 0 - subs r0, 0x5B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B7326 - adds r0, r2, 0 - adds r0, 0x31 - b _080B735A -_080B7326: - adds r0, r2, 0 - subs r0, 0x60 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B7338 - adds r0, r2, 0 - adds r0, 0x31 - b _080B735A -_080B7338: - adds r0, r2, 0 - subs r0, 0x6A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B734A - adds r0, r2, 0 - adds r0, 0x2C - b _080B735A -_080B734A: - adds r0, r2, 0 - adds r0, 0x65 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B735E -_080B7356: - adds r0, r2, 0 - adds r0, 0xFB -_080B735A: - lsls r0, 24 - lsrs r2, r0, 24 -_080B735E: - ldr r0, _080B736C - adds r0, 0x11 - adds r0, r1, r0 - strb r2, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080B736C: .4byte 0x02000000 - thumb_func_end sub_80B72A4 - - thumb_func_start sub_80B7370 -sub_80B7370: @ 80B7370 - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsrs r2, r0, 24 - movs r3, 0xE6 - lsls r3, 24 - adds r0, r3 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B738C - adds r0, r2, 0 - adds r0, 0x31 - b _080B73B8 -_080B738C: - adds r0, r2, 0 - subs r0, 0x46 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B73B6 - adds r0, r2, 0 - subs r0, 0x6A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B73AA - adds r0, r2, 0 - adds r0, 0x31 - b _080B73B8 -_080B73AA: - adds r0, r2, 0 - adds r0, 0x6A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B73BC -_080B73B6: - adds r0, r2, 0x5 -_080B73B8: - lsls r0, 24 - lsrs r2, r0, 24 -_080B73BC: - ldr r0, _080B73C8 - adds r0, 0x11 - adds r0, r1, r0 - strb r2, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080B73C8: .4byte 0x02000000 - thumb_func_end sub_80B7370 - - thumb_func_start sub_80B73CC -sub_80B73CC: @ 80B73CC - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsrs r2, r0, 24 - movs r3, 0xC9 - lsls r3, 24 - adds r0, r3 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B73E8 - adds r0, r2, 0 - adds r0, 0xCF - b _080B745E -_080B73E8: - adds r0, r2, 0 - subs r0, 0x3C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B73FA - adds r0, r2, 0 - adds r0, 0xCF - b _080B745E -_080B73FA: - adds r0, r2, 0 - subs r0, 0x41 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B740C - adds r0, r2, 0 - adds r0, 0xCF - b _080B745E -_080B740C: - adds r0, r2, 0 - subs r0, 0x46 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B745A - adds r0, r2, 0 - adds r0, 0x79 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B742A - adds r0, r2, 0 - adds r0, 0xCF - b _080B745E -_080B742A: - adds r0, r2, 0 - adds r0, 0x74 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B743C - adds r0, r2, 0 - adds r0, 0xCF - b _080B745E -_080B743C: - adds r0, r2, 0 - adds r0, 0x6F - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B744E - adds r0, r2, 0 - adds r0, 0xCF - b _080B745E -_080B744E: - adds r0, r2, 0 - adds r0, 0x6A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B7462 -_080B745A: - adds r0, r2, 0 - adds r0, 0xD4 -_080B745E: - lsls r0, 24 - lsrs r2, r0, 24 -_080B7462: - ldr r0, _080B7470 - adds r0, 0x11 - adds r0, r1, r0 - strb r2, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080B7470: .4byte 0x02000000 - thumb_func_end sub_80B73CC - - thumb_func_start sub_80B7474 -sub_80B7474: @ 80B7474 - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsrs r2, r0, 24 - movs r3, 0xB5 - lsls r3, 24 - adds r0, r3 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B7496 - adds r0, r2, 0 - adds r0, 0x65 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B749E -_080B7496: - adds r0, r2, 0 - adds r0, 0xCF - lsls r0, 24 - lsrs r2, r0, 24 -_080B749E: - ldr r0, _080B74AC - adds r0, 0x11 - adds r0, r1, r0 - strb r2, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080B74AC: .4byte 0x02000000 - thumb_func_end sub_80B7474 - - thumb_func_start sub_80B74B0 -sub_80B74B0: @ 80B74B0 - push {r4,lr} - movs r1, 0 - ldr r3, _080B74E4 - ldr r0, [r3, 0x34] - ldrb r0, [r0, 0x1] - cmp r1, r0 - bcs _080B74F6 - adds r2, r3, 0 - adds r4, r3, 0 - adds r4, 0x11 -_080B74C4: - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _080B74E8 - cmp r0, 0xFF - beq _080B74E8 - ldr r0, [r2, 0x38] - ldr r1, [r2, 0x34] - ldrb r2, [r1, 0x1] - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - adds r1, r4, 0 - bl StringCopyN - b _080B74F6 - .align 2, 0 -_080B74E4: .4byte 0x02000000 -_080B74E8: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, [r3, 0x34] - ldrb r0, [r0, 0x1] - cmp r1, r0 - bcc _080B74C4 -_080B74F6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B74B0 - - thumb_func_start sub_80B74FC -sub_80B74FC: @ 80B74FC - push {r4,lr} - ldr r0, _080B7528 - ldr r1, _080B752C - ldr r1, [r1, 0x38] - bl StringCopy - ldr r4, _080B7530 - ldr r1, _080B7534 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080B7538 - bl BasicInitMenuWindow - bl MenuDisplayMessageBox - adds r0, r4, 0 - bl sub_8072044 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7528: .4byte gStringVar1 -_080B752C: .4byte 0x02000000 -_080B7530: .4byte gStringVar4 -_080B7534: .4byte gOtherText_SentToPC -_080B7538: .4byte gWindowConfig_81E6E88 - thumb_func_end sub_80B74FC - - thumb_func_start sub_80B753C -sub_80B753C: @ 80B753C - push {lr} - ldr r0, _080B7550 - bl LoadSpriteSheets - ldr r0, _080B7554 - bl LoadSpritePalettes - pop {r0} - bx r0 - .align 2, 0 -_080B7550: .4byte gUnknown_083CE6A0 -_080B7554: .4byte gUnknown_083CE708 - thumb_func_end sub_80B753C - - thumb_func_start sub_80B7558 -sub_80B7558: @ 80B7558 - push {lr} - bl sub_80B7568 - bl sub_80B75B0 - pop {r0} - bx r0 - thumb_func_end sub_80B7558 - - thumb_func_start sub_80B7568 -sub_80B7568: @ 80B7568 - push {r4,lr} - ldr r4, _080B759C - ldr r3, _080B75A0 - ldrh r0, [r3] - lsls r0, 5 - movs r1, 0xC0 - lsls r1, 19 - adds r0, r1 - ldr r1, _080B75A4 - str r4, [r1] - str r0, [r1, 0x4] - ldr r2, _080B75A8 - str r2, [r1, 0x8] - ldr r0, [r1, 0x8] - ldrh r0, [r3] - lsls r0, 5 - ldr r3, _080B75AC - adds r0, r3 - str r4, [r1] - str r0, [r1, 0x4] - str r2, [r1, 0x8] - ldr r0, [r1, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B759C: .4byte gNamingScreenMenu_Gfx -_080B75A0: .4byte gMenuMessageBoxContentTileOffset -_080B75A4: .4byte 0x040000d4 -_080B75A8: .4byte 0x80000400 -_080B75AC: .4byte 0x06008000 - thumb_func_end sub_80B7568 - - thumb_func_start sub_80B75B0 -sub_80B75B0: @ 80B75B0 - push {lr} - ldr r0, _080B75C0 - movs r1, 0 - movs r2, 0x80 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_080B75C0: .4byte gNamingScreenPalettes - thumb_func_end sub_80B75B0 - - thumb_func_start sub_80B75C4 -sub_80B75C4: @ 80B75C4 - push {r4,r5,lr} - sub sp, 0x8 - ldr r0, _080B7608 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - ldr r4, _080B760C - ldr r5, _080B7610 - ldrb r1, [r5, 0xE] - lsls r1, 3 - adds r1, r4 - ldrb r0, [r5, 0xC] - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r1, [r1] - bl _call_via_r1 - ldrb r1, [r5, 0xE] - lsls r1, 3 - adds r4, 0x4 - adds r1, r4 - ldrb r0, [r5, 0xD] - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r1, [r1] - bl _call_via_r1 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B7608: .4byte gUnknown_083CE308 -_080B760C: .4byte gUnknown_083CE2F0 -_080B7610: .4byte 0x02000000 - thumb_func_end sub_80B75C4 - - thumb_func_start sub_80B7614 -sub_80B7614: @ 80B7614 - push {lr} - sub sp, 0x8 - ldr r0, _080B7644 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, _080B7648 - ldr r2, _080B764C - ldrb r1, [r2, 0xE] - lsls r1, 3 - adds r0, 0x4 - adds r1, r0 - ldrb r0, [r2, 0xD] - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r1, [r1] - bl _call_via_r1 - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080B7644: .4byte gUnknown_083CE308 -_080B7648: .4byte gUnknown_083CE2F0 -_080B764C: .4byte 0x02000000 - thumb_func_end sub_80B7614 - - thumb_func_start sub_80B7650 -sub_80B7650: @ 80B7650 - push {lr} - ldr r1, _080B765C - bl sub_80B7698 - pop {r0} - bx r0 - .align 2, 0 -_080B765C: .4byte gUnknown_083CE748 - thumb_func_end sub_80B7650 - - thumb_func_start sub_80B7660 -sub_80B7660: @ 80B7660 - push {lr} - ldr r1, _080B766C - bl sub_80B7698 - pop {r0} - bx r0 - .align 2, 0 -_080B766C: .4byte gUnknown_083CEBF8 - thumb_func_end sub_80B7660 - - thumb_func_start sub_80B7670 -sub_80B7670: @ 80B7670 - push {lr} - ldr r1, _080B767C - bl sub_80B7698 - pop {r0} - bx r0 - .align 2, 0 -_080B767C: .4byte gUnknown_083CF0A8 - thumb_func_end sub_80B7670 - - thumb_func_start sub_80B7680 -sub_80B7680: @ 80B7680 - push {lr} - ldr r0, _080B7690 - ldr r1, _080B7694 - bl sub_80B76E0 - pop {r0} - bx r0 - .align 2, 0 -_080B7690: .4byte 0x0600f000 -_080B7694: .4byte gUnknown_08E86258 - thumb_func_end sub_80B7680 - - thumb_func_start sub_80B7698 -sub_80B7698: @ 80B7698 - push {r4-r7,lr} - mov r12, r0 - adds r3, r1, 0 - movs r4, 0 - ldr r0, _080B76DC - ldrh r6, [r0] -_080B76A4: - movs r1, 0 - lsls r4, 16 - asrs r5, r4, 11 -_080B76AA: - lsls r0, r1, 16 - asrs r0, 16 - adds r1, r5, r0 - lsls r1, 1 - add r1, r12 - ldrh r7, [r3] - adds r2, r6, r7 - strh r2, [r1] - adds r0, 0x1 - lsls r0, 16 - adds r3, 0x2 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0x1D - ble _080B76AA - movs r1, 0x80 - lsls r1, 9 - adds r0, r4, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080B76A4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B76DC: .4byte gMenuMessageBoxContentTileOffset - thumb_func_end sub_80B7698 - - thumb_func_start sub_80B76E0 -sub_80B76E0: @ 80B76E0 - push {r4-r7,lr} - mov r12, r0 - adds r3, r1, 0 - movs r4, 0 - ldr r0, _080B7728 - ldrh r6, [r0] -_080B76EC: - movs r1, 0 - lsls r5, r4, 16 - asrs r4, r5, 11 -_080B76F2: - lsls r0, r1, 16 - asrs r0, 16 - adds r1, r4, r0 - lsls r1, 1 - add r1, r12 - ldrh r7, [r3] - adds r2, r6, r7 - strh r2, [r1] - adds r0, 0x1 - lsls r0, 16 - adds r3, 0x2 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0x1D - ble _080B76F2 - adds r3, 0x4 - movs r1, 0x80 - lsls r1, 9 - adds r0, r5, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080B76EC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B7728: .4byte gMenuMessageBoxContentTileOffset - thumb_func_end sub_80B76E0 - - thumb_func_start sub_80B772C -sub_80B772C: @ 80B772C - push {lr} - ldr r1, _080B773C - ldrb r0, [r1, 0xE] - ldrb r1, [r1, 0xC] - bl nullsub_20 - pop {r0} - bx r0 - .align 2, 0 -_080B773C: .4byte 0x02000000 - thumb_func_end sub_80B772C - - thumb_func_start sub_80B7740 -sub_80B7740: @ 80B7740 - push {r4,lr} - ldr r4, _080B7760 - ldrb r0, [r4, 0xE] - adds r0, 0x1 - movs r1, 0x3 - bl __modsi3 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r4, 0xD] - bl nullsub_20 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7760: .4byte 0x02000000 - thumb_func_end sub_80B7740 - - thumb_func_start nullsub_20 -nullsub_20: @ 80B7764 - bx lr - thumb_func_end nullsub_20 - - thumb_func_start sub_80B7768 -sub_80B7768: @ 80B7768 - ldr r3, _080B778C - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - lsls r2, r1, 2 - adds r2, r1 - lsls r2, 2 - adds r0, r2 - ldr r1, _080B7790 - ldrb r2, [r1, 0xE] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - adds r0, r1 - adds r0, r3 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080B778C: .4byte gUnknown_083CE3A8 -_080B7790: .4byte 0x02000000 - thumb_func_end sub_80B7768 - - thumb_func_start sub_80B7794 -sub_80B7794: @ 80B7794 - push {r4-r6,lr} - ldr r6, _080B77EC - ldr r4, _080B77F0 - ldrb r0, [r4, 0xC] - lsls r0, 2 - ldrb r1, [r4, 0xE] - lsls r1, 4 - adds r0, r1 - adds r0, r6 - ldr r0, [r0] - bl BasicInitMenuWindow - ldr r5, _080B77F4 - ldrb r0, [r4, 0xE] - lsls r0, 3 - adds r0, r5 - ldr r0, [r0] - bl _call_via_r0 - ldrb r1, [r4, 0xD] - lsls r1, 2 - ldrb r0, [r4, 0xE] - lsls r0, 4 - adds r1, r0 - adds r6, 0x8 - adds r1, r6 - ldr r0, [r1] - bl BasicInitMenuWindow - ldrb r0, [r4, 0xE] - lsls r0, 3 - adds r5, 0x4 - adds r0, r5 - ldr r0, [r0] - bl _call_via_r0 - bl sub_80B772C - bl sub_80B7740 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B77EC: .4byte gUnknown_083CE328 -_080B77F0: .4byte 0x02000000 -_080B77F4: .4byte gUnknown_083CE310 - thumb_func_end sub_80B7794 - - thumb_func_start sub_80B77F8 -sub_80B77F8: @ 80B77F8 - push {r4,lr} - ldr r2, _080B782C - ldr r4, _080B7830 - ldrb r1, [r4, 0xD] - lsls r1, 2 - ldrb r0, [r4, 0xE] - lsls r0, 4 - adds r1, r0 - adds r2, 0x8 - adds r1, r2 - ldr r0, [r1] - bl BasicInitMenuWindow - ldr r1, _080B7834 - ldrb r0, [r4, 0xE] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl sub_80B7740 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B782C: .4byte gUnknown_083CE328 -_080B7830: .4byte 0x02000000 -_080B7834: .4byte gUnknown_083CE310 - thumb_func_end sub_80B77F8 - - thumb_func_start sub_80B7838 -sub_80B7838: @ 80B7838 - push {lr} - movs r0, 0x1 - bl sub_80B785C - pop {r0} - bx r0 - thumb_func_end sub_80B7838 - - thumb_func_start sub_80B7844 -sub_80B7844: @ 80B7844 - push {lr} - movs r0, 0 - bl sub_80B785C - pop {r0} - bx r0 - thumb_func_end sub_80B7844 - - thumb_func_start sub_80B7850 -sub_80B7850: @ 80B7850 - push {lr} - movs r0, 0x2 - bl sub_80B785C - pop {r0} - bx r0 - thumb_func_end sub_80B7850 - - thumb_func_start sub_80B785C -sub_80B785C: @ 80B785C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - movs r5, 0x9 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 4 -_080B786C: - lsls r4, r2, 16 - asrs r4, 16 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 2 - ldr r1, _080B78A4 - adds r0, r1 - adds r0, r6, r0 - lsls r2, r5, 24 - lsrs r2, 24 - movs r1, 0x3 - bl MenuPrint - adds r4, 0x1 - lsls r4, 16 - lsls r0, r5, 16 - movs r1, 0x80 - lsls r1, 10 - adds r0, r1 - lsrs r5, r0, 16 - lsrs r2, r4, 16 - asrs r4, 16 - cmp r4, 0x3 - ble _080B786C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B78A4: .4byte gUnknown_083CE3A8 - thumb_func_end sub_80B785C - - thumb_func_start sub_80B78A8 -sub_80B78A8: @ 80B78A8 - push {r4,lr} - ldr r0, _080B78E4 - bl BasicInitMenuWindow - ldr r1, _080B78E8 - ldr r4, _080B78EC - ldrb r0, [r4, 0x1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r1, _080B78F0 - ldr r0, [r4, 0x34] - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, [r4, 0x34] - ldr r0, [r0, 0x8] - movs r1, 0x9 - movs r2, 0x2 - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B78E4: .4byte gWindowConfig_81E6F4C -_080B78E8: .4byte gUnknown_083CE358 -_080B78EC: .4byte 0x02000000 -_080B78F0: .4byte gUnknown_083CE368 - thumb_func_end sub_80B78A8 - - thumb_func_start nullsub_61 -nullsub_61: @ 80B78F4 - bx lr - thumb_func_end nullsub_61 - - thumb_func_start sub_80B78F8 -sub_80B78F8: @ 80B78F8 - push {lr} - ldr r0, _080B7914 - ldr r1, _080B7918 - movs r3, 0x3E - ldrsh r2, [r1, r3] - movs r1, 0xB - muls r1, r2 - ldr r2, _080B791C - adds r1, r2 - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_080B7914: .4byte gStringVar1 -_080B7918: .4byte 0x02000000 -_080B791C: .4byte gSpeciesNames - thumb_func_end sub_80B78F8 - - thumb_func_start nullsub_62 -nullsub_62: @ 80B7920 - bx lr - thumb_func_end nullsub_62 - - thumb_func_start sub_80B7924 -sub_80B7924: @ 80B7924 - push {lr} - sub sp, 0x4 - ldr r1, _080B7958 - mov r0, sp - movs r2, 0x2 - bl memcpy - ldr r0, _080B795C - adds r0, 0x40 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0xFF - beq _080B7952 - cmp r0, 0xFE - bne _080B7948 - mov r1, sp - movs r0, 0xB6 - strb r0, [r1] -_080B7948: - mov r0, sp - movs r1, 0x14 - movs r2, 0x4 - bl MenuPrint -_080B7952: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080B7958: .4byte gUnknown_083CE370 -_080B795C: .4byte 0x02000000 - thumb_func_end sub_80B7924 - - thumb_func_start sub_80B7960 -sub_80B7960: @ 80B7960 - push {r4,lr} - ldr r0, _080B799C - movs r2, 0xFC - strb r2, [r0] - movs r1, 0x14 - strb r1, [r0, 0x1] - movs r1, 0x8 - strb r1, [r0, 0x2] - strb r2, [r0, 0x3] - movs r1, 0x11 - strb r1, [r0, 0x4] - movs r1, 0x1 - strb r1, [r0, 0x5] - adds r0, 0x6 - ldr r4, _080B79A0 - adds r1, r4, 0 - bl StringCopy - ldr r0, _080B79A4 - bl BasicInitMenuWindow - ldr r0, _080B799C - subs r4, 0x11 - ldrb r1, [r4, 0x2] - movs r2, 0x4 - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B799C: .4byte gStringVar1 -_080B79A0: .4byte 0x02000011 -_080B79A4: .4byte gWindowConfig_81E6F4C - thumb_func_end sub_80B7960 - - thumb_func_start IsEnoughMoney -IsEnoughMoney: @ 80B79A8 - push {lr} - cmp r0, r1 - bcs _080B79B2 - movs r0, 0 - b _080B79B4 -_080B79B2: - movs r0, 0x1 -_080B79B4: - pop {r1} - bx r1 - thumb_func_end IsEnoughMoney - - thumb_func_start sub_80B79B8 -sub_80B79B8: @ 80B79B8 - push {lr} - adds r2, r0, 0 - ldr r0, [r2] - adds r1, r0, r1 - cmp r0, r1 - bls _080B79CC - ldr r0, _080B79C8 - b _080B79D4 - .align 2, 0 -_080B79C8: .4byte 0x000f423f -_080B79CC: - str r1, [r2] - ldr r0, _080B79DC - cmp r1, r0 - bls _080B79D6 -_080B79D4: - str r0, [r2] -_080B79D6: - pop {r0} - bx r0 - .align 2, 0 -_080B79DC: .4byte 0x000f423f - thumb_func_end sub_80B79B8 - - thumb_func_start sub_80B79E0 -sub_80B79E0: @ 80B79E0 - push {lr} - adds r2, r0, 0 - ldr r0, [r2] - cmp r0, r1 - bcs _080B79EE - movs r0, 0 - b _080B79F0 -_080B79EE: - subs r0, r1 -_080B79F0: - str r0, [r2] - pop {r0} - bx r0 - thumb_func_end sub_80B79E0 - - thumb_func_start sub_80B79F8 -sub_80B79F8: @ 80B79F8 - push {r4,lr} - adds r3, r0, 0 - lsls r2, 24 - lsrs r4, r2, 24 - ldr r0, _080B7A0C - cmp r1, r0 - bls _080B7A10 - movs r2, 0x7 - b _080B7A46 - .align 2, 0 -_080B7A0C: .4byte 0x000f423f -_080B7A10: - ldr r0, _080B7A1C - cmp r1, r0 - bls _080B7A20 - movs r2, 0x6 - b _080B7A46 - .align 2, 0 -_080B7A1C: .4byte 0x0001869f -_080B7A20: - ldr r0, _080B7A2C - cmp r1, r0 - bls _080B7A30 - movs r2, 0x5 - b _080B7A46 - .align 2, 0 -_080B7A2C: .4byte 0x00002710 -_080B7A30: - ldr r0, _080B7A90 - movs r2, 0x4 - cmp r1, r0 - bhi _080B7A46 - movs r2, 0x3 - cmp r1, 0x63 - bhi _080B7A46 - movs r2, 0x1 - cmp r1, 0x9 - bls _080B7A46 - movs r2, 0x2 -_080B7A46: - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x14 - strb r0, [r3, 0x1] - movs r0, 0x6 - strb r0, [r3, 0x2] - adds r3, 0x3 - movs r0, 0 - subs r2, r4, r2 - cmp r0, r2 - bge _080B7A6C - movs r4, 0 -_080B7A5E: - strb r4, [r3] - adds r3, 0x1 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r2 - blt _080B7A5E -_080B7A6C: - movs r0, 0xB7 - strb r0, [r3] - adds r3, 0x1 - adds r0, r3, 0 - bl ConvertIntToDecimalString - adds r3, r0, 0 - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x14 - strb r0, [r3, 0x1] - movs r0, 0 - strb r0, [r3, 0x2] - movs r0, 0xFF - strb r0, [r3, 0x3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7A90: .4byte 0x000003e7 - thumb_func_end sub_80B79F8 - - thumb_func_start sub_80B7A94 -sub_80B7A94: @ 80B7A94 - push {r4-r7,lr} - sub sp, 0x10 - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 24 - lsrs r7, r3, 24 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_80B79F8 - mov r0, sp - bl sub_8072CA4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0x1 - lsls r0, 3 - cmp r2, r0 - blt _080B7ACE - mov r0, sp - adds r1, r6, 0 - adds r2, r7, 0 - bl MenuPrint - b _080B7AE4 -_080B7ACE: - adds r1, r6, 0x1 - adds r1, r5 - lsls r1, 3 - subs r1, r2 - lsls r1, 24 - lsrs r1, 24 - lsls r2, r7, 3 - mov r0, sp - movs r3, 0x1 - bl sub_80729D8 -_080B7AE4: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B7A94 - - thumb_func_start sub_80B7AEC -sub_80B7AEC: @ 80B7AEC - push {r4-r6,lr} - sub sp, 0x20 - adds r3, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - mov r6, sp - movs r0, 0xB7 - strb r0, [r6] - adds r6, 0x1 - adds r0, r6, 0 - adds r1, r3, 0 - bl ConvertIntToDecimalString - adds r6, r0, 0 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_8072B4C - movs r0, 0xFC - strb r0, [r6] - movs r0, 0x14 - strb r0, [r6, 0x1] - movs r0, 0 - strb r0, [r6, 0x2] - movs r0, 0xFF - strb r0, [r6, 0x3] - add sp, 0x20 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B7AEC - - thumb_func_start sub_80B7B34 -sub_80B7B34: @ 80B7B34 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - mov r8, r0 - adds r5, r1, 0 - mov r9, r2 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r5, 24 - lsrs r5, 24 - mov r1, r9 - lsls r1, 8 - mov r9, r1 - ldr r4, _080B7BD8 - adds r0, r1, r4 - lsls r6, r5, 4 - subs r6, r5 - lsls r1, r6, 6 - mov r3, r8 - adds r3, 0x1 - lsls r3, 5 - ldr r2, _080B7BDC - adds r3, r2 - adds r1, r3 - movs r2, 0x20 - str r3, [sp] - bl CpuFastSet - adds r4, 0x80 - add r9, r4 - adds r0, r5, 0x1 - lsls r4, r0, 4 - subs r4, r0 - lsls r1, r4, 6 - ldr r3, [sp] - adds r1, r3 - mov r0, r9 - movs r2, 0x20 - bl CpuFastSet - movs r3, 0 - lsls r5, 5 - mov r0, r8 - adds r7, r5, r0 - lsls r6, 1 - adds r6, 0x1 - add r6, r8 - ldr r1, _080B7BE0 - adds r5, r1, 0 - ldr r0, _080B7BE4 - mov r12, r0 - ldr r1, _080B7BE8 - mov r9, r1 - lsls r4, 1 - adds r4, 0x1 - add r4, r8 -_080B7BAA: - adds r1, r7, r3 - lsls r1, 1 - mov r0, r12 - adds r2, r1, r0 - adds r0, r3, r6 - adds r0, r5 - strh r0, [r2] - add r1, r9 - adds r0, r3, r4 - adds r0, r5 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080B7BAA - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B7BD8: .4byte gDecoration10000_Gfx -_080B7BDC: .4byte 0x06008000 -_080B7BE0: .4byte 0xfffff000 -_080B7BE4: .4byte 0x0600f800 -_080B7BE8: .4byte 0x0600f840 - thumb_func_end sub_80B7B34 - - thumb_func_start sub_80B7BEC -sub_80B7BEC: @ 80B7BEC - push {r4,lr} - adds r4, r1, 0 - adds r3, r2, 0 - lsls r4, 24 - lsls r3, 24 - movs r1, 0xC0 - lsls r1, 19 - adds r4, r1 - lsrs r4, 24 - movs r1, 0x80 - lsls r1, 17 - adds r3, r1 - lsrs r3, 24 - movs r1, 0x6 - adds r2, r4, 0 - bl sub_80B7A94 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B7BEC - - thumb_func_start sub_80B7C14 -sub_80B7C14: @ 80B7C14 - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, 0 - adds r3, r2, 0 - lsls r4, 24 - lsls r3, 24 - lsrs r6, r4, 24 - movs r0, 0xD0 - lsls r0, 20 - adds r4, r0 - lsrs r4, 24 - lsrs r5, r3, 24 - movs r1, 0xC0 - lsls r1, 18 - adds r3, r1 - lsrs r3, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl MenuDrawTextWindow - mov r0, r8 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_80B7BEC - ldr r0, _080B7C88 - bl LoadCompressedObjectPic - ldr r0, _080B7C8C - bl LoadCompressedObjectPalette - ldr r0, _080B7C90 - lsls r6, 19 - movs r1, 0x98 - lsls r1, 13 - adds r6, r1 - asrs r6, 16 - lsls r5, 19 - movs r1, 0xB0 - lsls r1, 12 - adds r5, r1 - asrs r5, 16 - adds r1, r6, 0 - adds r2, r5, 0 - movs r3, 0 - bl CreateSprite - ldr r1, _080B7C94 - strb r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B7C88: .4byte gUnknown_083CF584 -_080B7C8C: .4byte gUnknown_083CF58C -_080B7C90: .4byte gSpriteTemplate_83CF56C -_080B7C94: .4byte gUnknown_02038734 - thumb_func_end sub_80B7C14 - - thumb_func_start RemoveMoneyLabelObject -RemoveMoneyLabelObject: @ 80B7C98 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080B7CDC - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B7CE0 - adds r0, r1 - bl DestroySpriteAndFreeResources - ldr r0, _080B7CE4 - bl FreeSpritePaletteByTag - adds r2, r4, 0 - adds r2, 0xD - lsls r2, 24 - lsrs r2, 24 - adds r3, r5, 0x3 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl MenuZeroFillWindowRect - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B7CDC: .4byte gUnknown_02038734 -_080B7CE0: .4byte gSprites -_080B7CE4: .4byte 0x00002722 - thumb_func_end RemoveMoneyLabelObject - - thumb_func_start sub_80B7CE8 -sub_80B7CE8: @ 80B7CE8 - push {lr} - ldr r0, _080B7D04 - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080B7D08 - ldrh r1, [r1] - bl IsEnoughMoney - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080B7D04: .4byte gSaveBlock1 -_080B7D08: .4byte gUnknown_0202E8CE - thumb_func_end sub_80B7CE8 - - thumb_func_start sub_80B7D0C -sub_80B7D0C: @ 80B7D0C - push {lr} - ldr r0, _080B7D1C - ldr r1, _080B7D20 - ldrh r1, [r1] - bl sub_80B79E0 - pop {r0} - bx r0 - .align 2, 0 -_080B7D1C: .4byte gSaveBlock1 + 0x490 -_080B7D20: .4byte gUnknown_0202E8CE - thumb_func_end sub_80B7D0C - - thumb_func_start AreMovesContestCombo -AreMovesContestCombo: @ 80B7D24 - push {r4,lr} - sub sp, 0x4 - lsls r0, 16 - lsls r1, 16 - ldr r2, _080B7D78 - lsrs r0, 13 - adds r0, r2 - ldrb r4, [r0, 0x2] - mov r3, sp - lsrs r1, 13 - adds r1, r2 - ldrb r0, [r1, 0x3] - strb r0, [r3] - mov r2, sp - ldrb r0, [r1, 0x4] - strb r0, [r2, 0x1] - ldrb r0, [r1, 0x5] - strb r0, [r2, 0x2] - mov r0, sp - ldrb r1, [r1, 0x6] - strb r1, [r0, 0x3] - cmp r4, 0 - beq _080B7D80 - mov r0, sp - ldrb r0, [r0] - cmp r4, r0 - beq _080B7D6E - mov r0, sp - ldrb r0, [r0, 0x1] - cmp r4, r0 - beq _080B7D6E - mov r0, sp - ldrb r0, [r0, 0x2] - cmp r4, r0 - beq _080B7D6E - cmp r4, r1 - bne _080B7D80 -_080B7D6E: - ldr r0, _080B7D7C - adds r0, r4, r0 - ldrb r0, [r0] - b _080B7D82 - .align 2, 0 -_080B7D78: .4byte gContestMoves -_080B7D7C: .4byte gComboStarterLookupTable -_080B7D80: - movs r0, 0 -_080B7D82: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end AreMovesContestCombo - - thumb_func_start ContestEffect_00 -ContestEffect_00: @ 80B7D8C - bx lr - thumb_func_end ContestEffect_00 - - thumb_func_start ContestEffect_01 -ContestEffect_01: @ 80B7D90 - push {lr} - ldr r3, _080B7DB8 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r3, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x10] - ldrb r0, [r3, 0x11] - movs r1, 0 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7DB8: .4byte 0x020192d0 - thumb_func_end ContestEffect_01 - - thumb_func_start ContestEffect_02 -ContestEffect_02: @ 80B7DBC - push {lr} - ldr r3, _080B7DE4 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r3, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x11] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x11] - ldrb r0, [r3, 0x11] - movs r1, 0x1 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7DE4: .4byte 0x020192d0 - thumb_func_end ContestEffect_02 - - thumb_func_start ContestEffect_03 -ContestEffect_03: @ 80B7DE8 - push {r4,lr} - ldr r3, _080B7E30 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r4, r3, 0 - subs r4, 0x70 - adds r0, r4 - ldrb r1, [r0, 0x10] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x10] - ldrb r0, [r3, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x15] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x15] - ldrb r0, [r3, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0xB] - movs r0, 0x71 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0xB] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7E30: .4byte 0x020192d0 - thumb_func_end ContestEffect_03 - - thumb_func_start ContestEffect_04 -ContestEffect_04: @ 80B7E34 - push {lr} - ldr r2, _080B7E58 - ldrb r1, [r2, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r2, 0 - subs r1, 0x70 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0, 0x12] - ldrb r0, [r2, 0x11] - movs r1, 0x2 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7E58: .4byte 0x020192d0 - thumb_func_end ContestEffect_04 - - thumb_func_start ContestEffect_05 -ContestEffect_05: @ 80B7E5C - push {lr} - ldr r3, _080B7E84 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r3, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0, 0x10] - ldrb r0, [r3, 0x11] - movs r1, 0x3 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7E84: .4byte 0x020192d0 - thumb_func_end ContestEffect_05 - - thumb_func_start ContestEffect_06 -ContestEffect_06: @ 80B7E88 - push {lr} - ldr r2, _080B7EAC - ldrb r1, [r2, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r2, 0 - subs r1, 0x70 - adds r0, r1 - movs r1, 0x14 - strb r1, [r0, 0xF] - ldrb r0, [r2, 0x11] - movs r1, 0x4 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7EAC: .4byte 0x020192d0 - thumb_func_end ContestEffect_06 - - thumb_func_start ContestEffect_07 -ContestEffect_07: @ 80B7EB0 - push {lr} - ldr r3, _080B7ED8 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r3, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0, 0x10] - ldrb r0, [r3, 0x11] - movs r1, 0x5 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7ED8: .4byte 0x020192d0 - thumb_func_end ContestEffect_07 - - thumb_func_start ContestEffect_08 -ContestEffect_08: @ 80B7EDC - push {r4,lr} - movs r2, 0 - ldr r3, _080B7F38 - ldrb r0, [r3, 0x11] - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, 0 - beq _080B7F1A - subs r0, 0x1 - ldrb r4, [r3] - cmp r0, r4 - beq _080B7F0A - adds r4, r3, 0 - adds r3, r1, 0 -_080B7EF8: - adds r2, 0x1 - cmp r2, 0x3 - bgt _080B7F0A - ldrb r0, [r3] - subs r0, 0x1 - adds r1, r2, r4 - ldrb r1, [r1] - cmp r0, r1 - bne _080B7EF8 -_080B7F0A: - ldr r1, _080B7F38 - strb r2, [r1, 0x8] - movs r0, 0xFF - strb r0, [r1, 0x9] - bl sub_80B9120 - lsls r0, 24 - lsrs r2, r0, 24 -_080B7F1A: - cmp r2, 0 - bne _080B7F28 - ldr r0, _080B7F38 - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B7F28: - ldr r0, _080B7F38 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7F38: .4byte 0x020192d0 - thumb_func_end ContestEffect_08 - - thumb_func_start ContestEffect_09 -ContestEffect_09: @ 80B7F3C - push {r4-r6,lr} - movs r2, 0 - ldr r1, _080B7F9C - ldrb r0, [r1, 0x11] - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - beq _080B7F7C - movs r3, 0 - adds r5, r1, 0 - adds r6, r5, 0 - adds r6, 0x8 -_080B7F54: - adds r1, r2, r5 - ldrb r0, [r4] - ldrb r1, [r1] - cmp r0, r1 - bls _080B7F64 - adds r0, r3, r6 - strb r2, [r0] - adds r3, 0x1 -_080B7F64: - adds r2, 0x1 - cmp r2, 0x3 - ble _080B7F54 - ldr r0, _080B7F9C - adds r0, 0x8 - adds r0, r3, r0 - movs r1, 0xFF - strb r1, [r0] - bl sub_80B9120 - lsls r0, 24 - lsrs r2, r0, 24 -_080B7F7C: - cmp r2, 0 - bne _080B7F8A - ldr r0, _080B7F9C - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B7F8A: - ldr r0, _080B7F9C - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B7F9C: .4byte 0x020192d0 - thumb_func_end ContestEffect_09 - - thumb_func_start ContestEffect_14 -ContestEffect_14: @ 80B7FA0 - push {lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x14 - cmp r0, 0x1 - bls _080B7FC2 - movs r1, 0x3C - cmp r0, 0x7 - bhi _080B7FC2 - movs r1, 0x28 -_080B7FC2: - ldr r0, _080B7FD0 - strh r1, [r0, 0x4] - bl ContestEffect_08 - pop {r0} - bx r0 - .align 2, 0 -_080B7FD0: .4byte 0x020192d0 - thumb_func_end ContestEffect_14 - - thumb_func_start ContestEffect_15 -ContestEffect_15: @ 80B7FD4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r7, 0 - ldr r0, _080B806C - ldrb r6, [r0, 0x11] - adds r1, r6, r0 - ldrb r1, [r1] - mov r8, r0 - cmp r1, 0 - beq _080B804A - movs r5, 0 - mov r4, r8 -_080B7FEE: - adds r0, r6, r4 - adds r1, r5, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B8044 - strb r5, [r4, 0x8] - movs r0, 0xFF - strb r0, [r4, 0x9] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - cmp r0, 0 - beq _080B8032 - movs r1, 0xA - cmp r0, 0x2 - bls _080B8032 - movs r1, 0x14 - cmp r0, 0x4 - bls _080B8032 - movs r1, 0x1E - cmp r0, 0x6 - bls _080B8032 - movs r1, 0x3C - cmp r0, 0x8 - bhi _080B8032 - movs r1, 0x28 -_080B8032: - strh r1, [r4, 0x4] - bl sub_80B9120 - lsls r0, 24 - cmp r0, 0 - beq _080B8044 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_080B8044: - adds r5, 0x1 - cmp r5, 0x3 - ble _080B7FEE -_080B804A: - mov r1, r8 - ldrb r0, [r1, 0x11] - movs r1, 0x30 - bl sub_80B13EC - cmp r7, 0 - bne _080B8062 - mov r1, r8 - ldrb r0, [r1, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B8062: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B806C: .4byte 0x020192d0 - thumb_func_end ContestEffect_15 - - thumb_func_start ContestEffect_16 -ContestEffect_16: @ 80B8070 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - mov r9, r0 - ldr r0, _080B8108 - ldrb r7, [r0, 0x11] - adds r1, r7, r0 - ldrb r1, [r1] - mov r10, r0 - cmp r1, 0 - beq _080B80E0 - movs r6, 0 - mov r8, r10 - mov r5, r10 - subs r5, 0x5B -_080B8094: - mov r1, r8 - adds r0, r7, r1 - adds r1, r6, r1 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B80D8 - ldrb r1, [r5] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B80D8 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80B90C0 - lsls r0, 24 - cmp r0, 0 - beq _080B80D8 - ldrb r0, [r5] - movs r2, 0x11 - negs r2, r2 - adds r1, r2, 0 - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r5] - adds r0, r4, 0 - movs r1, 0x8 - bl sub_80B13EC - movs r0, 0x1 - mov r9, r0 -_080B80D8: - adds r5, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - ble _080B8094 -_080B80E0: - mov r1, r10 - ldrb r0, [r1, 0x11] - movs r1, 0x7 - bl sub_80B13EC - mov r2, r9 - cmp r2, 0 - bne _080B80FA - mov r1, r10 - ldrb r0, [r1, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B80FA: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8108: .4byte 0x020192d0 - thumb_func_end ContestEffect_16 - - thumb_func_start ContestEffect_17 -ContestEffect_17: @ 80B810C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r0, 0 - mov r9, r0 - ldr r0, _080B8150 - ldrb r1, [r0, 0x11] - mov r8, r1 - adds r1, r0 - ldrb r1, [r1] - adds r6, r0, 0 - cmp r1, 0 - beq _080B817C - movs r5, 0 - adds r4, r6, 0 - movs r7, 0 -_080B812E: - mov r2, r8 - adds r0, r2, r4 - adds r1, r5, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B8172 - adds r0, r6, 0 - subs r0, 0x70 - adds r0, r7, r0 - ldrb r1, [r0, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B8154 - movs r0, 0x32 - b _080B8156 - .align 2, 0 -_080B8150: .4byte 0x020192d0 -_080B8154: - movs r0, 0xA -_080B8156: - strh r0, [r4, 0x4] - strb r5, [r4, 0x8] - movs r0, 0xFF - strb r0, [r4, 0x9] - bl sub_80B9120 - lsls r0, 24 - cmp r0, 0 - beq _080B8172 - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080B8172: - adds r7, 0x1C - adds r5, 0x1 - ldr r6, _080B81A0 - cmp r5, 0x3 - ble _080B812E -_080B817C: - ldrb r0, [r6, 0x11] - movs r1, 0x30 - bl sub_80B13EC - mov r0, r9 - cmp r0, 0 - bne _080B8192 - ldrb r0, [r6, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B8192: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B81A0: .4byte 0x020192d0 - thumb_func_end ContestEffect_17 - - thumb_func_start ContestEffect_18 -ContestEffect_18: @ 80B81A4 - push {r4,lr} - ldr r4, _080B81D0 - ldrb r1, [r4, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r4, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x11] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x11] - bl ContestEffect_09 - ldrb r0, [r4, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B81D0: .4byte 0x020192d0 - thumb_func_end ContestEffect_18 - - thumb_func_start ContestEffect_19 -ContestEffect_19: @ 80B81D4 - push {r4,lr} - ldr r4, _080B8208 - ldrb r1, [r4, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r4, 0 - subs r1, 0x70 - adds r0, r1 - ldrh r0, [r0, 0x6] - ldr r1, _080B820C - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 29 - bl sub_80B9038 - ldrb r0, [r4, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8208: .4byte 0x020192d0 -_080B820C: .4byte gContestMoves - thumb_func_end ContestEffect_19 - - thumb_func_start ContestEffect_20 -ContestEffect_20: @ 80B8210 - push {lr} - movs r0, 0 - bl sub_80B9038 - ldr r0, _080B8228 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B8228: .4byte 0x020192d0 - thumb_func_end ContestEffect_20 - - thumb_func_start ContestEffect_21 -ContestEffect_21: @ 80B822C - push {lr} - movs r0, 0x1 - bl sub_80B9038 - ldr r0, _080B8244 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B8244: .4byte 0x020192d0 - thumb_func_end ContestEffect_21 - - thumb_func_start ContestEffect_22 -ContestEffect_22: @ 80B8248 - push {lr} - movs r0, 0x2 - bl sub_80B9038 - ldr r0, _080B8260 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B8260: .4byte 0x020192d0 - thumb_func_end ContestEffect_22 - - thumb_func_start ContestEffect_23 -ContestEffect_23: @ 80B8264 - push {lr} - movs r0, 0x3 - bl sub_80B9038 - ldr r0, _080B827C - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B827C: .4byte 0x020192d0 - thumb_func_end ContestEffect_23 - - thumb_func_start ContestEffect_24 -ContestEffect_24: @ 80B8280 - push {lr} - movs r0, 0x4 - bl sub_80B9038 - ldr r0, _080B8298 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B8298: .4byte 0x020192d0 - thumb_func_end ContestEffect_24 - - thumb_func_start ContestEffect_25 -ContestEffect_25: @ 80B829C - push {r4-r7,lr} - movs r4, 0 - ldr r0, _080B82E0 - ldrb r1, [r0, 0x11] - adds r1, r0 - ldrb r1, [r1] - adds r7, r0, 0 - cmp r1, 0x3 - beq _080B82F4 - movs r5, 0 - adds r6, r7, 0 -_080B82B2: - ldrb r0, [r6, 0x11] - adds r0, r6 - ldrb r0, [r0] - adds r0, 0x1 - adds r1, r5, r6 - ldrb r1, [r1] - cmp r0, r1 - bne _080B82EE - lsls r0, r5, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80B90C0 - lsls r0, 24 - cmp r0, 0 - beq _080B82E4 - adds r0, r4, 0 - bl sub_80B157C - adds r0, r4, 0 - movs r1, 0xA - b _080B82E8 - .align 2, 0 -_080B82E0: .4byte 0x020192d0 -_080B82E4: - adds r0, r4, 0 - movs r1, 0x3C -_080B82E8: - bl sub_80B13EC - movs r4, 0x1 -_080B82EE: - adds r5, 0x1 - cmp r5, 0x3 - ble _080B82B2 -_080B82F4: - ldrb r0, [r7, 0x11] - movs r1, 0x9 - bl sub_80B13EC - cmp r4, 0 - bne _080B8308 - ldrb r0, [r7, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B8308: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_25 - - thumb_func_start ContestEffect_26 -ContestEffect_26: @ 80B8310 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - movs r0, 0 - mov r9, r0 - movs r1, 0 - str r1, [sp, 0x18] - mov r0, sp - movs r1, 0xFF - movs r2, 0x5 - bl memset - movs r6, 0 - movs r4, 0 - add r2, sp, 0x10 - mov r8, r2 - add r3, sp, 0x8 - mov r10, r3 - ldr r5, _080B8384 - adds r7, r5, 0 - subs r7, 0x70 -_080B8340: - ldrb r0, [r5, 0x11] - adds r0, r5 - adds r1, r6, r5 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcs _080B836E - ldrb r1, [r7, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080B836E - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_80AF59C - lsls r0, 24 - cmp r0, 0 - bne _080B836E - mov r1, sp - adds r0, r1, r4 - strb r6, [r0] - adds r4, 0x1 -_080B836E: - adds r7, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - ble _080B8340 - cmp r4, 0x1 - bne _080B8388 - movs r0, 0x3C - mov r2, r8 - strh r0, [r2] - b _080B83B6 - .align 2, 0 -_080B8384: .4byte 0x020192d0 -_080B8388: - cmp r4, 0x2 - bne _080B8396 - movs r0, 0x1E - mov r3, r8 - strh r0, [r3] - strh r0, [r3, 0x2] - b _080B83B6 -_080B8396: - cmp r4, 0x3 - bne _080B83A6 - movs r0, 0x14 - mov r7, r8 - strh r0, [r7] - strh r0, [r7, 0x2] - strh r0, [r7, 0x4] - b _080B83B6 -_080B83A6: - mov r1, r8 - movs r2, 0 - mov r0, r8 - adds r0, 0x6 -_080B83AE: - strh r2, [r0] - subs r0, 0x2 - cmp r0, r1 - bge _080B83AE -_080B83B6: - movs r6, 0 - movs r7, 0 - mov r4, r10 -_080B83BC: - ldr r0, _080B83F0 - adds r5, r7, r0 - ldrb r1, [r5, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B83FC - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_80B214C - lsls r0, 24 - cmp r0, 0 - beq _080B83FC - ldr r1, _080B83F4 - ldrh r0, [r5, 0x8] - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x2] - ldr r1, _080B83F8 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - b _080B83FE - .align 2, 0 -_080B83F0: .4byte 0x02019260 -_080B83F4: .4byte gContestMoves -_080B83F8: .4byte gComboStarterLookupTable -_080B83FC: - movs r0, 0 -_080B83FE: - strh r0, [r4] - ldr r5, _080B8494 - adds r0, r7, r5 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - movs r1, 0xA - bl __divsi3 - lsls r0, 24 - asrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 1 - ldrh r0, [r4] - subs r0, r1 - strh r0, [r4] - adds r7, 0x1C - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _080B83BC - mov r2, r8 - movs r3, 0 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080B84CA - movs r6, 0 - mov r0, sp - ldrb r0, [r0] - cmp r0, 0xFF - beq _080B84CA - adds r5, 0x7D - mov r4, sp -_080B8442: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r6, 1 - add r1, r8 - movs r7, 0 - ldrsh r2, [r1, r7] - ldrb r3, [r4] - lsls r1, r3, 1 - add r1, r10 - movs r7, 0 - ldrsh r1, [r1, r7] - adds r2, r1 - cmp r0, r2 - bge _080B8498 - adds r0, r3, 0 - bl sub_80B90C0 - lsls r0, 24 - cmp r0, 0 - beq _080B84A2 - ldrb r0, [r4] - bl sub_80B157C - ldrb r0, [r4] - movs r1, 0xA - bl sub_80B13EC - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - b _080B849C - .align 2, 0 -_080B8494: .4byte 0x02019260 -_080B8498: - movs r0, 0x1 - str r0, [sp, 0x18] -_080B849C: - ldr r1, [sp, 0x18] - cmp r1, 0 - beq _080B84B8 -_080B84A2: - movs r2, 0 - str r2, [sp, 0x18] - ldrb r0, [r4] - movs r1, 0x3C - bl sub_80B13EC - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080B84B8: - ldrb r0, [r4] - adds r0, r5 - movs r1, 0x1 - strb r1, [r0] - adds r4, 0x1 - adds r6, 0x1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _080B8442 -_080B84CA: - ldr r4, _080B84F4 - ldrb r0, [r4, 0x11] - movs r1, 0xB - bl sub_80B13EC - mov r3, r9 - cmp r3, 0 - bne _080B84E2 - ldrb r0, [r4, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B84E2: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B84F4: .4byte 0x020192d0 - thumb_func_end ContestEffect_26 - - thumb_func_start ContestEffect_27 -ContestEffect_27: @ 80B84F8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0 - mov r8, r0 - movs r6, 0 - ldr r7, _080B8580 - adds r5, r7, 0 - subs r5, 0x63 -_080B850A: - ldrb r0, [r7, 0x11] - adds r0, r7 - adds r1, r6, r7 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B8556 - movs r0, 0 - ldrsb r0, [r5, r0] - cmp r0, 0 - ble _080B8556 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80B90C0 - lsls r0, 24 - cmp r0, 0 - beq _080B8556 - movs r0, 0 - strb r0, [r5] - ldrb r1, [r5, 0x3] - movs r2, 0x31 - negs r2, r2 - adds r0, r2, 0 - ands r1, r0 - movs r0, 0x20 - orrs r1, r0 - strb r1, [r5, 0x3] - adds r0, r4, 0 - movs r1, 0xD - bl sub_80B13EC - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 -_080B8556: - adds r5, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - ble _080B850A - ldr r4, _080B8580 - ldrb r0, [r4, 0x11] - movs r1, 0xC - bl sub_80B13EC - mov r0, r8 - cmp r0, 0 - bne _080B8576 - ldrb r0, [r4, 0x11] - movs r1, 0x39 - bl sub_80B1404 -_080B8576: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8580: .4byte 0x020192d0 - thumb_func_end ContestEffect_27 - - thumb_func_start ContestEffect_28 -ContestEffect_28: @ 80B8584 - push {r4-r7,lr} - movs r7, 0 - movs r5, 0 - ldr r4, _080B85B0 - movs r6, 0 -_080B858E: - ldrb r0, [r4, 0x11] - adds r0, r4 - adds r1, r5, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B85CE - adds r0, r4, 0 - subs r0, 0x70 - adds r0, r6, r0 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _080B85B4 - movs r0, 0x28 - b _080B85B6 - .align 2, 0 -_080B85B0: .4byte 0x020192d0 -_080B85B4: - movs r0, 0xA -_080B85B6: - strh r0, [r4, 0x4] - strb r5, [r4, 0x8] - movs r0, 0xFF - strb r0, [r4, 0x9] - bl sub_80B9120 - lsls r0, 24 - cmp r0, 0 - beq _080B85CE - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_080B85CE: - adds r6, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080B858E - ldr r4, _080B85F4 - ldrb r0, [r4, 0x11] - movs r1, 0xE - bl sub_80B13EC - cmp r7, 0 - bne _080B85EC - ldrb r0, [r4, 0x11] - movs r1, 0x39 - bl sub_80B1404 -_080B85EC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B85F4: .4byte 0x020192d0 - thumb_func_end ContestEffect_28 - - thumb_func_start ContestEffect_29 -ContestEffect_29: @ 80B85F8 - push {r4,lr} - ldr r0, _080B863C - ldr r4, _080B8640 - ldrb r2, [r4, 0x11] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _080B8636 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r0, r4, 0 - subs r0, 0x70 - adds r1, r0 - ldrh r0, [r1, 0x6] - ldr r3, _080B8644 - ldr r2, _080B8648 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x1] - lsls r0, 1 - ldrh r2, [r1, 0x2] - adds r0, r2 - strh r0, [r1, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0xF - bl sub_80B13EC -_080B8636: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B863C: .4byte gUnknown_02038696 -_080B8640: .4byte 0x020192d0 -_080B8644: .4byte gContestEffects -_080B8648: .4byte gContestMoves - thumb_func_end ContestEffect_29 - - thumb_func_start ContestEffect_30 -ContestEffect_30: @ 80B864C - push {r4,lr} - ldr r0, _080B8690 - ldr r4, _080B8694 - ldrb r2, [r4, 0x11] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0x3 - bne _080B868A - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r0, r4, 0 - subs r0, 0x70 - adds r1, r0 - ldrh r0, [r1, 0x6] - ldr r3, _080B8698 - ldr r2, _080B869C - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x1] - lsls r0, 1 - ldrh r2, [r1, 0x2] - adds r0, r2 - strh r0, [r1, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0x10 - bl sub_80B13EC -_080B868A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8690: .4byte gUnknown_02038696 -_080B8694: .4byte 0x020192d0 -_080B8698: .4byte gContestEffects -_080B869C: .4byte gContestMoves - thumb_func_end ContestEffect_30 - - thumb_func_start ContestEffect_31 -ContestEffect_31: @ 80B86A0 - push {r4-r7,lr} - movs r1, 0 - movs r3, 0 - ldr r4, _080B86EC - ldrb r0, [r4, 0x11] - adds r0, r4 - ldrb r5, [r0] - movs r2, 0 - adds r6, r4, 0 - subs r6, 0x70 -_080B86B4: - adds r0, r1, r4 - ldrb r0, [r0] - cmp r5, r0 - bls _080B86C4 - adds r0, r2, r6 - movs r7, 0x2 - ldrsh r0, [r0, r7] - adds r3, r0 -_080B86C4: - adds r2, 0x1C - adds r1, 0x1 - cmp r1, 0x3 - ble _080B86B4 - cmp r3, 0 - bge _080B86D2 - movs r3, 0 -_080B86D2: - ldr r4, _080B86EC - ldrb r2, [r4, 0x11] - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _080B86E2 - cmp r3, 0 - bne _080B86F0 -_080B86E2: - adds r0, r2, 0 - movs r1, 0x12 - bl sub_80B13EC - b _080B8710 - .align 2, 0 -_080B86EC: .4byte 0x020192d0 -_080B86F0: - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r0, r4, 0 - subs r0, 0x70 - adds r1, r0 - lsrs r0, r3, 31 - adds r0, r3, r0 - asrs r0, 1 - ldrh r2, [r1, 0x2] - adds r0, r2 - strh r0, [r1, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0x11 - bl sub_80B13EC -_080B8710: - ldr r4, _080B873C - ldrb r1, [r4, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r5, r4, 0 - subs r5, 0x70 - adds r0, r5 - movs r7, 0x2 - ldrsh r0, [r0, r7] - bl sub_80B9224 - ldrb r2, [r4, 0x11] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r5 - strh r0, [r1, 0x2] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B873C: .4byte 0x020192d0 - thumb_func_end ContestEffect_31 - - thumb_func_start ContestEffect_32 -ContestEffect_32: @ 80B8740 - push {r4-r7,lr} - movs r6, 0 - ldr r0, _080B8794 - ldrb r1, [r0, 0x11] - adds r3, r1, r0 - ldrb r1, [r3] - adds r4, r0, 0 - cmp r1, 0 - beq _080B8788 - movs r2, 0 - adds r7, r4, 0 - adds r0, r1, 0 - subs r1, r0, 0x1 - movs r3, 0 - adds r5, r4, 0 - subs r5, 0x70 -_080B8760: - adds r0, r2, r7 - ldrb r0, [r0] - cmp r1, r0 - bne _080B876C - adds r0, r3, r5 - ldrh r6, [r0, 0x2] -_080B876C: - adds r3, 0x1C - adds r2, 0x1 - cmp r2, 0x3 - ble _080B8760 - adds r0, r4, 0 - ldrb r2, [r0, 0x11] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _080B8788 - lsls r0, r6, 16 - asrs r3, r0, 16 - cmp r3, 0 - bgt _080B8798 -_080B8788: - ldrb r0, [r4, 0x11] - movs r1, 0x14 - bl sub_80B13EC - b _080B87B2 - .align 2, 0 -_080B8794: .4byte 0x020192d0 -_080B8798: - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r0, r4, 0 - subs r0, 0x70 - adds r1, r0 - ldrh r0, [r1, 0x2] - adds r0, r3, r0 - strh r0, [r1, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0x13 - bl sub_80B13EC -_080B87B2: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_32 - - thumb_func_start ContestEffect_33 -ContestEffect_33: @ 80B87B8 - push {lr} - ldr r0, _080B87D8 - ldrb r2, [r0, 0x11] - adds r1, r2, r0 - ldrb r3, [r1] - mov r12, r0 - cmp r3, 0 - bne _080B87DC - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - mov r1, r12 - subs r1, 0x70 - adds r0, r1 - movs r1, 0xA - b _080B87EE - .align 2, 0 -_080B87D8: .4byte 0x020192d0 -_080B87DC: - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - mov r1, r12 - subs r1, 0x70 - adds r0, r1 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 -_080B87EE: - strh r1, [r0, 0x2] - cmp r3, 0 - bne _080B8800 - mov r1, r12 - ldrb r0, [r1, 0x11] - movs r1, 0x15 - bl sub_80B13EC - b _080B882A -_080B8800: - cmp r3, 0x1 - bne _080B8810 - mov r1, r12 - ldrb r0, [r1, 0x11] - movs r1, 0x16 - bl sub_80B13EC - b _080B882A -_080B8810: - cmp r3, 0x2 - bne _080B8820 - mov r1, r12 - ldrb r0, [r1, 0x11] - movs r1, 0x17 - bl sub_80B13EC - b _080B882A -_080B8820: - mov r1, r12 - ldrb r0, [r1, 0x11] - movs r1, 0x18 - bl sub_80B13EC -_080B882A: - pop {r0} - bx r0 - thumb_func_end ContestEffect_33 - - thumb_func_start ContestEffect_34 -ContestEffect_34: @ 80B8830 - push {r4,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x2 - bhi _080B885C - movs r4, 0xA - ldr r0, _080B8858 - ldrb r0, [r0, 0x11] - movs r1, 0x1A - bl sub_80B13EC - b _080B88B0 - .align 2, 0 -_080B8858: .4byte 0x020192d0 -_080B885C: - cmp r0, 0x5 - bhi _080B8874 - movs r4, 0x14 - ldr r0, _080B8870 - ldrb r0, [r0, 0x11] - movs r1, 0x1B - bl sub_80B13EC - b _080B88B0 - .align 2, 0 -_080B8870: .4byte 0x020192d0 -_080B8874: - cmp r0, 0x7 - bhi _080B888C - movs r4, 0x28 - ldr r0, _080B8888 - ldrb r0, [r0, 0x11] - movs r1, 0x1C - bl sub_80B13EC - b _080B88B0 - .align 2, 0 -_080B8888: .4byte 0x020192d0 -_080B888C: - cmp r1, 0x8 - bhi _080B88A4 - movs r4, 0x3C - ldr r0, _080B88A0 - ldrb r0, [r0, 0x11] - movs r1, 0x1D - bl sub_80B13EC - b _080B88B0 - .align 2, 0 -_080B88A0: .4byte 0x020192d0 -_080B88A4: - movs r4, 0x50 - ldr r0, _080B88C8 - ldrb r0, [r0, 0x11] - movs r1, 0x1E - bl sub_80B13EC -_080B88B0: - ldr r0, _080B88C8 - ldrb r2, [r0, 0x11] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - subs r0, 0x70 - adds r1, r0 - strh r4, [r1, 0x2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B88C8: .4byte 0x020192d0 - thumb_func_end ContestEffect_34 - - thumb_func_start ContestEffect_35 -ContestEffect_35: @ 80B88CC - push {r4-r7,lr} - ldr r1, _080B8940 - ldrb r0, [r1, 0x11] - adds r0, r1 - movs r2, 0 - ldrsb r2, [r0, r2] - subs r0, r2, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - mov r12, r1 - cmp r2, 0 - beq _080B8994 - ldrb r5, [r1] - mov r6, r12 - subs r6, 0x70 -_080B88EA: - movs r2, 0 - lsls r0, r4, 24 - asrs r1, r0, 24 - adds r4, r0, 0 - cmp r5, r1 - beq _080B8910 - ldr r3, _080B8940 -_080B88F8: - lsls r0, r2, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bgt _080B8910 - adds r0, r3 - ldrb r0, [r0] - cmp r0, r1 - bne _080B88F8 -_080B8910: - lsls r2, 24 - asrs r1, r2, 24 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r3, r0, r6 - ldrb r1, [r3, 0xB] - movs r0, 0x80 - ands r0, r1 - adds r7, r2, 0 - cmp r0, 0 - bne _080B8932 - ldrb r1, [r3, 0xC] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _080B8944 -_080B8932: - movs r1, 0xFF - lsls r1, 24 - adds r0, r4, r1 - lsrs r4, r0, 24 - cmp r0, 0 - blt _080B8994 - b _080B88EA - .align 2, 0 -_080B8940: .4byte 0x020192d0 -_080B8944: - mov r2, r12 - ldrb r1, [r2, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - mov r3, r12 - subs r3, 0x70 - adds r5, r0, r3 - ldrh r0, [r5, 0x6] - ldr r4, _080B899C - lsls r0, 3 - adds r6, r0, r4 - ldrb r2, [r6, 0x1] - lsls r2, 29 - asrs r1, r7, 24 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x6] - lsls r0, 3 - adds r0, r4 - ldrb r0, [r0, 0x1] - lsls r0, 29 - cmp r2, r0 - bne _080B8994 - ldr r1, _080B89A0 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 1 - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r5, 0x2] - mov r2, r12 - ldrb r0, [r2, 0x11] - movs r1, 0x1F - bl sub_80B13EC -_080B8994: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B899C: .4byte gContestMoves -_080B89A0: .4byte gContestEffects - thumb_func_end ContestEffect_35 - - thumb_func_start ContestEffect_36 -ContestEffect_36: @ 80B89A4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _080B8A28 - ldrb r2, [r0, 0x11] - adds r1, r2, r0 - ldrb r1, [r1] - mov r8, r0 - cmp r1, 0 - beq _080B8A3C - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - mov r1, r8 - subs r1, 0x70 - adds r0, r1 - ldrh r0, [r0, 0x6] - mov r9, r0 - movs r4, 0 - mov r6, r8 - ldr r0, _080B8A2C - mov r12, r0 - movs r7, 0 -_080B89D4: - ldrb r2, [r6, 0x11] - adds r0, r2, r6 - ldrb r0, [r0] - subs r0, 0x1 - adds r1, r4, r6 - ldrb r1, [r1] - cmp r0, r1 - bne _080B8A34 - mov r1, r9 - lsls r0, r1, 3 - mov r1, r12 - adds r3, r0, r1 - ldrb r1, [r3, 0x1] - lsls r1, 29 - mov r5, r8 - subs r5, 0x70 - adds r0, r7, r5 - ldrh r0, [r0, 0x6] - lsls r0, 3 - add r0, r12 - ldrb r0, [r0, 0x1] - lsls r0, 29 - cmp r1, r0 - beq _080B8A34 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r5 - ldr r2, _080B8A30 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - lsls r0, 1 - ldrh r2, [r1, 0x2] - adds r0, r2 - strh r0, [r1, 0x2] - ldrb r0, [r6, 0x11] - movs r1, 0x20 - bl sub_80B13EC - b _080B8A3C - .align 2, 0 -_080B8A28: .4byte 0x020192d0 -_080B8A2C: .4byte gContestMoves -_080B8A30: .4byte gContestEffects -_080B8A34: - adds r7, 0x1C - adds r4, 0x1 - cmp r4, 0x3 - ble _080B89D4 -_080B8A3C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_36 - - thumb_func_start ContestEffect_37 -ContestEffect_37: @ 80B8A48 - push {r4-r7,lr} - ldr r1, _080B8A94 - ldrb r0, [r1, 0x11] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080B8AB0 - movs r5, 0 - adds r4, r1, 0 - adds r6, r4, 0 - subs r6, 0x70 - adds r7, r6, 0 -_080B8A60: - ldrb r2, [r4, 0x11] - adds r0, r2, r4 - ldrb r0, [r0] - subs r0, 0x1 - adds r1, r5, r4 - ldrb r1, [r1] - cmp r0, r1 - bne _080B8AA8 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r2, r0, r7 - movs r0, 0x2 - ldrsh r1, [r2, r0] - movs r3, 0x2 - ldrsh r0, [r6, r3] - cmp r1, r0 - ble _080B8A98 - adds r0, r1, 0 - lsls r0, 1 - strh r0, [r2, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0x21 - bl sub_80B13EC - b _080B8AA8 - .align 2, 0 -_080B8A94: .4byte 0x020192d0 -_080B8A98: - cmp r1, r0 - bge _080B8AA8 - movs r0, 0 - strh r0, [r2, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0x22 - bl sub_80B13EC -_080B8AA8: - adds r6, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080B8A60 -_080B8AB0: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_37 - - thumb_func_start ContestEffect_38 -ContestEffect_38: @ 80B8AB8 - push {r4,r5,lr} - ldr r4, _080B8AFC - ldrb r2, [r4, 0x11] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r5, r4, 0 - subs r5, 0x70 - adds r1, r0, r5 - ldrb r3, [r1, 0xD] - movs r0, 0xD - ldrsb r0, [r1, r0] - cmp r0, 0x1D - bgt _080B8B00 - adds r0, r3, 0 - adds r0, 0xA - strb r0, [r1, 0xD] - ldrb r1, [r4, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r2, [r0, 0x10] - movs r1, 0x31 - negs r1, r1 - ands r1, r2 - movs r2, 0x10 - orrs r1, r2 - strb r1, [r0, 0x10] - ldrb r0, [r4, 0x11] - movs r1, 0x23 - bl sub_80B13EC - b _080B8B08 - .align 2, 0 -_080B8AFC: .4byte 0x020192d0 -_080B8B00: - adds r0, r2, 0 - movs r1, 0x3A - bl sub_80B13EC -_080B8B08: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ContestEffect_38 - - thumb_func_start ContestEffect_39 -ContestEffect_39: @ 80B8B10 - push {r4,lr} - ldr r3, _080B8B48 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r4, r3, 0 - subs r4, 0x70 - adds r0, r4 - ldrb r1, [r0, 0x11] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x11] - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080B8B4C - adds r0, r1, 0 - movs r1, 0x24 - bl sub_80B13EC - b _080B8B54 - .align 2, 0 -_080B8B48: .4byte 0x020192d0 -_080B8B4C: - adds r0, r1, 0 - movs r1, 0x3B - bl sub_80B13EC -_080B8B54: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestEffect_39 - - thumb_func_start ContestEffect_40 -ContestEffect_40: @ 80B8B5C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r1, _080B8BE4 - ldrb r0, [r1, 0x1] - cmp r0, 0x4 - bne _080B8B6E - b _080B8C76 -_080B8B6E: - movs r6, 0 - adds r7, r1, 0 - adds r7, 0xCC - adds r3, r1, 0 - adds r3, 0x5C -_080B8B78: - lsls r1, r6, 24 - asrs r1, 24 - mov r0, sp - adds r2, r0, r1 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x19] - strb r0, [r2] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080B8B78 - ldrb r0, [r7, 0x11] - mov r2, sp - adds r1, r2, r0 - movs r0, 0xFF - strb r0, [r1] - movs r6, 0 - mov r12, r7 - movs r4, 0x70 - negs r4, r4 - adds r4, r7 - mov r8, r4 -_080B8BAE: - movs r5, 0 -_080B8BB0: - lsls r0, r5, 24 - asrs r2, r0, 24 - mov r0, r12 - ldrb r0, [r0, 0x11] - cmp r2, r0 - beq _080B8BE8 - lsls r0, r6, 24 - asrs r3, r0, 24 - mov r1, sp - adds r4, r1, r2 - ldrb r0, [r4] - cmp r3, r0 - bne _080B8BE8 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - add r1, r8 - lsls r0, r3, 24 - lsrs r0, 24 - ldrb r1, [r1, 0x19] - cmp r0, r1 - bne _080B8BE8 - adds r0, r3, 0x1 - strb r0, [r4] - b _080B8BF8 - .align 2, 0 -_080B8BE4: .4byte 0x02019204 -_080B8BE8: - lsls r0, r5, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r5, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080B8BB0 -_080B8BF8: - cmp r5, 0x4 - beq _080B8C0C - lsls r0, r6, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r6, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080B8BAE -_080B8C0C: - ldrb r0, [r7, 0x11] - mov r4, sp - adds r1, r4, r0 - movs r0, 0 - strb r0, [r1] - ldrb r0, [r7, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r3, r7, 0 - subs r3, 0x70 - adds r1, r3 - ldrb r2, [r1, 0x10] - movs r0, 0x3F - ands r0, r2 - movs r2, 0x40 - orrs r0, r2 - strb r0, [r1, 0x10] - movs r6, 0 -_080B8C32: - lsls r1, r6, 24 - asrs r1, 24 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - mov r4, sp - adds r2, r4, r1 - ldrb r2, [r2] - strb r2, [r0, 0x19] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080B8C32 - ldrb r0, [r7, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r0, r7, 0 - subs r0, 0x70 - adds r1, r0 - ldrb r2, [r1, 0x11] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1, 0x11] - ldrb r0, [r7, 0x11] - movs r1, 0x25 - bl sub_80B13EC -_080B8C76: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_40 - - thumb_func_start ContestEffect_41 -ContestEffect_41: @ 80B8C84 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r1, _080B8D14 - ldrb r0, [r1, 0x1] - cmp r0, 0x4 - bne _080B8C98 - b _080B8DA6 -_080B8C98: - movs r6, 0 - adds r7, r1, 0 - adds r7, 0xCC - adds r3, r1, 0 - adds r3, 0x5C -_080B8CA2: - lsls r1, r6, 24 - asrs r1, 24 - mov r0, sp - adds r2, r0, r1 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x19] - strb r0, [r2] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080B8CA2 - ldrb r0, [r7, 0x11] - mov r2, sp - adds r1, r2, r0 - movs r0, 0xFF - strb r0, [r1] - movs r6, 0x3 - mov r12, r7 - movs r4, 0x70 - negs r4, r4 - adds r4, r7 - mov r8, r4 - movs r0, 0x1 - negs r0, r0 - mov r9, r0 -_080B8CDE: - movs r5, 0 -_080B8CE0: - lsls r0, r5, 24 - asrs r2, r0, 24 - mov r1, r12 - ldrb r1, [r1, 0x11] - cmp r2, r1 - beq _080B8D18 - lsls r0, r6, 24 - asrs r3, r0, 24 - mov r0, sp - adds r4, r0, r2 - ldrb r1, [r4] - cmp r3, r1 - bne _080B8D18 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - add r1, r8 - lsls r0, r3, 24 - lsrs r0, 24 - ldrb r1, [r1, 0x19] - cmp r0, r1 - bne _080B8D18 - subs r0, r3, 0x1 - strb r0, [r4] - b _080B8D28 - .align 2, 0 -_080B8D14: .4byte 0x02019204 -_080B8D18: - lsls r0, r5, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r5, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080B8CE0 -_080B8D28: - cmp r5, 0x4 - beq _080B8D3C - lsls r0, r6, 24 - movs r4, 0xFF - lsls r4, 24 - adds r0, r4 - lsrs r6, r0, 24 - asrs r0, 24 - cmp r0, r9 - bgt _080B8CDE -_080B8D3C: - ldrb r0, [r7, 0x11] - mov r2, sp - adds r1, r2, r0 - movs r0, 0x3 - strb r0, [r1] - ldrb r0, [r7, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r3, r7, 0 - subs r3, 0x70 - adds r1, r3 - ldrb r2, [r1, 0x10] - movs r0, 0x3F - ands r0, r2 - movs r2, 0x40 - orrs r0, r2 - strb r0, [r1, 0x10] - movs r6, 0 -_080B8D62: - lsls r1, r6, 24 - asrs r1, 24 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - mov r4, sp - adds r2, r4, r1 - ldrb r2, [r2] - strb r2, [r0, 0x19] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080B8D62 - ldrb r0, [r7, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r0, r7, 0 - subs r0, 0x70 - adds r1, r0 - ldrb r2, [r1, 0x11] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1, 0x11] - ldrb r0, [r7, 0x11] - movs r1, 0x26 - bl sub_80B13EC -_080B8DA6: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_41 - - thumb_func_start ContestEffect_42 -ContestEffect_42: @ 80B8DB4 - bx lr - thumb_func_end ContestEffect_42 - - thumb_func_start ContestEffect_43 -ContestEffect_43: @ 80B8DB8 - push {r4-r7,lr} - sub sp, 0x8 - ldr r1, _080B8E30 - ldrb r0, [r1, 0x1] - cmp r0, 0x4 - beq _080B8EAE - movs r6, 0 - add r3, sp, 0x4 - adds r5, r1, 0 - adds r5, 0x5C - adds r4, r3, 0 -_080B8DCE: - lsls r1, r6, 24 - asrs r1, 24 - mov r0, sp - adds r2, r0, r1 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x19] - strb r0, [r2] - adds r0, r4, r1 - strb r6, [r0] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080B8DCE - movs r6, 0 - adds r7, r3, 0 -_080B8DF6: - bl Random - lsls r0, 16 - lsrs r0, 16 - lsls r2, r6, 24 - asrs r2, 24 - movs r1, 0x4 - subs r1, r2 - bl __modsi3 - lsls r0, 24 - lsrs r4, r0, 24 - movs r1, 0 -_080B8E10: - lsls r0, r1, 24 - asrs r2, r0, 24 - adds r3, r7, r2 - ldrb r1, [r3] - adds r5, r0, 0 - cmp r1, 0xFF - beq _080B8E3A - cmp r4, 0 - bne _080B8E34 - mov r1, sp - adds r0, r1, r2 - strb r6, [r0] - movs r0, 0xFF - strb r0, [r3] - b _080B8E48 - .align 2, 0 -_080B8E30: .4byte 0x02019204 -_080B8E34: - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080B8E3A: - movs r3, 0x80 - lsls r3, 17 - adds r0, r5, r3 - lsrs r1, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080B8E10 -_080B8E48: - lsls r0, r6, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r6, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080B8DF6 - movs r6, 0 - ldr r4, _080B8EB8 - adds r7, r4, 0 - subs r7, 0x70 - movs r3, 0x3F - mov r12, r3 - movs r5, 0x80 -_080B8E66: - lsls r2, r6, 24 - asrs r2, 24 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r7 - mov r3, sp - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1, 0x19] - ldrb r3, [r1, 0x10] - mov r0, r12 - ands r0, r3 - orrs r0, r5 - strb r0, [r1, 0x10] - adds r2, 0x1 - lsls r2, 24 - lsrs r6, r2, 24 - asrs r2, 24 - cmp r2, 0x3 - ble _080B8E66 - ldrb r1, [r4, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r4, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x11] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0, 0x11] - ldrb r0, [r4, 0x11] - movs r1, 0x27 - bl sub_80B13EC -_080B8EAE: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8EB8: .4byte 0x020192d0 - thumb_func_end ContestEffect_43 - - thumb_func_start ContestEffect_44 -ContestEffect_44: @ 80B8EBC - push {lr} - ldr r3, _080B8EF0 - ldr r1, _080B8EF4 - ldrb r2, [r1, 0x11] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - subs r1, 0x70 - adds r2, r0, r1 - ldrh r0, [r2, 0x6] - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0, 0x1] - lsls r0, 29 - ldr r1, _080B8EF8 - lsrs r0, 29 - ldrh r1, [r1] - cmp r0, r1 - beq _080B8EEA - ldrb r0, [r2, 0x11] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r2, 0x11] -_080B8EEA: - pop {r0} - bx r0 - .align 2, 0 -_080B8EF0: .4byte gContestMoves -_080B8EF4: .4byte 0x020192d0 -_080B8EF8: .4byte gUnknown_0203869C - thumb_func_end ContestEffect_44 - - thumb_func_start ContestEffect_45 -ContestEffect_45: @ 80B8EFC - push {r4-r7,lr} - movs r7, 0 - movs r5, 0 - ldr r4, _080B8F34 - movs r6, 0 -_080B8F06: - ldrb r0, [r4, 0x11] - adds r0, r4 - adds r1, r5, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B8F52 - adds r0, r4, 0 - subs r0, 0x70 - adds r1, r6, r0 - movs r2, 0x2 - ldrsh r0, [r1, r2] - cmp r0, 0 - ble _080B8F38 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x4] - movs r1, 0x4 - ldrsh r0, [r4, r1] - bl sub_80B9268 - b _080B8F3A - .align 2, 0 -_080B8F34: .4byte 0x020192d0 -_080B8F38: - movs r0, 0xA -_080B8F3A: - strh r0, [r4, 0x4] - strb r5, [r4, 0x8] - movs r0, 0xFF - strb r0, [r4, 0x9] - bl sub_80B9120 - lsls r0, 24 - cmp r0, 0 - beq _080B8F52 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_080B8F52: - adds r6, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080B8F06 - cmp r7, 0 - bne _080B8F68 - ldr r0, _080B8F78 - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B8F68: - ldr r0, _080B8F78 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8F78: .4byte 0x020192d0 - thumb_func_end ContestEffect_45 - - thumb_func_start ContestEffect_46 -ContestEffect_46: @ 80B8F7C - push {r4,lr} - ldr r0, _080B8F98 - movs r1, 0x13 - ldrsb r1, [r0, r1] - cmp r1, 0 - bne _080B8F9C - movs r4, 0xA - adds r0, 0xCC - ldrb r0, [r0, 0x11] - movs r1, 0x1A - bl sub_80B13EC - b _080B8FDE - .align 2, 0 -_080B8F98: .4byte 0x02019204 -_080B8F9C: - cmp r1, 0x1 - bne _080B8FAE - movs r4, 0x14 - adds r0, 0xCC - ldrb r0, [r0, 0x11] - movs r1, 0x1B - bl sub_80B13EC - b _080B8FDE -_080B8FAE: - cmp r1, 0x2 - bne _080B8FC0 - movs r4, 0x1E - adds r0, 0xCC - ldrb r0, [r0, 0x11] - movs r1, 0x1C - bl sub_80B13EC - b _080B8FDE -_080B8FC0: - cmp r1, 0x3 - bne _080B8FD2 - movs r4, 0x32 - adds r0, 0xCC - ldrb r0, [r0, 0x11] - movs r1, 0x1D - bl sub_80B13EC - b _080B8FDE -_080B8FD2: - movs r4, 0x3C - adds r0, 0xCC - ldrb r0, [r0, 0x11] - movs r1, 0x1E - bl sub_80B13EC -_080B8FDE: - ldr r0, _080B8FF4 - ldrb r2, [r0, 0x11] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - subs r0, 0x70 - adds r1, r0 - strh r4, [r1, 0x2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8FF4: .4byte 0x020192d0 - thumb_func_end ContestEffect_46 - - thumb_func_start ContestEffect_47 -ContestEffect_47: @ 80B8FF8 - push {lr} - ldr r3, _080B9034 - ldrb r2, [r3, 0x1] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _080B902E - movs r0, 0x1 - orrs r2, r0 - movs r0, 0x58 - negs r0, r0 - adds r0, r3 - mov r12, r0 - ldrb r1, [r0, 0x11] - movs r0, 0x7 - ands r0, r1 - lsls r0, 1 - movs r1, 0xF - negs r1, r1 - ands r2, r1 - orrs r2, r0 - strb r2, [r3, 0x1] - mov r1, r12 - ldrb r0, [r1, 0x11] - movs r1, 0x3D - bl sub_80B13EC -_080B902E: - pop {r0} - bx r0 - .align 2, 0 -_080B9034: .4byte 0x02019328 - thumb_func_end ContestEffect_47 - - thumb_func_start sub_80B9038 -sub_80B9038: @ 80B9038 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r7, 0 - movs r5, 0 - ldr r4, _080B907C - ldr r0, _080B9080 - mov r9, r0 - movs r6, 0 -_080B9052: - ldrb r0, [r4, 0x11] - adds r0, r4 - adds r1, r5, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B909A - adds r0, r4, 0 - subs r0, 0x70 - adds r0, r6, r0 - ldrh r0, [r0, 0x6] - lsls r0, 3 - add r0, r9 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 29 - cmp r8, r0 - bne _080B9084 - movs r0, 0x28 - b _080B9086 - .align 2, 0 -_080B907C: .4byte 0x020192d0 -_080B9080: .4byte gContestMoves -_080B9084: - movs r0, 0xA -_080B9086: - strh r0, [r4, 0x4] - strb r5, [r4, 0x8] - movs r0, 0xFF - strb r0, [r4, 0x9] - bl sub_80B9120 - lsls r0, 24 - cmp r0, 0 - beq _080B909A - adds r7, 0x1 -_080B909A: - adds r6, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080B9052 - cmp r7, 0 - bne _080B90B0 - ldr r0, _080B90BC - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B90B0: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B90BC: .4byte 0x020192d0 - thumb_func_end sub_80B9038 - - thumb_func_start sub_80B90C0 -sub_80B90C0: @ 80B90C0 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080B90EC - adds r0, r2, 0 - adds r0, 0xD - adds r0, r3, r0 - movs r1, 0x1 - strb r1, [r0] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - subs r2, 0x70 - adds r2, r0, r2 - ldrb r1, [r2, 0x10] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080B90F0 - adds r0, r3, 0 - movs r1, 0x2D - b _080B9116 - .align 2, 0 -_080B90EC: .4byte 0x020192d0 -_080B90F0: - ldrb r0, [r2, 0x12] - cmp r0, 0 - bne _080B910E - ldrb r1, [r2, 0xB] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B911A - ldrb r1, [r2, 0xC] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - bne _080B911A - movs r0, 0x1 - b _080B911C -_080B910E: - subs r0, 0x1 - strb r0, [r2, 0x12] - adds r0, r3, 0 - movs r1, 0x2C -_080B9116: - bl sub_80B13EC -_080B911A: - movs r0, 0 -_080B911C: - pop {r1} - bx r1 - thumb_func_end sub_80B90C0 - - thumb_func_start sub_80B9120 -sub_80B9120: @ 80B9120 - push {r4-r7,lr} - sub sp, 0xC - mov r0, sp - movs r1, 0 - movs r2, 0x8 - bl memset - movs r7, 0 - ldr r1, _080B918C - ldrb r0, [r1, 0x8] - cmp r0, 0xFF - beq _080B91D8 - adds r5, r1, 0 -_080B913A: - adds r0, r5, 0 - adds r0, 0x8 - adds r0, r7, r0 - ldrb r4, [r0] - adds r6, r4, 0 - adds r0, r4, 0 - str r1, [sp, 0x8] - bl sub_80B90C0 - lsls r0, 24 - ldr r1, [sp, 0x8] - cmp r0, 0 - beq _080B91C8 - ldrh r0, [r1, 0x4] - strh r0, [r1, 0x6] - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - subs r1, 0x70 - adds r2, r0, r1 - ldrb r1, [r2, 0x10] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080B9174 - movs r1, 0x6 - ldrsh r0, [r5, r1] - lsls r0, 1 - strh r0, [r5, 0x6] -_080B9174: - ldrb r0, [r2, 0x10] - movs r3, 0x1 - ands r3, r0 - cmp r3, 0 - beq _080B9190 - movs r0, 0xA - strh r0, [r5, 0x6] - adds r0, r4, 0 - movs r1, 0x2F - bl sub_80B13EC - b _080B91C8 - .align 2, 0 -_080B918C: .4byte 0x020192d0 -_080B9190: - ldrb r1, [r2, 0xF] - ldrh r0, [r5, 0x6] - subs r0, r1 - adds r1, r0, 0 - strh r0, [r5, 0x6] - lsls r0, 16 - cmp r0, 0 - bgt _080B91AC - strh r3, [r5, 0x6] - adds r0, r4, 0 - movs r1, 0x2E - bl sub_80B13EC - b _080B91C8 -_080B91AC: - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_80B9200 - ldrb r1, [r5, 0x6] - adds r0, r6, 0 - bl sub_80B141C - lsls r0, r6, 1 - mov r2, sp - adds r1, r2, r0 - ldrh r0, [r5, 0x6] - strh r0, [r1] -_080B91C8: - adds r7, 0x1 - ldr r1, _080B91E8 - adds r0, r1, 0 - adds r0, 0x8 - adds r0, r7, r0 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080B913A -_080B91D8: - movs r7, 0 - mov r1, sp -_080B91DC: - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080B91EC - movs r0, 0x1 - b _080B91F6 - .align 2, 0 -_080B91E8: .4byte 0x020192d0 -_080B91EC: - adds r1, 0x2 - adds r7, 0x1 - cmp r7, 0x3 - ble _080B91DC - movs r0, 0 -_080B91F6: - add sp, 0xC - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80B9120 - - thumb_func_start sub_80B9200 -sub_80B9200: @ 80B9200 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - ldr r0, _080B9220 - adds r2, r0 - ldrh r0, [r2, 0x2] - subs r0, r1 - strh r0, [r2, 0x2] - ldrb r0, [r2, 0xE] - adds r1, r0 - strb r1, [r2, 0xE] - bx lr - .align 2, 0 -_080B9220: .4byte 0x02019260 - thumb_func_end sub_80B9200 - - thumb_func_start sub_80B9224 -sub_80B9224: @ 80B9224 - push {r4,r5,lr} - lsls r0, 16 - lsrs r5, r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - cmp r4, 0 - bge _080B9234 - negs r0, r4 -_080B9234: - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r4, 0 - bge _080B9252 - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - beq _080B925C - adds r0, r4, 0 - subs r0, 0xA - adds r0, r1, r0 - b _080B9258 -_080B9252: - lsls r0, 16 - asrs r0, 16 - subs r0, r4, r0 -_080B9258: - lsls r0, 16 - lsrs r5, r0, 16 -_080B925C: - lsls r0, r5, 16 - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B9224 - - thumb_func_start sub_80B9268 -sub_80B9268: @ 80B9268 - push {r4,r5,lr} - lsls r0, 16 - lsrs r5, r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - cmp r4, 0 - bge _080B9278 - negs r0, r4 -_080B9278: - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - beq _080B9290 - adds r0, r4, 0 - adds r0, 0xA - subs r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 -_080B9290: - lsls r0, r5, 16 - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B9268 - - thumb_func_start sub_80B929C -sub_80B929C: @ 80B929C - push {lr} - ldr r0, _080B92A8 - bl sub_8083A84 - pop {r0} - bx r0 - .align 2, 0 -_080B92A8: .4byte sub_80B9484 - thumb_func_end sub_80B929C - - thumb_func_start sub_80B92AC -sub_80B92AC: @ 80B92AC - push {r4-r6,lr} - bl sub_80BC300 - bl sub_80C045C - ldr r6, _080B9364 - ldr r0, _080B9368 - ldr r1, [r0] - movs r2, 0xC8 - lsls r2, 4 - adds r0, r6, 0 - bl memcpy - movs r1, 0xC8 - lsls r1, 4 - adds r0, r6, r1 - ldr r1, _080B936C - ldr r1, [r1] - movs r2, 0xE1 - lsls r2, 2 - bl memcpy - ldr r2, _080B9370 - adds r0, r6, r2 - ldr r1, _080B9374 - ldr r1, [r1] - movs r2, 0x40 - bl memcpy - ldr r1, _080B9378 - adds r0, r6, r1 - ldr r1, _080B937C - ldr r1, [r1] - movs r2, 0x40 - bl memcpy - ldr r2, _080B9380 - adds r0, r6, r2 - ldr r1, _080B9384 - ldr r1, [r1] - movs r2, 0x28 - bl memcpy - ldr r5, _080B9388 - ldr r4, _080B938C - ldr r0, _080B9390 - adds r1, r4, r0 - adds r0, r5, 0 - movs r2, 0x38 - bl memcpy - ldr r2, _080B9394 - adds r1, r4, r2 - adds r0, r5, 0 - adds r0, 0x38 - movs r2, 0x38 - bl memcpy - ldr r0, _080B9398 - adds r4, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8041324 - ldr r1, _080B939C - adds r0, r6, r1 - ldr r1, _080B93A0 - ldr r1, [r1] - movs r2, 0x78 - bl memcpy - ldr r2, _080B93A4 - adds r0, r6, r2 - ldr r1, _080B93A8 - ldr r1, [r1] - movs r2, 0xA4 - bl memcpy - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080B935C - bl sub_8126338 - ldr r2, _080B93AC - adds r1, r6, r2 - strh r0, [r1] -_080B935C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9364: .4byte 0x02018000 -_080B9368: .4byte gUnknown_083D026C -_080B936C: .4byte gUnknown_083D0270 -_080B9370: .4byte 0x00001004 -_080B9374: .4byte gUnknown_083D0274 -_080B9378: .4byte 0x00001044 -_080B937C: .4byte gUnknown_083D0278 -_080B9380: .4byte 0x00001084 -_080B9384: .4byte gUnknown_083D027C -_080B9388: .4byte gUnknown_02038738 -_080B938C: .4byte gSaveBlock1 -_080B9390: .4byte 0x0000303c -_080B9394: .4byte 0x00003074 -_080B9398: .4byte 0x00002f9c -_080B939C: .4byte 0x000010ac -_080B93A0: .4byte gUnknown_083D0280 -_080B93A4: .4byte 0x00001124 -_080B93A8: .4byte gUnknown_083D0284 -_080B93AC: .4byte 0x000011c8 - thumb_func_end sub_80B92AC - - thumb_func_start sub_80B93B0 -sub_80B93B0: @ 80B93B0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - ldr r5, _080B9430 - ldr r6, _080B9434 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80BD674 - movs r0, 0xC8 - lsls r0, 4 - adds r0, r5 - mov r8, r0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80BFD44 - ldr r1, _080B9438 - adds r0, r5, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80C0514 - ldr r1, _080B943C - adds r0, r5, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80B9B1C - ldr r1, _080B9440 - adds r0, r5, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80FA4E4 - ldr r1, _080B9444 - adds r0, r5, r1 - adds r1, r6, 0 - adds r2, r4, 0 - mov r3, r8 - bl sub_80B9C6C - ldr r1, _080B9448 - adds r0, r5, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80B9B70 - ldr r0, _080B944C - adds r5, r0 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80B9F3C - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9430: .4byte 0x02008000 -_080B9434: .4byte 0x00001230 -_080B9438: .4byte 0x00001004 -_080B943C: .4byte 0x00001044 -_080B9440: .4byte 0x00001084 -_080B9444: .4byte 0x000010ac -_080B9448: .4byte 0x00001124 -_080B944C: .4byte 0x000011c8 - thumb_func_end sub_80B93B0 - - thumb_func_start sub_80B9450 -sub_80B9450: @ 80B9450 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B9480 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x32 - bne _080B9478 - movs r0, 0xE2 - bl PlaySE - movs r0, 0 - strh r0, [r4, 0x8] -_080B9478: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B9480: .4byte gTasks - thumb_func_end sub_80B9450 - - thumb_func_start sub_80B9484 -sub_80B9484: @ 80B9484 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B94A8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bls _080B949E - b _080B95E6 -_080B949E: - lsls r0, 2 - ldr r1, _080B94AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B94A8: .4byte gUnknown_03004B28 -_080B94AC: .4byte _080B94B0 - .align 2, 0 -_080B94B0: - .4byte _080B94C8 - .4byte _080B951C - .4byte _080B9550 - .4byte _080B9570 - .4byte _080B95AC - .4byte _080B95C0 -_080B94C8: - ldr r0, _080B950C - ldrb r0, [r0] - bl sub_8007270 - movs r0, 0x80 - lsls r0, 7 - movs r1, 0x1 - bl VarSet - ldr r1, _080B9510 - movs r0, 0 - strb r0, [r1] - bl sub_80B92AC - bl sub_80C71D8 - movs r0, 0x1 - strh r0, [r4] - ldr r0, _080B9514 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - ldr r0, _080B9518 - movs r1, 0x51 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1E] - b _080B95E6 - .align 2, 0 -_080B950C: .4byte gUnknown_0202E8CE -_080B9510: .4byte gUnknown_03000718 -_080B9514: .4byte sub_80B95F0 -_080B9518: .4byte sub_80B9450 -_080B951C: - ldr r2, _080B9548 - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _080B95E6 - movs r0, 0x2 - strh r0, [r4] - ldr r0, _080B954C - bl FlagSet - bl sub_80C7240 - ldrb r0, [r4, 0x1E] - bl DestroyTask - b _080B95E6 - .align 2, 0 -_080B9548: .4byte gTasks -_080B954C: .4byte 0x00000834 -_080B9550: - ldr r0, _080B956C - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - movs r0, 0x3 - strh r0, [r4] - movs r0, 0xE0 - bl PlaySE - b _080B95E6 - .align 2, 0 -_080B956C: .4byte sub_80BA00C -_080B9570: - ldr r2, _080B95A4 - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r5, [r0, 0x4] - cmp r5, 0 - bne _080B95E6 - movs r0, 0x4 - strh r0, [r4] - bl sub_8083664 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - bl sub_80720B0 - ldr r0, _080B95A8 - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - strh r5, [r4, 0x10] - b _080B95E6 - .align 2, 0 -_080B95A4: .4byte gTasks -_080B95A8: .4byte gOtherText_MixingComplete -_080B95AC: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080B95E6 - movs r0, 0x5 - strh r0, [r4] - b _080B95E6 -_080B95C0: - ldr r2, _080B95EC - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _080B95E6 - bl sub_8055588 - bl MenuZeroFillScreen - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts -_080B95E6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B95EC: .4byte gTasks - thumb_func_end sub_80B9484 - - thumb_func_start sub_80B95F0 -sub_80B95F0: @ 80B95F0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r7, _080B961C - adds r5, r0, r7 - movs r0, 0x8 - ldrsh r1, [r5, r0] - cmp r1, 0x64 - beq _080B9678 - cmp r1, 0x64 - bgt _080B962E - cmp r1, 0x1 - bne _080B9612 - b _080B9734 -_080B9612: - cmp r1, 0x1 - bgt _080B9620 - cmp r1, 0 - beq _080B9650 - b _080B97D6 - .align 2, 0 -_080B961C: .4byte gTasks -_080B9620: - cmp r1, 0x2 - bne _080B9626 - b _080B9760 -_080B9626: - cmp r1, 0x5 - bne _080B962C - b _080B97C0 -_080B962C: - b _080B97D6 -_080B962E: - cmp r1, 0xC9 - beq _080B96D0 - cmp r1, 0xC9 - bgt _080B963C - cmp r1, 0x65 - beq _080B9690 - b _080B97D6 -_080B963C: - ldr r0, _080B964C - cmp r1, r0 - beq _080B9706 - adds r0, 0x63 - cmp r1, r0 - beq _080B971C - b _080B97D6 - .align 2, 0 -_080B964C: .4byte 0x0000012d -_080B9650: - bl sub_80B9A78 - bl MenuDisplayMessageBox - ldr r0, _080B9674 - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - movs r0, 0xE1 - lsls r0, 3 - strh r0, [r5, 0x18] - movs r0, 0xC8 - lsls r0, 1 - strh r0, [r5, 0x8] - bl ClearLinkCallback_2 - b _080B97D6 - .align 2, 0 -_080B9674: .4byte gOtherText_MixingRecordsWithFriend -_080B9678: - ldrh r0, [r5, 0x20] - adds r0, 0x1 - strh r0, [r5, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bgt _080B9688 - b _080B97D6 -_080B9688: - movs r0, 0 - strh r0, [r5, 0x20] - movs r0, 0x65 - b _080B97D4 -_080B9690: - bl GetLinkPlayerCount_2 - lsls r0, 24 - lsrs r4, r0, 24 - bl IsLinkMaster - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B96C2 - bl sub_800820C - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - beq _080B96B2 - b _080B97D6 -_080B96B2: - movs r0, 0x15 - bl PlaySE - movs r1, 0 - movs r0, 0xC9 - strh r0, [r5, 0x8] - strh r1, [r5, 0x20] - b _080B97D6 -_080B96C2: - movs r0, 0x16 - bl PlaySE - ldr r0, _080B96CC - b _080B97D4 - .align 2, 0 -_080B96CC: .4byte 0x0000012d -_080B96D0: - bl sub_800820C - adds r4, r0, 0 - bl GetLinkPlayerCount_2 - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080B97D6 - ldrh r4, [r5, 0x20] - adds r4, 0x1 - strh r4, [r5, 0x20] - lsls r4, 16 - asrs r4, 16 - bl GetLinkPlayerCount_2 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 1 - cmp r4, r1 - ble _080B97D6 - bl sub_8007F4C - movs r0, 0x1 - b _080B97D4 -_080B9706: - bl sub_800820C - adds r4, r0, 0 - bl GetLinkPlayerCount_2 - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080B97D6 - movs r0, 0x1 - b _080B97D4 -_080B971C: - ldrh r0, [r5, 0x20] - adds r0, 0x1 - strh r0, [r5, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080B97D6 - movs r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - strh r0, [r5, 0x20] - b _080B97D6 -_080B9734: - ldr r0, _080B9758 - ldrb r0, [r0] - cmp r0, 0 - beq _080B97D6 - ldr r4, _080B975C - bl sub_80B9A58 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - movs r0, 0x5 - b _080B97D4 - .align 2, 0 -_080B9758: .4byte gReceivedRemoteLinkPlayers -_080B975C: .4byte gStringVar1 -_080B9760: - bl GetLinkPlayerCount_2 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - strh r0, [r5, 0x14] - strh r1, [r5, 0x8] - bl sub_80B9A58 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x12] - ldr r0, _080B97B0 - str r0, [r5] - ldr r4, _080B97B4 - adds r1, r5, 0 - adds r1, 0xC - adds r0, r4, 0 - bl sub_80B9A50 - ldr r0, _080B97B8 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x1C] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r0, r1, r7 - strh r6, [r0, 0x8] - ldr r0, _080B97BC - adds r4, r0 - adds r1, r7, r1 - adds r1, 0x12 - adds r0, r4, 0 - bl sub_80B9A50 - b _080B97D6 - .align 2, 0 -_080B97B0: .4byte sub_80B97DC -_080B97B4: .4byte 0x02018000 -_080B97B8: .4byte sub_80B9890 -_080B97BC: .4byte 0xffff0000 -_080B97C0: - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080B97D6 - movs r0, 0 - strh r0, [r5, 0x1C] - movs r0, 0x2 -_080B97D4: - strh r0, [r5, 0x8] -_080B97D6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B95F0 - - thumb_func_start sub_80B97DC -sub_80B97DC: @ 80B97DC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B9800 - adds r4, r1, r0 - movs r2, 0x8 - ldrsh r1, [r4, r2] - adds r2, r0, 0 - cmp r1, 0x4 - bhi _080B9884 - lsls r0, r1, 2 - ldr r1, _080B9804 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B9800: .4byte gTasks -_080B9804: .4byte _080B9808 - .align 2, 0 -_080B9808: - .4byte _080B981C - .4byte _080B9840 - .4byte _080B9884 - .4byte _080B9852 - .4byte _080B986E -_080B981C: - adds r0, r4, 0 - adds r0, 0xC - bl sub_80B9A44 - adds r1, r0, 0 - movs r0, 0x10 - ldrsh r2, [r4, r0] - movs r0, 0xC8 - muls r0, r2 - adds r1, r0 - ldr r0, _080B983C - movs r2, 0xC8 - bl memcpy - b _080B9860 - .align 2, 0 -_080B983C: .4byte gBlockSendBuffer -_080B9840: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080B9860 - movs r0, 0x1 - bl sub_8007E9C - b _080B9860 -_080B9852: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x18 - bne _080B9868 -_080B9860: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B9884 -_080B9868: - movs r0, 0 - strh r0, [r4, 0x8] - b _080B9884 -_080B986E: - movs r1, 0x1C - ldrsh r0, [r4, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r0, [r1, 0x4] - cmp r0, 0 - bne _080B9884 - ldr r0, _080B988C - str r0, [r4] -_080B9884: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B988C: .4byte sub_80B9A1C - thumb_func_end sub_80B97DC - - thumb_func_start sub_80B9890 -sub_80B9890: @ 80B9890 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r0, 2 - ldr r1, [sp] - adds r0, r1 - lsls r0, 3 - ldr r1, _080B98D0 - adds r0, r1 - mov r10, r0 - bl GetBlockRecievedStatus - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - bl sub_8008198 - lsls r0, 24 - lsrs r0, 24 - ldr r3, [sp, 0x4] - cmp r3, r0 - bne _080B998A - movs r0, 0 - b _080B9966 - .align 2, 0 -_080B98D0: .4byte gTasks -_080B98D4: - ldr r1, [sp, 0x4] - mov r2, r9 - asrs r1, r2 - movs r0, 0x1 - ands r1, r0 - movs r3, 0x1 - add r3, r9 - mov r8, r3 - cmp r1, 0 - beq _080B9960 - mov r0, r10 - adds r0, 0x12 - bl sub_80B9A44 - mov r1, r8 - lsls r4, r1, 1 - mov r5, r10 - adds r5, 0x8 - adds r4, r5, r4 - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0xC8 - muls r1, r3 - adds r0, r1 - ldr r7, _080B9930 - mov r1, r9 - muls r1, r7 - adds r6, r0, r1 - mov r0, r9 - str r3, [sp, 0xC] - bl sub_80B9A68 - adds r1, r0, 0 - movs r0, 0 - ldrsh r2, [r4, r0] - adds r0, r2, 0x1 - ldr r3, [sp, 0xC] - muls r0, r3 - cmp r0, r7 - bls _080B9934 - muls r2, r3 - subs r2, r7, r2 - adds r0, r6, 0 - bl memcpy - b _080B993C - .align 2, 0 -_080B9930: .4byte 0x00001230 -_080B9934: - adds r0, r6, 0 - movs r2, 0xC8 - bl memcpy -_080B993C: - mov r0, r9 - bl ResetBlockReceivedFlag - mov r2, r8 - lsls r1, r2, 1 - adds r1, r5, r1 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x18 - bne _080B9960 - ldr r0, [sp, 0x8] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] -_080B9960: - mov r3, r8 - lsls r0, r3, 24 - lsrs r0, 24 -_080B9966: - mov r9, r0 - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r9, r0 - bcc _080B98D4 - ldr r2, _080B99B0 - mov r0, r10 - movs r3, 0x8 - ldrsh r1, [r0, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] -_080B998A: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp, 0x8] - cmp r1, r0 - bne _080B999E - ldr r0, [sp] - bl DestroyTask -_080B999E: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B99B0: .4byte gTasks - thumb_func_end sub_80B9890 - - thumb_func_start sub_80B99B4 -sub_80B99B4: @ 80B99B4 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r2, _080B99E4 - adds r0, r2 - movs r4, 0x1C - ldrsh r1, [r0, r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _080B99DC - adds r0, r3, 0 - bl DestroyTask -_080B99DC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B99E4: .4byte gTasks - thumb_func_end sub_80B99B4 - - thumb_func_start sub_80B99E8 -sub_80B99E8: @ 80B99E8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B9A10 - adds r1, r0 - ldr r0, _080B9A14 - str r0, [r1] - ldr r0, _080B9A18 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B9A0C - movs r2, 0x12 - ldrsh r0, [r1, r2] - bl sub_80B93B0 -_080B9A0C: - pop {r0} - bx r0 - .align 2, 0 -_080B9A10: .4byte gTasks -_080B9A14: .4byte sub_80B99B4 -_080B9A18: .4byte gUnknown_03000718 - thumb_func_end sub_80B99E8 - - thumb_func_start sub_80B9A1C -sub_80B9A1C: @ 80B9A1C - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B9A38 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080B9A3C - str r0, [r1] - ldr r1, _080B9A40 - movs r0, 0x1 - strb r0, [r1] - bx lr - .align 2, 0 -_080B9A38: .4byte gTasks -_080B9A3C: .4byte sub_80B99E8 -_080B9A40: .4byte gUnknown_03000718 - thumb_func_end sub_80B9A1C - - thumb_func_start sub_80B9A44 -sub_80B9A44: @ 80B9A44 - adds r1, r0, 0 - ldrh r0, [r1] - ldrh r1, [r1, 0x2] - lsls r1, 16 - orrs r0, r1 - bx lr - thumb_func_end sub_80B9A44 - - thumb_func_start sub_80B9A50 -sub_80B9A50: @ 80B9A50 - strh r0, [r1] - lsrs r0, 16 - strh r0, [r1, 0x2] - bx lr - thumb_func_end sub_80B9A50 - - thumb_func_start sub_80B9A58 -sub_80B9A58: @ 80B9A58 - push {lr} - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80B9A58 - - thumb_func_start sub_80B9A68 -sub_80B9A68: @ 80B9A68 - lsls r0, 24 - lsrs r0, 16 - ldr r1, _080B9A74 - adds r0, r1 - bx lr - .align 2, 0 -_080B9A74: .4byte gBlockRecvBuffer - thumb_func_end sub_80B9A68 - - thumb_func_start sub_80B9A78 -sub_80B9A78: @ 80B9A78 - ldr r1, _080B9A80 - ldr r0, _080B9A84 - str r0, [r1] - bx lr - .align 2, 0 -_080B9A80: .4byte gUnknown_03005D2C -_080B9A84: .4byte 0x00001230 - thumb_func_end sub_80B9A78 - - thumb_func_start sub_80B9A88 -sub_80B9A88: @ 80B9A88 - push {r4,lr} - adds r4, r0, 0 - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080B9AC0 - cmp r0, 0x3 - bhi _080B9AA2 - cmp r0, 0x2 - beq _080B9AA8 - b _080B9B10 -_080B9AA2: - cmp r0, 0x4 - beq _080B9AEC - b _080B9B10 -_080B9AA8: - movs r2, 0 - ldr r3, _080B9ABC -_080B9AAC: - adds r0, r4, r2 - adds r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x1 - bls _080B9AAC - b _080B9B10 - .align 2, 0 -_080B9ABC: .4byte gUnknown_083D0288 -_080B9AC0: - movs r0, 0 - bl GetLinkPlayerTrainerId - adds r3, r0, 0 - movs r0, 0x1 - ands r3, r0 - movs r2, 0 - ldr r1, _080B9AE8 - lsls r0, r3, 1 - adds r0, r3 - adds r3, r0, r1 -_080B9AD6: - adds r1, r4, r2 - ldrb r0, [r3] - strb r0, [r1] - adds r3, 0x1 - adds r2, 0x1 - cmp r2, 0x2 - bls _080B9AD6 - b _080B9B10 - .align 2, 0 -_080B9AE8: .4byte gUnknown_083D028A -_080B9AEC: - movs r0, 0 - bl GetLinkPlayerTrainerId - movs r1, 0x9 - bl __umodsi3 - adds r3, r0, 0 - movs r2, 0 - ldr r1, _080B9B18 - lsls r0, r3, 2 - adds r3, r0, r1 -_080B9B02: - adds r1, r4, r2 - ldrb r0, [r3] - strb r0, [r1] - adds r3, 0x1 - adds r2, 0x1 - cmp r2, 0x3 - bls _080B9B02 -_080B9B10: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B9B18: .4byte gUnknown_083D0290 - thumb_func_end sub_80B9A88 - - thumb_func_start sub_80B9B1C -sub_80B9B1C: @ 80B9B1C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - adds r5, r0, 0 - mov r8, r1 - lsls r4, r2, 24 - lsrs r4, 24 - mov r0, sp - bl sub_80B9A88 - mov r0, r8 - muls r0, r4 - adds r0, r5, r0 - ldr r1, _080B9B6C - ldr r6, [r1] - adds r1, r6, 0 - movs r2, 0x40 - bl memcpy - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r5, r0 - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x40 - bl memcpy - bl sub_80F7F30 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9B6C: .4byte gUnknown_083D0278 - thumb_func_end sub_80B9B1C - - thumb_func_start sub_80B9B70 -sub_80B9B70: @ 80B9B70 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - adds r6, r0, 0 - mov r9, r1 - lsls r4, r2, 24 - lsrs r4, 24 - ldr r0, _080B9BB8 - mov r8, r0 - bl sub_80B9A88 - mov r5, r9 - muls r5, r4 - adds r5, r6, r5 - add r4, r8 - ldrb r0, [r4] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - adds r6, r0 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0xA4 - bl memcpy - adds r0, r5, 0 - bl sub_8134AC0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9BB8: .4byte gUnknown_0300071C - thumb_func_end sub_80B9B70 - - thumb_func_start sub_80B9BBC -sub_80B9BBC: @ 80B9BBC - ldrh r0, [r0, 0x20] - lsls r0, 24 - lsrs r0, 24 - bx lr - thumb_func_end sub_80B9BBC - - thumb_func_start sub_80B9BC4 -sub_80B9BC4: @ 80B9BC4 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x38 - mov r8, r0 - mov r10, r1 - mov r9, r2 - adds r4, r3, 0 - ldr r5, [sp, 0x54] - lsls r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsrs r4, 23 - add r4, r9 - ldrb r0, [r4] - mov r6, r10 - muls r6, r0 - add r6, r8 - ldrb r0, [r4, 0x1] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 3 - adds r1, r6, r1 - mov r0, sp - movs r2, 0x38 - bl memcpy - lsls r5, 1 - add r5, r9 - ldrb r0, [r5] - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - add r8, r0 - ldrb r1, [r4, 0x1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 3 - adds r6, r0 - ldrb r0, [r5, 0x1] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 3 - add r1, r8 - adds r0, r6, 0 - movs r2, 0x38 - bl memcpy - ldrb r1, [r5, 0x1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 3 - add r8, r0 - mov r0, r8 - mov r1, sp - movs r2, 0x38 - bl memcpy - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B9BC4 - - thumb_func_start sub_80B9C4C -sub_80B9C4C: @ 80B9C4C - push {lr} - adds r3, r0, 0 - movs r2, 0 - movs r1, 0 -_080B9C54: - adds r0, r3, r1 - ldrb r0, [r0] - adds r0, r2, r0 - lsls r0, 24 - lsrs r2, r0, 24 - adds r1, 0x1 - cmp r1, 0xFF - ble _080B9C54 - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_80B9C4C - - thumb_func_start sub_80B9C6C -sub_80B9C6C: @ 80B9C6C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x58 - str r0, [sp, 0x2C] - str r1, [sp, 0x30] - str r3, [sp, 0x38] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x34] - bl Random - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x40] - ldr r0, _080B9DA8 - ldrh r0, [r0, 0x4] - bl SeedRng - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r3, 0 - add r0, sp, 0x1C - mov r9, r0 - movs r1, 0x1D - add r1, sp - mov r10, r1 - mov r2, sp - adds r2, 0xC - str r2, [sp, 0x4C] - movs r7, 0xFF - add r4, sp, 0x8 - movs r2, 0 - mov r6, r9 - mov r5, r10 -_080B9CBC: - mov r1, sp - adds r1, r3 - adds r1, 0x4 - ldrb r0, [r1] - orrs r0, r7 - strb r0, [r1] - adds r0, r4, r3 - strb r2, [r0] - lsls r1, r3, 1 - adds r0, r6, r1 - strb r2, [r0] - adds r1, r5, r1 - strb r2, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080B9CBC - movs r4, 0 - str r4, [sp, 0x3C] - movs r3, 0 - mov r1, r8 - lsls r0, r1, 16 - lsrs r1, r0, 16 - str r0, [sp, 0x50] - ldr r4, [sp, 0x30] - ldr r0, [sp, 0x34] - adds r2, r4, 0 - muls r2, r0 - str r2, [sp, 0x48] - ldr r2, [sp, 0x3C] - cmp r2, r1 - bcs _080B9D46 - mov r8, r1 -_080B9D00: - ldr r4, [sp, 0x30] - adds r0, r4, 0 - muls r0, r3 - ldr r1, [sp, 0x2C] - adds r6, r1, r0 - ldr r0, [r6, 0x70] - cmp r0, 0 - beq _080B9D3C - movs r7, 0 - cmp r7, r0 - bcs _080B9D3C - adds r4, r6, 0 - adds r4, 0x74 - mov r2, r9 - lsls r1, r3, 1 - movs r5, 0x1 -_080B9D20: - lsls r0, r7, 1 - adds r0, r4, r0 - ldrh r0, [r0] - cmp r0, 0 - bne _080B9D30 - adds r0, r7, r1 - adds r0, r2, r0 - strb r5, [r0] -_080B9D30: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, [r6, 0x70] - cmp r7, r0 - bcc _080B9D20 -_080B9D3C: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r8 - bcc _080B9D00 -_080B9D46: - movs r7, 0 - movs r3, 0 - ldr r2, [sp, 0x50] - cmp r2, 0 - beq _080B9E3E - mov r4, sp - adds r4, 0x24 - str r4, [sp, 0x44] - movs r0, 0x25 - add r0, sp - mov r8, r0 -_080B9D5C: - ldr r1, [sp, 0x30] - adds r0, r1, 0 - muls r0, r3 - ldr r2, [sp, 0x2C] - adds r6, r2, r0 - lsls r1, r3, 1 - mov r4, r9 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080B9D7C - mov r2, r10 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B9D86 -_080B9D7C: - ldr r0, [sp, 0x3C] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x3C] -_080B9D86: - mov r4, r9 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B9DAC - mov r2, r10 - adds r0, r2, r1 - ldrb r2, [r0] - cmp r2, 0 - bne _080B9DAC -_080B9D9A: - lsls r1, r7, 1 - ldr r4, [sp, 0x44] - adds r0, r4, r1 - strb r3, [r0] - add r1, r8 - strb r2, [r1] - b _080B9E2C - .align 2, 0 -_080B9DA8: .4byte gLinkPlayers -_080B9DAC: - mov r2, r9 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080B9DC0 - mov r4, r10 - adds r0, r4, r1 - ldrb r2, [r0] - cmp r2, 0x1 - beq _080B9D9A -_080B9DC0: - mov r2, r9 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B9E32 - mov r4, r10 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B9E32 - lsls r5, r7, 1 - ldr r1, [sp, 0x44] - adds r0, r1, r5 - strb r3, [r0] - adds r0, r6, 0 - str r3, [sp, 0x54] - bl sub_80B9BBC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - adds r0, 0x38 - bl sub_80B9BBC - lsls r0, 24 - lsrs r1, r0, 24 - ldr r3, [sp, 0x54] - cmp r4, 0 - bne _080B9E0A - cmp r1, 0 - beq _080B9E0E - mov r2, r8 - adds r1, r2, r5 - movs r0, 0x1 - strb r0, [r1] - b _080B9E2C -_080B9E0A: - cmp r1, 0 - beq _080B9E26 -_080B9E0E: - str r3, [sp, 0x54] - bl Random - mov r4, r8 - adds r2, r4, r5 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - strb r0, [r2] - ldr r3, [sp, 0x54] - b _080B9E2C -_080B9E26: - mov r2, r8 - adds r0, r2, r5 - strb r1, [r0] -_080B9E2C: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 -_080B9E32: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r4, [sp, 0x50] - cmp r0, r4 - bcc _080B9D5C -_080B9E3E: - movs r3, 0 - ldr r1, [sp, 0x48] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 3 - ldr r2, [sp, 0x2C] - adds r6, r2, r0 - ldr r1, [sp, 0x4C] -_080B9E4E: - lsls r0, r3, 2 - adds r0, r1, r0 - str r6, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080B9E4E - ldr r0, [sp, 0x38] - bl sub_80B9C4C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r4, [sp, 0x3C] - cmp r4, 0x3 - beq _080B9E9C - cmp r4, 0x3 - bgt _080B9E82 - cmp r4, 0x2 - beq _080B9E8A - b _080B9EF0 -_080B9E82: - ldr r0, [sp, 0x3C] - cmp r0, 0x4 - beq _080B9EBC - b _080B9EF0 -_080B9E8A: - add r2, sp, 0x24 - movs r0, 0x1 - str r0, [sp] - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - movs r3, 0 - bl sub_80B9BC4 - b _080B9EF0 -_080B9E9C: - ldr r0, _080B9EB8 - lsls r1, 1 - adds r2, r1, r0 - ldrb r3, [r2] - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - add r2, sp, 0x24 - str r0, [sp] - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - bl sub_80B9BC4 - b _080B9EF0 - .align 2, 0 -_080B9EB8: .4byte gUnknown_083D02B4 -_080B9EBC: - add r6, sp, 0x24 - ldr r4, _080B9F2C - lsls r5, r1, 2 - adds r0, r5, r4 - ldrb r3, [r0] - adds r0, r4, 0x1 - adds r0, r5, r0 - ldrb r0, [r0] - str r0, [sp] - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - adds r2, r6, 0 - bl sub_80B9BC4 - adds r0, r4, 0x2 - adds r0, r5, r0 - ldrb r3, [r0] - adds r4, 0x3 - adds r5, r4 - ldrb r0, [r5] - str r0, [sp] - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - adds r2, r6, 0 - bl sub_80B9BC4 -_080B9EF0: - ldr r1, [sp, 0x2C] - ldr r2, [sp, 0x48] - adds r6, r1, r2 - ldr r4, _080B9F30 - ldr r1, _080B9F34 - adds r0, r4, r1 - adds r1, r6, 0 - movs r2, 0x38 - bl memcpy - ldr r2, _080B9F38 - adds r4, r2 - adds r1, r6, 0 - adds r1, 0x38 - adds r0, r4, 0 - movs r2, 0x38 - bl memcpy - ldr r0, [sp, 0x40] - bl SeedRng - add sp, 0x58 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B9F2C: .4byte gUnknown_083D02BA -_080B9F30: .4byte gSaveBlock1 -_080B9F34: .4byte 0x0000303c -_080B9F38: .4byte 0x00003074 - thumb_func_end sub_80B9C6C - - thumb_func_start sub_80B9F3C -sub_80B9F3C: @ 80B9F3C - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - cmp r1, 0 - beq _080BA000 - ldrh r0, [r4] - cmp r0, 0 - beq _080BA000 - bl sub_80A9670 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _080B9FC8 - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80A92D4 - lsls r0, 24 - cmp r0, 0 - bne _080B9FB8 - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80A9718 - lsls r0, 24 - cmp r0, 0 - bne _080B9FB8 - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80A9424 - lsls r0, 24 - cmp r0, 0 - beq _080B9FB8 - ldr r0, _080B9FA4 - ldrh r1, [r4] - bl VarSet - ldr r0, _080B9FA8 - ldr r1, _080B9FAC - bl StringCopy - ldrh r1, [r4] - ldr r0, _080B9FB0 - cmp r1, r0 - bne _080BA000 - ldr r0, _080B9FB4 - bl FlagSet - b _080BA000 - .align 2, 0 -_080B9FA4: .4byte 0x00004001 -_080B9FA8: .4byte gStringVar1 -_080B9FAC: .4byte gLinkPlayers + 0x8 -_080B9FB0: .4byte 0x00000113 -_080B9FB4: .4byte 0x00000853 -_080B9FB8: - ldr r0, _080B9FC4 - movs r1, 0 - bl VarSet - b _080BA000 - .align 2, 0 -_080B9FC4: .4byte 0x00004001 -_080B9FC8: - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80A9424 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B9FF8 - ldr r0, _080B9FEC - ldrh r1, [r4] - bl VarSet - ldr r0, _080B9FF0 - ldr r1, _080B9FF4 - bl StringCopy - b _080BA000 - .align 2, 0 -_080B9FEC: .4byte 0x00004001 -_080B9FF0: .4byte gStringVar1 -_080B9FF4: .4byte gLinkPlayers + 0x8 -_080B9FF8: - ldr r0, _080BA008 - movs r1, 0 - bl VarSet -_080BA000: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA008: .4byte 0x00004001 - thumb_func_end sub_80B9F3C - - thumb_func_start sub_80BA00C -sub_80BA00C: @ 80BA00C - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080BA030 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bhi _080BA09C - lsls r0, 2 - ldr r1, _080BA034 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BA030: .4byte gTasks -_080BA034: .4byte _080BA038 - .align 2, 0 -_080BA038: - .4byte _080BA086 - .4byte _080BA086 - .4byte _080BA050 - .4byte _080BA05A - .4byte _080BA074 - .4byte _080BA08E -_080BA050: - bl sub_8047A1C - bl sub_8125E2C - b _080BA086 -_080BA05A: - bl sub_8125E6C - lsls r0, 24 - cmp r0, 0 - beq _080BA09C - bl sub_8047A34 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xA] - b _080BA09C -_080BA074: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - ble _080BA09C - bl sub_800832C -_080BA086: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080BA09C -_080BA08E: - ldr r0, _080BA0A4 - ldrb r0, [r0] - cmp r0, 0 - bne _080BA09C - adds r0, r2, 0 - bl DestroyTask -_080BA09C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA0A4: .4byte gReceivedRemoteLinkPlayers - thumb_func_end sub_80BA00C - - thumb_func_start sub_80BA0A8 -sub_80BA0A8: @ 80BA0A8 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_80BA0A8 - - thumb_func_start sub_80BA0C0 -sub_80BA0C0: @ 80BA0C0 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r0, _080BA0E8 - ldrb r0, [r0] - cmp r0, 0 - beq _080BA0E2 - bl m4aSoundMain - bl m4aSoundMain - bl m4aSoundMain -_080BA0E2: - pop {r0} - bx r0 - .align 2, 0 -_080BA0E8: .4byte gUnknown_020387B0 - thumb_func_end sub_80BA0C0 - - thumb_func_start unref_sub_80BA0EC -unref_sub_80BA0EC: @ 80BA0EC - push {r4-r6,lr} - sub sp, 0xC - movs r0, 0 - bl SetVBlankCallback - movs r6, 0x80 - lsls r6, 19 - movs r5, 0 - strh r5, [r6] - ldr r0, _080BA20C - strh r5, [r0] - subs r0, 0x2 - strh r5, [r0] - subs r0, 0x2 - strh r5, [r0] - adds r0, 0x10 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - subs r0, 0x6 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - subs r0, 0x6 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - add r0, sp, 0x4 - strh r5, [r0] - ldr r1, _080BA210 - str r0, [r1] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _080BA214 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r4, 0 - str r4, [sp, 0x8] - add r0, sp, 0x8 - str r0, [r1] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _080BA218 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add r0, sp, 0x4 - strh r4, [r0] - str r0, [r1] - movs r0, 0xA0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _080BA21C - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetPaletteFade - bl ResetTasks - bl ResetSpriteData - ldr r0, _080BA220 - bl SetUpWindowConfig - ldr r0, _080BA224 - bl InitMenuWindow - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080BA228 - strh r4, [r0] - adds r0, 0x4 - strh r4, [r0] - subs r0, 0x2 - strh r4, [r0] - adds r0, 0x4 - strh r4, [r0] - ldr r1, _080BA22C - ldr r2, _080BA230 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x31 - strh r0, [r1] - adds r1, 0x6 - movs r0, 0xE1 - strh r0, [r1] - ldr r0, _080BA234 - strh r4, [r0] - adds r1, 0x4 - movs r0, 0x7 - strh r0, [r1] - ldr r1, _080BA238 - movs r2, 0x1 - strh r2, [r1] - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - ldr r2, _080BA23C - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _080BA240 - bl SetVBlankCallback - ldr r0, _080BA244 - bl SetMainCallback2 - ldr r1, _080BA248 - adds r0, r1, 0 - strh r0, [r6] - ldr r0, _080BA24C - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080BA250 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - strh r4, [r1, 0xA] - strh r4, [r1, 0xC] - strh r4, [r1, 0xE] - ldr r0, _080BA254 - strb r5, [r0] - strh r4, [r1, 0xE] - bl m4aSoundInit - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BA20C: .4byte REG_BG2CNT -_080BA210: .4byte 0x040000d4 -_080BA214: .4byte 0x8100c000 -_080BA218: .4byte 0x85000100 -_080BA21C: .4byte 0x81000200 -_080BA220: .4byte gWindowConfig_81E6C3C -_080BA224: .4byte gWindowConfig_81E6CE4 -_080BA228: .4byte REG_WIN0H -_080BA22C: .4byte REG_WININ -_080BA230: .4byte 0x00001111 -_080BA234: .4byte REG_BLDALPHA -_080BA238: .4byte 0x04000200 -_080BA23C: .4byte REG_DISPSTAT -_080BA240: .4byte sub_80BA0C0 -_080BA244: .4byte sub_80BA0A8 -_080BA248: .4byte 0x00007140 -_080BA24C: .4byte sub_80BA258 -_080BA250: .4byte gTasks -_080BA254: .4byte gUnknown_020387B0 - thumb_func_end unref_sub_80BA0EC - - thumb_func_start sub_80BA258 -sub_80BA258: @ 80BA258 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x40 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _080BA354 - mov r0, sp - movs r2, 0x9 - bl memcpy - add r7, sp, 0xC - ldr r1, _080BA358 - adds r0, r7, 0 - movs r2, 0x4 - bl memcpy - add r0, sp, 0x10 - mov r8, r0 - ldr r1, _080BA35C - movs r2, 0x4 - bl memcpy - add r5, sp, 0x14 - ldr r1, _080BA360 - adds r0, r5, 0 - movs r2, 0xD - bl memcpy - add r4, sp, 0x24 - ldr r1, _080BA364 - adds r0, r4, 0 - movs r2, 0xC - bl memcpy - add r6, sp, 0x30 - ldr r1, _080BA368 - adds r0, r6, 0 - movs r2, 0xE - bl memcpy - ldr r0, _080BA36C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080BA344 - movs r0, 0x2 - movs r1, 0 - movs r2, 0x1B - movs r3, 0x3 - bl MenuDrawTextWindow - movs r0, 0x2 - movs r1, 0x5 - movs r2, 0x1B - movs r3, 0xA - bl MenuDrawTextWindow - movs r0, 0x2 - movs r1, 0xC - movs r2, 0x1B - movs r3, 0x11 - bl MenuDrawTextWindow - mov r0, sp - movs r1, 0x4 - movs r2, 0x1 - bl MenuPrint - adds r0, r5, 0 - movs r1, 0xE - movs r2, 0x1 - bl MenuPrint - adds r0, r7, 0 - movs r1, 0x4 - movs r2, 0x6 - bl MenuPrint - adds r0, r4, 0 - movs r1, 0xE - movs r2, 0x6 - bl MenuPrint - mov r0, r8 - movs r1, 0x4 - movs r2, 0xD - bl MenuPrint - adds r0, r4, 0 - movs r1, 0xE - movs r2, 0xD - bl MenuPrint - adds r0, r6, 0 - movs r1, 0xE - movs r2, 0x12 - bl MenuPrint - ldr r1, _080BA370 - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BA374 - str r1, [r0] - ldr r1, _080BA378 - ldr r2, _080BA37C - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080BA380 - adds r0, r2, 0 - strh r0, [r1] -_080BA344: - add sp, 0x40 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BA354: .4byte gDebugText_SoundCheckJap -_080BA358: .4byte gDebugText_BGM -_080BA35C: .4byte gDebugText_SE -_080BA360: .4byte gUnknown_083D02D9 -_080BA364: .4byte gDebugText_UpDown -_080BA368: .4byte gDebugText_DriverTest -_080BA36C: .4byte gPaletteFade -_080BA370: .4byte gTasks -_080BA374: .4byte sub_80BA384 -_080BA378: .4byte REG_WIN0H -_080BA37C: .4byte 0x000011df -_080BA380: .4byte 0x0000011f - thumb_func_end sub_80BA258 - - thumb_func_start sub_80BA384 -sub_80BA384: @ 80BA384 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080BA3EC - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldrb r0, [r4, 0x8] - bl sub_80BA6B8 - ldr r1, _080BA3F0 - adds r0, r1, 0 - ldrh r2, [r4, 0xA] - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x7 - movs r2, 0x8 - bl sub_80BA700 - ldr r1, _080BA3F4 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0xB - movs r2, 0x8 - bl sub_80BA79C - ldrh r0, [r4, 0xC] - movs r1, 0x7 - movs r2, 0xF - bl sub_80BA700 - ldr r1, _080BA3F8 - movs r2, 0xC - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0xB - movs r2, 0xF - bl sub_80BA79C - ldr r0, _080BA3FC - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA3EC: .4byte gTasks -_080BA3F0: .4byte 0x0000015d -_080BA3F4: .4byte gBGMNames -_080BA3F8: .4byte gSENames -_080BA3FC: .4byte Task_HandleMainMenuInput - thumb_func_end sub_80BA384 - - thumb_func_start sub_80BA400 -sub_80BA400: @ 80BA400 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, _080BA428 - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080BA434 - ldr r0, _080BA42C - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080BA430 - str r0, [r1] - b _080BA64C - .align 2, 0 -_080BA428: .4byte gMain -_080BA42C: .4byte gTasks -_080BA430: .4byte sub_80BA800 -_080BA434: - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _080BA458 - ldr r0, _080BA450 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080BA454 - str r0, [r1] - b _080BA64C - .align 2, 0 -_080BA450: .4byte gTasks -_080BA454: .4byte sub_80BAF84 -_080BA458: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080BA478 - ldr r0, _080BA470 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080BA474 - str r0, [r1] - b _080BA64C - .align 2, 0 -_080BA470: .4byte gTasks -_080BA474: .4byte sub_80BB25C -_080BA478: - movs r6, 0x1 - movs r5, 0x1 - ands r5, r1 - cmp r5, 0 - beq _080BA538 - ldr r0, _080BA4AC - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r5, r1, r0 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080BA4D0 - movs r2, 0x10 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080BA4BA - movs r3, 0xC - ldrsh r4, [r5, r3] - cmp r4, 0 - beq _080BA4B0 - ldrh r0, [r5, 0x10] - bl m4aSongNumStop - b _080BA4C4 - .align 2, 0 -_080BA4AC: .4byte gTasks -_080BA4B0: - ldrh r0, [r5, 0x10] - bl m4aSongNumStop - strh r4, [r5, 0x10] - b _080BA64C -_080BA4BA: - movs r4, 0xC - ldrsh r0, [r5, r4] - cmp r0, 0 - bne _080BA4C4 - b _080BA64C -_080BA4C4: - ldrh r0, [r5, 0xC] - bl m4aSongNumStart - ldrh r0, [r5, 0xC] - strh r0, [r5, 0x10] - b _080BA64C -_080BA4D0: - ldrh r1, [r5, 0xE] - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080BA514 - movs r3, 0xA - ldrsh r4, [r5, r3] - cmp r4, 0 - beq _080BA500 - ldr r0, _080BA4FC - adds r4, r0, 0 - adds r0, r1, r4 - lsls r0, 16 - lsrs r0, 16 - bl m4aSongNumStop - ldrh r1, [r5, 0xA] - adds r4, r1 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - b _080BA528 - .align 2, 0 -_080BA4FC: .4byte 0x0000015d -_080BA500: - ldr r2, _080BA510 - adds r0, r1, r2 - lsls r0, 16 - lsrs r0, 16 - bl m4aSongNumStop - strh r4, [r5, 0xE] - b _080BA64C - .align 2, 0 -_080BA510: .4byte 0x0000015d -_080BA514: - ldrh r1, [r5, 0xA] - movs r3, 0xA - ldrsh r0, [r5, r3] - cmp r0, 0 - bne _080BA520 - b _080BA64C -_080BA520: - ldr r4, _080BA534 - adds r0, r1, r4 - lsls r0, 16 - lsrs r0, 16 -_080BA528: - bl m4aSongNumStart - ldrh r0, [r5, 0xA] - strh r0, [r5, 0xE] - b _080BA64C - .align 2, 0 -_080BA534: .4byte 0x0000015d -_080BA538: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BA570 - movs r0, 0x5 - bl m4aSongNumStart - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080BA568 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BA56C - str r1, [r0] - b _080BA64C - .align 2, 0 -_080BA568: .4byte gTasks -_080BA56C: .4byte sub_80BA68C -_080BA570: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080BA582 - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080BA59C -_080BA582: - ldr r0, _080BA598 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - eors r0, r6 - strh r0, [r1, 0x8] -_080BA592: - movs r0, 0x1 - b _080BA64E - .align 2, 0 -_080BA598: .4byte gTasks -_080BA59C: - movs r0, 0x10 - ands r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _080BA5EA - ldr r0, _080BA5CC - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080BA5D6 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - ble _080BA5D0 - subs r0, r2, 0x1 - strh r0, [r1, 0xC] - b _080BA592 - .align 2, 0 -_080BA5CC: .4byte gTasks -_080BA5D0: - movs r0, 0xF7 - strh r0, [r1, 0xC] - b _080BA592 -_080BA5D6: - ldrh r2, [r1, 0xA] - movs r4, 0xA - ldrsh r0, [r1, r4] - cmp r0, 0 - ble _080BA5E4 - subs r0, r2, 0x1 - b _080BA5E6 -_080BA5E4: - movs r0, 0x75 -_080BA5E6: - strh r0, [r1, 0xA] - b _080BA592 -_080BA5EA: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080BA630 - ldr r1, _080BA614 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - movs r0, 0x8 - ldrsh r2, [r1, r0] - cmp r2, 0 - beq _080BA61C - ldrh r2, [r1, 0xC] - movs r4, 0xC - ldrsh r0, [r1, r4] - cmp r0, 0xF6 - bgt _080BA618 - adds r0, r2, 0x1 - strh r0, [r1, 0xC] - b _080BA592 - .align 2, 0 -_080BA614: .4byte gTasks -_080BA618: - strh r3, [r1, 0xC] - b _080BA592 -_080BA61C: - ldrh r3, [r1, 0xA] - movs r4, 0xA - ldrsh r0, [r1, r4] - cmp r0, 0x74 - bgt _080BA62C - adds r0, r3, 0x1 - strh r0, [r1, 0xA] - b _080BA592 -_080BA62C: - strh r2, [r1, 0xA] - b _080BA592 -_080BA630: - ldrh r1, [r2, 0x2C] - movs r0, 0x4 - ands r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _080BA648 - ldr r0, _080BA644 - strb r6, [r0] - b _080BA64C - .align 2, 0 -_080BA644: .4byte gUnknown_020387B0 -_080BA648: - ldr r0, _080BA658 - strb r1, [r0] -_080BA64C: - movs r0, 0 -_080BA64E: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080BA658: .4byte gUnknown_020387B0 - thumb_func_end sub_80BA400 - - thumb_func_start Task_HandleMainMenuInput -Task_HandleMainMenuInput: @ 80BA65C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80BA400 - lsls r0, 24 - cmp r0, 0 - beq _080BA67C - ldr r0, _080BA684 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080BA688 - str r0, [r1] -_080BA67C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA684: .4byte gTasks -_080BA688: .4byte sub_80BA384 - thumb_func_end Task_HandleMainMenuInput - - thumb_func_start sub_80BA68C -sub_80BA68C: @ 80BA68C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080BA6B0 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080BA6AA - adds r0, r2, 0 - bl DestroyTask - ldr r0, _080BA6B4 - bl SetMainCallback2 -_080BA6AA: - pop {r0} - bx r0 - .align 2, 0 -_080BA6B0: .4byte gPaletteFade -_080BA6B4: .4byte CB2_InitTitleScreen - thumb_func_end sub_80BA68C - - thumb_func_start sub_80BA6B8 -sub_80BA6B8: @ 80BA6B8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080BA6C6 - cmp r0, 0x1 - beq _080BA6E0 -_080BA6C6: - ldr r1, _080BA6D4 - ldr r2, _080BA6D8 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080BA6DC - b _080BA6EC - .align 2, 0 -_080BA6D4: .4byte REG_WIN1H -_080BA6D8: .4byte 0x000011df -_080BA6DC: .4byte 0x00002957 -_080BA6E0: - ldr r1, _080BA6F4 - ldr r2, _080BA6F8 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080BA6FC -_080BA6EC: - adds r0, r2, 0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080BA6F4: .4byte REG_WIN1H -_080BA6F8: .4byte 0x000011df -_080BA6FC: .4byte 0x0000618f - thumb_func_end sub_80BA6B8 - - thumb_func_start sub_80BA700 -sub_80BA700: @ 80BA700 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r7, r2, 16 - movs r1, 0 - movs r2, 0 -_080BA714: - mov r3, sp - adds r0, r3, r1 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bls _080BA714 - mov r1, sp - movs r0, 0xB0 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - movs r4, 0 - adds r0, r5, 0 - movs r1, 0x64 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080BA748 - mov r1, sp - adds r0, 0xA1 - strb r0, [r1] - movs r4, 0x1 -_080BA748: - adds r0, r5, 0 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080BA766 - cmp r4, 0 - beq _080BA76C -_080BA766: - mov r1, sp - adds r0, 0xA1 - strb r0, [r1, 0x1] -_080BA76C: - mov r4, sp - adds r0, r5, 0 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - adds r0, 0xA1 - strb r0, [r4, 0x2] - lsls r1, r6, 24 - lsrs r1, 24 - lsls r2, r7, 24 - lsrs r2, 24 - mov r0, sp - bl MenuPrint - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BA700 - - thumb_func_start sub_80BA79C -sub_80BA79C: @ 80BA79C - push {r4-r6,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r5, r2, 16 - movs r3, 0 - movs r1, 0 -_080BA7AE: - mov r2, sp - adds r0, r2, r3 - strb r1, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xA - bls _080BA7AE - mov r0, sp - movs r1, 0xFF - strb r1, [r0, 0xA] - movs r3, 0 - ldrb r0, [r4] - lsls r2, r6, 24 - lsls r5, 24 - cmp r0, 0xFF - beq _080BA7EC -_080BA7D0: - mov r0, sp - adds r1, r0, r3 - adds r0, r4, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r4, r3 - ldrb r0, [r0] - cmp r0, 0xFF - beq _080BA7EC - cmp r3, 0x9 - bls _080BA7D0 -_080BA7EC: - lsrs r1, r2, 24 - lsrs r2, r5, 24 - mov r0, sp - bl MenuPrint - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BA79C - - thumb_func_start sub_80BA800 -sub_80BA800: @ 80BA800 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xCC - lsls r0, 24 - str r0, [sp, 0xB0] - lsrs r2, r0, 24 - str r2, [sp, 0xAC] - ldr r1, _080BA9E8 - mov r0, sp - movs r2, 0xA - bl memcpy - mov r0, sp - adds r0, 0xC - str r0, [sp, 0xB4] - ldr r1, _080BA9EC - movs r2, 0xB - bl memcpy - mov r2, sp - adds r2, 0x18 - str r2, [sp, 0xB8] - ldr r1, _080BA9F0 - adds r0, r2, 0 - movs r2, 0xA - bl memcpy - mov r0, sp - adds r0, 0x24 - str r0, [sp, 0xBC] - ldr r1, _080BA9F4 - movs r2, 0xA - bl memcpy - mov r2, sp - adds r2, 0x30 - str r2, [sp, 0xC0] - ldr r1, _080BA9F8 - adds r0, r2, 0 - movs r2, 0xA - bl memcpy - mov r0, sp - adds r0, 0x3C - str r0, [sp, 0xC4] - ldr r1, _080BA9FC - movs r2, 0xA - bl memcpy - mov r2, sp - adds r2, 0x48 - str r2, [sp, 0xC8] - ldr r1, _080BAA00 - adds r0, r2, 0 - movs r2, 0xA - bl memcpy - add r4, sp, 0x54 - ldr r1, _080BAA04 - adds r0, r4, 0 - movs r2, 0xA - bl memcpy - add r7, sp, 0x60 - ldr r1, _080BAA08 - adds r0, r7, 0 - movs r2, 0xA - bl memcpy - add r0, sp, 0x6C - mov r10, r0 - ldr r1, _080BAA0C - movs r2, 0xA - bl memcpy - add r2, sp, 0x78 - mov r9, r2 - ldr r1, _080BAA10 - mov r0, r9 - movs r2, 0xA - bl memcpy - add r0, sp, 0x84 - mov r8, r0 - ldr r1, _080BAA14 - movs r2, 0x9 - bl memcpy - add r6, sp, 0x90 - ldr r1, _080BAA18 - adds r0, r6, 0 - movs r2, 0x9 - bl memcpy - add r5, sp, 0x9C - ldr r1, _080BAA1C - adds r0, r5, 0 - movs r2, 0x9 - bl memcpy - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xC5 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - mov r0, sp - movs r1, 0x13 - movs r2, 0x4 - bl MenuPrint - ldr r0, [sp, 0xB4] - movs r1, 0x13 - movs r2, 0x2 - bl MenuPrint - ldr r0, [sp, 0xB8] - movs r1, 0x2 - movs r2, 0x1 - bl MenuPrint - ldr r0, [sp, 0xBC] - movs r1, 0x2 - movs r2, 0x3 - bl MenuPrint - ldr r0, [sp, 0xC0] - movs r1, 0x2 - movs r2, 0x5 - bl MenuPrint - ldr r0, [sp, 0xC4] - movs r1, 0x2 - movs r2, 0x7 - bl MenuPrint - ldr r0, [sp, 0xC8] - movs r1, 0x2 - movs r2, 0x9 - bl MenuPrint - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0xB - bl MenuPrint - adds r0, r7, 0 - movs r1, 0x2 - movs r2, 0xD - bl MenuPrint - mov r0, r10 - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - mov r0, r9 - movs r1, 0x2 - movs r2, 0x11 - bl MenuPrint - mov r0, r8 - movs r1, 0x13 - movs r2, 0x10 - bl MenuPrint - adds r0, r6, 0 - movs r1, 0x13 - movs r2, 0xE - bl MenuPrint - adds r0, r5, 0 - movs r1, 0x13 - movs r2, 0xC - bl MenuPrint - ldr r1, _080BAA20 - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x4 - movs r0, 0xA0 - strh r0, [r1] - ldr r0, _080BAA24 - movs r1, 0 - strb r1, [r0] - ldr r0, _080BAA28 - strb r1, [r0] - ldr r0, _080BAA2C - strb r1, [r0] - ldr r0, _080BAA30 - movs r2, 0 - str r2, [r0] - ldr r0, _080BAA34 - strb r2, [r0] - ldr r1, _080BAA38 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080BAA3C - str r2, [r0] - movs r1, 0x78 - str r1, [r0, 0x4] - str r2, [r0, 0x8] - movs r1, 0xF0 - lsls r1, 6 - str r1, [r0, 0xC] - movs r1, 0xB4 - str r1, [r0, 0x10] - str r2, [r0, 0x18] - str r2, [r0, 0x14] - str r2, [r0, 0x1C] - movs r1, 0x2 - str r1, [r0, 0x20] - bl sub_80BAD5C - movs r0, 0 - movs r1, 0 - bl sub_80BAE10 - ldr r1, _080BAA40 - ldr r2, [sp, 0xAC] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BAA44 - str r1, [r0] - add sp, 0xCC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BA9E8: .4byte gUnknown_083D0312 -_080BA9EC: .4byte gUnknown_083D031C -_080BA9F0: .4byte gDebugText_Voice -_080BA9F4: .4byte gDebugText_Volume -_080BA9F8: .4byte gDebugText_Panpot -_080BA9FC: .4byte gDebugText_Pitch -_080BAA00: .4byte gDebugText_Length -_080BAA04: .4byte gDebugText_Release -_080BAA08: .4byte gDebugText_Progress -_080BAA0C: .4byte gDebugText_Chorus -_080BAA10: .4byte gDebugText_Priority -_080BAA14: .4byte gUnknown_083D0381 -_080BAA18: .4byte gUnknown_083D038A -_080BAA1C: .4byte gUnknown_083D0393 -_080BAA20: .4byte REG_WIN0H -_080BAA24: .4byte gUnknown_020387B3 -_080BAA28: .4byte gUnknown_020387B1 -_080BAA2C: .4byte gUnknown_020387B2 -_080BAA30: .4byte gUnknown_03005D30 -_080BAA34: .4byte gUnknown_020387D8 -_080BAA38: .4byte gUnknown_020387D9 -_080BAA3C: .4byte gUnknown_020387B4 -_080BAA40: .4byte gTasks -_080BAA44: .4byte sub_80BAA48 - thumb_func_end sub_80BA800 - - thumb_func_start sub_80BAA48 -sub_80BAA48: @ 80BAA48 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080BAA90 - ldrh r2, [r1, 0x2E] - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _080BAAA8 - movs r1, 0x80 - lsls r1, 19 - ldr r2, _080BAA94 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x40 - ldr r2, _080BAA98 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080BAA9C - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080BAAA0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BAAA4 - str r1, [r0] - b _080BACC6 - .align 2, 0 -_080BAA90: .4byte gMain -_080BAA94: .4byte 0x00007140 -_080BAA98: .4byte 0x000011df -_080BAA9C: .4byte 0x0000011f -_080BAAA0: .4byte gTasks -_080BAAA4: .4byte sub_80BA258 -_080BAAA8: - ldrh r1, [r1, 0x30] - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _080BAAD0 - ldr r1, _080BAACC - ldrb r2, [r1] - subs r0, r2, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080BAAEA - movs r0, 0x8 - strb r0, [r1] - b _080BAAEA - .align 2, 0 -_080BAACC: .4byte gUnknown_020387B3 -_080BAAD0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080BAAF8 - ldr r1, _080BAAF4 - ldrb r2, [r1] - adds r0, r2, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x8 - ble _080BAAEA - strb r3, [r1] -_080BAAEA: - ldrb r1, [r1] - adds r0, r2, 0 - bl sub_80BAE10 - b _080BACC6 - .align 2, 0 -_080BAAF4: .4byte gUnknown_020387B3 -_080BAAF8: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080BAB14 - ldr r0, _080BAB10 - ldrb r1, [r0] - movs r2, 0x1 - eors r1, r2 - strb r1, [r0] - bl sub_80BAD5C - b _080BACC6 - .align 2, 0 -_080BAB10: .4byte gUnknown_020387D8 -_080BAB14: - movs r0, 0x4 - ands r0, r2 - cmp r0, 0 - beq _080BAB38 - ldr r4, _080BAB34 - ldrb r0, [r4] - movs r1, 0x1 - eors r0, r1 - strb r0, [r4] - bl sub_80BAD5C - ldrb r0, [r4] - bl SetPokemonCryStereo - b _080BACC6 - .align 2, 0 -_080BAB34: .4byte gUnknown_020387D9 -_080BAB38: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080BAB46 - movs r0, 0xA - b _080BAB6E -_080BAB46: - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _080BAB56 - movs r0, 0xA - negs r0, r0 - b _080BAB6E -_080BAB56: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080BAB64 - movs r0, 0x1 - negs r0, r0 - b _080BAB6E -_080BAB64: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080BAB78 - movs r0, 0x1 -_080BAB6E: - bl sub_80BACDC - bl sub_80BAD5C - b _080BACC6 -_080BAB78: - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _080BAB82 - b _080BACA2 -_080BAB82: - ldr r4, _080BABE4 - ldrb r0, [r4, 0x4] - bl SetPokemonCryVolume - movs r0, 0x8 - ldrsb r0, [r4, r0] - bl SetPokemonCryPanpot - movs r1, 0xC - ldrsh r0, [r4, r1] - bl SetPokemonCryPitch - ldrh r0, [r4, 0x10] - bl SetPokemonCryLength - ldr r0, [r4, 0x18] - bl SetPokemonCryProgress - ldrb r0, [r4, 0x14] - bl SetPokemonCryRelease - movs r0, 0x1C - ldrsb r0, [r4, r0] - bl SetPokemonCryChorus - ldr r0, [r4, 0x20] - lsls r0, 24 - lsrs r0, 24 - bl SetPokemonCryPriority - ldr r4, [r4] - adds r0, r4, 0 - cmp r4, 0 - bge _080BABC8 - adds r0, 0x7F -_080BABC8: - asrs r2, r0, 7 - lsls r0, r2, 7 - subs r0, r4, r0 - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r2, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BAC1C - cmp r0, 0x1 - bgt _080BABE8 - cmp r0, 0 - beq _080BABF2 - b _080BACA2 - .align 2, 0 -_080BABE4: .4byte gUnknown_020387B4 -_080BABE8: - cmp r0, 0x2 - beq _080BAC48 - cmp r0, 0x3 - beq _080BAC74 - b _080BACA2 -_080BABF2: - ldr r0, _080BAC04 - ldrb r0, [r0] - cmp r0, 0 - beq _080BAC0C - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BAC08 - b _080BAC98 - .align 2, 0 -_080BAC04: .4byte gUnknown_020387D8 -_080BAC08: .4byte voicegroup_84537C0 -_080BAC0C: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BAC18 - b _080BAC98 - .align 2, 0 -_080BAC18: .4byte voicegroup_8452590 -_080BAC1C: - ldr r0, _080BAC30 - ldrb r0, [r0] - cmp r0, 0 - beq _080BAC38 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BAC34 - b _080BAC98 - .align 2, 0 -_080BAC30: .4byte gUnknown_020387D8 -_080BAC34: .4byte voicegroup_8453DC0 -_080BAC38: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BAC44 - b _080BAC98 - .align 2, 0 -_080BAC44: .4byte voicegroup_8452B90 -_080BAC48: - ldr r0, _080BAC5C - ldrb r0, [r0] - cmp r0, 0 - beq _080BAC64 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BAC60 - b _080BAC98 - .align 2, 0 -_080BAC5C: .4byte gUnknown_020387D8 -_080BAC60: .4byte voicegroup_84543C0 -_080BAC64: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BAC70 - b _080BAC98 - .align 2, 0 -_080BAC70: .4byte voicegroup_8453190 -_080BAC74: - ldr r0, _080BAC88 - ldrb r0, [r0] - cmp r0, 0 - beq _080BAC90 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BAC8C - b _080BAC98 - .align 2, 0 -_080BAC88: .4byte gUnknown_020387D8 -_080BAC8C: .4byte voicegroup_84549C0 -_080BAC90: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BACCC -_080BAC98: - adds r0, r1 - bl SetPokemonCryTone - ldr r1, _080BACD0 - str r0, [r1] -_080BACA2: - ldr r0, _080BACD0 - ldr r0, [r0] - cmp r0, 0 - beq _080BACC6 - ldr r5, _080BACD4 - bl IsPokemonCryPlaying - strb r0, [r5] - ldr r4, _080BACD8 - lsls r0, 24 - lsrs r0, 24 - ldrb r2, [r4] - cmp r0, r2 - beq _080BACC2 - bl sub_80BAD5C -_080BACC2: - ldrb r0, [r5] - strb r0, [r4] -_080BACC6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BACCC: .4byte voicegroup_8453790 -_080BACD0: .4byte gUnknown_03005D30 -_080BACD4: .4byte gUnknown_020387B1 -_080BACD8: .4byte gUnknown_020387B2 - thumb_func_end sub_80BAA48 - - thumb_func_start sub_80BACDC -sub_80BACDC: @ 80BACDC - push {r4-r6,lr} - sub sp, 0x40 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080BAD50 - mov r0, sp - movs r2, 0x40 - bl memcpy - ldr r6, _080BAD54 - ldr r5, _080BAD58 - movs r1, 0 - ldrsb r1, [r5, r1] - lsls r1, 2 - adds r1, r6 - lsls r4, 24 - asrs r4, 24 - ldr r0, [r1] - adds r0, r4 - str r0, [r1] - movs r2, 0 - ldrsb r2, [r5, r2] - lsls r0, r2, 2 - adds r3, r0, r6 - lsls r0, r2, 1 - adds r0, 0x1 - lsls r0, 2 - add r0, sp - ldr r1, [r3] - ldr r0, [r0] - cmp r1, r0 - ble _080BAD26 - lsls r0, r2, 3 - add r0, sp - ldr r0, [r0] - str r0, [r3] -_080BAD26: - movs r2, 0 - ldrsb r2, [r5, r2] - lsls r0, r2, 2 - adds r3, r0, r6 - lsls r0, r2, 3 - add r0, sp - ldr r1, [r3] - ldr r0, [r0] - cmp r1, r0 - bge _080BAD46 - lsls r0, r2, 1 - adds r0, 0x1 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - str r0, [r3] -_080BAD46: - add sp, 0x40 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BAD50: .4byte gUnknown_083D039C -_080BAD54: .4byte gUnknown_020387B4 -_080BAD58: .4byte gUnknown_020387B3 - thumb_func_end sub_80BACDC - - thumb_func_start sub_80BAD5C -sub_80BAD5C: @ 80BAD5C - push {r4,lr} - ldr r4, _080BAE00 - ldr r0, [r4] - adds r0, 0x1 - movs r1, 0xB - movs r2, 0x1 - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, [r4, 0x4] - movs r1, 0xB - movs r2, 0x3 - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, [r4, 0x8] - movs r1, 0xB - movs r2, 0x5 - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, [r4, 0xC] - movs r1, 0xB - movs r2, 0x7 - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, [r4, 0x10] - movs r1, 0xB - movs r2, 0x9 - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, [r4, 0x14] - movs r1, 0xB - movs r2, 0xB - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, [r4, 0x18] - movs r1, 0xB - movs r2, 0xD - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, [r4, 0x1C] - movs r1, 0xB - movs r2, 0xF - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, [r4, 0x20] - movs r1, 0xB - movs r2, 0x11 - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, _080BAE04 - ldrb r0, [r0] - movs r1, 0x1B - movs r2, 0x10 - movs r3, 0x1 - bl sub_80BAE78 - ldr r0, _080BAE08 - ldrb r0, [r0] - movs r1, 0x1B - movs r2, 0xE - movs r3, 0x1 - bl sub_80BAE78 - ldr r0, _080BAE0C - ldrb r0, [r0] - movs r1, 0x1B - movs r2, 0xC - movs r3, 0x1 - bl sub_80BAE78 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BAE00: .4byte gUnknown_020387B4 -_080BAE04: .4byte gUnknown_020387B1 -_080BAE08: .4byte gUnknown_020387D8 -_080BAE0C: .4byte gUnknown_020387D9 - thumb_func_end sub_80BAD5C - - thumb_func_start sub_80BAE10 -sub_80BAE10: @ 80BAE10 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x8 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _080BAE6C - mov r0, sp - movs r2, 0x2 - bl memcpy - add r0, sp, 0x4 - mov r8, r0 - ldr r1, _080BAE70 - movs r2, 0x2 - bl memcpy - ldr r6, _080BAE74 - lsls r4, 1 - adds r0, r4, r6 - ldrb r1, [r0] - adds r4, 0x1 - adds r4, r6 - ldrb r2, [r4] - mov r0, r8 - bl MenuPrint - lsls r5, 1 - adds r0, r5, r6 - ldrb r1, [r0] - adds r5, 0x1 - adds r5, r6 - ldrb r2, [r5] - mov r0, sp - bl MenuPrint - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BAE6C: .4byte gUnknown_083D03DC -_080BAE70: .4byte gUnknown_083D03DE -_080BAE74: .4byte gUnknown_083D0300 - thumb_func_end sub_80BAE10 - - thumb_func_start sub_80BAE78 -sub_80BAE78: @ 80BAE78 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - mov r8, r0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 24 - lsrs r7, r3, 24 - mov r1, sp - ldr r0, _080BAF80 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - movs r5, 0 - add r0, sp, 0x18 - mov r9, r0 - cmp r5, r7 - bgt _080BAEC0 - mov r4, r9 - movs r3, 0 -_080BAEAC: - lsls r0, r5, 24 - asrs r0, 24 - adds r1, r4, r0 - strb r3, [r1] - adds r0, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - asrs r0, 24 - cmp r0, r7 - ble _080BAEAC -_080BAEC0: - adds r0, r7, 0x1 - add r0, r9 - movs r1, 0xFF - strb r1, [r0] - movs r1, 0 - mov r3, r8 - cmp r3, 0 - bge _080BAED6 - negs r3, r3 - mov r8, r3 - movs r1, 0x1 -_080BAED6: - movs r4, 0 - mov r10, r4 - cmp r7, 0x1 - bne _080BAEE2 - movs r5, 0x1 - mov r10, r5 -_080BAEE2: - subs r0, r7, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 24 - lsls r6, 24 - str r6, [sp, 0x24] - lsls r2, 24 - str r2, [sp, 0x28] - cmp r0, 0 - blt _080BAF62 - str r1, [sp, 0x20] -_080BAEF8: - asrs r6, r0, 24 - lsls r0, r6, 2 - add r0, sp - ldr r1, [r0] - mov r0, r8 - bl __divsi3 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r0, 0 - bne _080BAF1A - mov r0, r10 - cmp r0, 0 - bne _080BAF1A - lsls r4, r5, 24 - cmp r6, 0 - bne _080BAF46 -_080BAF1A: - lsls r4, r5, 24 - ldr r3, [sp, 0x20] - cmp r3, 0 - beq _080BAF34 - mov r5, r10 - cmp r5, 0 - bne _080BAF34 - asrs r0, r4, 24 - subs r0, r7, r0 - subs r0, 0x1 - add r0, r9 - movs r1, 0xAE - strb r1, [r0] -_080BAF34: - asrs r1, r4, 24 - subs r1, r7, r1 - add r1, r9 - lsls r0, r2, 24 - asrs r0, 24 - subs r0, 0x5F - strb r0, [r1] - movs r0, 0x1 - mov r10, r0 -_080BAF46: - asrs r4, 24 - lsls r0, r4, 2 - add r0, sp - ldr r1, [r0] - mov r0, r8 - bl __modsi3 - mov r8, r0 - subs r4, 0x1 - lsls r4, 24 - lsrs r5, r4, 24 - lsls r0, r5, 24 - cmp r0, 0 - bge _080BAEF8 -_080BAF62: - ldr r3, [sp, 0x24] - lsrs r1, r3, 24 - ldr r4, [sp, 0x28] - lsrs r2, r4, 24 - mov r0, r9 - bl MenuPrint - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BAF80: .4byte gUnknown_083D03E0 - thumb_func_end sub_80BAE78 - - thumb_func_start sub_80BAF84 -sub_80BAF84: @ 80BAF84 - push {r4-r6,lr} - sub sp, 0x14 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080BB01C - mov r0, sp - movs r2, 0x3 - bl memcpy - add r6, sp, 0x4 - ldr r1, _080BB020 - adds r0, r6, 0 - movs r2, 0x4 - bl memcpy - add r5, sp, 0x8 - ldr r1, _080BB024 - adds r0, r5, 0 - movs r2, 0x9 - bl memcpy - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xC5 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - mov r0, sp - movs r1, 0x3 - movs r2, 0x2 - bl MenuPrint - adds r0, r6, 0 - movs r1, 0x3 - movs r2, 0x4 - bl MenuPrint - adds r0, r5, 0 - movs r1, 0x3 - movs r2, 0x8 - bl MenuPrint - ldr r1, _080BB028 - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x4 - movs r0, 0xA0 - strh r0, [r1] - ldr r1, _080BB02C - movs r0, 0x1 - str r0, [r1] - movs r0, 0 - str r0, [r1, 0x8] - str r0, [r1, 0x1C] - str r0, [r1, 0x18] - str r0, [r1, 0x14] - bl sub_80BB1D4 - ldr r1, _080BB030 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BB034 - str r1, [r0] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB01C: .4byte gOtherText_SE -_080BB020: .4byte gOtherText_Pan -_080BB024: .4byte gUnknown_083D0381 -_080BB028: .4byte REG_WIN0H -_080BB02C: .4byte gUnknown_020387B4 -_080BB030: .4byte gTasks -_080BB034: .4byte sub_80BB038 - thumb_func_end sub_80BAF84 - - thumb_func_start sub_80BB038 -sub_80BB038: @ 80BB038 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_80BB1D4 - ldr r2, _080BB058 - ldr r0, [r2, 0x18] - cmp r0, 0 - beq _080BB0A2 - ldr r0, [r2, 0x14] - cmp r0, 0 - beq _080BB05C - subs r0, 0x1 - str r0, [r2, 0x14] - b _080BB0A2 - .align 2, 0 -_080BB058: .4byte gUnknown_020387B4 -_080BB05C: - ldr r0, _080BB088 - ldr r1, [r2, 0x8] - adds r1, r0 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - movs r0, 0x80 - negs r0, r0 - cmp r1, r0 - beq _080BB08C - cmp r1, 0x7F - bne _080BB0A2 - ldr r0, [r2, 0x1C] - adds r0, 0x2 - str r0, [r2, 0x1C] - cmp r0, 0x3E - bgt _080BB0A2 - lsls r0, 24 - asrs r0, 24 - bl SE12PanpotControl - b _080BB0A2 - .align 2, 0 -_080BB088: .4byte gUnknown_083D03F8 -_080BB08C: - ldr r0, [r2, 0x1C] - subs r1, r0, 0x2 - str r1, [r2, 0x1C] - movs r0, 0x40 - negs r0, r0 - cmp r1, r0 - ble _080BB0A2 - lsls r0, r1, 24 - asrs r0, 24 - bl SE12PanpotControl -_080BB0A2: - ldr r1, _080BB0EC - ldrh r3, [r1, 0x2E] - movs r0, 0x2 - ands r0, r3 - lsls r0, 16 - lsrs r4, r0, 16 - adds r7, r1, 0 - cmp r4, 0 - beq _080BB104 - movs r1, 0x80 - lsls r1, 19 - ldr r2, _080BB0F0 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x40 - ldr r2, _080BB0F4 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080BB0F8 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080BB0FC - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BB100 - str r1, [r0] - b _080BB1C8 - .align 2, 0 -_080BB0EC: .4byte gMain -_080BB0F0: .4byte 0x00007140 -_080BB0F4: .4byte 0x000011df -_080BB0F8: .4byte 0x0000011f -_080BB0FC: .4byte gTasks -_080BB100: .4byte sub_80BA258 -_080BB104: - movs r6, 0x1 - adds r2, r6, 0 - ands r2, r3 - cmp r2, 0 - beq _080BB15E - ldr r0, _080BB138 - ldr r5, _080BB13C - ldr r1, [r5, 0x8] - adds r1, r0 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - movs r0, 0x80 - negs r0, r0 - cmp r1, r0 - beq _080BB140 - cmp r1, 0x7F - bne _080BB154 - ldrh r0, [r5] - movs r4, 0x40 - negs r4, r4 - adds r1, r4, 0 - bl PlaySE12WithPanning - str r4, [r5, 0x1C] - b _080BB14C - .align 2, 0 -_080BB138: .4byte gUnknown_083D03F8 -_080BB13C: .4byte gUnknown_020387B4 -_080BB140: - ldrh r0, [r5] - movs r1, 0x3F - bl PlaySE12WithPanning - movs r0, 0x3F - str r0, [r5, 0x1C] -_080BB14C: - str r6, [r5, 0x18] - movs r0, 0x1E - str r0, [r5, 0x14] - b _080BB1C8 -_080BB154: - ldrh r0, [r5] - bl PlaySE12WithPanning - str r4, [r5, 0x18] - b _080BB1C8 -_080BB15E: - movs r0, 0x80 - lsls r0, 2 - ands r0, r3 - cmp r0, 0 - beq _080BB176 - ldr r1, _080BB1AC - ldr r0, [r1, 0x8] - adds r0, 0x1 - str r0, [r1, 0x8] - cmp r0, 0x4 - ble _080BB176 - str r2, [r1, 0x8] -_080BB176: - ldrh r1, [r7, 0x2E] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080BB192 - ldr r1, _080BB1AC - ldr r0, [r1, 0x8] - subs r0, 0x1 - str r0, [r1, 0x8] - cmp r0, 0 - bge _080BB192 - movs r0, 0x4 - str r0, [r1, 0x8] -_080BB192: - ldrh r1, [r7, 0x30] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080BB1B0 - ldr r1, _080BB1AC - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0xF7 - ble _080BB1C8 - movs r0, 0 - b _080BB1C6 - .align 2, 0 -_080BB1AC: .4byte gUnknown_020387B4 -_080BB1B0: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080BB1C8 - ldr r1, _080BB1D0 - ldr r0, [r1] - subs r0, 0x1 - str r0, [r1] - cmp r0, 0 - bge _080BB1C8 - movs r0, 0xF7 -_080BB1C6: - str r0, [r1] -_080BB1C8: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BB1D0: .4byte gUnknown_020387B4 - thumb_func_end sub_80BB038 - - thumb_func_start sub_80BB1D4 -sub_80BB1D4: @ 80BB1D4 - push {r4,r5,lr} - sub sp, 0x10 - ldr r1, _080BB218 - mov r0, sp - movs r2, 0x5 - bl memcpy - add r5, sp, 0x8 - ldr r1, _080BB21C - adds r0, r5, 0 - movs r2, 0x5 - bl memcpy - ldr r4, _080BB220 - ldr r0, [r4] - movs r1, 0x7 - movs r2, 0x2 - movs r3, 0x3 - bl sub_80BAE78 - ldr r1, _080BB224 - ldr r0, [r4, 0x8] - adds r0, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x80 - negs r0, r0 - cmp r1, r0 - beq _080BB228 - cmp r1, 0x7F - bne _080BB234 - mov r0, sp - b _080BB22A - .align 2, 0 -_080BB218: .4byte gOtherText_LR -_080BB21C: .4byte gOtherText_RL -_080BB220: .4byte gUnknown_020387B4 -_080BB224: .4byte gUnknown_083D03F8 -_080BB228: - adds r0, r5, 0 -_080BB22A: - movs r1, 0x7 - movs r2, 0x4 - bl MenuPrint - b _080BB240 -_080BB234: - adds r0, r1, 0 - movs r1, 0x7 - movs r2, 0x4 - movs r3, 0x3 - bl sub_80BAE78 -_080BB240: - bl IsSEPlaying - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xC - movs r2, 0x8 - movs r3, 0x1 - bl sub_80BAE78 - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80BB1D4 - - thumb_func_start sub_80BB25C -sub_80BB25C: @ 80BB25C - push {r4-r6,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080BB374 - bl SetUpWindowConfig - ldr r0, _080BB378 - bl InitMenuWindow - ldr r1, _080BB37C - movs r0, 0x1 - strh r0, [r1] - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _080BB380 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - ldr r1, _080BB384 - ands r0, r1 - movs r1, 0xE8 - lsls r1, 13 - orrs r0, r1 - ldr r1, _080BB388 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 20 - orrs r0, r1 - str r0, [sp, 0x4] - ldr r1, _080BB38C - ldr r0, [sp, 0x8] - ands r0, r1 - movs r1, 0xF0 - lsls r1, 5 - orrs r0, r1 - ldr r1, _080BB390 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - str r0, [sp, 0x8] - movs r1, 0 - ldr r0, _080BB394 - strb r1, [r0] - add r4, sp, 0xC -_080BB2BE: - add r0, sp, 0x4 - movs r1, 0x3 - bl sub_8119E3C - lsls r0, 24 - cmp r0, 0 - beq _080BB2BE - ldr r1, _080BB380 - ldr r0, [sp, 0xC] - ands r0, r1 - ldr r1, _080BB384 - ands r0, r1 - movs r1, 0xF0 - lsls r1, 12 - orrs r0, r1 - ldr r1, _080BB388 - ands r0, r1 - movs r1, 0xD0 - lsls r1, 20 - orrs r0, r1 - str r0, [sp, 0xC] - ldr r1, _080BB390 - ldr r0, [r4, 0x4] - ands r0, r1 - movs r1, 0xC - orrs r0, r1 - ldr r1, _080BB38C - ands r0, r1 - movs r1, 0xC0 - lsls r1, 4 - orrs r0, r1 - str r0, [r4, 0x4] - movs r1, 0 - ldr r0, _080BB394 - strb r1, [r0] - lsls r5, r6, 2 -_080BB306: - adds r0, r4, 0 - movs r1, 0x2 - bl sub_811A3CC - lsls r0, 24 - cmp r0, 0 - beq _080BB306 - movs r0, 0 - movs r1, 0x10 - movs r2, 0x5 - movs r3, 0x13 - bl MenuDrawTextWindow - bl sub_80BB494 - movs r0, 0x1 - negs r0, r0 - movs r4, 0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080BB398 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - ldr r1, _080BB39C - ldr r2, _080BB3A0 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080BB3A4 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xE - adds r2, 0x3D - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080BB3A8 - movs r1, 0x2 - bl m4aMPlayFadeOutTemporarily - ldr r1, _080BB3AC - adds r0, r5, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BB3B0 - str r1, [r0] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB374: .4byte gWindowConfig_81E6C3C -_080BB378: .4byte gWindowConfig_81E6CE4 -_080BB37C: .4byte gUnknown_03005D34 -_080BB380: .4byte 0xffff0000 -_080BB384: .4byte 0xff00ffff -_080BB388: .4byte 0x00ffffff -_080BB38C: .4byte 0xffff00ff -_080BB390: .4byte 0xffffff00 -_080BB394: .4byte gUnknown_03005E98 -_080BB398: .4byte REG_BG2HOFS -_080BB39C: .4byte REG_BG2CNT -_080BB3A0: .4byte 0x00000f01 -_080BB3A4: .4byte 0x00001d03 -_080BB3A8: .4byte gMPlay_BGM -_080BB3AC: .4byte gTasks -_080BB3B0: .4byte sub_80BB3B4 - thumb_func_end sub_80BB25C - - thumb_func_start sub_80BB3B4 -sub_80BB3B4: @ 80BB3B4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x3 - bl sub_8119F88 - ldr r4, _080BB478 - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080BB3D4 - ldr r0, _080BB47C - ldrh r0, [r0] - bl sub_811A050 -_080BB3D4: - ldrh r1, [r4, 0x2E] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080BB3E4 - bl StopCryAndClearCrySongs -_080BB3E4: - ldrh r1, [r4, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080BB408 - ldr r1, _080BB47C - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bne _080BB404 - movs r2, 0xC0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] -_080BB404: - bl sub_80BB494 -_080BB408: - ldr r0, _080BB478 - ldrh r1, [r0, 0x30] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080BB42E - ldr r2, _080BB47C - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 17 - cmp r0, r1 - bls _080BB42A - movs r0, 0x1 - strh r0, [r2] -_080BB42A: - bl sub_80BB494 -_080BB42E: - ldr r0, _080BB478 - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BB472 - movs r1, 0x80 - lsls r1, 19 - ldr r2, _080BB480 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x40 - ldr r2, _080BB484 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080BB488 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080BB48C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BB490 - str r1, [r0] - bl sub_811A4F8 -_080BB472: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BB478: .4byte gMain -_080BB47C: .4byte gUnknown_03005D34 -_080BB480: .4byte 0x00007140 -_080BB484: .4byte 0x000011df -_080BB488: .4byte 0x0000011f -_080BB48C: .4byte gTasks -_080BB490: .4byte sub_80BA258 - thumb_func_end sub_80BB3B4 - - thumb_func_start sub_80BB494 -sub_80BB494: @ 80BB494 - push {lr} - ldr r0, _080BB4A8 - ldrh r0, [r0] - movs r1, 0x1 - movs r2, 0x11 - movs r3, 0x3 - bl sub_80BAE78 - pop {r0} - bx r0 - .align 2, 0 -_080BB4A8: .4byte gUnknown_03005D34 - thumb_func_end sub_80BB494 - - thumb_func_start sub_80BB4AC -sub_80BB4AC: @ 80BB4AC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r3, r0, 0 - movs r0, 0 - strb r0, [r3] - movs r2, 0 - adds r4, r3, 0x2 - movs r5, 0xFF -_080BB4C4: - adds r0, r4, r2 - ldrb r1, [r0] - orrs r1, r5 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x6 - bls _080BB4C4 - movs r2, 0 - adds r5, r3, 0 - adds r5, 0x12 - adds r6, r3, 0 - adds r6, 0x22 - adds r7, r3, 0 - adds r7, 0x4C - adds r0, r3, 0 - adds r0, 0x34 - str r0, [sp] - adds r1, r3, 0 - adds r1, 0x9A - str r1, [sp, 0x4] - movs r0, 0x7C - adds r0, r3 - mov r10, r0 - movs r1, 0x88 - adds r1, r3 - mov r9, r1 - movs r0, 0x94 - adds r0, r3 - mov r8, r0 - adds r1, r3, 0 - adds r1, 0x9 - movs r4, 0 -_080BB508: - adds r0, r1, r2 - strb r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x3 - bls _080BB508 - movs r0, 0 - movs r1, 0 - strh r1, [r3, 0xE] - strb r0, [r3, 0x10] - strb r0, [r3, 0x11] - movs r0, 0 - strb r0, [r3, 0x1] - movs r2, 0 - adds r4, r5, 0 - adds r3, r6, 0 -_080BB52A: - adds r0, r4, r2 - strb r1, [r0] - adds r0, r3, r2 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xF - bls _080BB52A - movs r2, 0 - mov r12, r7 - movs r5, 0 -_080BB542: - movs r1, 0 - adds r7, r2, 0x1 - lsls r4, r2, 2 - lsls r6, r2, 1 - adds r3, r4, 0 -_080BB54C: - adds r0, r3, r1 - lsls r0, 1 - add r0, r12 - strh r5, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bls _080BB54C - ldr r1, [sp] - adds r0, r1, r4 - str r5, [r0] - ldr r1, [sp, 0x4] - adds r0, r1, r2 - strb r5, [r0] - mov r1, r10 - adds r0, r1, r6 - strh r5, [r0] - mov r1, r9 - adds r0, r1, r6 - strh r5, [r0] - mov r1, r8 - adds r0, r1, r2 - strb r5, [r0] - lsls r0, r7, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080BB542 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BB4AC - - thumb_func_start sub_80BB594 -sub_80BB594: @ 80BB594 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 5 - ldr r1, _080BB5B0 - adds r0, r1 - bl sub_80BB4AC - pop {r0} - bx r0 - .align 2, 0 -_080BB5B0: .4byte gSaveBlock1 + 0x1A08 - thumb_func_end sub_80BB594 - - thumb_func_start sub_80BB5B4 -sub_80BB5B4: @ 80BB5B4 - push {r4,lr} - movs r4, 0 -_080BB5B8: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80BB594 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x13 - bls _080BB5B8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80BB5B4 - - thumb_func_start sub_80BB5D0 -sub_80BB5D0: @ 80BB5D0 - ldr r0, _080BB5DC - ldr r1, _080BB5E0 - ldrh r1, [r1] - strb r1, [r0] - bx lr - .align 2, 0 -_080BB5DC: .4byte gUnknown_020387DC -_080BB5E0: .4byte gUnknown_0202E8CC - thumb_func_end sub_80BB5D0 - - thumb_func_start sub_80BB5E4 -sub_80BB5E4: @ 80BB5E4 - push {r4,lr} - ldr r0, _080BB5F4 - movs r1, 0 - strh r1, [r0] - movs r3, 0 - adds r4, r0, 0 - b _080BB5FE - .align 2, 0 -_080BB5F4: .4byte gScriptResult -_080BB5F8: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 -_080BB5FE: - cmp r3, 0x13 - bhi _080BB626 - ldr r2, _080BB62C - ldr r1, _080BB630 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 5 - adds r0, r1 - ldr r1, _080BB634 - adds r0, r1 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _080BB5F8 - movs r0, 0x1 - strh r0, [r4] - ldr r0, _080BB638 - adds r1, r3, 0 - bl VarSet -_080BB626: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BB62C: .4byte gUnknown_020387DC -_080BB630: .4byte gSaveBlock1 -_080BB634: .4byte 0x00001a08 -_080BB638: .4byte 0x00004054 - thumb_func_end sub_80BB5E4 - - thumb_func_start sub_80BB63C -sub_80BB63C: @ 80BB63C - push {lr} - ldr r0, _080BB654 - ldr r1, _080BB658 - adds r0, r1 - ldrb r1, [r0] - cmp r1, 0 - beq _080BB660 - ldr r1, _080BB65C - movs r0, 0x1 - strh r0, [r1] - b _080BB664 - .align 2, 0 -_080BB654: .4byte gSaveBlock1 -_080BB658: .4byte 0x00001a08 -_080BB65C: .4byte gScriptResult -_080BB660: - ldr r0, _080BB668 - strh r1, [r0] -_080BB664: - pop {r0} - bx r0 - .align 2, 0 -_080BB668: .4byte gScriptResult - thumb_func_end sub_80BB63C - - thumb_func_start sub_80BB66C -sub_80BB66C: @ 80BB66C - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - adds r1, r0, 0 - ldr r2, _080BB6A4 - adds r0, r2, 0 - ands r1, r0 - adds r0, r1, 0 - subs r0, 0x90 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080BB6A8 - movs r0, 0x1 - b _080BB702 - .align 2, 0 -_080BB6A4: .4byte 0x00000fff -_080BB6A8: - adds r0, r1, 0 - subs r0, 0x92 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080BB6B8 - movs r0, 0x2 - b _080BB702 -_080BB6B8: - adds r0, r1, 0 - subs r0, 0x9A - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080BB6C8 - movs r0, 0x3 - b _080BB702 -_080BB6C8: - adds r0, r1, 0 - subs r0, 0x94 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080BB6D8 - movs r0, 0x4 - b _080BB702 -_080BB6D8: - adds r0, r1, 0 - subs r0, 0x96 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080BB6EC - cmp r1, 0x9C - beq _080BB6EC - cmp r1, 0x9D - bne _080BB6F0 -_080BB6EC: - movs r0, 0x5 - b _080BB702 -_080BB6F0: - adds r0, r1, 0 - subs r0, 0x98 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080BB700 - movs r0, 0 - b _080BB702 -_080BB700: - movs r0, 0x6 -_080BB702: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BB66C - - thumb_func_start sub_80BB70C -sub_80BB70C: @ 80BB70C - push {r4,lr} - ldr r4, _080BB720 - bl sub_80BB66C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BB720: .4byte gUnknown_0202E8D2 - thumb_func_end sub_80BB70C - - thumb_func_start unref_sub_80BB724 -unref_sub_80BB724: @ 80BB724 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - movs r2, 0 - ldr r6, _080BB748 - lsrs r3, r1, 24 - ldr r5, _080BB74C -_080BB732: - lsls r0, r2, 1 - adds r0, r4 - ldrh r1, [r0] - adds r0, r6, 0 - ands r0, r1 - cmp r0, r3 - bne _080BB750 - lsls r0, r2, 16 - asrs r0, 16 - b _080BB75E - .align 2, 0 -_080BB748: .4byte 0x00000fff -_080BB74C: .4byte 0x000001ff -_080BB750: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r5 - bls _080BB732 - movs r0, 0x1 - negs r0, r0 -_080BB75E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end unref_sub_80BB724 - - thumb_func_start sub_80BB764 -sub_80BB764: @ 80BB764 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r9, r0 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - movs r0, 0 - mov r12, r0 - ldr r1, _080BB7C8 - ldr r0, [r1] - ldr r3, [r0, 0x4] - cmp r12, r3 - bge _080BB7EE - ldr r0, [r0] - str r0, [sp, 0x4] - str r3, [sp] -_080BB78E: - movs r2, 0 - mov r1, r12 - lsls r7, r1, 16 - ldr r0, [sp, 0x4] - cmp r2, r0 - bge _080BB7DC - ldr r0, _080BB7C8 - ldr r1, [r0] - asrs r0, r7, 16 - ldr r4, [r1] - adds r6, r0, 0 - muls r6, r4 - ldr r5, [r1, 0xC] -_080BB7A8: - lsls r0, r2, 16 - asrs r3, r0, 16 - adds r0, r6, r3 - lsls r0, 1 - adds r0, r5 - ldrh r1, [r0] - ldr r0, _080BB7CC - ands r0, r1 - cmp r0, r8 - bne _080BB7D0 - mov r1, r9 - strh r2, [r1] - mov r1, r12 - mov r0, r10 - strh r1, [r0] - b _080BB7EE - .align 2, 0 -_080BB7C8: .4byte gMapHeader -_080BB7CC: .4byte 0x000003ff -_080BB7D0: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - asrs r0, 16 - cmp r0, r4 - blt _080BB7A8 -_080BB7DC: - movs r1, 0x80 - lsls r1, 9 - adds r0, r7, r1 - lsrs r1, r0, 16 - mov r12, r1 - asrs r0, 16 - ldr r1, [sp] - cmp r0, r1 - blt _080BB78E -_080BB7EE: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BB764 - - thumb_func_start sub_80BB800 -sub_80BB800: @ 80BB800 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileIdAt - movs r5, 0 - mov r12, r4 - lsls r0, 16 - asrs r3, r0, 16 - ldr r1, _080BB84C - mov r8, r1 - adds r7, r0, 0 - mov r4, sp - mov r6, r12 -_080BB834: - ldr r0, _080BB84C - lsls r1, r5, 2 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, r3 - bne _080BB850 - movs r3, 0 - ldrsh r0, [r4, r3] - movs r5, 0 - ldrsh r1, [r6, r5] - ldrh r3, [r2, 0x2] - b _080BB878 - .align 2, 0 -_080BB84C: .4byte gUnknown_083D1358 -_080BB850: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x6 - bls _080BB834 - movs r5, 0 - mov r4, sp - mov r6, r12 -_080BB860: - lsls r0, r5, 2 - mov r1, r8 - adds r3, r0, r1 - ldrh r1, [r3, 0x2] - asrs r0, r7, 16 - cmp r1, r0 - bne _080BB892 - movs r2, 0 - ldrsh r0, [r4, r2] - movs r5, 0 - ldrsh r1, [r6, r5] - ldrh r3, [r3] -_080BB878: - movs r5, 0xC0 - lsls r5, 4 - adds r2, r5, 0 - orrs r2, r3 - bl MapGridSetMetatileIdAt - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0 - ldrsh r1, [r6, r2] - bl CurrentMapDrawMetatileAt - b _080BB89C -_080BB892: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x6 - bls _080BB860 -_080BB89C: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BB800 - - thumb_func_start sub_80BB8A8 -sub_80BB8A8: @ 80BB8A8 - push {lr} - adds r2, r0, 0 - movs r1, 0 -_080BB8AE: - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080BB8BA - adds r0, r1, 0 - b _080BB8C6 -_080BB8BA: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x6 - bls _080BB8AE - movs r0, 0x7 -_080BB8C6: - pop {r1} - bx r1 - thumb_func_end sub_80BB8A8 - - thumb_func_start sub_80BB8CC -sub_80BB8CC: @ 80BB8CC - push {r4-r6,lr} - ldr r2, _080BB948 - ldr r0, _080BB94C - ldrb r1, [r0] - ldr r3, _080BB950 - adds r0, r2, r3 - strb r1, [r0] - movs r3, 0 - ldr r0, _080BB954 - adds r2, r0 - ldr r4, _080BB958 -_080BB8E2: - adds r1, r3, r2 - adds r0, r3, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080BB8E2 - ldr r0, _080BB95C - movs r1, 0 - bl VarSet - ldr r6, _080BB960 - adds r0, r6, 0 - bl sub_80BB8A8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _080BB964 - adds r0, r5, 0 - movs r1, 0xFF - movs r2, 0x7 - bl memset - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl StringCopyN - ldrb r0, [r6, 0x8] - subs r5, 0x1 - movs r1, 0x1 - ands r1, r0 - lsls r1, 4 - ldrb r2, [r5] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - ldr r0, _080BB968 - ldr r1, _080BB96C - ldrb r1, [r1, 0x14] - bl VarSet - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB948: .4byte gSaveBlock1 -_080BB94C: .4byte gUnknown_020387DC -_080BB950: .4byte 0x00001a08 -_080BB954: .4byte 0x00001a11 -_080BB958: .4byte gSaveBlock2 + 0xA -_080BB95C: .4byte 0x00004054 -_080BB960: .4byte gSaveBlock2 -_080BB964: .4byte gSaveBlock1 + 0x1A0A -_080BB968: .4byte 0x00004026 -_080BB96C: .4byte gMapHeader - thumb_func_end sub_80BB8CC - - thumb_func_start sub_80BB970 -sub_80BB970: @ 80BB970 - push {r4-r7,lr} - adds r5, r0, 0 - movs r2, 0 - b _080BBA06 -_080BB978: - ldr r0, [r5, 0x10] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3, 0x5] - adds r7, r2, 0x1 - cmp r0, 0x8 - bne _080BBA02 - movs r2, 0 - ldr r4, _080BB9E0 - adds r6, r1, 0 -_080BB990: - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 5 - adds r0, r4 - ldr r1, _080BB9E4 - adds r0, r1 - ldrb r1, [r0] - ldr r0, [r3, 0x8] - cmp r1, r0 - bne _080BB9F8 - ldrh r0, [r3] - adds r0, 0x7 - ldrh r1, [r3, 0x2] - adds r1, 0x7 - bl MapGridGetMetatileIdAt - movs r3, 0 - lsls r0, 16 - asrs r4, r0, 16 -_080BB9B6: - ldr r0, _080BB9E8 - lsls r1, r3, 2 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, r4 - bne _080BB9EC - ldr r1, [r5, 0x10] - adds r1, r6, r1 - ldrh r0, [r1] - adds r0, 0x7 - ldrh r1, [r1, 0x2] - adds r1, 0x7 - ldrh r3, [r2, 0x2] - movs r4, 0xC0 - lsls r4, 4 - adds r2, r4, 0 - orrs r2, r3 - bl MapGridSetMetatileIdAt - b _080BBA02 - .align 2, 0 -_080BB9E0: .4byte gSaveBlock1 -_080BB9E4: .4byte 0x00001a08 -_080BB9E8: .4byte gUnknown_083D1358 -_080BB9EC: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x6 - bls _080BB9B6 - b _080BBA02 -_080BB9F8: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x13 - bls _080BB990 -_080BBA02: - lsls r0, r7, 16 - lsrs r2, r0, 16 -_080BBA06: - ldrb r0, [r5, 0x3] - cmp r2, r0 - bcc _080BB978 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BB970 - - thumb_func_start sub_80BBA14 -sub_80BBA14: @ 80BBA14 - push {lr} - ldr r0, _080BBA40 - ldrb r0, [r0] - movs r1, 0xA - bl __udivsi3 - ldr r2, _080BBA44 - lsls r0, 26 - asrs r0, 24 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - adds r0, 0x1 - adds r0, r2 - movs r2, 0 - ldrsb r2, [r0, r2] - movs r0, 0x19 - bl warp1_set_2 - pop {r0} - bx r0 - .align 2, 0 -_080BBA40: .4byte gUnknown_020387DC -_080BBA44: .4byte gUnknown_083D1374 - thumb_func_end sub_80BBA14 - - thumb_func_start sub_80BBA48 -sub_80BBA48: @ 80BBA48 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080BBA6C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r1, 0x8 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _080BBA7C - cmp r0, 0x1 - bgt _080BBA70 - cmp r0, 0 - beq _080BBA76 - b _080BBAD0 - .align 2, 0 -_080BBA6C: .4byte gTasks -_080BBA70: - cmp r0, 0x2 - beq _080BBA94 - b _080BBAD0 -_080BBA76: - movs r0, 0x1 - strh r0, [r2, 0x8] - b _080BBAD0 -_080BBA7C: - ldr r0, _080BBA90 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080BBAD0 - movs r0, 0x2 - strh r0, [r2, 0x8] - b _080BBAD0 - .align 2, 0 -_080BBA90: .4byte gPaletteFade -_080BBA94: - ldr r0, _080BBAD8 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r2, _080BBADC - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 5 - adds r1, r2 - ldr r0, _080BBAE0 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0xFE - bhi _080BBAB6 - adds r0, 0x1 - strb r0, [r1] -_080BBAB6: - bl sub_80BBA14 - bl warp_in - ldr r0, _080BBAE4 - ldr r1, _080BBAE8 - str r1, [r0] - ldr r0, _080BBAEC - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_080BBAD0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BBAD8: .4byte 0x00004054 -_080BBADC: .4byte gSaveBlock1 -_080BBAE0: .4byte 0x00001a18 -_080BBAE4: .4byte gUnknown_0300485C -_080BBAE8: .4byte sub_8080990 -_080BBAEC: .4byte CB2_LoadMap - thumb_func_end sub_80BBA48 - - thumb_func_start sub_80BBAF0 -sub_80BBAF0: @ 80BBAF0 - push {lr} - ldr r0, _080BBB1C - movs r1, 0 - bl CreateTask - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, _080BBB20 - movs r1, 0x4 - ldrsb r1, [r0, r1] - movs r2, 0x5 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0 - bl saved_warp2_set - pop {r0} - bx r0 - .align 2, 0 -_080BBB1C: .4byte sub_80BBA48 -_080BBB20: .4byte gSaveBlock1 - thumb_func_end sub_80BBAF0 - - thumb_func_start sub_80BBB24 -sub_80BBB24: @ 80BBB24 - push {lr} - ldr r0, _080BBB40 - ldrb r0, [r0, 0x17] - cmp r0, 0x9 - bne _080BBB48 - ldr r0, _080BBB44 - bl VarGet - lsls r0, 16 - cmp r0, 0 - bne _080BBB48 - movs r0, 0 - b _080BBB4A - .align 2, 0 -_080BBB40: .4byte gMapHeader -_080BBB44: .4byte 0x00004097 -_080BBB48: - movs r0, 0x1 -_080BBB4A: - pop {r1} - bx r1 - thumb_func_end sub_80BBB24 - - thumb_func_start sub_80BBB50 -sub_80BBB50: @ 80BBB50 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080BBB88 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BBB8C - adds r0, r1 - movs r1, 0x2 - bl FieldObjectTurn - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BBB80 - bl EnableBothScriptContexts - adds r0, r4, 0 - bl DestroyTask -_080BBB80: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BBB88: .4byte gPlayerAvatar -_080BBB8C: .4byte gMapObjects - thumb_func_end sub_80BBB50 - - thumb_func_start sub_80BBB90 -sub_80BBB90: @ 80BBB90 - push {r4,lr} - sub sp, 0x4 - bl ScriptContext2_Enable - bl HideMapNamePopUpWindow - mov r4, sp - adds r4, 0x2 - movs r2, 0x88 - lsls r2, 2 - mov r0, sp - adds r1, r4, 0 - bl sub_80BB764 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - adds r0, 0x7 - movs r2, 0 - ldrsh r1, [r4, r2] - adds r1, 0x7 - movs r2, 0xE2 - lsls r2, 4 - bl MapGridSetMetatileIdAt - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - adds r0, 0x7 - movs r2, 0 - ldrsh r1, [r4, r2] - adds r1, 0x7 - bl CurrentMapDrawMetatileAt - bl pal_fill_black - ldr r0, _080BBBE8 - movs r1, 0 - bl CreateTask - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BBBE8: .4byte sub_80BBB50 - thumb_func_end sub_80BBB90 - - thumb_func_start sub_80BBBEC -sub_80BBBEC: @ 80BBBEC - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080BBC5C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080BBC52 - ldr r0, _080BBC60 - ldrb r0, [r0] - movs r1, 0xA - bl __udivsi3 - ldr r1, _080BBC64 - movs r5, 0x4 - ldrsb r5, [r1, r5] - ldrb r1, [r1, 0x5] - lsls r1, 24 - asrs r1, 24 - movs r2, 0x1 - negs r2, r2 - ldr r4, _080BBC68 - lsls r0, 26 - asrs r0, 24 - adds r3, r0, 0x2 - adds r3, r4 - ldrb r3, [r3] - lsls r3, 24 - asrs r3, 24 - adds r0, 0x3 - adds r0, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - adds r0, r5, 0 - bl warp1_set - bl warp_in - ldr r1, _080BBC6C - ldr r0, _080BBC70 - str r0, [r1] - ldr r0, _080BBC74 - bl SetMainCallback2 - adds r0, r6, 0 - bl DestroyTask -_080BBC52: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BBC5C: .4byte gPaletteFade -_080BBC60: .4byte gUnknown_020387DC -_080BBC64: .4byte gSaveBlock1 -_080BBC68: .4byte gUnknown_083D1374 -_080BBC6C: .4byte gUnknown_0300485C -_080BBC70: .4byte sub_80BBB90 -_080BBC74: .4byte CB2_LoadMap - thumb_func_end sub_80BBBEC - - thumb_func_start sub_80BBC78 -sub_80BBC78: @ 80BBC78 - push {lr} - ldr r0, _080BBCA0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080BBCA4 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - movs r0, 0x1 - movs r1, 0 - bl fade_screen - pop {r0} - bx r0 - .align 2, 0 -_080BBCA0: .4byte sub_80BBBEC -_080BBCA4: .4byte gTasks - thumb_func_end sub_80BBC78 - - thumb_func_start CurrentMapIsSecretBase -CurrentMapIsSecretBase: @ 80BBCA8 - push {lr} - ldr r1, _080BBCC0 - movs r0, 0x4 - ldrsb r0, [r1, r0] - cmp r0, 0x19 - bne _080BBCC4 - ldrb r0, [r1, 0x5] - cmp r0, 0x17 - bhi _080BBCC4 - movs r0, 0x1 - b _080BBCC6 - .align 2, 0 -_080BBCC0: .4byte gSaveBlock1 -_080BBCC4: - movs r0, 0 -_080BBCC6: - pop {r1} - bx r1 - thumb_func_end CurrentMapIsSecretBase - - thumb_func_start sub_80BBCCC -sub_80BBCCC: @ 80BBCCC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - bl CurrentMapIsSecretBase - lsls r0, 24 - cmp r0, 0 - beq _080BBDBC - ldr r0, _080BBD70 - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - movs r1, 0 - mov r0, sp - strh r1, [r0] - ldr r6, _080BBD74 - mov r4, sp - ldr r0, _080BBD78 - adds r7, r6, r0 -_080BBCFC: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 5 - ldrh r1, [r4] - adds r2, r0, r1 - ldr r1, _080BBD7C - adds r0, r6, r1 - adds r1, r2, r0 - ldrb r0, [r1] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x77 - bhi _080BBD3A - ldr r0, _080BBD80 - ldrb r3, [r1] - lsls r1, r3, 5 - adds r1, r0 - ldrb r0, [r1, 0x11] - cmp r0, 0x4 - beq _080BBD3A - adds r0, r2, r7 - ldrb r2, [r0] - lsrs r0, r2, 4 - adds r0, 0x7 - movs r1, 0xF - ands r1, r2 - adds r1, 0x7 - adds r2, r3, 0 - bl sub_80FF394 -_080BBD3A: - ldrh r0, [r4] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - strh r0, [r4] - cmp r0, 0xF - bls _080BBCFC - cmp r5, 0 - beq _080BBD88 - mov r4, sp - adds r4, 0x2 - movs r2, 0x88 - lsls r2, 2 - mov r0, sp - adds r1, r4, 0 - bl sub_80BB764 - mov r0, sp - ldrh r0, [r0] - adds r0, 0x7 - ldrh r1, [r4] - adds r1, 0x7 - ldr r2, _080BBD84 - bl MapGridSetMetatileIdAt - b _080BBDBC - .align 2, 0 -_080BBD70: .4byte 0x00004054 -_080BBD74: .4byte gSaveBlock1 -_080BBD78: .4byte 0x00001a2a -_080BBD7C: .4byte 0x00001a1a -_080BBD80: .4byte gDecorations -_080BBD84: .4byte 0x00000e21 -_080BBD88: - mov r0, r8 - cmp r0, 0x1 - bne _080BBDBC - ldr r0, _080BBDC8 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _080BBDBC - mov r4, sp - adds r4, 0x2 - movs r2, 0x88 - lsls r2, 2 - mov r0, sp - adds r1, r4, 0 - bl sub_80BB764 - mov r0, sp - ldrh r0, [r0] - adds r0, 0x7 - ldrh r1, [r4] - adds r1, 0x7 - ldr r2, _080BBDCC - bl MapGridSetMetatileIdAt -_080BBDBC: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BBDC8: .4byte 0x00004089 -_080BBDCC: .4byte 0x00000e0a - thumb_func_end sub_80BBCCC - - thumb_func_start sub_80BBDD0 -sub_80BBDD0: @ 80BBDD0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - ldr r0, _080BBE00 - bl VarGet - lsls r0, 16 - lsrs r4, r0, 16 - bl CurrentMapIsSecretBase - lsls r0, 24 - cmp r0, 0 - bne _080BBE08 - ldr r0, _080BBE04 - str r0, [sp, 0x4] - adds r0, 0xC - str r0, [sp, 0x8] - movs r1, 0xC - str r1, [sp, 0xC] - b _080BBE1E - .align 2, 0 -_080BBE00: .4byte 0x00004054 -_080BBE04: .4byte gSaveBlock1 + 0x2688 -_080BBE08: - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 5 - ldr r0, _080BBF7C - adds r2, r1, r0 - str r2, [sp, 0x4] - adds r0, 0x10 - adds r1, r0 - str r1, [sp, 0x8] - movs r3, 0x10 - str r3, [sp, 0xC] -_080BBE1E: - movs r6, 0 - ldr r4, [sp, 0xC] - cmp r6, r4 - bcc _080BBE28 - b _080BBF6C -_080BBE28: - ldr r5, _080BBF80 - mov r10, r5 -_080BBE2C: - ldr r1, [sp, 0x4] - adds r0, r1, r6 - ldrb r1, [r0] - mov r9, r0 - adds r2, r6, 0x1 - str r2, [sp, 0x10] - cmp r1, 0 - bne _080BBE3E - b _080BBF5E -_080BBE3E: - ldrb r0, [r0] - lsls r0, 5 - ldr r3, _080BBF84 - adds r0, r3 - ldrb r0, [r0, 0x11] - cmp r0, 0x4 - beq _080BBE4E - b _080BBF5E -_080BBE4E: - movs r5, 0 - ldr r0, _080BBF88 - ldr r2, [r0, 0x4] - ldrb r3, [r2] - mov r8, r0 - cmp r5, r3 - bcs _080BBE8E - ldr r0, [r2, 0x4] - ldrh r1, [r0, 0x14] - ldr r4, _080BBF8C - ldrh r0, [r4] - adds r0, 0xAE - adds r7, r4, 0 - cmp r1, r0 - beq _080BBE8E - adds r4, r2, 0 - adds r2, r3, 0 -_080BBE70: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r2 - bcs _080BBE8E - ldr r1, [r4, 0x4] - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x14] - ldrh r0, [r7] - adds r0, 0xAE - cmp r1, r0 - bne _080BBE70 -_080BBE8E: - mov r1, r8 - ldr r0, [r1, 0x4] - ldrb r0, [r0] - cmp r5, r0 - beq _080BBF5E - ldr r7, _080BBF90 - ldr r2, [sp, 0x8] - adds r1, r2, r6 - ldrb r0, [r1] - lsrs r0, 4 - strh r0, [r7] - ldr r6, _080BBF94 - ldrb r1, [r1] - movs r0, 0xF - ands r0, r1 - strh r0, [r6] - ldrh r0, [r7] - adds r0, 0x7 - ldrh r1, [r6] - adds r1, 0x7 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80572D8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BBEDA - adds r0, r4, 0 - bl sub_80572EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BBF5E -_080BBEDA: - mov r3, r8 - ldr r0, [r3, 0x4] - ldr r1, [r0, 0x4] - lsls r4, r5, 1 - adds r4, r5 - lsls r4, 3 - adds r1, r4, r1 - ldr r5, _080BBF98 - adds r0, r5, 0 - ldrb r1, [r1, 0x1] - adds r0, r1 - ldr r1, _080BBF9C - strh r0, [r1] - ldrh r0, [r1] - mov r2, r9 - ldrb r1, [r2] - lsls r1, 5 - ldr r3, _080BBFA0 - adds r1, r3 - ldr r1, [r1] - ldrh r1, [r1] - bl VarSet - mov r5, r8 - ldr r0, [r5, 0x4] - ldr r0, [r0, 0x4] - adds r4, r0 - ldrb r0, [r4] - ldr r1, _080BBF9C - strh r0, [r1] - ldr r2, _080BBF8C - ldrh r0, [r2] - adds r0, 0xAE - lsls r0, 16 - lsrs r0, 16 - bl FlagReset - ldr r3, _080BBF9C - ldrb r0, [r3] - mov r4, r10 - ldrb r1, [r4, 0x5] - ldrb r2, [r4, 0x4] - bl show_sprite - ldr r5, _080BBF9C - ldrb r0, [r5] - ldrb r1, [r4, 0x5] - ldrb r2, [r4, 0x4] - movs r4, 0 - ldrsh r3, [r7, r4] - movs r5, 0 - ldrsh r4, [r6, r5] - str r4, [sp] - bl sub_805C0F8 - ldr r1, _080BBF9C - ldrb r0, [r1] - mov r2, r10 - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl sub_805C78C - ldr r3, _080BBF8C - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] -_080BBF5E: - ldr r4, [sp, 0x10] - lsls r0, r4, 24 - lsrs r6, r0, 24 - ldr r5, [sp, 0xC] - cmp r6, r5 - bcs _080BBF6C - b _080BBE2C -_080BBF6C: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BBF7C: .4byte gSaveBlock1 + 0x1A1A -_080BBF80: .4byte gSaveBlock1 -_080BBF84: .4byte gDecorations -_080BBF88: .4byte gMapHeader -_080BBF8C: .4byte gUnknown_0202E8CC -_080BBF90: .4byte gUnknown_0202E8D0 -_080BBF94: .4byte gUnknown_0202E8D2 -_080BBF98: .4byte 0x00003f20 -_080BBF9C: .4byte gScriptResult -_080BBFA0: .4byte gDecorations + 0x1C - thumb_func_end sub_80BBDD0 - - thumb_func_start sub_80BBFA4 -sub_80BBFA4: @ 80BBFA4 - push {r4,r5,lr} - ldr r0, _080BBFCC - bl VarGet - ldr r5, _080BBFD0 - ldr r4, _080BBFD4 - lsls r0, 24 - lsrs r0, 24 - bl sub_80BCCA4 - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - ldrb r1, [r0] - adds r0, r5, 0 - bl VarSet - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BBFCC: .4byte 0x00004054 -_080BBFD0: .4byte 0x0000401f -_080BBFD4: .4byte gUnknown_083D13EC - thumb_func_end sub_80BBFA4 - - thumb_func_start sub_80BBFD8 -sub_80BBFD8: @ 80BBFD8 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r3, 0 - ldrb r0, [r4, 0x3] - cmp r3, r0 - bge _080BC030 - ldr r6, _080BC01C -_080BBFE8: - lsls r3, 16 - asrs r1, r3, 16 - ldr r2, [r4, 0x10] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2, 0x5] - cmp r0, 0x8 - bne _080BC020 - movs r0, 0 - ldrsh r1, [r5, r0] - ldrh r0, [r2] - adds r0, 0x7 - cmp r1, r0 - bne _080BC020 - movs r0, 0x2 - ldrsh r1, [r5, r0] - ldrh r0, [r2, 0x2] - adds r0, 0x7 - cmp r1, r0 - bne _080BC020 - ldr r0, [r2, 0x8] - strb r0, [r6] - b _080BC030 - .align 2, 0 -_080BC01C: .4byte gUnknown_020387DC -_080BC020: - movs r1, 0x80 - lsls r1, 9 - adds r0, r3, r1 - lsrs r3, r0, 16 - asrs r0, 16 - ldrb r1, [r4, 0x3] - cmp r0, r1 - blt _080BBFE8 -_080BC030: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BBFD8 - - thumb_func_start sub_80BC038 -sub_80BC038: @ 80BC038 - push {lr} - bl sub_80BBFD8 - bl sub_80BB5E4 - ldr r0, _080BC04C - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080BC04C: .4byte gUnknown_081A2E14 - thumb_func_end sub_80BC038 - - thumb_func_start sub_80BC050 -sub_80BC050: @ 80BC050 - push {lr} - bl sub_80BB5D0 - bl sub_80BB5E4 - ldr r0, _080BC068 - ldrh r0, [r0] - cmp r0, 0x1 - beq _080BC06C - movs r0, 0x1 - b _080BC06E - .align 2, 0 -_080BC068: .4byte gScriptResult -_080BC06C: - movs r0, 0 -_080BC06E: - pop {r1} - bx r1 - thumb_func_end sub_80BC050 - - thumb_func_start sub_80BC074 -sub_80BC074: @ 80BC074 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080BC098 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080BC0AC - cmp r0, 0x1 - bgt _080BC09C - cmp r0, 0 - beq _080BC0A2 - b _080BC0E4 - .align 2, 0 -_080BC098: .4byte gTasks -_080BC09C: - cmp r0, 0x2 - beq _080BC0C4 - b _080BC0E4 -_080BC0A2: - bl ScriptContext2_Enable - movs r0, 0x1 - strh r0, [r4, 0x8] - b _080BC0E4 -_080BC0AC: - ldr r0, _080BC0C0 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080BC0E4 - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080BC0E4 - .align 2, 0 -_080BC0C0: .4byte gPaletteFade -_080BC0C4: - movs r0, 0x7E - bl copy_saved_warp2_bank_and_enter_x_to_warp1 - bl warp_in - ldr r0, _080BC0EC - ldr r1, _080BC0F0 - str r1, [r0] - ldr r0, _080BC0F4 - bl SetMainCallback2 - bl ScriptContext2_Disable - adds r0, r5, 0 - bl DestroyTask -_080BC0E4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BC0EC: .4byte gUnknown_0300485C -_080BC0F0: .4byte mapldr_default -_080BC0F4: .4byte CB2_LoadMap - thumb_func_end sub_80BC074 - - thumb_func_start sub_80BC0F8 -sub_80BC0F8: @ 80BC0F8 - push {lr} - ldr r0, _080BC110 - movs r1, 0 - bl CreateTask - movs r0, 0x1 - movs r1, 0 - bl fade_screen - pop {r0} - bx r0 - .align 2, 0 -_080BC110: .4byte sub_80BC074 - thumb_func_end sub_80BC0F8 - - thumb_func_start sub_80BC114 -sub_80BC114: @ 80BC114 - push {lr} - ldr r0, _080BC12C - ldr r1, _080BC130 - adds r0, r1 - ldr r1, _080BC134 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _080BC13C - ldr r1, _080BC138 - movs r0, 0x1 - b _080BC140 - .align 2, 0 -_080BC12C: .4byte gSaveBlock1 -_080BC130: .4byte 0x00001a08 -_080BC134: .4byte gUnknown_020387DC -_080BC138: .4byte gScriptResult -_080BC13C: - ldr r1, _080BC148 - movs r0, 0 -_080BC140: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080BC148: .4byte gScriptResult - thumb_func_end sub_80BC114 - - thumb_func_start sub_80BC14C -sub_80BC14C: @ 80BC14C - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - movs r2, 0 - ldr r5, _080BC174 - ldr r4, _080BC178 -_080BC158: - lsls r0, r2, 16 - asrs r1, r0, 16 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 5 - adds r0, r5 - adds r0, r4 - ldrb r0, [r0] - cmp r0, r3 - bne _080BC17C - lsls r0, r2, 24 - lsrs r0, 24 - b _080BC18A - .align 2, 0 -_080BC174: .4byte gSaveBlock1 -_080BC178: .4byte 0x00001a08 -_080BC17C: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080BC158 - movs r0, 0 -_080BC18A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80BC14C - - thumb_func_start sub_80BC190 -sub_80BC190: @ 80BC190 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r4, r1, 2 - adds r4, r1 - lsls r4, 5 - ldr r0, _080BC1C8 - adds r4, r0 - adds r0, r4, 0 - bl sub_80BB8A8 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl StringCopyN - movs r1, 0xFF - strb r1, [r0] - ldr r1, _080BC1CC - adds r0, r5, 0 - bl StringAppend - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080BC1C8: .4byte gSaveBlock1 + 0x1A0A -_080BC1CC: .4byte gOtherText_PlayersBase - thumb_func_end sub_80BC190 - - thumb_func_start GetSecretBaseMapName -GetSecretBaseMapName: @ 80BC1D0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - ldr r6, _080BC214 - ldr r5, _080BC218 - ldr r4, _080BC21C - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 5 - adds r1, r5 - ldr r0, _080BC220 - adds r1, r0 - ldrb r0, [r1] - strb r0, [r6] - adds r0, r4, 0 - bl VarGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_80BC190 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080BC214: .4byte gUnknown_020387DC -_080BC218: .4byte gSaveBlock1 -_080BC21C: .4byte 0x00004054 -_080BC220: .4byte 0x00001a08 - thumb_func_end GetSecretBaseMapName - - thumb_func_start sub_80BC224 -sub_80BC224: @ 80BC224 - push {r4,r5,lr} - ldr r0, _080BC25C - bl VarGet - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 5 - ldr r0, _080BC260 - adds r4, r0 - ldr r5, _080BC264 - adds r0, r4, 0 - bl sub_80BB8A8 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl StringCopyN - movs r1, 0xFF - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BC25C: .4byte 0x00004054 -_080BC260: .4byte gSaveBlock1 + 0x1A0A -_080BC264: .4byte gStringVar1 - thumb_func_end sub_80BC224 - - thumb_func_start sub_80BC268 -sub_80BC268: @ 80BC268 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080BC288 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 5 - adds r1, r2 - ldr r0, _080BC28C - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 6 - cmp r0, 0 - bne _080BC290 - movs r0, 0 - b _080BC292 - .align 2, 0 -_080BC288: .4byte gSaveBlock1 -_080BC28C: .4byte 0x00001a09 -_080BC290: - movs r0, 0x1 -_080BC292: - pop {r1} - bx r1 - thumb_func_end sub_80BC268 - - thumb_func_start sub_80BC298 -sub_80BC298: @ 80BC298 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x1A - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x1B - bl GetMonData - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x1C - bl GetMonData - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x1D - bl GetMonData - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x1E - bl GetMonData - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x1F - bl GetMonData - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - movs r1, 0x6 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80BC298 - - thumb_func_start sub_80BC300 -sub_80BC300: @ 80BC300 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0 - mov r10, r0 - movs r6, 0 - mov r9, r6 -_080BC314: - movs r4, 0 - lsls r3, r6, 2 - lsls r2, r6, 1 - ldr r7, _080BC424 - adds r1, r6, 0x1 - str r1, [sp] - adds r1, r3, 0 -_080BC322: - adds r0, r1, r4 - lsls r0, 1 - ldr r5, _080BC428 - adds r0, r5, r0 - mov r5, r9 - strh r5, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080BC322 - ldr r1, _080BC42C - adds r0, r1, r2 - strh r5, [r0] - ldr r5, _080BC430 - adds r0, r5, r2 - mov r1, r9 - strh r1, [r0] - ldr r2, _080BC434 - adds r0, r2, r6 - mov r5, r9 - strb r5, [r0] - ldr r1, _080BC438 - adds r0, r1, r3 - mov r2, r9 - str r2, [r0] - ldr r3, _080BC43C - adds r0, r3, r6 - strb r2, [r0] - movs r0, 0x64 - adds r5, r6, 0 - muls r5, r0 - adds r4, r5, r7 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080BC408 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _080BC408 - movs r4, 0 - mov r0, r10 - lsls r0, 2 - mov r8, r0 - mov r1, r10 - lsls r7, r1, 1 - adds r1, 0x1 - str r1, [sp, 0x4] - ldr r2, _080BC424 -_080BC38E: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r5, r2 - str r2, [sp, 0x8] - bl GetMonData - mov r3, r8 - adds r1, r3, r4 - lsls r1, 1 - ldr r3, _080BC428 - adds r1, r3, r1 - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r2, [sp, 0x8] - cmp r4, 0x3 - bls _080BC38E - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - ldr r0, _080BC424 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - ldr r5, _080BC42C - adds r1, r5, r7 - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - ldr r2, _080BC430 - adds r1, r2, r7 - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - ldr r1, _080BC434 - add r1, r10 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - ldr r1, _080BC438 - add r1, r8 - str r0, [r1] - adds r0, r4, 0 - bl sub_80BC298 - ldr r1, _080BC43C - add r1, r10 - strb r0, [r1] - ldr r3, [sp, 0x4] - lsls r0, r3, 16 - lsrs r0, 16 - mov r10, r0 -_080BC408: - ldr r5, [sp] - lsls r0, r5, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _080BC314 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BC424: .4byte gPlayerParty -_080BC428: .4byte gSaveBlock1 + 0x1A54 -_080BC42C: .4byte gSaveBlock1 + 0x1A84 -_080BC430: .4byte gSaveBlock1 + 0x1A90 -_080BC434: .4byte gSaveBlock1 + 0x1A9C -_080BC438: .4byte gSaveBlock1 + 0x1A3C -_080BC43C: .4byte gSaveBlock1 + 0x1AA2 - thumb_func_end sub_80BC300 - - thumb_func_start sub_80BC440 -sub_80BC440: @ 80BC440 - push {r4,r5,lr} - ldr r4, _080BC45C - ldr r0, _080BC460 - adds r4, r0 - ldrh r5, [r4] - movs r0, 0 - bl sub_80BB594 - strh r5, [r4] - bl sub_80BC0F8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BC45C: .4byte gSaveBlock1 -_080BC460: .4byte 0x00001a16 - thumb_func_end sub_80BC440 - - thumb_func_start sub_80BC464 -sub_80BC464: @ 80BC464 - push {lr} - movs r0, 0x14 - bl sav12_xor_increment - bl sub_80BC440 - pop {r0} - bx r0 - thumb_func_end sub_80BC464 - - thumb_func_start sub_80BC474 -sub_80BC474: @ 80BC474 - push {r4-r7,lr} - ldr r0, _080BC4CC - ldr r4, [r0, 0x4] - movs r6, 0 - ldrb r0, [r4, 0x3] - cmp r6, r0 - bcs _080BC504 - ldr r3, _080BC4D0 -_080BC484: - ldr r2, [r4, 0x10] - lsls r1, r6, 1 - adds r0, r1, r6 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2, 0x5] - adds r7, r1, 0 - cmp r0, 0x8 - bne _080BC4F8 - ldrb r1, [r3] - ldr r0, [r2, 0x8] - cmp r1, r0 - bne _080BC4F8 - ldrh r0, [r2] - adds r0, 0x7 - ldrh r1, [r2, 0x2] - adds r1, 0x7 - bl MapGridGetMetatileIdAt - movs r1, 0 - ldr r5, _080BC4D4 - lsls r0, 16 - asrs r2, r0, 16 -_080BC4B2: - lsls r0, r1, 2 - adds r3, r0, r5 - ldrh r0, [r3, 0x2] - cmp r0, r2 - beq _080BC4D8 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x6 - bls _080BC4B2 -_080BC4C6: - bl DrawWholeMapView - b _080BC504 - .align 2, 0 -_080BC4CC: .4byte gMapHeader -_080BC4D0: .4byte gSaveBlock1 + 0x1A08 -_080BC4D4: .4byte gUnknown_083D1358 -_080BC4D8: - ldr r0, [r4, 0x10] - adds r1, r7, r6 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x7 - ldrh r1, [r1, 0x2] - adds r1, 0x7 - ldrh r3, [r3] - movs r4, 0xC0 - lsls r4, 4 - adds r2, r4, 0 - orrs r2, r3 - bl MapGridSetMetatileIdAt - b _080BC4C6 -_080BC4F8: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldrb r0, [r4, 0x3] - cmp r6, r0 - bcc _080BC484 -_080BC504: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BC474 - - thumb_func_start sub_80BC50C -sub_80BC50C: @ 80BC50C - push {r4,r5,lr} - bl sub_80BC474 - movs r0, 0x14 - bl sav12_xor_increment - ldr r4, _080BC530 - ldr r0, _080BC534 - adds r4, r0 - ldrh r5, [r4] - movs r0, 0 - bl sub_80BB594 - strh r5, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BC530: .4byte gSaveBlock1 -_080BC534: .4byte 0x00001a16 - thumb_func_end sub_80BC50C - - thumb_func_start sub_80BC538 -sub_80BC538: @ 80BC538 - push {r4,r5,lr} - movs r5, 0 - movs r4, 0x1 -_080BC53E: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80BC268 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BC554 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080BC554: - lsls r0, r4, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080BC53E - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80BC538 - - thumb_func_start sub_80BC56C -sub_80BC56C: @ 80BC56C - push {lr} - ldr r0, _080BC58C - ldrb r0, [r0] - bl sub_80BC14C - lsls r0, 24 - lsrs r0, 24 - bl sub_80BC268 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - bne _080BC594 - ldr r0, _080BC590 - strh r1, [r0] - b _080BC5B2 - .align 2, 0 -_080BC58C: .4byte gUnknown_020387DC -_080BC590: .4byte gScriptResult -_080BC594: - bl sub_80BC538 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x9 - bls _080BC5AC - ldr r1, _080BC5A8 - movs r0, 0x2 - b _080BC5B0 - .align 2, 0 -_080BC5A8: .4byte gScriptResult -_080BC5AC: - ldr r1, _080BC5B8 - movs r0, 0 -_080BC5B0: - strh r0, [r1] -_080BC5B2: - pop {r0} - bx r0 - .align 2, 0 -_080BC5B8: .4byte gScriptResult - thumb_func_end sub_80BC56C - - thumb_func_start sub_80BC5BC -sub_80BC5BC: @ 80BC5BC - push {lr} - ldr r0, _080BC5F8 - ldrb r0, [r0] - bl sub_80BC14C - ldr r2, _080BC5FC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 5 - adds r1, r2 - ldr r0, _080BC600 - adds r1, r0 - ldrb r3, [r1] - lsrs r2, r3, 6 - movs r0, 0x1 - eors r2, r0 - lsls r2, 6 - movs r0, 0x3F - ands r0, r3 - orrs r0, r2 - strb r0, [r1] - movs r0, 0x86 - lsls r0, 1 - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_080BC5F8: .4byte gUnknown_020387DC -_080BC5FC: .4byte gSaveBlock1 -_080BC600: .4byte 0x00001a09 - thumb_func_end sub_80BC5BC - - thumb_func_start sub_80BC604 -sub_80BC604: @ 80BC604 - push {lr} - ldr r0, _080BC614 - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080BC614: .4byte sub_80FE264 - thumb_func_end sub_80BC604 - - thumb_func_start sub_80BC618 -sub_80BC618: @ 80BC618 - push {lr} - ldr r0, _080BC628 - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080BC628: .4byte sub_80BC62C - thumb_func_end sub_80BC618 - - thumb_func_start sub_80BC62C -sub_80BC62C: @ 80BC62C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl ScriptContext2_Enable - bl sub_80F944C - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080BC688 - adds r4, r0, r1 - bl sub_80BC538 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - adds r1, r0, 0 - cmp r1, 0 - beq _080BC694 - cmp r1, 0x7 - ble _080BC65E - movs r0, 0x7 -_080BC65E: - strh r0, [r4, 0x6] - movs r0, 0 - strh r0, [r4, 0x2] - strh r0, [r4, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r5, 0 - bl sub_80BC7D8 - ldr r1, _080BC68C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BC690 - str r1, [r0] - b _080BC6A0 - .align 2, 0 -_080BC688: .4byte gUnknown_03004B28 -_080BC68C: .4byte gTasks -_080BC690: .4byte sub_80BC824 -_080BC694: - ldr r1, _080BC6A8 - ldr r2, _080BC6AC - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080BC6A0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BC6A8: .4byte gSecretBaseText_NoRegistry -_080BC6AC: .4byte sub_80BCC54 - thumb_func_end sub_80BC62C - - thumb_func_start sub_80BC6B0 -sub_80BC6B0: @ 80BC6B0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080BC6D8 - adds r1, r0 - mov r8, r1 - movs r4, 0 - movs r6, 0 - movs r5, 0x1 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r6, r0 - bne _080BC6DC - movs r4, 0x1 - b _080BC706 - .align 2, 0 -_080BC6D8: .4byte gUnknown_03004B28 -_080BC6DC: - adds r0, r5, 0 - bl sub_80BC268 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BC6F0 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080BC6F0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bhi _080BC706 - mov r1, r8 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r4, r0 - bne _080BC6DC - adds r4, r5, 0 -_080BC706: - adds r5, r4, 0 - cmp r5, 0x13 - bhi _080BC75A - ldr r7, _080BC7A0 -_080BC70E: - adds r0, r5, 0 - bl sub_80BC268 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BC750 - adds r0, r7, 0 - adds r1, r5, 0 - bl sub_80BC190 - lsls r3, r6, 1 - adds r4, r3, 0x2 - lsls r4, 24 - lsrs r4, 24 - adds r3, 0x3 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x12 - adds r1, r4, 0 - movs r2, 0x1C - bl MenuFillWindowRectWithBlankTile - adds r0, r7, 0 - movs r1, 0x12 - adds r2, r4, 0 - bl MenuPrint - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x8 - beq _080BC75A -_080BC750: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080BC70E -_080BC75A: - cmp r6, 0x7 - bhi _080BC7A8 - lsls r3, r6, 1 - adds r4, r3, 0x2 - lsls r4, 24 - lsrs r4, 24 - adds r3, 0x3 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x12 - adds r1, r4, 0 - movs r2, 0x1C - bl MenuFillWindowRectWithBlankTile - ldr r0, _080BC7A4 - movs r1, 0x12 - adds r2, r4, 0 - bl MenuPrint - movs r0, 0x1 - bl SetBgTilemapBuffer - cmp r6, 0x7 - beq _080BC7B2 - lsls r1, r6, 25 - movs r0, 0x80 - lsls r0, 19 - adds r1, r0 - lsrs r1, 24 - movs r0, 0x12 - movs r2, 0x1C - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile - b _080BC7B2 - .align 2, 0 -_080BC7A0: .4byte gStringVar1 -_080BC7A4: .4byte gUnknownText_Exit -_080BC7A8: - movs r0, 0x1 - movs r1, 0xBC - movs r2, 0x98 - bl sub_80F953C -_080BC7B2: - mov r1, r8 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080BC7C4 - movs r0, 0 - bl SetBgTilemapBuffer - b _080BC7CE -_080BC7C4: - movs r0, 0 - movs r1, 0xBC - movs r2, 0x8 - bl sub_80F953C -_080BC7CE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BC6B0 - - thumb_func_start sub_80BC7D8 -sub_80BC7D8: @ 80BC7D8 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _080BC820 - adds r4, r0 - movs r0, 0x11 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldrb r3, [r4, 0x6] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r4, 0x2] - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x12 - movs r2, 0x2 - bl InitMenu - adds r0, r5, 0 - bl sub_80BC6B0 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BC820: .4byte gUnknown_03004B28 - thumb_func_end sub_80BC7D8 - - thumb_func_start sub_80BC824 -sub_80BC824: @ 80BC824 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080BC858 - adds r4, r0, r1 - ldr r2, _080BC85C - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080BC874 - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080BC860 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - b _080BC8B6 - .align 2, 0 -_080BC858: .4byte gUnknown_03004B28 -_080BC85C: .4byte gMain -_080BC860: - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080BC940 - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4, 0x4] - subs r0, 0x1 - b _080BC8A4 -_080BC874: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080BC8C2 - movs r0, 0x2 - ldrsh r1, [r4, r0] - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080BC8AE - movs r1, 0x4 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r2, 0 - ldrsh r1, [r4, r2] - cmp r0, r1 - beq _080BC940 - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4, 0x4] - adds r0, 0x1 -_080BC8A4: - strh r0, [r4, 0x4] - adds r0, r5, 0 - bl sub_80BC6B0 - b _080BC940 -_080BC8AE: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 -_080BC8B6: - bl MoveMenuCursor - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2] - b _080BC940 -_080BC8C2: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080BC91C - movs r0, 0x5 - bl PlaySE - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r2, 0x4 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r2, 0 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080BC8FC - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r5, 0 - bl sub_80BCC54 - b _080BC940 -_080BC8FC: - bl sub_8072DEC - ldrb r0, [r4, 0x4] - ldrb r1, [r4, 0x2] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl sub_80BC948 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x8] - adds r0, r5, 0 - bl sub_80BC980 - b _080BC940 -_080BC91C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BC940 - movs r0, 0x5 - bl PlaySE - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r6, 0 - bl sub_80BCC54 -_080BC940: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BC824 - - thumb_func_start sub_80BC948 -sub_80BC948: @ 80BC948 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - movs r4, 0x1 -_080BC952: - adds r0, r4, 0 - bl sub_80BC268 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BC96E - cmp r6, r5 - bne _080BC968 - adds r0, r4, 0 - b _080BC97A -_080BC968: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080BC96E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x13 - bls _080BC952 - movs r0, 0 -_080BC97A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80BC948 - - thumb_func_start sub_80BC980 -sub_80BC980: @ 80BC980 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_80F996C - movs r0, 0x1 - bl sub_80F996C - movs r0, 0x1 - movs r1, 0 - movs r2, 0xC - movs r3, 0x5 - bl MenuDrawTextWindow - ldr r3, _080BC9D8 - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x2 - bl PrintMenuItems - movs r0, 0 - str r0, [sp] - movs r0, 0xA - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x1 - movs r3, 0x2 - bl InitMenu - ldr r1, _080BC9DC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BC9E0 - str r1, [r0] - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BC9D8: .4byte gUnknown_083D13D4 -_080BC9DC: .4byte gTasks -_080BC9E0: .4byte sub_80BC9E4 - thumb_func_end sub_80BC980 - - thumb_func_start sub_80BC9E4 -sub_80BC9E4: @ 80BC9E4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - ldr r2, _080BCA14 - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080BCA18 - bl GetMenuCursorPos - lsls r0, 24 - cmp r0, 0 - beq _080BCA7C - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _080BCA7C - .align 2, 0 -_080BCA14: .4byte gMain -_080BCA18: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080BCA3A - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BCA7C - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _080BCA7C -_080BCA3A: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080BCA68 - movs r0, 0x5 - bl PlaySE - ldr r4, _080BCA64 - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 21 - adds r4, 0x4 - adds r0, r4 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - b _080BCA7C - .align 2, 0 -_080BCA64: .4byte gUnknown_083D13D4 -_080BCA68: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BCA7C - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80BCBF8 -_080BCA7C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80BC9E4 - - thumb_func_start sub_80BCA84 -sub_80BCA84: @ 80BCA84 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _080BCAD8 - adds r4, r0 - movs r0, 0 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl SetBgTilemapBuffer - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r0, _080BCADC - ldrb r1, [r4, 0x8] - bl sub_80BC190 - ldr r4, _080BCAE0 - ldr r1, _080BCAE4 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080BCAE8 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BCAD8: .4byte gUnknown_03004B28 -_080BCADC: .4byte gStringVar1 -_080BCAE0: .4byte gStringVar4 -_080BCAE4: .4byte gOtherText_OkayToDeleteFromRegistry -_080BCAE8: .4byte sub_80BCAEC - thumb_func_end sub_80BCA84 - - thumb_func_start sub_80BCAEC -sub_80BCAEC: @ 80BCAEC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _080BCB0C - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BCB0C: .4byte gUnknown_083D13E4 - thumb_func_end sub_80BCAEC - - thumb_func_start sub_80BCB10 -sub_80BCB10: @ 80BCB10 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r7, _080BCB80 - adds r4, r6, r7 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r2, _080BCB84 - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 5 - adds r0, r2 - ldr r1, _080BCB88 - adds r0, r1 - ldrb r2, [r0] - movs r1, 0x3F - ands r1, r2 - strb r1, [r0] - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] - ldrh r1, [r4, 0x4] - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080BCB5C - subs r0, r1, 0x1 - strh r0, [r4, 0x4] -_080BCB5C: - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x7 - bgt _080BCB6A - ldrh r0, [r4, 0x6] - subs r0, 0x1 - strh r0, [r4, 0x6] -_080BCB6A: - adds r0, r5, 0 - bl sub_80BC7D8 - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _080BCB8C - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BCB80: .4byte gUnknown_03004B28 -_080BCB84: .4byte gSaveBlock1 -_080BCB88: .4byte 0x00001a09 -_080BCB8C: .4byte sub_80BC824 - thumb_func_end sub_80BCB10 - - thumb_func_start sub_80BCB90 -sub_80BCB90: @ 80BCB90 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1A - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r1, _080BCBB8 - ldr r2, _080BCBBC - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BCBB8: .4byte gOtherText_RegisteredDataDeleted -_080BCBBC: .4byte sub_80BCB10 - thumb_func_end sub_80BCB90 - - thumb_func_start sub_80BCBC0 -sub_80BCBC0: @ 80BCBC0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_80BC7D8 - ldr r1, _080BCBF0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BCBF4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BCBF0: .4byte gTasks -_080BCBF4: .4byte sub_80BC824 - thumb_func_end sub_80BCBC0 - - thumb_func_start sub_80BCBF8 -sub_80BCBF8: @ 80BCBF8 - push {r4,r5,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r5, _080BCC4C - adds r0, r4, r5 - ldrb r3, [r0, 0x6] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r0, 0x2] - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x12 - movs r2, 0x2 - bl InitMenu - movs r0, 0x1 - movs r1, 0 - movs r2, 0xC - movs r3, 0x5 - bl MenuZeroFillWindowRect - movs r0, 0 - bl sub_80F98DC - movs r0, 0x1 - bl sub_80F98DC - subs r5, 0x8 - adds r4, r5 - ldr r0, _080BCC50 - str r0, [r4] - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BCC4C: .4byte gUnknown_03004B28 -_080BCC50: .4byte sub_80BC824 - thumb_func_end sub_80BCBF8 - - thumb_func_start sub_80BCC54 -sub_80BCC54: @ 80BCC54 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080BCC84 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl BuyMenuFreeMemory - movs r0, 0 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl SetBgTilemapBuffer - cmp r4, 0 - bne _080BCC8C - ldr r0, _080BCC88 - bl ScriptContext1_SetupScript - b _080BCC92 - .align 2, 0 -_080BCC84: .4byte 0x00004054 -_080BCC88: .4byte gUnknown_0815F399 -_080BCC8C: - ldr r0, _080BCCA0 - bl ScriptContext1_SetupScript -_080BCC92: - adds r0, r5, 0 - bl DestroyTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BCCA0: .4byte gUnknown_0815F49A - thumb_func_end sub_80BCC54 - - thumb_func_start sub_80BCCA4 -sub_80BCCA4: @ 80BCCA4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080BCCDC - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 5 - adds r4, r1 - ldr r1, _080BCCE0 - adds r0, r4, r1 - ldrb r0, [r0] - movs r1, 0x5 - bl __umodsi3 - ldr r1, _080BCCE4 - adds r4, r1 - ldrb r2, [r4] - lsls r2, 27 - lsrs r2, 31 - lsls r1, r2, 2 - adds r1, r2 - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080BCCDC: .4byte gSaveBlock1 -_080BCCE0: .4byte 0x00001a11 -_080BCCE4: .4byte 0x00001a09 - thumb_func_end sub_80BCCA4 - - thumb_func_start sub_80BCCE8 -sub_80BCCE8: @ 80BCCE8 - push {lr} - ldr r0, _080BCD08 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - bl sub_80BCCA4 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0 - bne _080BCD10 - ldr r0, _080BCD0C - b _080BCD72 - .align 2, 0 -_080BCD08: .4byte 0x00004054 -_080BCD0C: .4byte UnknownString_81A1BB2 -_080BCD10: - cmp r0, 0x1 - bne _080BCD1C - ldr r0, _080BCD18 - b _080BCD72 - .align 2, 0 -_080BCD18: .4byte UnknownString_81A1F67 -_080BCD1C: - cmp r0, 0x2 - bne _080BCD28 - ldr r0, _080BCD24 - b _080BCD72 - .align 2, 0 -_080BCD24: .4byte UnknownString_81A2254 -_080BCD28: - cmp r0, 0x3 - bne _080BCD34 - ldr r0, _080BCD30 - b _080BCD72 - .align 2, 0 -_080BCD30: .4byte UnknownString_81A25C3 -_080BCD34: - cmp r0, 0x4 - bne _080BCD40 - ldr r0, _080BCD3C - b _080BCD72 - .align 2, 0 -_080BCD3C: .4byte UnknownString_81A2925 -_080BCD40: - cmp r0, 0x5 - bne _080BCD4C - ldr r0, _080BCD48 - b _080BCD72 - .align 2, 0 -_080BCD48: .4byte UnknownString_81A1D74 -_080BCD4C: - cmp r0, 0x6 - bne _080BCD58 - ldr r0, _080BCD54 - b _080BCD72 - .align 2, 0 -_080BCD54: .4byte UnknownString_81A20C9 -_080BCD58: - cmp r0, 0x7 - bne _080BCD64 - ldr r0, _080BCD60 - b _080BCD72 - .align 2, 0 -_080BCD60: .4byte UnknownString_81A2439 -_080BCD64: - cmp r1, 0x8 - beq _080BCD70 - ldr r0, _080BCD6C - b _080BCD72 - .align 2, 0 -_080BCD6C: .4byte UnknownString_81A2B2A -_080BCD70: - ldr r0, _080BCD78 -_080BCD72: - pop {r1} - bx r1 - .align 2, 0 -_080BCD78: .4byte UnknownString_81A2754 - thumb_func_end sub_80BCCE8 - - thumb_func_start unref_sub_80BCD7C -unref_sub_80BCD7C: @ 80BCD7C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - ldr r7, _080BCDFC - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 5 - ldr r0, _080BCE00 - adds r0, r7 - mov r10, r0 - ldr r1, _080BCE04 - adds r1, r7 - mov r9, r1 - ldr r2, _080BCE08 - adds r2, r7 - mov r8, r2 - ldr r0, _080BCE0C - mov r12, r0 -_080BCDAA: - lsls r4, r5, 2 - adds r0, r4, r6 - add r0, r10 - adds r3, r5, 0x1 - str r3, [r0] - lsls r0, r5, 3 - adds r0, r6 - add r0, r9 - strh r3, [r0] - lsls r1, r5, 1 - adds r1, r6 - mov r2, r8 - adds r0, r1, r2 - mov r2, r12 - strh r2, [r0] - ldr r2, _080BCE10 - adds r0, r7, r2 - adds r1, r0 - strh r3, [r1] - adds r2, r5, r6 - ldr r1, _080BCE14 - adds r0, r7, r1 - adds r0, r2, r0 - adds r1, r5, 0x5 - strb r1, [r0] - ldr r1, _080BCE18 - adds r0, r7, r1 - adds r2, r0 - adds r4, r5 - strb r4, [r2] - lsls r3, 16 - lsrs r5, r3, 16 - cmp r5, 0 - beq _080BCDAA - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BCDFC: .4byte gSaveBlock1 -_080BCE00: .4byte 0x00001a3c -_080BCE04: .4byte 0x00001a54 -_080BCE08: .4byte 0x00001a84 -_080BCE0C: .4byte 0x00000115 -_080BCE10: .4byte 0x00001a90 -_080BCE14: .4byte 0x00001a9c -_080BCE18: .4byte 0x00001aa2 - thumb_func_end unref_sub_80BCD7C - - thumb_func_start sub_80BCE1C -sub_80BCE1C: @ 80BCE1C - push {r4,lr} - ldr r0, _080BCE44 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x1 - bl sub_810FB10 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 5 - ldr r1, _080BCE48 - adds r0, r1 - bl CreateSecretBaseEnemyParty - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BCE44: .4byte 0x00004054 -_080BCE48: .4byte gSaveBlock1 + 0x1A08 - thumb_func_end sub_80BCE1C - - thumb_func_start sub_80BCE4C -sub_80BCE4C: @ 80BCE4C - push {lr} - ldr r0, _080BCE80 - bl VarGet - ldr r2, _080BCE84 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 5 - adds r1, r2 - ldr r0, _080BCE88 - ldrb r0, [r0] - ldr r2, _080BCE8C - adds r1, r2 - movs r2, 0x1 - ands r2, r0 - lsls r2, 5 - ldrb r3, [r1] - movs r0, 0x21 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080BCE80: .4byte 0x00004054 -_080BCE84: .4byte gSaveBlock1 -_080BCE88: .4byte gScriptResult -_080BCE8C: .4byte 0x00001a09 - thumb_func_end sub_80BCE4C - - thumb_func_start sub_80BCE90 -sub_80BCE90: @ 80BCE90 - push {r4-r7,lr} - ldr r0, _080BCF04 - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080BCF08 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _080BCED4 - movs r3, 0 - ldr r7, _080BCF0C - ldr r4, _080BCF10 - movs r6, 0x21 - negs r6, r6 -_080BCEB2: - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 5 - adds r1, r7 - adds r1, r4 - ldrb r2, [r1] - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x13 - bls _080BCEB2 - ldr r0, _080BCF08 - bl FlagSet -_080BCED4: - ldr r4, _080BCF14 - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_80BCCA4 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - ldr r2, _080BCF18 - ldr r1, _080BCF0C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 5 - adds r0, r1 - ldr r1, _080BCF10 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 31 - strh r0, [r2] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BCF04: .4byte 0x00004054 -_080BCF08: .4byte 0x000008c2 -_080BCF0C: .4byte gSaveBlock1 -_080BCF10: .4byte 0x00001a09 -_080BCF14: .4byte gUnknown_0202E8CC -_080BCF18: .4byte gScriptResult - thumb_func_end sub_80BCE90 - - thumb_func_start sub_80BCF1C -sub_80BCF1C: @ 80BCF1C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080BCF40 - adds r4, r1, r0 - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080BCF54 - cmp r0, 0x1 - bgt _080BCF44 - cmp r0, 0 - beq _080BCF4A - b _080BD02C - .align 2, 0 -_080BCF40: .4byte gUnknown_03004B28 -_080BCF44: - cmp r0, 0x2 - beq _080BD01C - b _080BD02C -_080BCF4A: - adds r0, r4, 0x4 - adds r1, r4, 0x6 - bl PlayerGetDestCoords - b _080BD028 -_080BCF54: - mov r5, sp - adds r5, 0x2 - mov r0, sp - adds r1, r5, 0 - bl PlayerGetDestCoords - mov r0, sp - ldrh r2, [r0] - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x4 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080BCF7C - movs r0, 0 - ldrsh r1, [r5, r0] - movs r3, 0x6 - ldrsh r0, [r4, r3] - cmp r1, r0 - beq _080BD02C -_080BCF7C: - strh r2, [r4, 0x4] - ldrh r0, [r5] - strh r0, [r4, 0x6] - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8057350 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BCFA8 - bl sub_80C6C90 - b _080BD02C -_080BCFA8: - adds r0, r4, 0 - bl sub_8057314 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BCFD8 - mov r0, sp - movs r3, 0 - ldrsh r0, [r0, r3] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileIdAt - lsls r0, 16 - asrs r0, 16 - mov r1, sp - movs r3, 0 - ldrsh r1, [r1, r3] - movs r3, 0 - ldrsh r2, [r5, r3] - bl sub_80C68A4 - b _080BD02C -_080BCFD8: - adds r0, r4, 0 - bl sub_8057328 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BCFF6 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl sub_80C6A54 - b _080BD02C -_080BCFF6: - adds r0, r4, 0 - bl sub_805733C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BD02C - mov r0, sp - movs r3, 0 - ldrsh r0, [r0, r3] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileIdAt - lsls r0, 16 - asrs r0, 16 - bl sub_80C6C30 - b _080BD02C -_080BD01C: - ldrb r0, [r4, 0x8] - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _080BD02C -_080BD028: - movs r0, 0x1 - strh r0, [r4, 0x2] -_080BD02C: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80BCF1C - - thumb_func_start sub_80BD034 -sub_80BD034: @ 80BD034 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080BD064 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 5 - adds r4, r2 - ldr r2, _080BD068 - adds r0, r4, r2 - movs r2, 0xA0 - bl memcpy - ldr r0, _080BD06C - adds r4, r0 - ldrb r1, [r4] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BD064: .4byte gSaveBlock1 -_080BD068: .4byte 0x00001a08 -_080BD06C: .4byte 0x00001a09 - thumb_func_end sub_80BD034 - - thumb_func_start sub_80BD070 -sub_80BD070: @ 80BD070 - push {r4,lr} - movs r2, 0 - adds r4, r0, 0 - adds r4, 0x9 - adds r3, r1, 0 - adds r3, 0x9 -_080BD07C: - adds r0, r4, r2 - adds r1, r3, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _080BD08C - movs r0, 0 - b _080BD098 -_080BD08C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080BD07C - movs r0, 0x1 -_080BD098: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BD070 - - thumb_func_start sub_80BD0A0 -sub_80BD0A0: @ 80BD0A0 - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - movs r3, 0 - ldrb r0, [r6, 0x2] - cmp r0, 0xFF - bne _080BD0B4 - ldrb r0, [r5, 0x2] - cmp r0, 0xFF - beq _080BD0E2 -_080BD0B4: - adds r2, r6, 0x2 - adds r0, r2, r3 - adds r4, r5, 0x2 - adds r1, r4, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _080BD0C8 - movs r0, 0 - b _080BD0E4 -_080BD0C8: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x6 - bhi _080BD0E2 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080BD0B4 - adds r0, r4, r3 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080BD0B4 -_080BD0E2: - movs r0, 0x1 -_080BD0E4: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80BD0A0 - - thumb_func_start sub_80BD0EC -sub_80BD0EC: @ 80BD0EC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r2, [r4, 0x1] - movs r0, 0x10 - adds r1, r0, 0 - ands r1, r2 - ldrb r2, [r5, 0x1] - ands r0, r2 - cmp r1, r0 - bne _080BD122 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80BD070 - lsls r0, 24 - cmp r0, 0 - beq _080BD122 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80BD0A0 - lsls r0, 24 - cmp r0, 0 - beq _080BD122 - movs r0, 0x1 - b _080BD124 -_080BD122: - movs r0, 0 -_080BD124: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80BD0EC - - thumb_func_start sub_80BD12C -sub_80BD12C: @ 80BD12C - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r4, _080BD150 - ldr r3, _080BD154 -_080BD138: - lsls r0, r1, 16 - asrs r1, r0, 16 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 5 - adds r0, r4 - adds r0, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _080BD158 - adds r0, r1, 0 - b _080BD168 - .align 2, 0 -_080BD150: .4byte gSaveBlock1 -_080BD154: .4byte 0x00001a08 -_080BD158: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080BD138 - movs r0, 0x1 - negs r0, r0 -_080BD168: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BD12C - - thumb_func_start sub_80BD170 -sub_80BD170: @ 80BD170 - push {r4,lr} - movs r2, 0x1 - ldr r4, _080BD194 - ldr r3, _080BD198 -_080BD178: - lsls r0, r2, 16 - asrs r1, r0, 16 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 5 - adds r0, r4 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _080BD19C - lsls r0, r2, 24 - lsrs r0, 24 - b _080BD1AA - .align 2, 0 -_080BD194: .4byte gSaveBlock1 -_080BD198: .4byte 0x00001a08 -_080BD19C: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080BD178 - movs r0, 0 -_080BD1AA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BD170 - - thumb_func_start sub_80BD1B0 -sub_80BD1B0: @ 80BD1B0 - push {r4,lr} - movs r3, 0x1 - ldr r4, _080BD1DC -_080BD1B6: - lsls r2, r3, 16 - asrs r1, r2, 16 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 5 - adds r0, r4 - ldr r1, _080BD1E0 - adds r0, r1 - ldrb r1, [r0] - lsrs r0, r1, 6 - cmp r0, 0 - bne _080BD1E4 - lsls r0, r1, 28 - cmp r0, 0 - bne _080BD1E4 - lsls r0, r3, 24 - lsrs r0, 24 - b _080BD1F4 - .align 2, 0 -_080BD1DC: .4byte gSaveBlock1 -_080BD1E0: .4byte 0x00001a09 -_080BD1E4: - movs r1, 0x80 - lsls r1, 9 - adds r0, r2, r1 - lsrs r3, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080BD1B6 - movs r0, 0 -_080BD1F4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BD1B0 - - thumb_func_start sub_80BD1FC -sub_80BD1FC: @ 80BD1FC - push {r4,r5,lr} - adds r5, r0, 0 - ldrb r0, [r5] - cmp r0, 0 - beq _080BD278 - ldrb r0, [r5] - bl sub_80BD12C - lsls r0, 16 - lsrs r4, r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - beq _080BD278 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - beq _080BD254 - ldr r0, _080BD24C - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 5 - adds r1, r0 - ldr r0, _080BD250 - adds r1, r0 - ldrb r1, [r1] - lsls r0, r1, 28 - lsrs r0, 28 - cmp r0, 0x1 - beq _080BD278 - lsrs r0, r1, 6 - cmp r0, 0x2 - bne _080BD246 - ldrb r1, [r5, 0x1] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x1 - bne _080BD278 -_080BD246: - lsls r4, 24 - lsrs r4, 24 - b _080BD26C - .align 2, 0 -_080BD24C: .4byte gSaveBlock1 -_080BD250: .4byte 0x00001a09 -_080BD254: - bl sub_80BD170 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080BD26C - bl sub_80BD1B0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080BD278 -_080BD26C: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80BD034 - adds r0, r4, 0 - b _080BD27A -_080BD278: - movs r0, 0 -_080BD27A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80BD1FC - - thumb_func_start sub_80BD280 -sub_80BD280: @ 80BD280 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xA0 - ldr r0, _080BD324 - mov r8, r0 - movs r2, 0x1 -_080BD290: - adds r1, r2, 0x1 - lsls r0, r1, 24 - lsrs r5, r0, 24 - mov r9, r1 - cmp r5, 0x13 - bhi _080BD30C - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 5 - mov r1, r8 - adds r6, r0, r1 - movs r7, 0xC0 -_080BD2A8: - ldrb r0, [r6, 0x1] - adds r3, r7, 0 - ands r3, r0 - cmp r3, 0 - bne _080BD2C6 - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 5 - add r0, r8 - ldrb r1, [r0, 0x1] - adds r0, r7, 0 - ands r0, r1 - adds r4, r2, 0 - cmp r0, 0x40 - beq _080BD2DE -_080BD2C6: - cmp r3, 0x80 - bne _080BD302 - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 5 - add r0, r8 - ldrb r1, [r0, 0x1] - adds r0, r7, 0 - ands r0, r1 - adds r4, r2, 0 - cmp r0, 0x80 - beq _080BD302 -_080BD2DE: - mov r0, sp - adds r1, r6, 0 - movs r2, 0xA0 - bl memcpy - adds r4, r5 - lsls r4, 5 - add r4, r8 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0xA0 - bl memcpy - adds r0, r4, 0 - mov r1, sp - movs r2, 0xA0 - bl memcpy -_080BD302: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080BD2A8 -_080BD30C: - mov r1, r9 - lsls r0, r1, 24 - lsrs r2, r0, 24 - cmp r2, 0x12 - bls _080BD290 - add sp, 0xA0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BD324: .4byte gSaveBlock1 + 0x1A08 - thumb_func_end sub_80BD280 - - thumb_func_start sub_80BD328 -sub_80BD328: @ 80BD328 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - movs r4, 0x1 -_080BD332: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 5 - adds r1, r0, r6 - ldrb r0, [r1, 0x1] - lsrs r0, 6 - cmp r0, r5 - bne _080BD348 - adds r0, r1, 0 - bl sub_80BD1FC -_080BD348: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x13 - bls _080BD332 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BD328 - - thumb_func_start sub_80BD358 -sub_80BD358: @ 80BD358 - push {r4-r6,lr} - adds r5, r0, 0 - ldrb r0, [r5] - cmp r0, 0 - beq _080BD372 - ldrb r0, [r5, 0x1] - lsls r0, 27 - ldr r1, _080BD378 - lsrs r0, 31 - adds r4, r1, 0 - ldrb r1, [r4, 0x8] - cmp r0, r1 - beq _080BD37C -_080BD372: - movs r0, 0 - b _080BD3D4 - .align 2, 0 -_080BD378: .4byte gSaveBlock2 -_080BD37C: - movs r2, 0 - adds r3, r5, 0 - adds r3, 0x9 - adds r6, r4, 0 - adds r6, 0xA -_080BD386: - adds r0, r3, r2 - adds r1, r2, r6 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _080BD372 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080BD386 - movs r2, 0 - ldrb r0, [r5, 0x2] - cmp r0, 0xFF - bne _080BD3AA - ldrb r0, [r4] - cmp r0, 0xFF - beq _080BD3D2 -_080BD3AA: - adds r3, r5, 0x2 - adds r0, r3, r2 - adds r1, r2, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _080BD372 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x6 - bhi _080BD3D2 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080BD3AA - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080BD3AA -_080BD3D2: - movs r0, 0x1 -_080BD3D4: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80BD358 - - thumb_func_start sub_80BD3DC -sub_80BD3DC: @ 80BD3DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r0 - mov r9, r1 - mov r8, r2 - movs r5, 0 - movs r6, 0 -_080BD3F0: - movs r0, 0x1 - ands r0, r5 - cmp r0, 0 - bne _080BD41A - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 5 - mov r1, r10 - adds r4, r1, r0 - adds r0, r4, 0 - bl sub_80BD358 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BD41A - adds r0, r4, 0 - bl sub_80BB4AC - movs r0, 0x1 - orrs r5, r0 -_080BD41A: - movs r7, 0x2 - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - bne _080BD448 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 5 - mov r1, r9 - adds r4, r1, r0 - adds r0, r4, 0 - bl sub_80BD358 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BD448 - adds r0, r4, 0 - bl sub_80BB4AC - orrs r5, r7 - lsls r0, r5, 24 - lsrs r5, r0, 24 -_080BD448: - movs r7, 0x4 - movs r0, 0x4 - ands r0, r5 - cmp r0, 0 - bne _080BD476 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 5 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - bl sub_80BD358 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BD476 - adds r0, r4, 0 - bl sub_80BB4AC - orrs r5, r7 - lsls r0, r5, 24 - lsrs r5, r0, 24 -_080BD476: - cmp r5, 0x7 - beq _080BD484 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x13 - bls _080BD3F0 -_080BD484: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BD3DC - - thumb_func_start sub_80BD494 -sub_80BD494: @ 80BD494 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - mov r8, r1 - lsls r2, 24 - lsrs r7, r2, 24 - movs r5, 0 -_080BD4A4: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 5 - mov r1, r8 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - beq _080BD4FE - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_80BD0EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BD4FE - cmp r7, 0 - bne _080BD4D0 - adds r0, r4, 0 - bl sub_80BB4AC - b _080BD508 -_080BD4D0: - ldrh r0, [r6, 0xE] - ldrh r3, [r4, 0xE] - cmp r0, r3 - bls _080BD4E0 - adds r0, r4, 0 - bl sub_80BB4AC - b _080BD508 -_080BD4E0: - ldrb r0, [r6, 0x1] - lsls r0, 28 - lsrs r0, 28 - ldrb r1, [r4, 0x1] - movs r3, 0x10 - negs r3, r3 - adds r2, r3, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x1] - adds r0, r6, 0 - bl sub_80BB4AC - movs r0, 0x1 - b _080BD50A -_080BD4FE: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080BD4A4 -_080BD508: - movs r0, 0 -_080BD50A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80BD494 - - thumb_func_start sub_80BD514 -sub_80BD514: @ 80BD514 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r0 - adds r7, r1, 0 - mov r8, r2 - adds r6, r3, 0 - movs r5, 0x1 -_080BD526: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 5 - mov r1, r9 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - beq _080BD578 - ldrb r1, [r4, 0x1] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0x40 - bne _080BD54E - movs r2, 0x10 - negs r2, r2 - adds r0, r2, 0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] -_080BD54E: - adds r0, r4, 0 - adds r1, r7, 0 - adds r2, r5, 0 - bl sub_80BD494 - lsls r0, 24 - cmp r0, 0 - bne _080BD578 - adds r0, r4, 0 - mov r1, r8 - adds r2, r5, 0 - bl sub_80BD494 - lsls r0, 24 - cmp r0, 0 - bne _080BD578 - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_80BD494 -_080BD578: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080BD526 - movs r5, 0 -_080BD584: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 5 - adds r4, r0, r7 - ldrb r0, [r4] - cmp r0, 0 - beq _080BD5B8 - ldrb r0, [r4, 0x1] - movs r2, 0x21 - negs r2, r2 - adds r1, r2, 0 - ands r0, r1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - mov r1, r8 - adds r2, r5, 0 - bl sub_80BD494 - lsls r0, 24 - cmp r0, 0 - bne _080BD5B8 - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_80BD494 -_080BD5B8: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080BD584 - movs r5, 0 - movs r0, 0x21 - negs r0, r0 - adds r7, r0, 0 -_080BD5CA: - lsls r0, r5, 2 - adds r0, r5 - lsls r4, r0, 5 - mov r2, r8 - adds r1, r4, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _080BD5EA - ldrb r0, [r1, 0x1] - ands r0, r7 - strb r0, [r1, 0x1] - adds r0, r1, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_80BD494 -_080BD5EA: - adds r1, r4, r6 - ldrb r0, [r1] - cmp r0, 0 - beq _080BD5F8 - ldrb r0, [r1, 0x1] - ands r0, r7 - strb r0, [r1, 0x1] -_080BD5F8: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080BD5CA - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BD514 - - thumb_func_start sub_80BD610 -sub_80BD610: @ 80BD610 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - bl sub_80BD3DC - ldr r0, _080BD670 - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_80BD514 - adds r0, r4, 0 - bl sub_80BD1FC - adds r0, r5, 0 - bl sub_80BD1FC - adds r0, r6, 0 - bl sub_80BD1FC - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80BD328 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80BD328 - adds r0, r6, 0 - movs r1, 0x1 - bl sub_80BD328 - adds r0, r4, 0 - movs r1, 0 - bl sub_80BD328 - adds r0, r5, 0 - movs r1, 0 - bl sub_80BD328 - adds r0, r6, 0 - movs r1, 0 - bl sub_80BD328 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BD670: .4byte gSaveBlock1 + 0x1A08 - thumb_func_end sub_80BD610 - - thumb_func_start sub_80BD674 -sub_80BD674: @ 80BD674 - push {r4-r7,lr} - adds r6, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r7, r2, 24 - movs r0, 0x60 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _080BD68C - b _080BD790 -_080BD68C: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _080BD69E - cmp r0, 0x3 - beq _080BD6BA - b _080BD6C8 -_080BD69E: - lsls r4, r5, 1 - adds r0, r6, r4 - movs r1, 0 - adds r2, r5, 0 - bl memset - adds r4, r5 - adds r4, r6, r4 - adds r0, r4, 0 - movs r1, 0 - adds r2, r5, 0 - bl memset - b _080BD6C8 -_080BD6BA: - lsls r0, r5, 1 - adds r0, r5 - adds r0, r6, r0 - movs r1, 0 - adds r2, r5, 0 - bl memset -_080BD6C8: - cmp r7, 0x1 - beq _080BD6F0 - cmp r7, 0x1 - bgt _080BD6D6 - cmp r7, 0 - beq _080BD6E0 - b _080BD71C -_080BD6D6: - cmp r7, 0x2 - beq _080BD700 - cmp r7, 0x3 - beq _080BD710 - b _080BD71C -_080BD6E0: - adds r0, r6, r5 - lsls r2, r5, 1 - adds r1, r6, r2 - adds r2, r5 - adds r2, r6, r2 - bl sub_80BD610 - b _080BD71C -_080BD6F0: - lsls r1, r5, 1 - adds r0, r6, r1 - adds r1, r5 - adds r1, r6, r1 - adds r2, r6, 0 - bl sub_80BD610 - b _080BD71C -_080BD700: - lsls r0, r5, 1 - adds r0, r5 - adds r0, r6, r0 - adds r2, r6, r5 - adds r1, r6, 0 - bl sub_80BD610 - b _080BD71C -_080BD710: - adds r1, r6, r5 - lsls r2, r5, 1 - adds r2, r6, r2 - adds r0, r6, 0 - bl sub_80BD610 -_080BD71C: - movs r3, 0x1 - ldr r6, _080BD798 - movs r5, 0x10 - negs r5, r5 - ldr r4, _080BD79C -_080BD726: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 5 - adds r0, r6 - adds r2, r0, r4 - ldrb r1, [r2] - lsls r0, r1, 28 - lsrs r0, 28 - cmp r0, 0x1 - bne _080BD746 - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - ands r0, r5 - strb r0, [r2] -_080BD746: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x13 - bls _080BD726 - bl sub_80BD280 - movs r3, 0x1 - ldr r4, _080BD798 - ldr r6, _080BD79C - adds r7, r4, 0 - movs r5, 0x3F -_080BD75E: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 5 - adds r0, r4 - adds r2, r0, r6 - ldrb r1, [r2] - lsrs r0, r1, 6 - cmp r0, 0x2 - bne _080BD776 - adds r0, r5, 0 - ands r0, r1 - strb r0, [r2] -_080BD776: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x13 - bls _080BD75E - ldr r0, _080BD7A0 - adds r2, r7, r0 - ldrh r1, [r2] - ldr r0, _080BD7A4 - cmp r1, r0 - beq _080BD790 - adds r0, r1, 0x1 - strh r0, [r2] -_080BD790: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BD798: .4byte gSaveBlock1 -_080BD79C: .4byte 0x00001a09 -_080BD7A0: .4byte 0x00001a16 -_080BD7A4: .4byte 0x0000ffff - thumb_func_end sub_80BD674 - - thumb_func_start sub_80BD7A8 -sub_80BD7A8: @ 80BD7A8 - push {r4-r7,lr} - movs r3, 0 - ldr r6, _080BD7F0 - movs r4, 0 - ldr r0, _080BD7F4 - adds r5, r6, r0 -_080BD7B4: - lsls r2, r3, 3 - adds r2, r3 - lsls r2, 2 - adds r1, r2, r6 - ldr r7, _080BD7F8 - adds r0, r1, r7 - strb r4, [r0] - ldr r0, _080BD7FC - adds r1, r0 - strb r4, [r1] - movs r1, 0 - adds r3, 0x1 -_080BD7CC: - adds r0, r1, r2 - adds r0, r5 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x21 - bls _080BD7CC - lsls r0, r3, 24 - lsrs r3, r0, 24 - cmp r3, 0x18 - bls _080BD7B4 - bl sub_80BEBF4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BD7F0: .4byte gSaveBlock1 -_080BD7F4: .4byte 0x0000273a -_080BD7F8: .4byte 0x00002738 -_080BD7FC: .4byte 0x00002739 - thumb_func_end sub_80BD7A8 - - thumb_func_start special_0x44 -special_0x44: @ 80BD800 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r4, 0x5 - ldr r1, _080BD874 - ldr r2, _080BD878 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080BD834 - adds r2, r1, 0 - ldr r1, _080BD87C -_080BD81A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x17 - bhi _080BD834 - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080BD81A -_080BD834: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 24 - lsrs r4, r0, 24 - mov r8, r4 - ldr r7, _080BD874 - ldr r0, _080BD87C - adds r0, r7 - mov r9, r0 -_080BD850: - lsls r0, r4, 3 - adds r0, r4 - lsls r6, r0, 2 - adds r5, r6, r7 - ldr r1, _080BD87C - adds r0, r5, r1 - ldrb r0, [r0] - bl sub_80BFB54 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _080BD884 - ldr r2, _080BD880 - adds r0, r5, r2 - ldrb r0, [r0] - b _080BD890 - .align 2, 0 -_080BD874: .4byte gSaveBlock1 -_080BD878: .4byte 0x000027ec -_080BD87C: .4byte 0x00002738 -_080BD880: .4byte 0x00002739 -_080BD884: - mov r0, r9 - adds r1, r6, r0 - ldrh r0, [r1, 0x16] - cmp r0, 0 - bne _080BD898 - ldrb r0, [r1, 0x1] -_080BD890: - cmp r0, 0x1 - bne _080BD898 - adds r0, r4, 0 - b _080BD8AC -_080BD898: - cmp r4, 0 - bne _080BD8A0 - movs r4, 0x17 - b _080BD8A6 -_080BD8A0: - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080BD8A6: - cmp r4, r8 - bne _080BD850 - movs r0, 0xFF -_080BD8AC: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end special_0x44 - - thumb_func_start sub_80BD8B8 -sub_80BD8B8: @ 80BD8B8 - push {lr} - bl special_0x44 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - bne _080BD8CA - movs r0, 0xFF - b _080BD902 -_080BD8CA: - ldr r2, _080BD8F4 - ldr r3, _080BD8F8 - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _080BD900 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r2, _080BD8FC - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x29 - bne _080BD900 - bl sub_80BDA30 - lsls r0, 24 - lsrs r0, 24 - b _080BD902 - .align 2, 0 -_080BD8F4: .4byte gSaveBlock1 -_080BD8F8: .4byte 0x00002afc -_080BD8FC: .4byte 0x00002738 -_080BD900: - adds r0, r1, 0 -_080BD902: - pop {r1} - bx r1 - thumb_func_end sub_80BD8B8 - - thumb_func_start UpdateTVScreensOnMap -UpdateTVScreensOnMap: @ 80BD908 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, _080BD938 - bl FlagSet - bl CheckForBigMovieOrEmergencyNewsOnTV - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BD92C - cmp r0, 0x2 - beq _080BD97E - ldr r0, _080BD93C - ldrh r0, [r0, 0x4] - cmp r0, 0xD - bne _080BD940 -_080BD92C: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl SetTVMetatilesOnMap - b _080BD97E - .align 2, 0 -_080BD938: .4byte 0x00000831 -_080BD93C: .4byte gSaveBlock1 -_080BD940: - ldr r0, _080BD984 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080BD97E - bl sub_80BD8B8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080BD96E - bl sub_80BECA0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080BD96E - bl IsTVShowInSearchOfTrainersAiring - lsls r0, 24 - cmp r0, 0 - beq _080BD97E -_080BD96E: - ldr r0, _080BD988 - bl FlagReset - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl SetTVMetatilesOnMap -_080BD97E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BD984: .4byte 0x00000832 -_080BD988: .4byte 0x00000831 - thumb_func_end UpdateTVScreensOnMap - - thumb_func_start SetTVMetatilesOnMap -SetTVMetatilesOnMap: @ 80BD98C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r0 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - movs r5, 0 - cmp r5, r10 - bge _080BD9E0 - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1, 0 - mov r8, r2 - mov r1, r8 - orrs r1, r0 - mov r8, r1 -_080BD9B2: - movs r4, 0 - adds r7, r5, 0x1 - cmp r4, r9 - bge _080BD9DA - mov r0, r8 - lsls r6, r0, 16 -_080BD9BE: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileBehaviorAt - cmp r0, 0x86 - bne _080BD9D4 - adds r0, r4, 0 - adds r1, r5, 0 - lsrs r2, r6, 16 - bl MapGridSetMetatileIdAt -_080BD9D4: - adds r4, 0x1 - cmp r4, r9 - blt _080BD9BE -_080BD9DA: - adds r5, r7, 0 - cmp r5, r10 - blt _080BD9B2 -_080BD9E0: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end SetTVMetatilesOnMap - - thumb_func_start TurnOffTVScreen -TurnOffTVScreen: @ 80BD9F0 - push {lr} - ldr r1, _080BDA08 - ldr r0, [r1] - ldr r1, [r1, 0x4] - movs r2, 0x2 - bl SetTVMetatilesOnMap - bl DrawWholeMapView - pop {r0} - bx r0 - .align 2, 0 -_080BDA08: .4byte gUnknown_03004870 - thumb_func_end TurnOffTVScreen - - thumb_func_start sub_80BDA0C -sub_80BDA0C: @ 80BDA0C - ldr r2, _080BDA24 - ldr r0, _080BDA28 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _080BDA2C - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080BDA24: .4byte gSaveBlock1 -_080BDA28: .4byte gUnknown_0202E8CC -_080BDA2C: .4byte 0x00002738 - thumb_func_end sub_80BDA0C - - thumb_func_start sub_80BDA30 -sub_80BDA30: @ 80BDA30 - push {r4,lr} - movs r2, 0 - ldr r3, _080BDA5C -_080BDA36: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r3 - ldr r4, _080BDA60 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _080BDA64 - cmp r0, 0x29 - beq _080BDA64 - adds r4, 0x1 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080BDA64 - adds r0, r2, 0 - b _080BDA70 - .align 2, 0 -_080BDA5C: .4byte gSaveBlock1 -_080BDA60: .4byte 0x00002738 -_080BDA64: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x17 - bls _080BDA36 - movs r0, 0xFF -_080BDA70: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BDA30 - - thumb_func_start special_0x4a -special_0x4a: @ 80BDA78 - push {lr} - ldr r2, _080BDAA4 - ldrh r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BDAA8 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x29 - bne _080BDAAC - movs r3, 0xF1 - lsls r3, 2 - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _080BDAAC - bl sub_80BDA30 - lsls r0, 24 - lsrs r0, 24 - b _080BDAAE - .align 2, 0 -_080BDAA4: .4byte gUnknown_0202E8CC -_080BDAA8: .4byte gSaveBlock1 + 0x2738 -_080BDAAC: - ldrb r0, [r2] -_080BDAAE: - pop {r1} - bx r1 - thumb_func_end special_0x4a - - thumb_func_start sub_80BDAB4 -sub_80BDAB4: @ 80BDAB4 - push {r4,lr} - ldr r2, _080BDAF8 - ldr r1, _080BDAFC - adds r0, r2, r1 - movs r3, 0 - movs r1, 0 - strh r1, [r0] - ldr r4, _080BDB00 - adds r0, r2, r4 - strh r1, [r0] - adds r4, 0x2 - adds r0, r2, r4 - strh r1, [r0] - ldr r0, _080BDB04 - adds r1, r2, r0 - ldr r0, _080BDB08 - strh r0, [r1] - adds r4, 0x6 - adds r1, r2, r4 - movs r0, 0 - strb r0, [r1] - ldr r0, _080BDB0C - adds r1, r2, r0 - movs r0, 0 - strb r0, [r1] - ldr r1, _080BDB10 - adds r0, r2, r1 - strb r3, [r0] - subs r4, 0x1 - adds r2, r4 - strb r3, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BDAF8: .4byte gSaveBlock1 -_080BDAFC: .4byte 0x00002b10 -_080BDB00: .4byte 0x00002b12 -_080BDB04: .4byte 0x00002b16 -_080BDB08: .4byte 0x0000ffff -_080BDB0C: .4byte 0x00002b1b -_080BDB10: .4byte 0x00002b18 - thumb_func_end sub_80BDAB4 - - thumb_func_start GabbyAndTyBeforeInterview -GabbyAndTyBeforeInterview: @ 80BDB14 - push {r4,r5,lr} - ldr r2, _080BDB68 - ldr r3, _080BDB6C - ldrh r1, [r3, 0x6] - ldr r4, _080BDB70 - adds r0, r2, r4 - strh r1, [r0] - ldrh r1, [r3, 0x26] - adds r4, 0x2 - adds r0, r2, r4 - strh r1, [r0] - ldrh r1, [r3, 0x22] - adds r4, 0x2 - adds r0, r2, r4 - strh r1, [r0] - ldr r0, _080BDB74 - adds r4, r2, r0 - ldrb r1, [r4] - adds r0, r1, 0 - adds r5, r2, 0 - cmp r0, 0xFF - beq _080BDB44 - adds r0, r1, 0x1 - strb r0, [r4] -_080BDB44: - ldrb r0, [r3, 0x5] - lsls r0, 31 - ldr r1, _080BDB78 - adds r4, r5, r1 - lsrs r0, 31 - ldrb r1, [r4] - movs r2, 0x2 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r4] - ldrb r0, [r3] - cmp r0, 0 - beq _080BDB7C - movs r0, 0x2 - orrs r2, r0 - b _080BDB82 - .align 2, 0 -_080BDB68: .4byte gSaveBlock1 -_080BDB6C: .4byte gUnknown_030042E0 -_080BDB70: .4byte 0x00002b10 -_080BDB74: .4byte 0x00002b19 -_080BDB78: .4byte 0x00002b1a -_080BDB7C: - movs r0, 0x3 - negs r0, r0 - ands r2, r0 -_080BDB82: - strb r2, [r4] - ldrb r0, [r3, 0x3] - cmp r0, 0 - beq _080BDB9C - ldr r4, _080BDB98 - adds r0, r5, r4 - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _080BDBAA - .align 2, 0 -_080BDB98: .4byte 0x00002b1a -_080BDB9C: - ldr r0, _080BDBDC - adds r2, r5, r0 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080BDBAA: - ldrb r1, [r3, 0x5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080BDBE0 - movs r1, 0 - adds r0, r3, 0 - adds r0, 0x36 - ldrb r0, [r0] - cmp r0, 0 - bne _080BDBE0 -_080BDBC0: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xA - bhi _080BDBEC - adds r0, r3, 0 - adds r0, 0x36 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _080BDBC0 - ldr r4, _080BDBDC - adds r0, r5, r4 - b _080BDBE4 - .align 2, 0 -_080BDBDC: .4byte 0x00002b1a -_080BDBE0: - ldr r1, _080BDC08 - adds r0, r5, r1 -_080BDBE4: - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] -_080BDBEC: - bl TakeTVShowInSearchOfTrainersOffTheAir - ldr r0, _080BDC0C - ldr r4, _080BDC10 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0 - bne _080BDC02 - movs r0, 0x1 - bl FlagSet -_080BDC02: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BDC08: .4byte 0x00002b1a -_080BDC0C: .4byte gSaveBlock1 -_080BDC10: .4byte 0x00002b14 - thumb_func_end GabbyAndTyBeforeInterview - - thumb_func_start sub_80BDC14 -sub_80BDC14: @ 80BDC14 - push {r4-r6,lr} - ldr r4, _080BDC70 - ldr r0, _080BDC74 - adds r6, r4, r0 - ldrb r3, [r6] - lsls r1, r3, 31 - adds r0, 0x1 - adds r5, r4, r0 - lsrs r1, 31 - ldrb r2, [r5] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - movs r1, 0x2 - ands r1, r3 - movs r2, 0x3 - negs r2, r2 - ands r0, r2 - orrs r0, r1 - movs r1, 0x4 - ands r1, r3 - subs r2, 0x2 - ands r0, r2 - orrs r0, r1 - movs r1, 0x8 - ands r1, r3 - subs r2, 0x4 - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - movs r0, 0x10 - orrs r3, r0 - strb r3, [r6] - ldr r0, _080BDC78 - ldrb r0, [r0, 0x14] - ldr r1, _080BDC7C - adds r4, r1 - strb r0, [r4] - movs r0, 0x6 - bl sav12_xor_increment - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BDC70: .4byte gSaveBlock1 -_080BDC74: .4byte 0x00002b1a -_080BDC78: .4byte gMapHeader -_080BDC7C: .4byte 0x00002b18 - thumb_func_end sub_80BDC14 - - thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir -TakeTVShowInSearchOfTrainersOffTheAir: @ 80BDC80 - ldr r0, _080BDC94 - ldr r1, _080BDC98 - adds r0, r1 - ldrb r2, [r0] - movs r1, 0x11 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 -_080BDC94: .4byte gSaveBlock1 -_080BDC98: .4byte 0x00002b1a - thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir - - thumb_func_start GabbyAndTyGetBattleNum -GabbyAndTyGetBattleNum: @ 80BDC9C - push {lr} - ldr r0, _080BDCBC - ldr r2, _080BDCC0 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0x5 - bls _080BDCB8 - ldrb r0, [r1] - movs r1, 0x3 - bl __umodsi3 - adds r0, 0x6 - lsls r0, 24 - lsrs r0, 24 -_080BDCB8: - pop {r1} - bx r1 - .align 2, 0 -_080BDCBC: .4byte gSaveBlock1 -_080BDCC0: .4byte 0x00002b19 - thumb_func_end GabbyAndTyGetBattleNum - - thumb_func_start IsTVShowInSearchOfTrainersAiring -IsTVShowInSearchOfTrainersAiring: @ 80BDCC4 - ldr r0, _080BDCD4 - ldr r1, _080BDCD8 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 27 - lsrs r0, 31 - bx lr - .align 2, 0 -_080BDCD4: .4byte gSaveBlock1 -_080BDCD8: .4byte 0x00002b1a - thumb_func_end IsTVShowInSearchOfTrainersAiring - - thumb_func_start GabbyAndTyGetLastQuote -GabbyAndTyGetLastQuote: @ 80BDCDC - push {r4,r5,lr} - ldr r0, _080BDD00 - ldr r1, _080BDD04 - adds r4, r0, r1 - ldrh r0, [r4] - ldr r5, _080BDD08 - cmp r0, r5 - beq _080BDD10 - ldr r0, _080BDD0C - ldrh r1, [r4] - bl sub_80EB3FC - ldrh r1, [r4] - adds r0, r5, 0 - orrs r0, r1 - strh r0, [r4] - movs r0, 0x1 - b _080BDD12 - .align 2, 0 -_080BDD00: .4byte gSaveBlock1 -_080BDD04: .4byte 0x00002b16 -_080BDD08: .4byte 0x0000ffff -_080BDD0C: .4byte gStringVar1 -_080BDD10: - movs r0, 0 -_080BDD12: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GabbyAndTyGetLastQuote - - thumb_func_start sub_80BDD18 -sub_80BDD18: @ 80BDD18 - push {lr} - ldr r0, _080BDD30 - ldr r1, _080BDD34 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080BDD38 - movs r0, 0x1 - b _080BDD5E - .align 2, 0 -_080BDD30: .4byte gSaveBlock1 -_080BDD34: .4byte 0x00002b1b -_080BDD38: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080BDD44 - movs r0, 0x2 - b _080BDD5E -_080BDD44: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080BDD50 - movs r0, 0x3 - b _080BDD5E -_080BDD50: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080BDD5C - movs r0, 0 - b _080BDD5E -_080BDD5C: - movs r0, 0x4 -_080BDD5E: - pop {r1} - bx r1 - thumb_func_end sub_80BDD18 - - thumb_func_start GabbyAndTySetScriptVarsToFieldObjectLocalIds -GabbyAndTySetScriptVarsToFieldObjectLocalIds: @ 80BDD64 - push {lr} - bl GabbyAndTyGetBattleNum - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x7 - bhi _080BDE3C - lsls r0, 2 - ldr r1, _080BDD80 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BDD80: .4byte _080BDD84 - .align 2, 0 -_080BDD84: - .4byte _080BDDA4 - .4byte _080BDDB8 - .4byte _080BDDCC - .4byte _080BDDE0 - .4byte _080BDDF4 - .4byte _080BDE08 - .4byte _080BDE1C - .4byte _080BDE30 -_080BDDA4: - ldr r1, _080BDDB0 - movs r0, 0xE - strh r0, [r1] - ldr r1, _080BDDB4 - movs r0, 0xD - b _080BDE3A - .align 2, 0 -_080BDDB0: .4byte gUnknown_0202E8CC -_080BDDB4: .4byte gUnknown_0202E8CE -_080BDDB8: - ldr r1, _080BDDC4 - movs r0, 0x5 - strh r0, [r1] - ldr r1, _080BDDC8 - movs r0, 0x6 - b _080BDE3A - .align 2, 0 -_080BDDC4: .4byte gUnknown_0202E8CC -_080BDDC8: .4byte gUnknown_0202E8CE -_080BDDCC: - ldr r1, _080BDDD8 - movs r0, 0x12 - strh r0, [r1] - ldr r1, _080BDDDC - movs r0, 0x11 - b _080BDE3A - .align 2, 0 -_080BDDD8: .4byte gUnknown_0202E8CC -_080BDDDC: .4byte gUnknown_0202E8CE -_080BDDE0: - ldr r1, _080BDDEC - movs r0, 0x15 - strh r0, [r1] - ldr r1, _080BDDF0 - movs r0, 0x16 - b _080BDE3A - .align 2, 0 -_080BDDEC: .4byte gUnknown_0202E8CC -_080BDDF0: .4byte gUnknown_0202E8CE -_080BDDF4: - ldr r1, _080BDE00 - movs r0, 0x8 - strh r0, [r1] - ldr r1, _080BDE04 - movs r0, 0x9 - b _080BDE3A - .align 2, 0 -_080BDE00: .4byte gUnknown_0202E8CC -_080BDE04: .4byte gUnknown_0202E8CE -_080BDE08: - ldr r1, _080BDE14 - movs r0, 0x13 - strh r0, [r1] - ldr r1, _080BDE18 - movs r0, 0x14 - b _080BDE3A - .align 2, 0 -_080BDE14: .4byte gUnknown_0202E8CC -_080BDE18: .4byte gUnknown_0202E8CE -_080BDE1C: - ldr r1, _080BDE28 - movs r0, 0x17 - strh r0, [r1] - ldr r1, _080BDE2C - movs r0, 0x18 - b _080BDE3A - .align 2, 0 -_080BDE28: .4byte gUnknown_0202E8CC -_080BDE2C: .4byte gUnknown_0202E8CE -_080BDE30: - ldr r1, _080BDE40 - movs r0, 0xA - strh r0, [r1] - ldr r1, _080BDE44 - movs r0, 0xB -_080BDE3A: - strh r0, [r1] -_080BDE3C: - pop {r0} - bx r0 - .align 2, 0 -_080BDE40: .4byte gUnknown_0202E8CC -_080BDE44: .4byte gUnknown_0202E8CE - thumb_func_end GabbyAndTySetScriptVarsToFieldObjectLocalIds - - thumb_func_start sub_80BDE48 -sub_80BDE48: @ 80BDE48 - push {lr} - ldr r0, _080BDE60 - ldrh r0, [r0] - subs r0, 0x1 - cmp r0, 0x6 - bhi _080BDEA6 - lsls r0, 2 - ldr r1, _080BDE64 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BDE60: .4byte gUnknown_0202E8CE -_080BDE64: .4byte _080BDE68 - .align 2, 0 -_080BDE68: - .4byte _080BDE84 - .4byte _080BDE8A - .4byte _080BDE90 - .4byte _080BDE96 - .4byte _080BDEA6 - .4byte _080BDE9C - .4byte _080BDEA2 -_080BDE84: - bl sub_80BE5FC - b _080BDEA6 -_080BDE8A: - bl sub_80BE65C - b _080BDEA6 -_080BDE90: - bl sub_80BE6A0 - b _080BDEA6 -_080BDE96: - bl nullsub_21 - b _080BDEA6 -_080BDE9C: - bl sub_80BE188 - b _080BDEA6 -_080BDEA2: - bl sub_80BE320 -_080BDEA6: - pop {r0} - bx r0 - thumb_func_end sub_80BDE48 - - thumb_func_start sub_80BDEAC -sub_80BDEAC: @ 80BDEAC - push {lr} - adds r1, r0, 0 - movs r2, 0x2 - ldrb r0, [r1] - cmp r0, 0xFC - bne _080BDEC0 - ldrb r0, [r1, 0x1] - cmp r0, 0x15 - bne _080BDEC0 - movs r2, 0x1 -_080BDEC0: - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_80BDEAC - - thumb_func_start sub_80BDEC8 -sub_80BDEC8: @ 80BDEC8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - bl sub_80BEB20 - bl sub_80BE778 - ldr r5, _080BDEE8 - ldrh r0, [r5, 0x28] - cmp r0, 0 - bne _080BDEEC - bl sub_80BE074 - b _080BE012 - .align 2, 0 -_080BDEE8: .4byte gUnknown_030042E0 -_080BDEEC: - bl sub_80BE028 - ldr r0, _080BDF98 - bl sub_80BF77C - lsls r0, 24 - cmp r0, 0 - beq _080BDEFE - b _080BE012 -_080BDEFE: - ldrh r1, [r5, 0x28] - movs r0, 0xB - muls r0, r1 - ldr r1, _080BDF9C - adds r0, r1 - adds r1, r5, 0 - adds r1, 0x2A - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - bne _080BDF16 - b _080BE012 -_080BDF16: - ldr r0, _080BDFA0 - bl sub_80BF74C - ldr r1, _080BDFA4 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BE012 - movs r0, 0x15 - bl sub_80BF1B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BE012 - movs r2, 0 - adds r7, r5, 0 - adds r1, r7, 0 - adds r1, 0x36 -_080BDF42: - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xA - bls _080BDF42 - cmp r4, 0 - bne _080BDF64 - ldrb r1, [r7, 0x5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BE012 -_080BDF64: - movs r4, 0 - ldr r0, _080BDFA4 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BDFA0 - adds r5, r0, r1 - movs r0, 0x15 - strb r0, [r5] - strb r4, [r5, 0x1] - ldrb r1, [r7, 0x5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BDFAC - movs r4, 0x1 - movs r0, 0x1 - adds r3, r5, 0 - adds r3, 0x13 - ldr r1, _080BDFA8 - mov r8, r1 - adds r6, r5, 0x4 - b _080BDFDE - .align 2, 0 -_080BDF98: .4byte 0x0000ffff -_080BDF9C: .4byte gSpeciesNames -_080BDFA0: .4byte gSaveBlock1 + 0x2738 -_080BDFA4: .4byte gUnknown_03005D38 -_080BDFA8: .4byte gSaveBlock2 -_080BDFAC: - movs r2, 0 - ldr r0, _080BE01C - mov r12, r0 - adds r3, r5, 0 - adds r3, 0x13 - ldr r1, _080BE020 - mov r8, r1 - adds r6, r5, 0x4 - adds r1, r7, 0 - adds r1, 0x36 -_080BDFC0: - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xA - bls _080BDFC0 - cmp r4, 0xFF - bls _080BDFDA - movs r4, 0xFF -_080BDFDA: - mov r1, r12 - ldrh r0, [r1] -_080BDFDE: - strb r4, [r5, 0x12] - strb r0, [r5, 0xF] - adds r0, r3, 0 - mov r1, r8 - bl StringCopy - ldr r4, _080BE024 - adds r0, r6, 0 - adds r1, r4, 0 - bl StringCopy - subs r4, 0x2A - ldrh r0, [r4, 0x28] - strh r0, [r5, 0x10] - adds r0, r5, 0 - bl sub_80BE138 - movs r0, 0x2 - strb r0, [r5, 0x2] - adds r0, r6, 0 - bl sub_80BDEAC - strb r0, [r5, 0x3] - adds r0, r6, 0 - bl SkipExtCtrlCodes -_080BE012: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BE01C: .4byte gUnknown_02024C04 -_080BE020: .4byte gSaveBlock2 -_080BE024: .4byte gUnknown_0300430A - thumb_func_end sub_80BDEC8 - - thumb_func_start sub_80BE028 -sub_80BE028: @ 80BE028 - push {r4,lr} - ldr r4, _080BE064 - ldrb r0, [r4] - cmp r0, 0x19 - beq _080BE048 - ldr r1, _080BE068 - adds r0, r4, r1 - movs r1, 0x18 - bl sub_80BF55C - movs r0, 0x5 - bl sub_8053108 - strh r0, [r4, 0x6] - movs r0, 0x19 - strb r0, [r4] -_080BE048: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - ldr r1, _080BE06C - ldrh r0, [r1, 0x28] - strh r0, [r4, 0x4] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x8] - ldr r0, _080BE070 - ldrb r0, [r0, 0x14] - strb r0, [r4, 0xA] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BE064: .4byte gSaveBlock1 + 0x2A98 -_080BE068: .4byte 0xfffffca0 -_080BE06C: .4byte gUnknown_030042E0 -_080BE070: .4byte gMapHeader - thumb_func_end sub_80BE028 - - thumb_func_start sub_80BE074 -sub_80BE074: @ 80BE074 - push {r4-r7,lr} - ldr r0, _080BE118 - bl sub_80BF77C - lsls r0, 24 - cmp r0, 0 - bne _080BE112 - movs r1, 0 - movs r5, 0 - ldr r2, _080BE11C -_080BE088: - adds r0, r1, r2 - ldrb r0, [r0] - adds r0, r5, r0 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xA - bls _080BE088 - cmp r5, 0xFF - bls _080BE0A2 - movs r5, 0xFF -_080BE0A2: - cmp r5, 0x2 - bls _080BE112 - ldr r7, _080BE120 - ldrb r0, [r7] - cmp r0, 0x1 - bne _080BE112 - ldr r6, _080BE124 - adds r0, r6, 0 - bl sub_80BF74C - ldr r4, _080BE128 - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BE112 - movs r0, 0x17 - bl sub_80BF1B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BE112 - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - adds r4, r6 - movs r1, 0 - movs r0, 0x17 - strb r0, [r4] - strb r1, [r4, 0x1] - ldr r1, _080BE12C - ldrh r0, [r1, 0x6] - strh r0, [r4, 0xC] - ldrh r0, [r1, 0x20] - strh r0, [r4, 0xE] - strb r5, [r4, 0x10] - ldrb r0, [r7] - strb r0, [r4, 0x11] - ldr r0, _080BE130 - ldrb r0, [r0, 0x14] - strb r0, [r4, 0x12] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, _080BE134 - bl StringCopy - adds r0, r4, 0 - bl sub_80BE138 - movs r0, 0x2 - strb r0, [r4, 0x2] -_080BE112: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BE118: .4byte 0x0000ffff -_080BE11C: .4byte gUnknown_03004316 -_080BE120: .4byte gUnknown_02024D26 -_080BE124: .4byte gSaveBlock1 + 0x2738 -_080BE128: .4byte gUnknown_03005D38 -_080BE12C: .4byte gUnknown_030042E0 -_080BE130: .4byte gMapHeader -_080BE134: .4byte gSaveBlock2 - thumb_func_end sub_80BE074 - - thumb_func_start sub_80BE138 -sub_80BE138: @ 80BE138 - push {r4,lr} - adds r4, r0, 0 - bl sub_80BFB94 - strb r0, [r4, 0x1E] - lsrs r2, r0, 8 - strb r2, [r4, 0x1F] - adds r1, r4, 0 - adds r1, 0x20 - strb r0, [r1] - adds r1, 0x1 - strb r2, [r1] - adds r1, 0x1 - strb r0, [r1] - adds r0, r4, 0 - adds r0, 0x23 - strb r2, [r0] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80BE138 - - thumb_func_start sub_80BE160 -sub_80BE160: @ 80BE160 - push {r4,lr} - adds r4, r0, 0 - bl sub_80BFB94 - adds r1, r4, 0 - adds r1, 0x20 - strb r0, [r1] - lsrs r1, r0, 8 - adds r2, r4, 0 - adds r2, 0x21 - strb r1, [r2] - adds r2, 0x1 - strb r0, [r2] - adds r0, r4, 0 - adds r0, 0x23 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80BE160 - - thumb_func_start sub_80BE188 -sub_80BE188: @ 80BE188 - push {r4-r6,lr} - ldr r6, _080BE22C - ldrb r1, [r6] - cmp r1, 0x6 - bne _080BE224 - ldr r0, _080BE230 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r2, _080BE234 - adds r0, r6, r2 - adds r4, r0 - strb r1, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - ldrh r0, [r6, 0x2] - strh r0, [r4, 0x2] - adds r0, r4, 0 - adds r0, 0x16 - ldr r1, _080BE238 - bl StringCopy - adds r5, r4, 0 - adds r5, 0x8 - adds r1, r6, 0 - adds r1, 0x8 - adds r0, r5, 0 - bl StringCopy - ldrb r0, [r6, 0x13] - lsls r0, 29 - lsrs r0, 29 - ldrb r2, [r4, 0x13] - movs r3, 0x8 - negs r3, r3 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x13] - ldrb r2, [r6, 0x13] - movs r0, 0x18 - ands r0, r2 - movs r2, 0x19 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, 0x13] - ldrh r0, [r6, 0x14] - strh r0, [r4, 0x14] - ldrb r0, [r6, 0x13] - movs r1, 0x60 - ands r1, r0 - movs r0, 0x61 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x13] - ldrb r1, [r6, 0x13] - lsls r1, 29 - lsrs r1, 29 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, 0x13] - adds r0, r4, 0 - bl sub_80BE160 - movs r0, 0x2 - strb r0, [r4, 0x1E] - adds r0, r5, 0 - bl sub_80BDEAC - strb r0, [r4, 0x1F] - adds r0, r5, 0 - bl SkipExtCtrlCodes -_080BE224: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BE22C: .4byte gSaveBlock1 + 0x2A98 -_080BE230: .4byte gUnknown_03005D38 -_080BE234: .4byte 0xfffffca0 -_080BE238: .4byte gSaveBlock2 - thumb_func_end sub_80BE188 - - thumb_func_start sub_80BE23C -sub_80BE23C: @ 80BE23C - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - ldr r4, _080BE278 - bl sub_80BF484 - ldr r0, _080BE27C - adds r5, r4, r0 - adds r0, r5, 0 - bl sub_80BF720 - ldr r1, _080BE280 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BE270 - adds r0, r5, 0 - movs r1, 0x18 - bl sub_80BF55C - strh r6, [r4, 0x14] - movs r0, 0x6 - strb r0, [r4] -_080BE270: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BE278: .4byte gSaveBlock1 + 0x2A98 -_080BE27C: .4byte 0xfffffca0 -_080BE280: .4byte gUnknown_03005D38 - thumb_func_end sub_80BE23C - - thumb_func_start sub_80BE284 -sub_80BE284: @ 80BE284 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r7, _080BE304 - ldr r1, _080BE308 - adds r0, r7, r1 - bl sub_80BF720 - ldr r1, _080BE30C - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BE2FE - movs r3, 0x3 - adds r1, r4, 0 - ands r1, r3 - lsls r1, 5 - ldrb r2, [r7, 0x13] - movs r0, 0x61 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - ldr r1, _080BE310 - ldrb r2, [r1] - movs r1, 0x7 - ands r1, r2 - movs r2, 0x8 - negs r2, r2 - ands r0, r2 - orrs r0, r1 - ldr r1, _080BE314 - ldrb r1, [r1] - ands r3, r1 - lsls r3, 3 - movs r1, 0x19 - negs r1, r1 - ands r0, r1 - orrs r0, r3 - strb r0, [r7, 0x13] - ldr r6, _080BE318 - ldrb r0, [r6] - movs r5, 0x64 - muls r0, r5 - ldr r4, _080BE31C - adds r0, r4 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x2] - ldrb r0, [r6] - muls r0, r5 - adds r0, r4 - adds r2, r7, 0 - adds r2, 0x8 - movs r1, 0x2 - bl GetMonData -_080BE2FE: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BE304: .4byte gSaveBlock1 + 0x2A98 -_080BE308: .4byte 0xfffffca0 -_080BE30C: .4byte gUnknown_03005D38 -_080BE310: .4byte gUnknown_0203869C -_080BE314: .4byte gUnknown_0203869E -_080BE318: .4byte gUnknown_02038694 -_080BE31C: .4byte gPlayerParty - thumb_func_end sub_80BE284 - - thumb_func_start sub_80BE320 -sub_80BE320: @ 80BE320 - push {r4-r6,lr} - ldr r0, _080BE384 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BE388 - adds r6, r0, r1 - movs r0, 0x7 - strb r0, [r6] - movs r0, 0x1 - strb r0, [r6, 0x1] - adds r0, r6, 0x2 - ldr r4, _080BE38C - adds r1, r4, 0 - bl StringCopy - adds r0, r6, 0 - adds r0, 0xC - ldr r2, _080BE390 - adds r1, r4, r2 - bl StringCopy - movs r1, 0x90 - lsls r1, 3 - adds r0, r4, r1 - ldrh r0, [r0] - strh r0, [r6, 0xA] - ldr r2, _080BE394 - adds r0, r4, r2 - ldrh r0, [r0] - strh r0, [r6, 0x14] - movs r0, 0xAF - lsls r0, 3 - adds r5, r4, r0 - ldrb r0, [r5] - bl sub_8135D3C - strh r0, [r6, 0x16] - ldr r1, _080BE398 - adds r4, r1 - ldrb r0, [r4] - strb r0, [r6, 0x1C] - ldrb r0, [r5] - cmp r0, 0 - bne _080BE39C - movs r0, 0x32 - b _080BE39E - .align 2, 0 -_080BE384: .4byte gUnknown_03005D38 -_080BE388: .4byte gSaveBlock1 + 0x2738 -_080BE38C: .4byte gSaveBlock2 -_080BE390: .4byte 0x00000484 -_080BE394: .4byte 0x00000482 -_080BE398: .4byte 0x00000555 -_080BE39C: - movs r0, 0x64 -_080BE39E: - strb r0, [r6, 0x1A] - ldr r0, _080BE3B8 - ldrh r0, [r0] - strb r0, [r6, 0x1B] - adds r0, r6, 0 - bl sub_80BE160 - movs r0, 0x2 - strb r0, [r6, 0x1D] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BE3B8: .4byte gUnknown_0202E8CC - thumb_func_end sub_80BE320 - - thumb_func_start sub_80BE3BC -sub_80BE3BC: @ 80BE3BC - push {r4-r7,lr} - ldr r0, _080BE460 - bl sub_80BF77C - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080BE458 - ldr r6, _080BE464 - adds r0, r6, 0 - bl sub_80BF74C - ldr r5, _080BE468 - strb r0, [r5] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BE458 - movs r0, 0x16 - bl sub_80BF1B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BE458 - bl sub_80BF20C - ldr r2, _080BE46C - ldrh r0, [r2, 0x2] - cmp r0, 0x13 - bls _080BE458 - movs r1, 0 - ldrsb r1, [r5, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r5, r0, r6 - movs r0, 0x16 - strb r0, [r5] - strb r4, [r5, 0x1] - ldr r0, _080BE470 - ldrb r0, [r0, 0x14] - strb r0, [r5, 0x12] - movs r4, 0 - adds r7, r5, 0x6 - mov r12, r2 - adds r6, r5, 0 - adds r6, 0xC -_080BE420: - lsls r2, r4, 1 - adds r3, r7, r2 - lsls r1, r4, 2 - add r1, r12 - ldrh r0, [r1] - strh r0, [r3] - adds r2, r6, r2 - ldrh r0, [r1, 0x2] - strh r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _080BE420 - movs r0, 0x1 - bl GetPriceReduction - strb r0, [r5, 0x2] - adds r0, r5, 0 - adds r0, 0x13 - ldr r1, _080BE474 - bl StringCopy - adds r0, r5, 0 - bl sub_80BE138 - movs r0, 0x2 - strb r0, [r5, 0x3] -_080BE458: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BE460: .4byte 0x00005555 -_080BE464: .4byte gSaveBlock1 + 0x2738 -_080BE468: .4byte gUnknown_03005D38 -_080BE46C: .4byte gUnknown_02038724 -_080BE470: .4byte gMapHeader -_080BE474: .4byte gSaveBlock2 - thumb_func_end sub_80BE3BC - - thumb_func_start sub_80BE478 -sub_80BE478: @ 80BE478 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - bl sub_80BF478 - ldr r0, _080BE554 - ldrh r0, [r0] - cmp r0, 0x1 - beq _080BE548 - ldr r0, _080BE558 - mov r8, r0 - ldrh r0, [r0] - movs r7, 0x64 - muls r0, r7 - ldr r6, _080BE55C - adds r0, r6 - ldr r4, _080BE560 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - ldr r1, _080BE564 - mov r9, r1 - mov r0, r9 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080BE548 - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080BE548 - ldr r0, _080BE568 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080BE56C - adds r4, r0 - movs r0, 0x5 - strb r0, [r4] - movs r5, 0x1 - strb r5, [r4, 0x1] - mov r1, r8 - ldrh r0, [r1] - muls r0, r7 - adds r0, r6 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r4, 0x2] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - strb r0, [r4, 0x1A] - bl Random - lsls r0, 16 - lsrs r0, 16 - ands r0, r5 - strb r0, [r4, 0x1B] - ldrh r0, [r4, 0x2] - bl sub_80BF674 - strh r0, [r4, 0x1C] - adds r0, r4, 0 - adds r0, 0xF - mov r1, r9 - bl StringCopy - mov r1, r8 - ldrh r0, [r1] - muls r0, r7 - adds r0, r6 - adds r5, r4, 0x4 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - adds r0, r4, 0 - bl sub_80BE160 - movs r0, 0x2 - strb r0, [r4, 0x1E] - adds r0, r5, 0 - bl sub_80BDEAC - strb r0, [r4, 0x1F] - adds r0, r5, 0 - bl SkipExtCtrlCodes -_080BE548: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BE554: .4byte gScriptResult -_080BE558: .4byte gUnknown_0202E8CC -_080BE55C: .4byte gPlayerParty -_080BE560: .4byte gStringVar1 -_080BE564: .4byte gSaveBlock2 -_080BE568: .4byte gUnknown_03005D38 -_080BE56C: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80BE478 - - thumb_func_start StartMassOutbreak -StartMassOutbreak: @ 80BE570 - push {r4,lr} - ldr r0, _080BE5F0 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r2, _080BE5F4 - adds r0, r2 - ldrh r3, [r0, 0xC] - movs r4, 0xF1 - lsls r4, 2 - adds r1, r2, r4 - strh r3, [r1] - ldrb r3, [r0, 0x10] - adds r4, 0x2 - adds r1, r2, r4 - strb r3, [r1] - ldrb r3, [r0, 0x11] - adds r4, 0x1 - adds r1, r2, r4 - strb r3, [r1] - ldrb r3, [r0, 0x14] - adds r4, 0x1 - adds r1, r2, r4 - strb r3, [r1] - ldrb r3, [r0, 0x2] - adds r4, 0x1 - adds r1, r2, r4 - strb r3, [r1] - ldrh r3, [r0, 0xE] - adds r4, 0x1 - adds r1, r2, r4 - strh r3, [r1] - ldrh r3, [r0, 0x4] - adds r4, 0x2 - adds r1, r2, r4 - strh r3, [r1] - ldrh r3, [r0, 0x6] - adds r4, 0x2 - adds r1, r2, r4 - strh r3, [r1] - ldrh r3, [r0, 0x8] - adds r4, 0x2 - adds r1, r2, r4 - strh r3, [r1] - ldrh r3, [r0, 0xA] - adds r4, 0x2 - adds r1, r2, r4 - strh r3, [r1] - ldrb r3, [r0, 0x3] - adds r4, 0x2 - adds r1, r2, r4 - strb r3, [r1] - ldrb r1, [r0, 0x13] - ldr r3, _080BE5F8 - adds r0, r2, r3 - strb r1, [r0] - adds r4, 0x2 - adds r2, r4 - movs r0, 0x2 - strh r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BE5F0: .4byte gUnknown_0202E8CC -_080BE5F4: .4byte gSaveBlock1 + 0x2738 -_080BE5F8: .4byte 0x000003d5 - thumb_func_end StartMassOutbreak - - thumb_func_start sub_80BE5FC -sub_80BE5FC: @ 80BE5FC - push {r4,lr} - ldr r0, _080BE64C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080BE650 - adds r4, r0 - movs r0, 0x1 - strb r0, [r4] - strb r0, [r4, 0x1] - adds r0, r4, 0 - adds r0, 0x10 - ldr r1, _080BE654 - bl StringCopy - bl sub_810F87C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080BE658 - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r4, 0x2] - adds r0, r4, 0 - bl sub_80BE160 - movs r0, 0x2 - strb r0, [r4, 0x18] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BE64C: .4byte gUnknown_03005D38 -_080BE650: .4byte gSaveBlock1 + 0x2738 -_080BE654: .4byte gSaveBlock2 -_080BE658: .4byte gPlayerParty - thumb_func_end sub_80BE5FC - - thumb_func_start sub_80BE65C -sub_80BE65C: @ 80BE65C - push {r4-r6,lr} - ldr r0, _080BE694 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080BE698 - adds r4, r0 - movs r6, 0 - movs r5, 0x2 - strb r5, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - adds r0, 0x10 - ldr r1, _080BE69C - bl StringCopy - strh r6, [r4, 0x2] - adds r0, r4, 0 - bl sub_80BE160 - strb r5, [r4, 0x18] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BE694: .4byte gUnknown_03005D38 -_080BE698: .4byte gSaveBlock1 + 0x2738 -_080BE69C: .4byte gSaveBlock2 - thumb_func_end sub_80BE65C - - thumb_func_start sub_80BE6A0 -sub_80BE6A0: @ 80BE6A0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, _080BE760 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080BE764 - adds r4, r0 - movs r0, 0x3 - strb r0, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - bl sub_810F87C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r6, _080BE768 - adds r0, r6 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - lsrs r0, 4 - movs r1, 0xF - ands r0, r1 - ldrb r2, [r4, 0x4] - movs r1, 0x10 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x4] - ldr r0, _080BE76C - ldrb r0, [r0] - lsls r0, 4 - movs r2, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x4] - adds r0, r4, 0x5 - ldr r1, _080BE770 - bl StringCopy - bl sub_810F87C - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - adds r5, r4, 0 - adds r5, 0x10 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - bl sub_810F87C - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r4, 0x2] - adds r0, r4, 0 - bl sub_80BE160 - movs r0, 0x2 - strb r0, [r4, 0xD] - adds r0, r5, 0 - bl sub_80BDEAC - strb r0, [r4, 0xE] - adds r0, r5, 0 - bl SkipExtCtrlCodes - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BE760: .4byte gUnknown_03005D38 -_080BE764: .4byte gSaveBlock1 + 0x2738 -_080BE768: .4byte gPlayerParty -_080BE76C: .4byte gUnknown_0202E8D2 -_080BE770: .4byte gSaveBlock2 - thumb_func_end sub_80BE6A0 - - thumb_func_start nullsub_21 -nullsub_21: @ 80BE774 - bx lr - thumb_func_end nullsub_21 - - thumb_func_start sub_80BE778 -sub_80BE778: @ 80BE778 - push {r4-r6,lr} - ldr r0, _080BE83C - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080BE836 - movs r1, 0 - ldr r3, _080BE840 - ldr r2, _080BE844 -_080BE78C: - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x29 - beq _080BE836 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x17 - bls _080BE78C - ldr r0, _080BE848 - bl sub_80BF77C - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080BE836 - ldr r6, _080BE84C - adds r0, r6, 0 - bl sub_80BF720 - ldr r4, _080BE850 - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BE836 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r4, r1, 3 - adds r4, r1 - lsls r4, 2 - adds r4, r6 - movs r1, 0x29 - strb r1, [r4] - movs r3, 0x1 - strb r3, [r4, 0x1] - ldr r2, _080BE854 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0xA] - strb r0, [r4, 0x14] - strb r5, [r4, 0x2] - strb r5, [r4, 0x3] - ldrh r0, [r1] - movs r2, 0 - strh r0, [r4, 0xC] - strh r5, [r4, 0xE] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x4] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x6] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x8] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0xA] - ldrb r0, [r1, 0xB] - strb r0, [r4, 0x10] - strb r2, [r4, 0x11] - strb r2, [r4, 0x12] - movs r0, 0x32 - strb r0, [r4, 0x13] - strb r2, [r4, 0x15] - strh r3, [r4, 0x16] - adds r0, r4, 0 - bl sub_80BE160 - movs r0, 0x2 - strb r0, [r4, 0x18] -_080BE836: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BE83C: .4byte 0x00000804 -_080BE840: .4byte gSaveBlock1 -_080BE844: .4byte 0x00002738 -_080BE848: .4byte 0x00000147 -_080BE84C: .4byte gSaveBlock1 + 0x2738 -_080BE850: .4byte gUnknown_03005D38 -_080BE854: .4byte gUnknown_083D13F8 - thumb_func_end sub_80BE778 - - thumb_func_start EndMassOutbreak -EndMassOutbreak: @ 80BE858 - push {r4,lr} - ldr r0, _080BE8B4 - ldr r2, _080BE8B8 - adds r1, r0, r2 - movs r3, 0 - movs r2, 0 - strh r2, [r1] - ldr r4, _080BE8BC - adds r1, r0, r4 - strb r3, [r1] - adds r4, 0x1 - adds r1, r0, r4 - strb r3, [r1] - adds r4, 0x1 - adds r1, r0, r4 - strb r3, [r1] - adds r4, 0x1 - adds r1, r0, r4 - strb r3, [r1] - adds r4, 0x1 - adds r1, r0, r4 - strh r2, [r1] - adds r4, 0x2 - adds r1, r0, r4 - strh r2, [r1] - adds r4, 0x2 - adds r1, r0, r4 - strh r2, [r1] - adds r4, 0x2 - adds r1, r0, r4 - strh r2, [r1] - adds r4, 0x2 - adds r1, r0, r4 - strh r2, [r1] - adds r4, 0x2 - adds r1, r0, r4 - strb r3, [r1] - adds r4, 0x1 - adds r1, r0, r4 - strb r3, [r1] - ldr r1, _080BE8C0 - adds r0, r1 - strh r2, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BE8B4: .4byte gSaveBlock1 -_080BE8B8: .4byte 0x00002afc -_080BE8BC: .4byte 0x00002afe -_080BE8C0: .4byte 0x00002b0e - thumb_func_end EndMassOutbreak - - thumb_func_start sub_80BE8C4 -sub_80BE8C4: @ 80BE8C4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_80BE8EC - adds r0, r4, 0 - bl UpdateMassOutbreakTimeLeft - adds r0, r4, 0 - bl sub_80BEE84 - adds r0, r4, 0 - bl sub_80BEA5C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80BE8C4 - - thumb_func_start sub_80BE8EC -sub_80BE8EC: @ 80BE8EC - push {r4-r7,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _080BE930 - ldr r2, _080BE934 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, 0 - bne _080BE94C - movs r3, 0 - adds r5, r1, 0 - ldr r7, _080BE938 - adds r6, r5, r7 -_080BE906: - lsls r0, r3, 3 - adds r0, r3 - lsls r2, r0, 2 - adds r1, r2, r5 - ldr r7, _080BE938 - adds r0, r1, r7 - ldrb r0, [r0] - cmp r0, 0x29 - bne _080BE942 - adds r7, 0x1 - adds r0, r1, r7 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080BE942 - adds r1, r2, r6 - ldrh r0, [r1, 0x16] - cmp r0, r4 - bcs _080BE93C - movs r0, 0 - strh r0, [r1, 0x16] - b _080BE94C - .align 2, 0 -_080BE930: .4byte gSaveBlock1 -_080BE934: .4byte 0x00002afc -_080BE938: .4byte 0x00002738 -_080BE93C: - subs r0, r4 - strh r0, [r1, 0x16] - b _080BE94C -_080BE942: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x17 - bls _080BE906 -_080BE94C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BE8EC - - thumb_func_start UpdateMassOutbreakTimeLeft -UpdateMassOutbreakTimeLeft: @ 80BE954 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _080BE96C - ldr r3, _080BE970 - adds r2, r0, r3 - ldrh r0, [r2] - cmp r0, r1 - bhi _080BE974 - bl EndMassOutbreak - b _080BE978 - .align 2, 0 -_080BE96C: .4byte gSaveBlock1 -_080BE970: .4byte 0x00002b0e -_080BE974: - subs r0, r1 - strh r0, [r2] -_080BE978: - pop {r0} - bx r0 - thumb_func_end UpdateMassOutbreakTimeLeft - - thumb_func_start sub_80BE97C -sub_80BE97C: @ 80BE97C - push {r4,lr} - lsls r0, 24 - cmp r0, 0 - beq _080BE9A4 - ldr r4, _080BE9A0 - ldrh r0, [r4] - lsrs r0, 8 - cmp r0, 0x4 - bls _080BE992 - bl sub_80BE9D4 -_080BE992: - ldrb r0, [r4] - strh r0, [r4] - cmp r0, 0xFF - beq _080BE9C8 - adds r0, 0x1 - b _080BE9C6 - .align 2, 0 -_080BE9A0: .4byte gUnknown_020387E2 -_080BE9A4: - ldr r4, _080BE9D0 - ldrb r0, [r4] - cmp r0, 0x4 - bls _080BE9B0 - bl sub_80BE9D4 -_080BE9B0: - ldrh r0, [r4] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - strh r1, [r4] - lsrs r0, r1, 8 - cmp r0, 0xFF - beq _080BE9C8 - movs r2, 0x80 - lsls r2, 1 - adds r0, r1, r2 -_080BE9C6: - strh r0, [r4] -_080BE9C8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BE9D0: .4byte gUnknown_020387E2 - thumb_func_end sub_80BE97C - - thumb_func_start sub_80BE9D4 -sub_80BE9D4: @ 80BE9D4 - push {r4,r5,lr} - ldr r5, _080BEA3C - adds r0, r5, 0 - bl sub_80BF74C - ldr r4, _080BEA40 - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BEA36 - movs r0, 0x18 - bl sub_80BF1B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BEA36 - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - adds r4, r5 - movs r1, 0 - movs r0, 0x18 - strb r0, [r4] - strb r1, [r4, 0x1] - ldr r1, _080BEA44 - ldrh r0, [r1] - strb r0, [r4, 0x2] - ldrh r0, [r1] - lsrs r0, 8 - strb r0, [r4, 0x3] - ldr r0, _080BEA48 - ldrh r0, [r0] - strh r0, [r4, 0x4] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, _080BEA4C - bl StringCopy - adds r0, r4, 0 - bl sub_80BE138 - movs r0, 0x2 - strb r0, [r4, 0x6] -_080BEA36: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BEA3C: .4byte gSaveBlock1 + 0x2738 -_080BEA40: .4byte gUnknown_03005D38 -_080BEA44: .4byte gUnknown_020387E2 -_080BEA48: .4byte gUnknown_020387E0 -_080BEA4C: .4byte gSaveBlock2 - thumb_func_end sub_80BE9D4 - - thumb_func_start sub_80BEA50 -sub_80BEA50: @ 80BEA50 - ldr r1, _080BEA58 - strh r0, [r1] - bx lr - .align 2, 0 -_080BEA58: .4byte gUnknown_020387E0 - thumb_func_end sub_80BEA50 - - thumb_func_start sub_80BEA5C -sub_80BEA5C: @ 80BEA5C - push {lr} - ldr r1, _080BEA78 - ldrb r0, [r1] - cmp r0, 0x19 - bne _080BEA84 - ldrh r0, [r1, 0x2] - cmp r0, 0x13 - bhi _080BEA80 - ldr r2, _080BEA7C - adds r0, r1, r2 - movs r1, 0x18 - bl sub_80BF55C - b _080BEA84 - .align 2, 0 -_080BEA78: .4byte gSaveBlock1 + 0x2A98 -_080BEA7C: .4byte 0xfffffca0 -_080BEA80: - bl sub_80BEA88 -_080BEA84: - pop {r0} - bx r0 - thumb_func_end sub_80BEA5C - - thumb_func_start sub_80BEA88 -sub_80BEA88: @ 80BEA88 - push {r4-r7,lr} - ldr r5, _080BEB0C - ldr r0, _080BEB10 - bl sub_80BF77C - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _080BEB04 - ldr r0, _080BEB14 - adds r7, r5, r0 - adds r0, r7, 0 - bl sub_80BF74C - ldr r4, _080BEB18 - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BEB04 - movs r0, 0x19 - bl sub_80BF1B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BEB04 - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - adds r4, r7 - movs r0, 0x19 - strb r0, [r4] - strb r6, [r4, 0x1] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x2] - movs r0, 0x5 - bl sub_8053108 - ldrh r1, [r5, 0x6] - subs r0, r1 - strh r0, [r4, 0x6] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x4] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x8] - ldrb r0, [r5, 0xA] - strb r0, [r4, 0xA] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, _080BEB1C - bl StringCopy - adds r0, r4, 0 - bl sub_80BE138 - movs r0, 0x2 - strb r0, [r4, 0xB] -_080BEB04: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BEB0C: .4byte gSaveBlock1 + 0x2A98 -_080BEB10: .4byte 0x0000ffff -_080BEB14: .4byte 0xfffffca0 -_080BEB18: .4byte gUnknown_03005D38 -_080BEB1C: .4byte gSaveBlock2 - thumb_func_end sub_80BEA88 - - thumb_func_start sub_80BEB20 -sub_80BEB20: @ 80BEB20 - push {r4-r6,lr} - ldr r0, _080BEBAC - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080BEBA6 - ldr r6, _080BEBB0 - adds r0, r6, 0 - bl sub_80BEBC8 - ldr r5, _080BEBB4 - strb r0, [r5] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BEBA6 - ldr r0, _080BEBB8 - bl sub_80BF77C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BEBA6 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80BEE48 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BEBA6 - movs r0, 0 - ldrsb r0, [r5, r0] - lsls r0, 2 - ldr r1, _080BEBBC - adds r2, r6, r1 - adds r0, r6, r0 - strb r4, [r0] - movs r0, 0 - ldrsb r0, [r5, r0] - lsls r0, 2 - adds r0, r2 - ldr r1, _080BEBC0 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0] - movs r0, 0 - ldrsb r0, [r5, r0] - lsls r0, 2 - adds r0, r2 - ldr r1, _080BEBC4 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] -_080BEBA6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BEBAC: .4byte 0x00000804 -_080BEBB0: .4byte gSaveBlock1 + 0x2ABC -_080BEBB4: .4byte gUnknown_03005D38 -_080BEBB8: .4byte 0x0000028f -_080BEBBC: .4byte 0xffffd544 -_080BEBC0: .4byte 0x00002abe -_080BEBC4: .4byte 0x00002abd - thumb_func_end sub_80BEB20 - - thumb_func_start sub_80BEBC8 -sub_80BEBC8: @ 80BEBC8 - push {lr} - adds r2, r0, 0 - movs r1, 0 -_080BEBCE: - lsls r0, r1, 24 - asrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080BEBE0 - adds r0, r1, 0 - b _080BEBF0 -_080BEBE0: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - asrs r0, 24 - cmp r0, 0xF - ble _080BEBCE - movs r0, 0x1 - negs r0, r0 -_080BEBF0: - pop {r1} - bx r1 - thumb_func_end sub_80BEBC8 - - thumb_func_start sub_80BEBF4 -sub_80BEBF4: @ 80BEBF4 - push {r4,lr} - movs r4, 0 -_080BEBF8: - adds r0, r4, 0 - bl sub_80BEC10 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080BEBF8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80BEBF4 - - thumb_func_start sub_80BEC10 -sub_80BEC10: @ 80BEC10 - lsls r0, 24 - ldr r1, _080BEC30 - lsrs r0, 22 - adds r0, r1 - ldr r2, _080BEC34 - adds r1, r0, r2 - movs r2, 0 - strb r2, [r1] - ldr r3, _080BEC38 - adds r1, r0, r3 - strb r2, [r1] - ldr r1, _080BEC3C - adds r0, r1 - strh r2, [r0] - bx lr - .align 2, 0 -_080BEC30: .4byte gSaveBlock1 -_080BEC34: .4byte 0x00002abc -_080BEC38: .4byte 0x00002abd -_080BEC3C: .4byte 0x00002abe - thumb_func_end sub_80BEC10 - - thumb_func_start sub_80BEC40 -sub_80BEC40: @ 80BEC40 - push {r4-r7,lr} - movs r1, 0 - ldr r6, _080BEC80 -_080BEC46: - ldr r3, _080BEC80 - lsls r2, r1, 2 - adds r0, r2, r3 - ldr r4, _080BEC84 - adds r0, r4 - ldrb r0, [r0] - adds r5, r1, 0x1 - cmp r0, 0 - bne _080BEC92 - lsls r0, r5, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bhi _080BEC92 - adds r4, r3, r4 - adds r3, r2, r4 -_080BEC64: - lsls r2, r1, 2 - adds r0, r2, r6 - ldr r7, _080BEC84 - adds r0, r7 - ldrb r0, [r0] - cmp r0, 0 - beq _080BEC88 - adds r0, r2, r4 - ldr r0, [r0] - str r0, [r3] - adds r0, r1, 0 - bl sub_80BEC10 - b _080BEC92 - .align 2, 0 -_080BEC80: .4byte gSaveBlock1 -_080BEC84: .4byte 0x00002abc -_080BEC88: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080BEC64 -_080BEC92: - lsls r0, r5, 24 - lsrs r1, r0, 24 - cmp r1, 0xE - bls _080BEC46 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BEC40 - - thumb_func_start sub_80BECA0 -sub_80BECA0: @ 80BECA0 - push {r4,lr} - movs r2, 0 - ldr r3, _080BECCC -_080BECA6: - lsls r0, r2, 2 - adds r1, r0, r3 - ldr r4, _080BECD0 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _080BECD4 - adds r4, 0x1 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080BECD4 - adds r4, 0x1 - adds r0, r1, r4 - ldrh r0, [r0] - cmp r0, 0x2 - bhi _080BECD4 - adds r0, r2, 0 - b _080BECE0 - .align 2, 0 -_080BECCC: .4byte gSaveBlock1 -_080BECD0: .4byte 0x00002abc -_080BECD4: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _080BECA6 - movs r0, 0xFF -_080BECE0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BECA0 - - thumb_func_start sub_80BECE8 -sub_80BECE8: @ 80BECE8 - push {r4,lr} - bl sub_80BECA0 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - bne _080BED00 - ldr r1, _080BECFC - movs r0, 0 - b _080BED86 - .align 2, 0 -_080BECFC: .4byte gScriptResult -_080BED00: - ldr r0, _080BED2C - lsls r1, 2 - adds r4, r1, r0 - ldr r0, _080BED30 - adds r1, r4, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _080BED5C - ldr r2, _080BED34 - adds r1, r4, r2 - movs r0, 0x2 - strb r0, [r1] - ldr r0, _080BED38 - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x13 - bgt _080BED40 - ldr r1, _080BED3C - subs r2, 0x1 - b _080BED44 - .align 2, 0 -_080BED2C: .4byte gSaveBlock1 -_080BED30: .4byte 0x00002abe -_080BED34: .4byte 0x00002abd -_080BED38: .4byte gLocalTime -_080BED3C: .4byte gUnknown_083D1444 -_080BED40: - ldr r1, _080BED54 - ldr r2, _080BED58 -_080BED44: - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl ShowFieldMessage - b _080BED82 - .align 2, 0 -_080BED54: .4byte gUnknown_083D1454 -_080BED58: .4byte 0x00002abc -_080BED5C: - ldrh r1, [r1] - ldr r0, _080BED90 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r0, _080BED94 - adds r1, r4, r0 - movs r0, 0 - strb r0, [r1] - ldr r1, _080BED98 - ldr r2, _080BED9C - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl ShowFieldMessage -_080BED82: - ldr r1, _080BEDA0 - movs r0, 0x1 -_080BED86: - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BED90: .4byte gStringVar1 -_080BED94: .4byte 0x00002abd -_080BED98: .4byte gUnknown_083D1434 -_080BED9C: .4byte 0x00002abc -_080BEDA0: .4byte gScriptResult - thumb_func_end sub_80BECE8 - - thumb_func_start GetPriceReduction -GetPriceReduction: @ 80BEDA4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _080BEDB4 - b _080BEDF6 -_080BEDB0: - movs r0, 0x1 - b _080BEDF8 -_080BEDB4: - movs r2, 0 - ldr r4, _080BEDE0 -_080BEDB8: - lsls r0, r2, 2 - adds r1, r0, r4 - ldr r5, _080BEDE4 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, r3 - bne _080BEDEC - ldr r2, _080BEDE8 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080BEDF6 - adds r0, r3, 0 - bl IsPriceDiscounted - lsls r0, 24 - cmp r0, 0 - bne _080BEDB0 - b _080BEDF6 - .align 2, 0 -_080BEDE0: .4byte gSaveBlock1 -_080BEDE4: .4byte 0x00002abc -_080BEDE8: .4byte 0x00002abd -_080BEDEC: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _080BEDB8 -_080BEDF6: - movs r0, 0 -_080BEDF8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GetPriceReduction - - thumb_func_start IsPriceDiscounted -IsPriceDiscounted: @ 80BEE00 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BEE12 - cmp r0, 0x3 - beq _080BEE30 -_080BEE0E: - movs r0, 0x1 - b _080BEE3C -_080BEE12: - ldr r0, _080BEE28 - ldrh r1, [r0, 0x4] - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - bne _080BEE3A - ldr r0, _080BEE2C - ldrh r0, [r0] - cmp r0, 0x1A - beq _080BEE0E - b _080BEE3A - .align 2, 0 -_080BEE28: .4byte gSaveBlock1 -_080BEE2C: .4byte gUnknown_0202E8DE -_080BEE30: - ldr r0, _080BEE40 - ldrh r1, [r0, 0x4] - ldr r0, _080BEE44 - cmp r1, r0 - beq _080BEE0E -_080BEE3A: - movs r0, 0 -_080BEE3C: - pop {r1} - bx r1 - .align 2, 0 -_080BEE40: .4byte gSaveBlock1 -_080BEE44: .4byte 0x0000160d - thumb_func_end IsPriceDiscounted - - thumb_func_start sub_80BEE48 -sub_80BEE48: @ 80BEE48 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080BEE56 -_080BEE52: - movs r0, 0x1 - b _080BEE74 -_080BEE56: - movs r1, 0 - ldr r4, _080BEE7C - ldr r3, _080BEE80 -_080BEE5C: - lsls r0, r1, 2 - adds r0, r4 - adds r0, r3 - ldrb r0, [r0] - cmp r0, r2 - beq _080BEE52 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080BEE5C - movs r0, 0 -_080BEE74: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080BEE7C: .4byte gSaveBlock1 -_080BEE80: .4byte 0x00002abc - thumb_func_end sub_80BEE48 - - thumb_func_start sub_80BEE84 -sub_80BEE84: @ 80BEE84 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r7, r0, 16 - movs r5, 0 - ldr r0, _080BEEB8 - mov r8, r0 -_080BEE94: - lsls r0, r5, 2 - mov r1, r8 - adds r2, r0, r1 - ldr r3, _080BEEBC - adds r1, r2, r3 - ldrb r1, [r1] - adds r6, r0, 0 - cmp r1, 0 - beq _080BEEEC - ldr r1, _080BEEC0 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, r7 - bcs _080BEEC4 - adds r0, r5, 0 - bl sub_80BEC10 - b _080BEEEC - .align 2, 0 -_080BEEB8: .4byte gSaveBlock1 -_080BEEBC: .4byte 0x00002abc -_080BEEC0: .4byte 0x00002abe -_080BEEC4: - ldr r3, _080BEF04 - adds r4, r2, r3 - ldrb r0, [r4] - cmp r0, 0 - bne _080BEEDE - ldr r0, _080BEF08 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BEEDE - strb r0, [r4] -_080BEEDE: - mov r0, r8 - adds r1, r6, r0 - ldr r3, _080BEF0C - adds r1, r3 - ldrh r0, [r1] - subs r0, r7 - strh r0, [r1] -_080BEEEC: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _080BEE94 - bl sub_80BEC40 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BEF04: .4byte 0x00002abd -_080BEF08: .4byte 0x00000804 -_080BEF0C: .4byte 0x00002abe - thumb_func_end sub_80BEE84 - - thumb_func_start sub_80BEF10 -sub_80BEF10: @ 80BEF10 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r1, 0x1 - beq _080BEF50 - cmp r1, 0x1 - bgt _080BEF2A - cmp r1, 0 - beq _080BEF34 - b _080BEF98 -_080BEF2A: - cmp r2, 0x2 - beq _080BEF6C - cmp r2, 0x3 - beq _080BEF88 - b _080BEF98 -_080BEF34: - ldr r1, _080BEF48 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BEF4C - ldr r1, [r1, 0x14] - bl StringCopy - b _080BEF98 - .align 2, 0 -_080BEF48: .4byte gUnknown_083D1464 -_080BEF4C: .4byte gUnknown_083CE048 -_080BEF50: - ldr r1, _080BEF64 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BEF68 - ldr r1, [r1, 0x18] - bl StringCopy - b _080BEF98 - .align 2, 0 -_080BEF64: .4byte gUnknown_083D1464 -_080BEF68: .4byte gUnknown_083CE048 -_080BEF6C: - ldr r1, _080BEF80 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BEF84 - ldr r1, [r1, 0x1C] - bl StringCopy - b _080BEF98 - .align 2, 0 -_080BEF80: .4byte gUnknown_083D1464 -_080BEF84: .4byte gUnknown_083CE048 -_080BEF88: - ldr r1, _080BEF9C - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BEFA0 - ldr r1, [r1, 0x20] - bl StringCopy -_080BEF98: - pop {r0} - bx r0 - .align 2, 0 -_080BEF9C: .4byte gUnknown_083D1464 -_080BEFA0: .4byte gUnknown_083CE048 - thumb_func_end sub_80BEF10 - - thumb_func_start CopyContestCategoryToStringVar -CopyContestCategoryToStringVar: @ 80BEFA4 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r0, r1, 24 - cmp r0, 0x4 - bhi _080BF054 - lsls r0, 2 - ldr r1, _080BEFBC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BEFBC: .4byte _080BEFC0 - .align 2, 0 -_080BEFC0: - .4byte _080BEFD4 - .4byte _080BEFF0 - .4byte _080BF00C - .4byte _080BF028 - .4byte _080BF044 -_080BEFD4: - ldr r1, _080BEFE8 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BEFEC - ldr r1, [r1] - bl StringCopy - b _080BF054 - .align 2, 0 -_080BEFE8: .4byte gUnknown_083D1464 -_080BEFEC: .4byte gUnknown_083CE048 -_080BEFF0: - ldr r1, _080BF004 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BF008 - ldr r1, [r1, 0x4] - bl StringCopy - b _080BF054 - .align 2, 0 -_080BF004: .4byte gUnknown_083D1464 -_080BF008: .4byte gUnknown_083CE048 -_080BF00C: - ldr r1, _080BF020 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BF024 - ldr r1, [r1, 0x8] - bl StringCopy - b _080BF054 - .align 2, 0 -_080BF020: .4byte gUnknown_083D1464 -_080BF024: .4byte gUnknown_083CE048 -_080BF028: - ldr r1, _080BF03C - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BF040 - ldr r1, [r1, 0xC] - bl StringCopy - b _080BF054 - .align 2, 0 -_080BF03C: .4byte gUnknown_083D1464 -_080BF040: .4byte gUnknown_083CE048 -_080BF044: - ldr r1, _080BF058 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BF05C - ldr r1, [r1, 0x10] - bl StringCopy -_080BF054: - pop {r0} - bx r0 - .align 2, 0 -_080BF058: .4byte gUnknown_083D1464 -_080BF05C: .4byte gUnknown_083CE048 - thumb_func_end CopyContestCategoryToStringVar - - thumb_func_start SetContestCategoryStringVarForInterview -SetContestCategoryStringVarForInterview: @ 80BF060 - push {lr} - ldr r0, _080BF080 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BF084 - adds r0, r1 - ldrb r1, [r0, 0x13] - lsls r1, 29 - lsrs r1, 29 - movs r0, 0x1 - bl CopyContestCategoryToStringVar - pop {r0} - bx r0 - .align 2, 0 -_080BF080: .4byte gUnknown_0202E8CC -_080BF084: .4byte gSaveBlock1 + 0x2738 - thumb_func_end SetContestCategoryStringVarForInterview - - thumb_func_start sub_80BF088 -sub_80BF088: @ 80BF088 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl sub_80BF0B8 - adds r3, r0, 0 - ldr r0, _080BF0B4 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - lsls r3, 24 - lsrs r3, 24 - adds r1, r5, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BF0B4: .4byte gUnknown_083D1464 - thumb_func_end sub_80BF088 - - thumb_func_start sub_80BF0B8 -sub_80BF0B8: @ 80BF0B8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xA - bl __divsi3 - cmp r0, 0 - beq _080BF144 - adds r0, r4, 0 - movs r1, 0x64 - bl __divsi3 - cmp r0, 0 - bne _080BF0D6 - movs r0, 0x2 - b _080BF14E -_080BF0D6: - movs r1, 0xFA - lsls r1, 2 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - bne _080BF0E8 - movs r0, 0x3 - b _080BF14E -_080BF0E8: - ldr r1, _080BF0F8 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - bne _080BF0FC - movs r0, 0x4 - b _080BF14E - .align 2, 0 -_080BF0F8: .4byte 0x00002710 -_080BF0FC: - ldr r1, _080BF10C - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - bne _080BF110 - movs r0, 0x5 - b _080BF14E - .align 2, 0 -_080BF10C: .4byte 0x000186a0 -_080BF110: - ldr r1, _080BF120 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - bne _080BF124 - movs r0, 0x6 - b _080BF14E - .align 2, 0 -_080BF120: .4byte 0x000f4240 -_080BF124: - ldr r1, _080BF134 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - bne _080BF138 - movs r0, 0x7 - b _080BF14E - .align 2, 0 -_080BF134: .4byte 0x00989680 -_080BF138: - ldr r1, _080BF148 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - beq _080BF14C -_080BF144: - movs r0, 0x1 - b _080BF14E - .align 2, 0 -_080BF148: .4byte 0x05f5e100 -_080BF14C: - movs r0, 0x8 -_080BF14E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BF0B8 - - thumb_func_start sub_80BF154 -sub_80BF154: @ 80BF154 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r1, 0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r7, 0 - movs r5, 0 -_080BF166: - lsls r4, r5, 1 - adds r0, r6, 0x6 - adds r1, r0, r4 - ldrh r0, [r1] - cmp r0, 0 - beq _080BF186 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - adds r1, 0xC - adds r1, r4 - ldrh r1, [r1] - muls r0, r1 - adds r7, r0 -_080BF186: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _080BF166 - ldrb r0, [r6, 0x2] - cmp r0, 0x1 - bne _080BF1A0 - asrs r1, r7, 1 - mov r0, r8 - bl sub_80BF088 - b _080BF1A8 -_080BF1A0: - mov r0, r8 - adds r1, r7, 0 - bl sub_80BF088 -_080BF1A8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BF154 - - thumb_func_start sub_80BF1B4 -sub_80BF1B4: @ 80BF1B4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r7, _080BF1F4 - bl sub_80BFB94 - adds r5, r0, 0 - movs r4, 0x5 -_080BF1C4: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r1, r0, r7 - ldrb r0, [r1] - cmp r0, r6 - bne _080BF1F8 - movs r3, 0xFF - adds r0, r5, 0 - ands r0, r3 - adds r2, r1, 0 - adds r2, 0x22 - ldrb r2, [r2] - cmp r0, r2 - bne _080BF1F8 - lsrs r0, r5, 8 - ands r0, r3 - adds r1, 0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080BF1F8 - movs r0, 0x1 - b _080BF204 - .align 2, 0 -_080BF1F4: .4byte gSaveBlock1 + 0x2738 -_080BF1F8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x17 - bls _080BF1C4 - movs r0, 0 -_080BF204: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80BF1B4 - - thumb_func_start sub_80BF20C -sub_80BF20C: @ 80BF20C - push {r4-r7,lr} - movs r2, 0 -_080BF210: - adds r1, r2, 0x1 - lsls r0, r1, 24 - lsrs r5, r0, 24 - adds r7, r1, 0 - cmp r5, 0x2 - bhi _080BF248 - ldr r6, _080BF258 - lsls r0, r2, 2 - adds r4, r0, r6 -_080BF222: - lsls r0, r5, 2 - adds r3, r0, r6 - ldrh r0, [r4, 0x2] - ldrh r1, [r3, 0x2] - cmp r0, r1 - bcs _080BF23E - ldrh r1, [r4] - adds r2, r0, 0 - ldrh r0, [r3] - strh r0, [r4] - ldrh r0, [r3, 0x2] - strh r0, [r4, 0x2] - strh r1, [r3] - strh r2, [r3, 0x2] -_080BF23E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _080BF222 -_080BF248: - lsls r0, r7, 24 - lsrs r2, r0, 24 - cmp r2, 0x1 - bls _080BF210 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BF258: .4byte gUnknown_02038724 - thumb_func_end sub_80BF20C - - thumb_func_start sub_80BF25C -sub_80BF25C: @ 80BF25C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r1, 0 - ldr r3, _080BF28C - ldr r0, _080BF290 - adds r4, r3, r0 -_080BF26A: - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r3 - ldr r6, _080BF290 - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, r5 - bne _080BF2AE - ldr r3, _080BF294 - adds r0, r2, r3 - ldrb r2, [r0] - cmp r2, 0x1 - bne _080BF29C - ldr r0, _080BF298 - strh r2, [r0] - b _080BF2BC - .align 2, 0 -_080BF28C: .4byte gSaveBlock1 -_080BF290: .4byte 0x00002738 -_080BF294: .4byte 0x00002739 -_080BF298: .4byte gScriptResult -_080BF29C: - adds r0, r4, 0 - bl sub_80BF55C - adds r0, r4, 0 - bl sub_80BF588 - bl sub_80BF6D8 - b _080BF2BC -_080BF2AE: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080BF26A - bl sub_80BF6D8 -_080BF2BC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BF25C - - thumb_func_start sub_80BF2C4 -sub_80BF2C4: @ 80BF2C4 - push {lr} - ldr r1, _080BF2E0 - movs r0, 0 - strh r0, [r1] - ldr r0, _080BF2E4 - ldrh r0, [r0] - subs r0, 0x1 - cmp r0, 0x6 - bhi _080BF330 - lsls r0, 2 - ldr r1, _080BF2E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BF2E0: .4byte gScriptResult -_080BF2E4: .4byte gUnknown_0202E8CE -_080BF2E8: .4byte _080BF2EC - .align 2, 0 -_080BF2EC: - .4byte _080BF308 - .4byte _080BF30E - .4byte _080BF314 - .4byte _080BF31A - .4byte _080BF320 - .4byte _080BF326 - .4byte _080BF32C -_080BF308: - bl sub_80BF334 - b _080BF330 -_080BF30E: - bl sub_80BF3A4 - b _080BF330 -_080BF314: - bl sub_80BF3DC - b _080BF330 -_080BF31A: - bl sub_80BF46C - b _080BF330 -_080BF320: - bl sub_80BF478 - b _080BF330 -_080BF326: - bl sub_80BF484 - b _080BF330 -_080BF32C: - bl sub_80BF4BC -_080BF330: - pop {r0} - bx r0 - thumb_func_end sub_80BF2C4 - - thumb_func_start sub_80BF334 -sub_80BF334: @ 80BF334 - push {r4,lr} - movs r0, 0x1 - bl sub_80BF25C - ldr r0, _080BF38C - ldrh r0, [r0] - cmp r0, 0 - bne _080BF384 - ldr r4, _080BF390 - bl sub_810F87C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080BF394 - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - movs r1, 0xB - muls r1, r0 - ldr r0, _080BF398 - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - ldr r0, _080BF39C - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BF3A0 - adds r0, r1 - adds r0, 0x4 - movs r1, 0x6 - bl sub_80EB6FC -_080BF384: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BF38C: .4byte gScriptResult -_080BF390: .4byte gStringVar1 -_080BF394: .4byte gPlayerParty -_080BF398: .4byte gSpeciesNames -_080BF39C: .4byte gUnknown_03005D38 -_080BF3A0: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80BF334 - - thumb_func_start sub_80BF3A4 -sub_80BF3A4: @ 80BF3A4 - push {lr} - movs r0, 0x2 - bl sub_80BF25C - ldr r0, _080BF3D0 - ldrh r0, [r0] - cmp r0, 0 - bne _080BF3CC - ldr r0, _080BF3D4 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BF3D8 - adds r0, r1 - adds r0, 0x4 - movs r1, 0x6 - bl sub_80EB6FC -_080BF3CC: - pop {r0} - bx r0 - .align 2, 0 -_080BF3D0: .4byte gScriptResult -_080BF3D4: .4byte gUnknown_03005D38 -_080BF3D8: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80BF3A4 - - thumb_func_start sub_80BF3DC -sub_80BF3DC: @ 80BF3DC - push {r4-r6,lr} - movs r0, 0x3 - bl sub_80BF25C - ldr r0, _080BF450 - ldrh r0, [r0] - cmp r0, 0 - bne _080BF448 - ldr r6, _080BF454 - bl sub_810F87C - lsls r0, 24 - lsrs r0, 24 - movs r5, 0x64 - muls r0, r5 - ldr r4, _080BF458 - adds r0, r4 - movs r1, 0xB - movs r2, 0 - bl GetMonData - movs r1, 0xB - muls r1, r0 - ldr r0, _080BF45C - adds r1, r0 - adds r0, r6, 0 - bl StringCopy - bl sub_810F87C - lsls r0, 24 - lsrs r0, 24 - muls r0, r5 - adds r0, r4 - ldr r4, _080BF460 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - ldr r0, _080BF464 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BF468 - adds r0, r1 - adds r0, 0x1C - movs r1, 0x2 - bl sub_80EB6FC -_080BF448: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BF450: .4byte gScriptResult -_080BF454: .4byte gStringVar1 -_080BF458: .4byte gPlayerParty -_080BF45C: .4byte gSpeciesNames -_080BF460: .4byte gStringVar2 -_080BF464: .4byte gUnknown_03005D38 -_080BF468: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80BF3DC - - thumb_func_start sub_80BF46C -sub_80BF46C: @ 80BF46C - ldr r1, _080BF474 - movs r0, 0x1 - strh r0, [r1] - bx lr - .align 2, 0 -_080BF474: .4byte gScriptResult - thumb_func_end sub_80BF46C - - thumb_func_start sub_80BF478 -sub_80BF478: @ 80BF478 - push {lr} - movs r0, 0x5 - bl sub_80BF25C - pop {r0} - bx r0 - thumb_func_end sub_80BF478 - - thumb_func_start sub_80BF484 -sub_80BF484: @ 80BF484 - push {lr} - movs r0, 0x6 - bl sub_80BF25C - ldr r0, _080BF4B0 - ldrh r0, [r0] - cmp r0, 0 - bne _080BF4AC - ldr r0, _080BF4B4 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BF4B8 - adds r0, r1 - adds r0, 0x4 - movs r1, 0x2 - bl sub_80EB6FC -_080BF4AC: - pop {r0} - bx r0 - .align 2, 0 -_080BF4B0: .4byte gScriptResult -_080BF4B4: .4byte gUnknown_03005D38 -_080BF4B8: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80BF484 - - thumb_func_start sub_80BF4BC -sub_80BF4BC: @ 80BF4BC - push {lr} - movs r0, 0x7 - bl sub_80BF25C - ldr r0, _080BF4E8 - ldrh r0, [r0] - cmp r0, 0 - bne _080BF4E4 - ldr r0, _080BF4EC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BF4F0 - adds r0, r1 - adds r0, 0x18 - movs r1, 0x1 - bl sub_80EB6FC -_080BF4E4: - pop {r0} - bx r0 - .align 2, 0 -_080BF4E8: .4byte gScriptResult -_080BF4EC: .4byte gUnknown_03005D38 -_080BF4F0: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80BF4BC - - thumb_func_start sub_80BF4F4 -sub_80BF4F4: @ 80BF4F4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - adds r4, r0, 0 - muls r4, r1 - ldr r0, _080BF530 - adds r4, r0 - ldr r5, _080BF534 - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - movs r1, 0xB - muls r0, r1 - ldr r1, _080BF538 - adds r0, r1 - adds r1, r5, 0 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - beq _080BF53C - movs r0, 0x1 - b _080BF53E - .align 2, 0 -_080BF530: .4byte gPlayerParty -_080BF534: .4byte gStringVar1 -_080BF538: .4byte gSpeciesNames -_080BF53C: - movs r0, 0 -_080BF53E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80BF4F4 - - thumb_func_start sub_80BF544 -sub_80BF544: @ 80BF544 - push {lr} - bl sub_810F87C - lsls r0, 24 - lsrs r0, 24 - bl sub_80BF4F4 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80BF544 - - thumb_func_start sub_80BF55C -sub_80BF55C: @ 80BF55C - push {lr} - lsls r1, 24 - lsrs r1, 24 - lsls r2, r1, 3 - adds r2, r1 - lsls r2, 2 - adds r2, r0 - movs r0, 0 - strb r0, [r2] - strb r0, [r2, 0x1] - movs r1, 0 - adds r2, 0x2 - movs r3, 0 -_080BF576: - adds r0, r2, r1 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x21 - bls _080BF576 - pop {r0} - bx r0 - thumb_func_end sub_80BF55C - - thumb_func_start sub_80BF588 -sub_80BF588: @ 80BF588 - push {r4-r7,lr} - adds r4, r0, 0 - movs r5, 0 -_080BF58E: - lsls r0, r5, 3 - adds r0, r5 - lsls r1, r0, 2 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _080BF5D2 - adds r0, r5, 0x1 - b _080BF5CA -_080BF5A0: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r4 - ldrb r0, [r3] - cmp r0, 0 - beq _080BF5C8 - adds r1, r4 - adds r0, r3, 0 - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80BF55C - b _080BF5D2 -_080BF5C8: - adds r0, r2, 0x1 -_080BF5CA: - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x4 - bls _080BF5A0 -_080BF5D2: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _080BF58E - movs r5, 0x5 -_080BF5DE: - lsls r0, r5, 3 - adds r0, r5 - lsls r1, r0, 2 - adds r0, r1, r4 - ldrb r0, [r0] - adds r5, 0x1 - cmp r0, 0 - bne _080BF62A - lsls r0, r5, 24 - b _080BF624 -_080BF5F2: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r4 - ldrb r0, [r3] - cmp r0, 0 - beq _080BF620 - adds r1, r4 - adds r0, r3, 0 - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldr r0, _080BF61C - adds r1, r2, 0 - bl sub_80BF55C - b _080BF62A - .align 2, 0 -_080BF61C: .4byte gSaveBlock1 + 0x2738 -_080BF620: - adds r0, r2, 0x1 - lsls r0, 24 -_080BF624: - lsrs r2, r0, 24 - cmp r2, 0x17 - bls _080BF5F2 -_080BF62A: - lsls r0, r5, 24 - lsrs r5, r0, 24 - cmp r5, 0x17 - bls _080BF5DE - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BF588 - - thumb_func_start sub_80BF638 -sub_80BF638: @ 80BF638 - push {r4,r5,lr} - adds r4, r0, 0 - adds r0, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 16 - lsrs r0, 16 - bl sub_80BF674 - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - ldr r0, _080BF66C - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0xB - muls r1, r5 - ldr r2, _080BF670 - adds r1, r2 - bl StringCopy - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080BF66C: .4byte gUnknown_083D1464 -_080BF670: .4byte gSpeciesNames - thumb_func_end sub_80BF638 - - thumb_func_start sub_80BF674 -sub_80BF674: @ 80BF674 - push {r4-r6,lr} - lsls r0, 16 - lsrs r5, r0, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, _080BF694 - bl __umodsi3 - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r6, r4, 0 - b _080BF6B2 - .align 2, 0 -_080BF694: .4byte 0x0000019b -_080BF698: - cmp r4, 0x1 - bne _080BF6A4 - ldr r4, _080BF6A0 - b _080BF6AA - .align 2, 0 -_080BF6A0: .4byte 0x0000019b -_080BF6A4: - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080BF6AA: - cmp r4, r6 - bne _080BF6B2 - adds r4, r5, 0 - b _080BF6CE -_080BF6B2: - adds r0, r4, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl sub_8090D90 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _080BF698 - cmp r4, r5 - beq _080BF698 -_080BF6CE: - adds r0, r4, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80BF674 - - thumb_func_start sub_80BF6D8 -sub_80BF6D8: @ 80BF6D8 - push {lr} - ldr r0, _080BF700 - bl sub_80BF720 - ldr r1, _080BF704 - strb r0, [r1] - ldr r2, _080BF708 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - strh r1, [r2] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080BF710 - ldr r1, _080BF70C - movs r0, 0x1 - b _080BF714 - .align 2, 0 -_080BF700: .4byte gSaveBlock1 + 0x2738 -_080BF704: .4byte gUnknown_03005D38 -_080BF708: .4byte gUnknown_0202E8D0 -_080BF70C: .4byte gScriptResult -_080BF710: - ldr r1, _080BF71C - movs r0, 0 -_080BF714: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080BF71C: .4byte gScriptResult - thumb_func_end sub_80BF6D8 - - thumb_func_start sub_80BF720 -sub_80BF720: @ 80BF720 - push {lr} - adds r2, r0, 0 - movs r1, 0 -_080BF726: - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080BF73A - lsls r0, r1, 24 - asrs r0, 24 - b _080BF748 -_080BF73A: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080BF726 - movs r0, 0x1 - negs r0, r0 -_080BF748: - pop {r1} - bx r1 - thumb_func_end sub_80BF720 - - thumb_func_start sub_80BF74C -sub_80BF74C: @ 80BF74C - push {lr} - adds r2, r0, 0 - movs r1, 0x5 -_080BF752: - lsls r0, r1, 24 - asrs r1, r0, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080BF768 - adds r0, r1, 0 - b _080BF778 -_080BF768: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - asrs r0, 24 - cmp r0, 0x17 - ble _080BF752 - movs r0, 0x1 - negs r0, r0 -_080BF778: - pop {r1} - bx r1 - thumb_func_end sub_80BF74C - - thumb_func_start sub_80BF77C -sub_80BF77C: @ 80BF77C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - cmp r0, r4 - bls _080BF794 - movs r0, 0x1 - b _080BF796 -_080BF794: - movs r0, 0 -_080BF796: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BF77C - - thumb_func_start sub_80BF79C -sub_80BF79C: @ 80BF79C - push {r4-r6,lr} - adds r4, r0, 0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 24 - lsrs r2, r0, 24 - adds r5, r4, 0x4 - ldr r6, _080BF7B8 - b _080BF7C2 - .align 2, 0 -_080BF7B8: .4byte 0x0000ffff -_080BF7BC: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_080BF7C2: - cmp r2, 0x6 - bne _080BF7C8 - movs r2, 0 -_080BF7C8: - lsls r1, r2, 1 - adds r0, r5, r1 - ldrh r0, [r0] - adds r3, r4, 0x4 - cmp r0, r6 - beq _080BF7BC - ldr r0, _080BF7E4 - adds r1, r3, r1 - ldrh r1, [r1] - bl sub_80EB3FC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BF7E4: .4byte gStringVar3 - thumb_func_end sub_80BF79C - - thumb_func_start sub_80BF7E8 -sub_80BF7E8: @ 80BF7E8 - push {lr} - adds r2, r0, 0 - movs r3, 0 - movs r1, 0 - ldrb r0, [r2, 0x4] - cmp r0, 0xFF - beq _080BF814 - adds r2, 0x4 -_080BF7F8: - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, r3, r0 - lsls r0, 16 - lsrs r3, r0, 16 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xA - bhi _080BF814 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080BF7F8 -_080BF814: - movs r0, 0x7 - ands r3, r0 - adds r0, r3, 0 - pop {r1} - bx r1 - thumb_func_end sub_80BF7E8 - - thumb_func_start sub_80BF820 -sub_80BF820: @ 80BF820 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r4, [sp, 0x1C] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 16 - lsrs r4, 16 - movs r2, 0 - movs r7, 0xFF -_080BF844: - mov r1, sp - adds r0, r1, r2 - ldrb r1, [r0] - orrs r1, r7 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _080BF844 - cmp r3, 0 - bne _080BF8A6 - ldr r4, [sp, 0x20] - adds r4, 0xF - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r2, r0, 16 - cmp r6, 0 - bne _080BF874 - mov r0, sp - adds r1, r4, r5 - b _080BF920 -_080BF874: - cmp r6, 0x1 - bne _080BF880 - mov r0, sp - subs r1, r2, r5 - adds r1, r4, r1 - b _080BF920 -_080BF880: - cmp r6, 0x2 - bne _080BF892 - mov r1, sp - adds r0, r4, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, 0x1 - adds r0, r4, r0 - b _080BF950 -_080BF892: - mov r1, sp - subs r0, r2, 0x2 - subs r0, r5 - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1] - subs r0, r2, 0x1 - subs r0, r5 - adds r0, r4, r0 - b _080BF950 -_080BF8A6: - cmp r3, 0x1 - bne _080BF8F4 - ldr r4, [sp, 0x20] - adds r4, 0x4 - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r2, r0, 16 - cmp r6, 0 - bne _080BF8C2 - mov r0, sp - adds r1, r4, r5 - b _080BF920 -_080BF8C2: - cmp r6, 0x1 - bne _080BF8CE - mov r0, sp - subs r1, r2, r5 - adds r1, r4, r1 - b _080BF920 -_080BF8CE: - cmp r6, 0x2 - bne _080BF8E0 - mov r1, sp - adds r0, r4, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, 0x1 - adds r0, r4, r0 - b _080BF950 -_080BF8E0: - mov r1, sp - subs r0, r2, 0x2 - subs r0, r5 - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1] - subs r0, r2, 0x1 - subs r0, r5 - adds r0, r4, r0 - b _080BF950 -_080BF8F4: - movs r0, 0xB - muls r4, r0 - ldr r7, _080BF910 - adds r0, r4, r7 - bl StringLength - lsls r0, 16 - lsrs r2, r0, 16 - cmp r6, 0 - bne _080BF914 - mov r0, sp - adds r1, r5, r4 - b _080BF91E - .align 2, 0 -_080BF910: .4byte gSpeciesNames -_080BF914: - cmp r6, 0x1 - bne _080BF926 - mov r0, sp - subs r1, r2, r5 - adds r1, r4 -_080BF91E: - adds r1, r7 -_080BF920: - ldrb r1, [r1] - strb r1, [r0] - b _080BF954 -_080BF926: - cmp r6, 0x2 - bne _080BF93A - mov r1, sp - adds r0, r5, r4 - adds r0, r7 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, 0x1 - adds r0, r5, r0 - b _080BF94E -_080BF93A: - mov r1, sp - subs r0, r2, 0x2 - subs r0, r5 - adds r0, r4 - adds r0, r7 - ldrb r0, [r0] - strb r0, [r1] - subs r0, r2, 0x1 - subs r0, r5 - adds r0, r4 -_080BF94E: - adds r0, r7 -_080BF950: - ldrb r0, [r0] - strb r0, [r1, 0x1] -_080BF954: - ldr r0, _080BF970 - mov r2, r8 - lsls r1, r2, 2 - adds r1, r0 - ldr r0, [r1] - mov r1, sp - bl StringCopy - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BF970: .4byte gUnknown_083D1464 - thumb_func_end sub_80BF820 - - thumb_func_start sub_80BF974 -sub_80BF974: @ 80BF974 - push {r4,lr} - movs r1, 0 - ldr r4, _080BF994 - ldr r0, _080BF998 - ldrh r2, [r0] - ldr r3, _080BF99C -_080BF980: - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _080BF9A0 - movs r0, 0x1 - b _080BF9AC - .align 2, 0 -_080BF994: .4byte gSaveBlock1 -_080BF998: .4byte gUnknown_0202E8CC -_080BF99C: .4byte 0x00002738 -_080BF9A0: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080BF980 - movs r0, 0 -_080BF9AC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BF974 - - thumb_func_start sub_80BF9B4 -sub_80BF9B4: @ 80BF9B4 - push {r4,lr} - ldr r0, _080BF9E0 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BF9E4 - adds r0, r1 - ldr r4, _080BF9E8 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - ldr r0, _080BF9EC - adds r1, r4, 0 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - beq _080BF9F0 - bl sub_80BE478 - movs r0, 0x1 - b _080BF9F2 - .align 2, 0 -_080BF9E0: .4byte gUnknown_0202E8CC -_080BF9E4: .4byte gPlayerParty -_080BF9E8: .4byte gStringVar1 -_080BF9EC: .4byte gStringVar3 -_080BF9F0: - movs r0, 0 -_080BF9F2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BF9B4 - - thumb_func_start sub_80BF9F8 -sub_80BF9F8: @ 80BF9F8 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x8 - ldr r0, _080BFAA0 - mov r9, r0 - ldrh r0, [r0] - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r6, _080BFAA4 - adds r0, r6 - ldr r2, _080BFAA8 - movs r1, 0x2 - bl GetMonData - mov r1, r9 - ldrh r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - ldr r1, _080BFAAC - mov r10, r1 - movs r1, 0x2 - mov r2, r10 - bl GetMonData - mov r1, r9 - ldrh r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - mov r1, r9 - ldrh r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - bl GetMonGender - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r1, r9 - ldrh r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0 - movs r2, 0 - bl GetMonData - str r0, [sp] - ldr r0, _080BFAB0 - str r0, [sp, 0x4] - movs r0, 0x3 - mov r1, r10 - adds r2, r5, 0 - adds r3, r4, 0 - bl DoNamingScreen - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BFAA0: .4byte gUnknown_0202E8CC -_080BFAA4: .4byte gPlayerParty -_080BFAA8: .4byte gStringVar3 -_080BFAAC: .4byte gStringVar2 -_080BFAB0: .4byte c2_080CC144 - thumb_func_end sub_80BF9F8 - - thumb_func_start c2_080CC144 -c2_080CC144: @ 80BFAB4 - push {lr} - ldr r0, _080BFAD4 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BFAD8 - adds r0, r1 - ldr r2, _080BFADC - movs r1, 0x2 - bl SetMonData - bl c2_exit_to_overworld_1_continue_scripts_restart_music - pop {r0} - bx r0 - .align 2, 0 -_080BFAD4: .4byte gUnknown_0202E8CC -_080BFAD8: .4byte gPlayerParty -_080BFADC: .4byte gStringVar2 - thumb_func_end c2_080CC144 - - thumb_func_start sub_80BFAE0 -sub_80BFAE0: @ 80BFAE0 - push {r4,lr} - ldr r0, _080BFB04 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BFB08 - adds r0, r1 - ldr r4, _080BFB0C - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BFB04: .4byte gUnknown_0202E8CC -_080BFB08: .4byte gPlayerParty -_080BFB0C: .4byte gStringVar1 - thumb_func_end sub_80BFAE0 - - thumb_func_start sub_80BFB10 -sub_80BFB10: @ 80BFB10 - push {r4,lr} - bl sub_80BFB94 - adds r4, r0, 0 - ldr r0, _080BFB38 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BFB3C - adds r0, r1 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - cmp r4, r0 - bne _080BFB44 - ldr r1, _080BFB40 - movs r0, 0 - b _080BFB48 - .align 2, 0 -_080BFB38: .4byte gUnknown_0202E8CC -_080BFB3C: .4byte gPlayerParty -_080BFB40: .4byte gScriptResult -_080BFB44: - ldr r1, _080BFB50 - movs r0, 0x1 -_080BFB48: - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BFB50: .4byte gScriptResult - thumb_func_end sub_80BFB10 - - thumb_func_start sub_80BFB54 -sub_80BFB54: @ 80BFB54 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - adds r2, r1, 0 - cmp r1, 0 - beq _080BFB8A - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _080BFB6E - movs r0, 0x2 - b _080BFB90 -_080BFB6E: - adds r0, r1, 0 - subs r0, 0x15 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _080BFB7E - movs r0, 0x3 - b _080BFB90 -_080BFB7E: - adds r0, r2, 0 - subs r0, 0x29 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bls _080BFB8E -_080BFB8A: - movs r0, 0 - b _080BFB90 -_080BFB8E: - movs r0, 0x4 -_080BFB90: - pop {r1} - bx r1 - thumb_func_end sub_80BFB54 - - thumb_func_start sub_80BFB94 -sub_80BFB94: @ 80BFB94 - ldr r2, _080BFBAC - ldrb r0, [r2, 0xD] - lsls r0, 24 - ldrb r1, [r2, 0xC] - lsls r1, 16 - orrs r0, r1 - ldrb r1, [r2, 0xB] - lsls r1, 8 - orrs r0, r1 - ldrb r1, [r2, 0xA] - orrs r0, r1 - bx lr - .align 2, 0 -_080BFBAC: .4byte gSaveBlock2 - thumb_func_end sub_80BFB94 - - thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV -CheckForBigMovieOrEmergencyNewsOnTV: @ 80BFBB0 - push {lr} - ldr r1, _080BFBD0 - movs r0, 0x4 - ldrsb r0, [r1, r0] - cmp r0, 0x1 - bne _080BFBCC - ldr r0, _080BFBD4 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _080BFBD8 - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, 0 - beq _080BFBE0 -_080BFBCC: - movs r0, 0 - b _080BFC0A - .align 2, 0 -_080BFBD0: .4byte gSaveBlock1 -_080BFBD4: .4byte gSaveBlock2 -_080BFBD8: - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, 0x2 - bne _080BFBCC -_080BFBE0: - ldr r0, _080BFC04 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BFBFE - movs r0, 0x83 - lsls r0, 4 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BFC08 -_080BFBFE: - movs r0, 0x1 - b _080BFC0A - .align 2, 0 -_080BFC04: .4byte 0x0000085d -_080BFC08: - movs r0, 0x2 -_080BFC0A: - pop {r1} - bx r1 - thumb_func_end CheckForBigMovieOrEmergencyNewsOnTV - - thumb_func_start GetMomOrDadStringForTVMessage -GetMomOrDadStringForTVMessage: @ 80BFC10 - push {r4,lr} - ldr r1, _080BFC40 - movs r0, 0x4 - ldrsb r0, [r1, r0] - cmp r0, 0x1 - bne _080BFC6C - ldr r0, _080BFC44 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _080BFC54 - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _080BFC6C - ldr r0, _080BFC48 - ldr r1, _080BFC4C - bl StringCopy - ldr r0, _080BFC50 - movs r1, 0x1 - bl VarSet - b _080BFC6C - .align 2, 0 -_080BFC40: .4byte gSaveBlock1 -_080BFC44: .4byte gSaveBlock2 -_080BFC48: .4byte gStringVar1 -_080BFC4C: .4byte gOtherText_Mom -_080BFC50: .4byte 0x00004003 -_080BFC54: - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, 0x2 - bne _080BFC6C - ldr r0, _080BFCB4 - ldr r1, _080BFCB8 - bl StringCopy - ldr r0, _080BFCBC - movs r1, 0x1 - bl VarSet -_080BFC6C: - ldr r4, _080BFCBC - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _080BFCAA - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - beq _080BFCC0 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bls _080BFCD4 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080BFCC0 -_080BFCAA: - ldr r0, _080BFCB4 - ldr r1, _080BFCB8 - bl StringCopy - b _080BFD10 - .align 2, 0 -_080BFCB4: .4byte gStringVar1 -_080BFCB8: .4byte gOtherText_Mom -_080BFCBC: .4byte 0x00004003 -_080BFCC0: - ldr r0, _080BFCCC - ldr r1, _080BFCD0 - bl StringCopy - b _080BFD10 - .align 2, 0 -_080BFCCC: .4byte gStringVar1 -_080BFCD0: .4byte gOtherText_Dad -_080BFCD4: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080BFD00 - ldr r0, _080BFCF8 - ldr r1, _080BFCFC - bl StringCopy - adds r0, r4, 0 - movs r1, 0x1 - bl VarSet - b _080BFD10 - .align 2, 0 -_080BFCF8: .4byte gStringVar1 -_080BFCFC: .4byte gOtherText_Mom -_080BFD00: - ldr r0, _080BFD18 - ldr r1, _080BFD1C - bl StringCopy - adds r0, r4, 0 - movs r1, 0x2 - bl VarSet -_080BFD10: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BFD18: .4byte gStringVar1 -_080BFD1C: .4byte gOtherText_Dad - thumb_func_end GetMomOrDadStringForTVMessage - - thumb_func_start sub_80BFD20 -sub_80BFD20: @ 80BFD20 - push {lr} - ldr r0, _080BFD3C - movs r1, 0 - bl VarSet - ldr r0, _080BFD40 - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x5 - bl RemoveFieldObjectByLocalIdAndMap - pop {r0} - bx r0 - .align 2, 0 -_080BFD3C: .4byte 0x000040bc -_080BFD40: .4byte gSaveBlock1 - thumb_func_end sub_80BFD20 - - thumb_func_start sub_80BFD44 -sub_80BFD44: @ 80BFD44 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r7, r1, 0 - lsls r2, 24 - lsrs r6, r2, 24 - movs r4, 0 -_080BFD54: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 5 - adds r0, r4 - lsls r0, 2 - ldr r5, _080BFD8C - adds r0, r5 - adds r1, r4, 0 - muls r1, r7 - add r1, r8 - movs r2, 0xE1 - lsls r2, 2 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080BFD54 - adds r4, r5, 0 - cmp r6, 0x1 - beq _080BFDBC - cmp r6, 0x1 - bgt _080BFD90 - cmp r6, 0 - beq _080BFD9A - b _080BFDFC - .align 2, 0 -_080BFD8C: .4byte 0x02007000 -_080BFD90: - cmp r6, 0x2 - beq _080BFDCC - cmp r6, 0x3 - beq _080BFDE8 - b _080BFDFC -_080BFD9A: - ldr r0, _080BFDB4 - movs r2, 0xE1 - lsls r2, 2 - adds r1, r4, r2 - movs r3, 0xE1 - lsls r3, 3 - adds r2, r4, r3 - ldr r5, _080BFDB8 - adds r3, r4, r5 - bl sub_80BFE24 - b _080BFDFC - .align 2, 0 -_080BFDB4: .4byte gSaveBlock1 + 0x2738 -_080BFDB8: .4byte 0x00000a8c -_080BFDBC: - ldr r1, _080BFDC8 - movs r0, 0xE1 - lsls r0, 3 - adds r2, r4, r0 - b _080BFDD4 - .align 2, 0 -_080BFDC8: .4byte gSaveBlock1 + 0x2738 -_080BFDCC: - movs r0, 0xE1 - lsls r0, 2 - adds r1, r4, r0 - ldr r2, _080BFDE0 -_080BFDD4: - ldr r5, _080BFDE4 - adds r3, r4, r5 - adds r0, r4, 0 - bl sub_80BFE24 - b _080BFDFC - .align 2, 0 -_080BFDE0: .4byte gSaveBlock1 + 0x2738 -_080BFDE4: .4byte 0x00000a8c -_080BFDE8: - movs r0, 0xE1 - lsls r0, 2 - adds r1, r5, r0 - movs r3, 0xE1 - lsls r3, 3 - adds r2, r5, r3 - ldr r3, _080BFE20 - adds r0, r5, 0 - bl sub_80BFE24 -_080BFDFC: - ldr r4, _080BFE20 - adds r0, r4, 0 - bl sub_80BF588 - bl sub_80C04A0 - adds r0, r4, 0 - bl sub_80BF588 - bl sub_80C01D4 - bl sub_80C0408 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BFE20: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80BFD44 - - thumb_func_start sub_80BFE24 -sub_80BFE24: @ 80BFE24 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - str r0, [sp, 0x10] - str r1, [sp, 0x14] - str r2, [sp, 0x18] - str r3, [sp, 0x1C] - add r0, sp, 0x10 - str r0, [sp] - add r0, sp, 0x14 - str r0, [sp, 0x4] - add r0, sp, 0x18 - str r0, [sp, 0x8] - add r0, sp, 0x1C - str r0, [sp, 0xC] - bl GetLinkPlayerCount - ldr r1, _080BFEA0 - strb r0, [r1] -_080BFE50: - movs r6, 0 - ldr r0, _080BFEA0 - ldrb r1, [r0] - cmp r6, r1 - bcs _080BFE50 - mov r10, r0 -_080BFE5C: - cmp r6, 0 - bne _080BFE64 - ldr r2, _080BFEA4 - strb r6, [r2] -_080BFE64: - lsls r4, r6, 2 - mov r3, sp - adds r0, r3, r4 - ldr r0, [r0] - ldr r0, [r0] - bl sub_80C019C - ldr r1, _080BFEA8 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - adds r7, r4, 0 - cmp r0, r1 - bne _080BFEAC - ldr r1, _080BFEA4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - mov r2, r10 - ldrb r2, [r2] - cmp r0, r2 - beq _080BFF58 - adds r6, 0x1 - mov r9, r6 - b _080BFF3C - .align 2, 0 -_080BFEA0: .4byte gUnknown_03000720 -_080BFEA4: .4byte gUnknown_020387E4 -_080BFEA8: .4byte gUnknown_03000722 -_080BFEAC: - movs r5, 0 - mov r3, r10 - ldrb r0, [r3] - subs r0, 0x1 - adds r2, r6, 0x1 - mov r9, r2 - cmp r5, r0 - bge _080BFF22 - ldr r3, _080BFF4C - mov r8, r3 -_080BFEC0: - adds r0, r6, r5 - adds r4, r0, 0x1 - mov r0, r8 - ldrb r1, [r0] - adds r0, r4, 0 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r0, [r0] - bl sub_80BF74C - ldr r1, _080BFF50 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BFF12 - mov r2, r8 - ldrb r1, [r2] - adds r0, r4, 0 - bl __modsi3 - adds r2, r0, 0 - lsls r0, r2, 2 - add r0, sp - ldr r0, [r0] - mov r3, sp - adds r1, r3, r7 - ldr r1, [r1] - lsls r2, 24 - lsrs r2, 24 - bl sub_80BFF68 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BFF22 -_080BFF12: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r1, r8 - ldrb r0, [r1] - subs r0, 0x1 - cmp r5, r0 - blt _080BFEC0 -_080BFF22: - mov r2, r10 - ldrb r0, [r2] - subs r0, 0x1 - cmp r5, r0 - bne _080BFF3C - mov r3, sp - adds r0, r3, r7 - ldr r0, [r0] - ldr r0, [r0] - ldr r1, _080BFF54 - ldrb r1, [r1] - bl sub_80BF55C -_080BFF3C: - mov r1, r9 - lsls r0, r1, 24 - lsrs r6, r0, 24 - mov r2, r10 - ldrb r2, [r2] - cmp r6, r2 - bcc _080BFE5C - b _080BFE50 - .align 2, 0 -_080BFF4C: .4byte gUnknown_03000720 -_080BFF50: .4byte gUnknown_03005D38 -_080BFF54: .4byte gUnknown_03000722 -_080BFF58: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BFE24 - - thumb_func_start sub_80BFF68 -sub_80BFF68: @ 80BFF68 - push {r4-r7,lr} - sub sp, 0x4 - lsls r2, 24 - lsrs r7, r2, 24 - ldr r4, [r0] - ldr r6, [r1] - movs r5, 0 - ldr r2, _080BFFA4 - movs r1, 0 - ldrsb r1, [r2, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0] - str r2, [sp] - bl sub_80BFB54 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - ldr r2, [sp] - cmp r0, 0x3 - beq _080BFFD8 - cmp r0, 0x3 - bgt _080BFFA8 - cmp r0, 0x2 - beq _080BFFAE - b _080C0026 - .align 2, 0 -_080BFFA4: .4byte gUnknown_03000722 -_080BFFA8: - cmp r1, 0x4 - beq _080C0000 - b _080C0026 -_080BFFAE: - ldr r0, _080BFFD4 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r6, r1 - adds r2, r7, 0 - bl sub_80C004C - b _080C0022 - .align 2, 0 -_080BFFD4: .4byte gUnknown_03005D38 -_080BFFD8: - ldr r0, _080BFFFC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r6, r1 - adds r2, r7, 0 - bl sub_80C00B4 - b _080C0022 - .align 2, 0 -_080BFFFC: .4byte gUnknown_03005D38 -_080C0000: - ldr r0, _080C0030 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r6, r1 - adds r2, r7, 0 - bl sub_80C0134 -_080C0022: - lsls r0, 24 - lsrs r5, r0, 24 -_080C0026: - cmp r5, 0x1 - beq _080C0034 - movs r0, 0 - b _080C0040 - .align 2, 0 -_080C0030: .4byte gUnknown_03005D38 -_080C0034: - ldr r0, _080C0048 - ldrb r1, [r0] - adds r0, r6, 0 - bl sub_80BF55C - movs r0, 0x1 -_080C0040: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080C0048: .4byte gUnknown_03000722 - thumb_func_end sub_80BFF68 - - thumb_func_start sub_80C004C -sub_80C004C: @ 80C004C - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - lsls r0, r2, 24 - lsrs r0, 24 - bl GetLinkPlayerTrainerId - adds r5, r0, 0 - movs r2, 0xFF - ands r0, r2 - adds r1, r4, 0 - adds r1, 0x22 - ldrb r1, [r1] - cmp r0, r1 - bne _080C007C - lsrs r0, r5, 8 - ands r0, r2 - adds r1, r4, 0 - adds r1, 0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080C007C - movs r0, 0 - b _080C00AC -_080C007C: - adds r1, r4, 0 - adds r1, 0x20 - ldrb r0, [r1] - adds r2, r4, 0 - adds r2, 0x22 - strb r0, [r2] - adds r3, r4, 0 - adds r3, 0x21 - ldrb r0, [r3] - adds r2, 0x1 - strb r0, [r2] - strb r5, [r1] - lsrs r0, r5, 8 - strb r0, [r3] - adds r1, r6, 0 - adds r0, r4, 0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0x1 - strb r0, [r6, 0x1] -_080C00AC: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C004C - - thumb_func_start sub_80C00B4 -sub_80C00B4: @ 80C00B4 - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - lsls r0, r2, 24 - lsrs r0, 24 - bl GetLinkPlayerTrainerId - adds r2, r0, 0 - movs r3, 0xFF - ands r0, r3 - adds r1, r4, 0 - adds r1, 0x20 - ldrb r1, [r1] - cmp r0, r1 - bne _080C00E0 - lsrs r0, r2, 8 - ands r0, r3 - adds r1, r4, 0 - adds r1, 0x21 - ldrb r1, [r1] - cmp r0, r1 - beq _080C0100 -_080C00E0: - movs r3, 0xFF - adds r0, r2, 0 - ands r0, r3 - adds r1, r4, 0 - adds r1, 0x22 - lsrs r5, r2, 8 - ldrb r1, [r1] - cmp r0, r1 - bne _080C0104 - adds r0, r5, 0 - ands r0, r3 - adds r1, r4, 0 - adds r1, 0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080C0104 -_080C0100: - movs r0, 0 - b _080C012C -_080C0104: - ldrb r1, [r4, 0x1E] - adds r0, r4, 0 - adds r0, 0x20 - strb r1, [r0] - ldrb r0, [r4, 0x1F] - adds r1, r4, 0 - adds r1, 0x21 - strb r0, [r1] - strb r2, [r4, 0x1E] - strb r5, [r4, 0x1F] - adds r1, r6, 0 - adds r0, r4, 0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0x1 - strb r0, [r6, 0x1] -_080C012C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C00B4 - - thumb_func_start sub_80C0134 -sub_80C0134: @ 80C0134 - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - lsls r0, r2, 24 - lsrs r0, 24 - bl GetLinkPlayerTrainerId - adds r5, r0, 0 - movs r2, 0xFF - ands r0, r2 - adds r1, r4, 0 - adds r1, 0x22 - ldrb r1, [r1] - cmp r0, r1 - bne _080C0164 - lsrs r0, r5, 8 - ands r0, r2 - adds r1, r4, 0 - adds r1, 0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080C0164 - movs r0, 0 - b _080C0196 -_080C0164: - adds r1, r4, 0 - adds r1, 0x20 - ldrb r0, [r1] - adds r2, r4, 0 - adds r2, 0x22 - strb r0, [r2] - adds r3, r4, 0 - adds r3, 0x21 - ldrb r0, [r3] - adds r2, 0x1 - strb r0, [r2] - strb r5, [r1] - lsrs r0, r5, 8 - strb r0, [r3] - adds r1, r6, 0 - adds r0, r4, 0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0x1 - strb r0, [r6, 0x1] - strh r0, [r6, 0x16] -_080C0196: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C0134 - - thumb_func_start sub_80C019C -sub_80C019C: @ 80C019C - push {lr} - adds r3, r0, 0 - movs r2, 0 -_080C01A2: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r3 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _080C01C2 - ldrb r0, [r1] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3B - bhi _080C01C2 - lsls r0, r2, 24 - asrs r0, 24 - b _080C01D0 -_080C01C2: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x17 - bls _080C01A2 - movs r0, 0x1 - negs r0, r0 -_080C01D0: - pop {r1} - bx r1 - thumb_func_end sub_80C019C - - thumb_func_start sub_80C01D4 -sub_80C01D4: @ 80C01D4 - push {r4-r6,lr} - movs r6, 0 -_080C01D8: - ldr r0, _080C01F8 - lsls r2, r6, 3 - adds r1, r2, r6 - lsls r1, 2 - adds r1, r0 - ldr r0, _080C01FC - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x29 - bls _080C01EE - b _080C038C -_080C01EE: - lsls r0, 2 - ldr r1, _080C0200 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C01F8: .4byte gSaveBlock1 -_080C01FC: .4byte 0x00002738 -_080C0200: .4byte _080C0204 - .align 2, 0 -_080C0204: - .4byte _080C0394 - .4byte _080C02AC - .4byte _080C0394 - .4byte _080C02BC - .4byte _080C02CC - .4byte _080C02DC - .4byte _080C02F8 - .4byte _080C0308 - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C0324 - .4byte _080C0394 - .4byte _080C0334 - .4byte _080C0350 - .4byte _080C0368 - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C0394 -_080C02AC: - adds r0, r2, r6 - lsls r0, 2 - ldr r1, _080C02B8 - adds r0, r1 - ldrh r0, [r0, 0x2] - b _080C035A - .align 2, 0 -_080C02B8: .4byte gSaveBlock1 + 0x2738 -_080C02BC: - adds r0, r2, r6 - lsls r0, 2 - ldr r1, _080C02C8 - adds r0, r1 - ldrh r0, [r0, 0x2] - b _080C035A - .align 2, 0 -_080C02C8: .4byte gSaveBlock1 + 0x2738 -_080C02CC: - adds r0, r2, r6 - lsls r0, 2 - ldr r1, _080C02D8 - adds r0, r1 - ldrh r0, [r0, 0x6] - b _080C035A - .align 2, 0 -_080C02D8: .4byte gSaveBlock1 + 0x2738 -_080C02DC: - adds r4, r2, r6 - lsls r4, 2 - ldr r0, _080C02F4 - adds r4, r0 - ldrh r0, [r4, 0x2] - lsls r5, r6, 24 - lsrs r5, 24 - adds r1, r5, 0 - bl sub_80C03C8 - ldrh r0, [r4, 0x1C] - b _080C037E - .align 2, 0 -_080C02F4: .4byte gSaveBlock1 + 0x2738 -_080C02F8: - adds r0, r2, r6 - lsls r0, 2 - ldr r1, _080C0304 - adds r0, r1 - ldrh r0, [r0, 0x2] - b _080C035A - .align 2, 0 -_080C0304: .4byte gSaveBlock1 + 0x2738 -_080C0308: - adds r4, r2, r6 - lsls r4, 2 - ldr r0, _080C0320 - adds r4, r0 - ldrh r0, [r4, 0xA] - lsls r5, r6, 24 - lsrs r5, 24 - adds r1, r5, 0 - bl sub_80C03C8 - ldrh r0, [r4, 0x14] - b _080C037E - .align 2, 0 -_080C0320: .4byte gSaveBlock1 + 0x2738 -_080C0324: - adds r0, r2, r6 - lsls r0, 2 - ldr r1, _080C0330 - adds r0, r1 - ldrh r0, [r0, 0x10] - b _080C035A - .align 2, 0 -_080C0330: .4byte gSaveBlock1 + 0x2738 -_080C0334: - adds r4, r2, r6 - lsls r4, 2 - ldr r0, _080C034C - adds r4, r0 - ldrh r0, [r4, 0xC] - lsls r5, r6, 24 - lsrs r5, 24 - adds r1, r5, 0 - bl sub_80C03C8 - ldrh r0, [r4, 0xE] - b _080C037E - .align 2, 0 -_080C034C: .4byte gSaveBlock1 + 0x2738 -_080C0350: - adds r0, r2, r6 - lsls r0, 2 - ldr r1, _080C0364 - adds r0, r1 - ldrh r0, [r0, 0x4] -_080C035A: - lsls r1, r6, 24 - lsrs r1, 24 - bl sub_80C03C8 - b _080C0394 - .align 2, 0 -_080C0364: .4byte gSaveBlock1 + 0x2738 -_080C0368: - adds r4, r2, r6 - lsls r4, 2 - ldr r0, _080C0388 - adds r4, r0 - ldrh r0, [r4, 0x8] - lsls r5, r6, 24 - lsrs r5, 24 - adds r1, r5, 0 - bl sub_80C03C8 - ldrh r0, [r4, 0x4] -_080C037E: - adds r1, r5, 0 - bl sub_80C03C8 - b _080C0394 - .align 2, 0 -_080C0388: .4byte gSaveBlock1 + 0x2738 -_080C038C: - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_80C03A8 -_080C0394: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x17 - bhi _080C03A0 - b _080C01D8 -_080C03A0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80C01D4 - - thumb_func_start sub_80C03A8 -sub_80C03A8: @ 80C03A8 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C03C0 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r0, _080C03C4 - adds r1, r0 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080C03C0: .4byte gSaveBlock1 -_080C03C4: .4byte 0x00002739 - thumb_func_end sub_80C03A8 - - thumb_func_start sub_80C03C8 -sub_80C03C8: @ 80C03C8 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl sub_8090D90 - lsls r0, 24 - asrs r2, r0, 24 - cmp r2, 0 - bne _080C03F8 - ldr r1, _080C0400 - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldr r1, _080C0404 - adds r0, r1 - strb r2, [r0] -_080C03F8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C0400: .4byte gSaveBlock1 -_080C0404: .4byte 0x00002739 - thumb_func_end sub_80C03C8 - - thumb_func_start sub_80C0408 -sub_80C0408: @ 80C0408 - push {r4-r6,lr} - ldr r0, _080C044C - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C0444 - movs r2, 0 - ldr r6, _080C0450 - ldr r4, _080C0454 - movs r3, 0 - ldr r5, _080C0458 -_080C0422: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r6 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0x7 - beq _080C0436 - cmp r0, 0x29 - bne _080C043A -_080C0436: - adds r0, r1, r4 - strb r3, [r0] -_080C043A: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x17 - bls _080C0422 -_080C0444: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C044C: .4byte 0x00000804 -_080C0450: .4byte gSaveBlock1 -_080C0454: .4byte 0x00002739 -_080C0458: .4byte 0x00002738 - thumb_func_end sub_80C0408 - - thumb_func_start sub_80C045C -sub_80C045C: @ 80C045C - push {r4-r6,lr} - movs r5, 0 - ldr r6, _080C0494 -_080C0462: - lsls r0, r5, 3 - adds r0, r5 - lsls r0, 2 - adds r4, r0, r6 - ldr r1, _080C0498 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80BFB54 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080C0484 - ldr r0, _080C049C - adds r1, r4, r0 - movs r0, 0 - strb r0, [r1] -_080C0484: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _080C0462 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C0494: .4byte gSaveBlock1 -_080C0498: .4byte 0x00002738 -_080C049C: .4byte 0x00002739 - thumb_func_end sub_80C045C - - thumb_func_start sub_80C04A0 -sub_80C04A0: @ 80C04A0 - push {r4,r5,lr} - movs r3, 0 - movs r2, 0x5 - ldr r5, _080C0508 - ldr r4, _080C050C -_080C04AA: - lsls r0, r2, 24 - asrs r1, r0, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _080C04C8 - lsls r0, r3, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r3, r0, 24 -_080C04C8: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, 0x17 - ble _080C04AA - movs r2, 0 - lsls r0, r3, 24 - asrs r0, 24 - movs r1, 0x5 - subs r0, r1, r0 - cmp r2, r0 - bge _080C0502 - adds r5, r0, 0 -_080C04E4: - lsls r1, r2, 24 - asrs r4, r1, 24 - movs r0, 0xA0 - lsls r0, 19 - adds r1, r0 - lsrs r1, 24 - ldr r0, _080C0510 - bl sub_80BF55C - adds r4, 0x1 - lsls r4, 24 - lsrs r2, r4, 24 - asrs r4, 24 - cmp r4, r5 - blt _080C04E4 -_080C0502: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C0508: .4byte gSaveBlock1 -_080C050C: .4byte 0x00002738 -_080C0510: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80C04A0 - - thumb_func_start sub_80C0514 -sub_80C0514: @ 80C0514 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r7, r1, 0 - lsls r2, 24 - lsrs r5, r2, 24 - movs r4, 0 -_080C0524: - lsls r0, r4, 6 - ldr r6, _080C0550 - adds r0, r6 - adds r1, r4, 0 - muls r1, r7 - add r1, r8 - movs r2, 0x40 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080C0524 - adds r4, r6, 0 - cmp r5, 0x1 - beq _080C0578 - cmp r5, 0x1 - bgt _080C0554 - cmp r5, 0 - beq _080C055E - b _080C05AC - .align 2, 0 -_080C0550: .4byte 0x02007000 -_080C0554: - cmp r5, 0x2 - beq _080C0584 - cmp r5, 0x3 - beq _080C059C - b _080C05AC -_080C055E: - ldr r0, _080C0574 - adds r1, r4, 0 - adds r1, 0x40 - adds r2, r4, 0 - adds r2, 0x80 - adds r3, r4, 0 - adds r3, 0xC0 - bl sub_80C05C4 - b _080C05AC - .align 2, 0 -_080C0574: .4byte gSaveBlock1 + 0x2ABC -_080C0578: - ldr r1, _080C0580 - adds r2, r4, 0 - adds r2, 0x80 - b _080C058A - .align 2, 0 -_080C0580: .4byte gSaveBlock1 + 0x2ABC -_080C0584: - adds r1, r4, 0 - adds r1, 0x40 - ldr r2, _080C0598 -_080C058A: - adds r3, r4, 0 - adds r3, 0xC0 - adds r0, r4, 0 - bl sub_80C05C4 - b _080C05AC - .align 2, 0 -_080C0598: .4byte gSaveBlock1 + 0x2ABC -_080C059C: - adds r1, r6, 0 - adds r1, 0x40 - adds r2, r6, 0 - adds r2, 0x80 - ldr r3, _080C05C0 - adds r0, r6, 0 - bl sub_80C05C4 -_080C05AC: - bl sub_80C0750 - bl sub_80C0788 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C05C0: .4byte gSaveBlock1 + 0x2ABC - thumb_func_end sub_80C0514 - - thumb_func_start sub_80C05C4 -sub_80C05C4: @ 80C05C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r0, [sp, 0x10] - str r1, [sp, 0x14] - str r2, [sp, 0x18] - str r3, [sp, 0x1C] - add r0, sp, 0x10 - str r0, [sp] - add r0, sp, 0x14 - str r0, [sp, 0x4] - add r0, sp, 0x18 - str r0, [sp, 0x8] - add r0, sp, 0x1C - str r0, [sp, 0xC] - bl GetLinkPlayerCount - ldr r1, _080C0600 - strb r0, [r1] - movs r0, 0 - mov r10, r0 -_080C05F4: - movs r7, 0 - mov r1, r10 - adds r1, 0x1 - str r1, [sp, 0x20] - b _080C068C - .align 2, 0 -_080C0600: .4byte gUnknown_03000721 -_080C0604: - lsls r4, r7, 2 - mov r1, sp - adds r0, r1, r4 - ldr r0, [r0] - ldr r0, [r0] - mov r1, r10 - bl sub_80C0730 - ldr r1, _080C06B0 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - mov r8, r4 - adds r1, r7, 0x1 - mov r9, r1 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080C0686 - movs r5, 0 - ldr r1, _080C06B4 - ldrb r0, [r1] - subs r0, 0x1 - cmp r5, r0 - bge _080C0686 - adds r6, r1, 0 -_080C0638: - adds r0, r7, r5 - adds r4, r0, 0x1 - ldrb r1, [r6] - adds r0, r4, 0 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r0, [r0] - bl sub_80BEBC8 - ldr r1, _080C06B8 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080C0678 - ldrb r1, [r6] - adds r0, r4, 0 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - mov r1, sp - add r1, r8 - ldr r1, [r1] - bl sub_80C06BC -_080C0678: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r6] - subs r0, 0x1 - cmp r5, r0 - blt _080C0638 -_080C0686: - mov r1, r9 - lsls r0, r1, 24 - lsrs r7, r0, 24 -_080C068C: - ldr r0, _080C06B4 - ldrb r0, [r0] - cmp r7, r0 - bcc _080C0604 - ldr r1, [sp, 0x20] - lsls r0, r1, 24 - lsrs r0, 24 - mov r10, r0 - cmp r0, 0xF - bls _080C05F4 - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C06B0: .4byte gUnknown_03000722 -_080C06B4: .4byte gUnknown_03000721 -_080C06B8: .4byte gUnknown_03005D38 - thumb_func_end sub_80C05C4 - - thumb_func_start sub_80C06BC -sub_80C06BC: @ 80C06BC - push {lr} - ldr r0, [r0] - ldr r1, [r1] - ldr r2, _080C06E0 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - lsls r2, 2 - adds r1, r2 - ldr r2, _080C06E4 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - bl sub_80C06E8 - pop {r0} - bx r0 - .align 2, 0 -_080C06E0: .4byte gUnknown_03000722 -_080C06E4: .4byte gUnknown_03005D38 - thumb_func_end sub_80C06BC - - thumb_func_start sub_80C06E8 -sub_80C06E8: @ 80C06E8 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r6, r2, 24 - ldrb r3, [r5] - adds r0, r3, 0 - cmp r0, 0 - bne _080C06FE -_080C06FA: - movs r0, 0 - b _080C072A -_080C06FE: - movs r1, 0 - adds r2, r3, 0 - adds r3, r0, 0 -_080C0704: - lsls r0, r1, 2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, r3 - beq _080C06FA - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080C0704 - lsls r0, r6, 24 - asrs r0, 22 - adds r0, r4 - strb r2, [r0] - movs r1, 0x1 - strb r1, [r0, 0x1] - ldrh r1, [r5, 0x2] - strh r1, [r0, 0x2] - movs r0, 0x1 -_080C072A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C06E8 - - thumb_func_start sub_80C0730 -sub_80C0730: @ 80C0730 - push {lr} - lsls r1, 24 - lsrs r2, r1, 24 - lsls r1, r2, 2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080C0746 - lsls r0, r2, 24 - asrs r0, 24 - b _080C074A -_080C0746: - movs r0, 0x1 - negs r0, r0 -_080C074A: - pop {r1} - bx r1 - thumb_func_end sub_80C0730 - - thumb_func_start sub_80C0750 -sub_80C0750: @ 80C0750 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _080C0780 -_080C0756: - lsls r0, r4, 2 - adds r0, r5 - ldr r1, _080C0784 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - bls _080C076A - adds r0, r4, 0 - bl sub_80BEC10 -_080C076A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080C0756 - bl sub_80BEC40 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C0780: .4byte gSaveBlock1 -_080C0784: .4byte 0x00002abc - thumb_func_end sub_80C0750 - - thumb_func_start sub_80C0788 -sub_80C0788: @ 80C0788 - push {r4,lr} - ldr r0, _080C07B8 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C07B2 - movs r1, 0 - ldr r4, _080C07BC - ldr r3, _080C07C0 - movs r2, 0 -_080C07A0: - lsls r0, r1, 2 - adds r0, r4 - adds r0, r3 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080C07A0 -_080C07B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C07B8: .4byte 0x00000804 -_080C07BC: .4byte gSaveBlock1 -_080C07C0: .4byte 0x00002abd - thumb_func_end sub_80C0788 - - thumb_func_start sub_80C07C4 -sub_80C07C4: @ 80C07C4 - push {lr} - ldr r2, _080C07F8 - ldr r0, _080C07FC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldr r2, _080C0800 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080C07E0 - b _080C08F8 -_080C07E0: - subs r2, 0x1 - adds r0, r1, r2 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, 0x28 - bls _080C07EE - b _080C08F8 -_080C07EE: - lsls r0, 2 - ldr r1, _080C0804 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C07F8: .4byte gSaveBlock1 -_080C07FC: .4byte gUnknown_0202E8CC -_080C0800: .4byte 0x00002739 -_080C0804: .4byte _080C0808 - .align 2, 0 -_080C0808: - .4byte _080C08AC - .4byte _080C08B2 - .4byte _080C08B8 - .4byte _080C08BE - .4byte _080C08E2 - .4byte _080C08CA - .4byte _080C08D0 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08D6 - .4byte _080C08DC - .4byte _080C08E8 - .4byte _080C08EE - .4byte _080C08F4 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08C4 -_080C08AC: - bl DoTVShowPokemonFanClubLetter - b _080C08F8 -_080C08B2: - bl DoTVShowRecentHappenings - b _080C08F8 -_080C08B8: - bl DoTVShowPokemonFanClubOpinions - b _080C08F8 -_080C08BE: - bl nullsub_22 - b _080C08F8 -_080C08C4: - bl DoTVShowPokemonNewsMassOutbreak - b _080C08F8 -_080C08CA: - bl DoTVShowBravoTrainerPokemonProfile - b _080C08F8 -_080C08D0: - bl sub_80C0B9C - b _080C08F8 -_080C08D6: - bl DoTVShowPokemonTodaySuccessfulCapture - b _080C08F8 -_080C08DC: - bl DoTVShowTodaysSmartShopper - b _080C08F8 -_080C08E2: - bl DoTVShowTheNameRaterShow - b _080C08F8 -_080C08E8: - bl DoTVShowPokemonTodayFailedCapture - b _080C08F8 -_080C08EE: - bl DoTVShowPokemonAngler - b _080C08F8 -_080C08F4: - bl DoTVShowTheWorldOfMasters -_080C08F8: - pop {r0} - bx r0 - thumb_func_end sub_80C07C4 - - thumb_func_start sub_80C08FC -sub_80C08FC: @ 80C08FC - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r2, 24 - lsrs r4, 24 - bl StringCopy - cmp r4, 0x1 - bhi _080C0914 - adds r0, r5, 0 - movs r1, 0x1 - bl ConvertInternationalString -_080C0914: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C08FC - - thumb_func_start DoTVShowBravoTrainerPokemonProfile -DoTVShowBravoTrainerPokemonProfile: @ 80C091C - push {r4,r5,lr} - ldr r0, _080C0948 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C094C - adds r4, r0, r1 - ldr r1, _080C0950 - movs r0, 0 - strh r0, [r1] - ldr r0, _080C0954 - ldrb r5, [r0] - cmp r5, 0x8 - bls _080C093C - b _080C0B7A -_080C093C: - lsls r0, r5, 2 - ldr r1, _080C0958 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C0948: .4byte gUnknown_0202E8CC -_080C094C: .4byte gSaveBlock1 + 0x2738 -_080C0950: .4byte gScriptResult -_080C0954: .4byte gUnknown_020387E8 -_080C0958: .4byte _080C095C - .align 2, 0 -_080C095C: - .4byte _080C0980 - .4byte _080C09D8 - .4byte _080C0A10 - .4byte _080C0A40 - .4byte _080C0A74 - .4byte _080C0AA8 - .4byte _080C0AEC - .4byte _080C0B34 - .4byte _080C0B64 -_080C0980: - ldr r0, _080C09C0 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_80C08FC - ldrb r1, [r4, 0x13] - lsls r1, 29 - lsrs r1, 29 - movs r0, 0x1 - bl CopyContestCategoryToStringVar - ldrb r1, [r4, 0x13] - lsls r1, 27 - lsrs r1, 30 - movs r0, 0x2 - bl sub_80BEF10 - ldrh r1, [r4, 0x2] - movs r0, 0xB - muls r0, r1 - ldr r1, _080C09C4 - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x8 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - bne _080C09CC - ldr r1, _080C09C8 - movs r0, 0x8 - b _080C0B78 - .align 2, 0 -_080C09C0: .4byte gStringVar1 -_080C09C4: .4byte gSpeciesNames -_080C09C8: .4byte gUnknown_020387E8 -_080C09CC: - ldr r1, _080C09D4 - movs r0, 0x1 - b _080C0B78 - .align 2, 0 -_080C09D4: .4byte gUnknown_020387E8 -_080C09D8: - ldr r0, _080C0A04 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0A08 - adds r1, r2 - bl StringCopy - ldr r0, _080C0A0C - adds r1, r4, 0 - adds r1, 0x8 - ldrb r2, [r4, 0x1F] - bl sub_80C08FC - ldrb r1, [r4, 0x13] - lsls r1, 29 - lsrs r1, 29 - movs r0, 0x2 - bl CopyContestCategoryToStringVar - b _080C0B74 - .align 2, 0 -_080C0A04: .4byte gStringVar1 -_080C0A08: .4byte gSpeciesNames -_080C0A0C: .4byte gStringVar2 -_080C0A10: - ldr r0, _080C0A2C - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_80C08FC - ldrb r1, [r4, 0x13] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - bne _080C0A34 - ldr r1, _080C0A30 - movs r0, 0x3 - b _080C0B78 - .align 2, 0 -_080C0A2C: .4byte gStringVar1 -_080C0A30: .4byte gUnknown_020387E8 -_080C0A34: - ldr r1, _080C0A3C - movs r0, 0x4 - b _080C0B78 - .align 2, 0 -_080C0A3C: .4byte gUnknown_020387E8 -_080C0A40: - ldr r0, _080C0A68 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_80C08FC - ldr r0, _080C0A6C - ldrh r1, [r4, 0x4] - bl sub_80EB3FC - ldrb r1, [r4, 0x13] - lsls r1, 25 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x2 - bl sub_80BF088 - ldr r1, _080C0A70 - movs r0, 0x5 - b _080C0B78 - .align 2, 0 -_080C0A68: .4byte gStringVar1 -_080C0A6C: .4byte gStringVar2 -_080C0A70: .4byte gUnknown_020387E8 -_080C0A74: - ldr r0, _080C0A9C - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_80C08FC - ldr r0, _080C0AA0 - ldrh r1, [r4, 0x4] - bl sub_80EB3FC - ldrb r1, [r4, 0x13] - lsls r1, 25 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x2 - bl sub_80BF088 - ldr r1, _080C0AA4 - movs r0, 0x5 - b _080C0B78 - .align 2, 0 -_080C0A9C: .4byte gStringVar1 -_080C0AA0: .4byte gStringVar2 -_080C0AA4: .4byte gUnknown_020387E8 -_080C0AA8: - ldr r0, _080C0AD4 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_80C08FC - ldrb r1, [r4, 0x13] - lsls r1, 29 - lsrs r1, 29 - movs r0, 0x1 - bl CopyContestCategoryToStringVar - ldr r0, _080C0AD8 - ldrh r1, [r4, 0x6] - bl sub_80EB3FC - ldrh r0, [r4, 0x14] - cmp r0, 0 - beq _080C0AE0 - ldr r1, _080C0ADC - movs r0, 0x6 - b _080C0B78 - .align 2, 0 -_080C0AD4: .4byte gStringVar1 -_080C0AD8: .4byte gStringVar3 -_080C0ADC: .4byte gUnknown_020387E8 -_080C0AE0: - ldr r1, _080C0AE8 - movs r0, 0x7 - b _080C0B78 - .align 2, 0 -_080C0AE8: .4byte gUnknown_020387E8 -_080C0AEC: - ldr r0, _080C0B1C - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0B20 - adds r1, r2 - bl StringCopy - ldr r0, _080C0B24 - ldrh r2, [r4, 0x14] - movs r1, 0xD - muls r1, r2 - ldr r2, _080C0B28 - adds r1, r2 - bl StringCopy - ldr r0, _080C0B2C - ldrh r1, [r4, 0x6] - bl sub_80EB3FC - ldr r1, _080C0B30 - movs r0, 0x7 - b _080C0B78 - .align 2, 0 -_080C0B1C: .4byte gStringVar1 -_080C0B20: .4byte gSpeciesNames -_080C0B24: .4byte gStringVar2 -_080C0B28: .4byte gMoveNames -_080C0B2C: .4byte gStringVar3 -_080C0B30: .4byte gUnknown_020387E8 -_080C0B34: - ldr r0, _080C0B58 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_80C08FC - ldr r0, _080C0B5C - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0B60 - adds r1, r2 - bl StringCopy - bl TVShowDone - b _080C0B7A - .align 2, 0 -_080C0B58: .4byte gStringVar1 -_080C0B5C: .4byte gStringVar2 -_080C0B60: .4byte gSpeciesNames -_080C0B64: - ldr r0, _080C0B8C - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0B90 - adds r1, r2 - bl StringCopy -_080C0B74: - ldr r1, _080C0B94 - movs r0, 0x2 -_080C0B78: - strb r0, [r1] -_080C0B7A: - ldr r0, _080C0B98 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C0B8C: .4byte gStringVar1 -_080C0B90: .4byte gSpeciesNames -_080C0B94: .4byte gUnknown_020387E8 -_080C0B98: .4byte gUnknown_083D1524 - thumb_func_end DoTVShowBravoTrainerPokemonProfile - - thumb_func_start sub_80C0B9C -sub_80C0B9C: @ 80C0B9C - push {r4,r5,lr} - ldr r0, _080C0BC8 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C0BCC - adds r4, r0, r1 - ldr r1, _080C0BD0 - movs r0, 0 - strh r0, [r1] - ldr r0, _080C0BD4 - ldrb r5, [r0] - adds r2, r0, 0 - cmp r5, 0xE - bls _080C0BBE - b _080C0DDE -_080C0BBE: - lsls r0, r5, 2 - ldr r1, _080C0BD8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C0BC8: .4byte gUnknown_0202E8CC -_080C0BCC: .4byte gSaveBlock1 + 0x2738 -_080C0BD0: .4byte gScriptResult -_080C0BD4: .4byte gUnknown_020387E8 -_080C0BD8: .4byte _080C0BDC - .align 2, 0 -_080C0BDC: - .4byte _080C0C18 - .4byte _080C0C5C - .4byte _080C0C8C - .4byte _080C0CB0 - .4byte _080C0CDC - .4byte _080C0D24 - .4byte _080C0D30 - .4byte _080C0D3C - .4byte _080C0D42 - .4byte _080C0D42 - .4byte _080C0D42 - .4byte _080C0D5C - .4byte _080C0D88 - .4byte _080C0D88 - .4byte _080C0DC0 -_080C0C18: - ldr r0, _080C0C40 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x1D] - bl sub_80C08FC - ldr r0, _080C0C44 - ldrh r2, [r4, 0xA] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0C48 - adds r1, r2 - bl StringCopy - ldrh r0, [r4, 0x16] - cmp r0, 0x6 - bls _080C0C50 - ldr r1, _080C0C4C - movs r0, 0x1 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0C40: .4byte gStringVar1 -_080C0C44: .4byte gStringVar2 -_080C0C48: .4byte gSpeciesNames -_080C0C4C: .4byte gUnknown_020387E8 -_080C0C50: - ldr r1, _080C0C58 - movs r0, 0x2 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0C58: .4byte gUnknown_020387E8 -_080C0C5C: - ldrb r1, [r4, 0x1A] - movs r0, 0 - bl sub_80BF088 - ldrh r1, [r4, 0x16] - movs r0, 0x1 - bl sub_80BF088 - ldrb r0, [r4, 0x1C] - cmp r0, 0x1 - bne _080C0C80 - ldr r1, _080C0C7C - movs r0, 0x3 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0C7C: .4byte gUnknown_020387E8 -_080C0C80: - ldr r1, _080C0C88 - movs r0, 0x4 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0C88: .4byte gUnknown_020387E8 -_080C0C8C: - ldr r0, _080C0CAC - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1D] - bl sub_80C08FC - ldrh r1, [r4, 0x16] - adds r1, 0x1 - movs r0, 0x1 - bl sub_80BF088 -_080C0CA2: - ldrb r0, [r4, 0x1B] - cmp r0, 0 - beq _080C0CFE - b _080C0D18 - .align 2, 0 -_080C0CAC: .4byte gStringVar1 -_080C0CB0: - ldr r0, _080C0CD0 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1D] - bl sub_80C08FC - ldr r0, _080C0CD4 - ldrh r2, [r4, 0x14] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0CD8 - adds r1, r2 - bl StringCopy - b _080C0CA2 - .align 2, 0 -_080C0CD0: .4byte gStringVar1 -_080C0CD4: .4byte gStringVar2 -_080C0CD8: .4byte gSpeciesNames -_080C0CDC: - ldr r0, _080C0D08 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1D] - bl sub_80C08FC - ldr r0, _080C0D0C - ldrh r2, [r4, 0x14] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0D10 - adds r1, r2 - bl StringCopy - ldrb r0, [r4, 0x1B] - cmp r0, 0 - bne _080C0D18 -_080C0CFE: - ldr r1, _080C0D14 - movs r0, 0x5 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0D08: .4byte gStringVar1 -_080C0D0C: .4byte gStringVar2 -_080C0D10: .4byte gSpeciesNames -_080C0D14: .4byte gUnknown_020387E8 -_080C0D18: - ldr r1, _080C0D20 - movs r0, 0x6 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0D20: .4byte gUnknown_020387E8 -_080C0D24: - ldr r0, _080C0D2C - adds r1, r4, 0 - adds r1, 0xC - b _080C0D46 - .align 2, 0 -_080C0D2C: .4byte gStringVar1 -_080C0D30: - ldr r0, _080C0D38 - adds r1, r4, 0 - adds r1, 0xC - b _080C0D46 - .align 2, 0 -_080C0D38: .4byte gStringVar1 -_080C0D3C: - movs r0, 0xB - strb r0, [r2] - b _080C0DDE -_080C0D42: - ldr r0, _080C0D54 - adds r1, r4, 0x2 -_080C0D46: - ldrb r2, [r4, 0x1D] - bl sub_80C08FC - ldr r1, _080C0D58 - movs r0, 0xB - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0D54: .4byte gStringVar1 -_080C0D58: .4byte gUnknown_020387E8 -_080C0D5C: - ldr r0, _080C0D74 - ldrh r1, [r4, 0x18] - bl sub_80EB3FC - ldrb r0, [r4, 0x1B] - cmp r0, 0 - bne _080C0D7C - ldr r1, _080C0D78 - movs r0, 0xC - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0D74: .4byte gStringVar1 -_080C0D78: .4byte gUnknown_020387E8 -_080C0D7C: - ldr r1, _080C0D84 - movs r0, 0xD - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0D84: .4byte gUnknown_020387E8 -_080C0D88: - ldr r0, _080C0DB0 - ldrh r1, [r4, 0x18] - bl sub_80EB3FC - ldr r0, _080C0DB4 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x1D] - bl sub_80C08FC - ldr r0, _080C0DB8 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1D] - bl sub_80C08FC - ldr r1, _080C0DBC - movs r0, 0xE - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0DB0: .4byte gStringVar1 -_080C0DB4: .4byte gStringVar2 -_080C0DB8: .4byte gStringVar3 -_080C0DBC: .4byte gUnknown_020387E8 -_080C0DC0: - ldr r0, _080C0DF0 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x1D] - bl sub_80C08FC - ldr r0, _080C0DF4 - ldrh r2, [r4, 0xA] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0DF8 - adds r1, r2 - bl StringCopy - bl TVShowDone -_080C0DDE: - ldr r0, _080C0DFC - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C0DF0: .4byte gStringVar1 -_080C0DF4: .4byte gStringVar2 -_080C0DF8: .4byte gSpeciesNames -_080C0DFC: .4byte gUnknown_083D1548 - thumb_func_end sub_80C0B9C - - thumb_func_start DoTVShowTodaysSmartShopper -DoTVShowTodaysSmartShopper: @ 80C0E00 - push {r4-r6,lr} - ldr r0, _080C0E2C - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C0E30 - adds r5, r0, r1 - ldr r1, _080C0E34 - movs r0, 0 - strh r0, [r1] - ldr r0, _080C0E38 - ldrb r6, [r0] - adds r2, r0, 0 - cmp r6, 0xC - bls _080C0E22 - b _080C1014 -_080C0E22: - lsls r0, r6, 2 - ldr r1, _080C0E3C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C0E2C: .4byte gUnknown_0202E8CC -_080C0E30: .4byte gSaveBlock1 + 0x2738 -_080C0E34: .4byte gScriptResult -_080C0E38: .4byte gUnknown_020387E8 -_080C0E3C: .4byte _080C0E40 - .align 2, 0 -_080C0E40: - .4byte _080C0E74 - .4byte _080C0EB0 - .4byte _080C0EF8 - .4byte _080C0F0A - .4byte _080C0EF8 - .4byte _080C0EF8 - .4byte _080C0F34 - .4byte _080C0F64 - .4byte _080C0F94 - .4byte _080C0FA0 - .4byte _080C0FAE - .4byte _080C0FC0 - .4byte _080C1004 -_080C0E74: - ldr r0, _080C0E98 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x3] - bl sub_80C08FC - ldr r0, _080C0E9C - ldrb r1, [r5, 0x12] - movs r2, 0 - bl sub_80FBFB4 - ldrh r0, [r5, 0xC] - cmp r0, 0xFE - bls _080C0EA4 - ldr r1, _080C0EA0 - movs r0, 0xB - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0E98: .4byte gStringVar1 -_080C0E9C: .4byte gStringVar2 -_080C0EA0: .4byte gUnknown_020387E8 -_080C0EA4: - ldr r1, _080C0EAC - movs r0, 0x1 - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0EAC: .4byte gUnknown_020387E8 -_080C0EB0: - ldr r0, _080C0EEC - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x3] - bl sub_80C08FC - ldr r4, _080C0EF0 - ldrh r0, [r5, 0x6] - bl itemid_get_item - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrh r1, [r5, 0xC] - movs r0, 0x2 - bl sub_80BF088 - ldr r4, _080C0EF4 - bl Random - ldrb r2, [r4] - adds r2, 0x1 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - ands r0, r1 - adds r0, r2 - strb r0, [r4] - b _080C1014 - .align 2, 0 -_080C0EEC: .4byte gStringVar1 -_080C0EF0: .4byte gStringVar2 -_080C0EF4: .4byte gUnknown_020387E8 -_080C0EF8: - ldrh r0, [r5, 0x8] - cmp r0, 0 - beq _080C0F04 - movs r0, 0x6 - strb r0, [r2] - b _080C1014 -_080C0F04: - movs r0, 0xA - strb r0, [r2] - b _080C1014 -_080C0F0A: - ldrh r1, [r5, 0xC] - adds r1, 0x1 - movs r0, 0x2 - bl sub_80BF088 - ldrh r0, [r5, 0x8] - cmp r0, 0 - beq _080C0F28 - ldr r1, _080C0F24 - movs r0, 0x6 - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0F24: .4byte gUnknown_020387E8 -_080C0F28: - ldr r1, _080C0F30 - movs r0, 0xA - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0F30: .4byte gUnknown_020387E8 -_080C0F34: - ldr r4, _080C0F5C - ldrh r0, [r5, 0x8] - bl itemid_get_item - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrh r1, [r5, 0xE] - movs r0, 0x2 - bl sub_80BF088 - ldrh r0, [r5, 0xA] - cmp r0, 0 - beq _080C0F7C - ldr r1, _080C0F60 - movs r0, 0x7 - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0F5C: .4byte gStringVar2 -_080C0F60: .4byte gUnknown_020387E8 -_080C0F64: - ldr r4, _080C0F8C - ldrh r0, [r5, 0xA] - bl itemid_get_item - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrh r1, [r5, 0x10] - movs r0, 0x2 - bl sub_80BF088 -_080C0F7C: - ldrb r0, [r5, 0x2] - cmp r0, 0x1 - beq _080C0FE2 - ldr r1, _080C0F90 - movs r0, 0x9 - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0F8C: .4byte gStringVar2 -_080C0F90: .4byte gUnknown_020387E8 -_080C0F94: - ldrh r0, [r5, 0xC] - cmp r0, 0xFE - bls _080C0FBA - movs r0, 0xC - strb r0, [r2] - b _080C1014 -_080C0FA0: - movs r0, 0x1 - adds r1, r5, 0 - bl sub_80BF154 - bl TVShowDone - b _080C1014 -_080C0FAE: - ldrb r0, [r5, 0x2] - cmp r0, 0x1 - bne _080C0FBA - movs r0, 0x8 - strb r0, [r2] - b _080C1014 -_080C0FBA: - movs r0, 0x9 - strb r0, [r2] - b _080C1014 -_080C0FC0: - ldr r0, _080C0FEC - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x3] - bl sub_80C08FC - ldr r4, _080C0FF0 - ldrh r0, [r5, 0x6] - bl itemid_get_item - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrb r0, [r5, 0x2] - cmp r0, 0x1 - bne _080C0FF8 -_080C0FE2: - ldr r1, _080C0FF4 - movs r0, 0x8 - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0FEC: .4byte gStringVar1 -_080C0FF0: .4byte gStringVar2 -_080C0FF4: .4byte gUnknown_020387E8 -_080C0FF8: - ldr r1, _080C1000 - movs r0, 0xC - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C1000: .4byte gUnknown_020387E8 -_080C1004: - ldr r0, _080C1028 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x3] - bl sub_80C08FC - bl TVShowDone -_080C1014: - ldr r0, _080C102C - lsls r1, r6, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C1028: .4byte gStringVar1 -_080C102C: .4byte gUnknown_083D14F0 - thumb_func_end DoTVShowTodaysSmartShopper - - thumb_func_start DoTVShowTheNameRaterShow -DoTVShowTheNameRaterShow: @ 80C1030 - push {r4-r7,lr} - sub sp, 0x8 - ldr r0, _080C1060 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C1064 - adds r6, r0, r1 - ldr r1, _080C1068 - movs r0, 0 - strh r0, [r1] - ldr r0, _080C106C - ldrb r7, [r0] - adds r2, r0, 0 - cmp r7, 0x12 - bls _080C1054 - b _080C138A -_080C1054: - lsls r0, r7, 2 - ldr r1, _080C1070 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C1060: .4byte gUnknown_0202E8CC -_080C1064: .4byte gSaveBlock1 + 0x2738 -_080C1068: .4byte gScriptResult -_080C106C: .4byte gUnknown_020387E8 -_080C1070: .4byte _080C1074 - .align 2, 0 -_080C1074: - .4byte _080C10C0 - .4byte _080C1108 - .4byte _080C112A - .4byte _080C1108 - .4byte _080C1108 - .4byte _080C1108 - .4byte _080C1108 - .4byte _080C1108 - .4byte _080C1108 - .4byte _080C1170 - .4byte _080C1170 - .4byte _080C1170 - .4byte _080C136C - .4byte _080C11CC - .4byte _080C1228 - .4byte _080C127C - .4byte _080C12D4 - .4byte _080C1314 - .4byte _080C1370 -_080C10C0: - ldr r0, _080C10F4 - adds r1, r6, 0 - adds r1, 0xF - ldrb r2, [r6, 0x1E] - bl sub_80C08FC - ldr r0, _080C10F8 - ldrh r2, [r6, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C10FC - adds r1, r2 - bl StringCopy - ldr r0, _080C1100 - adds r1, r6, 0x4 - ldrb r2, [r6, 0x1F] - bl sub_80C08FC - ldr r4, _080C1104 - adds r0, r6, 0 - bl sub_80BF7E8 - adds r0, 0x1 - strb r0, [r4] - b _080C138A - .align 2, 0 -_080C10F4: .4byte gStringVar1 -_080C10F8: .4byte gStringVar2 -_080C10FC: .4byte gSpeciesNames -_080C1100: .4byte gStringVar3 -_080C1104: .4byte gUnknown_020387E8 -_080C1108: - ldrb r0, [r6, 0x1A] - cmp r0, 0 - bne _080C1114 - movs r0, 0x9 - strb r0, [r2] - b _080C138A -_080C1114: - cmp r0, 0x1 - bne _080C111E - movs r0, 0xA - strb r0, [r2] - b _080C138A -_080C111E: - cmp r0, 0x2 - beq _080C1124 - b _080C138A -_080C1124: - movs r0, 0xB - strb r0, [r2] - b _080C138A -_080C112A: - ldr r0, _080C1144 - adds r1, r6, 0 - adds r1, 0xF - ldrb r2, [r6, 0x1E] - bl sub_80C08FC - ldrb r0, [r6, 0x1A] - cmp r0, 0 - bne _080C114C - ldr r1, _080C1148 - movs r0, 0x9 - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C1144: .4byte gStringVar1 -_080C1148: .4byte gUnknown_020387E8 -_080C114C: - cmp r0, 0x1 - bne _080C115C - ldr r1, _080C1158 - movs r0, 0xA - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C1158: .4byte gUnknown_020387E8 -_080C115C: - cmp r0, 0x2 - beq _080C1162 - b _080C138A -_080C1162: - ldr r1, _080C116C - movs r0, 0xB - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C116C: .4byte gUnknown_020387E8 -_080C1170: - movs r5, 0 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C11BC - ldr r4, _080C11C0 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl sub_80C08FC - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C11C4 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl sub_80C08FC - adds r1, r6, 0x4 - ldrb r2, [r6, 0x1F] - adds r0, r4, 0 - bl sub_80C08FC - ldr r1, _080C11C8 - movs r0, 0xC - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C11BC: .4byte gStringVar3 -_080C11C0: .4byte gStringVar1 -_080C11C4: .4byte gStringVar2 -_080C11C8: .4byte gUnknown_020387E8 -_080C11CC: - movs r5, 0 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C1218 - ldr r4, _080C121C - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl sub_80C08FC - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0 - bl sub_80BF820 - ldr r0, _080C1220 - ldrb r2, [r6, 0x1E] - adds r1, r4, 0 - bl sub_80C08FC - adds r1, r6, 0 - adds r1, 0xF - ldrb r2, [r6, 0x1E] - adds r0, r4, 0 - bl sub_80C08FC - ldr r1, _080C1224 - movs r0, 0xE - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C1218: .4byte gStringVar3 -_080C121C: .4byte gStringVar1 -_080C1220: .4byte gStringVar2 -_080C1224: .4byte gUnknown_020387E8 -_080C1228: - movs r5, 0 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_80BF820 - ldr r0, _080C1270 - ldr r4, _080C1274 - ldrb r2, [r6, 0x1E] - adds r1, r4, 0 - bl sub_80C08FC - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C1278 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl sub_80C08FC - adds r1, r6, 0 - adds r1, 0xF - ldrb r2, [r6, 0x1E] - adds r0, r4, 0 - bl sub_80C08FC - b _080C1354 - .align 2, 0 -_080C1270: .4byte gStringVar3 -_080C1274: .4byte gStringVar1 -_080C1278: .4byte gStringVar2 -_080C127C: - movs r0, 0 - str r0, [sp] - str r6, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C12C4 - ldr r4, _080C12C8 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl sub_80C08FC - ldrh r1, [r6, 0x2] - movs r0, 0xB - muls r1, r0 - ldr r0, _080C12CC - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - ldrh r0, [r6, 0x2] - str r0, [sp] - str r6, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x2 - bl sub_80BF820 - ldr r1, _080C12D0 - movs r0, 0x10 - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C12C4: .4byte gStringVar1 -_080C12C8: .4byte gStringVar2 -_080C12CC: .4byte gSpeciesNames -_080C12D0: .4byte gUnknown_020387E8 -_080C12D4: - movs r0, 0 - str r0, [sp] - str r6, [sp, 0x4] - movs r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C1308 - ldr r1, _080C130C - ldrb r2, [r6, 0x1F] - bl sub_80C08FC - ldrh r0, [r6, 0x2] - str r0, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x2 - bl sub_80BF820 - ldr r1, _080C1310 - movs r0, 0x11 - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C1308: .4byte gStringVar3 -_080C130C: .4byte gStringVar1 -_080C1310: .4byte gUnknown_020387E8 -_080C1314: - movs r0, 0 - str r0, [sp] - str r6, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C135C - ldr r4, _080C1360 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl sub_80C08FC - ldrh r0, [r6, 0x1C] - str r0, [sp] - str r6, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x2 - bl sub_80BF820 - ldrh r1, [r6, 0x1C] - movs r0, 0xB - muls r1, r0 - ldr r0, _080C1364 - adds r1, r0 - adds r0, r4, 0 - bl StringCopy -_080C1354: - ldr r1, _080C1368 - movs r0, 0x12 - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C135C: .4byte gStringVar1 -_080C1360: .4byte gStringVar2 -_080C1364: .4byte gSpeciesNames -_080C1368: .4byte gUnknown_020387E8 -_080C136C: - movs r7, 0x12 - strb r7, [r2] -_080C1370: - ldr r0, _080C13A0 - adds r1, r6, 0x4 - ldrb r2, [r6, 0x1F] - bl sub_80C08FC - ldr r0, _080C13A4 - adds r1, r6, 0 - adds r1, 0xF - ldrb r2, [r6, 0x1E] - bl sub_80C08FC - bl TVShowDone -_080C138A: - ldr r0, _080C13A8 - lsls r1, r7, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C13A0: .4byte gStringVar1 -_080C13A4: .4byte gStringVar2 -_080C13A8: .4byte gUnknown_083D1584 - thumb_func_end DoTVShowTheNameRaterShow - - thumb_func_start DoTVShowPokemonTodaySuccessfulCapture -DoTVShowPokemonTodaySuccessfulCapture: @ 80C13AC - push {r4-r6,lr} - ldr r0, _080C13D8 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C13DC - adds r5, r0, r1 - ldr r1, _080C13E0 - movs r0, 0 - strh r0, [r1] - ldr r0, _080C13E4 - ldrb r6, [r0] - adds r2, r0, 0 - cmp r6, 0xB - bls _080C13CE - b _080C15DC -_080C13CE: - lsls r0, r6, 2 - ldr r1, _080C13E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C13D8: .4byte gUnknown_0202E8CC -_080C13DC: .4byte gSaveBlock1 + 0x2738 -_080C13E0: .4byte gScriptResult -_080C13E4: .4byte gUnknown_020387E8 -_080C13E8: .4byte _080C13EC - .align 2, 0 -_080C13EC: - .4byte _080C141C - .4byte _080C1470 - .4byte _080C1476 - .4byte _080C14B0 - .4byte _080C14E8 - .4byte _080C14EE - .4byte _080C1524 - .4byte _080C1578 - .4byte _080C1578 - .4byte _080C15A8 - .4byte _080C15A8 - .4byte _080C15D8 -_080C141C: - ldr r0, _080C1450 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x2] - bl sub_80C08FC - ldr r0, _080C1454 - ldrh r2, [r5, 0x10] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1458 - adds r1, r2 - bl StringCopy - ldr r0, _080C145C - adds r1, r5, 0x4 - ldrb r2, [r5, 0x3] - bl sub_80C08FC - ldrb r0, [r5, 0xF] - cmp r0, 0x1 - bne _080C1464 - ldr r1, _080C1460 - movs r0, 0x5 - strb r0, [r1] - b _080C15DC - .align 2, 0 -_080C1450: .4byte gStringVar1 -_080C1454: .4byte gStringVar2 -_080C1458: .4byte gSpeciesNames -_080C145C: .4byte gStringVar3 -_080C1460: .4byte gUnknown_020387E8 -_080C1464: - ldr r1, _080C146C - movs r0, 0x1 - strb r0, [r1] - b _080C15DC - .align 2, 0 -_080C146C: .4byte gUnknown_020387E8 -_080C1470: - movs r0, 0x2 - strb r0, [r2] - b _080C15DC -_080C1476: - ldr r4, _080C149C - ldrb r0, [r5, 0xF] - bl itemid_get_item - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrb r1, [r5, 0x12] - movs r0, 0x2 - bl sub_80BF088 - ldrb r0, [r5, 0x12] - cmp r0, 0x3 - bhi _080C14A4 - ldr r1, _080C14A0 - movs r0, 0x3 - strb r0, [r1] - b _080C15DC - .align 2, 0 -_080C149C: .4byte gStringVar2 -_080C14A0: .4byte gUnknown_020387E8 -_080C14A4: - ldr r1, _080C14AC - movs r0, 0x4 - strb r0, [r1] - b _080C15DC - .align 2, 0 -_080C14AC: .4byte gUnknown_020387E8 -_080C14B0: - ldr r0, _080C14D8 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x2] - bl sub_80C08FC - ldr r0, _080C14DC - ldrh r2, [r5, 0x10] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C14E0 - adds r1, r2 - bl StringCopy - ldr r0, _080C14E4 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x3] - bl sub_80C08FC - b _080C150A - .align 2, 0 -_080C14D8: .4byte gStringVar1 -_080C14DC: .4byte gStringVar2 -_080C14E0: .4byte gSpeciesNames -_080C14E4: .4byte gStringVar3 -_080C14E8: - movs r0, 0x6 - strb r0, [r2] - b _080C15DC -_080C14EE: - ldr r0, _080C1514 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x2] - bl sub_80C08FC - ldr r0, _080C1518 - ldrh r2, [r5, 0x10] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C151C - adds r1, r2 - bl StringCopy -_080C150A: - ldr r1, _080C1520 - movs r0, 0x6 - strb r0, [r1] - b _080C15DC - .align 2, 0 -_080C1514: .4byte gStringVar1 -_080C1518: .4byte gStringVar2 -_080C151C: .4byte gSpeciesNames -_080C1520: .4byte gUnknown_020387E8 -_080C1524: - ldr r0, _080C1564 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x2] - bl sub_80C08FC - ldr r0, _080C1568 - ldrh r2, [r5, 0x10] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C156C - adds r1, r2 - bl StringCopy - ldr r0, _080C1570 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x3] - bl sub_80C08FC - ldr r4, _080C1574 - bl Random - ldrb r2, [r4] - adds r2, 0x1 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - ands r0, r1 - adds r0, r2 - strb r0, [r4] - b _080C15DC - .align 2, 0 -_080C1564: .4byte gStringVar1 -_080C1568: .4byte gStringVar2 -_080C156C: .4byte gSpeciesNames -_080C1570: .4byte gStringVar3 -_080C1574: .4byte gUnknown_020387E8 -_080C1578: - ldr r0, _080C159C - ldrh r1, [r5, 0x10] - movs r4, 0xB - muls r1, r4 - ldr r2, _080C15A0 - adds r1, r2 - bl StringCopy - ldr r0, _080C15A4 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x3] - bl sub_80C08FC - ldrh r1, [r5, 0x10] - movs r0, 0x2 - bl sub_80BF638 - b _080C15C2 - .align 2, 0 -_080C159C: .4byte gStringVar1 -_080C15A0: .4byte gSpeciesNames -_080C15A4: .4byte gStringVar2 -_080C15A8: - ldr r0, _080C15C8 - ldrh r1, [r5, 0x10] - movs r4, 0xB - muls r1, r4 - ldr r2, _080C15CC - adds r1, r2 - bl StringCopy - ldr r0, _080C15D0 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x3] - bl sub_80C08FC -_080C15C2: - ldr r0, _080C15D4 - strb r4, [r0] - b _080C15DC - .align 2, 0 -_080C15C8: .4byte gStringVar1 -_080C15CC: .4byte gSpeciesNames -_080C15D0: .4byte gStringVar2 -_080C15D4: .4byte gUnknown_020387E8 -_080C15D8: - bl TVShowDone -_080C15DC: - ldr r0, _080C15F0 - lsls r1, r6, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C15F0: .4byte gUnknown_083D14C0 - thumb_func_end DoTVShowPokemonTodaySuccessfulCapture - - thumb_func_start DoTVShowPokemonTodayFailedCapture -DoTVShowPokemonTodayFailedCapture: @ 80C15F4 - push {r4,r5,lr} - ldr r0, _080C1620 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C1624 - adds r4, r0, r1 - ldr r1, _080C1628 - movs r0, 0 - strh r0, [r1] - ldr r0, _080C162C - ldrb r5, [r0] - cmp r5, 0x6 - bls _080C1614 - b _080C173C -_080C1614: - lsls r0, r5, 2 - ldr r1, _080C1630 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C1620: .4byte gUnknown_0202E8CC -_080C1624: .4byte gSaveBlock1 + 0x2738 -_080C1628: .4byte gScriptResult -_080C162C: .4byte gUnknown_020387E8 -_080C1630: .4byte _080C1634 - .align 2, 0 -_080C1634: - .4byte _080C1650 - .4byte _080C1684 - .4byte _080C16D8 - .4byte _080C16D8 - .4byte _080C171C - .4byte _080C171C - .4byte _080C1738 -_080C1650: - ldr r0, _080C1674 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x2] - bl sub_80C08FC - ldr r0, _080C1678 - ldrh r2, [r4, 0xC] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C167C - adds r1, r2 - bl StringCopy - ldr r1, _080C1680 - movs r0, 0x1 - strb r0, [r1] - b _080C173C - .align 2, 0 -_080C1674: .4byte gStringVar1 -_080C1678: .4byte gStringVar2 -_080C167C: .4byte gSpeciesNames -_080C1680: .4byte gUnknown_020387E8 -_080C1684: - ldr r0, _080C16B8 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x2] - bl sub_80C08FC - ldr r0, _080C16BC - ldrb r1, [r4, 0x12] - movs r2, 0 - bl sub_80FBFB4 - ldr r0, _080C16C0 - ldrh r2, [r4, 0xE] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C16C4 - adds r1, r2 - bl StringCopy - ldrb r0, [r4, 0x11] - cmp r0, 0x1 - bne _080C16CC - ldr r1, _080C16C8 - movs r0, 0x3 - strb r0, [r1] - b _080C173C - .align 2, 0 -_080C16B8: .4byte gStringVar1 -_080C16BC: .4byte gStringVar2 -_080C16C0: .4byte gStringVar3 -_080C16C4: .4byte gSpeciesNames -_080C16C8: .4byte gUnknown_020387E8 -_080C16CC: - ldr r1, _080C16D4 - movs r0, 0x2 - strb r0, [r1] - b _080C173C - .align 2, 0 -_080C16D4: .4byte gUnknown_020387E8 -_080C16D8: - ldr r0, _080C1708 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x2] - bl sub_80C08FC - ldrb r1, [r4, 0x10] - movs r0, 0x1 - bl sub_80BF088 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _080C1710 - ldr r1, _080C170C - movs r0, 0x5 - strb r0, [r1] - b _080C173C - .align 2, 0 -_080C1708: .4byte gStringVar1 -_080C170C: .4byte gUnknown_020387E8 -_080C1710: - ldr r1, _080C1718 - movs r0, 0x4 - strb r0, [r1] - b _080C173C - .align 2, 0 -_080C1718: .4byte gUnknown_020387E8 -_080C171C: - ldr r0, _080C1730 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x2] - bl sub_80C08FC - ldr r1, _080C1734 - movs r0, 0x6 - strb r0, [r1] - b _080C173C - .align 2, 0 -_080C1730: .4byte gStringVar1 -_080C1734: .4byte gUnknown_020387E8 -_080C1738: - bl TVShowDone -_080C173C: - ldr r0, _080C1750 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C1750: .4byte gUnknown_083D15D0 - thumb_func_end DoTVShowPokemonTodayFailedCapture - - thumb_func_start DoTVShowPokemonFanClubLetter -DoTVShowPokemonFanClubLetter: @ 80C1754 - push {r4-r7,lr} - ldr r0, _080C1780 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C1784 - adds r5, r0, r1 - ldr r1, _080C1788 - movs r0, 0 - strh r0, [r1] - ldr r0, _080C178C - ldrb r7, [r0] - adds r6, r0, 0 - cmp r7, 0x33 - bls _080C1776 - b _080C1960 -_080C1776: - lsls r0, r7, 2 - ldr r1, _080C1790 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C1780: .4byte gUnknown_0202E8CC -_080C1784: .4byte gSaveBlock1 + 0x2738 -_080C1788: .4byte gScriptResult -_080C178C: .4byte gUnknown_020387E8 -_080C1790: .4byte _080C1794 - .align 2, 0 -_080C1794: - .4byte _080C1864 - .4byte _080C1898 - .4byte _080C18C4 - .4byte _080C18CA - .4byte _080C18E2 - .4byte _080C18E2 - .4byte _080C18E2 - .4byte _080C18F4 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1916 - .4byte _080C193C -_080C1864: - ldr r0, _080C1888 - adds r1, r5, 0 - adds r1, 0x10 - ldrb r2, [r5, 0x18] - bl sub_80C08FC - ldr r0, _080C188C - ldrh r2, [r5, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1890 - adds r1, r2 - bl StringCopy - ldr r1, _080C1894 - movs r0, 0x32 - strb r0, [r1] - b _080C1960 - .align 2, 0 -_080C1888: .4byte gStringVar1 -_080C188C: .4byte gStringVar2 -_080C1890: .4byte gSpeciesNames -_080C1894: .4byte gUnknown_020387E8 -_080C1898: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - ands r0, r1 - adds r2, r0, 0x1 - cmp r2, 0x1 - bne _080C18B8 - ldr r1, _080C18B4 - movs r0, 0x2 - strb r0, [r1] - b _080C1960 - .align 2, 0 -_080C18B4: .4byte gUnknown_020387E8 -_080C18B8: - ldr r1, _080C18C0 - adds r0, r2, 0x2 - strb r0, [r1] - b _080C1960 - .align 2, 0 -_080C18C0: .4byte gUnknown_020387E8 -_080C18C4: - movs r0, 0x33 - strb r0, [r6] - b _080C1960 -_080C18CA: - bl Random - ldrb r4, [r6] - adds r4, 0x1 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - adds r0, r4 - strb r0, [r6] - b _080C1960 -_080C18E2: - adds r0, r5, 0 - bl sub_80BF79C - ldr r1, _080C18F0 - movs r0, 0x7 - strb r0, [r1] - b _080C1960 - .align 2, 0 -_080C18F0: .4byte gUnknown_020387E8 -_080C18F4: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1F - bl __umodsi3 - adds r0, 0x46 - lsls r0, 16 - lsrs r2, r0, 16 - movs r0, 0x2 - adds r1, r2, 0 - bl sub_80BF088 - bl TVShowDone - b _080C1960 -_080C1916: - ldr r4, _080C1934 - adds r1, r5, 0x4 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertEasyChatWordsToString - adds r0, r4, 0 - bl ShowFieldMessage - ldr r1, _080C1938 - movs r0, 0x1 - strb r0, [r1] - b _080C196C - .align 2, 0 -_080C1934: .4byte gStringVar4 -_080C1938: .4byte gUnknown_020387E8 -_080C193C: - ldr r4, _080C1958 - adds r1, r5, 0x4 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertEasyChatWordsToString - adds r0, r4, 0 - bl ShowFieldMessage - ldr r1, _080C195C - movs r0, 0x3 - strb r0, [r1] - b _080C196C - .align 2, 0 -_080C1958: .4byte gStringVar4 -_080C195C: .4byte gUnknown_020387E8 -_080C1960: - ldr r0, _080C1974 - lsls r1, r7, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage -_080C196C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C1974: .4byte gUnknown_083D1470 - thumb_func_end DoTVShowPokemonFanClubLetter - - thumb_func_start DoTVShowRecentHappenings -DoTVShowRecentHappenings: @ 80C1978 - push {r4-r7,lr} - ldr r0, _080C19A4 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C19A8 - adds r5, r0, r1 - ldr r1, _080C19AC - movs r0, 0 - strh r0, [r1] - ldr r0, _080C19B0 - ldrb r6, [r0] - adds r7, r0, 0 - cmp r6, 0x32 - bls _080C199A - b _080C1AF0 -_080C199A: - lsls r0, r6, 2 - ldr r1, _080C19B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C19A4: .4byte gUnknown_0202E8CC -_080C19A8: .4byte gSaveBlock1 + 0x2738 -_080C19AC: .4byte gScriptResult -_080C19B0: .4byte gUnknown_020387E8 -_080C19B4: .4byte _080C19B8 - .align 2, 0 -_080C19B8: - .4byte _080C1A84 - .4byte _080C1AA8 - .4byte _080C1AC0 - .4byte _080C1AC0 - .4byte _080C1AC0 - .4byte _080C1AC6 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1ACC -_080C1A84: - ldr r0, _080C1AA0 - adds r1, r5, 0 - adds r1, 0x10 - ldrb r2, [r5, 0x18] - bl sub_80C08FC - adds r0, r5, 0 - bl sub_80BF79C - ldr r1, _080C1AA4 - movs r0, 0x32 - strb r0, [r1] - b _080C1AF0 - .align 2, 0 -_080C1AA0: .4byte gStringVar1 -_080C1AA4: .4byte gUnknown_020387E8 -_080C1AA8: - bl Random - ldrb r4, [r7] - adds r4, 0x1 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - adds r0, r4 - strb r0, [r7] - b _080C1AF0 -_080C1AC0: - movs r0, 0x5 - strb r0, [r7] - b _080C1AF0 -_080C1AC6: - bl TVShowDone - b _080C1AF0 -_080C1ACC: - ldr r4, _080C1AE8 - adds r1, r5, 0x4 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertEasyChatWordsToString - adds r0, r4, 0 - bl ShowFieldMessage - ldr r1, _080C1AEC - movs r0, 0x1 - strb r0, [r1] - b _080C1AFC - .align 2, 0 -_080C1AE8: .4byte gStringVar4 -_080C1AEC: .4byte gUnknown_020387E8 -_080C1AF0: - ldr r0, _080C1B04 - lsls r1, r6, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage -_080C1AFC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C1B04: .4byte gUnknown_083D1490 - thumb_func_end DoTVShowRecentHappenings - - thumb_func_start DoTVShowPokemonFanClubOpinions -DoTVShowPokemonFanClubOpinions: @ 80C1B08 - push {r4-r6,lr} - ldr r0, _080C1B30 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C1B34 - adds r4, r0, r1 - ldr r1, _080C1B38 - movs r0, 0 - strh r0, [r1] - ldr r6, _080C1B3C - ldrb r5, [r6] - cmp r5, 0x3 - bgt _080C1B40 - cmp r5, 0x1 - bge _080C1B88 - cmp r5, 0 - beq _080C1B46 - b _080C1BD6 - .align 2, 0 -_080C1B30: .4byte gUnknown_0202E8CC -_080C1B34: .4byte gSaveBlock1 + 0x2738 -_080C1B38: .4byte gScriptResult -_080C1B3C: .4byte gUnknown_020387E8 -_080C1B40: - cmp r5, 0x4 - beq _080C1BC0 - b _080C1BD6 -_080C1B46: - ldr r0, _080C1B78 - adds r1, r4, 0x5 - ldrb r2, [r4, 0xD] - bl sub_80C08FC - ldr r0, _080C1B7C - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1B80 - adds r1, r2 - bl StringCopy - ldr r0, _080C1B84 - adds r1, r4, 0 - adds r1, 0x10 - ldrb r2, [r4, 0xE] - bl sub_80C08FC - ldrb r0, [r4, 0x4] - lsrs r0, 4 - adds r0, 0x1 - strb r0, [r6] - b _080C1BD6 - .align 2, 0 -_080C1B78: .4byte gStringVar1 -_080C1B7C: .4byte gStringVar2 -_080C1B80: .4byte gSpeciesNames -_080C1B84: .4byte gStringVar3 -_080C1B88: - ldr r0, _080C1BB0 - adds r1, r4, 0x5 - ldrb r2, [r4, 0xD] - bl sub_80C08FC - ldr r0, _080C1BB4 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1BB8 - adds r1, r2 - bl StringCopy - ldr r0, _080C1BBC - ldrh r1, [r4, 0x1C] - bl sub_80EB3FC - movs r0, 0x4 - strb r0, [r6] - b _080C1BD6 - .align 2, 0 -_080C1BB0: .4byte gStringVar1 -_080C1BB4: .4byte gStringVar2 -_080C1BB8: .4byte gSpeciesNames -_080C1BBC: .4byte gStringVar3 -_080C1BC0: - ldr r0, _080C1BE8 - adds r1, r4, 0x5 - ldrb r2, [r4, 0xD] - bl sub_80C08FC - ldr r0, _080C1BEC - ldrh r1, [r4, 0x1E] - bl sub_80EB3FC - bl TVShowDone -_080C1BD6: - ldr r0, _080C1BF0 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C1BE8: .4byte gStringVar1 -_080C1BEC: .4byte gStringVar3 -_080C1BF0: .4byte gUnknown_083D14A8 - thumb_func_end DoTVShowPokemonFanClubOpinions - - thumb_func_start nullsub_22 -nullsub_22: @ 80C1BF4 - bx lr - thumb_func_end nullsub_22 - - thumb_func_start DoTVShowPokemonNewsMassOutbreak -DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8 - push {r4,lr} - ldr r0, _080C1C40 - ldrh r0, [r0] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080C1C44 - adds r4, r0 - ldr r0, _080C1C48 - ldrb r1, [r4, 0x10] - movs r2, 0 - bl sub_80FBFB4 - ldr r0, _080C1C4C - ldrh r2, [r4, 0xC] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1C50 - adds r1, r2 - bl StringCopy - bl TVShowDone - bl StartMassOutbreak - ldr r1, _080C1C54 - ldr r0, _080C1C58 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl ShowFieldMessage - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C1C40: .4byte gUnknown_0202E8CC -_080C1C44: .4byte gSaveBlock1 + 0x2738 -_080C1C48: .4byte gStringVar1 -_080C1C4C: .4byte gStringVar2 -_080C1C50: .4byte gSpeciesNames -_080C1C54: .4byte gUnknown_083D14BC -_080C1C58: .4byte gUnknown_020387E8 - thumb_func_end DoTVShowPokemonNewsMassOutbreak - - thumb_func_start DoTVShowInSearchOfTrainers -DoTVShowInSearchOfTrainers: @ 80C1C5C - push {r4-r7,lr} - ldr r0, _080C1C7C - movs r1, 0 - strh r1, [r0] - ldr r0, _080C1C80 - ldrb r7, [r0] - adds r2, r0, 0 - cmp r7, 0x8 - bls _080C1C70 - b _080C1DF8 -_080C1C70: - lsls r0, r7, 2 - ldr r1, _080C1C84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C1C7C: .4byte gScriptResult -_080C1C80: .4byte gUnknown_020387E8 -_080C1C84: .4byte _080C1C88 - .align 2, 0 -_080C1C88: - .4byte _080C1CAC - .4byte _080C1CF0 - .4byte _080C1CF6 - .4byte _080C1D44 - .4byte _080C1DB0 - .4byte _080C1DB0 - .4byte _080C1DB0 - .4byte _080C1DB0 - .4byte _080C1DB6 -_080C1CAC: - ldr r0, _080C1CD0 - ldr r4, _080C1CD4 - ldr r2, _080C1CD8 - adds r1, r4, r2 - ldrb r1, [r1] - movs r2, 0 - bl sub_80FBFB4 - ldr r0, _080C1CDC - adds r4, r0 - ldrb r0, [r4] - cmp r0, 0x1 - bls _080C1CE4 - ldr r1, _080C1CE0 - movs r0, 0x1 - strb r0, [r1] - b _080C1DF8 - .align 2, 0 -_080C1CD0: .4byte gStringVar1 -_080C1CD4: .4byte gSaveBlock1 -_080C1CD8: .4byte 0x00002b18 -_080C1CDC: .4byte 0x00002b19 -_080C1CE0: .4byte gUnknown_020387E8 -_080C1CE4: - ldr r1, _080C1CEC - movs r0, 0x2 - strb r0, [r1] - b _080C1DF8 - .align 2, 0 -_080C1CEC: .4byte gUnknown_020387E8 -_080C1CF0: - movs r0, 0x2 - strb r0, [r2] - b _080C1DF8 -_080C1CF6: - ldr r0, _080C1D0C - ldr r1, _080C1D10 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080C1D14 - movs r0, 0x4 - strb r0, [r2] - b _080C1DF8 - .align 2, 0 -_080C1D0C: .4byte gSaveBlock1 -_080C1D10: .4byte 0x00002b1a -_080C1D14: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080C1D22 - movs r0, 0x5 - strb r0, [r2] - b _080C1DF8 -_080C1D22: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080C1D30 - movs r0, 0x6 - strb r0, [r2] - b _080C1DF8 -_080C1D30: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080C1D3E - movs r0, 0x7 - strb r0, [r2] - b _080C1DF8 -_080C1D3E: - movs r0, 0x3 - strb r0, [r2] - b _080C1DF8 -_080C1D44: - ldr r0, _080C1D88 - ldr r4, _080C1D8C - ldr r2, _080C1D90 - adds r1, r4, r2 - ldrh r1, [r1] - movs r6, 0xB - muls r1, r6 - ldr r5, _080C1D94 - adds r1, r5 - bl StringCopy - ldr r0, _080C1D98 - ldr r2, _080C1D9C - adds r1, r4, r2 - ldrh r2, [r1] - movs r1, 0xD - muls r1, r2 - ldr r2, _080C1DA0 - adds r1, r2 - bl StringCopy - ldr r0, _080C1DA4 - ldr r1, _080C1DA8 - adds r4, r1 - ldrh r1, [r4] - muls r1, r6 - adds r1, r5 - bl StringCopy - ldr r1, _080C1DAC - movs r0, 0x8 - strb r0, [r1] - b _080C1DF8 - .align 2, 0 -_080C1D88: .4byte gStringVar1 -_080C1D8C: .4byte gSaveBlock1 -_080C1D90: .4byte 0x00002b10 -_080C1D94: .4byte gSpeciesNames -_080C1D98: .4byte gStringVar2 -_080C1D9C: .4byte 0x00002b14 -_080C1DA0: .4byte gMoveNames -_080C1DA4: .4byte gStringVar3 -_080C1DA8: .4byte 0x00002b12 -_080C1DAC: .4byte gUnknown_020387E8 -_080C1DB0: - movs r0, 0x8 - strb r0, [r2] - b _080C1DF8 -_080C1DB6: - ldr r0, _080C1E0C - ldr r4, _080C1E10 - ldr r2, _080C1E14 - adds r1, r4, r2 - ldrh r1, [r1] - bl sub_80EB3FC - ldr r0, _080C1E18 - ldr r2, _080C1E1C - adds r1, r4, r2 - ldrh r1, [r1] - movs r6, 0xB - muls r1, r6 - ldr r5, _080C1E20 - adds r1, r5 - bl StringCopy - ldr r0, _080C1E24 - ldr r1, _080C1E28 - adds r4, r1 - ldrh r1, [r4] - muls r1, r6 - adds r1, r5 - bl StringCopy - ldr r1, _080C1E2C - movs r0, 0x1 - strh r0, [r1] - ldr r1, _080C1E30 - movs r0, 0 - strb r0, [r1] - bl TakeTVShowInSearchOfTrainersOffTheAir -_080C1DF8: - ldr r0, _080C1E34 - lsls r1, r7, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C1E0C: .4byte gStringVar1 -_080C1E10: .4byte gSaveBlock1 -_080C1E14: .4byte 0x00002b16 -_080C1E18: .4byte gStringVar2 -_080C1E1C: .4byte 0x00002b10 -_080C1E20: .4byte gSpeciesNames -_080C1E24: .4byte gStringVar3 -_080C1E28: .4byte 0x00002b12 -_080C1E2C: .4byte gScriptResult -_080C1E30: .4byte gUnknown_020387E8 -_080C1E34: .4byte gUnknown_083D1600 - thumb_func_end DoTVShowInSearchOfTrainers - - thumb_func_start DoTVShowPokemonAngler -DoTVShowPokemonAngler: @ 80C1E38 - push {r4,r5,lr} - ldr r0, _080C1E5C - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C1E60 - adds r4, r0, r1 - ldr r0, _080C1E64 - movs r1, 0 - strh r1, [r0] - ldrb r0, [r4, 0x2] - ldrb r2, [r4, 0x3] - cmp r0, r2 - bcs _080C1E6C - ldr r0, _080C1E68 - strb r1, [r0] - b _080C1E74 - .align 2, 0 -_080C1E5C: .4byte gUnknown_0202E8CC -_080C1E60: .4byte gSaveBlock1 + 0x2738 -_080C1E64: .4byte gScriptResult -_080C1E68: .4byte gUnknown_020387E8 -_080C1E6C: - ldr r1, _080C1E80 - movs r0, 0x1 - strb r0, [r1] - adds r0, r1, 0 -_080C1E74: - ldrb r5, [r0] - cmp r5, 0 - beq _080C1E84 - cmp r5, 0x1 - beq _080C1EBC - b _080C1EE4 - .align 2, 0 -_080C1E80: .4byte gUnknown_020387E8 -_080C1E84: - ldr r0, _080C1EB0 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x6] - bl sub_80C08FC - ldr r0, _080C1EB4 - ldrh r2, [r4, 0x4] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1EB8 - adds r1, r2 - bl StringCopy - ldrb r1, [r4, 0x3] - movs r0, 0x2 - bl sub_80BF088 - bl TVShowDone - b _080C1EE4 - .align 2, 0 -_080C1EB0: .4byte gStringVar1 -_080C1EB4: .4byte gStringVar2 -_080C1EB8: .4byte gSpeciesNames -_080C1EBC: - ldr r0, _080C1EF8 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x6] - bl sub_80C08FC - ldr r0, _080C1EFC - ldrh r2, [r4, 0x4] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1F00 - adds r1, r2 - bl StringCopy - ldrb r1, [r4, 0x2] - movs r0, 0x2 - bl sub_80BF088 - bl TVShowDone -_080C1EE4: - ldr r0, _080C1F04 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C1EF8: .4byte gStringVar1 -_080C1EFC: .4byte gStringVar2 -_080C1F00: .4byte gSpeciesNames -_080C1F04: .4byte gUnknown_083D15EC - thumb_func_end DoTVShowPokemonAngler - - thumb_func_start DoTVShowTheWorldOfMasters -DoTVShowTheWorldOfMasters: @ 80C1F08 - push {r4-r6,lr} - ldr r0, _080C1F30 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C1F34 - adds r4, r0, r1 - ldr r1, _080C1F38 - movs r0, 0 - strh r0, [r1] - ldr r6, _080C1F3C - ldrb r5, [r6] - cmp r5, 0x1 - beq _080C1F6C - cmp r5, 0x1 - bgt _080C1F40 - cmp r5, 0 - beq _080C1F46 - b _080C1FB6 - .align 2, 0 -_080C1F30: .4byte gUnknown_0202E8CC -_080C1F34: .4byte gSaveBlock1 + 0x2738 -_080C1F38: .4byte gScriptResult -_080C1F3C: .4byte gUnknown_020387E8 -_080C1F40: - cmp r5, 0x2 - beq _080C1F8C - b _080C1FB6 -_080C1F46: - ldr r0, _080C1F68 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0xB] - bl sub_80C08FC - ldrh r1, [r4, 0x6] - movs r0, 0x1 - bl sub_80BF088 - ldrh r1, [r4, 0x2] - movs r0, 0x2 - bl sub_80BF088 - movs r0, 0x1 - strb r0, [r6] - b _080C1FB6 - .align 2, 0 -_080C1F68: .4byte gStringVar1 -_080C1F6C: - ldr r0, _080C1F84 - ldrh r2, [r4, 0x8] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1F88 - adds r1, r2 - bl StringCopy - movs r0, 0x2 - strb r0, [r6] - b _080C1FB6 - .align 2, 0 -_080C1F84: .4byte gStringVar1 -_080C1F88: .4byte gSpeciesNames -_080C1F8C: - ldr r0, _080C1FC8 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0xB] - bl sub_80C08FC - ldr r0, _080C1FCC - ldrb r1, [r4, 0xA] - movs r2, 0 - bl sub_80FBFB4 - ldr r0, _080C1FD0 - ldrh r2, [r4, 0x4] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1FD4 - adds r1, r2 - bl StringCopy - bl TVShowDone -_080C1FB6: - ldr r0, _080C1FD8 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C1FC8: .4byte gStringVar1 -_080C1FCC: .4byte gStringVar2 -_080C1FD0: .4byte gStringVar3 -_080C1FD4: .4byte gSpeciesNames -_080C1FD8: .4byte gUnknown_083D15F4 - thumb_func_end DoTVShowTheWorldOfMasters - - thumb_func_start TVShowDone -TVShowDone: @ 80C1FDC - ldr r1, _080C2000 - movs r0, 0x1 - strh r0, [r1] - ldr r1, _080C2004 - movs r0, 0 - strb r0, [r1] - ldr r2, _080C2008 - ldr r0, _080C200C - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _080C2010 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - bx lr - .align 2, 0 -_080C2000: .4byte gScriptResult -_080C2004: .4byte gUnknown_020387E8 -_080C2008: .4byte gSaveBlock1 -_080C200C: .4byte gUnknown_0202E8CC -_080C2010: .4byte 0x00002739 - thumb_func_end TVShowDone - - thumb_func_start sub_80C2014 -sub_80C2014: @ 80C2014 - ldr r1, _080C201C - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080C201C: .4byte gUnknown_020387E8 - thumb_func_end sub_80C2014 - - thumb_func_start sub_80C2020 -sub_80C2020: @ 80C2020 - push {r4,r5,lr} - movs r5, 0x80 - lsls r5, 19 - movs r0, 0x40 - strh r0, [r5] - ldr r4, _080C20F0 - adds r0, r4, 0 - bl SetUpWindowConfig - ldr r0, _080C20F4 - adds r1, r4, 0 - bl InitWindowFromConfig - ldr r1, _080C20F8 - movs r2, 0xF8 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080C20FC - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080C2100 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080C2104 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _080C2108 - movs r2, 0 - strh r2, [r0] - adds r1, 0x3A - ldr r3, _080C210C - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - subs r3, 0x11 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _080C2110 - strh r2, [r0] - adds r0, 0x4 - strh r2, [r0] - subs r0, 0x2 - strh r2, [r0] - adds r0, 0x4 - strh r2, [r0] - adds r0, 0xA - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - subs r0, 0x44 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - ldrh r0, [r5] - movs r3, 0xFE - lsls r3, 7 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r5] - ldr r0, _080C2114 - strh r2, [r0] - ldr r0, _080C2118 - strh r2, [r0] - ldr r0, _080C211C - strh r2, [r0] - ldr r0, _080C2120 - strh r2, [r0] - ldr r0, _080C2124 - strh r2, [r0] - ldr r0, _080C2128 - strh r2, [r0] - ldr r0, _080C212C - strh r2, [r0] - ldr r0, _080C2130 - strh r2, [r0] - ldr r0, _080C2134 - strh r2, [r0] - ldr r0, _080C2138 - strh r2, [r0] - ldr r0, _080C213C - strh r2, [r0] - ldr r0, _080C2140 - strh r2, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C20F0: .4byte gWindowConfig_81E6FA0 -_080C20F4: .4byte gMenuWindow -_080C20F8: .4byte REG_BG0CNT -_080C20FC: .4byte 0x00001803 -_080C2100: .4byte 0x00001c03 -_080C2104: .4byte 0x00003a03 -_080C2108: .4byte REG_MOSAIC -_080C210C: .4byte 0x00003f3f -_080C2110: .4byte REG_WIN0H -_080C2114: .4byte gUnknown_030042A4 -_080C2118: .4byte gUnknown_030042A0 -_080C211C: .4byte gUnknown_030042C0 -_080C2120: .4byte gUnknown_030041B4 -_080C2124: .4byte gUnknown_03004288 -_080C2128: .4byte gUnknown_03004280 -_080C212C: .4byte gUnknown_030041B0 -_080C2130: .4byte gUnknown_030041B8 -_080C2134: .4byte gUnknown_030042C4 -_080C2138: .4byte gUnknown_03004240 -_080C213C: .4byte gUnknown_03004200 -_080C2140: .4byte gUnknown_03004244 - thumb_func_end sub_80C2020 - - thumb_func_start sub_80C2144 -sub_80C2144: @ 80C2144 - push {r4-r7,lr} - sub sp, 0x4 - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0xC0 - lsls r3, 9 - ldr r0, _080C220C - mov r12, r0 - movs r5, 0 - ldr r1, _080C2210 - movs r4, 0x80 - lsls r4, 5 - ldr r6, _080C2214 - movs r7, 0x85 - lsls r7, 24 -_080C2162: - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080C2162 - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r1, 0xC0 - lsls r1, 19 - mov r0, r12 - bl LZDecompressVram - ldr r0, _080C2218 - ldr r1, _080C221C - bl LZDecompressVram - ldr r0, _080C2220 - ldr r1, _080C2224 - bl LZDecompressVram - ldr r0, _080C2228 - ldr r1, _080C222C - bl LZDecompressVram - bl sub_80C37E4 - ldr r0, _080C2230 - movs r2, 0x80 - lsls r2, 2 - movs r1, 0 - bl LoadCompressedPalette - ldr r0, _080C2234 - bl LoadFontDefaultPalette - movs r6, 0 -_080C21C0: - lsls r5, r6, 24 - lsrs r5, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80C3990 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80C39E4 - movs r5, 0 - lsls r1, r6, 1 - adds r2, r6, 0x1 - mov r12, r2 - lsls r4, 24 - asrs r7, r4, 24 - adds r1, r6 - lsls r1, 6 - lsls r4, r0, 24 -_080C21EC: - ldr r6, _080C2238 - cmp r5, r7 - bge _080C21F4 - adds r6, 0x2 -_080C21F4: - asrs r2, r4, 24 - adds r0, r2, 0 - cmp r2, 0 - bge _080C21FE - negs r0, r2 -_080C21FE: - cmp r5, r0 - bge _080C2240 - ldr r3, _080C223C - cmp r2, 0 - bge _080C2242 - adds r3, 0x2 - b _080C2242 - .align 2, 0 -_080C220C: .4byte gUnknown_08D1977C -_080C2210: .4byte 0x040000d4 -_080C2214: .4byte 0x85000400 -_080C2218: .4byte gUnknown_08D1A490 -_080C221C: .4byte 0x0600d000 -_080C2220: .4byte gUnknown_08D1A364 -_080C2224: .4byte 0x0600e000 -_080C2228: .4byte gUnknown_08D1A250 -_080C222C: .4byte 0x0600f000 -_080C2230: .4byte gUnknown_08D1A618 -_080C2234: .4byte gWindowConfig_81E6FA0 -_080C2238: .4byte 0x000060b2 -_080C223C: .4byte 0x000060a4 -_080C2240: - ldr r3, _080C2264 -_080C2242: - ldr r2, _080C2268 - adds r0, r1, r2 - strh r6, [r0] - adds r2, 0x40 - adds r0, r1, r2 - strh r3, [r0] - adds r1, 0x2 - adds r5, 0x1 - cmp r5, 0x9 - ble _080C21EC - mov r6, r12 - cmp r6, 0x3 - ble _080C21C0 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C2264: .4byte 0x000060a2 -_080C2268: .4byte 0x0600c166 - thumb_func_end sub_80C2144 - - thumb_func_start sub_80C226C -sub_80C226C: @ 80C226C - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C2288 - ldrb r0, [r0] - cmp r5, r0 - bne _080C2294 - ldr r0, _080C228C - ldr r1, _080C2290 - bl StringCopy - adds r2, r0, 0 - b _080C2296 - .align 2, 0 -_080C2288: .4byte gUnknown_02038695 -_080C228C: .4byte gUnknown_020238CC -_080C2290: .4byte gUnknown_083D17DC -_080C2294: - ldr r2, _080C22E8 -_080C2296: - movs r4, 0xFC - strb r4, [r2] - movs r0, 0x6 - strb r0, [r2, 0x1] - movs r0, 0x4 - strb r0, [r2, 0x2] - adds r2, 0x3 - lsls r6, r5, 6 - ldr r7, _080C22EC - adds r1, r6, r7 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - strb r4, [r2] - movs r0, 0x13 - strb r0, [r2, 0x1] - movs r0, 0x32 - strb r0, [r2, 0x2] - adds r2, 0x3 - ldr r1, _080C22F0 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - ldr r0, _080C22F4 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C22FC - lsls r4, r5, 3 - subs r1, r4, r5 - lsls r1, 2 - ldr r0, _080C22F8 - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - b _080C230A - .align 2, 0 -_080C22E8: .4byte gUnknown_020238CC -_080C22EC: .4byte gUnknown_02038572 -_080C22F0: .4byte gUnknown_083D17E0 -_080C22F4: .4byte gUnknown_0203869A -_080C22F8: .4byte gLinkPlayers + 0x8 -_080C22FC: - adds r1, r7, 0 - adds r1, 0xB - adds r1, r6, r1 - adds r0, r2, 0 - bl StringCopy - lsls r4, r5, 3 -_080C230A: - ldr r0, _080C2334 - ldr r1, _080C2338 - adds r2, r4, r5 - lsls r2, 18 - ldr r3, _080C233C - adds r2, r3 - lsrs r2, 16 - lsls r3, r5, 1 - adds r3, r5 - adds r3, 0x4 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp] - movs r3, 0x7 - bl sub_8003460 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C2334: .4byte gMenuWindow -_080C2338: .4byte gUnknown_020238CC -_080C233C: .4byte 0x03020000 - thumb_func_end sub_80C226C - - thumb_func_start sub_80C2340 -sub_80C2340: @ 80C2340 - push {r4,lr} - movs r4, 0 -_080C2344: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80C226C - adds r4, 0x1 - cmp r4, 0x3 - ble _080C2344 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C2340 - - thumb_func_start sub_80C2358 -sub_80C2358: @ 80C2358 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _080C240C - ldrb r0, [r5, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r5, 0x8] - movs r0, 0 - bl SetVBlankCallback - bl sub_80C2020 - bl dp12_8087EA4 - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - bl sub_80C2144 - bl sub_80C310C - movs r0, 0 - movs r1, 0x1 - bl sub_80C30D4 - bl sub_80C2340 - ldr r4, _080C2410 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x18 - bl memset - adds r0, r4, 0 - adds r0, 0x18 - movs r1, 0 - movs r2, 0x50 - bl memset - bl sub_80C33DC - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldrb r1, [r5, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r5, 0x8] - ldr r0, _080C2414 - movs r1, 0x5 - bl CreateTask - strb r0, [r4, 0x2] - ldr r0, _080C2418 - bl SetMainCallback2 - ldr r1, _080C241C - movs r0, 0xF0 - strh r0, [r1] - ldr r1, _080C2420 - ldr r2, _080C2424 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080C2428 - movs r1, 0x14 - bl CreateTask - bl sub_80C3F00 - movs r0, 0xDF - lsls r0, 1 - bl PlayBGM - ldr r0, _080C242C - bl SetVBlankCallback - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C240C: .4byte gPaletteFade -_080C2410: .4byte 0x02018000 -_080C2414: .4byte sub_80C24F4 -_080C2418: .4byte sub_80C2430 -_080C241C: .4byte gUnknown_03004200 -_080C2420: .4byte gUnknown_03004244 -_080C2424: .4byte 0x000080a0 -_080C2428: .4byte sub_80C2F28 -_080C242C: .4byte sub_80C2448 - thumb_func_end sub_80C2358 - - thumb_func_start sub_80C2430 -sub_80C2430: @ 80C2430 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_80C2430 - - thumb_func_start sub_80C2448 -sub_80C2448: @ 80C2448 - push {lr} - ldr r1, _080C24C0 - ldr r0, _080C24C4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24C8 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24CC - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24D0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24D4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24D8 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24DC - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24E0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x22 - ldr r0, _080C24E4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - ldr r0, _080C24E8 - ldrh r0, [r0] - strh r0, [r1] - subs r1, 0x2 - ldr r0, _080C24EC - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - ldr r0, _080C24F0 - ldrh r0, [r0] - strh r0, [r1] - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_8089668 - pop {r0} - bx r0 - .align 2, 0 -_080C24C0: .4byte REG_BG0HOFS -_080C24C4: .4byte gUnknown_030042A4 -_080C24C8: .4byte gUnknown_030042A0 -_080C24CC: .4byte gUnknown_030042C0 -_080C24D0: .4byte gUnknown_030041B4 -_080C24D4: .4byte gUnknown_03004288 -_080C24D8: .4byte gUnknown_03004280 -_080C24DC: .4byte gUnknown_030041B0 -_080C24E0: .4byte gUnknown_030041B8 -_080C24E4: .4byte gUnknown_030042C4 -_080C24E8: .4byte gUnknown_03004240 -_080C24EC: .4byte gUnknown_03004200 -_080C24F0: .4byte gUnknown_03004244 - thumb_func_end sub_80C2448 - - thumb_func_start sub_80C24F4 -sub_80C24F4: @ 80C24F4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r2, r4, 0 - ldr r0, _080C252C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080C254E - ldr r0, _080C2530 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C2540 - ldr r0, _080C2534 - bl sub_80C3698 - ldr r1, _080C2538 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C253C - str r1, [r0] - b _080C254E - .align 2, 0 -_080C252C: .4byte gPaletteFade -_080C2530: .4byte gUnknown_0203869A -_080C2534: .4byte gOtherText_LinkStandby -_080C2538: .4byte gTasks -_080C253C: .4byte sub_80C255C -_080C2540: - ldr r0, _080C2554 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C2558 - str r0, [r1] -_080C254E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C2554: .4byte gTasks -_080C2558: .4byte sub_80C2600 - thumb_func_end sub_80C24F4 - - thumb_func_start sub_80C255C -sub_80C255C: @ 80C255C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C2594 - ldrb r0, [r0] - cmp r0, 0 - beq _080C258C - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _080C258C - ldr r0, _080C2598 - movs r1, 0 - bl CreateTask - ldr r1, _080C259C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C25A0 - str r1, [r0] -_080C258C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C2594: .4byte gReceivedRemoteLinkPlayers -_080C2598: .4byte sub_80C25A4 -_080C259C: .4byte gTasks -_080C25A0: .4byte TaskDummy - thumb_func_end sub_80C255C - - thumb_func_start sub_80C25A4 -sub_80C25A4: @ 80C25A4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080C25B8 - ldr r2, _080C25BC - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080C25B8: .4byte sub_80C89DC -_080C25BC: .4byte sub_80C25C0 - thumb_func_end sub_80C25A4 - - thumb_func_start sub_80C25C0 -sub_80C25C0: @ 80C25C0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C25EC - adds r0, r4, 0 - bl DestroyTask - ldr r2, _080C25F4 - ldr r0, _080C25F8 - ldrb r1, [r0, 0x2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _080C25FC - str r1, [r0] - bl sub_80C3764 -_080C25EC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C25F4: .4byte gTasks -_080C25F8: .4byte 0x02018000 -_080C25FC: .4byte sub_80C2600 - thumb_func_end sub_80C25C0 - - thumb_func_start sub_80C2600 -sub_80C2600: @ 80C2600 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C2644 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r5, r1, r2 - ldrh r1, [r5, 0x8] - movs r2, 0x8 - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _080C2654 - ldr r0, _080C2648 - movs r1, 0x14 - bl CreateTask - ldr r4, _080C264C - ldr r0, _080C2650 - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_80C3158 - adds r0, r4, 0 - bl sub_80C34AC - lsls r0, 16 - asrs r0, 16 - movs r3, 0x88 - lsls r3, 3 - movs r1, 0x90 - movs r2, 0x78 - b _080C26A6 - .align 2, 0 -_080C2644: .4byte gTasks -_080C2648: .4byte sub_80C2F64 -_080C264C: .4byte gContestText_AnnounceResults -_080C2650: .4byte 0x02018000 -_080C2654: - cmp r0, 0x1 - bne _080C2668 - ldr r0, _080C2664 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _080C26D4 - b _080C267C - .align 2, 0 -_080C2664: .4byte 0x02018000 -_080C2668: - cmp r0, 0x2 - bne _080C2684 - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080C26D4 - movs r0, 0 -_080C267C: - strh r0, [r5, 0xA] - adds r0, r1, 0x1 - strh r0, [r5, 0x8] - b _080C26D4 -_080C2684: - cmp r0, 0x3 - bne _080C26C0 - ldr r4, _080C26B4 - ldr r0, _080C26B8 - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_80C3158 - adds r0, r4, 0 - bl sub_80C34AC - lsls r0, 16 - asrs r0, 16 - ldr r2, _080C26BC - movs r3, 0x88 - lsls r3, 3 - movs r1, 0x90 -_080C26A6: - bl sub_80C34CC - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080C26D4 - .align 2, 0 -_080C26B4: .4byte gContestText_PreliminaryResults -_080C26B8: .4byte 0x02018000 -_080C26BC: .4byte 0x0000ffff -_080C26C0: - cmp r0, 0x4 - bne _080C26D4 - ldr r0, _080C26DC - ldrb r0, [r0, 0x4] - cmp r0, 0x2 - bne _080C26D4 - movs r0, 0 - strh r0, [r5, 0x8] - ldr r0, _080C26E0 - str r0, [r5] -_080C26D4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C26DC: .4byte 0x02018000 -_080C26E0: .4byte sub_80C26E4 - thumb_func_end sub_80C2600 - - thumb_func_start sub_80C26E4 -sub_80C26E4: @ 80C26E4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C2708 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080C2744 - cmp r0, 0x1 - bgt _080C270C - cmp r0, 0 - beq _080C2712 - b _080C2766 - .align 2, 0 -_080C2708: .4byte gTasks -_080C270C: - cmp r0, 0x2 - beq _080C2754 - b _080C2766 -_080C2712: - ldr r5, _080C2738 - ldrb r0, [r5, 0xA] - cmp r0, 0 - bne _080C2766 - ldrh r1, [r4, 0xC] - adds r0, r1, 0x1 - strh r0, [r4, 0xC] - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_80C40D4 - ldrb r0, [r5, 0x14] - cmp r0, 0 - bne _080C273C - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080C2766 - .align 2, 0 -_080C2738: .4byte 0x02018000 -_080C273C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C2766 -_080C2744: - ldr r0, _080C2750 - ldrb r0, [r0, 0x14] - cmp r0, 0 - bne _080C2766 - strh r0, [r4, 0x8] - b _080C2766 - .align 2, 0 -_080C2750: .4byte 0x02018000 -_080C2754: - movs r0, 0x88 - lsls r0, 3 - bl sub_80C3520 - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0xC] - ldr r0, _080C276C - str r0, [r4] -_080C2766: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C276C: .4byte sub_80C2770 - thumb_func_end sub_80C26E4 - - thumb_func_start sub_80C2770 -sub_80C2770: @ 80C2770 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - adds r4, r2, 0 - ldr r5, _080C27BC - ldrb r3, [r5, 0x4] - cmp r3, 0 - bne _080C27CC - ldr r1, _080C27C0 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r1 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080C27DE - strh r3, [r1, 0xA] - ldr r4, _080C27C4 - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_80C3158 - adds r0, r4, 0 - bl sub_80C34AC - lsls r0, 16 - asrs r0, 16 - ldr r2, _080C27C8 - movs r3, 0x88 - lsls r3, 3 - movs r1, 0x90 - bl sub_80C34CC - b _080C27DE - .align 2, 0 -_080C27BC: .4byte 0x02018000 -_080C27C0: .4byte gTasks -_080C27C4: .4byte gContestText_Round2Results -_080C27C8: .4byte 0x0000ffff -_080C27CC: - cmp r3, 0x2 - bne _080C27DE - ldr r0, _080C27E4 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C27E8 - str r0, [r1] -_080C27DE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C27E4: .4byte gTasks -_080C27E8: .4byte sub_80C27EC - thumb_func_end sub_80C2770 - - thumb_func_start sub_80C27EC -sub_80C27EC: @ 80C27EC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C2810 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080C284C - cmp r0, 0x1 - bgt _080C2814 - cmp r0, 0 - beq _080C281A - b _080C286C - .align 2, 0 -_080C2810: .4byte gTasks -_080C2814: - cmp r0, 0x2 - beq _080C285C - b _080C286C -_080C281A: - ldr r5, _080C2840 - ldrb r0, [r5, 0xA] - cmp r0, 0 - bne _080C286C - ldrh r1, [r4, 0xC] - adds r0, r1, 0x1 - strh r0, [r4, 0xC] - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - bl sub_80C40D4 - ldrb r0, [r5, 0x14] - cmp r0, 0 - bne _080C2844 - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080C286C - .align 2, 0 -_080C2840: .4byte 0x02018000 -_080C2844: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C286C -_080C284C: - ldr r0, _080C2858 - ldrb r0, [r0, 0x14] - cmp r0, 0 - bne _080C286C - strh r0, [r4, 0x8] - b _080C286C - .align 2, 0 -_080C2858: .4byte 0x02018000 -_080C285C: - movs r0, 0x88 - lsls r0, 3 - bl sub_80C3520 - movs r0, 0 - strh r0, [r4, 0x8] - ldr r0, _080C2874 - str r0, [r4] -_080C286C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C2874: .4byte sub_80C2878 - thumb_func_end sub_80C27EC - - thumb_func_start sub_80C2878 -sub_80C2878: @ 80C2878 - push {r4-r7,lr} - sub sp, 0x64 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080C28A0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x5 - bls _080C2896 - b _080C2A80 -_080C2896: - lsls r0, 2 - ldr r1, _080C28A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C28A0: .4byte gTasks -_080C28A4: .4byte _080C28A8 - .align 2, 0 -_080C28A8: - .4byte _080C28C0 - .4byte _080C28E0 - .4byte _080C28FE - .4byte _080C2938 - .4byte _080C299C - .4byte _080C2A70 -_080C28C0: - ldr r0, _080C28DC - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _080C28CA - b _080C2A80 -_080C28CA: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080C2A80 - .align 2, 0 -_080C28DC: .4byte 0x02018000 -_080C28E0: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - beq _080C28F8 - b _080C2A80 -_080C28F8: - movs r0, 0 - strh r0, [r1, 0xA] - b _080C2A4A -_080C28FE: - movs r4, 0 - lsls r6, r5, 2 - ldr r7, _080C292C -_080C2904: - ldr r0, _080C2930 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r7 - ldr r0, _080C2934 - adds r0, r4, r0 - ldrb r0, [r0] - strh r0, [r1, 0x8] - strh r4, [r1, 0xA] - adds r4, 0x1 - cmp r4, 0x3 - ble _080C2904 - b _080C2A42 - .align 2, 0 -_080C292C: .4byte gTasks -_080C2930: .4byte sub_80C3A5C -_080C2934: .4byte gUnknown_02038690 -_080C2938: - ldr r0, _080C2990 - ldrb r0, [r0, 0x5] - cmp r0, 0x4 - beq _080C2942 - b _080C2A80 -_080C2942: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - beq _080C295A - b _080C2A80 -_080C295A: - movs r0, 0 - strh r0, [r4, 0xA] - ldr r0, _080C2994 - movs r1, 0xA - bl CreateTask - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r4, 0 - ldr r1, _080C2998 - ldrb r0, [r1] - cmp r0, 0 - beq _080C2984 -_080C2976: - adds r4, 0x1 - cmp r4, 0x3 - bgt _080C2984 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080C2976 -_080C2984: - lsls r0, r4, 24 - lsrs r0, 24 - movs r1, 0xE - bl sub_80C3E60 - b _080C2A80 - .align 2, 0 -_080C2990: .4byte 0x02018000 -_080C2994: .4byte sub_80C3B30 -_080C2998: .4byte gUnknown_02038690 -_080C299C: - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - adds r2, r0, r2 - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - adds r6, r1, 0 - cmp r0, 0x15 - bne _080C2A80 - movs r0, 0 - strh r0, [r2, 0xA] - movs r4, 0 - ldr r2, _080C29F4 - ldrb r0, [r2] - ldr r1, _080C29F8 - ldr r3, _080C29FC - cmp r0, 0 - beq _080C29D4 -_080C29C6: - adds r4, 0x1 - cmp r4, 0x3 - bgt _080C29D4 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080C29C6 -_080C29D4: - ldrb r1, [r1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C2A04 - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 2 - ldr r0, _080C2A00 - adds r1, r0 - adds r0, r3, 0 - bl StringCopy - lsls r4, 6 - b _080C2A10 - .align 2, 0 -_080C29F4: .4byte gUnknown_02038690 -_080C29F8: .4byte gUnknown_0203869A -_080C29FC: .4byte gStringVar1 -_080C2A00: .4byte gLinkPlayers + 0x8 -_080C2A04: - lsls r4, 6 - ldr r1, _080C2A54 - adds r1, r4, r1 - adds r0, r3, 0 - bl StringCopy -_080C2A10: - ldr r0, _080C2A58 - ldr r1, _080C2A5C - adds r1, r4, r1 - bl StringCopy - ldr r1, _080C2A60 - mov r0, sp - bl StringExpandPlaceholders - ldr r0, _080C2A64 - ldrb r1, [r0] - mov r0, sp - bl sub_80C3158 - mov r0, sp - bl sub_80C34AC - lsls r0, 16 - asrs r0, 16 - ldr r2, _080C2A68 - movs r3, 0x88 - lsls r3, 3 - movs r1, 0x90 - bl sub_80C34CC -_080C2A42: - ldr r0, _080C2A6C - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 -_080C2A4A: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _080C2A80 - .align 2, 0 -_080C2A54: .4byte gUnknown_0203857D -_080C2A58: .4byte gStringVar2 -_080C2A5C: .4byte gUnknown_02038572 -_080C2A60: .4byte gContestText_PokeWon -_080C2A64: .4byte 0x02018000 -_080C2A68: .4byte 0x0000ffff -_080C2A6C: .4byte gTasks -_080C2A70: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, _080C2A88 - str r1, [r0] -_080C2A80: - add sp, 0x64 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C2A88: .4byte sub_80C2A8C - thumb_func_end sub_80C2878 - - thumb_func_start sub_80C2A8C -sub_80C2A8C: @ 80C2A8C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080C2ABC - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0x5 - bls _080C2AB2 - b _080C2D04 -_080C2AB2: - lsls r0, 2 - ldr r1, _080C2AC0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C2ABC: .4byte gTasks -_080C2AC0: .4byte _080C2AC4 - .align 2, 0 -_080C2AC4: - .4byte _080C2ADC - .4byte _080C2C04 - .4byte _080C2C54 - .4byte _080C2C64 - .4byte _080C2CA8 - .4byte _080C2CE8 -_080C2ADC: - ldr r1, _080C2BC4 - movs r0, 0xF0 - strh r0, [r1] - ldr r1, _080C2BC8 - ldr r3, _080C2BCC - adds r0, r3, 0 - strh r0, [r1] - movs r1, 0 - ldr r3, _080C2BD0 - ldrb r0, [r3] - lsls r4, r7, 2 - mov r10, r4 - ldr r2, _080C2BD4 - ldr r5, _080C2BD8 - mov r12, r5 - ldr r4, _080C2BDC - mov r8, r4 - ldr r5, _080C2BE0 - mov r9, r5 - cmp r0, 0 - beq _080C2B14 -_080C2B06: - adds r1, 0x1 - cmp r1, 0x3 - bgt _080C2B14 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _080C2B06 -_080C2B14: - lsls r1, 6 - adds r0, r1, r2 - ldrh r6, [r0] - adds r0, r2, 0 - adds r0, 0x38 - adds r0, r1, r0 - ldr r4, [r0] - adds r0, r2, 0 - adds r0, 0x3C - adds r1, r0 - ldr r1, [r1] - str r1, [sp, 0xC] - lsls r0, r6, 3 - add r0, r12 - lsls r2, r6, 2 - add r2, r8 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - mov r5, r9 - ldr r3, [r5, 0x4] - str r3, [sp] - str r6, [sp, 0x4] - str r4, [sp, 0x8] - ldr r3, _080C2BE4 - bl sub_800D334 - adds r0, r6, 0 - ldr r1, [sp, 0xC] - adds r2, r4, 0 - bl sub_80409C8 - adds r4, r0, 0 - bl LoadCompressedObjectPalette - adds r0, r6, 0 - movs r1, 0x1 - bl GetMonSpriteTemplate_803C56C - ldr r0, _080C2BE8 - ldrh r1, [r4, 0x4] - strh r1, [r0, 0x2] - movs r1, 0x88 - lsls r1, 1 - movs r2, 0x50 - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080C2BEC - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r3, r2, r5 - strh r6, [r3, 0x30] - ldrb r4, [r3, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r4 - strb r1, [r3, 0x5] - adds r5, 0x1C - adds r2, r5 - ldr r1, _080C2BF0 - str r1, [r2] - ldr r2, _080C2BE4 - movs r3, 0xC0 - lsls r3, 9 - adds r1, r2, r3 - strb r0, [r1, 0x8] - ldr r0, _080C2BF4 - bl LoadCompressedObjectPic - ldr r0, _080C2BF8 - bl LoadCompressedObjectPalette - ldr r0, _080C2BFC - movs r1, 0xA - bl CreateTask - ldr r0, _080C2C00 - mov r4, r10 - adds r1, r4, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _080C2D04 - .align 2, 0 -_080C2BC4: .4byte gUnknown_030042C4 -_080C2BC8: .4byte gUnknown_03004240 -_080C2BCC: .4byte 0x00005050 -_080C2BD0: .4byte gUnknown_02038690 -_080C2BD4: .4byte gUnknown_02038570 -_080C2BD8: .4byte gMonFrontPicTable -_080C2BDC: .4byte gMonFrontPicCoords -_080C2BE0: .4byte gUnknown_081FAF4C -_080C2BE4: .4byte 0x02000000 -_080C2BE8: .4byte gUnknown_02024E8C -_080C2BEC: .4byte gSprites -_080C2BF0: .4byte sub_80C3C44 -_080C2BF4: .4byte gUnknown_083D17CC -_080C2BF8: .4byte gUnknown_083D17D4 -_080C2BFC: .4byte sub_80C3D04 -_080C2C00: .4byte gTasks -_080C2C04: - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r4, r0, r4 - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080C2D04 - movs r0, 0 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0xC] - adds r0, 0x2 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - ble _080C2C30 - movs r0, 0x20 - strh r0, [r4, 0xC] -_080C2C30: - ldrb r2, [r4, 0xC] - ldr r3, _080C2C50 - movs r0, 0x50 - subs r0, r2 - lsls r0, 8 - adds r1, r2, 0 - adds r1, 0x50 - orrs r0, r1 - strh r0, [r3] - cmp r2, 0x20 - bne _080C2D04 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C2D04 - .align 2, 0 -_080C2C50: .4byte gUnknown_03004240 -_080C2C54: - ldr r0, _080C2C60 - ldrb r0, [r0, 0x6] - cmp r0, 0x1 - bne _080C2D04 - b _080C2CD0 - .align 2, 0 -_080C2C60: .4byte 0x02018000 -_080C2C64: - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r3, r0, r4 - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x79 - bne _080C2D04 - movs r0, 0 - strh r0, [r3, 0xA] - ldr r2, _080C2C9C - ldr r0, _080C2CA0 - ldrb r1, [r0, 0x8] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080C2CA4 - str r1, [r0] - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - b _080C2D04 - .align 2, 0 -_080C2C9C: .4byte gSprites -_080C2CA0: .4byte 0x02018000 -_080C2CA4: .4byte sub_80C3CB8 -_080C2CA8: - ldr r0, _080C2CE0 - ldrb r0, [r0, 0x6] - cmp r0, 0x2 - bne _080C2D04 - ldr r3, _080C2CE4 - ldrh r0, [r3] - lsrs r2, r0, 8 - adds r0, r2, 0x2 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x50 - bls _080C2CC2 - movs r2, 0x50 -_080C2CC2: - lsls r1, r2, 8 - movs r0, 0xA0 - subs r0, r2 - orrs r1, r0 - strh r1, [r3] - cmp r2, 0x50 - bne _080C2D04 -_080C2CD0: - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r4 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080C2D04 - .align 2, 0 -_080C2CE0: .4byte 0x02018000 -_080C2CE4: .4byte gUnknown_03004240 -_080C2CE8: - ldr r2, _080C2D14 - ldrb r0, [r2, 0x6] - cmp r0, 0x2 - bne _080C2D04 - movs r1, 0 - movs r0, 0x1 - strb r0, [r2, 0x9] - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r4 - strh r1, [r0, 0x8] - ldr r1, _080C2D18 - str r1, [r0] -_080C2D04: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C2D14: .4byte 0x02018000 -_080C2D18: .4byte sub_80C2D1C - thumb_func_end sub_80C2A8C - - thumb_func_start sub_80C2D1C -sub_80C2D1C: @ 80C2D1C - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _080C2D6C - ldrh r1, [r0, 0x2E] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080C2D66 - ldr r0, _080C2D70 - ldrb r1, [r0] - adds r0, r2, 0 - ands r0, r1 - lsls r6, r7, 2 - cmp r0, 0 - bne _080C2D5A - ldr r5, _080C2D74 - movs r4, 0x3 -_080C2D42: - ldrh r0, [r5] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2 - bl sub_8090D90 - adds r5, 0x40 - subs r4, 0x1 - cmp r4, 0 - bge _080C2D42 -_080C2D5A: - ldr r0, _080C2D78 - adds r1, r6, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C2D7C - str r0, [r1] -_080C2D66: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C2D6C: .4byte gMain -_080C2D70: .4byte gUnknown_0203869A -_080C2D74: .4byte gUnknown_02038570 -_080C2D78: .4byte gTasks -_080C2D7C: .4byte sub_80C2D80 - thumb_func_end sub_80C2D1C - - thumb_func_start sub_80C2D80 -sub_80C2D80: @ 80C2D80 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C2DAC - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C2DBC - ldr r0, _080C2DB0 - bl sub_80C3698 - bl sub_800832C - ldr r1, _080C2DB4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C2DB8 - str r1, [r0] - b _080C2DCA - .align 2, 0 -_080C2DAC: .4byte gUnknown_0203869A -_080C2DB0: .4byte gOtherText_LinkStandby -_080C2DB4: .4byte gTasks -_080C2DB8: .4byte sub_80C2DD8 -_080C2DBC: - ldr r0, _080C2DD0 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C2DD4 - str r0, [r1] -_080C2DCA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C2DD0: .4byte gTasks -_080C2DD4: .4byte sub_80C2E14 - thumb_func_end sub_80C2D80 - - thumb_func_start sub_80C2DD8 -sub_80C2DD8: @ 80C2DD8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C2E04 - ldrb r1, [r0] - cmp r1, 0 - bne _080C2DFC - ldr r0, _080C2E08 - strb r1, [r0] - bl sub_80C3764 - ldr r1, _080C2E0C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C2E10 - str r1, [r0] -_080C2DFC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C2E04: .4byte gReceivedRemoteLinkPlayers -_080C2E08: .4byte gUnknown_0203869A -_080C2E0C: .4byte gTasks -_080C2E10: .4byte sub_80C2E14 - thumb_func_end sub_80C2DD8 - - thumb_func_start sub_80C2E14 -sub_80C2E14: @ 80C2E14 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _080C2E80 - ldr r0, _080C2E84 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - bl sub_80BE284 - movs r0, 0x2 - bl sub_810FB10 - ldr r0, _080C2E88 - ldrb r0, [r0] - bl sub_80B2A7C - movs r0, 0xFE - bl sub_80B2A7C - ldr r4, _080C2E8C - ldr r0, _080C2E90 - adds r1, r4, r0 - movs r6, 0 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0xFE - movs r1, 0 - bl sub_80B2C4C - ldr r1, _080C2E94 - adds r4, r1 - strb r0, [r4] - str r6, [sp] - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginHardwarePaletteFade - ldr r1, _080C2E98 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C2E9C - str r1, [r0] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C2E80: .4byte gUnknown_02038690 -_080C2E84: .4byte gUnknown_02038695 -_080C2E88: .4byte gUnknown_0203869E -_080C2E8C: .4byte 0x02000000 -_080C2E90: .4byte 0x00015ddf -_080C2E94: .4byte 0x00015dde -_080C2E98: .4byte gTasks -_080C2E9C: .4byte sub_80C2EA0 - thumb_func_end sub_80C2E14 - - thumb_func_start sub_80C2EA0 -sub_80C2EA0: @ 80C2EA0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - adds r5, r2, 0 - ldr r0, _080C2ED8 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _080C2F18 - ldr r1, _080C2EDC - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080C2EE8 - ldr r0, _080C2EE0 - ldrb r0, [r0, 0x3] - bl DestroyTask - ldr r0, _080C2EE4 - b _080C2EEE - .align 2, 0 -_080C2ED8: .4byte gPaletteFade -_080C2EDC: .4byte gTasks -_080C2EE0: .4byte 0x02018000 -_080C2EE4: .4byte 0x0000ffff -_080C2EE8: - cmp r0, 0x1 - bne _080C2F04 - ldr r0, _080C2F00 -_080C2EEE: - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _080C2F18 - .align 2, 0 -_080C2F00: .4byte 0xffff0000 -_080C2F04: - ldr r0, _080C2F20 - strh r3, [r0] - adds r0, 0x4 - strh r3, [r0] - adds r0, r5, 0 - bl DestroyTask - ldr r0, _080C2F24 - bl SetMainCallback2 -_080C2F18: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C2F20: .4byte REG_BLDCNT -_080C2F24: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_80C2EA0 - - thumb_func_start sub_80C2F28 -sub_80C2F28: @ 80C2F28 - push {r4,r5,lr} - ldr r2, _080C2F5C - ldrh r3, [r2] - adds r0, r3, 0x2 - strh r0, [r2] - ldr r4, _080C2F60 - ldrh r5, [r4] - adds r1, r5, 0x1 - strh r1, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xFF - bls _080C2F48 - adds r0, r3, 0 - subs r0, 0xFD - strh r0, [r2] -_080C2F48: - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, 0xFF - bls _080C2F56 - adds r0, r5, 0 - subs r0, 0xFE - strh r0, [r4] -_080C2F56: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C2F5C: .4byte gUnknown_030041B0 -_080C2F60: .4byte gUnknown_030041B8 - thumb_func_end sub_80C2F28 - - thumb_func_start sub_80C2F64 -sub_80C2F64: @ 80C2F64 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080C2F94 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080C2FE6 - movs r0, 0 - strh r0, [r2, 0x8] - movs r3, 0xC - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080C2F98 - ldrh r0, [r2, 0xA] - adds r0, 0x1 - b _080C2F9C - .align 2, 0 -_080C2F94: .4byte gTasks -_080C2F98: - ldrh r0, [r2, 0xA] - subs r0, 0x1 -_080C2F9C: - strh r0, [r2, 0xA] - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0x10 - bne _080C2FB2 - movs r0, 0x1 - b _080C2FB6 -_080C2FB2: - cmp r0, 0 - bne _080C2FB8 -_080C2FB6: - strh r0, [r1, 0xC] -_080C2FB8: - ldr r0, _080C3000 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r2, [r4, 0xA] - ldr r3, _080C3004 - movs r0, 0x6B - movs r1, 0x1 - bl BlendPalette - ldrb r2, [r4, 0xA] - ldr r3, _080C3008 - movs r0, 0x68 - movs r1, 0x1 - bl BlendPalette - ldrb r2, [r4, 0xA] - ldr r3, _080C300C - movs r0, 0x6E - movs r1, 0x1 - bl BlendPalette -_080C2FE6: - ldr r1, _080C3000 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r3, 0xA - ldrsh r4, [r0, r3] - cmp r4, 0 - bne _080C3014 - ldr r0, _080C3010 - strb r4, [r0, 0xA] - b _080C301A - .align 2, 0 -_080C3000: .4byte gTasks -_080C3004: .4byte 0x00002ede -_080C3008: .4byte 0x00007fff -_080C300C: .4byte 0x000077be -_080C3010: .4byte 0x02018000 -_080C3014: - ldr r1, _080C3020 - movs r0, 0x1 - strb r0, [r1, 0xA] -_080C301A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C3020: .4byte 0x02018000 - thumb_func_end sub_80C2F64 - - thumb_func_start sub_80C3024 -sub_80C3024: @ 80C3024 - push {r4-r6,lr} - ldr r6, [sp, 0x10] - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - lsls r3, 24 - cmp r3, 0 - beq _080C30B0 - adds r1, r6, 0 - bl sub_809D4F4 - lsls r1, r5, 9 - adds r0, r1 - adds r0, 0x80 - lsls r1, r4, 9 - ldr r2, _080C30A0 - adds r1, r2 - ldr r2, _080C30A4 - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _080C30A8 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - adds r1, r4, 0 - adds r1, 0xA - lsls r1, 28 - lsls r0, r4, 20 - movs r2, 0x80 - lsls r2, 18 - adds r0, r2 - orrs r0, r1 - lsrs r1, r0, 16 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 21 - movs r2, 0x83 - lsls r2, 16 - adds r0, r2 - lsrs r5, r0, 16 - movs r2, 0 - ldr r6, _080C30AC -_080C307C: - lsls r0, r2, 5 - adds r4, r2, 0x1 - adds r0, r5 - movs r3, 0x3 - lsls r0, 1 - adds r2, r0, r6 -_080C3088: - strh r1, [r2] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080C3088 - adds r2, r4, 0 - cmp r2, 0x2 - ble _080C307C - b _080C30CA - .align 2, 0 -_080C30A0: .4byte 0x06004000 -_080C30A4: .4byte 0x040000d4 -_080C30A8: .4byte 0x84000060 -_080C30AC: .4byte 0x0600c000 -_080C30B0: - adds r1, r6, 0 - bl sub_809D4F4 - lsls r1, r5, 9 - adds r0, r1 - adds r0, 0x80 - lsls r1, r4, 9 - ldr r2, _080C30D0 - adds r1, r2 - movs r2, 0xC0 - lsls r2, 1 - bl RequestSpriteCopy -_080C30CA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C30D0: .4byte 0x06004000 - thumb_func_end sub_80C3024 - - thumb_func_start sub_80C30D4 -sub_80C30D4: @ 80C30D4 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - movs r5, 0 - ldr r4, _080C3108 -_080C30E4: - ldrh r0, [r4] - lsls r1, r5, 24 - lsrs r1, 24 - ldr r2, [r4, 0x38] - str r2, [sp] - adds r2, r7, 0 - adds r3, r6, 0 - bl sub_80C3024 - adds r4, 0x40 - adds r5, 0x1 - cmp r5, 0x3 - ble _080C30E4 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C3108: .4byte gUnknown_02038570 - thumb_func_end sub_80C30D4 - - thumb_func_start sub_80C310C -sub_80C310C: @ 80C310C - push {r4-r6,lr} - movs r4, 0 - ldr r6, _080C314C - movs r5, 0xA0 - lsls r5, 16 -_080C3116: - ldr r1, _080C3150 - lsls r0, r4, 6 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0 - bl mon_icon_convert_unown_species_id - lsls r0, 16 - lsrs r0, 16 - adds r0, r6 - ldrb r0, [r0] - lsls r0, 5 - ldr r1, _080C3154 - adds r0, r1 - lsrs r1, r5, 16 - movs r2, 0x20 - bl LoadPalette - movs r0, 0x80 - lsls r0, 13 - adds r5, r0 - adds r4, 0x1 - cmp r4, 0x3 - ble _080C3116 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C314C: .4byte gMonIconPaletteIndices -_080C3150: .4byte gUnknown_02038570 -_080C3154: .4byte gMonIconPalettes - thumb_func_end sub_80C310C - - thumb_func_start sub_80C3158 -sub_80C3158: @ 80C3158 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - ldr r3, _080C32C0 - adds r2, r3 - mov r1, sp - ldrh r0, [r2, 0x4] - lsls r0, 22 - lsrs r0, 22 - strh r0, [r1] - mov r4, sp - movs r0, 0x2E - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x4] - lsls r0, 22 - lsrs r0, 22 - strh r0, [r4, 0x2] - movs r0, 0x30 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x4] - lsls r0, 22 - lsrs r0, 22 - strh r0, [r4, 0x4] - movs r0, 0x32 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x4] - lsls r0, 22 - lsrs r0, 22 - strh r0, [r4, 0x6] - ldr r1, _080C32C4 - mov r8, r1 - ldr r7, _080C32C8 - ldr r2, _080C32CC - ldr r6, _080C32D0 - mov r1, sp - movs r5, 0 - add r3, sp, 0x8 - movs r4, 0x3 -_080C31CE: - ldrh r0, [r1] - lsls r0, 5 - adds r0, r7 - str r5, [sp, 0x8] - str r3, [r2] - str r0, [r2, 0x4] - str r6, [r2, 0x8] - ldr r0, [r2, 0x8] - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080C31CE - mov r0, r8 - mov r1, r9 - bl GetStringWidthGivenWindowConfig - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _080C32D4 - ldr r1, _080C32D8 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - mvns r0, r5 - adds r1, r0, 0x1 - movs r0, 0x7 - ands r1, r0 - cmp r1, 0 - beq _080C3218 - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x11 - strb r0, [r2, 0x1] - lsrs r0, r1, 1 - strb r0, [r2, 0x2] - adds r2, 0x3 -_080C3218: - adds r6, r5, 0x7 - movs r1, 0x8 - negs r1, r1 - adds r0, r1, 0 - ands r6, r0 - lsls r6, 24 - lsrs r5, r6, 24 - adds r0, r2, 0 - mov r1, r9 - bl StringCopy - adds r2, r0, 0 - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x13 - strb r0, [r2, 0x1] - strb r5, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r0, _080C32DC - mov r10, r0 - ldr r1, _080C32D4 - bl sub_80034D4 - mov r0, sp - ldrh r4, [r0] - lsls r4, 5 - ldr r1, _080C32C8 - adds r7, r4, r1 - ldr r0, _080C32E0 - mov r9, r0 - ldr r1, _080C32E4 - mov r8, r1 - adds r1, r7, 0 - mov r2, r8 - bl CpuSet - mov r5, r9 - adds r5, 0x80 - ldr r0, _080C32E8 - adds r1, r4, r0 - adds r0, r5, 0 - mov r2, r8 - bl CpuSet - ldr r0, _080C32EC - adds r1, r4, r0 - adds r0, r5, 0 - mov r2, r8 - bl CpuSet - mov r0, r9 - adds r0, 0x40 - ldr r1, _080C32F0 - adds r4, r1 - adds r1, r4, 0 - mov r2, r8 - bl CpuSet - lsrs r5, r6, 27 - movs r4, 0 - cmp r4, r5 - bgt _080C3382 - mov r6, sp - mov r0, r10 - adds r0, 0x20 - str r0, [sp, 0xC] - mov r1, r10 - str r1, [sp, 0x10] - ldr r0, _080C32F4 - str r0, [sp, 0x14] - ldr r1, _080C32F8 - str r1, [sp, 0x18] - ldr r0, _080C32FC - mov r10, r0 - ldr r1, _080C3300 - mov r9, r1 -_080C32B2: - cmp r4, 0x6 - bgt _080C3304 - ldrh r0, [r6] - lsls r0, 5 - mov r1, r9 - b _080C3322 - .align 2, 0 -_080C32C0: .4byte gSprites -_080C32C4: .4byte gWindowConfig_81E7278 -_080C32C8: .4byte 0x06010000 -_080C32CC: .4byte 0x040000d4 -_080C32D0: .4byte 0x85000100 -_080C32D4: .4byte gUnknown_020238CC -_080C32D8: .4byte gUnknown_083D17E2 -_080C32DC: .4byte 0x02018068 -_080C32E0: .4byte gUnknown_083D1624 -_080C32E4: .4byte REG_BG0CNT -_080C32E8: .4byte 0x06010100 -_080C32EC: .4byte 0x06010200 -_080C32F0: .4byte 0x06010300 -_080C32F4: .4byte 0x0600fd20 -_080C32F8: .4byte 0x0600fe20 -_080C32FC: .4byte 0x0600ff20 -_080C3300: .4byte 0x06010020 -_080C3304: - cmp r4, 0xE - bgt _080C3310 - ldrh r0, [r6, 0x2] - lsls r0, 5 - mov r1, r10 - b _080C3322 -_080C3310: - cmp r4, 0x16 - bgt _080C331C - ldrh r0, [r6, 0x4] - lsls r0, 5 - ldr r1, [sp, 0x18] - b _080C3322 -_080C331C: - ldrh r0, [r6, 0x6] - lsls r0, 5 - ldr r1, [sp, 0x14] -_080C3322: - adds r7, r0, r1 - cmp r4, r5 - beq _080C3382 - ldr r0, _080C33D0 - adds r1, r7, 0 - mov r2, r8 - bl CpuSet - movs r0, 0xC0 - lsls r0, 2 - adds r1, r7, r0 - ldr r0, _080C33D0 - adds r0, 0x20 - mov r2, r8 - bl CpuSet - movs r0, 0x80 - lsls r0, 1 - adds r1, r7, r0 - ldr r0, [sp, 0x10] - mov r2, r8 - bl CpuSet - movs r0, 0x80 - lsls r0, 2 - adds r1, r7, r0 - ldr r0, [sp, 0xC] - mov r2, r8 - bl CpuSet - ldr r1, [sp, 0xC] - adds r1, 0x40 - str r1, [sp, 0xC] - ldr r0, [sp, 0x10] - adds r0, 0x40 - str r0, [sp, 0x10] - ldr r1, [sp, 0x14] - adds r1, 0x20 - str r1, [sp, 0x14] - ldr r0, [sp, 0x18] - adds r0, 0x20 - str r0, [sp, 0x18] - movs r1, 0x20 - add r10, r1 - add r9, r1 - adds r4, 0x1 - cmp r4, r5 - ble _080C32B2 -_080C3382: - ldr r4, _080C33D4 - ldr r5, _080C33D8 - adds r0, r4, 0 - adds r1, r7, 0 - adds r2, r5, 0 - bl CpuSet - adds r6, r4, 0 - adds r6, 0x80 - movs r0, 0x80 - lsls r0, 1 - adds r1, r7, r0 - adds r0, r6, 0 - adds r2, r5, 0 - bl CpuSet - movs r0, 0x80 - lsls r0, 2 - adds r1, r7, r0 - adds r0, r6, 0 - adds r2, r5, 0 - bl CpuSet - adds r4, 0x40 - movs r0, 0xC0 - lsls r0, 2 - adds r1, r7, r0 - adds r0, r4, 0 - adds r2, r5, 0 - bl CpuSet - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C33D0: .4byte gUnknown_083D16E4 -_080C33D4: .4byte gUnknown_083D1644 -_080C33D8: .4byte REG_BG0CNT - thumb_func_end sub_80C3158 - - thumb_func_start sub_80C33DC -sub_80C33DC: @ 80C33DC - push {r4-r6,lr} - sub sp, 0x20 - mov r1, sp - ldr r0, _080C3498 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - add r5, sp, 0x18 - ldr r6, _080C349C - movs r4, 0x7 -_080C33F2: - adds r0, r6, 0 - bl LoadSpriteSheet - adds r6, 0x8 - subs r4, 0x1 - cmp r4, 0 - bge _080C33F2 - ldr r0, _080C34A0 - bl LoadSpritePalette - movs r4, 0 - mov r6, sp -_080C340A: - mov r0, sp - movs r1, 0x88 - lsls r1, 1 - movs r2, 0x90 - movs r3, 0xA - bl CreateSprite - adds r1, r5, r4 - strb r0, [r1] - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - adds r4, 0x1 - cmp r4, 0x7 - ble _080C340A - ldr r2, _080C34A4 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r5, 0x1] - movs r3, 0 - strh r1, [r0, 0x2E] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r5, 0x2] - strh r1, [r0, 0x30] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r5, 0x3] - strh r1, [r0, 0x32] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r5, 0x5] - strh r1, [r0, 0x2E] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r5, 0x6] - strh r1, [r0, 0x30] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r5, 0x7] - strh r1, [r0, 0x32] - ldr r1, _080C34A8 - ldrb r0, [r5] - strb r0, [r1] - strb r3, [r1, 0x4] - ldrb r0, [r5, 0x4] - strb r0, [r1, 0x1] - bl sub_80C3764 - add sp, 0x20 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C3498: .4byte gSpriteTemplate_83D174C -_080C349C: .4byte gUnknown_083D1764 -_080C34A0: .4byte gUnknown_083D17A4 -_080C34A4: .4byte gSprites -_080C34A8: .4byte 0x02018000 - thumb_func_end sub_80C33DC - - thumb_func_start sub_80C34AC -sub_80C34AC: @ 80C34AC - push {lr} - bl StringLength - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 25 - lsrs r1, 25 - movs r0, 0x70 - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80C34AC - - thumb_func_start sub_80C34CC -sub_80C34CC: @ 80C34CC - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r4, _080C3514 - mov r8, r4 - ldrb r5, [r4] - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r5, _080C3518 - adds r4, r5 - movs r6, 0 - movs r5, 0x88 - lsls r5, 1 - strh r5, [r4, 0x20] - strh r1, [r4, 0x22] - strh r6, [r4, 0x24] - strh r6, [r4, 0x26] - lsls r0, 16 - asrs r0, 16 - adds r0, 0x20 - strh r0, [r4, 0x36] - strh r2, [r4, 0x38] - strh r3, [r4, 0x3A] - strh r6, [r4, 0x3C] - ldr r0, _080C351C - str r0, [r4, 0x1C] - movs r0, 0x1 - mov r1, r8 - strb r0, [r1, 0x4] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C3514: .4byte 0x02018000 -_080C3518: .4byte gSprites -_080C351C: .4byte sub_80C3588 - thumb_func_end sub_80C34CC - - thumb_func_start sub_80C3520 -sub_80C3520: @ 80C3520 - push {r4,r5,lr} - ldr r4, _080C3558 - ldrb r2, [r4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r2, _080C355C - adds r1, r2 - ldrh r2, [r1, 0x24] - ldrh r3, [r1, 0x20] - adds r2, r3 - movs r3, 0 - strh r2, [r1, 0x20] - ldrh r2, [r1, 0x26] - ldrh r5, [r1, 0x22] - adds r2, r5 - strh r2, [r1, 0x22] - strh r3, [r1, 0x26] - strh r3, [r1, 0x24] - strh r0, [r1, 0x3A] - strh r3, [r1, 0x3C] - ldr r0, _080C3560 - str r0, [r1, 0x1C] - movs r0, 0x3 - strb r0, [r4, 0x4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C3558: .4byte 0x02018000 -_080C355C: .4byte gSprites -_080C3560: .4byte sub_80C3630 - thumb_func_end sub_80C3520 - - thumb_func_start sub_80C3564 -sub_80C3564: @ 80C3564 - movs r3, 0 - movs r2, 0 - movs r1, 0x88 - lsls r1, 1 - strh r1, [r0, 0x20] - movs r1, 0x90 - strh r1, [r0, 0x22] - strh r2, [r0, 0x26] - strh r2, [r0, 0x24] - ldr r1, _080C3580 - str r1, [r0, 0x1C] - ldr r0, _080C3584 - strb r3, [r0, 0x4] - bx lr - .align 2, 0 -_080C3580: .4byte SpriteCallbackDummy -_080C3584: .4byte 0x02018000 - thumb_func_end sub_80C3564 - - thumb_func_start sub_80C3588 -sub_80C3588: @ 80C3588 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x3A] - ldrh r0, [r3, 0x3C] - adds r2, r0 - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r3, 0x20] - subs r0, r1 - strh r0, [r3, 0x20] - movs r1, 0xFF - ands r2, r1 - strh r2, [r3, 0x3C] - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r3, 0x36] - movs r4, 0x36 - ldrsh r1, [r3, r4] - cmp r0, r1 - bge _080C35B2 - strh r2, [r3, 0x20] -_080C35B2: - movs r4, 0 - ldr r6, _080C35F4 - movs r5, 0x40 - adds r2, r3, 0 - adds r2, 0x2E -_080C35BC: - movs r7, 0 - ldrsh r0, [r2, r7] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r3, 0x24] - ldrh r7, [r3, 0x20] - adds r0, r7 - adds r0, r5 - strh r0, [r1, 0x20] - adds r5, 0x40 - adds r2, 0x2 - adds r4, 0x1 - cmp r4, 0x2 - ble _080C35BC - movs r0, 0x20 - ldrsh r1, [r3, r0] - movs r2, 0x36 - ldrsh r0, [r3, r2] - cmp r1, r0 - bne _080C35EC - ldr r0, _080C35F8 - str r0, [r3, 0x1C] -_080C35EC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C35F4: .4byte gSprites -_080C35F8: .4byte sub_80C35FC - thumb_func_end sub_80C3588 - - thumb_func_start sub_80C35FC -sub_80C35FC: @ 80C35FC - push {lr} - adds r2, r0, 0 - ldr r0, _080C3628 - movs r1, 0x2 - strb r1, [r0, 0x4] - ldrh r3, [r2, 0x38] - ldr r1, _080C362C - lsrs r0, r1, 16 - cmp r3, r0 - beq _080C3624 - subs r0, r3, 0x1 - strh r0, [r2, 0x38] - lsls r0, 16 - asrs r0, 16 - asrs r1, 16 - cmp r0, r1 - bne _080C3624 - ldrh r0, [r2, 0x3A] - bl sub_80C3520 -_080C3624: - pop {r0} - bx r0 - .align 2, 0 -_080C3628: .4byte 0x02018000 -_080C362C: .4byte 0xffff0000 - thumb_func_end sub_80C35FC - - thumb_func_start sub_80C3630 -sub_80C3630: @ 80C3630 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x3A] - ldrh r0, [r3, 0x3C] - adds r2, r0 - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r3, 0x20] - subs r0, r1 - strh r0, [r3, 0x20] - movs r0, 0xFF - ands r2, r0 - strh r2, [r3, 0x3C] - movs r4, 0 - ldr r6, _080C3694 - movs r5, 0x40 - adds r2, r3, 0 - adds r2, 0x2E -_080C3654: - movs r1, 0 - ldrsh r0, [r2, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r3, 0x24] - ldrh r7, [r3, 0x20] - adds r0, r7 - adds r0, r5 - strh r0, [r1, 0x20] - adds r5, 0x40 - adds r2, 0x2 - adds r4, 0x1 - cmp r4, 0x2 - ble _080C3654 - movs r1, 0x20 - ldrsh r0, [r3, r1] - movs r2, 0x24 - ldrsh r1, [r3, r2] - adds r0, r1 - movs r1, 0xE0 - negs r1, r1 - cmp r0, r1 - bge _080C368C - adds r0, r3, 0 - bl sub_80C3564 -_080C368C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C3694: .4byte gSprites - thumb_func_end sub_80C3630 - - thumb_func_start sub_80C3698 -sub_80C3698: @ 80C3698 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r5, _080C374C - ldrb r1, [r5, 0x1] - bl sub_80C3158 - adds r0, r4, 0 - bl sub_80C34AC - lsls r0, 16 - lsrs r0, 16 - ldrb r2, [r5, 0x1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r3, _080C3750 - adds r4, r1, r3 - adds r0, 0x20 - strh r0, [r4, 0x20] - movs r0, 0x50 - strh r0, [r4, 0x22] - adds r5, r4, 0 - adds r5, 0x3E - ldrb r1, [r5] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r1 - strb r0, [r5] - movs r5, 0 - adds r6, r3, 0 - mov r12, r2 - movs r3, 0x40 -_080C36DA: - lsls r0, r5, 1 - adds r2, r4, 0 - adds r2, 0x2E - adds r2, r0 - movs r1, 0 - ldrsh r0, [r2, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r4, 0x24] - ldrh r7, [r4, 0x20] - adds r0, r7 - adds r0, r3 - strh r0, [r1, 0x20] - movs r0, 0 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r4, 0x22] - strh r1, [r0, 0x22] - movs r1, 0 - ldrsh r0, [r2, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r12 - ands r0, r2 - strb r0, [r1] - adds r3, 0x40 - adds r5, 0x1 - cmp r5, 0x2 - ble _080C36DA - ldr r1, _080C3754 - movs r0, 0xF0 - strh r0, [r1] - ldr r2, _080C3758 - ldrh r1, [r4, 0x22] - adds r0, r1, 0 - subs r0, 0x10 - lsls r0, 8 - adds r1, 0x10 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080C375C - ldr r2, _080C3760 - adds r0, r2, 0 - strh r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C374C: .4byte 0x02018000 -_080C3750: .4byte gSprites -_080C3754: .4byte gUnknown_030042C4 -_080C3758: .4byte gUnknown_03004240 -_080C375C: .4byte REG_WININ -_080C3760: .4byte 0x00003f3e - thumb_func_end sub_80C3698 - - thumb_func_start sub_80C3764 -sub_80C3764: @ 80C3764 - push {r4-r7,lr} - ldr r0, _080C37C8 - ldrb r0, [r0, 0x1] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r3, _080C37CC - adds r2, r3 - movs r0, 0x3E - adds r0, r2 - mov r12, r0 - ldrb r0, [r0] - movs r1, 0x4 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldr r7, _080C37D0 - ldr r6, _080C37D4 - adds r5, r3, 0 - movs r4, 0x4 - adds r2, 0x2E - movs r3, 0x2 -_080C3790: - movs r1, 0 - ldrsh r0, [r2, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080C3790 - movs r1, 0 - strh r1, [r7] - strh r1, [r6] - ldr r0, _080C37D8 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - ldr r1, _080C37DC - ldr r2, _080C37E0 - adds r0, r2, 0 - strh r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C37C8: .4byte 0x02018000 -_080C37CC: .4byte gSprites -_080C37D0: .4byte gUnknown_030042C4 -_080C37D4: .4byte gUnknown_03004240 -_080C37D8: .4byte REG_WIN0H -_080C37DC: .4byte REG_WININ -_080C37E0: .4byte 0x00003f3f - thumb_func_end sub_80C3764 - - thumb_func_start sub_80C37E4 -sub_80C37E4: @ 80C37E4 - push {r4-r6,lr} - sub sp, 0x10 - movs r5, 0x1 - movs r4, 0 - ldr r0, _080C3808 - ldrb r0, [r0] - adds r1, r5, 0 - ands r1, r0 - cmp r1, 0 - beq _080C3814 - ldr r0, _080C380C - ldr r3, _080C3810 - movs r1, 0x9 - str r1, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - b _080C386A - .align 2, 0 -_080C3808: .4byte gUnknown_0203869A -_080C380C: .4byte 0x0600e000 -_080C3810: .4byte gUnknown_08E964B8 -_080C3814: - ldr r0, _080C3830 - ldrh r2, [r0] - cmp r2, 0 - bne _080C383C - movs r4, 0x1 - ldr r0, _080C3834 - ldr r3, _080C3838 - str r2, [sp] - str r2, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - b _080C3870 - .align 2, 0 -_080C3830: .4byte gUnknown_0203869E -_080C3834: .4byte 0x0600e000 -_080C3838: .4byte gUnknown_08E964B8 -_080C383C: - cmp r2, 0x1 - bne _080C385C - ldr r0, _080C3854 - ldr r3, _080C3858 - movs r1, 0x9 - str r1, [sp] - str r4, [sp, 0x4] - movs r1, 0x8 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - b _080C3870 - .align 2, 0 -_080C3854: .4byte 0x0600e000 -_080C3858: .4byte gUnknown_08E964B8 -_080C385C: - cmp r2, 0x2 - bne _080C3884 - ldr r0, _080C387C - ldr r3, _080C3880 - movs r1, 0x11 - str r1, [sp] - str r4, [sp, 0x4] -_080C386A: - movs r1, 0x8 - str r1, [sp, 0x8] - str r2, [sp, 0xC] -_080C3870: - movs r1, 0x5 - movs r2, 0x1 - bl sub_809D104 - b _080C389E - .align 2, 0 -_080C387C: .4byte 0x0600e000 -_080C3880: .4byte gUnknown_08E964B8 -_080C3884: - movs r4, 0x1 - ldr r0, _080C38C0 - ldr r3, _080C38C4 - str r1, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - str r2, [sp, 0xC] - movs r1, 0x5 - movs r2, 0x1 - bl sub_809D104 -_080C389E: - adds r4, 0xD - ldr r0, _080C38C8 - ldrh r0, [r0] - cmp r0, 0 - bne _080C38CC - movs r6, 0 - ldr r0, _080C38C0 - ldr r3, _080C38C4 - movs r1, 0x11 - str r1, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r1, 0xA - str r1, [sp, 0x8] - str r2, [sp, 0xC] - b _080C392A - .align 2, 0 -_080C38C0: .4byte 0x0600e000 -_080C38C4: .4byte gUnknown_08E964B8 -_080C38C8: .4byte gUnknown_0203869C -_080C38CC: - cmp r0, 0x1 - bne _080C38EC - movs r6, 0x1 - ldr r0, _080C38E4 - ldr r3, _080C38E8 - movs r1, 0 - str r1, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - movs r1, 0xB - b _080C3924 - .align 2, 0 -_080C38E4: .4byte 0x0600e000 -_080C38E8: .4byte gUnknown_08E964B8 -_080C38EC: - cmp r0, 0x2 - bne _080C3910 - movs r6, 0x2 - ldr r0, _080C3908 - ldr r3, _080C390C - movs r1, 0xB - str r1, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - movs r1, 0xA - str r1, [sp, 0x8] - str r6, [sp, 0xC] - b _080C392A - .align 2, 0 -_080C3908: .4byte 0x0600e000 -_080C390C: .4byte gUnknown_08E964B8 -_080C3910: - cmp r0, 0x3 - bne _080C393C - movs r6, 0x3 - ldr r0, _080C3934 - ldr r3, _080C3938 - movs r1, 0x15 - str r1, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - movs r1, 0xA -_080C3924: - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] -_080C392A: - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_809D104 - b _080C395A - .align 2, 0 -_080C3934: .4byte 0x0600e000 -_080C3938: .4byte gUnknown_08E964B8 -_080C393C: - movs r6, 0x4 - ldr r0, _080C3984 - ldr r3, _080C3988 - movs r1, 0 - str r1, [sp] - movs r1, 0x6 - str r1, [sp, 0x4] - movs r1, 0xA - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_809D104 -_080C395A: - ldr r5, _080C398C - lsls r4, r6, 12 - ldr r2, _080C3984 - movs r3, 0x7F -_080C3962: - ldrh r1, [r2] - adds r0, r5, 0 - ands r0, r1 - strh r0, [r2] - ldrh r1, [r2] - adds r0, r4, 0 - orrs r0, r1 - strh r0, [r2] - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080C3962 - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C3984: .4byte 0x0600e000 -_080C3988: .4byte gUnknown_08E964B8 -_080C398C: .4byte 0x00000fff - thumb_func_end sub_80C37E4 - - thumb_func_start sub_80C3990 -sub_80C3990: @ 80C3990 - push {r4,r5,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r1, _080C39DC - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - lsls r4, r0, 16 - adds r0, r4, 0 - movs r1, 0x3F - bl __udivsi3 - adds r1, r0, 0 - ldr r0, _080C39E0 - ands r0, r1 - cmp r0, 0 - beq _080C39BC - movs r0, 0x80 - lsls r0, 9 - adds r1, r0 -_080C39BC: - lsrs r1, 16 - cmp r1, 0 - bne _080C39C8 - cmp r4, 0 - beq _080C39C8 - movs r1, 0x1 -_080C39C8: - cmp r5, 0 - beq _080C39D2 - cmp r1, 0xA - bls _080C39D2 - movs r1, 0xA -_080C39D2: - lsls r0, r1, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080C39DC: .4byte gUnknown_02038670 -_080C39E0: .4byte 0x0000ffff - thumb_func_end sub_80C3990 - - thumb_func_start sub_80C39E4 -sub_80C39E4: @ 80C39E4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r1, _080C3A44 - lsls r0, r5, 1 - adds r0, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r7, r1, 0 - cmp r0, 0 - bge _080C3A00 - negs r0, r0 -_080C3A00: - lsls r4, r0, 16 - adds r0, r4, 0 - movs r1, 0x50 - bl __udivsi3 - adds r2, r0, 0 - ldr r0, _080C3A48 - ands r0, r2 - cmp r0, 0 - beq _080C3A1A - movs r0, 0x80 - lsls r0, 9 - adds r2, r0 -_080C3A1A: - lsrs r2, 16 - cmp r2, 0 - bne _080C3A26 - cmp r4, 0 - beq _080C3A26 - movs r2, 0x1 -_080C3A26: - cmp r6, 0 - beq _080C3A30 - cmp r2, 0xA - bls _080C3A30 - movs r2, 0xA -_080C3A30: - lsls r0, r5, 1 - adds r0, r7 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _080C3A4C - negs r0, r2 - lsls r0, 24 - b _080C3A4E - .align 2, 0 -_080C3A44: .4byte gUnknown_02038688 -_080C3A48: .4byte 0x0000ffff -_080C3A4C: - lsls r0, r2, 24 -_080C3A4E: - lsrs r0, 24 - lsls r0, 24 - asrs r0, 24 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80C39E4 - - thumb_func_start sub_80C3A5C -sub_80C3A5C: @ 80C3A5C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r1, _080C3A90 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r3, r0, r1 - ldrh r2, [r3, 0x1C] - movs r1, 0x1C - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080C3A94 - movs r1, 0x8 - ldrsh r0, [r3, r1] - movs r1, 0x3 - subs r1, r0 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - strh r0, [r3, 0x1E] - adds r0, r2, 0x1 - strh r0, [r3, 0x1C] - b _080C3B12 - .align 2, 0 -_080C3A90: .4byte gTasks -_080C3A94: - cmp r0, 0x1 - bne _080C3B12 - ldrh r0, [r3, 0x1E] - subs r0, 0x1 - strh r0, [r3, 0x1E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080C3B12 - movs r0, 0x8 - ldrsh r2, [r3, r0] - lsls r2, 17 - ldr r1, _080C3B18 - adds r2, r1 - lsrs r2, 16 - movs r0, 0xA - ldrsh r1, [r3, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 6 - ldr r1, _080C3B1C - adds r0, r1 - strh r2, [r0] - movs r0, 0xA - ldrsh r1, [r3, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 6 - ldr r1, _080C3B20 - adds r0, r1 - adds r1, r2, 0x1 - strh r1, [r0] - movs r0, 0xA - ldrsh r1, [r3, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 6 - ldr r1, _080C3B24 - adds r0, r1 - adds r1, r2, 0 - adds r1, 0x10 - strh r1, [r0] - movs r0, 0xA - ldrsh r1, [r3, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 6 - ldr r1, _080C3B28 - adds r0, r1 - adds r2, 0x11 - strh r2, [r0] - ldr r1, _080C3B2C - ldrb r0, [r1, 0x5] - adds r0, 0x1 - strb r0, [r1, 0x5] - adds r0, r4, 0 - bl DestroyTask - movs r0, 0x18 - bl PlaySE -_080C3B12: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C3B18: .4byte 0x50430000 -_080C3B1C: .4byte 0x0600e142 -_080C3B20: .4byte 0x0600e144 -_080C3B24: .4byte 0x0600e182 -_080C3B28: .4byte 0x0600e184 -_080C3B2C: .4byte 0x02018000 - thumb_func_end sub_80C3A5C - - thumb_func_start sub_80C3B30 -sub_80C3B30: @ 80C3B30 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - movs r5, 0 - ldr r1, _080C3BC0 - ldrb r0, [r1] - ldr r2, _080C3BC4 - mov r10, r2 - cmp r0, 0 - beq _080C3B5C -_080C3B4E: - adds r5, 0x1 - cmp r5, 0x3 - bgt _080C3B5C - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080C3B4E -_080C3B5C: - movs r1, 0 - lsls r0, r5, 1 - mov r2, r12 - lsls r2, 2 - mov r9, r2 - adds r0, r5 - lsls r0, 5 - mov r8, r0 - ldr r7, _080C3BC8 - movs r0, 0x90 - lsls r0, 8 - adds r6, r0, 0 -_080C3B74: - lsls r0, r1, 5 - adds r4, r1, 0x1 - add r0, r8 - movs r3, 0x1D - lsls r0, 1 - ldr r1, _080C3BCC - adds r2, r0, r1 -_080C3B82: - ldrh r1, [r2] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r6 - strh r0, [r2] - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080C3B82 - adds r1, r4, 0 - cmp r1, 0x2 - ble _080C3B74 - mov r0, r9 - add r0, r12 - lsls r0, 3 - add r0, r10 - strh r5, [r0, 0x1C] - movs r1, 0x1 - strh r1, [r0, 0x20] - ldr r2, _080C3BD0 - str r2, [r0] - mov r1, r12 - ldr r0, _080C3BD4 - strb r1, [r0, 0x3] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C3BC0: .4byte gUnknown_02038690 -_080C3BC4: .4byte gTasks -_080C3BC8: .4byte 0x00000fff -_080C3BCC: .4byte 0x0600e100 -_080C3BD0: .4byte sub_80C3BD8 -_080C3BD4: .4byte 0x02018000 - thumb_func_end sub_80C3B30 - - thumb_func_start sub_80C3BD8 -sub_80C3BD8: @ 80C3BD8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C3C24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r5, r0, 16 - cmp r5, 0x1 - bne _080C3C3C - movs r0, 0 - strh r0, [r4, 0x1E] - ldrh r2, [r4, 0x20] - lsls r2, 24 - lsrs r2, 24 - ldr r3, _080C3C28 - movs r0, 0x91 - movs r1, 0x1 - bl BlendPalette - movs r1, 0x22 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080C3C2C - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - bne _080C3C3C - strh r5, [r4, 0x22] - b _080C3C3C - .align 2, 0 -_080C3C24: .4byte gTasks -_080C3C28: .4byte 0x00006f8d -_080C3C2C: - ldrh r0, [r4, 0x20] - subs r0, 0x1 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080C3C3C - strh r0, [r4, 0x22] -_080C3C3C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C3BD8 - - thumb_func_start sub_80C3C44 -sub_80C3C44: @ 80C3C44 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0x9 - bgt _080C3C6C - adds r0, r1, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080C3CA8 - ldrh r0, [r4, 0x30] - movs r1, 0 - bl PlayCry1 - movs r0, 0 - strh r0, [r4, 0x30] - b _080C3CA8 -_080C3C6C: - movs r0, 0xC0 - lsls r0, 3 - adds r2, r0, 0 - ldrh r1, [r4, 0x30] - adds r2, r1 - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r4, 0x20] - subs r0, r1 - strh r0, [r4, 0x20] - movs r1, 0xFF - ands r2, r1 - strh r2, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x77 - bgt _080C3C92 - movs r0, 0x78 - strh r0, [r4, 0x20] -_080C3C92: - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x78 - bne _080C3CA8 - ldr r0, _080C3CB0 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x30] - ldr r1, _080C3CB4 - movs r0, 0x1 - strb r0, [r1, 0x6] -_080C3CA8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C3CB0: .4byte SpriteCallbackDummy -_080C3CB4: .4byte 0x02018000 - thumb_func_end sub_80C3C44 - - thumb_func_start sub_80C3CB8 -sub_80C3CB8: @ 80C3CB8 - push {lr} - adds r3, r0, 0 - movs r0, 0xC0 - lsls r0, 3 - adds r2, r0, 0 - ldrh r0, [r3, 0x30] - adds r2, r0 - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r3, 0x20] - subs r0, r1 - strh r0, [r3, 0x20] - movs r1, 0xFF - ands r2, r1 - strh r2, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080C3CF8 - ldr r0, _080C3CFC - str r0, [r3, 0x1C] - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080C3D00 - movs r0, 0x2 - strb r0, [r1, 0x6] -_080C3CF8: - pop {r0} - bx r0 - .align 2, 0 -_080C3CFC: .4byte SpriteCallbackDummy -_080C3D00: .4byte 0x02018000 - thumb_func_end sub_80C3CB8 - - thumb_func_start sub_80C3D04 -sub_80C3D04: @ 80C3D04 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080C3DD8 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r1, r0, r1 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080C3DBE - movs r0, 0 - strh r0, [r1, 0x8] - ldr r0, _080C3DDC - mov r8, r0 - ldrb r0, [r0, 0x7] - cmp r0, 0x27 - bhi _080C3DBE - ldr r4, _080C3DE0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF0 - bl __umodsi3 - adds r1, r0, 0 - subs r1, 0x14 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - movs r2, 0x2C - movs r3, 0x5 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - ldr r1, _080C3DE4 - lsls r5, r4, 4 - adds r5, r4 - lsls r5, 2 - adds r5, r1 - lsls r0, 23 - lsrs r0, 23 - strh r0, [r5, 0x2E] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x18 - bl __umodsi3 - adds r0, 0x10 - strh r0, [r5, 0x30] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xFF - ands r0, r1 - adds r0, 0x30 - strh r0, [r5, 0x32] - bl Random - ldrh r6, [r5, 0x4] - lsls r4, r6, 22 - lsrs r4, 22 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x11 - bl __umodsi3 - adds r4, r0 - ldr r1, _080C3DE8 - adds r0, r1, 0 - ands r4, r0 - ldr r0, _080C3DEC - ands r0, r6 - orrs r0, r4 - strh r0, [r5, 0x4] - mov r1, r8 - ldrb r0, [r1, 0x7] - adds r0, 0x1 - strb r0, [r1, 0x7] -_080C3DBE: - ldr r0, _080C3DDC - ldrb r0, [r0, 0x9] - cmp r0, 0 - beq _080C3DCC - adds r0, r7, 0 - bl DestroyTask -_080C3DCC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C3DD8: .4byte gTasks -_080C3DDC: .4byte 0x02018000 -_080C3DE0: .4byte gSpriteTemplate_83D17B4 -_080C3DE4: .4byte gSprites -_080C3DE8: .4byte 0x000003ff -_080C3DEC: .4byte 0xfffffc00 - thumb_func_end sub_80C3D04 - - thumb_func_start sub_80C3DF0 -sub_80C3DF0: @ 80C3DF0 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r1, [r4, 0x32] - ldrh r0, [r4, 0x36] - adds r1, r0 - lsls r0, r1, 16 - asrs r0, 24 - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - movs r0, 0xFF - ands r1, r0 - strh r1, [r4, 0x36] - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] - ldr r5, _080C3E5C - ldrb r0, [r5, 0x9] - cmp r0, 0 - beq _080C3E3A - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080C3E3A: - movs r1, 0x20 - ldrsh r0, [r4, r1] - cmp r0, 0xF8 - bgt _080C3E4A - movs r2, 0x22 - ldrsh r0, [r4, r2] - cmp r0, 0x74 - ble _080C3E56 -_080C3E4A: - adds r0, r4, 0 - bl DestroySprite - ldrb r0, [r5, 0x7] - subs r0, 0x1 - strb r0, [r5, 0x7] -_080C3E56: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C3E5C: .4byte 0x02018000 - thumb_func_end sub_80C3DF0 - - thumb_func_start sub_80C3E60 -sub_80C3E60: @ 80C3E60 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080C3E98 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C3E9C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - strh r5, [r1, 0xA] - ldr r0, _080C3EA0 - lsls r4, 6 - adds r4, r0 - ldrh r0, [r4] - strh r0, [r1, 0xC] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C3E98: .4byte sub_80C3EA4 -_080C3E9C: .4byte gTasks -_080C3EA0: .4byte gUnknown_02038570 - thumb_func_end sub_80C3E60 - - thumb_func_start sub_80C3EA4 -sub_80C3EA4: @ 80C3EA4 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C3EF8 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrb r5, [r4, 0x8] - ldrh r0, [r4, 0x1C] - adds r1, r0, 0x1 - strh r1, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xA - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080C3EEE - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r0, [r4, 0xC] - ldrb r2, [r4, 0x1E] - ldr r1, _080C3EFC - lsls r3, r5, 6 - adds r1, 0x38 - adds r3, r1 - ldr r1, [r3] - str r1, [sp] - adds r1, r5, 0 - movs r3, 0 - bl sub_80C3024 - ldrh r0, [r4, 0x1E] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x1E] -_080C3EEE: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C3EF8: .4byte gTasks -_080C3EFC: .4byte gUnknown_02038570 - thumb_func_end sub_80C3EA4 - - thumb_func_start sub_80C3F00 -sub_80C3F00: @ 80C3F00 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _080C4098 - ldrh r2, [r0] - adds r4, r0, 0 - adds r3, r4, 0x2 - movs r0, 0x2 - mov r8, r0 -_080C3F16: - lsls r0, r2, 16 - asrs r0, 16 - movs r5, 0 - ldrsh r1, [r3, r5] - cmp r0, r1 - bge _080C3F24 - ldrh r2, [r3] -_080C3F24: - adds r3, 0x2 - movs r0, 0x1 - negs r0, r0 - add r8, r0 - mov r1, r8 - cmp r1, 0 - bge _080C3F16 - lsls r0, r2, 16 - mov r9, r0 - cmp r0, 0 - bge _080C3F62 - ldrh r2, [r4] - adds r3, r4, 0x2 - movs r4, 0x2 - mov r8, r4 -_080C3F42: - lsls r0, r2, 16 - asrs r0, 16 - movs r5, 0 - ldrsh r1, [r3, r5] - cmp r0, r1 - ble _080C3F50 - ldrh r2, [r3] -_080C3F50: - adds r3, 0x2 - movs r0, 0x1 - negs r0, r0 - add r8, r0 - lsls r1, r2, 16 - mov r9, r1 - mov r4, r8 - cmp r4, 0 - bge _080C3F42 -_080C3F62: - movs r5, 0 - mov r8, r5 - mov r10, r5 -_080C3F68: - ldr r0, _080C409C - mov r1, r8 - lsls r7, r1, 1 - adds r0, r7, r0 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 5 - subs r0, r1 - lsls r0, 2 - adds r0, r1 - lsls r0, 3 - mov r4, r9 - asrs r6, r4, 16 - adds r1, r6, 0 - cmp r6, 0 - bge _080C3F8A - negs r1, r6 -_080C3F8A: - bl __divsi3 - adds r4, r0, 0 - movs r1, 0xA - bl __modsi3 - cmp r0, 0x4 - ble _080C3F9C - adds r4, 0xA -_080C3F9C: - ldr r0, _080C40A0 - mov r1, r10 - adds r5, r1, r0 - adds r0, r4, 0 - movs r1, 0xA - bl __divsi3 - str r0, [r5] - ldr r0, _080C40A4 - adds r7, r0 - movs r2, 0 - ldrsh r1, [r7, r2] - cmp r1, 0 - bge _080C3FBA - negs r1, r1 -_080C3FBA: - lsls r0, r1, 5 - subs r0, r1 - lsls r0, 2 - adds r0, r1 - lsls r0, 3 - adds r1, r6, 0 - cmp r1, 0 - bge _080C3FCC - negs r1, r1 -_080C3FCC: - bl __divsi3 - adds r4, r0, 0 - movs r1, 0xA - bl __modsi3 - cmp r0, 0x4 - ble _080C3FDE - adds r4, 0xA -_080C3FDE: - adds r0, r4, 0 - movs r1, 0xA - bl __divsi3 - str r0, [r5, 0x4] - movs r4, 0 - ldrsh r0, [r7, r4] - cmp r0, 0 - bge _080C3FF4 - movs r0, 0x1 - strb r0, [r5, 0x10] -_080C3FF4: - ldr r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - subs r0, r1 - lsls r0, 11 - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - movs r4, 0xFF - ands r0, r4 - cmp r0, 0x7F - bls _080C4016 - movs r0, 0x80 - lsls r0, 1 - adds r1, r0 -_080C4016: - lsrs r0, r1, 8 - str r0, [r5, 0x8] - ldr r1, [r5, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - subs r0, r1 - lsls r0, 11 - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - ands r0, r4 - cmp r0, 0x7F - bls _080C403A - movs r2, 0x80 - lsls r2, 1 - adds r1, r2 -_080C403A: - lsrs r0, r1, 8 - str r0, [r5, 0xC] - mov r0, r8 - lsls r4, r0, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80C3990 - strb r0, [r5, 0x11] - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80C39E4 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bge _080C4060 - negs r0, r0 -_080C4060: - strb r0, [r5, 0x12] - ldr r0, _080C40A8 - add r0, r8 - ldrb r0, [r0] - cmp r0, 0 - beq _080C40B4 - ldr r4, [r5, 0x8] - ldrh r2, [r5, 0x8] - ldr r3, [r5, 0xC] - ldrh r1, [r5, 0xC] - ldrb r0, [r5, 0x10] - cmp r0, 0 - beq _080C4080 - lsls r0, r1, 16 - negs r0, r0 - lsrs r1, r0, 16 -_080C4080: - lsls r0, r2, 16 - asrs r2, r0, 16 - lsls r0, r1, 16 - asrs r1, r0, 16 - adds r0, r2, r1 - cmp r0, 0x58 - bne _080C40B4 - cmp r1, 0 - ble _080C40AC - subs r0, r3, 0x1 - str r0, [r5, 0xC] - b _080C40B4 - .align 2, 0 -_080C4098: .4byte gUnknown_02038678 -_080C409C: .4byte gUnknown_02038670 -_080C40A0: .4byte 0x02018018 -_080C40A4: .4byte gUnknown_02038688 -_080C40A8: .4byte gUnknown_02038690 -_080C40AC: - cmp r2, 0 - ble _080C40B4 - subs r0, r4, 0x1 - str r0, [r5, 0x8] -_080C40B4: - movs r1, 0x14 - add r10, r1 - movs r2, 0x1 - add r8, r2 - mov r4, r8 - cmp r4, 0x3 - bgt _080C40C4 - b _080C3F68 -_080C40C4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80C3F00 - - thumb_func_start sub_80C40D4 -sub_80C40D4: @ 80C40D4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - movs r1, 0 - mov r10, r1 - movs r2, 0 - str r2, [sp] - cmp r0, 0 - bne _080C4198 - mov r8, r2 - ldr r0, _080C417C - subs r1, 0x18 - adds r1, r0 - mov r9, r1 - adds r4, r0, 0 - adds r4, 0x8 - movs r6, 0xA0 -_080C4102: - ldrb r0, [r4, 0x9] - cmp r7, r0 - bcs _080C416A - adds r0, 0x13 - adds r0, r6, r0 - subs r0, r7 - lsls r0, 1 - ldr r2, _080C4180 - adds r0, r2 - ldr r2, _080C4184 - adds r1, r2, 0 - strh r1, [r0] - ldr r0, _080C4188 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, [r4] - lsls r0, 16 - ldrb r1, [r4, 0x9] - bl __udivsi3 - adds r1, r7, 0x1 - adds r3, r0, 0 - muls r3, r1 - ldr r0, _080C418C - ands r0, r3 - ldr r1, _080C4190 - cmp r0, r1 - bls _080C4146 - movs r0, 0x80 - lsls r0, 9 - adds r3, r0 -_080C4146: - ldr r1, _080C4194 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - mov r1, r8 - strh r1, [r0, 0x8] - lsrs r1, r3, 16 - strh r1, [r0, 0xA] - mov r2, r9 - ldrb r0, [r2, 0x14] - adds r0, 0x1 - strb r0, [r2, 0x14] - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 -_080C416A: - adds r4, 0x14 - adds r6, 0x60 - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0x3 - ble _080C4102 - b _080C4292 - .align 2, 0 -_080C417C: .4byte 0x02018018 -_080C4180: .4byte 0x0600bffe -_080C4184: .4byte 0x000060b3 -_080C4188: .4byte sub_80C42C0 -_080C418C: .4byte 0x0000ffff -_080C4190: .4byte 0x00007fff -_080C4194: .4byte gTasks -_080C4198: - movs r2, 0 - mov r8, r2 - ldr r0, _080C4220 - mov r12, r0 - mov r9, r2 - movs r1, 0xC0 - str r1, [sp, 0x4] -_080C41A6: - mov r6, r9 - add r6, r12 - ldrb r1, [r6, 0x12] - ldrb r0, [r6, 0x10] - ldr r2, _080C4224 - cmp r0, 0 - beq _080C41B6 - adds r2, 0x2 -_080C41B6: - lsls r0, r1, 24 - asrs r0, 24 - cmp r7, r0 - bge _080C427E - adds r0, 0x13 - ldr r1, [sp, 0x4] - adds r0, r1, r0 - subs r0, r7 - lsls r0, 1 - ldr r1, _080C4228 - adds r0, r1 - strh r2, [r0] - ldr r0, _080C422C - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, [r6, 0xC] - lsls r0, 16 - ldrb r1, [r6, 0x12] - bl __udivsi3 - adds r1, r7, 0x1 - adds r3, r0, 0 - muls r3, r1 - ldr r0, _080C4230 - ands r0, r3 - ldr r1, _080C4234 - cmp r0, r1 - bls _080C41FA - movs r2, 0x80 - lsls r2, 9 - adds r3, r2 -_080C41FA: - ldr r1, _080C4238 - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r4, r0, r1 - mov r0, r8 - strh r0, [r4, 0x8] - ldrb r0, [r6, 0x10] - adds r6, r1, 0 - cmp r0, 0 - beq _080C423C - movs r0, 0x1 - strh r0, [r4, 0xC] - ldr r0, [sp] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - b _080C4246 - .align 2, 0 -_080C4220: .4byte 0x02018018 -_080C4224: .4byte 0x000060a3 -_080C4228: .4byte 0x0600bffe -_080C422C: .4byte sub_80C42C0 -_080C4230: .4byte 0x0000ffff -_080C4234: .4byte 0x00007fff -_080C4238: .4byte gTasks -_080C423C: - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 -_080C4246: - ldr r0, _080C4264 - mov r1, r9 - adds r4, r1, r0 - ldrb r1, [r4, 0x10] - mov r12, r0 - cmp r1, 0 - beq _080C4268 - adds r0, r2, r5 - lsls r0, 3 - adds r0, r6 - lsrs r2, r3, 16 - ldr r1, [r4, 0x8] - subs r1, r2 - b _080C4274 - .align 2, 0 -_080C4264: .4byte 0x02018018 -_080C4268: - adds r0, r2, r5 - lsls r0, 3 - adds r0, r6 - lsrs r2, r3, 16 - ldr r1, [r4, 0x8] - adds r1, r2 -_080C4274: - strh r1, [r0, 0xA] - ldr r1, _080C42BC - ldrb r0, [r1, 0x14] - adds r0, 0x1 - strb r0, [r1, 0x14] -_080C427E: - movs r2, 0x14 - add r9, r2 - ldr r0, [sp, 0x4] - adds r0, 0x60 - str r0, [sp, 0x4] - movs r1, 0x1 - add r8, r1 - mov r2, r8 - cmp r2, 0x3 - ble _080C41A6 -_080C4292: - ldr r0, [sp] - cmp r0, 0 - beq _080C429E - movs r0, 0x16 - bl PlaySE -_080C429E: - mov r1, r10 - cmp r1, 0 - beq _080C42AA - movs r0, 0x15 - bl PlaySE -_080C42AA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C42BC: .4byte 0x02018000 - thumb_func_end sub_80C40D4 - - thumb_func_start sub_80C42C0 -sub_80C42C0: @ 80C42C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - movs r6, 0 - mov r9, r6 - ldr r1, _080C4308 - lsls r0, 2 - add r0, r12 - lsls r0, 3 - adds r0, r1 - ldrb r5, [r0, 0x8] - ldrh r7, [r0, 0xA] - ldrh r1, [r0, 0xC] - mov r8, r1 - movs r2, 0xC - ldrsh r0, [r0, r2] - cmp r0, 0 - beq _080C4310 - ldr r1, _080C430C - lsls r2, r5, 1 - adds r0, r1, 0 - adds r0, 0xC - adds r0, r2, r0 - movs r3, 0 - ldrsh r0, [r0, r3] - mov r10, r1 - adds r4, r2, 0 - cmp r0, 0 - bgt _080C4328 - b _080C4326 - .align 2, 0 -_080C4308: .4byte gTasks -_080C430C: .4byte 0x02018000 -_080C4310: - ldr r1, _080C4350 - lsls r2, r5, 1 - adds r0, r1, 0 - adds r0, 0xC - adds r0, r2, r0 - movs r3, 0 - ldrsh r0, [r0, r3] - mov r10, r1 - adds r4, r2, 0 - cmp r0, 0x57 - ble _080C4328 -_080C4326: - movs r6, 0x1 -_080C4328: - mov r0, r10 - adds r0, 0xC - adds r3, r4, r0 - ldrh r2, [r3] - movs r0, 0 - ldrsh r1, [r3, r0] - lsls r0, r7, 16 - asrs r0, 16 - cmp r1, r0 - bne _080C4340 - movs r1, 0x1 - mov r9, r1 -_080C4340: - mov r0, r9 - cmp r0, 0 - bne _080C4362 - cmp r6, 0 - beq _080C4354 - strh r7, [r3] - b _080C4362 - .align 2, 0 -_080C4350: .4byte 0x02018000 -_080C4354: - mov r1, r8 - cmp r1, 0 - beq _080C435E - subs r0, r2, 0x1 - b _080C4360 -_080C435E: - adds r0, r2, 0x1 -_080C4360: - strh r0, [r3] -_080C4362: - cmp r6, 0 - bne _080C43C8 - mov r2, r9 - cmp r2, 0 - bne _080C43CE - movs r2, 0 - ldr r0, _080C4388 - adds r6, r4, r0 - adds r0, r4, r5 - lsls r5, r0, 5 -_080C4376: - movs r0, 0 - ldrsh r3, [r6, r0] - adds r0, r2, 0x1 - lsls r1, r0, 3 - adds r4, r0, 0 - cmp r3, r1 - blt _080C438C - movs r0, 0x8 - b _080C43A8 - .align 2, 0 -_080C4388: .4byte 0x0201800c -_080C438C: - lsls r0, r2, 3 - cmp r3, r0 - blt _080C43A6 - adds r0, r3, 0 - cmp r3, 0 - bge _080C439A - adds r0, r3, 0x7 -_080C439A: - asrs r0, 3 - lsls r0, 3 - subs r0, r3, r0 - lsls r0, 24 - lsrs r0, 24 - b _080C43A8 -_080C43A6: - movs r0, 0 -_080C43A8: - cmp r0, 0x3 - bhi _080C43B4 - ldr r3, _080C43B0 - b _080C43B6 - .align 2, 0 -_080C43B0: .4byte 0x0000504c -_080C43B4: - ldr r3, _080C43EC -_080C43B6: - adds r1, r0, r3 - adds r0, r5, r2 - lsls r0, 1 - ldr r2, _080C43F0 - adds r0, r2 - strh r1, [r0] - adds r2, r4, 0 - cmp r2, 0xA - ble _080C4376 -_080C43C8: - mov r3, r9 - cmp r3, 0 - beq _080C43DC -_080C43CE: - mov r1, r10 - ldrb r0, [r1, 0x14] - subs r0, 0x1 - strb r0, [r1, 0x14] - mov r0, r12 - bl DestroyTask -_080C43DC: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C43EC: .4byte 0x00005057 -_080C43F0: .4byte 0x0600e18e - thumb_func_end sub_80C42C0 - - thumb_func_start sub_80C43F4 -sub_80C43F4: @ 80C43F4 - push {r4,r5,lr} - ldr r0, _080C442C - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080C4430 - adds r0, r1 - bl sub_80AE47C - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - cmp r5, 0 - beq _080C4422 - ldr r4, _080C4434 - ldrb r0, [r4] - ldr r1, _080C4438 - ldrb r1, [r1] - bl sub_80AE398 - ldrb r0, [r4] - bl sub_80AE82C -_080C4422: - ldr r0, _080C443C - strh r5, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C442C: .4byte gUnknown_02038694 -_080C4430: .4byte gPlayerParty -_080C4434: .4byte gUnknown_0203869C -_080C4438: .4byte gUnknown_0203869E -_080C443C: .4byte gScriptResult - thumb_func_end sub_80C43F4 - - thumb_func_start sub_80C4440 -sub_80C4440: @ 80C4440 - push {r4,lr} - movs r4, 0 - ldr r0, _080C4464 - ldrb r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080C4468 - adds r2, r1, r0 - ldr r0, _080C446C - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080C44B2 - lsls r0, 2 - ldr r1, _080C4470 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C4464: .4byte gUnknown_02038694 -_080C4468: .4byte gPlayerParty -_080C446C: .4byte gUnknown_0203869C -_080C4470: .4byte _080C4474 - .align 2, 0 -_080C4474: - .4byte _080C4488 - .4byte _080C448E - .4byte _080C4494 - .4byte _080C449A - .4byte _080C44A0 -_080C4488: - adds r0, r2, 0 - movs r1, 0x32 - b _080C44A4 -_080C448E: - adds r0, r2, 0 - movs r1, 0x33 - b _080C44A4 -_080C4494: - adds r0, r2, 0 - movs r1, 0x34 - b _080C44A4 -_080C449A: - adds r0, r2, 0 - movs r1, 0x35 - b _080C44A4 -_080C44A0: - adds r0, r2, 0 - movs r1, 0x36 -_080C44A4: - bl GetMonData - ldr r1, _080C44BC - ldrh r1, [r1] - cmp r0, r1 - bls _080C44B2 - movs r4, 0x1 -_080C44B2: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C44BC: .4byte gUnknown_0203869E - thumb_func_end sub_80C4440 - - thumb_func_start sub_80C44C0 -sub_80C44C0: @ 80C44C0 - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, _080C44E8 - ldr r0, _080C44EC - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080C44D4 - b _080C465E -_080C44D4: - ldr r0, _080C44F0 - ldrh r0, [r0] - cmp r0, 0x4 - bls _080C44DE - b _080C465E -_080C44DE: - lsls r0, 2 - ldr r1, _080C44F4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C44E8: .4byte gUnknown_02038690 -_080C44EC: .4byte gUnknown_02038695 -_080C44F0: .4byte gUnknown_0203869C -_080C44F4: .4byte _080C44F8 - .align 2, 0 -_080C44F8: - .4byte _080C450C - .4byte _080C4554 - .4byte _080C4598 - .4byte _080C45DC - .4byte _080C4624 -_080C450C: - ldr r6, _080C4548 - ldrb r0, [r6] - movs r5, 0x64 - muls r0, r5 - ldr r4, _080C454C - adds r0, r4 - movs r1, 0x32 - bl GetMonData - lsls r0, 24 - lsrs r1, r0, 24 - mov r0, sp - strb r1, [r0] - ldr r0, _080C4550 - ldrh r0, [r0] - cmp r1, r0 - bls _080C4530 - b _080C465E -_080C4530: - adds r0, r1, 0 - cmp r0, 0x3 - bls _080C4538 - b _080C465E -_080C4538: - adds r1, r0, 0x1 - mov r0, sp - strb r1, [r0] - ldrb r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0x32 - b _080C4610 - .align 2, 0 -_080C4548: .4byte gUnknown_02038694 -_080C454C: .4byte gPlayerParty -_080C4550: .4byte gUnknown_0203869E -_080C4554: - mov r4, sp - ldr r7, _080C458C - ldrb r0, [r7] - movs r6, 0x64 - muls r0, r6 - ldr r5, _080C4590 - adds r0, r5 - movs r1, 0x33 - bl GetMonData - strb r0, [r4] - mov r0, sp - ldrb r2, [r0] - ldr r0, _080C4594 - ldrh r0, [r0] - cmp r2, r0 - bhi _080C465E - cmp r2, 0x3 - bhi _080C465E - mov r1, sp - adds r0, r2, 0x1 - strb r0, [r1] - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - movs r1, 0x33 - b _080C4610 - .align 2, 0 -_080C458C: .4byte gUnknown_02038694 -_080C4590: .4byte gPlayerParty -_080C4594: .4byte gUnknown_0203869E -_080C4598: - mov r4, sp - ldr r7, _080C45D0 - ldrb r0, [r7] - movs r6, 0x64 - muls r0, r6 - ldr r5, _080C45D4 - adds r0, r5 - movs r1, 0x34 - bl GetMonData - strb r0, [r4] - mov r0, sp - ldrb r2, [r0] - ldr r0, _080C45D8 - ldrh r0, [r0] - cmp r2, r0 - bhi _080C465E - cmp r2, 0x3 - bhi _080C465E - mov r1, sp - adds r0, r2, 0x1 - strb r0, [r1] - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - movs r1, 0x34 - b _080C4610 - .align 2, 0 -_080C45D0: .4byte gUnknown_02038694 -_080C45D4: .4byte gPlayerParty -_080C45D8: .4byte gUnknown_0203869E -_080C45DC: - mov r4, sp - ldr r7, _080C4618 - ldrb r0, [r7] - movs r6, 0x64 - muls r0, r6 - ldr r5, _080C461C - adds r0, r5 - movs r1, 0x35 - bl GetMonData - strb r0, [r4] - mov r0, sp - ldrb r2, [r0] - ldr r0, _080C4620 - ldrh r0, [r0] - cmp r2, r0 - bhi _080C465E - cmp r2, 0x3 - bhi _080C465E - mov r1, sp - adds r0, r2, 0x1 - strb r0, [r1] - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - movs r1, 0x35 -_080C4610: - mov r2, sp - bl SetMonData - b _080C465E - .align 2, 0 -_080C4618: .4byte gUnknown_02038694 -_080C461C: .4byte gPlayerParty -_080C4620: .4byte gUnknown_0203869E -_080C4624: - mov r4, sp - ldr r7, _080C4668 - ldrb r0, [r7] - movs r6, 0x64 - muls r0, r6 - ldr r5, _080C466C - adds r0, r5 - movs r1, 0x36 - bl GetMonData - strb r0, [r4] - mov r0, sp - ldrb r2, [r0] - ldr r0, _080C4670 - ldrh r0, [r0] - cmp r2, r0 - bhi _080C465E - cmp r2, 0x3 - bhi _080C465E - mov r1, sp - adds r0, r2, 0x1 - strb r0, [r1] - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - movs r1, 0x36 - mov r2, sp - bl SetMonData -_080C465E: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C4668: .4byte gUnknown_02038694 -_080C466C: .4byte gPlayerParty -_080C4670: .4byte gUnknown_0203869E - thumb_func_end sub_80C44C0 - - thumb_func_start sub_80C4674 -sub_80C4674: @ 80C4674 - push {r4,lr} - adds r4, r0, 0 - bl StringCopy - ldrb r0, [r4] - cmp r0, 0xFC - bne _080C4690 - ldrb r0, [r4, 0x1] - cmp r0, 0x15 - bne _080C4690 - adds r0, r4, 0 - movs r1, 0x1 - bl ConvertInternationalString -_080C4690: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C4674 - - thumb_func_start sub_80C4698 -sub_80C4698: @ 80C4698 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r1, r4, 6 - ldr r0, _080C46E0 - adds r1, r0 - adds r0, r5, 0 - bl StringCopy - ldr r0, _080C46E4 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C46DA - ldr r0, _080C46E8 - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x1A] - cmp r0, 0x1 - bne _080C46DA - adds r0, r5, 0 - bl sub_80C86A0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl ConvertInternationalString -_080C46DA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C46E0: .4byte gUnknown_02038572 -_080C46E4: .4byte gUnknown_0203869A -_080C46E8: .4byte gLinkPlayers - thumb_func_end sub_80C4698 - - thumb_func_start sub_80C46EC -sub_80C46EC: @ 80C46EC - push {lr} - ldr r0, _080C4710 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C4720 - ldr r0, _080C4714 - ldr r1, _080C4718 - ldrh r2, [r1] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - ldr r2, _080C471C - adds r1, r2 - bl sub_80C4674 - b _080C4730 - .align 2, 0 -_080C4710: .4byte gUnknown_0203869A -_080C4714: .4byte gStringVar1 -_080C4718: .4byte gUnknown_0202E8D0 -_080C471C: .4byte gLinkPlayers + 0x8 -_080C4720: - ldr r0, _080C4734 - ldr r1, _080C4738 - ldrh r1, [r1] - lsls r1, 6 - ldr r2, _080C473C - adds r1, r2 - bl sub_80C4674 -_080C4730: - pop {r0} - bx r0 - .align 2, 0 -_080C4734: .4byte gStringVar1 -_080C4738: .4byte gUnknown_0202E8D0 -_080C473C: .4byte gUnknown_0203857D - thumb_func_end sub_80C46EC - - thumb_func_start sub_80C4740 -sub_80C4740: @ 80C4740 - push {lr} - ldr r0, _080C4750 - ldr r1, _080C4754 - ldrb r1, [r1] - bl sub_80C4698 - pop {r0} - bx r0 - .align 2, 0 -_080C4750: .4byte gStringVar3 -_080C4754: .4byte gUnknown_0202E8D0 - thumb_func_end sub_80C4740 - - thumb_func_start sub_80C4758 -sub_80C4758: @ 80C4758 - push {r4-r6,lr} - movs r1, 0 - movs r2, 0 - ldr r5, _080C4794 - ldr r4, _080C4798 - ldr r0, _080C479C - ldrh r0, [r0] - lsls r0, 1 - adds r0, r4 - movs r6, 0 - ldrsh r3, [r0, r6] -_080C476E: - lsls r0, r1, 1 - adds r0, r4 - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r3, r0 - bge _080C4780 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_080C4780: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080C476E - strh r2, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C4794: .4byte gUnknown_0202E8CC -_080C4798: .4byte gUnknown_02038670 -_080C479C: .4byte gUnknown_0202E8D0 - thumb_func_end sub_80C4758 - - thumb_func_start sub_80C47A0 -sub_80C47A0: @ 80C47A0 - ldr r2, _080C47B4 - ldr r1, _080C47B8 - ldr r0, _080C47BC - ldrh r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .align 2, 0 -_080C47B4: .4byte gUnknown_0202E8CC -_080C47B8: .4byte gUnknown_02038670 -_080C47BC: .4byte gUnknown_0202E8D0 - thumb_func_end sub_80C47A0 - - thumb_func_start sub_80C47C0 -sub_80C47C0: @ 80C47C0 - push {lr} - movs r1, 0 - ldr r2, _080C47E8 - ldrb r0, [r2] - ldr r3, _080C47EC - cmp r0, 0 - beq _080C47E0 -_080C47CE: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bhi _080C47E0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080C47CE -_080C47E0: - strh r1, [r3] - pop {r0} - bx r0 - .align 2, 0 -_080C47E8: .4byte gUnknown_02038690 -_080C47EC: .4byte gUnknown_0202E8CE - thumb_func_end sub_80C47C0 - - thumb_func_start sub_80C47F0 -sub_80C47F0: @ 80C47F0 - push {r4,lr} - movs r2, 0 - ldr r3, _080C4830 - ldrb r0, [r3] - ldr r1, _080C4834 - ldr r4, _080C4838 - cmp r0, 0 - beq _080C4812 -_080C4800: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bhi _080C4812 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _080C4800 -_080C4812: - ldrb r1, [r1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C4840 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - ldr r0, _080C483C - adds r1, r0 - adds r0, r4, 0 - bl sub_80C4674 - b _080C484C - .align 2, 0 -_080C4830: .4byte gUnknown_02038690 -_080C4834: .4byte gUnknown_0203869A -_080C4838: .4byte gStringVar3 -_080C483C: .4byte gLinkPlayers + 0x8 -_080C4840: - lsls r1, r2, 6 - ldr r0, _080C4854 - adds r1, r0 - adds r0, r4, 0 - bl sub_80C4674 -_080C484C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C4854: .4byte gUnknown_0203857D - thumb_func_end sub_80C47F0 - - thumb_func_start sub_80C4858 -sub_80C4858: @ 80C4858 - push {lr} - movs r1, 0 - ldr r2, _080C4884 - ldrb r0, [r2] - ldr r3, _080C4888 - cmp r0, 0 - beq _080C4878 -_080C4866: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bhi _080C4878 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080C4866 -_080C4878: - adds r0, r3, 0 - bl sub_80C4698 - pop {r0} - bx r0 - .align 2, 0 -_080C4884: .4byte gUnknown_02038690 -_080C4888: .4byte gStringVar1 - thumb_func_end sub_80C4858 - - thumb_func_start sub_80C488C -sub_80C488C: @ 80C488C - push {lr} - ldr r0, _080C4898 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080C4898: .4byte sub_80AB47C - thumb_func_end sub_80C488C - - thumb_func_start sub_80C489C -sub_80C489C: @ 80C489C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080C48C0 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080C48BA - adds r0, r2, 0 - bl DestroyTask - ldr r0, _080C48C4 - bl SetMainCallback2 -_080C48BA: - pop {r0} - bx r0 - .align 2, 0 -_080C48C0: .4byte gPaletteFade -_080C48C4: .4byte sub_80C488C - thumb_func_end sub_80C489C - - thumb_func_start sub_80C48C8 -sub_80C48C8: @ 80C48C8 - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - ldr r0, _080C48F0 - movs r1, 0xA - bl CreateTask - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080C48F0: .4byte sub_80C489C - thumb_func_end sub_80C48C8 - - thumb_func_start sub_80C48F4 -sub_80C48F4: @ 80C48F4 - ldr r2, _080C4908 - ldr r1, _080C490C - ldr r0, _080C4910 - ldrh r0, [r0] - lsls r0, 6 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .align 2, 0 -_080C4908: .4byte gUnknown_0202E8CC -_080C490C: .4byte gUnknown_02038570 -_080C4910: .4byte gUnknown_0202E8D0 - thumb_func_end sub_80C48F4 - - thumb_func_start sub_80C4914 -sub_80C4914: @ 80C4914 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080C4938 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080C4932 - adds r0, r2, 0 - bl DestroyTask - ldr r0, _080C493C - bl SetMainCallback2 -_080C4932: - pop {r0} - bx r0 - .align 2, 0 -_080C4938: .4byte gPaletteFade -_080C493C: .4byte sub_80C2358 - thumb_func_end sub_80C4914 - - thumb_func_start sub_80C4940 -sub_80C4940: @ 80C4940 - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - ldr r0, _080C4968 - movs r1, 0xA - bl CreateTask - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080C4968: .4byte sub_80C4914 - thumb_func_end sub_80C4940 - - thumb_func_start sub_80C496C -sub_80C496C: @ 80C496C - ldr r0, _080C4978 - ldr r1, _080C497C - ldrb r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_080C4978: .4byte gUnknown_0202E8CC -_080C497C: .4byte gUnknown_02038695 - thumb_func_end sub_80C496C - - thumb_func_start sub_80C4980 -sub_80C4980: @ 80C4980 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - bl ScriptContext2_Enable - ldr r6, _080C49B8 - adds r0, r6, 0 - movs r1, 0 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r2, _080C49BC - adds r0, r4, 0 - adds r1, r6, 0 - bl SetTaskFuncWithFollowupFunc - ldr r1, _080C49C0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x1A] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C49B8: .4byte sub_80C8604 -_080C49BC: .4byte sub_80C49C4 -_080C49C0: .4byte gTasks - thumb_func_end sub_80C4980 - - thumb_func_start sub_80C49C4 -sub_80C49C4: @ 80C49C4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080C49E4 - ldrb r0, [r0] - bl sub_80AE098 - ldr r1, _080C49E8 - ldr r2, _080C49EC - adds r0, r4, 0 - bl SetTaskFuncWithFollowupFunc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C49E4: .4byte gUnknown_02038694 -_080C49E8: .4byte sub_80C8734 -_080C49EC: .4byte sub_80C49F0 - thumb_func_end sub_80C49C4 - - thumb_func_start sub_80C49F0 -sub_80C49F0: @ 80C49F0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080C4A04 - ldr r2, _080C4A08 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080C4A04: .4byte sub_80C88AC -_080C4A08: .4byte sub_80C4A0C - thumb_func_end sub_80C49F0 - - thumb_func_start sub_80C4A0C -sub_80C4A0C: @ 80C4A0C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080C4A20 - ldr r2, _080C4A24 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080C4A20: .4byte sub_80C8E1C -_080C4A24: .4byte sub_80C4A28 - thumb_func_end sub_80C4A0C - - thumb_func_start sub_80C4A28 -sub_80C4A28: @ 80C4A28 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080C4A3C - ldr r2, _080C4A40 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080C4A3C: .4byte sub_80C8938 -_080C4A40: .4byte sub_80C4A44 - thumb_func_end sub_80C4A28 - - thumb_func_start sub_80C4A44 -sub_80C4A44: @ 80C4A44 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - ldr r0, _080C4AA0 - mov r8, r0 - add r1, sp, 0x4 - mov r12, r1 - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r4, r0, 3 - ldr r6, _080C4AA4 - adds r7, r1, 0 -_080C4A64: - mov r0, sp - adds r2, r0, r3 - adds r1, r3, 0x1 - lsls r0, r1, 1 - adds r0, r4 - adds r0, r6 - ldrh r0, [r0] - strb r0, [r2] - lsls r1, 24 - lsrs r3, r1, 24 - cmp r3, 0x3 - bls _080C4A64 - movs r3, 0 - mov r2, sp -_080C4A80: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bhi _080C4A96 - mov r0, sp - adds r1, r0, r3 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - beq _080C4A80 -_080C4A96: - cmp r3, 0x4 - bne _080C4AA8 - movs r0, 0 - b _080C4AAA - .align 2, 0 -_080C4AA0: .4byte gUnknown_0202E8CC -_080C4AA4: .4byte gUnknown_03004B28 -_080C4AA8: - movs r0, 0x1 -_080C4AAA: - mov r1, r8 - strh r0, [r1] - movs r3, 0 - mov r4, r12 - adds r0, r7, r5 - lsls r2, r0, 3 - ldr r6, _080C4AF8 -_080C4AB8: - adds r1, r4, r3 - adds r0, r3, 0x5 - lsls r0, 1 - adds r0, r2 - adds r0, r6 - ldrh r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _080C4AB8 - mov r0, r12 - bl sub_80C4B34 - ldr r1, _080C4AFC - strb r0, [r1] - ldr r0, _080C4B00 - ldrb r0, [r0] - bl sub_80AE82C - ldr r1, _080C4B04 - ldr r2, _080C4B08 - adds r0, r5, 0 - bl SetTaskFuncWithFollowupFunc - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C4AF8: .4byte gUnknown_03004B28 -_080C4AFC: .4byte gUnknown_0203869B -_080C4B00: .4byte gUnknown_0203869C -_080C4B04: .4byte sub_80C8EBC -_080C4B08: .4byte sub_80C4B0C - thumb_func_end sub_80C4A44 - - thumb_func_start sub_80C4B0C -sub_80C4B0C: @ 80C4B0C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_80B0F28 - ldr r1, _080C4B2C - ldr r2, _080C4B30 - adds r0, r4, 0 - bl SetTaskFuncWithFollowupFunc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C4B2C: .4byte sub_80C8F34 -_080C4B30: .4byte sub_80C4B5C - thumb_func_end sub_80C4B0C - - thumb_func_start sub_80C4B34 -sub_80C4B34: @ 80C4B34 - push {r4,lr} - adds r3, r0, 0 - movs r4, 0 - movs r2, 0x1 -_080C4B3C: - adds r0, r3, r4 - adds r1, r3, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcs _080C4B4C - lsls r0, r2, 24 - lsrs r4, r0, 24 -_080C4B4C: - adds r2, 0x1 - cmp r2, 0x3 - ble _080C4B3C - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C4B34 - - thumb_func_start sub_80C4B5C -sub_80C4B5C: @ 80C4B5C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C4B84 - ldrh r0, [r0] - cmp r0, 0x1 - bne _080C4B90 - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C4B9E - ldr r0, _080C4B88 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C4B8C - str r0, [r1] - b _080C4B9E - .align 2, 0 -_080C4B84: .4byte gUnknown_0202E8CC -_080C4B88: .4byte gTasks -_080C4B8C: .4byte sub_80C4BA4 -_080C4B90: - adds r0, r4, 0 - bl DestroyTask - bl ScriptContext2_Disable - bl EnableBothScriptContexts -_080C4B9E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C4B5C - - thumb_func_start sub_80C4BA4 -sub_80C4BA4: @ 80C4BA4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_800832C - ldr r1, _080C4BC4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C4BC8 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C4BC4: .4byte gTasks -_080C4BC8: .4byte sub_80C4BCC - thumb_func_end sub_80C4BA4 - - thumb_func_start sub_80C4BCC -sub_80C4BCC: @ 80C4BCC - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080C4BEC - ldrb r0, [r0] - cmp r0, 0 - bne _080C4BE8 - adds r0, r1, 0 - bl DestroyTask - bl ScriptContext2_Disable - bl EnableBothScriptContexts -_080C4BE8: - pop {r0} - bx r0 - .align 2, 0 -_080C4BEC: .4byte gReceivedRemoteLinkPlayers - thumb_func_end sub_80C4BCC - - thumb_func_start sub_80C4BF0 -sub_80C4BF0: @ 80C4BF0 - push {r4,lr} - ldr r2, _080C4C1C - ldr r1, _080C4C20 - ldrb r3, [r1, 0x15] - movs r4, 0x9B - lsls r4, 5 - adds r0, r2, r4 - strh r3, [r0] - adds r0, r1, 0 - adds r0, 0x55 - ldrb r3, [r0] - adds r4, 0x2 - adds r0, r2, r4 - strh r3, [r0] - adds r1, 0x95 - ldrb r0, [r1] - ldr r1, _080C4C24 - adds r2, r1 - strh r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C4C1C: .4byte gSaveBlock1 -_080C4C20: .4byte gUnknown_02038570 -_080C4C24: .4byte 0x00001364 - thumb_func_end sub_80C4BF0 - - thumb_func_start sub_80C4C28 -sub_80C4C28: @ 80C4C28 - push {lr} - ldr r0, _080C4C40 - ldrb r0, [r0] - adds r1, r0, 0 - cmp r0, 0x1 - beq _080C4C4E - cmp r0, 0x1 - bgt _080C4C44 - cmp r0, 0 - beq _080C4C4A - b _080C4C56 - .align 2, 0 -_080C4C40: .4byte gUnknown_0202E8CE -_080C4C44: - cmp r1, 0x2 - beq _080C4C52 - b _080C4C56 -_080C4C4A: - movs r1, 0x3 - b _080C4C58 -_080C4C4E: - movs r1, 0x4 - b _080C4C58 -_080C4C52: - movs r1, 0x5 - b _080C4C58 -_080C4C56: - movs r1, 0x64 -_080C4C58: - ldr r0, _080C4C60 - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080C4C60: .4byte gUnknown_0202E8CC - thumb_func_end sub_80C4C28 - - thumb_func_start sub_80C4C64 -sub_80C4C64: @ 80C4C64 - push {lr} - bl sub_80C46EC - bl sub_80C4740 - bl sub_80C48F4 - pop {r0} - bx r0 - thumb_func_end sub_80C4C64 - - thumb_func_start sub_80C4C78 -sub_80C4C78: @ 80C4C78 - push {lr} - ldr r0, _080C4C8C - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080C4CB8 - lsls r0, 2 - ldr r1, _080C4C90 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C4C8C: .4byte gUnknown_0203869C -_080C4C90: .4byte _080C4C94 - .align 2, 0 -_080C4C94: - .4byte _080C4CA8 - .4byte _080C4CAC - .4byte _080C4CB0 - .4byte _080C4CB4 - .4byte _080C4CB8 -_080C4CA8: - movs r0, 0x8 - b _080C4CBA -_080C4CAC: - movs r0, 0x9 - b _080C4CBA -_080C4CB0: - movs r0, 0xA - b _080C4CBA -_080C4CB4: - movs r0, 0xB - b _080C4CBA -_080C4CB8: - movs r0, 0xC -_080C4CBA: - ldr r1, _080C4CD0 - lsls r0, 5 - adds r0, r1 - ldr r1, _080C4CD4 - adds r0, r1 - ldrh r1, [r0] - cmp r1, 0 - bne _080C4CDC - ldr r0, _080C4CD8 - strh r1, [r0] - b _080C4CE2 - .align 2, 0 -_080C4CD0: .4byte gSaveBlock1 -_080C4CD4: .4byte 0x00002e04 -_080C4CD8: .4byte gUnknown_0202E8CC -_080C4CDC: - ldr r1, _080C4CE8 - movs r0, 0x1 - strh r0, [r1] -_080C4CE2: - pop {r0} - bx r0 - .align 2, 0 -_080C4CE8: .4byte gUnknown_0202E8CC - thumb_func_end sub_80C4C78 - - thumb_func_start sub_80C4CEC -sub_80C4CEC: @ 80C4CEC - push {lr} - movs r0, 0xFF - bl sub_80B2A7C - pop {r0} - bx r0 - thumb_func_end sub_80C4CEC - - thumb_func_start sub_80C4CF8 -sub_80C4CF8: @ 80C4CF8 - push {lr} - ldr r0, _080C4D28 - ldr r1, _080C4D2C - ldrb r2, [r1] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _080C4D40 - ldr r0, _080C4D30 - ldrh r0, [r0] - cmp r0, 0x3 - bne _080C4D40 - ldr r1, _080C4D34 - lsls r0, r2, 1 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r0, _080C4D38 - cmp r1, r0 - ble _080C4D40 - ldr r1, _080C4D3C - movs r0, 0x1 - b _080C4D44 - .align 2, 0 -_080C4D28: .4byte gUnknown_02038690 -_080C4D2C: .4byte gUnknown_02038695 -_080C4D30: .4byte gUnknown_0203869E -_080C4D34: .4byte gUnknown_02038678 -_080C4D38: .4byte 0x0000031f -_080C4D3C: .4byte gUnknown_0202E8CC -_080C4D40: - ldr r1, _080C4D4C - movs r0, 0 -_080C4D44: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080C4D4C: .4byte gUnknown_0202E8CC - thumb_func_end sub_80C4CF8 - - thumb_func_start sub_80C4D50 -sub_80C4D50: @ 80C4D50 - push {lr} - movs r3, 0 - ldr r0, _080C4D78 - ldr r1, _080C4D7C - adds r2, r0, r1 - movs r1, 0x4 -_080C4D5C: - ldrh r0, [r2] - cmp r0, 0 - beq _080C4D68 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_080C4D68: - adds r2, 0x20 - subs r1, 0x1 - cmp r1, 0 - bge _080C4D5C - adds r0, r3, 0 - pop {r1} - bx r1 - .align 2, 0 -_080C4D78: .4byte gSaveBlock1 -_080C4D7C: .4byte 0x00002f04 - thumb_func_end sub_80C4D50 - - thumb_func_start sub_80C4D80 -sub_80C4D80: @ 80C4D80 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r0, _080C4EA0 - mov r12, r0 - ldr r1, _080C4EA4 - mov r8, r1 - ldr r2, _080C4EA8 - mov r9, r2 - mov r2, r12 - mov r1, sp - movs r6, 0x3 -_080C4D9E: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _080C4D9E - movs r6, 0 -_080C4DAE: - movs r1, 0x3 - cmp r1, r6 - ble _080C4DD8 -_080C4DB4: - subs r4, r1, 0x1 - lsls r0, r4, 1 - mov r5, sp - adds r3, r5, r0 - lsls r0, r1, 1 - adds r2, r5, r0 - ldrh r5, [r3] - movs r7, 0 - ldrsh r1, [r3, r7] - movs r7, 0 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080C4DD2 - strh r5, [r2] - strh r0, [r3] -_080C4DD2: - adds r1, r4, 0 - cmp r1, r6 - bgt _080C4DB4 -_080C4DD8: - adds r6, 0x1 - cmp r6, 0x2 - ble _080C4DAE - mov r2, r8 - ldrh r0, [r2] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - movs r2, 0 - movs r7, 0 - movs r6, 0 - lsls r0, 16 - asrs r4, r0, 16 - adds r3, r0, 0 - mov r1, sp -_080C4DF6: - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r0, r4 - bne _080C4E12 - lsls r0, r2, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r2, r0, 24 - mov r5, r8 - ldrh r5, [r5] - cmp r6, r5 - bne _080C4E12 - adds r7, r2, 0 -_080C4E12: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _080C4DF6 - movs r6, 0 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - asrs r1, r3, 16 - lsls r2, 24 - mov r10, r2 - cmp r0, r1 - beq _080C4E40 - adds r2, r1, 0 - mov r1, sp -_080C4E30: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - bgt _080C4E40 - movs r4, 0 - ldrsh r0, [r1, r4] - cmp r0, r2 - bne _080C4E30 -_080C4E40: - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r2, r7, 0 - movs r6, 0 - asrs r5, r3, 16 - mov r8, r5 - mov r1, r12 - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r8, r0 - bne _080C4E60 - cmp r7, 0x1 - beq _080C4E78 -_080C4E5A: - subs r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_080C4E60: - adds r6, 0x1 - cmp r6, 0x3 - bgt _080C4E78 - lsls r0, r6, 1 - add r0, r12 - asrs r1, r3, 16 - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r1, r0 - bne _080C4E60 - cmp r2, 0x1 - bne _080C4E5A -_080C4E78: - lsls r1, r6, 24 - lsrs r1, 24 - mov r0, r9 - bl sub_80C4698 - ldr r0, _080C4EAC - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C4EB8 - ldr r0, _080C4EB0 - lsls r1, r6, 3 - subs r1, r6 - lsls r1, 2 - ldr r2, _080C4EB4 - adds r1, r2 - bl sub_80C4674 - b _080C4EC4 - .align 2, 0 -_080C4EA0: .4byte gUnknown_02038670 -_080C4EA4: .4byte gUnknown_0202E8D0 -_080C4EA8: .4byte gStringVar1 -_080C4EAC: .4byte gUnknown_0203869A -_080C4EB0: .4byte gStringVar2 -_080C4EB4: .4byte gLinkPlayers + 0x8 -_080C4EB8: - ldr r0, _080C4ED8 - lsls r1, r6, 6 - ldr r2, _080C4EDC - adds r1, r2 - bl sub_80C4674 -_080C4EC4: - mov r1, r10 - asrs r0, r1, 24 - cmp r0, 0x1 - beq _080C4ED0 - cmp r7, r0 - bne _080C4EE4 -_080C4ED0: - ldr r0, _080C4EE0 - strh r4, [r0] - b _080C4EEA - .align 2, 0 -_080C4ED8: .4byte gStringVar2 -_080C4EDC: .4byte gUnknown_0203857D -_080C4EE0: .4byte gUnknown_0202E8D0 -_080C4EE4: - ldr r1, _080C4EFC - adds r0, r4, 0x4 - strh r0, [r1] -_080C4EEA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C4EFC: .4byte gUnknown_0202E8D0 - thumb_func_end sub_80C4D80 - - thumb_func_start sub_80C4F00 -sub_80C4F00: @ 80C4F00 - push {lr} - ldr r0, _080C4F0C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080C4F0C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_80C4F00 - - thumb_func_start sub_80C4F10 -sub_80C4F10: @ 80C4F10 - push {r4-r6,lr} - ldr r6, _080C4F54 - ldrb r0, [r6] - cmp r0, 0 - beq _080C4F40 - bl sub_80AAF30 - ldr r4, _080C4F58 - ldr r0, _080C4F5C - adds r1, r4, r0 - movs r5, 0 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0xFE - movs r1, 0 - bl sub_80B2C4C - ldr r1, _080C4F60 - adds r4, r1 - strb r0, [r4] - movs r0, 0x3 - bl sub_80B2A7C - strb r5, [r6] -_080C4F40: - ldr r0, _080C4F64 - bl SetMainCallback2 - ldr r1, _080C4F68 - ldr r0, _080C4F6C - str r0, [r1, 0x8] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C4F54: .4byte gUnknown_0203856C -_080C4F58: .4byte 0x02000000 -_080C4F5C: .4byte 0x00015ddf -_080C4F60: .4byte 0x00015dde -_080C4F64: .4byte sub_8106668 -_080C4F68: .4byte gMain -_080C4F6C: .4byte sub_80C4F00 - thumb_func_end sub_80C4F10 - - thumb_func_start sub_80C4F70 -sub_80C4F70: @ 80C4F70 - push {r4,lr} - ldr r0, _080C4FA8 - ldr r4, _080C4FAC - ldrb r1, [r4, 0x15] - bl VarSet - ldr r0, _080C4FB0 - adds r1, r4, 0 - adds r1, 0x55 - ldrb r1, [r1] - bl VarSet - ldr r0, _080C4FB4 - adds r1, r4, 0 - adds r1, 0x95 - ldrb r1, [r1] - bl VarSet - ldr r0, _080C4FB8 - adds r1, r4, 0 - adds r1, 0xD5 - ldrb r1, [r1] - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C4FA8: .4byte 0x00004010 -_080C4FAC: .4byte gUnknown_02038570 -_080C4FB0: .4byte 0x00004011 -_080C4FB4: .4byte 0x00004012 -_080C4FB8: .4byte 0x00004013 - thumb_func_end sub_80C4F70 - - thumb_func_start sub_80C4FBC -sub_80C4FBC: @ 80C4FBC - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, _080C501C - ldrb r0, [r6] - movs r5, 0x64 - muls r0, r5 - ldr r4, _080C5020 - adds r0, r4 - movs r1, 0x46 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - strb r0, [r1] - cmp r0, 0 - bne _080C5038 - ldr r0, _080C5024 - ldr r1, _080C5028 - ldrb r2, [r1] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _080C5038 - ldr r0, _080C502C - ldrh r0, [r0] - cmp r0, 0x3 - bne _080C5038 - ldr r1, _080C5030 - lsls r0, r2, 1 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r0, _080C5034 - cmp r1, r0 - ble _080C5038 - movs r1, 0x1 - mov r0, sp - strb r1, [r0] - ldrb r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0x46 - mov r2, sp - bl SetMonData - movs r0, 0x1 - b _080C503A - .align 2, 0 -_080C501C: .4byte gUnknown_02038694 -_080C5020: .4byte gPlayerParty -_080C5024: .4byte gUnknown_02038690 -_080C5028: .4byte gUnknown_02038695 -_080C502C: .4byte gUnknown_0203869E -_080C5030: .4byte gUnknown_02038678 -_080C5034: .4byte 0x0000031f -_080C5038: - movs r0, 0 -_080C503A: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C4FBC - - thumb_func_start sub_80C5044 -sub_80C5044: @ 80C5044 - ldr r0, _080C504C - ldrb r0, [r0] - bx lr - .align 2, 0 -_080C504C: .4byte gUnknown_0203856C - thumb_func_end sub_80C5044 - - thumb_func_start sub_80C5050 -sub_80C5050: @ 80C5050 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - ldr r4, _080C513C - adds r0, r4, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080C512A - movs r0, 0xA - mov r10, r0 - movs r7, 0x3 - movs r1, 0x3 - movs r2, 0x13 - movs r3, 0xD - bl MenuDrawTextWindow - ldr r2, _080C5140 - ldr r0, _080C5144 - ldrh r1, [r0] - lsls r1, 6 - adds r0, r1, r2 - ldrh r6, [r0] - adds r0, r2, 0 - adds r0, 0x38 - adds r0, r1, r0 - ldr r0, [r0] - mov r8, r0 - adds r2, 0x3C - adds r1, r2 - ldr r1, [r1] - mov r9, r1 - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080C5148 - lsls r5, r0, 2 - adds r5, r0 - lsls r5, 3 - adds r5, r1 - movs r0, 0 - strh r0, [r5, 0x8] - strh r6, [r5, 0xA] - lsls r0, r6, 3 - ldr r1, _080C514C - adds r0, r1 - ldr r1, _080C5150 - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - ldr r4, _080C5154 - ldr r3, [r4] - ldr r4, [r4, 0x4] - str r4, [sp] - str r6, [sp, 0x4] - mov r4, r8 - str r4, [sp, 0x8] - bl sub_800D334 - adds r0, r6, 0 - mov r1, r9 - mov r2, r8 - bl sub_80409C8 - adds r4, r0, 0 - bl LoadCompressedObjectPalette - adds r0, r6, 0 - movs r1, 0x1 - bl GetMonSpriteTemplate_803C56C - ldr r0, _080C5158 - ldrh r1, [r4, 0x4] - strh r1, [r0, 0x2] - movs r1, 0x78 - movs r2, 0x40 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xC] - mov r1, r10 - strh r1, [r5, 0xE] - strh r7, [r5, 0x10] - ldr r3, _080C515C - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r0, r3, 0 - adds r0, 0x1C - adds r0, r1, r0 - ldr r2, _080C5160 - str r2, [r0] - adds r1, r3 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] -_080C512A: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C513C: .4byte sub_80C5190 -_080C5140: .4byte gUnknown_02038570 -_080C5144: .4byte gUnknown_0202E8D0 -_080C5148: .4byte gTasks -_080C514C: .4byte gMonFrontPicTable -_080C5150: .4byte gMonFrontPicCoords -_080C5154: .4byte gUnknown_081FAF4C -_080C5158: .4byte gUnknown_02024E8C -_080C515C: .4byte gSprites -_080C5160: .4byte SpriteCallbackDummy - thumb_func_end sub_80C5050 - - thumb_func_start sub_80C5164 -sub_80C5164: @ 80C5164 - push {lr} - ldr r0, _080C5188 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080C5184 - ldr r0, _080C518C - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C5184: - pop {r0} - bx r0 - .align 2, 0 -_080C5188: .4byte sub_80C5190 -_080C518C: .4byte gTasks - thumb_func_end sub_80C5164 - - thumb_func_start sub_80C5190 -sub_80C5190: @ 80C5190 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C51B4 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080C5222 - cmp r0, 0x1 - bgt _080C51B8 - cmp r0, 0 - beq _080C51F8 - b _080C5222 - .align 2, 0 -_080C51B4: .4byte gTasks -_080C51B8: - cmp r0, 0x2 - beq _080C51C2 - cmp r0, 0x3 - beq _080C5204 - b _080C5222 -_080C51C2: - movs r0, 0xC - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C5200 - adds r5, r0, r1 - ldrb r0, [r5, 0x5] - lsrs r0, 4 - bl GetSpritePaletteTagByPaletteNum - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag - ldrb r0, [r5, 0x1] - lsls r0, 30 - cmp r0, 0 - beq _080C51F2 - ldrb r0, [r5, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix -_080C51F2: - adds r0, r5, 0 - bl DestroySprite -_080C51F8: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C5222 - .align 2, 0 -_080C5200: .4byte gSprites -_080C5204: - ldrb r2, [r4, 0xE] - adds r0, r2, 0 - ldrb r3, [r4, 0x10] - adds r1, r3, 0 - adds r2, 0x9 - lsls r2, 24 - lsrs r2, 24 - adds r3, 0xA - lsls r3, 24 - lsrs r3, 24 - bl MenuZeroFillWindowRect - adds r0, r5, 0 - bl DestroyTask -_080C5222: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C5190 - - thumb_func_start sub_80C5228 -sub_80C5228: @ 80C5228 - push {r4,lr} - ldr r0, _080C5244 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C524C - ldr r4, _080C5248 - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - b _080C5252 - .align 2, 0 -_080C5244: .4byte gUnknown_0203869A -_080C5248: .4byte gScriptResult -_080C524C: - ldr r1, _080C5258 - movs r0, 0x4 - strh r0, [r1] -_080C5252: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C5258: .4byte gScriptResult - thumb_func_end sub_80C5228 - - thumb_func_start sub_80C525C -sub_80C525C: @ 80C525C - push {r4,lr} - ldr r0, _080C5280 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C5294 - ldr r2, _080C5284 - ldr r1, [r2] - ldr r0, _080C5288 - muls r0, r1 - ldr r1, _080C528C - adds r0, r1 - str r0, [r2] - lsrs r0, 16 - ldr r4, _080C5290 - b _080C529E - .align 2, 0 -_080C5280: .4byte gUnknown_0203869A -_080C5284: .4byte gUnknown_03005D28 -_080C5288: .4byte 0x41c64e6d -_080C528C: .4byte 0x00006073 -_080C5290: .4byte gScriptResult -_080C5294: - ldr r4, _080C52AC - bl Random - lsls r0, 16 - lsrs r0, 16 -_080C529E: - ldrh r1, [r4] - bl __umodsi3 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C52AC: .4byte gScriptResult - thumb_func_end sub_80C525C - - thumb_func_start sp000_heal_pokemon -sp000_heal_pokemon: @ 80C52B0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0 - mov r8, r0 - ldr r0, _080C536C - ldrb r0, [r0] - cmp r8, r0 - bcs _080C535C - ldr r1, _080C5370 - mov r10, r1 - mov r6, sp -_080C52CE: - movs r0, 0x64 - mov r4, r8 - muls r4, r0 - add r4, r10 - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - lsls r1, r0, 16 - strb r0, [r6] - lsrs r1, 24 - strb r1, [r6, 0x1] - adds r0, r4, 0 - movs r1, 0x39 - mov r2, sp - bl SetMonData - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - lsls r0, 24 - lsrs r7, r0, 24 - movs r5, 0 - movs r1, 0x1 - add r1, r8 - mov r9, r1 -_080C5304: - adds r1, r5, 0 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - adds r1, r7, 0 - adds r2, r5, 0 - bl CalculatePPWithBonus - strb r0, [r6] - adds r1, r5, 0 - adds r1, 0x11 - adds r0, r4, 0 - mov r2, sp - bl SetMonData - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _080C5304 - movs r0, 0 - strb r0, [r6] - strb r0, [r6, 0x1] - strb r0, [r6, 0x2] - strb r0, [r6, 0x3] - movs r1, 0x64 - mov r0, r8 - muls r0, r1 - add r0, r10 - movs r1, 0x37 - mov r2, sp - bl SetMonData - mov r1, r9 - lsls r0, r1, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _080C536C - ldrb r0, [r0] - cmp r8, r0 - bcc _080C52CE -_080C535C: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C536C: .4byte gPlayerPartyCount -_080C5370: .4byte gPlayerParty - thumb_func_end sp000_heal_pokemon - - thumb_func_start sub_80C5374 -sub_80C5374: @ 80C5374 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x78 - adds r5, r0, 0 - adds r3, r1, 0 - adds r4, r2, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 16 - lsrs r0, r4, 16 - mov r8, r0 - add r6, sp, 0x14 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r3, 0 - movs r3, 0x20 - bl CreateMon - add r0, sp, 0x10 - mov r1, r8 - strb r1, [r0] - lsrs r4, 24 - strb r4, [r0, 0x1] - adds r0, r6, 0 - movs r1, 0xC - add r2, sp, 0x10 - bl SetMonData - adds r0, r6, 0 - bl GiveMonToPlayer - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r5, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r5, r0, 16 - cmp r4, 0x1 - bgt _080C53E8 - cmp r4, 0 - blt _080C53E8 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8090D90 - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8090D90 -_080C53E8: - adds r0, r4, 0 - add sp, 0x78 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C5374 - - thumb_func_start sub_80C53F8 -sub_80C53F8: @ 80C53F8 - push {lr} - sub sp, 0x68 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r0, sp - movs r2, 0x1 - bl sub_8042044 - add r2, sp, 0x64 - movs r0, 0x1 - strb r0, [r2] - mov r0, sp - movs r1, 0x2D - bl SetMonData - mov r0, sp - bl GiveMonToPlayer - lsls r0, 24 - lsrs r0, 24 - add sp, 0x68 - pop {r1} - bx r1 - thumb_func_end sub_80C53F8 - - thumb_func_start sub_80C5428 -sub_80C5428: @ 80C5428 - push {lr} - bl sub_803DAA0 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - beq _080C5444 - cmp r1, 0x1 - bgt _080C5440 - cmp r1, 0 - beq _080C5444 - b _080C5448 -_080C5440: - cmp r1, 0x2 - bne _080C5448 -_080C5444: - ldr r0, _080C544C - strh r1, [r0] -_080C5448: - pop {r0} - bx r0 - .align 2, 0 -_080C544C: .4byte gScriptResult - thumb_func_end sub_80C5428 - - thumb_func_start sub_80C5450 -sub_80C5450: @ 80C5450 - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - movs r5, 0 - movs r7, 0xCE - lsls r7, 1 -_080C545C: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _080C548C - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _080C5490 - cmp r0, r7 - beq _080C5490 - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - cmp r0, r6 - bne _080C5490 - movs r0, 0x1 - b _080C5498 - .align 2, 0 -_080C548C: .4byte gPlayerParty -_080C5490: - adds r5, 0x1 - cmp r5, 0x5 - ble _080C545C - movs r0, 0 -_080C5498: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80C5450 - - thumb_func_start sub_80C54A0 -sub_80C54A0: @ 80C54A0 - push {r4,lr} - movs r0, 0xAF - bl sub_80C5450 - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - cmp r4, 0x1 - bne _080C54C2 - movs r0, 0xAF - bl ItemIdToBerryType - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080C54CC - bl GetBerryNameByBerryType -_080C54C2: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C54CC: .4byte gStringVar1 - thumb_func_end sub_80C54A0 - - thumb_func_start sub_80C54D0 -sub_80C54D0: @ 80C54D0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r7, r2, 16 - lsrs r6, r7, 16 - bl ZeroEnemyPartyMons - ldr r0, _080C552C - mov r8, r0 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - mov r0, r8 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x20 - bl CreateMon - cmp r6, 0 - beq _080C551E - add r0, sp, 0x10 - strb r6, [r0] - adds r1, r0, 0 - lsrs r0, r7, 24 - strb r0, [r1, 0x1] - mov r0, r8 - movs r1, 0xC - add r2, sp, 0x10 - bl SetMonData -_080C551E: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C552C: .4byte gEnemyParty - thumb_func_end sub_80C54D0 - - thumb_func_start sub_80C5530 -sub_80C5530: @ 80C5530 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 24 - lsrs r2, 24 - cmp r3, 0x6 - bls _080C554C - ldr r0, _080C5560 - ldrb r0, [r0] - subs r0, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_080C554C: - movs r0, 0x64 - muls r0, r3 - ldr r1, _080C5564 - adds r0, r1 - adds r1, r4, 0 - bl SetMonMoveSlot - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C5560: .4byte gPlayerPartyCount -_080C5564: .4byte gPlayerParty - thumb_func_end sub_80C5530 - - thumb_func_start sub_80C5568 -sub_80C5568: @ 80C5568 - push {lr} - ldr r1, _080C5578 - ldr r0, _080C557C - str r0, [r1, 0x8] - bl sub_8121E10 - pop {r0} - bx r0 - .align 2, 0 -_080C5578: .4byte gMain -_080C557C: .4byte sub_80C5580 - thumb_func_end sub_80C5568 - - thumb_func_start sub_80C5580 -sub_80C5580: @ 80C5580 - push {lr} - ldr r0, _080C5590 - ldrb r1, [r0] - cmp r1, 0 - bne _080C5598 - ldr r0, _080C5594 - strh r1, [r0] - b _080C559E - .align 2, 0 -_080C5590: .4byte gUnknown_02039270 -_080C5594: .4byte gScriptResult -_080C5598: - ldr r1, _080C55A8 - movs r0, 0x1 - strh r0, [r1] -_080C559E: - ldr r0, _080C55AC - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080C55A8: .4byte gScriptResult -_080C55AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_80C5580 - - thumb_func_start sub_80C55B0 -sub_80C55B0: @ 80C55B0 - push {lr} - ldr r1, _080C55C0 - ldr r0, _080C55C4 - str r0, [r1, 0x8] - bl sub_8121E34 - pop {r0} - bx r0 - .align 2, 0 -_080C55C0: .4byte gMain -_080C55C4: .4byte sub_80C55C8 - thumb_func_end sub_80C55B0 - - thumb_func_start sub_80C55C8 -sub_80C55C8: @ 80C55C8 - push {r4,lr} - ldr r0, _080C55DC - ldrb r4, [r0] - cmp r4, 0 - bne _080C55E4 - bl copy_player_party_from_sav1 - ldr r0, _080C55E0 - strh r4, [r0] - b _080C55EE - .align 2, 0 -_080C55DC: .4byte gUnknown_02039270 -_080C55E0: .4byte gScriptResult -_080C55E4: - bl sub_80C5604 - ldr r1, _080C55FC - movs r0, 0x1 - strh r0, [r1] -_080C55EE: - ldr r0, _080C5600 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C55FC: .4byte gScriptResult -_080C5600: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_80C55C8 - - thumb_func_start sub_80C5604 -sub_80C5604: @ 80C5604 - push {r4-r7,lr} - sub sp, 0x134 - add r0, sp, 0x12C - movs r1, 0 - str r1, [r0] - ldr r2, _080C5674 - mov r1, sp - bl CpuSet - movs r5, 0 - movs r7, 0x64 - ldr r6, _080C5678 - mov r4, sp -_080C561E: - ldr r0, _080C567C - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080C5638 - subs r0, 0x1 - adds r1, r0, 0 - muls r1, r7 - adds r1, r6 - adds r0, r4, 0 - movs r2, 0x64 - bl memcpy -_080C5638: - adds r4, 0x64 - adds r5, 0x1 - cmp r5, 0x2 - ble _080C561E - add r0, sp, 0x130 - movs r1, 0 - str r1, [r0] - ldr r4, _080C5678 - ldr r2, _080C5680 - adds r1, r4, 0 - bl CpuSet - mov r5, sp - add r6, sp, 0xC8 -_080C5654: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x64 - bl memcpy - adds r5, 0x64 - adds r4, 0x64 - cmp r5, r6 - ble _080C5654 - bl CalculatePlayerPartyCount - add sp, 0x134 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C5674: .4byte 0x0500004b -_080C5678: .4byte gPlayerParty -_080C567C: .4byte gUnknown_02039270 -_080C5680: .4byte 0x05000096 - thumb_func_end sub_80C5604 - - thumb_func_start sub_80C5684 -sub_80C5684: @ 80C5684 - push {lr} - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _080C569C - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - bne _080C56A0 -_080C569C: - movs r0, 0 - b _080C56A2 -_080C56A0: - movs r0, 0x1 -_080C56A2: - pop {r1} - bx r1 - thumb_func_end sub_80C5684 - - thumb_func_start sub_80C56A8 -sub_80C56A8: @ 80C56A8 - push {r4,r5,lr} - ldr r4, _080C56C8 - movs r5, 0 -_080C56AE: - adds r0, r4, 0 - bl sub_80C5684 - cmp r0, 0 - beq _080C56CC - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080C56CC - movs r0, 0 - b _080C56D6 - .align 2, 0 -_080C56C8: .4byte gPlayerParty -_080C56CC: - adds r5, 0x1 - adds r4, 0x64 - cmp r5, 0x5 - ble _080C56AE - movs r0, 0x1 -_080C56D6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80C56A8 - - thumb_func_start sub_80C56DC -sub_80C56DC: @ 80C56DC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - adds r4, r0, 0 - muls r4, r1 - ldr r0, _080C5720 - adds r4, r0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0x7 - bl sub_803FCD4 - adds r0, r4, 0 - movs r1, 0x37 - mov r2, sp - bl SetMonData - ldr r5, _080C5724 - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - adds r0, r5, 0 - bl StringGetEnd10 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C5720: .4byte gPlayerParty -_080C5724: .4byte gStringVar1 - thumb_func_end sub_80C56DC - - thumb_func_start sub_80C5728 -sub_80C5728: @ 80C5728 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r1, r0 - ldr r0, _080C5764 - adds r4, r1, r0 - adds r0, r4, 0 - bl sub_80C5684 - cmp r0, 0 - beq _080C5768 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080C5768 - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C5768 - movs r0, 0x1 - b _080C576A - .align 2, 0 -_080C5764: .4byte gPlayerParty -_080C5768: - movs r0, 0 -_080C576A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C5728 - - thumb_func_start sub_80C5770 -sub_80C5770: @ 80C5770 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C5794 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080C57CA - cmp r0, 0x1 - bgt _080C5798 - cmp r0, 0 - beq _080C579E - b _080C581A - .align 2, 0 -_080C5794: .4byte gUnknown_03004B28 -_080C5798: - cmp r0, 0x2 - beq _080C57DC - b _080C581A -_080C579E: - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x5 - bgt _080C57C4 -_080C57A8: - lsls r0, r1, 24 - lsrs r0, 24 - bl sub_80C5728 - cmp r0, 0 - bne _080C57F4 - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - adds r1, r0, 0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080C57A8 -_080C57C4: - movs r0, 0x2 - strh r0, [r4] - b _080C581A -_080C57CA: - bl IsFieldMessageBoxHidden - lsls r0, 24 - cmp r0, 0 - beq _080C581A - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] - b _080C581A -_080C57DC: - bl sub_80C56A8 - adds r1, r0, 0 - cmp r1, 0 - beq _080C580C - ldr r1, _080C57F0 - movs r0, 0x1 - strh r0, [r1] - b _080C5810 - .align 2, 0 -_080C57F0: .4byte gScriptResult -_080C57F4: - ldrb r0, [r4, 0x2] - bl sub_80C56DC - ldr r0, _080C5808 - bl ShowFieldMessage - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080C581A - .align 2, 0 -_080C5808: .4byte UnknownString_81A1132 -_080C580C: - ldr r0, _080C5820 - strh r1, [r0] -_080C5810: - bl EnableBothScriptContexts - adds r0, r5, 0 - bl DestroyTask -_080C581A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C5820: .4byte gScriptResult - thumb_func_end sub_80C5770 - - thumb_func_start sub_80C5824 -sub_80C5824: @ 80C5824 - push {lr} - ldr r0, _080C5838 - movs r1, 0x50 - bl CreateTask - bl ScriptContext1_Stop - pop {r0} - bx r0 - .align 2, 0 -_080C5838: .4byte sub_80C5770 - thumb_func_end sub_80C5824 - - thumb_func_start overworld_poison -overworld_poison: @ 80C583C - push {r4-r7,lr} - sub sp, 0x4 - ldr r4, _080C58A8 - movs r7, 0 - movs r6, 0 - movs r5, 0x5 -_080C5848: - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _080C588C - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C588C - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - str r0, [sp] - cmp r0, 0 - beq _080C587E - subs r0, 0x1 - str r0, [sp] - cmp r0, 0 - bne _080C5880 -_080C587E: - adds r6, 0x1 -_080C5880: - adds r0, r4, 0 - movs r1, 0x39 - mov r2, sp - bl SetMonData - adds r7, 0x1 -_080C588C: - adds r4, 0x64 - subs r5, 0x1 - cmp r5, 0 - bge _080C5848 - cmp r6, 0 - bne _080C589C - cmp r7, 0 - beq _080C58A0 -_080C589C: - bl overworld_posion_effect -_080C58A0: - cmp r6, 0 - beq _080C58AC - movs r0, 0x2 - b _080C58B6 - .align 2, 0 -_080C58A8: .4byte gPlayerParty -_080C58AC: - cmp r7, 0 - bne _080C58B4 - movs r0, 0 - b _080C58B6 -_080C58B4: - movs r0, 0x1 -_080C58B6: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end overworld_poison - - thumb_func_start sub_80C58C0 -sub_80C58C0: @ 80C58C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r5, r0, 0 - movs r1, 0 - bl GetMonData - lsls r0, 16 - str r0, [sp, 0x4] - lsrs r0, 16 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0x27 - bl GetMonData - adds r7, r0, 0 - movs r6, 0xF - ands r7, r6 - adds r0, r5, 0 - movs r1, 0x28 - bl GetMonData - mov r8, r0 - mov r1, r8 - ands r1, r6 - mov r8, r1 - adds r0, r5, 0 - movs r1, 0x29 - bl GetMonData - mov r9, r0 - mov r3, r9 - ands r3, r6 - mov r9, r3 - adds r0, r5, 0 - movs r1, 0x2A - bl GetMonData - mov r10, r0 - ands r0, r6 - mov r10, r0 - adds r0, r5, 0 - movs r1, 0x2B - bl GetMonData - adds r4, r0, 0 - ands r4, r6 - adds r0, r5, 0 - movs r1, 0x2C - bl GetMonData - adds r2, r0, 0 - ands r2, r6 - mov r1, r8 - mov r3, r9 - eors r1, r3 - mov r8, r1 - mov r0, r8 - muls r0, r7 - movs r1, 0xFF - ldr r3, [sp] - ands r3, r1 - eors r0, r3 - eors r4, r2 - mov r1, r10 - muls r1, r4 - ldr r3, [sp, 0x4] - lsrs r2, r3, 24 - eors r1, r2 - lsls r0, 8 - adds r0, r1 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80C58C0 - - thumb_func_start sub_80C5964 -sub_80C5964: @ 80C5964 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0x1 - ldr r3, _080C5980 -_080C596E: - lsls r0, r1, 3 - adds r0, r3 - ldrh r0, [r0, 0x4] - cmp r2, r0 - bcs _080C5984 - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - b _080C5990 - .align 2, 0 -_080C5980: .4byte gUnknown_083D180C -_080C5984: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xE - bls _080C596E - adds r0, r1, 0 -_080C5990: - pop {r1} - bx r1 - thumb_func_end sub_80C5964 - - thumb_func_start sub_80C5994 -sub_80C5994: @ 80C5994 - push {r4-r7,lr} - sub sp, 0x8 - adds r6, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r6, 16 - lsrs r6, 16 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl sub_8090D54 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r6, 0 - bl sub_80C5964 - lsls r0, 24 - ldr r1, _080C5A04 - lsrs r0, 21 - adds r0, r1 - ldrh r1, [r0] - str r1, [sp] - movs r2, 0 - str r2, [sp, 0x4] - ldrb r2, [r0, 0x2] - movs r3, 0 - ldrh r4, [r0, 0x4] - movs r5, 0 - adds r0, r6, 0 - movs r1, 0 - subs r0, r4 - sbcs r1, r5 - bl __udivdi3 - ldr r2, [sp] - ldr r3, [sp, 0x4] - adds r2, r0 - adcs r3, r1 - str r2, [sp] - str r3, [sp, 0x4] - adds r0, r7, 0 - movs r1, 0 - bl __muldi3 - movs r2, 0xA - movs r3, 0 - bl __udivdi3 - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080C5A04: .4byte gUnknown_083D180C - thumb_func_end sub_80C5994 - - thumb_func_start sub_80C5A08 -sub_80C5A08: @ 80C5A08 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - adds r5, r1, 0 - ldr r1, _080C5A78 - mov r0, sp - movs r2, 0x2 - bl memcpy - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 1 - adds r0, r4, 0 - bl __floatsidf - cmp r4, 0 - bge _080C5A32 - ldr r2, _080C5A7C - ldr r3, _080C5A80 - bl __adddf3 -_080C5A32: - ldr r2, _080C5A84 - ldr r3, _080C5A88 - bl __divdf3 - bl __fixunsdfsi - adds r5, r0, 0 - movs r1, 0xA - bl __udivsi3 - adds r1, r0, 0 - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x8 - bl ConvertIntToDecimalStringN - adds r6, r0, 0 - mov r1, sp - bl StringAppend - adds r6, r0, 0 - adds r0, r5, 0 - movs r1, 0xA - bl __umodsi3 - adds r1, r0, 0 - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C5A78: .4byte gUnknown_083D188C -_080C5A7C: .4byte 0x41f00000 -_080C5A80: .4byte 0x00000000 -_080C5A84: .4byte 0x40396666 -_080C5A88: .4byte 0x66666666 - thumb_func_end sub_80C5A08 - - thumb_func_start sub_80C5A8C -sub_80C5A8C: @ 80C5A8C - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r1, 0 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _080C5AA4 - ldrh r0, [r1] - cmp r0, 0xFF - bne _080C5AA8 - movs r0, 0 - b _080C5B12 - .align 2, 0 -_080C5AA4: .4byte gScriptResult -_080C5AA8: - ldrh r1, [r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080C5AD0 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0x1 - beq _080C5ACA - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, r6 - beq _080C5AD4 -_080C5ACA: - movs r0, 0x1 - b _080C5B12 - .align 2, 0 -_080C5AD0: .4byte gPlayerParty -_080C5AD4: - mov r4, sp - adds r0, r5, 0 - bl sub_80C58C0 - strh r0, [r4] - mov r0, sp - ldrh r1, [r0] - adds r0, r6, 0 - bl sub_80C5994 - adds r5, r0, 0 - ldrh r1, [r7] - adds r0, r6, 0 - bl sub_80C5994 - adds r4, r0, 0 - ldr r0, _080C5B0C - adds r1, r5, 0 - bl sub_80C5A08 - cmp r5, r4 - bls _080C5B10 - mov r0, sp - ldrh r0, [r0] - strh r0, [r7] - movs r0, 0x3 - b _080C5B12 - .align 2, 0 -_080C5B0C: .4byte gStringVar2 -_080C5B10: - movs r0, 0x2 -_080C5B12: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80C5A8C - - thumb_func_start sub_80C5B1C -sub_80C5B1C: @ 80C5B1C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - ldrh r1, [r5] - adds r0, r4, 0 - bl sub_80C5994 - adds r1, r0, 0 - ldr r0, _080C5B58 - bl sub_80C5A08 - ldr r0, _080C5B5C - movs r1, 0xB - muls r1, r4 - ldr r2, _080C5B60 - adds r1, r2 - bl StringCopy - ldrh r1, [r5] - movs r0, 0x81 - lsls r0, 8 - cmp r1, r0 - bne _080C5B6C - ldr r0, _080C5B64 - ldr r1, _080C5B68 - bl StringCopy - b _080C5B74 - .align 2, 0 -_080C5B58: .4byte gStringVar3 -_080C5B5C: .4byte gStringVar1 -_080C5B60: .4byte gSpeciesNames -_080C5B64: .4byte gStringVar2 -_080C5B68: .4byte gOtherText_Marco -_080C5B6C: - ldr r0, _080C5B7C - ldr r1, _080C5B80 - bl StringCopy -_080C5B74: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C5B7C: .4byte gStringVar2 -_080C5B80: .4byte gSaveBlock2 - thumb_func_end sub_80C5B1C - - thumb_func_start sub_80C5B84 -sub_80C5B84: @ 80C5B84 - push {lr} - ldr r0, _080C5B94 - movs r1, 0x81 - lsls r1, 8 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_080C5B94: .4byte 0x00004047 - thumb_func_end sub_80C5B84 - - thumb_func_start sub_80C5B98 -sub_80C5B98: @ 80C5B98 - push {lr} - ldr r0, _080C5BB0 - bl GetVarPointer - adds r1, r0, 0 - movs r0, 0x99 - lsls r0, 1 - bl sub_80C5B1C - pop {r0} - bx r0 - .align 2, 0 -_080C5BB0: .4byte 0x00004047 - thumb_func_end sub_80C5B98 - - thumb_func_start sub_80C5BB4 -sub_80C5BB4: @ 80C5BB4 - push {r4,lr} - ldr r0, _080C5BD4 - bl GetVarPointer - adds r1, r0, 0 - ldr r4, _080C5BD8 - movs r0, 0x99 - lsls r0, 1 - bl sub_80C5A8C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C5BD4: .4byte 0x00004047 -_080C5BD8: .4byte gScriptResult - thumb_func_end sub_80C5BB4 - - thumb_func_start sub_80C5BDC -sub_80C5BDC: @ 80C5BDC - push {lr} - ldr r0, _080C5BEC - movs r1, 0x81 - lsls r1, 8 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_080C5BEC: .4byte 0x0000404f - thumb_func_end sub_80C5BDC - - thumb_func_start sub_80C5BF0 -sub_80C5BF0: @ 80C5BF0 - push {lr} - ldr r0, _080C5C04 - bl GetVarPointer - adds r1, r0, 0 - ldr r0, _080C5C08 - bl sub_80C5B1C - pop {r0} - bx r0 - .align 2, 0 -_080C5C04: .4byte 0x0000404f -_080C5C08: .4byte 0x00000143 - thumb_func_end sub_80C5BF0 - - thumb_func_start sub_80C5C0C -sub_80C5C0C: @ 80C5C0C - push {r4,lr} - ldr r0, _080C5C2C - bl GetVarPointer - adds r1, r0, 0 - ldr r4, _080C5C30 - ldr r0, _080C5C34 - bl sub_80C5A8C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C5C2C: .4byte 0x0000404f -_080C5C30: .4byte gScriptResult -_080C5C34: .4byte 0x00000143 - thumb_func_end sub_80C5C0C - - thumb_func_start sub_80C5C38 -sub_80C5C38: @ 80C5C38 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - movs r7, 0 - add r4, sp, 0x8 - movs r0, 0x1 - strb r0, [r4] - ldr r1, _080C5CC0 - mov r0, sp - movs r2, 0x7 - bl memcpy - mov r8, r4 - cmp r6, 0xA - bhi _080C5CB2 - cmp r5, 0x40 - bhi _080C5CB2 - ldr r0, _080C5CC4 - ldr r1, _080C5CC8 - adds r0, r1 - adds r0, r6, r0 - strb r5, [r0] - movs r5, 0 -_080C5C70: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _080C5CCC - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080C5CA2 - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _080C5CA2 - mov r1, sp - adds r0, r1, r6 - ldrb r1, [r0] - adds r0, r4, 0 - mov r2, r8 - bl SetMonData - movs r7, 0x1 -_080C5CA2: - adds r5, 0x1 - cmp r5, 0x5 - ble _080C5C70 - cmp r7, 0 - beq _080C5CB2 - ldr r0, _080C5CD0 - bl FlagSet -_080C5CB2: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C5CC0: .4byte gUnknown_083D188E -_080C5CC4: .4byte gSaveBlock1 -_080C5CC8: .4byte 0x00003110 -_080C5CCC: .4byte gPlayerParty -_080C5CD0: .4byte 0x0000083b - thumb_func_end sub_80C5C38 - - thumb_func_start sub_80C5CD4 -sub_80C5CD4: @ 80C5CD4 - push {r4-r7,lr} - sub sp, 0x28 - adds r7, r0, 0 - ldr r0, _080C5D64 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r0, _080C5D68 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x20] - str r1, [sp, 0x24] - mov r1, sp - ldr r0, _080C5D6C - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldrh r3, [r7] - lsls r2, r3, 16 - add r0, sp, 0x18 - ldrh r1, [r0, 0x4] - orrs r1, r2 - str r1, [r0, 0x4] - mov r1, sp - movs r6, 0 - strh r3, [r1] - ldrh r2, [r7, 0x2] - ldr r5, _080C5D70 - add r4, sp, 0x20 - ldr r1, [r4, 0x4] - ands r1, r5 - orrs r1, r2 - str r1, [r4, 0x4] - mov r1, sp - strh r2, [r1, 0x2] - bl LoadSpriteSheet - adds r0, r4, 0 - bl LoadSpritePalette - movs r0, 0x1 - strh r0, [r7, 0xC] - strh r6, [r7, 0xA] - strh r6, [r7, 0x8] - ldrh r0, [r7, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 9 - lsls r1, r0 - bics r5, r1 - str r5, [r7, 0x10] - ldrh r0, [r7, 0x4] - cmp r0, 0 - bne _080C5D4E - movs r0, 0x10 - strh r0, [r7, 0x4] -_080C5D4E: - ldrh r0, [r7, 0x6] - cmp r0, 0 - bne _080C5D58 - movs r0, 0x14 - strh r0, [r7, 0x6] -_080C5D58: - ldr r0, _080C5D74 - str r7, [r0] - movs r4, 0 - ldr r5, _080C5D78 - b _080C5D94 - .align 2, 0 -_080C5D64: .4byte gUnknown_083D1898 -_080C5D68: .4byte gUnknown_083D18A0 -_080C5D6C: .4byte gSpriteTemplate_83D18A8 -_080C5D70: .4byte 0xffff0000 -_080C5D74: .4byte gUnknown_020387EC -_080C5D78: .4byte gSprites -_080C5D7C: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r7, 0x4] - cmp r4, 0x3 - bhi _080C5D8C - negs r1, r1 -_080C5D8C: - strh r1, [r0, 0x2E] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080C5D94: - cmp r4, 0x7 - bhi _080C5DB2 - lsls r1, r4, 5 - adds r1, 0x8 - lsls r1, 16 - asrs r1, 16 - mov r0, sp - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _080C5D7C -_080C5DB2: - ldr r1, _080C5DC8 - movs r0, 0xBF - strh r0, [r1] - adds r1, 0x4 - movs r0, 0x10 - strh r0, [r1] - add sp, 0x28 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C5DC8: .4byte REG_BLDCNT - thumb_func_end sub_80C5CD4 - - thumb_func_start sub_80C5DCC -sub_80C5DCC: @ 80C5DCC - push {r4,lr} - ldr r4, _080C5E10 - ldr r1, [r4] - ldrh r0, [r1, 0x8] - cmp r0, 0 - bne _080C5DF0 - ldr r0, [r1, 0x10] - ldr r2, _080C5E14 - movs r1, 0x10 - bl BlendPalettes - ldr r0, _080C5E18 - bl sub_80C61B0 - ldr r1, [r4] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C5DF0: - ldr r1, [r4] - ldrh r0, [r1, 0xA] - cmp r0, 0x7 - bls _080C5E0A - ldrh r0, [r1, 0x6] - ldrh r2, [r1, 0xC] - adds r0, r2 - movs r2, 0 - strh r0, [r1, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4F - bgt _080C5E1C -_080C5E0A: - movs r0, 0 - b _080C5E2E - .align 2, 0 -_080C5E10: .4byte gUnknown_020387EC -_080C5E14: .4byte 0x0000ffff -_080C5E18: .4byte sub_80C603C -_080C5E1C: - movs r0, 0x50 - strh r0, [r1, 0xC] - ldr r0, _080C5E34 - strh r2, [r0] - adds r0, 0x4 - strh r2, [r0] - bl ClearGpuRegBits - movs r0, 0x1 -_080C5E2E: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C5E34: .4byte REG_BLDCNT - thumb_func_end sub_80C5DCC - - thumb_func_start sub_80C5E38 -sub_80C5E38: @ 80C5E38 - push {r4-r7,lr} - sub sp, 0x28 - adds r7, r0, 0 - ldr r0, _080C5EC8 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r0, _080C5ECC - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x20] - str r1, [sp, 0x24] - mov r1, sp - ldr r0, _080C5ED0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldrh r3, [r7] - lsls r2, r3, 16 - add r0, sp, 0x18 - ldrh r1, [r0, 0x4] - orrs r1, r2 - str r1, [r0, 0x4] - mov r1, sp - movs r6, 0 - strh r3, [r1] - ldrh r2, [r7, 0x2] - ldr r5, _080C5ED4 - add r4, sp, 0x20 - ldr r1, [r4, 0x4] - ands r1, r5 - orrs r1, r2 - str r1, [r4, 0x4] - mov r1, sp - strh r2, [r1, 0x2] - bl LoadSpriteSheet - adds r0, r4, 0 - bl LoadSpritePalette - movs r0, 0x50 - strh r0, [r7, 0xC] - strh r6, [r7, 0x8] - strh r6, [r7, 0xA] - ldrh r0, [r7, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 9 - lsls r1, r0 - bics r5, r1 - str r5, [r7, 0x10] - ldrh r0, [r7, 0x4] - cmp r0, 0 - bne _080C5EB2 - movs r0, 0x10 - strh r0, [r7, 0x4] -_080C5EB2: - ldrh r0, [r7, 0x6] - cmp r0, 0 - bne _080C5EBC - movs r0, 0x14 - strh r0, [r7, 0x6] -_080C5EBC: - ldr r0, _080C5ED8 - str r7, [r0] - movs r5, 0 - ldr r6, _080C5EDC - b _080C5F4A - .align 2, 0 -_080C5EC8: .4byte gUnknown_083D1898 -_080C5ECC: .4byte gUnknown_083D18A0 -_080C5ED0: .4byte gSpriteTemplate_83D18C0 -_080C5ED4: .4byte 0xffff0000 -_080C5ED8: .4byte gUnknown_020387EC -_080C5EDC: .4byte gSprites -_080C5EE0: - lsls r2, r3, 4 - adds r1, r2, r3 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r7, 0x4] - strh r0, [r1, 0x2E] - movs r0, 0x1 - strh r0, [r1, 0x30] - ldr r1, _080C5EF4 - b _080C5F2A - .align 2, 0 -_080C5EF4: .4byte gSprites -_080C5EF8: - lsls r1, r5, 21 - movs r0, 0x80 - lsls r0, 16 - adds r1, r0 - asrs r1, 16 - mov r0, sp - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _080C5F6E - lsls r2, r3, 4 - adds r1, r2, r3 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r7, 0x4] - negs r0, r0 - strh r0, [r1, 0x2E] - ldr r0, _080C5F88 - strh r0, [r1, 0x30] - ldr r1, _080C5F8C - lsls r4, r5, 5 -_080C5F2A: - adds r0, r2, r3 - lsls r0, 2 - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x8 - movs r2, 0 - strh r1, [r0, 0x32] - strh r2, [r0, 0x36] - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080C5F4A: - cmp r5, 0x7 - bhi _080C5F6E - cmp r5, 0x3 - bhi _080C5EF8 - lsls r4, r5, 5 - adds r1, r4, 0 - subs r1, 0x70 - lsls r1, 16 - asrs r1, 16 - mov r0, sp - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - bne _080C5EE0 -_080C5F6E: - ldr r1, _080C5F90 - movs r0, 0xFF - strh r0, [r1] - adds r1, 0x4 - movs r0, 0x10 - strh r0, [r1] - ldr r0, _080C5F94 - bl sub_80C61B0 - add sp, 0x28 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C5F88: .4byte 0x0000ffff -_080C5F8C: .4byte gSprites -_080C5F90: .4byte REG_BLDCNT -_080C5F94: .4byte sub_80C6078 - thumb_func_end sub_80C5E38 - - thumb_func_start sub_80C5F98 -sub_80C5F98: @ 80C5F98 - push {r4,lr} - ldr r4, _080C5FB0 - ldr r2, [r4] - ldrh r0, [r2, 0x8] - cmp r0, 0x1 - beq _080C5FEC - cmp r0, 0x1 - bgt _080C5FB4 - cmp r0, 0 - beq _080C5FBA - b _080C602C - .align 2, 0 -_080C5FB0: .4byte gUnknown_020387EC -_080C5FB4: - cmp r0, 0x2 - beq _080C6008 - b _080C602C -_080C5FBA: - ldrh r0, [r2, 0xC] - ldrh r1, [r2, 0x6] - subs r0, r1 - strh r0, [r2, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bgt _080C6034 - ldr r0, [r2, 0x10] - ldr r2, _080C5FE4 - movs r1, 0x10 - bl BlendPalettes - ldr r0, _080C5FE8 - bl SetHBlankCallback - ldr r1, [r4] - movs r0, 0x1 - strh r0, [r1, 0xC] - b _080C6000 - .align 2, 0 -_080C5FE4: .4byte 0x0000ffff -_080C5FE8: .4byte sub_80C603C -_080C5FEC: - ldrh r0, [r2, 0xA] - cmp r0, 0x8 - bne _080C6034 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r1, [r4] -_080C6000: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _080C6034 -_080C6008: - ldr r0, _080C6030 - movs r1, 0 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - ldrh r0, [r2] - bl FreeSpriteTilesByTag - ldr r0, [r4] - ldrh r0, [r0, 0x2] - bl FreeSpritePaletteByTag - bl ClearGpuRegBits - ldr r1, [r4] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C602C: - movs r0, 0x1 - b _080C6036 - .align 2, 0 -_080C6030: .4byte REG_BLDCNT -_080C6034: - movs r0, 0 -_080C6036: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C5F98 - - thumb_func_start sub_80C603C -sub_80C603C: @ 80C603C - push {lr} - sub sp, 0x4 - mov r2, sp - ldr r0, _080C6060 - ldrh r1, [r0] - movs r3, 0xFF - adds r0, r3, 0 - ands r0, r1 - strh r0, [r2] - mov r0, sp - ldrh r0, [r0] - cmp r0, 0x50 - bne _080C6068 - ldr r1, _080C6064 - movs r0, 0x8F - strh r0, [r1] - b _080C606C - .align 2, 0 -_080C6060: .4byte REG_VCOUNT -_080C6064: .4byte REG_BLDCNT -_080C6068: - ldr r0, _080C6074 - strh r3, [r0] -_080C606C: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080C6074: .4byte REG_BLDCNT - thumb_func_end sub_80C603C - - thumb_func_start sub_80C6078 -sub_80C6078: @ 80C6078 - push {lr} - sub sp, 0x4 - mov r2, sp - ldr r0, _080C60B0 - ldrh r1, [r0] - movs r0, 0xFF - ands r0, r1 - strh r0, [r2] - mov r0, sp - ldrh r1, [r0] - ldr r0, _080C60B4 - ldr r0, [r0] - movs r3, 0xC - ldrsh r2, [r0, r3] - movs r0, 0x50 - subs r0, r2 - cmp r1, r0 - ble _080C60BC - mov r0, sp - ldrh r1, [r0] - adds r0, r2, 0 - adds r0, 0x50 - cmp r1, r0 - bge _080C60BC - ldr r1, _080C60B8 - movs r0, 0 - b _080C60C0 - .align 2, 0 -_080C60B0: .4byte REG_VCOUNT -_080C60B4: .4byte gUnknown_020387EC -_080C60B8: .4byte REG_BLDY -_080C60BC: - ldr r1, _080C60C8 - movs r0, 0x10 -_080C60C0: - strh r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080C60C8: .4byte REG_BLDY - thumb_func_end sub_80C6078 - - thumb_func_start sub_80C60CC -sub_80C60CC: @ 80C60CC - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bls _080C611C - adds r0, r2, 0 - bl DestroySprite - ldr r4, _080C6124 - ldr r1, [r4] - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x8 - bne _080C611C - ldrh r0, [r1] - bl FreeSpriteTilesByTag - ldr r0, [r4] - ldrh r0, [r0, 0x2] - bl FreeSpritePaletteByTag - ldr r0, [r4] - ldr r0, [r0, 0x10] - ldr r2, _080C6128 - movs r1, 0 - bl BlendPalettes - ldr r0, _080C612C - bl SetHBlankCallback -_080C611C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C6124: .4byte gUnknown_020387EC -_080C6128: .4byte 0x0000ffff -_080C612C: .4byte sub_80C6078 - thumb_func_end sub_80C60CC - - thumb_func_start sub_80C6130 -sub_80C6130: @ 80C6130 - push {r4,r5,lr} - adds r2, r0, 0 - movs r1, 0x36 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080C61AA - ldr r1, _080C6184 - ldr r0, [r1] - movs r3, 0xC - ldrsh r4, [r0, r3] - adds r5, r1, 0 - cmp r4, 0x1 - bne _080C61AA - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - adds r0, 0xF - lsls r0, 16 - movs r1, 0x87 - lsls r1, 17 - cmp r0, r1 - bhi _080C616C - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_080C616C: - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _080C6188 - movs r0, 0x20 - ldrsh r1, [r2, r0] - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r1, r0 - blt _080C6196 - b _080C6194 - .align 2, 0 -_080C6184: .4byte gUnknown_020387EC -_080C6188: - movs r0, 0x20 - ldrsh r1, [r2, r0] - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r1, r0 - bgt _080C6196 -_080C6194: - strh r4, [r2, 0x36] -_080C6196: - movs r1, 0x36 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _080C61AA - ldr r0, [r5] - ldrh r1, [r0, 0xA] - adds r1, 0x1 - strh r1, [r0, 0xA] - ldrh r0, [r2, 0x32] - strh r0, [r2, 0x20] -_080C61AA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C6130 - - thumb_func_start sub_80C61B0 -sub_80C61B0: @ 80C61B0 - push {r4-r6,lr} - ldr r2, _080C61F0 - ldrh r1, [r2] - movs r5, 0x2 - orrs r1, r5 - strh r1, [r2] - ldr r3, _080C61F4 - ldrh r1, [r3] - movs r2, 0x10 - orrs r1, r2 - strh r1, [r3] - ldr r4, _080C61F8 - ldrh r2, [r4] - movs r6, 0 - strh r6, [r4] - ldr r3, _080C61FC - ldrh r1, [r3] - orrs r1, r5 - strh r1, [r3] - strh r2, [r4] - ldr r2, _080C6200 - ldrh r1, [r2, 0x1C] - orrs r1, r5 - ldrh r3, [r2, 0x1C] - orrs r1, r6 - strh r1, [r2, 0x1C] - bl SetHBlankCallback - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C61F0: .4byte INTR_CHECK -_080C61F4: .4byte REG_DISPSTAT -_080C61F8: .4byte 0x04000208 -_080C61FC: .4byte 0x04000200 -_080C6200: .4byte gMain - thumb_func_end sub_80C61B0 - - thumb_func_start ClearGpuRegBits -ClearGpuRegBits: @ 80C6204 - push {r4,r5,lr} - ldr r3, _080C6248 - ldrh r1, [r3] - ldr r2, _080C624C - adds r0, r2, 0 - ands r0, r1 - strh r0, [r3] - ldr r3, _080C6250 - ldrh r1, [r3] - ldr r0, _080C6254 - ands r0, r1 - strh r0, [r3] - ldr r4, _080C6258 - ldrh r3, [r4] - movs r0, 0 - strh r0, [r4] - ldr r5, _080C625C - ldrh r1, [r5] - adds r0, r2, 0 - ands r0, r1 - strh r0, [r5] - strh r3, [r4] - ldr r0, _080C6260 - ldrh r1, [r0, 0x1C] - ands r2, r1 - ldrh r1, [r0, 0x1C] - strh r2, [r0, 0x1C] - movs r0, 0 - bl SetHBlankCallback - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C6248: .4byte INTR_CHECK -_080C624C: .4byte 0x0000fffd -_080C6250: .4byte REG_DISPSTAT -_080C6254: .4byte 0x0000ffef -_080C6258: .4byte 0x04000208 -_080C625C: .4byte 0x04000200 -_080C6260: .4byte gMain - thumb_func_end ClearGpuRegBits - - thumb_func_start sub_80C6264 -sub_80C6264: @ 80C6264 - push {lr} - ldr r0, _080C6278 - ldr r1, _080C627C - ldr r1, [r1, 0x4] - bl sub_80BBFD8 - bl sub_80BB5E4 - pop {r0} - bx r0 - .align 2, 0 -_080C6278: .4byte gUnknown_0203923C -_080C627C: .4byte gMapHeader - thumb_func_end sub_80C6264 - - thumb_func_start sub_80C6280 -sub_80C6280: @ 80C6280 - push {lr} - ldr r1, _080C6294 - ldr r0, [r1, 0x4] - cmp r0, 0x2 - beq _080C62AA - cmp r0, 0x2 - bgt _080C6298 - cmp r0, 0x1 - beq _080C62A2 - b _080C62BE - .align 2, 0 -_080C6294: .4byte gUnknown_0202FF84 -_080C6298: - cmp r0, 0x3 - beq _080C62AE - cmp r0, 0x4 - beq _080C62B8 - b _080C62BE -_080C62A2: - movs r0, 0x8 - str r0, [r1, 0x14] - movs r0, 0x28 - b _080C62BC -_080C62AA: - movs r0, 0x8 - b _080C62BA -_080C62AE: - movs r0, 0x8 - negs r0, r0 - str r0, [r1, 0x14] - movs r0, 0x18 - b _080C62BC -_080C62B8: - movs r0, 0x18 -_080C62BA: - str r0, [r1, 0x14] -_080C62BC: - str r0, [r1, 0x18] -_080C62BE: - pop {r0} - bx r0 - thumb_func_end sub_80C6280 - - thumb_func_start sub_80C62C4 -sub_80C62C4: @ 80C62C4 - push {r4,lr} - bl sub_80BB63C - ldr r0, _080C6318 - ldrh r0, [r0] - cmp r0, 0x1 - beq _080C636E - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080C636E - ldr r4, _080C631C - adds r1, r4, 0x2 - adds r0, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80571EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C6330 - bl sub_80C6264 - ldr r1, _080C6320 - ldr r0, _080C6324 - str r0, [r1] - ldr r1, _080C6328 - ldr r0, _080C632C - b _080C6380 - .align 2, 0 -_080C6318: .4byte gScriptResult -_080C631C: .4byte gUnknown_0203923C -_080C6320: .4byte gUnknown_0300485C -_080C6324: .4byte sub_808AB90 -_080C6328: .4byte gUnknown_03005CE4 -_080C632C: .4byte sub_80C639C -_080C6330: - adds r0, r4, 0 - bl sub_805720C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C6360 - bl sub_80C6264 - ldr r1, _080C6350 - ldr r0, _080C6354 - str r0, [r1] - ldr r1, _080C6358 - ldr r0, _080C635C - b _080C6380 - .align 2, 0 -_080C6350: .4byte gUnknown_0300485C -_080C6354: .4byte sub_808AB90 -_080C6358: .4byte gUnknown_03005CE4 -_080C635C: .4byte sub_80C64A8 -_080C6360: - adds r0, r4, 0 - bl is_tile_x98 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C6372 -_080C636E: - movs r0, 0 - b _080C6384 -_080C6372: - bl sub_80C6264 - ldr r1, _080C638C - ldr r0, _080C6390 - str r0, [r1] - ldr r1, _080C6394 - ldr r0, _080C6398 -_080C6380: - str r0, [r1] - movs r0, 0x1 -_080C6384: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C638C: .4byte gUnknown_0300485C -_080C6390: .4byte sub_808AB90 -_080C6394: .4byte gUnknown_03005CE4 -_080C6398: .4byte sub_80C660C - thumb_func_end sub_80C62C4 - - thumb_func_start sub_80C639C -sub_80C639C: @ 80C639C - push {lr} - ldr r1, _080C63B0 - ldr r0, _080C63B4 - ldrb r0, [r0] - str r0, [r1] - ldr r0, _080C63B8 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080C63B0: .4byte gUnknown_0202FF84 -_080C63B4: .4byte gUnknown_03005CE0 -_080C63B8: .4byte gUnknown_081A2CE6 - thumb_func_end sub_80C639C - - thumb_func_start sub_80C63BC -sub_80C63BC: @ 80C63BC - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C63E0 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080C63E4 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080C63E0: .4byte gTasks -_080C63E4: .4byte sub_80C63E8 - thumb_func_end sub_80C63BC - - thumb_func_start sub_80C63E8 -sub_80C63E8: @ 80C63E8 - push {lr} - movs r0, 0xB - bl FieldEffectActiveListRemove - movs r0, 0x37 - bl FieldEffectStart - pop {r0} - bx r0 - thumb_func_end sub_80C63E8 - - thumb_func_start sub_80C63FC -sub_80C63FC: @ 80C63FC - push {r4,lr} - bl sub_80C6280 - ldr r0, _080C643C - ldr r3, _080C6440 - ldr r1, _080C6444 - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 23 - ldr r4, _080C6448 - ldr r3, [r4, 0x14] - adds r1, r3 - lsls r1, 16 - asrs r1, 16 - ldrb r2, [r2] - ldr r3, [r4, 0x18] - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x94 - bl CreateSprite - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C643C: .4byte gSpriteTemplate_83D2614 -_080C6440: .4byte gSprites -_080C6444: .4byte gPlayerAvatar -_080C6448: .4byte gUnknown_0202FF84 - thumb_func_end sub_80C63FC - - thumb_func_start sub_80C644C -sub_80C644C: @ 80C644C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x83 - bl PlaySE - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080C6464 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C6464: .4byte sub_80C6468 - thumb_func_end sub_80C644C - - thumb_func_start sub_80C6468 -sub_80C6468: @ 80C6468 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x2E] - movs r3, 0x2E - ldrsh r0, [r1, r3] - cmp r0, 0x27 - bgt _080C6488 - adds r0, r2, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080C6490 - bl sub_80BB800 - b _080C6490 -_080C6488: - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, _080C6494 - str r0, [r1, 0x1C] -_080C6490: - pop {r0} - bx r0 - .align 2, 0 -_080C6494: .4byte sub_80C6498 - thumb_func_end sub_80C6468 - - thumb_func_start sub_80C6498 -sub_80C6498: @ 80C6498 - push {lr} - movs r1, 0x37 - bl FieldEffectStop - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80C6498 - - thumb_func_start sub_80C64A8 -sub_80C64A8: @ 80C64A8 - push {lr} - ldr r1, _080C64BC - ldr r0, _080C64C0 - ldrb r0, [r0] - str r0, [r1] - ldr r0, _080C64C4 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080C64BC: .4byte gUnknown_0202FF84 -_080C64C0: .4byte gUnknown_03005CE0 -_080C64C4: .4byte gUnknown_081A2D3E - thumb_func_end sub_80C64A8 - - thumb_func_start sub_80C64C8 -sub_80C64C8: @ 80C64C8 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C64EC - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080C64F0 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080C64EC: .4byte gTasks -_080C64F0: .4byte sub_80C64F4 - thumb_func_end sub_80C64C8 - - thumb_func_start sub_80C64F4 -sub_80C64F4: @ 80C64F4 - push {lr} - movs r0, 0x1A - bl FieldEffectActiveListRemove - movs r0, 0x38 - bl FieldEffectStart - pop {r0} - bx r0 - thumb_func_end sub_80C64F4 - - thumb_func_start sub_80C6508 -sub_80C6508: @ 80C6508 - push {r4,lr} - ldr r1, _080C6580 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r2, 0x2 - ldrsh r1, [r1, r2] - bl MapGridGetMetatileBehaviorAt - adds r2, r0, 0 - ldr r1, _080C6584 - adds r0, r1, 0 - ands r2, r0 - cmp r2, 0x96 - bne _080C652A - ldr r1, _080C6588 - movs r0, 0 - str r0, [r1, 0x1C] -_080C652A: - cmp r2, 0x9C - bne _080C6534 - ldr r1, _080C6588 - movs r0, 0x2 - str r0, [r1, 0x1C] -_080C6534: - bl sub_80C6280 - ldr r0, _080C658C - ldr r3, _080C6590 - ldr r1, _080C6594 - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 23 - ldr r4, _080C6588 - ldr r3, [r4, 0x14] - adds r1, r3 - lsls r1, 16 - asrs r1, 16 - ldrb r2, [r2] - ldr r3, [r4, 0x18] - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x94 - bl CreateSprite - ldr r0, [r4, 0x1C] - cmp r0, 0x1 - beq _080C6572 - cmp r0, 0x3 - bne _080C6576 -_080C6572: - bl sub_80BB800 -_080C6576: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C6580: .4byte gUnknown_0203923C -_080C6584: .4byte 0x00000fff -_080C6588: .4byte gUnknown_0202FF84 -_080C658C: .4byte gSpriteTemplate_83D262C -_080C6590: .4byte gSprites -_080C6594: .4byte gPlayerAvatar - thumb_func_end sub_80C6508 - - thumb_func_start sub_80C6598 -sub_80C6598: @ 80C6598 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x9B - bl PlaySE - ldr r0, _080C65BC - ldr r1, [r0, 0x1C] - adds r2, r4, 0 - adds r2, 0x2A - movs r0, 0 - strb r1, [r2] - strh r0, [r4, 0x2E] - ldr r0, _080C65C0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C65BC: .4byte gUnknown_0202FF84 -_080C65C0: .4byte sub_80C65C4 - thumb_func_end sub_80C6598 - - thumb_func_start sub_80C65C4 -sub_80C65C4: @ 80C65C4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x27 - ble _080C65EE - ldr r0, _080C65F4 - ldr r0, [r0, 0x1C] - cmp r0, 0 - beq _080C65E2 - cmp r0, 0x2 - bne _080C65E6 -_080C65E2: - bl sub_80BB800 -_080C65E6: - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080C65F8 - str r0, [r4, 0x1C] -_080C65EE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C65F4: .4byte gUnknown_0202FF84 -_080C65F8: .4byte sub_80C65FC - thumb_func_end sub_80C65C4 - - thumb_func_start sub_80C65FC -sub_80C65FC: @ 80C65FC - push {lr} - movs r1, 0x38 - bl FieldEffectStop - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80C65FC - - thumb_func_start sub_80C660C -sub_80C660C: @ 80C660C - push {lr} - ldr r1, _080C6620 - ldr r0, _080C6624 - ldrb r0, [r0] - str r0, [r1] - ldr r0, _080C6628 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080C6620: .4byte gUnknown_0202FF84 -_080C6624: .4byte gUnknown_03005CE0 -_080C6628: .4byte gUnknown_081A2D96 - thumb_func_end sub_80C660C - - thumb_func_start sub_80C662C -sub_80C662C: @ 80C662C - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C6650 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080C6654 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080C6650: .4byte gTasks -_080C6654: .4byte sub_80C6658 - thumb_func_end sub_80C662C - - thumb_func_start sub_80C6658 -sub_80C6658: @ 80C6658 - push {lr} - movs r0, 0x1B - bl FieldEffectActiveListRemove - movs r0, 0x39 - bl FieldEffectStart - pop {r0} - bx r0 - thumb_func_end sub_80C6658 - - thumb_func_start sub_80C666C -sub_80C666C: @ 80C666C - push {r4,lr} - bl sub_80C6280 - ldr r0, _080C66AC - ldr r3, _080C66B0 - ldr r1, _080C66B4 - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 23 - ldr r4, _080C66B8 - ldr r3, [r4, 0x14] - adds r1, r3 - lsls r1, 16 - asrs r1, 16 - ldrb r2, [r2] - ldr r3, [r4, 0x18] - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x94 - bl CreateSprite - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C66AC: .4byte gSpriteTemplate_83D2644 -_080C66B0: .4byte gSprites -_080C66B4: .4byte gPlayerAvatar -_080C66B8: .4byte gUnknown_0202FF84 - thumb_func_end sub_80C666C - - thumb_func_start sub_80C66BC -sub_80C66BC: @ 80C66BC - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xA9 - bl PlaySE - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080C66D4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C66D4: .4byte sub_80C66D8 - thumb_func_end sub_80C66BC - - thumb_func_start sub_80C66D8 -sub_80C66D8: @ 80C66D8 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x2E] - movs r3, 0x2E - ldrsh r0, [r1, r3] - cmp r0, 0x27 - bgt _080C66F8 - adds r0, r2, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080C6700 - bl sub_80BB800 - b _080C6700 -_080C66F8: - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, _080C6704 - str r0, [r1, 0x1C] -_080C6700: - pop {r0} - bx r0 - .align 2, 0 -_080C6704: .4byte sub_80C6708 - thumb_func_end sub_80C66D8 - - thumb_func_start sub_80C6708 -sub_80C6708: @ 80C6708 - push {lr} - movs r1, 0x39 - bl FieldEffectStop - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80C6708 - - thumb_func_start sub_80C6718 -sub_80C6718: @ 80C6718 - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - ldr r0, _080C6758 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C675C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - mov r0, sp - ldrh r0, [r0] - movs r2, 0 - strh r0, [r1, 0x8] - ldrh r0, [r4] - strh r0, [r1, 0xA] - strh r2, [r1, 0xC] - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C6758: .4byte sub_80C6760 -_080C675C: .4byte gTasks - thumb_func_end sub_80C6718 - - thumb_func_start sub_80C6760 -sub_80C6760: @ 80C6760 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C6788 - adds r4, r0, r1 - ldrh r0, [r4, 0x4] - subs r0, 0x4 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - bhi _080C682E - lsls r0, 2 - ldr r1, _080C678C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C6788: .4byte gUnknown_03004B28 -_080C678C: .4byte _080C6790 - .align 2, 0 -_080C6790: - .4byte _080C67D4 - .4byte _080C682E - .4byte _080C682E - .4byte _080C682E - .4byte _080C67E2 - .4byte _080C682E - .4byte _080C682E - .4byte _080C682E - .4byte _080C67D4 - .4byte _080C682E - .4byte _080C682E - .4byte _080C682E - .4byte _080C67E2 - .4byte _080C682E - .4byte _080C682E - .4byte _080C682E - .4byte _080C6800 -_080C67D4: - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - movs r2, 0x89 - lsls r2, 2 - b _080C67EE -_080C67E2: - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - movs r2, 0x88 - lsls r2, 2 -_080C67EE: - bl MapGridSetMetatileIdAt - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - b _080C682E -_080C6800: - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - movs r2, 0x89 - lsls r2, 2 - bl MapGridSetMetatileIdAt - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - movs r0, 0x3D - bl FieldEffectActiveListRemove - bl EnableBothScriptContexts - adds r0, r5, 0 - bl DestroyTask - b _080C6834 -_080C682E: - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] -_080C6834: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C6760 - - thumb_func_start sub_80C683C -sub_80C683C: @ 80C683C - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - movs r0, 0x3 - bl PlaySE - ldr r0, _080C6874 - bl VarGet - lsls r0, 16 - cmp r0, 0 - bne _080C6878 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r2, 0xE2 - lsls r2, 4 - bl MapGridSetMetatileIdAt - b _080C6888 - .align 2, 0 -_080C6874: .4byte 0x00004054 -_080C6878: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - ldr r2, _080C68A0 - bl MapGridSetMetatileIdAt -_080C6888: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C68A0: .4byte 0x00000e21 - thumb_func_end sub_80C683C - - thumb_func_start sub_80C68A4 -sub_80C68A4: @ 80C68A4 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - ldr r0, _080C68E4 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C68E8 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r4, [r1, 0x8] - strh r5, [r1, 0xA] - strh r6, [r1, 0xC] - strh r0, [r1, 0xE] - movs r0, 0x1 - strh r0, [r1, 0x10] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C68E4: .4byte sub_80C68EC -_080C68E8: .4byte gTasks - thumb_func_end sub_80C68A4 - - thumb_func_start sub_80C68EC -sub_80C68EC: @ 80C68EC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C690C - adds r4, r0, r1 - ldrh r1, [r4, 0x6] - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r0, 0x6 - bne _080C6910 - movs r0, 0 - b _080C6912 - .align 2, 0 -_080C690C: .4byte gUnknown_03004B28 -_080C6910: - adds r0, r1, 0x1 -_080C6912: - strh r0, [r4, 0x6] - movs r3, 0x6 - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080C6964 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x2 - bne _080C692C - movs r2, 0 - ldrsh r0, [r4, r2] - bl sub_80C696C -_080C692C: - movs r3, 0x2 - ldrsh r0, [r4, r3] - movs r2, 0x4 - ldrsh r1, [r4, r2] - ldrh r2, [r4, 0x8] - ldrh r3, [r4] - adds r2, r3 - lsls r2, 16 - lsrs r2, 16 - bl MapGridSetMetatileIdAt - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r2, 0x4 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - ldrh r1, [r4, 0x8] - movs r3, 0x8 - ldrsh r0, [r4, r3] - cmp r0, 0x3 - bne _080C6960 - adds r0, r5, 0 - bl DestroyTask - b _080C6964 -_080C6960: - adds r0, r1, 0x1 - strh r0, [r4, 0x8] -_080C6964: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C68EC - - thumb_func_start sub_80C696C -sub_80C696C: @ 80C696C - push {lr} - lsls r0, 16 - asrs r1, r0, 16 - movs r0, 0xCE - lsls r0, 2 - cmp r1, r0 - beq _080C6998 - cmp r1, r0 - bgt _080C6988 - movs r0, 0x8A - lsls r0, 2 - cmp r1, r0 - beq _080C69B0 - b _080C69B6 -_080C6988: - movs r0, 0xCF - lsls r0, 2 - cmp r1, r0 - beq _080C69A0 - adds r0, 0x4 - cmp r1, r0 - beq _080C69A8 - b _080C69B6 -_080C6998: - movs r0, 0x4A - bl PlaySE - b _080C69B6 -_080C69A0: - movs r0, 0x4B - bl PlaySE - b _080C69B6 -_080C69A8: - movs r0, 0x4C - bl PlaySE - b _080C69B6 -_080C69B0: - movs r0, 0x4E - bl PlaySE -_080C69B6: - pop {r0} - bx r0 - thumb_func_end sub_80C696C - - thumb_func_start sub_80C69BC -sub_80C69BC: @ 80C69BC - movs r0, 0 - bx lr - thumb_func_end sub_80C69BC - - thumb_func_start sub_80C69C0 -sub_80C69C0: @ 80C69C0 - movs r0, 0 - bx lr - thumb_func_end sub_80C69C0 - - thumb_func_start sub_80C69C4 -sub_80C69C4: @ 80C69C4 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x4D - bl PlaySE - lsls r5, 16 - asrs r5, 16 - lsls r4, 16 - asrs r4, 16 - ldr r2, _080C6A0C - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridSetMetatileIdAt - subs r6, r4, 0x1 - ldr r2, _080C6A10 - adds r0, r5, 0 - adds r1, r6, 0 - bl MapGridSetMetatileIdAt - adds r0, r5, 0 - adds r1, r4, 0 - bl CurrentMapDrawMetatileAt - adds r0, r5, 0 - adds r1, r6, 0 - bl CurrentMapDrawMetatileAt - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C6A0C: .4byte 0x00000276 -_080C6A10: .4byte 0x0000026e - thumb_func_end sub_80C69C4 - - thumb_func_start sub_80C6A14 -sub_80C6A14: @ 80C6A14 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C6A44 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0x8] - movs r3, 0x8 - ldrsh r0, [r1, r3] - cmp r0, 0x7 - bne _080C6A48 - movs r2, 0xA - ldrsh r0, [r1, r2] - movs r3, 0xC - ldrsh r1, [r1, r3] - bl sub_80C69C4 - adds r0, r4, 0 - bl DestroyTask - b _080C6A4C - .align 2, 0 -_080C6A44: .4byte gTasks -_080C6A48: - adds r0, r2, 0x1 - strh r0, [r1, 0x8] -_080C6A4C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C6A14 - - thumb_func_start sub_80C6A54 -sub_80C6A54: @ 80C6A54 - push {r4-r7,lr} - lsls r0, 16 - lsrs r5, r0, 16 - adds r7, r5, 0 - lsls r1, 16 - lsrs r4, r1, 16 - adds r6, r4, 0 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C6A7C - lsls r0, r5, 16 - asrs r0, 16 - lsls r1, r4, 16 - asrs r1, 16 - bl sub_80C69C4 - b _080C6A9E -_080C6A7C: - cmp r0, 0x2 - bne _080C6A9E - ldr r0, _080C6AA4 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C6AA8 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - strh r7, [r1, 0xA] - strh r6, [r1, 0xC] -_080C6A9E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C6AA4: .4byte sub_80C6A14 -_080C6AA8: .4byte gTasks - thumb_func_end sub_80C6A54 - - thumb_func_start sub_80C6AAC -sub_80C6AAC: @ 80C6AAC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C6AE4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x7 - beq _080C6AC8 - b _080C6C26 -_080C6AC8: - ldr r2, _080C6AE8 - adds r0, r2, 0 - ldrh r1, [r1, 0x8] - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - bls _080C6ADA - b _080C6C1E -_080C6ADA: - lsls r0, 2 - ldr r1, _080C6AEC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C6AE4: .4byte gTasks -_080C6AE8: .4byte 0xfffffd88 -_080C6AEC: .4byte _080C6AF0 - .align 2, 0 -_080C6AF0: - .4byte _080C6BE0 - .4byte _080C6BE8 - .4byte _080C6BF0 - .4byte _080C6BF8 - .4byte _080C6C00 - .4byte _080C6C08 - .4byte _080C6C10 - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C18 -_080C6BE0: - movs r0, 0x3E - bl PlaySE - b _080C6C1E -_080C6BE8: - movs r0, 0x3F - bl PlaySE - b _080C6C1E -_080C6BF0: - movs r0, 0x40 - bl PlaySE - b _080C6C1E -_080C6BF8: - movs r0, 0x41 - bl PlaySE - b _080C6C1E -_080C6C00: - movs r0, 0x42 - bl PlaySE - b _080C6C1E -_080C6C08: - movs r0, 0x43 - bl PlaySE - b _080C6C1E -_080C6C10: - movs r0, 0x44 - bl PlaySE - b _080C6C1E -_080C6C18: - movs r0, 0x45 - bl PlaySE -_080C6C1E: - adds r0, r4, 0 - bl DestroyTask - b _080C6C2A -_080C6C26: - adds r0, r2, 0x1 - strh r0, [r1, 0xA] -_080C6C2A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C6AAC - - thumb_func_start sub_80C6C30 -sub_80C6C30: @ 80C6C30 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _080C6C5C - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C6C60 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r4, [r1, 0x8] - strh r0, [r1, 0xA] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C6C5C: .4byte sub_80C6AAC -_080C6C60: .4byte gTasks - thumb_func_end sub_80C6C30 - - thumb_func_start sub_80C6C64 -sub_80C6C64: @ 80C6C64 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - bne _080C6C7C - movs r0, 0xC3 - bl PlaySE -_080C6C7C: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1F - ble _080C6C8A - adds r0, r4, 0 - bl DestroySprite -_080C6C8A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C6C64 - - thumb_func_start sub_80C6C90 -sub_80C6C90: @ 80C6C90 - push {r4,lr} - sub sp, 0x4 - ldr r3, _080C6D28 - ldr r2, _080C6D2C - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x10] - mov r0, sp - strh r1, [r0] - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x12] - mov r4, sp - adds r4, 0x2 - strh r0, [r4] - mov r0, sp - adds r1, r4, 0 - movs r2, 0x8 - movs r3, 0x4 - bl sub_8060470 - ldr r0, _080C6D30 - ldr r0, [r0, 0x58] - mov r1, sp - movs r2, 0 - ldrsh r1, [r1, r2] - movs r3, 0 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080C6D1E - ldr r3, _080C6D34 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r4, r2, r3 - movs r0, 0x3E - adds r0, r4 - mov r12, r0 - ldrb r0, [r0] - movs r1, 0x2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - movs r1, 0xF - ands r0, r1 - movs r1, 0x50 - orrs r0, r1 - strb r0, [r4, 0x5] - adds r3, 0x1C - adds r2, r3 - ldr r0, _080C6D38 - str r0, [r2] - movs r0, 0 - strh r0, [r4, 0x2E] -_080C6D1E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C6D28: .4byte gMapObjects -_080C6D2C: .4byte gPlayerAvatar -_080C6D30: .4byte gFieldEffectObjectTemplatePointers -_080C6D34: .4byte gSprites -_080C6D38: .4byte sub_80C6C64 - thumb_func_end sub_80C6C90 - - thumb_func_start sub_80C6D3C -sub_80C6D3C: @ 80C6D3C - push {r4,lr} - sub sp, 0x4 - bl ScriptContext2_Enable - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - ldr r1, _080C6D78 - mov r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - str r0, [r1, 0x14] - movs r3, 0 - ldrsh r0, [r4, r3] - str r0, [r1, 0x18] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _080C6DBC - cmp r0, 0x2 - bgt _080C6D7C - cmp r0, 0x1 - beq _080C6D86 - b _080C6E4C - .align 2, 0 -_080C6D78: .4byte gUnknown_0202FF84 -_080C6D7C: - cmp r0, 0x3 - beq _080C6DEC - cmp r0, 0x4 - beq _080C6E24 - b _080C6E4C -_080C6D86: - ldr r0, _080C6DB0 - ldr r3, _080C6DB4 - ldr r1, _080C6DB8 - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 7 - movs r3, 0x80 - lsls r3, 12 - adds r1, r3 - asrs r1, 16 - ldrb r2, [r2] - adds r2, 0x20 - movs r3, 0 - bl CreateSprite - b _080C6E4C - .align 2, 0 -_080C6DB0: .4byte gSpriteTemplate_83D26A0 -_080C6DB4: .4byte gSprites -_080C6DB8: .4byte gPlayerAvatar -_080C6DBC: - ldr r0, _080C6DE0 - ldr r3, _080C6DE4 - ldr r1, _080C6DE8 - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 7 - movs r3, 0x80 - lsls r3, 12 - adds r1, r3 - asrs r1, 16 - ldrb r2, [r2] - b _080C6E0C - .align 2, 0 -_080C6DE0: .4byte gSpriteTemplate_83D26A0 -_080C6DE4: .4byte gSprites -_080C6DE8: .4byte gPlayerAvatar -_080C6DEC: - ldr r0, _080C6E14 - ldr r3, _080C6E18 - ldr r1, _080C6E1C - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 7 - ldr r3, _080C6E20 - adds r1, r3 - asrs r1, 16 - ldrb r2, [r2] - adds r2, 0x10 -_080C6E0C: - movs r3, 0x94 - bl CreateSprite - b _080C6E4C - .align 2, 0 -_080C6E14: .4byte gSpriteTemplate_83D26A0 -_080C6E18: .4byte gSprites -_080C6E1C: .4byte gPlayerAvatar -_080C6E20: .4byte 0xfff80000 -_080C6E24: - ldr r0, _080C6E58 - ldr r3, _080C6E5C - ldr r1, _080C6E60 - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 7 - movs r3, 0xC0 - lsls r3, 13 - adds r1, r3 - asrs r1, 16 - ldrb r2, [r2] - adds r2, 0x10 - movs r3, 0x94 - bl CreateSprite -_080C6E4C: - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C6E58: .4byte gSpriteTemplate_83D26A0 -_080C6E5C: .4byte gSprites -_080C6E60: .4byte gPlayerAvatar - thumb_func_end sub_80C6D3C - - thumb_func_start door_restore_tilemap -door_restore_tilemap: @ 80C6E64 - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0x83 - bl PlaySE - ldr r4, _080C6E90 - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - subs r1, 0x1 - bl MapGridGetMetatileIdAt - ldr r1, _080C6E94 - cmp r0, r1 - bne _080C6E9C - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - subs r1, 0x1 - ldr r2, _080C6E98 - bl MapGridSetMetatileIdAt - b _080C6EAA - .align 2, 0 -_080C6E90: .4byte gUnknown_0202FF84 -_080C6E94: .4byte 0x00000286 -_080C6E98: .4byte 0x00000e02 -_080C6E9C: - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - subs r1, 0x1 - movs r2, 0xA1 - lsls r2, 2 - bl MapGridSetMetatileIdAt -_080C6EAA: - ldr r4, _080C6ED8 - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - ldr r2, _080C6EDC - bl MapGridSetMetatileIdAt - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - subs r1, 0x1 - bl CurrentMapDrawMetatileAt - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - bl CurrentMapDrawMetatileAt - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080C6EE0 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C6ED8: .4byte gUnknown_0202FF84 -_080C6EDC: .4byte 0x0000020a -_080C6EE0: .4byte sub_80C6EE4 - thumb_func_end door_restore_tilemap - - thumb_func_start sub_80C6EE4 -sub_80C6EE4: @ 80C6EE4 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x11 - bgt _080C6EF8 - adds r0, r1, 0x1 - strh r0, [r5, 0x2E] - b _080C6F14 -_080C6EF8: - ldr r4, _080C6F1C - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - ldr r2, _080C6F20 - bl MapGridSetMetatileIdAt - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - bl CurrentMapDrawMetatileAt - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080C6F24 - str r0, [r5, 0x1C] -_080C6F14: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C6F1C: .4byte gUnknown_0202FF84 -_080C6F20: .4byte 0x00000e8c -_080C6F24: .4byte sub_80C6F28 - thumb_func_end sub_80C6EE4 - - thumb_func_start sub_80C6F28 -sub_80C6F28: @ 80C6F28 - push {lr} - movs r1, 0x34 - bl FieldEffectStop - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80C6F28 - - thumb_func_start sub_80C6F38 -sub_80C6F38: @ 80C6F38 - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileIdAt - adds r1, r0, 0 - ldr r0, _080C6F70 - cmp r1, r0 - beq _080C6FE8 - cmp r1, r0 - bgt _080C6F74 - subs r0, 0x17 - cmp r1, r0 - beq _080C6FB0 - adds r0, 0x16 - cmp r1, r0 - beq _080C6FDC - b _080C6FFA - .align 2, 0 -_080C6F70: .4byte 0x000002f5 -_080C6F74: - ldr r0, _080C6F9C - cmp r1, r0 - beq _080C6FF4 - adds r0, 0x40 - cmp r1, r0 - bne _080C6FFA - ldr r0, _080C6FA0 - movs r1, 0x64 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080C6FA4 - ldr r1, _080C6FA8 - bl StringCopy - ldr r1, _080C6FAC - movs r0, 0 - b _080C6FF8 - .align 2, 0 -_080C6F9C: .4byte 0x000002f6 -_080C6FA0: .4byte gStringVar1 -_080C6FA4: .4byte gStringVar2 -_080C6FA8: .4byte gSecretBaseText_GoldRank -_080C6FAC: .4byte gScriptResult -_080C6FB0: - ldr r0, _080C6FCC - movs r1, 0x32 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _080C6FD0 - ldr r1, _080C6FD4 - bl StringCopy - ldr r1, _080C6FD8 - movs r0, 0 - b _080C6FF8 - .align 2, 0 -_080C6FCC: .4byte gStringVar1 -_080C6FD0: .4byte gStringVar2 -_080C6FD4: .4byte gSecretBaseText_SilverRank -_080C6FD8: .4byte gScriptResult -_080C6FDC: - ldr r1, _080C6FE4 - movs r0, 0x1 - b _080C6FF8 - .align 2, 0 -_080C6FE4: .4byte gScriptResult -_080C6FE8: - ldr r1, _080C6FF0 - movs r0, 0x2 - b _080C6FF8 - .align 2, 0 -_080C6FF0: .4byte gScriptResult -_080C6FF4: - ldr r1, _080C7004 - movs r0, 0x3 -_080C6FF8: - strh r0, [r1] -_080C6FFA: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C7004: .4byte gScriptResult - thumb_func_end sub_80C6F38 - - thumb_func_start task50_overworld_posion_effect -task50_overworld_posion_effect: @ 80C7008 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080C702C - adds r1, r0, r1 - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0x1 - beq _080C7046 - cmp r0, 0x1 - bgt _080C7030 - cmp r0, 0 - beq _080C7036 - b _080C7062 - .align 2, 0 -_080C702C: .4byte gUnknown_03004B28 -_080C7030: - cmp r0, 0x2 - beq _080C705A - b _080C7062 -_080C7036: - ldrh r0, [r1, 0x2] - adds r0, 0x2 - strh r0, [r1, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080C7062 - b _080C7052 -_080C7046: - ldrh r0, [r1, 0x2] - subs r0, 0x2 - strh r0, [r1, 0x2] - lsls r0, 16 - cmp r0, 0 - bne _080C7062 -_080C7052: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080C7062 -_080C705A: - adds r0, r2, 0 - bl DestroyTask - b _080C706C -_080C7062: - ldr r2, _080C7070 - ldrh r1, [r1, 0x2] - lsls r0, r1, 4 - orrs r0, r1 - strh r0, [r2] -_080C706C: - pop {r0} - bx r0 - .align 2, 0 -_080C7070: .4byte REG_MOSAIC - thumb_func_end task50_overworld_posion_effect - - thumb_func_start overworld_posion_effect -overworld_posion_effect: @ 80C7074 - push {lr} - movs r0, 0x4F - bl PlaySE - ldr r0, _080C7088 - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080C7088: .4byte task50_overworld_posion_effect - thumb_func_end overworld_posion_effect - - thumb_func_start c3_80A0DD8_is_running -c3_80A0DD8_is_running: @ 80C708C - push {lr} - ldr r0, _080C709C - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080C709C: .4byte task50_overworld_posion_effect - thumb_func_end c3_80A0DD8_is_running - - thumb_func_start sub_80C70A0 -sub_80C70A0: @ 80C70A0 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C70B4 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080C70B8 - str r0, [r1] - bx lr - .align 2, 0 -_080C70B4: .4byte gTasks -_080C70B8: .4byte sub_80C70BC - thumb_func_end sub_80C70A0 - - thumb_func_start sub_80C70BC -sub_80C70BC: @ 80C70BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C7120 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C7124 - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _080C70E8 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080C711A -_080C70E8: - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl sub_8059D08 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl GetStepInPlaceDelay16AnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldr r1, _080C7128 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C712C - str r1, [r0] -_080C711A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C7120: .4byte gPlayerAvatar -_080C7124: .4byte gMapObjects -_080C7128: .4byte gTasks -_080C712C: .4byte sub_80C7130 - thumb_func_end sub_80C70BC - - thumb_func_start sub_80C7130 -sub_80C7130: @ 80C7130 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C7184 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C7188 - adds r5, r0, r1 - adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080C7194 - ldr r1, _080C718C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0xA] - adds r1, r0, 0x1 - strh r1, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - bgt _080C7190 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl GetStepInPlaceDelay16AnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldObjectSetSpecialAnim - b _080C7194 - .align 2, 0 -_080C7184: .4byte gPlayerAvatar -_080C7188: .4byte gMapObjects -_080C718C: .4byte gTasks -_080C7190: - ldr r0, _080C719C - str r0, [r2] -_080C7194: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C719C: .4byte sub_80C71A0 - thumb_func_end sub_80C7130 - - thumb_func_start sub_80C71A0 -sub_80C71A0: @ 80C71A0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80597D0 - lsls r0, 24 - lsrs r0, 24 - bl SetPlayerAvatarTransitionFlags - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C71A0 - - thumb_func_start sub_80C71C4 -sub_80C71C4: @ 80C71C4 - push {lr} - ldr r0, _080C71D4 - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080C71D4: .4byte sub_80C70A0 - thumb_func_end sub_80C71C4 - - thumb_func_start sub_80C71D8 -sub_80C71D8: @ 80C71D8 - push {r4,r5,lr} - ldr r0, _080C722C - bl LoadSpritePalette - ldr r0, _080C7230 - movs r1, 0 - movs r2, 0 - movs r3, 0x52 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _080C7238 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - ldr r1, _080C7234 - adds r4, r0, r1 - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r0, 0x10 - movs r1, 0xD - bl sub_8060388 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x20] - adds r0, 0x10 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x22] - adds r0, 0x2 - strh r0, [r4, 0x22] - adds r0, r5, 0 - b _080C723A - .align 2, 0 -_080C722C: .4byte gUnknown_083D2878 -_080C7230: .4byte gSpriteTemplate_83D2894 -_080C7234: .4byte gSprites -_080C7238: - movs r0, 0x40 -_080C723A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80C71D8 - - thumb_func_start sub_80C7240 -sub_80C7240: @ 80C7240 - push {r4-r7,lr} - ldr r4, _080C7274 - adds r7, r4, 0 - movs r6, 0 - movs r5, 0x3F -_080C724A: - adds r0, r7, 0 - adds r0, 0x14 - adds r0, r6, r0 - ldr r1, [r0] - ldr r0, _080C7278 - cmp r1, r0 - bne _080C7264 - adds r0, r4, 0 - bl FreeSpritePalette - adds r0, r4, 0 - bl DestroySprite -_080C7264: - adds r4, 0x44 - adds r6, 0x44 - subs r5, 0x1 - cmp r5, 0 - bge _080C724A - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C7274: .4byte gSprites -_080C7278: .4byte gSpriteTemplate_83D2894 - thumb_func_end sub_80C7240 - - thumb_func_start sub_80C727C -sub_80C727C: @ 80C727C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x78 - bl __modsi3 - cmp r0, 0 - bne _080C7290 - movs r0, 0x1 - negs r0, r0 - b _080C72A2 -_080C7290: - adds r0, r4, 0 - movs r1, 0xA - bl __modsi3 - cmp r0, 0x4 - ble _080C72A0 - movs r0, 0 - b _080C72A2 -_080C72A0: - movs r0, 0x1 -_080C72A2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C727C - - thumb_func_start sub_80C72A8 -sub_80C72A8: @ 80C72A8 - push {lr} - adds r0, 0x78 - movs r1, 0xB4 - bl __modsi3 - cmp r0, 0 - beq _080C72BA - movs r0, 0 - b _080C72BE -_080C72BA: - movs r0, 0x1 - negs r0, r0 -_080C72BE: - pop {r1} - bx r1 - thumb_func_end sub_80C72A8 - - thumb_func_start sub_80C72C4 -sub_80C72C4: @ 80C72C4 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080C7364 - adds r5, r1, r0 - movs r1, 0 - ldrsh r0, [r5, r1] - adds r0, 0x1E - bl sub_80C72A8 - ldr r4, _080C7368 - ldrb r1, [r4, 0x5] - ldrb r2, [r4, 0x4] - lsls r0, 18 - movs r3, 0xC0 - lsls r3, 10 - orrs r0, r3 - asrs r0, 16 - str r0, [sp] - movs r0, 0x1 - movs r3, 0x3 - bl sub_805BD90 - movs r3, 0 - ldrsh r0, [r5, r3] - bl sub_80C72A8 - ldrb r1, [r4, 0x5] - ldrb r2, [r4, 0x4] - lsls r0, 17 - ldr r3, _080C736C - adds r0, r3 - asrs r0, 16 - str r0, [sp] - movs r0, 0x2 - movs r3, 0 - bl sub_805BD90 - movs r1, 0 - ldrsh r0, [r5, r1] - bl sub_80C72A8 - ldrb r1, [r4, 0x5] - ldrb r2, [r4, 0x4] - movs r4, 0 - movs r3, 0x3 - negs r3, r3 - lsls r0, 18 - asrs r0, 16 - str r0, [sp] - movs r0, 0x3 - bl sub_805BD90 - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - lsls r0, 16 - ldr r1, _080C7370 - cmp r0, r1 - bne _080C7346 - strh r4, [r5] -_080C7346: - movs r3, 0 - ldrsh r0, [r5, r3] - bl sub_80C727C - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl SetCameraPanning - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C7364: .4byte gUnknown_03004B28 -_080C7368: .4byte gSaveBlock1 -_080C736C: .4byte 0xfffd0000 -_080C7370: .4byte 0x75300000 - thumb_func_end sub_80C72C4 - - thumb_func_start sub_80C7374 -sub_80C7374: @ 80C7374 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r3, r0, 3 - ldr r4, _080C73B4 - adds r7, r3, r4 - ldrh r1, [r7] - adds r1, 0x1 - strh r1, [r7] - ldrh r0, [r7, 0x4] - adds r0, 0x1 - strh r0, [r7, 0x4] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x5 - ble _080C73A4 - movs r0, 0 - strh r0, [r7] - ldrh r0, [r7, 0x2] - adds r0, 0x1 - strh r0, [r7, 0x2] -_080C73A4: - ldrh r0, [r7, 0x2] - cmp r0, 0x13 - bne _080C73B8 - adds r0, r2, 0 - bl DestroyTask - b _080C746A - .align 2, 0 -_080C73B4: .4byte gUnknown_03004B28 -_080C73B8: - ldr r2, _080C7474 - movs r1, 0x2 - ldrsh r0, [r7, r1] - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - bne _080C73D4 - adds r0, r4, 0 - subs r0, 0x8 - adds r0, r3, r0 - ldr r1, _080C7478 - str r1, [r0] -_080C73D4: - movs r4, 0x2 - ldrsh r0, [r7, r4] - adds r0, r2 - movs r5, 0 - ldrsb r5, [r0, r5] - lsls r5, 16 - lsrs r5, 16 - movs r1, 0x4 - ldrsh r0, [r7, r1] - bl sub_80C727C - adds r1, r0, 0 - lsls r5, 16 - asrs r5, 16 - lsls r1, 16 - asrs r1, 16 - adds r0, r5, 0 - bl SetCameraPanning - movs r4, 0x4 - ldrsh r0, [r7, r4] - adds r0, 0x1E - bl sub_80C72A8 - ldr r6, _080C747C - ldrb r1, [r6, 0x5] - ldrb r2, [r6, 0x4] - movs r3, 0x3 - subs r3, r5 - lsls r3, 16 - asrs r3, 16 - lsls r0, 18 - movs r4, 0xC0 - lsls r4, 10 - orrs r0, r4 - asrs r0, 16 - str r0, [sp] - movs r0, 0x1 - bl sub_805BD90 - movs r1, 0x4 - ldrsh r0, [r7, r1] - bl sub_80C72A8 - ldrb r1, [r6, 0x5] - ldrb r2, [r6, 0x4] - negs r3, r5 - lsls r3, 16 - asrs r3, 16 - lsls r0, 17 - ldr r4, _080C7480 - adds r0, r4 - asrs r0, 16 - str r0, [sp] - movs r0, 0x2 - bl sub_805BD90 - movs r1, 0x4 - ldrsh r0, [r7, r1] - bl sub_80C72A8 - ldrb r1, [r6, 0x5] - ldrb r2, [r6, 0x4] - movs r4, 0x3 - negs r4, r4 - adds r3, r4, 0 - subs r3, r5 - lsls r3, 16 - asrs r3, 16 - lsls r0, 18 - asrs r0, 16 - str r0, [sp] - movs r0, 0x3 - bl sub_805BD90 -_080C746A: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C7474: .4byte gUnknown_083D294C -_080C7478: .4byte sub_80C7484 -_080C747C: .4byte gSaveBlock1 -_080C7480: .4byte 0xfffd0000 - thumb_func_end sub_80C7374 - - thumb_func_start sub_80C7484 -sub_80C7484: @ 80C7484 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080C74C4 - adds r2, r0, r1 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080C74B4 - movs r0, 0 - strh r0, [r2] - ldrh r0, [r2, 0x2] - adds r0, 0x1 - strh r0, [r2, 0x2] -_080C74B4: - ldrh r0, [r2, 0x2] - cmp r0, 0x13 - bne _080C74C8 - adds r0, r3, 0 - bl DestroyTask - b _080C7516 - .align 2, 0 -_080C74C4: .4byte gUnknown_03004B28 -_080C74C8: - ldr r1, _080C7524 - movs r3, 0x2 - ldrsh r0, [r2, r3] - adds r0, r1 - movs r1, 0 - mov r8, r1 - movs r6, 0 - ldrsb r6, [r0, r6] - adds r0, r6, 0 - bl SetCameraPanning - ldr r5, _080C7528 - ldrb r1, [r5, 0x5] - ldrb r2, [r5, 0x4] - movs r3, 0x3 - subs r3, r6 - movs r0, 0x3 - str r0, [sp] - movs r0, 0x1 - bl sub_805BD90 - ldrb r1, [r5, 0x5] - ldrb r2, [r5, 0x4] - negs r3, r6 - mov r4, r8 - subs r4, 0x3 - str r4, [sp] - movs r0, 0x2 - bl sub_805BD90 - ldrb r1, [r5, 0x5] - ldrb r2, [r5, 0x4] - subs r4, r6 - mov r3, r8 - str r3, [sp] - movs r0, 0x3 - adds r3, r4, 0 - bl sub_805BD90 -_080C7516: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C7524: .4byte gUnknown_083D294C -_080C7528: .4byte gSaveBlock1 - thumb_func_end sub_80C7484 - - thumb_func_start sub_80C752C -sub_80C752C: @ 80C752C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C7550 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bls _080C7546 - b _080C7698 -_080C7546: - lsls r0, 2 - ldr r1, _080C7554 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C7550: .4byte gUnknown_03004B28 -_080C7554: .4byte _080C7558 - .align 2, 0 -_080C7558: - .4byte _080C7570 - .4byte _080C75A8 - .4byte _080C75C4 - .4byte _080C7610 - .4byte _080C7634 - .4byte _080C7652 -_080C7570: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - beq _080C7580 - b _080C7698 -_080C7580: - movs r0, 0 - bl SetCameraPanningCallback - movs r0, 0 - strh r0, [r4, 0x2] - ldr r0, _080C75A4 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x4] - movs r0, 0x1 - strh r0, [r4] - movs r0, 0x31 - bl PlaySE - b _080C7698 - .align 2, 0 -_080C75A4: .4byte sub_80C72C4 -_080C75A8: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x96 - bne _080C7698 - bl pal_fill_black - movs r0, 0 - strh r0, [r4, 0x2] - movs r0, 0x2 - strh r0, [r4] - b _080C7698 -_080C75C4: - ldrh r0, [r4, 0x2] - adds r3, r0, 0x1 - strh r3, [r4, 0x2] - ldr r0, _080C7608 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080C7698 - lsls r1, r3, 16 - movs r0, 0x96 - lsls r0, 17 - cmp r1, r0 - ble _080C7698 - strh r2, [r4, 0x2] - ldrb r0, [r4, 0x4] - bl DestroyTask - ldr r0, _080C760C - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x6] - movs r0, 0x3 - strh r0, [r4] - movs r0, 0x32 - bl PlaySE - b _080C7698 - .align 2, 0 -_080C7608: .4byte gPaletteFade -_080C760C: .4byte sub_80C7374 -_080C7610: - ldr r2, _080C7630 - movs r0, 0x6 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r5, [r0, 0x4] - cmp r5, 0 - bne _080C7698 - bl InstallCameraPanAheadCallback - strh r5, [r4, 0x2] - movs r0, 0x4 - strh r0, [r4] - b _080C7698 - .align 2, 0 -_080C7630: .4byte gTasks -_080C7634: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - bne _080C7698 - movs r0, 0x33 - bl PlaySE - movs r0, 0 - strh r0, [r4, 0x2] - movs r0, 0x5 - strh r0, [r4] - b _080C7698 -_080C7652: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x78 - bne _080C7698 - movs r2, 0x82 - lsls r2, 2 - movs r0, 0xB - movs r1, 0x8 - bl MapGridSetMetatileIdAt - movs r2, 0x84 - lsls r2, 2 - movs r0, 0xB - movs r1, 0x9 - bl MapGridSetMetatileIdAt - movs r2, 0x86 - lsls r2, 2 - movs r0, 0xB - movs r1, 0xA - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - movs r0, 0x34 - bl PlaySE - adds r0, r5, 0 - bl DestroyTask - bl ScriptContext2_Disable -_080C7698: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C752C - - thumb_func_start sub_80C76A0 -sub_80C76A0: @ 80C76A0 - push {lr} - sub sp, 0x4 - ldr r2, _080C76E8 - movs r0, 0xB - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, _080C76EC - movs r0, 0xB - movs r1, 0x9 - bl MapGridSetMetatileIdAt - ldr r2, _080C76F0 - movs r0, 0xB - movs r1, 0xA - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - bl ScriptContext2_Enable - movs r0, 0 - str r0, [sp] - ldr r1, _080C76F4 - ldr r2, _080C76F8 - mov r0, sp - bl CpuFastSet - ldr r0, _080C76FC - movs r1, 0xA - bl CreateTask - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080C76E8: .4byte 0x0000020d -_080C76EC: .4byte 0x00000215 -_080C76F0: .4byte 0x0000021d -_080C76F4: .4byte gPlttBufferFaded -_080C76F8: .4byte 0x01000100 -_080C76FC: .4byte sub_80C752C - thumb_func_end sub_80C76A0 - - thumb_func_start sub_80C7700 -sub_80C7700: @ 80C7700 - push {r4-r6,lr} - sub sp, 0x4 - ldr r0, _080C774C - bl FuncIsActiveTask - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _080C7744 - ldr r4, _080C7750 - ldrb r1, [r4, 0x5] - ldrb r2, [r4, 0x4] - movs r0, 0x3 - str r0, [sp] - movs r0, 0x1 - movs r3, 0x3 - bl sub_805BD90 - ldrb r1, [r4, 0x5] - ldrb r2, [r4, 0x4] - movs r5, 0x3 - negs r5, r5 - str r5, [sp] - movs r0, 0x2 - movs r3, 0 - bl sub_805BD90 - ldrb r1, [r4, 0x5] - ldrb r2, [r4, 0x4] - str r6, [sp] - movs r0, 0x3 - adds r3, r5, 0 - bl sub_805BD90 -_080C7744: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C774C: .4byte sub_80C752C -_080C7750: .4byte gSaveBlock1 - thumb_func_end sub_80C7700 - - thumb_func_start sub_80C7754 -sub_80C7754: @ 80C7754 - push {r4-r6,lr} - sub sp, 0xC - mov r4, sp - adds r4, 0x5 - mov r5, sp - adds r5, 0x6 - add r6, sp, 0x8 - add r0, sp, 0x4 - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_810D9EC - lsls r0, 24 - cmp r0, 0 - bne _080C7796 - add r0, sp, 0x4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r4, r1] - movs r2, 0x1 - negs r2, r2 - movs r3, 0 - ldrsb r3, [r5, r3] - movs r4, 0 - ldrsb r4, [r6, r4] - str r4, [sp] - bl warp1_set - movs r0, 0x1 - b _080C7798 -_080C7796: - movs r0, 0 -_080C7798: - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C7754 - - thumb_func_start sub_80C77A0 -sub_80C77A0: @ 80C77A0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C77CC - adds r4, r0, r1 - ldr r0, _080C77D0 - bl GetVarPointer - adds r6, r0, 0 - ldr r7, _080C77D4 - movs r0, 0 - ldrsh r2, [r4, r0] - cmp r2, 0x1 - beq _080C77FC - cmp r2, 0x1 - bgt _080C77D8 - cmp r2, 0 - beq _080C77E2 - b _080C7896 - .align 2, 0 -_080C77CC: .4byte gUnknown_03004B28 -_080C77D0: .4byte 0x000040b4 -_080C77D4: .4byte gSaveBlock1 + 0x4 -_080C77D8: - cmp r2, 0x2 - beq _080C783E - cmp r2, 0x3 - beq _080C7878 - b _080C7896 -_080C77E2: - ldr r0, _080C77F8 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080C7896 - strh r2, [r4, 0x2] - movs r0, 0x2 - strh r0, [r4] - b _080C7896 - .align 2, 0 -_080C77F8: .4byte gPaletteFade -_080C77FC: - ldr r0, _080C7830 - ldrh r1, [r0, 0x2E] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080C780A - strh r2, [r4, 0x2] -_080C780A: - ldrb r1, [r7, 0x1] - ldrb r2, [r7] - movs r0, 0xFF - bl sub_80A212C - lsls r0, 24 - cmp r0, 0 - beq _080C7896 - movs r0, 0x1 - bl sub_810D9B0 - cmp r0, 0x1 - bne _080C783A - ldrh r0, [r6] - cmp r0, 0x2 - bne _080C7834 - movs r0, 0x9 - b _080C7836 - .align 2, 0 -_080C7830: .4byte gMain -_080C7834: - movs r0, 0xA -_080C7836: - strh r0, [r6] - b _080C7846 -_080C783A: - movs r0, 0x2 - strh r0, [r4] -_080C783E: - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C784C -_080C7846: - movs r0, 0x3 - strh r0, [r4] - b _080C7896 -_080C784C: - ldrh r0, [r6] - cmp r0, 0x2 - bne _080C7860 - ldrb r1, [r7, 0x1] - ldrb r2, [r7] - ldr r3, _080C785C - b _080C7866 - .align 2, 0 -_080C785C: .4byte gUnknown_083D295F -_080C7860: - ldrb r1, [r7, 0x1] - ldrb r2, [r7] - ldr r3, _080C7874 -_080C7866: - movs r0, 0xFF - bl exec_movement - movs r0, 0x1 - strh r0, [r4] - b _080C7896 - .align 2, 0 -_080C7874: .4byte gUnknown_083D2961 -_080C7878: - ldr r0, _080C789C - bl FlagReset - movs r0, 0x80 - lsls r0, 7 - bl FlagReset - movs r0, 0 - bl copy_saved_warp2_bank_and_enter_x_to_warp1 - bl sp13E_warp_to_last_warp - adds r0, r5, 0 - bl DestroyTask -_080C7896: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C789C: .4byte 0x00004001 - thumb_func_end sub_80C77A0 - - thumb_func_start sub_80C78A0 -sub_80C78A0: @ 80C78A0 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080C78F4 - movs r0, 0 - str r0, [sp] - movs r0, 0x8C - movs r2, 0x70 - movs r3, 0x50 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C78F8 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r4, r1, r2 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, _080C78FC - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bne _080C7900 - movs r0, 0x4 - bl FieldObjectDirectionToImageAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - b _080C7912 - .align 2, 0 -_080C78F4: .4byte SpriteCallbackDummy -_080C78F8: .4byte gSprites -_080C78FC: .4byte 0x000040b4 -_080C7900: - movs r0, 0x3 - bl FieldObjectDirectionToImageAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim -_080C7912: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C78A0 - - thumb_func_start sub_80C791C -sub_80C791C: @ 80C791C - push {lr} - bl sub_80C78A0 - ldr r2, _080C794C - ldr r0, _080C7950 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - bl pal_fill_black - ldr r0, _080C7954 - movs r1, 0x50 - bl CreateTask - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_080C794C: .4byte gMapObjects -_080C7950: .4byte gPlayerAvatar -_080C7954: .4byte sub_80C77A0 - thumb_func_end sub_80C791C - - thumb_func_start sub_80C7958 -sub_80C7958: @ 80C7958 - push {lr} - ldr r0, _080C7990 - bl FlagSet - ldr r0, _080C7994 - bl FlagSet - movs r0, 0x80 - lsls r0, 7 - bl FlagSet - ldr r0, _080C7998 - movs r1, 0x4 - ldrsb r1, [r0, r1] - movs r2, 0x5 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0 - bl saved_warp2_set - bl sub_80C7754 - bl sub_8080F9C - pop {r0} - bx r0 - .align 2, 0 -_080C7990: .4byte 0x0000082d -_080C7994: .4byte 0x00004001 -_080C7998: .4byte gSaveBlock1 - thumb_func_end sub_80C7958 - - thumb_func_start GetCurrentMapRotatingGatePuzzleType -GetCurrentMapRotatingGatePuzzleType: @ 80C799C - push {lr} - ldr r0, _080C79B0 - ldrh r1, [r0, 0x4] - movs r0, 0x86 - lsls r0, 1 - cmp r1, r0 - bne _080C79B4 - movs r0, 0x1 - b _080C79C6 - .align 2, 0 -_080C79B0: .4byte gSaveBlock1 -_080C79B4: - ldr r0, _080C79C0 - cmp r1, r0 - beq _080C79C4 - movs r0, 0 - b _080C79C6 - .align 2, 0 -_080C79C0: .4byte 0x0000081d -_080C79C4: - movs r0, 0x2 -_080C79C6: - pop {r1} - bx r1 - thumb_func_end GetCurrentMapRotatingGatePuzzleType - - thumb_func_start sub_80C79CC -sub_80C79CC: @ 80C79CC - push {r4-r6,lr} - movs r0, 0x80 - lsls r0, 7 - bl GetVarPointer - adds r5, r0, 0 - movs r3, 0 - ldr r4, _080C7A00 - ldrb r0, [r4] - cmp r3, r0 - bge _080C79F8 - ldr r6, _080C7A04 -_080C79E4: - adds r2, r5, r3 - ldr r1, [r6] - lsls r0, r3, 3 - adds r0, r1 - ldrb r0, [r0, 0x5] - strb r0, [r2] - adds r3, 0x1 - ldrb r0, [r4] - cmp r3, r0 - blt _080C79E4 -_080C79F8: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C7A00: .4byte gUnknown_02038804 -_080C7A04: .4byte gUnknown_02038800 - thumb_func_end sub_80C79CC - - thumb_func_start sub_80C7A08 -sub_80C7A08: @ 80C7A08 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x80 - lsls r0, 7 - bl GetVarPointer - adds r0, r4 - ldrb r0, [r0] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C7A08 - - thumb_func_start sub_80C7A24 -sub_80C7A24: @ 80C7A24 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x80 - lsls r0, 7 - bl GetVarPointer - adds r0, r4 - strb r5, [r0] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C7A24 - - thumb_func_start sub_80C7A44 -sub_80C7A44: @ 80C7A44 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_80C7A08 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r4, 0x1 - bne _080C7A68 - cmp r1, 0 - beq _080C7A64 - subs r0, r1, 0x1 - lsls r0, 24 - b _080C7A72 -_080C7A64: - movs r1, 0x3 - b _080C7A74 -_080C7A68: - adds r1, 0x1 - lsls r1, 24 - movs r0, 0xC0 - lsls r0, 18 - ands r0, r1 -_080C7A72: - lsrs r1, r0, 24 -_080C7A74: - adds r0, r5, 0 - bl sub_80C7A24 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C7A44 - - thumb_func_start sub_80C7A80 -sub_80C7A80: @ 80C7A80 - push {lr} - bl GetCurrentMapRotatingGatePuzzleType - cmp r0, 0x1 - beq _080C7A94 - cmp r0, 0x1 - ble _080C7AC8 - cmp r0, 0x2 - beq _080C7AAC - b _080C7AC8 -_080C7A94: - ldr r1, _080C7AA0 - ldr r0, _080C7AA4 - str r0, [r1] - ldr r1, _080C7AA8 - movs r0, 0x7 - b _080C7AB6 - .align 2, 0 -_080C7AA0: .4byte gUnknown_02038800 -_080C7AA4: .4byte gUnknown_083D2964 -_080C7AA8: .4byte gUnknown_02038804 -_080C7AAC: - ldr r1, _080C7ACC - ldr r0, _080C7AD0 - str r0, [r1] - ldr r1, _080C7AD4 - movs r0, 0xE -_080C7AB6: - strb r0, [r1] - movs r1, 0 - ldr r3, _080C7AD8 - movs r2, 0x40 -_080C7ABE: - adds r0, r1, r3 - strb r2, [r0] - adds r1, 0x1 - cmp r1, 0xD - bls _080C7ABE -_080C7AC8: - pop {r0} - bx r0 - .align 2, 0 -_080C7ACC: .4byte gUnknown_02038800 -_080C7AD0: .4byte gUnknown_083D299C -_080C7AD4: .4byte gUnknown_02038804 -_080C7AD8: .4byte gUnknown_020387F0 - thumb_func_end sub_80C7A80 - - thumb_func_start sub_80C7ADC -sub_80C7ADC: @ 80C7ADC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - ldr r2, _080C7B9C - ldrh r1, [r2] - subs r0, r1, 0x2 - lsls r0, 16 - lsrs r3, r0, 16 - adds r1, 0x11 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldrh r1, [r2, 0x2] - subs r0, r1, 0x2 - lsls r0, 16 - lsrs r2, r0, 16 - adds r1, 0xE - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - movs r5, 0 - ldr r0, _080C7BA0 - ldrb r0, [r0] - cmp r5, r0 - bcs _080C7B8C - lsls r0, r2, 16 - asrs r7, r0, 16 - lsls r0, r3, 16 - asrs r6, r0, 16 -_080C7B28: - ldr r0, _080C7BA4 - ldr r0, [r0] - lsls r1, r5, 3 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x7 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r1, 0x2] - adds r0, 0x7 - lsls r0, 16 - asrs r1, r0, 16 - cmp r7, r1 - bgt _080C7B7E - mov r3, r8 - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, r1 - blt _080C7B7E - lsls r0, r2, 16 - asrs r1, r0, 16 - cmp r6, r1 - bgt _080C7B7E - mov r2, r9 - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, r1 - blt _080C7B7E - ldr r0, _080C7BA8 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x40 - bne _080C7B7E - ldr r3, [sp] - lsls r1, r3, 16 - mov r0, r10 - lsls r2, r0, 16 - adds r0, r5, 0 - asrs r1, 16 - asrs r2, 16 - bl sub_80C7BAC - strb r0, [r4] -_080C7B7E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C7BA0 - ldrb r0, [r0] - cmp r5, r0 - bcc _080C7B28 -_080C7B8C: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C7B9C: .4byte gSaveBlock1 -_080C7BA0: .4byte gUnknown_02038804 -_080C7BA4: .4byte gUnknown_02038800 -_080C7BA8: .4byte gUnknown_020387F0 - thumb_func_end sub_80C7ADC - - thumb_func_start sub_80C7BAC -sub_80C7BAC: @ 80C7BAC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - ldr r0, _080C7BDC - lsls r1, r6, 3 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080C7BD4 - cmp r0, 0x4 - bne _080C7BE4 -_080C7BD4: - mov r1, sp - ldr r0, _080C7BE0 - b _080C7BE8 - .align 2, 0 -_080C7BDC: .4byte gUnknown_02038800 -_080C7BE0: .4byte gSpriteTemplate_83D60A4 -_080C7BE4: - mov r1, sp - ldr r0, _080C7C7C -_080C7BE8: - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r2, sp - ldrb r0, [r4, 0x4] - movs r3, 0x98 - lsls r3, 5 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r2] - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x94 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _080C7C84 - ldrh r0, [r4] - adds r0, 0x7 - ldrh r1, [r4, 0x2] - adds r1, 0x7 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r2, _080C7C80 - adds r4, r2 - strh r6, [r4, 0x2E] - movs r2, 0x3E - adds r2, r4 - mov r12, r2 - ldrb r2, [r2] - movs r3, 0x2 - orrs r2, r3 - mov r3, r12 - strb r2, [r3] - lsls r0, 16 - asrs r0, 16 - lsls r2, r7, 16 - asrs r2, 16 - adds r0, r2 - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - mov r3, r8 - lsls r2, r3, 16 - asrs r2, 16 - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - bl sub_8060388 - adds r0, r4, 0 - bl sub_80C7D14 - adds r0, r6, 0 - bl sub_80C7A08 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAffineAnim - adds r0, r5, 0 - b _080C7C86 - .align 2, 0 -_080C7C7C: .4byte gSpriteTemplate_83D608C -_080C7C80: .4byte gSprites -_080C7C84: - movs r0, 0x40 -_080C7C86: - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80C7BAC - - thumb_func_start sub_80C7C94 -sub_80C7C94: @ 80C7C94 - push {r4-r7,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0x30] - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r6, 0x32] - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - adds r0, r6, 0 - bl sub_80C7D14 - cmp r5, 0x1 - bne _080C7CDA - adds r0, r4, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80E6034 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - beq _080C7CCA - adds r0, r4, 0 - adds r0, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 -_080C7CCA: - movs r0, 0x30 - bl PlaySE - adds r0, r6, 0 - adds r1, r4, 0 - bl StartSpriteAffineAnim - b _080C7D08 -_080C7CDA: - cmp r5, 0x2 - bne _080C7D08 - adds r0, r7, 0 - adds r0, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80E6034 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - beq _080C7CFA - adds r0, r4, 0 - adds r0, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 -_080C7CFA: - movs r0, 0x30 - bl PlaySE - adds r0, r6, 0 - adds r1, r4, 0 - bl StartSpriteAffineAnim -_080C7D08: - movs r0, 0 - strh r0, [r6, 0x30] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80C7C94 - - thumb_func_start sub_80C7D14 -sub_80C7D14: @ 80C7D14 - push {r4-r6,lr} - mov r12, r0 - mov r4, r12 - adds r4, 0x3E - ldrb r0, [r4] - movs r5, 0x5 - negs r5, r5 - ands r5, r0 - strb r5, [r4] - mov r0, r12 - ldrh r1, [r0, 0x24] - ldrh r2, [r0, 0x20] - adds r1, r2 - adds r0, 0x28 - movs r2, 0 - ldrsb r2, [r0, r2] - ldr r0, _080C7DA8 - adds r2, r1 - ldrh r0, [r0] - adds r2, r0 - lsls r2, 16 - mov r3, r12 - ldrh r1, [r3, 0x26] - ldrh r0, [r3, 0x22] - adds r1, r0 - mov r0, r12 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldr r3, _080C7DAC - adds r0, r1 - ldrh r3, [r3] - adds r0, r3 - lsls r0, 16 - movs r3, 0x80 - lsls r3, 15 - adds r1, r2, r3 - lsrs r1, 16 - lsrs r6, r0, 16 - adds r0, r3 - lsrs r3, r0, 16 - asrs r2, 16 - cmp r2, 0xFF - bgt _080C7D7A - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _080C7D82 -_080C7D7A: - movs r1, 0x4 - adds r0, r5, 0 - orrs r0, r1 - strb r0, [r4] -_080C7D82: - lsls r0, r6, 16 - asrs r0, 16 - cmp r0, 0xAF - bgt _080C7D96 - lsls r0, r3, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _080C7DA2 -_080C7D96: - mov r0, r12 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080C7DA2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C7DA8: .4byte gSpriteCoordOffsetX -_080C7DAC: .4byte gSpriteCoordOffsetY - thumb_func_end sub_80C7D14 - - thumb_func_start LoadRotatingGatePics -LoadRotatingGatePics: @ 80C7DB0 - push {lr} - ldr r0, _080C7DBC - bl LoadSpriteSheets - pop {r0} - bx r0 - .align 2, 0 -_080C7DBC: .4byte gRotatingGatesGraphicsTable - thumb_func_end LoadRotatingGatePics - - thumb_func_start sub_80C7DC0 -sub_80C7DC0: @ 80C7DC0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r2, _080C7DF4 - ldrh r1, [r2] - subs r0, r1, 0x2 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - adds r1, 0x11 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldrh r1, [r2, 0x2] - subs r0, r1, 0x2 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r1, 0xE - lsls r1, 16 - lsrs r7, r1, 16 - movs r6, 0 - b _080C7E66 - .align 2, 0 -_080C7DF4: .4byte gSaveBlock1 -_080C7DF8: - ldr r0, _080C7E7C - ldr r0, [r0] - lsls r1, r6, 3 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x7 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r1, 0x2] - adds r0, 0x7 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, _080C7E80 - adds r0, r6, r0 - ldrb r0, [r0] - cmp r0, 0x40 - beq _080C7E64 - lsls r0, r2, 16 - mov r2, r10 - lsls r1, r2, 16 - asrs r2, r0, 16 - cmp r0, r1 - blt _080C7E44 - mov r1, r9 - lsls r0, r1, 16 - asrs r0, 16 - cmp r2, r0 - bgt _080C7E44 - lsls r0, r3, 16 - mov r2, r8 - lsls r1, r2, 16 - asrs r2, r0, 16 - cmp r0, r1 - blt _080C7E44 - lsls r0, r7, 16 - asrs r0, 16 - cmp r2, r0 - ble _080C7E64 -_080C7E44: - ldr r0, _080C7E80 - adds r5, r6, r0 - ldrb r0, [r5] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _080C7E84 - adds r4, r0 - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite - movs r0, 0x40 - strb r0, [r5] -_080C7E64: - adds r6, 0x1 -_080C7E66: - ldr r0, _080C7E88 - ldrb r0, [r0] - cmp r6, r0 - blt _080C7DF8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C7E7C: .4byte gUnknown_02038800 -_080C7E80: .4byte gUnknown_020387F0 -_080C7E84: .4byte gSprites -_080C7E88: .4byte gUnknown_02038804 - thumb_func_end sub_80C7DC0 - - thumb_func_start sub_80C7E8C -sub_80C7E8C: @ 80C7E8C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r4, r0, 24 - cmp r1, 0x1 - bne _080C7EAC - ldr r0, _080C7EA8 - mov r10, r0 - b _080C7EB8 - .align 2, 0 -_080C7EA8: .4byte gUnknown_083D611C -_080C7EAC: - cmp r1, 0x2 - beq _080C7EB4 -_080C7EB0: - movs r0, 0 - b _080C7F48 -_080C7EB4: - ldr r1, _080C7F58 - mov r10, r1 -_080C7EB8: - adds r0, r4, 0 - bl sub_80C7A08 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - ldr r0, _080C7F5C - ldr r1, [r0] - lsls r0, r4, 3 - adds r0, r1 - ldrb r2, [r0, 0x4] - ldrh r1, [r0] - adds r1, 0x7 - ldrh r0, [r0, 0x2] - adds r0, 0x7 - movs r3, 0 - lsls r2, 3 - str r2, [sp, 0x4] - lsls r1, 16 - asrs r1, 16 - mov r9, r1 - lsls r0, 16 - asrs r0, 16 - mov r8, r0 -_080C7EE8: - movs r6, 0 - ldr r2, [sp] - adds r7, r2, r3 - lsls r0, r3, 1 - adds r5, r7, 0 - ldr r1, [sp, 0x4] - adds r0, r1 - ldr r2, _080C7F60 - adds r4, r0, r2 -_080C7EFA: - adds r0, r5, 0 - cmp r5, 0 - bge _080C7F02 - adds r0, r7, 0x3 -_080C7F02: - asrs r0, 2 - lsls r0, 2 - subs r0, r5, r0 - lsls r0, 1 - adds r0, r6 - lsls r0, 24 - lsrs r1, r0, 24 - ldrb r0, [r4] - cmp r0, 0 - beq _080C7F38 - lsls r1, 2 - add r1, r10 - movs r0, 0 - ldrsb r0, [r1, r0] - add r0, r9 - ldrb r1, [r1, 0x1] - lsls r1, 24 - asrs r1, 24 - add r1, r8 - str r3, [sp, 0x8] - bl MapGridIsImpassableAt - lsls r0, 24 - lsrs r0, 24 - ldr r3, [sp, 0x8] - cmp r0, 0x1 - beq _080C7EB0 -_080C7F38: - adds r4, 0x1 - adds r6, 0x1 - cmp r6, 0x1 - ble _080C7EFA - adds r3, 0x1 - cmp r3, 0x3 - ble _080C7EE8 - movs r0, 0x1 -_080C7F48: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080C7F58: .4byte gUnknown_083D60FC -_080C7F5C: .4byte gUnknown_02038800 -_080C7F60: .4byte gUnknown_083D613C - thumb_func_end sub_80C7E8C - - thumb_func_start sub_80C7F64 -sub_80C7F64: @ 80C7F64 - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - lsls r4, 24 - lsrs r5, r4, 24 - lsrs r4, 25 - movs r0, 0x1 - ands r5, r0 - adds r0, r6, 0 - bl sub_80C7A08 - subs r4, r0 - adds r1, r4, 0x4 - adds r0, r1, 0 - cmp r1, 0 - bge _080C7F8A - adds r0, r4, 0x7 -_080C7F8A: - asrs r0, 2 - lsls r0, 2 - subs r0, r1, r0 - ldr r1, _080C7FB0 - ldr r2, [r1] - lsls r1, r6, 3 - adds r1, r2 - ldrb r1, [r1, 0x4] - ldr r2, _080C7FB4 - lsls r0, 24 - asrs r0, 23 - adds r0, r5 - lsls r1, 3 - adds r0, r1 - adds r0, r2 - ldrb r0, [r0] - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080C7FB0: .4byte gUnknown_02038800 -_080C7FB4: .4byte gUnknown_083D613C - thumb_func_end sub_80C7F64 - - thumb_func_start sub_80C7FB8 -sub_80C7FB8: @ 80C7FB8 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080C7FE4 - adds r2, r3, r0 - ldrb r0, [r2] - cmp r0, 0x40 - beq _080C7FDC - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _080C7FE8 - adds r4, r0 - strh r1, [r4, 0x30] - adds r0, r3, 0 - bl sub_80C7A08 - strh r0, [r4, 0x32] -_080C7FDC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C7FE4: .4byte gUnknown_020387F0 -_080C7FE8: .4byte gSprites - thumb_func_end sub_80C7FB8 - - thumb_func_start sub_80C7FEC -sub_80C7FEC: @ 80C7FEC - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - cmp r0, 0x2 - bne _080C8008 - ldr r3, _080C8004 - b _080C802A - .align 2, 0 -_080C8004: .4byte gUnknown_083D60BC -_080C8008: - cmp r0, 0x1 - bne _080C8014 - ldr r3, _080C8010 - b _080C802A - .align 2, 0 -_080C8010: .4byte gUnknown_083D60CC -_080C8014: - cmp r0, 0x3 - bne _080C8020 - ldr r3, _080C801C - b _080C802A - .align 2, 0 -_080C801C: .4byte gUnknown_083D60DC -_080C8020: - cmp r3, 0x4 - beq _080C8028 - movs r0, 0xFF - b _080C8038 -_080C8028: - ldr r3, _080C803C -_080C802A: - lsls r0, r2, 16 - lsls r1, 16 - asrs r1, 16 - asrs r0, 14 - adds r0, r1 - adds r0, r3, r0 - ldrb r0, [r0] -_080C8038: - pop {r1} - bx r1 - .align 2, 0 -_080C803C: .4byte gUnknown_083D60EC - thumb_func_end sub_80C7FEC - - thumb_func_start sub_80C8040 -sub_80C8040: @ 80C8040 - push {lr} - bl GetCurrentMapRotatingGatePuzzleType - cmp r0, 0 - beq _080C8052 - bl sub_80C7A80 - bl sub_80C79CC -_080C8052: - pop {r0} - bx r0 - thumb_func_end sub_80C8040 - - thumb_func_start RotatingGatePuzzleCameraUpdate -RotatingGatePuzzleCameraUpdate: @ 80C8058 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - bl GetCurrentMapRotatingGatePuzzleType - cmp r0, 0 - beq _080C807A - lsls r0, r4, 16 - asrs r0, 16 - lsls r1, r5, 16 - asrs r1, 16 - bl sub_80C7ADC - bl sub_80C7DC0 -_080C807A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end RotatingGatePuzzleCameraUpdate - - thumb_func_start sub_80C8080 -sub_80C8080: @ 80C8080 - push {lr} - bl GetCurrentMapRotatingGatePuzzleType - cmp r0, 0 - beq _080C809A - bl LoadRotatingGatePics - bl sub_80C7A80 - movs r0, 0 - movs r1, 0 - bl sub_80C7ADC -_080C809A: - pop {r0} - bx r0 - thumb_func_end sub_80C8080 - - thumb_func_start CheckForRotatingGatePuzzleCollision -CheckForRotatingGatePuzzleCollision: @ 80C80A0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - bl GetCurrentMapRotatingGatePuzzleType - cmp r0, 0 - bne _080C80D4 - b _080C8172 -_080C80C2: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80C7FB8 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80C7A44 - b _080C8172 -_080C80D4: - movs r6, 0 - ldr r0, _080C8160 - ldrb r0, [r0] - cmp r6, r0 - bge _080C8172 - lsls r0, r4, 16 - asrs r7, r0, 16 -_080C80E2: - ldr r0, _080C8164 - ldr r1, [r0] - lsls r0, r6, 3 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x7 - ldrh r0, [r0, 0x2] - adds r0, 0x7 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 16 - asrs r4, r1, 16 - subs r0, r4, 0x2 - cmp r0, r7 - bgt _080C8168 - adds r0, r4, 0x1 - cmp r7, r0 - bgt _080C8168 - lsls r0, r2, 16 - asrs r3, r0, 16 - subs r1, r3, 0x2 - mov r2, r8 - lsls r0, r2, 16 - asrs r2, r0, 16 - cmp r1, r2 - bgt _080C8168 - adds r0, r3, 0x1 - cmp r2, r0 - bgt _080C8168 - subs r1, r7, r4 - adds r1, 0x2 - subs r2, r3 - adds r2, 0x2 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - mov r0, r9 - bl sub_80C7FEC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080C8168 - lsrs r5, r0, 4 - movs r1, 0xF - ands r1, r0 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80C7F64 - cmp r0, 0 - beq _080C8168 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80C7E8C - cmp r0, 0 - bne _080C80C2 - movs r0, 0x1 - b _080C8174 - .align 2, 0 -_080C8160: .4byte gUnknown_02038804 -_080C8164: .4byte gUnknown_02038800 -_080C8168: - adds r6, 0x1 - ldr r0, _080C8180 - ldrb r0, [r0] - cmp r6, r0 - blt _080C80E2 -_080C8172: - movs r0, 0 -_080C8174: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080C8180: .4byte gUnknown_02038804 - thumb_func_end CheckForRotatingGatePuzzleCollision - - thumb_func_start GetSafariZoneFlag -GetSafariZoneFlag: @ 80C8184 - push {lr} - ldr r0, _080C8194 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080C8194: .4byte 0x0000082c - thumb_func_end GetSafariZoneFlag - - thumb_func_start SetSafariZoneFlag -SetSafariZoneFlag: @ 80C8198 - push {lr} - ldr r0, _080C81A4 - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_080C81A4: .4byte 0x0000082c - thumb_func_end SetSafariZoneFlag - - thumb_func_start ResetSafariZoneFlag -ResetSafariZoneFlag: @ 80C81A8 - push {lr} - ldr r0, _080C81B4 - bl FlagReset - pop {r0} - bx r0 - .align 2, 0 -_080C81B4: .4byte 0x0000082c - thumb_func_end ResetSafariZoneFlag - - thumb_func_start sub_80C81B8 -sub_80C81B8: @ 80C81B8 - push {lr} - movs r0, 0x11 - bl sav12_xor_increment - bl SetSafariZoneFlag - bl sub_80C82D8 - ldr r1, _080C81DC - movs r0, 0x1E - strb r0, [r1] - ldr r1, _080C81E0 - movs r2, 0xFA - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080C81DC: .4byte gUnknown_02038808 -_080C81E0: .4byte gUnknown_0203880A - thumb_func_end sub_80C81B8 - - thumb_func_start sub_80C81E4 -sub_80C81E4: @ 80C81E4 - push {lr} - bl ResetSafariZoneFlag - bl sub_80C82D8 - ldr r1, _080C8200 - movs r0, 0 - strb r0, [r1] - ldr r1, _080C8204 - movs r0, 0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080C8200: .4byte gUnknown_02038808 -_080C8204: .4byte gUnknown_0203880A - thumb_func_end sub_80C81E4 - - thumb_func_start safari_step -safari_step: @ 80C8208 - push {lr} - bl GetSafariZoneFlag - cmp r0, 0 - beq _080C8224 - bl sub_80C8508 - ldr r1, _080C8228 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _080C822C -_080C8224: - movs r0, 0 - b _080C8234 - .align 2, 0 -_080C8228: .4byte gUnknown_0203880A -_080C822C: - ldr r0, _080C8238 - bl ScriptContext1_SetupScript - movs r0, 0x1 -_080C8234: - pop {r1} - bx r1 - .align 2, 0 -_080C8238: .4byte gUnknown_081C3448 - thumb_func_end safari_step - - thumb_func_start sub_80C823C -sub_80C823C: @ 80C823C - push {lr} - ldr r0, _080C8248 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080C8248: .4byte gUnknown_081C342D - thumb_func_end sub_80C823C - - thumb_func_start sub_80C824C -sub_80C824C: @ 80C824C - push {lr} - ldr r0, _080C8260 - ldrb r0, [r0] - cmp r0, 0 - beq _080C8268 - ldr r0, _080C8264 - bl SetMainCallback2 - b _080C82B0 - .align 2, 0 -_080C8260: .4byte gUnknown_02038808 -_080C8264: .4byte c2_exit_to_overworld_2_switch -_080C8268: - ldr r0, _080C8288 - ldrb r0, [r0] - cmp r0, 0x8 - bne _080C829C - ldr r0, _080C828C - bl ScriptContext2_RunNewScript - bl warp_in - ldr r1, _080C8290 - ldr r0, _080C8294 - str r0, [r1] - ldr r0, _080C8298 - bl SetMainCallback2 - b _080C82B0 - .align 2, 0 -_080C8288: .4byte gUnknown_02024D26 -_080C828C: .4byte gUnknown_081C340A -_080C8290: .4byte gUnknown_0300485C -_080C8294: .4byte sub_8080E44 -_080C8298: .4byte CB2_LoadMap -_080C829C: - cmp r0, 0x7 - bne _080C82B0 - ldr r0, _080C82B4 - bl ScriptContext1_SetupScript - bl ScriptContext1_Stop - ldr r0, _080C82B8 - bl SetMainCallback2 -_080C82B0: - pop {r0} - bx r0 - .align 2, 0 -_080C82B4: .4byte gUnknown_081C3459 -_080C82B8: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_80C824C - - thumb_func_start sub_80C82BC -sub_80C82BC: @ 80C82BC - push {lr} - lsls r0, 24 - lsrs r0, 20 - ldr r1, _080C82D4 - adds r0, r1 - movs r1, 0 - movs r2, 0x10 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_080C82D4: .4byte gUnknown_0203880C - thumb_func_end sub_80C82BC - - thumb_func_start sub_80C82D8 -sub_80C82D8: @ 80C82D8 - push {lr} - ldr r0, _080C82E8 - movs r1, 0 - movs r2, 0xA0 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_080C82E8: .4byte gUnknown_0203880C - thumb_func_end sub_80C82D8 - - thumb_func_start sub_80C82EC -sub_80C82EC: @ 80C82EC - push {r4-r6,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - movs r3, 0 - adds r5, r4, 0 - ldr r4, _080C8344 -_080C8302: - ldr r1, _080C8348 - lsls r0, r3, 4 - adds r2, r0, r1 - movs r1, 0x5 - ldrsb r1, [r4, r1] - movs r0, 0x4 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _080C8358 - mov r0, sp - movs r6, 0 - ldrsh r1, [r2, r6] - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r1, r0 - bne _080C8358 - movs r0, 0x2 - ldrsh r1, [r2, r0] - movs r6, 0 - ldrsh r0, [r5, r6] - cmp r1, r0 - bne _080C8358 - ldr r0, _080C834C - strh r3, [r0] - ldr r1, _080C8350 - ldrb r0, [r2, 0x8] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, _080C8354 - bl StringCopy - b _080C836A - .align 2, 0 -_080C8344: .4byte gSaveBlock1 -_080C8348: .4byte gUnknown_0203880C -_080C834C: .4byte gScriptResult -_080C8350: .4byte gUnknown_083F7EB8 -_080C8354: .4byte gStringVar1 -_080C8358: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x9 - bls _080C8302 - ldr r1, _080C8374 - ldr r2, _080C8378 - adds r0, r2, 0 - strh r0, [r1] -_080C836A: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C8374: .4byte gScriptResult -_080C8378: .4byte 0x0000ffff - thumb_func_end sub_80C82EC - - thumb_func_start sub_80C837C -sub_80C837C: @ 80C837C - push {r4-r7,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - movs r5, 0 - adds r6, r4, 0 - ldr r0, _080C83E8 - movs r7, 0x5 - ldrsb r7, [r0, r7] - mov r4, sp - ldr r0, _080C83EC - mov r12, r0 -_080C839C: - lsls r0, r5, 4 - mov r1, r12 - adds r2, r0, r1 - movs r0, 0x4 - ldrsb r0, [r2, r0] - cmp r7, r0 - bne _080C83F4 - ldrh r0, [r4] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4] - adds r3, r6, 0 - ldrh r0, [r3] - ldrh r1, [r2, 0x2] - subs r0, r1 - strh r0, [r3] - movs r2, 0 - ldrsh r0, [r4, r2] - cmp r0, 0 - bge _080C83C8 - negs r0, r0 - strh r0, [r4] -_080C83C8: - movs r2, 0 - ldrsh r0, [r3, r2] - cmp r0, 0 - bge _080C83D4 - negs r0, r0 - strh r0, [r3] -_080C83D4: - movs r2, 0 - ldrsh r0, [r4, r2] - movs r2, 0 - ldrsh r1, [r6, r2] - adds r0, r1 - cmp r0, 0x5 - bgt _080C83F4 - ldr r0, _080C83F0 - strh r5, [r0] - b _080C8406 - .align 2, 0 -_080C83E8: .4byte gSaveBlock1 -_080C83EC: .4byte gUnknown_0203880C -_080C83F0: .4byte gScriptResult -_080C83F4: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x9 - bls _080C839C - ldr r1, _080C8410 - ldr r2, _080C8414 - adds r0, r2, 0 - strh r0, [r1] -_080C8406: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C8410: .4byte gScriptResult -_080C8414: .4byte 0x0000ffff - thumb_func_end sub_80C837C - - thumb_func_start unref_sub_80C8418 -unref_sub_80C8418: @ 80C8418 - push {lr} - bl sub_80C82EC - ldr r2, _080C8434 - ldrh r1, [r2] - ldr r0, _080C8438 - cmp r1, r0 - beq _080C8440 - adds r0, r1, 0 - lsls r0, 4 - ldr r1, _080C843C - adds r0, r1 - b _080C8442 - .align 2, 0 -_080C8434: .4byte gScriptResult -_080C8438: .4byte 0x0000ffff -_080C843C: .4byte gUnknown_02038814 -_080C8440: - movs r0, 0 -_080C8442: - pop {r1} - bx r1 - thumb_func_end unref_sub_80C8418 - - thumb_func_start sub_80C8448 -sub_80C8448: @ 80C8448 - push {lr} - bl sub_80C837C - ldr r2, _080C8464 - ldrh r1, [r2] - ldr r0, _080C8468 - cmp r1, r0 - beq _080C8470 - adds r0, r1, 0 - lsls r0, 4 - ldr r1, _080C846C - adds r0, r1 - b _080C8472 - .align 2, 0 -_080C8464: .4byte gScriptResult -_080C8468: .4byte 0x0000ffff -_080C846C: .4byte gUnknown_02038814 -_080C8470: - movs r0, 0 -_080C8472: - pop {r1} - bx r1 - thumb_func_end sub_80C8448 - - thumb_func_start sub_80C8478 -sub_80C8478: @ 80C8478 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - movs r2, 0 - ldr r3, _080C84E8 - mov r6, sp - adds r6, 0x2 - ldr r7, _080C84EC - movs r1, 0x8 - adds r1, r3 - mov r9, r1 - movs r4, 0xFF - lsls r4, 3 - adds r1, r7, r4 - lsrs r0, 21 - adds r0, r1 - mov r8, r0 -_080C84A0: - lsls r5, r2, 4 - adds r4, r5, r3 - movs r0, 0x4 - ldrsb r0, [r4, r0] - cmp r0, 0 - bne _080C84F0 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080C84F0 - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080C84F0 - mov r0, sp - adds r1, r6, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - ldrb r0, [r7, 0x5] - strb r0, [r4, 0x4] - mov r3, r9 - adds r2, r5, r3 - mov r3, r8 - ldr r0, [r3] - ldr r1, [r3, 0x4] - str r0, [r2] - str r1, [r2, 0x4] - movs r0, 0x64 - strb r0, [r4, 0x5] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4] - ldrh r0, [r6] - strh r0, [r4, 0x2] - b _080C84FA - .align 2, 0 -_080C84E8: .4byte gUnknown_0203880C -_080C84EC: .4byte gSaveBlock1 -_080C84F0: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x9 - bls _080C84A0 -_080C84FA: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80C8478 - - thumb_func_start sub_80C8508 -sub_80C8508: @ 80C8508 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _080C8538 -_080C850E: - lsls r0, r4, 4 - adds r1, r0, r5 - ldrb r0, [r1, 0x5] - cmp r0, 0 - beq _080C8528 - subs r0, 0x1 - strb r0, [r1, 0x5] - lsls r0, 24 - cmp r0, 0 - bne _080C8528 - adds r0, r4, 0 - bl sub_80C82BC -_080C8528: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _080C850E - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C8538: .4byte gUnknown_0203880C - thumb_func_end sub_80C8508 - - thumb_func_start unref_sub_80C853C -unref_sub_80C853C: @ 80C853C - push {lr} - bl sub_80C82EC - ldr r3, _080C8564 - ldrh r1, [r3] - ldr r0, _080C8568 - cmp r1, r0 - beq _080C8574 - ldr r0, _080C856C - ldr r2, _080C8570 - lsls r1, 4 - adds r1, r2 - ldrb r1, [r1, 0x5] - movs r2, 0x2 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - b _080C8576 - .align 2, 0 -_080C8564: .4byte gScriptResult -_080C8568: .4byte 0x0000ffff -_080C856C: .4byte gStringVar2 -_080C8570: .4byte gUnknown_0203880C -_080C8574: - movs r0, 0 -_080C8576: - pop {r1} - bx r1 - thumb_func_end unref_sub_80C853C - - thumb_func_start sub_80C857C -sub_80C857C: @ 80C857C - push {r4,r5,lr} - adds r2, r0, 0 - lsls r4, r1, 16 - lsrs r4, 16 - ldr r5, _080C85A8 - adds r0, r5, 0 - adds r1, r2, 0 - adds r2, r4, 0 - bl memcpy - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - adds r1, r5, 0 - adds r2, r4, 0 - bl SendBlock - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C85A8: .4byte 0x0201e000 - thumb_func_end sub_80C857C - - thumb_func_start sub_80C85AC -sub_80C85AC: @ 80C85AC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 17 - lsls r1, r0 - lsrs r4, r1, 24 - bl GetBlockRecievedStatus - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _080C85D0 - adds r0, r4, 0 - bl ResetBlockReceivedFlag - movs r0, 0x1 - b _080C85D2 -_080C85D0: - movs r0, 0 -_080C85D2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C85AC - - thumb_func_start sub_80C85D8 -sub_80C85D8: @ 80C85D8 - push {r4,lr} - movs r4, 0 -_080C85DC: - bl GetBlockRecievedStatus - lsls r0, 24 - lsrs r0, 24 - asrs r0, r4 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080C85F2 - movs r0, 0 - b _080C85FE -_080C85F2: - adds r4, 0x1 - cmp r4, 0x3 - ble _080C85DC - bl ResetBlockReceivedFlags - movs r0, 0x1 -_080C85FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C85D8 - - thumb_func_start sub_80C8604 -sub_80C8604: @ 80C8604 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r5, _080C8638 - ldr r6, _080C863C - ldr r4, _080C8640 - movs r3, 0xFF -_080C8614: - lsls r0, r1, 8 - adds r0, r4 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080C8614 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r5 - movs r1, 0 - strh r1, [r0, 0x8] - str r6, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C8638: .4byte gTasks -_080C863C: .4byte sub_80C8644 -_080C8640: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8604 - - thumb_func_start sub_80C8644 -sub_80C8644: @ 80C8644 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C8658 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080C865C - str r0, [r1] - bx lr - .align 2, 0 -_080C8658: .4byte gTasks -_080C865C: .4byte sub_80C8660 - thumb_func_end sub_80C8644 - - thumb_func_start sub_80C8660 -sub_80C8660: @ 80C8660 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C8694 - ldrb r0, [r0] - cmp r0, 0 - beq _080C868E - bl GetMultiplayerId - ldr r1, _080C8698 - strb r0, [r1] - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _080C868E - ldr r1, _080C869C - movs r0, 0x1 - strb r0, [r1] - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc -_080C868E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8694: .4byte gReceivedRemoteLinkPlayers -_080C8698: .4byte gUnknown_02038695 -_080C869C: .4byte gUnknown_0203869A - thumb_func_end sub_80C8660 - - thumb_func_start sub_80C86A0 -sub_80C86A0: @ 80C86A0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0x2 - ldrb r0, [r4] - cmp r0, 0xFC - bne _080C86B6 - ldrb r0, [r4, 0x1] - cmp r0, 0x15 - bne _080C86B6 - movs r0, 0x2 - b _080C872C -_080C86B6: - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bhi _080C872A - ldrb r0, [r4] - cmp r0, 0xFF - beq _080C872A -_080C86CA: - ldrb r1, [r4] - adds r0, r1, 0 - adds r0, 0x45 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x33 - bls _080C871E - adds r0, r1, 0 - adds r0, 0x5F - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x9 - bls _080C871E - adds r0, r1, 0 - cmp r0, 0 - beq _080C871E - cmp r0, 0xAD - beq _080C871E - cmp r0, 0xB8 - beq _080C871E - cmp r0, 0xAB - beq _080C871E - cmp r0, 0xAC - beq _080C871E - cmp r0, 0xB5 - beq _080C871E - cmp r0, 0xB6 - beq _080C871E - cmp r0, 0xBA - beq _080C871E - cmp r0, 0xAE - beq _080C871E - cmp r0, 0xB0 - beq _080C871E - cmp r0, 0xB1 - beq _080C871E - cmp r0, 0xB2 - beq _080C871E - cmp r0, 0xB3 - beq _080C871E - cmp r0, 0xB1 - bne _080C8728 -_080C871E: - adds r4, 0x1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _080C86CA - b _080C872A -_080C8728: - movs r5, 0x1 -_080C872A: - adds r0, r5, 0 -_080C872C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80C86A0 - - thumb_func_start sub_80C8734 -sub_80C8734: @ 80C8734 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _080C8768 - lsls r5, r0, 2 - adds r0, r5, r0 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C876C - cmp r0, 0x1 - beq _080C87D0 - movs r0, 0 - strh r0, [r4, 0x8] - mov r0, r9 - bl SwitchTaskToFollowupFunc - b _080C8896 - .align 2, 0 -_080C8768: .4byte gTasks -_080C876C: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C87A8 - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _080C8782 - b _080C8896 -_080C8782: - ldr r0, _080C879C - ldr r1, _080C87A0 - ldrb r1, [r1] - lsls r1, 6 - ldr r2, _080C87A4 - adds r1, r2 - movs r2, 0x40 - bl memcpy - movs r0, 0x2 - bl sub_8007E9C - b _080C87BA - .align 2, 0 -_080C879C: .4byte gBlockSendBuffer -_080C87A0: .4byte gUnknown_02038695 -_080C87A4: .4byte gUnknown_02038570 -_080C87A8: - ldr r0, _080C87C4 - ldr r1, _080C87C8 - ldrb r1, [r1] - lsls r1, 6 - ldr r2, _080C87CC - adds r1, r2 - movs r2, 0x40 - bl memcpy -_080C87BA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C8896 - .align 2, 0 -_080C87C4: .4byte gBlockSendBuffer -_080C87C8: .4byte gUnknown_02038695 -_080C87CC: .4byte gUnknown_02038570 -_080C87D0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8896 - movs r7, 0 - str r5, [sp] - ldr r0, _080C8818 - ldr r6, _080C881C - movs r5, 0 - mov r10, r0 - movs r2, 0xFF - mov r8, r2 -_080C87EA: - lsls r1, r7, 8 - ldr r0, _080C8820 - adds r1, r0 - mov r0, r10 - movs r2, 0x40 - bl memcpy - ldr r0, _080C8824 - adds r4, r5, r0 - ldrh r0, [r6, 0x1A] - cmp r0, 0x1 - bne _080C8828 - adds r0, r4, 0 - bl sub_80C86A0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ConvertInternationalString - b _080C883E - .align 2, 0 -_080C8818: .4byte gUnknown_02038570 -_080C881C: .4byte gLinkPlayers -_080C8820: .4byte gBlockRecvBuffer -_080C8824: .4byte gUnknown_02038572 -_080C8828: - ldrb r0, [r4, 0xA] - cmp r0, 0xFC - bne _080C8838 - adds r0, r4, 0 - movs r1, 0x1 - bl ConvertInternationalString - b _080C883E -_080C8838: - strb r0, [r4, 0x5] - mov r1, r8 - strb r1, [r4, 0xA] -_080C883E: - ldr r0, _080C886C - adds r4, r5, r0 - ldrh r0, [r6, 0x1A] - cmp r0, 0x1 - bne _080C8870 - mov r2, r8 - strb r2, [r4, 0x7] - ldrb r0, [r4, 0x4] - strb r0, [r4, 0x6] - ldrb r0, [r4, 0x3] - strb r0, [r4, 0x5] - ldrb r0, [r4, 0x2] - strb r0, [r4, 0x4] - ldrb r0, [r4, 0x1] - strb r0, [r4, 0x3] - ldrb r0, [r4] - strb r0, [r4, 0x2] - movs r0, 0x15 - strb r0, [r4, 0x1] - movs r0, 0xFC - strb r0, [r4] - b _080C8878 - .align 2, 0 -_080C886C: .4byte gUnknown_0203857D -_080C8870: - ldrb r0, [r4, 0x7] - strb r0, [r4, 0x5] - mov r0, r8 - strb r0, [r4, 0x7] -_080C8878: - adds r6, 0x1C - adds r5, 0x40 - movs r1, 0x40 - add r10, r1 - adds r7, 0x1 - cmp r7, 0x3 - ble _080C87EA - ldr r0, _080C88A8 - ldr r1, [sp] - add r1, r9 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C8896: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C88A8: .4byte gTasks - thumb_func_end sub_80C8734 - - thumb_func_start sub_80C88AC -sub_80C88AC: @ 80C88AC - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C88D4 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080C88D8 - cmp r0, 0x1 - beq _080C88FC - movs r0, 0 - strh r0, [r5, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8924 - .align 2, 0 -_080C88D4: .4byte gTasks -_080C88D8: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C891E - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8924 - ldr r0, _080C88F8 - movs r1, 0x4 - bl sub_80C857C - b _080C891E - .align 2, 0 -_080C88F8: .4byte gRngValue -_080C88FC: - movs r0, 0 - bl sub_80C85AC - lsls r0, 24 - cmp r0, 0 - beq _080C8924 - ldr r0, _080C892C - ldr r4, _080C8930 - adds r1, r4, 0 - movs r2, 0x4 - bl memcpy - ldr r0, _080C8934 - adds r1, r4, 0 - movs r2, 0x4 - bl memcpy -_080C891E: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_080C8924: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C892C: .4byte gRngValue -_080C8930: .4byte gBlockRecvBuffer -_080C8934: .4byte gUnknown_03005D28 - thumb_func_end sub_80C88AC - - thumb_func_start sub_80C8938 -sub_80C8938: @ 80C8938 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C8968 - mov r8, r0 - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r7, r0, 3 - mov r1, r8 - adds r4, r7, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C896C - cmp r0, 0x1 - beq _080C8998 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - b _080C89CE - .align 2, 0 -_080C8968: .4byte gTasks -_080C896C: - ldr r1, _080C8994 - ldrh r0, [r4, 0x1A] - strb r0, [r1] - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C898C - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C89CE - movs r0, 0x2 - bl sub_8007E9C -_080C898C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C89CE - .align 2, 0 -_080C8994: .4byte gBlockSendBuffer -_080C8998: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C89CE - movs r3, 0 - mov r12, r8 - adds r1, r6, 0 - ldr r4, _080C89D8 - mov r0, r12 - adds r0, 0xA - adds r2, r7, r0 - movs r6, 0x80 - lsls r6, 1 -_080C89B4: - ldrh r0, [r4] - strh r0, [r2] - adds r4, r6 - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x3 - ble _080C89B4 - adds r1, r5 - lsls r1, 3 - add r1, r12 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C89CE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C89D8: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8938 - - thumb_func_start sub_80C89DC -sub_80C89DC: @ 80C89DC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C8A04 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8A08 - cmp r0, 0x1 - beq _080C8A20 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8A30 - .align 2, 0 -_080C8A04: .4byte gTasks -_080C8A08: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8A30 - ldr r0, _080C8A1C - movs r1, 0x1 - bl sub_80C857C - b _080C8A2A - .align 2, 0 -_080C8A1C: .4byte gUnknown_02038695 -_080C8A20: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8A30 -_080C8A2A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C8A30: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C89DC - - thumb_func_start sub_80C8A38 -sub_80C8A38: @ 80C8A38 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r7, _080C8A60 - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r0, 3 - adds r4, r0, r7 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8A64 - cmp r0, 0x1 - beq _080C8A94 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - b _080C8AC2 - .align 2, 0 -_080C8A60: .4byte gTasks -_080C8A64: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8AC2 - ldr r0, _080C8A8C - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _080C8A90 - adds r0, r1 - movs r1, 0x2 - bl sub_80C857C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C8AC2 - .align 2, 0 -_080C8A8C: .4byte gUnknown_02038695 -_080C8A90: .4byte 0x02019266 -_080C8A94: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8AC2 - ldr r1, _080C8AC8 - ldr r3, _080C8ACC - movs r4, 0x80 - lsls r4, 1 - movs r2, 0x3 -_080C8AA8: - ldrh r0, [r1] - strh r0, [r3] - adds r1, r4 - adds r3, 0x1C - subs r2, 0x1 - cmp r2, 0 - bge _080C8AA8 - adds r1, r6, r5 - lsls r1, 3 - adds r1, r7 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C8AC2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C8AC8: .4byte gBlockRecvBuffer -_080C8ACC: .4byte 0x02019266 - thumb_func_end sub_80C8A38 - - thumb_func_start sub_80C8AD0 -sub_80C8AD0: @ 80C8AD0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C8AF8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x8 - ldrsh r0, [r2, r3] - adds r3, r1, 0 - cmp r0, 0xB - bls _080C8AEC - b _080C8C70 -_080C8AEC: - lsls r0, 2 - ldr r1, _080C8AFC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8AF8: .4byte gTasks -_080C8AFC: .4byte _080C8B00 - .align 2, 0 -_080C8B00: - .4byte _080C8B30 - .4byte _080C8B4C - .4byte _080C8B74 - .4byte _080C8B98 - .4byte _080C8BB0 - .4byte _080C8B74 - .4byte _080C8BD8 - .4byte _080C8BF0 - .4byte _080C8B74 - .4byte _080C8C18 - .4byte _080C8C30 - .4byte _080C8B74 -_080C8B30: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _080C8B3C - b _080C8C7A -_080C8B3C: - ldr r0, _080C8B48 - movs r1, 0x8 - bl sub_80C857C - b _080C8C4C - .align 2, 0 -_080C8B48: .4byte gUnknown_02038678 -_080C8B4C: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - bne _080C8B58 - b _080C8C7A -_080C8B58: - ldr r0, _080C8B68 - ldr r1, _080C8B6C - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8B70 - adds r1, r2 - movs r2, 0x8 - b _080C8C48 - .align 2, 0 -_080C8B68: .4byte gUnknown_02038678 -_080C8B6C: .4byte gUnknown_0203869B -_080C8B70: .4byte gBlockRecvBuffer -_080C8B74: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r3 - ldrh r0, [r2, 0xA] - adds r1, r0, 0x1 - strh r1, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bgt _080C8B8C - b _080C8C7A -_080C8B8C: - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080C8C7A -_080C8B98: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8BAC - movs r1, 0x8 - bl sub_80C857C - b _080C8C4C - .align 2, 0 -_080C8BAC: .4byte gUnknown_02038680 -_080C8BB0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8BCC - ldr r1, _080C8BD0 - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8BD4 - adds r1, r2 - movs r2, 0x8 - b _080C8C48 - .align 2, 0 -_080C8BCC: .4byte gUnknown_02038680 -_080C8BD0: .4byte gUnknown_0203869B -_080C8BD4: .4byte gBlockRecvBuffer -_080C8BD8: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8BEC - movs r1, 0x8 - bl sub_80C857C - b _080C8C4C - .align 2, 0 -_080C8BEC: .4byte gUnknown_02038688 -_080C8BF0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8C0C - ldr r1, _080C8C10 - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8C14 - adds r1, r2 - movs r2, 0x8 - b _080C8C48 - .align 2, 0 -_080C8C0C: .4byte gUnknown_02038688 -_080C8C10: .4byte gUnknown_0203869B -_080C8C14: .4byte gBlockRecvBuffer -_080C8C18: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8C2C - movs r1, 0x4 - bl sub_80C857C - b _080C8C4C - .align 2, 0 -_080C8C2C: .4byte gUnknown_02038690 -_080C8C30: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8C60 - ldr r1, _080C8C64 - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8C68 - adds r1, r2 - movs r2, 0x4 -_080C8C48: - bl memcpy -_080C8C4C: - ldr r1, _080C8C6C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080C8C7A - .align 2, 0 -_080C8C60: .4byte gUnknown_02038690 -_080C8C64: .4byte gUnknown_0203869B -_080C8C68: .4byte gBlockRecvBuffer -_080C8C6C: .4byte gTasks -_080C8C70: - movs r0, 0 - strh r0, [r2, 0x8] - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc -_080C8C7A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C8AD0 - - thumb_func_start sub_80C8C80 -sub_80C8C80: @ 80C8C80 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C8CA8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x8 - ldrsh r0, [r2, r3] - adds r3, r1, 0 - cmp r0, 0xB - bls _080C8C9C - b _080C8E0C -_080C8C9C: - lsls r0, 2 - ldr r1, _080C8CAC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8CA8: .4byte gTasks -_080C8CAC: .4byte _080C8CB0 - .align 2, 0 -_080C8CB0: - .4byte _080C8CE0 - .4byte _080C8CFC - .4byte _080C8D24 - .4byte _080C8D46 - .4byte _080C8D60 - .4byte _080C8D24 - .4byte _080C8D88 - .4byte _080C8DA0 - .4byte _080C8D24 - .4byte _080C8DB4 - .4byte _080C8DCC - .4byte _080C8D24 -_080C8CE0: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _080C8CEC - b _080C8E16 -_080C8CEC: - ldr r0, _080C8CF8 - movs r1, 0x70 - bl sub_80C857C - b _080C8DE8 - .align 2, 0 -_080C8CF8: .4byte 0x02019260 -_080C8CFC: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - bne _080C8D08 - b _080C8E16 -_080C8D08: - ldr r0, _080C8D18 - ldr r1, _080C8D1C - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8D20 - adds r1, r2 - movs r2, 0x70 - b _080C8DE4 - .align 2, 0 -_080C8D18: .4byte 0x02019260 -_080C8D1C: .4byte gUnknown_0203869B -_080C8D20: .4byte gBlockRecvBuffer -_080C8D24: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r3 - ldrh r0, [r2, 0xA] - adds r1, r0, 0x1 - strh r1, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - ble _080C8E16 - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080C8E16 -_080C8D46: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8D5C - movs r1, 0x14 - bl sub_80C857C - b _080C8DE8 - .align 2, 0 -_080C8D5C: .4byte 0x020192d0 -_080C8D60: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8D7C - ldr r1, _080C8D80 - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8D84 - adds r1, r2 - movs r2, 0x14 - b _080C8DE4 - .align 2, 0 -_080C8D7C: .4byte 0x020192d0 -_080C8D80: .4byte gUnknown_0203869B -_080C8D84: .4byte gBlockRecvBuffer -_080C8D88: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8D9C - movs r1, 0x4 - bl sub_80C857C - b _080C8DE8 - .align 2, 0 -_080C8D9C: .4byte 0x02019328 -_080C8DA0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8DB0 - b _080C8DD8 - .align 2, 0 -_080C8DB0: .4byte 0x02019328 -_080C8DB4: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8DC8 - movs r1, 0x4 - bl sub_80C857C - b _080C8DE8 - .align 2, 0 -_080C8DC8: .4byte gUnknown_02038696 -_080C8DCC: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8DFC -_080C8DD8: - ldr r1, _080C8E00 - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8E04 - adds r1, r2 - movs r2, 0x4 -_080C8DE4: - bl memcpy -_080C8DE8: - ldr r1, _080C8E08 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080C8E16 - .align 2, 0 -_080C8DFC: .4byte gUnknown_02038696 -_080C8E00: .4byte gUnknown_0203869B -_080C8E04: .4byte gBlockRecvBuffer -_080C8E08: .4byte gTasks -_080C8E0C: - movs r0, 0 - strh r0, [r2, 0x8] - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc -_080C8E16: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C8C80 - - thumb_func_start sub_80C8E1C -sub_80C8E1C: @ 80C8E1C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C8E4C - mov r8, r0 - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r7, r0, 3 - mov r1, r8 - adds r4, r7, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8E50 - cmp r0, 0x1 - beq _080C8E7C - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - b _080C8EAE - .align 2, 0 -_080C8E4C: .4byte gTasks -_080C8E50: - ldr r1, _080C8E78 - movs r0, 0x64 - strb r0, [r1] - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C8E70 - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8EAE - movs r0, 0x2 - bl sub_8007E9C -_080C8E70: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C8EAE - .align 2, 0 -_080C8E78: .4byte gBlockSendBuffer -_080C8E7C: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8EAE - ldr r1, _080C8EB8 - mov r0, r8 - adds r0, 0x12 - adds r2, r7, r0 - movs r4, 0x80 - lsls r4, 1 - movs r3, 0x3 -_080C8E94: - ldrh r0, [r1] - strh r0, [r2] - adds r1, r4 - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080C8E94 - adds r1, r6, r5 - lsls r1, 3 - add r1, r8 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C8EAE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C8EB8: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8E1C - - thumb_func_start sub_80C8EBC -sub_80C8EBC: @ 80C8EBC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C8EE4 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8EE8 - cmp r0, 0x1 - beq _080C8F00 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8F22 - .align 2, 0 -_080C8EE4: .4byte gTasks -_080C8EE8: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8F22 - ldr r0, _080C8EFC - movs r1, 0x8 - bl sub_80C857C - b _080C8F1C - .align 2, 0 -_080C8EFC: .4byte gUnknown_02038670 -_080C8F00: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8F22 - ldr r0, _080C8F28 - ldr r1, _080C8F2C - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8F30 - adds r1, r2 - movs r2, 0x8 - bl memcpy -_080C8F1C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C8F22: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8F28: .4byte gUnknown_02038670 -_080C8F2C: .4byte gUnknown_0203869B -_080C8F30: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8EBC - - thumb_func_start sub_80C8F34 -sub_80C8F34: @ 80C8F34 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C8F5C - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8F60 - cmp r0, 0x1 - beq _080C8F78 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8F9A - .align 2, 0 -_080C8F5C: .4byte gTasks -_080C8F60: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8F9A - ldr r0, _080C8F74 - movs r1, 0x4 - bl sub_80C857C - b _080C8F94 - .align 2, 0 -_080C8F74: .4byte gUnknown_02038696 -_080C8F78: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8F9A - ldr r0, _080C8FA0 - ldr r1, _080C8FA4 - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8FA8 - adds r1, r2 - movs r2, 0x4 - bl memcpy -_080C8F94: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C8F9A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8FA0: .4byte gUnknown_02038696 -_080C8FA4: .4byte gUnknown_0203869B -_080C8FA8: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8F34 - - thumb_func_start sub_80C8FAC -sub_80C8FAC: @ 80C8FAC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C8FD0 - ldrh r0, [r1] - cmp r0, 0xAF - bne _080C8FD8 - ldr r1, _080C8FD4 - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x26] - subs r0, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - b _080C8FE6 - .align 2, 0 -_080C8FD0: .4byte word_203855E -_080C8FD4: .4byte gTasks -_080C8FD8: - ldrh r0, [r1] - bl itemid_get_type - subs r0, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r2, r4, 2 -_080C8FE6: - ldr r0, _080C9008 - adds r1, r2, r4 - lsls r1, 3 - adds r1, r0 - ldr r2, _080C900C - lsls r0, r3, 2 - adds r0, r2 - ldr r2, [r0] - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - ldr r0, _080C9010 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9008: .4byte gTasks -_080C900C: .4byte gUnknown_083D61E4 -_080C9010: .4byte sub_80A5B00 - thumb_func_end sub_80C8FAC - - thumb_func_start unknown_ItemMenu_Confirm -unknown_ItemMenu_Confirm: @ 80C9014 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - bl sub_80C8FAC - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end unknown_ItemMenu_Confirm - - thumb_func_start sub_80C9038 -sub_80C9038: @ 80C9038 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80C8FAC - movs r0, 0x1 - movs r1, 0 - bl fade_screen - pop {r0} - bx r0 - thumb_func_end sub_80C9038 - - thumb_func_start SetUpItemUseOnFieldCallback -SetUpItemUseOnFieldCallback: @ 80C9050 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C9078 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080C9084 - ldr r1, _080C907C - ldr r0, _080C9080 - str r0, [r1] - adds r0, r2, 0 - bl unknown_ItemMenu_Confirm - b _080C908E - .align 2, 0 -_080C9078: .4byte gTasks -_080C907C: .4byte gUnknown_0300485C -_080C9080: .4byte sub_80A5CC4 -_080C9084: - ldr r0, _080C9094 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 -_080C908E: - pop {r0} - bx r0 - .align 2, 0 -_080C9094: .4byte gUnknown_03005D00 - thumb_func_end SetUpItemUseOnFieldCallback - - thumb_func_start sub_80C9098 -sub_80C9098: @ 80C9098 - push {r4-r6,lr} - adds r4, r1, 0 - adds r1, r2, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _080C90CC - adds r0, r5, 0 - bl StringExpandPlaceholders - cmp r4, 0 - bne _080C90D4 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r2, _080C90D0 - adds r0, r6, 0 - adds r1, r5, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080C90E0 - .align 2, 0 -_080C90CC: .4byte gStringVar4 -_080C90D0: .4byte sub_80A5C48 -_080C90D4: - ldr r2, _080C90E8 - adds r0, r6, 0 - adds r1, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080C90E0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C90E8: .4byte sub_80A5C9C - thumb_func_end sub_80C9098 - - thumb_func_start DisplayDadsAdviceCannotUseItemMessage -DisplayDadsAdviceCannotUseItemMessage: @ 80C90EC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080C9100 - bl sub_80C9098 - pop {r0} - bx r0 - .align 2, 0 -_080C9100: .4byte gOtherText_DadsAdvice - thumb_func_end DisplayDadsAdviceCannotUseItemMessage - - thumb_func_start sub_80C9104 -sub_80C9104: @ 80C9104 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080C9118 - bl sub_80C9098 - pop {r0} - bx r0 - .align 2, 0 -_080C9118: .4byte gOtherText_CantGetOffBike - thumb_func_end sub_80C9104 - - thumb_func_start CheckIfItemIsTMHMOrEvolutionStone -CheckIfItemIsTMHMOrEvolutionStone: @ 80C911C - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl itemid_get_overworld_function - ldr r1, _080C9134 - cmp r0, r1 - bne _080C9138 - movs r0, 0x1 - b _080C914E - .align 2, 0 -_080C9134: .4byte ItemUseOutOfBattle_TMHM -_080C9138: - adds r0, r4, 0 - bl itemid_get_overworld_function - ldr r1, _080C9148 - cmp r0, r1 - beq _080C914C - movs r0, 0 - b _080C914E - .align 2, 0 -_080C9148: .4byte ItemUseOutOfBattle_EvolutionStone -_080C914C: - movs r0, 0x2 -_080C914E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CheckIfItemIsTMHMOrEvolutionStone - - thumb_func_start sub_80C9154 -sub_80C9154: @ 80C9154 - push {r4,lr} - sub sp, 0x24 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C9188 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080C9180 - mov r1, sp - ldr r0, _080C918C - ldrh r0, [r0] - strh r0, [r1, 0x20] - ldr r1, _080C9190 - mov r0, sp - movs r2, 0 - bl sub_80F890C - adds r0, r4, 0 - bl DestroyTask -_080C9180: - add sp, 0x24 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9188: .4byte gPaletteFade -_080C918C: .4byte word_203855E -_080C9190: .4byte sub_80A5D04 - thumb_func_end sub_80C9154 - - thumb_func_start ItemUseOutOfBattle_Mail -ItemUseOutOfBattle_Mail: @ 80C9194 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080C91C4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C91C8 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C91C4: .4byte gTasks -_080C91C8: .4byte sub_80C9154 - thumb_func_end ItemUseOutOfBattle_Mail - - thumb_func_start ItemUseOutOfBattle_Bike -ItemUseOutOfBattle_Bike: @ 80C91CC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C924C - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9238 - adds r0, r4, 0 - bl MetatileBehavior_IsVerticalRail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9238 - adds r0, r4, 0 - bl MetatileBehavior_IsHorizontalRail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9238 - adds r0, r4, 0 - bl MetatileBehavior_IsIsolatedVerticalRail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9238 - adds r0, r4, 0 - bl MetatileBehavior_IsIsolatedHorizontalRail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C9254 -_080C9238: - ldr r0, _080C9250 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r5, 0 - bl sub_80C9104 - b _080C928E - .align 2, 0 -_080C924C: .4byte 0x0000082b -_080C9250: .4byte gTasks -_080C9254: - bl sub_8053C44 - cmp r0, 0x1 - bne _080C927C - bl sub_80E5EF4 - lsls r0, 24 - cmp r0, 0 - bne _080C927C - ldr r1, _080C9274 - ldr r0, _080C9278 - str r0, [r1] - adds r0, r5, 0 - bl SetUpItemUseOnFieldCallback - b _080C928E - .align 2, 0 -_080C9274: .4byte gUnknown_03005D00 -_080C9278: .4byte ItemUseOnFieldCB_Bike -_080C927C: - ldr r0, _080C9298 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r5, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080C928E: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C9298: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_Bike - - thumb_func_start ItemUseOnFieldCB_Bike -ItemUseOnFieldCB_Bike: @ 80C929C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080C92E0 - ldrh r0, [r4] - bl itemid_get_x28 - lsls r0, 24 - cmp r0, 0 - bne _080C92B6 - movs r0, 0x2 - bl GetOnOffBike -_080C92B6: - ldrh r0, [r4] - bl itemid_get_x28 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C92CA - movs r0, 0x4 - bl GetOnOffBike -_080C92CA: - bl sub_8064E2C - bl ScriptContext2_Disable - adds r0, r5, 0 - bl DestroyTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C92E0: .4byte word_203855E - thumb_func_end ItemUseOnFieldCB_Bike - - thumb_func_start CanFish -CanFish: @ 80C92E4 - push {r4-r6,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 16 - lsrs r6, r0, 16 - lsls r0, r6, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl MetatileBehavior_IsWaterfall - lsls r0, 24 - cmp r0, 0 - bne _080C936C - movs r0, 0x10 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _080C936C - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _080C933C - bl IsPlayerFacingSurfableFishableWater - lsls r0, 24 - cmp r0, 0 - beq _080C936C -_080C9338: - movs r0, 0x1 - b _080C936E -_080C933C: - adds r0, r5, 0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, 24 - cmp r0, 0 - beq _080C935C - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridIsImpassableAt - lsls r0, 24 - cmp r0, 0 - beq _080C9338 -_080C935C: - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_8057434 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9338 -_080C936C: - movs r0, 0 -_080C936E: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CanFish - - thumb_func_start ItemUseOutOfBattle_Rod -ItemUseOutOfBattle_Rod: @ 80C9378 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl CanFish - cmp r0, 0x1 - bne _080C939C - ldr r1, _080C9394 - ldr r0, _080C9398 - str r0, [r1] - adds r0, r4, 0 - bl SetUpItemUseOnFieldCallback - b _080C93AE - .align 2, 0 -_080C9394: .4byte gUnknown_03005D00 -_080C9398: .4byte ItemUseOnFieldCB_Rod -_080C939C: - ldr r0, _080C93B4 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080C93AE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C93B4: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_Rod - - thumb_func_start ItemUseOnFieldCB_Rod -ItemUseOnFieldCB_Rod: @ 80C93B8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080C93DC - ldrh r0, [r0] - bl itemid_get_x28 - lsls r0, 24 - lsrs r0, 24 - bl StartFishing - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C93DC: .4byte word_203855E - thumb_func_end ItemUseOnFieldCB_Rod - - thumb_func_start ItemUseOutOfBattle_Itemfinder -ItemUseOutOfBattle_Itemfinder: @ 80C93E0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x27 - bl sav12_xor_increment - ldr r1, _080C9400 - ldr r0, _080C9404 - str r0, [r1] - adds r0, r4, 0 - bl SetUpItemUseOnFieldCallback - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9400: .4byte gUnknown_03005D00 -_080C9404: .4byte ItemUseOnFieldCB_Itemfinder - thumb_func_end ItemUseOutOfBattle_Itemfinder - - thumb_func_start ItemUseOnFieldCB_Itemfinder -ItemUseOnFieldCB_Itemfinder: @ 80C9408 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C9430 - ldr r0, [r0, 0x4] - adds r1, r4, 0 - bl ItemfinderCheckForHiddenItems - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C943C - ldr r0, _080C9434 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C9438 - str r0, [r1] - b _080C9448 - .align 2, 0 -_080C9430: .4byte gMapHeader -_080C9434: .4byte gTasks -_080C9438: .4byte sub_80C9458 -_080C943C: - ldr r1, _080C9450 - ldr r2, _080C9454 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080C9448: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9450: .4byte gOtherText_NoResponse -_080C9454: .4byte sub_80C9520 - thumb_func_end ItemUseOnFieldCB_Itemfinder - - thumb_func_start sub_80C9458 -sub_80C9458: @ 80C9458 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r7, r0, 3 - ldr r0, _080C94AC - mov r8, r0 - adds r4, r7, r0 - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080C950C - movs r2, 0x8 - ldrsh r0, [r4, r2] - cmp r0, 0x4 - bne _080C9500 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl sub_80C9908 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080C94B8 - ldr r1, _080C94B0 - subs r0, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl sub_80C997C - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, _080C94B4 - str r1, [r0] - b _080C9516 - .align 2, 0 -_080C94AC: .4byte gUnknown_03004B28 -_080C94B0: .4byte gUnknown_083D61F0 -_080C94B4: .4byte sub_80C99EC -_080C94B8: - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - adds r3, r6, 0 - ldr r7, _080C94F4 - movs r6, 0x3 -_080C94C8: - adds r0, r1, r7 - adds r1, 0x1 - ldrb r0, [r0] - cmp r2, r0 - bne _080C94D8 - adds r0, r1, 0 - ands r0, r6 - strh r0, [r4, 0xA] -_080C94D8: - lsls r0, r1, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080C94C8 - ldr r1, _080C94F8 - adds r0, r3, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C94FC - str r1, [r0] - movs r0, 0 - strh r0, [r4, 0x6] - strh r0, [r4, 0x4] - b _080C9516 - .align 2, 0 -_080C94F4: .4byte gUnknown_083D61F0 -_080C94F8: .4byte gTasks -_080C94FC: .4byte sub_80C9A38 -_080C9500: - movs r0, 0x48 - bl PlaySE - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C950C: - ldrh r0, [r4, 0x6] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r4, 0x6] -_080C9516: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80C9458 - - thumb_func_start sub_80C9520 -sub_80C9520: @ 80C9520 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - bl sub_8064E2C - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C9520 - - thumb_func_start ItemfinderCheckForHiddenItems -ItemfinderCheckForHiddenItems: @ 80C9548 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r5, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - ldr r1, _080C9618 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - movs r3, 0 - mov r9, r4 - ldrb r0, [r5, 0x3] - cmp r3, r0 - bge _080C95FC - subs r1, 0x5 - mov r8, r1 -_080C9580: - lsls r3, 16 - asrs r1, r3, 16 - ldr r2, [r5, 0x10] - lsls r0, r1, 1 - adds r0, r1 - lsls r4, r0, 2 - adds r1, r4, r2 - ldrb r0, [r1, 0x5] - adds r7, r3, 0 - cmp r0, 0x7 - bne _080C95EC - movs r2, 0x96 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1, 0xA] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _080C95EC - ldr r1, [r5, 0x10] - adds r1, r4, r1 - ldrh r2, [r1] - adds r2, 0x7 - mov r0, sp - ldrh r0, [r0] - subs r2, r0 - ldrh r0, [r1, 0x2] - adds r0, 0x7 - mov r3, r9 - ldrh r1, [r3] - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - lsls r2, 16 - asrs r1, r2, 16 - movs r3, 0xE0 - lsls r3, 11 - adds r2, r3 - lsrs r2, 16 - cmp r2, 0xE - bhi _080C95EC - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, r8 - blt _080C95EC - cmp r2, 0x5 - bgt _080C95EC - adds r0, r6, 0 - bl sub_80C9838 -_080C95EC: - movs r1, 0x80 - lsls r1, 9 - adds r0, r7, r1 - lsrs r3, r0, 16 - asrs r0, 16 - ldrb r2, [r5, 0x3] - cmp r0, r2 - blt _080C9580 -_080C95FC: - adds r0, r6, 0 - bl sub_80C9720 - ldr r0, _080C9618 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0x1 - beq _080C961C - movs r0, 0 - b _080C961E - .align 2, 0 -_080C9618: .4byte gTasks -_080C961C: - movs r0, 0x1 -_080C961E: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end ItemfinderCheckForHiddenItems - - thumb_func_start sub_80C962C -sub_80C962C: @ 80C962C - push {r4-r6,lr} - lsls r1, 16 - lsrs r3, r1, 16 - lsls r2, 16 - lsrs r4, r2, 16 - ldrb r2, [r0, 0x3] - ldr r5, [r0, 0x10] - movs r1, 0 - cmp r1, r2 - bge _080C9680 - lsls r0, r3, 16 - asrs r6, r0, 16 - lsls r0, r4, 16 - asrs r4, r0, 16 - adds r3, r5, 0 -_080C964A: - ldrb r0, [r3, 0x5] - cmp r0, 0x7 - bne _080C9678 - ldrh r0, [r3] - cmp r6, r0 - bne _080C9678 - ldrh r0, [r3, 0x2] - cmp r4, r0 - bne _080C9678 - movs r1, 0x96 - lsls r1, 2 - adds r0, r1, 0 - ldrh r3, [r3, 0xA] - adds r0, r3 - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _080C9680 - movs r0, 0x1 - b _080C9682 -_080C9678: - adds r3, 0xC - adds r1, 0x1 - cmp r1, r2 - blt _080C964A -_080C9680: - movs r0, 0 -_080C9682: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C962C - - thumb_func_start sub_80C9688 -sub_80C9688: @ 80C9688 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - bl mapconnection_get_mapheader - adds r3, r0, 0 - ldrb r0, [r4] - cmp r0, 0x2 - beq _080C96B0 - cmp r0, 0x2 - bgt _080C96A6 - cmp r0, 0x1 - beq _080C96C4 - b _080C9704 -_080C96A6: - cmp r0, 0x3 - beq _080C96DC - cmp r0, 0x4 - beq _080C96E6 - b _080C9704 -_080C96B0: - ldr r0, [r4, 0x4] - adds r0, 0x7 - subs r0, r5, r0 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, [r3] - ldr r0, [r0, 0x4] - subs r0, 0x7 - adds r0, r6 - b _080C96FA -_080C96C4: - ldr r0, [r4, 0x4] - adds r0, 0x7 - subs r0, r5, r0 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _080C96D8 - ldr r0, [r0] - ldr r0, [r0, 0x4] - b _080C96F6 - .align 2, 0 -_080C96D8: .4byte gMapHeader -_080C96DC: - ldr r0, [r3] - ldr r0, [r0] - subs r0, 0x7 - adds r0, r5 - b _080C96F0 -_080C96E6: - ldr r0, _080C9700 - ldr r0, [r0] - ldr r0, [r0] - adds r0, 0x7 - subs r0, r5, r0 -_080C96F0: - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, [r4, 0x4] -_080C96F6: - adds r0, 0x7 - subs r0, r6, r0 -_080C96FA: - lsls r0, 16 - lsrs r2, r0, 16 - b _080C9708 - .align 2, 0 -_080C9700: .4byte gMapHeader -_080C9704: - movs r0, 0 - b _080C971A -_080C9708: - ldr r0, [r3, 0x4] - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - bl sub_80C962C - lsls r0, 24 - lsrs r0, 24 -_080C971A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C9688 - - thumb_func_start sub_80C9720 -sub_80C9720: @ 80C9720 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldr r0, _080C9834 - ldr r1, [r0] - ldr r0, [r1] - adds r0, 0x7 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - ldr r0, [r1, 0x4] - adds r0, 0x7 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - ldrh r0, [r0] - subs r0, 0x7 - lsls r0, 16 - lsrs r3, r0, 16 - asrs r0, 16 - mov r1, sp - movs r2, 0 - ldrsh r1, [r1, r2] - adds r1, 0x7 - cmp r0, r1 - bgt _080C9824 -_080C976E: - mov r5, sp - ldrh r0, [r5, 0x2] - subs r0, 0x5 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r2, r4, 16 - asrs r1, r2, 16 - movs r6, 0x2 - ldrsh r0, [r5, r6] - adds r0, 0x5 - lsls r3, 16 - mov r8, r3 - cmp r1, r0 - bgt _080C980E - movs r0, 0x7 - str r0, [sp, 0x10] - mov r1, r8 - asrs r1, 16 - mov r9, r1 - mov r10, r0 -_080C9796: - ldr r3, [sp, 0x10] - cmp r3, r9 - bgt _080C97B8 - ldr r5, [sp, 0x8] - lsls r0, r5, 16 - asrs r0, 16 - cmp r9, r0 - bge _080C97B8 - asrs r1, r2, 16 - cmp r10, r1 - bgt _080C97B8 - ldr r6, [sp, 0xC] - lsls r0, r6, 16 - asrs r0, 16 - lsls r7, r4, 16 - cmp r1, r0 - blt _080C97F6 -_080C97B8: - mov r0, r8 - asrs r5, r0, 16 - lsls r4, 16 - asrs r6, r4, 16 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8056BA0 - adds r7, r4, 0 - cmp r0, 0 - beq _080C97F6 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_80C9688 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C97F6 - mov r0, sp - ldrh r1, [r0] - subs r1, r5, r1 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r0, 0x2] - subs r2, r6, r2 - lsls r2, 16 - asrs r2, 16 - ldr r0, [sp, 0x4] - bl sub_80C9838 -_080C97F6: - movs r1, 0x80 - lsls r1, 9 - adds r0, r7, r1 - lsrs r4, r0, 16 - lsls r2, r4, 16 - asrs r1, r2, 16 - mov r3, sp - movs r5, 0x2 - ldrsh r0, [r3, r5] - adds r0, 0x5 - cmp r1, r0 - ble _080C9796 -_080C980E: - movs r1, 0x80 - lsls r1, 9 - add r1, r8 - lsrs r3, r1, 16 - asrs r1, 16 - mov r0, sp - movs r6, 0 - ldrsh r0, [r0, r6] - adds r0, 0x7 - cmp r1, r0 - ble _080C976E -_080C9824: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C9834: .4byte gMapHeader - thumb_func_end sub_80C9720 - - thumb_func_start sub_80C9838 -sub_80C9838: @ 80C9838 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 16 - lsrs r2, 16 - mov r12, r2 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080C986C - adds r3, r1, r0 - movs r1, 0x4 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080C9870 - strh r7, [r3] - mov r0, r12 - strh r0, [r3, 0x2] - movs r0, 0x1 - strh r0, [r3, 0x4] - b _080C98FA - .align 2, 0 -_080C986C: .4byte gUnknown_03004B28 -_080C9870: - movs r1, 0 - ldrsh r0, [r3, r1] - cmp r0, 0 - bge _080C9880 - negs r0, r0 - lsls r0, 16 - lsrs r4, r0, 16 - b _080C9882 -_080C9880: - ldrh r4, [r3] -_080C9882: - movs r1, 0x2 - ldrsh r0, [r3, r1] - ldrh r1, [r3, 0x2] - mov r9, r1 - cmp r0, 0 - bge _080C9896 - negs r0, r0 - lsls r0, 16 - lsrs r2, r0, 16 - b _080C9898 -_080C9896: - ldrh r2, [r3, 0x2] -_080C9898: - lsls r1, r7, 16 - asrs r0, r1, 16 - cmp r0, 0 - bge _080C98A8 - negs r0, r0 - lsls r0, 16 - lsrs r6, r0, 16 - b _080C98AA -_080C98A8: - lsrs r6, r1, 16 -_080C98AA: - mov r1, r12 - lsls r0, r1, 16 - asrs r1, r0, 16 - mov r8, r0 - cmp r1, 0 - bge _080C98BC - negs r0, r1 - lsls r0, 16 - b _080C98BE -_080C98BC: - mov r0, r8 -_080C98BE: - lsrs r5, r0, 16 - lsls r0, r4, 16 - asrs r0, 16 - lsls r1, r2, 16 - asrs r2, r1, 16 - adds r4, r0, r2 - lsls r0, r6, 16 - asrs r0, 16 - lsls r1, r5, 16 - asrs r1, 16 - adds r0, r1 - cmp r4, r0 - ble _080C98E0 - strh r7, [r3] - mov r1, r12 - strh r1, [r3, 0x2] - b _080C98FA -_080C98E0: - cmp r4, r0 - bne _080C98FA - cmp r2, r1 - bgt _080C98F4 - cmp r2, r1 - bne _080C98FA - mov r1, r9 - lsls r0, r1, 16 - cmp r0, r8 - bge _080C98FA -_080C98F4: - strh r7, [r3] - mov r0, r12 - strh r0, [r3, 0x2] -_080C98FA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80C9838 - - thumb_func_start sub_80C9908 -sub_80C9908: @ 80C9908 - push {r4,r5,lr} - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - lsrs r2, r0, 16 - cmp r0, 0 - bne _080C991A - cmp r1, 0 - beq _080C9974 -_080C991A: - lsls r0, r2, 16 - asrs r2, r0, 16 - adds r5, r0, 0 - cmp r2, 0 - bge _080C992C - negs r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - b _080C992E -_080C992C: - lsrs r4, r5, 16 -_080C992E: - lsls r0, r1, 16 - asrs r2, r0, 16 - adds r1, r0, 0 - cmp r2, 0 - bge _080C9940 - negs r0, r2 - lsls r0, 16 - lsrs r3, r0, 16 - b _080C9942 -_080C9940: - lsrs r3, r1, 16 -_080C9942: - lsls r0, r4, 16 - asrs r2, r0, 16 - lsls r0, r3, 16 - asrs r0, 16 - cmp r2, r0 - ble _080C995A - cmp r5, 0 - bge _080C9956 - movs r0, 0x4 - b _080C9976 -_080C9956: - movs r0, 0x2 - b _080C9976 -_080C995A: - cmp r2, r0 - bge _080C9964 - cmp r1, 0 - blt _080C996C - b _080C9970 -_080C9964: - cmp r2, r0 - bne _080C9974 - cmp r1, 0 - bge _080C9970 -_080C996C: - movs r0, 0x1 - b _080C9976 -_080C9970: - movs r0, 0x3 - b _080C9976 -_080C9974: - movs r0, 0 -_080C9976: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80C9908 - - thumb_func_start sub_80C997C -sub_80C997C: @ 80C997C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r4, _080C99E8 - adds r0, r4 - bl FieldObjectClearAnimIfSpecialAnimFinished - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl FieldObjectClearAnim - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl npc_sync_anim_pause_bits - adds r0, r5, 0 - bl PlayerTurnInPlace - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C99E8: .4byte gMapObjects - thumb_func_end sub_80C997C - - thumb_func_start sub_80C99EC -sub_80C99EC: @ 80C99EC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C9A2C - adds r0, r1 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C9A24 - ldr r1, _080C9A30 - ldr r2, _080C9A34 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080C9A24: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9A2C: .4byte gMapObjects -_080C9A30: .4byte gOtherText_ItemfinderResponding -_080C9A34: .4byte sub_80C9520 - thumb_func_end sub_80C99EC - - thumb_func_start sub_80C9A38 -sub_80C9A38: @ 80C9A38 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C9AB4 - adds r4, r0, r1 - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C9AB8 - adds r0, r1 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9A78 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080C9AAE -_080C9A78: - ldr r1, _080C9ABC - movs r2, 0xA - ldrsh r0, [r4, r2] - adds r0, r1 - ldrb r0, [r0] - bl sub_80C997C - movs r0, 0x1 - strh r0, [r4, 0x4] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080C9AAE - ldr r1, _080C9AC0 - ldr r2, _080C9AC4 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080C9AAE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C9AB4: .4byte gUnknown_03004B28 -_080C9AB8: .4byte gMapObjects -_080C9ABC: .4byte gUnknown_083D61F0 -_080C9AC0: .4byte gOtherText_ItemfinderFoundItem -_080C9AC4: .4byte sub_80C9520 - thumb_func_end sub_80C9A38 - - thumb_func_start ItemUseOutOfBattle_PokeblockCase -ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C9AF4 - ldr r0, _080C9AF0 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl DisplayDadsAdviceCannotUseItemMessage - b _080C9B2A - .align 2, 0 -_080C9AF0: .4byte gTasks -_080C9AF4: - ldr r0, _080C9B14 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r2, 0xC - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _080C9B18 - movs r0, 0 - bl sub_810BA7C - adds r0, r4, 0 - bl unknown_ItemMenu_Confirm - b _080C9B2A - .align 2, 0 -_080C9B14: .4byte gTasks -_080C9B18: - ldr r1, _080C9B30 - ldr r0, _080C9B34 - str r0, [r1] - movs r0, 0x1 - bl sub_810BA7C - adds r0, r5, 0 - bl sub_80C9038 -_080C9B2A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C9B30: .4byte gUnknown_0300485C -_080C9B34: .4byte sub_8080E28 - thumb_func_end ItemUseOutOfBattle_PokeblockCase - - thumb_func_start ItemUseOutOfBattle_CoinCase -ItemUseOutOfBattle_CoinCase: @ 80C9B38 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080C9B8C - bl GetCoins - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r4, _080C9B90 - ldr r1, _080C9B94 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r1, _080C9B98 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080C9BA0 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r2, _080C9B9C - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080C9BAC - .align 2, 0 -_080C9B8C: .4byte gStringVar1 -_080C9B90: .4byte gStringVar4 -_080C9B94: .4byte gOtherText_Coins3 -_080C9B98: .4byte gTasks -_080C9B9C: .4byte sub_80A5C48 -_080C9BA0: - ldr r2, _080C9BB4 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080C9BAC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C9BB4: .4byte sub_80A5C9C - thumb_func_end ItemUseOutOfBattle_CoinCase - - thumb_func_start sub_80C9BB8 -sub_80C9BB8: @ 80C9BB8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080C9BD4 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C9BD0 - adds r0, r2, 0 - bl sub_80A5C48 -_080C9BD0: - pop {r0} - bx r0 - .align 2, 0 -_080C9BD4: .4byte gMain - thumb_func_end sub_80C9BB8 - - thumb_func_start sub_80C9BD8 -sub_80C9BD8: @ 80C9BD8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080C9BF4 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C9BF0 - adds r0, r2, 0 - bl sub_80A5C9C -_080C9BF0: - pop {r0} - bx r0 - .align 2, 0 -_080C9BF4: .4byte gMain - thumb_func_end sub_80C9BD8 - - thumb_func_start unref_sub_80C9BF8 -unref_sub_80C9BF8: @ 80C9BF8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080C9C3C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080C9C4C - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r4, _080C9C40 - ldr r0, _080C9C44 - ldrh r0, [r0] - bl itemid_get_x28 - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - ldr r1, [r0] - ldr r2, _080C9C48 - adds r0, r5, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080C9C68 - .align 2, 0 -_080C9C3C: .4byte gTasks -_080C9C40: .4byte gUnknown_083D61DC -_080C9C44: .4byte word_203855E -_080C9C48: .4byte sub_80C9BB8 -_080C9C4C: - ldr r4, _080C9C70 - ldr r0, _080C9C74 - ldrh r0, [r0] - bl itemid_get_x28 - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - ldr r1, [r0] - ldr r2, _080C9C78 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080C9C68: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C9C70: .4byte gUnknown_083D61DC -_080C9C74: .4byte word_203855E -_080C9C78: .4byte sub_80C9BD8 - thumb_func_end unref_sub_80C9BF8 - - thumb_func_start sub_80C9C7C -sub_80C9C7C: @ 80C9C7C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - bl IsPlayerFacingPlantedBerryTree - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C9CE4 - ldr r1, _080C9CC8 - ldr r0, _080C9CCC - str r0, [r1] - ldr r1, _080C9CD0 - ldr r0, _080C9CD4 - str r0, [r1] - ldr r1, _080C9CD8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, _080C9CDC - lsrs r1, r2, 16 - movs r3, 0 - strh r1, [r0, 0x18] - strh r2, [r0, 0x1A] - ldr r1, _080C9CE0 - str r1, [r0] - movs r0, 0x1 - negs r0, r0 - str r3, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080C9CF4 - .align 2, 0 -_080C9CC8: .4byte gUnknown_03005D00 -_080C9CCC: .4byte sub_80C9D00 -_080C9CD0: .4byte gUnknown_0300485C -_080C9CD4: .4byte sub_80A5CC4 -_080C9CD8: .4byte gTasks -_080C9CDC: .4byte c2_exit_to_overworld_2_switch -_080C9CE0: .4byte sub_80A5B00 -_080C9CE4: - ldr r0, _080C9CFC - ldrh r0, [r0] - bl itemid_get_overworld_function - adds r1, r0, 0 - adds r0, r4, 0 - bl _call_via_r1 -_080C9CF4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9CFC: .4byte word_203855E - thumb_func_end sub_80C9C7C - - thumb_func_start sub_80C9D00 -sub_80C9D00: @ 80C9D00 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080C9D28 - ldrh r0, [r0] - movs r1, 0x1 - bl sub_80A9538 - bl ScriptContext2_Enable - ldr r0, _080C9D2C - bl ScriptContext1_SetupScript - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9D28: .4byte word_203855E -_080C9D2C: .4byte gUnknown_081A1654 - thumb_func_end sub_80C9D00 - - thumb_func_start ItemUseOutOfBattle_WailmerPail -ItemUseOutOfBattle_WailmerPail: @ 80C9D30 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl WaterBerryTree - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C9D58 - ldr r1, _080C9D50 - ldr r0, _080C9D54 - str r0, [r1] - adds r0, r4, 0 - bl SetUpItemUseOnFieldCallback - b _080C9D6A - .align 2, 0 -_080C9D50: .4byte gUnknown_03005D00 -_080C9D54: .4byte sub_80C9D74 -_080C9D58: - ldr r0, _080C9D70 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080C9D6A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9D70: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_WailmerPail - - thumb_func_start sub_80C9D74 -sub_80C9D74: @ 80C9D74 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ScriptContext2_Enable - ldr r0, _080C9D94 - bl ScriptContext1_SetupScript - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9D94: .4byte gUnknown_081A168F - thumb_func_end sub_80C9D74 - - thumb_func_start sub_80C9D98 -sub_80C9D98: @ 80C9D98 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C9DAC - movs r1, 0 - strb r1, [r2] - bl unknown_ItemMenu_Confirm - pop {r0} - bx r0 - .align 2, 0 -_080C9DAC: .4byte gUnknown_02038561 - thumb_func_end sub_80C9D98 - - thumb_func_start ItemUseOutOfBattle_Medicine -ItemUseOutOfBattle_Medicine: @ 80C9DB0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C9DC4 - ldr r1, _080C9DC8 - str r1, [r2] - bl sub_80C9D98 - pop {r0} - bx r0 - .align 2, 0 -_080C9DC4: .4byte gUnknown_03004AE4 -_080C9DC8: .4byte sub_806FE2C - thumb_func_end ItemUseOutOfBattle_Medicine - - thumb_func_start ItemUseOutOfBattle_SacredAsh -ItemUseOutOfBattle_SacredAsh: @ 80C9DCC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080C9DDC - movs r0, 0 - strb r0, [r1] - movs r5, 0 - b _080C9DE6 - .align 2, 0 -_080C9DDC: .4byte gUnknown_03005CE0 -_080C9DE0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080C9DE6: - cmp r5, 0x5 - bhi _080C9E10 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _080C9E28 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080C9DE0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080C9DE0 - ldr r0, _080C9E2C - strb r5, [r0] -_080C9E10: - ldr r1, _080C9E30 - ldr r0, _080C9E34 - str r0, [r1] - ldr r1, _080C9E38 - movs r0, 0x4 - strb r0, [r1] - adds r0, r6, 0 - bl unknown_ItemMenu_Confirm - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C9E28: .4byte gPlayerParty -_080C9E2C: .4byte gUnknown_03005CE0 -_080C9E30: .4byte gUnknown_03004AE4 -_080C9E34: .4byte sub_8070048 -_080C9E38: .4byte gUnknown_02038561 - thumb_func_end ItemUseOutOfBattle_SacredAsh - - thumb_func_start ItemUseOutOfBattle_PPRecovery -ItemUseOutOfBattle_PPRecovery: @ 80C9E3C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C9E50 - ldr r1, _080C9E54 - str r1, [r2] - bl sub_80C9D98 - pop {r0} - bx r0 - .align 2, 0 -_080C9E50: .4byte gUnknown_03004AE4 -_080C9E54: .4byte dp05_ether - thumb_func_end ItemUseOutOfBattle_PPRecovery - - thumb_func_start ItemUseOutOfBattle_PPUp -ItemUseOutOfBattle_PPUp: @ 80C9E58 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C9E6C - ldr r1, _080C9E70 - str r1, [r2] - bl sub_80C9D98 - pop {r0} - bx r0 - .align 2, 0 -_080C9E6C: .4byte gUnknown_03004AE4 -_080C9E70: .4byte dp05_pp_up - thumb_func_end ItemUseOutOfBattle_PPUp - - thumb_func_start ItemUseOutOfBattle_RareCandy -ItemUseOutOfBattle_RareCandy: @ 80C9E74 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C9E88 - ldr r1, _080C9E8C - str r1, [r2] - bl sub_80C9D98 - pop {r0} - bx r0 - .align 2, 0 -_080C9E88: .4byte gUnknown_03004AE4 -_080C9E8C: .4byte sub_8070680 - thumb_func_end ItemUseOutOfBattle_RareCandy - - thumb_func_start ItemUseOutOfBattle_TMHM -ItemUseOutOfBattle_TMHM: @ 80C9E90 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r0, _080C9EBC - ldrh r1, [r0] - movs r0, 0xA9 - lsls r0, 1 - cmp r1, r0 - bls _080C9EC8 - ldr r1, _080C9EC0 - ldr r2, _080C9EC4 - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080C9ED4 - .align 2, 0 -_080C9EBC: .4byte word_203855E -_080C9EC0: .4byte gOtherText_BootedHM -_080C9EC4: .4byte sub_80C9EE4 -_080C9EC8: - ldr r1, _080C9EDC - ldr r2, _080C9EE0 - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField -_080C9ED4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9EDC: .4byte gOtherText_BootedTM -_080C9EE0: .4byte sub_80C9EE4 - thumb_func_end ItemUseOutOfBattle_TMHM - - thumb_func_start sub_80C9EE4 -sub_80C9EE4: @ 80C9EE4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - bl PlaySE - ldr r1, _080C9F08 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C9F0C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9F08: .4byte gTasks -_080C9F0C: .4byte sub_80C9F10 - thumb_func_end sub_80C9EE4 - - thumb_func_start sub_80C9F10 -sub_80C9F10: @ 80C9F10 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C9F64 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080C9F2A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080C9F5C -_080C9F2A: - ldr r4, _080C9F68 - ldr r0, _080C9F6C - ldrh r0, [r0] - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xD - muls r1, r0 - ldr r0, _080C9F70 - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - ldr r4, _080C9F74 - ldr r1, _080C9F78 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080C9F7C - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField -_080C9F5C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C9F64: .4byte gMain -_080C9F68: .4byte gStringVar1 -_080C9F6C: .4byte word_203855E -_080C9F70: .4byte gMoveNames -_080C9F74: .4byte gStringVar4 -_080C9F78: .4byte gOtherText_ContainsMove -_080C9F7C: .4byte sub_80C9F80 - thumb_func_end sub_80C9F10 - - thumb_func_start sub_80C9F80 -sub_80C9F80: @ 80C9F80 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x7 - movs r1, 0x7 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r0, _080C9FB8 - movs r1, 0x4 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - movs r1, 0x8 - movs r2, 0x8 - movs r3, 0x5 - bl sub_80A3FA0 - ldr r1, _080C9FBC - adds r0, r4, 0 - bl sub_80F914C - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9FB8: .4byte gBG1TilemapBuffer -_080C9FBC: .4byte gUnknown_083D61F4 - thumb_func_end sub_80C9F80 - - thumb_func_start sub_80C9FC0 -sub_80C9FC0: @ 80C9FC0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C9FD4 - ldr r1, _080C9FD8 - str r1, [r2] - bl sub_80C9D98 - pop {r0} - bx r0 - .align 2, 0 -_080C9FD4: .4byte gUnknown_03004AE4 -_080C9FD8: .4byte sub_806F06C - thumb_func_end sub_80C9FC0 - - thumb_func_start sub_80C9FDC -sub_80C9FDC: @ 80C9FDC - push {r4,lr} - ldr r4, _080CA004 - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80A9538 - bl sub_80A3E0C - ldrh r0, [r4] - ldr r1, _080CA008 - bl itemid_copy_name - ldr r0, _080CA00C - ldr r1, _080CA010 - bl StringExpandPlaceholders - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA004: .4byte word_203855E -_080CA008: .4byte gStringVar2 -_080CA00C: .4byte gStringVar4 -_080CA010: .4byte gOtherText_UsedItem - thumb_func_end sub_80C9FDC - - thumb_func_start ItemUseOutOfBattle_Repel -ItemUseOutOfBattle_Repel: @ 80CA014 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, _080CA050 - adds r0, r5, 0 - bl VarGet - lsls r0, 16 - cmp r0, 0 - bne _080CA060 - ldr r0, _080CA054 - ldrh r0, [r0] - bl itemid_get_quality - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl VarSet - bl sub_80C9FDC - ldr r1, _080CA058 - ldr r2, _080CA05C - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080CA06C - .align 2, 0 -_080CA050: .4byte 0x00004021 -_080CA054: .4byte word_203855E -_080CA058: .4byte gStringVar4 -_080CA05C: .4byte sub_80A5C48 -_080CA060: - ldr r1, _080CA074 - ldr r2, _080CA078 - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField -_080CA06C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA074: .4byte gOtherText_RepelLingers -_080CA078: .4byte sub_80A5C48 - thumb_func_end ItemUseOutOfBattle_Repel - - thumb_func_start sub_80CA07C -sub_80CA07C: @ 80CA07C - push {lr} - bl sub_80A3E0C - ldr r0, _080CA090 - ldrh r0, [r0] - ldr r1, _080CA094 - bl itemid_copy_name - pop {r0} - bx r0 - .align 2, 0 -_080CA090: .4byte word_203855E -_080CA094: .4byte gStringVar2 - thumb_func_end sub_80CA07C - - thumb_func_start sub_80CA098 -sub_80CA098: @ 80CA098 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080CA0D0 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080CA0C8 - movs r0, 0x75 - bl PlaySE - ldr r1, _080CA0D4 - ldr r2, _080CA0D8 - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField -_080CA0C8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA0D0: .4byte gTasks -_080CA0D4: .4byte gStringVar4 -_080CA0D8: .4byte sub_80A5C48 - thumb_func_end sub_80CA098 - - thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute -ItemUseOutOfBattle_BlackWhiteFlute: @ 80CA0DC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r0, _080CA10C - ldrh r0, [r0] - cmp r0, 0x2B - bne _080CA124 - ldr r0, _080CA110 - bl FlagSet - ldr r0, _080CA114 - bl FlagReset - bl sub_80CA07C - ldr r0, _080CA118 - ldr r1, _080CA11C - bl StringExpandPlaceholders - ldr r1, _080CA120 - lsls r0, r4, 2 - adds r0, r4 - b _080CA146 - .align 2, 0 -_080CA10C: .4byte word_203855E -_080CA110: .4byte 0x0000084d -_080CA114: .4byte 0x0000084e -_080CA118: .4byte gStringVar4 -_080CA11C: .4byte gOtherText_UsedFlute -_080CA120: .4byte gTasks -_080CA124: - cmp r0, 0x2A - bne _080CA152 - ldr r0, _080CA158 - bl FlagSet - ldr r0, _080CA15C - bl FlagReset - bl sub_80CA07C - ldr r0, _080CA160 - ldr r1, _080CA164 - bl StringExpandPlaceholders - ldr r1, _080CA168 - lsls r0, r5, 2 - adds r0, r5 -_080CA146: - lsls r0, 3 - adds r0, r1 - ldr r1, _080CA16C - str r1, [r0] - movs r1, 0 - strh r1, [r0, 0x26] -_080CA152: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA158: .4byte 0x0000084e -_080CA15C: .4byte 0x0000084d -_080CA160: .4byte gStringVar4 -_080CA164: .4byte gOtherText_UsedRepel -_080CA168: .4byte gTasks -_080CA16C: .4byte sub_80CA098 - thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute - - thumb_func_start task08_080A1C44 -task08_080A1C44: @ 80CA170 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl player_avatar_init_params_reset - bl sub_80878A8 - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end task08_080A1C44 - - thumb_func_start sub_80CA18C -sub_80CA18C: @ 80CA18C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8053014 - bl sub_80C9FDC - ldr r1, _080CA1BC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, _080CA1C0 - ldr r2, _080CA1C4 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA1BC: .4byte gTasks -_080CA1C0: .4byte gStringVar4 -_080CA1C4: .4byte task08_080A1C44 - thumb_func_end sub_80CA18C - - thumb_func_start sub_80CA1C8 -sub_80CA1C8: @ 80CA1C8 - push {lr} - ldr r0, _080CA1D8 - ldrb r0, [r0, 0x17] - cmp r0, 0x4 - beq _080CA1DC - movs r0, 0 - b _080CA1DE - .align 2, 0 -_080CA1D8: .4byte gMapHeader -_080CA1DC: - movs r0, 0x1 -_080CA1DE: - pop {r1} - bx r1 - thumb_func_end sub_80CA1C8 - - thumb_func_start ItemUseOutOfBattle_EscapeRope -ItemUseOutOfBattle_EscapeRope: @ 80CA1E4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80CA1C8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080CA20C - ldr r1, _080CA204 - ldr r0, _080CA208 - str r0, [r1] - adds r0, r4, 0 - bl SetUpItemUseOnFieldCallback - b _080CA21E - .align 2, 0 -_080CA204: .4byte gUnknown_03005D00 -_080CA208: .4byte sub_80CA18C -_080CA20C: - ldr r0, _080CA224 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080CA21E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA224: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_EscapeRope - - thumb_func_start ItemUseOutOfBattle_EvolutionStone -ItemUseOutOfBattle_EvolutionStone: @ 80CA228 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CA23C - ldr r1, _080CA240 - str r1, [r2] - bl sub_80C9D98 - pop {r0} - bx r0 - .align 2, 0 -_080CA23C: .4byte gUnknown_03004AE4 -_080CA240: .4byte sub_8070DBC - thumb_func_end ItemUseOutOfBattle_EvolutionStone - - thumb_func_start ItemUseInBattle_PokeBall -ItemUseInBattle_PokeBall: @ 80CA244 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl PlayerPartyAndPokemonStorageFull - lsls r0, 24 - cmp r0, 0 - bne _080CA26C - ldr r0, _080CA268 - ldrh r0, [r0] - movs r1, 0x1 - bl sub_80A9538 - adds r0, r4, 0 - bl sub_80A7094 - b _080CA284 - .align 2, 0 -_080CA268: .4byte word_203855E -_080CA26C: - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r1, _080CA28C - ldr r2, _080CA290 - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField -_080CA284: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA28C: .4byte gOtherText_BoxIsFull -_080CA290: .4byte sub_80A5C48 - thumb_func_end ItemUseInBattle_PokeBall - - thumb_func_start sub_80CA294 -sub_80CA294: @ 80CA294 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080CA2B8 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080CA2AE - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080CA2B4 -_080CA2AE: - adds r0, r2, 0 - bl sub_80A7094 -_080CA2B4: - pop {r0} - bx r0 - .align 2, 0 -_080CA2B8: .4byte gMain - thumb_func_end sub_80CA294 - - thumb_func_start sub_80CA2BC -sub_80CA2BC: @ 80CA2BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080CA304 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080CA2FC - movs r0, 0x1 - bl PlaySE - ldr r4, _080CA308 - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80A9538 - ldrh r0, [r4] - bl sub_803F378 - adds r1, r0, 0 - ldr r2, _080CA30C - adds r0, r5, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField -_080CA2FC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA304: .4byte gTasks -_080CA308: .4byte word_203855E -_080CA30C: .4byte sub_80CA294 - thumb_func_end sub_80CA2BC - - thumb_func_start ItemUseInBattle_StatIncrease -ItemUseInBattle_StatIncrease: @ 80CA310 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080CA35C - ldr r0, _080CA360 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r4, [r0] - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - movs r0, 0x64 - muls r0, r4 - ldr r1, _080CA364 - adds r0, r1 - ldr r1, _080CA368 - ldrh r1, [r1] - lsls r4, 24 - lsrs r4, 24 - adds r2, r4, 0 - movs r3, 0 - bl ExecuteTableBasedItemEffect_ - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080CA374 - ldr r1, _080CA36C - ldr r2, _080CA370 - adds r0, r5, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080CA384 - .align 2, 0 -_080CA35C: .4byte gUnknown_02024A6A -_080CA360: .4byte gUnknown_02024E6C -_080CA364: .4byte gPlayerParty -_080CA368: .4byte word_203855E -_080CA36C: .4byte gOtherText_WontHaveAnyEffect -_080CA370: .4byte sub_80A5C48 -_080CA374: - ldr r0, _080CA38C - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080CA390 - str r0, [r1] - strh r2, [r1, 0x26] -_080CA384: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA38C: .4byte gTasks -_080CA390: .4byte sub_80CA2BC - thumb_func_end ItemUseInBattle_StatIncrease - - thumb_func_start sub_80CA394 -sub_80CA394: @ 80CA394 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080CA3BC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080CA3B4 - bl sub_8094E4C - bl gpu_pal_allocator_reset__manage_upper_four - adds r0, r4, 0 - bl DestroyTask -_080CA3B4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA3BC: .4byte gPaletteFade - thumb_func_end sub_80CA394 - - thumb_func_start sub_80CA3C0 -sub_80CA3C0: @ 80CA3C0 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CA3EC - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080CA3F0 - str r0, [r1] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080CA3EC: .4byte gTasks -_080CA3F0: .4byte sub_80CA394 - thumb_func_end sub_80CA3C0 - - thumb_func_start ItemUseInBattle_Medicine -ItemUseInBattle_Medicine: @ 80CA3F4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CA408 - ldr r1, _080CA40C - str r1, [r2] - bl sub_80CA3C0 - pop {r0} - bx r0 - .align 2, 0 -_080CA408: .4byte gUnknown_03004AE4 -_080CA40C: .4byte sub_806FE2C - thumb_func_end ItemUseInBattle_Medicine - - thumb_func_start unref_sub_80CA410 -unref_sub_80CA410: @ 80CA410 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CA424 - ldr r1, _080CA428 - str r1, [r2] - bl sub_80CA3C0 - pop {r0} - bx r0 - .align 2, 0 -_080CA424: .4byte gUnknown_03004AE4 -_080CA428: .4byte sub_8070048 - thumb_func_end unref_sub_80CA410 - - thumb_func_start ItemUseInBattle_PPRecovery -ItemUseInBattle_PPRecovery: @ 80CA42C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CA440 - ldr r1, _080CA444 - str r1, [r2] - bl sub_80CA3C0 - pop {r0} - bx r0 - .align 2, 0 -_080CA440: .4byte gUnknown_03004AE4 -_080CA444: .4byte dp05_ether - thumb_func_end ItemUseInBattle_PPRecovery - - thumb_func_start unref_sub_80CA448 -unref_sub_80CA448: @ 80CA448 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r4, _080CA494 - ldrh r1, [r4] - movs r0, 0 - movs r2, 0 - bl ExecuteTableBasedItemEffect__ - lsls r0, 24 - cmp r0, 0 - bne _080CA4AC - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80A9538 - ldr r0, _080CA498 - ldr r1, _080CA49C - bl GetMonNickname - ldr r4, _080CA4A0 - ldr r1, _080CA4A4 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080CA4A8 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080CA4B8 - .align 2, 0 -_080CA494: .4byte word_203855E -_080CA498: .4byte gPlayerParty -_080CA49C: .4byte gStringVar1 -_080CA4A0: .4byte gStringVar4 -_080CA4A4: .4byte gOtherText_SnapConfusion -_080CA4A8: .4byte sub_80A7094 -_080CA4AC: - ldr r1, _080CA4C0 - ldr r2, _080CA4C4 - adds r0, r5, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField -_080CA4B8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA4C0: .4byte gOtherText_WontHaveAnyEffect -_080CA4C4: .4byte sub_80A5C48 - thumb_func_end unref_sub_80CA448 - - thumb_func_start ItemUseInBattle_Escape -ItemUseInBattle_Escape: @ 80CA4C8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r0, _080CA4F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _080CA504 - bl sub_80C9FDC - ldr r1, _080CA4FC - ldr r2, _080CA500 - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080CA516 - .align 2, 0 -_080CA4F8: .4byte gUnknown_020239F8 -_080CA4FC: .4byte gStringVar4 -_080CA500: .4byte sub_80A7094 -_080CA504: - ldr r0, _080CA51C - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080CA516: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA51C: .4byte gTasks - thumb_func_end ItemUseInBattle_Escape - - thumb_func_start ItemUseOutOfBattle_EnigmaBerry -ItemUseOutOfBattle_EnigmaBerry: @ 80CA520 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080CA544 - ldrh r0, [r0] - bl sub_8070E48 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x14 - bls _080CA53A - b _080CA62C -_080CA53A: - lsls r0, 2 - ldr r1, _080CA548 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CA544: .4byte word_203855E -_080CA548: .4byte _080CA54C - .align 2, 0 -_080CA54C: - .4byte _080CA5D8 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA62C - .4byte _080CA62C - .4byte _080CA5BC - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA62C - .4byte _080CA5F4 - .4byte _080CA5F4 - .4byte _080CA610 -_080CA5A0: - ldr r0, _080CA5B8 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x26] - adds r0, r4, 0 - bl ItemUseOutOfBattle_Medicine - b _080CA640 - .align 2, 0 -_080CA5B8: .4byte gTasks -_080CA5BC: - ldr r0, _080CA5D4 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x26] - adds r0, r4, 0 - bl ItemUseOutOfBattle_SacredAsh - b _080CA640 - .align 2, 0 -_080CA5D4: .4byte gTasks -_080CA5D8: - ldr r0, _080CA5F0 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x26] - adds r0, r4, 0 - bl ItemUseOutOfBattle_RareCandy - b _080CA640 - .align 2, 0 -_080CA5F0: .4byte gTasks -_080CA5F4: - ldr r0, _080CA60C - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x26] - adds r0, r4, 0 - bl ItemUseOutOfBattle_PPUp - b _080CA640 - .align 2, 0 -_080CA60C: .4byte gTasks -_080CA610: - ldr r0, _080CA628 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x26] - adds r0, r4, 0 - bl ItemUseOutOfBattle_PPRecovery - b _080CA640 - .align 2, 0 -_080CA628: .4byte gTasks -_080CA62C: - ldr r0, _080CA648 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x4 - strh r0, [r1, 0x26] - adds r0, r4, 0 - bl ItemUseOutOfBattle_CannotUse -_080CA640: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA648: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_EnigmaBerry - - thumb_func_start ItemUseInBattle_EnigmaBerry -ItemUseInBattle_EnigmaBerry: @ 80CA64C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080CA66C - ldrh r0, [r0] - bl sub_8070E48 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x15 - bhi _080CA6E4 - lsls r0, 2 - ldr r1, _080CA670 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CA66C: .4byte word_203855E -_080CA670: .4byte _080CA674 - .align 2, 0 -_080CA674: - .4byte _080CA6CC - .4byte _080CA6E4 - .4byte _080CA6D4 - .4byte _080CA6D4 - .4byte _080CA6D4 - .4byte _080CA6D4 - .4byte _080CA6D4 - .4byte _080CA6D4 - .4byte _080CA6D4 - .4byte _080CA6D4 - .4byte _080CA6E4 - .4byte _080CA6D4 - .4byte _080CA6E4 - .4byte _080CA6E4 - .4byte _080CA6E4 - .4byte _080CA6E4 - .4byte _080CA6E4 - .4byte _080CA6E4 - .4byte _080CA6E4 - .4byte _080CA6E4 - .4byte _080CA6E4 - .4byte _080CA6DC -_080CA6CC: - adds r0, r4, 0 - bl ItemUseInBattle_StatIncrease - b _080CA6EA -_080CA6D4: - adds r0, r4, 0 - bl ItemUseInBattle_Medicine - b _080CA6EA -_080CA6DC: - adds r0, r4, 0 - bl ItemUseInBattle_PPRecovery - b _080CA6EA -_080CA6E4: - adds r0, r4, 0 - bl ItemUseOutOfBattle_CannotUse -_080CA6EA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ItemUseInBattle_EnigmaBerry - - thumb_func_start ItemUseOutOfBattle_CannotUse -ItemUseOutOfBattle_CannotUse: @ 80CA6F0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CA70C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r1, [r1, 0xC] - bl DisplayDadsAdviceCannotUseItemMessage - pop {r0} - bx r0 - .align 2, 0 -_080CA70C: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_CannotUse - - thumb_func_start sub_80CA710 -sub_80CA710: @ 80CA710 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080CA744 - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080CA748 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CA74C - ldrh r0, [r5, 0x8] - negs r0, r0 - b _080CA74E - .align 2, 0 -_080CA744: .4byte gUnknown_03004B00 -_080CA748: .4byte gUnknown_0202F7C8 -_080CA74C: - ldrh r0, [r5, 0x8] -_080CA74E: - strh r0, [r4, 0x34] - ldr r0, _080CA760 - ldrh r0, [r0, 0xA] - strh r0, [r4, 0x36] - ldr r0, _080CA764 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA760: .4byte gUnknown_03004B00 -_080CA764: .4byte sub_80CA768 - thumb_func_end sub_80CA710 - - thumb_func_start sub_80CA768 -sub_80CA768: @ 80CA768 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080CA7A4 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - ldrh r1, [r4, 0x32] - lsls r0, r1, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r1, r0 - strh r1, [r4, 0x32] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080CA7AA -_080CA7A4: - adds r0, r4, 0 - bl move_anim_8072740 -_080CA7AA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CA768 - - thumb_func_start sub_80CA7B0 -sub_80CA7B0: @ 80CA7B0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080CA7F0 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r5, _080CA7F4 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080CA7F8 - str r0, [r4, 0x1C] - ldr r1, _080CA7FC - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA7F0: .4byte gUnknown_03004B00 -_080CA7F4: .4byte gUnknown_0202F7C8 -_080CA7F8: .4byte sub_8078B34 -_080CA7FC: .4byte move_anim_8074EE0 - thumb_func_end sub_80CA7B0 - - thumb_func_start sub_80CA800 -sub_80CA800: @ 80CA800 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r5, _080CA848 - ldrb r1, [r5, 0x6] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldr r5, _080CA84C - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080CA850 - str r0, [r4, 0x1C] - ldr r1, _080CA854 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA848: .4byte gUnknown_03004B00 -_080CA84C: .4byte gUnknown_0202F7C9 -_080CA850: .4byte sub_8078B34 -_080CA854: .4byte move_anim_8072740 - thumb_func_end sub_80CA800 - - thumb_func_start sub_80CA858 -sub_80CA858: @ 80CA858 - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r6, _080CA8A8 - ldrh r0, [r6, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r5, _080CA8AC - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r6, 0x6] - strh r0, [r4, 0x38] - ldr r1, _080CA8B0 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CA8A8: .4byte gUnknown_03004B00 -_080CA8AC: .4byte gUnknown_0202F7C9 -_080CA8B0: .4byte sub_80CA8B4 - thumb_func_end sub_80CA858 - - thumb_func_start sub_80CA8B4 -sub_80CA8B4: @ 80CA8B4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080CA8CA - adds r0, r4, 0 - bl DestroySprite - b _080CA91E -_080CA8CA: - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x7F - ble _080CA8E4 - ldr r0, _080CA8E0 - ldrb r0, [r0] - bl sub_8079E90 - adds r0, 0x1 - b _080CA8EE - .align 2, 0 -_080CA8E0: .4byte gUnknown_0202F7C9 -_080CA8E4: - ldr r0, _080CA924 - ldrb r0, [r0] - bl sub_8079E90 - adds r0, 0x6 -_080CA8EE: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x5 - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xE - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0xF - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] -_080CA91E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA924: .4byte gUnknown_0202F7C9 - thumb_func_end sub_80CA8B4 - - thumb_func_start sub_80CA928 -sub_80CA928: @ 80CA928 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080CA998 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - subs r0, 0x1 - movs r2, 0 - strh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080CA982 - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - movs r0, 0x6 - strh r0, [r5, 0x8] - ldr r1, _080CA99C - movs r0, 0xF - strh r0, [r1] - strh r2, [r1, 0x2] - movs r0, 0x50 - strh r0, [r1, 0x4] - strh r2, [r1, 0x6] - ldr r4, _080CA9A0 - ldr r0, _080CA9A4 - ldrb r0, [r0] - bl sub_8079E90 - adds r3, r0, 0 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl CreateSpriteAndAnimate -_080CA982: - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0xF - bne _080CA990 - adds r0, r6, 0 - bl move_anim_task_del -_080CA990: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CA998: .4byte gTasks -_080CA99C: .4byte gUnknown_03004B00 -_080CA9A0: .4byte gSpriteTemplate_83D631C -_080CA9A4: .4byte gUnknown_0202F7C9 - thumb_func_end sub_80CA928 - - thumb_func_start sub_80CA9A8 -sub_80CA9A8: @ 80CA9A8 - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r6, _080CA9EC - ldrh r0, [r6, 0x6] - strh r0, [r4, 0x2E] - ldr r5, _080CA9F0 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldrh r0, [r6, 0x4] - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldr r0, _080CA9F4 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CA9EC: .4byte gUnknown_03004B00 -_080CA9F0: .4byte gUnknown_0202F7C8 -_080CA9F4: .4byte sub_80CA9F8 - thumb_func_end sub_80CA9A8 - - thumb_func_start sub_80CA9F8 -sub_80CA9F8: @ 80CA9F8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080CAA0C - adds r0, r4, 0 - bl move_anim_8072740 -_080CAA0C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CA9F8 - - thumb_func_start sub_80CAA14 -sub_80CAA14: @ 80CAA14 - push {r4,r5,lr} - adds r5, r0, 0 - bl Random - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x7 - ands r1, r0 - adds r0, r5, 0 - bl StartSpriteAnim - ldr r4, _080CAA5C - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CAA60 - ldrh r0, [r5, 0x20] - subs r0, 0x14 - b _080CAA64 - .align 2, 0 -_080CAA5C: .4byte gUnknown_0202F7C8 -_080CAA60: - ldrh r0, [r5, 0x20] - adds r0, 0x14 -_080CAA64: - strh r0, [r5, 0x20] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1F - ands r0, r1 - adds r0, 0x40 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080CAAC4 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078D60 - bl Random - movs r1, 0xFF - ands r1, r0 - strh r1, [r5, 0x38] - adds r0, r5, 0 - adds r0, 0x43 - ldrb r0, [r0] - strh r0, [r5, 0x3A] - ldr r1, _080CAAC8 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CAAC4: .4byte gUnknown_0202F7C9 -_080CAAC8: .4byte sub_80CAACC - thumb_func_end sub_80CAA14 - - thumb_func_start sub_80CAACC -sub_80CAACC: @ 80CAACC - push {r4,lr} - adds r4, r0, 0 - bl sub_8078CE8 - lsls r0, 24 - cmp r0, 0 - beq _080CAAE2 - adds r0, r4, 0 - bl move_anim_8072740 - b _080CAB12 -_080CAAE2: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xC - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x7E - bgt _080CAAFE - ldrh r0, [r4, 0x3A] - b _080CAB02 -_080CAAFE: - ldrh r0, [r4, 0x3A] - adds r0, 0x1 -_080CAB02: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrh r0, [r4, 0x38] - adds r0, 0x18 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] -_080CAB12: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CAACC - - thumb_func_start sub_80CAB18 -sub_80CAB18: @ 80CAB18 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080CAB78 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CAB38 - ldr r1, _080CAB7C - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080CAB38: - ldr r4, _080CAB7C - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldr r5, _080CAB80 - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r6, 0x36] - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x38] - adds r0, r6, 0 - bl sub_80786EC - ldr r0, _080CAB84 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CAB78: .4byte gUnknown_0202F7C8 -_080CAB7C: .4byte gUnknown_03004B00 -_080CAB80: .4byte gUnknown_0202F7C9 -_080CAB84: .4byte sub_80CAB88 - thumb_func_end sub_80CAB18 - - thumb_func_start sub_80CAB88 -sub_80CAB88: @ 80CAB88 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080CABB2 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0xA - strh r0, [r4, 0x2E] - ldr r0, _080CABB8 - str r0, [r4, 0x1C] - ldr r1, _080CABBC - adds r0, r4, 0 - bl oamt_set_x3A_32 -_080CABB2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CABB8: .4byte sub_80782D8 -_080CABBC: .4byte sub_80CABC0 - thumb_func_end sub_80CAB88 - - thumb_func_start sub_80CABC0 -sub_80CABC0: @ 80CABC0 - push {r4,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - movs r0, 0x3C - strh r0, [r4, 0x2E] - ldr r0, _080CABF0 - str r0, [r4, 0x1C] - ldr r1, _080CABF4 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CABF0: .4byte sub_80782D8 -_080CABF4: .4byte move_anim_8072740 - thumb_func_end sub_80CABC0 - - thumb_func_start sub_80CABF8 -sub_80CABF8: @ 80CABF8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r5, _080CAC3C - ldrb r1, [r5, 0x8] - adds r0, r4, 0 - bl StartSpriteAnim - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080CAC22 - ldrb r0, [r4, 0x1] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4, 0x1] -_080CAC22: - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x30] - ldr r1, _080CAC40 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CAC3C: .4byte gUnknown_03004B00 -_080CAC40: .4byte sub_80CAC44 - thumb_func_end sub_80CABF8 - - thumb_func_start sub_80CAC44 -sub_80CAC44: @ 80CAC44 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x3 - negs r1, r1 - bl Cos - ldrh r1, [r4, 0x32] - adds r1, 0x18 - strh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080CAC98 - ldr r0, _080CAC94 - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - b _080CACBC - .align 2, 0 -_080CAC94: .4byte gUnknown_0202F7C9 -_080CAC98: - ldr r0, _080CACE8 - ldrb r0, [r0] - bl sub_8079ED4 - adds r0, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080CACAC - movs r2, 0x3 -_080CACAC: - movs r0, 0x3 - ands r2, r0 - lsls r2, 2 - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r2 -_080CACBC: - strb r0, [r4, 0x5] - ldrh r0, [r4, 0x30] - adds r0, 0x2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080CACE0 - adds r0, r4, 0 - bl move_anim_8072740 -_080CACE0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CACE8: .4byte gUnknown_0202F7C9 - thumb_func_end sub_80CAC44 - - thumb_func_start sub_80CACEC -sub_80CACEC: @ 80CACEC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080CAD06 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _080CAD0E -_080CAD06: - adds r0, r4, 0 - bl move_anim_task_del - b _080CAD4A -_080CAD0E: - ldr r0, _080CAD2C - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080CAD34 - ldr r0, _080CAD30 - ldrb r1, [r0] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0] - b _080CAD44 - .align 2, 0 -_080CAD2C: .4byte gUnknown_0202F7C9 -_080CAD30: .4byte REG_BG2CNT -_080CAD34: - ldr r2, _080CAD50 - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_080CAD44: - adds r0, r4, 0 - bl move_anim_task_del -_080CAD4A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CAD50: .4byte REG_BG1CNT - thumb_func_end sub_80CACEC - - thumb_func_start sub_80CAD54 -sub_80CAD54: @ 80CAD54 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_80787B0 - ldr r5, _080CAD9C - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldr r0, _080CADA0 - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x4] - adds r0, r5 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x40 - strh r0, [r4, 0x38] - ldr r1, _080CADA4 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CAD9C: .4byte gUnknown_03004B00 -_080CADA0: .4byte gUnknown_0202F7C8 -_080CADA4: .4byte sub_80CADA8 - thumb_func_end sub_80CAD54 - - thumb_func_start sub_80CADA8 -sub_80CADA8: @ 80CADA8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080CAE14 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x5 - negs r1, r1 - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080CADF4 - ldr r0, _080CADF0 - ldrb r0, [r0] - bl sub_8079E90 - subs r0, 0x1 - b _080CADFE - .align 2, 0 -_080CADF0: .4byte gUnknown_0202F7C8 -_080CADF4: - ldr r0, _080CAE10 - ldrb r0, [r0] - bl sub_8079E90 - adds r0, 0x1 -_080CADFE: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrh r0, [r4, 0x38] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080CAE1A - .align 2, 0 -_080CAE10: .4byte gUnknown_0202F7C8 -_080CAE14: - adds r0, r4, 0 - bl move_anim_8072740 -_080CAE1A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CADA8 - - thumb_func_start sub_80CAE20 -sub_80CAE20: @ 80CAE20 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r5, _080CAE68 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldr r0, _080CAE6C - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x4] - adds r0, r5 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x40 - strh r0, [r4, 0x38] - ldr r1, _080CAE70 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CAE68: .4byte gUnknown_03004B00 -_080CAE6C: .4byte gUnknown_0202F7C8 -_080CAE70: .4byte sub_80CAE74 - thumb_func_end sub_80CAE20 - - thumb_func_start sub_80CAE74 -sub_80CAE74: @ 80CAE74 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080CAECC - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - ldrh r1, [r4, 0x38] - adds r0, r1, 0 - subs r0, 0x3B - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bls _080CAEAC - adds r0, r1, 0 - subs r0, 0xBB - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bhi _080CAEC0 -_080CAEAC: - ldrb r2, [r4, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x8 - eors r1, r0 - lsls r1, 1 - subs r0, 0x47 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] -_080CAEC0: - ldrh r0, [r4, 0x38] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080CAED2 -_080CAECC: - adds r0, r4, 0 - bl move_anim_8072740 -_080CAED2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CAE74 - - thumb_func_start sub_80CAED8 -sub_80CAED8: @ 80CAED8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080CAF14 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r1, _080CAF18 - ldrh r0, [r1] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x32] - ldr r0, _080CAF1C - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CAF14: .4byte gUnknown_0202F7C8 -_080CAF18: .4byte gUnknown_03004B00 -_080CAF1C: .4byte sub_80CAF20 - thumb_func_end sub_80CAED8 - - thumb_func_start sub_80CAF20 -sub_80CAF20: @ 80CAF20 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x32] - movs r2, 0x32 - ldrsh r3, [r1, r2] - cmp r3, 0 - bne _080CAF54 - ldrh r0, [r1, 0x30] - movs r2, 0x1 - ands r2, r0 - cmp r2, 0 - beq _080CAF42 - movs r0, 0x80 - strh r0, [r1, 0x2E] - strh r3, [r1, 0x30] - strh r3, [r1, 0x32] - b _080CAF48 -_080CAF42: - strh r2, [r1, 0x2E] - strh r2, [r1, 0x30] - strh r2, [r1, 0x32] -_080CAF48: - ldr r0, _080CAF50 - str r0, [r1, 0x1C] - b _080CAF68 - .align 2, 0 -_080CAF50: .4byte sub_80CAF6C -_080CAF54: - subs r0, 0x1 - strh r0, [r1, 0x32] - ldrh r0, [r1, 0x2E] - ldrh r2, [r1, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0x30] - ldrh r2, [r1, 0x22] - adds r0, r2 - strh r0, [r1, 0x22] -_080CAF68: - pop {r0} - bx r0 - thumb_func_end sub_80CAF20 - - thumb_func_start sub_80CAF6C -sub_80CAF6C: @ 80CAF6C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080CAF8C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CAF90 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x19 - bl Sin - negs r0, r0 - b _080CAF9A - .align 2, 0 -_080CAF8C: .4byte gUnknown_0202F7C8 -_080CAF90: - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x19 - bl Sin -_080CAF9A: - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x2E] - adds r0, 0x2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080CAFBA - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] -_080CAFBA: - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x50 - ble _080CAFC8 - adds r0, r4, 0 - bl move_anim_8072740 -_080CAFC8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CAF6C - - thumb_func_start sub_80CAFD0 -sub_80CAFD0: @ 80CAFD0 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080CB024 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CAFF0 - ldr r1, _080CB028 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080CAFF0: - ldr r6, _080CB028 - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - movs r1, 0xC - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080CB030 - ldr r4, _080CB02C - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x6] - adds r0, r6 - b _080CB050 - .align 2, 0 -_080CB024: .4byte gUnknown_0202F7C8 -_080CB028: .4byte gUnknown_03004B00 -_080CB02C: .4byte gUnknown_0202F7C9 -_080CB030: - ldr r0, _080CB07C - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_807A3FC - ldrh r0, [r6, 0x4] - ldrh r1, [r5, 0x32] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r6, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 -_080CB050: - strh r0, [r5, 0x36] - ldr r0, _080CB080 - ldrh r0, [r0, 0xA] - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_80786EC - ldr r0, _080CB084 - ldrb r0, [r0] - bl battle_side_get_owner - adds r4, r0, 0 - ldr r0, _080CB07C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080CB088 - movs r0, 0x1 - b _080CB08A - .align 2, 0 -_080CB07C: .4byte gUnknown_0202F7C9 -_080CB080: .4byte gUnknown_03004B00 -_080CB084: .4byte gUnknown_0202F7C8 -_080CB088: - movs r0, 0 -_080CB08A: - strh r0, [r5, 0x2E] - ldr r0, _080CB098 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB098: .4byte sub_80CB09C - thumb_func_end sub_80CAFD0 - - thumb_func_start sub_80CB09C -sub_80CB09C: @ 80CB09C - push {r4-r7,lr} - adds r6, r0, 0 - movs r7, 0 - ldrh r5, [r6, 0x2E] - ldrh r4, [r6, 0x3C] - movs r0, 0x1 - strh r0, [r6, 0x2E] - adds r0, r6, 0 - bl sub_8078718 - ldrh r0, [r6, 0x3C] - strh r5, [r6, 0x2E] - lsls r4, 16 - asrs r4, 16 - cmp r4, 0xC8 - ble _080CB0CE - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x37 - bgt _080CB0CE - ldrh r0, [r6, 0x6] - cmp r0, 0 - bne _080CB0D4 - adds r0, 0x1 - strh r0, [r6, 0x6] -_080CB0CE: - ldrh r0, [r6, 0x6] - cmp r0, 0 - beq _080CB106 -_080CB0D4: - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080CB106 - adds r3, r6, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r6, 0x6] - adds r0, 0x1 - strh r0, [r6, 0x6] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1E - bne _080CB106 - movs r7, 0x1 -_080CB106: - movs r2, 0x20 - ldrsh r0, [r6, r2] - movs r2, 0x24 - ldrsh r1, [r6, r2] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080CB130 - movs r0, 0x22 - ldrsh r1, [r6, r0] - movs r2, 0x26 - ldrsh r0, [r6, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080CB130 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080CB132 -_080CB130: - movs r7, 0x1 -_080CB132: - cmp r7, 0 - beq _080CB13C - adds r0, r6, 0 - bl move_anim_8072740 -_080CB13C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80CB09C - - thumb_func_start sub_80CB144 -sub_80CB144: @ 80CB144 - push {r4,lr} - adds r4, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080CB170 - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080CB170 - ldr r0, _080CB198 - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_807A3FC -_080CB170: - ldrh r0, [r4, 0x22] - adds r0, 0x20 - strh r0, [r4, 0x22] - ldr r1, _080CB19C - ldrh r0, [r1] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x36] - ldr r0, _080CB1A0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CB198: .4byte gUnknown_0202F7C9 -_080CB19C: .4byte gUnknown_03004B00 -_080CB1A0: .4byte sub_80CB1A4 - thumb_func_end sub_80CB144 - - thumb_func_start sub_80CB1A4 -sub_80CB1A4: @ 80CB1A4 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0xFF - bne _080CB1BA - ldrh r0, [r4, 0x22] - subs r0, 0x2 - strh r0, [r4, 0x22] - b _080CB1C8 -_080CB1BA: - cmp r0, 0 - ble _080CB1C8 - ldrh r0, [r4, 0x22] - subs r0, 0x2 - strh r0, [r4, 0x22] - subs r0, r1, 0x2 - strh r0, [r4, 0x30] -_080CB1C8: - ldrh r3, [r4, 0x32] - ldrh r5, [r4, 0x38] - adds r2, r3, r5 - strh r2, [r4, 0x38] - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r5, 0x36 - ldrsh r0, [r4, r5] - cmp r1, r0 - bge _080CB1E0 - adds r0, r2, r3 - strh r0, [r4, 0x38] -_080CB1E0: - ldrh r1, [r4, 0x38] - movs r0, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r5, 0x38 - ldrsh r0, [r4, r5] - movs r1, 0x5 - bl Sin - strh r0, [r4, 0x26] - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x7F - bgt _080CB220 - ldr r0, _080CB21C - ldrb r0, [r0] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - b _080CB22E - .align 2, 0 -_080CB21C: .4byte gUnknown_0202F7C9 -_080CB220: - ldr r0, _080CB258 - ldrb r0, [r0] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 -_080CB22E: - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080CB252 - adds r0, r4, 0 - bl move_anim_8072740 -_080CB252: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CB258: .4byte gUnknown_0202F7C9 - thumb_func_end sub_80CB1A4 - - thumb_func_start sub_80CB25C -sub_80CB25C: @ 80CB25C - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0 - bl sub_8078764 - adds r2, r5, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r4, _080CB290 - ldrb r1, [r4, 0x4] - adds r0, r5, 0 - bl StartSpriteAffineAnim - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x3A] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x3C] - ldr r0, _080CB294 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CB290: .4byte gUnknown_03004B00 -_080CB294: .4byte sub_80CB298 - thumb_func_end sub_80CB25C - - thumb_func_start sub_80CB298 -sub_80CB298: @ 80CB298 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080CB2C8 - ldrh r1, [r0, 0xE] - ldr r0, _080CB2CC - cmp r1, r0 - bne _080CB2C2 - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0x2E] - ldr r0, _080CB2D0 - str r0, [r4, 0x1C] -_080CB2C2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CB2C8: .4byte gUnknown_03004B00 -_080CB2CC: .4byte 0x0000ffff -_080CB2D0: .4byte sub_80CB2D4 - thumb_func_end sub_80CB298 - - thumb_func_start sub_80CB2D4 -sub_80CB2D4: @ 80CB2D4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080CB2EC - ldrh r0, [r4, 0x2E] - adds r0, 0xB - b _080CB2F0 -_080CB2EC: - ldrh r0, [r4, 0x2E] - subs r0, 0xB -_080CB2F0: - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _080CB30C - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x32] -_080CB30C: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080CB33A - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - cmp r0, 0 - ble _080CB334 - ldrh r1, [r4, 0x3A] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAffineAnim - b _080CB33A -_080CB334: - adds r0, r4, 0 - bl move_anim_8072740 -_080CB33A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CB2D4 - - thumb_func_start sub_80CB340 -sub_80CB340: @ 80CB340 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080CB36C - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _080CB370 - adds r0, r4, 0 - bl move_anim_task_del - b _080CB396 - .align 2, 0 -_080CB36C: .4byte gSprites -_080CB370: - adds r0, r2, 0 - movs r1, 0x1 - bl sub_8078E70 - ldr r1, _080CB39C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, _080CB3A0 - ldrh r1, [r2] - strh r1, [r0, 0x8] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0xA] - movs r1, 0x80 - lsls r1, 1 - strh r1, [r0, 0x1E] - ldr r1, _080CB3A4 - str r1, [r0] -_080CB396: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CB39C: .4byte gTasks -_080CB3A0: .4byte gUnknown_03004B00 -_080CB3A4: .4byte sub_80CB3A8 - thumb_func_end sub_80CB340 - - thumb_func_start sub_80CB3A8 -sub_80CB3A8: @ 80CB3A8 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080CB428 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0x8] - ldrh r0, [r4, 0x1C] - adds r1, r0 - strh r1, [r4, 0x1C] - ldr r2, _080CB42C - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r5, r0, r2 - lsls r1, 16 - asrs r1, 24 - strh r1, [r5, 0x24] - ldr r0, _080CB430 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CB3F2 - ldrh r0, [r5, 0x24] - negs r0, r0 - strh r0, [r5, 0x24] -_080CB3F2: - ldrh r0, [r4, 0x1E] - adds r0, 0x10 - strh r0, [r4, 0x1E] - movs r0, 0x1E - ldrsh r2, [r4, r0] - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - adds r0, r6, 0 - bl sub_8079A64 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080CB420 - strh r0, [r4, 0x8] - ldr r0, _080CB434 - str r0, [r4] -_080CB420: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB428: .4byte gTasks -_080CB42C: .4byte gSprites -_080CB430: .4byte gUnknown_0202F7C9 -_080CB434: .4byte sub_80CB438 - thumb_func_end sub_80CB3A8 - - thumb_func_start sub_80CB438 -sub_80CB438: @ 80CB438 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080CB484 - ldrh r1, [r0, 0xE] - ldr r0, _080CB488 - cmp r1, r0 - bne _080CB494 - ldr r0, _080CB48C - lsls r2, r3, 2 - adds r1, r2, r3 - lsls r1, 3 - adds r6, r1, r0 - movs r1, 0x8 - ldrsh r5, [r6, r1] - adds r4, r0, 0 - cmp r5, 0 - bne _080CB4A8 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8078F40 - ldr r1, _080CB490 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - strh r5, [r0, 0x24] - strh r5, [r0, 0x26] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - b _080CB4C2 - .align 2, 0 -_080CB484: .4byte gUnknown_03004B00 -_080CB488: .4byte 0x0000ffff -_080CB48C: .4byte gTasks -_080CB490: .4byte gSprites -_080CB494: - ldr r1, _080CB4C8 - lsls r2, r3, 2 - adds r0, r2, r3 - lsls r0, 3 - adds r0, r1 - movs r4, 0x8 - ldrsh r0, [r0, r4] - adds r4, r1, 0 - cmp r0, 0 - beq _080CB4C2 -_080CB4A8: - adds r1, r2, r3 - lsls r1, 3 - adds r1, r4 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080CB4C2 - adds r0, r3, 0 - bl move_anim_task_del -_080CB4C2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB4C8: .4byte gTasks - thumb_func_end sub_80CB438 - - thumb_func_start sub_80CB4CC -sub_80CB4CC: @ 80CB4CC - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080CB4DE - cmp r0, 0x1 - beq _080CB538 - b _080CB58A -_080CB4DE: - ldr r6, _080CB530 - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CB4F6 - ldr r1, _080CB534 - movs r2, 0 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1] -_080CB4F6: - ldrb r0, [r6] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080CB534 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r5, 0x22] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080CB58A - .align 2, 0 -_080CB530: .4byte gUnknown_0202F7C9 -_080CB534: .4byte gUnknown_03004B00 -_080CB538: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080CB58A - adds r0, r5, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim - movs r0, 0x19 - strh r0, [r5, 0x2E] - ldr r4, _080CB590 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080CB594 - str r0, [r5, 0x1C] - ldr r1, _080CB598 - adds r0, r5, 0 - bl oamt_set_x3A_32 -_080CB58A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB590: .4byte gUnknown_0202F7C8 -_080CB594: .4byte sub_8078CC0 -_080CB598: .4byte move_anim_8072740 - thumb_func_end sub_80CB4CC - - thumb_func_start sub_80CB59C -sub_80CB59C: @ 80CB59C - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080CB608 - ldr r4, _080CB614 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080CB618 - ldrh r0, [r4] - strh r0, [r5, 0x24] - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x26] - ldrb r0, [r4, 0x4] - adds r0, 0x1E - adds r1, r5, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r4, 0x6] - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - movs r2, 0x22 - ldrsh r0, [r5, r2] - movs r2, 0x26 - ldrsh r1, [r5, r2] - adds r0, r1 - cmp r0, 0x78 - ble _080CB608 - ldrh r0, [r5, 0x22] - adds r1, r0, 0 - subs r1, 0x78 - ldrh r2, [r5, 0x26] - adds r0, r2 - adds r1, r0 - strh r1, [r5, 0x22] -_080CB608: - ldr r0, _080CB61C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CB614: .4byte gUnknown_0202F7C8 -_080CB618: .4byte gUnknown_03004B00 -_080CB61C: .4byte sub_80CB710 - thumb_func_end sub_80CB59C - - thumb_func_start sub_80CB620 -sub_80CB620: @ 80CB620 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x4 - mov r9, r0 - ldr r4, _080CB6FC - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r6, _080CB700 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8077ABC - adds r2, r0, 0 - lsls r2, 24 - subs r4, r5 - lsls r4, 16 - lsrs r2, 24 - mov r1, r8 - subs r2, r1 - lsls r2, 16 - lsrs r2, 16 - lsrs r3, r4, 16 - mov r10, r3 - asrs r4, 16 - ldr r6, _080CB704 - movs r1, 0 - ldrsh r0, [r6, r1] - muls r0, r4 - movs r1, 0x64 - str r2, [sp] - bl __divsi3 - adds r5, r0 - mov r3, r9 - strh r5, [r3, 0x20] - ldr r2, [sp] - lsls r0, r2, 16 - asrs r0, 16 - movs r3, 0 - ldrsh r1, [r6, r3] - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - add r8, r0 - mov r1, r8 - mov r0, r9 - strh r1, [r0, 0x22] - ldrh r0, [r6, 0x2] - mov r3, r9 - strh r0, [r3, 0x24] - ldrh r0, [r6, 0x4] - strh r0, [r3, 0x26] - ldrb r0, [r6, 0x6] - adds r0, 0x1E - mov r1, r9 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r6, 0x8] - mov r0, r9 - bl StartSpriteAnim - ldrh r0, [r6, 0xA] - mov r1, r9 - strh r0, [r1, 0x32] - ldr r0, _080CB708 - str r0, [r1, 0x1C] - ldr r1, _080CB70C - mov r3, r9 - ldrh r0, [r3, 0x20] - strh r0, [r1] - ldrh r0, [r3, 0x22] - strh r0, [r1, 0x2] - mov r0, r10 - strh r0, [r1, 0x4] - ldr r2, [sp] - strh r2, [r1, 0x6] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB6FC: .4byte gUnknown_0202F7C8 -_080CB700: .4byte gUnknown_0202F7C9 -_080CB704: .4byte gUnknown_03004B00 -_080CB708: .4byte sub_80CB710 -_080CB70C: .4byte gUnknown_03000728 - thumb_func_end sub_80CB620 - - thumb_func_start sub_80CB710 -sub_80CB710: @ 80CB710 - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x2E] - adds r1, 0x1 - strh r1, [r3, 0x2E] - lsls r1, 16 - asrs r1, 16 - movs r2, 0x32 - ldrsh r0, [r3, r2] - subs r0, 0xA - cmp r1, r0 - ble _080CB750 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - movs r2, 0x3E - adds r2, r3 - mov r12, r2 - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] -_080CB750: - movs r2, 0x2E - ldrsh r1, [r3, r2] - movs r2, 0x32 - ldrsh r0, [r3, r2] - cmp r1, r0 - ble _080CB762 - adds r0, r3, 0 - bl move_anim_8072740 -_080CB762: - pop {r0} - bx r0 - thumb_func_end sub_80CB710 - - thumb_func_start sub_80CB768 -sub_80CB768: @ 80CB768 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080CB7A8 - ldr r5, _080CB7E4 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080CB7E8 - lsrs r0, 24 - ldrh r2, [r4] - adds r0, r2 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x30] - ldrh r0, [r4, 0x6] - strh r0, [r6, 0x32] - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x34] -_080CB7A8: - ldrh r0, [r6, 0x2E] - adds r0, 0x1 - strh r0, [r6, 0x2E] - ldrh r1, [r6, 0x30] - muls r0, r1 - strh r0, [r6, 0x24] - movs r2, 0x2E - ldrsh r1, [r6, r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - movs r1, 0xFF - ands r0, r1 - movs r2, 0x32 - ldrsh r1, [r6, r2] - bl Sin - strh r0, [r6, 0x26] - movs r0, 0x2E - ldrsh r1, [r6, r0] - movs r2, 0x34 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _080CB7DE - adds r0, r6, 0 - bl move_anim_8072740 -_080CB7DE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB7E4: .4byte gUnknown_0202F7C8 -_080CB7E8: .4byte gUnknown_03004B00 - thumb_func_end sub_80CB768 - - thumb_func_start sub_80CB7EC -sub_80CB7EC: @ 80CB7EC - push {r4,r5,lr} - movs r2, 0x20 - ldrsh r4, [r0, r2] - lsls r4, 8 - movs r3, 0x22 - ldrsh r2, [r0, r3] - orrs r4, r2 - movs r5, 0x3A - ldrsh r2, [r0, r5] - lsls r2, 8 - movs r5, 0x3C - ldrsh r3, [r0, r5] - orrs r2, r3 - lsls r1, 8 - strh r4, [r0, 0x38] - strh r2, [r0, 0x3A] - strh r1, [r0, 0x3C] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80CB7EC - - thumb_func_start sub_80CB814 -sub_80CB814: @ 80CB814 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r0 - ldrh r0, [r0, 0x38] - lsrs r1, r0, 8 - mov r10, r1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - mov r1, r8 - ldrh r0, [r1, 0x3A] - lsrs r2, r0, 8 - lsls r0, 24 - lsrs r4, r0, 24 - ldrh r1, [r1, 0x3C] - lsls r0, r1, 16 - asrs r0, 24 - lsls r0, 16 - lsrs r6, r0, 16 - movs r3, 0xFF - ands r3, r1 - cmp r2, 0 - bne _080CB84E - movs r2, 0x20 - negs r2, r2 - b _080CB856 -_080CB84E: - cmp r2, 0xFF - bne _080CB856 - movs r2, 0x88 - lsls r2, 1 -_080CB856: - mov r0, r9 - subs r4, r0 - lsls r4, 16 - lsrs r4, 16 - mov r1, r10 - subs r0, r2, r1 - lsls r5, r3, 16 - asrs r5, 16 - muls r0, r5 - lsls r1, r6, 16 - asrs r7, r1, 16 - adds r1, r7, 0 - bl __divsi3 - adds r6, r0, 0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - muls r0, r5 - adds r1, r7, 0 - bl __divsi3 - add r6, r10 - mov r1, r8 - strh r6, [r1, 0x20] - add r0, r9 - strh r0, [r1, 0x22] - adds r5, 0x1 - lsls r5, 16 - lsrs r3, r5, 16 - asrs r5, 16 - cmp r5, r7 - beq _080CB8A8 - lsls r1, r7, 8 - lsls r0, r3, 16 - asrs r0, 16 - orrs r0, r1 - mov r1, r8 - strh r0, [r1, 0x3C] - movs r0, 0 - b _080CB8AA -_080CB8A8: - movs r0, 0x1 -_080CB8AA: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80CB814 - - thumb_func_start sub_80CB8B8 -sub_80CB8B8: @ 80CB8B8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xA - bne _080CB8CC - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080CB8CC: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x32 - ble _080CB8E0 - adds r0, r4, 0 - bl move_anim_8072740 -_080CB8E0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CB8B8 - - thumb_func_start sub_80CB8E8 -sub_80CB8E8: @ 80CB8E8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - ldrh r1, [r4, 0x2E] - adds r1, r0 - movs r5, 0 - strh r1, [r4, 0x2E] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x7F - ble _080CB912 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - strh r5, [r4, 0x2E] -_080CB912: - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x30 - ldrsh r2, [r4, r1] - lsls r2, 3 - movs r1, 0x1E - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x26] - adds r0, r4, 0 - bl sub_80CB814 - lsls r0, 24 - cmp r0, 0 - beq _080CB942 - strh r5, [r4, 0x26] - strh r5, [r4, 0x2E] - ldr r0, _080CB948 - str r0, [r4, 0x1C] -_080CB942: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CB948: .4byte sub_80CB8B8 - thumb_func_end sub_80CB8E8 - - thumb_func_start sub_80CB94C -sub_80CB94C: @ 80CB94C - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0 - bl sub_80787B0 - ldr r4, _080CB994 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080CB998 - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - ldrb r4, [r4] - cmp r0, r4 - bne _080CB99C - strh r6, [r5, 0x3A] - adds r0, r2, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x3C - bl sub_80CB7EC - movs r0, 0x1 - b _080CB9AE - .align 2, 0 -_080CB994: .4byte gUnknown_0202F7C9 -_080CB998: .4byte gUnknown_0202F7C8 -_080CB99C: - strh r6, [r5, 0x3A] - adds r0, r2, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x3C - bl sub_80CB7EC - movs r0, 0x3 -_080CB9AE: - strh r0, [r5, 0x34] - movs r0, 0x3C - strh r0, [r5, 0x36] - ldr r0, _080CB9C0 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB9C0: .4byte sub_80CB8E8 - thumb_func_end sub_80CB94C - - thumb_func_start sub_80CB9C4 -sub_80CB9C4: @ 80CB9C4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - ldrh r1, [r4, 0x2E] - adds r1, r0 - movs r5, 0 - strh r1, [r4, 0x2E] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x7F - ble _080CB9EE - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - strh r5, [r4, 0x2E] -_080CB9EE: - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x30 - ldrsh r2, [r4, r1] - lsls r2, 3 - movs r1, 0x1E - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x26] - adds r0, r4, 0 - bl sub_80CB814 - lsls r0, 24 - cmp r0, 0 - beq _080CBA20 - strh r5, [r4, 0x26] - strh r5, [r4, 0x2E] - adds r0, r4, 0 - bl move_anim_8072740 -_080CBA20: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80CB9C4 - - thumb_func_start sub_80CBA28 -sub_80CBA28: @ 80CBA28 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080CBA64 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080CBA6C - strh r0, [r5, 0x3A] - adds r0, r6, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x28 - bl sub_80CB7EC - movs r0, 0x3 - strh r0, [r5, 0x34] - movs r0, 0x3C - strh r0, [r5, 0x36] - ldr r0, _080CBA68 - b _080CBA96 - .align 2, 0 -_080CBA64: .4byte gUnknown_0202F7C9 -_080CBA68: .4byte sub_80CB8E8 -_080CBA6C: - movs r0, 0xFF - strh r0, [r5, 0x3A] - adds r0, r6, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CBA84 - movs r0, 0 - strh r0, [r5, 0x3A] -_080CBA84: - adds r0, r5, 0 - movs r1, 0x28 - bl sub_80CB7EC - movs r0, 0x3 - strh r0, [r5, 0x34] - movs r0, 0x3C - strh r0, [r5, 0x36] - ldr r0, _080CBAA0 -_080CBA96: - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CBAA0: .4byte sub_80CB9C4 - thumb_func_end sub_80CBA28 - - thumb_func_start sub_80CBAA4 -sub_80CBAA4: @ 80CBAA4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080CBABE - adds r0, r4, 0 - movs r1, 0 - bl sub_8078764 - ldr r0, _080CBAE4 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x30] -_080CBABE: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - ldrh r1, [r4, 0x30] - muls r0, r1 - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080CBADE - adds r0, r4, 0 - bl move_anim_8072740 -_080CBADE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CBAE4: .4byte gUnknown_03004B00 - thumb_func_end sub_80CBAA4 - - thumb_func_start sub_80CBAE8 -sub_80CBAE8: @ 80CBAE8 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0 - bl sub_8078764 - ldr r4, _080CBB30 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080CBB34 - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - ldrb r4, [r4] - cmp r0, r4 - bne _080CBB38 - strh r6, [r5, 0x3A] - adds r0, r2, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x3C - bl sub_80CB7EC - movs r0, 0x1 - b _080CBB4A - .align 2, 0 -_080CBB30: .4byte gUnknown_0202F7C8 -_080CBB34: .4byte gUnknown_0202F7C9 -_080CBB38: - strh r6, [r5, 0x3A] - adds r0, r2, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x3C - bl sub_80CB7EC - movs r0, 0x3 -_080CBB4A: - strh r0, [r5, 0x34] - movs r0, 0x3C - strh r0, [r5, 0x36] - ldr r0, _080CBB5C - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CBB5C: .4byte sub_80CBB60 - thumb_func_end sub_80CBAE8 - - thumb_func_start sub_80CBB60 -sub_80CBB60: @ 80CBB60 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - ldrh r1, [r4, 0x2E] - adds r1, r0 - movs r5, 0 - strh r1, [r4, 0x2E] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x7F - ble _080CBB8A - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - strh r5, [r4, 0x2E] -_080CBB8A: - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x30 - ldrsh r2, [r4, r1] - lsls r2, 3 - movs r1, 0x1E - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x26] - lsls r0, 16 - cmp r0, 0 - bne _080CBBBE - movs r0, 0x3F - bl sub_8076F98 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x7D - bl PlaySE12WithPanning -_080CBBBE: - adds r0, r4, 0 - bl sub_80CB814 - lsls r0, 24 - cmp r0, 0 - beq _080CBBE6 - strh r5, [r4, 0x26] - strh r5, [r4, 0x2E] - ldr r0, _080CBBEC - str r0, [r4, 0x1C] - movs r0, 0x40 - negs r0, r0 - bl sub_8076F98 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x7D - bl PlaySE12WithPanning -_080CBBE6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CBBEC: .4byte sub_80CB8B8 - thumb_func_end sub_80CBB60 - - thumb_func_start sub_80CBBF0 -sub_80CBBF0: @ 80CBBF0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080CBC84 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080CBC18 - ldr r0, _080CBC14 - ldrh r1, [r0, 0x2] - strh r1, [r4, 0x30] - movs r1, 0x78 - strh r1, [r4, 0x20] - adds r5, r0, 0 - b _080CBC3A - .align 2, 0 -_080CBC14: .4byte gUnknown_03004B00 -_080CBC18: - ldr r0, _080CBC74 - movs r1, 0x2 - ldrsh r3, [r0, r1] - adds r1, r3, 0 - subs r1, 0x20 - adds r2, r1, 0 - adds r5, r0, 0 - cmp r1, 0 - bge _080CBC2E - adds r2, r3, 0 - adds r2, 0xDF -_080CBC2E: - asrs r0, r2, 8 - lsls r0, 8 - subs r0, r1, r0 - strh r0, [r4, 0x30] - movs r0, 0x46 - strh r0, [r4, 0x20] -_080CBC3A: - ldrh r0, [r5] - strh r0, [r4, 0x22] - strh r0, [r4, 0x32] - movs r0, 0x14 - strh r0, [r4, 0x36] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x3C - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x14 - bl Sin - strh r0, [r4, 0x26] - ldr r0, _080CBC78 - str r0, [r4, 0x1C] - ldrh r0, [r4, 0x30] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xBE - bhi _080CBC7C - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1F - b _080CBC82 - .align 2, 0 -_080CBC74: .4byte gUnknown_03004B00 -_080CBC78: .4byte sub_80CBC8C -_080CBC7C: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1D -_080CBC82: - strb r0, [r1] -_080CBC84: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80CBBF0 - - thumb_func_start sub_80CBC8C -sub_80CBC8C: @ 80CBC8C - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080CBC9E - cmp r0, 0x1 - beq _080CBCCE - b _080CBCEE -_080CBC9E: - ldrh r5, [r4, 0x32] - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x4E - ble _080CBCB6 - movs r0, 0x1 - strh r0, [r4, 0x34] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080CBCEE -_080CBCB6: - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __divsi3 - adds r0, r5, r0 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x36] - adds r1, 0x3 - strh r1, [r4, 0x36] - strh r0, [r4, 0x22] - b _080CBCEE -_080CBCCE: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080CBCEE - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080CBCEE - movs r0, 0 - strh r0, [r4, 0x2E] - strh r0, [r4, 0x32] - ldr r0, _080CBCF4 - str r0, [r4, 0x1C] -_080CBCEE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CBCF4: .4byte sub_80CBCF8 - thumb_func_end sub_80CBC8C - - thumb_func_start sub_80CBCF8 -sub_80CBCF8: @ 80CBCF8 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, _080CBD3C - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r3, r0, r1 - adds r0, r5, 0x1 - adds r0, r3, r0 - ldrh r2, [r4, 0x32] - movs r6, 0x32 - ldrsh r1, [r4, r6] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080CBD44 - adds r0, r5, 0x2 - adds r0, r3, r0 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x7F - bne _080CBD30 - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080CBD40 - str r0, [r4, 0x1C] -_080CBD30: - movs r0, 0 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080CBDAA - .align 2, 0 -_080CBD3C: .4byte gUnknown_083D680C -_080CBD40: .4byte sub_80CBDB0 -_080CBD44: - adds r0, r2, 0x1 - strh r0, [r4, 0x32] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - adds r1, r0, r5 - movs r2, 0 - ldrsb r2, [r1, r2] - adds r1, r5, 0x2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - muls r0, r2 - ldrh r1, [r4, 0x30] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080CBD92 - ldrh r0, [r4, 0x30] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xBE - bhi _080CBD8A - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1F - b _080CBD90 -_080CBD8A: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1D -_080CBD90: - strb r0, [r1] -_080CBD92: - movs r6, 0x30 - ldrsh r0, [r4, r6] - movs r1, 0x3C - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x14 - bl Sin - strh r0, [r4, 0x26] -_080CBDAA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80CBCF8 - - thumb_func_start sub_80CBDB0 -sub_80CBDB0: @ 80CBDB0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x14 - ble _080CBDC2 - adds r0, r4, 0 - bl move_anim_8072740 -_080CBDC2: - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CBDB0 - - thumb_func_start sub_80CBDF4 -sub_80CBDF4: @ 80CBDF4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080CBF48 - adds r5, r0, r1 - ldr r4, _080CBF4C - ldrb r0, [r4] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - strh r0, [r5, 0x10] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x14] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x16] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_807A100 - strh r0, [r5, 0x1C] - ldrb r0, [r4] - movs r1, 0 - bl sub_807A100 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0x1 - bne _080CBE5C - movs r1, 0x1 -_080CBE5C: - strh r1, [r5, 0x12] - movs r3, 0x12 - ldrsh r0, [r5, r3] - lsls r0, 6 - movs r1, 0x38 - subs r1, r0 - strh r1, [r5, 0x1A] - ldrh r0, [r5, 0x16] - subs r0, r1 - ldrh r1, [r5, 0x14] - adds r0, r1 - strh r0, [r5, 0x18] - ldr r0, _080CBF50 - movs r2, 0x18 - ldrsh r1, [r5, r2] - movs r3, 0x1A - ldrsh r2, [r5, r3] - ldrb r3, [r5, 0x10] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xC] - cmp r0, 0x40 - bne _080CBE94 - adds r0, r6, 0 - bl move_anim_task_del -_080CBE94: - ldr r4, _080CBF54 - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xA - strh r1, [r0, 0x2E] - movs r2, 0xC - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x18] - strh r1, [r0, 0x30] - movs r3, 0xC - ldrsh r0, [r5, r3] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - movs r1, 0x1C - ldrsh r0, [r5, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r5, r3] - muls r1, r0 - ldrh r0, [r5, 0x14] - subs r0, r1 - strh r0, [r2, 0x32] - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x1A] - strh r1, [r0, 0x34] - movs r1, 0xC - ldrsh r0, [r5, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r2, 0x1E - ldrsh r0, [r5, r2] - lsrs r2, r0, 31 - adds r0, r2 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r2, [r5, r3] - muls r0, r2 - ldrh r2, [r5, 0x16] - adds r0, r2 - strh r0, [r1, 0x36] - movs r3, 0xC - ldrsh r1, [r5, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl sub_80CC338 - movs r1, 0xC - ldrsh r2, [r5, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x38] - movs r2, 0xC - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl sub_80786EC - ldr r0, _080CBF58 - str r0, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CBF48: .4byte gTasks -_080CBF4C: .4byte gUnknown_0202F7C9 -_080CBF50: .4byte gSpriteTemplate_83D6884 -_080CBF54: .4byte gSprites -_080CBF58: .4byte sub_80CBF5C - thumb_func_end sub_80CBDF4 - - thumb_func_start sub_80CBF5C -sub_80CBF5C: @ 80CBF5C - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080CBFA0 - adds r6, r0, r1 - movs r0, 0xC - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080CBFA4 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r5, [r6, r1] - cmp r5, 0x7 - bne _080CBF84 - b _080CC1B4 -_080CBF84: - cmp r5, 0x7 - bgt _080CBFD2 - cmp r5, 0x3 - bne _080CBF8E - b _080CC0A6 -_080CBF8E: - cmp r5, 0x3 - bgt _080CBFA8 - cmp r5, 0x1 - beq _080CC038 - cmp r5, 0x1 - bgt _080CC088 - cmp r5, 0 - beq _080CC01A - b _080CC330 - .align 2, 0 -_080CBFA0: .4byte gTasks -_080CBFA4: .4byte gSprites -_080CBFA8: - cmp r5, 0x5 - bne _080CBFAE - b _080CC11C -_080CBFAE: - cmp r5, 0x5 - ble _080CBFB4 - b _080CC196 -_080CBFB4: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80CC358 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - bne _080CBFCA - b _080CC330 -_080CBFCA: - movs r0, 0x5 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080CC32E -_080CBFD2: - cmp r5, 0xB - bne _080CBFD8 - b _080CC298 -_080CBFD8: - cmp r5, 0xB - bgt _080CC006 - cmp r5, 0x9 - bne _080CBFE2 - b _080CC206 -_080CBFE2: - cmp r5, 0x9 - ble _080CBFE8 - b _080CC27C -_080CBFE8: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80CC358 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - bne _080CBFFE - b _080CC330 -_080CBFFE: - movs r0, 0x9 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080CC32E -_080CC006: - cmp r5, 0xD - bne _080CC00C - b _080CC30A -_080CC00C: - cmp r5, 0xD - bge _080CC012 - b _080CC2EA -_080CC012: - cmp r5, 0xFF - bne _080CC018 - b _080CC31A -_080CC018: - b _080CC330 -_080CC01A: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80CC358 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - bne _080CC030 - b _080CC330 -_080CC030: - movs r0, 0x1 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080CC32E -_080CC038: - ldrh r2, [r4, 0x24] - ldrh r3, [r4, 0x20] - adds r2, r3 - movs r0, 0 - strh r2, [r4, 0x20] - ldrh r1, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r2, [r4, 0x30] - ldrh r0, [r6, 0x14] - strh r0, [r4, 0x32] - strh r1, [r4, 0x34] - ldrh r0, [r6, 0x16] - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80CC338 - strh r0, [r4, 0x38] - ldrh r0, [r6, 0x10] - adds r0, 0x2 - strh r0, [r6, 0x10] - strh r5, [r6, 0xE] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_80786EC - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080CC32E -_080CC088: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80CC358 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - bne _080CC09E - b _080CC330 -_080CC09E: - movs r0, 0x3 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080CC32E -_080CC0A6: - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x20] - adds r1, r0 - movs r0, 0 - strh r1, [r4, 0x20] - ldrh r2, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r2, r3 - strh r2, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r1, 0x1C - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r6, r3] - muls r1, r0 - ldrh r0, [r6, 0x14] - subs r0, r1 - strh r0, [r4, 0x32] - strh r2, [r4, 0x34] - movs r1, 0x1E - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r2, 0x12 - ldrsh r1, [r6, r2] - muls r1, r0 - ldrh r0, [r6, 0x16] - subs r0, r1 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80CC338 - strh r0, [r4, 0x38] - movs r0, 0x2 - strh r0, [r6, 0xE] - ldrh r0, [r6, 0x10] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_80786EC - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080CC32E -_080CC11C: - ldrh r1, [r4, 0x24] - ldrh r3, [r4, 0x20] - adds r1, r3 - movs r0, 0 - strh r1, [r4, 0x20] - ldrh r2, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r2, r3 - strh r2, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r1, 0x1C - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r6, r3] - muls r0, r1 - ldrh r1, [r6, 0x14] - adds r0, r1 - strh r0, [r4, 0x32] - strh r2, [r4, 0x34] - movs r2, 0x1E - ldrsh r0, [r6, r2] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r6, r3] - muls r0, r1 - ldrh r1, [r6, 0x16] - adds r0, r1 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80CC338 - strh r0, [r4, 0x38] - ldrh r1, [r6, 0x10] - subs r1, 0x2 - strh r1, [r6, 0x10] - movs r0, 0x3 - strh r0, [r6, 0xE] - adds r0, r4, 0 - adds r0, 0x43 - strb r1, [r0] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_80786EC - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080CC32E -_080CC196: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80CC358 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - bne _080CC1AC - b _080CC330 -_080CC1AC: - movs r0, 0x7 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080CC32E -_080CC1B4: - ldrh r2, [r4, 0x24] - ldrh r3, [r4, 0x20] - adds r2, r3 - movs r0, 0 - strh r2, [r4, 0x20] - ldrh r1, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r2, [r4, 0x30] - ldrh r0, [r6, 0x14] - strh r0, [r4, 0x32] - strh r1, [r4, 0x34] - ldrh r0, [r6, 0x16] - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80CC338 - strh r0, [r4, 0x38] - ldrh r1, [r6, 0x10] - adds r1, 0x2 - strh r1, [r6, 0x10] - movs r0, 0x4 - strh r0, [r6, 0xE] - adds r0, r4, 0 - adds r0, 0x43 - strb r1, [r0] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_80786EC - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080CC32E -_080CC206: - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x20] - adds r1, r0 - movs r0, 0 - strh r1, [r4, 0x20] - ldrh r2, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r2, r3 - strh r2, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r1, 0x1C - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r6, r3] - muls r1, r0 - ldrh r0, [r6, 0x14] - subs r0, r1 - strh r0, [r4, 0x32] - strh r2, [r4, 0x34] - movs r1, 0x1E - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r2, 0x12 - ldrsh r1, [r6, r2] - muls r0, r1 - ldrh r3, [r6, 0x16] - adds r0, r3 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80CC338 - strh r0, [r4, 0x38] - movs r0, 0x5 - strh r0, [r6, 0xE] - ldrh r0, [r6, 0x10] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_80786EC - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080CC32E -_080CC27C: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80CC358 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080CC330 - movs r0, 0xB - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080CC32E -_080CC298: - ldrh r2, [r4, 0x24] - ldrh r0, [r4, 0x20] - adds r2, r0 - movs r0, 0 - strh r2, [r4, 0x20] - ldrh r1, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r2, [r4, 0x30] - ldrh r0, [r6, 0x18] - strh r0, [r4, 0x32] - strh r1, [r4, 0x34] - ldrh r0, [r6, 0x1A] - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80CC338 - strh r0, [r4, 0x38] - ldrh r1, [r6, 0x10] - subs r1, 0x2 - strh r1, [r6, 0x10] - movs r0, 0x6 - strh r0, [r6, 0xE] - adds r0, r4, 0 - adds r0, 0x43 - strb r1, [r0] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_80786EC - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080CC32E -_080CC2EA: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80CC358 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080CC330 - adds r0, r4, 0 - bl DestroySprite - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080CC32E -_080CC30A: - movs r1, 0x20 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080CC330 - adds r0, r2, 0 - bl move_anim_task_del - b _080CC330 -_080CC31A: - ldrh r0, [r6, 0xA] - adds r0, 0x1 - strh r0, [r6, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080CC330 - movs r0, 0 - strh r0, [r6, 0xA] - ldrh r0, [r6, 0x26] -_080CC32E: - strh r0, [r6, 0x8] -_080CC330: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80CBF5C - - thumb_func_start sub_80CC338 -sub_80CC338: @ 80CC338 - push {lr} - movs r2, 0x8 - movs r3, 0x36 - ldrsh r1, [r0, r3] - movs r3, 0x22 - ldrsh r0, [r0, r3] - cmp r1, r0 - bge _080CC34E - negs r0, r2 - lsls r0, 16 - lsrs r2, r0, 16 -_080CC34E: - lsls r0, r2, 16 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80CC338 - - thumb_func_start sub_80CC358 -sub_80CC358: @ 80CC358 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - lsls r1, 24 - lsrs r7, r1, 24 - ldrh r0, [r6, 0x24] - adds r0, 0x1 - strh r0, [r6, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _080CC3EE - movs r0, 0 - strh r0, [r6, 0x24] - ldr r0, _080CC3F8 - mov r8, r0 - movs r2, 0xC - ldrsh r1, [r6, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrh r1, [r0, 0x24] - ldrh r2, [r0, 0x20] - adds r1, r2 - ldrh r2, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r2, r0 - ldr r0, _080CC3FC - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - ldrb r3, [r6, 0x10] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080CC3EE - lsls r5, r0, 4 - adds r5, r0 - lsls r5, 2 - mov r0, r8 - adds r4, r5, r0 - strh r7, [r4, 0x3A] - movs r0, 0xC - strh r0, [r4, 0x3C] - ldr r0, _080CC400 - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - ldrh r2, [r6, 0x22] - movs r0, 0x1 - ands r0, r2 - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x22] - adds r0, 0x1 - strh r0, [r1, 0x22] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r6, 0x10] - adds r4, 0x43 - strb r0, [r4] - mov r0, r8 - adds r0, 0x1C - adds r5, r0 - ldr r0, _080CC404 - str r0, [r5] -_080CC3EE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CC3F8: .4byte gSprites -_080CC3FC: .4byte gSpriteTemplate_83D6884 -_080CC400: .4byte gTasks -_080CC404: .4byte sub_80CC408 - thumb_func_end sub_80CC358 - - thumb_func_start sub_80CC408 -sub_80CC408: @ 80CC408 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CC46A - movs r0, 0 - strh r0, [r4, 0x2E] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080CC46A - ldr r3, _080CC470 - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080CC46A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CC470: .4byte gTasks - thumb_func_end sub_80CC408 - - thumb_func_start sub_80CC474 -sub_80CC474: @ 80CC474 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, _080CC488 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CC490 - ldr r0, _080CC48C - b _080CC492 - .align 2, 0 -_080CC488: .4byte gUnknown_03004B00 -_080CC48C: .4byte gUnknown_0202F7C8 -_080CC490: - ldr r0, _080CC4B0 -_080CC492: - ldrb r6, [r0] - adds r0, r6, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CC4BC - movs r0, 0 - strh r0, [r4, 0x36] - ldr r1, _080CC4B4 - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x32] - ldr r0, _080CC4B8 - b _080CC4CC - .align 2, 0 -_080CC4B0: .4byte gUnknown_0202F7C9 -_080CC4B4: .4byte gUnknown_03004B00 -_080CC4B8: .4byte 0x0000fff0 -_080CC4BC: - movs r0, 0x1 - strh r0, [r4, 0x36] - ldr r1, _080CC4F0 - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r4, 0x32] - movs r0, 0x80 - lsls r0, 1 -_080CC4CC: - strh r0, [r4, 0x20] - adds r7, r1, 0 - adds r5, r7, 0 - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x34] - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080CC502 - cmp r0, 0x1 - bgt _080CC4F4 - cmp r0, 0 - beq _080CC4FE - b _080CC56C - .align 2, 0 -_080CC4F0: .4byte gUnknown_03004B00 -_080CC4F4: - cmp r0, 0x2 - beq _080CC508 - cmp r0, 0x3 - beq _080CC534 - b _080CC56C -_080CC4FE: - ldrh r0, [r5] - b _080CC518 -_080CC502: - ldrh r0, [r5] - strh r0, [r4, 0x22] - b _080CC54E -_080CC508: - adds r0, r6, 0 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5] - adds r0, r5 -_080CC518: - strh r0, [r4, 0x22] - adds r0, r6, 0 - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080CC56C -_080CC534: - ldr r0, _080CC578 - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r7, [r7] - adds r0, r7 - strh r0, [r4, 0x22] - movs r0, 0x1 - bl obj_id_for_side_relative_to_move -_080CC54E: - adds r0, r6, 0 - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] -_080CC56C: - ldr r0, _080CC57C - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CC578: .4byte gUnknown_0202F7C9 -_080CC57C: .4byte sub_80CC580 - thumb_func_end sub_80CC474 - - thumb_func_start sub_80CC580 -sub_80CC580: @ 80CC580 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x3C - ldrsh r3, [r4, r0] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - movs r1, 0x30 - ldrsh r2, [r4, r1] - ldr r1, _080CC5D4 - movs r5, 0x2E - ldrsh r0, [r4, r5] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - muls r0, r2 - asrs r0, 8 - strh r0, [r4, 0x26] - movs r2, 0x32 - ldrsh r0, [r4, r2] - muls r0, r3 - strh r0, [r4, 0x24] - movs r5, 0x34 - ldrsh r0, [r4, r5] - muls r0, r3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080CC5D8 - movs r2, 0x24 - ldrsh r0, [r4, r2] - movs r5, 0x20 - ldrsh r1, [r4, r5] - adds r0, r1 - cmp r0, 0xF7 - ble _080CC5F0 - b _080CC5EA - .align 2, 0 -_080CC5D4: .4byte gSineTable -_080CC5D8: - movs r1, 0x24 - ldrsh r0, [r4, r1] - movs r2, 0x20 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bgt _080CC5F0 -_080CC5EA: - adds r0, r4, 0 - bl move_anim_8074EE0 -_080CC5F0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80CC580 - - thumb_func_start sub_80CC5F8 -sub_80CC5F8: @ 80CC5F8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080CC618 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080CC61C - cmp r0, 0x1 - beq _080CC650 - b _080CC6AA - .align 2, 0 -_080CC618: .4byte gTasks -_080CC61C: - ldr r0, _080CC648 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r2, 0x80 - lsls r2, 1 - adds r4, r2, 0 - adds r0, r4 - strh r0, [r5, 0x18] - ldr r0, _080CC64C - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - adds r0, r4 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080CC6AA - .align 2, 0 -_080CC648: .4byte 0x0000274f -_080CC64C: .4byte 0x000027b0 -_080CC650: - ldrh r0, [r5, 0x1A] - adds r0, 0x1 - movs r7, 0 - strh r0, [r5, 0x1A] - lsls r0, 16 - cmp r0, 0 - blt _080CC6AA - strh r7, [r5, 0x1A] - ldrh r0, [r5, 0x18] - ldrb r2, [r5, 0x1C] - ldr r4, _080CC6C4 - movs r3, 0x1E - ldrsh r1, [r5, r3] - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - movs r1, 0x10 - bl BlendPalette - ldrh r0, [r5, 0x20] - ldrb r2, [r5, 0x1C] - movs r3, 0x1E - ldrsh r1, [r5, r3] - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - movs r1, 0x10 - bl BlendPalette - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x11 - bne _080CC6AA - strh r7, [r5, 0x1C] - ldrh r0, [r5, 0x1E] - adds r0, 0x1 - strh r0, [r5, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bne _080CC6AA - strh r7, [r5, 0x1E] -_080CC6AA: - ldr r0, _080CC6C8 - movs r2, 0xE - ldrsh r1, [r0, r2] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080CC6BE - adds r0, r6, 0 - bl move_anim_task_del -_080CC6BE: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CC6C4: .4byte gUnknown_083D6984 -_080CC6C8: .4byte gUnknown_03004B00 - thumb_func_end sub_80CC5F8 - - thumb_func_start sub_80CC6CC -sub_80CC6CC: @ 80CC6CC - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldr r1, _080CC6E4 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080CC6E8 - adds r0, r6, 0 - bl move_anim_8072740 - b _080CC7C2 - .align 2, 0 -_080CC6E4: .4byte gUnknown_03004B00 -_080CC6E8: - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080CC6F8 - ldr r4, _080CC6F4 - b _080CC6FA - .align 2, 0 -_080CC6F4: .4byte gUnknown_0202F7C8 -_080CC6F8: - ldr r4, _080CC734 -_080CC6FA: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080CC738 - ldrh r1, [r0, 0x8] - strh r1, [r6, 0x2E] - movs r3, 0x2 - ldrsh r1, [r0, r3] - adds r7, r0, 0 - cmp r1, 0 - bne _080CC73C - ldrh r0, [r7, 0x4] - adds r0, r5 - strh r0, [r6, 0x20] - ldrh r0, [r7, 0x6] - adds r0, r2 - strh r0, [r6, 0x22] - strh r5, [r6, 0x38] - strh r2, [r6, 0x3A] - b _080CC74C - .align 2, 0 -_080CC734: .4byte gUnknown_0202F7C9 -_080CC738: .4byte gUnknown_03004B00 -_080CC73C: - strh r5, [r6, 0x20] - strh r2, [r6, 0x22] - ldrh r0, [r7, 0x4] - adds r0, r5 - strh r0, [r6, 0x38] - ldrh r0, [r7, 0x6] - adds r0, r2 - strh r0, [r6, 0x3A] -_080CC74C: - ldrh r4, [r6, 0x20] - lsls r0, r4, 4 - strh r0, [r6, 0x30] - ldrh r5, [r6, 0x22] - lsls r0, r5, 4 - strh r0, [r6, 0x32] - movs r1, 0x38 - ldrsh r0, [r6, r1] - movs r2, 0x20 - ldrsh r1, [r6, r2] - subs r0, r1 - lsls r0, 4 - movs r3, 0x8 - ldrsh r1, [r7, r3] - bl __divsi3 - strh r0, [r6, 0x34] - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r2, 0x22 - ldrsh r1, [r6, r2] - subs r0, r1 - lsls r0, 4 - movs r3, 0x8 - ldrsh r1, [r7, r3] - bl __divsi3 - strh r0, [r6, 0x36] - ldrh r0, [r6, 0x38] - subs r0, r4 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r6, 0x3A] - subs r1, r5 - lsls r1, 16 - asrs r1, 16 - bl sub_80790F0 - lsls r0, 16 - lsrs r4, r0, 16 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CC7AE - ldr r1, _080CC7CC - adds r0, r4, r1 - lsls r0, 16 - lsrs r4, r0, 16 -_080CC7AE: - movs r3, 0x80 - lsls r3, 1 - str r4, [sp] - adds r0, r6, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8078FDC - ldr r0, _080CC7D0 - str r0, [r6, 0x1C] -_080CC7C2: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CC7CC: .4byte 0xffff8000 -_080CC7D0: .4byte sub_80CC7D4 - thumb_func_end sub_80CC6CC - - thumb_func_start sub_80CC7D4 -sub_80CC7D4: @ 80CC7D4 - push {r4,lr} - adds r2, r0, 0 - ldrh r3, [r2, 0x2E] - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _080CC804 - ldrh r0, [r2, 0x34] - ldrh r4, [r2, 0x30] - adds r0, r4 - strh r0, [r2, 0x30] - ldrh r1, [r2, 0x36] - ldrh r4, [r2, 0x32] - adds r1, r4 - strh r1, [r2, 0x32] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r2, 0x22] - subs r0, r3, 0x1 - strh r0, [r2, 0x2E] - b _080CC80A -_080CC804: - adds r0, r2, 0 - bl move_anim_8074EE0 -_080CC80A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CC7D4 - - thumb_func_start sub_80CC810 -sub_80CC810: @ 80CC810 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080CC826 - adds r0, r2, 0 - bl move_anim_8072740 -_080CC826: - pop {r0} - bx r0 - thumb_func_end sub_80CC810 - - thumb_func_start sub_80CC82C -sub_80CC82C: @ 80CC82C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080CC84C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CC854 - ldr r2, _080CC850 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - b _080CC860 - .align 2, 0 -_080CC84C: .4byte gUnknown_0202F7C8 -_080CC850: .4byte gUnknown_03004B00 -_080CC854: - ldr r0, _080CC878 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] -_080CC860: - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080CC87C - str r0, [r4, 0x1C] - ldr r1, _080CC880 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CC878: .4byte gUnknown_03004B00 -_080CC87C: .4byte sub_8078600 -_080CC880: .4byte move_anim_8072740 - thumb_func_end sub_80CC82C - - thumb_func_start sub_80CC884 -sub_80CC884: @ 80CC884 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080CC8BC - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CC89E - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080CC89E: - ldr r0, _080CC8C0 - str r0, [r5, 0x1C] - ldr r4, _080CC8C4 - movs r0, 0 - ldrsh r1, [r4, r0] - adds r0, r5, 0 - bl sub_807867C - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CC8BC: .4byte gUnknown_0202F7C8 -_080CC8C0: .4byte sub_80CC810 -_080CC8C4: .4byte gUnknown_03004B00 - thumb_func_end sub_80CC884 - - thumb_func_start sub_80CC8C8 -sub_80CC8C8: @ 80CC8C8 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080CC908 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x38] - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl StartSpriteAffineAnim - ldr r1, _080CC90C - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CC910 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CC908: .4byte gUnknown_03004B00 -_080CC90C: .4byte move_anim_8074EE0 -_080CC910: .4byte sub_8078504 - thumb_func_end sub_80CC8C8 - - thumb_func_start sub_80CC914 -sub_80CC914: @ 80CC914 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080CC964 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CC948 - ldrh r0, [r5, 0x22] - adds r0, 0x8 - strh r0, [r5, 0x22] -_080CC948: - ldr r0, _080CC968 - str r0, [r5, 0x1C] - ldr r0, _080CC96C - movs r2, 0x4 - ldrsh r1, [r0, r2] - adds r3, r0, 0 - cmp r1, 0 - bne _080CC970 - ldrh r0, [r3] - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x20] - b _080CC984 - .align 2, 0 -_080CC964: .4byte gUnknown_0202F7C9 -_080CC968: .4byte sub_80CCB00 -_080CC96C: .4byte gUnknown_03004B00 -_080CC970: - ldrh r0, [r5, 0x20] - ldrh r1, [r3] - subs r0, r1 - strh r0, [r5, 0x20] - adds r2, r5, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_080CC984: - ldrh r0, [r3, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldr r1, _080CC9B8 - adds r0, r1, 0 - ldrh r2, [r5, 0x30] - adds r1, r0, r2 - strh r1, [r5, 0x30] - movs r2, 0x80 - lsls r2, 3 - adds r0, r2, 0 - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] - ldrh r0, [r3, 0x4] - strh r0, [r5, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080CC9B2 - negs r0, r1 - strh r0, [r5, 0x30] -_080CC9B2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CC9B8: .4byte 0xfffffc00 - thumb_func_end sub_80CC914 - - thumb_func_start sub_80CC9BC -sub_80CC9BC: @ 80CC9BC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldr r0, _080CC9D8 - movs r1, 0x6 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080CC9DC - cmp r0, 0x1 - ble _080CCA58 - cmp r0, 0x2 - beq _080CC9FC - b _080CCA58 - .align 2, 0 -_080CC9D8: .4byte gUnknown_03004B00 -_080CC9DC: - ldr r5, _080CC9F8 - ldrb r0, [r5] - movs r4, 0x2 - eors r0, r4 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r5] - eors r4, r0 - adds r0, r4, 0 - b _080CCA68 - .align 2, 0 -_080CC9F8: .4byte gUnknown_0202F7C9 -_080CC9FC: - ldr r5, _080CCA54 - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r5] - movs r2, 0x2 - mov r8, r2 - mov r1, r8 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080CCA72 - ldrb r0, [r5] - mov r2, r8 - eors r0, r2 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r7 - lsrs r7, r0, 1 - ldrb r0, [r5] - mov r1, r8 - eors r0, r1 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - lsrs r4, r0, 1 - b _080CCA72 - .align 2, 0 -_080CCA54: .4byte gUnknown_0202F7C9 -_080CCA58: - ldr r4, _080CCAA4 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r4] -_080CCA68: - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r4, r0, 24 -_080CCA72: - strh r7, [r6, 0x20] - strh r4, [r6, 0x22] - ldr r0, _080CCAA4 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CCA8A - ldrh r0, [r6, 0x22] - adds r0, 0x8 - strh r0, [r6, 0x22] -_080CCA8A: - ldr r0, _080CCAA8 - str r0, [r6, 0x1C] - ldr r0, _080CCAAC - movs r2, 0x4 - ldrsh r1, [r0, r2] - adds r3, r0, 0 - cmp r1, 0 - bne _080CCAB0 - ldrh r0, [r3] - ldrh r1, [r6, 0x20] - adds r0, r1 - strh r0, [r6, 0x20] - b _080CCAC4 - .align 2, 0 -_080CCAA4: .4byte gUnknown_0202F7C9 -_080CCAA8: .4byte sub_80CCB00 -_080CCAAC: .4byte gUnknown_03004B00 -_080CCAB0: - ldrh r0, [r6, 0x20] - ldrh r1, [r3] - subs r0, r1 - strh r0, [r6, 0x20] - adds r2, r6, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_080CCAC4: - ldrh r0, [r3, 0x2] - ldrh r2, [r6, 0x22] - adds r0, r2 - strh r0, [r6, 0x22] - ldr r1, _080CCAFC - adds r0, r1, 0 - ldrh r2, [r6, 0x30] - adds r1, r0, r2 - strh r1, [r6, 0x30] - movs r2, 0x80 - lsls r2, 3 - adds r0, r2, 0 - ldrh r2, [r6, 0x32] - adds r0, r2 - strh r0, [r6, 0x32] - ldrh r0, [r3, 0x4] - strh r0, [r6, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080CCAF2 - negs r0, r1 - strh r0, [r6, 0x30] -_080CCAF2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CCAFC: .4byte 0xfffffc00 - thumb_func_end sub_80CC9BC - - thumb_func_start sub_80CCB00 -sub_80CCB00: @ 80CCB00 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - ldrh r2, [r4, 0x34] - adds r0, r1, r2 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080CCB22 - adds r0, r1, 0 - adds r0, 0x18 - b _080CCB26 -_080CCB22: - adds r0, r1, 0 - subs r0, 0x18 -_080CCB26: - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - subs r0, 0x18 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080CCB5C - ldr r1, _080CCB64 - adds r0, r4, 0 - bl oamt_set_x3A_32 - movs r0, 0x3 - strh r0, [r4, 0x2E] - ldr r0, _080CCB68 - str r0, [r4, 0x1C] -_080CCB5C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CCB64: .4byte move_anim_8072740 -_080CCB68: .4byte sub_80782D8 - thumb_func_end sub_80CCB00 - - thumb_func_start unref_sub_80CCB6C -unref_sub_80CCB6C: @ 80CCB6C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x32] - movs r2, 0x32 - ldrsh r0, [r5, r2] - cmp r0, 0x1 - ble _080CCC10 - ldrh r1, [r5, 0x34] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CCBC8 - adds r3, r5, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r1 - strb r0, [r3] - ldr r4, _080CCBC4 - movs r0, 0x2E - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r3, [r0] - adds r1, r2, 0 - ands r1, r3 - strb r1, [r0] - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - b _080CCBFE - .align 2, 0 -_080CCBC4: .4byte gSprites -_080CCBC8: - adds r1, r5, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldr r3, _080CCC0C - movs r0, 0x2E - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] -_080CCBFE: - movs r0, 0 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - b _080CCC14 - .align 2, 0 -_080CCC0C: .4byte gSprites -_080CCC10: - adds r0, r1, 0x1 - strh r0, [r5, 0x32] -_080CCC14: - movs r1, 0x34 - ldrsh r0, [r5, r1] - cmp r0, 0xA - bne _080CCC44 - movs r2, 0x2E - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080CCC4C - adds r0, r4 - bl DestroySprite - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - adds r0, r5, 0 - bl move_anim_8072740 -_080CCC44: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CCC4C: .4byte gSprites - thumb_func_end unref_sub_80CCB6C - - thumb_func_start sub_80CCC50 -sub_80CCC50: @ 80CCC50 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080CCC70 - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x2E] - ldr r0, _080CCC74 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CCC78 - ldrh r0, [r5, 0x20] - ldrh r1, [r4] - subs r0, r1 - b _080CCC7E - .align 2, 0 -_080CCC70: .4byte gUnknown_03004B00 -_080CCC74: .4byte gUnknown_0202F7C8 -_080CCC78: - ldrh r0, [r4] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080CCC7E: - strh r0, [r5, 0x20] - ldr r4, _080CCCAC - ldrb r1, [r4, 0xA] - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x6] - negs r0, r0 - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x34] - ldr r1, _080CCCB0 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CCCAC: .4byte gUnknown_03004B00 -_080CCCB0: .4byte sub_80CCCB4 - thumb_func_end sub_80CCC50 - - thumb_func_start sub_80CCCB4 -sub_80CCCB4: @ 80CCCB4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x64 - bl Cos - strh r0, [r4, 0x24] - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r1, 0x14 - bl Sin - strh r0, [r4, 0x26] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x7F - bgt _080CCCE0 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0 - b _080CCCE6 -_080CCCE0: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0xE -_080CCCE6: - strb r0, [r1] - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x2E] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x38] - adds r0, 0x82 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x34 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080CCD1C - adds r0, r4, 0 - bl move_anim_8072740 -_080CCD1C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CCCB4 - - thumb_func_start sub_80CCD24 -sub_80CCD24: @ 80CCD24 - push {r4-r6,lr} - adds r5, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CCD3A - ldr r1, _080CCD98 - ldrh r0, [r1, 0x2] - adds r0, 0x8 - strh r0, [r1, 0x2] -_080CCD3A: - ldr r6, _080CCD9C - ldrb r0, [r6] - movs r1, 0 - bl sub_8077EE4 - lsls r0, 24 - ldr r4, _080CCD98 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8077EE4 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r5, 0x22] - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CCD78 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CCDA0 -_080CCD78: - ldrb r0, [r6] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r5, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x5] - b _080CCDB8 - .align 2, 0 -_080CCD98: .4byte gUnknown_03004B00 -_080CCD9C: .4byte gUnknown_0202F7C8 -_080CCDA0: - ldrb r0, [r6] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] -_080CCDB8: - ldr r0, _080CCDF8 - ldrh r0, [r0, 0x4] - strh r0, [r5, 0x2E] - ldr r0, _080CCDFC - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r3, 0x80 - lsls r3, 1 - adds r0, r3 - strh r0, [r5, 0x32] - movs r2, 0x10 - movs r0, 0x10 - strh r0, [r5, 0x3C] - ldr r1, _080CCE00 - movs r3, 0xFD - lsls r3, 6 - adds r0, r3, 0 - strh r0, [r1] - ldr r3, _080CCE04 - ldrh r1, [r5, 0x3C] - lsls r0, r1, 8 - subs r2, r1 - orrs r0, r2 - strh r0, [r3] - ldr r0, _080CCE08 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CCDF8: .4byte gUnknown_03004B00 -_080CCDFC: .4byte 0x00002828 -_080CCE00: .4byte REG_BLDCNT -_080CCE04: .4byte REG_BLDALPHA -_080CCE08: .4byte sub_80CCE0C - thumb_func_end sub_80CCD24 - - thumb_func_start sub_80CCE0C -sub_80CCE0C: @ 80CCE0C - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - adds r0, 0x60 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CCE6A - movs r0, 0 - strh r0, [r4, 0x30] - ldr r1, _080CCEB0 - movs r2, 0x32 - ldrsh r0, [r4, r2] - adds r0, 0x1 - lsls r0, 1 - adds r0, r1 - ldrh r5, [r0] - movs r2, 0 - adds r6, r1, 0 - adds r3, r6, 0 -_080CCE44: - movs r1, 0x32 - ldrsh r0, [r4, r1] - adds r2, 0x1 - adds r0, r2 - lsls r1, r0, 1 - adds r1, r3 - adds r0, 0x1 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - cmp r2, 0x5 - ble _080CCE44 - movs r2, 0x32 - ldrsh r0, [r4, r2] - adds r0, 0x7 - lsls r0, 1 - adds r0, r6 - strh r5, [r0] -_080CCE6A: - ldrh r2, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x6 - ble _080CCE9E - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - ble _080CCEB8 - ldrh r0, [r4, 0x3A] - adds r0, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CCE9E - movs r0, 0 - strh r0, [r4, 0x3A] - subs r2, 0x1 - strh r2, [r4, 0x3C] - ldr r3, _080CCEB4 - lsls r1, r2, 8 - movs r0, 0x10 - subs r0, r2 - orrs r1, r0 - strh r1, [r3] -_080CCE9E: - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080CCEB8 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - b _080CCEF4 - .align 2, 0 -_080CCEB0: .4byte gPlttBufferFaded -_080CCEB4: .4byte REG_BLDALPHA -_080CCEB8: - ldrh r0, [r4, 0x3A] - adds r0, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CCEF4 - movs r0, 0 - strh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - adds r1, 0x1 - strh r1, [r4, 0x3C] - ldr r3, _080CCEFC - lsls r2, r1, 8 - movs r0, 0x10 - subs r0, r1 - orrs r2, r0 - strh r2, [r3] - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080CCEF4 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080CCF00 - str r0, [r4, 0x1C] -_080CCEF4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CCEFC: .4byte REG_BLDALPHA -_080CCF00: .4byte sub_807861C - thumb_func_end sub_80CCE0C - - thumb_func_start sub_80CCF04 -sub_80CCF04: @ 80CCF04 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080CCF5C - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080CCF60 - adds r0, r1 - strh r0, [r4, 0x22] - strh r5, [r4, 0x2E] - strh r5, [r4, 0x30] - strh r5, [r4, 0x32] - strh r5, [r4, 0x34] - strh r5, [r4, 0x36] - strh r5, [r4, 0x3A] - movs r0, 0x10 - strh r0, [r4, 0x3C] - ldr r1, _080CCF64 - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080CCF68 - ldrh r0, [r4, 0x3C] - lsls r0, 8 - ldrh r1, [r4, 0x3A] - orrs r0, r1 - strh r0, [r2] - ldr r0, _080CCF6C - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CCF5C: .4byte gUnknown_0202F7C9 -_080CCF60: .4byte 0x0000ffe8 -_080CCF64: .4byte REG_BLDCNT -_080CCF68: .4byte REG_BLDALPHA -_080CCF6C: .4byte sub_80CCF70 - thumb_func_end sub_80CCF04 - - thumb_func_start sub_80CCF70 -sub_80CCF70: @ 80CCF70 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080CCF7E - b _080CD0C0 -_080CCF7E: - lsls r0, 2 - ldr r1, _080CCF88 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CCF88: .4byte _080CCF8C - .align 2, 0 -_080CCF8C: - .4byte _080CCFA0 - .4byte _080CD004 - .4byte _080CD020 - .4byte _080CD09C - .4byte _080CD0B0 -_080CCFA0: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - cmp r0, 0 - bgt _080CCFAE - b _080CD0C0 -_080CCFAE: - movs r0, 0 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CCFD0 - ldrh r1, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080CCFDE - adds r0, r1, 0x1 - strh r0, [r4, 0x3A] - b _080CCFDE -_080CCFD0: - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080CCFDE - subs r0, r1, 0x1 - strh r0, [r4, 0x3C] -_080CCFDE: - ldr r2, _080CD000 - ldrh r0, [r4, 0x3C] - lsls r0, 8 - ldrh r1, [r4, 0x3A] - orrs r0, r1 - strh r0, [r2] - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080CD0C0 - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080CD0C0 - strh r0, [r4, 0x30] - b _080CD0A8 - .align 2, 0 -_080CD000: .4byte REG_BLDALPHA -_080CD004: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080CD0C0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080CD0A8 -_080CD020: - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x4 - bl sub_80CD0CC - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080CD042 - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] -_080CD042: - ldrh r0, [r4, 0x32] - adds r1, r0, 0x1 - strh r1, [r4, 0x32] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x1D - ble _080CD0C0 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080CD068 - ldrh r1, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080CD076 - subs r0, r1, 0x1 - strh r0, [r4, 0x3A] - b _080CD076 -_080CD068: - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080CD076 - adds r0, r1, 0x1 - strh r0, [r4, 0x3C] -_080CD076: - ldr r0, _080CD098 - ldrh r1, [r4, 0x3C] - lsls r1, 8 - ldrh r2, [r4, 0x3A] - orrs r1, r2 - strh r1, [r0] - movs r0, 0x3A - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _080CD0C0 - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x10 - bne _080CD0C0 - strh r1, [r4, 0x30] - strh r1, [r4, 0x32] - b _080CD0A8 - .align 2, 0 -_080CD098: .4byte REG_BLDALPHA -_080CD09C: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080CD0A8: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080CD0C0 -_080CD0B0: - ldr r0, _080CD0C8 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r4, 0 - bl move_anim_8072740 -_080CD0C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CD0C8: .4byte REG_BLDCNT - thumb_func_end sub_80CCF70 - - thumb_func_start sub_80CD0CC -sub_80CD0CC: @ 80CD0CC - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0xB - bgt _080CD0DE - ldrh r0, [r4, 0x36] - adds r0, 0x2 - strh r0, [r4, 0x36] -_080CD0DE: - ldrh r5, [r4, 0x34] - adds r0, r5, 0 - subs r0, 0x12 - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - cmp r0, 0x17 - bhi _080CD0F4 - ldrh r0, [r4, 0x36] - subs r0, 0x2 - strh r0, [r4, 0x36] -_080CD0F4: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x2F - ble _080CD102 - ldrh r0, [r4, 0x36] - adds r0, 0x2 - strh r0, [r4, 0x36] -_080CD102: - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0x9 - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xE - bl __divsi3 - strh r0, [r4, 0x26] - lsls r0, 16 - cmp r0, 0 - bge _080CD128 - movs r1, 0x26 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0x26] -_080CD128: - adds r0, r5, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - ble _080CD138 - movs r0, 0 - strh r0, [r4, 0x34] -_080CD138: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80CD0CC - - thumb_func_start sub_80CD140 -sub_80CD140: @ 80CD140 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080CD184 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080CD154 - adds r0, r4, 0 - bl sub_8078650 -_080CD154: - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_807867C - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x32] - ldr r1, _080CD188 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CD18C - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CD184: .4byte gUnknown_03004B00 -_080CD188: .4byte move_anim_8072740 -_080CD18C: .4byte sub_8078394 - thumb_func_end sub_80CD140 - - thumb_func_start sub_80CD190 -sub_80CD190: @ 80CD190 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080CD1A4 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CD1AC - ldr r0, _080CD1A8 - b _080CD1AE - .align 2, 0 -_080CD1A4: .4byte gUnknown_03004B00 -_080CD1A8: .4byte gUnknown_0202F7C8 -_080CD1AC: - ldr r0, _080CD1F0 -_080CD1AE: - ldrb r6, [r0] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080CD1F8 - movs r1, 0x2 - adds r0, r6, 0 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080CD1F8 - ldr r4, _080CD1F4 - ldrb r1, [r4, 0xC] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - adds r0, r6, 0 - bl sub_807A3FC - movs r2, 0 - ldrsh r1, [r4, r2] - adds r0, r5, 0 - bl sub_807867C - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - b _080CD248 - .align 2, 0 -_080CD1F0: .4byte gUnknown_0202F7C9 -_080CD1F4: .4byte gUnknown_03004B00 -_080CD1F8: - ldr r4, _080CD218 - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080CD21C - adds r0, r6, 0 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x1 - b _080CD22E - .align 2, 0 -_080CD218: .4byte gUnknown_03004B00 -_080CD21C: - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x3 -_080CD22E: - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r5, 0x22] - ldr r0, _080CD268 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r0, r5, 0 - bl sub_807867C -_080CD248: - ldr r1, _080CD268 - ldrh r0, [r1, 0xA] - strh r0, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x32] - ldr r1, _080CD26C - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080CD270 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CD268: .4byte gUnknown_03004B00 -_080CD26C: .4byte move_anim_8072740 -_080CD270: .4byte sub_8078394 - thumb_func_end sub_80CD190 - - thumb_func_start sub_80CD274 -sub_80CD274: @ 80CD274 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078650 - ldr r0, _080CD2A0 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CD2A8 - ldr r0, _080CD2A4 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - b _080CD2C2 - .align 2, 0 -_080CD2A0: .4byte gUnknown_0202F7C8 -_080CD2A4: .4byte gUnknown_03004B00 -_080CD2A8: - ldr r2, _080CD2CC - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080CD2C2: - ldr r0, _080CD2D0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CD2CC: .4byte gUnknown_03004B00 -_080CD2D0: .4byte sub_80CD2D4 - thumb_func_end sub_80CD274 - - thumb_func_start sub_80CD2D4 -sub_80CD2D4: @ 80CD2D4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _080CD30C - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r0, 0x1E - subs r0, r1 - movs r1, 0x3 - bl __divsi3 - strh r0, [r4, 0x26] - movs r1, 0x30 - ldrsh r0, [r4, r1] - lsls r0, 18 - asrs r0, 16 - movs r1, 0x3 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_080CD30C: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080CD320 - adds r0, r4, 0 - bl move_anim_8072740 -_080CD320: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CD2D4 - - thumb_func_start sub_80CD328 -sub_80CD328: @ 80CD328 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078650 - ldr r0, _080CD358 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CD360 - ldr r1, _080CD35C - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0x1 - strh r0, [r4, 0x34] - b _080CD37E - .align 2, 0 -_080CD358: .4byte gUnknown_0202F7C8 -_080CD35C: .4byte gUnknown_03004B00 -_080CD360: - ldr r2, _080CD388 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldr r0, _080CD38C - strh r0, [r4, 0x34] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080CD37E: - ldr r0, _080CD390 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CD388: .4byte gUnknown_03004B00 -_080CD38C: .4byte 0x0000ffff -_080CD390: .4byte sub_80CD394 - thumb_func_end sub_80CD328 - - thumb_func_start sub_80CD394 -sub_80CD394: @ 80CD394 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x28 - bl __divsi3 - negs r0, r0 - strh r0, [r4, 0x26] - movs r2, 0x36 - ldrsh r0, [r4, r2] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 1 - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080CD3D8 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080CD3D8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CD394 - - thumb_func_start sub_80CD3E0 -sub_80CD3E0: @ 80CD3E0 - push {lr} - ldrh r1, [r0, 0x20] - subs r1, 0x20 - strh r1, [r0, 0x20] - ldrh r1, [r0, 0x22] - subs r1, 0x20 - strh r1, [r0, 0x22] - movs r1, 0x14 - strh r1, [r0, 0x2E] - ldr r1, _080CD400 - str r1, [r0, 0x1C] - ldr r1, _080CD404 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080CD400: .4byte sub_80782D8 -_080CD404: .4byte sub_80CD408 - thumb_func_end sub_80CD3E0 - - thumb_func_start sub_80CD408 -sub_80CD408: @ 80CD408 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r6, [r5, 0x38] - movs r1, 0x1 - adds r0, r1, 0 - ands r0, r6 - cmp r0, 0 - beq _080CD41E - cmp r0, 0x1 - beq _080CD438 - b _080CD49E -_080CD41E: - strh r1, [r5, 0x2E] - ldr r0, _080CD430 - str r0, [r5, 0x1C] - ldr r1, _080CD434 - adds r0, r5, 0 - bl oamt_set_x3A_32 - b _080CD49E - .align 2, 0 -_080CD430: .4byte sub_80782D8 -_080CD434: .4byte sub_80CD408 -_080CD438: - ldrh r3, [r5, 0x24] - ldrh r0, [r5, 0x20] - adds r3, r0 - movs r0, 0 - strh r3, [r5, 0x20] - ldrh r4, [r5, 0x26] - ldrh r1, [r5, 0x22] - adds r4, r1 - strh r4, [r5, 0x22] - strh r0, [r5, 0x26] - strh r0, [r5, 0x24] - movs r0, 0x8 - strh r0, [r5, 0x2E] - ldr r2, _080CD4AC - lsls r0, r6, 16 - asrs r0, 24 - lsls r0, 1 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - adds r3, r1 - strh r3, [r5, 0x32] - adds r2, 0x1 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r4, r0 - strh r4, [r5, 0x36] - ldr r0, _080CD4B0 - str r0, [r5, 0x1C] - ldr r1, _080CD4B4 - adds r0, r5, 0 - bl oamt_set_x3A_32 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r5, 0x38] - adds r0, r1 - strh r0, [r5, 0x38] - movs r0, 0x3F - bl sub_8076F98 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xD2 - bl PlaySE12WithPanning -_080CD49E: - ldrh r0, [r5, 0x38] - movs r1, 0x1 - eors r0, r1 - strh r0, [r5, 0x38] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CD4AC: .4byte gUnknown_083D6DDC -_080CD4B0: .4byte sub_8078B34 -_080CD4B4: .4byte sub_80CD4B8 - thumb_func_end sub_80CD408 - - thumb_func_start sub_80CD4B8 -sub_80CD4B8: @ 80CD4B8 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x38] - lsls r0, 16 - asrs r0, 24 - cmp r0, 0x4 - bne _080CD4E0 - movs r0, 0xA - strh r0, [r2, 0x2E] - ldr r0, _080CD4D8 - str r0, [r2, 0x1C] - ldr r1, _080CD4DC - adds r0, r2, 0 - bl oamt_set_x3A_32 - b _080CD4E4 - .align 2, 0 -_080CD4D8: .4byte sub_80782D8 -_080CD4DC: .4byte sub_80CD4EC -_080CD4E0: - ldr r0, _080CD4E8 - str r0, [r2, 0x1C] -_080CD4E4: - pop {r0} - bx r0 - .align 2, 0 -_080CD4E8: .4byte sub_80CD408 - thumb_func_end sub_80CD4B8 - - thumb_func_start sub_80CD4EC -sub_80CD4EC: @ 80CD4EC - push {r4-r7,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x6] - cmp r1, 0 - bne _080CD514 - movs r0, 0x3 - strh r0, [r5, 0x2E] - strh r1, [r5, 0x30] - strh r1, [r5, 0x32] - ldr r0, _080CD50C - str r0, [r5, 0x1C] - ldr r1, _080CD510 - adds r0, r5, 0 - bl oamt_set_x3A_32 - b _080CD594 - .align 2, 0 -_080CD50C: .4byte sub_80782D8 -_080CD510: .4byte sub_80CD5A8 -_080CD514: - ldrh r0, [r5, 0x6] - cmp r0, 0x2 - beq _080CD534 - cmp r0, 0x2 - bgt _080CD524 - cmp r0, 0x1 - beq _080CD52A - b _080CD548 -_080CD524: - cmp r0, 0x3 - beq _080CD53C - b _080CD548 -_080CD52A: - ldr r6, _080CD530 - adds r7, r6, 0 - b _080CD54C - .align 2, 0 -_080CD530: .4byte 0x0000fff8 -_080CD534: - ldr r7, _080CD538 - b _080CD54A - .align 2, 0 -_080CD538: .4byte 0x0000fff8 -_080CD53C: - movs r7, 0x8 - ldr r6, _080CD544 - b _080CD54C - .align 2, 0 -_080CD544: .4byte 0x0000fff8 -_080CD548: - movs r7, 0x8 -_080CD54A: - movs r6, 0x8 -_080CD54C: - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - movs r0, 0x6 - strh r0, [r5, 0x2E] - ldr r4, _080CD59C - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r7 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x36] - ldr r0, _080CD5A0 - str r0, [r5, 0x1C] - ldr r1, _080CD5A4 - adds r0, r5, 0 - bl oamt_set_x3A_32 -_080CD594: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CD59C: .4byte gUnknown_0202F7C9 -_080CD5A0: .4byte sub_8078B34 -_080CD5A4: .4byte sub_80CD654 - thumb_func_end sub_80CD4EC - - thumb_func_start sub_80CD5A8 -sub_80CD5A8: @ 80CD5A8 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080CD5C8 - ldrh r0, [r4, 0x30] - adds r0, 0x3 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080CD5D8 - movs r0, 0x10 - b _080CD5D6 -_080CD5C8: - ldrh r0, [r4, 0x30] - subs r0, 0x3 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bge _080CD5D8 - movs r0, 0 -_080CD5D6: - strh r0, [r4, 0x30] -_080CD5D8: - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x1 - bl sub_80791A8 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080CD634 - bl BlendPalettes - movs r3, 0x30 - ldrsh r0, [r4, r3] - cmp r0, 0x10 - bne _080CD640 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - ldrb r1, [r4, 0x5] - lsrs r1, 4 - lsls r0, r1, 5 - ldr r2, _080CD638 - adds r0, r2 - lsls r1, 4 - ldr r3, _080CD63C - adds r2, r3, 0 - orrs r1, r2 - movs r2, 0x4 - bl LoadPalette - movs r0, 0x3F - bl sub_8076F98 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xC0 - bl PlaySE12WithPanning - b _080CD648 - .align 2, 0 -_080CD634: .4byte 0x00007fff -_080CD638: .4byte gPlttBufferUnfaded + 0x210 -_080CD63C: .4byte 0x00000101 -_080CD640: - cmp r0, 0 - bne _080CD648 - ldr r0, _080CD650 - str r0, [r4, 0x1C] -_080CD648: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CD650: .4byte sub_80CD654 - thumb_func_end sub_80CD5A8 - - thumb_func_start sub_80CD654 -sub_80CD654: @ 80CD654 - push {lr} - adds r2, r0, 0 - ldr r0, _080CD670 - ldrh r1, [r0, 0xE] - ldr r0, _080CD674 - cmp r1, r0 - bne _080CD66C - movs r0, 0 - strh r0, [r2, 0x30] - strh r0, [r2, 0x2E] - ldr r0, _080CD678 - str r0, [r2, 0x1C] -_080CD66C: - pop {r0} - bx r0 - .align 2, 0 -_080CD670: .4byte gUnknown_03004B00 -_080CD674: .4byte 0x0000ffff -_080CD678: .4byte sub_80CD67C - thumb_func_end sub_80CD654 - - thumb_func_start sub_80CD67C -sub_80CD67C: @ 80CD67C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080CD6B0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080CD6B0: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x8 - bne _080CD6C4 - adds r0, r4, 0 - bl move_anim_8072740 -_080CD6C4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CD67C - - thumb_func_start sub_80CD6CC -sub_80CD6CC: @ 80CD6CC - push {r4,lr} - adds r3, r0, 0 - ldr r0, _080CD6EC - ldrh r0, [r0] - strh r0, [r3, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080CD6F0 - ldrh r0, [r3, 0x20] - subs r0, 0x18 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x22] - subs r0, 0x18 - strh r0, [r3, 0x22] - b _080CD742 - .align 2, 0 -_080CD6EC: .4byte gUnknown_03004B00 -_080CD6F0: - cmp r0, 0x2 - bne _080CD70C - ldrh r0, [r3, 0x20] - subs r0, 0x18 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x22] - adds r0, 0x18 - strh r0, [r3, 0x22] - ldrb r1, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x20 - b _080CD73E -_080CD70C: - cmp r0, 0x3 - bne _080CD728 - ldrh r0, [r3, 0x20] - adds r0, 0x18 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x22] - subs r0, 0x18 - strh r0, [r3, 0x22] - ldrb r1, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - b _080CD73E -_080CD728: - ldrh r0, [r3, 0x20] - adds r0, 0x18 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x22] - adds r0, 0x18 - strh r0, [r3, 0x22] - ldrb r1, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x30 -_080CD73E: - orrs r0, r1 - strb r0, [r3, 0x3] -_080CD742: - ldrh r2, [r3, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x10 - ldr r4, _080CD768 - adds r0, r4, 0 - ands r1, r0 - ldr r0, _080CD76C - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - ldr r1, _080CD770 - str r1, [r3, 0x1C] - adds r0, r3, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CD768: .4byte 0x000003ff -_080CD76C: .4byte 0xfffffc00 -_080CD770: .4byte sub_80CD3E0 - thumb_func_end sub_80CD6CC - - thumb_func_start sub_80CD774 -sub_80CD774: @ 80CD774 - push {lr} - adds r3, r0, 0 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0 - strh r0, [r3, 0x2E] - ldr r0, _080CD79C - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080CD7B0 - cmp r0, 0x1 - bgt _080CD7A0 - cmp r0, 0 - beq _080CD7A6 - b _080CD7C0 - .align 2, 0 -_080CD79C: .4byte gUnknown_03004B00 -_080CD7A0: - cmp r0, 0x2 - beq _080CD7B8 - b _080CD7C0 -_080CD7A6: - ldr r0, _080CD7AC - b _080CD7C2 - .align 2, 0 -_080CD7AC: .4byte sub_80CD7CC -_080CD7B0: - ldr r0, _080CD7B4 - b _080CD7C2 - .align 2, 0 -_080CD7B4: .4byte sub_80CD8A8 -_080CD7B8: - ldr r0, _080CD7BC - b _080CD7C2 - .align 2, 0 -_080CD7BC: .4byte sub_80CD8F8 -_080CD7C0: - ldr r0, _080CD7C8 -_080CD7C2: - str r0, [r3, 0x1C] - pop {r0} - bx r0 - .align 2, 0 -_080CD7C8: .4byte sub_80CD9B8 - thumb_func_end sub_80CD774 - - thumb_func_start sub_80CD7CC -sub_80CD7CC: @ 80CD7CC - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - strh r0, [r4, 0x2E] - ldr r5, _080CD80C - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - movs r2, 0x2 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - beq _080CD7EA - movs r1, 0x2 -_080CD7EA: - strh r1, [r4, 0x30] - movs r0, 0 - strh r0, [r4, 0x32] - ldr r1, _080CD810 - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x34] - ldr r1, _080CD814 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CD818 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CD80C: .4byte gUnknown_0202F7C8 -_080CD810: .4byte gUnknown_02024BE0 -_080CD814: .4byte sub_80CD81C -_080CD818: .4byte sub_8078458 - thumb_func_end sub_80CD7CC - - thumb_func_start sub_80CD81C -sub_80CD81C: @ 80CD81C - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x2E - ldrsh r6, [r5, r0] - cmp r6, 0 - bne _080CD858 - ldr r1, _080CD898 - ldr r4, _080CD89C - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r5, 0x34] - movs r1, 0 - bl sub_8078E70 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3A] - ldr r2, _080CD8A0 - adds r1, r2, 0 - cmp r0, 0 - beq _080CD854 - movs r0, 0xC0 - lsls r0, 2 - adds r1, r0, 0 -_080CD854: - strh r1, [r5, 0x36] - strh r6, [r5, 0x38] -_080CD858: - ldrh r0, [r5, 0x36] - ldrh r1, [r5, 0x38] - adds r0, r1 - strh r0, [r5, 0x38] - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r5, 0x38] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F9C - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080CD892 - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080CD8A4 - str r0, [r5, 0x1C] -_080CD892: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CD898: .4byte gUnknown_02024BE0 -_080CD89C: .4byte gUnknown_0202F7C8 -_080CD8A0: .4byte 0xfffffd00 -_080CD8A4: .4byte sub_80CD9B8 - thumb_func_end sub_80CD81C - - thumb_func_start sub_80CD8A8 -sub_80CD8A8: @ 80CD8A8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x4 - strh r0, [r4, 0x2E] - ldr r5, _080CD8E8 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - movs r1, 0x3 - cmp r0, 0 - beq _080CD8C6 - movs r0, 0x3 - negs r0, r0 - adds r1, r0, 0 -_080CD8C6: - strh r1, [r4, 0x30] - movs r0, 0 - strh r0, [r4, 0x32] - ldr r1, _080CD8EC - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x34] - ldr r1, _080CD8F0 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CD8F4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CD8E8: .4byte gUnknown_0202F7C8 -_080CD8EC: .4byte gUnknown_02024BE0 -_080CD8F0: .4byte sub_80CD9B8 -_080CD8F4: .4byte sub_8078458 - thumb_func_end sub_80CD8A8 - - thumb_func_start sub_80CD8F8 -sub_80CD8F8: @ 80CD8F8 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080CD912 - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, _080CD918 - str r0, [r1, 0x1C] -_080CD912: - pop {r0} - bx r0 - .align 2, 0 -_080CD918: .4byte sub_80CD91C - thumb_func_end sub_80CD8F8 - - thumb_func_start sub_80CD91C -sub_80CD91C: @ 80CD91C - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080CD96C - ldr r1, _080CD958 - ldr r4, _080CD95C - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r5, 0x34] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3A] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CD960 - movs r0, 0xFC - lsls r0, 8 - strh r0, [r5, 0x36] - movs r0, 0xC0 - lsls r0, 4 - b _080CD96A - .align 2, 0 -_080CD958: .4byte gUnknown_02024BE0 -_080CD95C: .4byte gUnknown_0202F7C8 -_080CD960: - movs r0, 0x80 - lsls r0, 3 - strh r0, [r5, 0x36] - movs r0, 0xF4 - lsls r0, 8 -_080CD96A: - strh r0, [r5, 0x38] -_080CD96C: - ldrh r0, [r5, 0x36] - ldrh r1, [r5, 0x38] - adds r0, r1 - strh r0, [r5, 0x38] - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r5, 0x38] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F9C - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080CD9AC - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F40 - ldr r0, _080CD9B4 - str r0, [r5, 0x1C] -_080CD9AC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CD9B4: .4byte sub_80CD9B8 - thumb_func_end sub_80CD91C - - thumb_func_start sub_80CD9B8 -sub_80CD9B8: @ 80CD9B8 - push {lr} - bl move_anim_8072740 - pop {r0} - bx r0 - thumb_func_end sub_80CD9B8 - - thumb_func_start sub_80CD9C4 -sub_80CD9C4: @ 80CD9C4 - movs r1, 0 - strh r1, [r0, 0x2E] - ldr r1, _080CD9D0 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080CD9D0: .4byte sub_80CD9D4 - thumb_func_end sub_80CD9C4 - - thumb_func_start sub_80CD9D4 -sub_80CD9D4: @ 80CD9D4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080CDA2E - cmp r5, 0x1 - bgt _080CD9EA - cmp r5, 0 - beq _080CD9F0 - b _080CDAC2 -_080CD9EA: - cmp r5, 0x2 - beq _080CDA80 - b _080CDAC2 -_080CD9F0: - strh r5, [r4, 0x30] - ldr r1, _080CDA74 - ldr r2, _080CDA78 - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x32] - ldrb r0, [r2] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x34] - ldr r2, _080CDA7C - adds r1, r2, 0 - cmp r0, 0 - beq _080CDA18 - movs r0, 0x80 - lsls r0, 2 - adds r1, r0, 0 -_080CDA18: - strh r1, [r4, 0x36] - strh r5, [r4, 0x38] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8078E70 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_080CDA2E: - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - adds r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x38] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F9C - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080CDAC2 - movs r0, 0 - strh r0, [r4, 0x30] - movs r2, 0x36 - ldrsh r0, [r4, r2] - negs r0, r0 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080CDAC2 - .align 2, 0 -_080CDA74: .4byte gUnknown_02024BE0 -_080CDA78: .4byte gUnknown_0202F7C8 -_080CDA7C: .4byte 0xfffffe00 -_080CDA80: - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - adds r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x38] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F9C - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080CDAC2 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F40 - adds r0, r4, 0 - bl move_anim_8072740 -_080CDAC2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80CD9D4 - - thumb_func_start sub_80CDAC8 -sub_80CDAC8: @ 80CDAC8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080CDB0C - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldr r1, _080CDB10 - ldr r2, _080CDB14 - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - movs r4, 0 - strh r0, [r5, 0x8] - ldrb r0, [r2] - bl battle_side_get_owner - lsls r0, 24 - lsrs r2, r0, 24 - strh r2, [r5, 0xA] - strh r4, [r5, 0xC] - ldr r0, _080CDB18 - movs r3, 0 - ldrsh r1, [r0, r3] - cmp r1, 0 - beq _080CDB1C - cmp r1, 0x1 - beq _080CDB38 - adds r0, r6, 0 - bl move_anim_task_del - b _080CDB56 - .align 2, 0 -_080CDB0C: .4byte gTasks -_080CDB10: .4byte gUnknown_02024BE0 -_080CDB14: .4byte gUnknown_0202F7C8 -_080CDB18: .4byte gUnknown_03004B00 -_080CDB1C: - strh r1, [r5, 0xC] - movs r0, 0x8 - strh r0, [r5, 0xE] - strh r1, [r5, 0x10] - movs r0, 0x3 - strh r0, [r5, 0x12] - cmp r2, 0 - bne _080CDB30 - negs r0, r0 - strh r0, [r5, 0x12] -_080CDB30: - ldr r0, _080CDB34 - b _080CDB54 - .align 2, 0 -_080CDB34: .4byte sub_80CDB60 -_080CDB38: - movs r0, 0x8 - strh r0, [r5, 0xE] - movs r0, 0xC0 - lsls r0, 3 - strh r0, [r5, 0x10] - movs r1, 0xC0 - strh r1, [r5, 0x12] - cmp r2, 0 - bne _080CDB52 - negs r0, r0 - strh r0, [r5, 0x10] - negs r0, r1 - strh r0, [r5, 0x12] -_080CDB52: - ldr r0, _080CDB5C -_080CDB54: - str r0, [r5] -_080CDB56: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CDB5C: .4byte sub_80CDD20 - thumb_func_end sub_80CDAC8 - - thumb_func_start sub_80CDB60 -sub_80CDB60: @ 80CDB60 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080CDB84 - adds r4, r0, r1 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080CDB7A - b _080CDD1A -_080CDB7A: - lsls r0, 2 - ldr r1, _080CDB88 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CDB84: .4byte gTasks -_080CDB88: .4byte _080CDB8C - .align 2, 0 -_080CDB8C: - .4byte _080CDBA0 - .4byte _080CDBD2 - .4byte _080CDC2C - .4byte _080CDCA4 - .4byte _080CDCE8 -_080CDBA0: - movs r2, 0xE - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _080CDBB0 - ldrh r2, [r4, 0x12] - ldrh r3, [r4, 0x10] - adds r2, r3 - b _080CDCF6 -_080CDBB0: - movs r0, 0x8 - strh r0, [r4, 0xE] - strh r1, [r4, 0x10] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r1, 0xC0 - cmp r0, 0 - bne _080CDBC6 - movs r2, 0xC0 - negs r2, r2 - adds r1, r2, 0 -_080CDBC6: - strh r1, [r4, 0x12] - ldrb r0, [r4, 0x8] - movs r1, 0 - bl sub_8078E70 - b _080CDCDC -_080CDBD2: - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080CDBF8 - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x10] - adds r0, r1 - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x10] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_8078F9C - b _080CDD08 -_080CDBF8: - movs r0, 0x8 - strh r0, [r4, 0xE] - ldr r2, _080CDC28 - movs r3, 0x8 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x24] - strh r0, [r4, 0x10] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0x2 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080CDC1E - movs r1, 0x2 -_080CDC1E: - strh r1, [r4, 0x12] - movs r0, 0x1 - strh r0, [r4, 0x14] - b _080CDCDC - .align 2, 0 -_080CDC28: .4byte gSprites -_080CDC2C: - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080CDC88 - ldrh r1, [r4, 0x14] - movs r3, 0x14 - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080CDC46 - subs r0, r1, 0x1 - strh r0, [r4, 0x14] - b _080CDD1A -_080CDC46: - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _080CDC68 - ldr r2, _080CDC64 - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x12] - ldrh r2, [r4, 0x10] - adds r1, r2 - b _080CDC7C - .align 2, 0 -_080CDC64: .4byte gSprites -_080CDC68: - ldr r2, _080CDC84 - movs r3, 0x8 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x10] - ldrh r2, [r4, 0x12] - subs r1, r2 -_080CDC7C: - strh r1, [r0, 0x24] - movs r0, 0x1 - strh r0, [r4, 0x14] - b _080CDD08 - .align 2, 0 -_080CDC84: .4byte gSprites -_080CDC88: - ldr r2, _080CDCA0 - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x10] - strh r1, [r0, 0x24] - movs r0, 0xC - strh r0, [r4, 0xE] - b _080CDCDC - .align 2, 0 -_080CDCA0: .4byte gSprites -_080CDCA4: - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080CDCB4 - subs r0, r1, 0x1 - strh r0, [r4, 0xE] - b _080CDD1A -_080CDCB4: - movs r0, 0x3 - strh r0, [r4, 0xE] - ldr r2, _080CDCE4 - movs r3, 0x8 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x24] - strh r0, [r4, 0x10] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0x8 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080CDCDA - movs r1, 0x8 -_080CDCDA: - strh r1, [r4, 0x12] -_080CDCDC: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - b _080CDD1A - .align 2, 0 -_080CDCE4: .4byte gSprites -_080CDCE8: - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080CDD14 - ldrh r2, [r4, 0x12] - ldrh r0, [r4, 0x10] - adds r2, r0 -_080CDCF6: - strh r2, [r4, 0x10] - ldr r3, _080CDD10 - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x24] -_080CDD08: - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080CDD1A - .align 2, 0 -_080CDD10: .4byte gSprites -_080CDD14: - adds r0, r2, 0 - bl move_anim_task_del -_080CDD1A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CDB60 - - thumb_func_start sub_80CDD20 -sub_80CDD20: @ 80CDD20 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080CDD5C - adds r4, r0, r1 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080CDD60 - ldrh r0, [r4, 0x10] - ldrh r1, [r4, 0x12] - subs r0, r1 - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x10] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_8078F9C - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080CDD6C - .align 2, 0 -_080CDD5C: .4byte gTasks -_080CDD60: - ldrb r0, [r4, 0x8] - bl sub_8078F40 - adds r0, r5, 0 - bl move_anim_task_del -_080CDD6C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80CDD20 - - thumb_func_start sub_80CDD74 -sub_80CDD74: @ 80CDD74 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080CDD88 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080CDD90 - ldr r4, _080CDD8C - b _080CDD92 - .align 2, 0 -_080CDD88: .4byte gUnknown_03004B00 -_080CDD8C: .4byte gUnknown_0202F7C8 -_080CDD90: - ldr r4, _080CDDD0 -_080CDD92: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x2] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x4] - adds r0, r6 - strh r0, [r5, 0x22] - movs r0, 0 - strh r0, [r5, 0x2E] - strh r0, [r5, 0x30] - ldr r1, _080CDDD4 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080CDDD8 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CDDD0: .4byte gUnknown_0202F7C9 -_080CDDD4: .4byte sub_80CDEC0 -_080CDDD8: .4byte sub_8078600 - thumb_func_end sub_80CDD74 - - thumb_func_start sub_80CDDDC -sub_80CDDDC: @ 80CDDDC - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080CDE14 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080CDE18 - adds r0, r1 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r1, _080CDE1C - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CDE20 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CDE14: .4byte gUnknown_0202F7C9 -_080CDE18: .4byte 0x0000ffd0 -_080CDE1C: .4byte sub_80CDE78 -_080CDE20: .4byte sub_8078600 - thumb_func_end sub_80CDDDC - - thumb_func_start sub_80CDE24 -sub_80CDE24: @ 80CDE24 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, _080CDE68 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080CDE6C - ldr r2, _080CDE70 - adds r0, r2 - ldrh r1, [r1] - adds r0, r1 - movs r6, 0 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - strh r6, [r4, 0x2E] - strh r6, [r4, 0x30] - ldr r0, _080CDE74 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CDE68: .4byte gUnknown_0202F7C9 -_080CDE6C: .4byte gUnknown_03004B00 -_080CDE70: .4byte 0x0000ffd0 -_080CDE74: .4byte sub_80CDEC0 - thumb_func_end sub_80CDE24 - - thumb_func_start sub_80CDE78 -sub_80CDE78: @ 80CDE78 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080CDEA2 - movs r0, 0xC - strh r0, [r4, 0x2E] - movs r0, 0x8 - strh r0, [r4, 0x30] - movs r0, 0 - strh r0, [r4, 0x32] - ldr r1, _080CDEA8 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CDEAC - str r0, [r4, 0x1C] -_080CDEA2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CDEA8: .4byte sub_80CDEB0 -_080CDEAC: .4byte sub_8078364 - thumb_func_end sub_80CDE78 - - thumb_func_start sub_80CDEB0 -sub_80CDEB0: @ 80CDEB0 - movs r1, 0 - strh r1, [r0, 0x2E] - strh r1, [r0, 0x30] - ldr r1, _080CDEBC - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080CDEBC: .4byte sub_80CDEC0 - thumb_func_end sub_80CDEB0 - - thumb_func_start sub_80CDEC0 -sub_80CDEC0: @ 80CDEC0 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CDF08 - movs r0, 0 - strh r0, [r3, 0x2E] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080CDF08 - adds r0, r3, 0 - bl move_anim_8072740 -_080CDF08: - pop {r0} - bx r0 - thumb_func_end sub_80CDEC0 - - thumb_func_start sub_80CDF0C -sub_80CDF0C: @ 80CDF0C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080CDF20 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080CDF28 - ldr r4, _080CDF24 - b _080CDF2A - .align 2, 0 -_080CDF20: .4byte gUnknown_03004B00 -_080CDF24: .4byte gUnknown_0202F7C8 -_080CDF28: - ldr r4, _080CDF64 -_080CDF2A: - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x2] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x4] - adds r0, r6 - strh r0, [r5, 0x22] - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080CDF68 - ldrh r0, [r0, 0x6] - strh r0, [r5, 0x30] - ldr r0, _080CDF6C - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CDF64: .4byte gUnknown_0202F7C9 -_080CDF68: .4byte gUnknown_03004B00 -_080CDF6C: .4byte sub_80CDF70 - thumb_func_end sub_80CDF0C - - thumb_func_start sub_80CDF70 -sub_80CDF70: @ 80CDF70 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x30 - ldrsh r1, [r2, r3] - cmp r0, r1 - ble _080CDF90 - movs r0, 0 - strh r0, [r2, 0x2E] - ldrh r0, [r2, 0x22] - subs r0, 0x1 - strh r0, [r2, 0x22] -_080CDF90: - ldrh r0, [r2, 0x22] - ldrh r1, [r2, 0x2E] - subs r0, r1 - strh r0, [r2, 0x22] - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080CDFAC - adds r0, r2, 0 - bl move_anim_8072740 -_080CDFAC: - pop {r0} - bx r0 - thumb_func_end sub_80CDF70 - - thumb_func_start sub_80CDFB0 -sub_80CDFB0: @ 80CDFB0 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080CDFF8 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - subs r0, 0xC - strh r0, [r4, 0x22] - strh r5, [r4, 0x2E] - movs r0, 0x2 - strh r0, [r4, 0x30] - strh r5, [r4, 0x32] - strh r5, [r4, 0x34] - strh r5, [r4, 0x36] - subs r0, 0x42 - bl sub_8076F98 - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0x38] - ldr r0, _080CDFFC - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CDFF8: .4byte gUnknown_0202F7C8 -_080CDFFC: .4byte sub_80CE000 - thumb_func_end sub_80CDFB0 - - thumb_func_start sub_80CE000 -sub_80CE000: @ 80CE000 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x30 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080CE06C - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r1, 0x4 - ands r0, r1 - cmp r0, 0 - bne _080CE052 - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080CE052 - ldrh r1, [r4, 0x38] - lsls r1, 24 - asrs r1, 24 - movs r0, 0xC2 - bl PlaySE12WithPanning -_080CE052: - movs r1, 0 - strh r1, [r4, 0x2E] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CE06C - strh r1, [r4, 0x32] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_080CE06C: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080CE096 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x10 - ble _080CE096 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080CE096 - adds r0, r4, 0 - bl move_anim_8072740 -_080CE096: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CE000 - - thumb_func_start sub_80CE09C -sub_80CE09C: @ 80CE09C - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080CE0E6 - ldr r4, _080CE0FC - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - ldr r5, _080CE100 - lsrs r0, 24 - ldrh r1, [r5] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x2] - adds r0, r5 - strh r0, [r6, 0x22] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CE0E0 - ldrh r0, [r6, 0x22] - adds r0, 0xA - strh r0, [r6, 0x22] -_080CE0E0: - ldrh r0, [r6, 0x2E] - adds r0, 0x1 - strh r0, [r6, 0x2E] -_080CE0E6: - ldr r0, _080CE100 - ldrh r1, [r0, 0xE] - ldr r0, _080CE104 - cmp r1, r0 - bne _080CE0F6 - adds r0, r6, 0 - bl move_anim_8072740 -_080CE0F6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CE0FC: .4byte gUnknown_0202F7C8 -_080CE100: .4byte gUnknown_03004B00 -_080CE104: .4byte 0x0000ffff - thumb_func_end sub_80CE09C - - thumb_func_start sub_80CE108 -sub_80CE108: @ 80CE108 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080CE128 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080CE134 - ldr r1, _080CE12C - ldr r0, _080CE130 - strh r0, [r1, 0xE] - b _080CE16C - .align 2, 0 -_080CE128: .4byte gTasks -_080CE12C: .4byte gUnknown_03004B00 -_080CE130: .4byte 0x0000ffff -_080CE134: - cmp r0, 0x2 - bne _080CE140 - adds r0, r2, 0 - bl move_anim_task_del - b _080CE172 -_080CE140: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080CE172 - movs r0, 0 - strh r0, [r4, 0x8] - ldrh r1, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0xA] - ldr r3, _080CE178 - lsls r2, r1, 8 - movs r0, 0x10 - subs r0, r1 - orrs r2, r0 - strh r2, [r3] - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080CE172 -_080CE16C: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] -_080CE172: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CE178: .4byte REG_BLDALPHA - thumb_func_end sub_80CE108 - - thumb_func_start sub_80CE17C -sub_80CE17C: @ 80CE17C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8078764 - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080CE1A4 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080CE1A8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CE1A4: .4byte gUnknown_03004B00 -_080CE1A8: .4byte sub_80CE1AC - thumb_func_end sub_80CE17C - - thumb_func_start sub_80CE1AC -sub_80CE1AC: @ 80CE1AC - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080CE1C0 - subs r0, r1, 0x1 - strh r0, [r5, 0x2E] - b _080CE1FC -_080CE1C0: - adds r2, r5, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - movs r0, 0x1E - strh r0, [r5, 0x2E] - ldr r4, _080CE204 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080CE208 - str r0, [r5, 0x1C] - ldr r1, _080CE20C - adds r0, r5, 0 - bl oamt_set_x3A_32 -_080CE1FC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CE204: .4byte gUnknown_0202F7C8 -_080CE208: .4byte sub_8078B34 -_080CE20C: .4byte move_anim_8072740 - thumb_func_end sub_80CE1AC - - thumb_func_start sub_80CE210 -sub_80CE210: @ 80CE210 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080CE258 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r3, r0, r1 - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080CE252 - movs r0, 0 - strh r0, [r3, 0x8] - ldrh r1, [r3, 0xA] - adds r1, 0x1 - strh r1, [r3, 0xA] - ldr r2, _080CE25C - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0xA - ldrsh r0, [r3, r1] - cmp r0, 0x10 - bne _080CE252 - adds r0, r4, 0 - bl move_anim_task_del -_080CE252: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CE258: .4byte gTasks -_080CE25C: .4byte REG_BLDALPHA - thumb_func_end sub_80CE210 - - thumb_func_start unref_sub_80CE260 -unref_sub_80CE260: @ 80CE260 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - movs r4, 0 - ldr r0, _080CE2C8 - ldrb r0, [r0] - cmp r4, r0 - bcs _080CE2BC - ldr r6, _080CE2CC - ldr r5, _080CE2D0 -_080CE274: - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - bne _080CE290 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CE290 - adds r0, r4, r5 - ldrb r0, [r0] - bl sub_8043DB0 -_080CE290: - movs r1, 0x2 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - bne _080CE2AE - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080CE2AE - adds r0, r4, r5 - ldrb r0, [r0] - bl sub_8043DB0 -_080CE2AE: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080CE2C8 - ldrb r0, [r0] - cmp r4, r0 - bcc _080CE274 -_080CE2BC: - adds r0, r7, 0 - bl move_anim_task_del - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CE2C8: .4byte gUnknown_02024A68 -_080CE2CC: .4byte gUnknown_03004B00 -_080CE2D0: .4byte gUnknown_03004340 - thumb_func_end unref_sub_80CE260 - - thumb_func_start unref_sub_80CE2D4 -unref_sub_80CE2D4: @ 80CE2D4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - b _080CE2EE -_080CE2DE: - ldr r0, _080CE304 - adds r0, r4, r0 - ldrb r0, [r0] - bl sub_8043DFC - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080CE2EE: - ldr r0, _080CE308 - ldrb r0, [r0] - cmp r4, r0 - bcc _080CE2DE - adds r0, r5, 0 - bl move_anim_task_del - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CE304: .4byte gUnknown_03004340 -_080CE308: .4byte gUnknown_02024A68 - thumb_func_end unref_sub_80CE2D4 - - thumb_func_start sub_80CE30C -sub_80CE30C: @ 80CE30C - push {r4,lr} - adds r4, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CE322 - movs r0, 0x30 - strh r0, [r4, 0x20] - movs r0, 0x28 - b _080CE32A -_080CE322: - ldr r0, _080CE34C - ldrh r1, [r0] - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] -_080CE32A: - strh r0, [r4, 0x22] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r4, 0x3] - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080CE350 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CE34C: .4byte gUnknown_03004B00 -_080CE350: .4byte sub_80CE354 - thumb_func_end sub_80CE30C - - thumb_func_start sub_80CE354 -sub_80CE354: @ 80CE354 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080CE366 - adds r0, r1, 0 - bl move_anim_8072740 -_080CE366: - pop {r0} - bx r0 - thumb_func_end sub_80CE354 - - thumb_func_start sub_80CE36C -sub_80CE36C: @ 80CE36C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080CE3A4 - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r2, _080CE3A8 - lsrs r0, 24 - ldrh r1, [r2] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - strh r0, [r4, 0x22] - strh r1, [r4, 0x2E] - strh r1, [r4, 0x30] - strh r1, [r4, 0x32] - strh r1, [r4, 0x34] - movs r0, 0x1 - strh r0, [r4, 0x36] - ldr r0, _080CE3AC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CE3A4: .4byte gUnknown_0202F7C8 -_080CE3A8: .4byte gUnknown_03004B00 -_080CE3AC: .4byte sub_80CE3B0 - thumb_func_end sub_80CE36C - - thumb_func_start sub_80CE3B0 -sub_80CE3B0: @ 80CE3B0 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CE3DA - movs r0, 0 - strh r0, [r1, 0x30] - ldrh r2, [r1, 0x32] - movs r3, 0x32 - ldrsh r0, [r1, r3] - cmp r0, 0x77 - bgt _080CE3DA - ldrh r0, [r1, 0x22] - adds r0, 0x1 - strh r0, [r1, 0x22] - adds r0, r2, 0x1 - strh r0, [r1, 0x32] -_080CE3DA: - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080CE3E8 - adds r0, r1, 0 - bl move_anim_8072740 -_080CE3E8: - pop {r0} - bx r0 - thumb_func_end sub_80CE3B0 - - thumb_func_start sub_80CE3EC -sub_80CE3EC: @ 80CE3EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80791A8 - mov r8, r0 - ldr r0, _080CE4BC - mov r1, r8 - ands r1, r0 - mov r8, r1 - ldr r0, _080CE4C0 - mov r9, r0 - lsls r5, r7, 2 - adds r5, r7 - lsls r5, 3 - adds r6, r5, r0 - strh r4, [r6, 0x8] - strh r4, [r6, 0xA] - strh r4, [r6, 0xC] - strh r1, [r6, 0xE] - strh r4, [r6, 0x10] - strh r4, [r6, 0x12] - strh r4, [r6, 0x14] - movs r0, 0xD - strh r0, [r6, 0x16] - movs r0, 0xE - strh r0, [r6, 0x18] - movs r0, 0xF - strh r0, [r6, 0x1A] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x1 - bl sub_80792C0 - mov r10, r0 - mov r1, r8 - orrs r1, r0 - mov r8, r1 - movs r0, 0x8 - add r9, r0 - add r5, r9 - adds r0, r5, 0 - adds r0, 0x1C - adds r5, 0x1E - adds r1, r5, 0 - mov r2, r8 - bl sub_8079BF4 - ldr r0, _080CE4C4 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - movs r4, 0x80 - lsls r4, 9 - adds r1, r4, 0 - lsls r1, r0 - mov r0, r10 - orrs r0, r1 - mov r10, r0 - ldr r0, _080CE4C8 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0 - mov r1, r10 - orrs r4, r1 - ldr r0, _080CE4CC - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080CE4D0 - str r1, [r6] - adds r0, r7, 0 - bl _call_via_r1 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CE4BC: .4byte 0x0000ffff -_080CE4C0: .4byte gTasks -_080CE4C4: .4byte 0x000027d2 -_080CE4C8: .4byte 0x000027d3 -_080CE4CC: .4byte 0x00007fbb -_080CE4D0: .4byte sub_80CE4D4 - thumb_func_end sub_80CE3EC - - thumb_func_start sub_80CE4D4 -sub_80CE4D4: @ 80CE4D4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080CE4FC - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080CE5C0 - cmp r1, 0x1 - bgt _080CE500 - cmp r1, 0 - beq _080CE50E - b _080CE65E - .align 2, 0 -_080CE4FC: .4byte gTasks -_080CE500: - cmp r1, 0x2 - bne _080CE506 - b _080CE618 -_080CE506: - cmp r1, 0x3 - bne _080CE50C - b _080CE64C -_080CE50C: - b _080CE65E -_080CE50E: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bgt _080CE51C - b _080CE65E -_080CE51C: - strh r1, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - bgt _080CE568 - ldrh r0, [r4, 0x16] - ldrh r1, [r4, 0x10] - adds r0, r1 - strh r0, [r4, 0x10] - ldrh r2, [r4, 0x18] - ldrh r3, [r4, 0x12] - adds r2, r3 - strh r2, [r4, 0x12] - ldrh r1, [r4, 0x1A] - ldrh r5, [r4, 0x14] - adds r1, r5 - strh r1, [r4, 0x14] - lsls r0, 16 - asrs r0, 19 - lsls r0, 16 - lsrs r0, 16 - lsls r2, 16 - asrs r2, 19 - lsls r2, 16 - lsls r1, 16 - asrs r1, 19 - lsls r1, 16 - lsrs r2, 11 - orrs r0, r2 - lsrs r1, 6 - orrs r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r12, r0 - b _080CE572 -_080CE568: - ldr r7, _080CE5B8 - mov r12, r7 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080CE572: - movs r2, 0x1 - movs r3, 0 - movs r1, 0 -_080CE578: - movs r5, 0xE - ldrsh r0, [r4, r5] - ands r0, r2 - lsls r5, r2, 17 - adds r6, r3, 0 - adds r6, 0x10 - adds r1, 0x1 - mov r8, r1 - cmp r0, 0 - beq _080CE5A4 - movs r1, 0x1 - ldr r2, _080CE5BC -_080CE590: - adds r0, r3, r1 - lsls r0, 1 - adds r0, r2 - mov r7, r12 - strh r7, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xF - bls _080CE590 -_080CE5A4: - lsrs r2, r5, 16 - lsls r0, r6, 16 - lsrs r3, r0, 16 - mov r1, r8 - lsls r0, r1, 16 - lsrs r1, r0, 16 - cmp r1, 0xF - bls _080CE578 - b _080CE65E - .align 2, 0 -_080CE5B8: .4byte 0x00007fbb -_080CE5BC: .4byte gPlttBufferFaded -_080CE5C0: - ldr r0, _080CE608 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080CE65E - movs r2, 0 - ldr r3, _080CE60C - movs r5, 0x14 - adds r5, r3 - mov r12, r5 - ldr r7, _080CE610 - mov r8, r7 - ldr r6, _080CE614 - movs r5, 0x1 -_080CE5DE: - lsls r0, r2, 4 - adds r0, r2 - lsls r1, r0, 2 - mov r7, r12 - adds r0, r1, r7 - ldr r0, [r0] - cmp r0, r8 - beq _080CE5F2 - cmp r0, r6 - bne _080CE5F6 -_080CE5F2: - adds r0, r1, r3 - strh r5, [r0, 0x2E] -_080CE5F6: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _080CE5DE - movs r0, 0 - strh r0, [r4, 0xA] - b _080CE640 - .align 2, 0 -_080CE608: .4byte gPaletteFade -_080CE60C: .4byte gSprites -_080CE610: .4byte gBattleAnimSpriteTemplate_83D6FC8 -_080CE614: .4byte gBattleAnimSpriteTemplate_83D6FF8 -_080CE618: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _080CE65E - movs r1, 0x24 - ldrsh r0, [r4, r1] - movs r2, 0x26 - ldrsh r1, [r4, r2] - bl sub_8079BFC - ldr r1, _080CE648 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_080CE640: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080CE65E - .align 2, 0 -_080CE648: .4byte 0x00007fbb -_080CE64C: - ldr r0, _080CE66C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080CE65E - adds r0, r2, 0 - bl move_anim_task_del -_080CE65E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CE66C: .4byte gPaletteFade - thumb_func_end sub_80CE4D4 - - thumb_func_start sub_80CE670 -sub_80CE670: @ 80CE670 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080CE6F4 - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - bgt _080CE682 - movs r0, 0x2 - strh r0, [r6, 0x4] -_080CE682: - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0x7F - ble _080CE68E - movs r0, 0x7F - strh r0, [r6, 0x4] -_080CE68E: - movs r0, 0 - strh r0, [r5, 0x2E] - ldrh r0, [r6, 0x4] - strh r0, [r5, 0x30] - ldr r4, _080CE6F8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x2] - adds r0, r6 - strh r0, [r5, 0x22] - ldrh r1, [r5, 0x20] - strh r1, [r5, 0x3A] - strh r0, [r5, 0x3C] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CE700 - ldrb r1, [r5, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r5, 0x3] - ldrh r0, [r5, 0x20] - adds r0, 0x28 - strh r0, [r5, 0x20] - ldrh r4, [r5, 0x22] - adds r4, 0x14 - strh r4, [r5, 0x22] - lsls r0, 7 - strh r0, [r5, 0x32] - movs r0, 0x30 - ldrsh r1, [r5, r0] - ldr r0, _080CE6FC - b _080CE726 - .align 2, 0 -_080CE6F4: .4byte gUnknown_03004B00 -_080CE6F8: .4byte gUnknown_0202F7C9 -_080CE6FC: .4byte 0xffffec00 -_080CE700: - ldr r0, _080CE740 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CE748 - ldrh r0, [r5, 0x20] - subs r0, 0x28 - strh r0, [r5, 0x20] - ldrh r4, [r5, 0x22] - adds r4, 0x14 - strh r4, [r5, 0x22] - lsls r0, 7 - strh r0, [r5, 0x32] - movs r0, 0x30 - ldrsh r1, [r5, r0] - movs r0, 0xA0 - lsls r0, 5 -_080CE726: - bl __divsi3 - strh r0, [r5, 0x34] - lsls r4, 7 - strh r4, [r5, 0x36] - movs r0, 0x30 - ldrsh r1, [r5, r0] - ldr r0, _080CE744 - bl __divsi3 - strh r0, [r5, 0x38] - b _080CE784 - .align 2, 0 -_080CE740: .4byte gUnknown_0202F7C8 -_080CE744: .4byte 0xfffff600 -_080CE748: - ldrh r0, [r5, 0x20] - adds r0, 0x28 - strh r0, [r5, 0x20] - ldrh r4, [r5, 0x22] - subs r4, 0x14 - strh r4, [r5, 0x22] - lsls r0, 7 - strh r0, [r5, 0x32] - movs r0, 0x30 - ldrsh r1, [r5, r0] - ldr r0, _080CE790 - bl __divsi3 - strh r0, [r5, 0x34] - lsls r4, 7 - strh r4, [r5, 0x36] - movs r0, 0x30 - ldrsh r1, [r5, r0] - movs r0, 0xA0 - lsls r0, 4 - bl __divsi3 - strh r0, [r5, 0x38] - ldrb r1, [r5, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x30 - orrs r0, r1 - strb r0, [r5, 0x3] -_080CE784: - ldr r0, _080CE794 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CE790: .4byte 0xffffec00 -_080CE794: .4byte sub_80CE798 - thumb_func_end sub_80CE670 - - thumb_func_start sub_80CE798 -sub_80CE798: @ 80CE798 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x34] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - ldrh r1, [r2, 0x38] - ldrh r3, [r2, 0x36] - adds r1, r3 - strh r1, [r2, 0x36] - lsls r0, 16 - asrs r0, 23 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 23 - strh r1, [r2, 0x22] - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080CE7CE - ldrh r0, [r2, 0x3A] - strh r0, [r2, 0x20] - ldrh r0, [r2, 0x3C] - strh r0, [r2, 0x22] -_080CE7CE: - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080CE7DC - adds r0, r2, 0 - bl move_anim_8072740 -_080CE7DC: - pop {r0} - bx r0 - thumb_func_end sub_80CE798 - - thumb_func_start sub_80CE7E0 -sub_80CE7E0: @ 80CE7E0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - ldr r1, _080CE870 - adds r6, r0, r1 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x8] - ldr r0, _080CE874 - bl AllocSpritePalette - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0xA] - movs r1, 0xA - ldrsh r0, [r6, r1] - lsls r0, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r3, r0, 16 - ldr r2, _080CE878 - movs r0, 0x8 - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - lsls r4, r0, 4 - movs r5, 0x1 - ldr r2, _080CE87C -_080CE838: - adds r1, r3, r5 - lsls r1, 1 - adds r1, r2 - adds r0, r4, r5 - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xF - bls _080CE838 - adds r0, r3, 0 - movs r1, 0x10 - movs r2, 0xB - movs r3, 0 - bl BlendPalette - movs r0, 0 - strh r0, [r6, 0xE] - movs r5, 0 - ldr r7, _080CE878 - movs r1, 0x1C - adds r1, r7 - mov r9, r1 - b _080CE8B4 - .align 2, 0 -_080CE870: .4byte gTasks -_080CE874: .4byte 0x00002771 -_080CE878: .4byte gSprites -_080CE87C: .4byte gPlttBufferUnfaded -_080CE880: - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r4, r2, r7 - ldrb r1, [r6, 0xA] - lsls r1, 4 - ldrb r3, [r4, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r1 - strb r0, [r4, 0x5] - movs r0, 0 - strh r0, [r4, 0x2E] - lsls r0, r5, 7 - strh r0, [r4, 0x30] - mov r0, r8 - strh r0, [r4, 0x32] - add r2, r9 - ldr r0, _080CE8E4 - str r0, [r2] - ldrh r0, [r6, 0xE] - adds r0, 0x1 - strh r0, [r6, 0xE] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080CE8B4: - cmp r5, 0x1 - bhi _080CE8C6 - movs r0, 0 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080CE880 -_080CE8C6: - ldr r0, _080CE8E8 - str r0, [r6] - ldr r0, _080CE8EC - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080CE8F4 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080CE8F0 - b _080CE8FC - .align 2, 0 -_080CE8E4: .4byte sub_80CE974 -_080CE8E8: .4byte sub_80CE910 -_080CE8EC: .4byte gUnknown_0202F7C8 -_080CE8F0: .4byte 0x0000fdff -_080CE8F4: - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080CE90C -_080CE8FC: - ands r0, r1 - strh r0, [r2] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CE90C: .4byte 0x0000fbff - thumb_func_end sub_80CE7E0 - - thumb_func_start sub_80CE910 -sub_80CE910: @ 80CE910 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080CE944 - adds r0, r1 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CE968 - ldr r0, _080CE948 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080CE94C - movs r0, 0x80 - lsls r0, 19 - ldrh r1, [r0] - movs r3, 0x80 - lsls r3, 2 - b _080CE956 - .align 2, 0 -_080CE944: .4byte gTasks -_080CE948: .4byte gUnknown_0202F7C8 -_080CE94C: - movs r0, 0x80 - lsls r0, 19 - ldrh r1, [r0] - movs r3, 0x80 - lsls r3, 3 -_080CE956: - adds r2, r3, 0 - orrs r1, r2 - strh r1, [r0] - ldr r0, _080CE970 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - bl move_anim_task_del -_080CE968: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CE970: .4byte 0x00002771 - thumb_func_end sub_80CE910 - - thumb_func_start sub_80CE974 -sub_80CE974: @ 80CE974 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CE990 - movs r0, 0 - strh r0, [r5, 0x34] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] -_080CE990: - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x40 - ble _080CE9B8 - ldr r2, _080CE9B4 - movs r0, 0x32 - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0xE] - subs r1, 0x1 - strh r1, [r0, 0xE] - adds r0, r5, 0 - bl obj_delete_but_dont_free_vram - b _080CE9FA - .align 2, 0 -_080CE9B4: .4byte gTasks -_080CE9B8: - ldr r4, _080CEA00 - movs r1, 0x2E - ldrsh r0, [r5, r1] - lsls r0, 1 - adds r0, r4 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0x6 - bl __divsi3 - strh r0, [r5, 0x36] - movs r1, 0x2E - ldrsh r0, [r5, r1] - lsls r0, 1 - adds r0, r4 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0xD - bl __divsi3 - strh r0, [r5, 0x38] - ldrh r1, [r5, 0x30] - adds r1, r0 - movs r0, 0xFF - ands r1, r0 - strh r1, [r5, 0x30] - movs r1, 0x30 - ldrsh r0, [r5, r1] - movs r2, 0x36 - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r5, 0x24] -_080CE9FA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CEA00: .4byte gSineTable - thumb_func_end sub_80CE974 - - thumb_func_start sub_80CEA04 -sub_80CEA04: @ 80CEA04 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080CEA18 - bl oamt_set_x3A_32 - ldr r0, _080CEA1C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CEA18: .4byte move_anim_8072740 -_080CEA1C: .4byte sub_8078600 - thumb_func_end sub_80CEA04 - - thumb_func_start sub_80CEA20 -sub_80CEA20: @ 80CEA20 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r4, _080CEAD0 - ldrh r0, [r4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xFF - beq _080CEA64 - lsls r0, r3, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r3, r0, 16 - movs r2, 0x1 - ldr r5, _080CEAD4 -_080CEA4C: - adds r1, r3, r2 - lsls r1, 1 - adds r1, r5 - lsls r0, r2, 1 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080CEA4C -_080CEA64: - movs r4, 0x1 - ldr r0, _080CEAD0 - mov r8, r0 -_080CEA6A: - lsls r0, r4, 1 - adds r0, r4 - lsls r5, r0, 2 - mov r1, r8 - adds r0, r5, r1 - ldrh r0, [r0] - bl AllocSpritePalette - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, 0x1 - mov r12, r4 - cmp r3, 0xFF - beq _080CEAB2 - lsls r0, r3, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r3, r0, 16 - movs r2, 0x1 - ldr r7, _080CEAD4 - ldr r6, _080CEAD0 - adds r4, r5, 0 -_080CEA98: - adds r1, r3, r2 - lsls r1, 1 - adds r1, r7 - lsls r0, r2, 1 - adds r0, r4 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080CEA98 -_080CEAB2: - mov r1, r12 - lsls r0, r1, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080CEA6A - mov r0, r9 - bl move_anim_task_del - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CEAD0: .4byte gUnknown_083D712C -_080CEAD4: .4byte gPlttBufferFaded - thumb_func_end sub_80CEA20 - - thumb_func_start sub_80CEAD8 -sub_80CEAD8: @ 80CEAD8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0x1 - ldr r6, _080CEB08 -_080CEAE2: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r6 - ldrh r0, [r0] - bl FreeSpritePaletteByTag - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080CEAE2 - adds r0, r5, 0 - bl move_anim_task_del - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CEB08: .4byte gUnknown_083D712C - thumb_func_end sub_80CEAD8 - - thumb_func_start sub_80CEB0C -sub_80CEB0C: @ 80CEB0C - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - bl sub_8078650 - ldr r4, _080CEB64 - ldrb r1, [r4] - adds r0, r5, 0 - bl StartSpriteAnim - ldr r2, _080CEB68 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080CEB48 - lsls r2, r0, 4 - ldrb r1, [r5, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r5, 0x5] -_080CEB48: - ldrh r0, [r4, 0x2] - movs r1, 0 - strh r0, [r5, 0x30] - strh r1, [r5, 0x32] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x34] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CEB6C - movs r6, 0x30 - movs r3, 0x28 - b _080CEB86 - .align 2, 0 -_080CEB64: .4byte gUnknown_03004B00 -_080CEB68: .4byte gUnknown_083D712C -_080CEB6C: - ldr r4, _080CEBBC - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r3, r0, 24 -_080CEB86: - ldrh r0, [r5, 0x20] - lsls r1, r0, 4 - strh r1, [r5, 0x36] - ldrh r1, [r5, 0x22] - lsls r2, r1, 4 - strh r2, [r5, 0x38] - subs r0, r6, r0 - lsls r0, 16 - asrs r0, 16 - subs r1, r3, r1 - lsls r1, 16 - asrs r1, 16 - adds r2, r5, 0 - adds r2, 0x3A - adds r3, r5, 0 - adds r3, 0x3C - movs r4, 0x28 - str r4, [sp] - bl sub_80CEBC4 - ldr r0, _080CEBC0 - str r0, [r5, 0x1C] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CEBBC: .4byte gUnknown_0202F7C9 -_080CEBC0: .4byte sub_80CEC1C - thumb_func_end sub_80CEB0C - - thumb_func_start sub_80CEBC4 -sub_80CEBC4: @ 80CEBC4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r2, 0 - mov r8, r3 - ldr r2, [sp, 0x18] - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 24 - lsrs r1, r2, 24 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - bge _080CEBE6 - lsls r0, r1, 24 - negs r0, r0 - lsrs r1, r0, 24 -_080CEBE6: - lsls r5, r2, 8 - lsls r1, 24 - asrs r1, 24 - adds r0, r5, 0 - bl __divsi3 - adds r4, r0, 0 - cmp r4, 0 - bne _080CEBFA - movs r4, 0x1 -_080CEBFA: - adds r0, r5, 0 - adds r1, r4, 0 - bl __divsi3 - strh r0, [r7] - lsls r0, r6, 16 - asrs r0, 8 - adds r1, r4, 0 - bl __divsi3 - mov r1, r8 - strh r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80CEBC4 - - thumb_func_start sub_80CEC1C -sub_80CEC1C: @ 80CEC1C - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x2E] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r1, r0, r1 - adds r0, r1, 0 - cmp r1, 0 - bge _080CEC38 - adds r0, 0xFF -_080CEC38: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - ldrh r1, [r4, 0x3A] - ldrh r2, [r4, 0x36] - adds r1, r2 - strh r1, [r4, 0x36] - ldrh r2, [r4, 0x3C] - ldrh r3, [r4, 0x38] - adds r2, r3 - strh r2, [r4, 0x38] - lsls r1, 16 - asrs r1, 20 - strh r1, [r4, 0x20] - lsls r2, 16 - asrs r2, 20 - strh r2, [r4, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r1, 0xF - bl Sin - strh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - ldrh r0, [r4, 0x20] - adds r0, 0x10 - lsls r0, 16 - movs r1, 0x88 - lsls r1, 17 - cmp r0, r1 - bhi _080CEC86 - lsls r0, r2, 16 - asrs r1, r0, 16 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - blt _080CEC86 - cmp r1, 0x80 - ble _080CEC8E -_080CEC86: - adds r0, r4, 0 - bl move_anim_8074EE0 - b _080CECDE -_080CEC8E: - movs r0, 0x34 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _080CECDE - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, r1 - ble _080CECDE - strh r5, [r4, 0x32] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080CECB6 - strh r5, [r4, 0x30] -_080CECB6: - ldr r2, _080CECE4 - movs r3, 0x30 - ldrsh r1, [r4, r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080CECDE - lsls r2, r0, 4 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] -_080CECDE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CECE4: .4byte gUnknown_083D712C - thumb_func_end sub_80CEC1C - - thumb_func_start sub_80CECE8 -sub_80CECE8: @ 80CECE8 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r7, _080CED6C - ldrb r0, [r7] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080CED06 - ldr r1, _080CED70 - movs r2, 0x2 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x2] -_080CED06: - ldrb r0, [r7] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080CED70 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - movs r5, 0 - strh r0, [r6, 0x20] - ldrb r0, [r7] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r4, 0x4] - adds r0, r2 - strh r0, [r6, 0x22] - ldrb r1, [r4] - adds r0, r6, 0 - bl StartSpriteAnim - strh r5, [r6, 0x32] - strh r5, [r6, 0x34] - ldrh r0, [r6, 0x20] - lsls r0, 4 - strh r0, [r6, 0x36] - ldrh r0, [r6, 0x22] - lsls r0, 4 - strh r0, [r6, 0x38] - movs r1, 0x2 - ldrsh r0, [r4, r1] - lsls r0, 4 - movs r1, 0x5 - bl __divsi3 - strh r0, [r6, 0x3A] - movs r2, 0x4 - ldrsh r0, [r4, r2] - lsls r0, 7 - movs r1, 0x5 - bl __divsi3 - strh r0, [r6, 0x3C] - ldr r0, _080CED74 - str r0, [r6, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CED6C: .4byte gUnknown_0202F7C8 -_080CED70: .4byte gUnknown_03004B00 -_080CED74: .4byte sub_80CED78 - thumb_func_end sub_80CECE8 - - thumb_func_start sub_80CED78 -sub_80CED78: @ 80CED78 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x36] - adds r0, r1 - strh r0, [r4, 0x36] - ldrh r1, [r4, 0x3C] - ldrh r2, [r4, 0x38] - adds r1, r2 - strh r1, [r4, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r4, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r4, 0x22] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x5 - ble _080CEDD6 - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080CEDD6 - ldrh r0, [r4, 0x32] - adds r0, 0x10 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0x12 - bl Cos - strh r0, [r4, 0x24] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0x12 - bl Sin - strh r0, [r4, 0x26] - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080CEDD6 - movs r0, 0x1 - strh r0, [r4, 0x34] -_080CEDD6: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x30 - bne _080CEDEA - adds r0, r4, 0 - bl move_anim_8074EE0 -_080CEDEA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CED78 - - thumb_func_start sub_80CEDF0 -sub_80CEDF0: @ 80CEDF0 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080CEE10 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _080CEE14 - ldrb r0, [r5, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r5, 0x3] - movs r6, 0x10 - b _080CEE16 - .align 2, 0 -_080CEE10: .4byte gUnknown_03004B00 -_080CEE14: - ldr r6, _080CEE50 -_080CEE16: - ldr r4, _080CEE54 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x8 - strh r0, [r5, 0x22] - movs r0, 0x8 - strh r0, [r5, 0x2E] - ldr r0, _080CEE58 - str r0, [r5, 0x1C] - ldr r1, _080CEE5C - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CEE50: .4byte 0x0000fff0 -_080CEE54: .4byte gUnknown_0202F7C8 -_080CEE58: .4byte sub_80782D8 -_080CEE5C: .4byte move_anim_8072740 - thumb_func_end sub_80CEDF0 - - thumb_func_start sub_80CEE60 -sub_80CEE60: @ 80CEE60 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_8078650 - ldrh r0, [r4, 0x22] - adds r0, 0x8 - strh r0, [r4, 0x22] - ldr r5, _080CEED8 - ldrb r1, [r5, 0x2] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r2, _080CEEDC - movs r0, 0x4 - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080CEEA0 - lsls r2, r0, 4 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] -_080CEEA0: - movs r1, 0 - ldrsh r0, [r5, r1] - movs r2, 0x20 - cmp r0, 0 - bne _080CEEAC - ldr r2, _080CEEE0 -_080CEEAC: - movs r0, 0x28 - strh r0, [r4, 0x2E] - ldrh r1, [r4, 0x20] - strh r1, [r4, 0x30] - lsls r0, r2, 16 - asrs r0, 16 - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - subs r0, 0x28 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x38] - ldr r0, _080CEEE4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CEED8: .4byte gUnknown_03004B00 -_080CEEDC: .4byte gUnknown_083D712C -_080CEEE0: .4byte 0x0000ffe0 -_080CEEE4: .4byte sub_80CEEE8 - thumb_func_end sub_80CEE60 - - thumb_func_start sub_80CEEE8 -sub_80CEEE8: @ 80CEEE8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080CEF38 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - lsls r0, 16 - lsrs r1, r0, 16 - ldrh r2, [r4, 0x24] - movs r3, 0x24 - ldrsh r0, [r4, r3] - cmp r0, 0 - bge _080CEF14 - lsls r0, r1, 16 - negs r0, r0 - lsrs r1, r0, 16 -_080CEF14: - lsls r0, r1, 16 - asrs r0, 16 - adds r0, r2 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - ldrh r3, [r4, 0x26] - adds r0, r3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x8 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080CEF3E -_080CEF38: - adds r0, r4, 0 - bl move_anim_8072740 -_080CEF3E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CEEE8 - - thumb_func_start sub_80CEF44 -sub_80CEF44: @ 80CEF44 - push {r4-r6,lr} - adds r6, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CEF64 - adds r0, r5, 0 - movs r1, 0x5 - bl sub_807A100 - adds r0, 0x8 - b _080CEF6E -_080CEF64: - adds r0, r5, 0 - movs r1, 0x4 - bl sub_807A100 - subs r0, 0x8 -_080CEF6E: - strh r0, [r6, 0x20] - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8077ABC - adds r4, r0, 0 - adds r0, r5, 0 - movs r1, 0 - bl sub_807A100 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080CEF90 - adds r0, 0x3 -_080CEF90: - asrs r0, 2 - subs r0, r4, r0 - strh r0, [r6, 0x22] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80CEF44 - - thumb_func_start sub_80CEF9C -sub_80CEF9C: @ 80CEF9C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080CEFB0 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CEFB8 - ldr r0, _080CEFB4 - b _080CEFBA - .align 2, 0 -_080CEFB0: .4byte gUnknown_03004B00 -_080CEFB4: .4byte gUnknown_0202F7C8 -_080CEFB8: - ldr r0, _080CEFF8 -_080CEFBA: - ldrb r4, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80CEF44 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - ldr r0, _080CEFFC - ldrh r0, [r0, 0x2] - strh r0, [r5, 0x2E] - adds r0, r1, 0x2 - strh r0, [r5, 0x30] - adds r0, r5, 0 - bl StartSpriteAnim - ldr r1, _080CF000 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080CF004 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CEFF8: .4byte gUnknown_0202F7C9 -_080CEFFC: .4byte gUnknown_03004B00 -_080CF000: .4byte sub_80CF008 -_080CF004: .4byte sub_8078600 - thumb_func_end sub_80CEF9C - - thumb_func_start sub_80CF008 -sub_80CF008: @ 80CF008 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080CF030 - ldr r1, _080CF038 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080CF03C - str r0, [r4, 0x1C] -_080CF030: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF038: .4byte move_anim_8072740 -_080CF03C: .4byte sub_8078600 - thumb_func_end sub_80CF008 - - thumb_func_start sub_80CF040 -sub_80CF040: @ 80CF040 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080CF054 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CF05C - ldr r0, _080CF058 - b _080CF05E - .align 2, 0 -_080CF054: .4byte gUnknown_03004B00 -_080CF058: .4byte gUnknown_0202F7C8 -_080CF05C: - ldr r0, _080CF07C -_080CF05E: - ldrb r0, [r0] - adds r1, r4, 0 - bl sub_80CEF44 - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r1, _080CF080 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CF084 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF07C: .4byte gUnknown_0202F7C9 -_080CF080: .4byte sub_80CF088 -_080CF084: .4byte sub_80785E4 - thumb_func_end sub_80CF040 - - thumb_func_start sub_80CF088 -sub_80CF088: @ 80CF088 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080CF0AE - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r1, _080CF0B4 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CF0B8 - str r0, [r4, 0x1C] -_080CF0AE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF0B4: .4byte move_anim_8074EE0 -_080CF0B8: .4byte sub_80785E4 - thumb_func_end sub_80CF088 - - thumb_func_start sub_80CF0BC -sub_80CF0BC: @ 80CF0BC - push {r4-r6,lr} - adds r4, r0, 0 - ldr r0, _080CF0D0 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CF0D8 - ldr r0, _080CF0D4 - b _080CF0DA - .align 2, 0 -_080CF0D0: .4byte gUnknown_03004B00 -_080CF0D4: .4byte gUnknown_0202F7C8 -_080CF0D8: - ldr r0, _080CF12C -_080CF0DA: - ldrb r5, [r0] - adds r0, r5, 0 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - strh r0, [r4, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - bgt _080CF102 - movs r0, 0xA - strh r0, [r4, 0x22] -_080CF102: - movs r0, 0x1 - strh r0, [r4, 0x2E] - strh r6, [r4, 0x30] - adds r1, r4, 0 - adds r1, 0x43 - ldrb r0, [r1] - strh r0, [r4, 0x32] - ldrb r0, [r1] - adds r0, 0x4 - strh r0, [r4, 0x34] - strh r6, [r4, 0x36] - ldr r1, _080CF130 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CF134 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CF12C: .4byte gUnknown_0202F7C9 -_080CF130: .4byte sub_80CF138 -_080CF134: .4byte sub_80785E4 - thumb_func_end sub_80CF0BC - - thumb_func_start sub_80CF138 -sub_80CF138: @ 80CF138 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x36] - adds r0, 0x1 - strh r0, [r1, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _080CF14E - ldr r0, _080CF154 - str r0, [r1, 0x1C] -_080CF14E: - pop {r0} - bx r0 - .align 2, 0 -_080CF154: .4byte sub_80CF158 - thumb_func_end sub_80CF138 - - thumb_func_start sub_80CF158 -sub_80CF158: @ 80CF158 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - adds r1, r0, 0x4 - strh r1, [r2, 0x30] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFE - ble _080CF18A - ldrh r0, [r2, 0x2E] - subs r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080CF184 - strh r0, [r2, 0x24] - ldr r0, _080CF180 - str r0, [r2, 0x1C] - b _080CF1C0 - .align 2, 0 -_080CF180: .4byte sub_80CF088 -_080CF184: - movs r0, 0xFF - ands r1, r0 - strh r1, [r2, 0x30] -_080CF18A: - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0x4F - ble _080CF19A - ldrh r0, [r2, 0x34] - adds r1, r2, 0 - adds r1, 0x43 - strb r0, [r1] -_080CF19A: - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0x9F - ble _080CF1AA - ldrh r0, [r2, 0x32] - adds r1, r2, 0 - adds r1, 0x43 - strb r0, [r1] -_080CF1AA: - ldr r1, _080CF1C4 - movs r3, 0x30 - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 19 - asrs r1, r0, 1 - adds r0, r1 - strh r0, [r2, 0x24] -_080CF1C0: - pop {r0} - bx r0 - .align 2, 0 -_080CF1C4: .4byte gSineTable - thumb_func_end sub_80CF158 - - thumb_func_start sub_80CF1C8 -sub_80CF1C8: @ 80CF1C8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080CF1DC - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CF1E4 - ldr r0, _080CF1E0 - b _080CF1E6 - .align 2, 0 -_080CF1DC: .4byte gUnknown_03004B00 -_080CF1E0: .4byte gUnknown_0202F7C8 -_080CF1E4: - ldr r0, _080CF208 -_080CF1E6: - ldrb r4, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80CEF44 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CF20C - adds r0, r5, 0 - movs r1, 0 - bl StartSpriteAnim - movs r0, 0x2 - b _080CF216 - .align 2, 0 -_080CF208: .4byte gUnknown_0202F7C9 -_080CF20C: - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim - movs r0, 0x3 -_080CF216: - strh r0, [r5, 0x2E] - ldr r0, _080CF224 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CF224: .4byte sub_80CF228 - thumb_func_end sub_80CF1C8 - - thumb_func_start sub_80CF228 -sub_80CF228: @ 80CF228 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - ble _080CF256 - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x2E] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r1, _080CF25C - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CF260 - str r0, [r4, 0x1C] -_080CF256: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF25C: .4byte sub_80CF264 -_080CF260: .4byte sub_8078600 - thumb_func_end sub_80CF228 - - thumb_func_start sub_80CF264 -sub_80CF264: @ 80CF264 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080CF27C - adds r0, r1, 0 - bl move_anim_8072740 -_080CF27C: - pop {r0} - bx r0 - thumb_func_end sub_80CF264 - - thumb_func_start sub_80CF280 -sub_80CF280: @ 80CF280 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_8078650 - ldr r5, _080CF2C4 - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_807867C - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x34] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x36] - ldr r1, _080CF2C8 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r1, _080CF2CC - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CF2C4: .4byte gUnknown_03004B00 -_080CF2C8: .4byte move_anim_8074EE0 -_080CF2CC: .4byte sub_8078278 - thumb_func_end sub_80CF280 - - thumb_func_start sub_80CF2D0 -sub_80CF2D0: @ 80CF2D0 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080CF2E4 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CF2EC - ldr r0, _080CF2E8 - b _080CF2EE - .align 2, 0 -_080CF2E4: .4byte gUnknown_03004B00 -_080CF2E8: .4byte gUnknown_0202F7C8 -_080CF2EC: - ldr r0, _080CF308 -_080CF2EE: - ldrb r0, [r0] - adds r1, r4, 0 - bl sub_80CEF44 - movs r0, 0 - strh r0, [r4, 0x2E] - strh r0, [r4, 0x30] - ldr r0, _080CF30C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF308: .4byte gUnknown_0202F7C9 -_080CF30C: .4byte sub_80CF310 - thumb_func_end sub_80CF2D0 - - thumb_func_start sub_80CF310 -sub_80CF310: @ 80CF310 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _080CF342 - cmp r0, 0x1 - bgt _080CF326 - cmp r0, 0 - beq _080CF32C - b _080CF370 -_080CF326: - cmp r0, 0x2 - beq _080CF35C - b _080CF370 -_080CF32C: - ldrh r0, [r1, 0x26] - subs r0, 0x3 - strh r0, [r1, 0x26] - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _080CF370 - b _080CF354 -_080CF342: - ldrh r0, [r1, 0x26] - adds r0, 0x3 - strh r0, [r1, 0x26] - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080CF370 -_080CF354: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _080CF370 -_080CF35C: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - bne _080CF370 - adds r0, r1, 0 - bl move_anim_8072740 -_080CF370: - pop {r0} - bx r0 - thumb_func_end sub_80CF310 - - thumb_func_start sub_80CF374 -sub_80CF374: @ 80CF374 - push {r4,lr} - adds r4, r0, 0 - ldr r3, _080CF3C0 - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r4, 0x30] - ldrh r2, [r0, 0x24] - adds r1, r2 - strh r1, [r0, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0x30] - movs r0, 0x2E - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _080CF3B2 - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x24] - adds r0, r4, 0 - bl move_anim_8074EE0 -_080CF3B2: - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF3C0: .4byte gSprites - thumb_func_end sub_80CF374 - - thumb_func_start sub_80CF3C4 -sub_80CF3C4: @ 80CF3C4 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080CF40C - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080CF410 - ldr r0, _080CF414 - ldrb r0, [r0] - adds r0, r1 - ldrb r6, [r0] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CF41C - ldr r0, _080CF418 - ldrh r1, [r5, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r5, 0x20] - adds r1, r0, 0 - b _080CF426 - .align 2, 0 -_080CF40C: .4byte gUnknown_0202F7C8 -_080CF410: .4byte gUnknown_02024BE0 -_080CF414: .4byte gUnknown_0202F7C9 -_080CF418: .4byte gUnknown_03004B00 -_080CF41C: - ldr r1, _080CF450 - ldrh r0, [r1] - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] -_080CF426: - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - strh r6, [r5, 0x32] - ldr r0, _080CF454 - str r0, [r5, 0x1C] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CF450: .4byte gUnknown_03004B00 -_080CF454: .4byte sub_80CF374 - thumb_func_end sub_80CF3C4 - - thumb_func_start sub_80CF458 -sub_80CF458: @ 80CF458 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r1, _080CF484 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x38] - ldr r0, _080CF488 - str r0, [r4, 0x1C] - ldr r1, _080CF48C - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF484: .4byte gUnknown_03004B00 -_080CF488: .4byte sub_80782D8 -_080CF48C: .4byte sub_80CF490 - thumb_func_end sub_80CF458 - - thumb_func_start sub_80CF490 -sub_80CF490: @ 80CF490 - push {lr} - ldrh r1, [r0, 0x30] - strh r1, [r0, 0x2E] - ldrh r1, [r0, 0x20] - strh r1, [r0, 0x32] - ldrh r1, [r0, 0x22] - adds r1, 0xF - strh r1, [r0, 0x36] - ldr r1, _080CF4B0 - str r1, [r0, 0x1C] - ldr r1, _080CF4B4 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080CF4B0: .4byte sub_8078B34 -_080CF4B4: .4byte sub_80CF4B8 - thumb_func_end sub_80CF490 - - thumb_func_start sub_80CF4B8 -sub_80CF4B8: @ 80CF4B8 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x38] - movs r3, 0x38 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080CF4CE - adds r0, r1, 0 - bl move_anim_8072740 - b _080CF4D2 -_080CF4CE: - subs r0, r2, 0x1 - strh r0, [r1, 0x38] -_080CF4D2: - pop {r0} - bx r0 - thumb_func_end sub_80CF4B8 - - thumb_func_start sub_80CF4D8 -sub_80CF4D8: @ 80CF4D8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080CF504 - ldr r0, _080CF508 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl sub_8078E70 - ldr r1, _080CF50C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080CF510 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF504: .4byte gUnknown_02024BE0 -_080CF508: .4byte gUnknown_0202F7C8 -_080CF50C: .4byte gTasks -_080CF510: .4byte sub_80CF514 - thumb_func_end sub_80CF4D8 - - thumb_func_start sub_80CF514 -sub_80CF514: @ 80CF514 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080CF544 - ldr r0, _080CF548 - ldrb r0, [r0] - adds r1, r0, r1 - ldrb r4, [r1] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CF550 - ldr r1, _080CF54C - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x8] - negs r0, r0 - lsls r0, 16 - lsrs r3, r0, 16 - adds r6, r2, 0 - b _080CF55E - .align 2, 0 -_080CF544: .4byte gUnknown_02024BE0 -_080CF548: .4byte gUnknown_0202F7C8 -_080CF54C: .4byte gTasks -_080CF550: - ldr r2, _080CF590 - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - adds r0, r2 - ldrh r3, [r0, 0x8] - adds r6, r1, 0 -_080CF55E: - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - bl obj_id_set_rotscale - ldr r1, _080CF590 - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080CF598 - ldrh r0, [r1, 0x8] - adds r0, 0xB0 - strh r0, [r1, 0x8] - ldr r1, _080CF594 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x26] - adds r1, 0x1 - b _080CF5C2 - .align 2, 0 -_080CF590: .4byte gTasks -_080CF594: .4byte gSprites -_080CF598: - cmp r0, 0x1 - bne _080CF5AE - ldrh r0, [r1, 0xE] - adds r0, 0x1 - strh r0, [r1, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - bne _080CF608 - movs r0, 0x2 - b _080CF606 -_080CF5AE: - ldrh r0, [r1, 0x8] - subs r0, 0xB0 - strh r0, [r1, 0x8] - ldr r1, _080CF5FC - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x26] - subs r1, 0x1 -_080CF5C2: - strh r1, [r0, 0x26] - adds r0, r4, 0 - bl sub_8078F9C - ldr r0, _080CF600 - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - movs r3, 0x8 - ldrsh r2, [r1, r3] - movs r0, 0xF2 - lsls r0, 4 - cmp r2, r0 - beq _080CF5E2 - cmp r2, 0 - bne _080CF608 -_080CF5E2: - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x2 - bne _080CF604 - adds r0, r4, 0 - bl sub_8078F40 - adds r0, r5, 0 - bl move_anim_task_del - b _080CF608 - .align 2, 0 -_080CF5FC: .4byte gSprites -_080CF600: .4byte gTasks -_080CF604: - adds r0, r2, 0x1 -_080CF606: - strh r0, [r1, 0xA] -_080CF608: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80CF514 - - thumb_func_start sub_80CF610 -sub_80CF610: @ 80CF610 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_8078650 - ldr r5, _080CF658 - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_807867C - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080CF65C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CF660 - adds r2, r4, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r1, r0 - strb r1, [r2] - movs r3, 0x4 - ldrsh r0, [r5, r3] - cmp r0, 0 - beq _080CF674 - movs r0, 0x2 - orrs r1, r0 - strb r1, [r2] - b _080CF674 - .align 2, 0 -_080CF658: .4byte gUnknown_03004B00 -_080CF65C: .4byte gUnknown_0202F7C8 -_080CF660: - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080CF674 - adds r2, r4, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] -_080CF674: - ldr r0, _080CF688 - str r0, [r4, 0x1C] - ldr r1, _080CF68C - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CF688: .4byte sub_8078600 -_080CF68C: .4byte move_anim_8072740 - thumb_func_end sub_80CF610 - - thumb_func_start sub_80CF690 -sub_80CF690: @ 80CF690 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_80787B0 - ldr r0, _080CF6AC - str r0, [r4, 0x1C] - ldr r1, _080CF6B0 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF6AC: .4byte sub_80785E4 -_080CF6B0: .4byte sub_80CF6B4 - thumb_func_end sub_80CF690 - - thumb_func_start sub_80CF6B4 -sub_80CF6B4: @ 80CF6B4 - push {lr} - movs r1, 0x6 - strh r1, [r0, 0x2E] - ldrh r1, [r0, 0x20] - strh r1, [r0, 0x32] - ldrh r1, [r0, 0x22] - subs r1, 0x20 - strh r1, [r0, 0x36] - ldr r1, _080CF6D4 - str r1, [r0, 0x1C] - ldr r1, _080CF6D8 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080CF6D4: .4byte sub_8078B34 -_080CF6D8: .4byte move_anim_8072740 - thumb_func_end sub_80CF6B4 - - thumb_func_start sub_80CF6DC -sub_80CF6DC: @ 80CF6DC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CF700 - ldr r1, _080CF6FC - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - b _080CF722 - .align 2, 0 -_080CF6FC: .4byte gUnknown_03004B00 -_080CF700: - ldr r0, _080CF7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CF722 - ldr r1, _080CF7CC - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] -_080CF722: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r4, _080CF7D0 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r6, _080CF7CC - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r6, 0x6] - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - adds r7, r0, 0 - ldrh r1, [r5, 0x20] - mov r2, r8 - lsls r0, r2, 16 - asrs r0, 16 - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r5, 0x22] - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_80790F0 - lsls r0, 16 - movs r1, 0xF0 - lsls r1, 24 - adds r0, r1 - lsrs r4, r0, 16 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CF794 - ldr r2, _080CF7D4 - adds r0, r4, r2 - lsls r0, 16 - lsrs r4, r0, 16 -_080CF794: - movs r3, 0x80 - lsls r3, 1 - str r4, [sp] - adds r0, r5, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8078FDC - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - mov r0, r8 - strh r0, [r5, 0x32] - strh r7, [r5, 0x36] - ldr r0, _080CF7D8 - str r0, [r5, 0x1C] - ldr r1, _080CF7DC - adds r0, r5, 0 - bl oamt_set_x3A_32 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CF7C8: .4byte gUnknown_0202F7C8 -_080CF7CC: .4byte gUnknown_03004B00 -_080CF7D0: .4byte gUnknown_0202F7C9 -_080CF7D4: .4byte 0xffffa000 -_080CF7D8: .4byte sub_8078B34 -_080CF7DC: .4byte move_anim_8072740 - thumb_func_end sub_80CF6DC - - thumb_func_start sub_80CF7E0 -sub_80CF7E0: @ 80CF7E0 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - subs r1, r0, 0x1 - strh r1, [r3, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080CF80A - ldr r2, _080CF810 - movs r0, 0x3C - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0xA] - subs r1, 0x1 - strh r1, [r0, 0xA] - adds r0, r3, 0 - bl DestroySprite -_080CF80A: - pop {r0} - bx r0 - .align 2, 0 -_080CF810: .4byte gTasks - thumb_func_end sub_80CF7E0 - - thumb_func_start sub_80CF814 -sub_80CF814: @ 80CF814 - push {r4,lr} - adds r2, r0, 0 - movs r0, 0x3C - ldrsh r1, [r2, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _080CF844 - adds r4, r0, r1 - movs r3, 0x2E - ldrsh r1, [r2, r3] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - ble _080CF848 - ldrh r0, [r2, 0x34] - ldrh r1, [r2, 0x38] - adds r0, r1 - strh r0, [r2, 0x38] - ldrh r0, [r2, 0x36] - ldrh r3, [r2, 0x3A] - adds r0, r3 - b _080CF856 - .align 2, 0 -_080CF844: .4byte gTasks -_080CF848: - ldrh r0, [r2, 0x38] - ldrh r1, [r2, 0x34] - subs r0, r1 - strh r0, [r2, 0x38] - ldrh r0, [r2, 0x3A] - ldrh r1, [r2, 0x36] - subs r0, r1 -_080CF856: - strh r0, [r2, 0x3A] - ldrh r0, [r2, 0x38] - ldrh r1, [r2, 0x30] - adds r3, r0, r1 - strh r3, [r2, 0x30] - ldrh r0, [r2, 0x3A] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - ldrh r1, [r4, 0x16] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CF87A - lsls r0, r3, 16 - lsrs r0, 24 - negs r0, r0 - b _080CF87E -_080CF87A: - lsls r0, r3, 16 - lsrs r0, 24 -_080CF87E: - strh r0, [r2, 0x24] - ldrh r1, [r4, 0x18] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CF892 - ldrh r0, [r2, 0x32] - lsrs r0, 8 - negs r0, r0 - b _080CF896 -_080CF892: - ldrh r0, [r2, 0x32] - lsrs r0, 8 -_080CF896: - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - subs r1, r0, 0x1 - strh r1, [r2, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080CF8AC - movs r0, 0x1E - strh r0, [r2, 0x2E] - ldr r0, _080CF8B4 - str r0, [r2, 0x1C] -_080CF8AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF8B4: .4byte sub_80CF7E0 - thumb_func_end sub_80CF814 - - thumb_func_start sub_80CF8B8 -sub_80CF8B8: @ 80CF8B8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - movs r0, 0x3C - ldrsh r1, [r7, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _080CF8FC - adds r6, r0, r1 - ldrh r2, [r6, 0x16] - movs r1, 0x2 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - ldrh r3, [r7, 0x30] - adds r2, r0, r3 - strh r2, [r7, 0x30] - ldrh r0, [r6, 0x18] - ands r1, r0 - ldrh r0, [r7, 0x32] - adds r1, r0 - strh r1, [r7, 0x32] - ldrh r1, [r6, 0x16] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CF900 - lsls r0, r2, 16 - lsrs r0, 24 - negs r0, r0 - b _080CF904 - .align 2, 0 -_080CF8FC: .4byte gTasks -_080CF900: - lsls r0, r2, 16 - lsrs r0, 24 -_080CF904: - strh r0, [r7, 0x24] - ldrh r1, [r6, 0x18] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CF918 - ldrh r0, [r7, 0x32] - lsrs r0, 8 - negs r0, r0 - b _080CF91C -_080CF918: - ldrh r0, [r7, 0x32] - lsrs r0, 8 -_080CF91C: - strh r0, [r7, 0x26] - ldrh r0, [r7, 0x2E] - subs r1, r0, 0x1 - strh r1, [r7, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080CF9E8 - movs r4, 0 - movs r0, 0x8 - strh r0, [r7, 0x2E] - movs r0, 0x4 - strh r0, [r6, 0x12] - movs r0, 0x80 - lsls r0, 5 - bl sub_81174E0 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r0, [r7, 0x24] - ldrh r1, [r7, 0x20] - adds r2, r0, r1 - strh r2, [r7, 0x20] - ldrh r0, [r7, 0x26] - ldrh r3, [r7, 0x22] - adds r0, r3 - strh r0, [r7, 0x22] - strh r4, [r7, 0x26] - strh r4, [r7, 0x24] - ldrh r3, [r6, 0x1E] - movs r0, 0x1E - ldrsh r1, [r6, r0] - lsls r0, r2, 16 - asrs r0, 16 - cmp r1, r0 - blt _080CF966 - subs r0, r3, r2 - b _080CF968 -_080CF966: - subs r0, r2, r3 -_080CF968: - lsls r0, 24 - lsrs r4, r0, 16 - ldrh r3, [r6, 0x20] - movs r0, 0x20 - ldrsh r1, [r6, r0] - ldrh r2, [r7, 0x22] - movs r6, 0x22 - ldrsh r0, [r7, r6] - cmp r1, r0 - blt _080CF980 - subs r0, r3, r2 - b _080CF982 -_080CF980: - subs r0, r2, r3 -_080CF982: - lsls r0, 24 - lsrs r0, 16 - mov r8, r0 - movs r0, 0 - strh r0, [r7, 0x32] - strh r0, [r7, 0x30] - strh r0, [r7, 0x3A] - strh r0, [r7, 0x38] - lsls r0, r4, 16 - asrs r0, 16 - lsls r5, 16 - asrs r5, 16 - adds r1, r5, 0 - bl sub_81174C4 - adds r4, r0, 0 - lsls r4, 16 - asrs r4, 16 - movs r6, 0xE0 - lsls r6, 1 - adds r0, r6, 0 - bl sub_81174E0 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_81174C4 - strh r0, [r7, 0x34] - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - adds r1, r5, 0 - bl sub_81174C4 - adds r4, r0, 0 - lsls r4, 16 - asrs r4, 16 - adds r0, r6, 0 - bl sub_81174E0 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_81174C4 - strh r0, [r7, 0x36] - ldr r0, _080CF9F4 - str r0, [r7, 0x1C] -_080CF9E8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CF9F4: .4byte sub_80CF814 - thumb_func_end sub_80CF8B8 - - thumb_func_start sub_80CF9F8 -sub_80CF9F8: @ 80CF9F8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080CFA1C - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0xA - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CFA16 - adds r0, r2, 0 - bl move_anim_task_del -_080CFA16: - pop {r0} - bx r0 - .align 2, 0 -_080CFA1C: .4byte gTasks - thumb_func_end sub_80CF9F8 - - thumb_func_start sub_80CFA20 -sub_80CFA20: @ 80CFA20 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080CFA74 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - subs r1, r0, 0x1 - strh r1, [r5, 0x8] - lsls r0, 16 - cmp r0, 0 - bgt _080CFAF4 - ldr r0, _080CFA78 - movs r2, 0x1A - ldrsh r1, [r5, r2] - movs r3, 0x1C - ldrsh r2, [r5, r3] - ldrb r3, [r5, 0xC] - ldrb r4, [r5, 0xA] - subs r3, r4 - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r0, 4 - add r0, r12 - lsls r0, 2 - ldr r1, _080CFA7C - adds r6, r0, r1 - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080CFA80 - cmp r0, 0x2 - beq _080CFA96 - b _080CFAA4 - .align 2, 0 -_080CFA74: .4byte gTasks -_080CFA78: .4byte gSpriteTemplate_83D74BC -_080CFA7C: .4byte gSprites -_080CFA80: - ldrb r2, [r6, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x18 - orrs r1, r0 - lsls r1, 1 - subs r0, 0x57 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, 0x3] - b _080CFAA4 -_080CFA96: - ldrb r0, [r6, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r6, 0x3] -_080CFAA4: - ldr r3, _080CFAFC - lsls r2, r7, 2 - adds r2, r7 - lsls r2, 3 - adds r4, r2, r3 - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x14] - subs r0, r1 - strh r0, [r6, 0x2E] - strh r7, [r6, 0x3C] - movs r1, 0xA - ldrsh r0, [r4, r1] - adds r0, 0xD - lsls r0, 1 - adds r0, r2 - adds r3, 0x8 - adds r0, r3 - mov r2, r12 - strh r2, [r0] - ldrh r0, [r4, 0xE] - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r0, 0x3F - negs r0, r0 - bl sub_8076F98 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x9A - bl PlaySE12WithPanning - movs r3, 0xA - ldrsh r0, [r4, r3] - cmp r0, 0x2 - ble _080CFAF4 - ldr r0, _080CFB00 - str r0, [r4] -_080CFAF4: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CFAFC: .4byte gTasks -_080CFB00: .4byte sub_80CF9F8 - thumb_func_end sub_80CFA20 - - thumb_func_start sub_80CFB04 -sub_80CFB04: @ 80CFB04 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0 - mov r9, r0 - movs r5, 0 - mov r0, sp - mov r1, r9 - strh r1, [r0] - mov r4, sp - adds r4, 0x2 - strh r1, [r4] - bl sub_8076BE0 - lsls r0, 24 - mov r10, r4 - cmp r0, 0 - beq _080CFB70 - ldr r1, _080CFB60 - lsls r2, r7, 2 - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x10] - ldr r3, _080CFB64 - ldrh r0, [r3] - negs r0, r0 - strh r0, [r3] - ldrh r1, [r3, 0x4] - movs r0, 0x1 - ands r0, r1 - mov r8, r2 - cmp r0, 0 - beq _080CFB68 - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strh r0, [r3, 0x4] - b _080CFBCA - .align 2, 0 -_080CFB60: .4byte gTasks -_080CFB64: .4byte gUnknown_03004B00 -_080CFB68: - movs r0, 0x1 - orrs r0, r1 - strh r0, [r3, 0x4] - b _080CFBCA -_080CFB70: - ldr r1, _080CFBB4 - ldr r0, _080CFBB8 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - lsls r2, r7, 2 - mov r8, r2 - cmp r0, 0 - bne _080CFBCA - ldr r1, _080CFBBC - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x10] - ldr r2, _080CFBC0 - ldrh r0, [r2] - negs r0, r0 - strh r0, [r2] - ldrh r0, [r2, 0x2] - negs r0, r0 - strh r0, [r2, 0x2] - ldrh r1, [r2, 0x4] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080CFBC4 - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - b _080CFBC8 - .align 2, 0 -_080CFBB4: .4byte gUnknown_02024A72 -_080CFBB8: .4byte gUnknown_0202F7C9 -_080CFBBC: .4byte gTasks -_080CFBC0: .4byte gUnknown_03004B00 -_080CFBC4: - movs r0, 0x1 - orrs r0, r1 -_080CFBC8: - strh r0, [r2, 0x4] -_080CFBCA: - ldr r5, _080CFC24 - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - ldr r1, _080CFC28 - mov r3, r8 - adds r4, r3, r7 - lsls r4, 3 - adds r4, r1 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1A] - adds r6, r0, 0 - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - mov r9, r0 - ldr r0, _080CFC2C - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CFC34 - ldr r4, _080CFC30 - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080CFC34 - ldrb r0, [r4] - movs r1, 0 - mov r2, sp - mov r3, r10 - bl sub_807A3FC - b _080CFC56 - .align 2, 0 -_080CFC24: .4byte gUnknown_0202F7C8 -_080CFC28: .4byte gTasks -_080CFC2C: .4byte gUnknown_020239F8 -_080CFC30: .4byte gUnknown_0202F7C9 -_080CFC34: - mov r5, sp - ldr r4, _080CFC90 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r1, r10 - strh r0, [r1] -_080CFC56: - mov r4, sp - ldr r0, _080CFC94 - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - mov r2, sp - ldr r3, _080CFC98 - ldrh r0, [r3] - ldrh r2, [r2] - adds r0, r2 - strh r0, [r1, 0x1E] - strh r0, [r4] - ldrh r0, [r3, 0x2] - mov r3, r10 - ldrh r3, [r3] - adds r0, r3 - strh r0, [r1, 0x20] - mov r1, r10 - strh r0, [r1] - mov r0, sp - ldrh r2, [r0] - movs r3, 0 - ldrsh r0, [r0, r3] - adds r1, r6, 0 - cmp r0, r1 - blt _080CFC9C - subs r0, r2, r1 - b _080CFC9E - .align 2, 0 -_080CFC90: .4byte gUnknown_0202F7C9 -_080CFC94: .4byte gTasks -_080CFC98: .4byte gUnknown_03004B00 -_080CFC9C: - subs r0, r1, r2 -_080CFC9E: - lsls r0, 16 - lsrs r0, 16 - lsls r4, r0, 16 - asrs r4, 16 - ldr r5, _080CFD14 - ldrh r1, [r5, 0x4] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - lsls r0, 16 - asrs r0, 16 - bl sub_81174E0 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_81174C4 - ldr r2, _080CFD18 - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r6, r1, r2 - strh r0, [r6, 0x12] - movs r1, 0x12 - ldrsh r0, [r6, r1] - movs r1, 0x80 - bl sub_81174C4 - strh r0, [r6, 0x14] - ldrh r0, [r5, 0x4] - strh r0, [r6, 0x16] - mov r2, r10 - ldrh r1, [r2] - movs r3, 0 - ldrsh r0, [r2, r3] - mov r4, r9 - cmp r0, r4 - blt _080CFD1C - subs r4, r1, r4 - lsls r4, 16 - asrs r4, 16 - movs r1, 0x12 - ldrsh r0, [r6, r1] - bl sub_81174E0 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_81174C4 - movs r1, 0x2 - negs r1, r1 - ands r1, r0 - strh r1, [r6, 0x18] - b _080CFD3C - .align 2, 0 -_080CFD14: .4byte gUnknown_03004B00 -_080CFD18: .4byte gTasks -_080CFD1C: - subs r4, r1 - lsls r4, 16 - asrs r4, 16 - movs r2, 0x12 - ldrsh r0, [r6, r2] - bl sub_81174E0 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_81174C4 - movs r1, 0x1 - orrs r0, r1 - strh r0, [r6, 0x18] -_080CFD3C: - ldr r1, _080CFD7C - mov r3, r8 - adds r0, r3, r7 - lsls r0, 3 - adds r5, r0, r1 - ldr r4, _080CFD80 - ldrh r0, [r4, 0x6] - strh r0, [r5, 0xE] - ldrh r1, [r4, 0x8] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080CFD8C - movs r0, 0x80 - eors r0, r1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3F - ble _080CFDB4 - ldr r0, _080CFD84 - ldrb r0, [r0] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CFD88 - adds r1, r2, 0 - ldrh r4, [r4, 0x8] - adds r1, r4 - adds r0, r1 - b _080CFDC4 - .align 2, 0 -_080CFD7C: .4byte gTasks -_080CFD80: .4byte gUnknown_03004B00 -_080CFD84: .4byte gUnknown_0202F7C9 -_080CFD88: .4byte 0x0000ffc0 -_080CFD8C: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x3F - ble _080CFDB4 - ldr r0, _080CFDAC - ldrb r0, [r0] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080CFDB0 - adds r1, r3, 0 - ldrh r4, [r4, 0x8] - adds r1, r4 - adds r0, r1 - b _080CFDC4 - .align 2, 0 -_080CFDAC: .4byte gUnknown_0202F7C9 -_080CFDB0: .4byte 0x0000ffc0 -_080CFDB4: - ldr r0, _080CFDF0 - ldrb r0, [r0] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x8] - subs r0, r1 -_080CFDC4: - strh r0, [r5, 0xC] - ldr r0, _080CFDF4 - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0x2 - bgt _080CFDDC - movs r0, 0x3 - strh r0, [r1, 0xC] -_080CFDDC: - ldr r0, _080CFDF8 - str r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CFDF0: .4byte gUnknown_0202F7C9 -_080CFDF4: .4byte gTasks -_080CFDF8: .4byte sub_80CFA20 - thumb_func_end sub_80CFB04 - - thumb_func_start sub_80CFDFC -sub_80CFDFC: @ 80CFDFC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_80787B0 - ldr r0, _080CFE24 - ldrh r0, [r0, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r4, 0x2E] - ldr r0, _080CFE28 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CFE24: .4byte gSpriteTemplate_83D75AC -_080CFE28: .4byte sub_80CFE2C - thumb_func_end sub_80CFDFC - - thumb_func_start sub_80CFE2C -sub_80CFE2C: @ 80CFE2C - push {r4-r7,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080CFE90 - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r5, [r4, 0x2E] - ldr r1, _080CFE98 - adds r0, r5, 0 - adds r0, 0x8 - lsls r0, 1 - adds r0, r1 - ldrh r7, [r0] - adds r6, r1, 0 - adds r1, r5, 0 - adds r1, 0x9 - lsls r0, r5, 1 - adds r0, r6 - adds r2, r0, 0 - adds r2, 0x10 - movs r3, 0x7 - lsls r1, 1 - adds r1, r6 -_080CFE64: - ldrh r0, [r1] - strh r0, [r2] - adds r1, 0x2 - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080CFE64 - adds r0, r5, 0 - adds r0, 0xF - lsls r0, 1 - adds r0, r6 - strh r7, [r0] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - bne _080CFE90 - adds r0, r4, 0 - bl move_anim_8072740 -_080CFE90: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CFE98: .4byte gPlttBufferFaded - thumb_func_end sub_80CFE2C - - thumb_func_start sub_80CFE9C -sub_80CFE9C: @ 80CFE9C - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r4, _080CFF3C - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080CFF40 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, _080CFF44 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CFEE0 - ldrh r0, [r4, 0x4] - negs r0, r0 - strh r0, [r4, 0x4] -_080CFEE0: - lsls r0, r6, 16 - asrs r0, 16 - ldrh r1, [r4, 0x4] - adds r0, r1 - lsls r0, 16 - ldrh r1, [r5, 0x20] - lsrs r6, r0, 16 - asrs r0, 16 - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r5, 0x22] - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_80790F0 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8078FDC - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x2E] - strh r6, [r5, 0x32] - strh r7, [r5, 0x36] - ldr r0, _080CFF48 - str r0, [r5, 0x1C] - ldr r1, _080CFF4C - adds r0, r5, 0 - bl oamt_set_x3A_32 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CFF3C: .4byte gUnknown_0202F7C9 -_080CFF40: .4byte gUnknown_03004B00 -_080CFF44: .4byte gUnknown_0202F7C8 -_080CFF48: .4byte sub_8078C00 -_080CFF4C: .4byte move_anim_8072740 - thumb_func_end sub_80CFE9C - - thumb_func_start sub_80CFF50 -sub_80CFF50: @ 80CFF50 - ldr r1, _080CFF60 - strh r1, [r0, 0x32] - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - ldr r1, _080CFF64 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080CFF60: .4byte 0x0000fff0 -_080CFF64: .4byte sub_80CFF68 - thumb_func_end sub_80CFF50 - - thumb_func_start sub_80CFF68 -sub_80CFF68: @ 80CFF68 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - ldr r0, _080CFFD4 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CFF8C - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] -_080CFF8C: - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x5 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7E - ble _080CFFCC - movs r0, 0 - strh r0, [r4, 0x30] - movs r1, 0x32 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080CFFCC - adds r0, r4, 0 - bl move_anim_8072740 -_080CFFCC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CFFD4: .4byte gUnknown_0202F7C8 - thumb_func_end sub_80CFF68 - - thumb_func_start sub_80CFFD8 -sub_80CFFD8: @ 80CFFD8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - movs r0, 0x14 - strh r0, [r4, 0x2E] - ldr r5, _080D0024 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080D0028 - str r0, [r4, 0x1C] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080D002C - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D0024: .4byte gUnknown_0202F7C9 -_080D0028: .4byte sub_8078B34 -_080D002C: .4byte sub_80D0030 - thumb_func_end sub_80CFFD8 - - thumb_func_start sub_80D0030 -sub_80D0030: @ 80D0030 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x3F - bl sub_8076F98 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xA6 - bl PlaySE12WithPanning - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - movs r2, 0 - movs r1, 0x7 - adds r0, r4, 0 - adds r0, 0x3C -_080D0064: - strh r2, [r0] - subs r0, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _080D0064 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x7 - ands r0, r1 - ldr r2, _080D00AC - adds r1, r2, 0 - subs r1, r0 - strh r1, [r4, 0x3A] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA0 - bl __umodsi3 - adds r0, 0xA0 - strh r0, [r4, 0x3C] - ldr r0, _080D00B0 - str r0, [r4, 0x1C] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D00AC: .4byte 0x0000fff4 -_080D00B0: .4byte sub_80D00B4 - thumb_func_end sub_80D0030 - - thumb_func_start sub_80D00B4 -sub_80D00B4: @ 80D00B4 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x3C] - ldrh r2, [r4, 0x2E] - adds r0, r1, r2 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r2, r0, 24 - strh r2, [r4, 0x24] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D00D2 - negs r0, r2 - strh r0, [r4, 0x24] -_080D00D2: - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x8 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7E - ble _080D0112 - movs r0, 0 - strh r0, [r4, 0x30] - movs r1, 0x32 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080D0112 - adds r0, r4, 0 - bl move_anim_8072740 -_080D0112: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D00B4 - - thumb_func_start sub_80D0118 -sub_80D0118: @ 80D0118 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_80787B0 - ldr r0, _080D0168 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D0136 - ldrh r0, [r4, 0x22] - adds r0, 0x10 - strh r0, [r4, 0x22] -_080D0136: - ldr r1, _080D016C - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0xC] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldr r0, _080D0170 - str r0, [r4, 0x1C] - ldr r1, _080D0174 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D0168: .4byte gUnknown_0202F7C8 -_080D016C: .4byte gUnknown_03004B00 -_080D0170: .4byte sub_8078114 -_080D0174: .4byte move_anim_8072740 - thumb_func_end sub_80D0118 - - thumb_func_start sub_80D0178 -sub_80D0178: @ 80D0178 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - movs r7, 0x20 - ldr r4, _080D01F4 - movs r0, 0x10 - mov r8, r0 - ldr r6, _080D01F8 - ldr r0, _080D01FC - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080D01A4 - adds r7, r4, 0 - movs r4, 0x20 - mov r8, r6 - movs r6, 0x10 - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080D01A4: - lsls r0, r7, 16 - asrs r0, 16 - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - movs r0, 0x6 - strh r0, [r5, 0x2E] - ldr r4, _080D0200 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - add r0, r8 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x36] - ldr r0, _080D0204 - str r0, [r5, 0x1C] - ldr r1, _080D0208 - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D01F4: .4byte 0x0000ffe0 -_080D01F8: .4byte 0x0000fff0 -_080D01FC: .4byte gUnknown_03004B00 -_080D0200: .4byte gUnknown_0202F7C9 -_080D0204: .4byte sub_8078B34 -_080D0208: .4byte sub_80D020C - thumb_func_end sub_80D0178 - - thumb_func_start sub_80D020C -sub_80D020C: @ 80D020C - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D0222 - adds r0, r2, 0 - bl move_anim_8072740 -_080D0222: - pop {r0} - bx r0 - thumb_func_end sub_80D020C - - thumb_func_start sub_80D0228 -sub_80D0228: @ 80D0228 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - movs r0, 0x20 - mov r8, r0 - ldr r4, _080D02BC - movs r2, 0x10 - mov r9, r2 - ldr r6, _080D02C0 - ldr r7, _080D02C4 - ldrh r1, [r7] - movs r2, 0 - ldrsh r0, [r7, r2] - cmp r0, 0 - beq _080D025C - mov r8, r4 - movs r4, 0x20 - mov r9, r6 - movs r6, 0x10 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim -_080D025C: - mov r0, r8 - lsls r1, r0, 16 - asrs r1, 16 - ldrh r2, [r5, 0x20] - adds r1, r2 - strh r1, [r5, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - movs r0, 0x6 - strh r0, [r5, 0x2E] - strh r1, [r5, 0x30] - ldr r4, _080D02C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - add r0, r9 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r7] - strh r0, [r5, 0x38] - ldrh r0, [r5, 0x2E] - strh r0, [r5, 0x3A] - ldr r0, _080D02CC - str r0, [r5, 0x1C] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D02BC: .4byte 0x0000ffe0 -_080D02C0: .4byte 0x0000fff0 -_080D02C4: .4byte gUnknown_03004B00 -_080D02C8: .4byte gUnknown_0202F7C9 -_080D02CC: .4byte sub_80D02D0 - thumb_func_end sub_80D0228 - - thumb_func_start sub_80D02D0 -sub_80D02D0: @ 80D02D0 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080D0334 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D0334 - adds r0, r4, 0 - movs r1, 0 - bl SeekSpriteAnim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r2, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0x2 - strh r0, [r4, 0x24] - ldr r0, _080D033C - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - eors r0, r1 - strh r0, [r4, 0x32] - strh r2, [r4, 0x36] - strh r2, [r4, 0x34] - ldr r0, _080D0340 - str r0, [r4, 0x1C] -_080D0334: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D033C: .4byte 0x0000fffe -_080D0340: .4byte sub_80D0344 - thumb_func_end sub_80D02D0 - - thumb_func_start sub_80D0344 -sub_80D0344: @ 80D0344 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D035C - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x26] - negs r0, r0 - strh r0, [r4, 0x26] -_080D035C: - ldrh r0, [r4, 0x34] - movs r1, 0x1 - eors r0, r1 - movs r1, 0 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _080D039E - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - strh r1, [r4, 0x36] - strh r1, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x38] - movs r1, 0x1 - eors r1, r0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080D03A4 - str r0, [r4, 0x1C] -_080D039E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D03A4: .4byte sub_80D03A8 - thumb_func_end sub_80D0344 - - thumb_func_start sub_80D03A8 -sub_80D03A8: @ 80D03A8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080D03BC - adds r0, r4, 0 - bl move_anim_8072740 -_080D03BC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D03A8 - - thumb_func_start sub_80D03C4 -sub_80D03C4: @ 80D03C4 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078E70 - adds r0, r4, 0 - movs r1, 0xD0 - movs r2, 0xD0 - movs r3, 0 - bl obj_id_set_rotscale - ldr r1, _080D041C - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - movs r1, 0 - bl sub_8079108 - ldr r1, _080D0420 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x50 - strh r1, [r0, 0x8] - ldr r1, _080D0424 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D041C: .4byte gSprites -_080D0420: .4byte gTasks -_080D0424: .4byte sub_80D0428 - thumb_func_end sub_80D03C4 - - thumb_func_start sub_80D0428 -sub_80D0428: @ 80D0428 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080D0480 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - subs r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080D0478 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8078F40 - ldr r1, _080D0484 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - movs r1, 0x1 - bl sub_8079108 - adds r0, r5, 0 - bl move_anim_task_del -_080D0478: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D0480: .4byte gTasks -_080D0484: .4byte gSprites - thumb_func_end sub_80D0428 - - thumb_func_start sub_80D0488 -sub_80D0488: @ 80D0488 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080D04D4 - adds r4, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x8] - movs r1, 0 - bl sub_8078E70 - strh r5, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0x10] - strh r5, [r4, 0x12] - strh r5, [r4, 0x14] - ldr r0, _080D04D8 - ldrb r0, [r0] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x16] - ldr r0, _080D04DC - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D04D4: .4byte gTasks -_080D04D8: .4byte gUnknown_0202F7C8 -_080D04DC: .4byte sub_80D04E0 - thumb_func_end sub_80D0488 - - thumb_func_start sub_80D04E0 -sub_80D04E0: @ 80D04E0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080D0504 - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bls _080D04FA - b _080D060A -_080D04FA: - lsls r0, 2 - ldr r1, _080D0508 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D0504: .4byte gTasks -_080D0508: .4byte _080D050C - .align 2, 0 -_080D050C: - .4byte _080D0524 - .4byte _080D056C - .4byte _080D05A2 - .4byte _080D05A8 - .4byte _080D05B8 - .4byte _080D05EC -_080D0524: - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080D0534 - cmp r0, 0x3 - beq _080D0534 - cmp r0, 0x6 - bne _080D053C -_080D0534: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80D0614 -_080D053C: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x10] - adds r0, 0x28 - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - movs r1, 0x10 - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_8079A64 - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0x20 - bne _080D060A - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - b _080D05E4 -_080D056C: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D060A - movs r2, 0x12 - ldrsh r1, [r4, r2] - cmp r1, 0x3 - bne _080D0582 - strh r0, [r4, 0xC] - strh r1, [r4, 0xA] - b _080D060A -_080D0582: - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - movs r2, 0x80 - lsls r2, 1 - strh r2, [r4, 0x10] - ldrb r0, [r4, 0x8] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_8079A64 - movs r0, 0x2 - strh r0, [r4, 0xA] - b _080D060A -_080D05A2: - movs r0, 0 - strh r0, [r4, 0xA] - b _080D060A -_080D05A8: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - ble _080D060A - b _080D05E0 -_080D05B8: - ldrh r0, [r4, 0xC] - adds r0, 0x2 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x10] - subs r0, 0x50 - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - movs r1, 0x10 - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_8079A64 - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0x20 - bne _080D060A -_080D05E0: - movs r0, 0 - strh r0, [r4, 0xC] -_080D05E4: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _080D060A -_080D05EC: - ldrb r0, [r4, 0x8] - bl sub_8078F40 - ldr r2, _080D0610 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x26] - adds r0, r5, 0 - bl move_anim_task_del -_080D060A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D0610: .4byte gSprites - thumb_func_end sub_80D04E0 - - thumb_func_start sub_80D0614 -sub_80D0614: @ 80D0614 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r0, 0 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r0, 16 - asrs r4, r0, 16 - cmp r4, 0 - blt _080D06EE - bl AllocOamMatrix - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xFF - bne _080D0658 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _080D0654 - adds r0, r1 - bl obj_delete_but_dont_free_vram - b _080D06EE - .align 2, 0 -_080D0654: .4byte gSprites -_080D0658: - ldr r5, _080D06FC - lsls r3, r4, 4 - adds r3, r4 - lsls r3, 2 - adds r4, r3, r5 - ldrb r1, [r4, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1F - ands r6, r0 - lsls r2, r6, 1 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x3] - ldrb r0, [r7, 0x16] - ldrb r1, [r7, 0xE] - subs r0, r1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrh r0, [r7, 0xE] - adds r0, 0x1 - strh r0, [r7, 0xE] - ldrh r0, [r7, 0x14] - adds r0, 0x1 - strh r0, [r7, 0x14] - movs r0, 0x10 - strh r0, [r4, 0x2E] - mov r0, r9 - strh r0, [r4, 0x30] - movs r0, 0x6 - strh r0, [r4, 0x32] - adds r5, 0x1C - adds r3, r5 - ldr r0, _080D0700 - str r0, [r3] - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 - movs r1, 0x10 - ldrsh r2, [r7, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x1] - movs r3, 0x4 - negs r3, r3 - ands r3, r0 - movs r0, 0x1 - orrs r3, r0 - strb r3, [r4, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r4, 0 - bl CalcCenterToCornerVec -_080D06EE: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D06FC: .4byte gSprites -_080D0700: .4byte sub_80D0704 - thumb_func_end sub_80D0614 - - thumb_func_start sub_80D0704 -sub_80D0704: @ 80D0704 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080D0742 - ldr r3, _080D0748 - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x30 - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl obj_delete_but_dont_free_vram -_080D0742: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D0748: .4byte gTasks - thumb_func_end sub_80D0704 - - thumb_func_start sub_80D074C -sub_80D074C: @ 80D074C - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080D0770 - adds r4, r0, r1 - ldr r5, _080D0774 - movs r1, 0x2 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D0778 - adds r0, r2, 0 - bl move_anim_task_del - b _080D079E - .align 2, 0 -_080D0770: .4byte gTasks -_080D0774: .4byte gUnknown_03004B00 -_080D0778: - ldrb r0, [r5] - bl obj_id_for_side_relative_to_move - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - strh r1, [r4, 0x8] - strh r2, [r4, 0xA] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0xC] - strh r2, [r4, 0xE] - strh r2, [r4, 0x10] - ldr r2, _080D07A4 - adds r0, r4, 0 - bl sub_80798F4 - ldr r0, _080D07A8 - str r0, [r4] -_080D079E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D07A4: .4byte gUnknown_083D76F4 -_080D07A8: .4byte sub_80D07AC - thumb_func_end sub_80D074C - - thumb_func_start sub_80D07AC -sub_80D07AC: @ 80D07AC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080D07D0 - adds r4, r0, r1 - movs r0, 0xA - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080D0814 - cmp r5, 0x1 - bgt _080D07D4 - cmp r5, 0 - beq _080D07DE - b _080D08BC - .align 2, 0 -_080D07D0: .4byte gTasks -_080D07D4: - cmp r5, 0x2 - beq _080D0848 - cmp r5, 0x3 - beq _080D0878 - b _080D08BC -_080D07DE: - adds r0, r4, 0 - bl sub_807992C - ldrh r2, [r4, 0x10] - adds r2, 0x3 - strh r2, [r4, 0x10] - ldr r3, _080D0810 - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x26] - adds r1, r2 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080D08BC - strh r5, [r4, 0xE] - b _080D0870 - .align 2, 0 -_080D0810: .4byte gSprites -_080D0814: - adds r0, r4, 0 - bl sub_807992C - ldr r2, _080D0844 - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x10] - ldrh r2, [r0, 0x26] - adds r1, r2 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080D08BC - movs r0, 0 - strh r0, [r4, 0xE] - b _080D0870 - .align 2, 0 -_080D0844: .4byte gSprites -_080D0848: - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D0870 - ldr r2, _080D086C - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x2 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0x10] - subs r0, 0x2 - strh r0, [r4, 0x10] - b _080D08BC - .align 2, 0 -_080D086C: .4byte gSprites -_080D0870: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _080D08BC -_080D0878: - adds r0, r4, 0 - bl sub_807992C - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080D08BC - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _080D08B0 - ldr r2, _080D08AC - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x26] - adds r0, r6, 0 - bl move_anim_task_del - b _080D08BC - .align 2, 0 -_080D08AC: .4byte gSprites -_080D08B0: - ldrb r1, [r4, 0x8] - ldr r2, _080D08C4 - adds r0, r4, 0 - bl sub_80798F4 - strh r5, [r4, 0xA] -_080D08BC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D08C4: .4byte gUnknown_083D76F4 - thumb_func_end sub_80D07AC - - thumb_func_start sub_80D08C8 -sub_80D08C8: @ 80D08C8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080D08F8 - adds r4, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080D08FC - adds r0, r4, 0 - bl sub_80798F4 - ldr r0, _080D0900 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D08F8: .4byte gTasks -_080D08FC: .4byte gUnknown_083D7714 -_080D0900: .4byte sub_80D0904 - thumb_func_end sub_80D08C8 - - thumb_func_start sub_80D0904 -sub_80D0904: @ 80D0904 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080D092C - adds r0, r1 - bl sub_807992C - lsls r0, 24 - cmp r0, 0 - bne _080D0924 - adds r0, r4, 0 - bl move_anim_task_del -_080D0924: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D092C: .4byte gTasks - thumb_func_end sub_80D0904 - - thumb_func_start sub_80D0930 -sub_80D0930: @ 80D0930 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D0960 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D0964 - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r4, 0x20] - movs r0, 0x40 - b _080D097E - .align 2, 0 -_080D0960: .4byte gUnknown_0202F7C8 -_080D0964: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x20 - strh r0, [r4, 0x20] - ldr r0, _080D09B0 -_080D097E: - strh r0, [r4, 0x30] - ldr r0, _080D09B4 - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - strh r0, [r4, 0x22] - movs r0, 0x34 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x32] - strh r1, [r4, 0x34] - strh r1, [r4, 0x36] - ldr r1, _080D09B8 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080D09BC - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D09B0: .4byte 0x0000ffc0 -_080D09B4: .4byte gUnknown_0202F7C8 -_080D09B8: .4byte move_anim_8072740 -_080D09BC: .4byte sub_8078394 - thumb_func_end sub_80D0930 - - thumb_func_start sub_80D09C0 -sub_80D09C0: @ 80D09C0 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080D09D4 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D09DC - ldr r0, _080D09D8 - b _080D09DE - .align 2, 0 -_080D09D4: .4byte gUnknown_03004B00 -_080D09D8: .4byte gUnknown_0202F7C8 -_080D09DC: - ldr r0, _080D0A3C -_080D09DE: - ldrb r5, [r0] - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D09F8 - ldr r1, _080D0A40 - movs r2, 0x2 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x2] -_080D09F8: - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080D0A40 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x20] - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x4] - adds r0, r4 - strh r0, [r6, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bgt _080D0A2A - movs r0, 0x8 - strh r0, [r6, 0x22] -_080D0A2A: - ldr r1, _080D0A44 - adds r0, r6, 0 - bl oamt_set_x3A_32 - ldr r0, _080D0A48 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D0A3C: .4byte gUnknown_0202F7C9 -_080D0A40: .4byte gUnknown_03004B00 -_080D0A44: .4byte move_anim_8074EE0 -_080D0A48: .4byte sub_80785E4 - thumb_func_end sub_80D09C0 - - thumb_func_start sub_80D0A4C -sub_80D0A4C: @ 80D0A4C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080D0A80 - adds r4, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - strh r1, [r4, 0x8] - strh r0, [r4, 0xA] - ldr r2, _080D0A84 - adds r0, r4, 0 - bl sub_80798F4 - ldr r0, _080D0A88 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D0A80: .4byte gTasks -_080D0A84: .4byte gUnknown_083D77B0 -_080D0A88: .4byte sub_80D0A8C - thumb_func_end sub_80D0A4C - - thumb_func_start sub_80D0A8C -sub_80D0A8C: @ 80D0A8C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080D0AB4 - adds r0, r1 - bl sub_807992C - lsls r0, 24 - cmp r0, 0 - bne _080D0AAC - adds r0, r4, 0 - bl move_anim_task_del -_080D0AAC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D0AB4: .4byte gTasks - thumb_func_end sub_80D0A8C - - thumb_func_start sub_80D0AB8 -sub_80D0AB8: @ 80D0AB8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D0B2C - adds r4, r1, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - strh r0, [r4, 0x8] - strh r2, [r4, 0xA] - movs r0, 0x4 - strh r0, [r4, 0xC] - movs r0, 0x7 - strh r0, [r4, 0xE] - movs r0, 0x3 - strh r0, [r4, 0x10] - ldr r3, _080D0B30 - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x20] - strh r0, [r4, 0x12] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x14] - strh r2, [r4, 0x16] - strh r2, [r4, 0x18] - movs r0, 0x2 - strh r0, [r4, 0x1A] - ldr r0, _080D0B34 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D0B22 - movs r1, 0xC - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0xC] -_080D0B22: - ldr r0, _080D0B38 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D0B2C: .4byte gTasks -_080D0B30: .4byte gSprites -_080D0B34: .4byte gUnknown_0202F7C8 -_080D0B38: .4byte sub_80D0B3C - thumb_func_end sub_80D0AB8 - - thumb_func_start sub_80D0B3C -sub_80D0B3C: @ 80D0B3C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080D0B84 - adds r3, r0, r1 - ldrh r0, [r3, 0x16] - adds r0, 0x1 - strh r0, [r3, 0x16] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080D0BA2 - movs r0, 0 - strh r0, [r3, 0x16] - ldrh r0, [r3, 0x18] - adds r0, 0x1 - strh r0, [r3, 0x18] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D0B8C - ldr r2, _080D0B88 - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x1A] - ldrh r2, [r0, 0x22] - adds r1, r2 - b _080D0BA0 - .align 2, 0 -_080D0B84: .4byte gTasks -_080D0B88: .4byte gSprites -_080D0B8C: - ldr r2, _080D0BB4 - movs r5, 0x8 - ldrsh r1, [r3, r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - ldrh r2, [r3, 0x1A] - subs r1, r2 -_080D0BA0: - strh r1, [r0, 0x22] -_080D0BA2: - movs r1, 0xA - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _080D0BF0 - cmp r0, 0x1 - bgt _080D0BB8 - cmp r0, 0 - beq _080D0BBE - b _080D0C80 - .align 2, 0 -_080D0BB4: .4byte gSprites -_080D0BB8: - cmp r0, 0x2 - beq _080D0C20 - b _080D0C80 -_080D0BBE: - ldr r2, _080D0BEC - movs r5, 0x8 - ldrsh r1, [r3, r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0xC] - ldrh r2, [r0, 0x20] - adds r1, r2 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0xE] - subs r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _080D0C80 - movs r0, 0xE - strh r0, [r3, 0xE] - movs r0, 0x1 - strh r0, [r3, 0xA] - b _080D0C80 - .align 2, 0 -_080D0BEC: .4byte gSprites -_080D0BF0: - ldr r2, _080D0C1C - movs r5, 0x8 - ldrsh r1, [r3, r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - ldrh r2, [r3, 0xC] - subs r1, r2 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0xE] - subs r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _080D0C80 - movs r0, 0x7 - strh r0, [r3, 0xE] - movs r0, 0x2 - strh r0, [r3, 0xA] - b _080D0C80 - .align 2, 0 -_080D0C1C: .4byte gSprites -_080D0C20: - ldr r2, _080D0C58 - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0xC] - ldrh r5, [r0, 0x20] - adds r1, r5 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0xE] - subs r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - bne _080D0C80 - ldrh r0, [r3, 0x10] - subs r0, 0x1 - strh r0, [r3, 0x10] - lsls r0, 16 - cmp r0, 0 - beq _080D0C5C - movs r0, 0x7 - strh r0, [r3, 0xE] - strh r1, [r3, 0xA] - b _080D0C80 - .align 2, 0 -_080D0C58: .4byte gSprites -_080D0C5C: - ldrh r1, [r3, 0x18] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D0C7A - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - ldrh r2, [r3, 0x1A] - subs r1, r2 - strh r1, [r0, 0x22] -_080D0C7A: - adds r0, r4, 0 - bl move_anim_task_del -_080D0C80: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D0B3C - - thumb_func_start sub_80D0C88 -sub_80D0C88: @ 80D0C88 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D0CD8 - adds r5, r1, r0 - ldr r4, _080D0CDC - ldrb r0, [r4] - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - movs r1, 0 - strh r0, [r5, 0x8] - movs r0, 0x4 - strh r0, [r5, 0xA] - strh r1, [r5, 0xC] - strh r1, [r5, 0xE] - strh r1, [r5, 0x10] - strh r1, [r5, 0x12] - ldrb r0, [r4] - bl sub_807A100 - strh r0, [r5, 0x26] - ldrb r0, [r4] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D0CE8 - ldr r0, _080D0CE0 - ldrh r0, [r0] - strh r0, [r5, 0x14] - ldr r0, _080D0CE4 - b _080D0CF0 - .align 2, 0 -_080D0CD8: .4byte gTasks -_080D0CDC: .4byte gUnknown_0202F7C9 -_080D0CE0: .4byte gUnknown_030042C0 -_080D0CE4: .4byte REG_BG1HOFS -_080D0CE8: - ldr r0, _080D0D54 - ldrh r0, [r0] - strh r0, [r5, 0x14] - ldr r0, _080D0D58 -_080D0CF0: - str r0, [sp] - ldrh r0, [r5, 0x8] - adds r1, r0, 0 - subs r1, 0x40 - lsls r2, r1, 16 - lsls r0, 16 - cmp r2, r0 - bgt _080D0D2E - ldr r4, _080D0D5C - movs r0, 0xF0 - lsls r0, 3 - adds r6, r4, r0 -_080D0D08: - asrs r3, r2, 16 - cmp r3, 0 - blt _080D0D20 - lsls r1, r3, 1 - adds r2, r1, r4 - ldrh r0, [r5, 0x14] - adds r0, 0xF0 - strh r0, [r2] - adds r1, r6 - ldrh r0, [r5, 0x14] - adds r0, 0xF0 - strh r0, [r1] -_080D0D20: - adds r0, r3, 0x1 - lsls r2, r0, 16 - asrs r1, r2, 16 - movs r3, 0x8 - ldrsh r0, [r5, r3] - cmp r1, r0 - ble _080D0D08 -_080D0D2E: - ldr r0, _080D0D60 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - ldr r0, _080D0D64 - str r0, [r5] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D0D54: .4byte gUnknown_03004288 -_080D0D58: .4byte REG_BG2HOFS -_080D0D5C: .4byte gUnknown_03004DE0 -_080D0D60: .4byte 0xa2600001 -_080D0D64: .4byte sub_80D0D68 - thumb_func_end sub_80D0C88 - - thumb_func_start sub_80D0D68 -sub_80D0D68: @ 80D0D68 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080D0D88 - adds r3, r0, r1 - movs r1, 0x10 - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _080D0D8C - cmp r0, 0x1 - beq _080D0DA2 - b _080D0E22 - .align 2, 0 -_080D0D88: .4byte gTasks -_080D0D8C: - ldrh r0, [r3, 0x12] - adds r0, 0x1 - strh r0, [r3, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080D0E22 - ldrh r0, [r3, 0x10] - adds r0, 0x1 - strh r0, [r3, 0x10] - b _080D0E22 -_080D0DA2: - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080D0E22 - movs r0, 0 - strh r0, [r3, 0xA] - ldrh r1, [r3, 0xE] - movs r0, 0x3 - ands r0, r1 - strh r0, [r3, 0xC] - ldrh r0, [r3, 0x8] - subs r0, r1 - strh r0, [r3, 0x12] - movs r2, 0xC - ldrsh r1, [r3, r2] - cmp r1, 0x1 - beq _080D0DD8 - cmp r1, 0x1 - ble _080D0DE0 - cmp r1, 0x2 - beq _080D0DDC - cmp r1, 0x3 - beq _080D0DDC - b _080D0DE0 -_080D0DD8: - subs r0, 0x2 - b _080D0DDE -_080D0DDC: - adds r0, 0x1 -_080D0DDE: - strh r0, [r3, 0x12] -_080D0DE0: - movs r1, 0x12 - ldrsh r0, [r3, r1] - cmp r0, 0 - blt _080D0E04 - ldr r2, _080D0E28 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r3, 0x14] - strh r1, [r0] - movs r1, 0x12 - ldrsh r0, [r3, r1] - lsls r0, 1 - movs r1, 0xF0 - lsls r1, 3 - adds r2, r1 - adds r0, r2 - ldrh r1, [r3, 0x14] - strh r1, [r0] -_080D0E04: - ldrh r0, [r3, 0xE] - adds r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x26 - ldrsh r1, [r3, r2] - cmp r0, r1 - blt _080D0E22 - ldr r1, _080D0E2C - movs r0, 0x3 - strb r0, [r1, 0x15] - adds r0, r4, 0 - bl move_anim_task_del -_080D0E22: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D0E28: .4byte gUnknown_03004DE0 -_080D0E2C: .4byte gUnknown_03004DC0 - thumb_func_end sub_80D0D68 - - thumb_func_start sub_80D0E30 -sub_80D0E30: @ 80D0E30 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080D0E84 - ldrb r0, [r6] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x10 - movs r5, 0 - strh r0, [r4, 0x20] - ldrb r0, [r6] - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - strh r0, [r4, 0x22] - strh r5, [r4, 0x2E] - strh r5, [r4, 0x30] - strh r5, [r4, 0x32] - movs r0, 0x10 - strh r0, [r4, 0x34] - strh r5, [r4, 0x36] - ldrb r0, [r6] - movs r1, 0 - bl sub_807A100 - adds r0, 0x2 - strh r0, [r4, 0x38] - movs r0, 0x3F - bl sub_8076F98 - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0x3A] - ldr r0, _080D0E88 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D0E84: .4byte gUnknown_0202F7C9 -_080D0E88: .4byte sub_80D0E8C - thumb_func_end sub_80D0E30 - - thumb_func_start sub_80D0E8C -sub_80D0E8C: @ 80D0E8C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080D0EF0 - cmp r1, 0x1 - bgt _080D0EA2 - cmp r1, 0 - beq _080D0EA8 - b _080D0FD0 -_080D0EA2: - cmp r1, 0x2 - beq _080D0F82 - b _080D0FD0 -_080D0EA8: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D0ED2 - strh r1, [r4, 0x32] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D0ED2: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080D0FD0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - b _080D0F7A -_080D0EF0: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080D0F36 - ldrh r2, [r4, 0x32] - movs r3, 0x32 - ldrsh r1, [r4, r3] - movs r3, 0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080D0F36 - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - subs r0, 0x1 - strh r0, [r4, 0x22] - adds r0, r2, 0x1 - strh r0, [r4, 0x32] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080D0F36 - ldrh r1, [r4, 0x3A] - lsls r1, 24 - asrs r1, 24 - movs r0, 0xCD - bl PlaySE12WithPanning -_080D0F36: - ldrh r0, [r4, 0x34] - ldrh r2, [r4, 0x36] - adds r1, r0, r2 - strh r1, [r4, 0x36] - lsls r0, r1, 16 - asrs r2, r0, 16 - cmp r2, 0x1F - ble _080D0F4A - movs r0, 0x40 - b _080D0F58 -_080D0F4A: - movs r0, 0x20 - negs r0, r0 - cmp r2, r0 - bgt _080D0F64 - movs r2, 0x40 - negs r2, r2 - adds r0, r2, 0 -_080D0F58: - subs r0, r1 - strh r0, [r4, 0x36] - movs r3, 0x34 - ldrsh r0, [r4, r3] - negs r0, r0 - strh r0, [r4, 0x34] -_080D0F64: - ldrh r0, [r4, 0x36] - movs r2, 0 - strh r0, [r4, 0x24] - movs r0, 0x38 - ldrsh r1, [r4, r0] - movs r3, 0x32 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080D0FD0 - strh r2, [r4, 0x30] - strh r2, [r4, 0x32] -_080D0F7A: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080D0FD0 -_080D0F82: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D0FAE - movs r0, 0 - strh r0, [r4, 0x32] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D0FAE: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080D0FD0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - bl move_anim_8072740 -_080D0FD0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D0E8C - - thumb_func_start sub_80D0FD8 -sub_80D0FD8: @ 80D0FD8 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - movs r5, 0 - mov r0, sp - strh r5, [r0] - mov r1, sp - adds r1, 0x2 - strh r5, [r1] - ldr r0, _080D0FFC - movs r3, 0x4 - ldrsh r2, [r0, r3] - adds r7, r1, 0 - adds r1, r0, 0 - cmp r2, 0 - bne _080D1004 - ldr r0, _080D1000 - b _080D1006 - .align 2, 0 -_080D0FFC: .4byte gUnknown_03004B00 -_080D1000: .4byte gUnknown_0202F7C8 -_080D1004: - ldr r0, _080D1040 -_080D1006: - ldrb r5, [r0] - ldrb r1, [r1, 0x6] - movs r0, 0x1 - adds r4, r0, 0 - eors r4, r1 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080D107E - movs r1, 0x2 - adds r0, r5, 0 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080D107E - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, sp - adds r3, r7, 0 - bl sub_807A3FC - cmp r4, 0 - bne _080D1044 - adds r0, r5, 0 - movs r1, 0 - b _080D1048 - .align 2, 0 -_080D1040: .4byte gUnknown_0202F7C9 -_080D1044: - adds r0, r5, 0 - movs r1, 0x2 -_080D1048: - bl sub_8077ABC - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D1074 - ldr r2, _080D1070 - mov r0, sp - ldrh r1, [r0] - subs r1, r4 - ldrh r0, [r2] - subs r1, r0 - subs r0, r1 - strh r0, [r2] - b _080D107E - .align 2, 0 -_080D1070: .4byte gUnknown_03004B00 -_080D1074: - ldr r1, _080D1090 - mov r0, sp - ldrh r0, [r0] - subs r0, r4 - strh r0, [r1] -_080D107E: - ldr r1, _080D1094 - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D1090: .4byte gUnknown_03004B00 -_080D1094: .4byte sub_80793C4 - thumb_func_end sub_80D0FD8 - - thumb_func_start sub_80D1098 -sub_80D1098: @ 80D1098 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080D10B2 - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl move_anim_8072740 -_080D10B2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D1098 - - thumb_func_start sub_80D10B8 -sub_80D10B8: @ 80D10B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r5, r0, 0 - movs r6, 0 - mov r0, sp - strh r6, [r0] - mov r1, sp - adds r1, 0x2 - strh r6, [r1] - ldr r0, _080D10E4 - movs r2, 0xA - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _080D10F0 - ldr r0, _080D10E8 - ldrb r7, [r0] - ldr r0, _080D10EC - b _080D10F6 - .align 2, 0 -_080D10E4: .4byte gUnknown_03004B00 -_080D10E8: .4byte gUnknown_0202F7C8 -_080D10EC: .4byte gUnknown_0202F7C9 -_080D10F0: - ldr r0, _080D1110 - ldrb r7, [r0] - ldr r0, _080D1114 -_080D10F6: - ldrb r0, [r0] - mov r8, r0 - ldr r0, _080D1118 - movs r3, 0xC - ldrsh r0, [r0, r3] - cmp r0, 0 - bne _080D111C - movs r0, 0 - mov r10, r0 - movs r1, 0x1 - str r1, [sp, 0x4] - b _080D1124 - .align 2, 0 -_080D1110: .4byte gUnknown_0202F7C9 -_080D1114: .4byte gUnknown_0202F7C8 -_080D1118: .4byte gUnknown_03004B00 -_080D111C: - movs r2, 0x2 - mov r10, r2 - movs r3, 0x3 - str r3, [sp, 0x4] -_080D1124: - adds r0, r7, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D1180 - adds r0, r7, 0 - mov r1, r10 - bl sub_8077ABC - lsls r0, 24 - ldr r1, _080D1164 - lsrs r0, 24 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r0, 0x2 - mov r4, r8 - eors r4, r0 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080D1170 - ldr r2, _080D1168 - ldr r0, _080D116C - adds r0, r4, r0 - b _080D120A - .align 2, 0 -_080D1164: .4byte gUnknown_03004B00 -_080D1168: .4byte gSprites -_080D116C: .4byte gUnknown_02024BE0 -_080D1170: - ldr r2, _080D1178 - ldr r0, _080D117C - add r0, r8 - b _080D120A - .align 2, 0 -_080D1178: .4byte gSprites -_080D117C: .4byte gUnknown_02024BE0 -_080D1180: - adds r0, r7, 0 - mov r1, r10 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080D11EC - ldrh r1, [r1] - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - ldr r0, _080D11F0 - ldr r1, _080D11F4 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D1204 - adds r4, r7, 0 - movs r0, 0x2 - eors r4, r0 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080D1204 - ldr r3, _080D11F8 - ldr r2, _080D11FC - adds r0, r7, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r6, r0, r3 - adds r2, r4, r2 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r3 - movs r3, 0x20 - ldrsh r1, [r6, r3] - movs r3, 0x20 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _080D1200 - adds r0, r2, 0 - adds r0, 0x43 - ldrb r0, [r0] - adds r0, 0x1 - b _080D121A - .align 2, 0 -_080D11EC: .4byte gUnknown_03004B00 -_080D11F0: .4byte gMain -_080D11F4: .4byte 0x0000043d -_080D11F8: .4byte gSprites -_080D11FC: .4byte gUnknown_02024BE0 -_080D1200: - adds r0, r6, 0 - b _080D1214 -_080D1204: - ldr r2, _080D1268 - ldr r0, _080D126C - adds r0, r7, r0 -_080D120A: - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 -_080D1214: - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 -_080D121A: - adds r1, r5, 0 - adds r1, 0x43 - strb r0, [r1] - adds r0, r7, 0 - ldr r1, [sp, 0x4] - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080D1270 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _080D1274 - ldr r2, _080D1278 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D127C - mov r0, r8 - movs r1, 0x2 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080D127C - ldrb r1, [r4, 0xC] - mov r0, r8 - mov r2, sp - mov r3, sp - adds r3, 0x2 - bl sub_807A3FC - b _080D129C - .align 2, 0 -_080D1268: .4byte gSprites -_080D126C: .4byte gUnknown_02024BE0 -_080D1270: .4byte gUnknown_03004B00 -_080D1274: .4byte gMain -_080D1278: .4byte 0x0000043d -_080D127C: - mov r4, sp - mov r0, r8 - mov r1, r10 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - mov r0, r8 - ldr r1, [sp, 0x4] - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r3, sp - strh r0, [r3, 0x2] -_080D129C: - mov r0, r8 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D12C0 - mov r3, sp - mov r2, sp - ldr r1, _080D12BC - ldrh r0, [r1, 0x6] - ldrh r2, [r2] - adds r0, r2 - strh r0, [r3] - adds r2, r1, 0 - b _080D12CE - .align 2, 0 -_080D12BC: .4byte gUnknown_03004B00 -_080D12C0: - mov r3, sp - mov r0, sp - ldr r2, _080D1310 - ldrh r0, [r0] - ldrh r1, [r2, 0x6] - subs r0, r1 - strh r0, [r3] -_080D12CE: - ldrh r1, [r2, 0x8] - mov r0, sp - ldrh r0, [r0, 0x2] - adds r1, r0 - mov r3, sp - strh r1, [r3, 0x2] - mov r0, r9 - strh r0, [r5, 0x30] - strh r0, [r5, 0x20] - strh r6, [r5, 0x34] - strh r6, [r5, 0x22] - mov r0, sp - ldrh r0, [r0] - strh r0, [r5, 0x32] - strh r1, [r5, 0x36] - ldrh r0, [r2] - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080D1314 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D1310: .4byte gUnknown_03004B00 -_080D1314: .4byte sub_80D1098 - thumb_func_end sub_80D10B8 - - thumb_func_start sub_80D1318 -sub_80D1318: @ 80D1318 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D1358 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080D133E - lsls r0, 20 - ldr r1, _080D135C - adds r0, r1 - lsrs r0, 16 - ldr r1, _080D1360 - ldrb r2, [r1, 0xA] - ldrh r3, [r1, 0x8] - movs r1, 0xF - bl BlendPalette -_080D133E: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r1, _080D1364 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1358: .4byte 0x000027db -_080D135C: .4byte 0x01010000 -_080D1360: .4byte gUnknown_03004B00 -_080D1364: .4byte sub_80793C4 - thumb_func_end sub_80D1318 - - thumb_func_start sub_80D1368 -sub_80D1368: @ 80D1368 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_80787B0 - ldr r0, _080D139C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - movs r1, 0xA0 - cmp r0, 0 - beq _080D1384 - ldr r1, _080D13A0 -_080D1384: - movs r0, 0xE0 - lsls r0, 2 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - ldr r0, _080D13A4 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x3C] - ldr r0, _080D13A8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D139C: .4byte gUnknown_0202F7C8 -_080D13A0: .4byte 0x0000ff60 -_080D13A4: .4byte gUnknown_03004B00 -_080D13A8: .4byte sub_80D13AC - thumb_func_end sub_80D1368 - - thumb_func_start sub_80D13AC -sub_80D13AC: @ 80D13AC - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x2E] - lsls r0, r2, 16 - asrs r0, 24 - ldrh r1, [r4, 0x26] - subs r1, r0 - movs r5, 0 - strh r1, [r4, 0x26] - ldrh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - subs r2, 0x20 - strh r2, [r4, 0x2E] - ldr r0, _080D1418 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - movs r1, 0xA0 - cmp r0, 0 - beq _080D13DC - ldr r1, _080D141C -_080D13DC: - lsls r0, r1, 16 - asrs r0, 16 - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x26] - movs r2, 0x26 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080D1410 - ldrh r2, [r4, 0x22] - adds r0, r1, r2 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - strh r5, [r4, 0x26] - strh r5, [r4, 0x24] - strh r5, [r4, 0x2E] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, _080D1420 - str r0, [r4, 0x1C] -_080D1410: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1418: .4byte gUnknown_0202F7C8 -_080D141C: .4byte 0x0000ff60 -_080D1420: .4byte sub_80D1424 - thumb_func_end sub_80D13AC - - thumb_func_start sub_80D1424 -sub_80D1424: @ 80D1424 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r1, r0, 0x1 - strh r1, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080D1442 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldr r0, _080D1448 - str r0, [r4, 0x1C] -_080D1442: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1448: .4byte sub_80D144C - thumb_func_end sub_80D1424 - - thumb_func_start sub_80D144C -sub_80D144C: @ 80D144C - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080D14B2 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r0, 0 - strh r0, [r4, 0x2E] - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D1498 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x10 - ldr r3, _080D148C - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D1490 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - ldr r0, _080D1494 - b _080D14B0 - .align 2, 0 -_080D148C: .4byte 0x000003ff -_080D1490: .4byte 0xfffffc00 -_080D1494: .4byte sub_80D14C4 -_080D1498: - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x20 - ldr r3, _080D14B8 - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D14BC - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - ldr r0, _080D14C0 -_080D14B0: - str r0, [r4, 0x1C] -_080D14B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D14B8: .4byte 0x000003ff -_080D14BC: .4byte 0xfffffc00 -_080D14C0: .4byte sub_80D154C - thumb_func_end sub_80D144C - - thumb_func_start sub_80D14C4 -sub_80D14C4: @ 80D14C4 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x26] - subs r0, 0x2 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - bne _080D14F8 - movs r0, 0x10 - strh r0, [r2, 0x2E] - movs r0, 0 - strh r0, [r2, 0x30] - ldr r1, _080D14FC - movs r3, 0xFD - lsls r3, 6 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r2, 0x2E] - strh r0, [r1] - ldr r0, _080D1500 - str r0, [r2, 0x1C] -_080D14F8: - pop {r0} - bx r0 - .align 2, 0 -_080D14FC: .4byte REG_BLDCNT -_080D1500: .4byte sub_80D1504 - thumb_func_end sub_80D14C4 - - thumb_func_start sub_80D1504 -sub_80D1504: @ 80D1504 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r1, r0, 0x1 - strh r1, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080D153C - ldrh r1, [r4, 0x2E] - subs r1, 0x1 - strh r1, [r4, 0x2E] - ldr r2, _080D1544 - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D153C - ldr r0, _080D1548 - str r0, [r4, 0x1C] -_080D153C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1544: .4byte REG_BLDALPHA -_080D1548: .4byte sub_80D154C - thumb_func_end sub_80D1504 - - thumb_func_start sub_80D154C -sub_80D154C: @ 80D154C - push {lr} - adds r3, r0, 0 - ldr r0, _080D1574 - ldrh r1, [r0, 0xE] - ldr r0, _080D1578 - cmp r1, r0 - bne _080D1584 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r1, 0x3C - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080D1580 - ldr r0, _080D157C - b _080D1582 - .align 2, 0 -_080D1574: .4byte gUnknown_03004B00 -_080D1578: .4byte 0x0000ffff -_080D157C: .4byte sub_80D158C -_080D1580: - ldr r0, _080D1588 -_080D1582: - str r0, [r3, 0x1C] -_080D1584: - pop {r0} - bx r0 - .align 2, 0 -_080D1588: .4byte move_anim_8072740 - thumb_func_end sub_80D154C - - thumb_func_start sub_80D158C -sub_80D158C: @ 80D158C - push {lr} - ldr r1, _080D15A0 - movs r2, 0 - strh r2, [r1] - adds r1, 0x2 - strh r2, [r1] - bl move_anim_8072740 - pop {r0} - bx r0 - .align 2, 0 -_080D15A0: .4byte REG_BLDCNT - thumb_func_end sub_80D158C - - thumb_func_start sub_80D15A4 -sub_80D15A4: @ 80D15A4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080D15D4 - adds r4, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - strh r1, [r4, 0x8] - ldr r2, _080D15D8 - adds r0, r4, 0 - bl sub_80798F4 - ldr r0, _080D15DC - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D15D4: .4byte gTasks -_080D15D8: .4byte gUnknown_083D79BC -_080D15DC: .4byte sub_80D15E0 - thumb_func_end sub_80D15A4 - - thumb_func_start sub_80D15E0 -sub_80D15E0: @ 80D15E0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080D1630 - adds r4, r0, r1 - adds r0, r4, 0 - bl sub_807992C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _080D162A - ldr r2, _080D1634 - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, 0 - bl move_anim_task_del -_080D162A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1630: .4byte gTasks -_080D1634: .4byte gSprites - thumb_func_end sub_80D15E0 - - thumb_func_start sub_80D1638 -sub_80D1638: @ 80D1638 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D166C - adds r4, r1, r0 - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - movs r0, 0x3 - strh r0, [r4, 0x20] - ldr r0, _080D1670 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D1678 - ldr r0, _080D1674 - strh r0, [r4, 0x22] - movs r0, 0x8 - b _080D167E - .align 2, 0 -_080D166C: .4byte gTasks -_080D1670: .4byte gUnknown_0202F7C9 -_080D1674: .4byte 0x0000ffff -_080D1678: - movs r0, 0x1 - strh r0, [r4, 0x22] - ldr r0, _080D1698 -_080D167E: - strh r0, [r4, 0x24] - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080D169C - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1698: .4byte 0x0000fff8 -_080D169C: .4byte sub_80D16A0 - thumb_func_end sub_80D1638 - - thumb_func_start sub_80D16A0 -sub_80D16A0: @ 80D16A0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080D16C4 - adds r3, r0, r1 - movs r0, 0x8 - ldrsh r4, [r3, r0] - cmp r4, 0x1 - beq _080D16F4 - cmp r4, 0x1 - bgt _080D16C8 - cmp r4, 0 - beq _080D16D2 - b _080D17BA - .align 2, 0 -_080D16C4: .4byte gTasks -_080D16C8: - cmp r4, 0x2 - beq _080D1770 - cmp r4, 0x3 - beq _080D178A - b _080D17BA -_080D16D2: - ldr r2, _080D16F0 - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x24] - ldrh r2, [r0, 0x24] - adds r1, r2 - strh r1, [r0, 0x24] - strh r4, [r3, 0xA] - strh r4, [r3, 0xC] - strh r4, [r3, 0xE] - b _080D1782 - .align 2, 0 -_080D16F0: .4byte gSprites -_080D16F4: - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D17BA - movs r0, 0 - strh r0, [r3, 0xA] - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - ands r0, r4 - lsls r0, 16 - cmp r0, 0 - beq _080D172C - ldr r2, _080D1728 - movs r4, 0x26 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - adds r1, 0x6 - b _080D173E - .align 2, 0 -_080D1728: .4byte gSprites -_080D172C: - ldr r2, _080D176C - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - subs r1, 0x6 -_080D173E: - strh r1, [r0, 0x24] - ldrh r0, [r3, 0xE] - adds r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080D17BA - ldrh r1, [r3, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D1782 - movs r1, 0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x24] - subs r0, 0x6 - strh r0, [r1, 0x24] - b _080D1782 - .align 2, 0 -_080D176C: .4byte gSprites -_080D1770: - ldrh r0, [r3, 0x20] - subs r0, 0x1 - strh r0, [r3, 0x20] - lsls r0, 16 - cmp r0, 0 - beq _080D1782 - movs r0, 0 - strh r0, [r3, 0x8] - b _080D17BA -_080D1782: - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - b _080D17BA -_080D178A: - ldr r2, _080D17C0 - movs r4, 0x26 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x22] - ldrh r4, [r0, 0x24] - adds r1, r4 - strh r1, [r0, 0x24] - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x24 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D17BA - adds r0, r5, 0 - bl move_anim_task_del -_080D17BA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D17C0: .4byte gSprites - thumb_func_end sub_80D16A0 - - thumb_func_start sub_80D17C4 -sub_80D17C4: @ 80D17C4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080D1800 - adds r4, r0 - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - movs r0, 0x1 - strh r0, [r4, 0x10] - movs r0, 0xE - strh r0, [r4, 0x22] - movs r0, 0x2 - strh r0, [r4, 0x24] - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080D1804 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1800: .4byte gTasks -_080D1804: .4byte sub_80D1808 - thumb_func_end sub_80D17C4 - - thumb_func_start sub_80D1808 -sub_80D1808: @ 80D1808 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080D185C - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _080D18CE - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x10 - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _080D18CE - strh r2, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D1864 - ldr r3, _080D1860 - movs r6, 0x26 - ldrsh r1, [r4, r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - b _080D187A - .align 2, 0 -_080D185C: .4byte gTasks -_080D1860: .4byte gSprites -_080D1864: - ldr r3, _080D18AC - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 -_080D187A: - strb r1, [r0] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - movs r2, 0 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r6, 0x22 - ldrsh r1, [r4, r6] - cmp r0, r1 - blt _080D18CE - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - movs r6, 0x24 - ldrsh r1, [r4, r6] - cmp r0, r1 - bge _080D18B0 - strh r2, [r4, 0xA] - strh r2, [r4, 0xC] - strh r2, [r4, 0xE] - b _080D18CE - .align 2, 0 -_080D18AC: .4byte gSprites -_080D18B0: - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - adds r0, r5, 0 - bl move_anim_task_del -_080D18CE: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80D1808 - - thumb_func_start sub_80D18D4 -sub_80D18D4: @ 80D18D4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080D1924 - adds r4, r0 - movs r0, 0 - strh r0, [r4, 0x8] - movs r1, 0x4 - strh r1, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - strh r0, [r4, 0x10] - strh r0, [r4, 0x12] - strh r0, [r4, 0x14] - strh r0, [r4, 0x16] - strh r0, [r4, 0x18] - strh r0, [r4, 0x22] - ldr r5, _080D1928 - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x24] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080D192C - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1924: .4byte gTasks -_080D1928: .4byte gUnknown_0202F7C8 -_080D192C: .4byte sub_80D1930 - thumb_func_end sub_80D18D4 - - thumb_func_start sub_80D1930 -sub_80D1930: @ 80D1930 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080D1954 - adds r4, r0, r1 - movs r0, 0x18 - ldrsh r2, [r4, r0] - cmp r2, 0x1 - beq _080D199C - cmp r2, 0x1 - bgt _080D1958 - cmp r2, 0 - beq _080D195E - b _080D19B8 - .align 2, 0 -_080D1954: .4byte gTasks -_080D1958: - cmp r2, 0x2 - beq _080D19B4 - b _080D19B8 -_080D195E: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D19B8 - strh r2, [r4, 0x10] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - movs r1, 0x1 - ands r0, r1 - strh r0, [r4, 0x12] - ldrh r0, [r4, 0x14] - adds r0, 0x1 - strh r0, [r4, 0x14] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080D19B8 - movs r1, 0x16 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D1996 - strh r2, [r4, 0x14] - movs r0, 0x1 - strh r0, [r4, 0x18] - b _080D19B8 -_080D1996: - movs r0, 0x2 - strh r0, [r4, 0x18] - b _080D19B8 -_080D199C: - movs r1, 0 - strh r1, [r4, 0x12] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080D19B8 - strh r2, [r4, 0x16] - strh r1, [r4, 0x18] - b _080D19B8 -_080D19B4: - movs r0, 0x1 - strh r0, [r4, 0x12] -_080D19B8: - movs r2, 0x8 - ldrsh r5, [r4, r2] - cmp r5, 0 - beq _080D19C6 - cmp r5, 0x1 - beq _080D1A5C - b _080D1A6A -_080D19C6: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080D1A6A - strh r5, [r4, 0xA] - ldr r0, _080D1A50 - movs r3, 0x24 - ldrsh r1, [r4, r3] - movs r3, 0x26 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080D1A6A - ldr r0, _080D1A54 - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - strh r6, [r1, 0x2E] - movs r0, 0xD - strh r0, [r1, 0x30] - ldr r2, _080D1A58 - movs r3, 0xC - ldrsh r0, [r4, r3] - lsls r0, 1 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0x24] - movs r3, 0xC - ldrsh r0, [r4, r3] - lsls r0, 1 - adds r2, 0x1 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0x26] - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080D1A6A - strh r5, [r4, 0xC] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080D1A6A - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D1A6A - .align 2, 0 -_080D1A50: .4byte gSpriteTemplate_83D79E8 -_080D1A54: .4byte gSprites -_080D1A58: .4byte gUnknown_083D7A00 -_080D1A5C: - movs r1, 0x22 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D1A6A - adds r0, r6, 0 - bl move_anim_task_del -_080D1A6A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80D1930 - - thumb_func_start sub_80D1A70 -sub_80D1A70: @ 80D1A70 - push {r4,lr} - adds r3, r0, 0 - ldr r4, _080D1AD8 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - movs r2, 0x1 - ldrb r1, [r0, 0x12] - ands r1, r2 - lsls r1, 2 - mov r0, r12 - ldrb r2, [r0] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - adds r0, r3, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D1AD2 - movs r0, 0x30 - ldrsh r1, [r3, r0] - lsls r1, 1 - movs r0, 0x2E - ldrsh r2, [r3, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x8 - adds r1, r0 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r3, 0 - bl DestroySprite -_080D1AD2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1AD8: .4byte gTasks - thumb_func_end sub_80D1A70 - - thumb_func_start sub_80D1ADC -sub_80D1ADC: @ 80D1ADC - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080D1B34 - bl IndexOfSpritePaletteTag - mov r1, sp - strb r0, [r1] - movs r5, 0x1 - ldr r0, _080D1B38 - adds r4, r0, 0 -_080D1AF4: - subs r0, r4, r5 - lsls r0, 16 - lsrs r0, 16 - bl AllocSpritePalette - mov r2, sp - adds r1, r2, r5 - strb r0, [r1] - adds r5, 0x1 - cmp r5, 0x4 - ble _080D1AF4 - ldr r4, _080D1B3C - bl sub_8076BE0 - lsls r0, 24 - ldr r1, _080D1B40 - cmp r0, 0 - beq _080D1B1C - ldr r0, _080D1B44 - adds r1, r0 -_080D1B1C: - adds r0, r4, 0 - bl sub_800D238 - movs r5, 0 -_080D1B24: - lsls r4, r5, 5 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D1B4C - ldr r0, _080D1B48 - b _080D1B4E - .align 2, 0 -_080D1B34: .4byte 0x000027de -_080D1B38: .4byte 0x00002710 -_080D1B3C: .4byte gBattleAnimSpritePalette_206 -_080D1B40: .4byte 0x02018000 -_080D1B44: .4byte 0xffffc800 -_080D1B48: .4byte 0x02014800 -_080D1B4C: - ldr r0, _080D1B7C -_080D1B4E: - adds r2, r4, r0 - mov r1, sp - adds r0, r1, r5 - ldrb r1, [r0] - lsls r1, 20 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - lsrs r1, 16 - adds r0, r2, 0 - movs r2, 0x20 - bl LoadPalette - adds r5, 0x1 - cmp r5, 0x4 - ble _080D1B24 - adds r0, r6, 0 - bl move_anim_task_del - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D1B7C: .4byte 0x02018000 - thumb_func_end sub_80D1ADC - - thumb_func_start sub_80D1B80 -sub_80D1B80: @ 80D1B80 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _080D1BA4 - movs r4, 0x4 -_080D1B8A: - ldrh r0, [r5] - bl FreeSpritePaletteByTag - adds r5, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080D1B8A - adds r0, r6, 0 - bl move_anim_task_del - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D1BA4: .4byte gUnknown_083D7A5C - thumb_func_end sub_80D1B80 - - thumb_func_start sub_80D1BA8 -sub_80D1BA8: @ 80D1BA8 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsls r2, 24 - lsrs r3, r2, 24 - movs r0, 0x1 - ands r3, r0 - negs r0, r3 - orrs r0, r3 - asrs r0, 31 - movs r3, 0x20 - ands r0, r3 - ldrh r4, [r5, 0x4] - lsls r3, r4, 22 - lsrs r3, 22 - lsrs r1, 22 - adds r0, r1 - adds r3, r0 - ldr r1, _080D1BFC - adds r0, r1, 0 - ands r3, r0 - ldr r0, _080D1C00 - ands r0, r4 - orrs r0, r3 - strh r0, [r5, 0x4] - ldr r0, _080D1C04 - lsrs r2, 25 - lsls r2, 1 - adds r2, r0 - ldrh r0, [r2] - bl IndexOfSpritePaletteTag - lsls r0, 4 - ldrb r2, [r5, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1BFC: .4byte 0x000003ff -_080D1C00: .4byte 0xfffffc00 -_080D1C04: .4byte gUnknown_083D7A5C - thumb_func_end sub_80D1BA8 - - thumb_func_start sub_80D1C08 -sub_80D1C08: @ 80D1C08 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0 - bl sub_80787B0 - ldr r6, _080D1C70 - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D1C28 - ldr r1, _080D1C74 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080D1C28: - ldr r4, _080D1C74 - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x2E] - ldrb r0, [r6] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r5, 0x36] - ldr r0, _080D1C78 - str r0, [r5, 0x1C] - ldr r1, _080D1C7C - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldrb r1, [r4, 0xA] - ldrb r2, [r4, 0xC] - adds r0, r5, 0 - bl sub_80D1BA8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D1C70: .4byte gUnknown_0202F7C8 -_080D1C74: .4byte gUnknown_03004B00 -_080D1C78: .4byte sub_8078B34 -_080D1C7C: .4byte move_anim_8072740 - thumb_func_end sub_80D1C08 - - thumb_func_start sub_80D1C80 -sub_80D1C80: @ 80D1C80 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080D1C9A - adds r0, r4, 0 - movs r1, 0 - bl sub_80787B0 -_080D1C9A: - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - strh r0, [r4, 0x24] - ldrh r2, [r4, 0x32] - lsls r0, r2, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x7 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - subs r2, 0x80 - strh r2, [r4, 0x32] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x3C - bne _080D1CCA - adds r0, r4, 0 - bl move_anim_8072740 -_080D1CCA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D1C80 - - thumb_func_start sub_80D1CD0 -sub_80D1CD0: @ 80D1CD0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - movs r2, 0xF0 - cmp r0, 0 - beq _080D1CE4 - movs r2, 0x98 -_080D1CE4: - movs r3, 0 - ldr r0, _080D1D2C - strh r2, [r0] - ldr r0, _080D1D30 - movs r1, 0xA0 - strh r1, [r0] - ldr r0, _080D1D34 - strh r2, [r0] - adds r0, 0x4 - strh r1, [r0] - ldr r1, _080D1D38 - ldr r5, _080D1D3C - adds r0, r5, 0 - strh r0, [r1] - adds r1, 0x2 - adds r5, 0x20 - adds r0, r5, 0 - strh r0, [r1] - adds r1, 0x6 - movs r0, 0xC8 - strh r0, [r1] - adds r1, 0x4 - movs r0, 0x10 - strh r0, [r1] - ldr r1, _080D1D40 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x8] - strh r2, [r0, 0xA] - ldr r1, _080D1D44 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1D2C: .4byte gUnknown_030042C4 -_080D1D30: .4byte gUnknown_03004240 -_080D1D34: .4byte REG_WIN0H -_080D1D38: .4byte REG_WININ -_080D1D3C: .4byte 0x00003f1f -_080D1D40: .4byte gTasks -_080D1D44: .4byte sub_80D1D48 - thumb_func_end sub_80D1CD0 - - thumb_func_start sub_80D1D48 -sub_80D1D48: @ 80D1D48 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080D1D7C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r3, r1, r2 - ldrh r0, [r3, 0x8] - adds r4, r0, 0 - adds r4, 0xD - strh r4, [r3, 0x8] - ldrh r0, [r3, 0xA] - adds r2, r0, 0 - subs r2, 0xD - strh r2, [r3, 0xA] - lsls r1, r4, 16 - lsls r0, r2, 16 - cmp r1, r0 - blt _080D1D88 - ldr r0, _080D1D80 - movs r1, 0 - strh r1, [r0] - ldr r0, _080D1D84 - str r0, [r3] - b _080D1D90 - .align 2, 0 -_080D1D7C: .4byte gTasks -_080D1D80: .4byte gUnknown_030042C4 -_080D1D84: .4byte sub_80D1D9C -_080D1D88: - ldr r1, _080D1D98 - lsls r0, r4, 8 - orrs r2, r0 - strh r2, [r1] -_080D1D90: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1D98: .4byte gUnknown_030042C4 - thumb_func_end sub_80D1D48 - - thumb_func_start sub_80D1D9C -sub_80D1D9C: @ 80D1D9C - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - ldr r5, _080D1DEC - lsls r0, r2, 2 - adds r0, r2 - lsls r3, r0, 3 - adds r1, r3, r5 - ldrh r0, [r1, 0x1C] - adds r0, 0x1 - movs r4, 0 - strh r0, [r1, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080D1DF8 - movs r0, 0x88 - strh r0, [r1, 0x1E] - adds r0, r5, r3 - adds r0, 0x1E - ldr r1, _080D1DF0 - movs r2, 0x2 - bl RequestSpriteCopy - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80791A8 - ldr r2, _080D1DF4 - movs r1, 0x10 - bl BlendPalettes - b _080D1E1E - .align 2, 0 -_080D1DEC: .4byte gTasks -_080D1DF0: .4byte REG_BLDCNT -_080D1DF4: .4byte 0x00007fff -_080D1DF8: - cmp r0, 0x4 - ble _080D1E1E - ldr r0, _080D1E28 - strh r4, [r0] - ldr r0, _080D1E2C - strh r4, [r0] - ldr r0, _080D1E30 - ldr r3, _080D1E34 - adds r1, r3, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x6 - strh r4, [r0] - adds r0, 0x4 - strh r4, [r0] - adds r0, r2, 0 - bl move_anim_task_del -_080D1E1E: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1E28: .4byte gUnknown_030042C4 -_080D1E2C: .4byte gUnknown_03004240 -_080D1E30: .4byte REG_WININ -_080D1E34: .4byte 0x00003f3f - thumb_func_end sub_80D1D9C - - thumb_func_start sub_80D1E38 -sub_80D1E38: @ 80D1E38 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080D1E88 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080D1E94 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080D1E8C - adds r0, r5, 0 - bl sub_80798F4 - ldr r1, _080D1E90 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x24] - b _080D1EBC - .align 2, 0 -_080D1E88: .4byte gTasks -_080D1E8C: .4byte gUnknown_083D7A98 -_080D1E90: .4byte gSprites -_080D1E94: - ldr r1, _080D1EC4 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r4, r0, r1 - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] - adds r0, r5, 0 - bl sub_807992C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080D1EBC - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r6, 0 - bl move_anim_task_del -_080D1EBC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D1EC4: .4byte gSprites - thumb_func_end sub_80D1E38 - - thumb_func_start sub_80D1EC8 -sub_80D1EC8: @ 80D1EC8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080D1F18 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080D1F24 - movs r0, 0 - bl obj_id_for_side_relative_to_move - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080D1F1C - adds r0, r5, 0 - bl sub_80798F4 - ldr r1, _080D1F20 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x24] - b _080D1F4C - .align 2, 0 -_080D1F18: .4byte gTasks -_080D1F1C: .4byte gUnknown_083D7A98 -_080D1F20: .4byte gSprites -_080D1F24: - ldr r1, _080D1F54 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r4, r0, r1 - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] - adds r0, r5, 0 - bl sub_807992C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080D1F4C - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r6, 0 - bl move_anim_task_del -_080D1F4C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D1F54: .4byte gSprites - thumb_func_end sub_80D1EC8 - - thumb_func_start sub_80D1F58 -sub_80D1F58: @ 80D1F58 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - movs r0, 0x5F - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r5, _080D1F9C - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080D1FA0 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1F9C: .4byte gUnknown_0202F7C9 -_080D1FA0: .4byte sub_80D1FA4 - thumb_func_end sub_80D1F58 - - thumb_func_start sub_80D1FA4 -sub_80D1FA4: @ 80D1FA4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080D1FCE - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xE - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080D1FD4 -_080D1FCE: - adds r0, r4, 0 - bl move_anim_8072740 -_080D1FD4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D1FA4 - - thumb_func_start sub_80D1FDC -sub_80D1FDC: @ 80D1FDC - push {r4,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D2000 - ldr r1, _080D1FFC - ldrh r0, [r1] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x32] - adds r0, r2, 0x1 - strh r0, [r4, 0x2E] - b _080D205C - .align 2, 0 -_080D1FFC: .4byte gUnknown_03004B00 -_080D2000: - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - cmp r0, 0x64 - ble _080D204E - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D204E: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x78 - ble _080D205C - adds r0, r4, 0 - bl move_anim_8072740 -_080D205C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D1FDC - - thumb_func_start sub_80D2064 -sub_80D2064: @ 80D2064 - push {lr} - ldr r2, _080D2088 - ldrh r1, [r2] - strh r1, [r0, 0x20] - movs r1, 0xA0 - strh r1, [r0, 0x22] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x2E] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x30] - ldr r1, _080D208C - str r1, [r0, 0x1C] - ldr r1, _080D2090 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080D2088: .4byte gUnknown_03004B00 -_080D208C: .4byte sub_80782D8 -_080D2090: .4byte sub_80D2094 - thumb_func_end sub_80D2064 - - thumb_func_start sub_80D2094 -sub_80D2094: @ 80D2094 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - lsls r0, 16 - lsrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - lsls r0, 16 - asrs r5, r0, 16 - cmp r5, 0x48 - bgt _080D20FA - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - cmp r5, 0x40 - bgt _080D20FA - adds r0, r4, 0 - bl move_anim_8072740 -_080D20FA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D2094 - - thumb_func_start sub_80D2100 -sub_80D2100: @ 80D2100 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080D21BC - ldr r2, _080D21C0 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _080D21C4 - ldrb r0, [r4] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D2144 - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080D2144: - ldr r0, _080D21C8 - movs r1, 0 - strh r1, [r0] - ldr r0, _080D21CC - strh r1, [r0] - ldr r0, _080D21D0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r2, _080D21D4 - add r0, sp, 0xC - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _080D21D8 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _080D21DC - bl LZDecompressVram - ldr r0, _080D21E0 - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _080D21E4 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D21A4 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080D21A4: - ldr r0, _080D21E8 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080D21EC - str r0, [r1] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D21BC: .4byte REG_BLDCNT -_080D21C0: .4byte 0x00003f42 -_080D21C4: .4byte REG_BG1CNT -_080D21C8: .4byte gUnknown_030042C0 -_080D21CC: .4byte gUnknown_030041B4 -_080D21D0: .4byte REG_BG1HOFS -_080D21D4: .4byte 0x040000d4 -_080D21D8: .4byte 0x85000400 -_080D21DC: .4byte gAttractTilemap -_080D21E0: .4byte gAttractGfx -_080D21E4: .4byte gAttractPal -_080D21E8: .4byte gTasks -_080D21EC: .4byte sub_80D21F0 - thumb_func_end sub_80D2100 - - thumb_func_start sub_80D21F0 -sub_80D21F0: @ 80D21F0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080D2220 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bls _080D2216 - b _080D238C -_080D2216: - lsls r0, 2 - ldr r1, _080D2224 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D2220: .4byte gTasks -_080D2224: .4byte _080D2228 - .align 2, 0 -_080D2228: - .4byte _080D223C - .4byte _080D2284 - .4byte _080D22A6 - .4byte _080D22E8 - .4byte _080D236C -_080D223C: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - movs r4, 0 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - beq _080D2256 - b _080D238C -_080D2256: - strh r4, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - adds r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080D2280 - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x1E - ldrsh r0, [r3, r1] - cmp r0, 0x10 - beq _080D2274 - b _080D238C -_080D2274: - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r4, [r3, 0x1E] - b _080D238C - .align 2, 0 -_080D2280: .4byte REG_BLDALPHA -_080D2284: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8D - bne _080D238C - movs r0, 0x10 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080D238C -_080D22A6: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080D238C - movs r0, 0 - strh r0, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - subs r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080D22E4 - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r2, 0x1E - ldrsh r1, [r3, r2] - cmp r1, 0 - bne _080D238C - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r1, [r3, 0x1E] - b _080D238C - .align 2, 0 -_080D22E4: .4byte REG_BLDALPHA -_080D22E8: - mov r0, sp - bl sub_8078914 - ldr r2, [sp] - movs r3, 0x80 - lsls r3, 6 - lsls r0, r5, 2 - mov r10, r0 - add r6, sp, 0xC - movs r7, 0 - ldr r1, _080D239C - movs r4, 0x80 - lsls r4, 5 - mov r8, r6 - ldr r0, _080D23A0 - mov r12, r0 - movs r0, 0x85 - lsls r0, 24 - mov r9, r0 -_080D230E: - str r7, [sp, 0xC] - mov r0, r8 - str r0, [r1] - str r2, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080D230E - str r7, [sp, 0xC] - str r6, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r9 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080D239C - str r6, [r0] - str r1, [r0, 0x4] - ldr r1, _080D23A4 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D235C - ldr r2, _080D23A8 - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080D235C: - ldr r0, _080D23AC - mov r2, r10 - adds r1, r2, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] -_080D236C: - ldr r0, _080D23B0 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r2, _080D23A8 - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, 0 - bl move_anim_task_del -_080D238C: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D239C: .4byte 0x040000d4 -_080D23A0: .4byte 0x85000400 -_080D23A4: .4byte 0x85000200 -_080D23A8: .4byte REG_BG1CNT -_080D23AC: .4byte gTasks -_080D23B0: .4byte REG_BLDCNT - thumb_func_end sub_80D21F0 - - thumb_func_start sub_80D23B4 -sub_80D23B4: @ 80D23B4 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080D2438 - ldr r2, _080D243C - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _080D2440 - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D23FE - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080D23FE: - ldr r0, _080D2444 - movs r1, 0 - strh r1, [r0] - ldr r0, _080D2448 - strh r1, [r0] - ldr r0, _080D244C - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - mov r0, sp - bl sub_8078914 - ldr r2, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r1, _080D2450 - add r0, sp, 0xC - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _080D2454 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D245C - ldr r0, _080D2458 - b _080D246E - .align 2, 0 -_080D2438: .4byte REG_BLDCNT -_080D243C: .4byte 0x00003f42 -_080D2440: .4byte REG_BG1CNT -_080D2444: .4byte gUnknown_030042C0 -_080D2448: .4byte gUnknown_030041B4 -_080D244C: .4byte REG_BG1HOFS -_080D2450: .4byte 0x040000d4 -_080D2454: .4byte 0x85000400 -_080D2458: .4byte gBattleAnimBackgroundTilemap_ScaryFaceContest -_080D245C: - ldr r0, _080D2478 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D2480 - ldr r0, _080D247C -_080D246E: - ldr r1, [sp, 0x4] - bl LZDecompressVram - b _080D2488 - .align 2, 0 -_080D2478: .4byte gUnknown_0202F7C9 -_080D247C: .4byte gBattleAnimBackgroundTilemap_ScaryFacePlayer -_080D2480: - ldr r0, _080D24CC - ldr r1, [sp, 0x4] - bl LZDecompressVram -_080D2488: - ldr r0, _080D24D0 - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _080D24D4 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D24B6 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080D24B6: - ldr r0, _080D24D8 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080D24DC - str r0, [r1] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D24CC: .4byte gBattleAnimBackgroundTilemap_ScaryFaceOpponent -_080D24D0: .4byte gBattleAnimBackgroundImage_ScaryFace -_080D24D4: .4byte gBattleAnimBackgroundPalette_ScaryFace -_080D24D8: .4byte gTasks -_080D24DC: .4byte sub_80D24E0 - thumb_func_end sub_80D23B4 - - thumb_func_start sub_80D24E0 -sub_80D24E0: @ 80D24E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080D2510 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bls _080D2506 - b _080D267C -_080D2506: - lsls r0, 2 - ldr r1, _080D2514 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D2510: .4byte gTasks -_080D2514: .4byte _080D2518 - .align 2, 0 -_080D2518: - .4byte _080D252C - .4byte _080D2574 - .4byte _080D2596 - .4byte _080D25D8 - .4byte _080D265C -_080D252C: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - movs r4, 0 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - beq _080D2546 - b _080D267C -_080D2546: - strh r4, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - adds r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080D2570 - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x1E - ldrsh r0, [r3, r1] - cmp r0, 0xE - beq _080D2564 - b _080D267C -_080D2564: - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r4, [r3, 0x1E] - b _080D267C - .align 2, 0 -_080D2570: .4byte REG_BLDALPHA -_080D2574: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080D267C - movs r0, 0xE - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080D267C -_080D2596: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080D267C - movs r0, 0 - strh r0, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - subs r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080D25D4 - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r2, 0x1E - ldrsh r1, [r3, r2] - cmp r1, 0 - bne _080D267C - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r1, [r3, 0x1E] - b _080D267C - .align 2, 0 -_080D25D4: .4byte REG_BLDALPHA -_080D25D8: - mov r0, sp - bl sub_8078914 - ldr r2, [sp] - movs r3, 0x80 - lsls r3, 6 - lsls r0, r5, 2 - mov r10, r0 - add r6, sp, 0xC - movs r7, 0 - ldr r1, _080D268C - movs r4, 0x80 - lsls r4, 5 - mov r8, r6 - ldr r0, _080D2690 - mov r12, r0 - movs r0, 0x85 - lsls r0, 24 - mov r9, r0 -_080D25FE: - str r7, [sp, 0xC] - mov r0, r8 - str r0, [r1] - str r2, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080D25FE - str r7, [sp, 0xC] - str r6, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r9 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080D268C - str r6, [r0] - str r1, [r0, 0x4] - ldr r1, _080D2694 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D264C - ldr r2, _080D2698 - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080D264C: - ldr r0, _080D269C - mov r2, r10 - adds r1, r2, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] -_080D265C: - ldr r0, _080D26A0 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r2, _080D2698 - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, 0 - bl move_anim_task_del -_080D267C: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D268C: .4byte 0x040000d4 -_080D2690: .4byte 0x85000400 -_080D2694: .4byte 0x85000200 -_080D2698: .4byte REG_BG1CNT -_080D269C: .4byte gTasks -_080D26A0: .4byte REG_BLDCNT - thumb_func_end sub_80D24E0 - - thumb_func_start sub_80D26A4 -sub_80D26A4: @ 80D26A4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D26F8 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080D26FC - ldrh r0, [r1] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x30] - ldrb r0, [r5] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x3C] - ldr r1, _080D2700 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D26F8: .4byte gUnknown_0202F7C8 -_080D26FC: .4byte gUnknown_03004B00 -_080D2700: .4byte sub_80D2704 - thumb_func_end sub_80D26A4 - - thumb_func_start sub_80D2704 -sub_80D2704: @ 80D2704 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080D271A - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - b _080D271E -_080D271A: - ldrh r0, [r4, 0x3C] - subs r0, 0x1 -_080D271E: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - bl Sin - strh r0, [r4, 0x24] - movs r2, 0x30 - ldrsh r0, [r4, r2] - ldrh r1, [r4, 0x34] - lsls r1, 16 - asrs r1, 24 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x9 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r3, 0x38 - ldrsh r2, [r4, r3] - cmp r2, 0 - beq _080D2790 - cmp r2, 0x1 - bne _080D27C0 - ldr r1, _080D2788 - adds r0, r1, 0 - ldrh r2, [r4, 0x32] - adds r0, r2 - strh r0, [r4, 0x32] - ldr r3, _080D278C - adds r0, r3, 0 - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x2E - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080D27C0 - movs r0, 0x2 - strh r0, [r4, 0x38] - b _080D27D0 - .align 2, 0 -_080D2788: .4byte 0xfffffc00 -_080D278C: .4byte 0xffffff00 -_080D2790: - movs r3, 0x80 - lsls r3, 3 - adds r0, r3, 0 - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - movs r3, 0x80 - lsls r3, 1 - adds r0, r3, 0 - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x2E - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _080D27C0 - strh r2, [r4, 0x36] - movs r0, 0x1 - strh r0, [r4, 0x38] -_080D27C0: - ldr r0, _080D27D8 - ldrh r1, [r0, 0xE] - ldr r0, _080D27DC - cmp r1, r0 - bne _080D27D0 - adds r0, r4, 0 - bl move_anim_8072740 -_080D27D0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D27D8: .4byte gUnknown_03004B00 -_080D27DC: .4byte 0x0000ffff - thumb_func_end sub_80D2704 - - thumb_func_start sub_80D27E0 -sub_80D27E0: @ 80D27E0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D2828 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080D282C - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - strh r0, [r5, 0x2E] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x7 - bl Cos - strh r0, [r5, 0x30] - ldr r0, _080D2830 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D2828: .4byte gUnknown_0202F7C8 -_080D282C: .4byte gUnknown_03004B00 -_080D2830: .4byte sub_80D2834 - thumb_func_end sub_80D27E0 - - thumb_func_start sub_80D2834 -sub_80D2834: @ 80D2834 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x30] - ldrh r3, [r2, 0x26] - adds r0, r3 - strh r0, [r2, 0x26] - movs r1, 0x20 - ldrsh r0, [r2, r1] - movs r3, 0x24 - ldrsh r1, [r2, r3] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080D2872 - movs r0, 0x22 - ldrsh r1, [r2, r0] - movs r3, 0x26 - ldrsh r0, [r2, r3] - adds r1, r0 - cmp r1, 0xA0 - bgt _080D2872 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080D2878 -_080D2872: - adds r0, r2, 0 - bl move_anim_8072740 -_080D2878: - pop {r0} - bx r0 - thumb_func_end sub_80D2834 - - thumb_func_start sub_80D287C -sub_80D287C: @ 80D287C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x30] - ldrh r3, [r2, 0x26] - adds r0, r3 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r1, r0, 0x1 - strh r1, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _080D28A8 - adds r0, r2, 0 - bl move_anim_8072740 -_080D28A8: - pop {r0} - bx r0 - thumb_func_end sub_80D287C - - thumb_func_start sub_80D28AC -sub_80D28AC: @ 80D28AC - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D28F8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080D28FC - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - strh r0, [r5, 0x2E] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x7 - bl Cos - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x32] - ldr r0, _080D2900 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D28F8: .4byte gUnknown_0202F7C8 -_080D28FC: .4byte gUnknown_03004B00 -_080D2900: .4byte sub_80D287C - thumb_func_end sub_80D28AC - - thumb_func_start sub_80D2904 -sub_80D2904: @ 80D2904 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D291A - adds r0, r2, 0 - bl move_anim_8072740 -_080D291A: - pop {r0} - bx r0 - thumb_func_end sub_80D2904 - - thumb_func_start sub_80D2920 -sub_80D2920: @ 80D2920 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080D2934 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D2934: .4byte sub_80D2904 - thumb_func_end sub_80D2920 - - thumb_func_start sub_80D2938 -sub_80D2938: @ 80D2938 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D2956 - ldr r0, _080D29C8 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080D2956: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r2, 0x2E - ldrsh r1, [r4, r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r5, r0, 1 - movs r0, 0xFF - ands r5, r0 - adds r0, r5, 0 - movs r1, 0x50 - bl Sin - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x4F - bgt _080D299A - adds r0, r5, 0 - movs r1, 0x50 - bl Cos - movs r2, 0x2E - ldrsh r1, [r4, r2] - lsrs r2, r1, 31 - adds r1, r2 - asrs r1, 1 - lsls r0, 16 - asrs r0, 24 - adds r1, r0 - strh r1, [r4, 0x26] -_080D299A: - movs r0, 0x2E - ldrsh r2, [r4, r0] - cmp r2, 0x5A - ble _080D29B8 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - ldrh r0, [r4, 0x24] - subs r0, r1 - strh r0, [r4, 0x24] -_080D29B8: - cmp r2, 0x64 - ble _080D29C2 - adds r0, r4, 0 - bl move_anim_8072740 -_080D29C2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D29C8: .4byte gUnknown_03004B00 - thumb_func_end sub_80D2938 - - thumb_func_start sub_80D29CC -sub_80D29CC: @ 80D29CC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r1, 0x5 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x14 - ble _080D2A22 - adds r1, r0, 0 - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D2A22: - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x1E - ble _080D2A30 - adds r0, r4, 0 - bl move_anim_8072740 -_080D2A30: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D29CC - - thumb_func_start sub_80D2A38 -sub_80D2A38: @ 80D2A38 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D2A5C - ldr r1, _080D2A58 - ldrh r0, [r1] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x32] - adds r0, r2, 0x1 - strh r0, [r4, 0x2E] - b _080D2AB0 - .align 2, 0 -_080D2A58: .4byte gUnknown_03004B00 -_080D2A5C: - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x36] - adds r0, r2 - movs r5, 0 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - adds r2, r0, 0 - strh r2, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - cmp r0, 0x46 - ble _080D2AB0 - ldr r0, _080D2AB8 - str r0, [r4, 0x1C] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x22] - adds r0, r2, r1 - strh r0, [r4, 0x22] - strh r5, [r4, 0x24] - strh r5, [r4, 0x26] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xB4 - bl __umodsi3 - strh r0, [r4, 0x34] -_080D2AB0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D2AB8: .4byte sub_80D29CC - thumb_func_end sub_80D2A38 - - thumb_func_start sub_80D2ABC -sub_80D2ABC: @ 80D2ABC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D2AF6 - ldr r1, _080D2BB8 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim - ldr r0, _080D2BBC - ldrb r0, [r0] - bl sub_8079E90 - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - movs r0, 0x1 - strh r0, [r4, 0x32] -_080D2AF6: - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x2E] - adds r0, r2 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - lsls r1, r0, 2 - adds r0, r1, 0 - cmp r1, 0 - bge _080D2B0C - adds r0, 0xFF -_080D2B0C: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bge _080D2B1E - movs r0, 0 - strh r0, [r4, 0x30] -_080D2B1E: - movs r0, 0x30 - ldrsh r2, [r4, r0] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _080D2B2C - adds r0, 0x3 -_080D2B2C: - asrs r0, 2 - movs r1, 0x1E - subs r1, r0 - adds r0, r2, 0 - bl Cos - strh r0, [r4, 0x24] - movs r0, 0x30 - ldrsh r2, [r4, r0] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _080D2B48 - adds r0, 0x7 -_080D2B48: - asrs r0, 3 - movs r1, 0xA - subs r1, r0 - adds r0, r2, 0 - bl Sin - strh r0, [r4, 0x26] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0x80 - ble _080D2B6C - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080D2B6C - ldr r0, _080D2BC0 - strh r0, [r4, 0x32] -_080D2B6C: - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D2B80 - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - bge _080D2B80 - movs r0, 0x1 - strh r0, [r4, 0x32] -_080D2B80: - ldrh r0, [r4, 0x34] - adds r1, r0, 0x1 - strh r1, [r4, 0x34] - subs r0, 0x9 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x46 - bls _080D2BC4 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080D2BD2 - .align 2, 0 -_080D2BB8: .4byte gUnknown_03004B00 -_080D2BBC: .4byte gUnknown_0202F7C9 -_080D2BC0: .4byte 0x0000ffff -_080D2BC4: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080D2BD2: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x5A - ble _080D2BE0 - adds r0, r4, 0 - bl move_anim_8072740 -_080D2BE0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D2ABC - - thumb_func_start sub_80D2BE8 -sub_80D2BE8: @ 80D2BE8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D2C1C - ldr r1, _080D2C18 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrb r1, [r1, 0x4] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080D2C30 - .align 2, 0 -_080D2C18: .4byte gUnknown_03004B00 -_080D2C1C: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D2C30 - adds r0, r4, 0 - bl move_anim_8072740 -_080D2C30: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D2BE8 - - thumb_func_start sub_80D2C38 -sub_80D2C38: @ 80D2C38 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r1, _080D2C50 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080D2C54 - adds r0, r5, 0 - bl move_anim_8072740 - b _080D2CB8 - .align 2, 0 -_080D2C50: .4byte gUnknown_03004B00 -_080D2C54: - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080D2C64 - ldr r4, _080D2C60 - b _080D2C66 - .align 2, 0 -_080D2C60: .4byte gUnknown_0202F7C8 -_080D2C64: - ldr r4, _080D2C94 -_080D2C66: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080D2C98 - movs r2, 0x2 - ldrsh r1, [r0, r2] - adds r2, r0, 0 - cmp r1, 0 - bne _080D2C9C - ldrh r0, [r5, 0x20] - adds r0, 0x20 - b _080D2CA0 - .align 2, 0 -_080D2C94: .4byte gUnknown_0202F7C9 -_080D2C98: .4byte gUnknown_03004B00 -_080D2C9C: - ldrh r0, [r5, 0x20] - subs r0, 0x20 -_080D2CA0: - strh r0, [r5, 0x20] - ldrh r0, [r2, 0x4] - strh r0, [r5, 0x2E] - ldrh r1, [r2, 0x2] - strh r1, [r5, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - ldr r0, _080D2CC0 - str r0, [r5, 0x1C] -_080D2CB8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D2CC0: .4byte sub_80D2CC4 - thumb_func_end sub_80D2C38 - - thumb_func_start sub_80D2CC4 -sub_80D2CC4: @ 80D2CC4 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D2CF4 - ldrh r0, [r2, 0x2E] - subs r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - cmp r0, 0 - beq _080D2CEE - ldrh r1, [r2, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r2, 0 - bl StartSpriteAnim - b _080D2CF4 -_080D2CEE: - adds r0, r2, 0 - bl move_anim_8072740 -_080D2CF4: - pop {r0} - bx r0 - thumb_func_end sub_80D2CC4 - - thumb_func_start sub_80D2CF8 -sub_80D2CF8: @ 80D2CF8 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080D2D2C - ldrb r0, [r0] - bl obj_id_for_side_relative_to_move - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _080D2D30 - adds r4, r0 - ldr r2, _080D2D34 - adds r0, r4, 0 - bl sub_80798F4 - ldr r0, _080D2D38 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D2D2C: .4byte gUnknown_03004B00 -_080D2D30: .4byte gTasks -_080D2D34: .4byte gUnknown_083D7CA8 -_080D2D38: .4byte sub_80D2D3C - thumb_func_end sub_80D2CF8 - - thumb_func_start sub_80D2D3C -sub_80D2D3C: @ 80D2D3C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080D2D64 - adds r0, r1 - bl sub_807992C - lsls r0, 24 - cmp r0, 0 - bne _080D2D5C - adds r0, r4, 0 - bl move_anim_task_del -_080D2D5C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D2D64: .4byte gTasks - thumb_func_end sub_80D2D3C - - thumb_func_start sub_80D2D68 -sub_80D2D68: @ 80D2D68 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, _080D2D7C - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D2D84 - ldr r0, _080D2D80 - b _080D2D86 - .align 2, 0 -_080D2D7C: .4byte gUnknown_03004B00 -_080D2D80: .4byte gUnknown_0202F7C8 -_080D2D84: - ldr r0, _080D2E1C -_080D2D86: - ldrb r6, [r0] - adds r0, r6, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D2DA0 - ldr r1, _080D2E20 - movs r2, 0x2 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x2] -_080D2DA0: - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r7, _080D2E20 - lsrs r0, 24 - ldrh r3, [r7, 0x2] - adds r0, r3 - movs r4, 0 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r7, 0x4] - adds r0, r1 - strh r0, [r5, 0x22] - strh r4, [r5, 0x2E] - ldrh r1, [r5, 0x20] - lsls r1, 3 - strh r1, [r5, 0x30] - lsls r0, 3 - strh r0, [r5, 0x32] - movs r2, 0x2 - ldrsh r0, [r7, r2] - lsls r0, 3 - cmp r0, 0 - bge _080D2DE0 - adds r0, 0x7 -_080D2DE0: - asrs r0, 3 - strh r0, [r5, 0x34] - movs r3, 0x4 - ldrsh r0, [r7, r3] - lsls r0, 3 - cmp r0, 0 - bge _080D2DF0 - adds r0, 0x7 -_080D2DF0: - asrs r0, 3 - strh r0, [r5, 0x36] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0x6 - ldrsh r0, [r7, r3] - lsls r0, 4 - adds r1, r0 - ldr r3, _080D2E24 - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D2E28 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r0, _080D2E2C - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D2E1C: .4byte gUnknown_0202F7C9 -_080D2E20: .4byte gUnknown_03004B00 -_080D2E24: .4byte 0x000003ff -_080D2E28: .4byte 0xfffffc00 -_080D2E2C: .4byte sub_80D2E30 - thumb_func_end sub_80D2D68 - - thumb_func_start sub_80D2E30 -sub_80D2E30: @ 80D2E30 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x34] - ldrh r1, [r2, 0x30] - adds r0, r1 - strh r0, [r2, 0x30] - ldrh r1, [r2, 0x36] - ldrh r3, [r2, 0x32] - adds r1, r3 - strh r1, [r2, 0x32] - lsls r0, 16 - asrs r0, 19 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 19 - strh r1, [r2, 0x22] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080D2E64 - adds r0, r2, 0 - bl move_anim_8072740 -_080D2E64: - pop {r0} - bx r0 - thumb_func_end sub_80D2E30 - - thumb_func_start sub_80D2E68 -sub_80D2E68: @ 80D2E68 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D2E8A - ldr r0, _080D2EC4 - ldrh r1, [r0] - movs r0, 0x78 - subs r0, r1 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080D2E8A: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x30 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080D2EA8 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - adds r0, 0x10 - movs r1, 0 - bl sub_8079108 -_080D2EA8: - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r2, 0x30 - ldrsh r0, [r4, r2] - adds r0, 0x50 - cmp r1, r0 - bne _080D2EBC - adds r0, r4, 0 - bl move_anim_8072740 -_080D2EBC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D2EC4: .4byte gUnknown_03004B00 - thumb_func_end sub_80D2E68 - - thumb_func_start sub_80D2EC8 -sub_80D2EC8: @ 80D2EC8 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D2EF6 - movs r5, 0x78 - strh r5, [r6, 0x20] - ldr r4, _080D2F78 - movs r2, 0 - ldrsh r0, [r4, r2] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - subs r0, 0xF - strh r0, [r6, 0x22] - ldrb r1, [r4, 0x2] - adds r0, r6, 0 - bl StartSpriteAnim - strh r5, [r6, 0x38] - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x34] -_080D2EF6: - ldrh r0, [r6, 0x2E] - adds r0, 0x1 - movs r5, 0 - strh r0, [r6, 0x2E] - movs r1, 0x2E - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r6, 0x30] - movs r2, 0x2E - ldrsh r0, [r6, r2] - lsls r4, r0, 1 - adds r4, r0 - ldrh r0, [r6, 0x34] - adds r4, r0 - movs r2, 0xFF - ldrh r0, [r6, 0x3A] - adds r0, 0xA - movs r1, 0xFF - ands r0, r1 - strh r0, [r6, 0x3A] - ands r4, r2 - adds r0, r4, 0 - movs r1, 0x64 - bl Cos - strh r0, [r6, 0x24] - adds r0, r4, 0 - movs r1, 0xA - bl Sin - adds r4, r0, 0 - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r1, 0x4 - bl Cos - ldrh r2, [r6, 0x30] - adds r4, r2 - adds r0, r4 - strh r0, [r6, 0x26] - movs r0, 0x2E - ldrsh r1, [r6, r0] - movs r2, 0x38 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _080D2F72 - ldr r0, _080D2F7C - str r0, [r6, 0x1C] - strh r5, [r6, 0x2E] - adds r0, r6, 0 - bl oamt_add_pos2_onto_pos1 - movs r0, 0x5 - strh r0, [r6, 0x32] - strh r5, [r6, 0x36] - strh r5, [r6, 0x34] - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080D2F72: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D2F78: .4byte gUnknown_03004B00 -_080D2F7C: .4byte sub_80D2F80 - thumb_func_end sub_80D2EC8 - - thumb_func_start sub_80D2F80 -sub_80D2F80: @ 80D2F80 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - ble _080D2F9A - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, _080D2FA0 - str r0, [r1, 0x1C] -_080D2F9A: - pop {r0} - bx r0 - .align 2, 0 -_080D2FA0: .4byte sub_80D2FA4 - thumb_func_end sub_80D2F80 - - thumb_func_start sub_80D2FA4 -sub_80D2FA4: @ 80D2FA4 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x32] - ldrh r2, [r4, 0x34] - adds r0, r1, r2 - strh r0, [r4, 0x34] - strh r0, [r4, 0x26] - adds r1, 0x1 - strh r1, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x30 - ble _080D2FCE - lsls r0, r1, 16 - cmp r0, 0 - ble _080D2FCE - ldrh r0, [r4, 0x36] - subs r1, r0, 0x5 - strh r1, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x36] -_080D2FCE: - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _080D3000 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, 0 - bl move_anim_8072740 -_080D3000: - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bne _080D300E - adds r0, r4, 0 - bl move_anim_8072740 -_080D300E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D2FA4 - - thumb_func_start sub_80D3014 -sub_80D3014: @ 80D3014 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080D3058 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D3060 - ldr r4, _080D305C - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080D3060 - ldrb r0, [r4] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_807A3FC - ldrh r0, [r5, 0x22] - adds r0, 0x28 - strh r0, [r5, 0x22] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080D3080 - .align 2, 0 -_080D3058: .4byte gUnknown_020239F8 -_080D305C: .4byte gUnknown_0202F7C8 -_080D3060: - ldr r4, _080D30A0 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x28 - strh r0, [r5, 0x22] -_080D3080: - movs r0, 0xD - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - subs r0, 0x48 - strh r0, [r5, 0x36] - ldr r0, _080D30A4 - str r0, [r5, 0x1C] - ldr r1, _080D30A8 - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D30A0: .4byte gUnknown_0202F7C8 -_080D30A4: .4byte sub_8078B34 -_080D30A8: .4byte move_anim_8072740 - thumb_func_end sub_80D3014 - - thumb_func_start sub_80D30AC -sub_80D30AC: @ 80D30AC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080D30C8 - ldr r1, _080D30CC - ldr r1, [r1] - ldrb r2, [r1, 0x10] - movs r1, 0x1 - ands r1, r2 - strh r1, [r3, 0xE] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080D30C8: .4byte gUnknown_03004B00 -_080D30CC: .4byte gUnknown_0202F7B4 - thumb_func_end sub_80D30AC - - thumb_func_start update_fury_cutter_counter_copy -update_fury_cutter_counter_copy: @ 80D30D0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080D30E8 - ldr r1, _080D30EC - ldr r1, [r1] - ldrb r1, [r1, 0x10] - strh r1, [r2, 0xE] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080D30E8: .4byte gUnknown_03004B00 -_080D30EC: .4byte gUnknown_0202F7B4 - thumb_func_end update_fury_cutter_counter_copy - - thumb_func_start sub_80D30F0 -sub_80D30F0: @ 80D30F0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080D3178 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D3118 - ldr r1, _080D317C - ldrh r0, [r1] - strh r0, [r5, 0xA] - ldrh r0, [r1, 0x2] - strh r0, [r5, 0xC] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0xE] -_080D3118: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r2, 0x8 - ldrsh r0, [r5, r2] - movs r2, 0xC - ldrsh r1, [r5, r2] - bl __modsi3 - cmp r0, 0x1 - bne _080D3160 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF0 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x50 - bl __umodsi3 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _080D3180 - adds r1, r4, 0 - movs r3, 0x4 - bl CreateSprite -_080D3160: - movs r0, 0x8 - ldrsh r1, [r5, r0] - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _080D3172 - adds r0, r6, 0 - bl move_anim_task_del -_080D3172: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D3178: .4byte gTasks -_080D317C: .4byte gUnknown_03004B00 -_080D3180: .4byte gSpriteTemplate_83D9130 - thumb_func_end sub_80D30F0 - - thumb_func_start sub_80D3184 -sub_80D3184: @ 80D3184 - ldr r1, _080D318C - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080D318C: .4byte sub_80D3190 - thumb_func_end sub_80D3184 - - thumb_func_start sub_80D3190 -sub_80D3190: @ 80D3190 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD - bgt _080D31AE - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x26] - adds r0, 0x4 - strh r0, [r2, 0x26] -_080D31AE: - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D31C2 - adds r0, r2, 0 - bl DestroySprite -_080D31C2: - pop {r0} - bx r0 - thumb_func_end sub_80D3190 - - thumb_func_start sub_80D31C8 -sub_80D31C8: @ 80D31C8 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r5, _080D31F0 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D31F8 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldr r4, _080D31F4 - ldrh r1, [r4] - subs r0, r1 - b _080D320A - .align 2, 0 -_080D31F0: .4byte gUnknown_0202F7C8 -_080D31F4: .4byte gUnknown_03004B00 -_080D31F8: - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080D32D0 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 -_080D320A: - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r6, 0x22] - adds r2, r6, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080D32D4 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D3240 - ldr r1, _080D32D0 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080D3240: - ldr r5, _080D32D0 - ldrh r0, [r5, 0xC] - strh r0, [r6, 0x2E] - ldrh r0, [r6, 0x20] - strh r0, [r6, 0x30] - ldr r4, _080D32D8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x32] - ldrh r0, [r6, 0x22] - strh r0, [r6, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080D32DC - bl object_new_hidden_with_callback - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - strh r4, [r6, 0x38] - ldrb r0, [r5, 0x8] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl Sin - ldrh r1, [r6, 0x20] - subs r1, r0 - strh r1, [r6, 0x20] - ldrb r0, [r5, 0x8] - movs r2, 0x6 - ldrsh r1, [r5, r2] - bl Cos - ldrh r1, [r6, 0x22] - subs r1, r0 - strh r1, [r6, 0x22] - ldr r0, _080D32E0 - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r5, 0x4] - strh r0, [r1, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r1, 0x30] - ldrh r0, [r5, 0xA] - strh r0, [r1, 0x32] - ldrb r0, [r5, 0x8] - lsls r0, 8 - strh r0, [r1, 0x34] - ldrh r0, [r5, 0xC] - strh r0, [r1, 0x36] - ldr r1, _080D32E4 - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D32D0: .4byte gUnknown_03004B00 -_080D32D4: .4byte gUnknown_0202F7C8 -_080D32D8: .4byte gUnknown_0202F7C9 -_080D32DC: .4byte SpriteCallbackDummy -_080D32E0: .4byte gSprites -_080D32E4: .4byte sub_80D32E8 - thumb_func_end sub_80D31C8 - - thumb_func_start sub_80D32E8 -sub_80D32E8: @ 80D32E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r1, [r5, 0x38] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080D3350 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r7, r0, r2 - ldrh r4, [r7, 0x36] - lsls r4, 24 - lsrs r4, 24 - ldrh r0, [r7, 0x34] - mov r8, r0 - movs r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl sub_8078B5C - mov r1, r8 - lsrs r6, r1, 8 - movs r0, 0x2E - ldrsh r1, [r7, r0] - adds r0, r6, 0 - bl Sin - ldrh r1, [r5, 0x24] - adds r0, r1 - strh r0, [r5, 0x24] - movs r0, 0x30 - ldrsh r1, [r7, r0] - adds r0, r6, 0 - bl Cos - ldrh r1, [r5, 0x26] - adds r0, r1 - strh r0, [r5, 0x26] - ldrh r0, [r7, 0x32] - mov r1, r8 - adds r1, r0 - strh r1, [r7, 0x34] - subs r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - cmp r4, 0 - beq _080D3354 - strh r4, [r7, 0x36] - b _080D335E - .align 2, 0 -_080D3350: .4byte gSprites -_080D3354: - ldr r0, _080D336C - str r0, [r5, 0x1C] - adds r0, r7, 0 - bl DestroySprite -_080D335E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D336C: .4byte sub_80D3370 - thumb_func_end sub_80D32E8 - - thumb_func_start sub_80D3370 -sub_80D3370: @ 80D3370 - push {lr} - adds r3, r0, 0 - adds r3, 0x2C - ldrb r2, [r3] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - strb r1, [r3] - ldr r1, _080D3390 - str r1, [r0, 0x1C] - ldr r1, _080D3394 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080D3390: .4byte sub_8078600 -_080D3394: .4byte sub_80D3398 - thumb_func_end sub_80D3370 - - thumb_func_start sub_80D3398 -sub_80D3398: @ 80D3398 - push {lr} - movs r1, 0xA - strh r1, [r0, 0x2E] - ldr r1, _080D33AC - str r1, [r0, 0x1C] - ldr r1, _080D33B0 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080D33AC: .4byte sub_80782D8 -_080D33B0: .4byte move_anim_8074EE0 - thumb_func_end sub_80D3398 - - thumb_func_start sub_80D33B4 -sub_80D33B4: @ 80D33B4 - push {r4-r7,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080D33DC - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D33E4 - ldr r1, _080D33E0 - ldrh r0, [r1, 0x4] - negs r0, r0 - lsls r0, 16 - lsrs r6, r0, 16 - adds r7, r1, 0 - b _080D33EA - .align 2, 0 -_080D33DC: .4byte gUnknown_0202F7C8 -_080D33E0: .4byte gUnknown_03004B00 -_080D33E4: - ldr r0, _080D3440 - ldrh r6, [r0, 0x4] - adds r7, r0, 0 -_080D33EA: - ldrh r0, [r7, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080D3444 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r7, [r7, 0x6] - adds r0, r7 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080D3448 - str r0, [r5, 0x1C] - adds r2, r5, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D3440: .4byte gUnknown_03004B00 -_080D3444: .4byte gUnknown_0202F7C9 -_080D3448: .4byte sub_80D344C - thumb_func_end sub_80D33B4 - - thumb_func_start sub_80D344C -sub_80D344C: @ 80D344C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D3488 - ldrh r1, [r0, 0xE] - ldr r0, _080D348C - cmp r1, r0 - bne _080D346E - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] -_080D346E: - adds r0, r4, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080D3480 - adds r0, r4, 0 - bl move_anim_8072740 -_080D3480: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D3488: .4byte gUnknown_03004B00 -_080D348C: .4byte 0x0000ffff - thumb_func_end sub_80D344C - - thumb_func_start sub_80D3490 -sub_80D3490: @ 80D3490 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080D34C4 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r0, _080D34C8 - ldrh r0, [r0] - strh r0, [r4, 0x8] - ldr r0, _080D34CC - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r4, 0xC] - ldr r0, _080D34D0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D34C4: .4byte gTasks -_080D34C8: .4byte gUnknown_03004B00 -_080D34CC: .4byte 0x0000279c -_080D34D0: .4byte sub_80D34D4 - thumb_func_end sub_80D3490 - - thumb_func_start sub_80D34D4 -sub_80D34D4: @ 80D34D4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080D354C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0x1C] - adds r0, 0x1 - strh r0, [r2, 0x1C] - lsls r0, 16 - asrs r0, 16 - mov r12, r1 - cmp r0, 0x3 - bne _080D3526 - movs r0, 0 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _080D3550 - lsls r0, r5, 1 - adds r0, r1 - ldrh r6, [r0] - adds r7, r1, 0 - adds r3, r0, 0x2 - movs r1, 0x6 - adds r2, r0, 0 -_080D3510: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _080D3510 - adds r0, r5, 0x7 - lsls r0, 1 - adds r0, r7 - strh r6, [r0] -_080D3526: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r12 - ldrh r1, [r0, 0x1E] - adds r1, 0x1 - strh r1, [r0, 0x1E] - lsls r1, 16 - asrs r1, 16 - movs r2, 0x8 - ldrsh r0, [r0, r2] - cmp r1, r0 - bne _080D3546 - adds r0, r4, 0 - bl move_anim_task_del -_080D3546: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D354C: .4byte gTasks -_080D3550: .4byte gPlttBufferFaded - thumb_func_end sub_80D34D4 - - thumb_func_start sub_80D3554 -sub_80D3554: @ 80D3554 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - movs r0, 0x1E - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080D35BC - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x2E - ldrsh r1, [r5, r0] - movs r0, 0xD2 - lsls r0, 8 - bl __divsi3 - strh r0, [r5, 0x38] - ldr r0, _080D35C0 - ldrh r2, [r0, 0x6] - strh r2, [r5, 0x3C] - ldrh r1, [r0, 0xE] - movs r3, 0xE - ldrsh r0, [r0, r3] - cmp r0, 0x7F - ble _080D35C4 - adds r0, r1, 0 - subs r0, 0x7F - lsls r0, 8 - strh r0, [r5, 0x3A] - negs r0, r2 - strh r0, [r5, 0x3C] - b _080D35C8 - .align 2, 0 -_080D35BC: .4byte gUnknown_0202F7C9 -_080D35C0: .4byte gUnknown_03004B00 -_080D35C4: - lsls r0, r1, 8 - strh r0, [r5, 0x3A] -_080D35C8: - ldr r1, _080D35D8 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D35D8: .4byte sub_80D35DC - thumb_func_end sub_80D3554 - - thumb_func_start sub_80D35DC -sub_80D35DC: @ 80D35DC - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080D35F0 - adds r0, r4, 0 - bl move_anim_8072740 -_080D35F0: - ldrh r0, [r4, 0x3A] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - movs r2, 0x3A - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - adds r0, r1 - asrs r0, 8 - cmp r0, 0x7F - ble _080D3620 - movs r0, 0 - strh r0, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - negs r0, r0 - strh r0, [r4, 0x3C] - b _080D3628 -_080D3620: - ldrh r0, [r4, 0x38] - ldrh r1, [r4, 0x3A] - adds r0, r1 - strh r0, [r4, 0x3A] -_080D3628: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D35DC - - thumb_func_start sub_80D3630 -sub_80D3630: @ 80D3630 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080D3650 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080D3654 - ldrh r0, [r3] - movs r2, 0 - strh r0, [r1, 0x8] - strh r2, [r3, 0xE] - ldr r0, _080D3658 - str r0, [r1] - bx lr - .align 2, 0 -_080D3650: .4byte gTasks -_080D3654: .4byte gUnknown_03004B00 -_080D3658: .4byte sub_80D365C - thumb_func_end sub_80D3630 - - thumb_func_start sub_80D365C -sub_80D365C: @ 80D365C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080D3690 - ldrh r0, [r2, 0xE] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r2, 0xE] - ldr r1, _080D3694 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - subs r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - cmp r1, 0 - bne _080D368A - adds r0, r3, 0 - bl move_anim_task_del -_080D368A: - pop {r0} - bx r0 - .align 2, 0 -_080D3690: .4byte gUnknown_03004B00 -_080D3694: .4byte gTasks - thumb_func_end sub_80D365C - - thumb_func_start sub_80D3698 -sub_80D3698: @ 80D3698 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r7, _080D36E4 - ldrb r0, [r7] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r7] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r6, _080D36E8 - strh r6, [r4, 0x26] - ldrb r0, [r7] - bl sub_8079E90 - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D36F2 - ldrb r0, [r7] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D36EC - movs r0, 0xA - strh r0, [r4, 0x24] - b _080D36F4 - .align 2, 0 -_080D36E4: .4byte gUnknown_0202F7C8 -_080D36E8: .4byte 0x0000fff6 -_080D36EC: - strh r6, [r4, 0x24] - subs r0, r5, 0x2 - b _080D36F6 -_080D36F2: - strh r6, [r4, 0x24] -_080D36F4: - adds r0, r5, 0x2 -_080D36F6: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldr r0, _080D3708 - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D3708: .4byte sub_80D370C - thumb_func_end sub_80D3698 - - thumb_func_start sub_80D370C -sub_80D370C: @ 80D370C - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080D3722 - adds r0, r2, 0 - bl move_anim_8072740 -_080D3722: - pop {r0} - bx r0 - thumb_func_end sub_80D370C - - thumb_func_start sub_80D3728 -sub_80D3728: @ 80D3728 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r5, _080D37E8 - ldrb r0, [r5] - bl battle_side_get_owner - adds r4, r0, 0 - ldr r0, _080D37EC - ldrb r0, [r0] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080D3772 - ldr r4, _080D37F0 - movs r1, 0 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4] - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - beq _080D376A - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D3772 -_080D376A: - movs r1, 0 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4] -_080D3772: - ldr r5, _080D37F0 - movs r1, 0xA - ldrsh r0, [r5, r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0 - cmp r0, 0 - bne _080D3786 - movs r1, 0x1 -_080D3786: - ldrb r0, [r5, 0xA] - movs r7, 0x1 - cmp r0, 0 - bne _080D3790 - movs r7, 0x3 -_080D3790: - adds r0, r6, 0 - bl sub_80787B0 - ldr r0, _080D37E8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D37AA - ldrh r0, [r5, 0x4] - negs r0, r0 - strh r0, [r5, 0x4] -_080D37AA: - ldrh r0, [r5, 0x8] - strh r0, [r6, 0x2E] - ldr r4, _080D37EC - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r4] - adds r1, r7, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - strh r0, [r6, 0x36] - ldr r0, _080D37F4 - str r0, [r6, 0x1C] - ldr r1, _080D37F8 - adds r0, r6, 0 - bl oamt_set_x3A_32 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D37E8: .4byte gUnknown_0202F7C8 -_080D37EC: .4byte gUnknown_0202F7C9 -_080D37F0: .4byte gUnknown_03004B00 -_080D37F4: .4byte sub_8078B34 -_080D37F8: .4byte move_anim_8072740 - thumb_func_end sub_80D3728 - - thumb_func_start sub_80D37FC -sub_80D37FC: @ 80D37FC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r0, _080D382C - ldrh r1, [r0, 0x8] - strh r1, [r4, 0x2E] - ldrh r0, [r0, 0x4] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - adds r1, r0 - strh r1, [r4, 0x36] - ldr r0, _080D3830 - str r0, [r4, 0x1C] - ldr r1, _080D3834 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D382C: .4byte gUnknown_03004B00 -_080D3830: .4byte sub_8078B34 -_080D3834: .4byte move_anim_8072740 - thumb_func_end sub_80D37FC - - thumb_func_start sub_80D3838 -sub_80D3838: @ 80D3838 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D3850 - movs r1, 0x6 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080D3854 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - b _080D385C - .align 2, 0 -_080D3850: .4byte gUnknown_03004B00 -_080D3854: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80787B0 -_080D385C: - ldr r0, _080D386C - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x3C] - ldr r0, _080D3870 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D386C: .4byte gUnknown_03004B00 -_080D3870: .4byte sub_80D3874 - thumb_func_end sub_80D3838 - - thumb_func_start sub_80D3874 -sub_80D3874: @ 80D3874 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0xB - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x30 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080D38B4 - adds r0, r4, 0 - bl move_anim_8072740 -_080D38B4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D3874 - - thumb_func_start sub_80D38BC -sub_80D38BC: @ 80D38BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r1, _080D398C - ldr r2, _080D3990 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0x80 - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r1] - ldr r2, _080D3994 - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2, 0x1] - mov r0, sp - bl sub_8078914 - ldr r2, [sp] - movs r3, 0x80 - lsls r3, 6 - add r6, sp, 0x10 - add r0, sp, 0xC - mov r12, r0 - movs r5, 0 - ldr r1, _080D3998 - movs r4, 0x80 - lsls r4, 5 - mov r8, r6 - ldr r7, _080D399C - movs r0, 0x85 - lsls r0, 24 - mov r9, r0 -_080D3920: - str r5, [sp, 0x10] - mov r0, r8 - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080D3920 - str r5, [sp, 0x10] - str r6, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r9 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0 - mov r3, r12 - strb r0, [r3] - strb r0, [r3] - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x10] - ldr r0, _080D3998 - str r6, [r0] - str r1, [r0, 0x4] - ldr r1, _080D399C - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D39B8 - ldr r2, _080D3994 - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080D39A0 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D39A8 - ldr r0, _080D39A4 - b _080D39AA - .align 2, 0 -_080D398C: .4byte REG_BLDCNT -_080D3990: .4byte 0x00003f42 -_080D3994: .4byte REG_BG1CNT -_080D3998: .4byte 0x040000d4 -_080D399C: .4byte 0x85000400 -_080D39A0: .4byte gUnknown_0202F7C8 -_080D39A4: .4byte gUnknown_08E70968 -_080D39A8: - ldr r0, _080D39B4 -_080D39AA: - ldr r1, [sp, 0x4] - bl LZDecompressVram - b _080D39CE - .align 2, 0 -_080D39B4: .4byte gUnknown_08E70C38 -_080D39B8: - ldr r0, _080D39F0 - ldr r1, [sp, 0x4] - bl LZDecompressVram - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0x1 - bl sub_80763FC -_080D39CE: - ldr r0, _080D39F4 - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _080D39F8 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D3A00 - ldr r0, _080D39FC - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _080D3A0E - .align 2, 0 -_080D39F0: .4byte gUnknown_08E70F0C -_080D39F4: .4byte gBattleAnimBackgroundImage_Surf -_080D39F8: .4byte gUnknown_03004B00 -_080D39FC: .4byte gBattleAnimBackgroundPalette_Surf -_080D3A00: - ldr r0, _080D3A78 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette -_080D3A0E: - ldr r0, _080D3A7C - ldr r4, _080D3A80 - mov r2, r10 - lsls r5, r2, 2 - adds r1, r5, r2 - lsls r1, 3 - adds r6, r1, r4 - ldrb r1, [r6, 0x7] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r3, 0 - mov r9, r3 - mov r0, r8 - strh r0, [r6, 0x26] - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - adds r7, r0, r4 - mov r2, r9 - strh r2, [r7, 0x8] - movs r0, 0x80 - lsls r0, 5 - strh r0, [r7, 0xA] - strh r0, [r7, 0xC] - bl sub_8076BE0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080D3A94 - ldr r3, _080D3A84 - adds r0, r3, 0 - ldr r1, _080D3A88 - strh r0, [r1] - ldr r2, _080D3A8C - adds r0, r2, 0 - ldr r3, _080D3A90 - strh r0, [r3] - movs r0, 0x2 - strh r0, [r6, 0x8] - movs r0, 0x1 - strh r0, [r6, 0xA] - mov r0, r9 - strh r0, [r7, 0xE] - b _080D3AEE - .align 2, 0 -_080D3A78: .4byte gBattleAnimBackgroundImageMuddyWater_Pal -_080D3A7C: .4byte sub_80D3D68 -_080D3A80: .4byte gTasks -_080D3A84: .4byte 0x0000ffb0 -_080D3A88: .4byte gUnknown_030042C0 -_080D3A8C: .4byte 0x0000ffd0 -_080D3A90: .4byte gUnknown_030041B4 -_080D3A94: - ldr r0, _080D3AC4 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - bne _080D3AD8 - ldr r2, _080D3AC8 - adds r0, r2, 0 - ldr r3, _080D3ACC - strh r0, [r3] - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - ldr r3, _080D3AD0 - strh r0, [r3] - movs r0, 0x2 - strh r0, [r6, 0x8] - ldr r0, _080D3AD4 - strh r0, [r6, 0xA] - strh r1, [r7, 0xE] - b _080D3AEE - .align 2, 0 -_080D3AC4: .4byte gUnknown_0202F7C8 -_080D3AC8: .4byte 0x0000ff20 -_080D3ACC: .4byte gUnknown_030042C0 -_080D3AD0: .4byte gUnknown_030041B4 -_080D3AD4: .4byte 0x0000ffff -_080D3AD8: - ldr r0, _080D3B1C - strh r4, [r0] - ldr r1, _080D3B20 - adds r0, r1, 0 - ldr r2, _080D3B24 - strh r0, [r2] - ldr r0, _080D3B28 - strh r0, [r6, 0x8] - movs r0, 0x1 - strh r0, [r6, 0xA] - strh r4, [r7, 0xE] -_080D3AEE: - ldr r1, _080D3B2C - ldr r3, _080D3B1C - ldrh r0, [r3] - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080D3B24 - ldrh r0, [r2] - strh r0, [r1] - ldr r1, _080D3B30 - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0xE - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080D3B34 - movs r0, 0x30 - strh r0, [r2, 0x10] - movs r0, 0x70 - b _080D3B38 - .align 2, 0 -_080D3B1C: .4byte gUnknown_030042C0 -_080D3B20: .4byte 0x0000ffd0 -_080D3B24: .4byte gUnknown_030041B4 -_080D3B28: .4byte 0x0000fffe -_080D3B2C: .4byte REG_BG1HOFS -_080D3B30: .4byte gTasks -_080D3B34: - movs r0, 0 - strh r0, [r2, 0x10] -_080D3B38: - strh r0, [r2, 0x12] - mov r2, r10 - adds r0, r5, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x14] - ldr r1, _080D3B5C - str r1, [r0] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D3B5C: .4byte sub_80D3B60 - thumb_func_end sub_80D38BC - - thumb_func_start sub_80D3B60 -sub_80D3B60: @ 80D3B60 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _080D3D44 - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0x8] - ldr r1, _080D3D48 - ldrh r1, [r1] - adds r0, r1 - ldr r2, _080D3D48 - strh r0, [r2] - ldrh r0, [r4, 0xA] - ldr r3, _080D3D4C - ldrh r3, [r3] - adds r0, r3 - ldr r1, _080D3D4C - strh r0, [r1] - add r5, sp, 0x4 - adds r0, r5, 0 - bl sub_8078914 - ldrh r0, [r4, 0xA] - ldrh r2, [r4, 0xC] - adds r0, r2 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - mov r10, r5 - cmp r0, 0x4 - bne _080D3C02 - ldr r1, _080D3D50 - ldrb r0, [r5, 0x8] - lsls r0, 4 - adds r0, 0x7 - lsls r0, 1 - adds r0, r1 - ldrh r6, [r0] - movs r2, 0x6 - adds r5, r1, 0 - adds r3, r5, 0 - mov r4, r10 -_080D3BC8: - ldrb r0, [r4, 0x8] - lsls r0, 4 - adds r1, r2, 0x1 - adds r0, r1 - lsls r1, r0, 1 - adds r1, r3 - subs r0, 0x1 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - subs r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080D3BC8 - mov r3, r10 - ldrb r0, [r3, 0x8] - lsls r0, 4 - adds r0, 0x1 - lsls r0, 1 - adds r0, r5 - strh r6, [r0] - ldr r1, _080D3D44 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x12] -_080D3C02: - ldr r1, _080D3D44 - lsls r2, r7, 2 - adds r0, r2, r7 - lsls r0, 3 - adds r3, r0, r1 - ldrh r0, [r3, 0x14] - adds r0, 0x1 - strh r0, [r3, 0x14] - lsls r0, 16 - asrs r0, 16 - adds r4, r1, 0 - str r2, [sp, 0x14] - cmp r0, 0x1 - ble _080D3C70 - movs r0, 0 - strh r0, [r3, 0x14] - ldrh r0, [r3, 0xE] - adds r2, r0, 0x1 - strh r2, [r3, 0xE] - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0xD - bgt _080D3C4C - movs r1, 0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - orrs r2, r0 - strh r2, [r1, 0xA] - ldrh r0, [r3, 0x10] - adds r0, 0x1 - strh r0, [r3, 0x10] -_080D3C4C: - movs r2, 0xE - ldrsh r0, [r3, r2] - cmp r0, 0x36 - ble _080D3C70 - ldrh r2, [r3, 0x10] - subs r2, 0x1 - strh r2, [r3, 0x10] - movs r1, 0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - orrs r2, r0 - strh r2, [r1, 0xA] -_080D3C70: - ldr r2, [sp, 0x14] - adds r0, r2, r7 - lsls r0, 3 - adds r0, r4 - movs r3, 0x26 - ldrsh r1, [r0, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldrh r1, [r0, 0xA] - movs r0, 0x1F - ands r0, r1 - cmp r0, 0 - bne _080D3D32 - ldr r2, [sp, 0x4] - movs r3, 0x80 - lsls r3, 6 - add r6, sp, 0x10 - movs r5, 0 - ldr r1, _080D3D54 - movs r4, 0x80 - lsls r4, 5 - mov r8, r6 - ldr r0, _080D3D58 - mov r12, r0 - movs r0, 0x85 - lsls r0, 24 - mov r9, r0 -_080D3CAA: - str r5, [sp, 0x10] - mov r0, r8 - str r0, [r1] - str r2, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080D3CAA - str r5, [sp, 0x10] - str r6, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r9 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r0, sp - movs r1, 0 - strb r1, [r0] - strb r1, [r0] - mov r3, r10 - ldr r1, [r3, 0x4] - movs r4, 0 - str r4, [sp, 0x10] - ldr r0, _080D3D54 - str r6, [r0] - str r1, [r0, 0x4] - ldr r1, _080D3D58 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D3D02 - ldr r2, _080D3D5C - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080D3D02: - ldr r0, _080D3D48 - strh r4, [r0] - ldr r1, _080D3D4C - strh r4, [r1] - ldr r0, _080D3D60 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - ldr r2, _080D3D44 - ldr r3, [sp, 0x14] - adds r0, r3, r7 - lsls r0, 3 - adds r0, r2 - movs r3, 0x26 - ldrsh r1, [r0, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _080D3D64 - strh r1, [r0, 0x26] - adds r0, r7, 0 - bl move_anim_task_del -_080D3D32: - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D3D44: .4byte gTasks -_080D3D48: .4byte gUnknown_030042C0 -_080D3D4C: .4byte gUnknown_030041B4 -_080D3D50: .4byte gPlttBufferFaded -_080D3D54: .4byte 0x040000d4 -_080D3D58: .4byte 0x85000400 -_080D3D5C: .4byte REG_BG1CNT -_080D3D60: .4byte REG_BLDCNT -_080D3D64: .4byte 0x0000ffff - thumb_func_end sub_80D3B60 - - thumb_func_start sub_80D3D68 -sub_80D3D68: @ 80D3D68 - push {r4-r7,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _080D3D90 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080D3D84 - b _080D3EBC -_080D3D84: - cmp r0, 0x1 - bgt _080D3D94 - cmp r0, 0 - beq _080D3D9C - b _080D4032 - .align 2, 0 -_080D3D90: .4byte gTasks -_080D3D94: - cmp r0, 0x2 - bne _080D3D9A - b _080D3F88 -_080D3D9A: - b _080D4032 -_080D3D9C: - movs r3, 0 - movs r2, 0x10 - ldrsh r0, [r4, r2] - ldr r1, _080D3E6C - mov r12, r1 - cmp r3, r0 - bge _080D3DDA - mov r7, r12 - movs r5, 0xF0 - lsls r5, 3 - add r5, r12 - ldr r6, _080D3E70 -_080D3DB4: - lsls r2, r3, 16 - asrs r2, 16 - lsls r1, r2, 1 - adds r3, r1, r7 - adds r1, r5 - ldrh r0, [r4, 0xC] - strh r0, [r1] - ldrh r1, [r4, 0xC] - adds r0, r6, 0 - ands r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - asrs r2, 16 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r2, r0 - blt _080D3DB4 -_080D3DDA: - ldrh r3, [r4, 0x10] - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080D3E14 - ldr r5, _080D3E6C - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 - ldr r7, _080D3E70 -_080D3DF2: - asrs r2, 16 - lsls r1, r2, 1 - adds r3, r1, r5 - adds r1, r6 - ldrh r0, [r4, 0xA] - strh r0, [r1] - ldrh r1, [r4, 0xA] - adds r0, r7, 0 - ands r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _080D3DF2 -_080D3E14: - ldrh r3, [r4, 0x12] - lsls r2, r3, 16 - asrs r0, r2, 16 - cmp r0, 0x9F - bgt _080D3E4A - ldr r5, _080D3E6C - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 - ldr r7, _080D3E70 -_080D3E28: - asrs r2, 16 - lsls r1, r2, 1 - adds r3, r1, r5 - adds r1, r6 - ldrh r0, [r4, 0xC] - strh r0, [r1] - ldrh r1, [r4, 0xC] - adds r0, r7, 0 - ands r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - lsls r2, r3, 16 - asrs r0, r2, 16 - cmp r0, 0x9F - ble _080D3E28 -_080D3E4A: - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D3E74 - lsls r0, r3, 16 - asrs r0, 15 - mov r3, r12 - adds r2, r0, r3 - movs r1, 0xF0 - lsls r1, 3 - add r1, r12 - adds r0, r1 - ldrh r1, [r4, 0xA] - strh r1, [r0] - ldrh r0, [r4, 0xA] - b _080D3E8A - .align 2, 0 -_080D3E6C: .4byte gUnknown_03004DE0 -_080D3E70: .4byte 0x0000ffff -_080D3E74: - lsls r0, r3, 16 - asrs r0, 15 - mov r1, r12 - adds r2, r0, r1 - movs r1, 0xF0 - lsls r1, 3 - add r1, r12 - adds r0, r1 - ldrh r1, [r4, 0xC] - strh r1, [r0] - ldrh r0, [r4, 0xC] -_080D3E8A: - strh r0, [r2] - ldr r0, _080D3EB4 - str r0, [sp] - ldr r0, _080D3EB8 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D4032 - .align 2, 0 -_080D3EB4: .4byte REG_BLDALPHA -_080D3EB8: .4byte 0xa2600001 -_080D3EBC: - movs r2, 0xE - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _080D3ED4 - ldrh r0, [r4, 0x10] - subs r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bgt _080D3EE8 - strh r1, [r4, 0x10] - b _080D3EE2 -_080D3ED4: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6F - ble _080D3EE8 -_080D3EE2: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080D3EE8: - movs r3, 0 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bge _080D3F1C - ldr r6, _080D3F80 - ldr r5, _080D3F84 -_080D3EF6: - lsls r1, r3, 16 - asrs r1, 16 - lsls r3, r1, 1 - ldrb r2, [r5, 0x14] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 7 - adds r3, r0 - adds r3, r6 - ldrh r0, [r4, 0xC] - strh r0, [r3] - adds r1, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - asrs r1, 16 - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _080D3EF6 -_080D3F1C: - ldrh r3, [r4, 0x10] - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080D3F50 - ldr r6, _080D3F80 - ldr r5, _080D3F84 -_080D3F2E: - asrs r3, r2, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xA] - strh r0, [r2] - adds r3, 0x1 - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _080D3F2E -_080D3F50: - ldrh r3, [r4, 0x12] - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - bgt _080D4032 - ldr r6, _080D3F80 - ldr r5, _080D3F84 -_080D3F5E: - asrs r3, r1, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - ble _080D3F5E - b _080D4032 - .align 2, 0 -_080D3F80: .4byte gUnknown_03004DE0 -_080D3F84: .4byte gUnknown_03004DC0 -_080D3F88: - movs r3, 0 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bge _080D3FBC - ldr r6, _080D403C - ldr r5, _080D4040 -_080D3F96: - lsls r1, r3, 16 - asrs r1, 16 - lsls r3, r1, 1 - ldrb r2, [r5, 0x14] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 7 - adds r3, r0 - adds r3, r6 - ldrh r0, [r4, 0xC] - strh r0, [r3] - adds r1, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - asrs r1, 16 - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _080D3F96 -_080D3FBC: - ldrh r3, [r4, 0x10] - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080D3FF0 - ldr r6, _080D403C - ldr r5, _080D4040 -_080D3FCE: - asrs r3, r2, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xA] - strh r0, [r2] - adds r3, 0x1 - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _080D3FCE -_080D3FF0: - ldrh r3, [r4, 0x12] - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - bgt _080D401C - ldr r6, _080D403C - ldr r5, _080D4040 -_080D3FFE: - asrs r3, r1, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - ble _080D3FFE -_080D401C: - movs r0, 0x26 - ldrsh r1, [r4, r0] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080D4032 - bl remove_some_task - adds r0, r7, 0 - bl DestroyTask -_080D4032: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D403C: .4byte gUnknown_03004DE0 -_080D4040: .4byte gUnknown_03004DC0 - thumb_func_end sub_80D3D68 - - thumb_func_start sub_80D4044 -sub_80D4044: @ 80D4044 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r3, _080D4098 - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D409C - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - bl Random - movs r5, 0xFF - ands r5, r0 - movs r0, 0x80 - lsls r0, 1 - adds r6, r0, 0 - orrs r5, r6 - bl Random - ldr r1, _080D40A0 - ands r1, r0 - adds r0, r1, 0 - cmp r0, 0xFF - ble _080D408A - subs r0, r6, r0 - lsls r0, 16 - lsrs r1, r0, 16 -_080D408A: - strh r5, [r4, 0x30] - strh r1, [r4, 0x32] - ldr r0, _080D40A4 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D4098: .4byte 0x000003ff -_080D409C: .4byte 0xfffffc00 -_080D40A0: .4byte 0x000001ff -_080D40A4: .4byte sub_80D40A8 - thumb_func_end sub_80D4044 - - thumb_func_start sub_80D40A8 -sub_80D40A8: @ 80D40A8 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x34] - adds r3, r0, r1 - strh r3, [r2, 0x34] - ldrh r1, [r2, 0x32] - ldrh r4, [r2, 0x36] - adds r1, r4 - strh r1, [r2, 0x36] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080D40CC - lsls r0, r3, 16 - asrs r0, 24 - negs r0, r0 - b _080D40D0 -_080D40CC: - lsls r0, r3, 16 - asrs r0, 24 -_080D40D0: - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080D40EE - adds r0, r2, 0 - bl move_anim_8072740 -_080D40EE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D40A8 - - thumb_func_start sub_80D40F4 -sub_80D40F4: @ 80D40F4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080D4144 - adds r4, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r2, _080D4148 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x12] - bl sub_80D4394 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8078E70 - ldr r0, _080D414C - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D4144: .4byte gTasks -_080D4148: .4byte gSprites -_080D414C: .4byte sub_80D4150 - thumb_func_end sub_80D40F4 - - thumb_func_start sub_80D4150 -sub_80D4150: @ 80D4150 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080D4178 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x7 - bls _080D416C - b _080D438A -_080D416C: - lsls r0, 2 - ldr r1, _080D417C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D4178: .4byte gTasks -_080D417C: .4byte _080D4180 - .align 2, 0 -_080D4180: - .4byte _080D41A0 - .4byte _080D41C6 - .4byte _080D4258 - .4byte _080D428E - .4byte _080D42A2 - .4byte _080D42B0 - .4byte _080D4330 - .4byte _080D437C -_080D41A0: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 1 - movs r0, 0xE0 - str r0, [sp] - movs r0, 0x80 - lsls r0, 2 - str r0, [sp, 0x4] - movs r0, 0x20 - str r0, [sp, 0x8] - adds r0, r4, 0 - adds r2, r3, 0 - bl sub_8079C08 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080D41C6: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D4222 - movs r0, 0 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D4210 - ldr r2, _080D420C - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strh r1, [r0, 0x24] - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x1 - strh r1, [r0, 0x22] - b _080D4222 - .align 2, 0 -_080D420C: .4byte gSprites -_080D4210: - ldr r2, _080D4250 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _080D4254 - strh r1, [r0, 0x24] -_080D4222: - adds r0, r4, 0 - bl sub_8079C74 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080D4232 - b _080D438A -_080D4232: - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8079A64 - ldr r2, _080D4250 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x24] - strh r5, [r4, 0xE] - b _080D436C - .align 2, 0 -_080D4250: .4byte gSprites -_080D4254: .4byte 0x0000fffd -_080D4258: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bgt _080D4268 - b _080D438A -_080D4268: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 2 - movs r0, 0xC0 - lsls r0, 1 - str r0, [sp] - movs r0, 0xE0 - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r2, 0xE0 - bl sub_8079C08 - movs r0, 0 - strh r0, [r4, 0xE] - b _080D436E -_080D428E: - adds r0, r4, 0 - bl sub_8079C74 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080D438A - strh r0, [r4, 0xE] - strh r0, [r4, 0x10] - b _080D436E -_080D42A2: - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80D4418 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080D42B0: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D438A - movs r0, 0 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D42E8 - ldr r2, _080D42E4 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - adds r1, 0x2 - b _080D42FA - .align 2, 0 -_080D42E4: .4byte gSprites -_080D42E8: - ldr r2, _080D432C - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x2 -_080D42FA: - strh r1, [r0, 0x26] - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0xA - bne _080D438A - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r2, 0xC0 - lsls r2, 1 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r3, 0xE0 - bl sub_8079C08 - movs r0, 0 - strh r0, [r4, 0xE] - strh r0, [r4, 0x10] - b _080D436E - .align 2, 0 -_080D432C: .4byte gSprites -_080D4330: - ldr r6, _080D4378 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] - adds r0, r4, 0 - bl sub_8079C74 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080D438A - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F40 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r4, 0x12] - strh r1, [r0, 0x22] -_080D436C: - strh r5, [r4, 0x10] -_080D436E: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D438A - .align 2, 0 -_080D4378: .4byte gSprites -_080D437C: - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D438A - adds r0, r2, 0 - bl move_anim_task_del -_080D438A: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80D4150 - - thumb_func_start sub_80D4394 -sub_80D4394: @ 80D4394 - push {r4,r5,lr} - ldr r4, _080D43B8 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D43C8 - ldr r1, _080D43BC - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080D43C0 - b _080D43D8 - .align 2, 0 -_080D43B8: .4byte gUnknown_0202F7C8 -_080D43BC: .4byte gUnknown_02024A6A -_080D43C0: .4byte gPlayerParty -_080D43C4: - adds r0, r2, 0 - b _080D440A -_080D43C8: - ldr r1, _080D4410 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080D4414 -_080D43D8: - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r3, r0, 16 - lsrs r4, 18 - movs r2, 0 -_080D43F6: - adds r1, r2, 0x1 - adds r0, r4, 0 - muls r0, r1 - cmp r3, r0 - blt _080D43C4 - lsls r0, r1, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _080D43F6 - movs r0, 0x3 -_080D440A: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080D4410: .4byte gUnknown_02024A6A -_080D4414: .4byte gEnemyParty - thumb_func_end sub_80D4394 - - thumb_func_start sub_80D4418 -sub_80D4418: @ 80D4418 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - ldr r4, _080D4520 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0xAC - ldrb r0, [r4] - bl sub_8079E90 - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - ldrh r1, [r7, 0xA] - movs r0, 0x4 - subs r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r0, 0 - bgt _080D4468 - movs r1, 0x1 -_080D4468: - movs r0, 0 - str r0, [sp, 0x4] - lsls r0, r1, 16 - mov r10, r8 - mov r9, r6 - mov r1, r10 - lsls r1, 4 - str r1, [sp, 0xC] - mov r1, r9 - lsls r1, 4 - str r1, [sp, 0x10] - asrs r0, 16 - mov r8, r0 -_080D4482: - ldr r0, _080D4524 - mov r1, r10 - mov r2, r9 - ldr r3, [sp, 0x8] - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - lsls r6, r5, 16 - cmp r2, 0x40 - beq _080D44EA - ldr r1, _080D4528 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r1 - mov r0, sp - ldrh r0, [r0, 0x4] - strh r0, [r5, 0x30] - mov r1, sp - ldrh r1, [r1, 0xC] - strh r1, [r5, 0x32] - mov r0, sp - ldrh r0, [r0, 0x10] - strh r0, [r5, 0x34] - asrs r4, r6, 16 - adds r0, r4, 0 - movs r1, 0x40 - bl Cos - strh r0, [r5, 0x36] - adds r0, r4, 0 - movs r1, 0x40 - bl Sin - strh r0, [r5, 0x38] - mov r1, sp - ldrh r1, [r1] - strh r1, [r5, 0x3A] - movs r0, 0x2 - strh r0, [r5, 0x3C] - ldrh r1, [r7, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D44E4 - adds r0, r5, 0 - bl sub_80D452C -_080D44E4: - ldrh r0, [r7, 0xC] - adds r0, 0x1 - strh r0, [r7, 0xC] -_080D44EA: - mov r1, r8 - lsls r0, r1, 1 - asrs r1, r6, 16 - adds r1, r0 - lsls r1, 16 - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r5, r0, 16 - ldr r1, [sp, 0x4] - lsls r0, r1, 16 - asrs r0, 16 - add r0, r8 - lsls r0, 16 - lsrs r1, r0, 16 - str r1, [sp, 0x4] - asrs r0, 16 - cmp r0, 0x13 - ble _080D4482 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D4520: .4byte gUnknown_0202F7C8 -_080D4524: .4byte gSpriteTemplate_83D9378 -_080D4528: .4byte gSprites - thumb_func_end sub_80D4418 - - thumb_func_start sub_80D452C -sub_80D452C: @ 80D452C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D453E - cmp r0, 0x1 - beq _080D4574 - b _080D45CE -_080D453E: - movs r2, 0x30 - ldrsh r0, [r4, r2] - movs r1, 0x6 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - ldrh r0, [r4, 0x36] - adds r1, r0 - strh r1, [r4, 0x36] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - ldrh r2, [r4, 0x38] - adds r1, r2 - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_080D4574: - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x38] - ldrh r2, [r4, 0x34] - adds r1, r2 - strh r1, [r4, 0x34] - lsls r0, 16 - asrs r0, 20 - strh r0, [r4, 0x20] - lsls r1, 16 - asrs r2, r1, 20 - strh r2, [r4, 0x22] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bhi _080D45AA - adds r1, r2, 0 - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - blt _080D45AA - cmp r1, 0x78 - ble _080D45CE -_080D45AA: - ldr r3, _080D45D4 - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080D45CE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D45D4: .4byte gTasks - thumb_func_end sub_80D452C - - thumb_func_start sub_80D45D8 -sub_80D45D8: @ 80D45D8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D4608 - adds r4, r1, r0 - bl sub_80D4394 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - ldr r0, _080D460C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D4610 - movs r0, 0x88 - strh r0, [r4, 0x10] - movs r0, 0x28 - b _080D4616 - .align 2, 0 -_080D4608: .4byte gTasks -_080D460C: .4byte gUnknown_0202F7C8 -_080D4610: - movs r0, 0x10 - strh r0, [r4, 0x10] - movs r0, 0x50 -_080D4616: - strh r0, [r4, 0x14] - movs r0, 0x62 - strh r0, [r4, 0x12] - ldrh r0, [r4, 0x10] - adds r0, 0x31 - strh r0, [r4, 0x16] - movs r0, 0xA - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - adds r0, 0x5 - strh r0, [r4, 0x20] - ldr r0, _080D4638 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D4638: .4byte sub_80D463C - thumb_func_end sub_80D45D8 - - thumb_func_start sub_80D463C -sub_80D463C: @ 80D463C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r7, _080D4660 - adds r4, r0, r7 - movs r0, 0x8 - ldrsh r2, [r4, r0] - cmp r2, 0 - beq _080D4664 - cmp r2, 0x1 - beq _080D4714 - b _080D4722 - .align 2, 0 -_080D4660: .4byte gTasks -_080D4664: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080D467A - strh r2, [r4, 0xC] - adds r0, r4, 0 - bl sub_80D472C -_080D467A: - movs r1, 0x1C - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D46F4 - movs r2, 0x22 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080D46F4 - ldr r5, _080D4708 - movs r1, 0x1 - mov r8, r1 - mov r2, r8 - strh r2, [r5] - strh r0, [r5, 0x2] - movs r0, 0xC - strh r0, [r5, 0x4] - ldr r6, _080D470C - adds r0, r6, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080D46C4 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r7 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 - ldr r1, _080D4710 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080D46C4: - movs r0, 0x3 - strh r0, [r5] - adds r0, r6, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080D46F0 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r7 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 - ldr r1, _080D4710 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080D46F0: - mov r0, r8 - strh r0, [r4, 0x22] -_080D46F4: - movs r2, 0x1E - ldrsh r1, [r4, r2] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _080D4722 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D4722 - .align 2, 0 -_080D4708: .4byte gUnknown_03004B00 -_080D470C: .4byte sub_80E1864 -_080D4710: .4byte gUnknown_0202F7B2 -_080D4714: - movs r2, 0x1A - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080D4722 - adds r0, r1, 0 - bl move_anim_task_del -_080D4722: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D463C - - thumb_func_start sub_80D472C -sub_80D472C: @ 80D472C - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r1, _080D47B8 - movs r2, 0x18 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - adds r0, 0x3 - asrs r0, 4 - ldrh r2, [r4, 0x14] - adds r0, r2 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080D47BC - movs r2, 0x16 - ldrsh r1, [r4, r2] - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080D4786 - ldr r3, _080D47C0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r1, r0, r1 - ldr r2, _080D47C4 - str r2, [r1] - adds r0, r3 - strh r5, [r0, 0x38] - strh r6, [r0, 0x3A] - movs r1, 0x9 - strh r1, [r0, 0x3C] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] -_080D4786: - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - ldrh r0, [r4, 0x18] - adds r0, 0x27 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x18] - movs r0, 0x16 - ldrsh r1, [r4, r0] - ldr r0, _080D47C8 - muls r0, r1 - ldr r1, _080D47CC - adds r0, r1 - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl __modsi3 - ldrh r1, [r4, 0x10] - adds r1, r0 - strh r1, [r4, 0x16] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D47B8: .4byte gSineTable -_080D47BC: .4byte gSpriteTemplate_83D9378 -_080D47C0: .4byte gSprites -_080D47C4: .4byte sub_80D47D0 -_080D47C8: .4byte 0x41c64e6d -_080D47CC: .4byte 0x00003039 - thumb_func_end sub_80D472C - - thumb_func_start sub_80D47D0 -sub_80D47D0: @ 80D47D0 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D4866 - ldrh r0, [r5, 0x22] - adds r0, 0x8 - strh r0, [r5, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x38 - ldrsh r1, [r5, r2] - cmp r0, r1 - blt _080D4866 - ldr r2, _080D486C - movs r3, 0x3A - ldrsh r1, [r5, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x1C] - ldr r0, _080D4870 - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r3, 0x22 - ldrsh r2, [r5, r3] - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x30] - cmp r0, 0x40 - beq _080D4860 - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080D4874 - adds r0, r4 - movs r1, 0x3 - bl StartSpriteAffineAnim - movs r2, 0x30 - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x3A] - strh r1, [r0, 0x3A] - movs r3, 0x30 - ldrsh r1, [r5, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x3C] - strh r1, [r0, 0x3C] - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080D4878 - str r1, [r0] -_080D4860: - adds r0, r5, 0 - bl DestroySprite -_080D4866: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D486C: .4byte gTasks -_080D4870: .4byte gBattleAnimSpriteTemplate_83DB4D8 -_080D4874: .4byte gSprites -_080D4878: .4byte sub_80D487C - thumb_func_end sub_80D47D0 - - thumb_func_start sub_80D487C -sub_80D487C: @ 80D487C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D48E8 - movs r0, 0 - strh r0, [r4, 0x30] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _080D48E8 - ldr r3, _080D48F0 - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080D48E8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D48F0: .4byte gTasks - thumb_func_end sub_80D487C - - thumb_func_start sub_80D48F4 -sub_80D48F4: @ 80D48F4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D4978 - adds r5, r1, r0 - ldr r4, _080D497C - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - strh r0, [r5, 0xE] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x10] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080D4938 - movs r1, 0x1 -_080D4938: - strh r1, [r5, 0x16] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D494C - movs r1, 0x16 - ldrsh r0, [r5, r1] - negs r0, r0 - strh r0, [r5, 0x16] -_080D494C: - movs r2, 0x16 - ldrsh r0, [r5, r2] - lsls r0, 3 - ldrh r1, [r5, 0xE] - adds r0, r1 - strh r0, [r5, 0x12] - movs r2, 0x16 - ldrsh r1, [r5, r2] - lsls r1, 3 - ldrh r0, [r5, 0x10] - subs r0, r1 - strh r0, [r5, 0x14] - ldr r0, _080D4980 - strh r0, [r5, 0x1A] - strh r6, [r5, 0xA] - strh r6, [r5, 0x8] - ldr r0, _080D4984 - str r0, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D4978: .4byte gTasks -_080D497C: .4byte gUnknown_0202F7C8 -_080D4980: .4byte 0x0000ffe0 -_080D4984: .4byte sub_80D4988 - thumb_func_end sub_80D48F4 - - thumb_func_start sub_80D4988 -sub_80D4988: @ 80D4988 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080D49AC - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bls _080D49A2 - b _080D4AC2 -_080D49A2: - lsls r0, 2 - ldr r1, _080D49B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D49AC: .4byte gTasks -_080D49B0: .4byte _080D49B4 - .align 2, 0 -_080D49B4: - .4byte _080D49D0 - .4byte _080D49E0 - .4byte _080D49FA - .4byte _080D4A3C - .4byte _080D4A5E - .4byte _080D4A8C - .4byte _080D4AB2 -_080D49D0: - adds r0, r4, 0 - bl sub_80D4AD0 - movs r1, 0x1C - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D4AC8 - b _080D4ABA -_080D49E0: - adds r0, r4, 0 - bl sub_80D4AD0 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080D4AC8 - movs r0, 0 - strh r0, [r4, 0xA] - b _080D4ABA -_080D49FA: - adds r0, r4, 0 - bl sub_80D4AD0 - movs r1, 0x16 - ldrsh r0, [r4, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - ldrh r0, [r4, 0x12] - adds r1, r0 - movs r2, 0 - strh r1, [r4, 0x12] - adds r1, 0x10 - lsls r1, 16 - movs r0, 0x88 - lsls r0, 17 - cmp r1, r0 - bls _080D4AC8 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080D4A38 - movs r0, 0x1 - strh r0, [r4, 0x22] - movs r0, 0x6 - strh r0, [r4, 0x8] - strh r2, [r4, 0xA] - b _080D4AC8 -_080D4A38: - strh r2, [r4, 0xA] - b _080D4ABA -_080D4A3C: - adds r0, r4, 0 - bl sub_80D4AD0 - movs r0, 0x16 - ldrsh r1, [r4, r0] - lsls r1, 1 - ldrh r0, [r4, 0x14] - subs r0, r1 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080D4AC8 - b _080D4ABA -_080D4A5E: - adds r0, r4, 0 - bl sub_80D4AD0 - movs r1, 0x16 - ldrsh r0, [r4, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - ldrh r0, [r4, 0x12] - subs r0, r1 - strh r0, [r4, 0x12] - adds r0, 0x10 - lsls r0, 16 - movs r1, 0x88 - lsls r1, 17 - cmp r0, r1 - bls _080D4AC8 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - movs r0, 0 - strh r0, [r4, 0xA] - b _080D4ABA -_080D4A8C: - adds r0, r4, 0 - bl sub_80D4AD0 - movs r0, 0x16 - ldrsh r1, [r4, r0] - lsls r1, 1 - ldrh r0, [r4, 0x14] - subs r0, r1 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080D4AC8 - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080D4AC8 -_080D4AB2: - movs r1, 0x18 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D4AC8 -_080D4ABA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D4AC8 -_080D4AC2: - adds r0, r2, 0 - bl move_anim_task_del -_080D4AC8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D4988 - - thumb_func_start sub_80D4AD0 -sub_80D4AD0: @ 80D4AD0 - push {r4-r6,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0xC] - adds r0, 0x1 - strh r0, [r6, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D4B2A - movs r0, 0 - strh r0, [r6, 0xC] - ldr r0, _080D4B30 - movs r2, 0xE - ldrsh r1, [r6, r2] - movs r3, 0x10 - ldrsh r2, [r6, r3] - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080D4B2A - ldr r5, _080D4B34 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r0, r4, r5 - movs r1, 0x10 - strh r1, [r0, 0x2E] - ldrh r1, [r6, 0x12] - strh r1, [r0, 0x32] - ldrh r1, [r6, 0x14] - strh r1, [r0, 0x36] - ldrh r1, [r6, 0x1A] - strh r1, [r0, 0x38] - bl sub_80786EC - adds r5, 0x1C - adds r4, r5 - ldr r0, _080D4B38 - str r0, [r4] - ldrh r0, [r6, 0x18] - adds r0, 0x1 - strh r0, [r6, 0x18] -_080D4B2A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D4B30: .4byte gSpriteTemplate_83D9378 -_080D4B34: .4byte gSprites -_080D4B38: .4byte sub_80D4B3C - thumb_func_end sub_80D4AD0 - - thumb_func_start sub_80D4B3C -sub_80D4B3C: @ 80D4B3C - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080D4B96 - ldrh r0, [r6, 0x24] - ldrh r1, [r6, 0x20] - adds r0, r1 - strh r0, [r6, 0x20] - ldrh r0, [r6, 0x26] - ldrh r1, [r6, 0x22] - adds r0, r1 - strh r0, [r6, 0x22] - movs r0, 0x6 - strh r0, [r6, 0x2E] - bl Random - movs r4, 0x1F - adds r1, r4, 0 - ands r1, r0 - ldr r5, _080D4B9C - adds r1, r5 - ldrh r0, [r6, 0x20] - adds r1, r0 - strh r1, [r6, 0x32] - bl Random - ands r4, r0 - adds r4, r5 - ldrh r1, [r6, 0x22] - adds r4, r1 - strh r4, [r6, 0x36] - bl Random - movs r1, 0x7 - ands r1, r0 - mvns r1, r1 - strh r1, [r6, 0x38] - adds r0, r6, 0 - bl sub_80786EC - ldr r0, _080D4BA0 - str r0, [r6, 0x1C] -_080D4B96: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D4B9C: .4byte 0x0000fff0 -_080D4BA0: .4byte sub_80D4BA4 - thumb_func_end sub_80D4B3C - - thumb_func_start sub_80D4BA4 -sub_80D4BA4: @ 80D4BA4 - push {r4-r6,lr} - adds r5, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080D4BE0 - movs r4, 0 - ldr r6, _080D4BE8 -_080D4BB6: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r6 - ldr r1, [r2] - ldr r0, _080D4BEC - cmp r1, r0 - bne _080D4BD6 - movs r0, 0x1 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0x18] - subs r0, 0x1 - strh r0, [r2, 0x18] - adds r0, r5, 0 - bl DestroySprite -_080D4BD6: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _080D4BB6 -_080D4BE0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D4BE8: .4byte gTasks -_080D4BEC: .4byte sub_80D4988 - thumb_func_end sub_80D4BA4 - - thumb_func_start sub_80D4BF0 -sub_80D4BF0: @ 80D4BF0 - ldr r2, _080D4C10 - ldrh r1, [r2] - strh r1, [r0, 0x20] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x22] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x2E] - ldrh r1, [r2, 0x6] - strh r1, [r0, 0x30] - ldrh r1, [r2, 0x8] - strh r1, [r0, 0x32] - ldrh r1, [r2, 0xA] - strh r1, [r0, 0x34] - ldr r1, _080D4C14 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080D4C10: .4byte gUnknown_03004B00 -_080D4C14: .4byte sub_80D4C18 - thumb_func_end sub_80D4BF0 - - thumb_func_start sub_80D4C18 -sub_80D4C18: @ 80D4C18 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x2E] - subs r0, r1 - strh r0, [r4, 0x36] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x38] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - cmp r0, 0 - bne _080D4C5C - adds r0, r4, 0 - bl move_anim_8072740 -_080D4C5C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D4C18 - - thumb_func_start sub_80D4C64 -sub_80D4C64: @ 80D4C64 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r1, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r1, r2 - strh r1, [r4, 0x36] - lsls r0, 16 - asrs r0, 23 - strh r0, [r4, 0x24] - lsls r1, 16 - asrs r1, 23 - strh r1, [r4, 0x26] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080D4C9C - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080D4C9C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D4C64 - - thumb_func_start sub_80D4CA4 -sub_80D4CA4: @ 80D4CA4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r5, _080D4CE0 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x30] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldr r1, _080D4CE4 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldr r0, _080D4CE8 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D4CE0: .4byte gUnknown_0202F7C9 -_080D4CE4: .4byte gUnknown_03004B00 -_080D4CE8: .4byte sub_80D4CEC - thumb_func_end sub_80D4CA4 - - thumb_func_start sub_80D4CEC -sub_80D4CEC: @ 80D4CEC - push {r4-r6,lr} - adds r4, r0, 0 - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x20 - ldrsh r0, [r4, r2] - subs r6, r1, r0 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r2, 0x22 - ldrsh r0, [r4, r2] - subs r5, r1, r0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - muls r0, r6 - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - muls r0, r5 - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080D4D44 - movs r0, 0 - strh r0, [r4, 0x38] - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_80D4D64 -_080D4D44: - movs r0, 0x34 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080D4D56 - adds r0, r4, 0 - bl move_anim_8072740 -_080D4D56: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80D4CEC - - thumb_func_start sub_80D4D64 -sub_80D4D64: @ 80D4D64 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - adds r4, r1, 0 - adds r5, r2, 0 - movs r2, 0x2E - ldrsh r1, [r0, r2] - lsrs r2, r1, 31 - adds r1, r2 - lsls r1, 15 - lsrs r1, 16 - str r1, [sp] - ldrh r1, [r0, 0x24] - ldrh r3, [r0, 0x20] - adds r1, r3 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - adds r0, r5, r0 - subs r0, 0x5 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - bl Random - negs r4, r4 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - adds r4, r0 - subs r4, 0x5 - lsls r4, 16 - lsrs r7, r4, 16 - movs r6, 0 - mov r0, r8 - lsls r0, 16 - mov r8, r0 - mov r1, r10 - lsls r1, 16 - str r1, [sp, 0xC] - ldr r2, [sp] - lsls r2, 16 - str r2, [sp, 0x10] - asrs r1, 16 - lsls r0, r7, 16 - asrs r5, r0, 16 - str r0, [sp, 0x14] - negs r3, r5 - str r3, [sp, 0x4] - asrs r0, r2, 16 - adds r1, r0 - lsls r1, 16 - mov r10, r1 -_080D4DF2: - ldr r0, _080D4E34 - mov r2, r8 - asrs r1, r2, 16 - mov r3, r10 - asrs r2, r3, 16 - movs r3, 0x82 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080D4E38 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r1 - movs r0, 0x14 - strh r0, [r4, 0x2E] - mov r0, r9 - strh r0, [r4, 0x30] - ldr r0, _080D4E3C - ldrb r0, [r0] - bl sub_8079E90 - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - cmp r5, 0 - bge _080D4E40 - mov r1, sp - ldrh r1, [r1, 0x4] - strh r1, [r4, 0x32] - b _080D4E42 - .align 2, 0 -_080D4E34: .4byte gSpriteTemplate_83D9420 -_080D4E38: .4byte gSprites -_080D4E3C: .4byte gUnknown_0202F7C8 -_080D4E40: - strh r7, [r4, 0x32] -_080D4E42: - lsls r0, r6, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r6, r0, 16 - cmp r0, 0 - ble _080D4DF2 - movs r6, 0 - ldr r3, [sp, 0xC] - asrs r1, r3, 16 - ldr r0, [sp, 0x14] - asrs r5, r0, 16 - negs r2, r5 - str r2, [sp, 0x8] - ldr r3, [sp, 0x10] - asrs r0, r3, 16 - subs r1, r0 - lsls r1, 16 - mov r10, r1 -_080D4E68: - ldr r0, _080D4EAC - mov r2, r8 - asrs r1, r2, 16 - mov r3, r10 - asrs r2, r3, 16 - movs r3, 0x82 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080D4EB0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r1 - movs r0, 0x14 - strh r0, [r4, 0x2E] - mov r0, r9 - strh r0, [r4, 0x30] - ldr r0, _080D4EB4 - ldrb r0, [r0] - bl sub_8079E90 - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - cmp r5, 0 - ble _080D4EB8 - mov r1, sp - ldrh r1, [r1, 0x8] - strh r1, [r4, 0x32] - b _080D4EBA - .align 2, 0 -_080D4EAC: .4byte gSpriteTemplate_83D9420 -_080D4EB0: .4byte gSprites -_080D4EB4: .4byte gUnknown_0202F7C8 -_080D4EB8: - strh r7, [r4, 0x32] -_080D4EBA: - lsls r0, r6, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r6, r0, 16 - cmp r0, 0 - ble _080D4E68 - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D4D64 - - thumb_func_start sub_80D4ED8 -sub_80D4ED8: @ 80D4ED8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D4F0C - ldrh r0, [r0] - strh r0, [r4, 0x2E] - movs r0, 0x3C - strh r0, [r4, 0x30] - movs r0, 0x9 - strh r0, [r4, 0x32] - movs r0, 0x1E - strh r0, [r4, 0x34] - movs r0, 0xFE - lsls r0, 8 - strh r0, [r4, 0x36] - ldr r1, _080D4F10 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r1, _080D4F14 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D4F0C: .4byte gUnknown_03004B00 -_080D4F10: .4byte move_anim_8072740 -_080D4F14: .4byte sub_8078174 - thumb_func_end sub_80D4ED8 - - thumb_func_start sub_80D4F18 -sub_80D4F18: @ 80D4F18 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D4F50 - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_807867C - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x32] - ldr r0, _080D4F54 - str r0, [r4, 0x1C] - ldr r1, _080D4F58 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D4F50: .4byte gUnknown_03004B00 -_080D4F54: .4byte sub_8078394 -_080D4F58: .4byte move_anim_8072740 - thumb_func_end sub_80D4F18 - - thumb_func_start sub_80D4F5C -sub_80D4F5C: @ 80D4F5C - push {r4,lr} - adds r4, r0, 0 - bl sub_8078650 - ldr r0, _080D4F90 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D4F98 - ldr r2, _080D4F94 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r2, 0x8] - negs r0, r0 - strh r0, [r4, 0x32] - adds r1, r2, 0 - b _080D4FAE - .align 2, 0 -_080D4F90: .4byte gUnknown_0202F7C8 -_080D4F94: .4byte gUnknown_03004B00 -_080D4F98: - ldr r1, _080D4FC4 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x32] -_080D4FAE: - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x34] - ldr r0, _080D4FC8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D4FC4: .4byte gUnknown_03004B00 -_080D4FC8: .4byte sub_80D5038 - thumb_func_end sub_80D4F5C - - thumb_func_start sub_80D4FCC -sub_80D4FCC: @ 80D4FCC - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D4FF8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D5000 - ldr r2, _080D4FFC - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r2, 0x8] - strh r0, [r4, 0x32] - adds r1, r2, 0 - b _080D5018 - .align 2, 0 -_080D4FF8: .4byte gUnknown_0202F7C8 -_080D4FFC: .4byte gUnknown_03004B00 -_080D5000: - ldr r1, _080D5030 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x8] - negs r0, r0 - strh r0, [r4, 0x32] -_080D5018: - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x34] - ldr r0, _080D5034 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D5030: .4byte gUnknown_03004B00 -_080D5034: .4byte sub_80D5038 - thumb_func_end sub_80D4FCC - - thumb_func_start sub_80D5038 -sub_80D5038: @ 80D5038 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x36 - ldrsh r1, [r2, r3] - cmp r0, r1 - bge _080D505E - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x34] - ldrh r3, [r2, 0x26] - adds r0, r3 - strh r0, [r2, 0x26] -_080D505E: - movs r0, 0x2E - ldrsh r1, [r2, r0] - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r1, r0 - bne _080D5070 - adds r0, r2, 0 - bl move_anim_8074EE0 -_080D5070: - pop {r0} - bx r0 - thumb_func_end sub_80D5038 - - thumb_func_start sub_80D5074 -sub_80D5074: @ 80D5074 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078650 - ldr r0, _080D5098 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D50A0 - ldr r0, _080D509C - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - b _080D50B2 - .align 2, 0 -_080D5098: .4byte gUnknown_0202F7C8 -_080D509C: .4byte gUnknown_03004B00 -_080D50A0: - ldr r0, _080D50E0 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - adds r2, r4, 0 - adds r2, 0x43 - movs r1, 0x8 - strb r1, [r2] -_080D50B2: - adds r2, r0, 0 - ldrh r0, [r2, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x22] - ldrh r0, [r2, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r2, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r2, 0x8] - strh r0, [r4, 0x32] - ldrh r0, [r2, 0xA] - strh r0, [r4, 0x34] - ldrh r0, [r2, 0xC] - strh r0, [r4, 0x36] - strh r1, [r4, 0x38] - ldr r0, _080D50E4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D50E0: .4byte gUnknown_03004B00 -_080D50E4: .4byte sub_80D50E8 - thumb_func_end sub_80D5074 - - thumb_func_start sub_80D50E8 -sub_80D50E8: @ 80D50E8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D5170 - movs r2, 0x38 - ldrsh r1, [r4, r2] - ldr r0, _080D5154 - cmp r1, r0 - ble _080D5106 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1 - strb r0, [r1] -_080D5106: - movs r1, 0x2E - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 24 - ldrh r2, [r4, 0x30] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 24 - ldrh r2, [r4, 0x30] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x38] - adds r0, r2 - strh r0, [r4, 0x38] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080D515C - ldr r2, _080D5158 - b _080D5164 - .align 2, 0 -_080D5154: .4byte 0x00002710 -_080D5158: .4byte 0xffffff00 -_080D515C: - cmp r0, 0 - bge _080D5168 - movs r2, 0x80 - lsls r2, 1 -_080D5164: - adds r0, r1, r2 - strh r0, [r4, 0x2E] -_080D5168: - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - b _080D5176 -_080D5170: - adds r0, r4, 0 - bl move_anim_8074EE0 -_080D5176: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D50E8 - - thumb_func_start sub_80D517C -sub_80D517C: @ 80D517C - push {lr} - movs r1, 0 - strh r1, [r0, 0x20] - strh r1, [r0, 0x22] - movs r1, 0x3C - strh r1, [r0, 0x2E] - movs r1, 0x8C - strh r1, [r0, 0x32] - movs r1, 0x50 - strh r1, [r0, 0x36] - ldr r1, _080D51A0 - str r1, [r0, 0x1C] - ldr r1, _080D51A4 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080D51A0: .4byte sub_8078B34 -_080D51A4: .4byte move_anim_8072740 - thumb_func_end sub_80D517C - - thumb_func_start sub_80D51A8 -sub_80D51A8: @ 80D51A8 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r5, _080D5200 - ldrb r0, [r5] - bl battle_side_get_owner - adds r4, r0, 0 - ldr r0, _080D5204 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080D51EE - movs r0, 0x2 - bl battle_get_side_with_given_state - ldrb r1, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - beq _080D51E6 - movs r0, 0x3 - bl battle_get_side_with_given_state - ldrb r1, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _080D51EE -_080D51E6: - ldr r1, _080D5208 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080D51EE: - ldr r1, _080D520C - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D5200: .4byte gUnknown_0202F7C8 -_080D5204: .4byte gUnknown_0202F7C9 -_080D5208: .4byte gUnknown_03004B00 -_080D520C: .4byte sub_8079534 - thumb_func_end sub_80D51A8 - - thumb_func_start sub_80D5210 -sub_80D5210: @ 80D5210 - ldr r2, _080D5224 - ldrh r1, [r2] - negs r1, r1 - strh r1, [r2] - ldrh r1, [r2, 0x4] - negs r1, r1 - strh r1, [r2, 0x4] - ldr r1, _080D5228 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080D5224: .4byte gUnknown_03004B00 -_080D5228: .4byte sub_8079534 - thumb_func_end sub_80D5210 - - thumb_func_start sub_80D522C -sub_80D522C: @ 80D522C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080D524C - ldrh r0, [r0, 0x4] - movs r1, 0 - strh r0, [r4, 0x3C] - strh r1, [r4, 0x2E] - ldr r0, _080D5250 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D524C: .4byte gUnknown_03004B00 -_080D5250: .4byte sub_80D5254 - thumb_func_end sub_80D522C - - thumb_func_start sub_80D5254 -sub_80D5254: @ 80D5254 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_80D5348 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x12 - bne _080D529E - movs r0, 0x19 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080D52A4 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080D52A8 - str r0, [r5, 0x1C] -_080D529E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D52A4: .4byte gUnknown_0202F7C9 -_080D52A8: .4byte sub_80D52AC - thumb_func_end sub_80D5254 - - thumb_func_start sub_80D52AC -sub_80D52AC: @ 80D52AC - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080D52F4 - movs r4, 0 - strh r4, [r6, 0x2E] - ldr r5, _080D52EC - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x22] - strh r4, [r6, 0x26] - strh r4, [r6, 0x24] - ldr r1, _080D52F0 - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - b _080D531E - .align 2, 0 -_080D52EC: .4byte gUnknown_0202F7C9 -_080D52F0: .4byte sub_80D5324 -_080D52F4: - movs r1, 0x3C - ldrsh r0, [r6, r1] - movs r1, 0x1C - bl Sin - ldrh r1, [r6, 0x24] - adds r0, r1 - strh r0, [r6, 0x24] - movs r1, 0x3C - ldrsh r0, [r6, r1] - movs r1, 0x1C - bl Cos - ldrh r1, [r6, 0x26] - adds r0, r1 - strh r0, [r6, 0x26] - ldrh r0, [r6, 0x3C] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r6, 0x3C] -_080D531E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80D52AC - - thumb_func_start sub_80D5324 -sub_80D5324: @ 80D5324 - push {r4,lr} - adds r4, r0, 0 - bl sub_80D5348 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _080D5340 - adds r0, r4, 0 - bl move_anim_8072740 -_080D5340: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D5324 - - thumb_func_start sub_80D5348 -sub_80D5348: @ 80D5348 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x1C - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x1C - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D5348 - - thumb_func_start sub_80D5374 -sub_80D5374: @ 80D5374 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080D53A8 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x32] - ldr r1, _080D53AC - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080D53B0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D53A8: .4byte gUnknown_03004B00 -_080D53AC: .4byte move_anim_8072740 -_080D53B0: .4byte sub_8078364 - thumb_func_end sub_80D5374 - - thumb_func_start sub_80D53B4 -sub_80D53B4: @ 80D53B4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r1, _080D53E8 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x2E] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080D53EC - str r0, [r4, 0x1C] - ldr r1, _080D53F0 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D53E8: .4byte gUnknown_03004B00 -_080D53EC: .4byte sub_80782D8 -_080D53F0: .4byte sub_80D53F4 - thumb_func_end sub_80D53B4 - - thumb_func_start sub_80D53F4 -sub_80D53F4: @ 80D53F4 - push {lr} - adds r3, r0, 0 - adds r3, 0x3E - ldrb r2, [r3] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r3] - ldrh r1, [r0, 0x30] - movs r2, 0 - strh r1, [r0, 0x2E] - strh r2, [r0, 0x30] - ldr r1, _080D5418 - str r1, [r0, 0x1C] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080D5418: .4byte sub_80D541C - thumb_func_end sub_80D53F4 - - thumb_func_start sub_80D541C -sub_80D541C: @ 80D541C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0xA - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - adds r0, 0xD0 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080D5468 - adds r0, r4, 0 - bl move_anim_8072740 -_080D5468: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D541C - - thumb_func_start sub_80D5470 -sub_80D5470: @ 80D5470 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080D54D0 - adds r4, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x26] - strh r5, [r4, 0x8] - strh r5, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - ldr r2, _080D54D4 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x10] - ldr r0, _080D54D8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x12] - strh r5, [r4, 0x14] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8078E70 - ldr r0, _080D54DC - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D54D0: .4byte gTasks -_080D54D4: .4byte gSprites -_080D54D8: .4byte gUnknown_0202F7C8 -_080D54DC: .4byte sub_80D54E0 - thumb_func_end sub_80D5470 - - thumb_func_start sub_80D54E0 -sub_80D54E0: @ 80D54E0 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080D5508 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bls _080D54FC - b _080D57BA -_080D54FC: - lsls r0, 2 - ldr r1, _080D550C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D5508: .4byte gTasks -_080D550C: .4byte _080D5510 - .align 2, 0 -_080D5510: - .4byte _080D552C - .4byte _080D5552 - .4byte _080D5604 - .4byte _080D5664 - .4byte _080D5682 - .4byte _080D5758 - .4byte _080D57AC -_080D552C: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 1 - movs r0, 0xE0 - str r0, [sp] - movs r0, 0x80 - lsls r0, 2 - str r0, [sp, 0x4] - movs r0, 0x20 - str r0, [sp, 0x8] - adds r0, r4, 0 - adds r2, r3, 0 - bl sub_8079C08 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080D5552: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D559A - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D5588 - ldr r2, _080D5584 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - b _080D5598 - .align 2, 0 -_080D5584: .4byte gSprites -_080D5588: - ldr r2, _080D55FC - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _080D5600 -_080D5598: - strh r1, [r0, 0x24] -_080D559A: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D55C8 - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080D55C8 - movs r0, 0 - strh r0, [r4, 0xE] - ldr r2, _080D55FC - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x1 - strh r1, [r0, 0x22] -_080D55C8: - adds r0, r4, 0 - bl sub_8079C74 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080D55D8 - b _080D57BA -_080D55D8: - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8079A64 - ldr r2, _080D55FC - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x24] - strh r5, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - b _080D57A0 - .align 2, 0 -_080D55FC: .4byte gSprites -_080D5600: .4byte 0x0000fffd -_080D5604: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bgt _080D5614 - b _080D57BA -_080D5614: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D563E - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 2 - movs r0, 0xC0 - lsls r0, 1 - str r0, [sp] - movs r0, 0xF0 - str r0, [sp, 0x4] - movs r0, 0x6 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r2, 0xE0 - bl sub_8079C08 - b _080D565E -_080D563E: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 2 - movs r0, 0xC0 - lsls r0, 1 - str r0, [sp] - movs r0, 0xC0 - str r0, [sp, 0x4] - movs r0, 0x6 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r2, 0xE0 - bl sub_8079C08 -_080D565E: - movs r0, 0 - strh r0, [r4, 0xA] - b _080D57A0 -_080D5664: - adds r0, r4, 0 - bl sub_8079C74 - lsls r0, 24 - cmp r0, 0 - beq _080D5672 - b _080D57BA -_080D5672: - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - adds r1, r5, 0 - movs r2, 0x6 - bl sub_80D57C4 - b _080D57A0 -_080D5682: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D56D0 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D56BC - ldr r2, _080D56B8 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - adds r1, 0x3 - b _080D56CE - .align 2, 0 -_080D56B8: .4byte gSprites -_080D56BC: - ldr r2, _080D5708 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x3 -_080D56CE: - strh r1, [r0, 0x26] -_080D56D0: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - ble _080D57BA - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D570C - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r2, 0xC0 - lsls r2, 1 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r3, 0xF0 - bl sub_8079C08 - b _080D572A - .align 2, 0 -_080D5708: .4byte gSprites -_080D570C: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r2, 0xC0 - lsls r2, 1 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r3, 0xC0 - bl sub_8079C08 -_080D572A: - ldrh r1, [r4, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D5748 - ldr r2, _080D5754 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x3 - strh r1, [r0, 0x26] -_080D5748: - movs r0, 0 - strh r0, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - b _080D57A0 - .align 2, 0 -_080D5754: .4byte gSprites -_080D5758: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D5774 - ldr r2, _080D57A8 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] -_080D5774: - adds r0, r4, 0 - bl sub_8079C74 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080D57BA - ldr r2, _080D57A8 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x10] - strh r1, [r0, 0x22] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F40 - strh r5, [r4, 0xC] -_080D57A0: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D57BA - .align 2, 0 -_080D57A8: .4byte gSprites -_080D57AC: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D57BA - adds r0, r5, 0 - bl move_anim_task_del -_080D57BA: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D54E0 - - thumb_func_start sub_80D57C4 -sub_80D57C4: @ 80D57C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - adds r0, r4, 0 - bl sub_80D5940 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - ldr r1, _080D5814 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r4, [r0, 0x20] - ldr r0, _080D5818 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D581C - adds r0, r4, 0 - subs r0, 0xC - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x1 - b _080D5826 - .align 2, 0 -_080D5814: .4byte gSprites -_080D5818: .4byte gUnknown_0202F7C8 -_080D581C: - adds r0, r4, 0 - adds r0, 0x10 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0xFF -_080D5826: - movs r6, 0 - movs r5, 0 - lsls r4, 16 - str r4, [sp, 0x8] - mov r1, r9 - lsls r1, 16 - str r1, [sp, 0x4] - ldr r2, _080D58E0 - mov r9, r2 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r3, r8 - lsls r3, 1 - mov r10, r3 -_080D5844: - ldr r0, _080D58E4 - ldr r2, [sp, 0x8] - asrs r1, r2, 16 - ldr r3, [sp, 0x4] - asrs r2, r3, 16 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080D58C6 - ldr r1, _080D58E8 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r1 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - lsls r0, r5, 2 - adds r0, 0x40 - adds r1, r0 - ldr r3, _080D58EC - adds r0, r3, 0 - ands r1, r0 - ldr r3, _080D58F0 - adds r0, r3, 0 - ands r2, r0 - orrs r2, r1 - strh r2, [r4, 0x4] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bls _080D588E - movs r5, 0 -_080D588E: - lsls r2, r6, 2 - mov r1, r9 - adds r0, r2, r1 - ldrh r0, [r0] - ldr r3, [sp] - adds r1, r0, 0 - muls r1, r3 - lsls r1, 16 - asrs r1, 16 - ldr r0, _080D58F4 - adds r2, r0 - movs r3, 0 - ldrsh r2, [r2, r3] - adds r0, r4, 0 - bl sub_80D5994 - strh r7, [r4, 0x3A] - mov r0, r8 - strh r0, [r4, 0x3C] - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - add r0, r10 - ldr r1, _080D58F8 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] -_080D58C6: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x6 - bls _080D5844 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D58E0: .4byte gUnknown_083D96DC -_080D58E4: .4byte gSpriteTemplate_83D96C4 -_080D58E8: .4byte gSprites -_080D58EC: .4byte 0x000003ff -_080D58F0: .4byte 0xfffffc00 -_080D58F4: .4byte gUnknown_083D96DC + 0x2 -_080D58F8: .4byte gUnknown_03004B28 - thumb_func_end sub_80D57C4 - - thumb_func_start sub_80D58FC -sub_80D58FC: @ 80D58FC - push {r4,lr} - adds r4, r0, 0 - bl sub_80D59B0 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080D5936 - ldr r3, _080D593C - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080D5936: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D593C: .4byte gTasks - thumb_func_end sub_80D58FC - - thumb_func_start sub_80D5940 -sub_80D5940: @ 80D5940 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080D5978 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r1, 0x26] - ldrh r0, [r1, 0x22] - adds r2, r0 - adds r1, 0x29 - movs r0, 0 - ldrsb r0, [r1, r0] - adds r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080D597C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D5980 - lsls r0, r4, 16 - movs r1, 0x94 - lsls r1, 15 - b _080D5986 - .align 2, 0 -_080D5978: .4byte gSprites -_080D597C: .4byte gUnknown_0202F7C8 -_080D5980: - lsls r0, r4, 16 - movs r1, 0xB0 - lsls r1, 14 -_080D5986: - adds r0, r1 - lsrs r4, r0, 16 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80D5940 - - thumb_func_start sub_80D5994 -sub_80D5994: @ 80D5994 - movs r3, 0 - strh r3, [r0, 0x2E] - strh r3, [r0, 0x30] - ldrh r3, [r0, 0x20] - lsls r3, 3 - strh r3, [r0, 0x32] - ldrh r3, [r0, 0x22] - lsls r3, 3 - strh r3, [r0, 0x34] - lsls r1, 3 - strh r1, [r0, 0x36] - lsls r2, 3 - strh r2, [r0, 0x38] - bx lr - thumb_func_end sub_80D5994 - - thumb_func_start sub_80D59B0 -sub_80D59B0: @ 80D59B0 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080D59DA - movs r0, 0 - strh r0, [r2, 0x2E] - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x30] - adds r1, r0, 0 - muls r1, r0 - adds r0, r1, 0 - ldrh r3, [r2, 0x34] - adds r0, r3 - strh r0, [r2, 0x34] -_080D59DA: - ldrh r0, [r2, 0x36] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 19 - strh r0, [r2, 0x20] - ldrh r1, [r2, 0x38] - ldrh r3, [r2, 0x34] - adds r1, r3 - strh r1, [r2, 0x34] - lsls r1, 16 - asrs r3, r1, 19 - strh r3, [r2, 0x22] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bhi _080D5A10 - adds r1, r3, 0 - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - blt _080D5A10 - cmp r1, 0x78 - ble _080D5A1C -_080D5A10: - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080D5A1C: - pop {r0} - bx r0 - thumb_func_end sub_80D59B0 - - thumb_func_start sub_80D5A20 -sub_80D5A20: @ 80D5A20 - push {r4,r5,lr} - ldr r3, _080D5A64 - ldrh r1, [r3] - movs r2, 0 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x2] - strh r1, [r0, 0x22] - strh r2, [r0, 0x2E] - strh r2, [r0, 0x30] - strh r2, [r0, 0x32] - ldrh r1, [r3, 0x4] - strh r1, [r0, 0x3A] - ldrh r1, [r3, 0x6] - strh r1, [r0, 0x3C] - ldrh r4, [r0, 0x4] - lsls r2, r4, 22 - lsrs r2, 22 - movs r5, 0x8 - ldrsh r1, [r3, r5] - lsls r1, 4 - adds r2, r1 - ldr r3, _080D5A68 - adds r1, r3, 0 - ands r2, r1 - ldr r1, _080D5A6C - ands r1, r4 - orrs r1, r2 - strh r1, [r0, 0x4] - ldr r1, _080D5A70 - str r1, [r0, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D5A64: .4byte gUnknown_03004B00 -_080D5A68: .4byte 0x000003ff -_080D5A6C: .4byte 0xfffffc00 -_080D5A70: .4byte sub_80D5A74 - thumb_func_end sub_80D5A20 - - thumb_func_start sub_80D5A74 -sub_80D5A74: @ 80D5A74 - push {r4,lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _080D5AA6 - cmp r0, 0x1 - bgt _080D5A8A - cmp r0, 0 - beq _080D5A90 - b _080D5B04 -_080D5A8A: - cmp r0, 0x2 - beq _080D5AC4 - b _080D5B04 -_080D5A90: - ldrh r1, [r2, 0x3A] - movs r3, 0x3A - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080D5AA0 - subs r0, r1, 0x1 - strh r0, [r2, 0x3A] - b _080D5B04 -_080D5AA0: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] -_080D5AA6: - ldrh r0, [r2, 0x22] - adds r0, 0x8 - strh r0, [r2, 0x22] - lsls r0, 16 - asrs r0, 16 - ldrh r3, [r2, 0x3C] - movs r4, 0x3C - ldrsh r1, [r2, r4] - cmp r0, r1 - blt _080D5B04 - strh r3, [r2, 0x22] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - b _080D5B04 -_080D5AC4: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D5AF0 - movs r0, 0 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x32] - adds r0, 0x1 - strh r0, [r2, 0x32] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D5AEC - ldr r0, _080D5AE8 - b _080D5AEE - .align 2, 0 -_080D5AE8: .4byte 0x0000fffd -_080D5AEC: - movs r0, 0x3 -_080D5AEE: - strh r0, [r2, 0x26] -_080D5AF0: - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080D5B04 - adds r0, r2, 0 - bl move_anim_8072740 -_080D5B04: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D5A74 - - thumb_func_start sub_80D5B0C -sub_80D5B0C: @ 80D5B0C - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080D5B80 - cmp r0, 0x1 - bgt _080D5B22 - cmp r0, 0 - beq _080D5B28 - b _080D5C4E -_080D5B22: - cmp r0, 0x2 - beq _080D5BDE - b _080D5C4E -_080D5B28: - adds r0, r5, 0 - movs r1, 0 - bl sub_80787B0 - ldr r4, _080D5B50 - ldrb r1, [r4, 0x4] - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x3C] - ldr r0, _080D5B54 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D5B58 - movs r0, 0x4 - b _080D5B5A - .align 2, 0 -_080D5B50: .4byte gUnknown_03004B00 -_080D5B54: .4byte gUnknown_0202F7C8 -_080D5B58: - ldr r0, _080D5B78 -_080D5B5A: - strh r0, [r5, 0x36] - ldr r0, _080D5B7C - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080D5BD6 - .align 2, 0 -_080D5B78: .4byte 0x0000fffc -_080D5B7C: .4byte gUnknown_0202F7C9 -_080D5B80: - ldrh r0, [r5, 0x30] - adds r0, 0xC0 - strh r0, [r5, 0x30] - ldr r0, _080D5BA0 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D5BA4 - ldrh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - b _080D5BAA - .align 2, 0 -_080D5BA0: .4byte gUnknown_0202F7C8 -_080D5BA4: - ldrh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 24 -_080D5BAA: - strh r0, [r5, 0x26] - movs r2, 0x32 - ldrsh r0, [r5, r2] - movs r2, 0x36 - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r5, 0x24] - ldrh r0, [r5, 0x32] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080D5C4E - movs r0, 0 - strh r0, [r5, 0x34] -_080D5BD6: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080D5C4E -_080D5BDE: - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r2, 0x36 - ldrsh r1, [r5, r2] - bl Sin - adds r2, r0, 0 - movs r3, 0 - strh r2, [r5, 0x24] - ldrh r0, [r5, 0x32] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _080D5C4E - ldrh r0, [r5, 0x20] - adds r1, r2, r0 - strh r1, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r3, [r5, 0x26] - strh r3, [r5, 0x24] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r5, 0x2E] - strh r1, [r5, 0x30] - ldr r4, _080D5C54 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078BD4 - ldr r0, _080D5C58 - str r0, [r5, 0x1C] -_080D5C4E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D5C54: .4byte gUnknown_0202F7C9 -_080D5C58: .4byte sub_80D5C5C - thumb_func_end sub_80D5B0C - - thumb_func_start sub_80D5C5C -sub_80D5C5C: @ 80D5C5C - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080D5CB4 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x10 - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - ldrh r2, [r4, 0x38] - adds r0, r2, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x38] - lsls r2, 16 - asrs r2, 16 - cmp r2, 0 - beq _080D5C92 - cmp r2, 0xC4 - ble _080D5CBA -_080D5C92: - lsls r0, 16 - cmp r0, 0 - ble _080D5CBA - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D5CBA - ldr r0, _080D5CB0 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x90 - bl PlaySE12WithPanning - b _080D5CBA - .align 2, 0 -_080D5CB0: .4byte gUnknown_0202F7D2 -_080D5CB4: - adds r0, r4, 0 - bl move_anim_8072740 -_080D5CBA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D5C5C - - thumb_func_start sub_80D5CC0 -sub_80D5CC0: @ 80D5CC0 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080D5CD8 - ldr r0, _080D5D4C - ldrh r0, [r0] - strh r0, [r4, 0x30] - adds r0, r1, 0x1 - strh r0, [r4, 0x2E] -_080D5CD8: - movs r0, 0xC0 - lsls r0, 1 - adds r1, r0, 0 - ldrh r2, [r4, 0x34] - adds r1, r2 - strh r1, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0xA0 - strh r0, [r4, 0x36] - movs r2, 0x30 - ldrsh r0, [r4, r2] - lsls r1, 16 - asrs r1, 24 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x36] - lsls r1, 16 - asrs r1, 24 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r2, r0, 0x7 - movs r0, 0xFF - ands r2, r0 - strh r2, [r4, 0x30] - ldr r0, _080D5D50 - ldr r1, _080D5D54 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D5D84 - adds r0, r2, 0 - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x83 - bls _080D5D5C - ldr r0, _080D5D58 - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080D5DA0 - .align 2, 0 -_080D5D4C: .4byte gUnknown_03004B00 -_080D5D50: .4byte gMain -_080D5D54: .4byte 0x0000043d -_080D5D58: .4byte gUnknown_0202F7C9 -_080D5D5C: - ldr r0, _080D5D80 - ldrb r0, [r0] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - b _080D5DA0 - .align 2, 0 -_080D5D80: .4byte gUnknown_0202F7C9 -_080D5D84: - adds r0, r2, 0 - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x83 - bls _080D5D98 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1D - b _080D5D9E -_080D5D98: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1F -_080D5D9E: - strb r0, [r1] -_080D5DA0: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080D5DC8 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D5DC8: - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0x1E - bne _080D5DD6 - adds r0, r4, 0 - bl move_anim_8072740 -_080D5DD6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D5CC0 - - thumb_func_start sub_80D5DDC -sub_80D5DDC: @ 80D5DDC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D5E3C - adds r4, r1, r0 - ldr r0, _080D5E40 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080D5E02 - movs r1, 0x1 -_080D5E02: - strh r1, [r4, 0x20] - ldr r0, _080D5E44 - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - strh r0, [r4, 0x22] - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x24] - movs r0, 0x3 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080D5E48 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D5E3C: .4byte gTasks -_080D5E40: .4byte gUnknown_0202F7C8 -_080D5E44: .4byte gUnknown_0202F7C9 -_080D5E48: .4byte sub_80D5E4C - thumb_func_end sub_80D5DDC - - thumb_func_start sub_80D5E4C -sub_80D5E4C: @ 80D5E4C - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080D5E70 - adds r2, r0, r1 - movs r0, 0x8 - ldrsh r3, [r2, r0] - cmp r3, 0x1 - beq _080D5F14 - cmp r3, 0x1 - bgt _080D5E74 - cmp r3, 0 - beq _080D5E82 - b _080D6074 - .align 2, 0 -_080D5E70: .4byte gTasks -_080D5E74: - cmp r3, 0x2 - bne _080D5E7A - b _080D5F9C -_080D5E7A: - cmp r3, 0x3 - bne _080D5E80 - b _080D6030 -_080D5E80: - b _080D6074 -_080D5E82: - movs r1, 0x20 - ldrsh r0, [r2, r1] - lsls r0, 1 - ldrh r5, [r2, 0x1C] - adds r0, r5 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D5EB4 - strh r3, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D5EB0 - movs r0, 0x2 - b _080D5EB2 -_080D5EB0: - ldr r0, _080D5F0C -_080D5EB2: - strh r0, [r2, 0x1E] -_080D5EB4: - movs r1, 0 - strh r1, [r2, 0xE] - movs r7, 0x22 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080D5EF6 - ldr r4, _080D5F10 - adds r3, r2, 0 - adds r3, 0x8 -_080D5EC6: - movs r1, 0xE - ldrsh r0, [r2, r1] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r5, 0 - ldrsh r0, [r0, r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r2, 0x1E] - ldrh r7, [r2, 0x1C] - adds r0, r7 - strh r0, [r1, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r5, 0x22 - ldrsh r1, [r2, r5] - cmp r0, r1 - blt _080D5EC6 -_080D5EF6: - ldrh r0, [r2, 0x1A] - adds r0, 0x1 - strh r0, [r2, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - beq _080D5F06 - b _080D6074 -_080D5F06: - movs r0, 0 - strh r0, [r2, 0x1A] - b _080D6020 - .align 2, 0 -_080D5F0C: .4byte 0x0000fffe -_080D5F10: .4byte gSprites -_080D5F14: - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080D5F3C - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - ands r0, r3 - lsls r0, 16 - cmp r0, 0 - beq _080D5F38 - movs r0, 0x2 - b _080D5F3A -_080D5F38: - ldr r0, _080D5F94 -_080D5F3A: - strh r0, [r2, 0x1E] -_080D5F3C: - movs r1, 0 - strh r1, [r2, 0xE] - movs r7, 0x22 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080D5F7E - ldr r4, _080D5F98 - adds r3, r2, 0 - adds r3, 0x8 -_080D5F4E: - movs r1, 0xE - ldrsh r0, [r2, r1] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r5, 0 - ldrsh r0, [r0, r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r2, 0x1E] - ldrh r7, [r2, 0x1C] - adds r0, r7 - strh r0, [r1, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r5, 0x22 - ldrsh r1, [r2, r5] - cmp r0, r1 - blt _080D5F4E -_080D5F7E: - ldrh r0, [r2, 0x1A] - adds r0, 0x1 - strh r0, [r2, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x60 - bne _080D6074 - movs r0, 0 - strh r0, [r2, 0x1A] - b _080D6020 - .align 2, 0 -_080D5F94: .4byte 0x0000fffe -_080D5F98: .4byte gSprites -_080D5F9C: - movs r7, 0x20 - ldrsh r1, [r2, r7] - lsls r1, 1 - ldrh r0, [r2, 0x1C] - subs r0, r1 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D5FD0 - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D5FCC - strh r3, [r2, 0x1E] - b _080D5FD0 -_080D5FCC: - ldr r0, _080D6028 - strh r0, [r2, 0x1E] -_080D5FD0: - movs r1, 0 - strh r1, [r2, 0xE] - movs r3, 0x22 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _080D6012 - ldr r4, _080D602C - adds r3, r2, 0 - adds r3, 0x8 -_080D5FE2: - movs r5, 0xE - ldrsh r0, [r2, r5] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r7, 0 - ldrsh r0, [r0, r7] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r2, 0x1E] - ldrh r5, [r2, 0x1C] - adds r0, r5 - strh r0, [r1, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r7, 0x22 - ldrsh r1, [r2, r7] - cmp r0, r1 - blt _080D5FE2 -_080D6012: - ldrh r0, [r2, 0x1A] - adds r0, 0x1 - strh r0, [r2, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - bne _080D6074 -_080D6020: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080D6074 - .align 2, 0 -_080D6028: .4byte 0x0000fffe -_080D602C: .4byte gSprites -_080D6030: - movs r1, 0 - strh r1, [r2, 0xE] - movs r3, 0x22 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _080D606E - ldr r6, _080D607C - adds r3, r2, 0 - adds r3, 0x8 - movs r5, 0 -_080D6044: - movs r7, 0xE - ldrsh r0, [r2, r7] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r7, 0 - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r5, [r0, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r7, 0x22 - ldrsh r1, [r2, r7] - cmp r0, r1 - blt _080D6044 -_080D606E: - adds r0, r4, 0 - bl move_anim_task_del -_080D6074: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D607C: .4byte gSprites - thumb_func_end sub_80D5E4C - - thumb_func_start sub_80D6080 -sub_80D6080: @ 80D6080 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r0, sp - bl sub_8078914 - mov r0, sp - ldrb r0, [r0, 0x8] - lsls r0, 4 - ldr r1, _080D60B0 - ldrb r2, [r1] - ldrh r3, [r1, 0x2] - movs r1, 0x10 - bl BlendPalette - adds r0, r4, 0 - bl move_anim_task_del - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D60B0: .4byte gUnknown_03004B00 - thumb_func_end sub_80D6080 - - thumb_func_start sub_80D60B4 -sub_80D60B4: @ 80D60B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080D610C - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x8 - ldrsh r0, [r2, r3] - mov r9, r1 - ldr r4, _080D6110 - mov r8, r4 - cmp r0, 0 - bne _080D60EA - ldrh r0, [r4] - strh r0, [r2, 0xA] - ldrh r0, [r4, 0x2] - strh r0, [r2, 0xC] - ldrh r0, [r4, 0x4] - strh r0, [r2, 0xE] - ldrh r0, [r4, 0x6] - strh r0, [r2, 0x10] -_080D60EA: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - ldr r1, _080D6114 - ldr r0, _080D6118 - ldrb r0, [r0] - adds r0, r1 - ldrb r6, [r0] - movs r5, 0x10 - ldrsh r0, [r2, r5] - cmp r0, 0 - bne _080D6120 - ldr r4, _080D611C - movs r1, 0x8 - ldrsh r0, [r2, r1] - b _080D6126 - .align 2, 0 -_080D610C: .4byte gTasks -_080D6110: .4byte gUnknown_03004B00 -_080D6114: .4byte gUnknown_02024BE0 -_080D6118: .4byte gUnknown_0202F7C9 -_080D611C: .4byte gUnknown_083D9794 -_080D6120: - ldr r4, _080D616C - movs r3, 0x8 - ldrsh r0, [r2, r3] -_080D6126: - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - adds r0, r4 - ldrb r5, [r0] - lsls r0, r7, 2 - adds r1, r0, r7 - lsls r1, 3 - add r1, r9 - movs r4, 0xE - ldrsh r1, [r1, r4] - mov r12, r0 - cmp r1, 0x1 - bne _080D6174 - ldr r2, _080D6170 - lsls r3, r6, 4 - adds r0, r3, r6 - lsls r0, 2 - adds r0, r2 - mov r10, r0 - mov r0, r8 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r5, 24 - asrs r0, 24 - muls r0, r1 - cmp r0, 0 - bge _080D6164 - negs r0, r0 -_080D6164: - mov r5, r10 - strh r0, [r5, 0x26] - b _080D618E - .align 2, 0 -_080D616C: .4byte gUnknown_083D97A4 -_080D6170: .4byte gSprites -_080D6174: - ldr r3, _080D61C4 - lsls r4, r6, 4 - adds r2, r4, r6 - lsls r2, 2 - adds r2, r3 - lsls r0, r5, 24 - asrs r0, 24 - mov r5, r8 - ldrh r1, [r5, 0x2] - muls r0, r1 - strh r0, [r2, 0x24] - adds r2, r3, 0 - adds r3, r4, 0 -_080D618E: - mov r1, r12 - adds r0, r1, r7 - lsls r0, 3 - add r0, r9 - movs r4, 0x8 - ldrsh r1, [r0, r4] - movs r5, 0xA - ldrsh r0, [r0, r5] - cmp r1, r0 - bne _080D61B4 - adds r0, r3, r6 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x24] - strh r1, [r0, 0x26] - adds r0, r7, 0 - bl move_anim_task_del -_080D61B4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D61C4: .4byte gSprites - thumb_func_end sub_80D60B4 - - thumb_func_start sub_80D61C8 -sub_80D61C8: @ 80D61C8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D61E8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D61F0 - ldr r0, _080D61EC - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - b _080D61FC - .align 2, 0 -_080D61E8: .4byte gUnknown_0202F7C8 -_080D61EC: .4byte gUnknown_03004B00 -_080D61F0: - ldr r1, _080D6210 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - adds r0, r1, 0 -_080D61FC: - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080D6214 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D6210: .4byte gUnknown_03004B00 -_080D6214: .4byte sub_80D6218 - thumb_func_end sub_80D61C8 - - thumb_func_start sub_80D6218 -sub_80D6218: @ 80D6218 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D622E - adds r0, r2, 0 - bl move_anim_8072740 -_080D622E: - pop {r0} - bx r0 - thumb_func_end sub_80D6218 - - thumb_func_start sub_80D6234 -sub_80D6234: @ 80D6234 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D6254 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D625C - ldr r0, _080D6258 - ldrh r1, [r4, 0x20] - ldrh r0, [r0] - subs r1, r0 - strh r1, [r4, 0x20] - b _080D6266 - .align 2, 0 -_080D6254: .4byte gUnknown_0202F7C8 -_080D6258: .4byte gUnknown_03004B00 -_080D625C: - ldr r0, _080D6270 - ldrh r0, [r0] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] -_080D6266: - ldr r0, _080D6274 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D6270: .4byte gUnknown_03004B00 -_080D6274: .4byte sub_80D6278 - thumb_func_end sub_80D6234 - - thumb_func_start sub_80D6278 -sub_80D6278: @ 80D6278 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080D628E - adds r0, r2, 0 - bl move_anim_8074EE0 -_080D628E: - pop {r0} - bx r0 - thumb_func_end sub_80D6278 - - thumb_func_start sub_80D6294 -sub_80D6294: @ 80D6294 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D62D8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080D62DC - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D62E4 - ldr r2, _080D62E0 - ldrh r0, [r5, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - ldrh r1, [r2, 0x2] - subs r0, r1 - strh r0, [r5, 0x22] - b _080D62F8 - .align 2, 0 -_080D62D8: .4byte gUnknown_0202F7C9 -_080D62DC: .4byte gUnknown_0202F7C8 -_080D62E0: .4byte gUnknown_03004B00 -_080D62E4: - ldr r0, _080D631C - ldrh r1, [r0] - ldrh r2, [r5, 0x20] - adds r1, r2 - strh r1, [r5, 0x20] - ldrh r1, [r0, 0x2] - ldrh r2, [r5, 0x22] - adds r1, r2 - strh r1, [r5, 0x22] - adds r2, r0, 0 -_080D62F8: - movs r0, 0 - strh r0, [r5, 0x2E] - ldrh r0, [r2, 0x4] - strh r0, [r5, 0x30] - ldrh r0, [r2, 0x6] - strh r0, [r5, 0x32] - ldrh r0, [r2, 0x8] - strh r0, [r5, 0x34] - ldr r1, _080D6320 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080D6324 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D631C: .4byte gUnknown_03004B00 -_080D6320: .4byte move_anim_8074EE0 -_080D6324: .4byte sub_8078114 - thumb_func_end sub_80D6294 - - thumb_func_start sub_80D6328 -sub_80D6328: @ 80D6328 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, _080D6340 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080D63A0 - cmp r0, 0x1 - bgt _080D6344 - cmp r0, 0 - beq _080D634E - b _080D63A0 - .align 2, 0 -_080D6340: .4byte gUnknown_03004B00 -_080D6344: - cmp r0, 0x2 - beq _080D6358 - cmp r0, 0x3 - beq _080D637C - b _080D63A0 -_080D634E: - ldr r0, _080D6354 - b _080D63A2 - .align 2, 0 -_080D6354: .4byte gUnknown_0202F7C8 -_080D6358: - ldr r4, _080D6370 - ldrb r0, [r4] - movs r6, 0x2 - eors r0, r6 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - bne _080D6374 - ldrb r4, [r4] - b _080D63A4 - .align 2, 0 -_080D6370: .4byte gUnknown_0202F7C8 -_080D6374: - ldrb r0, [r4] - adds r4, r6, 0 - eors r4, r0 - b _080D63A4 -_080D637C: - ldr r0, _080D6398 - ldrb r0, [r0] - movs r4, 0x2 - eors r0, r4 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080D63A0 - ldr r0, _080D639C - ldrb r0, [r0] - eors r4, r0 - b _080D63A4 - .align 2, 0 -_080D6398: .4byte gUnknown_0202F7C8 -_080D639C: .4byte gUnknown_0202F7C9 -_080D63A0: - ldr r0, _080D63C4 -_080D63A2: - ldrb r4, [r0] -_080D63A4: - ldr r0, _080D63C8 - movs r2, 0xA - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _080D63CC - adds r0, r4, 0 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r4, 0 - movs r1, 0x1 - b _080D63DE - .align 2, 0 -_080D63C4: .4byte gUnknown_0202F7C9 -_080D63C8: .4byte gUnknown_03004B00 -_080D63CC: - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r4, 0 - movs r1, 0x3 -_080D63DE: - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r7, _080D647C - ldr r6, _080D6480 - movs r1, 0 - ldrsh r0, [r6, r1] - lsls r0, 1 - adds r0, r7 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r2, 0x2 - ldrsh r0, [r6, r2] - muls r0, r1 - asrs r0, 8 - strh r0, [r5, 0x24] - movs r1, 0 - ldrsh r0, [r6, r1] - adds r0, 0x40 - lsls r0, 1 - adds r0, r7 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r2, 0x2 - ldrsh r0, [r6, r2] - muls r0, r1 - asrs r0, 8 - strh r0, [r5, 0x26] - ldrh r1, [r6, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D6442 - adds r0, r4, 0 - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r5, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x5] -_080D6442: - ldrb r2, [r5, 0x3] - lsls r2, 26 - lsrs r2, 27 - movs r0, 0x4 - ldrsh r1, [r6, r0] - lsls r0, r1, 1 - adds r0, r7 - ldrh r0, [r0] - ldr r3, _080D6484 - lsls r2, 3 - adds r2, r3 - adds r1, 0x40 - lsls r1, 1 - adds r1, r7 - ldrh r1, [r1] - strh r1, [r2, 0x6] - strh r1, [r2] - strh r0, [r2, 0x2] - lsls r0, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - ldrh r0, [r6, 0x6] - strh r0, [r5, 0x2E] - ldr r0, _080D6488 - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D647C: .4byte gSineTable -_080D6480: .4byte gUnknown_03004B00 -_080D6484: .4byte gOamMatrices -_080D6488: .4byte sub_80DA48C - thumb_func_end sub_80D6328 - - thumb_func_start sub_80D648C -sub_80D648C: @ 80D648C - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r5, _080D6500 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r6, _080D6504 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x38] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x3A] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x3C] - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0xC - ldrsh r0, [r5, r3] - lsls r0, 2 - adds r1, r0 - ldr r3, _080D6508 - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D650C - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - ldr r1, _080D6510 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D6500: .4byte gUnknown_03004B00 -_080D6504: .4byte gUnknown_0202F7C9 -_080D6508: .4byte 0x000003ff -_080D650C: .4byte 0xfffffc00 -_080D6510: .4byte sub_80D6514 - thumb_func_end sub_80D648C - - thumb_func_start sub_80D6514 -sub_80D6514: @ 80D6514 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080D657E - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r2, [r4, 0x3C] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080D6584 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080D6584 -_080D657E: - adds r0, r4, 0 - bl move_anim_8072740 -_080D6584: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D6514 - - thumb_func_start sub_80D658C -sub_80D658C: @ 80D658C - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x38] - subs r0, 0x1 - strh r0, [r3, 0x38] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080D65C4 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x36] - strh r0, [r3, 0x38] -_080D65C4: - ldrh r0, [r3, 0x34] - subs r1, r0, 0x1 - strh r1, [r3, 0x34] - lsls r0, 16 - cmp r0, 0 - bgt _080D65D6 - adds r0, r3, 0 - bl move_anim_8072740 -_080D65D6: - pop {r0} - bx r0 - thumb_func_end sub_80D658C - - thumb_func_start sub_80D65DC -sub_80D65DC: @ 80D65DC - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080D6644 - ldr r1, _080D6648 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D65FE - ldr r0, _080D664C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D6606 -_080D65FE: - ldr r1, _080D6650 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_080D6606: - ldr r5, _080D664C - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080D6650 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4] - strh r0, [r6, 0x34] - ldrh r0, [r4, 0x6] - strh r0, [r6, 0x36] - strh r0, [r6, 0x38] - ldr r0, _080D6654 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D6644: .4byte gMain -_080D6648: .4byte 0x0000043d -_080D664C: .4byte gUnknown_0202F7C9 -_080D6650: .4byte gUnknown_03004B00 -_080D6654: .4byte sub_80D658C - thumb_func_end sub_80D65DC - - thumb_func_start sub_80D6658 -sub_80D6658: @ 80D6658 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r1, _080D6674 - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x2E] - movs r2, 0xE - ldrsh r0, [r1, r2] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080D667C - ldr r0, _080D6678 - b _080D667E - .align 2, 0 -_080D6674: .4byte gUnknown_03004B00 -_080D6678: .4byte gUnknown_0202F7C9 -_080D667C: - ldr r0, _080D670C -_080D667E: - ldrb r6, [r0] - ldr r0, _080D6710 - ldr r3, _080D6714 - adds r0, r3 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D669C - adds r0, r6, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D66A4 -_080D669C: - ldr r1, _080D6718 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080D66A4: - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080D6718 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r4, 0x2] - adds r0, r2 - strh r0, [r5, 0x22] - ldrh r1, [r4, 0xE] - ldr r0, _080D671C - ands r0, r1 - strh r0, [r5, 0x36] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x38] - ldrh r0, [r4, 0xA] - strh r0, [r5, 0x3A] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x3C] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0xC - ldrsh r0, [r4, r3] - lsls r0, 2 - adds r1, r0 - ldr r3, _080D6720 - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D6724 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r1, _080D6728 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D670C: .4byte gUnknown_0202F7C8 -_080D6710: .4byte gMain -_080D6714: .4byte 0x0000043d -_080D6718: .4byte gUnknown_03004B00 -_080D671C: .4byte 0x00007fff -_080D6720: .4byte 0x000003ff -_080D6724: .4byte 0xfffffc00 -_080D6728: .4byte sub_80D672C - thumb_func_end sub_80D6658 - - thumb_func_start sub_80D672C -sub_80D672C: @ 80D672C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _080D6782 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D6782: - ldrh r0, [r4, 0x2E] - subs r1, r0, 0x1 - strh r1, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080D6794 - adds r0, r4, 0 - bl move_anim_8072740 -_080D6794: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D672C - - thumb_func_start sub_80D679C -sub_80D679C: @ 80D679C - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8078764 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - ldr r3, _080D67D8 - movs r5, 0x6 - ldrsh r0, [r3, r5] - lsls r0, 2 - adds r1, r0 - ldr r5, _080D67DC - adds r0, r5, 0 - ands r1, r0 - ldr r0, _080D67E0 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - movs r1, 0x6 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - bne _080D67E4 - ldrb r0, [r4, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - b _080D67F2 - .align 2, 0 -_080D67D8: .4byte gUnknown_03004B00 -_080D67DC: .4byte 0x000003ff -_080D67E0: .4byte 0xfffffc00 -_080D67E4: - cmp r0, 0x2 - bne _080D67F6 - ldrb r0, [r4, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x20 -_080D67F2: - orrs r1, r0 - strb r1, [r4, 0x3] -_080D67F6: - ldr r0, _080D6810 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080D6814 - str r0, [r4, 0x1C] - ldr r1, _080D6818 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D6810: .4byte gUnknown_03004B00 -_080D6814: .4byte sub_80782D8 -_080D6818: .4byte move_anim_8072740 - thumb_func_end sub_80D679C - - thumb_func_start sub_80D681C -sub_80D681C: @ 80D681C - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r6, _080D6864 - ldrb r0, [r6] - movs r1, 0 - bl sub_8077ABC - ldr r1, _080D6868 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r1 - lsls r0, 24 - ldr r5, _080D686C - lsrs r0, 24 - ldrh r1, [r5] - adds r0, r1 - strh r0, [r4, 0x8] - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r4, 0xA] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0xC] - ldr r0, _080D6870 - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D6864: .4byte gUnknown_0202F7C9 -_080D6868: .4byte gTasks -_080D686C: .4byte gUnknown_03004B00 -_080D6870: .4byte sub_80D6874 - thumb_func_end sub_80D681C - - thumb_func_start sub_80D6874 -sub_80D6874: @ 80D6874 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r5, 0 - movs r7, 0 - ldr r1, _080D68B4 - lsls r0, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - ldrb r2, [r0, 0xC] - str r2, [sp] - ldrh r4, [r0, 0x8] - ldrh r6, [r0, 0xA] - movs r3, 0xC - ldrsh r0, [r0, r3] - mov r10, r1 - cmp r0, 0 - bne _080D68B8 - movs r0, 0 - mov r8, r0 - movs r2, 0x1 - movs r1, 0x10 - mov r12, r1 - b _080D68C2 - .align 2, 0 -_080D68B4: .4byte gTasks -_080D68B8: - movs r2, 0x10 - mov r12, r2 - movs r3, 0x8 - mov r8, r3 - movs r2, 0x4 -_080D68C2: - mov r0, r9 - lsls r1, r0, 2 - adds r0, r1, r0 - lsls r0, 3 - add r0, r10 - movs r3, 0x1C - ldrsh r0, [r0, r3] - mov r10, r1 - cmp r0, 0xA - bhi _080D69B8 - lsls r0, 2 - ldr r1, _080D68E0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D68E0: .4byte _080D68E4 - .align 2, 0 -_080D68E4: - .4byte _080D6910 - .4byte _080D69B8 - .4byte _080D6924 - .4byte _080D69B8 - .4byte _080D6944 - .4byte _080D69B8 - .4byte _080D695A - .4byte _080D69B8 - .4byte _080D697C - .4byte _080D69B8 - .4byte _080D69B0 -_080D6910: - ldr r0, _080D6920 - lsls r1, r4, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - mov r4, r12 - lsls r3, r4, 16 - b _080D6992 - .align 2, 0 -_080D6920: .4byte gSpriteTemplate_83D9938 -_080D6924: - mov r0, r12 - lsls r3, r0, 17 - mov r1, r8 - adds r0, r1, r2 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, _080D6940 - lsls r1, r4, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - b _080D6992 - .align 2, 0 -_080D6940: .4byte gSpriteTemplate_83D9938 -_080D6944: - mov r3, r12 - lsls r0, r3, 16 - asrs r0, 16 - lsls r3, r0, 1 - adds r3, r0 - lsls r0, r2, 1 - add r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - b _080D6986 -_080D695A: - mov r0, r12 - lsls r3, r0, 18 - lsls r0, r2, 1 - adds r0, r2 - add r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, _080D6978 - lsls r1, r4, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - b _080D6992 - .align 2, 0 -_080D6978: .4byte gSpriteTemplate_83D9938 -_080D697C: - mov r1, r12 - lsls r0, r1, 16 - asrs r0, 16 - lsls r3, r0, 2 - adds r3, r0 -_080D6986: - ldr r0, _080D69AC - lsls r1, r4, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - lsls r3, 16 -_080D6992: - asrs r3, 16 - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - b _080D69B8 - .align 2, 0 -_080D69AC: .4byte gSpriteTemplate_83D9938 -_080D69B0: - mov r0, r9 - bl move_anim_task_del - b _080D69FC -_080D69B8: - cmp r7, 0 - beq _080D69EC - ldr r4, _080D6A0C - lsls r3, r5, 4 - adds r3, r5 - lsls r3, 2 - adds r0, r3, r4 - ldrh r5, [r0, 0x4] - lsls r2, r5, 22 - lsrs r2, 22 - add r2, r8 - ldr r6, _080D6A10 - adds r1, r6, 0 - ands r2, r1 - ldr r1, _080D6A14 - ands r1, r5 - orrs r1, r2 - strh r1, [r0, 0x4] - mov r1, sp - ldrh r1, [r1] - strh r1, [r0, 0x2E] - adds r4, 0x1C - adds r3, r4 - ldr r1, [r3] - bl _call_via_r1 -_080D69EC: - ldr r0, _080D6A18 - mov r1, r10 - add r1, r9 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1C] - adds r0, 0x1 - strh r0, [r1, 0x1C] -_080D69FC: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D6A0C: .4byte gSprites -_080D6A10: .4byte 0x000003ff -_080D6A14: .4byte 0xfffffc00 -_080D6A18: .4byte gTasks - thumb_func_end sub_80D6874 - - thumb_func_start sub_80D6A1C -sub_80D6A1C: @ 80D6A1C - push {lr} - adds r3, r0, 0 - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080D6A3E - ldrb r1, [r3, 0x1] - movs r2, 0x3F - adds r0, r2, 0 - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r3, 0x1] - ldrb r0, [r3, 0x3] - ands r2, r0 - strb r2, [r3, 0x3] - b _080D6A52 -_080D6A3E: - ldrb r2, [r3, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0x1] - ldrb r0, [r3, 0x3] - ands r1, r0 - movs r0, 0x40 - orrs r1, r0 - strb r1, [r3, 0x3] -_080D6A52: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - bne _080D6A66 - adds r0, r3, 0 - bl DestroySprite -_080D6A66: - pop {r0} - bx r0 - thumb_func_end sub_80D6A1C - - thumb_func_start sub_80D6A6C -sub_80D6A6C: @ 80D6A6C - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, _080D6AD4 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] - ldrh r3, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - ldr r0, _080D6AD8 - adds r1, 0x20 - lsls r1, 16 - asrs r1, 16 - movs r7, 0x22 - ldrsh r2, [r4, r7] - adds r3, r4, 0 - adds r3, 0x43 - ldrb r3, [r3] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080D6ADC - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r6, r2, r3 - ldrh r5, [r6, 0x4] - lsls r1, r5, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r7, _080D6AE0 - adds r0, r7, 0 - ands r1, r0 - ldr r0, _080D6AE4 - ands r0, r5 - orrs r0, r1 - strh r0, [r6, 0x4] - ldr r1, _080D6AE8 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - adds r3, 0x1C - adds r2, r3 - ldr r0, _080D6AEC - str r0, [r2] - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D6AD4: .4byte gUnknown_03004B00 -_080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950 -_080D6ADC: .4byte gSprites -_080D6AE0: .4byte 0x000003ff -_080D6AE4: .4byte 0xfffffc00 -_080D6AE8: .4byte gUnknown_0202F7B2 -_080D6AEC: .4byte sub_80D6AF0 - thumb_func_end sub_80D6A6C - - thumb_func_start sub_80D6AF0 -sub_80D6AF0: @ 80D6AF0 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080D6B24 - movs r0, 0 - strh r0, [r3, 0x2E] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] -_080D6B24: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _080D6B38 - adds r0, r3, 0 - bl move_anim_8072740 -_080D6B38: - pop {r0} - bx r0 - thumb_func_end sub_80D6AF0 - - thumb_func_start sub_80D6B3C -sub_80D6B3C: @ 80D6B3C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D6B5C - adds r5, r1, r0 - ldr r0, _080D6B60 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D6B68 - ldr r4, _080D6B64 - b _080D6B6A - .align 2, 0 -_080D6B5C: .4byte gTasks -_080D6B60: .4byte gUnknown_03004B00 -_080D6B64: .4byte gUnknown_0202F7C8 -_080D6B68: - ldr r4, _080D6BAC -_080D6B6A: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x24] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x26] - ldr r2, _080D6BB0 - ldrh r0, [r2, 0x2] - movs r1, 0 - strh r0, [r5, 0x14] - strh r1, [r5, 0x16] - strh r1, [r5, 0x18] - strh r1, [r5, 0x1A] - strh r1, [r5, 0x1C] - ldrh r0, [r2, 0x6] - strh r0, [r5, 0x1E] - strh r1, [r5, 0x20] - ldrh r0, [r2, 0x4] - strh r0, [r5, 0x22] - ldr r0, _080D6BB4 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D6BAC: .4byte gUnknown_0202F7C9 -_080D6BB0: .4byte gUnknown_03004B00 -_080D6BB4: .4byte sub_80D6BB8 - thumb_func_end sub_80D6B3C - - thumb_func_start sub_80D6BB8 -sub_80D6BB8: @ 80D6BB8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - adds r2, r6, 0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080D6CA0 - adds r5, r0, r1 - movs r1, 0x14 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080D6CB8 - ldrh r0, [r5, 0x20] - adds r0, 0x1 - movs r7, 0 - strh r0, [r5, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x22 - ldrsh r1, [r5, r2] - cmp r0, r1 - ble _080D6CC6 - strh r7, [r5, 0x20] - ldr r0, _080D6CA4 - movs r3, 0x24 - ldrsh r1, [r5, r3] - movs r3, 0x26 - ldrsh r2, [r5, r3] - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080D6CC6 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _080D6CA8 - adds r4, r0 - ldr r1, _080D6CAC - movs r2, 0x1A - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r0, r1 - movs r3, 0 - ldrsb r3, [r0, r3] - ldrh r0, [r4, 0x20] - adds r3, r0 - strh r3, [r4, 0x20] - movs r2, 0x1A - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r1, 0x1 - adds r0, r1 - movs r2, 0 - ldrsb r2, [r0, r2] - ldrh r0, [r4, 0x22] - adds r2, r0 - strh r2, [r4, 0x22] - movs r1, 0x18 - ldrsh r0, [r5, r1] - lsls r1, r0, 2 - adds r1, r0 - movs r0, 0x28 - subs r0, r1 - strh r0, [r4, 0x2E] - strh r3, [r4, 0x30] - ldrh r0, [r5, 0x24] - strh r0, [r4, 0x32] - strh r2, [r4, 0x34] - ldrh r0, [r5, 0x26] - strh r0, [r4, 0x36] - strh r6, [r4, 0x38] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080D6CB0 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080D6CB4 - str r0, [r4, 0x1C] - ldrh r0, [r5, 0x1A] - adds r0, 0x1 - strh r0, [r5, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080D6C70 - strh r7, [r5, 0x1A] -_080D6C70: - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x1E - ldrsh r1, [r5, r2] - cmp r0, r1 - blt _080D6C92 - strh r7, [r5, 0x1C] - ldrh r1, [r5, 0x18] - movs r3, 0x18 - ldrsh r0, [r5, r3] - cmp r0, 0x5 - bgt _080D6C92 - adds r0, r1, 0x1 - strh r0, [r5, 0x18] -_080D6C92: - ldrh r0, [r5, 0x16] - adds r0, 0x1 - strh r0, [r5, 0x16] - ldrh r0, [r5, 0x14] - subs r0, 0x1 - strh r0, [r5, 0x14] - b _080D6CC6 - .align 2, 0 -_080D6CA0: .4byte gTasks -_080D6CA4: .4byte gSpriteTemplate_83D99B8 -_080D6CA8: .4byte gSprites -_080D6CAC: .4byte gUnknown_083D9968 -_080D6CB0: .4byte sub_80D6D00 -_080D6CB4: .4byte sub_8078600 -_080D6CB8: - movs r1, 0x16 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D6CC6 - adds r0, r2, 0 - bl move_anim_task_del -_080D6CC6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D6BB8 - - thumb_func_start sub_80D6CCC -sub_80D6CCC: @ 80D6CCC - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080D6CF4 - ldr r2, _080D6CFC - movs r0, 0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x16] - subs r1, 0x1 - strh r1, [r0, 0x16] - adds r0, r4, 0 - bl DestroySprite -_080D6CF4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D6CFC: .4byte gTasks - thumb_func_end sub_80D6CCC - - thumb_func_start sub_80D6D00 -sub_80D6D00: @ 80D6D00 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, _080D6D14 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D6D14: .4byte sub_80D6CCC - thumb_func_end sub_80D6D00 - - thumb_func_start sub_80D6D18 -sub_80D6D18: @ 80D6D18 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080D6D2C - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D6D34 - ldr r4, _080D6D30 - b _080D6D36 - .align 2, 0 -_080D6D2C: .4byte gUnknown_03004B00 -_080D6D30: .4byte gUnknown_0202F7C8 -_080D6D34: - ldr r4, _080D6D64 -_080D6D36: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080D6D68 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080D6D6C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D6D64: .4byte gUnknown_0202F7C9 -_080D6D68: .4byte move_anim_8074EE0 -_080D6D6C: .4byte sub_80785E4 - thumb_func_end sub_80D6D18 - - thumb_func_start sub_80D6D70 -sub_80D6D70: @ 80D6D70 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080D6D84 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D6D8C - ldr r4, _080D6D88 - b _080D6D8E - .align 2, 0 -_080D6D84: .4byte gUnknown_03004B00 -_080D6D88: .4byte gUnknown_0202F7C8 -_080D6D8C: - ldr r4, _080D6DC8 -_080D6D8E: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080D6DCC - ldrh r0, [r1, 0x2] - strh r0, [r5, 0x24] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x26] - ldr r1, _080D6DD0 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080D6DD4 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D6DC8: .4byte gUnknown_0202F7C9 -_080D6DCC: .4byte gUnknown_03004B00 -_080D6DD0: .4byte move_anim_8072740 -_080D6DD4: .4byte sub_8078600 - thumb_func_end sub_80D6D70 - - thumb_func_start sub_80D6DD8 -sub_80D6DD8: @ 80D6DD8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r4, _080D6E30 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3A] - movs r0, 0x10 - strh r0, [r5, 0x3C] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D6E26 - movs r1, 0x3C - ldrsh r0, [r5, r1] - negs r0, r0 - strh r0, [r5, 0x3C] -_080D6E26: - ldr r0, _080D6E34 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D6E30: .4byte gUnknown_0202F7C8 -_080D6E34: .4byte sub_80D6E38 - thumb_func_end sub_80D6DD8 - - thumb_func_start sub_80D6E38 -sub_80D6E38: @ 80D6E38 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D6E4A - cmp r0, 0x1 - beq _080D6E60 - b _080D6E90 -_080D6E4A: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _080D6E90 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080D6E90 -_080D6E60: - ldrh r2, [r4, 0x3C] - ldrh r1, [r4, 0x20] - adds r0, r2, r1 - strh r0, [r4, 0x20] - ldr r3, _080D6E98 - movs r0, 0x3A - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x24] - adds r2, r1 - strh r2, [r0, 0x24] - ldrh r0, [r4, 0x20] - adds r0, 0x50 - lsls r0, 16 - movs r1, 0xC8 - lsls r1, 17 - cmp r0, r1 - bls _080D6E90 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080D6E90: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D6E98: .4byte gSprites - thumb_func_end sub_80D6E38 - - thumb_func_start sub_80D6E9C -sub_80D6E9C: @ 80D6E9C - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080D6EC0 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080D6F30 - cmp r0, 0x1 - bgt _080D6EC4 - cmp r0, 0 - beq _080D6ED0 - b _080D7000 - .align 2, 0 -_080D6EC0: .4byte gTasks -_080D6EC4: - cmp r0, 0x2 - beq _080D6F8C - cmp r0, 0x3 - bne _080D6ECE - b _080D6FE0 -_080D6ECE: - b _080D7000 -_080D6ED0: - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - strh r0, [r5, 0x26] - ldr r4, _080D6F04 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x24] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D6F0C - ldr r0, _080D6F08 - strh r0, [r5, 0x24] - movs r0, 0x2 - b _080D6F12 - .align 2, 0 -_080D6F04: .4byte gUnknown_0202F7C8 -_080D6F08: .4byte 0x0000ffe0 -_080D6F0C: - movs r0, 0x20 - strh r0, [r5, 0x24] - ldr r0, _080D6F28 -_080D6F12: - strh r0, [r5, 0x22] - ldr r2, _080D6F2C - movs r0, 0x26 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r5, 0x24] - strh r1, [r0, 0x24] - b _080D6FD2 - .align 2, 0 -_080D6F28: .4byte 0x0000fffe -_080D6F2C: .4byte gSprites -_080D6F30: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D7000 - movs r0, 0 - strh r0, [r5, 0xA] - ldr r4, _080D6F88 - movs r1, 0x26 - ldrsh r0, [r5, r1] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - adds r2, 0x3E - ldrb r3, [r2] - lsls r0, r3, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrh r1, [r5, 0x24] - movs r2, 0x24 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080D6FD2 - ldrh r2, [r5, 0x22] - adds r2, r1, r2 - strh r2, [r5, 0x24] - movs r0, 0x26 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x24] - b _080D7000 - .align 2, 0 -_080D6F88: .4byte gSprites -_080D6F8C: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D7000 - movs r0, 0 - strh r0, [r5, 0xA] - ldr r1, _080D6FDC - movs r2, 0x26 - ldrsh r0, [r5, r2] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - adds r2, 0x3E - ldrb r3, [r2] - lsls r0, r3, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - bne _080D7000 -_080D6FD2: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080D7000 - .align 2, 0 -_080D6FDC: .4byte gSprites -_080D6FE0: - ldr r2, _080D7008 - movs r0, 0x26 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - adds r0, r3, 0 - bl move_anim_task_del -_080D7000: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D7008: .4byte gSprites - thumb_func_end sub_80D6E9C - - thumb_func_start sub_80D700C -sub_80D700C: @ 80D700C - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080D7030 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080D7026 - b _080D714C -_080D7026: - cmp r0, 0x1 - bgt _080D7034 - cmp r0, 0 - beq _080D703C - b _080D718E - .align 2, 0 -_080D7030: .4byte gTasks -_080D7034: - cmp r0, 0x2 - bne _080D703A - b _080D7180 -_080D703A: - b _080D718E -_080D703C: - ldr r4, _080D707C - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080D7052 - movs r1, 0x1 -_080D7052: - movs r6, 0 - strh r1, [r5, 0xA] - ldr r0, _080D7080 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r3, r0, 0 - cmp r2, 0 - beq _080D7088 - cmp r2, 0x4 - beq _080D70B0 - ldrh r1, [r3] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D70E8 - movs r0, 0x80 - lsls r0, 1 - strh r0, [r5, 0xE] - ldr r0, _080D7084 - b _080D70F0 - .align 2, 0 -_080D707C: .4byte gUnknown_0202F7C8 -_080D7080: .4byte gUnknown_03004B00 -_080D7084: .4byte 0x0000fff0 -_080D7088: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x12] - movs r2, 0xA - ldrsh r0, [r5, r2] - lsls r0, 7 - adds r0, 0x78 - strh r0, [r5, 0x10] - b _080D7126 -_080D70B0: - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r1, 7 - movs r0, 0x78 - subs r0, r1 - strh r0, [r5, 0xE] - ldr r4, _080D70E4 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x12] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r2, 0xA - ldrsh r1, [r5, r2] - lsls r1, 5 - subs r0, r1 - strh r0, [r5, 0x10] - b _080D7126 - .align 2, 0 -_080D70E4: .4byte gUnknown_0202F7C9 -_080D70E8: - ldr r0, _080D710C - strh r0, [r5, 0xE] - movs r0, 0x80 - lsls r0, 1 -_080D70F0: - strh r0, [r5, 0x10] - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080D7110 - movs r2, 0 - ldrsh r0, [r3, r2] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 1 - movs r0, 0x50 - subs r0, r1 - strh r0, [r5, 0x12] - b _080D7126 - .align 2, 0 -_080D710C: .4byte 0x0000fff0 -_080D7110: - movs r0, 0 - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - adds r0, 0x28 - strh r0, [r5, 0x12] - ldrh r1, [r5, 0xE] - ldrh r0, [r5, 0x10] - strh r0, [r5, 0xE] - strh r1, [r5, 0x10] -_080D7126: - movs r2, 0xE - ldrsh r1, [r5, r2] - movs r2, 0x10 - ldrsh r0, [r5, r2] - cmp r1, r0 - bge _080D713C - movs r1, 0 - movs r0, 0x1 - strh r0, [r5, 0xA] - strh r1, [r5, 0x14] - b _080D7178 -_080D713C: - ldr r0, _080D7148 - strh r0, [r5, 0xA] - movs r0, 0x3 - strh r0, [r5, 0x14] - b _080D7178 - .align 2, 0 -_080D7148: .4byte 0x0000ffff -_080D714C: - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - ble _080D718E - movs r0, 0 - strh r0, [r5, 0xC] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80D7194 - lsls r0, 24 - cmp r0, 0 - bne _080D7178 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80D7194 - lsls r0, 24 - cmp r0, 0 - beq _080D718E -_080D7178: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080D718E -_080D7180: - movs r1, 0x16 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D718E - adds r0, r4, 0 - bl move_anim_task_del -_080D718E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80D700C - - thumb_func_start sub_80D7194 -sub_80D7194: @ 80D7194 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _080D7220 - movs r2, 0xE - ldrsh r1, [r4, r2] - movs r3, 0x12 - ldrsh r2, [r4, r3] - movs r3, 0x23 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080D71CA - ldr r1, _080D7224 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - strh r5, [r0, 0x3A] - movs r1, 0x7 - strh r1, [r0, 0x3C] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] -_080D71CA: - ldrh r1, [r4, 0xA] - ldrh r5, [r4, 0x14] - adds r0, r1, r5 - strh r0, [r4, 0x14] - lsls r0, 16 - cmp r0, 0 - bge _080D71DC - movs r0, 0x3 - strh r0, [r4, 0x14] -_080D71DC: - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0x3 - ble _080D71E8 - movs r0, 0 - strh r0, [r4, 0x14] -_080D71E8: - movs r3, 0xA - ldrsh r0, [r4, r3] - lsls r0, 4 - ldrh r5, [r4, 0xE] - adds r2, r0, r5 - strh r2, [r4, 0xE] - lsls r0, r1, 16 - asrs r3, r0, 16 - cmp r3, 0x1 - bne _080D7208 - lsls r0, r2, 16 - asrs r0, 16 - movs r5, 0x10 - ldrsh r1, [r4, r5] - cmp r0, r1 - bge _080D721C -_080D7208: - movs r0, 0x1 - negs r0, r0 - cmp r3, r0 - bne _080D7228 - lsls r0, r2, 16 - asrs r0, 16 - movs r2, 0x10 - ldrsh r1, [r4, r2] - cmp r0, r1 - bgt _080D7228 -_080D721C: - movs r0, 0x1 - b _080D722A - .align 2, 0 -_080D7220: .4byte gSpriteTemplate_83D9B10 -_080D7224: .4byte gSprites -_080D7228: - movs r0, 0 -_080D722A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80D7194 - - thumb_func_start sub_80D7230 -sub_80D7230: @ 80D7230 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _080D7270 - ldr r3, _080D7278 - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080D7270: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D7278: .4byte gTasks - thumb_func_end sub_80D7230 - - thumb_func_start sub_80D727C -sub_80D727C: @ 80D727C - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080D728E - cmp r0, 0x1 - beq _080D72C0 - b _080D72D4 -_080D728E: - ldr r4, _080D72BC - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - adds r0, r5, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080D72D4 - .align 2, 0 -_080D72BC: .4byte gUnknown_0202F7C8 -_080D72C0: - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080D72D4 - adds r0, r5, 0 - bl move_anim_8074EE0 -_080D72D4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D727C - - thumb_func_start sub_80D72DC -sub_80D72DC: @ 80D72DC - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080D7300 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bls _080D72F6 - b _080D7468 -_080D72F6: - lsls r0, 2 - ldr r1, _080D7304 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D7300: .4byte gTasks -_080D7304: .4byte _080D7308 - .align 2, 0 -_080D7308: - .4byte _080D731C - .4byte _080D73AC - .4byte _080D73E8 - .4byte _080D7444 - .4byte _080D7454 -_080D731C: - ldr r4, _080D73A0 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x14] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x16] - movs r0, 0x4 - strh r0, [r5, 0x18] - ldr r0, _080D73A4 - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x1C] - movs r2, 0x1C - ldrsh r0, [r5, r2] - movs r2, 0x14 - ldrsh r1, [r5, r2] - subs r0, r1 - movs r1, 0x5 - bl __divsi3 - strh r0, [r5, 0x1A] - movs r0, 0x7 - strh r0, [r5, 0x10] - ldr r0, _080D73A8 - strh r0, [r5, 0x12] - movs r0, 0xC - strh r0, [r5, 0x1E] - subs r0, 0x4C - bl sub_8076F98 - lsls r0, 24 - asrs r0, 24 - strh r0, [r5, 0x20] - movs r0, 0x3F - bl sub_8076F98 - lsls r0, 24 - asrs r0, 24 - strh r0, [r5, 0x22] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x24] - movs r1, 0x22 - ldrsh r0, [r5, r1] - movs r2, 0x20 - ldrsh r1, [r5, r2] - subs r0, r1 - movs r1, 0x3 - bl __divsi3 - strh r0, [r5, 0x26] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - b _080D7466 - .align 2, 0 -_080D73A0: .4byte gUnknown_0202F7C8 -_080D73A4: .4byte gUnknown_0202F7C9 -_080D73A8: .4byte 0x0000ffff -_080D73AC: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - cmp r0, 0 - ble _080D73DC - movs r0, 0 - strh r0, [r5, 0xA] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80D7470 - lsls r0, 24 - cmp r0, 0 - beq _080D73DC - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0x5 - bne _080D73D6 - movs r0, 0x3 - b _080D73DA -_080D73D6: - ldrh r0, [r5, 0x8] - adds r0, 0x1 -_080D73DA: - strh r0, [r5, 0x8] -_080D73DC: - ldrh r1, [r5, 0x1E] - movs r2, 0x1E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080D7468 - b _080D745E -_080D73E8: - ldrh r1, [r5, 0x1E] - movs r2, 0x1E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080D73F6 - subs r0, r1, 0x1 - strh r0, [r5, 0x1E] -_080D73F6: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - movs r3, 0 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080D7468 - strh r3, [r5, 0xA] - ldrh r1, [r5, 0xC] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080D7422 - movs r0, 0x4 - strh r0, [r5, 0x16] - movs r0, 0x44 - strh r0, [r5, 0x18] - strh r3, [r5, 0x10] - strh r2, [r5, 0x12] - b _080D7432 -_080D7422: - movs r0, 0x44 - strh r0, [r5, 0x16] - movs r0, 0x4 - strh r0, [r5, 0x18] - movs r0, 0x7 - strh r0, [r5, 0x10] - ldr r0, _080D7440 - strh r0, [r5, 0x12] -_080D7432: - movs r1, 0x1E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080D7464 - movs r0, 0x4 - b _080D7466 - .align 2, 0 -_080D7440: .4byte 0x0000ffff -_080D7444: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D7468 - adds r0, r2, 0 - bl move_anim_task_del - b _080D7468 -_080D7454: - ldrh r1, [r5, 0x1E] - movs r2, 0x1E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080D7464 -_080D745E: - subs r0, r1, 0x1 - strh r0, [r5, 0x1E] - b _080D7468 -_080D7464: - movs r0, 0x1 -_080D7466: - strh r0, [r5, 0x8] -_080D7468: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D72DC - - thumb_func_start sub_80D7470 -sub_80D7470: @ 80D7470 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _080D7538 - movs r2, 0x14 - ldrsh r1, [r4, r2] - movs r3, 0x16 - ldrsh r2, [r4, r3] - movs r3, 0x23 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080D74DC - ldr r1, _080D753C - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrh r2, [r3, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - ldrh r6, [r4, 0x10] - adds r1, r6 - ldr r6, _080D7540 - adds r0, r6, 0 - ands r1, r0 - ldr r0, _080D7544 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x10] - adds r0, r1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bge _080D74C4 - movs r0, 0x7 - strh r0, [r4, 0x10] -_080D74C4: - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0x7 - ble _080D74D0 - movs r0, 0 - strh r0, [r4, 0x10] -_080D74D0: - strh r5, [r3, 0x3A] - movs r0, 0x3 - strh r0, [r3, 0x3C] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] -_080D74DC: - movs r3, 0x10 - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080D74FE - movs r5, 0x12 - ldrsh r0, [r4, r5] - cmp r0, 0 - ble _080D74FE - ldrh r1, [r4, 0x26] - ldrh r6, [r4, 0x24] - adds r1, r6 - strh r1, [r4, 0x24] - lsls r1, 24 - asrs r1, 24 - movs r0, 0x76 - bl PlaySE12WithPanning -_080D74FE: - movs r0, 0x12 - ldrsh r3, [r4, r0] - ldrh r2, [r4, 0x16] - cmp r3, 0 - bge _080D7514 - lsls r0, r2, 16 - asrs r0, 16 - movs r5, 0x18 - ldrsh r1, [r4, r5] - cmp r0, r1 - ble _080D7524 -_080D7514: - cmp r3, 0 - ble _080D7548 - lsls r0, r2, 16 - asrs r0, 16 - movs r6, 0x18 - ldrsh r1, [r4, r6] - cmp r0, r1 - blt _080D7548 -_080D7524: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x1A] - ldrh r1, [r4, 0x14] - adds r0, r1 - strh r0, [r4, 0x14] - movs r0, 0x1 - b _080D7554 - .align 2, 0 -_080D7538: .4byte gSpriteTemplate_83D9B40 -_080D753C: .4byte gSprites -_080D7540: .4byte 0x000003ff -_080D7544: .4byte 0xfffffc00 -_080D7548: - movs r3, 0x12 - ldrsh r0, [r4, r3] - lsls r0, 3 - adds r0, r2, r0 - strh r0, [r4, 0x16] - movs r0, 0 -_080D7554: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80D7470 - - thumb_func_start sub_80D755C -sub_80D755C: @ 80D755C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _080D7592 - ldr r3, _080D7598 - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080D7592: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D7598: .4byte gTasks - thumb_func_end sub_80D755C - - thumb_func_start sub_80D759C -sub_80D759C: @ 80D759C - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080D75C0 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080D7618 - cmp r0, 0x1 - bgt _080D75C4 - cmp r0, 0 - beq _080D75CA - b _080D764E - .align 2, 0 -_080D75C0: .4byte gTasks -_080D75C4: - cmp r0, 0x2 - beq _080D7640 - b _080D764E -_080D75CA: - ldr r0, _080D7614 - ldrb r0, [r0] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r5, 0x26] - strh r0, [r5, 0x24] - cmp r0, 0x10 - ble _080D75F4 - adds r2, r0, 0 -_080D75E4: - adds r1, r2, 0 - subs r1, 0x20 - adds r2, r1, 0 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x10 - bgt _080D75E4 - strh r1, [r5, 0x24] -_080D75F4: - ldr r4, _080D7614 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x2 - strh r0, [r5, 0x20] - b _080D7638 - .align 2, 0 -_080D7614: .4byte gUnknown_0202F7C9 -_080D7618: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D764E - movs r0, 0 - strh r0, [r5, 0xA] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80D7654 - lsls r0, 24 - cmp r0, 0 - beq _080D764E -_080D7638: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080D764E -_080D7640: - movs r1, 0x1C - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D764E - adds r0, r2, 0 - bl move_anim_task_del -_080D764E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D759C - - thumb_func_start sub_80D7654 -sub_80D7654: @ 80D7654 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _080D76B0 - movs r2, 0x22 - ldrsh r1, [r4, r2] - movs r3, 0x24 - ldrsh r2, [r4, r3] - ldrh r3, [r4, 0x20] - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080D7698 - ldr r3, _080D76B4 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r1, r0, r1 - ldr r2, _080D76B8 - str r2, [r1] - adds r0, r3 - strh r5, [r0, 0x3A] - movs r1, 0xA - strh r1, [r0, 0x3C] - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] -_080D7698: - ldrh r2, [r4, 0x24] - movs r0, 0x24 - ldrsh r1, [r4, r0] - movs r3, 0x26 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080D76BC - adds r0, r2, 0 - adds r0, 0x20 - strh r0, [r4, 0x24] - movs r0, 0 - b _080D76BE - .align 2, 0 -_080D76B0: .4byte gBattleAnimSpriteTemplate_83D97D0 -_080D76B4: .4byte gSprites -_080D76B8: .4byte sub_80D76C4 -_080D76BC: - movs r0, 0x1 -_080D76BE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80D7654 - - thumb_func_start sub_80D76C4 -sub_80D76C4: @ 80D76C4 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D76F8 - ldr r3, _080D7700 - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080D76F8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D7700: .4byte gTasks - thumb_func_end sub_80D76C4 - - thumb_func_start sub_80D7704 -sub_80D7704: @ 80D7704 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x7 - ldr r3, _080D780C - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D7810 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r4, _080D7814 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r4, _080D7818 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - str r3, [sp] - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080D781C - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r1] - ldr r3, [sp] - adds r0, r3 - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x4] - mov r4, r9 - adds r0, r4, r0 - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x2] - adds r0, r6 - strh r0, [r5, 0x34] - ldrh r0, [r1, 0x6] - mov r7, r8 - adds r0, r7, r0 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078314 - adds r4, 0x20 - movs r0, 0x98 - lsls r0, 1 - mov r12, r0 - ldr r3, [sp] - cmp r4, r12 - bhi _080D77DE - adds r0, r7, 0 - adds r0, 0x20 - ldrh r1, [r5, 0x30] - ldrh r2, [r5, 0x32] - cmp r0, 0xE0 - bhi _080D77DE - adds r4, r1, 0 - mov r10, r12 -_080D77AA: - mov r7, r9 - lsls r1, r7, 16 - asrs r1, 16 - adds r1, r4 - lsls r1, 16 - mov r7, r8 - lsls r0, r7, 16 - asrs r0, 16 - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsrs r0, r1, 16 - mov r9, r0 - movs r7, 0x80 - lsls r7, 14 - adds r1, r7 - lsrs r1, 16 - cmp r1, r10 - bhi _080D77DE - mov r1, r8 - lsls r0, r1, 16 - adds r0, r7 - lsrs r0, 16 - cmp r0, 0xE0 - bls _080D77AA -_080D77DE: - ldrh r0, [r5, 0x30] - negs r7, r0 - strh r7, [r5, 0x30] - ldrh r0, [r5, 0x32] - negs r4, r0 - strh r4, [r5, 0x32] - lsls r0, r3, 16 - movs r1, 0x80 - lsls r1, 14 - adds r0, r1 - lsrs r0, 16 - movs r2, 0x98 - lsls r2, 1 - mov r12, r2 - ldr r1, _080D781C - mov r10, r1 - cmp r0, r12 - bhi _080D784A - lsls r1, r6, 16 - movs r2, 0x80 - lsls r2, 14 - adds r0, r1, r2 - b _080D7842 - .align 2, 0 -_080D780C: .4byte 0x000003ff -_080D7810: .4byte 0xfffffc00 -_080D7814: .4byte gUnknown_0202F7C9 -_080D7818: .4byte gUnknown_0202F7C8 -_080D781C: .4byte gUnknown_03004B00 -_080D7820: - lsls r1, r3, 16 - asrs r1, 16 - adds r1, r7 - lsls r1, 16 - asrs r0, r2, 16 - adds r0, r4 - lsls r0, 16 - lsrs r6, r0, 16 - lsrs r3, r1, 16 - movs r0, 0x80 - lsls r0, 14 - adds r1, r0 - lsrs r1, 16 - cmp r1, r12 - bhi _080D784A - lsls r1, r6, 16 - adds r0, r1, r0 -_080D7842: - lsrs r0, 16 - adds r2, r1, 0 - cmp r0, 0xE0 - bls _080D7820 -_080D784A: - strh r3, [r5, 0x20] - strh r6, [r5, 0x22] - mov r1, r10 - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x2E] - strh r3, [r5, 0x30] - mov r2, r9 - strh r2, [r5, 0x32] - strh r6, [r5, 0x34] - mov r3, r8 - strh r3, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078314 - mov r7, r10 - ldrh r0, [r7, 0xA] - strh r0, [r5, 0x34] - ldrh r0, [r7, 0xC] - strh r0, [r5, 0x36] - ldr r0, _080D7884 - str r0, [r5, 0x1C] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D7884: .4byte sub_80D7888 - thumb_func_end sub_80D7704 - - thumb_func_start sub_80D7888 -sub_80D7888: @ 80D7888 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D78E0 - ldrh r1, [r4, 0x30] - ldrh r2, [r4, 0x38] - adds r1, r2 - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x3A] - adds r0, r2 - strh r0, [r4, 0x3A] - strh r1, [r4, 0x24] - strh r0, [r4, 0x26] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x3C] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - b _080D78E6 -_080D78E0: - adds r0, r4, 0 - bl move_anim_8072740 -_080D78E6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D7888 - - thumb_func_start sub_80D78EC -sub_80D78EC: @ 80D78EC - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D7920 - ldrh r0, [r0] - strh r0, [r4, 0x2E] - movs r0, 0x3C - strh r0, [r4, 0x30] - movs r0, 0x9 - strh r0, [r4, 0x32] - movs r0, 0x1E - strh r0, [r4, 0x34] - movs r0, 0xFE - lsls r0, 8 - strh r0, [r4, 0x36] - ldr r1, _080D7924 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r1, _080D7928 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D7920: .4byte gUnknown_03004B00 -_080D7924: .4byte move_anim_8072740 -_080D7928: .4byte sub_8078174 - thumb_func_end sub_80D78EC - - thumb_func_start sub_80D792C -sub_80D792C: @ 80D792C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080D7960 - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldr r0, _080D7964 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D796C - ldr r0, _080D7968 - ldrh r1, [r4, 0x32] - ldrh r0, [r0, 0x4] - subs r1, r0 - strh r1, [r4, 0x32] - b _080D7976 - .align 2, 0 -_080D7960: .4byte gUnknown_0202F7C9 -_080D7964: .4byte gUnknown_0202F7C8 -_080D7968: .4byte gUnknown_03004B00 -_080D796C: - ldr r0, _080D79A4 - ldrh r0, [r0, 0x4] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] -_080D7976: - ldr r0, _080D79A8 - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - ldr r1, _080D79A4 - lsrs r0, 24 - ldrh r2, [r1, 0x6] - adds r0, r2 - strh r0, [r4, 0x36] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x2E] - ldr r1, _080D79AC - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080D79B0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D79A4: .4byte gUnknown_03004B00 -_080D79A8: .4byte gUnknown_0202F7C9 -_080D79AC: .4byte move_anim_8072740 -_080D79B0: .4byte sub_8078B34 - thumb_func_end sub_80D792C - - thumb_func_start sub_80D79B4 -sub_80D79B4: @ 80D79B4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D79CC - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D79D0 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - b _080D7A06 - .align 2, 0 -_080D79CC: .4byte gUnknown_03004B00 -_080D79D0: - ldr r0, _080D7A18 - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_807A3FC - ldr r0, _080D7A1C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D79F6 - ldrh r0, [r5] - negs r0, r0 - strh r0, [r5] -_080D79F6: - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080D7A06: - ldr r1, _080D7A20 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080D7A24 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D7A18: .4byte gUnknown_0202F7C9 -_080D7A1C: .4byte gUnknown_0202F7C8 -_080D7A20: .4byte sub_80D7A28 -_080D7A24: .4byte sub_80785E4 - thumb_func_end sub_80D79B4 - - thumb_func_start sub_80D7A28 -sub_80D7A28: @ 80D7A28 - push {lr} - adds r3, r0, 0 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080D7A5E - adds r0, r3, 0 - bl move_anim_8074EE0 -_080D7A5E: - pop {r0} - bx r0 - thumb_func_end sub_80D7A28 - - thumb_func_start sub_80D7A64 -sub_80D7A64: @ 80D7A64 - push {r4-r7,lr} - sub sp, 0x10 - adds r5, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r6, _080D7AAC - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D7AB4 - ldr r4, _080D7AB0 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x6] - adds r0, r6 - strh r0, [r5, 0x36] - b _080D7AC6 - .align 2, 0 -_080D7AAC: .4byte gUnknown_03004B00 -_080D7AB0: .4byte gUnknown_0202F7C9 -_080D7AB4: - ldr r0, _080D7AE0 - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_807A3FC -_080D7AC6: - ldr r0, _080D7AE4 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D7AEC - ldr r0, _080D7AE8 - ldrh r1, [r5, 0x32] - ldrh r0, [r0, 0x4] - subs r1, r0 - strh r1, [r5, 0x32] - b _080D7AF6 - .align 2, 0 -_080D7AE0: .4byte gUnknown_0202F7C9 -_080D7AE4: .4byte gUnknown_0202F7C8 -_080D7AE8: .4byte gUnknown_03004B00 -_080D7AEC: - ldr r0, _080D7B94 - ldrh r0, [r0, 0x4] - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] -_080D7AF6: - adds r7, r5, 0 - adds r7, 0x2E - adds r2, r7, 0 - mov r1, sp - movs r4, 0x7 -_080D7B00: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080D7B00 - adds r0, r5, 0 - bl sub_8078D60 - ldrh r0, [r5, 0x30] - movs r1, 0x1 - eors r0, r1 - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - eors r0, r1 - strh r0, [r5, 0x32] -_080D7B22: - movs r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl sub_8078CE8 - movs r0, 0x20 - ldrsh r1, [r5, r0] - movs r2, 0x24 - ldrsh r0, [r5, r2] - adds r1, r0 - adds r1, 0x10 - movs r0, 0x88 - lsls r0, 1 - cmp r1, r0 - bhi _080D7B56 - movs r0, 0x22 - ldrsh r1, [r5, r0] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080D7B56 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080D7B22 -_080D7B56: - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - ldr r6, _080D7B98 - ldr r1, _080D7B9C - mov r3, sp - adds r2, r7, 0 - movs r4, 0x7 -_080D7B76: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080D7B76 - str r6, [r5, 0x1C] - adds r0, r5, 0 - bl oamt_set_x3A_32 - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D7B94: .4byte gUnknown_03004B00 -_080D7B98: .4byte sub_8078D8C -_080D7B9C: .4byte sub_80D7BA0 - thumb_func_end sub_80D7A64 - - thumb_func_start sub_80D7BA0 -sub_80D7BA0: @ 80D7BA0 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r5, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r5, [r4, 0x26] - strh r5, [r4, 0x24] - movs r0, 0x80 - strh r0, [r4, 0x2E] - ldr r0, _080D7BFC - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - ldr r1, _080D7C00 - cmp r0, 0 - beq _080D7BD0 - movs r1, 0x14 -_080D7BD0: - movs r2, 0x2E - ldrsh r0, [r4, r2] - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x34] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - strh r0, [r4, 0x36] - strh r5, [r4, 0x38] - ldr r1, _080D7C04 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D7BFC: .4byte gUnknown_0202F7C8 -_080D7C00: .4byte 0x0000ffec -_080D7C04: .4byte sub_80D7C08 - thumb_func_end sub_80D7BA0 - - thumb_func_start sub_80D7C08 -sub_80D7C08: @ 80D7C08 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D7C5C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - ldr r1, _080D7C60 - cmp r0, 0 - beq _080D7C1E - movs r1, 0x14 -_080D7C1E: - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0x1F - bgt _080D7C64 - movs r2, 0x2E - ldrsh r0, [r4, r2] - lsls r1, 16 - asrs r1, 16 - bl Sin - ldrh r1, [r4, 0x34] - subs r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - ldrh r1, [r4, 0x36] - subs r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x10 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - b _080D7C82 - .align 2, 0 -_080D7C5C: .4byte gUnknown_0202F7C8 -_080D7C60: .4byte 0x0000ffec -_080D7C64: - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - strh r1, [r4, 0x36] - strh r1, [r4, 0x34] - ldr r0, _080D7C88 - str r0, [r4, 0x1C] -_080D7C82: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D7C88: .4byte sub_80D7C8C - thumb_func_end sub_80D7C08 - - thumb_func_start sub_80D7C8C -sub_80D7C8C: @ 80D7C8C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_8078CE8 - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080D7CC8 - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r1, r0, r1 - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - bgt _080D7CC8 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080D7CCE -_080D7CC8: - adds r0, r4, 0 - bl move_anim_8072740 -_080D7CCE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D7C8C - - thumb_func_start sub_80D7CD4 -sub_80D7CD4: @ 80D7CD4 - push {r4-r7,lr} - sub sp, 0x10 - adds r5, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r1, _080D7D18 - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080D7D20 - ldr r4, _080D7D1C - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - b _080D7D32 - .align 2, 0 -_080D7D18: .4byte gUnknown_03004B00 -_080D7D1C: .4byte gUnknown_0202F7C9 -_080D7D20: - ldr r0, _080D7D50 - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_807A3FC -_080D7D32: - ldr r0, _080D7D54 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D7D5C - ldr r0, _080D7D58 - ldrh r1, [r5, 0x32] - ldrh r2, [r0, 0x4] - subs r1, r2 - strh r1, [r5, 0x32] - adds r1, r0, 0 - b _080D7D66 - .align 2, 0 -_080D7D50: .4byte gUnknown_0202F7C9 -_080D7D54: .4byte gUnknown_0202F7C8 -_080D7D58: .4byte gUnknown_03004B00 -_080D7D5C: - ldr r1, _080D7E10 - ldrh r0, [r1, 0x4] - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] -_080D7D66: - ldrh r0, [r1, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078D60 - adds r7, r5, 0 - adds r7, 0x2E - adds r2, r7, 0 - mov r1, sp - movs r4, 0x7 -_080D7D7E: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080D7D7E - ldrh r0, [r5, 0x30] - movs r1, 0x1 - eors r0, r1 - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - eors r0, r1 - strh r0, [r5, 0x32] -_080D7D9A: - movs r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl sub_8078CE8 - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r2, 0x24 - ldrsh r0, [r5, r2] - adds r1, r0 - adds r1, 0x10 - movs r0, 0x88 - lsls r0, 1 - cmp r1, r0 - bhi _080D7DCE - movs r0, 0x22 - ldrsh r1, [r5, r0] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080D7DCE - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080D7D9A -_080D7DCE: - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - ldr r1, _080D7E10 - ldr r6, _080D7E14 - mov r3, sp - adds r2, r7, 0 - movs r4, 0x7 -_080D7DEE: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080D7DEE - ldrh r0, [r1, 0xA] - strh r0, [r5, 0x38] - ldrh r0, [r1, 0xC] - strh r0, [r5, 0x3A] - str r6, [r5, 0x1C] - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D7E10: .4byte gUnknown_03004B00 -_080D7E14: .4byte sub_80D7E18 - thumb_func_end sub_80D7CD4 - - thumb_func_start sub_80D7E18 -sub_80D7E18: @ 80D7E18 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078CE8 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D7E2C - movs r0, 0x1 - strh r0, [r4, 0x2E] -_080D7E2C: - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r2, [r4, 0x3C] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080D7E82 - movs r2, 0x20 - ldrsh r0, [r4, r2] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080D7E7C - movs r0, 0x22 - ldrsh r1, [r4, r0] - movs r2, 0x26 - ldrsh r0, [r4, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080D7E7C - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080D7E82 -_080D7E7C: - adds r0, r4, 0 - bl move_anim_8072740 -_080D7E82: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D7E18 - - thumb_func_start sub_80D7E88 -sub_80D7E88: @ 80D7E88 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D7EF4 - ldr r5, _080D7EA8 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D7EAC - adds r0, r4, 0 - movs r1, 0 - bl sub_8078764 - b _080D7EE2 - .align 2, 0 -_080D7EA8: .4byte gUnknown_03004B00 -_080D7EAC: - ldr r0, _080D7EEC - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_807A3FC - ldr r0, _080D7EF0 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D7ED2 - ldrh r0, [r5] - negs r0, r0 - strh r0, [r5] -_080D7ED2: - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080D7EE2: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080D7F08 - .align 2, 0 -_080D7EEC: .4byte gUnknown_0202F7C9 -_080D7EF0: .4byte gUnknown_0202F7C8 -_080D7EF4: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D7F08 - adds r0, r4, 0 - bl move_anim_8072740 -_080D7F08: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D7E88 - - thumb_func_start sub_80D7F10 -sub_80D7F10: @ 80D7F10 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080D7F30 - movs r1, 0x8 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D7F80 - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D7F34 - adds r0, r5, 0 - movs r1, 0 - bl sub_80787B0 - b _080D7F72 - .align 2, 0 -_080D7F30: .4byte gUnknown_03004B00 -_080D7F34: - ldr r4, _080D7F5C - ldrb r0, [r4] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_807A3FC - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D7F60 - ldrh r0, [r5, 0x20] - ldrh r1, [r6] - subs r0, r1 - b _080D7F66 - .align 2, 0 -_080D7F5C: .4byte gUnknown_0202F7C8 -_080D7F60: - ldrh r0, [r6] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080D7F66: - strh r0, [r5, 0x20] - ldr r0, _080D7F78 - ldrh r0, [r0, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] -_080D7F72: - ldr r0, _080D7F7C - b _080D7FD0 - .align 2, 0 -_080D7F78: .4byte gUnknown_03004B00 -_080D7F7C: .4byte gUnknown_0202F7C8 -_080D7F80: - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D7F92 - adds r0, r5, 0 - movs r1, 0 - bl sub_8078764 - b _080D7FCE -_080D7F92: - ldr r4, _080D7FB8 - ldrb r0, [r4] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_807A3FC - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D7FBC - ldrh r0, [r5, 0x20] - ldrh r1, [r6] - subs r0, r1 - b _080D7FC2 - .align 2, 0 -_080D7FB8: .4byte gUnknown_0202F7C9 -_080D7FBC: - ldrh r0, [r6] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080D7FC2: - strh r0, [r5, 0x20] - ldr r0, _080D7FEC - ldrh r0, [r0, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] -_080D7FCE: - ldr r0, _080D7FF0 -_080D7FD0: - ldrb r0, [r0] - strh r0, [r5, 0x3C] - ldr r0, _080D7FEC - movs r1, 0xA - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080D7FE8 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _080D7FF4 -_080D7FE8: - movs r0, 0x20 - b _080D7FF6 - .align 2, 0 -_080D7FEC: .4byte gUnknown_03004B00 -_080D7FF0: .4byte gUnknown_0202F7C9 -_080D7FF4: - movs r0, 0x40 -_080D7FF6: - strh r0, [r5, 0x3A] - ldr r0, _080D803C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D800C - ldrh r0, [r5, 0x22] - adds r0, 0x8 - strh r0, [r5, 0x22] -_080D800C: - ldr r1, _080D8040 - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrh r1, [r1, 0x4] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x40 - strh r0, [r5, 0x38] - ldr r1, _080D8044 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D803C: .4byte gUnknown_0202F7C9 -_080D8040: .4byte gUnknown_03004B00 -_080D8044: .4byte sub_80D8048 - thumb_func_end sub_80D7F10 - - thumb_func_start sub_80D8048 -sub_80D8048: @ 80D8048 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080D80D2 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r1, 0x6 - negs r1, r1 - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080D80A4 - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080D80C6 -_080D80A4: - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] -_080D80C6: - ldrh r0, [r4, 0x38] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080D80D8 -_080D80D2: - adds r0, r4, 0 - bl move_anim_8072740 -_080D80D8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D8048 - - thumb_func_start sub_80D80E0 -sub_80D80E0: @ 80D80E0 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080D81A8 - ldr r2, _080D81AC - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _080D81B0 - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D812A - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080D812A: - ldr r0, _080D81B4 - movs r1, 0 - strh r1, [r0] - ldr r0, _080D81B8 - strh r1, [r0] - ldr r0, _080D81BC - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080D81C0 - add r2, sp, 0xC - str r2, [r0] - str r1, [r0, 0x4] - ldr r2, _080D81C4 - str r2, [r0, 0x8] - ldr r2, [r0, 0x8] - ldr r2, _080D81C8 - ldr r3, [sp] - str r2, [r0] - str r3, [r0, 0x4] - ldr r2, _080D81CC - str r2, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _080D81D0 - bl LZDecompressVram - ldr r0, _080D81D4 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadPalette - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D8190 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080D8190: - ldr r0, _080D81D8 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080D81DC - str r0, [r1] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D81A8: .4byte REG_BLDCNT -_080D81AC: .4byte 0x00003f42 -_080D81B0: .4byte REG_BG1CNT -_080D81B4: .4byte gUnknown_030042C0 -_080D81B8: .4byte gUnknown_030041B4 -_080D81BC: .4byte REG_BG1HOFS -_080D81C0: .4byte 0x040000d4 -_080D81C4: .4byte 0x85000400 -_080D81C8: .4byte gWeatherFog1Tiles -_080D81CC: .4byte 0x80000400 -_080D81D0: .4byte gWeatherFog1Tilemap -_080D81D4: .4byte gUnknown_083970E8 -_080D81D8: .4byte gTasks -_080D81DC: .4byte sub_80D81E0 - thumb_func_end sub_80D80E0 - - thumb_func_start sub_80D81E0 -sub_80D81E0: @ 80D81E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _080D8220 - ldr r1, _080D8224 - adds r0, r1, 0 - ldrh r4, [r2] - adds r0, r4 - strh r0, [r2] - ldr r1, _080D8228 - ldr r3, _080D822C - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r3 - movs r4, 0x20 - ldrsh r0, [r0, r4] - adds r4, r1, 0 - cmp r0, 0x4 - bls _080D8214 - b _080D83B0 -_080D8214: - lsls r0, 2 - ldr r1, _080D8230 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D8220: .4byte gUnknown_030042C0 -_080D8224: .4byte 0x0000ffff -_080D8228: .4byte gUnknown_030041B4 -_080D822C: .4byte gTasks -_080D8230: .4byte _080D8234 - .align 2, 0 -_080D8234: - .4byte _080D8248 - .4byte _080D82A0 - .4byte _080D82C2 - .4byte _080D8304 - .4byte _080D838C -_080D8248: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r3 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - movs r4, 0 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - beq _080D8262 - b _080D83B0 -_080D8262: - strh r4, [r3, 0x1C] - ldrh r0, [r3, 0x1A] - adds r0, 0x1 - strh r0, [r3, 0x1A] - ldr r1, _080D8298 - movs r2, 0x1A - ldrsh r0, [r3, r2] - adds r0, r1 - ldrb r1, [r0] - strh r1, [r3, 0x1E] - ldr r2, _080D829C - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x1E - ldrsh r0, [r3, r1] - cmp r0, 0x9 - beq _080D828C - b _080D83B0 -_080D828C: - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r4, [r3, 0x1E] - b _080D83B0 - .align 2, 0 -_080D8298: .4byte gUnknown_083D9D6C -_080D829C: .4byte REG_BLDALPHA -_080D82A0: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r3 - ldrh r0, [r3, 0x1E] - adds r0, 0x1 - strh r0, [r3, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x51 - bne _080D83B0 - movs r0, 0x9 - strh r0, [r3, 0x1E] - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - b _080D83B0 -_080D82C2: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r3 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080D83B0 - movs r0, 0 - strh r0, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - subs r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080D8300 - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r2, 0x1E - ldrsh r1, [r3, r2] - cmp r1, 0 - bne _080D83B0 - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r1, [r3, 0x1E] - b _080D83B0 - .align 2, 0 -_080D8300: .4byte REG_BLDALPHA -_080D8304: - mov r0, sp - bl sub_8078914 - ldr r2, [sp] - movs r3, 0x80 - lsls r3, 6 - lsls r4, r6, 2 - mov r10, r4 - add r5, sp, 0xC - movs r7, 0 - ldr r1, _080D83C0 - movs r4, 0x80 - lsls r4, 5 - mov r8, r5 - ldr r0, _080D83C4 - mov r12, r0 - movs r0, 0x85 - lsls r0, 24 - mov r9, r0 -_080D832A: - str r7, [sp, 0xC] - mov r0, r8 - str r0, [r1] - str r2, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080D832A - str r7, [sp, 0xC] - str r5, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r9 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080D83C0 - str r5, [r0] - str r1, [r0, 0x4] - ldr r1, _080D83C8 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D8378 - ldr r2, _080D83CC - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080D8378: - ldr r0, _080D83D0 - mov r4, r10 - adds r1, r4, r6 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - ldr r2, _080D83D4 - ldr r4, _080D83D8 -_080D838C: - movs r1, 0 - strh r1, [r2] - strh r1, [r4] - ldr r0, _080D83DC - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r2, _080D83CC - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - adds r0, r6, 0 - bl move_anim_task_del -_080D83B0: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D83C0: .4byte 0x040000d4 -_080D83C4: .4byte 0x85000400 -_080D83C8: .4byte 0x85000200 -_080D83CC: .4byte REG_BG1CNT -_080D83D0: .4byte gTasks -_080D83D4: .4byte gUnknown_030042C0 -_080D83D8: .4byte gUnknown_030041B4 -_080D83DC: .4byte REG_BLDCNT - thumb_func_end sub_80D81E0 - - thumb_func_start sub_80D83E0 -sub_80D83E0: @ 80D83E0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D840C - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r0, _080D8410 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D840C: .4byte gUnknown_0202F7C8 -_080D8410: .4byte sub_807941C - thumb_func_end sub_80D83E0 - - thumb_func_start sub_80D8414 -sub_80D8414: @ 80D8414 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080D84E0 - ldr r2, _080D84E4 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _080D84E8 - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D845E - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080D845E: - ldr r0, _080D84EC - movs r1, 0 - strh r1, [r0] - ldr r0, _080D84F0 - strh r1, [r0] - ldr r0, _080D84F4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080D84F8 - add r2, sp, 0xC - str r2, [r0] - str r1, [r0, 0x4] - ldr r2, _080D84FC - str r2, [r0, 0x8] - ldr r2, [r0, 0x8] - ldr r2, _080D8500 - ldr r3, [sp] - str r2, [r0] - str r3, [r0, 0x4] - ldr r2, _080D8504 - str r2, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _080D8508 - bl LZDecompressVram - ldr r0, _080D850C - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadPalette - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D84C4 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080D84C4: - ldr r1, _080D8510 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080D8514 - strh r1, [r0, 0x26] - ldr r1, _080D8518 - str r1, [r0] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D84E0: .4byte REG_BLDCNT -_080D84E4: .4byte 0x00003f42 -_080D84E8: .4byte REG_BG1CNT -_080D84EC: .4byte gUnknown_030042C0 -_080D84F0: .4byte gUnknown_030041B4 -_080D84F4: .4byte REG_BG1HOFS -_080D84F8: .4byte 0x040000d4 -_080D84FC: .4byte 0x85000400 -_080D8500: .4byte gWeatherFog1Tiles -_080D8504: .4byte 0x80000400 -_080D8508: .4byte gWeatherFog1Tilemap -_080D850C: .4byte gUnknown_083970E8 -_080D8510: .4byte gTasks -_080D8514: .4byte 0x0000ffff -_080D8518: .4byte sub_80D851C - thumb_func_end sub_80D8414 - - thumb_func_start sub_80D851C -sub_80D851C: @ 80D851C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, _080D8558 - ldr r4, _080D855C - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r4 - ldrh r0, [r1, 0x26] - ldrh r2, [r3] - adds r0, r2 - strh r0, [r3] - ldr r2, _080D8560 - movs r5, 0x20 - ldrsh r0, [r1, r5] - cmp r0, 0x4 - bls _080D854C - b _080D86D0 -_080D854C: - lsls r0, 2 - ldr r1, _080D8564 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D8558: .4byte gUnknown_030042C0 -_080D855C: .4byte gTasks -_080D8560: .4byte gUnknown_030041B4 -_080D8564: .4byte _080D8568 - .align 2, 0 -_080D8568: - .4byte _080D857C - .4byte _080D85C0 - .4byte _080D85E2 - .4byte _080D8624 - .4byte _080D86AC -_080D857C: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r4 - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - ldr r1, _080D85B8 - movs r2, 0x1A - ldrsh r0, [r4, r2] - adds r0, r1 - ldrb r1, [r0] - strh r1, [r4, 0x1E] - ldr r2, _080D85BC - movs r0, 0x11 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r5, 0x1E - ldrsh r0, [r4, r5] - cmp r0, 0x5 - beq _080D85AC - b _080D86D0 -_080D85AC: - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - movs r0, 0 - strh r0, [r4, 0x1E] - b _080D86D0 - .align 2, 0 -_080D85B8: .4byte gUnknown_083D9D98 -_080D85BC: .4byte REG_BLDALPHA -_080D85C0: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r1, r0, r4 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x51 - bne _080D86D0 - movs r0, 0x5 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080D86D0 -_080D85E2: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r4 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080D86D0 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - subs r1, 0x1 - strh r1, [r4, 0x1E] - ldr r2, _080D8620 - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r0, 0x1E - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _080D86D0 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r1, [r4, 0x1E] - b _080D86D0 - .align 2, 0 -_080D8620: .4byte REG_BLDALPHA -_080D8624: - mov r0, sp - bl sub_8078914 - ldr r2, [sp] - movs r3, 0x80 - lsls r3, 6 - lsls r1, r6, 2 - mov r10, r1 - add r5, sp, 0xC - movs r7, 0 - ldr r1, _080D86E0 - movs r4, 0x80 - lsls r4, 5 - mov r8, r5 - ldr r0, _080D86E4 - mov r12, r0 - movs r0, 0x85 - lsls r0, 24 - mov r9, r0 -_080D864A: - str r7, [sp, 0xC] - mov r0, r8 - str r0, [r1] - str r2, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080D864A - str r7, [sp, 0xC] - str r5, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r9 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080D86E0 - str r5, [r0] - str r1, [r0, 0x4] - ldr r1, _080D86E8 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D8698 - ldr r2, _080D86EC - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080D8698: - ldr r0, _080D86F0 - mov r5, r10 - adds r1, r5, r6 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - ldr r3, _080D86F4 - ldr r2, _080D86F8 -_080D86AC: - movs r1, 0 - strh r1, [r3] - strh r1, [r2] - ldr r0, _080D86FC - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r2, _080D86EC - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - adds r0, r6, 0 - bl move_anim_task_del -_080D86D0: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D86E0: .4byte 0x040000d4 -_080D86E4: .4byte 0x85000400 -_080D86E8: .4byte 0x85000200 -_080D86EC: .4byte REG_BG1CNT -_080D86F0: .4byte gTasks -_080D86F4: .4byte gUnknown_030042C0 -_080D86F8: .4byte gUnknown_030041B4 -_080D86FC: .4byte REG_BLDCNT - thumb_func_end sub_80D851C - - thumb_func_start sub_80D8700 -sub_80D8700: @ 80D8700 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - ldr r6, _080D87E8 - ldrh r0, [r6] - strh r0, [r5, 0x2E] - ldr r0, _080D87EC - mov r8, r0 - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8077ABC - adds r4, r0, 0 - ldr r7, _080D87F0 - ldrb r0, [r7] - movs r1, 0x2 - bl sub_8077ABC - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bcs _080D8734 - movs r0, 0x80 - lsls r0, 8 - strh r0, [r5, 0x3C] -_080D8734: - ldr r3, _080D87F4 - ldrb r0, [r7] - adds r0, r3 - ldrb r1, [r0] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080D8794 - ldrh r0, [r6, 0x2] - negs r0, r0 - strh r0, [r6, 0x2] - ldrh r0, [r6, 0x6] - negs r0, r0 - strh r0, [r6, 0x6] - movs r1, 0x3C - ldrsh r0, [r5, r1] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080D8790 - mov r1, r8 - ldrb r0, [r1] - adds r0, r3 - ldrb r1, [r0] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080D8790 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - ldr r2, _080D87F8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0x1 - adds r1, r5, 0 - adds r1, 0x43 - strb r0, [r1] -_080D8790: - movs r0, 0x1 - strh r0, [r5, 0x3A] -_080D8794: - ldr r4, _080D87EC - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r6, _080D87E8 - movs r1, 0xE - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080D87FC - ldrh r0, [r6, 0x2] - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x30] - ldr r4, _080D87F0 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x6] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r6, 0x4] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - b _080D8824 - .align 2, 0 -_080D87E8: .4byte gUnknown_03004B00 -_080D87EC: .4byte gUnknown_0202F7C8 -_080D87F0: .4byte gUnknown_0202F7C9 -_080D87F4: .4byte gUnknown_02024A72 -_080D87F8: .4byte gSprites -_080D87FC: - ldrh r0, [r6, 0x2] - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x30] - ldr r4, _080D886C - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x6] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r6, 0x4] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x1 -_080D8824: - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x8] - adds r0, r6 - strh r0, [r5, 0x36] - ldrb r0, [r4] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 16 - ldrh r1, [r5, 0x3C] - orrs r0, r1 - strh r0, [r5, 0x3C] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D8858 - movs r0, 0x1 - strh r0, [r5, 0x3A] - adds r1, r5, 0 - adds r1, 0x43 - movs r0, 0x80 - strb r0, [r1] -_080D8858: - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080D8870 - str r0, [r5, 0x1C] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D886C: .4byte gUnknown_0202F7C9 -_080D8870: .4byte sub_80D8874 - thumb_func_end sub_80D8700 - - thumb_func_start sub_80D8874 -sub_80D8874: @ 80D8874 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x3C] - movs r5, 0xFF - movs r1, 0xFF - ands r1, r0 - cmp r1, 0x1 - beq _080D8968 - cmp r1, 0x1 - bgt _080D888E - cmp r1, 0 - beq _080D8896 - b _080D8AD0 -_080D888E: - cmp r1, 0x2 - bne _080D8894 - b _080D8A94 -_080D8894: - b _080D8AD0 -_080D8896: - adds r0, r4, 0 - bl sub_8078B5C - ldr r1, _080D88C0 - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - asrs r0, 4 - ldrh r2, [r4, 0x24] - adds r0, r2 - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D88C4 - ldrh r0, [r4, 0x38] - subs r0, 0x8 - b _080D88C8 - .align 2, 0 -_080D88C0: .4byte gSineTable -_080D88C4: - ldrh r0, [r4, 0x38] - adds r0, 0x8 -_080D88C8: - ands r0, r5 - strh r0, [r4, 0x38] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080D88D6 - b _080D8AD0 -_080D88D6: - movs r5, 0x50 - strh r5, [r4, 0x2E] - ldr r6, _080D8928 - ldrb r0, [r6] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, 0x1D - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - ldr r0, _080D892C - ldr r2, _080D8930 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D8938 - ldr r1, _080D8934 - ldrb r0, [r6] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D8938 - movs r0, 0xCC - strh r0, [r4, 0x38] - b _080D893A - .align 2, 0 -_080D8928: .4byte gUnknown_0202F7C9 -_080D892C: .4byte gMain -_080D8930: .4byte 0x0000043d -_080D8934: .4byte gUnknown_02024A72 -_080D8938: - strh r5, [r4, 0x38] -_080D893A: - movs r0, 0 - strh r0, [r4, 0x26] - ldr r1, _080D8964 - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - asrs r0, 3 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x38] - adds r0, 0x2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - b _080D8AD0 - .align 2, 0 -_080D8964: .4byte gSineTable -_080D8968: - adds r0, r4, 0 - bl sub_8078B5C - ldr r1, _080D89C8 - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - asrs r0, 3 - ldrh r2, [r4, 0x24] - adds r0, r2 - strh r0, [r4, 0x24] - movs r2, 0x38 - ldrsh r0, [r4, r2] - adds r0, 0x40 - lsls r0, 1 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 1 - adds r0, r1 - negs r0, r0 - asrs r0, 8 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldr r0, _080D89CC - ldr r2, _080D89D0 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D89F2 - ldrh r1, [r4, 0x38] - adds r0, r1, 0 - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - adds r3, r1, 0 - cmp r0, 0x7F - bhi _080D89D4 - ldrh r1, [r4, 0x3C] - lsls r1, 16 - asrs r1, 24 - b _080D89DC - .align 2, 0 -_080D89C8: .4byte gSineTable -_080D89CC: .4byte gMain -_080D89D0: .4byte 0x0000043d -_080D89D4: - ldrh r1, [r4, 0x3C] - lsls r1, 16 - asrs r1, 24 - adds r1, 0x1 -_080D89DC: - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - adds r0, r3, 0x4 - b _080D8A12 -_080D89F2: - ldrh r0, [r4, 0x38] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080D8A06 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x80 - b _080D8A0C -_080D8A06: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x8C -_080D8A0C: - strb r0, [r1] - ldrh r0, [r4, 0x38] - subs r0, 0x4 -_080D8A12: - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bgt _080D8AD0 - movs r2, 0 - movs r0, 0xC0 - lsls r0, 2 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, 0x4 - strh r0, [r4, 0x36] - ldr r0, _080D8A68 - ldr r1, _080D8A6C - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D8A78 - ldr r1, _080D8A70 - ldr r0, _080D8A74 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D8A78 - movs r0, 0x80 - lsls r0, 1 - b _080D8A7A - .align 2, 0 -_080D8A68: .4byte gMain -_080D8A6C: .4byte 0x0000043d -_080D8A70: .4byte gUnknown_02024A72 -_080D8A74: .4byte gUnknown_0202F7C9 -_080D8A78: - ldr r0, _080D8A90 -_080D8A7A: - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x3C] - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - adds r0, r4, 0 - bl sub_8078BD4 - b _080D8AD0 - .align 2, 0 -_080D8A90: .4byte 0x0000fff0 -_080D8A94: - adds r0, r4, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080D8AD0 - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D8AC2 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] -_080D8AC2: - adds r0, r4, 0 - bl DestroySprite - ldr r1, _080D8AD8 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_080D8AD0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D8AD8: .4byte gUnknown_0202F7B2 - thumb_func_end sub_80D8874 - - thumb_func_start sub_80D8ADC -sub_80D8ADC: @ 80D8ADC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D8AF0 - adds r1, r0 - ldr r0, _080D8AF4 - str r0, [r1] - bx lr - .align 2, 0 -_080D8AF0: .4byte gTasks -_080D8AF4: .4byte sub_80D8AF8 - thumb_func_end sub_80D8ADC - - thumb_func_start sub_80D8AF8 -sub_80D8AF8: @ 80D8AF8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080D8B1C - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080D8B3C - cmp r5, 0x1 - bgt _080D8B20 - cmp r5, 0 - beq _080D8B26 - b _080D8BA0 - .align 2, 0 -_080D8B1C: .4byte gTasks -_080D8B20: - cmp r5, 0x2 - beq _080D8B92 - b _080D8BA0 -_080D8B26: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080D8BA0 - strh r5, [r4, 0x10] - strh r5, [r4, 0x12] - strh r5, [r4, 0xC] - b _080D8B78 -_080D8B3C: - ldrh r1, [r4, 0x12] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080D8B8C - ldrb r0, [r4, 0xE] - ldrb r1, [r4, 0xC] - movs r3, 0x1 - bl sub_80D8BA8 - lsls r0, 24 - cmp r0, 0 - beq _080D8B5C - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] -_080D8B5C: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080D8B88 - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080D8B80 -_080D8B78: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D8BA0 -_080D8B80: - ldrh r0, [r4, 0x8] - subs r0, 0x1 - strh r0, [r4, 0x8] - b _080D8BA0 -_080D8B88: - strh r5, [r4, 0x12] - b _080D8BA0 -_080D8B8C: - subs r0, r1, 0x1 - strh r0, [r4, 0x12] - b _080D8BA0 -_080D8B92: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D8BA0 - adds r0, r2, 0 - bl move_anim_task_del -_080D8BA0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D8AF8 - - thumb_func_start sub_80D8BA8 -sub_80D8BA8: @ 80D8BA8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - lsls r3, 24 - lsrs r3, 24 - mov r10, r3 - movs r1, 0 - str r1, [sp, 0x4] - ldr r1, _080D8C20 - lsrs r0, 22 - adds r4, r0, r1 - ldrb r0, [r4, 0x3] - lsls r0, 24 - asrs r0, 28 - mov r8, r0 - cmp r0, 0x2 - beq _080D8C94 - ldrh r0, [r4, 0x2] - lsls r0, 20 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080D8C94 - movs r0, 0x1 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - mov r1, r8 - cmp r1, 0 - beq _080D8C24 - cmp r1, 0x1 - beq _080D8C5A - b _080D8CA6 - .align 2, 0 -_080D8C20: .4byte gUnknown_083D9DC4 -_080D8C24: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r0 - lsls r1, 16 - lsrs r7, r1, 16 - adds r0, r5, 0 - movs r1, 0 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r6, 16 - asrs r1, 16 - subs r1, r0 - b _080D8C8E -_080D8C5A: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r7, 16 - asrs r1, 16 - adds r1, r0 - lsls r1, 16 - lsrs r7, r1, 16 - adds r0, r5, 0 - movs r1, 0 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r6, 16 - asrs r1, 16 - adds r1, r0 -_080D8C8E: - lsls r1, 16 - lsrs r6, r1, 16 - b _080D8CA6 -_080D8C94: - ldrh r0, [r4] - lsls r0, 22 - asrs r0, 6 - lsrs r7, r0, 16 - ldr r0, [r4] - lsls r0, 12 - asrs r0, 22 - lsls r0, 16 - lsrs r6, r0, 16 -_080D8CA6: - lsls r0, r6, 16 - asrs r0, 16 - adds r0, 0x8 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r0 - ldr r0, _080D8D00 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x8 - negs r2, r2 - movs r3, 0x12 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _080D8D08 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r0, _080D8D04 - adds r4, r0 - adds r0, r4, 0 - mov r1, r9 - bl StartSpriteAffineAnim - mov r0, sp - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - strh r7, [r4, 0x34] - strh r6, [r4, 0x36] - mov r1, r9 - strh r1, [r4, 0x38] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x3A] - mov r1, r10 - strh r1, [r4, 0x3C] - movs r0, 0x1 - b _080D8D0A - .align 2, 0 -_080D8D00: .4byte gSpriteTemplate_83D9E3C -_080D8D04: .4byte gSprites -_080D8D08: - movs r0, 0 -_080D8D0A: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80D8BA8 - - thumb_func_start sub_80D8D1C -sub_80D8D1C: @ 80D8D1C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - adds r0, 0x4 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x22] - adds r2, r1, 0 - adds r2, 0x8 - strh r2, [r4, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x34 - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _080D8D46 - lsls r0, r2, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080D8DF6 -_080D8D46: - movs r3, 0x2E - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _080D8DC8 - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D8DC8 - ldr r0, _080D8DBC - movs r2, 0x34 - ldrsh r1, [r4, r2] - movs r3, 0x36 - ldrsh r2, [r4, r3] - adds r3, r4, 0 - adds r3, 0x43 - ldrb r3, [r3] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - cmp r0, 0x40 - beq _080D8DAA - ldr r2, _080D8DC0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080D8DC4 - str r1, [r0] - movs r3, 0x2E - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x3A] - strh r1, [r0, 0x3A] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x3C] - strh r1, [r0, 0x3C] -_080D8DAA: - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite - b _080D8DF6 - .align 2, 0 -_080D8DBC: .4byte gBattleAnimSpriteTemplate_83D9C78 -_080D8DC0: .4byte gSprites -_080D8DC4: .4byte sub_80D8E00 -_080D8DC8: - ldr r3, _080D8DFC - movs r2, 0x3C - ldrsh r1, [r4, r2] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080D8DF6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D8DFC: .4byte gTasks - thumb_func_end sub_80D8D1C - - thumb_func_start sub_80D8E00 -sub_80D8E00: @ 80D8E00 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080D8E40 - ldr r3, _080D8E48 - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080D8E40: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D8E48: .4byte gTasks - thumb_func_end sub_80D8E00 - - thumb_func_start unc_080B06FC -unc_080B06FC: @ 80D8E4C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080D8ECC - ldr r0, [r0] - ldrb r1, [r0, 0x11] - lsrs r0, r1, 4 - lsls r1, 28 - lsrs r1, 28 - subs r0, r1 - subs r0, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080D8E6A - movs r1, 0x4 -_080D8E6A: - adds r0, r5, 0 - bl StartSpriteAffineAnim - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r6, _080D8ED0 - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - ldr r0, _080D8ED4 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D8E92 - ldrh r0, [r6, 0x4] - negs r0, r0 - strh r0, [r6, 0x4] -_080D8E92: - ldr r4, _080D8ED8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x6] - adds r0, r1 - strh r0, [r5, 0x36] - ldrh r0, [r6, 0xA] - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_80786EC - ldr r0, _080D8EDC - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D8ECC: .4byte gUnknown_0202F7B4 -_080D8ED0: .4byte gUnknown_03004B00 -_080D8ED4: .4byte gUnknown_0202F7C8 -_080D8ED8: .4byte gUnknown_0202F7C9 -_080D8EDC: .4byte sub_80D8EE0 - thumb_func_end unc_080B06FC - - thumb_func_start sub_80D8EE0 -sub_80D8EE0: @ 80D8EE0 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080D8F02 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, _080D8F08 - str r0, [r4, 0x1C] - ldr r1, _080D8F0C - adds r0, r4, 0 - bl oamt_set_x3A_32 -_080D8F02: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D8F08: .4byte sub_8078600 -_080D8F0C: .4byte move_anim_8072740 - thumb_func_end sub_80D8EE0 - - thumb_func_start sub_80D8F10 -sub_80D8F10: @ 80D8F10 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r3, _080D8F64 - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D8F68 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - bl Random - movs r5, 0xFF - ands r5, r0 - movs r0, 0x80 - lsls r0, 1 - adds r6, r0, 0 - orrs r5, r6 - bl Random - ldr r1, _080D8F6C - ands r1, r0 - adds r0, r1, 0 - cmp r0, 0xFF - ble _080D8F56 - subs r0, r6, r0 - lsls r0, 16 - lsrs r1, r0, 16 -_080D8F56: - strh r5, [r4, 0x30] - strh r1, [r4, 0x32] - ldr r0, _080D8F70 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D8F64: .4byte 0x000003ff -_080D8F68: .4byte 0xfffffc00 -_080D8F6C: .4byte 0x000001ff -_080D8F70: .4byte sub_80D8F74 - thumb_func_end sub_80D8F10 - - thumb_func_start sub_80D8F74 -sub_80D8F74: @ 80D8F74 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x34] - adds r3, r0, r1 - strh r3, [r2, 0x34] - ldrh r1, [r2, 0x32] - ldrh r4, [r2, 0x36] - adds r1, r4 - strh r1, [r2, 0x36] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080D8F98 - lsls r0, r3, 16 - asrs r0, 24 - negs r0, r0 - b _080D8F9C -_080D8F98: - lsls r0, r3, 16 - asrs r0, 24 -_080D8F9C: - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080D8FBA - adds r0, r2, 0 - bl move_anim_8072740 -_080D8FBA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D8F74 - - thumb_func_start sub_80D8FC0 -sub_80D8FC0: @ 80D8FC0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080D8FE8 - ldrb r3, [r1] - lsls r3, 1 - adds r3, r1 - ldr r1, _080D8FEC - ldr r1, [r1] - ldrb r1, [r1, 0x11] - lsrs r2, r1, 4 - lsls r1, 28 - lsrs r1, 28 - subs r2, r1 - subs r2, 0x1 - strh r2, [r3] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080D8FE8: .4byte gUnknown_03004B00 -_080D8FEC: .4byte gUnknown_0202F7B4 - thumb_func_end sub_80D8FC0 - - thumb_func_start unc_080B08A0 -unc_080B08A0: @ 80D8FF0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D9020 - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_807867C - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0xF - strh r0, [r4, 0x2E] - ldr r0, _080D9024 - str r0, [r4, 0x1C] - ldr r1, _080D9028 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9020: .4byte gUnknown_03004B00 -_080D9024: .4byte sub_80782D8 -_080D9028: .4byte move_anim_8072740 - thumb_func_end unc_080B08A0 - - thumb_func_start sub_80D902C -sub_80D902C: @ 80D902C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D9070 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080D9054 - ldr r0, _080D9074 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D9054 - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x6] - negs r0, r0 - strh r0, [r4, 0x6] -_080D9054: - ldr r4, _080D9070 - ldrb r1, [r4, 0xC] - adds r0, r5, 0 - bl StartSpriteAnim - movs r0, 0 - strh r0, [r4, 0xC] - adds r0, r5, 0 - bl sub_8079534 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9070: .4byte gUnknown_03004B00 -_080D9074: .4byte gUnknown_0202F7C8 - thumb_func_end sub_80D902C - - thumb_func_start sub_80D9078 -sub_80D9078: @ 80D9078 - push {r4,lr} - adds r4, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D9094 - ldr r0, _080D90A0 - ldrh r1, [r0, 0x2] - negs r1, r1 - strh r1, [r0, 0x2] - ldrh r1, [r0, 0x6] - negs r1, r1 - strh r1, [r0, 0x6] -_080D9094: - adds r0, r4, 0 - bl sub_80D902C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D90A0: .4byte gUnknown_03004B00 - thumb_func_end sub_80D9078 - - thumb_func_start sub_80D90A4 -sub_80D90A4: @ 80D90A4 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D90C4 - ldrb r1, [r4, 0x8] - bl StartSpriteAnim - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D90C8 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - b _080D90D0 - .align 2, 0 -_080D90C4: .4byte gUnknown_03004B00 -_080D90C8: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8078764 -_080D90D0: - ldr r0, _080D90E8 - ldrh r0, [r0, 0x4] - strh r0, [r5, 0x2E] - ldr r0, _080D90EC - str r0, [r5, 0x1C] - ldr r1, _080D90F0 - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D90E8: .4byte gUnknown_03004B00 -_080D90EC: .4byte sub_80782D8 -_080D90F0: .4byte move_anim_8072740 - thumb_func_end sub_80D90A4 - - thumb_func_start sub_80D90F4 -sub_80D90F4: @ 80D90F4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - ldr r0, _080D9110 - movs r2, 0 - ldrsh r1, [r0, r2] - mov r9, r0 - cmp r1, 0 - bne _080D9118 - ldr r0, _080D9114 - b _080D911A - .align 2, 0 -_080D9110: .4byte gUnknown_03004B00 -_080D9114: .4byte gUnknown_0202F7C8 -_080D9118: - ldr r0, _080D9260 -_080D911A: - ldrb r0, [r0] - mov r8, r0 - mov r4, r9 - movs r3, 0x4 - ldrsh r0, [r4, r3] - cmp r0, 0 - bge _080D9138 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - strh r0, [r4, 0x4] -_080D9138: - ldrb r1, [r4, 0x4] - adds r0, r5, 0 - bl StartSpriteAnim - mov r0, r8 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - mov r0, r8 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - mov r0, r8 - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - lsls r1, 15 - lsrs r6, r1, 16 - mov r0, r8 - movs r1, 0 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080D9182 - adds r0, 0x3 -_080D9182: - lsls r4, r0, 14 - lsrs r4, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - lsls r1, r6, 16 - asrs r1, 16 - bl __modsi3 - lsls r0, 16 - lsrs r6, r0, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - lsls r4, 16 - asrs r4, 16 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 16 - lsrs r4, r0, 16 - bl Random - movs r7, 0x1 - adds r1, r7, 0 - ands r1, r0 - cmp r1, 0 - beq _080D91C4 - lsls r0, r6, 16 - negs r0, r0 - lsrs r6, r0, 16 -_080D91C4: - bl Random - adds r1, r7, 0 - ands r1, r0 - cmp r1, 0 - beq _080D91D6 - lsls r0, r4, 16 - negs r0, r0 - lsrs r4, r0, 16 -_080D91D6: - ldr r0, _080D9264 - add r0, r8 - ldrb r1, [r0] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - bne _080D91EC - lsls r0, r4, 16 - ldr r1, _080D9268 - adds r0, r1 - lsrs r4, r0, 16 -_080D91EC: - lsls r0, r6, 16 - asrs r0, 16 - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - ldrh r3, [r5, 0x22] - adds r0, r3 - strh r0, [r5, 0x22] - mov r1, r9 - ldrh r0, [r1, 0x2] - strh r0, [r5, 0x2E] - ldr r0, _080D926C - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r3, 0x22 - ldrsh r2, [r5, r3] - adds r3, r5, 0 - adds r3, 0x43 - ldrb r3, [r3] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3C] - cmp r0, 0x40 - beq _080D9250 - movs r0, 0x3C - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080D9270 - adds r0, r4 - movs r1, 0 - bl StartSpriteAffineAnim - movs r2, 0x3C - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080D9274 - str r1, [r0] -_080D9250: - ldr r0, _080D9278 - str r0, [r5, 0x1C] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D9260: .4byte gUnknown_0202F7C9 -_080D9264: .4byte gUnknown_02024A72 -_080D9268: .4byte 0xfff00000 -_080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8 -_080D9270: .4byte gSprites -_080D9274: .4byte SpriteCallbackDummy -_080D9278: .4byte sub_80D927C - thumb_func_end sub_80D90F4 - - thumb_func_start sub_80D927C -sub_80D927C: @ 80D927C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _080D92C4 - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0x40 - beq _080D92B8 - ldr r4, _080D92C0 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - movs r0, 0x3C - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite -_080D92B8: - adds r0, r5, 0 - bl move_anim_8072740 - b _080D92C8 - .align 2, 0 -_080D92C0: .4byte gSprites -_080D92C4: - subs r0, r1, 0x1 - strh r0, [r5, 0x2E] -_080D92C8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D927C - - thumb_func_start sub_80D92D0 -sub_80D92D0: @ 80D92D0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - movs r0, 0x1E - strh r0, [r4, 0x2E] - ldr r0, _080D92F0 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D92F4 - ldrh r0, [r4, 0x20] - subs r0, 0x14 - strh r0, [r4, 0x32] - b _080D9306 - .align 2, 0 -_080D92F0: .4byte gUnknown_03004B00 -_080D92F4: - ldrh r0, [r4, 0x20] - adds r0, 0x14 - strh r0, [r4, 0x32] - adds r2, r4, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_080D9306: - ldrh r0, [r4, 0x22] - subs r0, 0x14 - strh r0, [r4, 0x36] - ldr r0, _080D9320 - str r0, [r4, 0x1C] - ldr r1, _080D9324 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D9320: .4byte sub_8078B34 -_080D9324: .4byte sub_80D9328 - thumb_func_end sub_80D92D0 - - thumb_func_start sub_80D9328 -sub_80D9328: @ 80D9328 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x38] - adds r0, 0x1 - movs r6, 0 - strh r0, [r5, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _080D9368 - ldrh r2, [r5, 0x20] - ldrh r4, [r5, 0x24] - subs r0, r2, r4 - strh r0, [r5, 0x32] - ldrh r1, [r5, 0x22] - ldrh r3, [r5, 0x26] - subs r0, r1, r3 - strh r0, [r5, 0x36] - movs r0, 0x8 - strh r0, [r5, 0x2E] - adds r2, r4 - strh r2, [r5, 0x20] - adds r1, r3 - strh r1, [r5, 0x22] - strh r6, [r5, 0x26] - strh r6, [r5, 0x24] - ldr r0, _080D9370 - str r0, [r5, 0x1C] - ldr r1, _080D9374 - adds r0, r5, 0 - bl oamt_set_x3A_32 -_080D9368: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D9370: .4byte sub_8078B34 -_080D9374: .4byte move_anim_8072740 - thumb_func_end sub_80D9328 - - thumb_func_start sub_80D9378 -sub_80D9378: @ 80D9378 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080D93F4 - ldrb r1, [r0] - movs r0, 0x2 - ldr r2, _080D93F8 - eors r0, r1 - ldrb r1, [r2] - cmp r0, r1 - bne _080D93A4 - ldrb r0, [r2] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080D93A4 - ldr r1, _080D93FC - movs r2, 0 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1] -_080D93A4: - adds r0, r6, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r0, _080D93F4 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D93C2 - ldr r1, _080D93FC - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080D93C2: - ldr r4, _080D93FC - ldrh r0, [r4, 0x6] - movs r5, 0 - strh r0, [r6, 0x2E] - ldrh r0, [r6, 0x20] - strh r0, [r6, 0x30] - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrh r0, [r6, 0x22] - strh r0, [r6, 0x34] - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x38] - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x3A] - strh r5, [r6, 0x3C] - ldr r0, _080D9400 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D93F4: .4byte gUnknown_0202F7C8 -_080D93F8: .4byte gUnknown_0202F7C9 -_080D93FC: .4byte gUnknown_03004B00 -_080D9400: .4byte sub_80D9404 - thumb_func_end sub_80D9378 - - thumb_func_start sub_80D9404 -sub_80D9404: @ 80D9404 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080D9430 - ldrh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r2, [r4, 0x3C] - adds r0, r2 - strh r0, [r4, 0x3C] - b _080D9436 -_080D9430: - adds r0, r4, 0 - bl move_anim_8072740 -_080D9436: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9404 - - thumb_func_start sub_80D943C -sub_80D943C: @ 80D943C - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r5, _080D9468 - ldrb r1, [r5, 0x4] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldr r0, _080D946C - str r0, [r4, 0x1C] - ldr r1, _080D9470 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9468: .4byte gUnknown_03004B00 -_080D946C: .4byte sub_80782D8 -_080D9470: .4byte sub_80D9474 - thumb_func_end sub_80D943C - - thumb_func_start sub_80D9474 -sub_80D9474: @ 80D9474 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl StartSpriteAffineAnim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x14 - strh r0, [r4, 0x2E] - ldr r0, _080D94A0 - str r0, [r4, 0x1C] - ldr r1, _080D94A4 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D94A0: .4byte sub_80782D8 -_080D94A4: .4byte move_anim_8072740 - thumb_func_end sub_80D9474 - - thumb_func_start sub_80D94A8 -sub_80D94A8: @ 80D94A8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r0, _080D94C4 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080D94C8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D94C4: .4byte gUnknown_03004B00 -_080D94C8: .4byte sub_80D94CC - thumb_func_end sub_80D94A8 - - thumb_func_start sub_80D94CC -sub_80D94CC: @ 80D94CC - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - subs r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080D9510 - movs r0, 0x6 - strh r0, [r5, 0x2E] - ldr r4, _080D9518 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080D951C - str r0, [r5, 0x1C] - ldr r1, _080D9520 - adds r0, r5, 0 - bl oamt_set_x3A_32 -_080D9510: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9518: .4byte gUnknown_0202F7C9 -_080D951C: .4byte sub_8078B34 -_080D9520: .4byte sub_80D9524 - thumb_func_end sub_80D94CC - - thumb_func_start sub_80D9524 -sub_80D9524: @ 80D9524 - push {lr} - movs r1, 0xF - strh r1, [r0, 0x2E] - ldr r1, _080D9538 - str r1, [r0, 0x1C] - ldr r1, _080D953C - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080D9538: .4byte sub_80782D8 -_080D953C: .4byte move_anim_8072740 - thumb_func_end sub_80D9524 - - thumb_func_start sub_80D9540 -sub_80D9540: @ 80D9540 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D956C - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r1, _080D9568 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080D95C8 - .align 2, 0 -_080D9568: .4byte gUnknown_03004B00 -_080D956C: - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - cmp r0, 0x64 - ble _080D95BA - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D95BA: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x78 - ble _080D95C8 - adds r0, r4, 0 - bl move_anim_8072740 -_080D95C8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9540 - - thumb_func_start sub_80D95D0 -sub_80D95D0: @ 80D95D0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080D95E4 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D95EC - ldr r4, _080D95E8 - b _080D95EE - .align 2, 0 -_080D95E4: .4byte gUnknown_03004B00 -_080D95E8: .4byte gUnknown_0202F7C8 -_080D95EC: - ldr r4, _080D9634 -_080D95EE: - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080D9638 - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x20] - adds r0, r2 - movs r2, 0 - strh r0, [r5, 0x20] - ldrh r0, [r1, 0x4] - ldrh r3, [r5, 0x22] - adds r0, r3 - strh r0, [r5, 0x22] - strh r2, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x32] - strh r2, [r5, 0x34] - ldr r0, _080D963C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9634: .4byte gUnknown_0202F7C9 -_080D9638: .4byte gUnknown_03004B00 -_080D963C: .4byte sub_80D9640 - thumb_func_end sub_80D95D0 - - thumb_func_start sub_80D9640 -sub_80D9640: @ 80D9640 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - cmp r2, 0 - beq _080D9652 - cmp r2, 0x1 - beq _080D9676 - b _080D96B0 -_080D9652: - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080D96B0 - movs r2, 0x32 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080D966E - adds r0, r1, 0 - bl move_anim_8072740 - b _080D96B0 -_080D966E: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _080D96B0 -_080D9676: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D969E - movs r0, 0 - strh r0, [r1, 0x30] - ldrh r0, [r1, 0x34] - adds r0, 0x1 - strh r0, [r1, 0x34] - ands r0, r2 - lsls r0, 16 - cmp r0, 0 - beq _080D969A - movs r0, 0x2 - b _080D969C -_080D969A: - ldr r0, _080D96B4 -_080D969C: - strh r0, [r1, 0x24] -_080D969E: - ldrh r0, [r1, 0x32] - subs r0, 0x1 - strh r0, [r1, 0x32] - lsls r0, 16 - cmp r0, 0 - bne _080D96B0 - adds r0, r1, 0 - bl move_anim_8072740 -_080D96B0: - pop {r0} - bx r0 - .align 2, 0 -_080D96B4: .4byte 0x0000fffe - thumb_func_end sub_80D9640 - - thumb_func_start sub_80D96B8 -sub_80D96B8: @ 80D96B8 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080D96DC - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D96E4 - ldr r4, _080D96E0 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r6, 0x4] - adds r0, r2 - b _080D96F6 - .align 2, 0 -_080D96DC: .4byte gUnknown_03004B00 -_080D96E0: .4byte gUnknown_0202F7C8 -_080D96E4: - ldr r4, _080D9740 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 -_080D96F6: - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x6] - adds r0, r6 - strh r0, [r5, 0x22] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - ldr r3, _080D9744 - movs r4, 0x2 - ldrsh r0, [r3, r4] - lsls r0, 4 - adds r1, r0 - ldr r4, _080D9748 - adds r0, r4, 0 - ands r1, r0 - ldr r0, _080D974C - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - movs r1, 0 - movs r0, 0 - strh r0, [r5, 0x2E] - movs r2, 0x2 - ldrsh r0, [r3, r2] - cmp r0, 0x1 - beq _080D9764 - cmp r0, 0x1 - bgt _080D9750 - cmp r0, 0 - beq _080D975A - b _080D978A - .align 2, 0 -_080D9740: .4byte gUnknown_0202F7C9 -_080D9744: .4byte gUnknown_03004B00 -_080D9748: .4byte 0x000003ff -_080D974C: .4byte 0xfffffc00 -_080D9750: - cmp r0, 0x2 - beq _080D9774 - cmp r0, 0x3 - beq _080D9784 - b _080D978A -_080D975A: - ldr r0, _080D9760 - b _080D9784 - .align 2, 0 -_080D9760: .4byte 0x0000fffd -_080D9764: - movs r0, 0x3 - strh r0, [r5, 0x3A] - ldr r0, _080D9770 - strh r0, [r5, 0x3C] - b _080D9792 - .align 2, 0 -_080D9770: .4byte 0x0000fffd -_080D9774: - ldr r0, _080D9780 - strh r0, [r5, 0x3A] - movs r0, 0x3 - strh r0, [r5, 0x3C] - b _080D9792 - .align 2, 0 -_080D9780: .4byte 0x0000fffd -_080D9784: - strh r0, [r5, 0x3A] - strh r0, [r5, 0x3C] - b _080D9792 -_080D978A: - adds r0, r5, 0 - bl move_anim_8072740 - b _080D9796 -_080D9792: - ldr r0, _080D979C - str r0, [r5, 0x1C] -_080D9796: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D979C: .4byte sub_80D97A0 - thumb_func_end sub_80D96B8 - - thumb_func_start sub_80D97A0 -sub_80D97A0: @ 80D97A0 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x3A] - ldrh r2, [r1, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0x3C] - ldrh r2, [r1, 0x22] - adds r0, r2 - strh r0, [r1, 0x22] - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _080D97C8 - adds r0, r1, 0 - bl move_anim_8072740 -_080D97C8: - pop {r0} - bx r0 - thumb_func_end sub_80D97A0 - - thumb_func_start sub_80D97CC -sub_80D97CC: @ 80D97CC - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080D9818 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D9828 - ldr r4, _080D981C - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080D9820 - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - ldr r0, _080D9824 - b _080D9844 - .align 2, 0 -_080D9818: .4byte gUnknown_03004B00 -_080D981C: .4byte gUnknown_02024C07 -_080D9820: .4byte gUnknown_0202F7C8 -_080D9824: .4byte gUnknown_0202F7C9 -_080D9828: - ldr r0, _080D9860 - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - ldr r0, _080D9864 -_080D9844: - ldrb r0, [r0] - strh r0, [r5, 0x3C] - movs r0, 0 - strh r0, [r5, 0x2E] - movs r0, 0xC - strh r0, [r5, 0x30] - movs r0, 0x8 - strh r0, [r5, 0x32] - ldr r0, _080D9868 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9860: .4byte gUnknown_0202F7C9 -_080D9864: .4byte gUnknown_0202F7C8 -_080D9868: .4byte sub_80D986C - thumb_func_end sub_80D97CC - - thumb_func_start sub_80D986C -sub_80D986C: @ 80D986C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB4 - bne _080D98C6 - ldr r1, _080D98CC - movs r0, 0 - strh r0, [r1] - movs r0, 0x10 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080D98D0 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080D98D4 - str r0, [r4, 0x1C] -_080D98C6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D98CC: .4byte REG_BLDCNT -_080D98D0: .4byte move_anim_8074EE0 -_080D98D4: .4byte sub_8078BB8 - thumb_func_end sub_80D986C - - thumb_func_start sub_80D98D8 -sub_80D98D8: @ 80D98D8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D9924 - ldrh r0, [r4] - strh r0, [r5, 0x20] - movs r2, 0x78 - strh r2, [r5, 0x22] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x2E] - adds r0, r5, 0 - adds r0, 0x36 - adds r1, r5, 0 - adds r1, 0x38 - lsls r2, 8 - bl sub_8079BF4 - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x3A] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0x4 - ldrsh r0, [r4, r3] - lsls r0, 2 - adds r1, r0 - ldr r3, _080D9928 - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D992C - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r0, _080D9930 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9924: .4byte gUnknown_03004B00 -_080D9928: .4byte 0x000003ff -_080D992C: .4byte 0xfffffc00 -_080D9930: .4byte sub_80D9934 - thumb_func_end sub_80D98D8 - - thumb_func_start sub_80D9934 -sub_80D9934: @ 80D9934 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - movs r1, 0x2E - ldrsh r0, [r7, r1] - cmp r0, 0 - beq _080D9986 - movs r2, 0x36 - ldrsh r0, [r7, r2] - movs r2, 0x38 - ldrsh r1, [r7, r2] - bl sub_8079BFC - adds r4, r0, 0 - movs r1, 0x3A - ldrsh r0, [r7, r1] - subs r4, r0 - adds r0, r7, 0 - adds r0, 0x36 - adds r1, r7, 0 - adds r1, 0x38 - adds r2, r4, 0 - bl sub_8079BF4 - asrs r4, 8 - strh r4, [r7, 0x22] - lsls r4, 16 - asrs r4, 16 - movs r0, 0x8 - negs r0, r0 - cmp r4, r0 - bge _080D997E - adds r0, r7, 0 - bl move_anim_8072740 - b _080D99DC -_080D997E: - ldrh r0, [r7, 0x2E] - subs r0, 0x1 - strh r0, [r7, 0x2E] - b _080D99DC -_080D9986: - ldr r4, _080D99E8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r2, _080D99EC - mov r8, r2 - ldrb r0, [r2] - movs r1, 0x2 - bl sub_8077ABC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - subs r4, r6 - strh r4, [r7, 0x2E] - lsrs r0, 24 - subs r0, r5 - strh r0, [r7, 0x30] - ldrh r0, [r7, 0x20] - lsls r0, 4 - strh r0, [r7, 0x32] - ldrh r0, [r7, 0x22] - lsls r0, 4 - strh r0, [r7, 0x34] - ldr r0, _080D99F0 - str r0, [r7, 0x1C] -_080D99DC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D99E8: .4byte gUnknown_0202F7C8 -_080D99EC: .4byte gUnknown_0202F7C9 -_080D99F0: .4byte sub_80D99F4 - thumb_func_end sub_80D9934 - - thumb_func_start sub_80D99F4 -sub_80D99F4: @ 80D99F4 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - ldrh r1, [r2, 0x30] - ldrh r3, [r2, 0x34] - adds r1, r3 - strh r1, [r2, 0x34] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r3, r1, 20 - strh r3, [r2, 0x22] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bhi _080D9A2E - adds r1, r3, 0 - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - blt _080D9A2E - cmp r1, 0x78 - ble _080D9A34 -_080D9A2E: - adds r0, r2, 0 - bl move_anim_8072740 -_080D9A34: - pop {r0} - bx r0 - thumb_func_end sub_80D99F4 - - thumb_func_start sub_80D9A38 -sub_80D9A38: @ 80D9A38 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080D9A6C - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D9A7C - ldr r4, _080D9A70 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080D9A74 - ldrb r4, [r0] - ldr r0, _080D9A78 - b _080D9A82 - .align 2, 0 -_080D9A6C: .4byte gUnknown_03004B00 -_080D9A70: .4byte gUnknown_02024C07 -_080D9A74: .4byte gUnknown_0202F7C9 -_080D9A78: .4byte gUnknown_0202F7C8 -_080D9A7C: - ldr r0, _080D9AB4 - ldrb r4, [r0] - ldr r0, _080D9AB8 -_080D9A82: - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D9ABC - ldrb r2, [r5, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x8 - orrs r1, r0 - lsls r1, 1 - subs r0, 0x47 - b _080D9AD6 - .align 2, 0 -_080D9AB4: .4byte gUnknown_0202F7C8 -_080D9AB8: .4byte gUnknown_0202F7C9 -_080D9ABC: - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D9ADC - ldrb r2, [r5, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x18 - orrs r1, r0 - lsls r1, 1 - subs r0, 0x57 -_080D9AD6: - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x3] -_080D9ADC: - movs r0, 0x10 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - adds r0, r4, 0 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080D9B1C - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080D9B20 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9B1C: .4byte move_anim_8072740 -_080D9B20: .4byte sub_8078BB8 - thumb_func_end sub_80D9A38 - - thumb_func_start sub_80D9B24 -sub_80D9B24: @ 80D9B24 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080D9B3A - adds r0, r4, 0 - bl move_anim_8072740 -_080D9B3A: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9B24 - - thumb_func_start sub_80D9B48 -sub_80D9B48: @ 80D9B48 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080D9BC4 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080D9BC8 - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1] - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x2] - strh r0, [r5, 0x34] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x36] - ldr r0, _080D9BCC - ldrb r6, [r0] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D9B92 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080D9B92: - movs r0, 0x1 - ands r6, r0 - cmp r6, 0 - beq _080D9BA6 - ldrh r0, [r5, 0x32] - negs r0, r0 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] -_080D9BA6: - ldrh r1, [r5, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r5, 0x32] - strh r0, [r5, 0x24] - ldrh r0, [r5, 0x34] - strh r0, [r5, 0x26] - ldr r0, _080D9BD0 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D9BC4: .4byte gUnknown_0202F7C9 -_080D9BC8: .4byte gUnknown_03004B00 -_080D9BCC: .4byte gUnknown_0202F7C4 -_080D9BD0: .4byte sub_80D9B24 - thumb_func_end sub_80D9B48 - - thumb_func_start sub_80D9BD4 -sub_80D9BD4: @ 80D9BD4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D9BEC - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D9BF0 - adds r0, r4, 0 - movs r1, 0 - bl sub_80787B0 - b _080D9BF8 - .align 2, 0 -_080D9BEC: .4byte gUnknown_03004B00 -_080D9BF0: - adds r0, r4, 0 - movs r1, 0 - bl sub_8078764 -_080D9BF8: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D9C0C - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - b _080D9C22 -_080D9C0C: - ldr r0, _080D9C34 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D9C22 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080D9C22: - ldr r0, _080D9C38 - str r0, [r4, 0x1C] - ldr r1, _080D9C3C - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D9C34: .4byte gUnknown_0202F7C8 -_080D9C38: .4byte sub_8078600 -_080D9C3C: .4byte move_anim_8072740 - thumb_func_end sub_80D9BD4 - - thumb_func_start sub_80D9C40 -sub_80D9C40: @ 80D9C40 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080D9C7A - ldrh r0, [r4, 0x30] - adds r0, 0x28 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x2 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _080D9C7A - adds r0, r4, 0 - bl move_anim_8072740 -_080D9C7A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9C40 - - thumb_func_start sub_80D9C80 -sub_80D9C80: @ 80D9C80 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080D9CB0 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080D9CB8 - cmp r0, 0x1 - bgt _080D9CD2 - cmp r0, 0 - bne _080D9CD2 - movs r0, 0 - bl sub_80789D4 - ldr r0, _080D9CB4 - ldrh r0, [r0] - strh r0, [r4, 0x18] - b _080D9CCA - .align 2, 0 -_080D9CB0: .4byte gTasks -_080D9CB4: .4byte gUnknown_03004B00 -_080D9CB8: - ldrh r0, [r4, 0x18] - subs r0, 0x1 - strh r0, [r4, 0x18] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080D9CDE -_080D9CCA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D9CDE -_080D9CD2: - movs r2, 0xA0 - lsls r2, 3 - adds r0, r2, 0 - ldrh r1, [r4, 0x1A] - adds r0, r1 - strh r0, [r4, 0x1A] -_080D9CDE: - movs r2, 0xB0 - lsls r2, 4 - adds r0, r2, 0 - ldrh r1, [r4, 0x1C] - adds r0, r1 - strh r0, [r4, 0x1C] - ldr r0, _080D9D0C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D9D14 - ldr r1, _080D9D10 - ldrh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 24 - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - adds r7, r1, 0 - b _080D9D24 - .align 2, 0 -_080D9D0C: .4byte gUnknown_0202F7C9 -_080D9D10: .4byte gUnknown_030041B0 -_080D9D14: - ldr r2, _080D9D64 - ldrh r1, [r4, 0x1A] - lsls r1, 16 - asrs r1, 24 - ldrh r0, [r2] - subs r0, r1 - strh r0, [r2] - adds r7, r2, 0 -_080D9D24: - ldr r3, _080D9D68 - ldrh r2, [r4, 0x1C] - lsls r0, r2, 16 - asrs r0, 24 - ldrh r1, [r3] - adds r0, r1 - strh r0, [r3] - movs r0, 0xFF - ldrb r1, [r4, 0x1A] - movs r5, 0 - strh r1, [r4, 0x1A] - ands r0, r2 - strh r0, [r4, 0x1C] - ldr r0, _080D9D6C - movs r2, 0xE - ldrsh r1, [r0, r2] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080D9D5C - strh r5, [r7] - strh r5, [r3] - movs r0, 0x1 - bl sub_80789D4 - adds r0, r6, 0 - bl move_anim_task_del -_080D9D5C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D9D64: .4byte gUnknown_030041B0 -_080D9D68: .4byte gUnknown_030041B8 -_080D9D6C: .4byte gUnknown_03004B00 - thumb_func_end sub_80D9C80 - - thumb_func_start sub_80D9D70 -sub_80D9D70: @ 80D9D70 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D9DC4 - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D9D86 - adds r0, r5, 0 - movs r1, 0x2 - bl StartSpriteAnim -_080D9D86: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x2E] - ldr r4, _080D9DC8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080D9DCC - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_80786EC - ldr r0, _080D9DD0 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9DC4: .4byte gUnknown_03004B00 -_080D9DC8: .4byte gUnknown_0202F7C9 -_080D9DCC: .4byte 0x0000ffe2 -_080D9DD0: .4byte sub_80D9DD4 - thumb_func_end sub_80D9D70 - - thumb_func_start sub_80D9DD4 -sub_80D9DD4: @ 80D9DD4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080D9DE8 - adds r0, r4, 0 - bl move_anim_8072740 -_080D9DE8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9DD4 - - thumb_func_start sub_80D9DF0 -sub_80D9DF0: @ 80D9DF0 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r5, _080D9E64 - movs r1, 0x6 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D9E08 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim -_080D9E08: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080D9E68 - ldrb r0, [r0] - mov r6, sp - adds r6, 0x2 - movs r1, 0x1 - mov r2, sp - adds r3, r6, 0 - bl sub_807A3FC - ldr r0, _080D9E6C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D9E36 - ldrh r0, [r5, 0x8] - negs r0, r0 - strh r0, [r5, 0x8] -_080D9E36: - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - mov r1, sp - ldrh r0, [r5, 0x8] - ldrh r1, [r1] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r5, 0xA] - ldrh r6, [r6] - adds r0, r6 - strh r0, [r4, 0x36] - ldr r0, _080D9E70 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldr r0, _080D9E74 - str r0, [r4, 0x1C] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D9E64: .4byte gUnknown_03004B00 -_080D9E68: .4byte gUnknown_0202F7C9 -_080D9E6C: .4byte gUnknown_0202F7C8 -_080D9E70: .4byte 0x0000ffe2 -_080D9E74: .4byte sub_80D9E78 - thumb_func_end sub_80D9DF0 - - thumb_func_start sub_80D9E78 -sub_80D9E78: @ 80D9E78 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080D9E8C - adds r0, r4, 0 - bl move_anim_8072740 -_080D9E8C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9E78 - - thumb_func_start sub_80D9E94 -sub_80D9E94: @ 80D9E94 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D9EE0 - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r1, [r5] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_8078A5C - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0x38] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0x3A] - ldr r0, _080D9EE4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9EE0: .4byte gUnknown_03004B00 -_080D9EE4: .4byte sub_80D9EE8 - thumb_func_end sub_80D9E94 - - thumb_func_start sub_80D9EE8 -sub_80D9EE8: @ 80D9EE8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078394 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x38] - subs r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - ldrh r1, [r4, 0x3A] - subs r0, r1 - strh r0, [r4, 0x32] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D9F0E - adds r0, r4, 0 - bl move_anim_8072740 -_080D9F0E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9EE8 - - thumb_func_start sub_80D9F14 -sub_80D9F14: @ 80D9F14 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D9F74 - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_807A3FC - ldr r0, _080D9F78 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D9F40 - ldr r1, _080D9F7C - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080D9F40: - ldr r0, _080D9F7C - ldrh r2, [r0] - ldrh r1, [r4, 0x20] - adds r2, r1 - strh r2, [r4, 0x20] - ldrh r1, [r0, 0x2] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - ldrh r3, [r0, 0x8] - strh r3, [r4, 0x2E] - ldrh r0, [r0, 0x4] - adds r2, r0 - strh r2, [r4, 0x32] - adds r1, r3 - strh r1, [r4, 0x36] - ldr r0, _080D9F80 - str r0, [r4, 0x1C] - ldr r1, _080D9F84 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D9F74: .4byte gUnknown_0202F7C9 -_080D9F78: .4byte gUnknown_0202F7C8 -_080D9F7C: .4byte gUnknown_03004B00 -_080D9F80: .4byte sub_8078B34 -_080D9F84: .4byte move_anim_8072740 - thumb_func_end sub_80D9F14 - - thumb_func_start sub_80D9F88 -sub_80D9F88: @ 80D9F88 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D9FA0 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D9FA4 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - b _080D9FDA - .align 2, 0 -_080D9FA0: .4byte gUnknown_03004B00 -_080D9FA4: - ldr r0, _080D9FE4 - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_807A3FC - ldr r0, _080D9FE8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D9FCA - ldrh r0, [r5] - negs r0, r0 - strh r0, [r5] -_080D9FCA: - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080D9FDA: - ldr r0, _080D9FEC - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9FE4: .4byte gUnknown_0202F7C9 -_080D9FE8: .4byte gUnknown_0202F7C8 -_080D9FEC: .4byte sub_80D9FF0 - thumb_func_end sub_80D9F88 - - thumb_func_start sub_80D9FF0 -sub_80D9FF0: @ 80D9FF0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0xB - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x30 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080DA02C - adds r0, r4, 0 - bl move_anim_8072740 -_080DA02C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9FF0 - - thumb_func_start sub_80DA034 -sub_80DA034: @ 80DA034 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8078764 - ldrh r0, [r4, 0x22] - adds r0, 0x14 - strh r0, [r4, 0x22] - movs r0, 0xBF - strh r0, [r4, 0x30] - ldr r1, _080DA058 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DA058: .4byte sub_80DA05C - thumb_func_end sub_80DA034 - - thumb_func_start sub_80DA05C -sub_80DA05C: @ 80DA05C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x47 - bne _080DA096 - adds r0, r4, 0 - bl move_anim_8072740 -_080DA096: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DA05C - - thumb_func_start sub_80DA09C -sub_80DA09C: @ 80DA09C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080DA0CC - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r1, _080DA0D0 - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x8] - ldrh r0, [r1] - strh r0, [r4, 0xA] - ldr r0, _080DA0D4 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xC] - ldr r0, _080DA0D8 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DA0CC: .4byte gTasks -_080DA0D0: .4byte gUnknown_03004B00 -_080DA0D4: .4byte 0x00002719 -_080DA0D8: .4byte sub_80DA0DC - thumb_func_end sub_80DA09C - - thumb_func_start sub_80DA0DC -sub_80DA0DC: @ 80DA0DC - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _080DA15C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1C] - adds r1, r0, 0x1 - strh r1, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r4, 0xA - ldrsh r1, [r3, r4] - adds r7, r2, 0 - cmp r0, r1 - bne _080DA13A - movs r0, 0 - strh r0, [r3, 0x1C] - ldrb r0, [r3, 0xC] - ldr r2, _080DA160 - lsls r0, 4 - movs r3, 0x84 - lsls r3, 1 - adds r1, r0, r3 - lsls r1, 1 - adds r1, r2 - ldrh r6, [r1] - movs r4, 0x7 - mov r12, r0 - ldr r0, _080DA164 - add r0, r12 - lsls r0, 1 - adds r3, r0, r2 -_080DA122: - ldrh r0, [r3] - strh r0, [r1] - subs r3, 0x2 - subs r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bgt _080DA122 - ldr r0, _080DA168 - add r0, r12 - lsls r0, 1 - adds r0, r2 - strh r6, [r0] -_080DA13A: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r7 - ldrh r1, [r0, 0x8] - subs r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - cmp r1, 0 - bne _080DA154 - adds r0, r5, 0 - bl move_anim_task_del -_080DA154: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DA15C: .4byte gTasks -_080DA160: .4byte gPlttBufferFaded -_080DA164: .4byte 0x00000107 -_080DA168: .4byte 0x00000101 - thumb_func_end sub_80DA0DC - - thumb_func_start sub_80DA16C -sub_80DA16C: @ 80DA16C - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080DA1D8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DA18C - ldr r1, _080DA1DC - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080DA18C: - ldr r4, _080DA1DC - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldrh r0, [r6, 0x20] - strh r0, [r6, 0x30] - ldr r5, _080DA1E0 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrh r0, [r6, 0x22] - strh r0, [r6, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x6] - adds r0, r4 - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080DA1E4 - str r0, [r6, 0x1C] - ldr r1, _080DA1E8 - adds r0, r6, 0 - bl oamt_set_x3A_32 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DA1D8: .4byte gUnknown_0202F7C8 -_080DA1DC: .4byte gUnknown_03004B00 -_080DA1E0: .4byte gUnknown_0202F7C9 -_080DA1E4: .4byte sub_80785E4 -_080DA1E8: .4byte sub_80DA1EC - thumb_func_end sub_80DA16C - - thumb_func_start sub_80DA1EC -sub_80DA1EC: @ 80DA1EC - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080DA200 - adds r0, r4, 0 - bl move_anim_8072740 -_080DA200: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DA1EC - - thumb_func_start sub_80DA208 -sub_80DA208: @ 80DA208 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080DA2A4 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DA234 - ldr r1, _080DA2A8 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] -_080DA234: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DA24C - ldr r0, _080DA2A8 - ldrh r1, [r0, 0x2] - negs r1, r1 - strh r1, [r0, 0x2] - ldrh r1, [r0, 0x6] - negs r1, r1 - strh r1, [r0, 0x6] -_080DA24C: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - ldr r2, _080DA2A8 - ldrh r1, [r2] - ldrh r3, [r5, 0x20] - adds r1, r3 - strh r1, [r5, 0x20] - lsrs r0, 24 - ldrh r1, [r2, 0x2] - adds r0, r1 - strh r0, [r5, 0x22] - ldrh r0, [r2, 0x8] - strh r0, [r5, 0x2E] - movs r3, 0xC - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080DA2B0 - ldr r4, _080DA2AC - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - b _080DA2C2 - .align 2, 0 -_080DA2A4: .4byte gUnknown_0202F7C8 -_080DA2A8: .4byte gUnknown_03004B00 -_080DA2AC: .4byte gUnknown_0202F7C9 -_080DA2B0: - ldr r0, _080DA2F0 - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_807A3FC -_080DA2C2: - ldr r4, _080DA2F4 - ldrh r0, [r4, 0x4] - ldrh r1, [r5, 0x32] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r4, 0x6] - ldrh r3, [r5, 0x36] - adds r0, r3 - strh r0, [r5, 0x36] - ldr r0, _080DA2F8 - str r0, [r5, 0x1C] - ldr r1, _080DA2FC - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldrb r1, [r4, 0xA] - adds r0, r5, 0 - bl SeekSpriteAnim - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DA2F0: .4byte gUnknown_0202F7C9 -_080DA2F4: .4byte gUnknown_03004B00 -_080DA2F8: .4byte sub_8078B34 -_080DA2FC: .4byte move_anim_8072740 - thumb_func_end sub_80DA208 - - thumb_func_start sub_80DA300 -sub_80DA300: @ 80DA300 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r1, _080DA33C - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080DA340 - str r0, [r4, 0x1C] - movs r0, 0 - bl obj_id_for_side_relative_to_move - ldr r2, _080DA344 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DA33C: .4byte gUnknown_03004B00 -_080DA340: .4byte sub_80DA348 -_080DA344: .4byte gSprites - thumb_func_end sub_80DA300 - - thumb_func_start sub_80DA348 -sub_80DA348: @ 80DA348 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2E] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _080DA35C - subs r0, r1, 0x1 - strh r0, [r2, 0x2E] - b _080DA36E -_080DA35C: - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r2, 0x26] - subs r1, r0 - strh r1, [r2, 0x26] -_080DA36E: - movs r3, 0x22 - ldrsh r0, [r2, r3] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080DA386 - adds r0, r2, 0 - bl move_anim_8072740 -_080DA386: - pop {r0} - bx r0 - thumb_func_end sub_80DA348 - - thumb_func_start sub_80DA38C -sub_80DA38C: @ 80DA38C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080DA3B4 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DA3BC - movs r0, 0x88 - lsls r0, 1 - strh r0, [r5, 0x20] - ldr r0, _080DA3B8 - strh r0, [r5, 0x22] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080DA3C2 - .align 2, 0 -_080DA3B4: .4byte gUnknown_0202F7C8 -_080DA3B8: .4byte 0x0000ffe0 -_080DA3BC: - ldr r0, _080DA400 - strh r0, [r5, 0x20] - strh r0, [r5, 0x22] -_080DA3C2: - ldr r0, _080DA404 - ldrh r0, [r0] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080DA408 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080DA40C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DA400: .4byte 0x0000ffe0 -_080DA404: .4byte gUnknown_03004B00 -_080DA408: .4byte gUnknown_0202F7C9 -_080DA40C: .4byte sub_80DA410 - thumb_func_end sub_80DA38C - - thumb_func_start sub_80DA410 -sub_80DA410: @ 80DA410 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_8078B5C - ldrh r1, [r4, 0x34] - lsrs r0, r1, 8 - cmp r0, 0xC8 - bls _080DA438 - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - movs r0, 0 - strh r0, [r4, 0x24] - movs r0, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] -_080DA438: - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - adds r0, 0x20 - movs r1, 0x98 - lsls r1, 1 - cmp r0, r1 - bhi _080DA45A - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r0, r1 - cmp r0, 0xA0 - ble _080DA480 -_080DA45A: - movs r0, 0 - bl obj_id_for_side_relative_to_move - ldr r2, _080DA488 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl move_anim_8072740 -_080DA480: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DA488: .4byte gSprites - thumb_func_end sub_80DA410 - - thumb_func_start sub_80DA48C -sub_80DA48C: @ 80DA48C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - subs r1, r0, 0x1 - strh r1, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080DA4CC - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DA4BE - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] -_080DA4BE: - adds r0, r4, 0 - bl DestroySprite - ldr r1, _080DA4D4 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_080DA4CC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DA4D4: .4byte gUnknown_0202F7B2 - thumb_func_end sub_80DA48C - - thumb_func_start sub_80DA4D8 -sub_80DA4D8: @ 80DA4D8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - adds r5, r7, 0 - adds r5, 0x2E - ldr r0, _080DA4F8 - ldrh r1, [r0, 0xE] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080DA500 - ldr r0, _080DA4FC - b _080DA502 - .align 2, 0 -_080DA4F8: .4byte gUnknown_03004B00 -_080DA4FC: .4byte gUnknown_0202F7C8 -_080DA500: - ldr r0, _080DA5B0 -_080DA502: - ldrb r6, [r0] - adds r0, r6, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DA518 - ldr r1, _080DA5B4 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080DA518: - adds r0, r6, 0 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080DA5B4 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r7, 0x20] - adds r0, r6, 0 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - ldrh r1, [r4, 0x2] - lsrs r0, 24 - adds r1, r0, r1 - strh r1, [r7, 0x22] - lsls r1, 8 - strh r1, [r5, 0x8] - ldrh r1, [r4, 0xC] - adds r0, r1 - lsls r0, 1 - ldrh r2, [r5, 0xE] - movs r1, 0x1 - ands r1, r2 - orrs r1, r0 - strh r1, [r5, 0xE] - ldrb r0, [r5] - movs r2, 0x4 - mov r8, r2 - mov r1, r8 - orrs r0, r1 - strb r0, [r5] - ldrh r0, [r4, 0x4] - ldrb r1, [r4, 0x4] - strh r1, [r5, 0x2] - lsls r0, 16 - lsrs r0, 24 - strh r0, [r5, 0xA] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x4] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x6] - ldrh r0, [r4, 0xA] - strh r0, [r5, 0xC] - subs r1, 0x40 - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x7F - bhi _080DA618 - ldr r0, _080DA5B8 - ldr r2, _080DA5BC - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DA5C0 - adds r0, r6, 0 - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r7, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x5] - b _080DA5D8 - .align 2, 0 -_080DA5B0: .4byte gUnknown_0202F7C9 -_080DA5B4: .4byte gUnknown_03004B00 -_080DA5B8: .4byte gMain -_080DA5BC: .4byte 0x0000043d -_080DA5C0: - adds r0, r6, 0 - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r7, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, 0x5] -_080DA5D8: - ldrb r1, [r5, 0xE] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r1 - strb r0, [r5, 0xE] - movs r1, 0x4 - ldrsh r0, [r5, r1] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - bne _080DA678 - adds r3, r7, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r0, r2, 31 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r7, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - b _080DA66E -_080DA618: - adds r0, r6, 0 - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r7, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, 0x5] - ldrb r0, [r5, 0xE] - movs r4, 0x1 - orrs r0, r4 - strb r0, [r5, 0xE] - movs r2, 0x4 - ldrsh r0, [r5, r2] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080DA678 - adds r3, r7, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - ands r1, r4 - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r7, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - mov r1, r8 -_080DA66E: - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] -_080DA678: - ldrh r1, [r5, 0x2] - lsrs r1, 6 - lsls r1, 4 - ldrb r2, [r5] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - ldr r3, _080DA6E4 - ldrh r0, [r5, 0x2] - lsls r0, 1 - adds r0, r3 - movs r2, 0 - ldrsh r1, [r0, r2] - ldrb r0, [r5, 0xC] - muls r0, r1 - asrs r0, 8 - strh r0, [r7, 0x24] - ldrb r2, [r7, 0x3] - lsls r2, 26 - lsrs r2, 27 - movs r1, 0x24 - ldrsh r0, [r7, r1] - negs r0, r0 - asrs r0, 1 - ldrb r5, [r5, 0xA] - adds r0, r5 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r3 - ldrh r4, [r1] - ldr r1, _080DA6E8 - lsls r2, 3 - adds r2, r1 - adds r0, 0x40 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2, 0x6] - strh r0, [r2] - strh r4, [r2, 0x2] - lsls r0, r4, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - ldr r0, _080DA6EC - str r0, [r7, 0x1C] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DA6E4: .4byte gSineTable -_080DA6E8: .4byte gOamMatrices -_080DA6EC: .4byte sub_80DA6F0 - thumb_func_end sub_80DA4D8 - - thumb_func_start sub_80DA6F0 -sub_80DA6F0: @ 80DA6F0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - movs r6, 0 - movs r0, 0x2E - adds r0, r5 - mov r12, r0 - ldrb r2, [r0] - movs r7, 0x1 - movs r1, 0x1 - mov r9, r1 - mov r0, r9 - ands r0, r2 - cmp r0, 0 - beq _080DA730 - mov r3, r12 - ldrb r0, [r3, 0x1] - adds r1, r0, 0 - adds r1, 0xFF - strb r1, [r3, 0x1] - lsls r0, 24 - cmp r0, 0 - beq _080DA724 - b _080DAD1A -_080DA724: - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r3] - strb r6, [r3, 0x1] - b _080DAD1A -_080DA730: - mov r4, r12 - ldrh r0, [r4, 0x2] - lsrs r4, r0, 6 - mov r8, r0 - cmp r4, 0x1 - bne _080DA73E - b _080DA896 -_080DA73E: - cmp r4, 0x1 - bgt _080DA748 - cmp r4, 0 - beq _080DA756 - b _080DAC52 -_080DA748: - cmp r4, 0x2 - bne _080DA74E - b _080DA9C8 -_080DA74E: - cmp r4, 0x3 - bne _080DA754 - b _080DAB0E -_080DA754: - b _080DAC52 -_080DA756: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x1 - bne _080DA76C - movs r0, 0x8 - orrs r0, r2 - orrs r0, r7 - mov r1, r12 - strb r0, [r1] - strb r6, [r1, 0x1] - b _080DA88A -_080DA76C: - lsrs r0, r1, 28 - cmp r0, 0x3 - bne _080DA790 - lsls r0, r2, 30 - lsrs r0, 31 - movs r1, 0x1 - eors r0, r1 - ands r0, r7 - lsls r0, 1 - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - orrs r1, r7 - mov r2, r12 - strb r1, [r2] - strb r6, [r2, 0x1] - b _080DA88A -_080DA790: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080DA88A - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r4, 0x1 - eors r1, r4 - ands r1, r7 - movs r6, 0x2 - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - mov r3, r12 - ldrb r1, [r3] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DA87A - ldr r0, _080DA80C - ldr r1, _080DA810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DA82E - ldrb r1, [r3, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DA814 - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DA868 - .align 2, 0 -_080DA80C: .4byte gMain -_080DA810: .4byte 0x0000043d -_080DA814: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DA866 -_080DA82E: - mov r0, r12 - ldrb r1, [r0, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DA85C - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - strb r0, [r1] - mov r1, r12 - ldrb r2, [r1, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - mov r2, r12 - strb r1, [r2, 0xE] - b _080DA87A -_080DA85C: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC - strb r0, [r1] -_080DA866: - mov r3, r12 -_080DA868: - ldrb r2, [r3, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] -_080DA87A: - mov r4, r12 - ldrb r1, [r4] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrh r0, [r4, 0x2] - mov r8, r0 -_080DA88A: - mov r2, r12 - ldrb r1, [r2] - movs r0, 0xF - ands r0, r1 - strb r0, [r2] - b _080DAC52 -_080DA896: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0 - bne _080DA8AC - movs r0, 0x8 - orrs r0, r2 - orrs r0, r7 - mov r3, r12 - strb r0, [r3] - strb r6, [r3, 0x1] - b _080DA9BC -_080DA8AC: - lsrs r0, r1, 28 - cmp r0, 0x2 - bne _080DA8BE - adds r0, r2, 0 - orrs r0, r7 - mov r4, r12 - strb r0, [r4] - strb r6, [r4, 0x1] - b _080DA9BC -_080DA8BE: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080DA9BC - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r4, 0x1 - eors r1, r4 - ands r1, r7 - movs r6, 0x2 - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - mov r0, r12 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DA9AC - ldr r0, _080DA940 - ldr r1, _080DA944 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DA962 - mov r2, r12 - ldrb r1, [r2, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DA948 - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - mov r3, r12 - b _080DA978 - .align 2, 0 -_080DA940: .4byte gMain -_080DA944: .4byte 0x0000043d -_080DA948: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DA996 -_080DA962: - mov r3, r12 - ldrb r1, [r3, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DA98C - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - strb r0, [r1] -_080DA978: - ldrb r2, [r3, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] - b _080DA9AC -_080DA98C: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC - strb r0, [r1] -_080DA996: - mov r0, r12 - ldrb r2, [r0, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - mov r2, r12 - strb r1, [r2, 0xE] -_080DA9AC: - mov r3, r12 - ldrb r1, [r3] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldrh r4, [r3, 0x2] - mov r8, r4 -_080DA9BC: - mov r1, r12 - ldrb r0, [r1] - movs r1, 0xF - ands r1, r0 - movs r0, 0x10 - b _080DAC4C -_080DA9C8: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x3 - bne _080DA9DE - movs r0, 0x8 - orrs r0, r2 - orrs r0, r7 - mov r3, r12 - strb r0, [r3] - strb r6, [r3, 0x1] - b _080DAAFE -_080DA9DE: - lsrs r0, r1, 28 - cmp r0, 0x1 - bne _080DA9F0 - adds r0, r2, 0 - orrs r0, r7 - mov r4, r12 - strb r0, [r4] - strb r6, [r4, 0x1] - b _080DAAFE -_080DA9F0: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - bne _080DA9FA - b _080DAAFE -_080DA9FA: - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r6, 0x1 - eors r1, r6 - ands r1, r7 - movs r0, 0x2 - negs r0, r0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - mov r2, r12 - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DAAEC - ldr r0, _080DAA6C - ldr r3, _080DAA70 - adds r0, r3 - ldrb r0, [r0] - ands r4, r0 - cmp r4, 0 - beq _080DAAA4 - ldrb r1, [r2, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DAA74 - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DAAD8 - .align 2, 0 -_080DAA6C: .4byte gMain -_080DAA70: .4byte 0x0000043d -_080DAA74: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - mov r0, r12 - ldrb r2, [r0, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - mov r2, r12 - strb r1, [r2, 0xE] - b _080DAAEC -_080DAAA4: - mov r3, r12 - ldrb r1, [r3, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DAACE - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - strb r0, [r1] - ldrb r2, [r3, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] - b _080DAAEC -_080DAACE: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC - strb r0, [r1] -_080DAAD8: - mov r4, r12 - ldrb r2, [r4, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0xE] -_080DAAEC: - mov r0, r12 - ldrb r1, [r0] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r2, [r1, 0x2] - mov r8, r2 -_080DAAFE: - mov r3, r12 - ldrb r0, [r3] - movs r1, 0xF - ands r1, r0 - movs r0, 0x20 - orrs r1, r0 - strb r1, [r3] - b _080DAC52 -_080DAB0E: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x2 - bne _080DAB20 - movs r0, 0x8 - orrs r0, r2 - mov r4, r12 - strb r0, [r4] - b _080DAC42 -_080DAB20: - lsrs r0, r1, 28 - cmp r0, 0 - bne _080DAB44 - lsls r0, r2, 30 - lsrs r0, 31 - movs r1, 0x1 - eors r0, r1 - ands r0, r7 - lsls r0, 1 - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - orrs r1, r7 - mov r0, r12 - strb r1, [r0] - strb r6, [r0, 0x1] - b _080DAC42 -_080DAB44: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080DAC42 - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r4, 0x1 - eors r1, r4 - ands r1, r7 - movs r6, 0x2 - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - mov r2, r12 - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DAC32 - ldr r0, _080DABC4 - ldr r3, _080DABC8 - adds r0, r3 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DABE6 - ldrb r1, [r2, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DABCC - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - mov r0, r12 - ldrb r2, [r0, 0xE] - b _080DAC00 - .align 2, 0 -_080DABC4: .4byte gMain -_080DABC8: .4byte 0x0000043d -_080DABCC: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DAC1E -_080DABE6: - mov r0, r12 - ldrb r1, [r0, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DAC14 - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - strb r0, [r1] - mov r1, r12 - ldrb r2, [r1, 0xE] -_080DAC00: - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - mov r2, r12 - strb r1, [r2, 0xE] - b _080DAC32 -_080DAC14: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC - strb r0, [r1] -_080DAC1E: - mov r3, r12 - ldrb r2, [r3, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] -_080DAC32: - mov r4, r12 - ldrb r1, [r4] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrh r0, [r4, 0x2] - mov r8, r0 -_080DAC42: - mov r1, r12 - ldrb r0, [r1] - movs r1, 0xF - ands r1, r0 - movs r0, 0x30 -_080DAC4C: - orrs r1, r0 - mov r2, r12 - strb r1, [r2] -_080DAC52: - mov r3, r12 - ldrb r1, [r3] - lsls r1, 30 - lsrs r1, 31 - mov r0, r12 - adds r0, 0xC - adds r0, r1 - ldrb r1, [r0] - ldr r3, _080DACE0 - mov r4, r8 - lsls r0, r4, 1 - adds r0, r3 - movs r2, 0 - ldrsh r0, [r0, r2] - muls r0, r1 - asrs r0, 8 - strh r0, [r5, 0x24] - ldrb r2, [r5, 0x3] - lsls r2, 26 - lsrs r2, 27 - movs r4, 0x24 - ldrsh r0, [r5, r4] - negs r0, r0 - asrs r0, 1 - mov r1, r12 - ldrb r1, [r1, 0xA] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r3 - ldrh r6, [r1] - ldr r1, _080DACE4 - lsls r2, 3 - adds r2, r1 - adds r0, 0x40 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2, 0x6] - strh r0, [r2] - strh r6, [r2, 0x2] - lsls r0, r6, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - mov r2, r12 - ldrh r0, [r2, 0x6] - ldrh r3, [r2, 0x8] - adds r0, r3 - strh r0, [r2, 0x8] - lsls r0, 16 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r4, 0x4 - ldrsh r0, [r2, r4] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080DACE8 - ldrh r0, [r2, 0x4] - subs r1, 0x1 - ands r1, r0 - ldrh r0, [r2, 0x2] - subs r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r2, 0x2] - b _080DACFE - .align 2, 0 -_080DACE0: .4byte gSineTable -_080DACE4: .4byte gOamMatrices -_080DACE8: - mov r1, r12 - ldrh r0, [r1, 0x4] - ldr r1, _080DAD28 - ands r1, r0 - mov r2, r12 - ldrh r2, [r2, 0x2] - adds r1, r2 - movs r0, 0xFF - ands r1, r0 - mov r3, r12 - strh r1, [r3, 0x2] -_080DACFE: - movs r4, 0x22 - ldrsh r1, [r5, r4] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - mov r3, r12 - ldrh r0, [r3, 0xE] - lsrs r0, 1 - cmp r1, r0 - blt _080DAD1A - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080DAD2C - str r0, [r5, 0x1C] -_080DAD1A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DAD28: .4byte 0x00007fff -_080DAD2C: .4byte sub_80DA48C - thumb_func_end sub_80DA6F0 - - thumb_func_start sub_80DAD30 -sub_80DAD30: @ 80DAD30 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _080DAD78 - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - ldr r5, _080DAD7C - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r0, _080DAD80 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DAD78: .4byte gUnknown_0202F7C9 -_080DAD7C: .4byte gUnknown_0202F7C8 -_080DAD80: .4byte sub_807941C - thumb_func_end sub_80DAD30 - - thumb_func_start sub_80DAD84 -sub_80DAD84: @ 80DAD84 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r5, _080DADCC - ldrh r0, [r5] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x34] - ldr r0, _080DADD0 - ldr r1, _080DADD4 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DAE44 - ldr r0, _080DADD8 - ldr r1, _080DADDC - ldrb r2, [r1] - adds r0, r2, r0 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DADE0 - adds r0, r2, 0 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - b _080DADEE - .align 2, 0 -_080DADCC: .4byte gUnknown_03004B00 -_080DADD0: .4byte gMain -_080DADD4: .4byte 0x0000043d -_080DADD8: .4byte gUnknown_02024A72 -_080DADDC: .4byte gUnknown_0202F7C9 -_080DADE0: - adds r0, r2, 0 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x28 -_080DADEE: - strh r0, [r4, 0x3C] - ldr r0, _080DAE1C - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080DAE24 - ldr r0, _080DAE20 - ldrb r0, [r0] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - b _080DAE58 - .align 2, 0 -_080DAE1C: .4byte gUnknown_03004B00 -_080DAE20: .4byte gUnknown_0202F7C9 -_080DAE24: - ldr r0, _080DAE40 - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080DAE58 - .align 2, 0 -_080DAE40: .4byte gUnknown_0202F7C9 -_080DAE44: - ldr r0, _080DAEFC - ldrb r0, [r0] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - strh r0, [r4, 0x3C] -_080DAE58: - ldr r5, _080DAF00 - ldrh r3, [r4, 0x30] - movs r1, 0xFF - ands r1, r3 - lsls r0, r1, 1 - adds r0, r5 - ldrh r0, [r0] - movs r2, 0 - strh r0, [r4, 0x36] - adds r1, 0x40 - lsls r1, 1 - adds r1, r5 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r4, 0x38] - strh r2, [r4, 0x3A] - strh r2, [r4, 0x26] - strh r2, [r4, 0x24] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r6, r0, 27 - lsls r3, 16 - lsrs r3, 24 - strh r3, [r4, 0x30] - bl Random - lsls r0, 16 - asrs r7, r0, 16 - movs r0, 0x80 - lsls r0, 8 - ands r0, r7 - cmp r0, 0 - beq _080DAEA2 - ldrh r1, [r4, 0x30] - movs r0, 0xFF - subs r0, r1 - strh r0, [r4, 0x30] -_080DAEA2: - movs r0, 0x30 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r5 - ldrh r0, [r0] - ldr r3, _080DAF04 - lsls r2, r6, 3 - adds r2, r3 - adds r1, 0x40 - lsls r1, 1 - adds r1, r5 - ldrh r1, [r1] - strh r1, [r2, 0x6] - strh r1, [r2] - strh r0, [r2, 0x2] - lsls r0, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - adds r3, r4, 0 - adds r3, 0x3F - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - movs r0, 0x1 - ands r0, r7 - cmp r0, 0 - beq _080DAEF2 - adds r2, r4, 0 - adds r2, 0x2A - movs r1, 0x1 - movs r0, 0x1 - strb r0, [r2] - ldrb r0, [r3] - orrs r0, r1 - strb r0, [r3] -_080DAEF2: - ldr r0, _080DAF08 - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DAEFC: .4byte gUnknown_0202F7C9 -_080DAF00: .4byte gSineTable -_080DAF04: .4byte gOamMatrices -_080DAF08: .4byte sub_80DAF0C - thumb_func_end sub_80DAD84 - - thumb_func_start sub_80DAF0C -sub_80DAF0C: @ 80DAF0C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r4, 0 - adds r5, 0x2E - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - movs r1, 0 - mov r8, r1 - movs r7, 0 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080DAFF0 - movs r2, 0x36 - ldrsh r1, [r4, r2] - movs r2, 0x3A - ldrsh r0, [r4, r2] - muls r0, r1 - asrs r6, r0, 8 - strh r6, [r4, 0x24] - movs r0, 0x38 - ldrsh r1, [r4, r0] - movs r2, 0x3A - ldrsh r0, [r4, r2] - muls r0, r1 - asrs r3, r0, 8 - strh r3, [r4, 0x26] - ldrh r2, [r4, 0x34] - movs r1, 0xFF - adds r0, r1, 0 - ands r0, r2 - ldrh r2, [r4, 0x3A] - adds r0, r2 - strh r0, [r4, 0x3A] - ldrh r2, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - ands r1, r2 - cmp r0, r1 - blt _080DAFF0 - ldrh r0, [r4, 0x20] - adds r0, r6 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - strh r7, [r4, 0x24] - strh r7, [r4, 0x26] - mov r0, sp - adds r1, r5, 0 - movs r2, 0x10 - bl memcpy - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x10 - bl memset - ldrh r0, [r4, 0x22] - lsls r0, 8 - strh r0, [r5, 0x8] - mov r0, sp - ldrh r0, [r0, 0x6] - lsrs r1, r0, 8 - strh r1, [r5, 0x6] - strh r7, [r5, 0x2] - mov r0, sp - ldrh r0, [r0, 0x2] - strh r0, [r5, 0xA] - adds r0, r4, 0 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, 0 - beq _080DAFC0 - movs r0, 0x8 - ands r1, r0 - cmp r1, 0 - beq _080DAFB8 - ldr r0, _080DAFB4 - b _080DAFCE - .align 2, 0 -_080DAFB4: .4byte 0x00008001 -_080DAFB8: - ldr r0, _080DAFBC - b _080DAFCE - .align 2, 0 -_080DAFBC: .4byte 0x00008002 -_080DAFC0: - movs r0, 0x8 - ands r1, r0 - cmp r1, 0 - beq _080DAFCC - movs r0, 0x1 - b _080DAFCE -_080DAFCC: - movs r0, 0x2 -_080DAFCE: - strh r0, [r5, 0x4] - mov r0, sp - ldrh r0, [r0, 0x4] - lsrs r0, 8 - strb r0, [r5, 0xC] - subs r0, 0x2 - strb r0, [r5, 0xD] - mov r0, sp - ldrh r1, [r0, 0xE] - lsls r1, 1 - ldrh r2, [r5, 0xE] - movs r0, 0x1 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0xE] - ldr r0, _080DAFFC - str r0, [r4, 0x1C] -_080DAFF0: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DAFFC: .4byte sub_80DA6F0 - thumb_func_end sub_80DAF0C - - thumb_func_start sub_80DB000 -sub_80DB000: @ 80DB000 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080DB018 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DB01C - adds r0, r5, 0 - movs r1, 0 - bl sub_80787B0 - b _080DB024 - .align 2, 0 -_080DB018: .4byte gUnknown_03004B00 -_080DB01C: - adds r0, r5, 0 - movs r1, 0 - bl sub_8078764 -_080DB024: - ldr r4, _080DB08C - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080DB03C - ldr r0, _080DB090 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DB052 -_080DB03C: - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080DB058 - ldr r0, _080DB094 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DB058 -_080DB052: - ldrh r0, [r5, 0x20] - adds r0, 0x8 - strh r0, [r5, 0x20] -_080DB058: - ldr r4, _080DB08C - ldrb r1, [r4, 0x8] - adds r0, r5, 0 - bl SeekSpriteAnim - ldrh r0, [r5, 0x20] - subs r0, 0x20 - strh r0, [r5, 0x20] - ldr r0, _080DB098 - strh r0, [r5, 0x30] - ldrh r1, [r4, 0x8] - movs r0, 0xC - adds r2, r0, 0 - muls r2, r1 - adds r0, r2, 0 - ldrh r2, [r5, 0x24] - adds r0, r2 - strh r0, [r5, 0x24] - strh r1, [r5, 0x2E] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x3C] - ldr r0, _080DB09C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DB08C: .4byte gUnknown_03004B00 -_080DB090: .4byte gUnknown_0202F7C8 -_080DB094: .4byte gUnknown_0202F7C9 -_080DB098: .4byte 0x00000ccc -_080DB09C: .4byte sub_80DB0A0 - thumb_func_end sub_80DB000 - - thumb_func_start sub_80DB0A0 -sub_80DB0A0: @ 80DB0A0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x24] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _080DB0CA - strh r1, [r4, 0x2E] - strh r1, [r4, 0x24] - adds r0, r4, 0 - bl StartSpriteAnim -_080DB0CA: - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080DB0E2 - adds r0, r4, 0 - bl move_anim_8072740 -_080DB0E2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DB0A0 - - thumb_func_start sub_80DB0E8 -sub_80DB0E8: @ 80DB0E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080DB180 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r7, r0, r1 - ldrh r0, [r7, 0x8] - movs r1, 0x1F - ands r0, r1 - cmp r0, 0 - bne _080DB162 - ldr r1, _080DB184 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r1, 0x8 - ldrsh r0, [r7, r1] - movs r5, 0xD - negs r5, r5 - adds r1, r5, 0 - bl Sin - ldr r4, _080DB188 - strh r0, [r4] - movs r1, 0x8 - ldrsh r0, [r7, r1] - adds r1, r5, 0 - bl Cos - strh r0, [r4, 0x2] - movs r0, 0x1 - strh r0, [r4, 0x4] - movs r0, 0x3 - strh r0, [r4, 0x6] - ldr r0, _080DB18C - mov r8, r0 - ldr r5, _080DB190 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - mov r0, r8 - adds r1, r4, 0 - movs r3, 0x3 - bl CreateSpriteAndAnimate -_080DB162: - ldrh r0, [r7, 0x8] - adds r0, 0x8 - strh r0, [r7, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080DB176 - adds r0, r6, 0 - bl move_anim_task_del -_080DB176: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DB180: .4byte gTasks -_080DB184: .4byte gUnknown_0202F7B2 -_080DB188: .4byte gUnknown_03004B00 -_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538 -_080DB190: .4byte gUnknown_0202F7C9 - thumb_func_end sub_80DB0E8 - - thumb_func_start sub_80DB194 -sub_80DB194: @ 80DB194 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080DB1A6 - cmp r0, 0x1 - beq _080DB1D8 - b _080DB1EC -_080DB1A6: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80787B0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - ldr r2, _080DB1D4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080DB1EC - .align 2, 0 -_080DB1D4: .4byte gSprites -_080DB1D8: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080DB1EC - adds r0, r4, 0 - bl move_anim_8072740 -_080DB1EC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DB194 - - thumb_func_start sub_80DB1F4 -sub_80DB1F4: @ 80DB1F4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080DB22C - cmp r0, 0x1 - bgt _080DB20A - cmp r0, 0 - beq _080DB210 - b _080DB27E -_080DB20A: - cmp r0, 0x2 - beq _080DB240 - b _080DB27E -_080DB210: - ldr r0, _080DB228 - ldrb r0, [r0] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - negs r0, r0 - subs r0, 0x20 - strh r0, [r4, 0x26] - b _080DB238 - .align 2, 0 -_080DB228: .4byte gUnknown_0202F7C9 -_080DB22C: - ldrh r0, [r4, 0x26] - adds r0, 0xA - strh r0, [r4, 0x26] - lsls r0, 16 - cmp r0, 0 - blt _080DB27E -_080DB238: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080DB27E -_080DB240: - ldrh r0, [r4, 0x26] - subs r0, 0xA - strh r0, [r4, 0x26] - movs r2, 0x22 - ldrsh r0, [r4, r2] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080DB27E - movs r0, 0 - bl obj_id_for_side_relative_to_move - ldr r2, _080DB284 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl move_anim_8072740 -_080DB27E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DB284: .4byte gSprites - thumb_func_end sub_80DB1F4 - - thumb_func_start sub_80DB288 -sub_80DB288: @ 80DB288 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r1, _080DB2C4 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080DB2C8 - str r0, [r4, 0x1C] - movs r0, 0 - bl obj_id_for_side_relative_to_move - ldr r2, _080DB2CC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DB2C4: .4byte gUnknown_03004B00 -_080DB2C8: .4byte sub_80DB2D0 -_080DB2CC: .4byte gSprites - thumb_func_end sub_80DB288 - - thumb_func_start sub_80DB2D0 -sub_80DB2D0: @ 80DB2D0 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2E] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _080DB2E4 - subs r0, r1, 0x1 - strh r0, [r2, 0x2E] - b _080DB328 -_080DB2E4: - movs r1, 0x22 - ldrsh r0, [r2, r1] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - ble _080DB30A - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r2, 0x26] - subs r1, r0 - strh r1, [r2, 0x26] - b _080DB328 -_080DB30A: - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r2, 0x34] - adds r1, r0, 0x1 - strh r1, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080DB328 - ldr r0, _080DB32C - str r0, [r2, 0x1C] -_080DB328: - pop {r0} - bx r0 - .align 2, 0 -_080DB32C: .4byte sub_80DB330 - thumb_func_end sub_80DB2D0 - - thumb_func_start sub_80DB330 -sub_80DB330: @ 80DB330 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r2, 0x26] - adds r0, r1 - strh r0, [r2, 0x26] - movs r3, 0x22 - ldrsh r0, [r2, r3] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - ble _080DB360 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_080DB360: - movs r1, 0x26 - ldrsh r0, [r2, r1] - cmp r0, 0 - ble _080DB36E - adds r0, r2, 0 - bl move_anim_8072740 -_080DB36E: - pop {r0} - bx r0 - thumb_func_end sub_80DB330 - - thumb_func_start sub_80DB374 -sub_80DB374: @ 80DB374 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080DB388 - cmp r0, 0x1 - beq _080DB3E0 - b _080DB44C -_080DB388: - ldr r0, _080DB398 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _080DB3A0 - ldr r4, _080DB39C - b _080DB3A2 - .align 2, 0 -_080DB398: .4byte gUnknown_03004B00 -_080DB39C: .4byte gUnknown_0202F7C8 -_080DB3A0: - ldr r4, _080DB3DC -_080DB3A2: - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r0, 0 - movs r3, 0x80 - lsls r3, 2 - strh r3, [r5, 0x30] - movs r2, 0x80 - lsls r2, 1 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0 - bl sub_8078FDC - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080DB44C - .align 2, 0 -_080DB3DC: .4byte gUnknown_0202F7C9 -_080DB3E0: - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0xB - bgt _080DB3EE - ldrh r0, [r5, 0x30] - subs r0, 0x28 - b _080DB3F2 -_080DB3EE: - ldrh r0, [r5, 0x30] - adds r0, 0x28 -_080DB3F2: - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x32] - movs r2, 0x80 - lsls r2, 1 - movs r0, 0x30 - ldrsh r3, [r5, r0] - str r1, [sp] - adds r0, r5, 0 - bl sub_8078FDC - ldrb r1, [r5, 0x3] - lsls r1, 26 - lsrs r1, 27 - movs r0, 0xF4 - lsls r0, 6 - ldr r2, _080DB454 - lsls r1, 3 - adds r1, r2 - movs r2, 0x6 - ldrsh r1, [r1, r2] - bl __divsi3 - adds r1, r0, 0x1 - cmp r1, 0x80 - ble _080DB42C - movs r1, 0x80 -_080DB42C: - movs r0, 0x40 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r1, r0, 1 - strh r1, [r5, 0x26] - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0x18 - bne _080DB44C - adds r0, r5, 0 - bl sub_8079098 - adds r0, r5, 0 - bl move_anim_8072740 -_080DB44C: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DB454: .4byte gOamMatrices - thumb_func_end sub_80DB374 - - thumb_func_start sub_80DB458 -sub_80DB458: @ 80DB458 - push {r4,r5,lr} - adds r5, r0, 0 - bl Random - ldr r4, _080DB47C - ands r4, r0 - bl Random - movs r1, 0x7F - ands r1, r0 - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080DB480 - movs r2, 0xB8 - lsls r2, 2 - adds r0, r4, r2 - b _080DB488 - .align 2, 0 -_080DB47C: .4byte 0x000001ff -_080DB480: - movs r2, 0xB8 - lsls r2, 2 - adds r0, r2, 0 - subs r0, r4 -_080DB488: - strh r0, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DB49C - movs r2, 0xE0 - lsls r2, 2 - adds r0, r2, 0 - adds r0, r1, r0 - b _080DB4A4 -_080DB49C: - movs r2, 0xE0 - lsls r2, 2 - adds r0, r2, 0 - subs r0, r1 -_080DB4A4: - strh r0, [r5, 0x30] - ldr r2, _080DB4CC - ldrh r0, [r2] - strh r0, [r5, 0x32] - lsls r0, 16 - cmp r0, 0 - beq _080DB4C0 - ldrb r0, [r5, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r5, 0x3] -_080DB4C0: - movs r1, 0x2 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080DB4D4 - ldr r4, _080DB4D0 - b _080DB4D6 - .align 2, 0 -_080DB4CC: .4byte gUnknown_03004B00 -_080DB4D0: .4byte gUnknown_0202F7C8 -_080DB4D4: - ldr r4, _080DB500 -_080DB4D6: - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r5, 0x22] - ldr r0, _080DB504 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DB500: .4byte gUnknown_0202F7C9 -_080DB504: .4byte sub_80DB508 - thumb_func_end sub_80DB458 - - thumb_func_start sub_80DB508 -sub_80DB508: @ 80DB508 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080DB520 - ldrh r3, [r4, 0x2E] - lsls r0, r3, 16 - asrs r0, 24 - ldrh r1, [r4, 0x24] - adds r0, r1 - b _080DB52A -_080DB520: - ldrh r3, [r4, 0x2E] - lsls r1, r3, 16 - asrs r1, 24 - ldrh r0, [r4, 0x24] - subs r0, r1 -_080DB52A: - strh r0, [r4, 0x24] - ldrh r2, [r4, 0x30] - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r4, 0x26] - subs r0, r1 - strh r0, [r4, 0x26] - strh r3, [r4, 0x2E] - adds r0, r2, 0 - subs r0, 0x20 - strh r0, [r4, 0x30] - lsls r0, r3, 16 - cmp r0, 0 - bge _080DB54A - movs r0, 0 - strh r0, [r4, 0x2E] -_080DB54A: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _080DB55E - adds r0, r4, 0 - bl move_anim_8072740 -_080DB55E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DB508 - - thumb_func_start sub_80DB564 -sub_80DB564: @ 80DB564 - movs r1, 0 - strh r1, [r0, 0x3A] - movs r1, 0x40 - strh r1, [r0, 0x3C] - ldr r1, _080DB574 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080DB574: .4byte sub_80DB578 - thumb_func_end sub_80DB564 - - thumb_func_start sub_80DB578 -sub_80DB578: @ 80DB578 - push {lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r1, [r3, r0] - cmp r1, 0 - beq _080DB58A - cmp r1, 0x1 - beq _080DB5D8 - b _080DB5DE -_080DB58A: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080DB5DE - strh r1, [r3, 0x30] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r2, [r1] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080DB5DE - ldrb r1, [r1] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DB5DE - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _080DB5DE -_080DB5D8: - adds r0, r3, 0 - bl move_anim_8072740 -_080DB5DE: - pop {r0} - bx r0 - thumb_func_end sub_80DB578 - - thumb_func_start sub_80DB5E4 -sub_80DB5E4: @ 80DB5E4 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - mov r8, r0 - ldrh r4, [r0, 0x20] - ldrh r5, [r0, 0x22] - ldr r6, _080DB698 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8077ABC - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - mov r2, r8 - strh r6, [r2, 0x22] - ldrh r0, [r2, 0x20] - mov r9, r0 - mov r1, r9 - lsls r0, r1, 4 - strh r0, [r2, 0x36] - lsls r0, r6, 4 - strh r0, [r2, 0x38] - lsls r4, 16 - asrs r4, 16 - movs r1, 0x20 - ldrsh r0, [r2, r1] - subs r0, r4, r0 - lsls r0, 4 - movs r1, 0xC - bl __divsi3 - mov r2, r8 - strh r0, [r2, 0x3A] - lsls r5, 16 - asrs r5, 16 - movs r1, 0x22 - ldrsh r0, [r2, r1] - subs r0, r5, r0 - lsls r0, 4 - movs r1, 0xC - bl __divsi3 - mov r2, r8 - strh r0, [r2, 0x3C] - mov r0, r9 - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - subs r5, r6 - lsls r5, 16 - asrs r5, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80790F0 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - mov r0, r8 - movs r1, 0x1 - adds r2, r3, 0 - bl sub_8078FDC - ldr r0, _080DB69C - mov r2, r8 - str r0, [r2, 0x1C] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DB698: .4byte gUnknown_0202F7C8 -_080DB69C: .4byte sub_80DB6A0 - thumb_func_end sub_80DB5E4 - - thumb_func_start sub_80DB6A0 -sub_80DB6A0: @ 80DB6A0 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x3A] - ldrh r1, [r2, 0x36] - adds r0, r1 - strh r0, [r2, 0x36] - ldrh r1, [r2, 0x3C] - ldrh r3, [r2, 0x38] - adds r1, r3 - strh r1, [r2, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r3, r1, 20 - strh r3, [r2, 0x22] - adds r0, 0x2D - lsls r0, 16 - movs r1, 0xA5 - lsls r1, 17 - cmp r0, r1 - bhi _080DB6DA - adds r1, r3, 0 - cmp r1, 0x9D - bgt _080DB6DA - movs r0, 0x2D - negs r0, r0 - cmp r1, r0 - bge _080DB6E0 -_080DB6DA: - adds r0, r2, 0 - bl move_anim_8074EE0 -_080DB6E0: - pop {r0} - bx r0 - thumb_func_end sub_80DB6A0 - - thumb_func_start unref_sub_80DB6E4 -unref_sub_80DB6E4: @ 80DB6E4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080DB714 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DB71C - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DB718 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - b _080DB73A - .align 2, 0 -_080DB714: .4byte gUnknown_03004B00 -_080DB718: .4byte gSprites -_080DB71C: - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DB748 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 -_080DB73A: - strb r0, [r1] - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DB748: .4byte gSprites - thumb_func_end unref_sub_80DB6E4 - - thumb_func_start sub_80DB74C -sub_80DB74C: @ 80DB74C - push {r4-r7,lr} - adds r6, r0, 0 - ldr r0, _080DB804 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DB768 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DB77E -_080DB768: - ldrb r1, [r6, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r6, 0x5] - adds r1, r6, 0 - adds r1, 0x43 - movs r0, 0xC8 - strb r0, [r1] -_080DB77E: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080DB7DA - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - adds r0, r4, 0 - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r5, r1, 31 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080DB7BC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8076034 -_080DB7BC: - movs r0, 0x2 - adds r4, r0, 0 - eors r4, r7 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080DB7DA - movs r0, 0x1 - eors r5, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8076034 -_080DB7DA: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080DB810 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080DB810 - ldr r0, _080DB804 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DB808 - movs r0, 0x48 - strh r0, [r6, 0x20] - movs r0, 0x50 - b _080DB84A - .align 2, 0 -_080DB804: .4byte gUnknown_0202F7C8 -_080DB808: - movs r0, 0xB0 - strh r0, [r6, 0x20] - movs r0, 0x28 - b _080DB84A -_080DB810: - ldr r5, _080DB880 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DB826 - ldr r1, _080DB884 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080DB826: - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080DB884 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 -_080DB84A: - strh r0, [r6, 0x22] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DB85C - ldrh r0, [r6, 0x22] - adds r0, 0x9 - strh r0, [r6, 0x22] -_080DB85C: - ldr r0, _080DB884 - ldrh r0, [r0, 0x4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r6, 0x2E] - ldr r1, _080DB888 - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DB880: .4byte gUnknown_0202F7C8 -_080DB884: .4byte gUnknown_03004B00 -_080DB888: .4byte sub_80DB88C - thumb_func_end sub_80DB74C - - thumb_func_start sub_80DB88C -sub_80DB88C: @ 80DB88C - push {lr} - adds r3, r0, 0 - ldr r2, _080DB8B0 - ldrh r1, [r3, 0x34] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r0, r1 - strh r0, [r2] - ldrh r1, [r3, 0x34] - movs r2, 0x34 - ldrsh r0, [r3, r2] - cmp r0, 0xD - bne _080DB8B8 - ldr r0, _080DB8B4 - str r0, [r3, 0x1C] - b _080DB8BC - .align 2, 0 -_080DB8B0: .4byte REG_BLDALPHA -_080DB8B4: .4byte sub_80DB8C0 -_080DB8B8: - adds r0, r1, 0x1 - strh r0, [r3, 0x34] -_080DB8BC: - pop {r0} - bx r0 - thumb_func_end sub_80DB88C - - thumb_func_start sub_80DB8C0 -sub_80DB8C0: @ 80DB8C0 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080DB91E - movs r0, 0 - strh r0, [r3, 0x30] - ldrh r4, [r3, 0x2E] - ldr r1, _080DB924 - adds r0, r4, 0 - adds r0, 0x8 - lsls r0, 1 - adds r0, r1 - ldrh r7, [r0] - movs r5, 0x8 - adds r6, r1, 0 - adds r1, r4, 0x7 - lsls r0, r4, 1 - adds r0, r6 - adds r2, r0, 0 - adds r2, 0x10 - lsls r1, 1 - adds r1, r6 -_080DB8F6: - ldrh r0, [r1] - strh r0, [r2] - subs r1, 0x2 - subs r2, 0x2 - subs r5, 0x1 - cmp r5, 0 - bgt _080DB8F6 - adds r0, r4, 0x1 - lsls r0, 1 - adds r0, r6 - strh r7, [r0] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - bne _080DB91E - ldr r0, _080DB928 - str r0, [r3, 0x1C] -_080DB91E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DB924: .4byte gPlttBufferFaded -_080DB928: .4byte sub_80DB92C - thumb_func_end sub_80DB8C0 - - thumb_func_start sub_80DB92C -sub_80DB92C: @ 80DB92C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r2, _080DB9D4 - ldrh r1, [r5, 0x34] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r5, 0x34] - subs r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080DB9CC - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080DB9BC - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080DB98E - ldr r2, _080DB9D8 - ldr r0, _080DB9DC - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_080DB98E: - movs r0, 0x2 - adds r4, r0, 0 - eors r4, r6 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080DB9BC - ldr r2, _080DB9D8 - ldr r0, _080DB9DC - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_080DB9BC: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080DB9E0 - str r0, [r5, 0x1C] -_080DB9CC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DB9D4: .4byte REG_BLDALPHA -_080DB9D8: .4byte gSprites -_080DB9DC: .4byte gUnknown_02024BE0 -_080DB9E0: .4byte sub_80DB9E4 - thumb_func_end sub_80DB92C - - thumb_func_start sub_80DB9E4 -sub_80DB9E4: @ 80DB9E4 - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080DBA3C - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r5, r1, 31 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080DBA22 - adds r0, r5, 0 - bl sub_8076464 -_080DBA22: - movs r0, 0x2 - eors r4, r0 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080DBA3C - movs r0, 0x1 - eors r5, r0 - adds r0, r5, 0 - bl sub_8076464 -_080DBA3C: - ldr r0, _080DBA48 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DBA48: .4byte move_anim_8072740 - thumb_func_end sub_80DB9E4 - - thumb_func_start sub_80DBA4C -sub_80DBA4C: @ 80DBA4C - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080DBAD8 - ldr r5, _080DBA98 - movs r1, 0x6 - ldrsh r0, [r5, r1] - movs r6, 0 - cmp r0, 0 - bne _080DBA66 - movs r6, 0x1 -_080DBA66: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080DBAAE - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080DBAAE - ldr r0, _080DBA9C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DBAA0 - ldrh r0, [r5] - movs r1, 0x48 - subs r1, r0 - strh r1, [r4, 0x20] - ldrh r0, [r5, 0x2] - adds r0, 0x50 - strh r0, [r4, 0x22] - b _080DBAD0 - .align 2, 0 -_080DBA98: .4byte gUnknown_03004B00 -_080DBA9C: .4byte gUnknown_0202F7C8 -_080DBAA0: - ldrh r0, [r5] - adds r0, 0xB0 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - adds r0, 0x28 - strh r0, [r4, 0x22] - b _080DBAD0 -_080DBAAE: - ldr r0, _080DBAC4 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DBAC8 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80787B0 - b _080DBAD0 - .align 2, 0 -_080DBAC4: .4byte gUnknown_03004B00 -_080DBAC8: - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_8078764 -_080DBAD0: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080DBAEC -_080DBAD8: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0 - beq _080DBAEC - adds r0, r4, 0 - bl move_anim_8074EE0 -_080DBAEC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80DBA4C - - thumb_func_start sub_80DBAF4 -sub_80DBAF4: @ 80DBAF4 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080DBB3C - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DBB44 - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r5, 0x20] - subs r0, 0x28 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - adds r0, 0xA - strh r0, [r5, 0x22] - ldr r0, _080DBB40 - b _080DBB52 - .align 2, 0 -_080DBB3C: .4byte gUnknown_0202F7C8 -_080DBB40: .4byte 0x0000ffff -_080DBB44: - ldrh r0, [r5, 0x20] - adds r0, 0x28 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - subs r0, 0xA - strh r0, [r5, 0x22] - movs r0, 0x1 -_080DBB52: - strh r0, [r5, 0x30] - ldr r1, _080DBB68 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080DBB6C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DBB68: .4byte move_anim_8072740 -_080DBB6C: .4byte sub_8078600 - thumb_func_end sub_80DBAF4 - - thumb_func_start sub_80DBB70 -sub_80DBB70: @ 80DBB70 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r6, _080DBBF4 - ldrb r0, [r6] - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - lsls r1, 15 - lsrs r4, r1, 16 - ldrb r0, [r6] - movs r1, 0 - bl sub_807A100 - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - asrs r1, 1 - negs r1, r1 - lsls r1, 16 - lsrs r7, r1, 16 - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DBBB6 - lsls r0, r4, 16 - negs r0, r0 - lsrs r4, r0, 16 -_080DBBB6: - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - strh r0, [r5, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r7 - strh r0, [r5, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - bgt _080DBBE2 - movs r0, 0x10 - strh r0, [r5, 0x22] -_080DBBE2: - ldr r1, _080DBBF8 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080DBBFC - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DBBF4: .4byte gUnknown_0202F7C8 -_080DBBF8: .4byte sub_80DBC00 -_080DBBFC: .4byte sub_8078600 - thumb_func_end sub_80DBB70 - - thumb_func_start sub_80DBC00 -sub_80DBC00: @ 80DBC00 - push {r4,lr} - adds r4, r0, 0 - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, _080DBC2C - str r0, [r4, 0x10] - movs r0, 0 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl InitSpriteAffineAnim - ldr r0, _080DBC30 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DBC2C: .4byte gUnknown_083DA888 -_080DBC30: .4byte sub_80DBC34 - thumb_func_end sub_80DBC00 - - thumb_func_start sub_80DBC34 -sub_80DBC34: @ 80DBC34 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080DBC46 - cmp r0, 0x1 - beq _080DBC74 - b _080DBC8C -_080DBC46: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080DBC8C - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x12 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080DBC8C -_080DBC74: - ldrh r0, [r4, 0x30] - subs r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080DBC8C - adds r0, r4, 0 - bl move_anim_8072740 -_080DBC8C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DBC34 - - thumb_func_start sub_80DBC94 -sub_80DBC94: @ 80DBC94 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080DBCC4 - adds r4, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - strh r1, [r4, 0x8] - ldr r2, _080DBCC8 - adds r0, r4, 0 - bl sub_80798F4 - ldr r0, _080DBCCC - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DBCC4: .4byte gTasks -_080DBCC8: .4byte gUnknown_083DA8A4 -_080DBCCC: .4byte sub_80DBCD0 - thumb_func_end sub_80DBC94 - - thumb_func_start sub_80DBCD0 -sub_80DBCD0: @ 80DBCD0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080DBCF8 - adds r0, r1 - bl sub_807992C - lsls r0, 24 - cmp r0, 0 - bne _080DBCF0 - adds r0, r4, 0 - bl move_anim_task_del -_080DBCF0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DBCF8: .4byte gTasks - thumb_func_end sub_80DBCD0 - - thumb_func_start sub_80DBCFC -sub_80DBCFC: @ 80DBCFC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DBD48 - adds r4, r1, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xA] - strh r1, [r4, 0xC] - ldr r0, _080DBD4C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - movs r1, 0x8 - cmp r0, 0 - beq _080DBD30 - movs r1, 0x4 -_080DBD30: - strh r1, [r4, 0xE] - ldrb r1, [r4, 0x8] - ldr r2, _080DBD50 - adds r0, r4, 0 - bl sub_80798F4 - ldr r0, _080DBD54 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DBD48: .4byte gTasks -_080DBD4C: .4byte gUnknown_0202F7C8 -_080DBD50: .4byte gUnknown_083DA8C4 -_080DBD54: .4byte sub_80DBD58 - thumb_func_end sub_80DBCFC - - thumb_func_start sub_80DBD58 -sub_80DBD58: @ 80DBD58 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080DBD78 - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080DBD7C - cmp r0, 0x1 - beq _080DBD98 - b _080DBDF6 - .align 2, 0 -_080DBD78: .4byte gTasks -_080DBD7C: - adds r0, r4, 0 - bl sub_807992C - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080DBDF6 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _080DBDF6 -_080DBD98: - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080DBDC0 - ldr r2, _080DBDBC - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x8 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080DBDF6 - .align 2, 0 -_080DBDBC: .4byte gSprites -_080DBDC0: - ldr r3, _080DBDFC - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x88 - lsls r1, 1 - strh r1, [r0, 0x20] - ldrb r0, [r4, 0x8] - bl sub_8078F40 - adds r0, r5, 0 - bl move_anim_task_del -_080DBDF6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DBDFC: .4byte gSprites - thumb_func_end sub_80DBD58 - - thumb_func_start sub_80DBE00 -sub_80DBE00: @ 80DBE00 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DBE84 - adds r5, r1, r0 - movs r0, 0 - movs r7, 0x10 - strh r7, [r5, 0xE] - strh r0, [r5, 0x10] - ldr r4, _080DBE88 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x24] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 - ldrb r0, [r4] - movs r1, 0 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - adds r1, r0, 0 - cmp r0, r6 - bcs _080DBE6A - adds r1, r6, 0 -_080DBE6A: - strh r1, [r5, 0x20] - ldr r1, _080DBE8C - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080DBE90 - strh r7, [r0] - ldr r0, _080DBE94 - str r0, [r5] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DBE84: .4byte gTasks -_080DBE88: .4byte gUnknown_0202F7C8 -_080DBE8C: .4byte REG_BLDCNT -_080DBE90: .4byte REG_BLDALPHA -_080DBE94: .4byte sub_80DBE98 - thumb_func_end sub_80DBE00 - - thumb_func_start sub_80DBE98 -sub_80DBE98: @ 80DBE98 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080DBEBC - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080DBF98 - cmp r1, 0x1 - bgt _080DBEC0 - cmp r1, 0 - beq _080DBECE - b _080DC014 - .align 2, 0 -_080DBEBC: .4byte gTasks -_080DBEC0: - cmp r1, 0x2 - bne _080DBEC6 - b _080DBFF4 -_080DBEC6: - cmp r1, 0x3 - bne _080DBECC - b _080DC004 -_080DBECC: - b _080DC014 -_080DBECE: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - bgt _080DBEDE - b _080DC014 -_080DBEDE: - strh r1, [r4, 0xA] - ldr r0, _080DBF1C - movs r2, 0x22 - ldrsh r1, [r4, r2] - movs r3, 0x24 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0xC - ldrsh r1, [r4, r0] - adds r1, 0x8 - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x8 - adds r0, r1 - strh r2, [r0] - cmp r2, 0x40 - beq _080DBF82 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080DBF3C - cmp r0, 0x1 - bgt _080DBF20 - cmp r0, 0 - beq _080DBF2A - b _080DBF82 - .align 2, 0 -_080DBF1C: .4byte gSpriteTemplate_83DA8DC -_080DBF20: - cmp r0, 0x2 - beq _080DBF54 - cmp r0, 0x3 - beq _080DBF6C - b _080DBF82 -_080DBF2A: - ldr r0, _080DBF38 - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x20] - b _080DBF7A - .align 2, 0 -_080DBF38: .4byte gSprites -_080DBF3C: - ldr r0, _080DBF50 - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x20] - negs r0, r0 - strh r0, [r1, 0x24] - ldrh r0, [r4, 0x20] - b _080DBF80 - .align 2, 0 -_080DBF50: .4byte gSprites -_080DBF54: - ldr r1, _080DBF68 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r4, 0x20] - strh r1, [r0, 0x24] - ldrh r1, [r4, 0x20] - strh r1, [r0, 0x26] - b _080DBF82 - .align 2, 0 -_080DBF68: .4byte gSprites -_080DBF6C: - ldr r0, _080DBF94 - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x20] - negs r0, r0 -_080DBF7A: - strh r0, [r1, 0x24] - ldrh r0, [r4, 0x20] - negs r0, r0 -_080DBF80: - strh r0, [r1, 0x26] -_080DBF82: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080DC014 - b _080DBFF4 - .align 2, 0 -_080DBF94: .4byte gSprites -_080DBF98: - ldrh r0, [r4, 0xA] - ands r1, r0 - cmp r1, 0 - beq _080DBFA8 - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080DBFAE -_080DBFA8: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] -_080DBFAE: - ldr r2, _080DBFFC - ldrh r0, [r4, 0x10] - lsls r0, 8 - ldrh r1, [r4, 0xE] - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - bne _080DC014 - movs r5, 0x8 - adds r6, r4, 0 - adds r6, 0x8 -_080DBFCE: - lsls r0, r5, 1 - adds r1, r6, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x40 - beq _080DBFEA - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DC000 - adds r0, r1 - bl DestroySprite -_080DBFEA: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xC - bls _080DBFCE -_080DBFF4: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080DC014 - .align 2, 0 -_080DBFFC: .4byte REG_BLDALPHA -_080DC000: .4byte gSprites -_080DC004: - ldr r0, _080DC01C - movs r1, 0 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, r2, 0 - bl move_anim_task_del -_080DC014: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC01C: .4byte REG_BLDALPHA - thumb_func_end sub_80DBE98 - - thumb_func_start sub_80DC020 -sub_80DC020: @ 80DC020 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - subs r0, 0xA - cmp r1, r0 - ble _080DC04A - ldrh r0, [r4, 0x30] - movs r1, 0x1 - ands r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080DC04A: - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080DC05C - adds r0, r4, 0 - bl move_anim_8072740 -_080DC05C: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DC020 - - thumb_func_start sub_80DC068 -sub_80DC068: @ 80DC068 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080DC0A4 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080DC094 - ldr r4, _080DC0A8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] -_080DC094: - ldrh r0, [r6, 0x2] - strh r0, [r5, 0x2E] - ldr r0, _080DC0AC - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC0A4: .4byte gUnknown_03004B00 -_080DC0A8: .4byte gUnknown_0202F7C8 -_080DC0AC: .4byte sub_80DC020 - thumb_func_end sub_80DC068 - - thumb_func_start sub_80DC0B0 -sub_80DC0B0: @ 80DC0B0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DC10C - adds r5, r1, r0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DC154 - ldr r0, _080DC110 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _080DC120 - ldr r0, _080DC114 - strh r0, [r5, 0x1C] - ldr r4, _080DC118 - ldrb r0, [r4] - movs r1, 0x5 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080DC11C - ldrb r0, [r4] - movs r1, 0x5 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - b _080DC1DE - .align 2, 0 -_080DC10C: .4byte gTasks -_080DC110: .4byte gUnknown_03004B00 -_080DC114: .4byte 0x0000fff6 -_080DC118: .4byte gUnknown_0202F7C9 -_080DC11C: .4byte gUnknown_0202F7C8 -_080DC120: - movs r0, 0xA - strh r0, [r5, 0x1C] - ldr r4, _080DC14C - ldrb r0, [r4] - movs r1, 0x4 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080DC150 - ldrb r0, [r4] - movs r1, 0x4 - bl sub_807A100 - adds r0, 0x8 - b _080DC1D2 - .align 2, 0 -_080DC14C: .4byte gUnknown_0202F7C8 -_080DC150: .4byte gUnknown_0202F7C9 -_080DC154: - ldr r0, _080DC198 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _080DC1A8 - ldr r0, _080DC19C - strh r0, [r5, 0x1C] - ldr r4, _080DC1A0 - ldrb r0, [r4] - movs r1, 0x4 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080DC1A4 - ldrb r0, [r4] - movs r1, 0x4 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - b _080DC1DE - .align 2, 0 -_080DC198: .4byte gUnknown_03004B00 -_080DC19C: .4byte 0x0000fff6 -_080DC1A0: .4byte gUnknown_0202F7C9 -_080DC1A4: .4byte gUnknown_0202F7C8 -_080DC1A8: - movs r0, 0xA - strh r0, [r5, 0x1C] - ldr r4, _080DC1F0 - ldrb r0, [r4] - movs r1, 0x5 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080DC1F4 - ldrb r0, [r4] - movs r1, 0x5 - bl sub_807A100 - subs r0, 0x8 -_080DC1D2: - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_807A100 - subs r0, 0x8 -_080DC1DE: - strh r0, [r5, 0x24] - movs r0, 0x6 - strh r0, [r5, 0xA] - ldr r0, _080DC1F8 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DC1F0: .4byte gUnknown_0202F7C8 -_080DC1F4: .4byte gUnknown_0202F7C9 -_080DC1F8: .4byte sub_80DC1FC - thumb_func_end sub_80DC0B0 - - thumb_func_start sub_80DC1FC -sub_80DC1FC: @ 80DC1FC - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080DC21C - adds r5, r0, r1 - movs r0, 0x8 - ldrsh r1, [r5, r0] - cmp r1, 0 - beq _080DC220 - cmp r1, 0x1 - beq _080DC294 - b _080DC2A8 - .align 2, 0 -_080DC21C: .4byte gTasks -_080DC220: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - ble _080DC2A8 - strh r1, [r5, 0xA] - ldr r0, _080DC28C - movs r2, 0x1E - ldrsh r1, [r5, r2] - movs r3, 0x20 - ldrsh r2, [r5, r3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080DC274 - ldr r0, _080DC290 - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - adds r4, r0 - movs r0, 0x10 - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x22] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0x24] - strh r0, [r4, 0x36] - ldrh r0, [r5, 0x1C] - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldrb r0, [r5, 0xC] - movs r1, 0x3 - ands r1, r0 - adds r0, r4, 0 - bl StartSpriteAffineAnim -_080DC274: - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _080DC2A8 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080DC2A8 - .align 2, 0 -_080DC28C: .4byte gSpriteTemplate_83DA9AC -_080DC290: .4byte gSprites -_080DC294: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x11 - ble _080DC2A8 - adds r0, r2, 0 - bl move_anim_task_del -_080DC2A8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DC1FC - - thumb_func_start sub_80DC2B0 -sub_80DC2B0: @ 80DC2B0 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080DC2CE - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080DC2CE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DC2B0 - - thumb_func_start sub_80DC2D4 -sub_80DC2D4: @ 80DC2D4 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DC30C - adds r4, r1, r0 - ldr r0, _080DC310 - ldrb r0, [r0] - bl sub_8077FC0 - lsls r0, 24 - lsrs r1, r0, 24 - adds r0, r1, 0 - subs r0, 0x20 - strh r0, [r4, 0x24] - ldr r0, _080DC314 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0x1 - beq _080DC32A - cmp r0, 0x1 - bgt _080DC318 - cmp r0, 0 - beq _080DC31E - b _080DC346 - .align 2, 0 -_080DC30C: .4byte gTasks -_080DC310: .4byte gUnknown_0202F7C9 -_080DC314: .4byte gUnknown_03004B00 -_080DC318: - cmp r0, 0x2 - beq _080DC336 - b _080DC346 -_080DC31E: - movs r0, 0x2 - strh r0, [r4, 0x1E] - movs r0, 0x5 - strh r0, [r4, 0x20] - movs r0, 0x40 - b _080DC33E -_080DC32A: - movs r0, 0x2 - strh r0, [r4, 0x1E] - movs r0, 0x5 - strh r0, [r4, 0x20] - movs r0, 0xC0 - b _080DC33E -_080DC336: - movs r0, 0x4 - strh r0, [r4, 0x1E] - strh r0, [r4, 0x20] - movs r0, 0 -_080DC33E: - strh r0, [r4, 0x22] - adds r0, r1, 0 - adds r0, 0x20 - strh r0, [r4, 0x26] -_080DC346: - movs r1, 0x24 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _080DC352 - movs r0, 0 - strh r0, [r4, 0x24] -_080DC352: - ldr r0, _080DC36C - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DC378 - ldr r0, _080DC370 - ldrh r0, [r0] - strh r0, [r4, 0x1C] - ldr r0, _080DC374 - b _080DC380 - .align 2, 0 -_080DC36C: .4byte gUnknown_0202F7C9 -_080DC370: .4byte gUnknown_030042C0 -_080DC374: .4byte REG_BG1HOFS -_080DC378: - ldr r0, _080DC3E0 - ldrh r0, [r0] - strh r0, [r4, 0x1C] - ldr r0, _080DC3E4 -_080DC380: - str r0, [sp] - ldrh r1, [r4, 0x24] - lsls r3, r1, 16 - asrs r1, r3, 16 - movs r2, 0x24 - ldrsh r0, [r4, r2] - adds r0, 0x40 - cmp r1, r0 - bgt _080DC3BA - ldr r5, _080DC3E8 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 -_080DC39A: - asrs r3, 16 - lsls r1, r3, 1 - adds r2, r1, r5 - ldrh r0, [r4, 0x1C] - strh r0, [r2] - adds r1, r6 - ldrh r0, [r4, 0x1C] - strh r0, [r1] - adds r3, 0x1 - lsls r3, 16 - asrs r1, r3, 16 - movs r2, 0x24 - ldrsh r0, [r4, r2] - adds r0, 0x40 - cmp r1, r0 - ble _080DC39A -_080DC3BA: - ldr r0, _080DC3EC - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - ldr r0, _080DC3F0 - str r0, [r4] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC3E0: .4byte gUnknown_03004288 -_080DC3E4: .4byte REG_BG2HOFS -_080DC3E8: .4byte gUnknown_03004DE0 -_080DC3EC: .4byte 0xa2600001 -_080DC3F0: .4byte sub_80DC3F4 - thumb_func_end sub_80DC2D4 - - thumb_func_start sub_80DC3F4 -sub_80DC3F4: @ 80DC3F4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080DC41C - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080DC4CE - cmp r0, 0x1 - bgt _080DC420 - cmp r0, 0 - beq _080DC426 - b _080DC4E6 - .align 2, 0 -_080DC41C: .4byte gTasks -_080DC420: - cmp r0, 0x2 - beq _080DC4E0 - b _080DC4E6 -_080DC426: - ldrh r3, [r5, 0x22] - ldrh r4, [r5, 0x24] - movs r2, 0x24 - ldrsh r1, [r5, r2] - movs r2, 0x26 - ldrsh r0, [r5, r2] - cmp r1, r0 - bgt _080DC4BE - ldr r0, _080DC470 - mov r9, r0 - movs r7, 0x3 - ldr r1, _080DC474 - mov r12, r1 - movs r2, 0xF0 - lsls r2, 3 - add r2, r12 - mov r8, r2 -_080DC448: - lsls r2, r3, 16 - asrs r0, r2, 15 - add r0, r9 - movs r3, 0 - ldrsh r0, [r0, r3] - movs r3, 0x20 - ldrsh r1, [r5, r3] - asrs r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r3, r0, 16 - adds r6, r2, 0 - cmp r3, 0 - ble _080DC478 - ldrh r1, [r5, 0xA] - adds r0, r7, 0 - ands r0, r1 - adds r0, r3, r0 - b _080DC484 - .align 2, 0 -_080DC470: .4byte gSineTable -_080DC474: .4byte gUnknown_03004DE0 -_080DC478: - cmp r3, 0 - bge _080DC488 - ldrh r1, [r5, 0xA] - adds r0, r7, 0 - ands r0, r1 - subs r0, r3, r0 -_080DC484: - lsls r0, 16 - lsrs r1, r0, 16 -_080DC488: - lsls r2, r4, 16 - asrs r2, 16 - lsls r3, r2, 1 - mov r0, r12 - adds r4, r3, r0 - ldrh r0, [r5, 0x1C] - lsls r1, 16 - asrs r1, 16 - adds r0, r1, r0 - strh r0, [r4] - add r3, r8 - ldrh r0, [r5, 0x1C] - adds r1, r0 - strh r1, [r3] - asrs r0, r6, 16 - ldrh r1, [r5, 0x1E] - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r2, 0x1 - lsls r2, 16 - lsrs r4, r2, 16 - asrs r2, 16 - movs r1, 0x26 - ldrsh r0, [r5, r1] - cmp r2, r0 - ble _080DC448 -_080DC4BE: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x17 - ble _080DC4E6 - b _080DC4D4 -_080DC4CE: - ldr r1, _080DC4DC - movs r0, 0x3 - strb r0, [r1, 0x15] -_080DC4D4: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080DC4E6 - .align 2, 0 -_080DC4DC: .4byte gUnknown_03004DC0 -_080DC4E0: - adds r0, r2, 0 - bl move_anim_task_del -_080DC4E6: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80DC3F4 - - thumb_func_start sub_80DC4F4 -sub_80DC4F4: @ 80DC4F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r4, r0, 24 - mov r8, r4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080DC528 - adds r7, r0, r1 - bl AllocOamMatrix - lsls r0, 24 - lsrs r5, r0, 24 - mov r10, r5 - adds r6, r5, 0 - cmp r6, 0xFF - bne _080DC52C - adds r0, r4, 0 - bl move_anim_task_del - b _080DC5D6 - .align 2, 0 -_080DC528: .4byte gTasks -_080DC52C: - ldr r1, _080DC550 - ldrb r0, [r1] - bl duplicate_obj_of_side_rel2move_in_transparent_mode - lsls r0, 16 - lsrs r1, r0, 16 - mov r9, r1 - asrs r0, 16 - cmp r0, 0 - bge _080DC554 - adds r0, r5, 0 - bl FreeOamMatrix - mov r0, r8 - bl move_anim_task_del - b _080DC5D6 - .align 2, 0 -_080DC550: .4byte gUnknown_03004B00 -_080DC554: - ldr r2, _080DC5E4 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r0, r2, 0 - adds r0, 0x1C - adds r0, r4, r0 - ldr r1, _080DC5E8 - str r1, [r0] - adds r4, r2 - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x1F - ands r6, r0 - lsls r2, r6, 1 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x3] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r1, r9 - lsls r0, r1, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r3, [r4, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r4, 0 - bl CalcCenterToCornerVec - ldr r1, _080DC5EC - ldrb r0, [r1] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x22] - mov r0, r10 - strh r0, [r7, 0x24] - mov r1, r9 - strh r1, [r7, 0x26] - ldr r0, _080DC5F0 - str r0, [r7] -_080DC5D6: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DC5E4: .4byte gSprites -_080DC5E8: .4byte SpriteCallbackDummy -_080DC5EC: .4byte gUnknown_03004B00 -_080DC5F0: .4byte sub_80DC5F4 - thumb_func_end sub_80DC4F4 - - thumb_func_start sub_80DC5F4 -sub_80DC5F4: @ 80DC5F4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080DC618 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080DC678 - cmp r0, 0x1 - bgt _080DC61C - cmp r0, 0 - beq _080DC626 - b _080DC6F8 - .align 2, 0 -_080DC618: .4byte gTasks -_080DC61C: - cmp r0, 0x2 - beq _080DC6C8 - cmp r0, 0x3 - beq _080DC6E8 - b _080DC6F8 -_080DC626: - ldrh r0, [r4, 0xA] - adds r0, 0x4 - strh r0, [r4, 0xA] - ldr r1, _080DC674 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 17 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xC - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - lsls r1, 24 - lsrs r1, 24 - bl sub_8079AB8 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0x30 - bne _080DC6F8 - b _080DC6DA - .align 2, 0 -_080DC674: .4byte gSineTable -_080DC678: - ldrh r0, [r4, 0xA] - subs r0, 0x4 - strh r0, [r4, 0xA] - ldr r1, _080DC6C4 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 17 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xC - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - lsls r1, 24 - lsrs r1, 24 - bl sub_8079AB8 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080DC6F8 - b _080DC6DA - .align 2, 0 -_080DC6C4: .4byte gSineTable -_080DC6C8: - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DC6E4 - adds r0, r1 - bl obj_delete_but_dont_free_vram -_080DC6DA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080DC6F8 - .align 2, 0 -_080DC6E4: .4byte gSprites -_080DC6E8: - ldrh r0, [r4, 0x24] - lsls r0, 24 - lsrs r0, 24 - bl FreeOamMatrix - adds r0, r5, 0 - bl move_anim_task_del -_080DC6F8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DC5F4 - - thumb_func_start sub_80DC700 -sub_80DC700: @ 80DC700 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080DC778 - cmp r0, 0x1 - bgt _080DC716 - cmp r0, 0 - beq _080DC720 - b _080DC818 -_080DC716: - cmp r0, 0x2 - beq _080DC7AA - cmp r0, 0x3 - beq _080DC808 - b _080DC818 -_080DC720: - ldr r4, _080DC76C - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DC74E - ldrh r0, [r5, 0x22] - adds r0, 0xC - strh r0, [r5, 0x22] -_080DC74E: - movs r0, 0x8 - strh r0, [r5, 0x30] - ldr r1, _080DC770 - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080DC774 - ldrh r1, [r5, 0x30] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r0, r1 - strh r0, [r2] - b _080DC7A2 - .align 2, 0 -_080DC76C: .4byte gUnknown_0202F7C8 -_080DC770: .4byte REG_BLDCNT -_080DC774: .4byte REG_BLDALPHA -_080DC778: - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080DC818 - movs r0, 0x40 - negs r0, r0 - bl sub_8076F98 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xCB - bl PlaySE12WithPanning - adds r0, r5, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim -_080DC7A2: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080DC818 -_080DC7AA: - ldrh r0, [r5, 0x32] - adds r1, r0, 0x1 - strh r1, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080DC7E8 - movs r0, 0 - strh r0, [r5, 0x32] - ldrh r1, [r5, 0x30] - subs r1, 0x1 - strh r1, [r5, 0x30] - ldr r2, _080DC804 - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080DC7E8 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080DC7E8: - movs r0, 0xE0 - lsls r0, 2 - adds r2, r0, 0 - ldrh r1, [r5, 0x34] - adds r2, r1 - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r5, 0x26] - subs r0, r1 - strh r0, [r5, 0x26] - movs r0, 0xFF - ands r2, r0 - strh r2, [r5, 0x34] - b _080DC818 - .align 2, 0 -_080DC804: .4byte REG_BLDALPHA -_080DC808: - ldr r0, _080DC820 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r5, 0 - bl move_anim_8072740 -_080DC818: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DC820: .4byte REG_BLDCNT - thumb_func_end sub_80DC700 - - thumb_func_start sub_80DC824 -sub_80DC824: @ 80DC824 - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DC850 - adds r0, r6, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldr r0, _080DC84C - ldrh r1, [r0, 0x4] - negs r1, r1 - strh r1, [r0, 0x4] - ldrh r1, [r0] - negs r1, r1 - strh r1, [r0] - b _080DC880 - .align 2, 0 -_080DC84C: .4byte gUnknown_03004B00 -_080DC850: - ldr r0, _080DC8E4 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DC880 - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r1, _080DC8E8 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080DC880: - ldr r5, _080DC8E4 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077EE4 - lsls r0, 24 - ldr r4, _080DC8E8 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077EE4 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x6] - adds r0, r4 - strh r0, [r6, 0x36] - ldr r0, _080DC8EC - str r0, [r6, 0x1C] - ldr r1, _080DC8F0 - adds r0, r6, 0 - bl oamt_set_x3A_32 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC8E4: .4byte gUnknown_0202F7C9 -_080DC8E8: .4byte gUnknown_03004B00 -_080DC8EC: .4byte sub_8078B34 -_080DC8F0: .4byte move_anim_8072740 - thumb_func_end sub_80DC824 - - thumb_func_start sub_80DC8F4 -sub_80DC8F4: @ 80DC8F4 - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DC918 - ldr r1, _080DC914 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] - adds r0, r6, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - b _080DC934 - .align 2, 0 -_080DC914: .4byte gUnknown_03004B00 -_080DC918: - ldr r0, _080DC990 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DC934 - ldr r0, _080DC994 - ldrh r1, [r0, 0x2] - negs r1, r1 - strh r1, [r0, 0x2] - ldrh r1, [r0] - negs r1, r1 - strh r1, [r0] -_080DC934: - ldr r5, _080DC990 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077EE4 - lsls r0, 24 - ldr r4, _080DC994 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077EE4 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x2E] - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x36] - ldr r0, _080DC998 - str r0, [r6, 0x1C] - ldr r1, _080DC99C - adds r0, r6, 0 - bl oamt_set_x3A_32 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC990: .4byte gUnknown_0202F7C9 -_080DC994: .4byte gUnknown_03004B00 -_080DC998: .4byte sub_8078B34 -_080DC99C: .4byte move_anim_8072740 - thumb_func_end sub_80DC8F4 - - thumb_func_start sub_80DC9A0 -sub_80DC9A0: @ 80DC9A0 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DC9BC - ldr r0, _080DC9FC - movs r2, 0x4 - ldrsh r1, [r0, r2] - lsrs r2, r1, 31 - adds r1, r2 - asrs r1, 1 - strh r1, [r0, 0x4] -_080DC9BC: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r1, _080DC9FC - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080DCA04 - ldr r4, _080DCA00 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - b _080DCA16 - .align 2, 0 -_080DC9FC: .4byte gUnknown_03004B00 -_080DCA00: .4byte gUnknown_0202F7C9 -_080DCA04: - ldr r0, _080DCA2C - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_807A3FC -_080DCA16: - adds r0, r5, 0 - bl sub_8078BD4 - ldr r0, _080DCA30 - ldrh r0, [r0, 0x6] - strh r0, [r5, 0x38] - ldr r0, _080DCA34 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DCA2C: .4byte gUnknown_0202F7C9 -_080DCA30: .4byte gUnknown_03004B00 -_080DCA34: .4byte sub_80DCA38 - thumb_func_end sub_80DC9A0 - - thumb_func_start sub_80DCA38 -sub_80DCA38: @ 80DCA38 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080DCA4E - adds r0, r4, 0 - bl move_anim_8072740 - b _080DCA6A -_080DCA4E: - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x3A] - adds r0, 0xD - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] -_080DCA6A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DCA38 - - thumb_func_start sub_80DCA70 -sub_80DCA70: @ 80DCA70 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080DCAA0 - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_807A3FC - ldr r0, _080DCAA4 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DCAAC - ldr r0, _080DCAA8 - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - b _080DCAB8 - .align 2, 0 -_080DCAA0: .4byte gUnknown_0202F7C9 -_080DCAA4: .4byte gUnknown_0202F7C8 -_080DCAA8: .4byte gUnknown_03004B00 -_080DCAAC: - ldr r1, _080DCAE0 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - adds r0, r1, 0 -_080DCAB8: - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080DCAE4 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DCAD4 - ldrh r0, [r4, 0x22] - adds r0, 0x8 - strh r0, [r4, 0x22] -_080DCAD4: - ldr r0, _080DCAE8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DCAE0: .4byte gUnknown_03004B00 -_080DCAE4: .4byte gUnknown_0202F7C9 -_080DCAE8: .4byte sub_80DCAEC - thumb_func_end sub_80DCA70 - - thumb_func_start sub_80DCAEC -sub_80DCAEC: @ 80DCAEC - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080DCB20 - movs r0, 0 - strh r0, [r3, 0x2E] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] -_080DCB20: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _080DCB34 - adds r0, r3, 0 - bl move_anim_8072740 -_080DCB34: - pop {r0} - bx r0 - thumb_func_end sub_80DCAEC - - thumb_func_start sub_80DCB38 -sub_80DCB38: @ 80DCB38 - ldr r2, _080DCB54 - movs r3, 0xFD - lsls r3, 6 - adds r1, r3, 0 - strh r1, [r2] - adds r2, 0x2 - movs r1, 0x10 - strh r1, [r2] - movs r1, 0x10 - strh r1, [r0, 0x2E] - ldr r1, _080DCB58 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080DCB54: .4byte REG_BLDCNT -_080DCB58: .4byte sub_80DCB5C - thumb_func_end sub_80DCB38 - - thumb_func_start sub_80DCB5C -sub_80DCB5C: @ 80DCB5C - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x32] - movs r2, 0x32 - ldrsh r0, [r3, r2] - cmp r0, 0x13 - bgt _080DCB70 - adds r0, r1, 0x1 - strh r0, [r3, 0x32] - b _080DCBA8 -_080DCB70: - ldrh r1, [r3, 0x30] - adds r0, r1, 0x1 - strh r0, [r3, 0x30] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DCBA8 - ldrh r1, [r3, 0x2E] - subs r1, 0x1 - strh r1, [r3, 0x2E] - ldr r2, _080DCBAC - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080DCBA8 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080DCBB0 - str r0, [r3, 0x1C] -_080DCBA8: - pop {r0} - bx r0 - .align 2, 0 -_080DCBAC: .4byte REG_BLDALPHA -_080DCBB0: .4byte sub_80DCBB4 - thumb_func_end sub_80DCB5C - - thumb_func_start sub_80DCBB4 -sub_80DCBB4: @ 80DCBB4 - push {lr} - ldr r1, _080DCBC8 - movs r2, 0 - strh r2, [r1] - adds r1, 0x2 - strh r2, [r1] - bl move_anim_8072740 - pop {r0} - bx r0 - .align 2, 0 -_080DCBC8: .4byte REG_BLDCNT - thumb_func_end sub_80DCBB4 - - thumb_func_start sub_80DCBCC -sub_80DCBCC: @ 80DCBCC - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DCBEC - ldr r1, _080DCBE8 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - b _080DCC0E - .align 2, 0 -_080DCBE8: .4byte gUnknown_03004B00 -_080DCBEC: - ldr r0, _080DCCE8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DCC0E - ldr r1, _080DCCEC - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] -_080DCC0E: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080DCC5E - ldr r0, _080DCCE8 - ldrb r0, [r0] - bl battle_side_get_owner - adds r4, r0, 0 - ldr r5, _080DCCF0 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080DCC5E - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - beq _080DCC4C - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DCC5E -_080DCC4C: - ldr r0, _080DCCEC - movs r2, 0x4 - ldrsh r1, [r0, r2] - negs r1, r1 - strh r1, [r0, 0x4] - movs r2, 0 - ldrsh r1, [r0, r2] - negs r1, r1 - strh r1, [r0] -_080DCC5E: - adds r0, r7, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r5, _080DCCF0 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - adds r4, r0, 0 - lsls r4, 24 - ldr r6, _080DCCEC - lsrs r4, 24 - ldrh r0, [r6, 0x4] - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r6, 0x6] - adds r1, r2 - lsls r1, 16 - ldrh r2, [r7, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - subs r0, r2 - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r7, 0x22] - lsrs r5, r1, 16 - asrs r1, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_80790F0 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8078FDC - ldrh r0, [r6, 0x8] - strh r0, [r7, 0x2E] - strh r4, [r7, 0x32] - strh r5, [r7, 0x36] - ldr r0, _080DCCF4 - str r0, [r7, 0x1C] - ldr r1, _080DCCF8 - adds r0, r7, 0 - bl oamt_set_x3A_32 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DCCE8: .4byte gUnknown_0202F7C8 -_080DCCEC: .4byte gUnknown_03004B00 -_080DCCF0: .4byte gUnknown_0202F7C9 -_080DCCF4: .4byte sub_8078B34 -_080DCCF8: .4byte move_anim_8072740 - thumb_func_end sub_80DCBCC - - thumb_func_start sub_80DCCFC -sub_80DCCFC: @ 80DCCFC - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080DCD68 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DCD1C - ldr r1, _080DCD6C - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080DCD1C: - ldr r4, _080DCD6C - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldr r5, _080DCD70 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r6, 0x36] - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x38] - adds r0, r6, 0 - bl sub_80786EC - ldr r0, _080DCD74 - str r0, [r6, 0x1C] - adds r2, r6, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DCD68: .4byte gUnknown_0202F7C8 -_080DCD6C: .4byte gUnknown_03004B00 -_080DCD70: .4byte gUnknown_0202F7C9 -_080DCD74: .4byte sub_80DCD78 - thumb_func_end sub_80DCCFC - - thumb_func_start sub_80DCD78 -sub_80DCD78: @ 80DCD78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080DCDA4 - adds r0, r4, 0 - bl move_anim_8072740 - b _080DCE34 -_080DCDA4: - movs r0, 0x2E - adds r0, r4 - mov r8, r0 - ldrh r7, [r4, 0x20] - ldrh r5, [r4, 0x24] - ldrh r1, [r4, 0x22] - mov r12, r1 - ldrh r6, [r4, 0x26] - mov r2, r8 - add r1, sp, 0x4 - movs r3, 0x7 -_080DCDBA: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080DCDBA - adds r0, r7, r5 - lsls r0, 16 - lsrs r5, r0, 16 - mov r2, r12 - adds r0, r2, r6 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - bne _080DCE34 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - lsls r1, r5, 16 - asrs r1, 16 - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r1, r2 - lsls r2, r6, 16 - asrs r2, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_80790F0 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8078FDC - add r2, sp, 0x4 - mov r1, r8 - movs r3, 0x7 -_080DCE26: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080DCE26 -_080DCE34: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80DCD78 - - thumb_func_start sub_80DCE40 -sub_80DCE40: @ 80DCE40 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080DCE54 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DCE5C - ldr r4, _080DCE58 - b _080DCE5E - .align 2, 0 -_080DCE54: .4byte gUnknown_03004B00 -_080DCE58: .4byte gUnknown_0202F7C8 -_080DCE5C: - ldr r4, _080DCE90 -_080DCE5E: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x12 - strh r0, [r5, 0x22] - ldr r1, _080DCE94 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080DCE98 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DCE90: .4byte gUnknown_0202F7C9 -_080DCE94: .4byte move_anim_8074EE0 -_080DCE98: .4byte sub_80785E4 - thumb_func_end sub_80DCE40 - - thumb_func_start sub_80DCE9C -sub_80DCE9C: @ 80DCE9C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080DCF08 - movs r1, 0x6 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080DCEBC - ldr r0, _080DCF0C - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_807A3FC -_080DCEBC: - ldrh r0, [r6] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r4, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - adds r0, 0xE - strh r0, [r5, 0x22] - ldrb r1, [r6, 0x2] - adds r0, r5, 0 - bl StartSpriteAnim - adds r0, r5, 0 - bl AnimateSprite - strh r4, [r5, 0x2E] - strh r4, [r5, 0x30] - movs r0, 0x4 - strh r0, [r5, 0x32] - movs r0, 0x10 - strh r0, [r5, 0x34] - ldr r0, _080DCF10 - strh r0, [r5, 0x36] - ldrh r0, [r6, 0x4] - strh r0, [r5, 0x38] - ldr r1, _080DCF14 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r1, _080DCF18 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DCF08: .4byte gUnknown_03004B00 -_080DCF0C: .4byte gUnknown_0202F7C9 -_080DCF10: .4byte 0x0000ffba -_080DCF14: .4byte sub_80DCF1C -_080DCF18: .4byte sub_8078278 - thumb_func_end sub_80DCE9C - - thumb_func_start sub_80DCF1C -sub_80DCF1C: @ 80DCF1C - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x38] - ldrh r2, [r4, 0x20] - adds r0, r1, r2 - strh r0, [r4, 0x20] - movs r0, 0xC0 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r0, 0x4 - strh r0, [r4, 0x32] - movs r0, 0x20 - strh r0, [r4, 0x34] - ldr r0, _080DCF54 - strh r0, [r4, 0x36] - ldr r1, _080DCF58 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r1, _080DCF5C - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DCF54: .4byte 0x0000ffe8 -_080DCF58: .4byte move_anim_8074EE0 -_080DCF5C: .4byte sub_8078278 - thumb_func_end sub_80DCF1C - - thumb_func_start sub_80DCF60 -sub_80DCF60: @ 80DCF60 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080DCF88 - ldrb r1, [r4, 0xA] - bl StartSpriteAnim - adds r0, r5, 0 - bl AnimateSprite - ldr r0, _080DCF8C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DCF90 - ldrh r0, [r5, 0x20] - ldrh r1, [r4] - subs r0, r1 - b _080DCF96 - .align 2, 0 -_080DCF88: .4byte gUnknown_03004B00 -_080DCF8C: .4byte gUnknown_0202F7C8 -_080DCF90: - ldrh r0, [r4] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080DCF96: - strh r0, [r5, 0x20] - ldr r3, _080DCFD8 - ldrh r2, [r3, 0x2] - ldrh r0, [r5, 0x22] - adds r2, r0 - movs r4, 0 - strh r2, [r5, 0x22] - ldrh r0, [r3, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r1, [r3, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - strh r2, [r5, 0x34] - ldrh r0, [r3, 0x6] - adds r2, r0 - strh r2, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078A5C - strh r4, [r5, 0x34] - strh r4, [r5, 0x36] - ldr r0, _080DCFDC - str r0, [r5, 0x1C] - ldr r1, _080DCFE0 - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DCFD8: .4byte gUnknown_03004B00 -_080DCFDC: .4byte sub_8078394 -_080DCFE0: .4byte move_anim_8074EE0 - thumb_func_end sub_80DCF60 - - thumb_func_start sub_80DCFE4 -sub_80DCFE4: @ 80DCFE4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080DCFFC - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DD000 - adds r0, r4, 0 - movs r1, 0 - bl sub_80787B0 - b _080DD008 - .align 2, 0 -_080DCFFC: .4byte gUnknown_03004B00 -_080DD000: - adds r0, r4, 0 - movs r1, 0 - bl sub_8078764 -_080DD008: - ldr r1, _080DD024 - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x34] - ldr r0, _080DD028 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DD024: .4byte gUnknown_03004B00 -_080DD028: .4byte sub_80DD02C - thumb_func_end sub_80DCFE4 - - thumb_func_start sub_80DD02C -sub_80DD02C: @ 80DD02C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x36] - adds r0, r1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - ldrh r1, [r4, 0x38] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080DD072 - adds r0, r4, 0 - bl move_anim_8072740 -_080DD072: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DD02C - - thumb_func_start do_boulder_dust -do_boulder_dust: @ 80DD078 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r1, _080DD154 - ldr r2, _080DD158 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _080DD15C - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080DD0C4 - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080DD0C4: - ldr r0, _080DD160 - strh r5, [r0] - ldr r0, _080DD164 - strh r5, [r0] - ldr r0, _080DD168 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - str r5, [sp, 0xC] - ldr r2, _080DD16C - add r0, sp, 0xC - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _080DD170 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _080DD174 - bl LZDecompressVram - ldr r0, _080DD178 - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _080DD17C - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DD120 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080DD120: - ldr r0, _080DD180 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080DD13A - ldr r0, _080DD184 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DD13A - movs r5, 0x1 -_080DD13A: - ldr r0, _080DD188 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - strh r5, [r1, 0x8] - ldr r0, _080DD18C - str r0, [r1] - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DD154: .4byte REG_BLDCNT -_080DD158: .4byte 0x00003f42 -_080DD15C: .4byte REG_BG1CNT -_080DD160: .4byte gUnknown_030042C0 -_080DD164: .4byte gUnknown_030041B4 -_080DD168: .4byte REG_BG1HOFS -_080DD16C: .4byte 0x040000d4 -_080DD170: .4byte 0x85000400 -_080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew -_080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew -_080DD17C: .4byte gBattleAnimSpritePalette_261 -_080DD180: .4byte gUnknown_03004B00 -_080DD184: .4byte gUnknown_0202F7C8 -_080DD188: .4byte gTasks -_080DD18C: .4byte sub_80DD190 - thumb_func_end do_boulder_dust - - thumb_func_start sub_80DD190 -sub_80DD190: @ 80DD190 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080DD1C0 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r3, r1, 0 - cmp r0, 0 - bne _080DD1CC - ldr r1, _080DD1C4 - ldr r5, _080DD1C8 - adds r0, r5, 0 - ldrh r2, [r1] - adds r0, r2 - b _080DD1D2 - .align 2, 0 -_080DD1C0: .4byte gTasks -_080DD1C4: .4byte gUnknown_030042C0 -_080DD1C8: .4byte 0x0000fffa -_080DD1CC: - ldr r1, _080DD204 - ldrh r0, [r1] - adds r0, 0x6 -_080DD1D2: - strh r0, [r1] - adds r4, r1, 0 - ldr r1, _080DD208 - ldr r5, _080DD20C - adds r0, r5, 0 - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - lsls r2, r7, 2 - adds r0, r2, r7 - lsls r0, 3 - adds r0, r3 - movs r5, 0x20 - ldrsh r0, [r0, r5] - mov r8, r2 - adds r2, r1, 0 - cmp r0, 0x4 - bls _080DD1F8 - b _080DD37C -_080DD1F8: - lsls r0, 2 - ldr r1, _080DD210 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DD204: .4byte gUnknown_030042C0 -_080DD208: .4byte gUnknown_030041B4 -_080DD20C: .4byte 0x0000ffff -_080DD210: .4byte _080DD214 - .align 2, 0 -_080DD214: - .4byte _080DD228 - .4byte _080DD270 - .4byte _080DD292 - .4byte _080DD2D4 - .4byte _080DD358 -_080DD228: - mov r1, r8 - adds r0, r1, r7 - lsls r0, 3 - adds r3, r0, r3 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - movs r4, 0 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - beq _080DD242 - b _080DD37C -_080DD242: - strh r4, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - adds r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080DD26C - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r2, 0x1E - ldrsh r0, [r3, r2] - cmp r0, 0x7 - beq _080DD260 - b _080DD37C -_080DD260: - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r4, [r3, 0x1E] - b _080DD37C - .align 2, 0 -_080DD26C: .4byte REG_BLDALPHA -_080DD270: - mov r5, r8 - adds r0, r5, r7 - lsls r0, 3 - adds r1, r0, r3 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x65 - bne _080DD37C - movs r0, 0x7 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080DD37C -_080DD292: - mov r1, r8 - adds r0, r1, r7 - lsls r0, 3 - adds r3, r0, r3 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080DD37C - movs r0, 0 - strh r0, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - subs r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080DD2D0 - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r2, 0x1E - ldrsh r1, [r3, r2] - cmp r1, 0 - bne _080DD37C - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r1, [r3, 0x1E] - b _080DD37C - .align 2, 0 -_080DD2D0: .4byte REG_BLDALPHA -_080DD2D4: - mov r0, sp - bl sub_8078914 - ldr r2, [sp] - movs r3, 0x80 - lsls r3, 6 - add r5, sp, 0xC - movs r6, 0 - ldr r1, _080DD38C - movs r4, 0x80 - lsls r4, 5 - mov r9, r5 - ldr r0, _080DD390 - mov r12, r0 - movs r0, 0x85 - lsls r0, 24 - mov r10, r0 -_080DD2F6: - str r6, [sp, 0xC] - mov r0, r9 - str r0, [r1] - str r2, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080DD2F6 - str r6, [sp, 0xC] - str r5, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r10 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080DD38C - str r5, [r0] - str r1, [r0, 0x4] - ldr r1, _080DD394 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080DD344 - ldr r2, _080DD398 - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080DD344: - ldr r0, _080DD39C - mov r5, r8 - adds r1, r5, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - ldr r4, _080DD3A0 - ldr r2, _080DD3A4 -_080DD358: - movs r1, 0 - strh r1, [r4] - strh r1, [r2] - ldr r0, _080DD3A8 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r2, _080DD398 - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - adds r0, r7, 0 - bl move_anim_task_del -_080DD37C: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DD38C: .4byte 0x040000d4 -_080DD390: .4byte 0x85000400 -_080DD394: .4byte 0x85000200 -_080DD398: .4byte REG_BG1CNT -_080DD39C: .4byte gTasks -_080DD3A0: .4byte gUnknown_030042C0 -_080DD3A4: .4byte gUnknown_030041B4 -_080DD3A8: .4byte REG_BLDCNT - thumb_func_end sub_80DD190 - - thumb_func_start sub_80DD3AC -sub_80DD3AC: @ 80DD3AC - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080DD428 - ldr r4, _080DD3F0 - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080DD3F8 - ldr r0, _080DD3F4 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DD3F8 - movs r0, 0x98 - lsls r0, 1 - strh r0, [r5, 0x20] - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] - movs r0, 0x1 - strh r0, [r5, 0x38] - ldrb r1, [r5, 0x3] - subs r0, 0x40 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r5, 0x3] - b _080DD3FC - .align 2, 0 -_080DD3F0: .4byte gUnknown_03004B00 -_080DD3F4: .4byte gUnknown_0202F7C8 -_080DD3F8: - ldr r0, _080DD41C - strh r0, [r5, 0x20] -_080DD3FC: - ldr r4, _080DD420 - ldrh r0, [r4] - strh r0, [r5, 0x22] - ldr r1, _080DD424 - adds r0, r5, 0 - bl SetSubspriteTables - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080DD484 - .align 2, 0 -_080DD41C: .4byte 0x0000ffc0 -_080DD420: .4byte gUnknown_03004B00 -_080DD424: .4byte gUnknown_083DAD10 -_080DD428: - ldrh r1, [r5, 0x30] - ldrh r3, [r5, 0x34] - adds r1, r3 - ldrh r2, [r5, 0x32] - ldrh r0, [r5, 0x36] - adds r2, r0 - lsls r0, r1, 16 - asrs r0, 24 - ldrh r3, [r5, 0x24] - adds r0, r3 - strh r0, [r5, 0x24] - lsls r0, r2, 16 - asrs r0, 24 - ldrh r3, [r5, 0x26] - adds r0, r3 - strh r0, [r5, 0x26] - movs r0, 0xFF - ands r1, r0 - strh r1, [r5, 0x34] - ands r2, r0 - strh r2, [r5, 0x36] - movs r1, 0x38 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080DD46E - movs r2, 0x20 - ldrsh r0, [r5, r2] - movs r3, 0x24 - ldrsh r1, [r5, r3] - adds r0, r1 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - ble _080DD484 - b _080DD480 -_080DD46E: - movs r1, 0x20 - ldrsh r0, [r5, r1] - movs r2, 0x24 - ldrsh r1, [r5, r2] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080DD484 -_080DD480: - ldr r0, _080DD48C - str r0, [r5, 0x1C] -_080DD484: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD48C: .4byte move_anim_8072740 - thumb_func_end sub_80DD3AC - - thumb_func_start sub_80DD490 -sub_80DD490: @ 80DD490 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080DD4C8 - ldrb r1, [r5, 0x8] - bl StartSpriteAnim - adds r0, r4, 0 - movs r1, 0 - bl sub_80787B0 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0x4] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x36] - ldr r0, _080DD4CC - str r0, [r4, 0x1C] - ldr r1, _080DD4D0 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD4C8: .4byte gUnknown_03004B00 -_080DD4CC: .4byte sub_8078B34 -_080DD4D0: .4byte move_anim_8072740 - thumb_func_end sub_80DD490 - - thumb_func_start sub_80DD4D4 -sub_80DD4D4: @ 80DD4D4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DD554 - adds r6, r1, r0 - ldr r5, _080DD558 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 8 - movs r1, 0xC0 - lsls r1, 13 - adds r0, r1 - lsrs r7, r0, 16 - ldr r4, _080DD55C - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 8 - movs r2, 0xC0 - lsls r2, 13 - adds r0, r2 - lsrs r0, 16 - mov r8, r0 - ldrb r1, [r5] - movs r0, 0x2 - eors r0, r1 - ldrb r4, [r4] - cmp r0, r4 - bne _080DD544 - mov r8, r7 -_080DD544: - bl sub_80DD8BC - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bne _080DD560 - movs r0, 0x20 - b _080DD566 - .align 2, 0 -_080DD554: .4byte gTasks -_080DD558: .4byte gUnknown_0202F7C8 -_080DD55C: .4byte gUnknown_0202F7C9 -_080DD560: - lsls r1, r5, 3 - movs r0, 0x30 - subs r0, r1 -_080DD566: - strh r0, [r6, 0x18] - movs r4, 0 - strh r4, [r6, 0x8] - strh r4, [r6, 0x1E] - strh r4, [r6, 0x1A] - movs r0, 0x1 - strh r0, [r6, 0x20] - movs r1, 0x18 - ldrsh r0, [r6, r1] - cmp r0, 0 - bge _080DD57E - adds r0, 0x7 -_080DD57E: - asrs r0, 3 - subs r0, 0x1 - strh r0, [r6, 0x1C] - mov r2, r9 - lsls r0, r2, 3 - strh r0, [r6, 0xC] - lsls r0, r7, 3 - strh r0, [r6, 0xE] - mov r1, r10 - subs r0, r1, r2 - lsls r0, 3 - movs r2, 0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, 0x10] - mov r1, r8 - subs r0, r1, r7 - lsls r0, 3 - movs r2, 0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, 0x12] - strh r4, [r6, 0x14] - strh r4, [r6, 0x16] - movs r0, 0x40 - negs r0, r0 - bl sub_8076F98 - adds r4, r0, 0 - lsls r4, 24 - asrs r4, 8 - lsrs r4, 16 - movs r0, 0x3F - bl sub_8076F98 - lsls r0, 24 - strh r4, [r6, 0x22] - asrs r0, 24 - lsls r4, 16 - asrs r4, 16 - subs r0, r4 - movs r2, 0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, 0x24] - strh r5, [r6, 0xA] - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x26] - ldr r0, _080DD600 - str r0, [r6] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DD600: .4byte sub_80DD604 - thumb_func_end sub_80DD4D4 - - thumb_func_start sub_80DD604 -sub_80DD604: @ 80DD604 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080DD628 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080DD61E - b _080DD76C -_080DD61E: - lsls r0, 2 - ldr r1, _080DD62C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DD628: .4byte gTasks -_080DD62C: .4byte _080DD630 - .align 2, 0 -_080DD630: - .4byte _080DD644 - .4byte _080DD6A8 - .4byte _080DD6B0 - .4byte _080DD70C - .4byte _080DD75E -_080DD644: - ldrh r2, [r4, 0x14] - ldrh r0, [r4, 0x10] - subs r2, r0 - strh r2, [r4, 0x14] - ldrh r0, [r4, 0x16] - ldrh r1, [r4, 0x12] - subs r0, r1 - strh r0, [r4, 0x16] - ldr r3, _080DD6A4 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - lsls r2, 16 - asrs r2, 19 - strh r2, [r0, 0x24] - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r4, 0x16] - lsls r0, 16 - asrs r0, 19 - strh r0, [r1, 0x26] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080DD694 - movs r0, 0x14 - strh r0, [r4, 0x1E] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080DD694: - ldrh r1, [r4, 0x22] - lsls r1, 24 - asrs r1, 24 - movs r0, 0xA2 - bl PlaySE12WithPanning - b _080DD76C - .align 2, 0 -_080DD6A4: .4byte gSprites -_080DD6A8: - ldrh r0, [r4, 0x1E] - subs r0, 0x1 - strh r0, [r4, 0x1E] - b _080DD750 -_080DD6B0: - ldrh r0, [r4, 0x1A] - subs r0, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - beq _080DD6D0 - ldrh r0, [r4, 0x10] - ldrh r2, [r4, 0x14] - adds r0, r2 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x16] - adds r0, r1 - strh r0, [r4, 0x16] - b _080DD6DA -_080DD6D0: - strh r0, [r4, 0x14] - strh r0, [r4, 0x16] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080DD6DA: - ldr r2, _080DD708 - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r4, 0x14] - lsls r0, 16 - asrs r0, 19 - strh r0, [r1, 0x24] - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r4, 0x16] - lsls r0, 16 - asrs r0, 19 - strh r0, [r1, 0x26] - b _080DD76C - .align 2, 0 -_080DD708: .4byte gSprites -_080DD70C: - ldrh r0, [r4, 0x10] - ldrh r2, [r4, 0xC] - adds r0, r2 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0xE] - adds r0, r1 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x1C - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080DD74A - movs r0, 0 - strh r0, [r4, 0x1A] - adds r0, r4, 0 - bl sub_80DD774 - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x22] - adds r1, r0 - strh r1, [r4, 0x22] - lsls r1, 24 - asrs r1, 24 - movs r0, 0xAF - bl PlaySE12WithPanning -_080DD74A: - ldrh r0, [r4, 0x18] - subs r0, 0x1 - strh r0, [r4, 0x18] -_080DD750: - lsls r0, 16 - cmp r0, 0 - bne _080DD76C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080DD76C -_080DD75E: - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080DD76C - adds r0, r2, 0 - bl move_anim_task_del -_080DD76C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DD604 - - thumb_func_start sub_80DD774 -sub_80DD774: @ 80DD774 - push {r4-r7,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bhi _080DD864 - lsls r0, 2 - ldr r1, _080DD790 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DD790: .4byte _080DD794 - .align 2, 0 -_080DD794: - .4byte _080DD7A8 - .4byte _080DD7B4 - .4byte _080DD7B4 - .4byte _080DD7C0 - .4byte _080DD7CC -_080DD7A8: - ldr r3, _080DD7B0 - movs r5, 0 - b _080DD7D0 - .align 2, 0 -_080DD7B0: .4byte gSpriteTemplate_83DAD78 -_080DD7B4: - ldr r3, _080DD7BC - movs r5, 0x50 - b _080DD7D0 - .align 2, 0 -_080DD7BC: .4byte gSpriteTemplate_83DAD90 -_080DD7C0: - ldr r3, _080DD7C8 - movs r5, 0x40 - b _080DD7D0 - .align 2, 0 -_080DD7C8: .4byte gSpriteTemplate_83DAD90 -_080DD7CC: - ldr r3, _080DD86C - movs r5, 0x30 -_080DD7D0: - ldrh r1, [r4, 0xC] - lsls r1, 16 - asrs r1, 19 - lsls r1, 16 - lsrs r1, 16 - ldrh r2, [r4, 0xE] - lsls r2, 16 - asrs r2, 19 - lsls r2, 16 - movs r6, 0x20 - ldrsh r0, [r4, r6] - lsls r0, 2 - adds r1, r0 - lsls r1, 16 - lsrs r6, r1, 16 - asrs r1, 16 - lsrs r7, r2, 16 - asrs r2, 16 - adds r0, r3, 0 - movs r3, 0x23 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080DD85C - ldr r1, _080DD870 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x12 - strh r1, [r0, 0x2E] - movs r2, 0x20 - ldrsh r1, [r4, r2] - lsls r2, r1, 2 - adds r2, r1 - lsls r2, 2 - adds r2, r6, r2 - movs r6, 0xA - ldrsh r3, [r4, r6] - lsls r1, r3, 1 - adds r1, r3 - adds r2, r1 - strh r2, [r0, 0x32] - strh r7, [r0, 0x36] - movs r1, 0xA - ldrsh r2, [r4, r1] - lsls r2, 1 - movs r3, 0x10 - negs r3, r3 - adds r1, r3, 0 - subs r1, r2 - strh r1, [r0, 0x38] - ldrh r3, [r0, 0x4] - lsls r2, r3, 22 - lsrs r2, 22 - adds r2, r5 - ldr r5, _080DD874 - adds r1, r5, 0 - ands r2, r1 - ldr r1, _080DD878 - ands r1, r3 - orrs r1, r2 - strh r1, [r0, 0x4] - bl sub_80786EC - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] -_080DD85C: - movs r6, 0x20 - ldrsh r0, [r4, r6] - negs r0, r0 - strh r0, [r4, 0x20] -_080DD864: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DD86C: .4byte gSpriteTemplate_83DAD90 -_080DD870: .4byte gSprites -_080DD874: .4byte 0x000003ff -_080DD878: .4byte 0xfffffc00 - thumb_func_end sub_80DD774 - - thumb_func_start sub_80DD87C -sub_80DD87C: @ 80DD87C - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080DD8AE - ldr r0, _080DD8B4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080DD8A8 - ldr r0, _080DD8B8 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1E] - subs r0, 0x1 - strh r0, [r1, 0x1E] -_080DD8A8: - adds r0, r4, 0 - bl DestroySprite -_080DD8AE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DD8B4: .4byte sub_80DD604 -_080DD8B8: .4byte gTasks - thumb_func_end sub_80DD87C - - thumb_func_start sub_80DD8BC -sub_80DD8BC: @ 80DD8BC - push {lr} - ldr r0, _080DD8E4 - ldr r0, [r0] - ldrb r1, [r0, 0x11] - lsrs r0, r1, 4 - lsls r1, 28 - lsrs r1, 28 - subs r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x4 - bls _080DD8DE - movs r1, 0x1 -_080DD8DE: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080DD8E4: .4byte gUnknown_0202F7B4 - thumb_func_end sub_80DD8BC - - thumb_func_start sub_80DD8E8 -sub_80DD8E8: @ 80DD8E8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080DD920 - ldrb r1, [r5, 0x8] - bl StartSpriteAnim - ldrh r0, [r5] - strh r0, [r4, 0x24] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - ldrh r1, [r5, 0x4] - subs r0, r1 - strh r0, [r4, 0x34] - movs r0, 0x3 - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080DD924 - str r0, [r4, 0x1C] - adds r4, 0x3E - ldrb r0, [r4] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD920: .4byte gUnknown_03004B00 -_080DD924: .4byte sub_80DD928 - thumb_func_end sub_80DD8E8 - - thumb_func_start sub_80DD928 -sub_80DD928: @ 80DD928 - push {lr} - adds r2, r0, 0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r3] - ldrh r1, [r2, 0x34] - movs r3, 0x34 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080DD960 - ldrh r3, [r2, 0x32] - adds r0, r1, r3 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r1, r0 - strh r1, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r1, 16 - cmp r1, 0 - ble _080DD972 - movs r0, 0 - strh r0, [r2, 0x34] - b _080DD972 -_080DD960: - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080DD972 - adds r0, r2, 0 - bl move_anim_8072740 -_080DD972: - pop {r0} - bx r0 - thumb_func_end sub_80DD928 - - thumb_func_start sub_80DD978 -sub_80DD978: @ 80DD978 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080DD9A0 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DD994 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080DD994: - adds r0, r4, 0 - bl sub_807941C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DD9A0: .4byte gUnknown_0202F7C8 - thumb_func_end sub_80DD978 - - thumb_func_start sub_80DD9A4 -sub_80DD9A4: @ 80DD9A4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080DD9F0 - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DD9F4 - ldrh r3, [r2] - ldrh r5, [r4, 0x20] - adds r1, r3, r5 - strh r1, [r4, 0x20] - ldrh r1, [r2, 0x2] - adds r0, r1 - strh r0, [r4, 0x22] - strh r3, [r4, 0x30] - strh r1, [r4, 0x32] - ldrh r0, [r2, 0x4] - strh r0, [r4, 0x38] - ldrb r1, [r2, 0x6] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080DD9F8 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD9F0: .4byte gUnknown_0202F7C9 -_080DD9F4: .4byte gUnknown_03004B00 -_080DD9F8: .4byte sub_80DD9FC - thumb_func_end sub_80DD9A4 - - thumb_func_start sub_80DD9FC -sub_80DD9FC: @ 80DD9FC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x8 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r1, 0x28 - bl __divsi3 - ldrh r1, [r4, 0x24] - adds r1, r0 - strh r1, [r4, 0x24] - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - subs r1, r0 - strh r1, [r4, 0x26] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x8C - ble _080DDA46 - adds r0, r4, 0 - bl move_anim_8072740 -_080DDA46: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DD9FC - - thumb_func_start sub_80DDA4C -sub_80DDA4C: @ 80DDA4C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080DDA84 - ldr r0, [r2] - cmp r0, 0x20 - bgt _080DDA60 - ldr r1, _080DDA88 - movs r0, 0 - strh r0, [r1, 0xE] -_080DDA60: - ldr r2, [r2] - adds r0, r2, 0 - subs r0, 0x21 - cmp r0, 0x20 - bhi _080DDA70 - ldr r1, _080DDA88 - movs r0, 0x1 - strh r0, [r1, 0xE] -_080DDA70: - cmp r2, 0x41 - ble _080DDA7A - ldr r1, _080DDA88 - movs r0, 0x2 - strh r0, [r1, 0xE] -_080DDA7A: - adds r0, r3, 0 - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080DDA84: .4byte gUnknown_0202F7B8 -_080DDA88: .4byte gUnknown_03004B00 - thumb_func_end sub_80DDA4C - - thumb_func_start sub_80DDA8C -sub_80DDA8C: @ 80DDA8C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080DDAE8 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080DDAAE - movs r0, 0 - bl sub_80789D4 - movs r0, 0xC8 - strh r0, [r5, 0xA] -_080DDAAE: - ldr r4, _080DDAEC - movs r1, 0xA - ldrsh r0, [r5, r1] - movs r1, 0xA - bl __divsi3 - ldrh r1, [r4] - adds r1, r0 - strh r1, [r4] - ldrh r0, [r5, 0xA] - subs r0, 0x3 - strh r0, [r5, 0xA] - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x78 - bne _080DDADA - movs r0, 0x1 - bl sub_80789D4 - adds r0, r6, 0 - bl move_anim_task_del -_080DDADA: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DDAE8: .4byte gTasks -_080DDAEC: .4byte gUnknown_030041B8 - thumb_func_end sub_80DDA8C - - thumb_func_start sub_80DDAF0 -sub_80DDAF0: @ 80DDAF0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080DDB5C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080DDB1C - movs r0, 0 - bl sub_80789D4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, _080DDB60 - ldrh r0, [r0] - strh r0, [r4, 0xC] -_080DDB1C: - ldrh r0, [r4, 0xA] - adds r0, 0x50 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0xA] - ldr r6, _080DDB60 - movs r2, 0xA - ldrsh r1, [r4, r2] - movs r0, 0x4 - bl Cos - ldrh r4, [r4, 0xC] - adds r0, r4 - strh r0, [r6] - ldr r0, _080DDB64 - movs r2, 0xE - ldrsh r1, [r0, r2] - ldr r0, _080DDB68 - cmp r1, r0 - bne _080DDB54 - movs r0, 0 - strh r0, [r6] - movs r0, 0x1 - bl sub_80789D4 - adds r0, r5, 0 - bl move_anim_task_del -_080DDB54: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DDB5C: .4byte gTasks -_080DDB60: .4byte gUnknown_030041B8 -_080DDB64: .4byte gUnknown_03004B00 -_080DDB68: .4byte 0x00000fff - thumb_func_end sub_80DDAF0 - - thumb_func_start sub_80DDB6C -sub_80DDB6C: @ 80DDB6C - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080DDBC8 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r5, _080DDBCC - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_8078BD4 - ldr r0, _080DDBD0 - str r0, [r4, 0x1C] - movs r0, 0x10 - strh r0, [r4, 0x3A] - ldr r1, _080DDBD4 - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x3A] - strh r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DDBC8: .4byte gUnknown_03004B00 -_080DDBCC: .4byte gUnknown_0202F7C9 -_080DDBD0: .4byte sub_80DDBD8 -_080DDBD4: .4byte REG_BLDCNT - thumb_func_end sub_80DDB6C - - thumb_func_start sub_80DDBD8 -sub_80DDBD8: @ 80DDBD8 - push {r4,lr} - adds r4, r0, 0 - bl sub_80DDCC8 - adds r0, r4, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080DDBF8 - ldr r0, _080DDBF4 - str r0, [r4, 0x1C] - b _080DDC42 - .align 2, 0 -_080DDBF4: .4byte sub_80DDC4C -_080DDBF8: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r2, [r4, 0x38] - adds r0, r2, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x38] - lsls r2, 16 - asrs r2, 16 - cmp r2, 0 - beq _080DDC30 - cmp r2, 0xC4 - ble _080DDC42 -_080DDC30: - lsls r0, 16 - cmp r0, 0 - ble _080DDC42 - ldr r0, _080DDC48 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0xC4 - bl PlaySE12WithPanning -_080DDC42: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DDC48: .4byte gUnknown_0202F7D2 - thumb_func_end sub_80DDBD8 - - thumb_func_start sub_80DDC4C -sub_80DDC4C: @ 80DDC4C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_8078B5C - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r2, [r4, 0x38] - adds r0, r2, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x38] - lsls r2, 16 - asrs r2, 16 - cmp r2, 0 - beq _080DDC92 - cmp r2, 0xC4 - ble _080DDC9E -_080DDC92: - lsls r0, 16 - cmp r0, 0 - ble _080DDC9E - movs r0, 0xC4 - bl PlaySE -_080DDC9E: - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080DDCBC - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080DDCB8 - str r0, [r4, 0x1C] - b _080DDCC2 - .align 2, 0 -_080DDCB8: .4byte sub_807861C -_080DDCBC: - adds r0, r4, 0 - bl sub_80DDCC8 -_080DDCC2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DDC4C - - thumb_func_start sub_80DDCC8 -sub_80DDCC8: @ 80DDCC8 - push {r4,lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x3A] - movs r1, 0x3A - ldrsh r0, [r3, r1] - cmp r0, 0xFF - ble _080DDCEC - adds r0, r2, 0x1 - strh r0, [r3, 0x3A] - lsls r0, 16 - ldr r1, _080DDCE8 - cmp r0, r1 - bne _080DDD4C - movs r0, 0 - b _080DDD4A - .align 2, 0 -_080DDCE8: .4byte 0x010d0000 -_080DDCEC: - ldrh r1, [r3, 0x3C] - adds r4, r1, 0x1 - strh r4, [r3, 0x3C] - movs r0, 0xFF - ands r0, r1 - cmp r0, 0 - bne _080DDD4C - ldr r1, _080DDD10 - ands r1, r4 - strh r1, [r3, 0x3C] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080DDD14 - adds r0, r2, 0x1 - b _080DDD16 - .align 2, 0 -_080DDD10: .4byte 0xffffff00 -_080DDD14: - subs r0, r2, 0x1 -_080DDD16: - strh r0, [r3, 0x3A] - ldr r2, _080DDD54 - ldrh r1, [r3, 0x3A] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r0, r1 - strh r0, [r2] - movs r2, 0x3A - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _080DDD32 - cmp r0, 0x10 - bne _080DDD3E -_080DDD32: - ldrh r0, [r3, 0x3C] - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - eors r0, r1 - strh r0, [r3, 0x3C] -_080DDD3E: - movs r1, 0x3A - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080DDD4C - movs r0, 0x80 - lsls r0, 1 -_080DDD4A: - strh r0, [r3, 0x3A] -_080DDD4C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DDD54: .4byte REG_BLDALPHA - thumb_func_end sub_80DDCC8 - - thumb_func_start sub_80DDD58 -sub_80DDD58: @ 80DDD58 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r1, _080DDD74 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DDD74: .4byte sub_80DDD78 - thumb_func_end sub_80DDD58 - - thumb_func_start sub_80DDD78 -sub_80DDD78: @ 80DDD78 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - subs r0, 0x41 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x82 - bhi _080DDDAC - ldrb r0, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x8 - b _080DDDB6 -_080DDDAC: - ldrb r0, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 -_080DDDB6: - orrs r1, r0 - strb r1, [r4, 0x5] - ldrh r0, [r4, 0x2E] - adds r0, 0x13 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x32] - adds r0, 0x50 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3D - bne _080DDDE8 - adds r0, r4, 0 - bl move_anim_8072740 -_080DDDE8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DDD78 - - thumb_func_start sub_80DDDF0 -sub_80DDDF0: @ 80DDDF0 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _080DDE68 - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - bl obj_id_for_side_relative_to_move - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078E70 - adds r0, r4, 0 - movs r1, 0x80 - movs r2, 0x80 - movs r3, 0 - bl obj_id_set_rotscale - ldr r1, _080DDE6C - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldr r1, _080DDE70 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0x80 - strh r1, [r0, 0x8] - ldr r1, _080DDE74 - ldrh r1, [r1] - strh r1, [r0, 0xA] - strh r2, [r0, 0xC] - movs r1, 0x10 - strh r1, [r0, 0xE] - ldr r1, _080DDE78 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DDE68: .4byte REG_BLDCNT -_080DDE6C: .4byte gSprites -_080DDE70: .4byte gTasks -_080DDE74: .4byte gUnknown_03004B00 -_080DDE78: .4byte sub_80DDE7C - thumb_func_end sub_80DDDF0 - - thumb_func_start sub_80DDE7C -sub_80DDE7C: @ 80DDE7C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DDEC4 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r3, r1, r2 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080DDEBE - movs r0, 0 - strh r0, [r3, 0x1C] - ldrh r1, [r3, 0xC] - adds r1, 0x1 - strh r1, [r3, 0xC] - ldrh r0, [r3, 0xE] - subs r0, 0x1 - strh r0, [r3, 0xE] - ldr r2, _080DDEC8 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0xC - ldrsh r0, [r3, r1] - cmp r0, 0x9 - bne _080DDEBE - ldr r0, _080DDECC - str r0, [r3] -_080DDEBE: - pop {r0} - bx r0 - .align 2, 0 -_080DDEC4: .4byte gTasks -_080DDEC8: .4byte REG_BLDALPHA -_080DDECC: .4byte sub_80DDED0 - thumb_func_end sub_80DDE7C - - thumb_func_start sub_80DDED0 -sub_80DDED0: @ 80DDED0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080DDEF4 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080DDEF8 - subs r0, r1, 0x1 - strh r0, [r4, 0xA] - b _080DDF36 - .align 2, 0 -_080DDEF4: .4byte gTasks -_080DDEF8: - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r1, r0, 24 - ldrh r0, [r4, 0x8] - adds r0, 0x8 - movs r6, 0 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xFF - bgt _080DDF22 - movs r0, 0x8 - ldrsh r2, [r4, r0] - adds r0, r1, 0 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - b _080DDF36 -_080DDF22: - adds r0, r1, 0 - bl sub_8078F40 - adds r0, r5, 0 - bl move_anim_task_del - ldr r0, _080DDF3C - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] -_080DDF36: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DDF3C: .4byte REG_BLDCNT - thumb_func_end sub_80DDED0 - - thumb_func_start sub_80DDF40 -sub_80DDF40: @ 80DDF40 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r5, [r4, 0x20] - ldrh r6, [r4, 0x22] - ldr r0, _080DDFDC - mov r8, r0 - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - mov r9, r1 - strh r0, [r4, 0x20] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - mov r1, r9 - strh r1, [r4, 0x2E] - ldr r2, _080DDFE0 - ldrh r1, [r2] - strh r1, [r4, 0x30] - ldrh r1, [r2, 0x2] - strh r1, [r4, 0x32] - ldrh r1, [r2, 0x4] - strh r1, [r4, 0x34] - ldrh r1, [r4, 0x20] - lsls r1, 4 - strh r1, [r4, 0x36] - lsls r0, 4 - strh r0, [r4, 0x38] - lsls r5, 16 - asrs r5, 16 - movs r1, 0x20 - ldrsh r0, [r4, r1] - subs r5, r0 - lsls r5, 4 - movs r0, 0 - ldrsh r1, [r2, r0] - lsls r1, 1 - adds r0, r5, 0 - str r2, [sp] - bl __divsi3 - strh r0, [r4, 0x3A] - lsls r6, 16 - asrs r6, 16 - movs r1, 0x22 - ldrsh r0, [r4, r1] - subs r6, r0 - lsls r6, 4 - ldr r2, [sp] - movs r0, 0 - ldrsh r1, [r2, r0] - lsls r1, 1 - adds r0, r6, 0 - bl __divsi3 - strh r0, [r4, 0x3C] - ldr r0, _080DDFE4 - str r0, [r4, 0x1C] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DDFDC: .4byte gUnknown_0202F7C8 -_080DDFE0: .4byte gUnknown_03004B00 -_080DDFE4: .4byte sub_80DDFE8 - thumb_func_end sub_80DDF40 - - thumb_func_start sub_80DDFE8 -sub_80DDFE8: @ 80DDFE8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080DE032 - cmp r0, 0x1 - bgt _080DDFFE - cmp r0, 0 - beq _080DE008 - b _080DE0F6 -_080DDFFE: - cmp r0, 0x2 - beq _080DE09C - cmp r0, 0x3 - beq _080DE0F0 - b _080DE0F6 -_080DE008: - ldrh r0, [r5, 0x3A] - ldrh r2, [r5, 0x36] - adds r0, r2 - strh r0, [r5, 0x36] - ldrh r1, [r5, 0x3C] - ldrh r2, [r5, 0x38] - adds r1, r2 - strh r1, [r5, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r5, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r5, 0x22] - ldrh r0, [r5, 0x30] - subs r0, 0x1 - strh r0, [r5, 0x30] - lsls r0, 16 - cmp r0, 0 - bgt _080DE0F6 - b _080DE0E2 -_080DE032: - ldrh r0, [r5, 0x32] - subs r0, 0x1 - strh r0, [r5, 0x32] - lsls r0, 16 - cmp r0, 0 - bgt _080DE0F6 - ldr r4, _080DE098 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x30] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x20] - lsls r0, 4 - strh r0, [r5, 0x36] - ldrh r0, [r5, 0x22] - lsls r0, 4 - strh r0, [r5, 0x38] - movs r1, 0x30 - ldrsh r0, [r5, r1] - movs r2, 0x20 - ldrsh r1, [r5, r2] - subs r0, r1 - lsls r0, 4 - movs r2, 0x34 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r5, 0x3A] - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r2, 0x22 - ldrsh r1, [r5, r2] - subs r0, r1 - lsls r0, 4 - movs r2, 0x34 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r5, 0x3C] - b _080DE0E2 - .align 2, 0 -_080DE098: .4byte gUnknown_0202F7C9 -_080DE09C: - ldrh r0, [r5, 0x3A] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - ldrh r1, [r5, 0x3C] - ldrh r2, [r5, 0x38] - adds r1, r2 - strh r1, [r5, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r5, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r5, 0x22] - ldrh r0, [r5, 0x34] - subs r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - cmp r0, 0 - bgt _080DE0F6 - ldr r4, _080DE0EC - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] -_080DE0E2: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080DE0F6 - .align 2, 0 -_080DE0EC: .4byte gUnknown_0202F7C9 -_080DE0F0: - adds r0, r5, 0 - bl move_anim_8074EE0 -_080DE0F6: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DDFE8 - - thumb_func_start sub_80DE0FC -sub_80DE0FC: @ 80DE0FC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r0, _080DE110 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DE110: .4byte sub_80DE114 - thumb_func_end sub_80DE0FC - - thumb_func_start sub_80DE114 -sub_80DE114: @ 80DE114 - push {r4-r6,lr} - adds r3, r0, 0 - movs r5, 0 - movs r6, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080DE1AA - adds r1, r3, 0 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x4 - ands r0, r2 - adds r4, r1, 0 - cmp r0, 0 - bne _080DE13E - movs r0, 0x4 - orrs r0, r2 - strb r0, [r4] -_080DE13E: - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _080DE14E - cmp r0, 0x1 - beq _080DE158 - movs r6, 0x1 - b _080DE162 -_080DE14E: - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0x2 - bne _080DE162 - b _080DE166 -_080DE158: - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0x4 - bne _080DE162 - movs r5, 0x1 -_080DE162: - cmp r5, 0 - beq _080DE198 -_080DE166: - ldrb r2, [r4] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r3, 0x32] - strh r1, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080DE1AA - strh r1, [r3, 0x32] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _080DE1AA -_080DE198: - cmp r6, 0 - beq _080DE1A4 - adds r0, r3, 0 - bl move_anim_8072740 - b _080DE1AA -_080DE1A4: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] -_080DE1AA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80DE114 - - thumb_func_start sub_80DE1B0 -sub_80DE1B0: @ 80DE1B0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080DE1DC - adds r5, r0, r1 - movs r0, 0x1 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - movs r6, 0 - movs r1, 0 - strh r0, [r5, 0x8] - lsls r0, 16 - cmp r0, 0 - bge _080DE1E0 - adds r0, r4, 0 - bl move_anim_task_del - b _080DE2C0 - .align 2, 0 -_080DE1DC: .4byte gTasks -_080DE1E0: - strh r1, [r5, 0xA] - movs r0, 0xF - strh r0, [r5, 0xC] - movs r0, 0x2 - strh r0, [r5, 0xE] - strh r1, [r5, 0x10] - ldr r1, _080DE244 - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080DE248 - ldrh r0, [r5, 0xE] - lsls r0, 8 - ldrh r1, [r5, 0xC] - orrs r0, r1 - strh r0, [r2] - ldr r4, _080DE24C - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x50 - strh r1, [r0, 0x2E] - ldr r0, _080DE250 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DE258 - movs r2, 0x8 - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _080DE254 - strh r1, [r0, 0x30] - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x70 - b _080DE276 - .align 2, 0 -_080DE244: .4byte REG_BLDCNT -_080DE248: .4byte REG_BLDALPHA -_080DE24C: .4byte gSprites -_080DE250: .4byte gUnknown_0202F7C9 -_080DE254: .4byte 0x0000ff70 -_080DE258: - movs r2, 0x8 - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x90 - strh r1, [r0, 0x30] - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _080DE2C8 -_080DE276: - strh r1, [r0, 0x32] - ldr r4, _080DE2CC - movs r2, 0x8 - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r2, 0 - strh r2, [r0, 0x34] - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x36] - movs r2, 0x8 - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _080DE2D0 - bl oamt_set_x3A_32 - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080DE2D4 - str r1, [r0] - ldr r0, _080DE2D8 - str r0, [r5] -_080DE2C0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DE2C8: .4byte 0x0000ff90 -_080DE2CC: .4byte gSprites -_080DE2D0: .4byte SpriteCallbackDummy -_080DE2D4: .4byte sub_8078394 -_080DE2D8: .4byte sub_80DE2DC - thumb_func_end sub_80DE1B0 - - thumb_func_start sub_80DE2DC -sub_80DE2DC: @ 80DE2DC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080DE300 - adds r4, r0, r1 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080DE37C - cmp r0, 0x1 - bgt _080DE304 - cmp r0, 0 - beq _080DE30A - b _080DE3A6 - .align 2, 0 -_080DE300: .4byte gTasks -_080DE304: - cmp r0, 0x2 - beq _080DE3A0 - b _080DE3A6 -_080DE30A: - ldrh r1, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0xA] - movs r0, 0x3 - ands r0, r1 - strh r0, [r4, 0x12] - cmp r0, 0x1 - bne _080DE328 - ldrh r1, [r4, 0xC] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080DE328 - subs r0, r1, 0x1 - strh r0, [r4, 0xC] -_080DE328: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - bne _080DE33E - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080DE33E - adds r0, r1, 0x1 - strh r0, [r4, 0xE] -_080DE33E: - ldr r2, _080DE374 - ldrh r0, [r4, 0xE] - lsls r0, 8 - ldrh r1, [r4, 0xC] - orrs r0, r1 - strh r0, [r2] - ldr r1, [r4, 0xC] - movs r0, 0x80 - lsls r0, 13 - cmp r1, r0 - bne _080DE3A6 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x50 - ble _080DE3A6 - movs r2, 0x8 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DE378 - adds r0, r1 - bl obj_delete_but_dont_free_vram - movs r0, 0x1 - strh r0, [r4, 0x10] - b _080DE3A6 - .align 2, 0 -_080DE374: .4byte REG_BLDALPHA -_080DE378: .4byte gSprites -_080DE37C: - ldrh r0, [r4, 0x14] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x14] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080DE3A6 - ldr r0, _080DE39C - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - b _080DE3A6 - .align 2, 0 -_080DE39C: .4byte REG_BLDCNT -_080DE3A0: - adds r0, r2, 0 - bl move_anim_task_del -_080DE3A6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DE2DC - - thumb_func_start sub_80DE3AC -sub_80DE3AC: @ 80DE3AC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r2, _080DE3CC - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x26] - ldr r2, _080DE3D0 - str r2, [r1] - bl _call_via_r2 - pop {r0} - bx r0 - .align 2, 0 -_080DE3CC: .4byte gTasks -_080DE3D0: .4byte sub_80DE3D4 - thumb_func_end sub_80DE3AC - - thumb_func_start sub_80DE3D4 -sub_80DE3D4: @ 80DE3D4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080DE40C - adds r5, r0, r1 - ldr r0, _080DE410 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r6, r0, 24 - movs r1, 0x26 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bls _080DE400 - b _080DE604 -_080DE400: - lsls r0, 2 - ldr r1, _080DE414 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DE40C: .4byte gTasks -_080DE410: .4byte gUnknown_0202F7C9 -_080DE414: .4byte _080DE418 - .align 2, 0 -_080DE418: - .4byte _080DE42C - .4byte _080DE500 - .4byte _080DE544 - .4byte _080DE5AC - .4byte _080DE5E0 -_080DE42C: - ldr r7, _080DE460 - adds r0, r7, 0 - bl AllocSpritePalette - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - mov r8, r2 - strh r0, [r5, 0x24] - cmp r0, 0xFF - beq _080DE456 - movs r0, 0x1 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - strh r0, [r5, 0x8] - lsls r0, 16 - cmp r0, 0 - bge _080DE464 - adds r0, r7, 0 - bl FreeSpritePaletteByTag -_080DE456: - adds r0, r4, 0 - bl move_anim_task_del - b _080DE60A - .align 2, 0 -_080DE460: .4byte 0x00002771 -_080DE464: - ldr r4, _080DE4E4 - movs r3, 0x8 - ldrsh r0, [r5, r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r2, [r5, 0x24] - lsls r2, 4 - ldrb r3, [r1, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r1, 0x8 - ldrsh r0, [r5, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - movs r2, 0x8 - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - mov r3, r8 - strh r3, [r5, 0xA] - strh r3, [r5, 0xC] - movs r0, 0x10 - strh r0, [r5, 0xE] - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r0, 0x22 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - lsls r0, 4 - strh r0, [r5, 0x10] - cmp r6, 0x1 - bne _080DE4EC - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080DE4E8 - b _080DE4F4 - .align 2, 0 -_080DE4E4: .4byte gSprites -_080DE4E8: .4byte 0x0000fdff -_080DE4EC: - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080DE4FC -_080DE4F4: - ands r0, r1 - strh r0, [r2] - b _080DE604 - .align 2, 0 -_080DE4FC: .4byte 0x0000fbff -_080DE500: - movs r1, 0x24 - ldrsh r0, [r5, r1] - adds r0, 0x10 - lsls r0, 4 - strh r0, [r5, 0x24] - movs r2, 0x10 - ldrsh r0, [r5, r2] - lsls r0, 1 - ldr r1, _080DE534 - adds r0, r1 - movs r3, 0x24 - ldrsh r1, [r5, r3] - lsls r1, 1 - ldr r2, _080DE538 - adds r1, r2 - ldr r2, _080DE53C - bl CpuSet - ldrh r0, [r5, 0x10] - ldr r3, _080DE540 - movs r1, 0x10 - movs r2, 0xA - bl BlendPalette - b _080DE604 - .align 2, 0 -_080DE534: .4byte gPlttBufferUnfaded -_080DE538: .4byte gPlttBufferFaded -_080DE53C: .4byte REG_BG0CNT -_080DE540: .4byte 0x00003c0d -_080DE544: - ldr r2, _080DE580 - movs r0, 0x22 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - subs r1, 0x20 - lsls r1, 16 - lsrs r2, r1, 16 - cmp r1, 0 - bge _080DE564 - movs r2, 0 -_080DE564: - cmp r6, 0x1 - bne _080DE584 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, r2, 0 - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - str r2, [sp] - movs r2, 0x4 - str r2, [sp, 0x4] - str r6, [sp, 0x8] - b _080DE59C - .align 2, 0 -_080DE580: .4byte gSprites -_080DE584: - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, r2, 0 - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - str r2, [sp] - movs r2, 0x8 - str r2, [sp, 0x4] - movs r2, 0x1 - str r2, [sp, 0x8] -_080DE59C: - movs r2, 0x2 - movs r3, 0x6 - bl sub_8089944 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x1C] - b _080DE604 -_080DE5AC: - cmp r6, 0x1 - bne _080DE5C0 - ldr r1, _080DE5B8 - ldr r2, _080DE5BC - adds r0, r2, 0 - b _080DE5C6 - .align 2, 0 -_080DE5B8: .4byte REG_BLDCNT -_080DE5BC: .4byte 0x00003f42 -_080DE5C0: - ldr r1, _080DE5D4 - ldr r3, _080DE5D8 - adds r0, r3, 0 -_080DE5C6: - strh r0, [r1] - ldr r1, _080DE5DC - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - b _080DE604 - .align 2, 0 -_080DE5D4: .4byte REG_BLDCNT -_080DE5D8: .4byte 0x00003f44 -_080DE5DC: .4byte REG_BLDALPHA -_080DE5E0: - cmp r6, 0x1 - bne _080DE5F0 - movs r0, 0x80 - lsls r0, 19 - ldrh r1, [r0] - movs r3, 0x80 - lsls r3, 2 - b _080DE5FA -_080DE5F0: - movs r0, 0x80 - lsls r0, 19 - ldrh r1, [r0] - movs r3, 0x80 - lsls r3, 3 -_080DE5FA: - adds r2, r3, 0 - orrs r1, r2 - strh r1, [r0] - ldr r0, _080DE618 - str r0, [r5] -_080DE604: - ldrh r0, [r5, 0x26] - adds r0, 0x1 - strh r0, [r5, 0x26] -_080DE60A: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DE618: .4byte sub_80DE61C - thumb_func_end sub_80DE3D4 - - thumb_func_start sub_80DE61C -sub_80DE61C: @ 80DE61C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080DE6A0 - adds r4, r0, r1 - ldrh r1, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0xA] - movs r0, 0x1 - ands r0, r1 - strh r0, [r4, 0x12] - cmp r0, 0 - bne _080DE654 - ldr r1, _080DE6A4 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x12 - bl __divsi3 - strh r0, [r4, 0xC] -_080DE654: - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bne _080DE676 - ldr r1, _080DE6A4 - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x12 - bl __divsi3 - movs r1, 0x10 - subs r1, r0 - strh r1, [r4, 0xE] -_080DE676: - ldr r2, _080DE6A8 - ldrh r0, [r4, 0xE] - lsls r0, 8 - ldrh r1, [r4, 0xC] - orrs r0, r1 - strh r0, [r2] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0x80 - bne _080DE698 - movs r0, 0 - strh r0, [r4, 0x26] - ldr r1, _080DE6AC - str r1, [r4] - adds r0, r5, 0 - bl _call_via_r1 -_080DE698: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DE6A0: .4byte gTasks -_080DE6A4: .4byte gSineTable -_080DE6A8: .4byte REG_BLDALPHA -_080DE6AC: .4byte sub_80DE6B0 - thumb_func_end sub_80DE61C - - thumb_func_start sub_80DE6B0 -sub_80DE6B0: @ 80DE6B0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080DE6E0 - adds r4, r0, r1 - ldr r0, _080DE6E4 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r6, r0, 24 - movs r1, 0x26 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080DE72C - cmp r0, 0x1 - bgt _080DE6E8 - cmp r0, 0 - beq _080DE6EE - b _080DE7AA - .align 2, 0 -_080DE6E0: .4byte gTasks -_080DE6E4: .4byte gUnknown_0202F7C9 -_080DE6E8: - cmp r0, 0x2 - beq _080DE740 - b _080DE7AA -_080DE6EE: - ldr r1, _080DE710 - movs r0, 0x3 - strb r0, [r1, 0x15] - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x24] - cmp r6, 0x1 - bne _080DE718 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080DE714 - b _080DE720 - .align 2, 0 -_080DE710: .4byte gUnknown_03004DC0 -_080DE714: .4byte 0x0000fdff -_080DE718: - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080DE728 -_080DE720: - ands r0, r1 - strh r0, [r2] - b _080DE7AA - .align 2, 0 -_080DE728: .4byte 0x0000fbff -_080DE72C: - ldrh r0, [r4, 0x10] - ldr r3, _080DE73C - movs r1, 0x10 - movs r2, 0 - bl BlendPalette - b _080DE7AA - .align 2, 0 -_080DE73C: .4byte 0x00003c0d -_080DE740: - ldr r3, _080DE788 - movs r0, 0x24 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - bl obj_delete_but_dont_free_vram - ldr r0, _080DE78C - bl FreeSpritePaletteByTag - ldr r0, _080DE790 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - cmp r6, 0x1 - bne _080DE794 - subs r0, 0x52 - ldrh r1, [r0] - movs r3, 0x80 - lsls r3, 2 - b _080DE79E - .align 2, 0 -_080DE788: .4byte gSprites -_080DE78C: .4byte 0x00002771 -_080DE790: .4byte REG_BLDCNT -_080DE794: - movs r0, 0x80 - lsls r0, 19 - ldrh r1, [r0] - movs r3, 0x80 - lsls r3, 3 -_080DE79E: - adds r2, r3, 0 - orrs r1, r2 - strh r1, [r0] - adds r0, r5, 0 - bl move_anim_task_del -_080DE7AA: - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80DE6B0 - - thumb_func_start sub_80DE7B8 -sub_80DE7B8: @ 80DE7B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r7, r0, 0 - ldr r0, _080DE7F4 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DE800 - ldr r4, _080DE7F8 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 8 - movs r2, 0xE0 - lsls r2, 13 - adds r0, r2 - lsrs r5, r0, 16 - ldr r4, _080DE7FC - b _080DE824 - .align 2, 0 -_080DE7F4: .4byte gUnknown_03004B00 -_080DE7F8: .4byte gUnknown_0202F7C8 -_080DE7FC: .4byte gUnknown_0202F7C9 -_080DE800: - ldr r4, _080DE8C8 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 8 - movs r2, 0xE0 - lsls r2, 13 - adds r0, r2 - lsrs r5, r0, 16 - ldr r4, _080DE8CC -_080DE824: - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 8 - movs r1, 0xE0 - lsls r1, 13 - adds r0, r1 - lsrs r0, 16 - mov r9, r0 - mov r8, r5 - mov r2, r9 - subs r4, r2, r5 - lsls r4, 16 - lsrs r4, 16 - lsls r0, r6, 4 - strh r0, [r7, 0x2E] - lsls r0, r5, 4 - strh r0, [r7, 0x30] - mov r1, r10 - subs r0, r1, r6 - lsls r0, 4 - ldr r5, _080DE8D0 - movs r2, 0x2 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r7, 0x32] - lsls r4, 16 - asrs r4, 12 - movs r0, 0x2 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl __divsi3 - strh r0, [r7, 0x34] - ldrh r0, [r5, 0x2] - strh r0, [r7, 0x36] - mov r1, r10 - strh r1, [r7, 0x38] - mov r2, r9 - strh r2, [r7, 0x3A] - movs r1, 0x36 - ldrsh r0, [r7, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r7, 0x3C] - ldrb r1, [r7, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r7, 0x5] - strh r6, [r7, 0x20] - mov r2, r8 - strh r2, [r7, 0x22] - ldr r0, _080DE8D4 - str r0, [r7, 0x1C] - adds r2, r7, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DE8C8: .4byte gUnknown_0202F7C9 -_080DE8CC: .4byte gUnknown_0202F7C8 -_080DE8D0: .4byte gUnknown_03004B00 -_080DE8D4: .4byte sub_80DE8D8 - thumb_func_end sub_80DE7B8 - - thumb_func_start sub_80DE8D8 -sub_80DE8D8: @ 80DE8D8 - push {r4,lr} - adds r2, r0, 0 - ldrh r3, [r2, 0x36] - movs r1, 0x36 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _080DE910 - ldrh r0, [r2, 0x32] - ldrh r4, [r2, 0x2E] - adds r0, r4 - strh r0, [r2, 0x2E] - ldrh r1, [r2, 0x34] - ldrh r4, [r2, 0x30] - adds r1, r4 - strh r1, [r2, 0x30] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r2, 0x22] - subs r0, r3, 0x1 - strh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080DE910 - strh r0, [r2, 0x2E] -_080DE910: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DE8D8 - - thumb_func_start sub_80DE918 -sub_80DE918: @ 80DE918 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DEA68 - adds r1, r0 - str r1, [sp] - ldr r1, _080DEA6C - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0x80 - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r1] - movs r0, 0 - ldr r1, [sp] - strh r0, [r1, 0x12] - strh r0, [r1, 0x14] - strh r0, [r1, 0x16] - strh r0, [r1, 0x18] - movs r0, 0x10 - strh r0, [r1, 0x1A] - ldr r2, _080DEA70 - ldrh r0, [r2] - strh r0, [r1, 0x1C] - ldr r4, _080DEA74 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_807A100 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DE988 - b _080DEA88 -_080DE988: - movs r4, 0 -_080DE98A: - lsls r1, r4, 16 - asrs r3, r1, 16 - ldr r0, _080DEA74 - ldrb r2, [r0] - str r1, [sp, 0x10] - cmp r3, r2 - beq _080DEA56 - movs r0, 0x2 - eors r2, r0 - cmp r3, r2 - beq _080DEA56 - lsls r0, r4, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080DEA56 - ldr r6, [sp, 0x4] - ldr r3, [sp, 0x8] - lsls r0, r3, 16 - asrs r7, r0, 16 - ldr r0, _080DEA78 - adds r1, r6, 0 - adds r2, r7, 0 - movs r3, 0x37 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x40 - beq _080DEA56 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - adds r0, r4, 0 - movs r1, 0x3 - bl sub_807A100 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - mov r0, r8 - lsls r5, r0, 4 - add r5, r8 - lsls r5, 2 - ldr r1, _080DEA7C - adds r4, r5, r1 - lsls r0, r6, 4 - strh r0, [r4, 0x2E] - lsls r0, r7, 4 - strh r0, [r4, 0x30] - mov r2, r10 - subs r0, r2, r6 - lsls r0, 4 - ldr r3, _080DEA70 - movs r2, 0x2 - ldrsh r1, [r3, r2] - bl __divsi3 - strh r0, [r4, 0x32] - mov r3, r9 - lsls r0, r3, 16 - asrs r0, 16 - subs r0, r7 - lsls r0, 4 - ldr r2, _080DEA70 - movs r3, 0x2 - ldrsh r1, [r2, r3] - bl __divsi3 - strh r0, [r4, 0x34] - ldr r1, _080DEA70 - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x36] - mov r2, r10 - strh r2, [r4, 0x38] - mov r3, r9 - strh r3, [r4, 0x3A] - ldr r0, _080DEA80 - adds r5, r0 - ldr r0, _080DEA84 - str r0, [r5] - ldr r2, [sp] - movs r3, 0x20 - ldrsh r1, [r2, r3] - adds r1, 0xD - lsls r1, 1 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1 - mov r1, r8 - strh r1, [r0] - ldrh r0, [r2, 0x20] - adds r0, 0x1 - strh r0, [r2, 0x20] -_080DEA56: - ldr r2, [sp, 0x10] - movs r3, 0x80 - lsls r3, 9 - adds r0, r2, r3 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080DE98A - b _080DEB0C - .align 2, 0 -_080DEA68: .4byte gTasks -_080DEA6C: .4byte REG_BLDCNT -_080DEA70: .4byte gUnknown_03004B00 -_080DEA74: .4byte gUnknown_0202F7C8 -_080DEA78: .4byte gSpriteTemplate_83DAF08 -_080DEA7C: .4byte gSprites -_080DEA80: .4byte gSprites + 0x1C -_080DEA84: .4byte sub_80DE8D8 -_080DEA88: - ldr r0, _080DEB24 - ldr r7, [sp, 0x4] - ldr r2, [sp, 0x8] - lsls r1, r2, 16 - asrs r1, 16 - str r1, [sp, 0xC] - adds r1, r7, 0 - ldr r2, [sp, 0xC] - movs r3, 0x37 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x40 - beq _080DEB0C - movs r3, 0x30 - mov r10, r3 - movs r0, 0x28 - mov r9, r0 - ldr r6, _080DEB28 - mov r1, r8 - lsls r5, r1, 4 - add r5, r8 - lsls r5, 2 - adds r4, r5, r6 - lsls r0, r7, 4 - strh r0, [r4, 0x2E] - ldr r2, [sp, 0xC] - lsls r0, r2, 4 - strh r0, [r4, 0x30] - subs r0, r3, r7 - lsls r0, 4 - ldr r3, _080DEB2C - movs r2, 0x2 - ldrsh r1, [r3, r2] - bl __divsi3 - strh r0, [r4, 0x32] - mov r3, r9 - ldr r1, [sp, 0xC] - subs r0, r3, r1 - lsls r0, 4 - ldr r2, _080DEB2C - movs r3, 0x2 - ldrsh r1, [r2, r3] - bl __divsi3 - strh r0, [r4, 0x34] - ldr r1, _080DEB2C - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x36] - mov r2, r10 - strh r2, [r4, 0x38] - mov r3, r9 - strh r3, [r4, 0x3A] - adds r6, 0x1C - adds r5, r6 - ldr r0, _080DEB30 - str r0, [r5] - mov r1, r8 - ldr r0, [sp] - strh r1, [r0, 0x22] - movs r0, 0x1 - ldr r2, [sp] - strh r0, [r2, 0x20] -_080DEB0C: - ldr r0, _080DEB34 - ldr r3, [sp] - str r0, [r3] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DEB24: .4byte gSpriteTemplate_83DAF08 -_080DEB28: .4byte gSprites -_080DEB2C: .4byte gUnknown_03004B00 -_080DEB30: .4byte sub_80DE8D8 -_080DEB34: .4byte sub_80DEB38 - thumb_func_end sub_80DE918 - - thumb_func_start sub_80DEB38 -sub_80DEB38: @ 80DEB38 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080DEB5C - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080DEBEE - cmp r1, 0x1 - bgt _080DEB60 - cmp r1, 0 - beq _080DEB6E - b _080DECA4 - .align 2, 0 -_080DEB5C: .4byte gTasks -_080DEB60: - cmp r1, 0x2 - bne _080DEB66 - b _080DEC80 -_080DEB66: - cmp r1, 0x3 - bne _080DEB6C - b _080DEC94 -_080DEB6C: - b _080DECA4 -_080DEB6E: - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080DEBCE - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080DEBCE - strh r1, [r4, 0x12] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DEBA4 - ldrh r1, [r4, 0x18] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080DEBB2 - adds r0, r1, 0x1 - strh r0, [r4, 0x18] - b _080DEBB2 -_080DEBA4: - ldrh r1, [r4, 0x1A] - movs r2, 0x1A - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080DEBB2 - subs r0, r1, 0x1 - strh r0, [r4, 0x1A] -_080DEBB2: - ldr r2, _080DEBE0 - ldrh r0, [r4, 0x1A] - lsls r0, 8 - ldrh r1, [r4, 0x18] - orrs r0, r1 - strh r0, [r2] - movs r1, 0x16 - ldrsh r0, [r4, r1] - cmp r0, 0x17 - ble _080DEBCE - movs r0, 0 - strh r0, [r4, 0x16] - movs r0, 0x1 - strh r0, [r4, 0x14] -_080DEBCE: - ldrh r1, [r4, 0x1C] - movs r2, 0x1C - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080DEBE4 - subs r0, r1, 0x1 - strh r0, [r4, 0x1C] - b _080DECA4 - .align 2, 0 -_080DEBE0: .4byte REG_BLDALPHA -_080DEBE4: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080DECA4 - b _080DEC8C -_080DEBEE: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080DECA4 - movs r0, 0 - strh r0, [r4, 0x12] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] - ands r0, r1 - lsls r0, 16 - cmp r0, 0 - beq _080DEC1E - ldrh r1, [r4, 0x18] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080DEC2C - subs r0, r1, 0x1 - strh r0, [r4, 0x18] - b _080DEC2C -_080DEC1E: - ldrh r1, [r4, 0x1A] - movs r2, 0x1A - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080DEC2C - adds r0, r1, 0x1 - strh r0, [r4, 0x1A] -_080DEC2C: - ldr r2, _080DEC48 - ldrh r0, [r4, 0x1A] - lsls r0, 8 - ldrh r1, [r4, 0x18] - orrs r0, r1 - strh r0, [r2] - ldr r1, [r4, 0x18] - movs r0, 0x80 - lsls r0, 13 - cmp r1, r0 - bne _080DECA4 - movs r5, 0 - b _080DEC70 - .align 2, 0 -_080DEC48: .4byte REG_BLDALPHA -_080DEC4C: - adds r1, r5, 0 - adds r1, 0xD - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x8 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DEC7C - adds r0, r1 - bl DestroySprite - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080DEC70: - movs r1, 0x20 - ldrsh r0, [r4, r1] - cmp r5, r0 - blt _080DEC4C - b _080DEC8C - .align 2, 0 -_080DEC7C: .4byte gSprites -_080DEC80: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - cmp r0, 0 - ble _080DECA4 -_080DEC8C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080DECA4 -_080DEC94: - ldr r0, _080DECAC - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r2, 0 - bl move_anim_task_del -_080DECA4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DECAC: .4byte REG_BLDCNT - thumb_func_end sub_80DEB38 - - thumb_func_start sub_80DECB0 -sub_80DECB0: @ 80DECB0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _080DECF8 - movs r1, 0 - strh r1, [r0] - ldr r0, _080DECFC - strh r1, [r0] - ldr r1, _080DED00 - ldr r2, _080DED04 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - subs r2, 0x20 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x6 - movs r0, 0xC8 - strh r0, [r1] - adds r1, 0x4 - movs r0, 0x10 - strh r0, [r1] - ldr r0, _080DED08 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DECF4 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DED0C -_080DECF4: - movs r6, 0x28 - b _080DED0E - .align 2, 0 -_080DECF8: .4byte gUnknown_030042C4 -_080DECFC: .4byte gUnknown_03004240 -_080DED00: .4byte REG_WININ -_080DED04: .4byte 0x00003f3f -_080DED08: .4byte gUnknown_0202F7C8 -_080DED0C: - movs r6, 0xC8 -_080DED0E: - ldr r1, _080DED4C - lsls r3, r6, 16 - asrs r2, r3, 16 - lsls r0, r2, 8 - orrs r0, r2 - strh r0, [r1] - ldr r1, _080DED50 - movs r5, 0x28 - ldr r0, _080DED54 - strh r0, [r1] - lsrs r3, 16 - movs r1, 0xF0 - subs r1, r2 - movs r4, 0x48 - ldr r2, _080DED58 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - strh r3, [r0, 0xA] - strh r1, [r0, 0xC] - strh r5, [r0, 0xE] - strh r4, [r0, 0x10] - strh r6, [r0, 0x12] - strh r5, [r0, 0x14] - ldr r1, _080DED5C - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DED4C: .4byte gUnknown_030042C4 -_080DED50: .4byte gUnknown_03004240 -_080DED54: .4byte 0x00002828 -_080DED58: .4byte gTasks -_080DED5C: .4byte sub_80DED60 - thumb_func_end sub_80DECB0 - - thumb_func_start sub_80DED60 -sub_80DED60: @ 80DED60 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DEE80 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r1, [r4, 0x8] - adds r0, r1, 0x1 - strh r0, [r4, 0x8] - ldrh r5, [r4, 0xA] - ldrh r7, [r4, 0xC] - ldrh r0, [r4, 0xE] - mov r10, r0 - ldrh r2, [r4, 0x10] - str r2, [sp, 0xC] - ldrh r0, [r4, 0x12] - ldrh r2, [r4, 0x14] - mov r8, r2 - lsls r1, 16 - asrs r6, r1, 16 - cmp r6, 0xF - ble _080DED9C - b _080DEE8C -_080DED9C: - lsls r0, 16 - asrs r0, 16 - bl __floatsidf - str r0, [sp, 0x10] - str r1, [sp, 0x14] - lsls r0, r5, 16 - asrs r0, 16 - bl __floatsidf - ldr r2, _080DEE84 - ldr r3, _080DEE88 - bl __muldf3 - adds r5, r1, 0 - adds r4, r0, 0 - adds r0, r6, 0 - bl __floatsidf - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - adds r1, r5, 0 - adds r0, r4, 0 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - bl __muldf3 - adds r3, r1, 0 - adds r2, r0, 0 - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - bl __subdf3 - bl __fixunsdfsi - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r0, r7, 16 - asrs r0, 16 - bl __floatsidf - ldr r2, _080DEE84 - ldr r3, _080DEE88 - bl __muldf3 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - bl __muldf3 - adds r3, r1, 0 - adds r2, r0, 0 - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - bl __adddf3 - bl __fixunsdfsi - lsls r0, 16 - lsrs r7, r0, 16 - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - bl __floatsidf - adds r5, r1, 0 - adds r4, r0, 0 - mov r2, r10 - lsls r0, r2, 16 - asrs r0, 16 - bl __floatsidf - ldr r2, _080DEE84 - ldr r3, _080DEE88 - bl __muldf3 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - bl __muldf3 - adds r3, r1, 0 - adds r2, r0, 0 - adds r1, r5, 0 - adds r0, r4, 0 - bl __subdf3 - bl __fixunsdfsi - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, [sp, 0xC] - lsls r0, r1, 16 - asrs r0, 16 - bl __floatsidf - ldr r2, _080DEE84 - ldr r3, _080DEE88 - bl __muldf3 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - bl __muldf3 - adds r3, r1, 0 - adds r2, r0, 0 - adds r1, r5, 0 - adds r0, r4, 0 - bl __adddf3 - bl __fixunsdfsi - lsls r0, 16 - lsrs r5, r0, 16 - b _080DEEBA - .align 2, 0 -_080DEE80: .4byte gTasks -_080DEE84: .4byte 0x3fb00000 -_080DEE88: .4byte 0x00000000 -_080DEE8C: - movs r2, 0 - mov r9, r2 - movs r7, 0xF0 - movs r6, 0 - movs r5, 0x70 - str r6, [sp] - str r6, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r3, 0 - bl sub_80791A8 - lsls r0, 16 - lsrs r0, 16 - str r6, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _080DEEDC - str r0, [r4] -_080DEEBA: - ldr r1, _080DEEE0 - mov r2, r9 - lsls r0, r2, 8 - orrs r7, r0 - strh r7, [r1] - ldr r1, _080DEEE4 - lsls r0, r6, 8 - orrs r5, r0 - strh r5, [r1] - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DEEDC: .4byte sub_80DEEE8 -_080DEEE0: .4byte gUnknown_030042C4 -_080DEEE4: .4byte gUnknown_03004240 - thumb_func_end sub_80DED60 - - thumb_func_start sub_80DEEE8 -sub_80DEEE8: @ 80DEEE8 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080DEF28 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080DEF20 - ldr r0, _080DEF2C - strh r2, [r0] - ldr r0, _080DEF30 - strh r2, [r0] - ldr r0, _080DEF34 - ldr r4, _080DEF38 - adds r1, r4, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x6 - strh r2, [r0] - adds r0, 0x4 - strh r2, [r0] - adds r0, r3, 0 - bl move_anim_task_del -_080DEF20: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DEF28: .4byte gPaletteFade -_080DEF2C: .4byte gUnknown_030042C4 -_080DEF30: .4byte gUnknown_03004240 -_080DEF34: .4byte REG_WININ -_080DEF38: .4byte 0x00003f3f - thumb_func_end sub_80DEEE8 - - thumb_func_start sub_80DEF3C -sub_80DEF3C: @ 80DEF3C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080DEF68 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DEF70 - movs r2, 0x18 - ldr r3, _080DEF6C - ldrb r0, [r4, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r4, 0x3] - b _080DEF74 - .align 2, 0 -_080DEF68: .4byte gUnknown_0202F7C8 -_080DEF6C: .4byte 0x0000fffe -_080DEF70: - ldr r2, _080DEF90 - movs r3, 0x2 -_080DEF74: - lsls r0, r2, 16 - asrs r0, 16 - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - strh r3, [r4, 0x30] - movs r0, 0x3C - strh r0, [r4, 0x2E] - ldr r0, _080DEF94 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DEF90: .4byte 0x0000ffe8 -_080DEF94: .4byte sub_80DEF98 - thumb_func_end sub_80DEF3C - - thumb_func_start sub_80DEF98 -sub_80DEF98: @ 80DEF98 - push {r4,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x2E] - movs r2, 0x2E - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _080DEFAA - subs r0, r1, 0x1 - b _080DF00E -_080DEFAA: - ldrh r0, [r3, 0x30] - ldrh r4, [r3, 0x24] - adds r1, r0, r4 - strh r1, [r3, 0x24] - adds r0, r1, 0x7 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xE - bls _080DF010 - ldrh r0, [r3, 0x20] - adds r0, r1 - strh r0, [r3, 0x20] - movs r0, 0 - strh r0, [r3, 0x24] - ldrh r2, [r3, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r4, _080DEFFC - adds r0, r4, 0 - ands r1, r0 - ldr r0, _080DF000 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080DF00C - movs r0, 0x1E - strh r0, [r3, 0x2E] - ldr r0, _080DF004 - str r0, [r3, 0x1C] - ldr r1, _080DF008 - adds r0, r3, 0 - bl oamt_set_x3A_32 - b _080DF010 - .align 2, 0 -_080DEFFC: .4byte 0x000003ff -_080DF000: .4byte 0xfffffc00 -_080DF004: .4byte sub_80782D8 -_080DF008: .4byte sub_80DF018 -_080DF00C: - movs r0, 0x28 -_080DF00E: - strh r0, [r3, 0x2E] -_080DF010: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DEF98 - - thumb_func_start sub_80DF018 -sub_80DF018: @ 80DF018 - push {r4,lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r2, [r3, r0] - cmp r2, 0 - bne _080DF044 - ldr r1, _080DF040 - movs r4, 0xFD - lsls r4, 6 - adds r0, r4, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x10 - strh r0, [r1] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - strh r2, [r3, 0x30] - strh r2, [r3, 0x32] - b _080DF082 - .align 2, 0 -_080DF040: .4byte REG_BLDCNT -_080DF044: - ldrh r1, [r3, 0x30] - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0x1 - bgt _080DF054 - adds r0, r1, 0x1 - strh r0, [r3, 0x30] - b _080DF082 -_080DF054: - movs r0, 0 - strh r0, [r3, 0x30] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - ldr r2, _080DF088 - movs r1, 0x10 - subs r1, r0 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r4, 0x32 - ldrsh r0, [r3, r4] - cmp r0, 0x10 - bne _080DF082 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080DF08C - str r0, [r3, 0x1C] -_080DF082: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF088: .4byte REG_BLDALPHA -_080DF08C: .4byte sub_80DF090 - thumb_func_end sub_80DF018 - - thumb_func_start sub_80DF090 -sub_80DF090: @ 80DF090 - push {lr} - ldr r1, _080DF0AC - movs r2, 0 - strh r2, [r1] - adds r1, 0x2 - strh r2, [r1] - ldr r1, _080DF0B0 - strh r2, [r1] - ldr r1, _080DF0B4 - strh r2, [r1] - bl move_anim_8072740 - pop {r0} - bx r0 - .align 2, 0 -_080DF0AC: .4byte REG_BLDCNT -_080DF0B0: .4byte gUnknown_030042C4 -_080DF0B4: .4byte gUnknown_03004240 - thumb_func_end sub_80DF090 - - thumb_func_start sub_80DF0B8 -sub_80DF0B8: @ 80DF0B8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0xC - bl Sin - strh r0, [r4, 0x24] - ldr r0, _080DF120 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DF0DC - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] -_080DF0DC: - ldrh r0, [r4, 0x2E] - adds r0, 0x6 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080DF12C - ldr r0, _080DF124 - strh r0, [r4, 0x3A] - ldr r1, _080DF128 - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x3A] - strh r0, [r1] - b _080DF17E - .align 2, 0 -_080DF120: .4byte gUnknown_0202F7C8 -_080DF124: .4byte 0x0000050b -_080DF128: .4byte REG_BLDCNT -_080DF12C: - cmp r0, 0x1E - ble _080DF17E - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x3A] - lsls r0, r1, 16 - asrs r0, 24 - lsls r0, 16 - movs r2, 0xFF - ands r2, r1 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r3, r0, 16 - cmp r3, 0x10 - bls _080DF150 - movs r3, 0x10 -_080DF150: - subs r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r0, 0 - bge _080DF15C - movs r2, 0 -_080DF15C: - ldr r1, _080DF184 - lsls r0, r3, 8 - orrs r0, r2 - strh r0, [r1] - strh r0, [r4, 0x3A] - cmp r3, 0x10 - bne _080DF17E - cmp r2, 0 - bne _080DF17E - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080DF188 - str r0, [r4, 0x1C] -_080DF17E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF184: .4byte REG_BLDALPHA -_080DF188: .4byte sub_80DF18C - thumb_func_end sub_80DF0B8 - - thumb_func_start sub_80DF18C -sub_80DF18C: @ 80DF18C - push {lr} - ldr r1, _080DF1A0 - movs r2, 0 - strh r2, [r1] - adds r1, 0x2 - strh r2, [r1] - bl move_anim_8072740 - pop {r0} - bx r0 - .align 2, 0 -_080DF1A0: .4byte REG_BLDCNT - thumb_func_end sub_80DF18C - - thumb_func_start sub_80DF1A4 -sub_80DF1A4: @ 80DF1A4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080DF23C - adds r4, r0 - movs r6, 0 - strh r6, [r4, 0x8] - movs r0, 0x10 - mov r8, r0 - mov r2, r8 - strh r2, [r4, 0xA] - ldr r5, _080DF240 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1A] - ldrb r0, [r5] - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - asrs r1, 1 - adds r1, 0x8 - strh r1, [r4, 0x1E] - strh r6, [r4, 0x16] - ldrb r0, [r5] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x12] - ldrb r0, [r5] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x2 - strh r0, [r4, 0x14] - strh r6, [r4, 0xE] - mov r0, r8 - strh r0, [r4, 0x10] - ldr r1, _080DF244 - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - strh r6, [r4, 0x18] - ldr r0, _080DF248 - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DF23C: .4byte gTasks -_080DF240: .4byte gUnknown_0202F7C8 -_080DF244: .4byte REG_BLDCNT -_080DF248: .4byte sub_80DF24C - thumb_func_end sub_80DF1A4 - - thumb_func_start sub_80DF24C -sub_80DF24C: @ 80DF24C - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _080DF270 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bls _080DF266 - b _080DF3CC -_080DF266: - lsls r0, 2 - ldr r1, _080DF274 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DF270: .4byte gTasks -_080DF274: .4byte _080DF278 - .align 2, 0 -_080DF278: - .4byte _080DF290 - .4byte _080DF300 - .4byte _080DF342 - .4byte _080DF356 - .4byte _080DF3AC - .4byte _080DF3BC -_080DF290: - movs r6, 0 -_080DF292: - movs r2, 0x1A - ldrsh r1, [r4, r2] - movs r0, 0x1C - ldrsh r2, [r4, r0] - ldrb r3, [r4, 0x14] - ldr r0, _080DF2F4 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080DF2E6 - ldr r1, _080DF2F8 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r1 - strh r7, [r5, 0x2E] - ldr r0, _080DF2FC - ldrb r0, [r0] - bl battle_side_get_owner - movs r1, 0 - lsls r0, 24 - cmp r0, 0 - bne _080DF2C8 - movs r1, 0x1 -_080DF2C8: - strh r1, [r5, 0x30] - movs r0, 0x2A - muls r0, r6 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r4, 0x1E] - strh r0, [r5, 0x34] - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 1 - strh r0, [r5, 0x38] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] -_080DF2E6: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _080DF292 - b _080DF3B4 - .align 2, 0 -_080DF2F4: .4byte gSpriteTemplate_83DAF80 -_080DF2F8: .4byte gSprites -_080DF2FC: .4byte gUnknown_0202F7C8 -_080DF300: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DF31E - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0xD - bgt _080DF32C - adds r0, r1, 0x1 - strh r0, [r4, 0xE] - b _080DF32C -_080DF31E: - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0x4 - ble _080DF32C - subs r0, r1, 0x1 - strh r0, [r4, 0x10] -_080DF32C: - movs r1, 0xE - ldrsh r0, [r4, r1] - ldrh r3, [r4, 0xE] - ldrh r2, [r4, 0x10] - cmp r0, 0xE - bne _080DF39C - cmp r2, 0x4 - bne _080DF39C - movs r0, 0 - strh r0, [r4, 0xA] - b _080DF396 -_080DF342: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _080DF3CC - movs r0, 0 - strh r0, [r4, 0xA] - b _080DF3B4 -_080DF356: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DF374 - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080DF382 - subs r0, r1, 0x1 - strh r0, [r4, 0xE] - b _080DF382 -_080DF374: - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080DF382 - adds r0, r1, 0x1 - strh r0, [r4, 0x10] -_080DF382: - movs r1, 0xE - ldrsh r0, [r4, r1] - ldrh r3, [r4, 0xE] - ldrh r2, [r4, 0x10] - cmp r0, 0 - bne _080DF39C - cmp r2, 0x10 - bne _080DF39C - movs r0, 0x1 - strh r0, [r4, 0x18] -_080DF396: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080DF39C: - ldr r1, _080DF3A8 - lsls r0, r2, 8 - orrs r0, r3 - strh r0, [r1] - b _080DF3CC - .align 2, 0 -_080DF3A8: .4byte REG_BLDALPHA -_080DF3AC: - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080DF3CC -_080DF3B4: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080DF3CC -_080DF3BC: - ldr r0, _080DF3D4 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r7, 0 - bl move_anim_task_del -_080DF3CC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DF3D4: .4byte REG_BLDCNT - thumb_func_end sub_80DF24C - - thumb_func_start sub_80DF3D8 -sub_80DF3D8: @ 80DF3D8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080DF3EA - ldrh r0, [r4, 0x32] - adds r0, 0x2 - b _080DF3EE -_080DF3EA: - ldrh r0, [r4, 0x32] - subs r0, 0x2 -_080DF3EE: - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x32] - movs r0, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - subs r0, 0x41 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7E - bhi _080DF430 - ldr r2, _080DF42C - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x12] - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - b _080DF444 - .align 2, 0 -_080DF42C: .4byte gTasks -_080DF430: - ldr r2, _080DF498 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x3 - ldrb r1, [r0, 0x12] - ands r1, r2 -_080DF444: - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - movs r1, 0x38 - ldrsh r0, [r4, r1] - lsls r0, 3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - movs r1, 0x7 - bl Sin - strh r0, [r4, 0x26] - ldr r2, _080DF498 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r1, r0, r2 - movs r2, 0x18 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080DF492 - ldrh r0, [r1, 0x16] - subs r0, 0x1 - strh r0, [r1, 0x16] - adds r0, r4, 0 - bl DestroySprite -_080DF492: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF498: .4byte gTasks - thumb_func_end sub_80DF3D8 - - thumb_func_start sub_80DF49C -sub_80DF49C: @ 80DF49C - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r3] - ldr r2, _080DF4E0 - ldr r1, _080DF4E4 - ldrb r1, [r1] - adds r1, r2 - ldrb r1, [r1] - strh r1, [r0, 0x38] - movs r1, 0x80 - strh r1, [r0, 0x2E] - movs r1, 0xA - strh r1, [r0, 0x30] - ldr r2, _080DF4E8 - ldrh r1, [r2] - strh r1, [r0, 0x32] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x34] - ldr r1, _080DF4EC - str r1, [r0, 0x1C] - ldr r2, _080DF4F0 - movs r3, 0x38 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_080DF4E0: .4byte gUnknown_02024BE0 -_080DF4E4: .4byte gUnknown_0202F7C8 -_080DF4E8: .4byte gUnknown_03004B00 -_080DF4EC: .4byte sub_80DF4F4 -_080DF4F0: .4byte gSprites - thumb_func_end sub_80DF49C - - thumb_func_start sub_80DF4F4 -sub_80DF4F4: @ 80DF4F4 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x34] - movs r1, 0x34 - ldrsh r3, [r5, r1] - cmp r3, 0 - beq _080DF55C - subs r0, 0x1 - strh r0, [r5, 0x34] - movs r2, 0x2E - ldrsh r0, [r5, r2] - movs r2, 0x30 - ldrsh r1, [r5, r2] - bl Sin - ldr r4, _080DF554 - movs r1, 0x38 - ldrsh r2, [r5, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x24] - movs r2, 0x2E - ldrsh r0, [r5, r2] - movs r2, 0x30 - ldrsh r1, [r5, r2] - bl Cos - movs r1, 0x38 - ldrsh r2, [r5, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x26] - ldrh r0, [r5, 0x32] - ldrh r2, [r5, 0x2E] - adds r1, r0, r2 - strh r1, [r5, 0x2E] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080DF590 - ldr r2, _080DF558 - adds r0, r1, r2 - strh r0, [r5, 0x2E] - b _080DF590 - .align 2, 0 -_080DF554: .4byte gSprites -_080DF558: .4byte 0xffffff00 -_080DF55C: - ldr r2, _080DF598 - movs r0, 0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x24] - movs r0, 0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] - movs r0, 0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - subs r1, 0x8 - strh r1, [r0, 0x22] - ldr r0, _080DF59C - str r0, [r5, 0x1C] -_080DF590: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DF598: .4byte gSprites -_080DF59C: .4byte move_anim_8074EE0 - thumb_func_end sub_80DF4F4 - - thumb_func_start sub_80DF5A0 -sub_80DF5A0: @ 80DF5A0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080DF5E8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DF5F0 - ldr r2, _080DF5EC - ldrh r0, [r5, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r5, 0x20] - ldrh r0, [r2, 0x6] - negs r0, r0 - strh r0, [r2, 0x6] - ldrh r0, [r2, 0x8] - negs r0, r0 - strh r0, [r2, 0x8] - adds r1, r2, 0 - b _080DF5FA - .align 2, 0 -_080DF5E8: .4byte gUnknown_0202F7C8 -_080DF5EC: .4byte gUnknown_03004B00 -_080DF5F0: - ldr r1, _080DF630 - ldrh r0, [r1] - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] -_080DF5FA: - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x34] - ldrh r0, [r1, 0xA] - strh r0, [r5, 0x38] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080DF634 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080DF638 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DF630: .4byte gUnknown_03004B00 -_080DF634: .4byte move_anim_8074EE0 -_080DF638: .4byte sub_8078504 - thumb_func_end sub_80DF5A0 - - thumb_func_start sub_80DF63C -sub_80DF63C: @ 80DF63C - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_8078650 - ldr r4, _080DF694 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080DF698 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DF6A0 - ldr r2, _080DF69C - ldrh r0, [r5, 0x20] - ldrh r1, [r2, 0x2] - subs r0, r1 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - adds r1, r0 - strh r1, [r5, 0x22] - ldrh r0, [r5, 0x32] - ldrh r1, [r2, 0x4] - subs r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r2, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - b _080DF6CA - .align 2, 0 -_080DF694: .4byte gUnknown_0202F7C9 -_080DF698: .4byte gUnknown_0202F7C8 -_080DF69C: .4byte gUnknown_03004B00 -_080DF6A0: - ldr r1, _080DF6E4 - ldrh r0, [r1] - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldrh r0, [r1, 0x4] - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080DF6CA: - ldr r0, _080DF6E4 - ldrh r0, [r0, 0x8] - strh r0, [r5, 0x2E] - ldr r0, _080DF6E8 - str r0, [r5, 0x1C] - ldr r1, _080DF6EC - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DF6E4: .4byte gUnknown_03004B00 -_080DF6E8: .4byte sub_8078B34 -_080DF6EC: .4byte move_anim_8074EE0 - thumb_func_end sub_80DF63C - - thumb_func_start sub_80DF6F0 -sub_80DF6F0: @ 80DF6F0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080DF704 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DF70C - ldr r4, _080DF708 - b _080DF70E - .align 2, 0 -_080DF704: .4byte gUnknown_03004B00 -_080DF708: .4byte gUnknown_0202F7C8 -_080DF70C: - ldr r4, _080DF750 -_080DF70E: - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080DF754 - movs r0, 0x2 - ldrsh r1, [r4, r0] - adds r0, r5, 0 - bl sub_807867C - ldrh r0, [r4, 0x4] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - ldr r0, _080DF758 - str r0, [r5, 0x1C] - ldr r1, _080DF75C - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DF750: .4byte gUnknown_0202F7C9 -_080DF754: .4byte gUnknown_03004B00 -_080DF758: .4byte sub_8078600 -_080DF75C: .4byte move_anim_8074EE0 - thumb_func_end sub_80DF6F0 - - thumb_func_start sub_80DF760 -sub_80DF760: @ 80DF760 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080DF788 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DF77A - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080DF77A: - adds r0, r4, 0 - bl sub_80DF63C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF788: .4byte gUnknown_0202F7C8 - thumb_func_end sub_80DF760 - - thumb_func_start sub_80DF78C -sub_80DF78C: @ 80DF78C - push {r4-r7,lr} - adds r6, r0, 0 - ldr r4, _080DF7E0 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r6, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x22] - strh r5, [r6, 0x36] - movs r0, 0x1 - strh r0, [r6, 0x38] - ldr r0, _080DF7E4 - ldrh r0, [r0] - strh r0, [r6, 0x3A] - ldr r4, _080DF7E8 - ldrb r0, [r4] - movs r1, 0 - bl sub_807A100 - lsls r7, r0, 16 - lsrs r5, r7, 16 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_807A100 - lsls r1, r0, 16 - lsrs r0, r1, 16 - cmp r5, r0 - bls _080DF7EC - lsrs r0, r7, 17 - b _080DF7EE - .align 2, 0 -_080DF7E0: .4byte gUnknown_0202F7C8 -_080DF7E4: .4byte gUnknown_03004B00 -_080DF7E8: .4byte gUnknown_02024C07 -_080DF7EC: - lsrs r0, r1, 17 -_080DF7EE: - strh r0, [r6, 0x3C] - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r2, 0x3C - ldrsh r1, [r6, r2] - bl Cos - strh r0, [r6, 0x24] - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r2, 0x3C - ldrsh r1, [r6, r2] - bl Sin - strh r0, [r6, 0x26] - ldr r0, _080DF818 - str r0, [r6, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DF818: .4byte sub_80DF81C - thumb_func_end sub_80DF78C - - thumb_func_start sub_80DF81C -sub_80DF81C: @ 80DF81C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r5, [r4, r0] - cmp r5, 0 - beq _080DF82E - cmp r5, 0x1 - beq _080DF89A - b _080DF91E -_080DF82E: - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x38] - subs r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080DF880 - strh r5, [r4, 0x36] - ldrh r1, [r4, 0x38] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080DF880 - adds r0, r1, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080DF880 - movs r0, 0x10 - strh r0, [r4, 0x38] -_080DF880: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080DF91E - movs r0, 0 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080DF91E -_080DF89A: - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x38] - subs r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x95 - bgt _080DF8C2 - adds r0, r1, 0 - adds r0, 0x8 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x95 - ble _080DF8C2 - movs r0, 0x96 - strh r0, [r4, 0x3C] -_080DF8C2: - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080DF90A - movs r0, 0 - strh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080DF90A - adds r0, r1, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080DF90A - movs r0, 0x10 - strh r0, [r4, 0x38] -_080DF90A: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080DF91E - adds r0, r4, 0 - bl move_anim_8072740 -_080DF91E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DF81C - - thumb_func_start sub_80DF924 -sub_80DF924: @ 80DF924 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DF950 - adds r4, r1, r0 - ldr r0, _080DF954 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DF960 - ldr r0, _080DF958 - str r0, [sp] - ldr r0, _080DF95C - b _080DF966 - .align 2, 0 -_080DF950: .4byte gTasks -_080DF954: .4byte gUnknown_0202F7C8 -_080DF958: .4byte REG_BG1HOFS -_080DF95C: .4byte gUnknown_030042C0 -_080DF960: - ldr r0, _080DF9DC - str r0, [sp] - ldr r0, _080DF9E0 -_080DF966: - ldrh r0, [r0] - strh r0, [r4, 0xC] - ldr r0, _080DF9E4 - str r0, [sp, 0x4] - mov r1, sp - movs r5, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r5, [r0, 0x9] - ldr r0, _080DF9E8 - ldrb r0, [r0] - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r4, 0xE] - adds r0, 0x20 - strh r0, [r4, 0x10] - cmp r1, 0 - bge _080DF996 - strh r5, [r4, 0xE] -_080DF996: - ldrh r3, [r4, 0xE] - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bgt _080DF9C4 - ldr r5, _080DF9EC - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 -_080DF9A8: - lsls r1, r3, 1 - adds r2, r1, r5 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r1, r6 - ldrh r0, [r4, 0xC] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - ble _080DF9A8 -_080DF9C4: - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - ldr r0, _080DF9F0 - str r0, [r4] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DF9DC: .4byte REG_BG2HOFS -_080DF9E0: .4byte gUnknown_03004288 -_080DF9E4: .4byte 0xa2600001 -_080DF9E8: .4byte gUnknown_0202F7C8 -_080DF9EC: .4byte gUnknown_03004DE0 -_080DF9F0: .4byte sub_80DF9F4 - thumb_func_end sub_80DF924 - - thumb_func_start sub_80DF9F4 -sub_80DF9F4: @ 80DF9F4 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080DFA18 - adds r2, r0, r1 - movs r1, 0x8 - ldrsh r0, [r2, r1] - cmp r0, 0x4 - bhi _080DFAAA - lsls r0, 2 - ldr r1, _080DFA1C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DFA18: .4byte gTasks -_080DFA1C: .4byte _080DFA20 - .align 2, 0 -_080DFA20: - .4byte _080DFA34 - .4byte _080DFA56 - .4byte _080DFA66 - .4byte _080DFA92 - .4byte _080DFAA4 -_080DFA34: - ldrh r0, [r2, 0x16] - adds r0, 0x1 - strh r0, [r2, 0x16] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080DFA8A - movs r0, 0 - strh r0, [r2, 0x16] - ldrh r0, [r2, 0x14] - adds r0, 0x1 - strh r0, [r2, 0x14] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080DFA8A - b _080DFA84 -_080DFA56: - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080DFA8A - b _080DFA84 -_080DFA66: - ldrh r0, [r2, 0x16] - adds r0, 0x1 - strh r0, [r2, 0x16] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080DFA8A - movs r0, 0 - strh r0, [r2, 0x16] - ldrh r0, [r2, 0x14] - subs r0, 0x1 - strh r0, [r2, 0x14] - lsls r0, 16 - cmp r0, 0 - bne _080DFA8A -_080DFA84: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_080DFA8A: - adds r0, r2, 0 - bl sub_80DFAB0 - b _080DFAAA -_080DFA92: - ldr r1, _080DFAA0 - movs r0, 0x3 - strb r0, [r1, 0x15] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080DFAAA - .align 2, 0 -_080DFAA0: .4byte gUnknown_03004DC0 -_080DFAA4: - adds r0, r3, 0 - bl move_anim_task_del -_080DFAAA: - pop {r0} - bx r0 - thumb_func_end sub_80DF9F4 - - thumb_func_start sub_80DFAB0 -sub_80DFAB0: @ 80DFAB0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - ldrh r3, [r5, 0x12] - ldrh r4, [r5, 0xE] - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r4, r0 - bgt _080DFB06 - ldr r7, _080DFB1C - mov r12, r7 - ldr r0, _080DFB20 - mov r8, r0 - ldr r6, _080DFB24 -_080DFACE: - lsls r2, r4, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r12 - lsls r0, r3, 1 - add r0, r8 - movs r7, 0 - ldrsh r1, [r0, r7] - movs r7, 0x14 - ldrsh r0, [r5, r7] - muls r0, r1 - asrs r0, 7 - ldrh r1, [r5, 0xC] - adds r0, r1 - strh r0, [r2] - adds r3, 0x8 - movs r0, 0xFF - ands r3, r0 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - movs r7, 0x10 - ldrsh r0, [r5, r7] - cmp r4, r0 - ble _080DFACE -_080DFB06: - ldrh r0, [r5, 0x12] - adds r0, 0x9 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x12] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DFB1C: .4byte gUnknown_03004DE0 -_080DFB20: .4byte gSineTable -_080DFB24: .4byte gUnknown_03004DC0 - thumb_func_end sub_80DFAB0 - - thumb_func_start sub_80DFB28 -sub_80DFB28: @ 80DFB28 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - ldr r5, _080DFBC8 - movs r0, 0x4 - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - movs r1, 0x5 - bl __divsi3 - adds r6, r0, 0 - ldr r1, _080DFBCC - mov r8, r1 - ldrb r0, [r1] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - mov r2, r8 - ldrb r0, [r2] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r3, [r5, 0x8] - adds r0, r3 - strh r0, [r4, 0x22] - movs r1, 0x2 - ldrsh r0, [r5, r1] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl Cos - strh r0, [r4, 0x30] - movs r3, 0x2 - ldrsh r0, [r5, r3] - lsls r6, 16 - asrs r6, 16 - adds r1, r6, 0 - bl Sin - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x30] - ldrh r2, [r5] - adds r3, r2, 0 - muls r3, r1 - adds r1, r3, 0 - ldrh r3, [r4, 0x20] - adds r1, r3 - strh r1, [r4, 0x20] - adds r1, r2, 0 - muls r1, r0 - adds r0, r1, 0 - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x34] - ldr r0, _080DFBD0 - str r0, [r4, 0x1C] - adds r4, 0x2E - ldr r2, _080DFBD4 - movs r1, 0x6 -_080DFBB0: - ldrh r0, [r4] - strh r0, [r2] - adds r4, 0x2 - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _080DFBB0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DFBC8: .4byte gUnknown_03004B00 -_080DFBCC: .4byte gUnknown_0202F7C8 -_080DFBD0: .4byte sub_80DFBD8 -_080DFBD4: .4byte gUnknown_03000730 - thumb_func_end sub_80DFB28 - - thumb_func_start sub_80DFBD8 -sub_80DFBD8: @ 80DFBD8 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x36] - adds r0, r1 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x38] - adds r0, r2 - strh r0, [r4, 0x38] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x24] - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x34 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080DFC1C - adds r0, r4, 0 - bl move_anim_8072740 -_080DFC1C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DFBD8 - - thumb_func_start sub_80DFC24 -sub_80DFC24: @ 80DFC24 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080DFC58 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080DFC5C - ldrh r0, [r0] - strh r0, [r1, 0x8] - ldr r0, _080DFC60 - ldrb r0, [r0] - movs r2, 0x10 - strh r2, [r1, 0xA] - ldr r1, _080DFC64 - strh r2, [r1] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DFC70 - ldr r1, _080DFC68 - ldr r2, _080DFC6C - b _080DFC74 - .align 2, 0 -_080DFC58: .4byte gTasks -_080DFC5C: .4byte gUnknown_03004B00 -_080DFC60: .4byte gUnknown_0202F7C8 -_080DFC64: .4byte REG_BLDALPHA -_080DFC68: .4byte REG_BLDCNT -_080DFC6C: .4byte 0x00003f42 -_080DFC70: - ldr r1, _080DFC8C - ldr r2, _080DFC90 -_080DFC74: - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080DFC94 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080DFC98 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DFC8C: .4byte REG_BLDCNT -_080DFC90: .4byte 0x00003f44 -_080DFC94: .4byte gTasks -_080DFC98: .4byte sub_80DFC9C - thumb_func_end sub_80DFC24 - - thumb_func_start sub_80DFC9C -sub_80DFC9C: @ 80DFC9C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080DFD04 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0xA] - lsrs r2, r0, 8 - lsls r0, 24 - lsrs r1, r0, 24 - movs r3, 0xC - ldrsh r0, [r4, r3] - ldrb r3, [r4, 0x8] - cmp r0, r3 - bne _080DFD18 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r2, 8 - orrs r1, r0 - movs r3, 0 - strh r1, [r4, 0xA] - ldr r0, _080DFD08 - strh r1, [r0] - strh r3, [r4, 0xC] - cmp r2, 0x10 - bne _080DFD1E - ldr r2, _080DFD0C - ldr r1, _080DFD10 - ldr r0, _080DFD14 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, 0 - bl move_anim_task_del - b _080DFD1E - .align 2, 0 -_080DFD04: .4byte gTasks -_080DFD08: .4byte REG_BLDALPHA -_080DFD0C: .4byte gSprites -_080DFD10: .4byte gUnknown_02024BE0 -_080DFD14: .4byte gUnknown_0202F7C8 -_080DFD18: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] -_080DFD1E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DFC9C - - thumb_func_start sub_80DFD24 -sub_80DFD24: @ 80DFD24 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DFD48 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080DFD4C - ldrh r0, [r0] - strh r0, [r1, 0x8] - movs r2, 0x80 - lsls r2, 5 - strh r2, [r1, 0xA] - ldr r0, _080DFD50 - str r0, [r1] - ldr r0, _080DFD54 - strh r2, [r0] - bx lr - .align 2, 0 -_080DFD48: .4byte gTasks -_080DFD4C: .4byte gUnknown_03004B00 -_080DFD50: .4byte sub_80DFD58 -_080DFD54: .4byte REG_BLDALPHA - thumb_func_end sub_80DFD24 - - thumb_func_start sub_80DFD58 -sub_80DFD58: @ 80DFD58 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080DFDA8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0xA] - lsrs r1, r0, 8 - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0xC - ldrsh r0, [r2, r3] - ldrb r3, [r2, 0x8] - cmp r0, r3 - bne _080DFDB4 - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r3, 8 - orrs r1, r0 - movs r0, 0 - strh r1, [r2, 0xA] - ldr r5, _080DFDAC - strh r1, [r5] - strh r0, [r2, 0xC] - cmp r3, 0 - bne _080DFDBA - ldr r0, _080DFDB0 - strh r3, [r0] - strh r3, [r5] - adds r0, r4, 0 - bl move_anim_task_del - b _080DFDBA - .align 2, 0 -_080DFDA8: .4byte gTasks -_080DFDAC: .4byte REG_BLDALPHA -_080DFDB0: .4byte REG_BLDCNT -_080DFDB4: - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] -_080DFDBA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DFD58 - - thumb_func_start sub_80DFDC0 -sub_80DFDC0: @ 80DFDC0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080DFDE8 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080DFDEC - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DFDF8 - ldr r1, _080DFDF0 - ldr r2, _080DFDF4 - b _080DFDFC - .align 2, 0 -_080DFDE8: .4byte REG_BLDALPHA -_080DFDEC: .4byte gUnknown_0202F7C8 -_080DFDF0: .4byte REG_BLDCNT -_080DFDF4: .4byte 0x00003f42 -_080DFDF8: - ldr r1, _080DFE0C - ldr r2, _080DFE10 -_080DFDFC: - adds r0, r2, 0 - strh r0, [r1] - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DFE0C: .4byte REG_BLDCNT -_080DFE10: .4byte 0x00003f44 - thumb_func_end sub_80DFDC0 - - thumb_func_start sub_80DFE14 -sub_80DFE14: @ 80DFE14 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080DFE80 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x30] - ldr r5, _080DFE84 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - movs r0, 0x7E - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_8078A5C - ldrh r0, [r4, 0x30] - negs r0, r0 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x32] - negs r0, r0 - strh r0, [r4, 0x36] - ldr r0, _080DFE88 - strh r0, [r4, 0x3A] - ldr r1, _080DFE8C - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DFE80: .4byte gUnknown_0202F7C9 -_080DFE84: .4byte gUnknown_0202F7C8 -_080DFE88: .4byte 0x0000ffd8 -_080DFE8C: .4byte sub_80DFE90 - thumb_func_end sub_80DFE14 - - thumb_func_start sub_80DFE90 -sub_80DFE90: @ 80DFE90 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r5, [r4, 0x30] - ldrh r0, [r4, 0x34] - adds r2, r5, r0 - strh r2, [r4, 0x34] - ldrh r3, [r4, 0x32] - ldrh r6, [r4, 0x36] - adds r1, r3, r6 - strh r1, [r4, 0x36] - lsls r0, r2, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - lsls r0, r1, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - movs r6, 0x3C - ldrsh r0, [r4, r6] - cmp r0, 0 - bne _080DFED2 - adds r0, r2, r5 - strh r0, [r4, 0x34] - adds r1, r3 - strh r1, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - lsls r1, 16 - asrs r1, 24 - strh r1, [r4, 0x26] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] -_080DFED2: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Sin - ldrh r6, [r4, 0x26] - adds r0, r6 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - cmp r0, 0x7F - ble _080DFF02 - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3A] - adds r0, 0x14 - strh r0, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] -_080DFF02: - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080DFF14 - adds r0, r4, 0 - bl move_anim_8072740 -_080DFF14: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80DFE90 - - thumb_func_start sub_80DFF1C -sub_80DFF1C: @ 80DFF1C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080DFF50 - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrb r1, [r5, 0x4] - adds r0, r4, 0 - bl StartSpriteAffineAnim - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x32] - ldr r0, _080DFF54 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DFF50: .4byte gUnknown_03004B00 -_080DFF54: .4byte sub_80DFF58 - thumb_func_end sub_80DFF1C - - thumb_func_start sub_80DFF58 -sub_80DFF58: @ 80DFF58 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x36] - adds r0, r1 - strh r0, [r2, 0x36] - ldrh r1, [r2, 0x30] - ldrh r3, [r2, 0x38] - adds r1, r3 - strh r1, [r2, 0x38] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x24] - lsls r1, 16 - asrs r1, 24 - strh r1, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - bne _080DFF8E - ldr r0, _080DFF94 - str r0, [r2, 0x1C] -_080DFF8E: - pop {r0} - bx r0 - .align 2, 0 -_080DFF94: .4byte sub_80DFF98 - thumb_func_end sub_80DFF58 - - thumb_func_start sub_80DFF98 -sub_80DFF98: @ 80DFF98 - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x36] - ldrh r0, [r3, 0x2E] - subs r1, r0 - strh r1, [r3, 0x36] - ldrh r0, [r3, 0x38] - ldrh r2, [r3, 0x30] - subs r0, r2 - strh r0, [r3, 0x38] - lsls r1, 16 - asrs r1, 24 - strh r1, [r3, 0x24] - lsls r0, 16 - asrs r0, 24 - strh r0, [r3, 0x26] - ldrh r0, [r3, 0x34] - subs r0, 0x1 - strh r0, [r3, 0x34] - lsls r0, 16 - cmp r0, 0 - bne _080DFFCA - adds r0, r3, 0 - bl move_anim_8074EE0 -_080DFFCA: - pop {r0} - bx r0 - thumb_func_end sub_80DFF98 - - thumb_func_start sub_80DFFD0 -sub_80DFFD0: @ 80DFFD0 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, _080DFFE4 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r3, r0, 0 - cmp r1, 0 - bne _080DFFEC - ldr r0, _080DFFE8 - b _080DFFEE - .align 2, 0 -_080DFFE4: .4byte gUnknown_03004B00 -_080DFFE8: .4byte gUnknown_0202F7C8 -_080DFFEC: - ldr r0, _080E001C -_080DFFEE: - ldrb r5, [r0] - movs r6, 0x14 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x4 - ldr r7, _080E0020 - adds r0, r7, 0 - ands r1, r0 - ldr r0, _080E0024 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - movs r1, 0x2 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _080E004C - cmp r0, 0x1 - bgt _080E0028 - cmp r0, 0 - beq _080E0032 - b _080E00A0 - .align 2, 0 -_080E001C: .4byte gUnknown_0202F7C9 -_080E0020: .4byte 0x000003ff -_080E0024: .4byte 0xfffffc00 -_080E0028: - cmp r0, 0x2 - beq _080E0066 - cmp r0, 0x3 - beq _080E007E - b _080E00A0 -_080E0032: - adds r0, r5, 0 - movs r1, 0x5 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r4, 0x22] - b _080E00A0 -_080E004C: - adds r0, r5, 0 - movs r1, 0x5 - bl sub_807A100 - subs r0, 0xE - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x10 - strh r0, [r4, 0x22] - b _080E00A0 -_080E0066: - adds r0, r5, 0 - movs r1, 0x4 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - b _080E0094 -_080E007E: - adds r0, r5, 0 - movs r1, 0x4 - bl sub_807A100 - adds r0, 0xE - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x10 -_080E0094: - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r6, 0xEC -_080E00A0: - movs r0, 0x20 - strh r0, [r4, 0x2E] - lsls r0, r6, 24 - asrs r0, 24 - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - adds r0, 0xC - strh r0, [r4, 0x36] - ldr r0, _080E00C8 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldr r0, _080E00CC - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E00C8: .4byte 0x0000fff4 -_080E00CC: .4byte sub_80E00D0 - thumb_func_end sub_80DFFD0 - - thumb_func_start sub_80E00D0 -sub_80E00D0: @ 80E00D0 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080E00E4 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080E00E4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E00D0 - - thumb_func_start sub_80E00EC -sub_80E00EC: @ 80E00EC - push {r4-r7,lr} - sub sp, 0x18 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080E0150 - adds r5, r1, r0 - ldr r4, _080E0154 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1F - movs r6, 0 - strh r0, [r5, 0x16] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - subs r0, 0x7 - strh r0, [r5, 0x14] - ldrh r1, [r5, 0x16] - strh r1, [r5, 0x12] - strh r0, [r5, 0x10] - subs r1, r0 - lsls r1, 8 - strh r1, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r5, 0x24] - adds r0, 0x20 - strh r0, [r5, 0x26] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080E015C - ldr r0, _080E0158 - b _080E015E - .align 2, 0 -_080E0150: .4byte gTasks -_080E0154: .4byte gUnknown_0202F7C8 -_080E0158: .4byte 0x0000fff4 -_080E015C: - ldr r0, _080E01A8 -_080E015E: - strh r0, [r5, 0x18] - ldr r0, _080E01AC - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - cmp r0, 0x1 - bne _080E01C4 - add r4, sp, 0xC - adds r0, r4, 0 - bl sub_8078914 - ldr r0, _080E01B0 - ldrh r0, [r0] - strh r0, [r5, 0x1C] - ldr r1, _080E01B4 - ldr r2, _080E01B8 - adds r0, r2, 0 - strh r0, [r1] - ldrb r1, [r4, 0x8] - lsls r1, 4 - movs r0, 0 - movs r2, 0x20 - bl FillPalette - ldr r0, _080E01BC - str r0, [sp] - movs r7, 0x2 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E01F4 - ldr r1, _080E01C0 - b _080E01EE - .align 2, 0 -_080E01A8: .4byte 0x0000ffc0 -_080E01AC: .4byte gUnknown_0202F7C8 -_080E01B0: .4byte gUnknown_030041B4 -_080E01B4: .4byte REG_BLDCNT -_080E01B8: .4byte 0x00003f42 -_080E01BC: .4byte REG_BG1VOFS -_080E01C0: .4byte gUnknown_03004288 -_080E01C4: - ldr r0, _080E0278 - ldrh r0, [r0] - strh r0, [r5, 0x1C] - ldr r1, _080E027C - ldr r2, _080E0280 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0x90 - movs r2, 0x20 - bl FillPalette - ldr r0, _080E0284 - str r0, [sp] - movs r7, 0x4 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E01F4 - ldr r1, _080E0288 -_080E01EE: - ldrh r0, [r1] - adds r0, 0xF0 - strh r0, [r1] -_080E01F4: - ldr r0, _080E028C - str r0, [sp, 0x4] - mov r2, sp - movs r1, 0 - movs r0, 0x1 - strb r0, [r2, 0x8] - mov r0, sp - strb r1, [r0, 0x9] - strh r1, [r5, 0x1E] - movs r0, 0x10 - strh r0, [r5, 0x20] - strh r1, [r5, 0x8] - strh r1, [r5, 0xA] - strh r1, [r5, 0xC] - movs r0, 0x3 - bl sub_80E08CC - movs r3, 0 - ldr r4, _080E0290 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r4, r0 -_080E0220: - lsls r1, r3, 1 - adds r2, r1, r4 - ldrh r0, [r5, 0x1C] - strh r0, [r2] - adds r1, r6 - ldrh r0, [r5, 0x1C] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x6F - bls _080E0220 - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - ldr r1, _080E0294 - movs r0, 0x3F - eors r7, r0 - movs r2, 0xFC - lsls r2, 6 - adds r0, r2, 0 - orrs r7, r0 - strh r7, [r1] - subs r1, 0x2 - adds r2, 0x3F - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080E0298 - ldrh r0, [r5, 0x24] - lsls r0, 8 - ldrh r1, [r5, 0x26] - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E029C - movs r0, 0xA0 - strh r0, [r1] - ldr r0, _080E02A0 - str r0, [r5] - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0278: .4byte gUnknown_03004280 -_080E027C: .4byte REG_BLDCNT -_080E0280: .4byte 0x00003f44 -_080E0284: .4byte REG_BG2VOFS -_080E0288: .4byte gUnknown_030042C0 -_080E028C: .4byte 0xa2600001 -_080E0290: .4byte gUnknown_03004DE0 -_080E0294: .4byte REG_WINOUT -_080E0298: .4byte gUnknown_030042C4 -_080E029C: .4byte gUnknown_03004240 -_080E02A0: .4byte sub_80E02A4 - thumb_func_end sub_80E00EC - - thumb_func_start sub_80E02A4 -sub_80E02A4: @ 80E02A4 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E02C8 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080E02BE - b _080E03B6 -_080E02BE: - lsls r0, 2 - ldr r1, _080E02CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E02C8: .4byte gTasks -_080E02CC: .4byte _080E02D0 - .align 2, 0 -_080E02D0: - .4byte _080E02E4 - .4byte _080E0344 - .4byte _080E035E - .4byte _080E039C - .4byte _080E03B0 -_080E02E4: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E03B6 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E0314 - ldrh r1, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - cmp r0, 0xC - beq _080E0322 - adds r0, r1, 0x1 - strh r0, [r4, 0x1E] - b _080E0322 -_080E0314: - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - beq _080E0322 - subs r0, r1, 0x1 - strh r0, [r4, 0x20] -_080E0322: - ldr r2, _080E0340 - ldrh r0, [r4, 0x20] - lsls r0, 8 - ldrh r1, [r4, 0x1E] - orrs r0, r1 - strh r0, [r2] - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0xC - bne _080E03B6 - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - bne _080E03B6 - b _080E03A2 - .align 2, 0 -_080E0340: .4byte REG_BLDALPHA -_080E0344: - ldrh r0, [r4, 0x10] - subs r0, 0x8 - strh r0, [r4, 0x10] - adds r0, r4, 0 - bl sub_80E079C - movs r0, 0x10 - ldrsh r1, [r4, r0] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r1, r0 - bge _080E03B6 - b _080E03A2 -_080E035E: - ldrh r0, [r4, 0x10] - subs r0, 0x8 - strh r0, [r4, 0x10] - adds r0, r4, 0 - bl sub_80E079C - ldrh r1, [r4, 0x24] - adds r1, 0x4 - strh r1, [r4, 0x24] - ldrh r0, [r4, 0x26] - subs r2, r0, 0x4 - strh r2, [r4, 0x26] - lsls r1, 16 - lsls r0, r2, 16 - cmp r1, r0 - blt _080E0380 - strh r2, [r4, 0x24] -_080E0380: - ldr r3, _080E0398 - ldrh r2, [r4, 0x24] - lsls r0, r2, 8 - ldrh r1, [r4, 0x26] - orrs r0, r1 - strh r0, [r3] - lsls r2, 16 - lsls r1, 16 - cmp r2, r1 - bne _080E03B6 - b _080E03A2 - .align 2, 0 -_080E0398: .4byte gUnknown_030042C4 -_080E039C: - ldr r1, _080E03AC - movs r0, 0x3 - strb r0, [r1, 0x15] -_080E03A2: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E03B6 - .align 2, 0 -_080E03AC: .4byte gUnknown_03004DC0 -_080E03B0: - adds r0, r2, 0 - bl move_anim_task_del -_080E03B6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E02A4 - - thumb_func_start sub_80E03BC -sub_80E03BC: @ 80E03BC - push {r4-r7,lr} - sub sp, 0x18 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080E03E4 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bls _080E03D8 - b _080E05F2 -_080E03D8: - lsls r0, 2 - ldr r1, _080E03E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E03E4: .4byte gTasks -_080E03E8: .4byte _080E03EC - .align 2, 0 -_080E03EC: - .4byte _080E0400 - .4byte _080E048C - .4byte _080E04D0 - .4byte _080E053C - .4byte _080E05A4 -_080E0400: - bl sub_8076BE0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E043C - ldr r0, _080E042C - movs r1, 0 - strh r1, [r0] - ldr r0, _080E0430 - strh r1, [r0] - ldr r0, _080E0434 - ldr r2, _080E0438 - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r4, 0 - bl move_anim_task_del - b _080E05F2 - .align 2, 0 -_080E042C: .4byte gUnknown_030042C4 -_080E0430: .4byte gUnknown_03004240 -_080E0434: .4byte REG_WININ -_080E0438: .4byte 0x00003f3f -_080E043C: - ldr r0, _080E045C - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - cmp r0, 0x1 - bne _080E046C - ldr r1, _080E0460 - ldr r2, _080E0464 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E0468 - b _080E0476 - .align 2, 0 -_080E045C: .4byte gUnknown_0202F7C9 -_080E0460: .4byte REG_BLDCNT -_080E0464: .4byte 0x00003f42 -_080E0468: .4byte gUnknown_03004288 -_080E046C: - ldr r1, _080E0480 - ldr r2, _080E0484 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E0488 -_080E0476: - ldrh r0, [r1] - adds r0, 0xF0 - strh r0, [r1] - b _080E0590 - .align 2, 0 -_080E0480: .4byte REG_BLDCNT -_080E0484: .4byte 0x00003f44 -_080E0488: .4byte gUnknown_030042C0 -_080E048C: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080E04B4 - mov r0, sp - bl sub_8078914 - ldr r0, _080E04B0 - ldrh r0, [r0] - strh r0, [r5, 0x1C] - mov r0, sp - ldrb r1, [r0, 0x8] - lsls r1, 4 - movs r0, 0 - movs r2, 0x20 - bl FillPalette - b _080E04C4 - .align 2, 0 -_080E04B0: .4byte gUnknown_030041B4 -_080E04B4: - ldr r0, _080E04CC - ldrh r0, [r0] - strh r0, [r5, 0x1C] - movs r0, 0 - movs r1, 0x90 - movs r2, 0x20 - bl FillPalette -_080E04C4: - movs r0, 0x3 - bl sub_80E08CC - b _080E0590 - .align 2, 0 -_080E04CC: .4byte gUnknown_03004280 -_080E04D0: - ldr r4, _080E051C - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1F - movs r6, 0 - strh r0, [r5, 0x16] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - subs r0, 0x7 - strh r0, [r5, 0x14] - ldrh r1, [r5, 0x16] - subs r1, r0 - lsls r1, 8 - strh r1, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - subs r1, r0, 0x4 - strh r1, [r5, 0x24] - adds r0, 0x4 - strh r0, [r5, 0x26] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080E0524 - ldr r0, _080E0520 - b _080E0526 - .align 2, 0 -_080E051C: .4byte gUnknown_0202F7C9 -_080E0520: .4byte 0x0000fff4 -_080E0524: - ldr r0, _080E0538 -_080E0526: - strh r0, [r5, 0x18] - ldrh r0, [r5, 0x18] - strh r0, [r5, 0x10] - strh r0, [r5, 0x12] - movs r0, 0xC - strh r0, [r5, 0x1E] - movs r0, 0x8 - strh r0, [r5, 0x20] - b _080E0590 - .align 2, 0 -_080E0538: .4byte 0x0000ffc0 -_080E053C: - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r0, 0x1 - bne _080E054C - ldr r0, _080E0548 - b _080E054E - .align 2, 0 -_080E0548: .4byte REG_BG1VOFS -_080E054C: - ldr r0, _080E0598 -_080E054E: - str r0, [sp, 0xC] - movs r3, 0 - add r4, sp, 0xC - ldr r6, _080E059C - movs r0, 0xF0 - lsls r0, 3 - adds r7, r6, r0 -_080E055C: - lsls r1, r3, 1 - adds r2, r1, r6 - ldrh r0, [r5, 0x1C] - adds r0, 0x9F - subs r0, r3 - strh r0, [r2] - adds r1, r7 - ldrh r0, [r5, 0x1C] - adds r0, 0x9F - subs r0, r3 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x6F - bls _080E055C - ldr r1, _080E05A0 - str r1, [r4, 0x4] - movs r2, 0 - movs r0, 0x1 - strb r0, [r4, 0x8] - strb r2, [r4, 0x9] - ldr r0, [sp, 0xC] - ldr r2, [r4, 0x8] - bl sub_80895F8 -_080E0590: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080E05F2 - .align 2, 0 -_080E0598: .4byte REG_BG2VOFS -_080E059C: .4byte gUnknown_03004DE0 -_080E05A0: .4byte 0xa2600001 -_080E05A4: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080E05BC - ldr r1, _080E05B4 - ldr r2, _080E05B8 - b _080E05C0 - .align 2, 0 -_080E05B4: .4byte REG_WINOUT -_080E05B8: .4byte 0x00003f3d -_080E05BC: - ldr r1, _080E05FC - ldr r2, _080E0600 -_080E05C0: - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E0604 - ldr r2, _080E0608 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080E060C - ldrh r0, [r5, 0x24] - lsls r0, 8 - ldrh r1, [r5, 0x26] - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E0610 - movs r0, 0xA0 - strh r0, [r1] - movs r0, 0 - strh r0, [r5, 0x8] - strh r0, [r5, 0xA] - strh r0, [r5, 0xC] - ldr r1, _080E0614 - ldr r2, _080E0618 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080E061C - str r0, [r5] -_080E05F2: - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E05FC: .4byte REG_WINOUT -_080E0600: .4byte 0x00003f3b -_080E0604: .4byte REG_WININ -_080E0608: .4byte 0x00003f3f -_080E060C: .4byte gUnknown_030042C4 -_080E0610: .4byte gUnknown_03004240 -_080E0614: .4byte REG_BLDALPHA -_080E0618: .4byte 0x0000080c -_080E061C: .4byte sub_80E0620 - thumb_func_end sub_80E03BC - - thumb_func_start sub_80E0620 -sub_80E0620: @ 80E0620 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E0644 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080E063A - b _080E0784 -_080E063A: - lsls r0, 2 - ldr r1, _080E0648 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E0644: .4byte gTasks -_080E0648: .4byte _080E064C - .align 2, 0 -_080E064C: - .4byte _080E0660 - .4byte _080E068C - .4byte _080E06F4 - .4byte _080E0754 - .4byte _080E0768 -_080E0660: - ldrh r0, [r4, 0x12] - adds r0, 0x8 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r4, 0x16] - movs r3, 0x16 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _080E0676 - strh r2, [r4, 0x12] -_080E0676: - adds r0, r4, 0 - bl sub_80E079C - movs r0, 0x12 - ldrsh r1, [r4, r0] - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _080E068A - b _080E0784 -_080E068A: - b _080E075A -_080E068C: - movs r3, 0x26 - ldrsh r0, [r4, r3] - movs r2, 0x24 - ldrsh r1, [r4, r2] - subs r0, r1 - cmp r0, 0x3F - bgt _080E06A8 - ldrh r0, [r4, 0x24] - subs r0, 0x4 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x26] - adds r0, 0x4 - strh r0, [r4, 0x26] - b _080E06AC -_080E06A8: - movs r0, 0x1 - strh r0, [r4, 0xA] -_080E06AC: - ldr r2, _080E06F0 - ldrh r0, [r4, 0x24] - lsls r0, 8 - ldrh r1, [r4, 0x26] - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r4, 0x10] - adds r0, 0x8 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r4, 0x14] - movs r3, 0x14 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _080E06CE - strh r2, [r4, 0x10] -_080E06CE: - adds r0, r4, 0 - bl sub_80E079C - movs r0, 0x10 - ldrsh r1, [r4, r0] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080E0784 - movs r3, 0xA - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080E0784 - movs r0, 0 - strh r0, [r4, 0xA] - b _080E075A - .align 2, 0 -_080E06F0: .4byte gUnknown_030042C4 -_080E06F4: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E0784 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E0724 - ldrh r1, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080E0732 - subs r0, r1, 0x1 - strh r0, [r4, 0x1E] - b _080E0732 -_080E0724: - ldrh r1, [r4, 0x20] - movs r3, 0x20 - ldrsh r0, [r4, r3] - cmp r0, 0xF - bgt _080E0732 - adds r0, r1, 0x1 - strh r0, [r4, 0x20] -_080E0732: - ldr r2, _080E0750 - ldrh r0, [r4, 0x20] - lsls r0, 8 - ldrh r1, [r4, 0x1E] - orrs r0, r1 - strh r0, [r2] - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E0784 - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x10 - bne _080E0784 - b _080E075A - .align 2, 0 -_080E0750: .4byte REG_BLDALPHA -_080E0754: - ldr r1, _080E0764 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080E075A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E0784 - .align 2, 0 -_080E0764: .4byte gUnknown_03004DC0 -_080E0768: - ldr r0, _080E078C - movs r1, 0 - strh r1, [r0] - ldr r0, _080E0790 - strh r1, [r0] - ldr r0, _080E0794 - ldr r3, _080E0798 - adds r1, r3, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r2, 0 - bl move_anim_task_del -_080E0784: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E078C: .4byte gUnknown_030042C4 -_080E0790: .4byte gUnknown_03004240 -_080E0794: .4byte REG_WININ -_080E0798: .4byte 0x00003f3f - thumb_func_end sub_80E0620 - - thumb_func_start sub_80E079C -sub_80E079C: @ 80E079C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldrh r0, [r6, 0x12] - ldrh r4, [r6, 0x10] - subs r0, r4 - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - beq _080E0890 - movs r2, 0x22 - ldrsh r0, [r6, r2] - bl __divsi3 - mov r8, r0 - movs r3, 0x14 - ldrsh r0, [r6, r3] - lsls r5, r0, 8 - lsls r0, r4, 16 - movs r4, 0 - cmp r0, 0 - ble _080E07FC - ldr r0, _080E0888 - mov r12, r0 - ldr r7, _080E088C -_080E07D0: - lsls r2, r4, 16 - asrs r2, 16 - lsls r3, r2, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r3, r0 - add r3, r12 - adds r1, r2, 0 - subs r1, 0x9F - ldrh r0, [r6, 0x1C] - subs r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - lsrs r4, r2, 16 - asrs r2, 16 - movs r1, 0x10 - ldrsh r0, [r6, r1] - cmp r2, r0 - blt _080E07D0 -_080E07FC: - ldrh r4, [r6, 0x10] - lsls r3, r4, 16 - asrs r1, r3, 16 - movs r2, 0x12 - ldrsh r0, [r6, r2] - cmp r1, r0 - bgt _080E0846 - ldr r0, _080E0888 - mov r12, r0 - ldr r7, _080E088C -_080E0810: - asrs r4, r3, 16 - cmp r4, 0 - blt _080E0832 - asrs r1, r5, 8 - subs r1, r4 - lsls r3, r4, 1 - ldrb r2, [r7, 0x14] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 7 - adds r3, r0 - add r3, r12 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r6, 0x1C] - adds r1, r2 - strh r1, [r3] -_080E0832: - add r5, r8 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r3, r4, 16 - asrs r1, r3, 16 - movs r2, 0x12 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _080E0810 -_080E0846: - movs r3, 0x1C - ldrsh r0, [r6, r3] - adds r0, 0x9F - lsls r2, r4, 16 - asrs r1, r2, 16 - subs r5, r0, r1 - movs r3, 0x16 - ldrsh r0, [r6, r3] - cmp r1, r0 - bge _080E08BE - ldr r7, _080E0888 - ldr r4, _080E088C -_080E085E: - asrs r3, r2, 16 - cmp r3, 0 - blt _080E0876 - lsls r2, r3, 1 - ldrb r1, [r4, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - strh r5, [r2] - subs r5, 0x1 -_080E0876: - adds r0, r3, 0x1 - lsls r2, r0, 16 - asrs r1, r2, 16 - movs r3, 0x16 - ldrsh r0, [r6, r3] - cmp r1, r0 - blt _080E085E - b _080E08BE - .align 2, 0 -_080E0888: .4byte gUnknown_03004DE0 -_080E088C: .4byte gUnknown_03004DC0 -_080E0890: - movs r1, 0x1C - ldrsh r0, [r6, r1] - adds r5, r0, 0 - adds r5, 0x9F - movs r4, 0 - ldr r3, _080E08C8 - movs r2, 0xF0 - lsls r2, 3 - adds r6, r3, r2 -_080E08A2: - lsls r0, r4, 16 - asrs r0, 16 - lsls r2, r0, 1 - adds r1, r2, r3 - strh r5, [r1] - adds r2, r6 - strh r5, [r2] - subs r5, 0x1 - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x6F - ble _080E08A2 -_080E08BE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E08C8: .4byte gUnknown_03004DE0 - thumb_func_end sub_80E079C - - thumb_func_start sub_80E08CC -sub_80E08CC: @ 80E08CC - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - ldr r7, _080E0914 - movs r1, 0x3 - ands r0, r1 - lsls r5, r0, 2 - movs r0, 0xD - negs r0, r0 - adds r6, r0, 0 -_080E08E2: - lsls r0, r4, 24 - lsrs r0, 24 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080E0902 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r0, [r1, 0x5] - ands r0, r6 - orrs r0, r5 - strb r0, [r1, 0x5] -_080E0902: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080E08E2 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0914: .4byte gSprites - thumb_func_end sub_80E08CC - - thumb_func_start sub_80E0918 -sub_80E0918: @ 80E0918 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r6, _080E09B8 - ldrb r0, [r6] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r4, r1, 31 - ldrb r0, [r6] - adds r1, r4, 0 - bl sub_8076034 - ldr r0, _080E09BC - mov r9, r0 - ldr r0, _080E09C0 - mov r8, r0 - ldrb r0, [r6] - add r0, r8 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - adds r1, 0x3E - ldrb r2, [r1] - movs r7, 0x5 - negs r7, r7 - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r6] - movs r5, 0x2 - eors r0, r5 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080E09A2 - ldrb r0, [r6] - eors r0, r5 - movs r1, 0x1 - eors r4, r1 - adds r1, r4, 0 - bl sub_8076034 - ldrb r0, [r6] - eors r0, r5 - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r7, 0 - ands r1, r2 - strb r1, [r0] -_080E09A2: - mov r0, r10 - bl move_anim_task_del - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E09B8: .4byte gUnknown_0202F7C8 -_080E09BC: .4byte gSprites -_080E09C0: .4byte gUnknown_02024BE0 - thumb_func_end sub_80E0918 - - thumb_func_start sub_80E09C4 -sub_80E09C4: @ 80E09C4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _080E0A0C - ldrb r0, [r4] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r5, r1, 31 - adds r0, r5, 0 - bl sub_8076464 - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080E0A00 - movs r0, 0x1 - eors r5, r0 - adds r0, r5, 0 - bl sub_8076464 -_080E0A00: - adds r0, r6, 0 - bl move_anim_task_del - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E0A0C: .4byte gUnknown_0202F7C8 - thumb_func_end sub_80E09C4 - - thumb_func_start sub_80E0A10 -sub_80E0A10: @ 80E0A10 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080E0A40 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrb r1, [r1, 0x4] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080E0A44 - str r0, [r4, 0x1C] - ldr r1, _080E0A48 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E0A40: .4byte gUnknown_03004B00 -_080E0A44: .4byte sub_8078600 -_080E0A48: .4byte move_anim_8072740 - thumb_func_end sub_80E0A10 - - thumb_func_start sub_80E0A4C -sub_80E0A4C: @ 80E0A4C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r7, 0 - ldr r0, _080E0B50 - strh r7, [r0] - ldr r0, _080E0B54 - strh r7, [r0] - ldr r1, _080E0B58 - ldr r2, _080E0B5C - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080E0B60 - adds r0, r3, 0 - strh r0, [r1] - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E0B64 - ldr r2, _080E0B68 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080E0B6C - adds r0, r3, 0 - strh r0, [r1] - ldr r5, _080E0B70 - ldrb r1, [r5] - movs r0, 0x4 - negs r0, r0 - mov r8, r0 - ands r0, r1 - strb r0, [r5] - ldrb r1, [r5, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r5, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E0AC4 - ldrb r0, [r5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r5] -_080E0AC4: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080E0B40 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E0B40 - ldr r4, _080E0B74 - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080E0AF4 - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - bne _080E0B40 -_080E0AF4: - ldrb r0, [r4] - movs r6, 0x2 - eors r0, r6 - bl b_side_obj__get_some_boolean - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E0B40 - ldr r3, _080E0B78 - ldr r1, _080E0B7C - ldrb r0, [r4] - eors r0, r6 - adds r0, r1 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldrb r1, [r5] - mov r0, r8 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r5] - movs r7, 0x1 -_080E0B40: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E0B84 - ldr r0, _080E0B80 - ldrh r5, [r0] - b _080E0BCC - .align 2, 0 -_080E0B50: .4byte gUnknown_030042C4 -_080E0B54: .4byte gUnknown_03004240 -_080E0B58: .4byte REG_WININ -_080E0B5C: .4byte 0x00003f3f -_080E0B60: .4byte 0x00003f3d -_080E0B64: .4byte REG_BLDCNT -_080E0B68: .4byte 0x00003f42 -_080E0B6C: .4byte 0x00000c08 -_080E0B70: .4byte REG_BG1CNT -_080E0B74: .4byte gUnknown_0202F7C8 -_080E0B78: .4byte gSprites -_080E0B7C: .4byte gUnknown_02024BE0 -_080E0B80: .4byte 0x02019348 -_080E0B84: - ldr r4, _080E0BA4 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080E0BB0 - ldr r1, _080E0BA8 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E0BAC - b _080E0BC0 - .align 2, 0 -_080E0BA4: .4byte gUnknown_0202F7C8 -_080E0BA8: .4byte gUnknown_02024A6A -_080E0BAC: .4byte gEnemyParty -_080E0BB0: - ldr r1, _080E0C58 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E0C5C -_080E0BC0: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 -_080E0BCC: - movs r0, 0 - bl obj_id_for_side_relative_to_move - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080E0C60 - ldrb r0, [r0] - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_807A4A0 - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r2, _080E0C64 - add r0, sp, 0xC - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _080E0C68 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _080E0C6C - bl LZDecompressVram - ldr r0, _080E0C70 - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _080E0C74 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r2, _080E0C78 - ldr r0, _080E0C7C - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x20] - negs r0, r0 - adds r0, 0x60 - strh r0, [r2] - ldr r2, _080E0C80 - ldrh r0, [r1, 0x22] - negs r0, r0 - adds r0, 0x20 - strh r0, [r2] - ldrb r0, [r1, 0x5] - lsrs r0, 4 - adds r0, 0x10 - adds r1, r0, 0 - ldr r2, _080E0C84 - movs r3, 0x2 - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080E0C88 - adds r0, r1, 0 - movs r1, 0 - bl sub_8079108 - b _080E0C94 - .align 2, 0 -_080E0C58: .4byte gUnknown_02024A6A -_080E0C5C: .4byte gPlayerParty -_080E0C60: .4byte gUnknown_0202F7C8 -_080E0C64: .4byte 0x040000d4 -_080E0C68: .4byte 0x85000400 -_080E0C6C: .4byte gUnknown_08D1D574 -_080E0C70: .4byte gUnknown_08D1D410 -_080E0C74: .4byte gUnknown_08D1D54C -_080E0C78: .4byte gUnknown_030042C0 -_080E0C7C: .4byte gSprites -_080E0C80: .4byte gUnknown_030041B4 -_080E0C84: .4byte gUnknown_03004B00 -_080E0C88: - lsls r0, r1, 4 - ldrh r3, [r2, 0x4] - movs r1, 0x10 - movs r2, 0xB - bl BlendPalette -_080E0C94: - ldr r1, _080E0CC4 - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - ldr r2, _080E0CC8 - ldrh r1, [r2] - strh r1, [r0, 0xA] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0xC] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0xE] - strh r7, [r0, 0x14] - ldr r1, _080E0CCC - str r1, [r0] - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0CC4: .4byte gTasks -_080E0CC8: .4byte gUnknown_03004B00 -_080E0CCC: .4byte sub_80E0CD0 - thumb_func_end sub_80E0A4C - - thumb_func_start sub_80E0CD0 -sub_80E0CD0: @ 80E0CD0 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080E0DF0 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r0, 0x4 - movs r5, 0 - strh r0, [r4, 0x1C] - ldr r2, _080E0DF4 - ldrh r3, [r2] - subs r1, r3, 0x4 - strh r1, [r2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x80 - bne _080E0DE8 - strh r5, [r4, 0x1C] - adds r0, r3, 0 - adds r0, 0x7C - strh r0, [r2] - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080E0DE8 - movs r0, 0 - bl sub_8076464 - ldr r0, _080E0DF8 - strh r5, [r0] - ldr r0, _080E0DFC - strh r5, [r0] - ldr r0, _080E0E00 - ldr r2, _080E0E04 - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E0D40 - ldr r2, _080E0E08 - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080E0D40: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - eors r0, r1 - strh r0, [r2] - ldr r0, _080E0E0C - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - ldr r6, _080E0E10 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x5] - lsrs r0, 4 - adds r0, 0x10 - adds r1, r0, 0 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080E0D84 - adds r0, r1, 0 - movs r1, 0x1 - bl sub_8079108 -_080E0D84: - movs r3, 0x8 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - mov r0, sp - bl sub_8078914 - ldr r2, [sp, 0x4] - str r5, [sp, 0xC] - ldr r1, _080E0E14 - add r0, sp, 0xC - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _080E0E18 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080E0DE2 - ldr r2, _080E0E1C - ldr r0, _080E0E20 - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - adds r0, r2 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] -_080E0DE2: - adds r0, r7, 0 - bl move_anim_task_del -_080E0DE8: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0DF0: .4byte gTasks -_080E0DF4: .4byte gUnknown_030042C0 -_080E0DF8: .4byte gUnknown_030042C4 -_080E0DFC: .4byte gUnknown_03004240 -_080E0E00: .4byte REG_WININ -_080E0E04: .4byte 0x00003f3f -_080E0E08: .4byte REG_BG1CNT -_080E0E0C: .4byte REG_BLDCNT -_080E0E10: .4byte gSprites -_080E0E14: .4byte 0x040000d4 -_080E0E18: .4byte 0x85000200 -_080E0E1C: .4byte gUnknown_02024BE0 -_080E0E20: .4byte gUnknown_0202F7C8 - thumb_func_end sub_80E0CD0 - - thumb_func_start sub_80E0E24 -sub_80E0E24: @ 80E0E24 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _080E0E44 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r2, r0, 0 - cmp r1, 0x7 - bhi _080E0E88 - lsls r0, r1, 2 - ldr r1, _080E0E48 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E0E44: .4byte gUnknown_03004B00 -_080E0E48: .4byte _080E0E4C - .align 2, 0 -_080E0E4C: - .4byte _080E0E6C - .4byte _080E0E6C - .4byte _080E0E6C - .4byte _080E0E6C - .4byte _080E0E78 - .4byte _080E0E7C - .4byte _080E0E80 - .4byte _080E0E84 -_080E0E6C: - ldrb r0, [r2] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r2, r0, 24 - b _080E0E8A -_080E0E78: - movs r4, 0 - b _080E0E90 -_080E0E7C: - movs r4, 0x2 - b _080E0E90 -_080E0E80: - movs r4, 0x1 - b _080E0E90 -_080E0E84: - movs r4, 0x3 - b _080E0E90 -_080E0E88: - movs r2, 0xFF -_080E0E8A: - movs r0, 0 - cmp r0, 0 - beq _080E0EB6 -_080E0E90: - adds r0, r4, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080E0EB4 - ldr r0, _080E0EB0 - adds r0, r4, r0 - ldrb r2, [r0] - b _080E0EB6 - .align 2, 0 -_080E0EB0: .4byte gUnknown_02024BE0 -_080E0EB4: - movs r2, 0xFF -_080E0EB6: - cmp r2, 0xFF - beq _080E0ED2 - ldr r1, _080E0EE0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - ldr r1, _080E0EE4 - ldrb r1, [r1, 0x2] - bl sub_8079108 -_080E0ED2: - adds r0, r5, 0 - bl move_anim_task_del - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E0EE0: .4byte gSprites -_080E0EE4: .4byte gUnknown_03004B00 - thumb_func_end sub_80E0E24 - - thumb_func_start sub_80E0EE8 -sub_80E0EE8: @ 80E0EE8 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080E0F14 - ldrb r0, [r2] - cmp r0, 0x1 - bhi _080E0EFC - ldr r1, _080E0F18 - movs r0, 0 - strh r0, [r1, 0xE] -_080E0EFC: - ldrb r0, [r2] - cmp r0, 0x2 - bne _080E0F08 - ldr r1, _080E0F18 - movs r0, 0x1 - strh r0, [r1, 0xE] -_080E0F08: - adds r0, r3, 0 - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080E0F14: .4byte gUnknown_0202F7C4 -_080E0F18: .4byte gUnknown_03004B00 - thumb_func_end sub_80E0EE8 - - thumb_func_start sub_80E0F1C -sub_80E0F1C: @ 80E0F1C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080E0F74 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - movs r0, 0x14 - strh r0, [r4, 0x2E] - ldr r5, _080E0F78 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080E0F7C - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldr r0, _080E0F80 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E0F74: .4byte gUnknown_0202F7C8 -_080E0F78: .4byte gUnknown_0202F7C9 -_080E0F7C: .4byte 0x0000ffd8 -_080E0F80: .4byte sub_80E0F84 - thumb_func_end sub_80E0F1C - - thumb_func_start sub_80E0F84 -sub_80E0F84: @ 80E0F84 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080E0FD8 - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - movs r0, 0x14 - strh r0, [r5, 0x2E] - ldr r4, _080E0FE0 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - movs r0, 0x28 - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_80786EC - ldr r0, _080E0FE4 - str r0, [r5, 0x1C] -_080E0FD8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E0FE0: .4byte gUnknown_0202F7C8 -_080E0FE4: .4byte sub_80E0FE8 - thumb_func_end sub_80E0F84 - - thumb_func_start sub_80E0FE8 -sub_80E0FE8: @ 80E0FE8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080E0FFC - adds r0, r4, 0 - bl move_anim_8072740 -_080E0FFC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E0FE8 - - thumb_func_start sub_80E1004 -sub_80E1004: @ 80E1004 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r0, _080E1064 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080E1024 - ldr r1, _080E1068 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080E1024: - ldr r4, _080E1068 - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldr r5, _080E106C - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x6] - adds r0, r4 - strh r0, [r6, 0x36] - ldr r0, _080E1070 - str r0, [r6, 0x1C] - ldr r1, _080E1074 - adds r0, r6, 0 - bl oamt_set_x3A_32 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E1064: .4byte gUnknown_0202F7C8 -_080E1068: .4byte gUnknown_03004B00 -_080E106C: .4byte gUnknown_0202F7C9 -_080E1070: .4byte sub_8078B34 -_080E1074: .4byte move_anim_8072740 - thumb_func_end sub_80E1004 - - thumb_func_start sub_80E1078 -sub_80E1078: @ 80E1078 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r4, _080E10F8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077EE4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077EE4 - lsls r0, 24 - lsrs r7, r0, 24 - bl Random - movs r4, 0x1F - adds r5, r4, 0 - ands r5, r0 - bl Random - ands r4, r0 - adds r1, r5, 0 - cmp r1, 0x10 - ble _080E10C0 - movs r0, 0x10 - subs r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 -_080E10C0: - lsls r0, r4, 16 - asrs r1, r0, 16 - cmp r1, 0x10 - ble _080E10D0 - movs r0, 0x10 - subs r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 -_080E10D0: - ldr r0, _080E10FC - ldrh r0, [r0, 0x4] - strh r0, [r6, 0x2E] - mov r1, r8 - adds r0, r1, r5 - strh r0, [r6, 0x32] - adds r0, r7, r4 - strh r0, [r6, 0x36] - ldr r0, _080E1100 - str r0, [r6, 0x1C] - ldr r1, _080E1104 - adds r0, r6, 0 - bl oamt_set_x3A_32 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E10F8: .4byte gUnknown_0202F7C9 -_080E10FC: .4byte gUnknown_03004B00 -_080E1100: .4byte sub_8078B34 -_080E1104: .4byte move_anim_8074EE0 - thumb_func_end sub_80E1078 - - thumb_func_start sub_80E1108 -sub_80E1108: @ 80E1108 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x1 - ldr r3, _080E1168 - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080E116C - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r6, _080E1170 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080E117C - ldr r4, _080E1174 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r6, 0x2] - adds r0, r2 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r3, [r6, 0x4] - adds r0, r3 - strh r0, [r5, 0x22] - movs r1, 0x2 - ldrsh r0, [r6, r1] - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - ble _080E1162 - movs r1, 0x1 -_080E1162: - strh r1, [r5, 0x2E] - ldr r0, _080E1178 - b _080E118A - .align 2, 0 -_080E1168: .4byte 0x000003ff -_080E116C: .4byte 0xfffffc00 -_080E1170: .4byte gUnknown_03004B00 -_080E1174: .4byte gUnknown_0202F7C8 -_080E1178: .4byte sub_80E1198 -_080E117C: - ldrh r0, [r6, 0x2] - strh r0, [r5, 0x20] - ldrh r0, [r6, 0x4] - strh r0, [r5, 0x22] - negs r0, r0 - strh r0, [r5, 0x26] - ldr r0, _080E1194 -_080E118A: - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E1194: .4byte sub_80E11D4 - thumb_func_end sub_80E1108 - - thumb_func_start sub_80E1198 -sub_80E1198: @ 80E1198 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E11B6 - movs r0, 0 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] -_080E11B6: - ldrh r0, [r2, 0x22] - subs r0, 0x4 - strh r0, [r2, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x4 - negs r1, r1 - cmp r0, r1 - bge _080E11CE - adds r0, r2, 0 - bl move_anim_8072740 -_080E11CE: - pop {r0} - bx r0 - thumb_func_end sub_80E1198 - - thumb_func_start sub_80E11D4 -sub_80E11D4: @ 80E11D4 - push {lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r1, [r3, r0] - cmp r1, 0 - beq _080E11E6 - cmp r1, 0x1 - beq _080E11FC - b _080E123E -_080E11E6: - ldrh r0, [r3, 0x26] - adds r0, 0x4 - strh r0, [r3, 0x26] - lsls r0, 16 - cmp r0, 0 - blt _080E123E - strh r1, [r3, 0x26] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _080E123E -_080E11FC: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - cmp r0, 0 - ble _080E123E - movs r0, 0 - strh r0, [r3, 0x30] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r2, [r1] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080E123E - adds r0, r3, 0 - bl move_anim_8072740 -_080E123E: - pop {r0} - bx r0 - thumb_func_end sub_80E11D4 - - thumb_func_start sub_80E1244 -sub_80E1244: @ 80E1244 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E1264 - adds r1, r0, r1 - ldr r0, _080E1268 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0 - bne _080E1270 - ldr r0, _080E126C - b _080E1272 - .align 2, 0 -_080E1264: .4byte gTasks -_080E1268: .4byte gUnknown_03004B00 -_080E126C: .4byte sub_80E1284 -_080E1270: - ldr r0, _080E1280 -_080E1272: - str r0, [r1] - ldr r1, [r1] - adds r0, r2, 0 - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080E1280: .4byte sub_80E143C - thumb_func_end sub_80E1244 - - thumb_func_start sub_80E1284 -sub_80E1284: @ 80E1284 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E12A8 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080E129E - b _080E1432 -_080E129E: - lsls r0, 2 - ldr r1, _080E12AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E12A8: .4byte gTasks -_080E12AC: .4byte _080E12B0 - .align 2, 0 -_080E12B0: - .4byte _080E12C4 - .4byte _080E134C - .4byte _080E135C - .4byte _080E1400 - .4byte _080E1414 -_080E12C4: - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - ldr r0, _080E12EC - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1E] - cmp r0, 0x1 - bne _080E12F8 - ldr r0, _080E12F0 - ldrh r0, [r0] - strh r0, [r4, 0x20] - ldr r0, _080E12F4 - b _080E1300 - .align 2, 0 -_080E12EC: .4byte gUnknown_0202F7C8 -_080E12F0: .4byte gUnknown_030042C0 -_080E12F4: .4byte gUnknown_030041B4 -_080E12F8: - ldr r0, _080E133C - ldrh r0, [r0] - strh r0, [r4, 0x20] - ldr r0, _080E1340 -_080E1300: - ldrh r0, [r0] - strh r0, [r4, 0x22] - ldr r0, _080E1344 - ldrb r0, [r0] - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r4, 0x24] - adds r0, 0x20 - strh r0, [r4, 0x26] - cmp r1, 0 - bge _080E1322 - movs r0, 0 - strh r0, [r4, 0x24] -_080E1322: - ldr r2, _080E1348 - movs r3, 0x1C - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _080E1406 - .align 2, 0 -_080E133C: .4byte gUnknown_03004288 -_080E1340: .4byte gUnknown_03004280 -_080E1344: .4byte gUnknown_0202F7C8 -_080E1348: .4byte gSprites -_080E134C: - ldrb r0, [r4, 0x1E] - movs r2, 0x24 - ldrsh r1, [r4, r2] - movs r3, 0x26 - ldrsh r2, [r4, r3] - bl sub_80E1668 - b _080E1406 -_080E135C: - ldrh r0, [r4, 0xC] - adds r0, 0x6 - movs r1, 0x7F - ands r0, r1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080E137E - movs r0, 0 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] -_080E137E: - ldr r1, _080E13A0 - movs r2, 0xC - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 20 - ldrh r3, [r4, 0xE] - adds r2, r0, r3 - strh r2, [r4, 0x12] - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080E13A8 - ldr r1, _080E13A4 - b _080E13AA - .align 2, 0 -_080E13A0: .4byte gSineTable -_080E13A4: .4byte gUnknown_030041B4 -_080E13A8: - ldr r1, _080E13CC -_080E13AA: - ldrh r0, [r4, 0x22] - subs r0, r2 - strh r0, [r1] - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0x3F - ble _080E1432 - ldrh r0, [r4, 0x24] - movs r1, 0x78 - subs r2, r1, r0 - strh r2, [r4, 0x12] - movs r3, 0x1E - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _080E13D4 - ldr r1, _080E13D0 - b _080E13D6 - .align 2, 0 -_080E13CC: .4byte gUnknown_03004280 -_080E13D0: .4byte gUnknown_030041B4 -_080E13D4: - ldr r1, _080E13F8 -_080E13D6: - ldrh r0, [r4, 0x22] - subs r0, r2 - strh r0, [r1] - ldr r2, _080E13FC - movs r1, 0x1C - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r1, 0x20] - movs r3, 0x88 - lsls r3, 1 - adds r0, r3, 0 - subs r0, r2 - strh r0, [r1, 0x24] - b _080E1406 - .align 2, 0 -_080E13F8: .4byte gUnknown_03004280 -_080E13FC: .4byte gSprites -_080E1400: - ldr r1, _080E1410 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080E1406: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E1432 - .align 2, 0 -_080E1410: .4byte gUnknown_03004DC0 -_080E1414: - adds r0, r2, 0 - bl move_anim_task_del - ldr r2, _080E1438 - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080E1432: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E1438: .4byte gSprites - thumb_func_end sub_80E1284 - - thumb_func_start sub_80E143C -sub_80E143C: @ 80E143C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E147C - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r3] - movs r4, 0 - strh r4, [r1, 0x24] - strh r4, [r1, 0x26] - ldr r0, _080E1480 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E1488 - ldr r0, _080E1484 - b _080E148A - .align 2, 0 -_080E147C: .4byte gSprites -_080E1480: .4byte gUnknown_0202F7C8 -_080E1484: .4byte gUnknown_030041B4 -_080E1488: - ldr r0, _080E1498 -_080E148A: - strh r4, [r0] - adds r0, r5, 0 - bl move_anim_task_del - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E1498: .4byte gUnknown_03004280 - thumb_func_end sub_80E143C - - thumb_func_start sub_80E149C -sub_80E149C: @ 80E149C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E14BC - adds r1, r0, r1 - ldr r0, _080E14C0 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0 - bne _080E14C8 - ldr r0, _080E14C4 - b _080E14CA - .align 2, 0 -_080E14BC: .4byte gTasks -_080E14C0: .4byte gUnknown_03004B00 -_080E14C4: .4byte sub_80E14DC -_080E14C8: - ldr r0, _080E14D8 -_080E14CA: - str r0, [r1] - ldr r1, [r1] - adds r0, r2, 0 - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080E14D8: .4byte sub_80E1560 - thumb_func_end sub_80E149C - - thumb_func_start sub_80E14DC -sub_80E14DC: @ 80E14DC - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E14FC - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0 - beq _080E1500 - cmp r5, 0x1 - beq _080E1554 - b _080E155A - .align 2, 0 -_080E14FC: .4byte gTasks -_080E1500: - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - ldr r3, _080E1550 - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r5, [r0, 0x24] - movs r1, 0x1C - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r2, [r1, 0x22] - movs r0, 0xA0 - subs r0, r2 - strh r0, [r1, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E155A - .align 2, 0 -_080E1550: .4byte gSprites -_080E1554: - adds r0, r2, 0 - bl move_anim_task_del -_080E155A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80E14DC - - thumb_func_start sub_80E1560 -sub_80E1560: @ 80E1560 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E1584 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bhi _080E1662 - lsls r0, 2 - ldr r1, _080E1588 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E1584: .4byte gTasks -_080E1588: .4byte _080E158C - .align 2, 0 -_080E158C: - .4byte _080E15A0 - .4byte _080E15F4 - .4byte _080E1602 - .4byte _080E161C - .4byte _080E165C -_080E15A0: - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - ldr r0, _080E15C4 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1E] - cmp r0, 0x1 - bne _080E15CC - ldr r0, _080E15C8 - b _080E15CE - .align 2, 0 -_080E15C4: .4byte gUnknown_0202F7C8 -_080E15C8: .4byte gUnknown_030042C0 -_080E15CC: - ldr r0, _080E15EC -_080E15CE: - ldrh r0, [r0] - strh r0, [r4, 0x20] - ldr r0, _080E15F0 - ldrb r0, [r0] - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r4, 0x24] - adds r0, 0x20 - strh r0, [r4, 0x26] - b _080E164A - .align 2, 0 -_080E15EC: .4byte gUnknown_03004288 -_080E15F0: .4byte gUnknown_0202F7C8 -_080E15F4: - ldrb r0, [r4, 0x1E] - movs r1, 0x26 - ldrsh r2, [r4, r1] - movs r1, 0 - bl sub_80E1668 - b _080E164A -_080E1602: - ldr r2, _080E1618 - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x60 - strh r1, [r0, 0x26] - b _080E164A - .align 2, 0 -_080E1618: .4byte gSprites -_080E161C: - ldr r2, _080E1654 - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x8 - strh r1, [r0, 0x26] - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x26 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080E1662 - ldr r1, _080E1658 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080E164A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E1662 - .align 2, 0 -_080E1654: .4byte gSprites -_080E1658: .4byte gUnknown_03004DC0 -_080E165C: - adds r0, r2, 0 - bl move_anim_task_del -_080E1662: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E1560 - - thumb_func_start sub_80E1668 -sub_80E1668: @ 80E1668 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r4, r2, 16 - cmp r0, 0x1 - bne _080E168C - ldr r0, _080E1684 - ldrh r3, [r0] - ldr r0, _080E1688 - b _080E1692 - .align 2, 0 -_080E1684: .4byte gUnknown_030042C0 -_080E1688: .4byte REG_BG1HOFS -_080E168C: - ldr r0, _080E1718 - ldrh r3, [r0] - ldr r0, _080E171C -_080E1692: - str r0, [sp] - lsls r0, r1, 16 - cmp r0, 0 - bge _080E169C - movs r1, 0 -_080E169C: - lsls r2, r1, 16 - lsls r0, r4, 16 - asrs r4, r0, 16 - cmp r2, r0 - bge _080E16C8 - ldr r5, _080E1720 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 -_080E16AE: - asrs r2, 16 - lsls r1, r2, 1 - adds r0, r1, r5 - strh r3, [r0] - adds r1, r6 - strh r3, [r1] - adds r2, 0x1 - lsls r2, 16 - lsrs r1, r2, 16 - lsls r2, r1, 16 - asrs r0, r2, 16 - cmp r0, r4 - blt _080E16AE -_080E16C8: - lsls r1, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - bgt _080E16F6 - ldr r4, _080E1720 - lsls r0, r3, 16 - asrs r0, 16 - adds r3, r0, 0 - adds r3, 0xF0 - movs r0, 0xF0 - lsls r0, 3 - adds r5, r4, r0 -_080E16E0: - asrs r2, r1, 16 - lsls r1, r2, 1 - adds r0, r1, r4 - strh r3, [r0] - adds r1, r5 - strh r3, [r1] - adds r2, 0x1 - lsls r1, r2, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - ble _080E16E0 -_080E16F6: - ldr r0, _080E1724 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E1718: .4byte gUnknown_03004288 -_080E171C: .4byte REG_BG2HOFS -_080E1720: .4byte gUnknown_03004DE0 -_080E1724: .4byte 0xa2600001 - thumb_func_end sub_80E1668 - - thumb_func_start sub_80E1728 -sub_80E1728: @ 80E1728 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, _080E173C - movs r2, 0 - ldrsh r1, [r0, r2] - adds r7, r0, 0 - cmp r1, 0 - bne _080E1744 - ldr r0, _080E1740 - b _080E1746 - .align 2, 0 -_080E173C: .4byte gUnknown_03004B00 -_080E1740: .4byte gUnknown_0202F7C8 -_080E1744: - ldr r0, _080E17A8 -_080E1746: - ldrb r4, [r0] - movs r6, 0x18 - adds r1, r7, 0 - movs r2, 0x2 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _080E1762 - negs r0, r6 - lsls r0, 16 - lsrs r6, r0, 16 - movs r2, 0x4 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x4] -_080E1762: - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x20] - adds r0, r4, 0 - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1E - strh r0, [r5, 0x22] - ldrh r1, [r7, 0xA] - strh r1, [r5, 0x2E] - ldrh r1, [r7, 0x4] - ldrh r2, [r5, 0x20] - adds r1, r2 - strh r1, [r5, 0x32] - ldrh r1, [r7, 0x6] - adds r0, r1 - strh r0, [r5, 0x36] - ldrh r0, [r7, 0x8] - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_80786EC - ldr r0, _080E17AC - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E17A8: .4byte gUnknown_0202F7C9 -_080E17AC: .4byte sub_80E17B0 - thumb_func_end sub_80E1728 - - thumb_func_start sub_80E17B0 -sub_80E17B0: @ 80E17B0 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080E17C4 - adds r0, r4, 0 - bl move_anim_8072740 -_080E17C4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E17B0 - - thumb_func_start sub_80E17CC -sub_80E17CC: @ 80E17CC - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080E17E0 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080E17E8 - ldr r0, _080E17E4 - b _080E17EA - .align 2, 0 -_080E17E0: .4byte gUnknown_03004B00 -_080E17E4: .4byte gUnknown_0202F7C8 -_080E17E8: - ldr r0, _080E1848 -_080E17EA: - ldrb r5, [r0] - adds r0, r5, 0 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E184C - adds r0, r2 - ldr r4, _080E1850 - movs r3, 0x2 - ldrsh r1, [r4, r3] - lsls r1, 5 - adds r0, r1 - strh r0, [r6, 0x20] - adds r0, r5, 0 - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r6, 0x22] - ldrh r2, [r6, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0x2 - ldrsh r0, [r4, r3] - lsls r0, 3 - adds r1, r0 - ldr r3, _080E1854 - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080E1858 - ands r0, r2 - orrs r0, r1 - strh r0, [r6, 0x4] - ldr r1, _080E185C - adds r0, r6, 0 - bl oamt_set_x3A_32 - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x2E] - ldr r0, _080E1860 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E1848: .4byte gUnknown_0202F7C9 -_080E184C: .4byte 0x0000fff0 -_080E1850: .4byte gUnknown_03004B00 -_080E1854: .4byte 0x000003ff -_080E1858: .4byte 0xfffffc00 -_080E185C: .4byte move_anim_8072740 -_080E1860: .4byte sub_80782D8 - thumb_func_end sub_80E17CC - - thumb_func_start sub_80E1864 -sub_80E1864: @ 80E1864 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080E1888 - adds r4, r0, r1 - ldr r0, _080E188C - ldrh r2, [r0, 0x2] - movs r3, 0x2 - ldrsh r1, [r0, r3] - adds r6, r0, 0 - cmp r1, 0 - beq _080E1890 - adds r0, r2, 0x3 - b _080E189C - .align 2, 0 -_080E1888: .4byte gTasks -_080E188C: .4byte gUnknown_03004B00 -_080E1890: - ldr r0, _080E18BC - ldrh r0, [r0] - movs r1, 0xA - bl __udivsi3 - adds r0, 0x3 -_080E189C: - strh r0, [r4, 0x26] - strh r0, [r4, 0x24] - adds r1, r6, 0 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0xE] - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x4 - beq _080E18C8 - cmp r0, 0x5 - bne _080E1908 - ldr r0, _080E18C0 - ldrh r0, [r0] - strh r0, [r4, 0x22] - ldr r0, _080E18C4 - b _080E1926 - .align 2, 0 -_080E18BC: .4byte gUnknown_0202F7BC -_080E18C0: .4byte gUnknown_030041B0 -_080E18C4: .4byte sub_80E1934 -_080E18C8: - movs r0, 0 - strh r0, [r4, 0x22] - movs r5, 0 -_080E18CE: - lsls r0, r5, 24 - lsrs r0, 24 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080E18F8 - movs r3, 0x22 - ldrsh r0, [r4, r3] - adds r0, 0x9 - lsls r0, 1 - adds r1, r4, 0 - adds r1, 0x8 - adds r1, r0 - ldr r0, _080E1904 - adds r0, r5, r0 - ldrb r0, [r0] - strh r0, [r1] - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] -_080E18F8: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080E18CE - b _080E1924 - .align 2, 0 -_080E1904: .4byte gUnknown_02024BE0 -_080E1908: - ldrb r0, [r6] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1A] - cmp r0, 0xFF - bne _080E1920 - adds r0, r5, 0 - bl move_anim_task_del - b _080E1928 -_080E1920: - movs r0, 0x1 - strh r0, [r4, 0x22] -_080E1924: - ldr r0, _080E1930 -_080E1926: - str r0, [r4] -_080E1928: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E1930: .4byte sub_80E1A2C - thumb_func_end sub_80E1864 - - thumb_func_start sub_80E1934 -sub_80E1934: @ 80E1934 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E1958 - adds r3, r0, r1 - movs r0, 0x8 - ldrsh r1, [r3, r0] - cmp r1, 0x1 - beq _080E19B8 - cmp r1, 0x1 - bgt _080E195C - cmp r1, 0 - beq _080E1962 - b _080E1A24 - .align 2, 0 -_080E1958: .4byte gTasks -_080E195C: - cmp r1, 0x2 - beq _080E1A18 - b _080E1A24 -_080E1962: - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E1A24 - strh r1, [r3, 0xA] - ldrh r1, [r3, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080E198C - ldr r1, _080E1988 - ldrh r0, [r3, 0x26] - ldrh r2, [r3, 0x22] - adds r0, r2 - strh r0, [r1] - b _080E1996 - .align 2, 0 -_080E1988: .4byte gUnknown_030041B0 -_080E198C: - ldr r0, _080E19B4 - ldrh r1, [r3, 0x22] - ldrh r2, [r3, 0x26] - subs r1, r2 - strh r1, [r0] -_080E1996: - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xE - ldrsh r1, [r3, r2] - cmp r0, r1 - bne _080E1A24 - movs r0, 0 - strh r0, [r3, 0xC] - ldrh r0, [r3, 0x24] - subs r0, 0x1 - strh r0, [r3, 0x24] - b _080E1A0C - .align 2, 0 -_080E19B4: .4byte gUnknown_030041B0 -_080E19B8: - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E1A24 - movs r0, 0 - strh r0, [r3, 0xA] - ldrh r0, [r3, 0xC] - ands r1, r0 - cmp r1, 0 - bne _080E19E4 - ldr r1, _080E19E0 - ldrh r0, [r3, 0x24] - ldrh r2, [r3, 0x22] - adds r0, r2 - strh r0, [r1] - b _080E19EE - .align 2, 0 -_080E19E0: .4byte gUnknown_030041B0 -_080E19E4: - ldr r0, _080E1A14 - ldrh r1, [r3, 0x22] - ldrh r2, [r3, 0x24] - subs r1, r2 - strh r1, [r0] -_080E19EE: - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080E1A24 - movs r0, 0 - strh r0, [r3, 0xC] - ldrh r0, [r3, 0x24] - subs r0, 0x1 - strh r0, [r3, 0x24] - lsls r0, 16 - cmp r0, 0 - bne _080E1A24 -_080E1A0C: - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - b _080E1A24 - .align 2, 0 -_080E1A14: .4byte gUnknown_030041B0 -_080E1A18: - ldr r1, _080E1A28 - ldrh r0, [r3, 0x22] - strh r0, [r1] - adds r0, r2, 0 - bl move_anim_task_del -_080E1A24: - pop {r0} - bx r0 - .align 2, 0 -_080E1A28: .4byte gUnknown_030041B0 - thumb_func_end sub_80E1934 - - thumb_func_start sub_80E1A2C -sub_80E1A2C: @ 80E1A2C - push {r4-r7,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080E1A50 - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080E1A8C - cmp r5, 0x1 - bgt _080E1A54 - cmp r5, 0 - beq _080E1A5A - b _080E1B06 - .align 2, 0 -_080E1A50: .4byte gTasks -_080E1A54: - cmp r5, 0x2 - beq _080E1AC8 - b _080E1B06 -_080E1A5A: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E1B06 - strh r5, [r4, 0xA] - adds r0, r4, 0 - bl sub_80E1B10 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xE - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080E1B06 - strh r5, [r4, 0xC] - ldrh r0, [r4, 0x24] - subs r0, 0x1 - strh r0, [r4, 0x24] - b _080E1AC0 -_080E1A8C: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E1B06 - strh r5, [r4, 0xA] - adds r0, r4, 0 - bl sub_80E1B10 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080E1B06 - strh r5, [r4, 0xC] - ldrh r0, [r4, 0x24] - subs r0, 0x1 - strh r0, [r4, 0x24] - lsls r0, 16 - cmp r0, 0 - bne _080E1B06 -_080E1AC0: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E1B06 -_080E1AC8: - movs r2, 0 - movs r7, 0x22 - ldrsh r0, [r4, r7] - cmp r2, r0 - bge _080E1B00 - ldr r0, _080E1B0C - mov r12, r0 - adds r5, r4, 0 - adds r5, 0x8 - movs r6, 0 -_080E1ADC: - adds r0, r2, 0 - adds r0, 0x9 - lsls r0, 1 - adds r0, r5, r0 - movs r7, 0 - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r12 - strh r6, [r0, 0x24] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0x22 - ldrsh r0, [r4, r1] - cmp r2, r0 - blt _080E1ADC -_080E1B00: - adds r0, r3, 0 - bl move_anim_task_del -_080E1B06: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E1B0C: .4byte gSprites - thumb_func_end sub_80E1A2C - - thumb_func_start sub_80E1B10 -sub_80E1B10: @ 80E1B10 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0xC] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _080E1B38 - movs r0, 0x24 - ldrsh r1, [r3, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - ldrh r2, [r3, 0x24] - adds r0, r4, 0 - ands r0, r2 - adds r1, r0 - lsls r1, 16 - lsrs r4, r1, 16 - b _080E1B48 -_080E1B38: - movs r1, 0x24 - ldrsh r0, [r3, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - negs r0, r0 - lsls r0, 16 - lsrs r4, r0, 16 -_080E1B48: - movs r2, 0 - movs r7, 0x22 - ldrsh r0, [r3, r7] - cmp r2, r0 - bge _080E1B7C - ldr r6, _080E1B84 - adds r5, r3, 0 - adds r5, 0x8 -_080E1B58: - adds r0, r2, 0 - adds r0, 0x9 - lsls r0, 1 - adds r0, r5, r0 - movs r7, 0 - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r4, [r0, 0x24] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0x22 - ldrsh r0, [r3, r1] - cmp r2, r0 - blt _080E1B58 -_080E1B7C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E1B84: .4byte gSprites - thumb_func_end sub_80E1B10 - - thumb_func_start sub_80E1B88 -sub_80E1B88: @ 80E1B88 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r3, _080E1BA8 - movs r2, 0 - ldr r0, _080E1BAC - ldrh r0, [r0] - cmp r0, 0x63 - bls _080E1B9C - movs r2, 0x1 -_080E1B9C: - strh r2, [r3, 0x1E] - adds r0, r1, 0 - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080E1BA8: .4byte gUnknown_03004B00 -_080E1BAC: .4byte gUnknown_0202F7BC - thumb_func_end sub_80E1B88 - - thumb_func_start sub_80E1BB0 -sub_80E1BB0: @ 80E1BB0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _080E1BC8 - ldrh r1, [r2] - movs r0, 0x1 - ands r0, r1 - adds r6, r2, 0 - cmp r0, 0 - beq _080E1BD0 - ldr r0, _080E1BCC - b _080E1BD2 - .align 2, 0 -_080E1BC8: .4byte gUnknown_03004B00 -_080E1BCC: .4byte gUnknown_0202F7C9 -_080E1BD0: - ldr r0, _080E1C40 -_080E1BD2: - ldrb r0, [r0] - adds r5, r0, 0 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - ble _080E1BE2 - movs r0, 0x2 - eors r5, r0 -_080E1BE2: - ldr r0, _080E1C44 - ldrb r1, [r6, 0x2] - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080E1C48 - adds r4, r0 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x20 - subs r1, r0 - ldr r2, _080E1C4C - adds r0, r2, 0 - ands r1, r0 - strh r1, [r4, 0xA] - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x40 - subs r1, r0 - movs r0, 0xFF - ands r1, r0 - strh r1, [r4, 0xC] - ldr r2, _080E1C50 - ldrh r0, [r4, 0xA] - strh r0, [r2] - ldr r0, _080E1C54 - strh r1, [r0] - ldrh r0, [r6, 0x4] - strh r0, [r4, 0xE] - adds r0, r7, 0 - bl move_anim_task_del - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E1C40: .4byte gUnknown_0202F7C8 -_080E1C44: .4byte sub_80E1C58 -_080E1C48: .4byte gTasks -_080E1C4C: .4byte 0x000001ff -_080E1C50: .4byte gUnknown_030041B0 -_080E1C54: .4byte gUnknown_030041B8 - thumb_func_end sub_80E1BB0 - - thumb_func_start sub_80E1C58 -sub_80E1C58: @ 80E1C58 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080E1C88 - adds r2, r0, r1 - ldr r0, _080E1C8C - movs r4, 0xE - ldrsh r1, [r0, r4] - movs r4, 0xE - ldrsh r0, [r2, r4] - cmp r1, r0 - bne _080E1C98 - ldr r0, _080E1C90 - movs r1, 0 - strh r1, [r0] - ldr r0, _080E1C94 - strh r1, [r0] - adds r0, r3, 0 - bl DestroyTask - b _080E1CA4 - .align 2, 0 -_080E1C88: .4byte gTasks -_080E1C8C: .4byte gUnknown_03004B00 -_080E1C90: .4byte gUnknown_030041B0 -_080E1C94: .4byte gUnknown_030041B8 -_080E1C98: - ldr r1, _080E1CAC - ldrh r0, [r2, 0xA] - strh r0, [r1] - ldr r1, _080E1CB0 - ldrh r0, [r2, 0xC] - strh r0, [r1] -_080E1CA4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E1CAC: .4byte gUnknown_030041B0 -_080E1CB0: .4byte gUnknown_030041B8 - thumb_func_end sub_80E1C58 - - thumb_func_start sub_80E1CB4 -sub_80E1CB4: @ 80E1CB4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080E1CEC - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080E1CF0 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080E1CF4 - ldrh r0, [r5, 0x6] - negs r0, r0 - strh r0, [r4, 0x30] - movs r0, 0x1 - strh r0, [r4, 0x36] - b _080E1D02 - .align 2, 0 -_080E1CEC: .4byte gUnknown_03004B00 -_080E1CF0: .4byte gUnknown_0202F7C8 -_080E1CF4: - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - strh r1, [r4, 0x36] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080E1D02: - ldr r0, _080E1D18 - ldrh r0, [r0, 0x8] - strh r0, [r4, 0x34] - ldr r1, _080E1D1C - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E1D18: .4byte gUnknown_03004B00 -_080E1D1C: .4byte sub_80E1D20 - thumb_func_end sub_80E1CB4 - - thumb_func_start sub_80E1D20 -sub_80E1D20: @ 80E1D20 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x1E - bl Cos - strh r0, [r4, 0x24] - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r1, 0xA - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - cmp r0, 0x7F - bhi _080E1D52 - ldrb r0, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4, 0x5] - b _080E1D5A -_080E1D52: - ldrb r0, [r4, 0x5] - movs r1, 0xC - orrs r0, r1 - strb r0, [r4, 0x5] -_080E1D5A: - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x2E] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x34 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080E1D7E - adds r0, r4, 0 - bl move_anim_8072740 -_080E1D7E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E1D20 - - thumb_func_start sub_80E1D84 -sub_80E1D84: @ 80E1D84 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldr r4, _080E1DBC - movs r1, 0 - ldrsh r0, [r4, r1] - bl sub_80E1DC4 - movs r1, 0x2 - ldrsb r1, [r4, r1] - ldrb r2, [r4, 0x4] - ldrb r3, [r4, 0x6] - ldrh r4, [r4, 0x8] - str r4, [sp] - bl BeginNormalPaletteFade - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080E1DC0 - str r0, [r5, 0x1C] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E1DBC: .4byte gUnknown_03004B00 -_080E1DC0: .4byte sub_80E1E0C - thumb_func_end sub_80E1D84 - - thumb_func_start sub_80E1DC4 -sub_80E1DC4: @ 80E1DC4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - lsls r0, 16 - lsrs r0, 16 - movs r4, 0x1 - mov r8, r0 - mov r1, r8 - ands r1, r4 - mov r8, r1 - lsls r0, 16 - asrs r1, r0, 17 - ands r1, r4 - asrs r2, r0, 18 - ands r2, r4 - asrs r3, r0, 19 - ands r3, r4 - asrs r6, r0, 20 - ands r6, r4 - asrs r5, r0, 21 - ands r5, r4 - asrs r0, 22 - ands r0, r4 - str r6, [sp] - str r5, [sp, 0x4] - str r0, [sp, 0x8] - mov r0, r8 - bl sub_80791A8 - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80E1DC4 - - thumb_func_start sub_80E1E0C -sub_80E1E0C: @ 80E1E0C - push {lr} - adds r2, r0, 0 - ldr r0, _080E1E28 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E1E22 - adds r0, r2, 0 - bl move_anim_8072740 -_080E1E22: - pop {r0} - bx r0 - .align 2, 0 -_080E1E28: .4byte gPaletteFade - thumb_func_end sub_80E1E0C - - thumb_func_start sub_80E1E2C -sub_80E1E2C: @ 80E1E2C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080E1E78 - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x2E] - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x32] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x34] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x36] - ldrh r0, [r4, 0xA] - strh r0, [r5, 0x38] - ldrh r0, [r4, 0xC] - strh r0, [r5, 0x3A] - ldrh r0, [r4] - strh r0, [r5, 0x3C] - movs r1, 0x3C - ldrsh r0, [r5, r1] - bl sub_80E1DC4 - ldrb r1, [r4, 0x8] - ldrh r2, [r4, 0x6] - bl BlendPalettes - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080E1E7C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E1E78: .4byte gUnknown_03004B00 -_080E1E7C: .4byte sub_80E1E80 - thumb_func_end sub_80E1E2C - - thumb_func_start sub_80E1E80 -sub_80E1E80: @ 80E1E80 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080E1E94 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - b _080E1F04 -_080E1E94: - ldr r0, _080E1EB0 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E1F04 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E1EB8 - ldr r0, _080E1EB4 - str r0, [r4, 0x1C] - b _080E1F04 - .align 2, 0 -_080E1EB0: .4byte gPaletteFade -_080E1EB4: .4byte sub_80E1F0C -_080E1EB8: - movs r2, 0x3C - ldrsh r0, [r4, r2] - bl sub_80E1DC4 - adds r3, r0, 0 - ldrh r1, [r4, 0x30] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080E1EDE - ldrh r1, [r4, 0x36] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x34] - adds r0, r3, 0 - bl BlendPalettes - b _080E1EEC -_080E1EDE: - ldrh r1, [r4, 0x3A] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x38] - adds r0, r3, 0 - bl BlendPalettes -_080E1EEC: - ldrh r0, [r4, 0x30] - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - eors r0, r1 - strh r0, [r4, 0x30] - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x32] - subs r0, 0x1 - strh r0, [r4, 0x32] -_080E1F04: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E1E80 - - thumb_func_start sub_80E1F0C -sub_80E1F0C: @ 80E1F0C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080E1F38 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E1F32 - movs r1, 0x3C - ldrsh r0, [r4, r1] - bl sub_80E1DC4 - movs r1, 0 - movs r2, 0 - bl BlendPalettes - adds r0, r4, 0 - bl move_anim_8072740 -_080E1F32: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E1F38: .4byte gPaletteFade - thumb_func_end sub_80E1F0C - - thumb_func_start sub_80E1F3C -sub_80E1F3C: @ 80E1F3C - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080E1F80 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - movs r2, 0 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r2, [r4, 0x2E] - movs r0, 0xA - strh r0, [r4, 0x30] - movs r0, 0x8 - strh r0, [r4, 0x32] - movs r0, 0x28 - strh r0, [r4, 0x34] - movs r0, 0x70 - strh r0, [r4, 0x36] - strh r2, [r4, 0x38] - ldr r1, _080E1F84 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r1, _080E1F88 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E1F80: .4byte gUnknown_03004B00 -_080E1F84: .4byte move_anim_8074EE0 -_080E1F88: .4byte sub_8078174 - thumb_func_end sub_80E1F3C - - thumb_func_start sub_80E1F8C -sub_80E1F8C: @ 80E1F8C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080E1FD0 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r3, _080E1FD4 - ldrh r1, [r3] - movs r5, 0 - strh r1, [r4, 0x8] - ldrh r1, [r3, 0x2] - strh r1, [r4, 0xA] - ldrh r1, [r3, 0x4] - strh r1, [r4, 0xC] - ldrh r1, [r3, 0x6] - strh r1, [r4, 0xE] - ldrh r2, [r3, 0x8] - strh r2, [r4, 0x10] - ldrh r1, [r3, 0xA] - strh r1, [r4, 0x12] - strh r5, [r4, 0x18] - lsls r2, 24 - lsrs r2, 24 - movs r1, 0 - bl sub_80E1FDC - ldr r0, _080E1FD8 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E1FD0: .4byte gTasks -_080E1FD4: .4byte gUnknown_03004B00 -_080E1FD8: .4byte sub_80E202C - thumb_func_end sub_80E1F8C - - thumb_func_start sub_80E1FDC -sub_80E1FDC: @ 80E1FDC - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r1, _080E2028 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - bl sub_80E1DC4 - movs r1, 0xA - ldrsb r1, [r4, r1] - ldrh r2, [r4, 0x12] - str r2, [sp] - adds r2, r5, 0 - adds r3, r6, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x18] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x18] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E2028: .4byte gTasks - thumb_func_end sub_80E1FDC - - thumb_func_start sub_80E202C -sub_80E202C: @ 80E202C - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, r3, 0 - ldr r0, _080E2064 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E208E - ldr r1, _080E2068 - lsls r2, r3, 2 - adds r0, r2, r3 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0xC - ldrsh r0, [r3, r5] - adds r6, r1, 0 - adds r5, r2, 0 - cmp r0, 0 - ble _080E2088 - movs r1, 0x18 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080E206C - ldrb r1, [r3, 0xE] - ldrb r2, [r3, 0x10] - b _080E2070 - .align 2, 0 -_080E2064: .4byte gPaletteFade -_080E2068: .4byte gTasks -_080E206C: - ldrb r1, [r3, 0x10] - ldrb r2, [r3, 0xE] -_080E2070: - adds r0, r5, r4 - lsls r0, 3 - adds r0, r6 - movs r3, 0xC - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _080E2080 - movs r2, 0 -_080E2080: - adds r0, r4, 0 - bl sub_80E1FDC - b _080E208E -_080E2088: - adds r0, r4, 0 - bl move_anim_task_del -_080E208E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E202C - - thumb_func_start sub_80E2094 -sub_80E2094: @ 80E2094 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080E20D8 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r3, _080E20DC - ldrh r1, [r3] - movs r5, 0 - strh r1, [r4, 0x8] - ldrh r1, [r3, 0x2] - strh r1, [r4, 0xA] - ldrh r1, [r3, 0x4] - strh r1, [r4, 0xC] - ldrh r1, [r3, 0x6] - strh r1, [r4, 0xE] - ldrh r2, [r3, 0x8] - strh r2, [r4, 0x10] - ldrh r1, [r3, 0xA] - strh r1, [r4, 0x12] - strh r5, [r4, 0x18] - lsls r2, 24 - lsrs r2, 24 - movs r1, 0 - bl sub_80E20E4 - ldr r0, _080E20E0 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E20D8: .4byte gTasks -_080E20DC: .4byte gUnknown_03004B00 -_080E20E0: .4byte sub_80E2140 - thumb_func_end sub_80E2094 - - thumb_func_start sub_80E20E4 -sub_80E20E4: @ 80E20E4 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r1, _080E213C - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldrh r0, [r4, 0x8] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r2, 0x1 - lsls r2, r0 - movs r1, 0xA - ldrsb r1, [r4, r1] - ldrh r0, [r4, 0x12] - str r0, [sp] - adds r0, r2, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x18] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x18] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E213C: .4byte gTasks - thumb_func_end sub_80E20E4 - - thumb_func_start sub_80E2140 -sub_80E2140: @ 80E2140 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, r3, 0 - ldr r0, _080E2178 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E21A2 - ldr r1, _080E217C - lsls r2, r3, 2 - adds r0, r2, r3 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0xC - ldrsh r0, [r3, r5] - adds r6, r1, 0 - adds r5, r2, 0 - cmp r0, 0 - ble _080E219C - movs r1, 0x18 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080E2180 - ldrb r1, [r3, 0xE] - ldrb r2, [r3, 0x10] - b _080E2184 - .align 2, 0 -_080E2178: .4byte gPaletteFade -_080E217C: .4byte gTasks -_080E2180: - ldrb r1, [r3, 0x10] - ldrb r2, [r3, 0xE] -_080E2184: - adds r0, r5, r4 - lsls r0, 3 - adds r0, r6 - movs r3, 0xC - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _080E2194 - movs r2, 0 -_080E2194: - adds r0, r4, 0 - bl sub_80E20E4 - b _080E21A2 -_080E219C: - adds r0, r4, 0 - bl move_anim_task_del -_080E21A2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E2140 - - thumb_func_start sub_80E21A8 -sub_80E21A8: @ 80E21A8 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080E2208 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r5, _080E220C - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x8] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0xA] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0xC] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0xE] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x10] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x12] - ldrh r0, [r5, 0xC] - strh r0, [r4, 0x14] - ldrh r0, [r5] - strh r0, [r4, 0x16] - ldrh r0, [r5] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r1, 0x1 - lsls r1, r0 - ldrb r3, [r5, 0x8] - ldrh r0, [r5, 0x6] - str r0, [sp] - adds r0, r1, 0 - movs r1, 0 - adds r2, r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080E2210 - str r0, [r4] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E2208: .4byte gTasks -_080E220C: .4byte gUnknown_03004B00 -_080E2210: .4byte sub_80E2214 - thumb_func_end sub_80E21A8 - - thumb_func_start sub_80E2214 -sub_80E2214: @ 80E2214 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080E2238 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0x8] - movs r2, 0x8 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080E223C - subs r0, r1, 0x1 - strh r0, [r4, 0x8] - b _080E22C0 - .align 2, 0 -_080E2238: .4byte gTasks -_080E223C: - ldr r0, _080E2258 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E22C0 - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080E2260 - ldr r0, _080E225C - str r0, [r4] - b _080E22C0 - .align 2, 0 -_080E2258: .4byte gPaletteFade -_080E225C: .4byte sub_80E22CC -_080E2260: - ldrh r0, [r4, 0x16] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r2, 0x1 - lsls r2, r0 - ldrh r1, [r4, 0xA] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080E228E - ldrb r3, [r4, 0x10] - ldrh r0, [r4, 0xE] - str r0, [sp] - adds r0, r2, 0 - movs r1, 0 - adds r2, r3, 0 - bl BeginNormalPaletteFade - b _080E229E -_080E228E: - ldrb r3, [r4, 0x14] - ldrh r0, [r4, 0x12] - str r0, [sp] - adds r0, r2, 0 - movs r1, 0 - adds r2, r3, 0 - bl BeginNormalPaletteFade -_080E229E: - ldr r0, _080E22C8 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xA] - movs r3, 0x80 - lsls r3, 1 - adds r2, r3, 0 - eors r0, r2 - strh r0, [r1, 0xA] - movs r2, 0xFF - ands r0, r2 - strh r0, [r1, 0x8] - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] -_080E22C0: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E22C8: .4byte gTasks - thumb_func_end sub_80E2214 - - thumb_func_start sub_80E22CC -sub_80E22CC: @ 80E22CC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E231C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080E2312 - ldr r1, _080E2320 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x16] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r1, 0x1 - lsls r1, r0 - str r5, [sp] - adds r0, r1, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl BeginNormalPaletteFade - adds r0, r4, 0 - bl move_anim_task_del -_080E2312: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E231C: .4byte gPaletteFade -_080E2320: .4byte gTasks - thumb_func_end sub_80E22CC - - thumb_func_start sub_80E2324 -sub_80E2324: @ 80E2324 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r2, 0 - ldr r0, _080E239C - ldrb r6, [r0] - ldr r0, _080E23A0 - ldrb r7, [r0] - ldr r4, _080E23A4 - ldrh r1, [r4] - movs r5, 0x80 - lsls r5, 1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080E235E - str r2, [sp] - str r2, [sp, 0x4] - str r2, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r3, 0 - bl sub_80791A8 - adds r2, r0, 0 -_080E235E: - ldrh r1, [r4, 0x2] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080E2370 - movs r0, 0x80 - lsls r0, 9 - lsls r0, r6 - orrs r2, r0 -_080E2370: - ldrh r1, [r4, 0x4] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080E2382 - movs r0, 0x80 - lsls r0, 9 - lsls r0, r7 - orrs r2, r0 -_080E2382: - adds r0, r2, 0 - bl InvertPlttBuffer - mov r0, r8 - bl move_anim_task_del - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E239C: .4byte gUnknown_0202F7C8 -_080E23A0: .4byte gUnknown_0202F7C9 -_080E23A4: .4byte gUnknown_03004B00 - thumb_func_end sub_80E2324 - - thumb_func_start unref_sub_80E23A8 -unref_sub_80E23A8: @ 80E23A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0 - ldr r1, _080E249C - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E23EA - ldr r1, _080E24A0 - ldrh r0, [r1] - strh r0, [r4, 0xC] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0xE] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x10] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0xA] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x12] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x14] - ldrh r0, [r1, 0xC] - strh r0, [r4, 0x16] -_080E23EA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, _080E24A4 - ldrb r0, [r0] - mov r9, r0 - ldr r0, _080E24A8 - ldrb r0, [r0] - mov r10, r0 - ldrh r1, [r4, 0xC] - movs r7, 0x80 - lsls r7, 1 - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080E240C - ldr r5, _080E24AC -_080E240C: - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _080E243C - ldr r2, _080E24B0 - ldr r0, _080E24B4 - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x14 - adds r0, r2 - ldr r0, [r0] - ldrh r0, [r0, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r1, r6, 0 - lsls r1, r0 - lsls r1, 16 - orrs r5, r1 -_080E243C: - ldrh r1, [r4, 0xE] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080E2450 - adds r0, r6, 0 - mov r2, r9 - lsls r0, r2 - lsls r0, 16 - orrs r5, r0 -_080E2450: - ldrh r1, [r4, 0x10] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080E2464 - adds r0, r6, 0 - mov r1, r10 - lsls r0, r1 - lsls r0, 16 - orrs r5, r0 -_080E2464: - movs r1, 0x12 - ldrsb r1, [r4, r1] - movs r2, 0x14 - ldrsb r2, [r4, r2] - movs r3, 0x16 - ldrsb r3, [r4, r3] - adds r0, r5, 0 - bl TintPlttBuffer - movs r2, 0x8 - ldrsh r1, [r4, r2] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080E248E - adds r0, r5, 0 - bl UnfadePlttBuffer - mov r0, r8 - bl move_anim_task_del -_080E248E: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E249C: .4byte gTasks -_080E24A0: .4byte gUnknown_03004B00 -_080E24A4: .4byte gUnknown_0202F7C8 -_080E24A8: .4byte gUnknown_0202F7C9 -_080E24AC: .4byte 0x0000ffff -_080E24B0: .4byte gSprites -_080E24B4: .4byte gUnknown_03004340 - thumb_func_end unref_sub_80E23A8 - - thumb_func_start sub_80E24B8 -sub_80E24B8: @ 80E24B8 - push {r4,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080E24EC - ldrh r0, [r1] - negs r0, r0 - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x34] - movs r2, 0x6 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _080E2500 - cmp r0, 0x1 - bgt _080E24F0 - cmp r0, 0 - beq _080E24F6 - b _080E2518 - .align 2, 0 -_080E24EC: .4byte gUnknown_03004B00 -_080E24F0: - cmp r0, 0x2 - beq _080E2508 - b _080E2518 -_080E24F6: - ldr r1, _080E24FC - b _080E250A - .align 2, 0 -_080E24FC: .4byte gUnknown_030041B0 -_080E2500: - ldr r1, _080E2504 - b _080E250A - .align 2, 0 -_080E2504: .4byte gUnknown_030041B8 -_080E2508: - ldr r1, _080E2514 -_080E250A: - adds r0, r4, 0 - bl oamt_set_x3A_32 - b _080E2520 - .align 2, 0 -_080E2514: .4byte gSpriteCoordOffsetX -_080E2518: - ldr r1, _080E2550 - adds r0, r4, 0 - bl oamt_set_x3A_32 -_080E2520: - movs r0, 0x3A - ldrsh r1, [r4, r0] - movs r2, 0x3C - ldrsh r0, [r4, r2] - lsls r0, 16 - orrs r1, r0 - ldr r0, [r1] - strh r0, [r4, 0x36] - ldr r0, _080E2554 - ldrh r0, [r0, 0x6] - strh r0, [r4, 0x38] - subs r0, 0x2 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080E2544 - bl sub_80E260C -_080E2544: - ldr r0, _080E2558 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E2550: .4byte gSpriteCoordOffsetY -_080E2554: .4byte gUnknown_03004B00 -_080E2558: .4byte sub_80E255C - thumb_func_end sub_80E24B8 - - thumb_func_start sub_80E255C -sub_80E255C: @ 80E255C - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x34] - movs r2, 0x34 - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _080E25A0 - subs r0, r1, 0x1 - strh r0, [r3, 0x34] - ldrh r1, [r3, 0x30] - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _080E257E - subs r0, r1, 0x1 - strh r0, [r3, 0x30] - b _080E25FA -_080E257E: - ldrh r0, [r3, 0x32] - strh r0, [r3, 0x30] - movs r0, 0x3A - ldrsh r1, [r3, r0] - movs r2, 0x3C - ldrsh r0, [r3, r2] - lsls r0, 16 - orrs r1, r0 - movs r0, 0x2E - ldrsh r2, [r3, r0] - ldr r0, [r1] - adds r0, r2 - str r0, [r1] - ldrh r0, [r3, 0x2E] - negs r0, r0 - strh r0, [r3, 0x2E] - b _080E25FA -_080E25A0: - movs r2, 0x3A - ldrsh r1, [r3, r2] - movs r2, 0x3C - ldrsh r0, [r3, r2] - lsls r0, 16 - orrs r1, r0 - movs r2, 0x36 - ldrsh r0, [r3, r2] - str r0, [r1] - ldrh r0, [r3, 0x38] - subs r0, 0x2 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080E25F4 - movs r4, 0 - ldr r5, _080E2600 - ldrb r0, [r5] - cmp r4, r0 - bcs _080E25F4 - ldr r2, _080E2604 - mov r12, r2 - ldr r6, _080E2608 - movs r7, 0x3 - negs r7, r7 -_080E25D2: - adds r0, r4, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r12 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r5] - cmp r4, r0 - bcc _080E25D2 -_080E25F4: - adds r0, r3, 0 - bl move_anim_8072740 -_080E25FA: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E2600: .4byte gUnknown_02024A68 -_080E2604: .4byte gSprites -_080E2608: .4byte gUnknown_02024BE0 - thumb_func_end sub_80E255C - - thumb_func_start sub_80E260C -sub_80E260C: @ 80E260C - push {r4-r6,lr} - ldr r6, _080E2680 - ldr r4, _080E2684 - ldr r5, _080E2688 - ldrb r0, [r5] - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x3 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - ldr r3, _080E268C - ldrb r0, [r3] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - ldr r0, _080E2690 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x2 - bne _080E2694 - ldrb r0, [r5] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r3] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - b _080E26B0 - .align 2, 0 -_080E2680: .4byte gSprites -_080E2684: .4byte gUnknown_02024BE0 -_080E2688: .4byte gUnknown_0202F7C8 -_080E268C: .4byte gUnknown_0202F7C9 -_080E2690: .4byte gUnknown_03004B00 -_080E2694: - cmp r0, 0 - bne _080E269C - ldrb r0, [r5] - b _080E269E -_080E269C: - ldrb r0, [r3] -_080E269E: - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x2 -_080E26B0: - orrs r1, r2 - strb r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E260C - - thumb_func_start sub_80E26BC -sub_80E26BC: @ 80E26BC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080E26FC - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r1 - ldr r3, _080E2700 - ldrh r1, [r3] - strh r1, [r2, 0x8] - ldrh r1, [r3, 0x2] - strh r1, [r2, 0xA] - ldrh r1, [r3, 0x4] - strh r1, [r2, 0xC] - ldrh r1, [r3, 0x6] - strh r1, [r2, 0xE] - ldrh r1, [r3, 0x6] - strh r1, [r2, 0x18] - ldr r4, _080E2704 - ldrh r1, [r3] - strh r1, [r4] - ldr r4, _080E2708 - ldrh r1, [r3, 0x2] - strh r1, [r4] - ldr r1, _080E270C - str r1, [r2] - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E26FC: .4byte gTasks -_080E2700: .4byte gUnknown_03004B00 -_080E2704: .4byte gUnknown_030041B0 -_080E2708: .4byte gUnknown_030041B8 -_080E270C: .4byte sub_80E2710 - thumb_func_end sub_80E26BC - - thumb_func_start sub_80E2710 -sub_80E2710: @ 80E2710 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080E2740 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r1 - ldrh r2, [r3, 0xE] - movs r4, 0xE - ldrsh r0, [r3, r4] - mov r12, r1 - cmp r0, 0 - bne _080E2796 - ldr r0, _080E2744 - ldrh r2, [r0] - movs r7, 0x8 - ldrsh r1, [r3, r7] - adds r6, r0, 0 - cmp r2, r1 - bne _080E2748 - ldrh r0, [r3, 0x8] - negs r0, r0 - b _080E274A - .align 2, 0 -_080E2740: .4byte gTasks -_080E2744: .4byte gUnknown_030041B0 -_080E2748: - ldrh r0, [r3, 0x8] -_080E274A: - strh r0, [r6] - ldr r2, _080E2768 - ldrh r3, [r2] - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - mov r7, r12 - adds r4, r0, r7 - movs r7, 0xA - ldrsh r0, [r4, r7] - cmn r3, r0 - bne _080E276C - movs r0, 0 - b _080E2770 - .align 2, 0 -_080E2768: .4byte gUnknown_030041B8 -_080E276C: - ldrh r0, [r4, 0xA] - negs r0, r0 -_080E2770: - strh r0, [r2] - adds r0, r1, r5 - lsls r0, 3 - add r0, r12 - ldrh r1, [r0, 0x18] - strh r1, [r0, 0xE] - ldrh r1, [r0, 0xC] - subs r1, 0x1 - strh r1, [r0, 0xC] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0 - bne _080E279A - strh r1, [r6] - strh r1, [r2] - adds r0, r5, 0 - bl move_anim_task_del - b _080E279A -_080E2796: - subs r0, r2, 0x1 - strh r0, [r3, 0xE] -_080E279A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E2710 - - thumb_func_start sub_80E27A0 -sub_80E27A0: @ 80E27A0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080E27C0 - ldrb r1, [r4, 0x6] - bl StartSpriteAffineAnim - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E27C4 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - b _080E27CC - .align 2, 0 -_080E27C0: .4byte gUnknown_03004B00 -_080E27C4: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8078764 -_080E27CC: - ldr r0, _080E27E0 - str r0, [r5, 0x1C] - ldr r1, _080E27E4 - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E27E0: .4byte sub_80785E4 -_080E27E4: .4byte move_anim_8072740 - thumb_func_end sub_80E27A0 - - thumb_func_start sub_80E27E8 -sub_80E27E8: @ 80E27E8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080E2808 - ldrb r1, [r4, 0x6] - bl StartSpriteAffineAnim - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E280C - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - b _080E2814 - .align 2, 0 -_080E2808: .4byte gUnknown_03004B00 -_080E280C: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8078764 -_080E2814: - ldr r0, _080E282C - ldrh r0, [r0, 0x8] - strh r0, [r5, 0x2E] - ldr r0, _080E2830 - str r0, [r5, 0x1C] - ldr r1, _080E2834 - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E282C: .4byte gUnknown_03004B00 -_080E2830: .4byte sub_80785E4 -_080E2834: .4byte sub_80DA48C - thumb_func_end sub_80E27E8 - - thumb_func_start sub_80E2838 -sub_80E2838: @ 80E2838 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080E2868 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080E285C - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E285C - ldr r1, _080E286C - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_080E285C: - adds r0, r4, 0 - bl sub_80E27A0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E2868: .4byte gUnknown_0202F7C8 -_080E286C: .4byte gUnknown_03004B00 - thumb_func_end sub_80E2838 - - thumb_func_start sub_80E2870 -sub_80E2870: @ 80E2870 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080E28A8 - movs r0, 0x2 - ldrsh r1, [r5, r0] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080E288C - bl Random - movs r1, 0x3 - ands r1, r0 - strh r1, [r5, 0x2] -_080E288C: - ldrb r1, [r5, 0x2] - adds r0, r4, 0 - bl StartSpriteAffineAnim - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080E28AC - adds r0, r4, 0 - movs r1, 0 - bl sub_80787B0 - b _080E28B4 - .align 2, 0 -_080E28A8: .4byte gUnknown_03004B00 -_080E28AC: - adds r0, r4, 0 - movs r1, 0 - bl sub_8078764 -_080E28B4: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x30 - bl __umodsi3 - ldr r1, _080E28F8 - adds r0, r1 - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x18 - bl __umodsi3 - ldr r1, _080E28FC - adds r0, r1 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldr r1, _080E2900 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080E2904 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E28F8: .4byte 0x0000ffe8 -_080E28FC: .4byte 0x0000fff4 -_080E2900: .4byte move_anim_8074EE0 -_080E2904: .4byte sub_80785E4 - thumb_func_end sub_80E2870 - - thumb_func_start sub_80E2908 -sub_80E2908: @ 80E2908 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080E2968 - ldrb r0, [r5] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, _080E296C - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - ldrh r0, [r0, 0x20] - adds r1, r0 - strh r1, [r4, 0x20] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - strh r1, [r4, 0x22] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x24] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x26] - ldrb r1, [r5, 0x6] - adds r0, r4, 0 - bl StartSpriteAffineAnim - ldr r1, _080E2970 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080E2974 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E2968: .4byte gUnknown_03004B00 -_080E296C: .4byte gSprites -_080E2970: .4byte move_anim_8074EE0 -_080E2974: .4byte sub_80785E4 - thumb_func_end sub_80E2908 - - thumb_func_start sub_80E2978 -sub_80E2978: @ 80E2978 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080E2990 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080E2994 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80787B0 - b _080E299C - .align 2, 0 -_080E2990: .4byte gUnknown_03004B00 -_080E2994: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 -_080E299C: - ldr r0, _080E29B4 - ldrh r0, [r0, 0x6] - strh r0, [r4, 0x2E] - ldr r1, _080E29B8 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080E29BC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E29B4: .4byte gUnknown_03004B00 -_080E29B8: .4byte move_anim_8072740 -_080E29BC: .4byte sub_80782D8 - thumb_func_end sub_80E2978 - - thumb_func_start sub_80E29C0 -sub_80E29C0: @ 80E29C0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080E29E0 - ldrb r1, [r4, 0x6] - bl StartSpriteAffineAnim - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E29E4 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - b _080E29EC - .align 2, 0 -_080E29E0: .4byte gUnknown_03004B00 -_080E29E4: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8078764 -_080E29EC: - ldr r0, _080E29F8 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E29F8: .4byte sub_80E29FC - thumb_func_end sub_80E29C0 - - thumb_func_start sub_80E29FC -sub_80E29FC: @ 80E29FC - push {lr} - adds r3, r0, 0 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x2E] - adds r1, r0, 0x1 - strh r1, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _080E2A32 - adds r0, r3, 0 - bl move_anim_8072740 -_080E2A32: - pop {r0} - bx r0 - thumb_func_end sub_80E29FC - - thumb_func_start sub_80E2A38 -sub_80E2A38: @ 80E2A38 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _080E2A78 - movs r1, 0 - ldrsh r0, [r4, r1] - bl sub_80E1DC4 - adds r6, r0, 0 - ldrh r3, [r4] - lsls r3, 16 - asrs r0, r3, 23 - movs r4, 0x1 - ands r0, r4 - asrs r1, r3, 24 - ands r1, r4 - asrs r2, r3, 25 - ands r2, r4 - asrs r3, 26 - ands r3, r4 - bl sub_80792C0 - orrs r6, r0 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_80E2C8C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E2A78: .4byte gUnknown_03004B00 - thumb_func_end sub_80E2A38 - - thumb_func_start sub_80E2A7C -sub_80E2A7C: @ 80E2A7C - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - mov r1, sp - movs r0, 0xFF - strb r0, [r1, 0x1] - movs r0, 0x1 - bl sub_80E1DC4 - adds r5, r0, 0 - ldr r0, _080E2AA8 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x7 - bhi _080E2B26 - lsls r0, 2 - ldr r1, _080E2AAC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E2AA8: .4byte gUnknown_03004B00 -_080E2AAC: .4byte _080E2AB0 - .align 2, 0 -_080E2AB0: - .4byte _080E2AD2 - .4byte _080E2ADE - .4byte _080E2AD0 - .4byte _080E2ADC - .4byte _080E2AEC - .4byte _080E2B04 - .4byte _080E2B0C - .4byte _080E2B18 -_080E2AD0: - movs r5, 0 -_080E2AD2: - mov r0, sp - ldr r1, _080E2AD8 - b _080E2AE2 - .align 2, 0 -_080E2AD8: .4byte gUnknown_0202F7C8 -_080E2ADC: - movs r5, 0 -_080E2ADE: - mov r0, sp - ldr r1, _080E2AE8 -_080E2AE2: - ldrb r1, [r1] - strb r1, [r0] - b _080E2B26 - .align 2, 0 -_080E2AE8: .4byte gUnknown_0202F7C9 -_080E2AEC: - mov r1, sp - ldr r0, _080E2AFC - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _080E2B00 - ldrb r0, [r0] - strb r0, [r1, 0x1] - b _080E2B26 - .align 2, 0 -_080E2AFC: .4byte gUnknown_0202F7C8 -_080E2B00: .4byte gUnknown_0202F7C9 -_080E2B04: - mov r1, sp - movs r0, 0xFF - strb r0, [r1] - b _080E2B26 -_080E2B0C: - movs r5, 0 - mov r2, sp - ldr r0, _080E2B14 - b _080E2B1E - .align 2, 0 -_080E2B14: .4byte gUnknown_0202F7C8 -_080E2B18: - movs r5, 0 - mov r2, sp - ldr r0, _080E2B70 -_080E2B1E: - ldrb r0, [r0] - movs r1, 0x2 - eors r0, r1 - strb r0, [r2] -_080E2B26: - movs r4, 0 - mov r6, sp -_080E2B2A: - ldrb r0, [r6] - cmp r4, r0 - beq _080E2B54 - ldrb r0, [r6, 0x1] - cmp r4, r0 - beq _080E2B54 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080E2B54 - adds r0, r4, 0 - bl sub_80793A8 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 9 - lsls r1, r0 - orrs r5, r1 -_080E2B54: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080E2B2A - adds r0, r7, 0 - adds r1, r5, 0 - bl sub_80E2C8C - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E2B70: .4byte gUnknown_0202F7C9 - thumb_func_end sub_80E2A7C - - thumb_func_start sub_80E2B74 -sub_80E2B74: @ 80E2B74 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E2B98 - movs r1, 0 - ldrsh r0, [r0, r1] - bl sub_80E1DC4 - adds r2, r0, 0 - ldr r0, _080E2B9C - ldrb r0, [r0] - cmp r0, 0x9 - bhi _080E2C4A - lsls r0, 2 - ldr r1, _080E2BA0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E2B98: .4byte gUnknown_03004B00 -_080E2B9C: .4byte gUnknown_0300428C -_080E2BA0: .4byte _080E2BA4 - .align 2, 0 -_080E2BA4: - .4byte _080E2BCC - .4byte _080E2BDC - .4byte _080E2BE8 - .4byte _080E2BF8 - .4byte _080E2C04 - .4byte _080E2C14 - .4byte _080E2C24 - .4byte _080E2C34 - .4byte _080E2C44 - .4byte _080E2C44 -_080E2BCC: - ldr r1, _080E2BD4 - ldr r0, _080E2BD8 - b _080E2C48 - .align 2, 0 -_080E2BD4: .4byte gUnknown_03004B00 -_080E2BD8: .4byte 0x00000b0c -_080E2BDC: - ldr r1, _080E2BE4 - movs r0, 0x9E - lsls r0, 4 - b _080E2C48 - .align 2, 0 -_080E2BE4: .4byte gUnknown_03004B00 -_080E2BE8: - ldr r1, _080E2BF0 - ldr r0, _080E2BF4 - b _080E2C48 - .align 2, 0 -_080E2BF0: .4byte gUnknown_03004B00 -_080E2BF4: .4byte 0x00002f1e -_080E2BF8: - ldr r1, _080E2C00 - movs r0, 0x90 - lsls r0, 7 - b _080E2C48 - .align 2, 0 -_080E2C00: .4byte gUnknown_03004B00 -_080E2C04: - ldr r1, _080E2C0C - ldr r0, _080E2C10 - b _080E2C48 - .align 2, 0 -_080E2C0C: .4byte gUnknown_03004B00 -_080E2C10: .4byte 0x00007ecb -_080E2C14: - ldr r1, _080E2C1C - ldr r0, _080E2C20 - b _080E2C48 - .align 2, 0 -_080E2C1C: .4byte gUnknown_03004B00 -_080E2C20: .4byte 0x00007ecb -_080E2C24: - ldr r1, _080E2C2C - ldr r0, _080E2C30 - b _080E2C48 - .align 2, 0 -_080E2C2C: .4byte gUnknown_03004B00 -_080E2C30: .4byte 0x00002a16 -_080E2C34: - ldr r1, _080E2C3C - ldr r0, _080E2C40 - b _080E2C48 - .align 2, 0 -_080E2C3C: .4byte gUnknown_03004B00 -_080E2C40: .4byte 0x00000d2e -_080E2C44: - ldr r1, _080E2C58 - ldr r0, _080E2C5C -_080E2C48: - strh r0, [r1, 0x8] -_080E2C4A: - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80E2C8C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E2C58: .4byte gUnknown_03004B00 -_080E2C5C: .4byte 0x00007fff - thumb_func_end sub_80E2B74 - - thumb_func_start sub_80E2C60 -sub_80E2C60: @ 80E2C60 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080E2C88 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r1, 0x1 - lsls r1, r0 - adds r0, r4, 0 - bl sub_80E2C8C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E2C88: .4byte gUnknown_03004B00 - thumb_func_end sub_80E2C60 - - thumb_func_start sub_80E2C8C -sub_80E2C8C: @ 80E2C8C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080E2CC4 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - strh r1, [r2, 0x8] - lsrs r1, 16 - strh r1, [r2, 0xA] - ldr r3, _080E2CC8 - ldrh r1, [r3, 0x2] - strh r1, [r2, 0xC] - ldrh r1, [r3, 0x4] - strh r1, [r2, 0xE] - ldrh r1, [r3, 0x6] - strh r1, [r2, 0x10] - ldrh r1, [r3, 0x8] - strh r1, [r2, 0x12] - ldrh r1, [r3, 0x4] - strh r1, [r2, 0x1C] - ldr r1, _080E2CCC - str r1, [r2] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080E2CC4: .4byte gTasks -_080E2CC8: .4byte gUnknown_03004B00 -_080E2CCC: .4byte sub_80E2CD0 - thumb_func_end sub_80E2C8C - - thumb_func_start sub_80E2CD0 -sub_80E2CD0: @ 80E2CD0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - ldr r2, _080E2D50 - lsls r5, r7, 2 - adds r0, r5, r7 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1A] - mov r8, r0 - movs r4, 0x1A - ldrsh r1, [r3, r4] - movs r4, 0xC - ldrsh r0, [r3, r4] - mov r9, r2 - cmp r1, r0 - bne _080E2D66 - strh r6, [r3, 0x1A] - movs r0, 0x8 - ldrsh r4, [r3, r0] - movs r1, 0xA - ldrsh r0, [r3, r1] - lsls r0, 16 - orrs r4, r0 - mov r8, r5 - cmp r4, 0 - beq _080E2D32 - adds r5, r3, 0 -_080E2D10: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080E2D24 - ldrb r2, [r5, 0x1C] - ldrh r3, [r5, 0x12] - adds r0, r6, 0 - movs r1, 0x10 - bl BlendPalette -_080E2D24: - adds r0, r6, 0 - adds r0, 0x10 - lsls r0, 16 - lsrs r6, r0, 16 - lsrs r4, 1 - cmp r4, 0 - bne _080E2D10 -_080E2D32: - mov r4, r8 - adds r0, r4, r7 - lsls r0, 3 - mov r1, r9 - adds r2, r0, r1 - ldrh r0, [r2, 0x1C] - movs r4, 0x1C - ldrsh r3, [r2, r4] - movs r4, 0x10 - ldrsh r1, [r2, r4] - cmp r3, r1 - bge _080E2D54 - adds r0, 0x1 - strh r0, [r2, 0x1C] - b _080E2D6C - .align 2, 0 -_080E2D50: .4byte gTasks -_080E2D54: - cmp r3, r1 - ble _080E2D5E - subs r0, 0x1 - strh r0, [r2, 0x1C] - b _080E2D6C -_080E2D5E: - adds r0, r7, 0 - bl move_anim_task_del - b _080E2D6C -_080E2D66: - mov r0, r8 - adds r0, 0x1 - strh r0, [r3, 0x1A] -_080E2D6C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E2CD0 - - thumb_func_start sub_80E2D78 -sub_80E2D78: @ 80E2D78 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _080E2DAC - ldrb r0, [r4] - ldrb r1, [r4, 0x2] - ldrb r2, [r4, 0x4] - ldrb r3, [r4, 0x6] - ldrb r4, [r4, 0x8] - str r4, [sp] - bl BeginHardwarePaletteFade - ldr r1, _080E2DB0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080E2DB4 - str r1, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E2DAC: .4byte gUnknown_03004B00 -_080E2DB0: .4byte gTasks -_080E2DB4: .4byte sub_80E2DB8 - thumb_func_end sub_80E2D78 - - thumb_func_start sub_80E2DB8 -sub_80E2DB8: @ 80E2DB8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080E2DD4 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E2DD0 - adds r0, r2, 0 - bl move_anim_task_del -_080E2DD0: - pop {r0} - bx r0 - .align 2, 0 -_080E2DD4: .4byte gPaletteFade - thumb_func_end sub_80E2DB8 - - thumb_func_start sub_80E2DD8 -sub_80E2DD8: @ 80E2DD8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080E2E04 - adds r1, r0 - ldr r2, _080E2E08 - ldrh r0, [r2] - movs r3, 0 - strh r0, [r1, 0x8] - strh r3, [r1, 0xA] - ldrh r0, [r2, 0x2] - strh r0, [r1, 0xC] - ldrh r0, [r2, 0x4] - strh r0, [r1, 0xE] - ldrh r0, [r2, 0x6] - strh r0, [r1, 0x10] - strh r3, [r1, 0x12] - ldr r0, _080E2E0C - str r0, [r1] - bx lr - .align 2, 0 -_080E2E04: .4byte gTasks -_080E2E08: .4byte gUnknown_03004B00 -_080E2E0C: .4byte sub_80E2E10 - thumb_func_end sub_80E2DD8 - - thumb_func_start sub_80E2E10 -sub_80E2E10: @ 80E2E10 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r2, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080E2E3C - adds r4, r0, r1 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080E2ED4 - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080E2E40 - subs r0, r1, 0x1 - strh r0, [r4, 0xA] - b _080E2EE2 - .align 2, 0 -_080E2E3C: .4byte gTasks -_080E2E40: - ldrb r0, [r4, 0x8] - bl duplicate_obj_of_side_rel2move_in_transparent_mode - strh r0, [r4, 0x14] - lsls r0, 16 - cmp r0, 0 - blt _080E2EBE - ldr r6, _080E2ECC - movs r1, 0x14 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r3, r1, r6 - movs r2, 0x8 - ldrsh r0, [r4, r2] - movs r2, 0x2 - cmp r0, 0 - beq _080E2E68 - movs r2, 0x1 -_080E2E68: - lsls r2, 2 - ldrb r1, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x5] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r4, 0xE] - strh r1, [r0, 0x2E] - movs r2, 0x14 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r5, [r0, 0x30] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5 - strh r1, [r0, 0x32] - movs r2, 0x14 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080E2ED0 - str r1, [r0] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] -_080E2EBE: - ldrh r0, [r4, 0x10] - subs r0, 0x1 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xC] - strh r0, [r4, 0xA] - b _080E2EE2 - .align 2, 0 -_080E2ECC: .4byte gSprites -_080E2ED0: .4byte sub_80E2EE8 -_080E2ED4: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E2EE2 - adds r0, r2, 0 - bl move_anim_task_del -_080E2EE2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E2E10 - - thumb_func_start sub_80E2EE8 -sub_80E2EE8: @ 80E2EE8 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080E2EFC - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - b _080E2F20 -_080E2EFC: - ldr r3, _080E2F28 - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x30 - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl obj_delete_but_dont_free_vram -_080E2F20: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E2F28: .4byte gTasks - thumb_func_end sub_80E2EE8 - - thumb_func_start sub_80E2F2C -sub_80E2F2C: @ 80E2F2C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r7, 0 - ldr r0, _080E3038 - strh r7, [r0] - ldr r0, _080E303C - strh r7, [r0] - ldr r1, _080E3040 - ldr r2, _080E3044 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080E3048 - adds r0, r3, 0 - strh r0, [r1] - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E304C - ldr r2, _080E3050 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080E3054 - adds r0, r3, 0 - strh r0, [r1] - ldr r4, _080E3058 - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - mov r8, r0 - ands r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E2FAC - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080E2FAC: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080E3028 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E3028 - ldr r5, _080E305C - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080E2FDC - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - bne _080E3028 -_080E2FDC: - ldrb r0, [r5] - movs r6, 0x2 - eors r0, r6 - bl b_side_obj__get_some_boolean - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E3028 - ldr r3, _080E3060 - ldr r1, _080E3064 - ldrb r0, [r5] - eors r0, r6 - adds r0, r1 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldrb r1, [r4] - mov r0, r8 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - movs r7, 0x1 -_080E3028: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E306C - ldr r0, _080E3068 - ldrh r4, [r0] - b _080E30B4 - .align 2, 0 -_080E3038: .4byte gUnknown_030042C4 -_080E303C: .4byte gUnknown_03004240 -_080E3040: .4byte REG_WININ -_080E3044: .4byte 0x00003f3f -_080E3048: .4byte 0x00003f3d -_080E304C: .4byte REG_BLDCNT -_080E3050: .4byte 0x00003f42 -_080E3054: .4byte 0x00000c08 -_080E3058: .4byte REG_BG1CNT -_080E305C: .4byte gUnknown_0202F7C8 -_080E3060: .4byte gSprites -_080E3064: .4byte gUnknown_02024BE0 -_080E3068: .4byte 0x02019348 -_080E306C: - ldr r4, _080E308C - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080E3098 - ldr r1, _080E3090 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E3094 - b _080E30A8 - .align 2, 0 -_080E308C: .4byte gUnknown_0202F7C8 -_080E3090: .4byte gUnknown_02024A6A -_080E3094: .4byte gEnemyParty -_080E3098: - ldr r1, _080E3160 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E3164 -_080E30A8: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 -_080E30B4: - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080E3168 - ldrb r0, [r0] - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_807A4A0 - lsls r0, 24 - lsrs r4, r0, 24 - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r2, _080E316C - add r0, sp, 0xC - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _080E3170 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _080E3174 - bl LZDecompressVram - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E3106 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080E3106: - ldr r0, _080E3178 - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _080E317C - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - adds r1, 0x1 - movs r2, 0x2 - bl LoadPalette - ldr r2, _080E3180 - ldr r0, _080E3184 - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x20] - negs r0, r0 - adds r0, 0x20 - strh r0, [r2] - ldr r2, _080E3188 - ldrh r0, [r1, 0x22] - negs r0, r0 - adds r0, 0x20 - strh r0, [r2] - ldr r1, _080E318C - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x8] - strh r7, [r0, 0x14] - ldr r1, _080E3190 - str r1, [r0] - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E3160: .4byte gUnknown_02024A6A -_080E3164: .4byte gPlayerParty -_080E3168: .4byte gUnknown_0202F7C8 -_080E316C: .4byte 0x040000d4 -_080E3170: .4byte 0x85000400 -_080E3174: .4byte gUnknown_08D20A30 -_080E3178: .4byte gUnknown_08D20A14 -_080E317C: .4byte gUnknown_083DB568 -_080E3180: .4byte gUnknown_030042C0 -_080E3184: .4byte gSprites -_080E3188: .4byte gUnknown_030041B4 -_080E318C: .4byte gTasks -_080E3190: .4byte sub_80E3194 - thumb_func_end sub_80E2F2C - - thumb_func_start sub_80E3194 -sub_80E3194: @ 80E3194 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080E32AC - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r0, 0x4 - movs r5, 0 - strh r0, [r4, 0x1C] - ldr r7, _080E32B0 - ldrh r2, [r7] - subs r1, r2, 0x4 - strh r1, [r7] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - bne _080E329E - strh r5, [r4, 0x1C] - adds r0, r2, 0 - adds r0, 0x3C - strh r0, [r7] - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080E329E - movs r0, 0 - bl sub_8076464 - ldr r0, _080E32B4 - strh r5, [r0] - ldr r0, _080E32B8 - strh r5, [r0] - ldr r0, _080E32BC - ldr r2, _080E32C0 - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E3208 - ldr r2, _080E32C4 - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080E3208: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - eors r0, r1 - strh r0, [r2] - ldr r0, _080E32C8 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - movs r0, 0 - bl obj_id_for_side_relative_to_move - ldr r0, _080E32CC - mov r8, r0 - movs r2, 0x8 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - bl DestroySprite - mov r0, sp - bl sub_8078914 - ldr r2, [sp, 0x4] - str r5, [sp, 0xC] - ldr r1, _080E32D0 - add r0, sp, 0xC - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _080E32D4 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r3, 0x14 - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _080E3288 - ldr r2, _080E32D8 - ldr r0, _080E32DC - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - adds r0, r2 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - add r2, r8 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] -_080E3288: - ldr r2, _080E32C4 - ldrb r1, [r2, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x1] - movs r0, 0 - strh r0, [r7] - adds r0, r6, 0 - bl move_anim_task_del -_080E329E: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E32AC: .4byte gTasks -_080E32B0: .4byte gUnknown_030041B4 -_080E32B4: .4byte gUnknown_030042C4 -_080E32B8: .4byte gUnknown_03004240 -_080E32BC: .4byte REG_WININ -_080E32C0: .4byte 0x00003f3f -_080E32C4: .4byte REG_BG1CNT -_080E32C8: .4byte REG_BLDCNT -_080E32CC: .4byte gSprites -_080E32D0: .4byte 0x040000d4 -_080E32D4: .4byte 0x85000200 -_080E32D8: .4byte gUnknown_02024BE0 -_080E32DC: .4byte gUnknown_0202F7C8 - thumb_func_end sub_80E3194 - - thumb_func_start sub_80E32E0 -sub_80E32E0: @ 80E32E0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r3, r0, 24 - movs r2, 0 - ldr r0, _080E332C - mov r12, r0 - ldr r1, _080E3330 - mov r8, r1 - lsls r1, r3, 2 - adds r0, r1, r3 - lsls r4, r0, 3 - mov r7, r12 - adds r7, 0x8 - adds r5, r1, 0 - ldr r6, _080E3334 -_080E3302: - lsls r0, r2, 1 - adds r1, r0, r4 - adds r1, r7 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _080E3302 - adds r0, r5, r3 - lsls r0, 3 - add r0, r12 - mov r1, r8 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E332C: .4byte gTasks -_080E3330: .4byte sub_80E3338 -_080E3334: .4byte gUnknown_03004B00 - thumb_func_end sub_80E32E0 - - thumb_func_start sub_80E3338 -sub_80E3338: @ 80E3338 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r0, 0 - str r0, [sp, 0x1C] - movs r1, 0 - str r1, [sp, 0x20] - add r7, sp, 0xC - ldr r2, _080E3388 - mov r3, r9 - lsls r1, r3, 2 - adds r0, r1, r3 - lsls r0, 3 - mov r10, r1 - adds r1, r2, 0 - adds r1, 0x8 - adds r1, r0, r1 - adds r3, r7, 0 - movs r4, 0 - movs r2, 0x7 -_080E336C: - ldrh r0, [r1] - strh r0, [r3] - strh r4, [r1] - adds r1, 0x2 - adds r3, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _080E336C - movs r1, 0x4 - ldrsh r0, [r7, r1] - cmp r0, 0 - bne _080E3390 - ldr r0, _080E338C - b _080E3392 - .align 2, 0 -_080E3388: .4byte gTasks -_080E338C: .4byte gUnknown_0202F7C8 -_080E3390: - ldr r0, _080E34B4 -_080E3392: - ldrb r5, [r0] - movs r0, 0x2 - mov r8, r5 - mov r2, r8 - eors r2, r0 - mov r8, r2 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E33BC - movs r3, 0x6 - ldrsh r0, [r7, r3] - cmp r0, 0 - beq _080E33C0 - mov r0, r8 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - bne _080E33C0 -_080E33BC: - movs r0, 0 - strh r0, [r7, 0x6] -_080E33C0: - ldr r0, _080E34B8 - movs r1, 0 - strh r1, [r0] - ldr r0, _080E34BC - strh r1, [r0] - ldr r1, _080E34C0 - ldr r2, _080E34C4 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080E34C8 - adds r0, r3, 0 - strh r0, [r1] - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E34CC - ldr r2, _080E34D0 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0x80 - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r1] - ldr r4, _080E34D4 - ldrb r1, [r4] - movs r6, 0x4 - negs r6, r6 - adds r0, r6, 0 - ands r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E3432 - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080E3432: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080E34A4 - movs r1, 0x6 - ldrsh r0, [r7, r1] - cmp r0, 0 - bne _080E34A4 - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080E345E - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - bne _080E34A4 -_080E345E: - mov r0, r8 - bl b_side_obj__get_some_boolean - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E34A4 - ldr r1, _080E34D8 - ldr r0, _080E34DC - add r0, r8 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldrb r1, [r4] - adds r0, r6, 0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - movs r2, 0x1 - str r2, [sp, 0x20] -_080E34A4: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E34E4 - ldr r0, _080E34E0 - ldrh r4, [r0] - b _080E3522 - .align 2, 0 -_080E34B4: .4byte gUnknown_0202F7C9 -_080E34B8: .4byte gUnknown_030042C4 -_080E34BC: .4byte gUnknown_03004240 -_080E34C0: .4byte REG_WININ -_080E34C4: .4byte 0x00003f3f -_080E34C8: .4byte 0x00003f3d -_080E34CC: .4byte REG_BLDCNT -_080E34D0: .4byte 0x00003f42 -_080E34D4: .4byte REG_BG1CNT -_080E34D8: .4byte gSprites -_080E34DC: .4byte gUnknown_02024BE0 -_080E34E0: .4byte 0x02019348 -_080E34E4: - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080E3508 - ldr r1, _080E3500 - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E3504 - b _080E3516 - .align 2, 0 -_080E3500: .4byte gUnknown_02024A6A -_080E3504: .4byte gEnemyParty -_080E3508: - ldr r1, _080E3568 - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E356C -_080E3516: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 -_080E3522: - ldr r6, _080E3570 - adds r0, r5, r6 - ldrb r1, [r0] - adds r0, r5, 0 - adds r2, r4, 0 - bl sub_807A4A0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0x6 - ldrsh r0, [r7, r3] - cmp r0, 0 - beq _080E3550 - mov r1, r8 - adds r0, r1, r6 - ldrb r1, [r0] - mov r0, r8 - adds r2, r4, 0 - bl sub_807A4A0 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x1C] -_080E3550: - mov r0, sp - bl sub_8078914 - movs r2, 0 - ldrsh r0, [r7, r2] - cmp r0, 0 - bne _080E3578 - ldr r0, _080E3574 - ldr r1, [sp, 0x4] - bl LZDecompressVram - b _080E3580 - .align 2, 0 -_080E3568: .4byte gUnknown_02024A6A -_080E356C: .4byte gPlayerParty -_080E3570: .4byte gUnknown_02024BE0 -_080E3574: .4byte gBattleStatMask1_Tilemap -_080E3578: - ldr r0, _080E35B0 - ldr r1, [sp, 0x4] - bl LZDecompressVram -_080E3580: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E3598 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080E3598: - ldr r0, _080E35B4 - ldr r1, [sp] - bl LZDecompressVram - ldrh r0, [r7, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080E35BC - ldr r0, _080E35B8 - b _080E35FE - .align 2, 0 -_080E35B0: .4byte gBattleStatMask2_Tilemap -_080E35B4: .4byte gBattleStatMask_Gfx -_080E35B8: .4byte gBattleStatMask2_Pal -_080E35BC: - cmp r0, 0x1 - bne _080E35C8 - ldr r0, _080E35C4 - b _080E35FE - .align 2, 0 -_080E35C4: .4byte gBattleStatMask1_Pal -_080E35C8: - cmp r0, 0x2 - bne _080E35D4 - ldr r0, _080E35D0 - b _080E35FE - .align 2, 0 -_080E35D0: .4byte gBattleStatMask3_Pal -_080E35D4: - cmp r0, 0x3 - bne _080E35E0 - ldr r0, _080E35DC - b _080E35FE - .align 2, 0 -_080E35DC: .4byte gBattleStatMask4_Pal -_080E35E0: - cmp r0, 0x4 - bne _080E35EC - ldr r0, _080E35E8 - b _080E35FE - .align 2, 0 -_080E35E8: .4byte gBattleStatMask6_Pal -_080E35EC: - cmp r0, 0x5 - bne _080E35F8 - ldr r0, _080E35F4 - b _080E35FE - .align 2, 0 -_080E35F4: .4byte gBattleStatMask7_Pal -_080E35F8: - cmp r0, 0x6 - bne _080E3610 - ldr r0, _080E360C -_080E35FE: - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _080E361E - .align 2, 0 -_080E360C: .4byte gBattleStatMask8_Pal -_080E3610: - ldr r0, _080E3644 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette -_080E361E: - ldr r2, _080E3648 - movs r1, 0 - strh r1, [r2] - ldr r0, _080E364C - strh r1, [r0] - movs r3, 0 - ldrsh r0, [r7, r3] - cmp r0, 0x1 - bne _080E3658 - movs r0, 0x40 - strh r0, [r2] - ldr r2, _080E3650 - mov r0, r10 - add r0, r9 - lsls r0, 3 - adds r0, r2 - ldr r1, _080E3654 - strh r1, [r0, 0xA] - b _080E3668 - .align 2, 0 -_080E3644: .4byte gBattleStatMask5_Pal -_080E3648: .4byte gUnknown_030042C0 -_080E364C: .4byte gUnknown_030041B4 -_080E3650: .4byte gTasks -_080E3654: .4byte 0x0000fffd -_080E3658: - ldr r0, _080E3680 - mov r1, r10 - add r1, r9 - lsls r1, 3 - adds r1, r0 - movs r2, 0x3 - strh r2, [r1, 0xA] - adds r2, r0, 0 -_080E3668: - movs r1, 0x8 - ldrsh r0, [r7, r1] - cmp r0, 0 - bne _080E3684 - mov r0, r10 - add r0, r9 - lsls r0, 3 - adds r0, r2 - movs r1, 0xA - strh r1, [r0, 0x10] - movs r1, 0x14 - b _080E3692 - .align 2, 0 -_080E3680: .4byte gTasks -_080E3684: - mov r0, r10 - add r0, r9 - lsls r0, 3 - adds r0, r2 - movs r1, 0xD - strh r1, [r0, 0x10] - movs r1, 0x1E -_080E3692: - strh r1, [r0, 0x12] - mov r1, r10 - add r1, r9 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - ldrh r0, [r7, 0x6] - strh r0, [r1, 0xC] - mov r2, sp - ldrh r2, [r2, 0x1C] - strh r2, [r1, 0xE] - mov r3, sp - ldrh r3, [r3, 0x20] - strh r3, [r1, 0x14] - ldr r0, _080E36D8 - add r0, r8 - ldrb r0, [r0] - strh r0, [r1, 0x16] - ldr r0, _080E36DC - str r0, [r1] - movs r1, 0 - ldrsh r0, [r7, r1] - cmp r0, 0 - bne _080E36E0 - movs r0, 0x40 - negs r0, r0 - bl sub_8077094 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xEF - bl PlaySE12WithPanning - b _080E36F4 - .align 2, 0 -_080E36D8: .4byte gUnknown_02024BE0 -_080E36DC: .4byte sub_80E3704 -_080E36E0: - movs r0, 0x40 - negs r0, r0 - bl sub_8077094 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xF5 - bl PlaySE12WithPanning -_080E36F4: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E3338 - - thumb_func_start sub_80E3704 -sub_80E3704: @ 80E3704 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _080E3730 - ldr r1, _080E3734 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0xA] - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] - movs r3, 0x26 - ldrsh r2, [r4, r3] - cmp r2, 0x1 - beq _080E3774 - cmp r2, 0x1 - bgt _080E3738 - cmp r2, 0 - beq _080E373E - b _080E3866 - .align 2, 0 -_080E3730: .4byte gUnknown_030041B4 -_080E3734: .4byte gTasks -_080E3738: - cmp r2, 0x2 - beq _080E378E - b _080E3866 -_080E373E: - ldrh r0, [r4, 0x1E] - adds r1, r0, 0x1 - strh r1, [r4, 0x1E] - lsls r0, 16 - cmp r0, 0 - bgt _080E374C - b _080E3866 -_080E374C: - strh r2, [r4, 0x1E] - ldrh r1, [r4, 0x20] - adds r1, 0x1 - strh r1, [r4, 0x20] - ldr r2, _080E3770 - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080E3866 - b _080E3786 - .align 2, 0 -_080E3770: .4byte REG_BLDALPHA -_080E3774: - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x12 - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _080E3866 -_080E3786: - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - b _080E3866 -_080E378E: - ldrh r0, [r4, 0x1E] - adds r1, r0, 0x1 - strh r1, [r4, 0x1E] - lsls r0, 16 - cmp r0, 0 - ble _080E3866 - movs r0, 0 - strh r0, [r4, 0x1E] - ldrh r1, [r4, 0x20] - subs r1, 0x1 - strh r1, [r4, 0x20] - ldr r7, _080E386C - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r7] - movs r0, 0x20 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _080E3866 - movs r0, 0 - bl sub_8076464 - ldr r0, _080E3870 - strh r5, [r0] - ldr r0, _080E3874 - strh r5, [r0] - ldr r0, _080E3878 - ldr r2, _080E387C - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E37E8 - ldr r2, _080E3880 - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080E37E8: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - eors r0, r1 - strh r0, [r2] - ldr r0, _080E3884 - strh r5, [r0] - strh r5, [r7] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _080E3888 - adds r0, r5 - bl DestroySprite - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080E3828 - movs r2, 0xE - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite -_080E3828: - movs r3, 0x14 - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _080E3854 - movs r1, 0x16 - ldrsh r0, [r4, r1] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r5 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] -_080E3854: - ldr r2, _080E3880 - ldrb r1, [r2, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x1] - adds r0, r6, 0 - bl move_anim_task_del -_080E3866: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E386C: .4byte REG_BLDALPHA -_080E3870: .4byte gUnknown_030042C4 -_080E3874: .4byte gUnknown_03004240 -_080E3878: .4byte REG_WININ -_080E387C: .4byte 0x00003f3f -_080E3880: .4byte REG_BG1CNT -_080E3884: .4byte REG_BLDCNT -_080E3888: .4byte gSprites - thumb_func_end sub_80E3704 - - thumb_func_start sub_80E388C -sub_80E388C: @ 80E388C - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x1 - bl sub_80792C0 - adds r6, r0, 0 - movs r1, 0 - bl sub_80E39BC - ldr r0, _080E38EC - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - lsrs r0, r6, 16 - movs r5, 0 - strh r0, [r4, 0x24] - str r5, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80791A8 - adds r6, r0, 0 - ldr r1, _080E38F0 - ands r6, r1 - adds r0, r6, 0 - bl sub_80E39BC - strh r6, [r4, 0x26] - strh r5, [r4, 0x8] - strh r5, [r4, 0xA] - ldr r0, _080E38F4 - str r0, [r4] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E38EC: .4byte gTasks -_080E38F0: .4byte 0x0000ffff -_080E38F4: .4byte sub_80E38F8 - thumb_func_end sub_80E388C - - thumb_func_start sub_80E38F8 -sub_80E38F8: @ 80E38F8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E391C - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080E393C - cmp r1, 0x1 - bgt _080E3920 - cmp r1, 0 - beq _080E3926 - b _080E39B6 - .align 2, 0 -_080E391C: .4byte gTasks -_080E3920: - cmp r1, 0x2 - beq _080E39B0 - b _080E39B6 -_080E3926: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - ble _080E39B6 - strh r1, [r4, 0xA] - movs r0, 0x10 - strh r0, [r4, 0xC] - b _080E39A4 -_080E393C: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E39B6 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - movs r5, 0 - movs r6, 0x1 -_080E3958: - movs r1, 0x26 - ldrsh r0, [r4, r1] - asrs r0, r5 - ands r0, r6 - cmp r0, 0 - beq _080E3972 - lsls r0, r5, 20 - lsrs r0, 16 - ldrb r2, [r4, 0xC] - movs r1, 0x10 - ldr r3, _080E39AC - bl BlendPalette -_080E3972: - movs r1, 0x24 - ldrsh r0, [r4, r1] - asrs r0, r5 - ands r0, r6 - cmp r0, 0 - beq _080E3992 - lsls r0, r5, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - ldrb r2, [r4, 0xC] - movs r1, 0x10 - movs r3, 0 - bl BlendPalette -_080E3992: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xF - bls _080E3958 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E39B6 -_080E39A4: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E39B6 - .align 2, 0 -_080E39AC: .4byte 0x0000ffff -_080E39B0: - adds r0, r2, 0 - bl move_anim_task_del -_080E39B6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E38F8 - - thumb_func_start sub_80E39BC -sub_80E39BC: @ 80E39BC - push {r4-r6,lr} - adds r3, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - movs r2, 0 -_080E39C6: - movs r0, 0x1 - ands r0, r3 - lsrs r4, r3, 1 - adds r5, r2, 0x1 - cmp r0, 0 - beq _080E39F2 - lsls r0, r2, 20 - lsrs r2, r0, 16 - adds r0, r2, 0 - adds r0, 0x10 - cmp r2, r0 - bge _080E39F2 - ldr r1, _080E3A04 - adds r3, r0, 0 -_080E39E2: - lsls r0, r2, 1 - adds r0, r1 - strh r6, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - blt _080E39E2 -_080E39F2: - adds r3, r4, 0 - lsls r0, r5, 16 - lsrs r2, r0, 16 - cmp r2, 0x1F - bls _080E39C6 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E3A04: .4byte gPlttBufferFaded - thumb_func_end sub_80E39BC - - thumb_func_start sub_80E3A08 -sub_80E3A08: @ 80E3A08 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - movs r2, 0 - ldr r0, _080E3A50 - ldrb r3, [r0] - movs r5, 0x1 -_080E3A18: - cmp r3, r2 - beq _080E3A26 - adds r1, r2, 0 - adds r1, 0x10 - adds r0, r5, 0 - lsls r0, r1 - orrs r4, r0 -_080E3A26: - adds r2, 0x1 - cmp r2, 0x3 - bls _080E3A18 - movs r2, 0x5 - ldr r0, _080E3A54 - adds r1, r0, 0 - adds r1, 0x8 -_080E3A34: - ldrh r0, [r1] - strh r0, [r1, 0x2] - subs r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bne _080E3A34 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_80E2C8C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E3A50: .4byte gUnknown_0202F7C8 -_080E3A54: .4byte gUnknown_03004B00 - thumb_func_end sub_80E3A08 - - thumb_func_start sub_80E3A58 -sub_80E3A58: @ 80E3A58 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0 - bl sub_80789D4 - ldr r0, _080E3AC0 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080E3AC4 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080E3A94 - ldr r0, _080E3AC8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080E3A94 - ldrh r0, [r4] - negs r0, r0 - strh r0, [r4] - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] -_080E3A94: - ldr r0, _080E3ACC - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r2, _080E3AC4 - ldrh r0, [r2] - strh r0, [r1, 0xA] - ldrh r0, [r2, 0x2] - strh r0, [r1, 0xC] - ldrh r0, [r2, 0x6] - strh r0, [r1, 0xE] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - adds r0, r6, 0 - bl move_anim_task_del - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E3AC0: .4byte sub_80E3AD0 -_080E3AC4: .4byte gUnknown_03004B00 -_080E3AC8: .4byte gUnknown_0202F7C8 -_080E3ACC: .4byte gTasks - thumb_func_end sub_80E3A58 - - thumb_func_start sub_80E3AD0 -sub_80E3AD0: @ 80E3AD0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080E3B3C - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r3, [r1, 0xA] - ldrh r0, [r1, 0x1C] - adds r3, r0 - movs r4, 0 - mov r12, r4 - strh r3, [r1, 0x1C] - ldrh r2, [r1, 0xC] - ldrh r7, [r1, 0x1E] - adds r2, r7 - strh r2, [r1, 0x1E] - ldr r6, _080E3B40 - lsls r0, r3, 16 - asrs r0, 24 - ldrh r4, [r6] - adds r0, r4 - strh r0, [r6] - ldr r4, _080E3B44 - lsls r0, r2, 16 - asrs r0, 24 - ldrh r7, [r4] - adds r0, r7 - strh r0, [r4] - movs r0, 0xFF - ands r3, r0 - strh r3, [r1, 0x1C] - ands r2, r0 - strh r2, [r1, 0x1E] - ldr r0, _080E3B48 - movs r3, 0xE - ldrsh r2, [r0, r3] - movs r7, 0xE - ldrsh r0, [r1, r7] - cmp r2, r0 - bne _080E3B36 - mov r0, r12 - strh r0, [r6] - strh r0, [r4] - movs r0, 0x1 - bl sub_80789D4 - adds r0, r5, 0 - bl DestroyTask -_080E3B36: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E3B3C: .4byte gTasks -_080E3B40: .4byte gUnknown_030041B0 -_080E3B44: .4byte gUnknown_030041B8 -_080E3B48: .4byte gUnknown_03004B00 - thumb_func_end sub_80E3AD0 - - thumb_func_start sub_80E3B4C -sub_80E3B4C: @ 80E3B4C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080E3B70 - ldrb r0, [r0] - bl battle_side_get_owner - ldr r1, _080E3B74 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0xE] - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E3B70: .4byte gUnknown_0202F7C8 -_080E3B74: .4byte gUnknown_03004B00 - thumb_func_end sub_80E3B4C - - thumb_func_start sub_80E3B78 -sub_80E3B78: @ 80E3B78 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080E3B9C - ldrb r0, [r0] - bl battle_side_get_owner - ldr r1, _080E3BA0 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0xE] - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E3B9C: .4byte gUnknown_0202F7C9 -_080E3BA0: .4byte gUnknown_03004B00 - thumb_func_end sub_80E3B78 - - thumb_func_start sub_80E3BA4 -sub_80E3BA4: @ 80E3BA4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r5, _080E3BD0 - movs r4, 0 - ldr r0, _080E3BD4 - ldrb r2, [r0] - movs r0, 0x2 - ldr r1, _080E3BD8 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bne _080E3BC0 - movs r4, 0x1 -_080E3BC0: - strh r4, [r5, 0xE] - adds r0, r3, 0 - bl move_anim_task_del - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E3BD0: .4byte gUnknown_03004B00 -_080E3BD4: .4byte gUnknown_0202F7C8 -_080E3BD8: .4byte gUnknown_0202F7C9 - thumb_func_end sub_80E3BA4 - - thumb_func_start sub_80E3BDC -sub_80E3BDC: @ 80E3BDC - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r6, _080E3C3C -_080E3BE6: - ldr r0, _080E3C40 - ldrb r0, [r0] - cmp r4, r0 - beq _080E3C24 - lsls r0, r4, 24 - lsrs r0, 24 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080E3C24 - ldr r0, _080E3C44 - adds r0, r4, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldr r1, _080E3C48 - adds r2, 0x3E - movs r0, 0x1 - ldrb r3, [r1] - ands r3, r0 - lsls r3, 2 - ldrb r0, [r2] - movs r7, 0x5 - negs r7, r7 - adds r1, r7, 0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] -_080E3C24: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080E3BE6 - adds r0, r5, 0 - bl move_anim_task_del - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E3C3C: .4byte gSprites -_080E3C40: .4byte gUnknown_0202F7C8 -_080E3C44: .4byte gUnknown_02024BE0 -_080E3C48: .4byte gUnknown_03004B00 - thumb_func_end sub_80E3BDC - - thumb_func_start sub_80E3C4C -sub_80E3C4C: @ 80E3C4C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r1, [sp, 0x3C] - ldr r4, [sp, 0x40] - ldr r5, [sp, 0x44] - ldr r6, [sp, 0x48] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0xC] - lsls r3, 24 - lsrs r7, r3, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x10] - lsls r5, 24 - lsrs r5, 24 - str r5, [sp, 0x14] - lsls r6, 24 - lsrs r6, 24 - mov r10, r6 - movs r0, 0 - str r0, [sp, 0x18] - movs r0, 0x2 - adds r6, r7, 0 - eors r6, r0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E3CAE - mov r1, r8 - cmp r1, 0 - beq _080E3CB2 - adds r0, r6, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - bne _080E3CB2 -_080E3CAE: - movs r2, 0 - mov r8, r2 -_080E3CB2: - ldr r0, _080E3D34 - movs r1, 0 - strh r1, [r0] - ldr r0, _080E3D38 - strh r1, [r0] - ldr r1, _080E3D3C - ldr r3, _080E3D40 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080E3D44 - adds r0, r2, 0 - strh r0, [r1] - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E3D48 - ldr r2, _080E3D4C - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0x80 - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r1] - ldr r4, _080E3D50 - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E3D22 - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080E3D22: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E3D58 - ldr r0, _080E3D54 - ldrh r4, [r0] - b _080E3D96 - .align 2, 0 -_080E3D34: .4byte gUnknown_030042C4 -_080E3D38: .4byte gUnknown_03004240 -_080E3D3C: .4byte REG_WININ -_080E3D40: .4byte 0x00003f3f -_080E3D44: .4byte 0x00003f3d -_080E3D48: .4byte REG_BLDCNT -_080E3D4C: .4byte 0x00003f42 -_080E3D50: .4byte REG_BG1CNT -_080E3D54: .4byte 0x02019348 -_080E3D58: - adds r0, r7, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080E3D7C - ldr r1, _080E3D74 - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E3D78 - b _080E3D8A - .align 2, 0 -_080E3D74: .4byte gUnknown_02024A6A -_080E3D78: .4byte gEnemyParty -_080E3D7C: - ldr r1, _080E3E48 - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E3E4C -_080E3D8A: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 -_080E3D96: - ldr r5, _080E3E50 - adds r0, r7, r5 - ldrb r1, [r0] - adds r0, r7, 0 - adds r2, r4, 0 - bl sub_807A4A0 - lsls r0, 24 - lsrs r7, r0, 24 - mov r0, r8 - cmp r0, 0 - beq _080E3DC0 - adds r0, r6, r5 - ldrb r1, [r0] - adds r0, r6, 0 - adds r2, r4, 0 - bl sub_807A4A0 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x18] -_080E3DC0: - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - ldr r0, [sp, 0x50] - bl LZDecompressVram - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E3DE6 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080E3DE6: - ldr r1, [sp] - ldr r0, [sp, 0x4C] - bl LZDecompressVram - mov r0, sp - ldrb r1, [r0, 0x8] - lsls r1, 4 - ldr r0, [sp, 0x54] - movs r2, 0x20 - bl LoadCompressedPalette - ldr r0, _080E3E54 - movs r1, 0 - strh r1, [r0] - ldr r0, _080E3E58 - strh r1, [r0] - ldr r1, _080E3E5C - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - mov r3, sp - ldrh r3, [r3, 0xC] - strh r3, [r0, 0xA] - mov r1, sp - ldrh r1, [r1, 0x10] - strh r1, [r0, 0x10] - mov r2, r10 - strh r2, [r0, 0x12] - mov r3, sp - ldrh r3, [r3, 0x14] - strh r3, [r0, 0x14] - strh r7, [r0, 0x8] - mov r1, r8 - strh r1, [r0, 0xC] - mov r2, sp - ldrh r2, [r2, 0x18] - strh r2, [r0, 0xE] - ldr r1, _080E3E60 - str r1, [r0] - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E3E48: .4byte gUnknown_02024A6A -_080E3E4C: .4byte gPlayerParty -_080E3E50: .4byte gUnknown_02024BE0 -_080E3E54: .4byte gUnknown_030042C0 -_080E3E58: .4byte gUnknown_030041B4 -_080E3E5C: .4byte gTasks -_080E3E60: .4byte sub_80E3E64 - thumb_func_end sub_80E3C4C - - thumb_func_start sub_80E3E64 -sub_80E3E64: @ 80E3E64 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080E3E9C - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r1 - movs r0, 0xA - ldrsh r2, [r3, r0] - adds r5, r1, 0 - cmp r2, 0 - bge _080E3E80 - negs r2, r2 -_080E3E80: - ldrh r0, [r3, 0x22] - adds r4, r0, r2 - strh r4, [r3, 0x22] - movs r1, 0xA - ldrsh r0, [r3, r1] - cmp r0, 0 - bge _080E3EA4 - ldr r2, _080E3EA0 - lsls r1, r4, 16 - asrs r1, 24 - ldrh r0, [r2] - subs r0, r1 - strh r0, [r2] - b _080E3EB0 - .align 2, 0 -_080E3E9C: .4byte gTasks -_080E3EA0: .4byte gUnknown_030041B4 -_080E3EA4: - ldr r1, _080E3ED4 - lsls r0, r4, 16 - asrs r0, 24 - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] -_080E3EB0: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r5 - ldrh r1, [r4, 0x22] - movs r0, 0xFF - ands r0, r1 - movs r2, 0 - strh r0, [r4, 0x22] - movs r3, 0x26 - ldrsh r0, [r4, r3] - cmp r0, 0x1 - beq _080E3F18 - cmp r0, 0x1 - bgt _080E3ED8 - cmp r0, 0 - beq _080E3EDE - b _080E3FE2 - .align 2, 0 -_080E3ED4: .4byte gUnknown_030041B4 -_080E3ED8: - cmp r0, 0x2 - beq _080E3F32 - b _080E3FE2 -_080E3EDE: - ldrh r0, [r4, 0x1E] - adds r1, r0, 0x1 - strh r1, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x14 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _080E3FE2 - strh r2, [r4, 0x1E] - ldrh r1, [r4, 0x20] - adds r1, 0x1 - strh r1, [r4, 0x20] - ldr r2, _080E3F14 - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080E3FE2 - b _080E3F2A - .align 2, 0 -_080E3F14: .4byte REG_BLDALPHA -_080E3F18: - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x12 - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _080E3FE2 -_080E3F2A: - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - b _080E3FE2 -_080E3F32: - ldrh r0, [r4, 0x1E] - adds r1, r0, 0x1 - strh r1, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x14 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _080E3FE2 - strh r2, [r4, 0x1E] - ldrh r1, [r4, 0x20] - subs r1, 0x1 - strh r1, [r4, 0x20] - ldr r7, _080E3FE8 - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r7] - movs r0, 0x20 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _080E3FE2 - movs r0, 0 - bl sub_8076464 - ldr r0, _080E3FEC - strh r5, [r0] - ldr r0, _080E3FF0 - strh r5, [r0] - ldr r0, _080E3FF4 - ldr r2, _080E3FF8 - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E3F90 - ldr r2, _080E3FFC - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080E3F90: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - eors r0, r1 - strh r0, [r2] - ldr r0, _080E4000 - strh r5, [r0] - strh r5, [r7] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _080E4004 - adds r0, r5 - bl DestroySprite - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080E3FD0 - movs r2, 0xE - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite -_080E3FD0: - ldr r2, _080E3FFC - ldrb r1, [r2, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x1] - adds r0, r6, 0 - bl move_anim_task_del -_080E3FE2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E3FE8: .4byte REG_BLDALPHA -_080E3FEC: .4byte gUnknown_030042C4 -_080E3FF0: .4byte gUnknown_03004240 -_080E3FF4: .4byte REG_WININ -_080E3FF8: .4byte 0x00003f3f -_080E3FFC: .4byte REG_BG1CNT -_080E4000: .4byte REG_BLDCNT -_080E4004: .4byte gSprites - thumb_func_end sub_80E3E64 - - thumb_func_start sub_80E4008 -sub_80E4008: @ 80E4008 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E4020 - ldr r1, _080E4024 - ldrb r1, [r1] - strh r1, [r2] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080E4020: .4byte gUnknown_03004B00 -_080E4024: .4byte gUnknown_0300428C - thumb_func_end sub_80E4008 - - thumb_func_start sub_80E4028 -sub_80E4028: @ 80E4028 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r0, _080E4068 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080E406C - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80791A8 - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080E4084 - movs r2, 0x1 -_080E405A: - lsrs r1, 1 - adds r4, 0x1 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _080E405A - b _080E4084 - .align 2, 0 -_080E4068: .4byte gUnknown_03004B00 -_080E406C: - cmp r0, 0x1 - bne _080E4078 - ldr r0, _080E4074 - b _080E407E - .align 2, 0 -_080E4074: .4byte gUnknown_0202F7C8 -_080E4078: - cmp r0, 0x2 - bne _080E4084 - ldr r0, _080E409C -_080E407E: - ldrb r0, [r0] - adds r4, r0, 0 - adds r4, 0x10 -_080E4084: - ldr r0, _080E40A0 - movs r1, 0x2 - ldrsh r0, [r0, r1] - lsls r5, r0, 5 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E40A8 - ldr r0, _080E40A4 - b _080E40AA - .align 2, 0 -_080E409C: .4byte gUnknown_0202F7C9 -_080E40A0: .4byte gUnknown_03004B00 -_080E40A4: .4byte 0x02014800 -_080E40A8: - ldr r0, _080E40C8 -_080E40AA: - adds r2, r5, r0 - lsls r1, r4, 5 - ldr r0, _080E40CC - adds r1, r0 - adds r0, r2, 0 - movs r2, 0x20 - bl memcpy - adds r0, r6, 0 - bl move_anim_task_del - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E40C8: .4byte 0x02018000 -_080E40CC: .4byte gPlttBufferUnfaded - thumb_func_end sub_80E4028 - - thumb_func_start sub_80E40D0 -sub_80E40D0: @ 80E40D0 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r0, _080E4110 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080E4114 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80791A8 - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080E412C - movs r2, 0x1 -_080E4102: - lsrs r1, 1 - adds r4, 0x1 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _080E4102 - b _080E412C - .align 2, 0 -_080E4110: .4byte gUnknown_03004B00 -_080E4114: - cmp r0, 0x1 - bne _080E4120 - ldr r0, _080E411C - b _080E4126 - .align 2, 0 -_080E411C: .4byte gUnknown_0202F7C8 -_080E4120: - cmp r0, 0x2 - bne _080E412C - ldr r0, _080E4148 -_080E4126: - ldrb r0, [r0] - adds r4, r0, 0 - adds r4, 0x10 -_080E412C: - lsls r1, r4, 5 - ldr r0, _080E414C - adds r5, r1, r0 - ldr r0, _080E4150 - movs r1, 0x2 - ldrsh r0, [r0, r1] - lsls r4, r0, 5 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E4158 - ldr r0, _080E4154 - b _080E415A - .align 2, 0 -_080E4148: .4byte gUnknown_0202F7C9 -_080E414C: .4byte gPlttBufferUnfaded -_080E4150: .4byte gUnknown_03004B00 -_080E4154: .4byte 0x02014800 -_080E4158: - ldr r0, _080E4174 -_080E415A: - adds r1, r4, r0 - adds r0, r5, 0 - movs r2, 0x20 - bl memcpy - adds r0, r6, 0 - bl move_anim_task_del - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E4174: .4byte 0x02018000 - thumb_func_end sub_80E40D0 - - thumb_func_start sub_80E4178 -sub_80E4178: @ 80E4178 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _080E41B8 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080E41BC - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80791A8 - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080E41D4 - movs r2, 0x1 -_080E41AA: - lsrs r1, 1 - adds r4, 0x1 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _080E41AA - b _080E41D4 - .align 2, 0 -_080E41B8: .4byte gUnknown_03004B00 -_080E41BC: - cmp r0, 0x1 - bne _080E41C8 - ldr r0, _080E41C4 - b _080E41CE - .align 2, 0 -_080E41C4: .4byte gUnknown_0202F7C8 -_080E41C8: - cmp r0, 0x2 - bne _080E41D4 - ldr r0, _080E41F4 -_080E41CE: - ldrb r0, [r0] - adds r4, r0, 0 - adds r4, 0x10 -_080E41D4: - lsls r1, r4, 5 - ldr r0, _080E41F8 - adds r0, r1, r0 - ldr r2, _080E41FC - adds r1, r2 - movs r2, 0x20 - bl memcpy - adds r0, r5, 0 - bl move_anim_task_del - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E41F4: .4byte gUnknown_0202F7C9 -_080E41F8: .4byte gPlttBufferUnfaded -_080E41FC: .4byte gPlttBufferFaded - thumb_func_end sub_80E4178 - - thumb_func_start sub_80E4200 -sub_80E4200: @ 80E4200 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080E4220 - ldr r1, _080E421C - movs r0, 0x1 - strh r0, [r1, 0xE] - b _080E4224 - .align 2, 0 -_080E421C: .4byte gUnknown_03004B00 -_080E4220: - ldr r0, _080E4230 - strh r1, [r0, 0xE] -_080E4224: - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E4230: .4byte gUnknown_03004B00 - thumb_func_end sub_80E4200 - - thumb_func_start sub_80E4234 -sub_80E4234: @ 80E4234 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E4254 - ldr r1, _080E4258 - ldrb r1, [r1] - strb r1, [r2] - ldr r2, _080E425C - ldr r1, _080E4260 - ldrb r1, [r1] - strb r1, [r2] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080E4254: .4byte gUnknown_0202F7C8 -_080E4258: .4byte gUnknown_02024C08 -_080E425C: .4byte gUnknown_0202F7C9 -_080E4260: .4byte gUnknown_02024C0A - thumb_func_end sub_80E4234 - - thumb_func_start sub_80E4264 -sub_80E4264: @ 80E4264 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080E428C - ldrb r0, [r0] - bl battle_side_get_owner - adds r4, r0, 0 - ldr r0, _080E4290 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080E4298 - ldr r1, _080E4294 - movs r0, 0x1 - b _080E429C - .align 2, 0 -_080E428C: .4byte gUnknown_0202F7C8 -_080E4290: .4byte gUnknown_0202F7C9 -_080E4294: .4byte gUnknown_03004B00 -_080E4298: - ldr r1, _080E42AC - movs r0, 0 -_080E429C: - strh r0, [r1, 0xE] - adds r0, r5, 0 - bl move_anim_task_del - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E42AC: .4byte gUnknown_03004B00 - thumb_func_end sub_80E4264 - - thumb_func_start sub_80E42B0 -sub_80E42B0: @ 80E42B0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E42C8 - ldr r1, _080E42CC - ldrb r1, [r1] - strb r1, [r2] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080E42C8: .4byte gUnknown_0202F7C9 -_080E42CC: .4byte gUnknown_02024C08 - thumb_func_end sub_80E42B0 - - thumb_func_start sub_80E42D0 -sub_80E42D0: @ 80E42D0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E42F0 - ldr r1, _080E42F4 - ldrb r1, [r1] - strb r1, [r2] - ldr r2, _080E42F8 - ldr r1, _080E42FC - ldrb r1, [r1] - strb r1, [r2] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080E42F0: .4byte gUnknown_0202F7C8 -_080E42F4: .4byte gUnknown_02024C07 -_080E42F8: .4byte gUnknown_0202F7C9 -_080E42FC: .4byte gUnknown_02024C0A - thumb_func_end sub_80E42D0 - - thumb_func_start sub_80E4300 -sub_80E4300: @ 80E4300 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E4318 - adds r0, r4, 0 - bl move_anim_task_del - b _080E434E -_080E4318: - ldr r0, _080E4354 - lsls r3, r4, 2 - adds r3, r4 - lsls r3, 3 - adds r3, r0 - ldr r1, _080E4358 - ldrb r0, [r1] - lsls r0, 2 - ldr r2, _080E435C - adds r0, r2 - ldr r0, [r0] - lsls r0, 31 - lsrs r0, 31 - strh r0, [r3, 0x8] - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1] - ldr r0, _080E4360 - str r0, [r3] - ldr r1, _080E4364 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_080E434E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E4354: .4byte gTasks -_080E4358: .4byte gUnknown_0202F7C8 -_080E435C: .4byte 0x02017800 -_080E4360: .4byte sub_80E4368 -_080E4364: .4byte gUnknown_0202F7B2 - thumb_func_end sub_80E4300 - - thumb_func_start sub_80E4368 -sub_80E4368: @ 80E4368 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E43B0 - movs r2, 0xE - ldrsh r1, [r0, r2] - movs r0, 0x80 - lsls r0, 5 - cmp r1, r0 - bne _080E43A8 - ldr r0, _080E43B4 - ldrb r3, [r0] - lsls r3, 2 - ldr r0, _080E43B8 - adds r3, r0 - ldr r1, _080E43BC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x8] - movs r1, 0x1 - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, 0 - bl DestroyTask -_080E43A8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E43B0: .4byte gUnknown_03004B00 -_080E43B4: .4byte gUnknown_0202F7C8 -_080E43B8: .4byte 0x02017800 -_080E43BC: .4byte gTasks - thumb_func_end sub_80E4368 - - thumb_func_start sub_80E43C0 -sub_80E43C0: @ 80E43C0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E43D8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E43E0 - ldr r0, _080E43DC - b _080E4408 - .align 2, 0 -_080E43D8: .4byte gUnknown_020239F8 -_080E43DC: .4byte sub_80E4C34 -_080E43E0: - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - beq _080E4400 - ldr r0, _080E43F8 - ldrb r0, [r0] - cmp r0, 0x2 - beq _080E4400 - movs r4, 0x3 - ldr r0, _080E43FC - b _080E4408 - .align 2, 0 -_080E43F8: .4byte gGameVersion -_080E43FC: .4byte task00_battle_intro_80BC6C8 -_080E4400: - ldr r1, _080E4434 - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] -_080E4408: - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080E4438 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - movs r0, 0 - strh r0, [r1, 0x8] - strh r4, [r1, 0xA] - strh r0, [r1, 0xC] - strh r0, [r1, 0xE] - strh r0, [r1, 0x10] - strh r0, [r1, 0x12] - strh r0, [r1, 0x14] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E4434: .4byte gUnknown_083DB56C -_080E4438: .4byte gTasks - thumb_func_end sub_80E43C0 - - thumb_func_start sub_80E443C -sub_80E443C: @ 80E443C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - ldr r0, _080E4474 - movs r1, 0 - strh r1, [r0] - ldr r0, _080E4478 - strh r1, [r0] - ldr r0, _080E447C - strh r1, [r0] - ldr r0, _080E4480 - strh r1, [r0] - ldr r0, _080E4484 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0xC - ldr r2, _080E4488 - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080E4474: .4byte gUnknown_030042C0 -_080E4478: .4byte gUnknown_030041B4 -_080E447C: .4byte gUnknown_03004288 -_080E4480: .4byte gUnknown_03004280 -_080E4484: .4byte REG_BLDCNT -_080E4488: .4byte 0x00003f3f - thumb_func_end sub_80E443C - - thumb_func_start task_battle_intro_80BC47C -task_battle_intro_80BC47C: @ 80E448C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080E44C4 - ldrh r0, [r1] - adds r0, 0x6 - strh r0, [r1] - ldr r1, _080E44C8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - mov r8, r1 - cmp r0, 0x4 - bls _080E44B8 - b _080E46BE -_080E44B8: - lsls r0, 2 - ldr r1, _080E44CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E44C4: .4byte gUnknown_030042C0 -_080E44C8: .4byte gTasks -_080E44CC: .4byte _080E44D0 - .align 2, 0 -_080E44D0: - .4byte _080E44E4 - .4byte _080E4514 - .4byte _080E4540 - .4byte _080E4588 - .4byte _080E46B8 -_080E44E4: - ldr r0, _080E44FC - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E4500 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r8 - movs r1, 0x10 - b _080E450A - .align 2, 0 -_080E44FC: .4byte gUnknown_020239F8 -_080E4500: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r8 - movs r1, 0x1 -_080E450A: - strh r1, [r0, 0xC] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080E46BE -_080E4514: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - mov r3, r8 - adds r1, r0, r3 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080E452C - b _080E46BE -_080E452C: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r1, _080E453C - movs r0, 0x3F - strh r0, [r1] - b _080E46BE - .align 2, 0 -_080E453C: .4byte REG_WININ -_080E4540: - ldr r1, _080E457C - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080E4558 - b _080E46BE -_080E4558: - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - add r1, r8 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - ldr r2, _080E4580 - ldrh r1, [r2] - ldr r0, _080E4584 - ands r0, r1 - strh r0, [r2] - b _080E46BE - .align 2, 0 -_080E457C: .4byte gUnknown_03004240 -_080E4580: .4byte gUnknown_02024DE8 -_080E4584: .4byte 0x0000fffe -_080E4588: - lsls r0, r4, 2 - adds r1, r0, r4 - lsls r1, 3 - mov r5, r8 - adds r2, r1, r5 - ldrh r3, [r2, 0xE] - movs r5, 0xE - ldrsh r1, [r2, r5] - mov r12, r0 - cmp r1, 0 - beq _080E45A4 - subs r0, r3, 0x1 - strh r0, [r2, 0xE] - b _080E45D2 -_080E45A4: - movs r1, 0xA - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _080E45C4 - ldr r2, _080E45BC - ldrh r1, [r2] - ldr r0, _080E45C0 - cmp r1, r0 - beq _080E45D2 - subs r0, r1, 0x2 - b _080E45D0 - .align 2, 0 -_080E45BC: .4byte gUnknown_030041B4 -_080E45C0: .4byte 0x0000ffb0 -_080E45C4: - ldr r2, _080E4690 - ldrh r1, [r2] - ldr r0, _080E4694 - cmp r1, r0 - beq _080E45D2 - subs r0, r1, 0x1 -_080E45D0: - strh r0, [r2] -_080E45D2: - ldr r2, _080E4698 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080E45E6 - ldr r3, _080E469C - adds r0, r1, r3 - strh r0, [r2] -_080E45E6: - mov r5, r12 - adds r0, r5, r4 - lsls r0, 3 - mov r2, r8 - adds r1, r0, r2 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080E45FE - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080E45FE: - movs r3, 0 - ldr r5, _080E46A0 - mov r9, r5 - ldr r7, _080E46A4 - mov r6, r9 - adds r5, r1, 0 -_080E460A: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r5, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080E460A - cmp r3, 0x9F - bgt _080E464E - ldr r7, _080E46A4 - ldr r6, _080E46A0 - ldr r1, _080E46A8 - mov r2, r12 - adds r0, r2, r4 - lsls r0, 3 - adds r5, r0, r1 -_080E4634: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r5, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080E4634 -_080E464E: - mov r3, r12 - adds r0, r3, r4 - lsls r0, 3 - mov r5, r8 - adds r1, r0, r5 - movs r0, 0xC - ldrsh r2, [r1, r0] - cmp r2, 0 - bne _080E46BE - movs r0, 0x3 - mov r3, r9 - strb r0, [r3, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - str r2, [sp] - ldr r1, _080E46AC - ldr r2, _080E46B0 - mov r0, sp - bl CpuSet - ldr r1, _080E46B4 - movs r5, 0x9C - lsls r5, 8 - adds r0, r5, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0xBC - lsls r2, 7 - adds r0, r2, 0 - strh r0, [r1] - b _080E46BE - .align 2, 0 -_080E4690: .4byte gUnknown_030041B4 -_080E4694: .4byte 0x0000ffc8 -_080E4698: .4byte gUnknown_03004240 -_080E469C: .4byte 0xfffffc04 -_080E46A0: .4byte gUnknown_03004DC0 -_080E46A4: .4byte gUnknown_03004DE0 -_080E46A8: .4byte gTasks -_080E46AC: .4byte 0x0600e000 -_080E46B0: .4byte 0x05000200 -_080E46B4: .4byte REG_BG1CNT -_080E46B8: - adds r0, r4, 0 - bl sub_80E443C -_080E46BE: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end task_battle_intro_80BC47C - - thumb_func_start task00_battle_intro_80BC6C8 -task00_battle_intro_80BC6C8: @ 80E46CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080E46F8 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0xA - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x3 - beq _080E470C - cmp r0, 0x3 - bgt _080E46FC - cmp r0, 0x2 - beq _080E4700 - b _080E4714 - .align 2, 0 -_080E46F8: .4byte gTasks -_080E46FC: - cmp r0, 0x4 - bne _080E4714 -_080E4700: - ldr r1, _080E4708 - ldrh r0, [r1] - adds r0, 0x8 - b _080E4712 - .align 2, 0 -_080E4708: .4byte gUnknown_030042C0 -_080E470C: - ldr r1, _080E4750 - ldrh r0, [r1] - adds r0, 0x6 -_080E4712: - strh r0, [r1] -_080E4714: - lsls r0, r5, 2 - adds r1, r0, r5 - lsls r1, 3 - adds r4, r1, r2 - movs r3, 0xA - ldrsh r1, [r4, r3] - adds r6, r0, 0 - cmp r1, 0x4 - bne _080E4778 - ldr r7, _080E4754 - ldrh r0, [r4, 0x14] - bl Cos2 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080E473A - ldr r1, _080E4758 - adds r0, r1 -_080E473A: - asrs r0, 9 - subs r0, 0x8 - strh r0, [r7] - ldrh r1, [r4, 0x14] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0xB3 - bgt _080E475C - adds r0, r1, 0x4 - b _080E475E - .align 2, 0 -_080E4750: .4byte gUnknown_030042C0 -_080E4754: .4byte gUnknown_030041B4 -_080E4758: .4byte 0x000001ff -_080E475C: - adds r0, r1, 0x6 -_080E475E: - strh r0, [r4, 0x14] - ldr r2, _080E4794 - adds r0, r6, r5 - lsls r0, 3 - adds r3, r0, r2 - movs r4, 0x14 - ldrsh r1, [r3, r4] - movs r0, 0xB4 - lsls r0, 1 - cmp r1, r0 - bne _080E4778 - movs r0, 0 - strh r0, [r3, 0x14] -_080E4778: - adds r0, r6, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x4 - bls _080E4788 - b _080E4996 -_080E4788: - lsls r0, 2 - ldr r1, _080E4798 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E4794: .4byte gTasks -_080E4798: .4byte _080E479C - .align 2, 0 -_080E479C: - .4byte _080E47B0 - .4byte _080E47E0 - .4byte _080E480C - .4byte _080E485C - .4byte _080E4990 -_080E47B0: - ldr r1, _080E47CC - adds r0, r6, r5 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x10 - strh r3, [r2, 0x10] - ldr r0, _080E47D0 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E47D4 - strh r3, [r2, 0xC] - b _080E47D8 - .align 2, 0 -_080E47CC: .4byte gTasks -_080E47D0: .4byte gUnknown_020239F8 -_080E47D4: - movs r0, 0x1 - strh r0, [r2, 0xC] -_080E47D8: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080E4996 -_080E47E0: - ldr r0, _080E4804 - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080E47F6 - b _080E4996 -_080E47F6: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r1, _080E4808 - movs r0, 0x3F - strh r0, [r1] - b _080E4996 - .align 2, 0 -_080E4804: .4byte gTasks -_080E4808: .4byte REG_WININ -_080E480C: - ldr r1, _080E484C - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080E4824 - b _080E4996 -_080E4824: - ldr r0, _080E4850 - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - movs r0, 0x1 - strh r0, [r1, 0x12] - ldr r2, _080E4854 - ldrh r1, [r2] - ldr r0, _080E4858 - ands r0, r1 - strh r0, [r2] - b _080E4996 - .align 2, 0 -_080E484C: .4byte gUnknown_03004240 -_080E4850: .4byte gTasks -_080E4854: .4byte gUnknown_02024DE8 -_080E4858: .4byte 0x0000fffe -_080E485C: - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r2 - ldrh r3, [r1, 0xE] - movs r4, 0xE - ldrsh r0, [r1, r4] - cmp r0, 0 - beq _080E4898 - subs r0, r3, 0x1 - strh r0, [r1, 0xE] - lsls r0, 16 - asrs r3, r0, 16 - cmp r3, 0 - bne _080E48B8 - ldr r1, _080E488C - ldr r4, _080E4890 - adds r0, r4, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0xF - strh r0, [r1] - ldr r0, _080E4894 - strh r3, [r0] - b _080E48B8 - .align 2, 0 -_080E488C: .4byte REG_BLDCNT -_080E4890: .4byte 0x00001842 -_080E4894: .4byte REG_BLDY -_080E4898: - ldrh r3, [r1, 0x10] - movs r0, 0x1F - ands r0, r3 - cmp r0, 0 - beq _080E48B8 - ldrh r0, [r1, 0x12] - subs r0, 0x1 - strh r0, [r1, 0x12] - lsls r0, 16 - cmp r0, 0 - bne _080E48B8 - adds r0, r3, 0 - adds r0, 0xFF - strh r0, [r1, 0x10] - movs r0, 0x4 - strh r0, [r1, 0x12] -_080E48B8: - ldr r3, _080E4970 - ldrh r1, [r3] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080E48CC - ldr r4, _080E4974 - adds r0, r1, r4 - strh r0, [r3] -_080E48CC: - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080E48E0 - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080E48E0: - movs r3, 0 - ldr r4, _080E4978 - mov r8, r4 - ldr r0, _080E497C - mov r12, r0 - mov r7, r8 - adds r4, r1, 0 -_080E48EE: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r12 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080E48EE - cmp r3, 0x9F - bgt _080E4932 - ldr r1, _080E497C - mov r12, r1 - ldr r7, _080E4978 - ldr r1, _080E4980 - adds r0, r6, r5 - lsls r0, 3 - adds r4, r0, r1 -_080E4918: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r12 - ldrh r0, [r4, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080E4918 -_080E4932: - ldr r1, _080E4980 - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r3, 0xC - ldrsh r2, [r1, r3] - cmp r2, 0 - bne _080E4996 - movs r0, 0x3 - mov r4, r8 - strb r0, [r4, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - str r2, [sp] - ldr r1, _080E4984 - ldr r2, _080E4988 - mov r0, sp - bl CpuSet - ldr r1, _080E498C - movs r2, 0x9C - lsls r2, 8 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0xBC - lsls r3, 7 - adds r0, r3, 0 - strh r0, [r1] - b _080E4996 - .align 2, 0 -_080E4970: .4byte gUnknown_03004240 -_080E4974: .4byte 0xfffffc04 -_080E4978: .4byte gUnknown_03004DC0 -_080E497C: .4byte gUnknown_03004DE0 -_080E4980: .4byte gTasks -_080E4984: .4byte 0x0600e000 -_080E4988: .4byte 0x05000200 -_080E498C: .4byte REG_BG1CNT -_080E4990: - adds r0, r5, 0 - bl sub_80E443C -_080E4996: - ldr r0, _080E49B8 - adds r1, r6, r5 - lsls r1, 3 - adds r2, r1, r0 - movs r4, 0x8 - ldrsh r0, [r2, r4] - cmp r0, 0x4 - beq _080E49AC - ldr r1, _080E49BC - ldrh r0, [r2, 0x10] - strh r0, [r1] -_080E49AC: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E49B8: .4byte gTasks -_080E49BC: .4byte REG_BLDALPHA - thumb_func_end task00_battle_intro_80BC6C8 - - thumb_func_start task_battle_intro_anim -task_battle_intro_anim: @ 80E49C0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080E49F4 - ldrh r0, [r1] - adds r0, 0x8 - strh r0, [r1] - ldr r1, _080E49F8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r5, r1, 0 - cmp r0, 0x4 - bls _080E49EA - b _080E4C06 -_080E49EA: - lsls r0, 2 - ldr r1, _080E49FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E49F4: .4byte gUnknown_030042C0 -_080E49F8: .4byte gTasks -_080E49FC: .4byte _080E4A00 - .align 2, 0 -_080E4A00: - .4byte _080E4A14 - .4byte _080E4A6C - .4byte _080E4A9C - .4byte _080E4AEC - .4byte _080E4C00 -_080E4A14: - ldr r1, _080E4A48 - ldr r3, _080E4A4C - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _080E4A50 - ldr r6, _080E4A54 - adds r2, r6, 0 - strh r2, [r0] - adds r1, 0x4 - movs r0, 0 - strh r0, [r1] - ldr r1, _080E4A58 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r3, r0, r1 - strh r2, [r3, 0x10] - ldr r0, _080E4A5C - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E4A60 - movs r0, 0x10 - b _080E4A62 - .align 2, 0 -_080E4A48: .4byte REG_BLDCNT -_080E4A4C: .4byte 0x00001842 -_080E4A50: .4byte REG_BLDALPHA -_080E4A54: .4byte 0x00000808 -_080E4A58: .4byte gTasks -_080E4A5C: .4byte gUnknown_020239F8 -_080E4A60: - movs r0, 0x1 -_080E4A62: - strh r0, [r3, 0xC] - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - b _080E4C06 -_080E4A6C: - ldr r0, _080E4A94 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080E4A84 - b _080E4C06 -_080E4A84: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r1, _080E4A98 - movs r0, 0x3F - strh r0, [r1] - b _080E4C06 - .align 2, 0 -_080E4A94: .4byte gTasks -_080E4A98: .4byte REG_WININ -_080E4A9C: - ldr r1, _080E4ADC - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080E4AB4 - b _080E4C06 -_080E4AB4: - ldr r0, _080E4AE0 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - movs r0, 0x1 - strh r0, [r1, 0x12] - ldr r2, _080E4AE4 - ldrh r1, [r2] - ldr r0, _080E4AE8 - ands r0, r1 - strh r0, [r2] - b _080E4C06 - .align 2, 0 -_080E4ADC: .4byte gUnknown_03004240 -_080E4AE0: .4byte gTasks -_080E4AE4: .4byte gUnknown_02024DE8 -_080E4AE8: .4byte 0x0000fffe -_080E4AEC: - lsls r0, r4, 2 - adds r1, r0, r4 - lsls r1, 3 - adds r2, r1, r5 - ldrh r3, [r2, 0xE] - movs r6, 0xE - ldrsh r1, [r2, r6] - mov r12, r0 - cmp r1, 0 - beq _080E4B06 - subs r0, r3, 0x1 - strh r0, [r2, 0xE] - b _080E4B26 -_080E4B06: - ldrh r1, [r2, 0x10] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - beq _080E4B26 - ldrh r0, [r2, 0x12] - subs r0, 0x1 - strh r0, [r2, 0x12] - lsls r0, 16 - cmp r0, 0 - bne _080E4B26 - adds r0, r1, 0 - adds r0, 0xFF - strh r0, [r2, 0x10] - movs r0, 0x6 - strh r0, [r2, 0x12] -_080E4B26: - ldr r2, _080E4BE0 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080E4B3A - ldr r3, _080E4BE4 - adds r0, r1, r3 - strh r0, [r2] -_080E4B3A: - mov r6, r12 - adds r0, r6, r4 - lsls r0, 3 - adds r1, r0, r5 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080E4B50 - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080E4B50: - movs r3, 0 - ldr r6, _080E4BE8 - mov r8, r6 - ldr r7, _080E4BEC - adds r5, r1, 0 -_080E4B5A: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r5, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080E4B5A - cmp r3, 0x9F - bgt _080E4B9E - ldr r7, _080E4BEC - ldr r6, _080E4BE8 - ldr r1, _080E4BF0 - mov r2, r12 - adds r0, r2, r4 - lsls r0, 3 - adds r5, r0, r1 -_080E4B84: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r5, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080E4B84 -_080E4B9E: - ldr r1, _080E4BF0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - movs r3, 0xC - ldrsh r2, [r1, r3] - cmp r2, 0 - bne _080E4C06 - movs r0, 0x3 - mov r6, r8 - strb r0, [r6, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - str r2, [sp] - ldr r1, _080E4BF4 - ldr r2, _080E4BF8 - mov r0, sp - bl CpuSet - ldr r1, _080E4BFC - movs r2, 0x9C - lsls r2, 8 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0xBC - lsls r3, 7 - adds r0, r3, 0 - strh r0, [r1] - b _080E4C06 - .align 2, 0 -_080E4BE0: .4byte gUnknown_03004240 -_080E4BE4: .4byte 0xfffffc04 -_080E4BE8: .4byte gUnknown_03004DC0 -_080E4BEC: .4byte gUnknown_03004DE0 -_080E4BF0: .4byte gTasks -_080E4BF4: .4byte 0x0600e000 -_080E4BF8: .4byte 0x05000200 -_080E4BFC: .4byte REG_BG1CNT -_080E4C00: - adds r0, r4, 0 - bl sub_80E443C -_080E4C06: - ldr r0, _080E4C2C - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r2, r1, r0 - movs r6, 0x8 - ldrsh r0, [r2, r6] - cmp r0, 0x4 - beq _080E4C1E - ldr r1, _080E4C30 - ldrh r0, [r2, 0x10] - strh r0, [r1] -_080E4C1E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E4C2C: .4byte gTasks -_080E4C30: .4byte REG_BLDALPHA - thumb_func_end task_battle_intro_anim - - thumb_func_start sub_80E4C34 -sub_80E4C34: @ 80E4C34 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080E4C80 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r7, r0, r1 - movs r1, 0x8 - ldrsh r0, [r7, r1] - cmp r0, 0x1 - ble _080E4CAA - movs r2, 0x10 - ldrsh r0, [r7, r2] - cmp r0, 0 - bne _080E4CAA - ldr r2, _080E4C84 - ldrh r1, [r2] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - bne _080E4C72 - cmp r1, 0x4F - bhi _080E4C8C -_080E4C72: - adds r0, r1, 0x3 - strh r0, [r2] - ldr r1, _080E4C88 - ldrh r0, [r1] - subs r0, 0x3 - strh r0, [r1] - b _080E4CAA - .align 2, 0 -_080E4C80: .4byte gTasks -_080E4C84: .4byte gUnknown_030042C0 -_080E4C88: .4byte gUnknown_03004288 -_080E4C8C: - str r5, [sp] - ldr r1, _080E4CCC - ldr r4, _080E4CD0 - mov r0, sp - adds r2, r4, 0 - bl CpuSet - str r5, [sp, 0x4] - add r0, sp, 0x4 - ldr r1, _080E4CD4 - adds r2, r4, 0 - bl CpuSet - movs r0, 0x1 - strh r0, [r7, 0x10] -_080E4CAA: - ldr r0, _080E4CD8 - lsls r2, r6, 2 - adds r1, r2, r6 - lsls r1, 3 - adds r1, r0 - movs r3, 0x8 - ldrsh r1, [r1, r3] - mov r12, r0 - adds r5, r2, 0 - cmp r1, 0x4 - bls _080E4CC2 - b _080E4EBA -_080E4CC2: - lsls r0, r1, 2 - ldr r1, _080E4CDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E4CCC: .4byte 0x0600e000 -_080E4CD0: .4byte 0x05000200 -_080E4CD4: .4byte 0x0600f000 -_080E4CD8: .4byte gTasks -_080E4CDC: .4byte _080E4CE0 - .align 2, 0 -_080E4CE0: - .4byte _080E4CF4 - .4byte _080E4D06 - .4byte _080E4DA8 - .4byte _080E4DEC - .4byte _080E4EB4 -_080E4CF4: - adds r0, r5, r6 - lsls r0, 3 - add r0, r12 - movs r1, 0x10 - strh r1, [r0, 0xC] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080E4EBA -_080E4D06: - adds r0, r5, r6 - lsls r0, 3 - mov r2, r12 - adds r1, r0, r2 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080E4D1C - b _080E4EBA -_080E4D1C: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r5, _080E4D8C - ldr r4, _080E4D90 - ldr r3, _080E4D94 - adds r6, r4, r3 - ldrb r0, [r6] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r3, [r1, 0x1] - movs r2, 0xD - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - movs r3, 0x8 - mov r8, r3 - mov r3, r8 - orrs r0, r3 - strb r0, [r1, 0x1] - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r6, r5, 0 - adds r6, 0x1C - adds r0, r6 - ldr r3, _080E4D98 - str r3, [r0] - ldr r0, _080E4D9C - adds r4, r0 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - ands r2, r1 - mov r1, r8 - orrs r2, r1 - strb r2, [r0, 0x1] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - str r3, [r0] - ldr r1, _080E4DA0 - movs r0, 0x3F - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080E4DA4 - b _080E4E94 - .align 2, 0 -_080E4D8C: .4byte gSprites -_080E4D90: .4byte 0x02000000 -_080E4D94: .4byte 0x0001608a -_080E4D98: .4byte sub_800FE20 -_080E4D9C: .4byte 0x0001608b -_080E4DA0: .4byte REG_WININ -_080E4DA4: .4byte 0x00003f06 -_080E4DA8: - ldr r1, _080E4DE0 - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080E4DC0 - b _080E4EBA -_080E4DC0: - adds r1, r5, r6 - lsls r1, 3 - add r1, r12 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - ldr r2, _080E4DE4 - ldrh r1, [r2] - ldr r0, _080E4DE8 - ands r0, r1 - strh r0, [r2] - b _080E4EBA - .align 2, 0 -_080E4DE0: .4byte gUnknown_03004240 -_080E4DE4: .4byte gUnknown_02024DE8 -_080E4DE8: .4byte 0x0000fffe -_080E4DEC: - ldr r2, _080E4E9C - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080E4E00 - ldr r3, _080E4EA0 - adds r0, r1, r3 - strh r0, [r2] -_080E4E00: - adds r0, r5, r6 - lsls r0, 3 - mov r2, r12 - adds r1, r0, r2 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080E4E16 - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080E4E16: - movs r3, 0 - ldr r0, _080E4EA4 - mov r9, r0 - ldr r2, _080E4EA8 - mov r8, r2 - mov r7, r9 - adds r4, r1, 0 -_080E4E24: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r8 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080E4E24 - cmp r3, 0x9F - bgt _080E4E68 - ldr r0, _080E4EA8 - mov r8, r0 - ldr r7, _080E4EA4 - ldr r1, _080E4EAC - adds r0, r5, r6 - lsls r0, 3 - adds r4, r0, r1 -_080E4E4E: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r8 - ldrh r0, [r4, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080E4E4E -_080E4E68: - adds r0, r5, r6 - lsls r0, 3 - mov r2, r12 - adds r1, r0, r2 - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080E4EBA - movs r0, 0x3 - mov r2, r9 - strb r0, [r2, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r1, _080E4EB0 - movs r3, 0x9C - lsls r3, 8 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0xBC - lsls r2, 7 -_080E4E94: - adds r0, r2, 0 - strh r0, [r1] - b _080E4EBA - .align 2, 0 -_080E4E9C: .4byte gUnknown_03004240 -_080E4EA0: .4byte 0xfffffc04 -_080E4EA4: .4byte gUnknown_03004DC0 -_080E4EA8: .4byte gUnknown_03004DE0 -_080E4EAC: .4byte gTasks -_080E4EB0: .4byte REG_BG1CNT -_080E4EB4: - adds r0, r6, 0 - bl sub_80E443C -_080E4EBA: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E4C34 - - thumb_func_start unref_sub_80E4EC8 -unref_sub_80E4EC8: @ 80E4EC8 - push {r4,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - movs r4, 0x80 - lsls r4, 7 - str r4, [sp] - movs r4, 0x1E - str r4, [sp, 0x4] - movs r4, 0x1 - str r4, [sp, 0x8] - bl sub_80E4EF8 - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - thumb_func_end unref_sub_80E4EC8 - - thumb_func_start sub_80E4EF8 -sub_80E4EF8: @ 80E4EF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r9, r1 - adds r4, r2, 0 - ldr r1, [sp, 0x24] - mov r8, r1 - ldr r1, [sp, 0x28] - ldr r5, [sp, 0x2C] - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - mov r7, r9 - lsls r7, 24 - adds r0, r7, 0 - lsrs r0, 24 - mov r9, r0 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp] - mov r3, r8 - lsls r3, 16 - mov r8, r3 - lsrs r6, r3, 16 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r5, 24 - lsrs r5, 24 - adds r0, r4, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E4FCC - ldr r1, _080E4FD0 - lsls r4, 2 - adds r4, r1 - ldr r1, _080E4FD4 - adds r0, r1 - ldrb r1, [r0] - lsls r1, 11 - ldr r0, [r4] - adds r0, r1 - str r0, [r2] - movs r0, 0xC0 - lsls r0, 19 - adds r6, r0 - str r6, [r2, 0x4] - ldr r0, _080E4FD8 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - mov r0, r8 - lsrs r0, 21 - lsls r5, 9 - subs r5, r0, r5 - mov r0, r9 - adds r1, r0, 0 - adds r1, 0x8 - cmp r0, r1 - bge _080E4FBC - mov r9, r1 - mov r1, r10 - lsls r1, 1 - mov r8, r1 - lsls r7, 11 - mov r12, r7 -_080E4F86: - mov r2, r10 - adds r4, r2, 0 - adds r4, 0x8 - adds r1, r0, 0x1 - cmp r2, r4 - bge _080E4FB6 - ldr r3, [sp] - lsls r6, r3, 12 - lsls r0, 6 - movs r7, 0xC0 - lsls r7, 19 - adds r0, r7 - add r0, r12 - mov r7, r8 - adds r3, r7, r0 - subs r2, r4, r2 -_080E4FA6: - adds r0, r5, 0 - orrs r0, r6 - strh r0, [r3] - adds r5, 0x1 - adds r3, 0x2 - subs r2, 0x1 - cmp r2, 0 - bne _080E4FA6 -_080E4FB6: - adds r0, r1, 0 - cmp r0, r9 - blt _080E4F86 -_080E4FBC: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E4FCC: .4byte 0x040000d4 -_080E4FD0: .4byte gUnknown_081FAF4C -_080E4FD4: .4byte gUnknown_02024E84 -_080E4FD8: .4byte 0x80000400 - thumb_func_end sub_80E4EF8 - - thumb_func_start unref_sub_80E4FDC -unref_sub_80E4FDC: @ 80E4FDC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, [sp, 0x24] - ldr r5, [sp, 0x28] - mov r8, r5 - ldr r5, [sp, 0x2C] - ldr r6, [sp, 0x30] - mov r9, r6 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r1, 24 - lsls r2, 24 - lsls r3, 24 - lsls r4, 24 - lsrs r4, 24 - mov r10, r4 - mov r7, r8 - lsls r7, 16 - lsrs r6, r7, 16 - lsls r5, 24 - lsrs r5, 24 - mov r0, r9 - lsls r0, 24 - mov r9, r0 - ldr r4, _080E509C - ldr r0, _080E50A0 - lsrs r2, 22 - adds r2, r0 - lsrs r3, 13 - ldr r0, [r2] - adds r0, r3 - str r0, [r4] - movs r0, 0xC0 - lsls r0, 19 - adds r6, r0 - str r6, [r4, 0x4] - ldr r0, _080E50A4 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r2, r7, 0 - lsrs r2, 21 - mov r6, r9 - lsrs r6, 15 - subs r4, r2, r6 - lsrs r0, r1, 24 - adds r1, r0, 0 - adds r1, 0x8 - cmp r0, r1 - bge _080E508C - mov r9, r1 - mov r7, r12 - lsls r7, 1 - mov r8, r7 - lsls r5, 11 - str r5, [sp] -_080E5054: - mov r2, r12 - adds r3, r2, 0 - adds r3, 0x8 - adds r5, r0, 0x1 - cmp r2, r3 - bge _080E5086 - mov r1, r10 - lsls r6, r1, 12 - lsls r0, 6 - movs r7, 0xC0 - lsls r7, 19 - adds r0, r7 - ldr r1, [sp] - adds r0, r1, r0 - mov r7, r8 - adds r1, r7, r0 - subs r2, r3, r2 -_080E5076: - adds r0, r4, 0 - orrs r0, r6 - strh r0, [r1] - adds r4, 0x1 - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bne _080E5076 -_080E5086: - adds r0, r5, 0 - cmp r0, r9 - blt _080E5054 -_080E508C: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E509C: .4byte 0x040000d4 -_080E50A0: .4byte gUnknown_081FAF4C -_080E50A4: .4byte 0x80000400 - thumb_func_end unref_sub_80E4FDC - - thumb_func_start MovePlayerOnBike -MovePlayerOnBike: @ 80E50A8 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r0, _080E50CC - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E50D0 - adds r0, r3, 0 - adds r1, r4, 0 - bl MovePlayerOnMachBike - b _080E50D8 - .align 2, 0 -_080E50CC: .4byte gPlayerAvatar -_080E50D0: - adds r0, r3, 0 - adds r1, r4, 0 - bl MovePlayerOnAcroBike -_080E50D8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end MovePlayerOnBike - - thumb_func_start MovePlayerOnMachBike -MovePlayerOnMachBike: @ 80E50E0 - push {r4,lr} - sub sp, 0x4 - mov r1, sp - strb r0, [r1] - ldr r4, _080E510C - mov r0, sp - bl CheckMovementInputMachBike - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - mov r1, sp - ldrb r1, [r1] - ldr r2, [r0] - adds r0, r1, 0 - bl _call_via_r2 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E510C: .4byte gUnknown_083DB594 - thumb_func_end MovePlayerOnMachBike - - thumb_func_start CheckMovementInputMachBike -CheckMovementInputMachBike: @ 80E5110 - push {r4,lr} - adds r4, r0, 0 - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - ldrb r1, [r4] - cmp r1, 0 - bne _080E5138 - strb r0, [r4] - ldr r2, _080E5134 - ldrb r0, [r2, 0xB] - cmp r0, 0 - bne _080E514C - strb r1, [r2, 0x2] - movs r0, 0 - b _080E5160 - .align 2, 0 -_080E5134: .4byte gPlayerAvatar -_080E5138: - ldr r2, _080E5154 - cmp r1, r3 - beq _080E515C - ldrb r0, [r2, 0x2] - cmp r0, 0x2 - beq _080E515C - ldrb r0, [r2, 0xB] - cmp r0, 0 - beq _080E5158 - strb r3, [r4] -_080E514C: - movs r0, 0x2 - strb r0, [r2, 0x2] - movs r0, 0x3 - b _080E5160 - .align 2, 0 -_080E5154: .4byte gPlayerAvatar -_080E5158: - movs r0, 0x1 - b _080E515E -_080E515C: - movs r0, 0x2 -_080E515E: - strb r0, [r2, 0x2] -_080E5160: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CheckMovementInputMachBike - - thumb_func_start sub_80E5168 -sub_80E5168: @ 80E5168 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl PlayerFaceDirection - bl sub_80E6024 - pop {r0} - bx r0 - thumb_func_end sub_80E5168 - - thumb_func_start sub_80E517C -sub_80E517C: @ 80E517C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080E51AC - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E51B0 - adds r4, r0, r1 - ldrb r1, [r4, 0x1E] - adds r0, r5, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - beq _080E51B4 - adds r0, r5, 0 - bl PlayerTurnInPlace - bl sub_80E6024 - b _080E51BE - .align 2, 0 -_080E51AC: .4byte gPlayerAvatar -_080E51B0: .4byte gMapObjects -_080E51B4: - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl sub_80E5168 -_080E51BE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80E517C - - thumb_func_start sub_80E51C4 -sub_80E51C4: @ 80E51C4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - ldr r6, _080E51F8 - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E51FC - adds r4, r0, r1 - ldrb r1, [r4, 0x1E] - adds r0, r5, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E520A - ldrb r0, [r6, 0xB] - cmp r0, 0 - beq _080E5200 - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl sub_80E5270 - b _080E5266 - .align 2, 0 -_080E51F8: .4byte gPlayerAvatar -_080E51FC: .4byte gMapObjects -_080E5200: - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl sub_80E5168 - b _080E5266 -_080E520A: - adds r0, r5, 0 - bl sub_80E5D34 - lsls r0, 24 - lsrs r4, r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0xA - bhi _080E5242 - cmp r4, 0x6 - bne _080E522C - adds r0, r5, 0 - bl PlayerJumpLedge - b _080E5266 -_080E522C: - bl sub_80E6024 - subs r0, r4, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _080E5266 - adds r0, r5, 0 - bl PlayerOnBikeCollide - b _080E5266 -_080E5242: - ldr r1, _080E526C - ldrb r0, [r6, 0xA] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r7, 0 - bl _call_via_r1 - ldrb r2, [r6, 0xA] - lsls r0, r2, 24 - lsrs r1, r0, 24 - lsrs r0, 25 - adds r0, r2, r0 - strb r0, [r6, 0xB] - cmp r1, 0x1 - bhi _080E5266 - adds r0, r2, 0x1 - strb r0, [r6, 0xA] -_080E5266: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E526C: .4byte gUnknown_083DB5A4 - thumb_func_end sub_80E51C4 - - thumb_func_start sub_80E5270 -sub_80E5270: @ 80E5270 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - ldr r6, _080E52A8 - ldrb r0, [r6, 0xB] - cmp r0, 0 - beq _080E5286 - subs r0, 0x1 - strb r0, [r6, 0xB] - strb r0, [r6, 0xA] -_080E5286: - adds r0, r4, 0 - bl sub_80E5D34 - lsls r0, 24 - lsrs r5, r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0xA - bhi _080E52C2 - cmp r5, 0x6 - bne _080E52AC - adds r0, r4, 0 - bl PlayerJumpLedge - b _080E52D2 - .align 2, 0 -_080E52A8: .4byte gPlayerAvatar -_080E52AC: - bl sub_80E6024 - subs r0, r5, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _080E52D2 - adds r0, r4, 0 - bl PlayerOnBikeCollide - b _080E52D2 -_080E52C2: - ldr r0, _080E52D8 - ldrb r1, [r6, 0xA] - lsls r1, 2 - adds r1, r0 - ldr r1, [r1] - adds r0, r7, 0 - bl _call_via_r1 -_080E52D2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E52D8: .4byte gUnknown_083DB5A4 - thumb_func_end sub_80E5270 - - thumb_func_start MovePlayerOnAcroBike -MovePlayerOnAcroBike: @ 80E52DC - push {r4,lr} - sub sp, 0x4 - mov r3, sp - strb r0, [r3] - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r4, _080E5310 - mov r0, sp - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - mov r1, sp - ldrb r1, [r1] - ldr r2, [r0] - adds r0, r1, 0 - bl _call_via_r2 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E5310: .4byte gUnknown_083DB5B0 - thumb_func_end MovePlayerOnAcroBike - - thumb_func_start CheckMovementInputAcroBike -CheckMovementInputAcroBike: @ 80E5314 - push {r4,lr} - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r4, _080E5338 - ldr r3, _080E533C - ldrb r3, [r3, 0x8] - lsls r3, 2 - adds r3, r4 - ldr r3, [r3] - bl _call_via_r3 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E5338: .4byte gUnknown_083DB5E4 -_080E533C: .4byte gPlayerAvatar - thumb_func_end CheckMovementInputAcroBike - - thumb_func_start CheckMovementInputAcroBikeNormal -CheckMovementInputAcroBikeNormal: @ 80E5340 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r5, r2, 16 - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080E5374 - movs r0, 0 - strb r0, [r2, 0xA] - ldrb r1, [r4] - cmp r1, 0 - bne _080E5380 - movs r0, 0x2 - ands r0, r6 - cmp r0, 0 - beq _080E5378 - strb r3, [r4] - strb r1, [r2, 0x2] - movs r0, 0x2 - strb r0, [r2, 0x8] - movs r0, 0x3 - b _080E53D4 - .align 2, 0 -_080E5374: .4byte gPlayerAvatar -_080E5378: - strb r3, [r4] - strb r1, [r2, 0x2] - movs r0, 0 - b _080E53D4 -_080E5380: - cmp r1, r3 - bne _080E53A6 - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - beq _080E539E - ldrb r0, [r2, 0xB] - cmp r0, 0 - bne _080E539E - adds r0, 0x1 - strb r0, [r2, 0xB] - movs r0, 0x4 - strb r0, [r2, 0x8] - movs r0, 0xB - b _080E53D4 -_080E539E: - ldrb r0, [r4] - ldr r2, _080E53CC - cmp r0, r3 - beq _080E53D0 -_080E53A6: - ldr r0, _080E53CC - ldrb r1, [r0, 0x2] - adds r2, r0, 0 - cmp r1, 0x2 - beq _080E53D0 - movs r1, 0 - movs r0, 0x1 - strb r0, [r2, 0x8] - ldrb r0, [r4] - strb r0, [r2, 0x9] - strb r1, [r2, 0x2] - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 24 - b _080E53D4 - .align 2, 0 -_080E53CC: .4byte gPlayerAvatar -_080E53D0: - movs r0, 0x2 - strb r0, [r2, 0x2] -_080E53D4: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CheckMovementInputAcroBikeNormal - - thumb_func_start CheckMovementInputAcroBikeChangingDirection -CheckMovementInputAcroBikeChangingDirection: @ 80E53DC - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080E5404 - ldrb r0, [r4, 0x9] - strb r0, [r5] - ldrb r0, [r4, 0xA] - adds r0, 0x1 - strb r0, [r4, 0xA] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bls _080E5408 - movs r0, 0x1 - strb r0, [r4, 0x2] - movs r0, 0 - strb r0, [r4, 0x8] - bl sub_80E6024 - movs r0, 0x1 - b _080E544E - .align 2, 0 -_080E5404: .4byte gPlayerAvatar -_080E5408: - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r6, r0, 24 - bl sub_80E5C2C - ldrb r1, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _080E544A - bl sub_80E6024 - movs r0, 0x1 - strb r0, [r4, 0xB] - adds r0, r6, 0 - bl GetOppositeDirection - ldrb r1, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _080E543E - movs r0, 0x6 - strb r0, [r4, 0x8] - movs r0, 0x9 - b _080E544E -_080E543E: - movs r0, 0x2 - strb r0, [r4, 0x2] - movs r0, 0x5 - strb r0, [r4, 0x8] - movs r0, 0x8 - b _080E544E -_080E544A: - strb r6, [r5] - movs r0, 0 -_080E544E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CheckMovementInputAcroBikeChangingDirection - - thumb_func_start CheckMovementInputAcroBikeStandingWheelie -CheckMovementInputAcroBikeStandingWheelie: @ 80E5454 - push {r4-r7,lr} - adds r7, r0, 0 - lsls r4, r2, 16 - lsrs r4, 16 - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _080E54A0 - ldrb r1, [r5, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E54A4 - adds r1, r0, r1 - movs r0, 0 - strb r0, [r5, 0x2] - movs r0, 0x2 - ands r4, r0 - lsls r4, 16 - lsrs r4, 16 - cmp r4, 0 - bne _080E54A8 - strb r4, [r5, 0xA] - ldrb r0, [r1, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080E54AE - strb r6, [r7] - strb r0, [r5, 0x8] - bl sub_80E6024 - movs r0, 0x4 - b _080E54EC - .align 2, 0 -_080E54A0: .4byte gPlayerAvatar -_080E54A4: .4byte gMapObjects -_080E54A8: - ldrb r0, [r5, 0xA] - adds r0, 0x1 - strb r0, [r5, 0xA] -_080E54AE: - ldr r1, _080E54C4 - ldrb r0, [r1, 0xA] - cmp r0, 0x27 - bls _080E54C8 - strb r6, [r7] - movs r0, 0x3 - strb r0, [r1, 0x8] - bl sub_80E6024 - movs r0, 0x6 - b _080E54EC - .align 2, 0 -_080E54C4: .4byte gPlayerAvatar -_080E54C8: - ldrb r0, [r7] - cmp r0, r6 - bne _080E54DE - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0x4 - strb r0, [r1, 0x8] - bl sub_80E6024 - movs r0, 0xA - b _080E54EC -_080E54DE: - cmp r0, 0 - beq _080E54E8 - movs r0, 0x1 - strb r0, [r1, 0x2] - b _080E54EA -_080E54E8: - strb r6, [r7] -_080E54EA: - movs r0, 0x5 -_080E54EC: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end CheckMovementInputAcroBikeStandingWheelie - - thumb_func_start CheckMovementInputAcroBikeBunnyHop -CheckMovementInputAcroBikeBunnyHop: @ 80E54F4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r5, r0, 24 - adds r2, r5, 0 - ldr r4, _080E5554 - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E5558 - adds r7, r0, r1 - movs r0, 0x2 - mov r1, r8 - ands r0, r1 - cmp r0, 0 - bne _080E5566 - bl sub_80E6024 - ldrb r0, [r7, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080E555C - movs r0, 0x2 - strb r0, [r4, 0x8] - adds r0, r6, 0 - mov r1, r9 - mov r2, r8 - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 24 - b _080E558A - .align 2, 0 -_080E5554: .4byte gPlayerAvatar -_080E5558: .4byte gMapObjects -_080E555C: - strb r5, [r6] - strb r0, [r4, 0x2] - strb r0, [r4, 0x8] - movs r0, 0x4 - b _080E558A -_080E5566: - ldrb r0, [r6] - cmp r0, 0 - bne _080E5570 - strb r5, [r6] - b _080E557C -_080E5570: - cmp r0, r2 - beq _080E5582 - ldrb r0, [r4, 0x2] - cmp r0, 0x2 - beq _080E5582 - movs r0, 0x1 -_080E557C: - strb r0, [r4, 0x2] - movs r0, 0x6 - b _080E558A -_080E5582: - ldr r1, _080E5598 - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0x7 -_080E558A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080E5598: .4byte gPlayerAvatar - thumb_func_end CheckMovementInputAcroBikeBunnyHop - - thumb_func_start CheckMovementInputAcroBikeMovingWheelie -CheckMovementInputAcroBikeMovingWheelie: @ 80E559C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r6, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r5, r0, 24 - adds r2, r5, 0 - ldr r4, _080E55F8 - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E55FC - adds r7, r0, r1 - movs r0, 0x2 - mov r9, r0 - movs r0, 0x2 - mov r1, r8 - ands r0, r1 - cmp r0, 0 - bne _080E5634 - bl sub_80E6024 - ldrb r0, [r7, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080E5620 - strb r1, [r4, 0x8] - ldrb r0, [r6] - cmp r0, 0 - bne _080E5600 - strb r5, [r6] - b _080E560A - .align 2, 0 -_080E55F8: .4byte gPlayerAvatar -_080E55FC: .4byte gMapObjects -_080E5600: - cmp r0, r5 - beq _080E5610 - ldrb r0, [r4, 0x2] - cmp r0, 0x2 - beq _080E5610 -_080E560A: - strb r1, [r4, 0x2] - movs r0, 0x4 - b _080E5664 -_080E5610: - ldr r1, _080E561C - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0xC - b _080E5664 - .align 2, 0 -_080E561C: .4byte gPlayerAvatar -_080E5620: - mov r0, r9 - strb r0, [r4, 0x8] - adds r0, r6, 0 - mov r1, r10 - mov r2, r8 - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 24 - b _080E5664 -_080E5634: - ldrb r0, [r6] - cmp r0, 0 - bne _080E564A - strb r5, [r6] - mov r1, r9 - strb r1, [r4, 0x8] - strb r0, [r4, 0x2] - bl sub_80E6024 - movs r0, 0x5 - b _080E5664 -_080E564A: - cmp r2, r0 - beq _080E565C - ldrb r0, [r4, 0x2] - cmp r0, 0x2 - beq _080E565C - movs r0, 0 - strb r0, [r4, 0x2] - movs r0, 0x5 - b _080E5664 -_080E565C: - ldr r1, _080E5674 - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0xA -_080E5664: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080E5674: .4byte gPlayerAvatar - thumb_func_end CheckMovementInputAcroBikeMovingWheelie - - thumb_func_start CheckMovementInputAcroBikeUnknownMode5 -CheckMovementInputAcroBikeUnknownMode5: @ 80E5678 - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r6, _080E56CC - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E56D0 - adds r0, r1 - ldrb r2, [r0, 0x1] - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x1] - ldrb r1, [r0, 0x18] - lsls r1, 28 - lsrs r1, 28 - bl FieldObjectSetDirection - movs r0, 0 - strb r0, [r6, 0x8] - mov r0, r8 - adds r1, r4, 0 - adds r2, r5, 0 - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 24 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080E56CC: .4byte gPlayerAvatar -_080E56D0: .4byte gMapObjects - thumb_func_end CheckMovementInputAcroBikeUnknownMode5 - - thumb_func_start CheckMovementInputAcroBikeUnknownMode6 -CheckMovementInputAcroBikeUnknownMode6: @ 80E56D4 - push {r4,lr} - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r4, _080E56F4 - movs r3, 0 - strb r3, [r4, 0x8] - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E56F4: .4byte gPlayerAvatar - thumb_func_end CheckMovementInputAcroBikeUnknownMode6 - - thumb_func_start sub_80E56F8 -sub_80E56F8: @ 80E56F8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl PlayerFaceDirection - pop {r0} - bx r0 - thumb_func_end sub_80E56F8 - - thumb_func_start sub_80E5708 -sub_80E5708: @ 80E5708 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E573C - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E5740 - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E572E - ldrb r0, [r5, 0x18] - lsrs r4, r0, 4 -_080E572E: - adds r0, r4, 0 - bl PlayerFaceDirection - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E573C: .4byte gPlayerAvatar -_080E5740: .4byte gMapObjects - thumb_func_end sub_80E5708 - - thumb_func_start sub_80E5744 -sub_80E5744: @ 80E5744 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r0, _080E5774 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E5778 - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E577C - ldrb r0, [r5, 0x18] - lsrs r0, 4 - bl sub_80E56F8 - b _080E57B6 - .align 2, 0 -_080E5774: .4byte gPlayerAvatar -_080E5778: .4byte gMapObjects -_080E577C: - adds r0, r4, 0 - bl sub_80E5D34 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0xA - bhi _080E57B0 - cmp r1, 0x6 - bne _080E579E - adds r0, r4, 0 - bl PlayerJumpLedge - b _080E57B6 -_080E579E: - subs r0, r1, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _080E57B6 - adds r0, r4, 0 - bl PlayerOnBikeCollide - b _080E57B6 -_080E57B0: - adds r0, r6, 0 - bl npc_use_some_d2s -_080E57B6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E5744 - - thumb_func_start sub_80E57BC -sub_80E57BC: @ 80E57BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E57F0 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E57F4 - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E57E2 - ldrb r0, [r5, 0x18] - lsrs r4, r0, 4 -_080E57E2: - adds r0, r4, 0 - bl sub_805951C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E57F0: .4byte gPlayerAvatar -_080E57F4: .4byte gMapObjects - thumb_func_end sub_80E57BC - - thumb_func_start sub_80E57F8 -sub_80E57F8: @ 80E57F8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E582C - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E5830 - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E581E - ldrb r0, [r5, 0x18] - lsrs r4, r0, 4 -_080E581E: - adds r0, r4, 0 - bl sub_8059534 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E582C: .4byte gPlayerAvatar -_080E5830: .4byte gMapObjects - thumb_func_end sub_80E57F8 - - thumb_func_start sub_80E5834 -sub_80E5834: @ 80E5834 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E5868 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E586C - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E585A - ldrb r0, [r5, 0x18] - lsrs r4, r0, 4 -_080E585A: - adds r0, r4, 0 - bl sub_8059504 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E5868: .4byte gPlayerAvatar -_080E586C: .4byte gMapObjects - thumb_func_end sub_80E5834 - - thumb_func_start sub_80E5870 -sub_80E5870: @ 80E5870 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E58A4 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E58A8 - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E5896 - ldrb r0, [r5, 0x18] - lsrs r4, r0, 4 -_080E5896: - adds r0, r4, 0 - bl sub_805954C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E58A4: .4byte gPlayerAvatar -_080E58A8: .4byte gMapObjects - thumb_func_end sub_80E5870 - - thumb_func_start sub_80E58AC -sub_80E58AC: @ 80E58AC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E58D8 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E58DC - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E58E0 - ldrb r0, [r5, 0x18] - lsrs r0, 4 - bl sub_80E5870 - b _080E591A - .align 2, 0 -_080E58D8: .4byte gPlayerAvatar -_080E58DC: .4byte gMapObjects -_080E58E0: - adds r0, r4, 0 - bl sub_80E5D34 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080E5914 - cmp r1, 0x9 - beq _080E5914 - cmp r1, 0x6 - bne _080E58FE - adds r0, r4, 0 - bl sub_8059594 - b _080E591A -_080E58FE: - subs r0, r1, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _080E591A - cmp r1, 0xB - bhi _080E5914 - adds r0, r4, 0 - bl sub_80E5870 - b _080E591A -_080E5914: - adds r0, r4, 0 - bl sub_8059570 -_080E591A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80E58AC - - thumb_func_start sub_80E5920 -sub_80E5920: @ 80E5920 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_80E5D34 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0 - beq _080E5954 - cmp r0, 0x7 - beq _080E5980 - cmp r0, 0x9 - bls _080E594C - adds r0, r1, 0 - adds r1, r5, 0 - bl sub_80E5EC0 - lsls r0, 24 - cmp r0, 0 - bne _080E5954 -_080E594C: - adds r0, r5, 0 - bl sub_80E5708 - b _080E5980 -_080E5954: - ldr r0, _080E5988 - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080E598C - adds r4, r0 - movs r0, 0x22 - bl PlaySE - ldrb r0, [r4, 0x1] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r0, r5, 0 - bl sub_80608A4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl player_npc_set_state_and_x22_etc -_080E5980: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E5988: .4byte gPlayerAvatar -_080E598C: .4byte gMapObjects - thumb_func_end sub_80E5920 - - thumb_func_start sub_80E5990 -sub_80E5990: @ 80E5990 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80595B8 - pop {r0} - bx r0 - thumb_func_end sub_80E5990 - - thumb_func_start sub_80E59A0 -sub_80E59A0: @ 80E59A0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r7, _080E59D0 - ldrb r1, [r7, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E59D4 - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E59D8 - ldrb r0, [r5, 0x18] - lsrs r0, 4 - bl sub_8059504 - b _080E5A28 - .align 2, 0 -_080E59D0: .4byte gPlayerAvatar -_080E59D4: .4byte gMapObjects -_080E59D8: - adds r0, r4, 0 - bl sub_80E5D34 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0xA - bhi _080E5A1E - cmp r1, 0x6 - bne _080E59FA - adds r0, r4, 0 - bl sub_8059594 - b _080E5A28 -_080E59FA: - cmp r1, 0x9 - beq _080E5A0E - cmp r1, 0x4 - bhi _080E5A28 - ldrb r0, [r5, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - cmp r0, 0 - beq _080E5A16 -_080E5A0E: - adds r0, r4, 0 - bl sub_8059504 - b _080E5A28 -_080E5A16: - adds r0, r4, 0 - bl sub_80595DC - b _080E5A28 -_080E5A1E: - adds r0, r6, 0 - bl sub_8059618 - movs r0, 0x2 - strb r0, [r7, 0x2] -_080E5A28: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E59A0 - - thumb_func_start sub_80E5A30 -sub_80E5A30: @ 80E5A30 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r7, _080E5A60 - ldrb r1, [r7, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E5A64 - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E5A68 - ldrb r0, [r5, 0x18] - lsrs r0, 4 - bl sub_805951C - b _080E5AB8 - .align 2, 0 -_080E5A60: .4byte gPlayerAvatar -_080E5A64: .4byte gMapObjects -_080E5A68: - adds r0, r4, 0 - bl sub_80E5D34 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0xA - bhi _080E5AAE - cmp r1, 0x6 - bne _080E5A8A - adds r0, r4, 0 - bl sub_8059594 - b _080E5AB8 -_080E5A8A: - cmp r1, 0x9 - beq _080E5A9E - cmp r1, 0x4 - bhi _080E5AB8 - ldrb r0, [r5, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - cmp r0, 0 - beq _080E5AA6 -_080E5A9E: - adds r0, r4, 0 - bl sub_8059504 - b _080E5AB8 -_080E5AA6: - adds r0, r4, 0 - bl sub_80595DC - b _080E5AB8 -_080E5AAE: - adds r0, r6, 0 - bl sub_8059600 - movs r0, 0x2 - strb r0, [r7, 0x2] -_080E5AB8: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E5A30 - - thumb_func_start sub_80E5AC0 -sub_80E5AC0: @ 80E5AC0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r0, _080E5AF0 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E5AF4 - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E5AF8 - ldrb r0, [r5, 0x18] - lsrs r0, 4 - bl sub_8059534 - b _080E5B32 - .align 2, 0 -_080E5AF0: .4byte gPlayerAvatar -_080E5AF4: .4byte gMapObjects -_080E5AF8: - adds r0, r4, 0 - bl sub_80E5D34 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0xA - bhi _080E5B2C - cmp r1, 0x6 - bne _080E5B1A - adds r0, r4, 0 - bl PlayerJumpLedge - b _080E5B32 -_080E5B1A: - subs r0, r1, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _080E5B32 - adds r0, r4, 0 - bl sub_8059534 - b _080E5B32 -_080E5B2C: - adds r0, r6, 0 - bl sub_8059630 -_080E5B32: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E5AC0 - - thumb_func_start sub_80E5B38 -sub_80E5B38: @ 80E5B38 - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r2, r1, 16 - ldr r0, _080E5B5C - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E5B56 - adds r0, r3, 0 - adds r1, r2, 0 - bl sub_80E5B60 -_080E5B56: - pop {r0} - bx r0 - .align 2, 0 -_080E5B5C: .4byte gPlayerAvatar - thumb_func_end sub_80E5B38 - - thumb_func_start sub_80E5B60 -sub_80E5B60: @ 80E5B60 - push {r4,r5,lr} - lsls r1, 16 - lsrs r5, r1, 16 - adds r0, r5, 0 - bl sub_80E5CF4 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r4, _080E5B88 - ldr r0, [r4, 0xC] - movs r1, 0xF - ands r0, r1 - cmp r2, r0 - bne _080E5B8C - ldrb r0, [r4, 0x14] - cmp r0, 0xFE - bhi _080E5B96 - adds r0, 0x1 - strb r0, [r4, 0x14] - b _080E5B96 - .align 2, 0 -_080E5B88: .4byte gPlayerAvatar -_080E5B8C: - adds r0, r2, 0 - bl sub_80E5C7C - movs r0, 0 - strb r0, [r4, 0xB] -_080E5B96: - movs r0, 0xF - adds r2, r5, 0 - ands r2, r0 - ldr r4, _080E5BB4 - ldr r0, [r4, 0x10] - movs r1, 0xF - ands r0, r1 - cmp r2, r0 - bne _080E5BB8 - ldrb r0, [r4, 0x1C] - cmp r0, 0xFE - bhi _080E5BC2 - adds r0, 0x1 - strb r0, [r4, 0x1C] - b _080E5BC2 - .align 2, 0 -_080E5BB4: .4byte gPlayerAvatar -_080E5BB8: - adds r0, r2, 0 - bl sub_80E5CB8 - movs r0, 0 - strb r0, [r4, 0xB] -_080E5BC2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80E5B60 - - thumb_func_start sub_80E5BC8 -sub_80E5BC8: @ 80E5BC8 - push {r4,r5,lr} - adds r3, r0, 0 - adds r4, r1, 0 - movs r2, 0 - ldrb r0, [r3] - cmp r0, 0 - beq _080E5BF2 - ldr r5, _080E5C0C -_080E5BD8: - adds r0, r2, r5 - adds r1, r3, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bhi _080E5C08 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080E5BD8 -_080E5BF2: - movs r2, 0 - ldrb r0, [r4] - cmp r0, 0 - beq _080E5C22 - ldr r3, _080E5C10 -_080E5BFC: - adds r0, r2, r3 - adds r1, r4, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080E5C14 -_080E5C08: - movs r0, 0 - b _080E5C24 - .align 2, 0 -_080E5C0C: .4byte gUnknown_0202E86C -_080E5C10: .4byte gUnknown_0202E874 -_080E5C14: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080E5BFC -_080E5C22: - movs r0, 0x1 -_080E5C24: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80E5BC8 - - thumb_func_start sub_80E5C2C -sub_80E5C2C: @ 80E5C2C - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 -_080E5C32: - ldr r0, _080E5C64 - adds r4, r5, r0 - ldr r0, _080E5C68 - ldr r1, [r0, 0xC] - ldr r2, [r0, 0x10] - ldr r0, [r4, 0x8] - ands r1, r0 - ldr r0, [r4, 0xC] - ands r2, r0 - ldr r0, [r4] - cmp r1, r0 - bne _080E5C6C - ldr r0, [r4, 0x4] - cmp r2, r0 - bne _080E5C6C - ldr r0, [r4, 0x10] - ldr r1, [r4, 0x14] - bl sub_80E5BC8 - lsls r0, 24 - cmp r0, 0 - beq _080E5C6C - ldrb r0, [r4, 0x18] - b _080E5C76 - .align 2, 0 -_080E5C64: .4byte gUnknown_083DB608 -_080E5C68: .4byte gPlayerAvatar -_080E5C6C: - adds r5, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - bls _080E5C32 - movs r0, 0 -_080E5C76: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80E5C2C - - thumb_func_start sub_80E5C7C -sub_80E5C7C: @ 80E5C7C - push {r4,lr} - lsls r0, 24 - ldr r3, _080E5CB4 - ldr r2, [r3, 0xC] - lsls r2, 4 - movs r1, 0xF0 - lsls r1, 20 - ands r1, r0 - lsrs r1, 24 - orrs r2, r1 - str r2, [r3, 0xC] - movs r1, 0x7 - adds r4, r3, 0 - adds r3, 0x14 -_080E5C98: - adds r2, r1, r3 - subs r1, 0x1 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - bne _080E5C98 - movs r0, 0x1 - strb r0, [r4, 0x14] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E5CB4: .4byte gPlayerAvatar - thumb_func_end sub_80E5C7C - - thumb_func_start sub_80E5CB8 -sub_80E5CB8: @ 80E5CB8 - push {r4,lr} - lsls r0, 24 - ldr r3, _080E5CF0 - ldr r2, [r3, 0x10] - lsls r2, 4 - movs r1, 0xF0 - lsls r1, 20 - ands r1, r0 - lsrs r1, 24 - orrs r2, r1 - str r2, [r3, 0x10] - movs r1, 0x7 - adds r4, r3, 0 - adds r3, 0x1C -_080E5CD4: - adds r2, r1, r3 - subs r1, 0x1 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - bne _080E5CD4 - movs r0, 0x1 - strb r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E5CF0: .4byte gPlayerAvatar - thumb_func_end sub_80E5CB8 - - thumb_func_start sub_80E5CF4 -sub_80E5CF4: @ 80E5CF4 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, r1, 0 - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080E5D08 - movs r0, 0x2 - b _080E5D2E -_080E5D08: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080E5D14 - movs r0, 0x1 - b _080E5D2E -_080E5D14: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080E5D20 - movs r0, 0x3 - b _080E5D2E -_080E5D20: - movs r0, 0x10 - ands r2, r0 - cmp r2, 0 - bne _080E5D2C - movs r0, 0 - b _080E5D2E -_080E5D2C: - movs r0, 0x4 -_080E5D2E: - pop {r1} - bx r1 - thumb_func_end sub_80E5CF4 - - thumb_func_start sub_80E5D34 -sub_80E5D34: @ 80E5D34 - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, _080E5D98 - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080E5D9C - adds r4, r0 - ldrh r1, [r4, 0x10] - add r0, sp, 0x4 - strh r1, [r0] - ldrh r0, [r4, 0x12] - mov r5, sp - adds r5, 0x6 - strh r0, [r5] - adds r0, r6, 0 - add r1, sp, 0x4 - adds r2, r5, 0 - bl MoveCoords - add r0, sp, 0x4 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - add r1, sp, 0x4 - movs r3, 0 - ldrsh r1, [r1, r3] - movs r3, 0 - ldrsh r2, [r5, r3] - str r0, [sp] - adds r0, r4, 0 - adds r3, r6, 0 - bl sub_80E5DA0 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080E5D98: .4byte gPlayerAvatar -_080E5D9C: .4byte gMapObjects - thumb_func_end sub_80E5D34 - - thumb_func_start sub_80E5DA0 -sub_80E5DA0: @ 80E5DA0 - push {r4,r5,lr} - sub sp, 0x4 - ldr r4, [sp, 0x10] - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - adds r5, r4, 0 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - str r5, [sp] - bl CheckForFieldObjectCollision - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bhi _080E5DE0 - cmp r4, 0 - bne _080E5DDC - adds r0, r5, 0 - bl IsRunningDisallowedByMetatile - lsls r0, 24 - cmp r0, 0 - beq _080E5DD8 - movs r4, 0x2 -_080E5DD8: - cmp r4, 0 - beq _080E5DE0 -_080E5DDC: - bl sub_80E5E4C -_080E5DE0: - adds r0, r4, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80E5DA0 - - thumb_func_start sub_80E5DEC -sub_80E5DEC: @ 80E5DEC - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl IsRunningDisallowedByMetatile - lsls r0, 24 - cmp r0, 0 - bne _080E5E04 - ldr r0, _080E5E08 - ldrb r0, [r0, 0x17] - cmp r0, 0x8 - bne _080E5E0C -_080E5E04: - movs r0, 0x1 - b _080E5E0E - .align 2, 0 -_080E5E08: .4byte gMapHeader -_080E5E0C: - movs r0, 0 -_080E5E0E: - pop {r1} - bx r1 - thumb_func_end sub_80E5DEC - - thumb_func_start IsRunningDisallowedByMetatile -IsRunningDisallowedByMetatile: @ 80E5E14 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsRunningDisallowed - lsls r0, 24 - cmp r0, 0 - bne _080E5E3E - adds r0, r4, 0 - bl MetatileBehavior_IsFortreeBridge - lsls r0, 24 - cmp r0, 0 - beq _080E5E42 - bl PlayerGetZCoord - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - bne _080E5E42 -_080E5E3E: - movs r0, 0x1 - b _080E5E44 -_080E5E42: - movs r0, 0 -_080E5E44: - pop {r4} - pop {r1} - bx r1 - thumb_func_end IsRunningDisallowedByMetatile - - thumb_func_start sub_80E5E4C -sub_80E5E4C: @ 80E5E4C - push {lr} - ldr r0, _080E5E68 - ldrb r0, [r0] - cmp r0, 0 - beq _080E5E62 - ldr r1, _080E5E6C - ldrb r0, [r1] - cmp r0, 0x63 - bhi _080E5E62 - adds r0, 0x1 - strb r0, [r1] -_080E5E62: - pop {r0} - bx r0 - .align 2, 0 -_080E5E68: .4byte gUnknown_02039250 -_080E5E6C: .4byte gUnknown_02039251 - thumb_func_end sub_80E5E4C - - thumb_func_start sub_80E5E70 -sub_80E5E70: @ 80E5E70 - push {r4,r5,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - adds r5, r4, 0 - movs r1, 0xFD - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080E5E9A - adds r0, r4, 0 - bl MetatileBehavior_IsIsolatedVerticalRail - lsls r0, 24 - cmp r0, 0 - bne _080E5EB2 - adds r0, r4, 0 - bl MetatileBehavior_IsVerticalRail - b _080E5EAC -_080E5E9A: - adds r0, r5, 0 - bl MetatileBehavior_IsIsolatedHorizontalRail - lsls r0, 24 - cmp r0, 0 - bne _080E5EB2 - adds r0, r5, 0 - bl MetatileBehavior_IsHorizontalRail -_080E5EAC: - lsls r0, 24 - cmp r0, 0 - beq _080E5EB6 -_080E5EB2: - movs r0, 0 - b _080E5EB8 -_080E5EB6: - movs r0, 0x1 -_080E5EB8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80E5E70 - - thumb_func_start sub_80E5EC0 -sub_80E5EC0: @ 80E5EC0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - lsls r1, 24 - movs r3, 0xFF - lsls r3, 24 - adds r1, r3 - lsrs r1, 24 - cmp r1, 0x1 - bhi _080E5EE0 - cmp r0, 0xA - beq _080E5EE8 - cmp r0, 0xC - bne _080E5EEC - b _080E5EE8 -_080E5EE0: - cmp r2, 0xB - beq _080E5EE8 - cmp r2, 0xD - bne _080E5EEC -_080E5EE8: - movs r0, 0 - b _080E5EEE -_080E5EEC: - movs r0, 0x1 -_080E5EEE: - pop {r1} - bx r1 - thumb_func_end sub_80E5EC0 - - thumb_func_start sub_80E5EF4 -sub_80E5EF4: @ 80E5EF4 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080E5F30 - ldrb r1, [r0] - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - bne _080E5F34 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl IsRunningDisallowedByMetatile - lsls r0, 24 - cmp r0, 0 - bne _080E5F34 - movs r0, 0 - b _080E5F36 - .align 2, 0 -_080E5F30: .4byte gPlayerAvatar -_080E5F34: - movs r0, 0x1 -_080E5F36: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80E5EF4 - - thumb_func_start player_should_look_direction_be_enforced_upon_movement -player_should_look_direction_be_enforced_upon_movement: @ 80E5F40 - push {lr} - movs r0, 0x4 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _080E5F74 - ldr r2, _080E5F6C - ldr r0, _080E5F70 - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - cmp r0, 0 - beq _080E5F74 - movs r0, 0 - b _080E5F76 - .align 2, 0 -_080E5F6C: .4byte gMapObjects -_080E5F70: .4byte gPlayerAvatar -_080E5F74: - movs r0, 0x1 -_080E5F76: - pop {r1} - bx r1 - thumb_func_end player_should_look_direction_be_enforced_upon_movement - - thumb_func_start GetOnOffBike -GetOnOffBike: @ 80E5F7C - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080E5FA4 - movs r0, 0 - strb r0, [r1] - ldr r0, _080E5FA8 - ldrb r1, [r0] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - beq _080E5FAC - movs r0, 0x1 - bl SetPlayerAvatarTransitionFlags - bl sav1_reset_battle_music_maybe - bl sub_8053E90 - b _080E5FC0 - .align 2, 0 -_080E5FA4: .4byte gUnknown_0202E854 -_080E5FA8: .4byte gPlayerAvatar -_080E5FAC: - adds r0, r2, 0 - bl SetPlayerAvatarTransitionFlags - ldr r4, _080E5FC8 - adds r0, r4, 0 - bl sav1_set_battle_music_maybe - adds r0, r4, 0 - bl sub_8053FB0 -_080E5FC0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E5FC8: .4byte 0x00000193 - thumb_func_end GetOnOffBike - - thumb_func_start sub_80E5FCC -sub_80E5FCC: @ 80E5FCC - push {lr} - ldr r2, _080E6008 - movs r3, 0 - strb r3, [r2, 0x8] - strb r3, [r2, 0x9] - strb r3, [r2, 0xA] - strb r3, [r2, 0xB] - str r0, [r2, 0xC] - str r1, [r2, 0x10] - movs r1, 0 - adds r2, 0x14 -_080E5FE2: - adds r0, r1, r2 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x7 - bls _080E5FE2 - movs r1, 0 - ldr r3, _080E600C - movs r2, 0 -_080E5FF6: - adds r0, r1, r3 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x7 - bls _080E5FF6 - pop {r0} - bx r0 - .align 2, 0 -_080E6008: .4byte gPlayerAvatar -_080E600C: .4byte gUnknown_0202E874 - thumb_func_end sub_80E5FCC - - thumb_func_start sub_80E6010 -sub_80E6010: @ 80E6010 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E6020 - strb r0, [r2, 0xA] - lsrs r1, r0, 1 - adds r0, r1 - strb r0, [r2, 0xB] - bx lr - .align 2, 0 -_080E6020: .4byte gPlayerAvatar - thumb_func_end sub_80E6010 - - thumb_func_start sub_80E6024 -sub_80E6024: @ 80E6024 - ldr r1, _080E6030 - movs r0, 0 - strb r0, [r1, 0xA] - strb r0, [r1, 0xB] - bx lr - .align 2, 0 -_080E6030: .4byte gPlayerAvatar - thumb_func_end sub_80E6024 - - thumb_func_start sub_80E6034 -sub_80E6034: @ 80E6034 - push {lr} - sub sp, 0x8 - ldr r1, _080E605C - mov r0, sp - movs r2, 0x6 - bl memcpy - ldr r2, _080E6060 - ldrb r1, [r2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E6064 - ldrb r0, [r2, 0xA] - lsls r0, 1 - add r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - b _080E607E - .align 2, 0 -_080E605C: .4byte gUnknown_083DB600 -_080E6060: .4byte gPlayerAvatar -_080E6064: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E6070 - movs r0, 0x3 - b _080E607E -_080E6070: - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _080E607C - movs r0, 0x1 - b _080E607E -_080E607C: - movs r0, 0x2 -_080E607E: - add sp, 0x8 - pop {r1} - bx r1 - thumb_func_end sub_80E6034 - - thumb_func_start sub_80E6084 -sub_80E6084: @ 80E6084 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _080E60D4 - ldrb r1, [r5] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E60CC - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - cmp r0, 0 - beq _080E60CC - movs r0, 0x2 - strb r0, [r5, 0x8] - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r0, 24 - bl sub_8059C94 -_080E60CC: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E60D4: .4byte gPlayerAvatar - thumb_func_end sub_80E6084 - - thumb_func_start sub_80E60D8 -sub_80E60D8: @ 80E60D8 - push {r4-r7,lr} - movs r4, 0x3 - ldr r0, _080E60F4 - ldrh r1, [r0] - adds r7, r0, 0 - cmp r1, 0xD - bls _080E60E8 - b _080E6284 -_080E60E8: - lsls r0, r1, 2 - ldr r1, _080E60F8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E60F4: .4byte gUnknown_0202E8CC -_080E60F8: .4byte _080E60FC - .align 2, 0 -_080E60FC: - .4byte _080E6134 - .4byte _080E613C - .4byte _080E6144 - .4byte _080E614C - .4byte _080E6154 - .4byte _080E619C - .4byte _080E616C - .4byte _080E61BC - .4byte _080E61E0 - .4byte _080E61FC - .4byte _080E6200 - .4byte _080E6214 - .4byte _080E623C - .4byte _080E6260 -_080E6134: - ldr r1, _080E6138 - b _080E624C - .align 2, 0 -_080E6138: .4byte gSaveBlock1 + 0x2B1C -_080E613C: - ldr r1, _080E6140 - b _080E6276 - .align 2, 0 -_080E6140: .4byte gSaveBlock1 + 0x2B28 -_080E6144: - ldr r1, _080E6148 - b _080E624C - .align 2, 0 -_080E6148: .4byte gSaveBlock1 + 0x2B34 -_080E614C: - ldr r1, _080E6150 - b _080E6276 - .align 2, 0 -_080E6150: .4byte gSaveBlock1 + 0x2B40 -_080E6154: - ldr r0, _080E6164 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E6168 - adds r1, r0, r1 - b _080E624C - .align 2, 0 -_080E6164: .4byte gUnknown_0202E8CE -_080E6168: .4byte gSaveBlock1 + 0x2B4C -_080E616C: - ldr r0, _080E6194 - movs r2, 0 - ldr r1, _080E6198 - mov r12, r1 - adds r3, r0, 0 - adds r3, 0xE - adds r5, r0, 0x2 - adds r6, r3, 0 -_080E617C: - lsls r0, r2, 1 - adds r1, r3, r0 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080E617C - adds r1, r6, 0 - b _080E627A - .align 2, 0 -_080E6194: .4byte gSaveBlock1 + 0x2D94 -_080E6198: .4byte sub_80546B8 -_080E619C: - ldr r0, _080E61B0 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E61B4 - adds r1, r0, r1 - ldr r0, _080E61B8 - ldrb r4, [r0] - b _080E6276 - .align 2, 0 -_080E61B0: .4byte gUnknown_0202E8CE -_080E61B4: .4byte gSaveBlock1 + 0x273C -_080E61B8: .4byte gUnknown_0202E8D0 -_080E61BC: - ldr r0, _080E61D4 - ldrh r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080E61D8 - adds r1, r0 - ldr r0, _080E61DC - ldrh r0, [r0] - lsls r0, 1 - adds r1, r0 - b _080E624A - .align 2, 0 -_080E61D4: .4byte gUnknown_0202E8CE -_080E61D8: .4byte gSaveBlock1 + 0x2754 -_080E61DC: .4byte gUnknown_0202E8D0 -_080E61E0: - ldr r0, _080E61F4 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E61F8 - adds r1, r0, r1 - movs r4, 0 - b _080E6276 - .align 2, 0 -_080E61F4: .4byte gUnknown_0202E8CE -_080E61F8: .4byte gSaveBlock1 + 0x273A -_080E61FC: - movs r1, 0 - b _080E624C -_080E6200: - ldr r1, _080E620C - ldr r2, _080E6210 - adds r0, r2, 0 - strh r0, [r1] - b _080E624A - .align 2, 0 -_080E620C: .4byte gSaveBlock1 + 0x2B16 -_080E6210: .4byte 0x0000ffff -_080E6214: - ldr r0, _080E6230 - ldrh r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080E6234 - adds r1, r0 - ldr r0, _080E6238 - ldrh r0, [r0] - lsls r0, 1 - adds r1, r0 - movs r4, 0 - b _080E6276 - .align 2, 0 -_080E6230: .4byte gUnknown_0202E8CE -_080E6234: .4byte gSaveBlock1 + 0x273C -_080E6238: .4byte gUnknown_0202E8D0 -_080E623C: - ldr r0, _080E6254 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E6258 - adds r1, r0, r1 -_080E624A: - movs r4, 0x1 -_080E624C: - ldr r0, _080E625C - mov r12, r0 - b _080E627A - .align 2, 0 -_080E6254: .4byte gUnknown_0202E8CE -_080E6258: .4byte gSaveBlock1 + 0x2750 -_080E625C: .4byte sub_80546B8 -_080E6260: - ldr r1, _080E628C - ldr r0, _080E6290 - adds r2, r1, r0 - ldr r0, _080E6294 - strh r0, [r2] - ldr r0, _080E6298 - adds r1, r0 - movs r0, 0x1 - negs r0, r0 - strh r0, [r1] - adds r1, r2, 0 -_080E6276: - ldr r2, _080E629C - mov r12, r2 -_080E627A: - ldrb r0, [r7] - mov r2, r12 - adds r3, r4, 0 - bl sub_80E62A0 -_080E6284: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E628C: .4byte 0x02001000 -_080E6290: .4byte 0x00009c7c -_080E6294: .4byte 0x0000ffff -_080E6298: .4byte 0x00009c7e -_080E629C: .4byte sub_80546B8 - thumb_func_end sub_80E60D8 - - thumb_func_start sub_80E62A0 -sub_80E62A0: @ 80E62A0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _080E62DC - str r2, [r4] - str r1, [r4, 0x4] - strb r0, [r4, 0x8] - strb r3, [r4, 0xB] - cmp r0, 0x9 - bne _080E62D0 - ldr r0, _080E62E0 - adds r2, r4, r0 - str r2, [r4, 0x4] - ldr r0, _080E62E4 - ldr r3, _080E62E8 - adds r1, r0, r3 - ldrh r1, [r1] - strh r1, [r2] - ldr r1, _080E62EC - adds r0, r1 - ldrh r1, [r0] - ldr r2, _080E62F0 - adds r0, r4, r2 - strh r1, [r0] -_080E62D0: - ldr r0, _080E62F4 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E62DC: .4byte 0x02001000 -_080E62E0: .4byte 0x00009c7c -_080E62E4: .4byte gSaveBlock1 -_080E62E8: .4byte 0x00002dd8 -_080E62EC: .4byte 0x00002dda -_080E62F0: .4byte 0x00009c7e -_080E62F4: .4byte sub_80E62F8 - thumb_func_end sub_80E62A0 - - thumb_func_start sub_80E62F8 -sub_80E62F8: @ 80E62F8 - push {lr} - sub sp, 0x4 - ldr r0, _080E6314 - ldr r1, _080E6318 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x8 - bhi _080E6344 - lsls r0, 2 - ldr r1, _080E631C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6314: .4byte gMain -_080E6318: .4byte 0x0000043c -_080E631C: .4byte _080E6320 - .align 2, 0 -_080E6320: - .4byte _080E6344 - .4byte _080E6380 - .4byte _080E638C - .4byte _080E63A8 - .4byte _080E63AE - .4byte _080E63B4 - .4byte _080E63BE - .4byte _080E63D8 - .4byte _080E63EA -_080E6344: - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - movs r0, 0 - bl SetVBlankCallback - bl ResetPaletteFade - bl ResetSpriteData - bl dp12_8087EA4 - bl remove_some_task - bl sub_80EAD08 - ldr r2, _080E637C - ldr r0, [r2] - ldr r1, [r2, 0x4] - ldr r2, [r2, 0x8] - bl sub_80895F8 - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - b _080E6402 - .align 2, 0 -_080E637C: .4byte gUnknown_083DB698 -_080E6380: - ldr r0, _080E6388 - bl SetUpWindowConfig - b _080E6402 - .align 2, 0 -_080E6388: .4byte gWindowConfig_81E6DA8 -_080E638C: - ldr r0, _080E63A0 - bl InitMenuWindow - ldr r0, _080E63A4 - bl InitMenuWindow - bl MenuZeroFillScreen - b _080E6402 - .align 2, 0 -_080E63A0: .4byte gWindowConfig_81E6D54 -_080E63A4: .4byte gWindowConfig_81E6DA8 -_080E63A8: - bl sub_80E6424 - b _080E6402 -_080E63AE: - bl sub_80E8DD8 - b _080E6402 -_080E63B4: - bl sub_80E8218 - bl sub_80E8CEC - b _080E6402 -_080E63BE: - bl sub_80E69F8 - ldr r0, _080E63D0 - bl sub_80E682C - ldr r0, _080E63D4 - bl SetVBlankCallback - b _080E6402 - .align 2, 0 -_080E63D0: .4byte sub_80E6AA8 -_080E63D4: .4byte sub_80E6A6C -_080E63D8: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _080E6402 -_080E63EA: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080E6414 - bl SetMainCallback2 - ldr r0, _080E6418 - bl FlagSet -_080E6402: - ldr r1, _080E641C - ldr r0, _080E6420 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080E6414: .4byte sub_80E6A88 -_080E6418: .4byte 0x00000805 -_080E641C: .4byte gMain -_080E6420: .4byte 0x0000043c - thumb_func_end sub_80E62F8 - - thumb_func_start sub_80E6424 -sub_80E6424: @ 80E6424 - push {lr} - ldr r2, _080E6444 - ldr r0, _080E6448 - ldrb r1, [r2, 0x8] - adds r1, r0 - ldrb r0, [r1] - strb r0, [r2, 0x9] - ldrb r0, [r2, 0x9] - adds r3, r2, 0 - cmp r0, 0x5 - bhi _080E6512 - lsls r0, 2 - ldr r1, _080E644C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6444: .4byte 0x02001000 -_080E6448: .4byte gUnknown_083DB6A4 -_080E644C: .4byte _080E6450 - .align 2, 0 -_080E6450: - .4byte _080E64A0 - .4byte _080E64B8 - .4byte _080E64DA - .4byte _080E64F6 - .4byte _080E6468 - .4byte _080E6480 -_080E6468: - movs r2, 0x4 - strb r2, [r3, 0xA] - adds r0, r3, 0 - adds r0, 0x83 - movs r1, 0x2 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - adds r1, r3, 0 - adds r1, 0x88 - movs r0, 0x5 - b _080E64D0 -_080E6480: - movs r1, 0x4 - strb r1, [r3, 0xA] - adds r2, r3, 0 - adds r2, 0x83 - movs r0, 0x1 - strb r0, [r2] - adds r0, r3, 0 - adds r0, 0x84 - strb r1, [r0] - adds r1, r3, 0 - adds r1, 0x88 - movs r0, 0x10 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2 - b _080E6510 -_080E64A0: - movs r0, 0x6 - strb r0, [r3, 0xA] - adds r1, r3, 0 - adds r1, 0x83 - movs r0, 0x2 - strb r0, [r1] - adds r0, r3, 0 - adds r0, 0x84 - movs r2, 0x3 - strb r2, [r0] - adds r1, 0x5 - b _080E64CE -_080E64B8: - movs r2, 0 - movs r0, 0x9 - strb r0, [r3, 0xA] - adds r1, r3, 0 - adds r1, 0x83 - movs r0, 0x2 - strb r0, [r1] - adds r1, 0x1 - movs r0, 0x5 - strb r0, [r1] - adds r1, 0x4 -_080E64CE: - movs r0, 0x4 -_080E64D0: - strh r0, [r1] - adds r0, r3, 0 - adds r0, 0x8A - strh r2, [r0] - b _080E6512 -_080E64DA: - movs r1, 0x1 - strb r1, [r3, 0xA] - adds r0, r3, 0 - adds r0, 0x83 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - adds r1, r3, 0 - adds r1, 0x88 - movs r0, 0x10 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x4 - b _080E6510 -_080E64F6: - movs r0, 0x2 - strb r0, [r3, 0xA] - adds r1, r3, 0 - adds r1, 0x83 - strb r0, [r1] - adds r1, 0x1 - movs r0, 0x1 - strb r0, [r1] - adds r1, 0x4 - movs r0, 0x5 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x3 -_080E6510: - strh r0, [r1] -_080E6512: - adds r1, r3, 0 - adds r1, 0x86 - movs r0, 0 - strb r0, [r1] - subs r1, 0x1 - strb r0, [r1] - adds r1, 0x2 - strb r0, [r1] - subs r1, 0x61 - strb r0, [r1] - movs r2, 0xDD - lsls r2, 1 - adds r1, r3, r2 - strh r0, [r1] - movs r0, 0xDF - lsls r0, 1 - adds r1, r3, r0 - movs r0, 0x2 - strb r0, [r1] - bl sub_80E6554 - bl sub_80EAECC - bl sub_80EB040 - bl sub_80E7E50 - bl sub_80E6630 - bl sub_80E6690 - pop {r0} - bx r0 - thumb_func_end sub_80E6424 - - thumb_func_start sub_80E6554 -sub_80E6554: @ 80E6554 - push {r4-r7,lr} - sub sp, 0x4 - movs r4, 0 - movs r7, 0 - ldr r0, _080E6564 - mov r12, r0 - b _080E656E - .align 2, 0 -_080E6564: .4byte 0x02001000 -_080E6568: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 -_080E656E: - movs r5, 0 - lsls r3, r7, 1 - mov r6, r12 - adds r6, 0x2A - adds r2, r3, r6 - adds r1, r4, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - strb r1, [r2] - cmp r4, 0x11 - beq _080E65A6 -_080E6586: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bhi _080E65A2 - adds r2, r5, r3 - adds r2, r6 - adds r1, r4, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - strb r1, [r2] - cmp r4, 0x11 - bne _080E6586 -_080E65A2: - cmp r4, 0x11 - bne _080E6568 -_080E65A6: - movs r0, 0x11 - mov r1, r12 - strh r0, [r1, 0x28] - cmp r4, 0x15 - bhi _080E6612 - mov r6, r12 - adds r2, r6, 0 - adds r2, 0x78 -_080E65B6: - lsls r0, r4, 24 - lsrs r0, 24 - str r2, [sp] - bl sub_80EAD7C - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, [sp] - cmp r1, 0 - beq _080E65FC - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E65DC - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - movs r5, 0 -_080E65DC: - lsls r0, r7, 1 - adds r0, r5, r0 - adds r1, r6, 0 - adds r1, 0x2A - adds r0, r1 - strb r4, [r0] - adds r0, r4, 0 - subs r0, 0x11 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - ldrh r0, [r6, 0x28] - adds r0, 0x1 - strh r0, [r6, 0x28] - mov r12, r6 - b _080E6608 -_080E65FC: - adds r0, r4, 0 - subs r0, 0x11 - adds r0, r2 - strb r1, [r0] - ldr r0, _080E662C - mov r12, r0 -_080E6608: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x15 - bls _080E65B6 -_080E6612: - mov r1, r12 - ldrh r0, [r1, 0x28] - adds r0, 0x1 - asrs r0, 1 - movs r1, 0xDB - lsls r1, 1 - add r1, r12 - strb r0, [r1] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E662C: .4byte 0x02001000 - thumb_func_end sub_80E6554 - - thumb_func_start sub_80E6630 -sub_80E6630: @ 80E6630 - push {r4-r7,lr} - movs r1, 0 - ldr r0, _080E6664 - mov r12, r0 -_080E6638: - lsls r0, r1, 4 - mov r2, r12 - adds r5, r0, r2 - movs r3, 0 - ldrb r0, [r5] - adds r7, r1, 0x1 - cmp r0, 0xFF - beq _080E6680 - lsls r0, r1, 3 - subs r0, r1 - lsls r4, r0, 1 - ldr r6, _080E6668 -_080E6650: - adds r0, r5, r3 - ldrb r1, [r0] - adds r2, r1, 0 - cmp r2, 0 - beq _080E666C - adds r0, r3, r4 - adds r0, r6 - adds r1, 0x46 - strb r1, [r0] - b _080E6672 - .align 2, 0 -_080E6664: .4byte gUnknown_083DB6B2 -_080E6668: .4byte 0x02001040 -_080E666C: - adds r0, r3, r4 - adds r0, r6 - strb r2, [r0] -_080E6672: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r5, r3 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080E6650 -_080E6680: - lsls r0, r7, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080E6638 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E6630 - - thumb_func_start sub_80E6690 -sub_80E6690: @ 80E6690 - push {r4-r6,lr} - sub sp, 0x10 - mov r0, sp - ldr r1, _080E66E0 - ldm r1!, {r2-r4} - stm r0!, {r2-r4} - ldr r1, [r1] - str r1, [r0] - movs r5, 0 - ldr r6, _080E66E4 -_080E66A4: - ldr r0, _080E66E8 - ldrb r0, [r0, 0x8] - lsls r0, 1 - adds r0, r5, r0 - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E66EC - adds r4, r0, r1 - lsls r0, r5, 3 - add r0, sp - ldr r0, [r0] - ldr r1, [r4] - bl StringCopy - adds r3, r0, 0 - ldrb r0, [r4, 0x8] - cmp r0, 0 - beq _080E66F0 - lsls r0, r5, 1 - adds r0, 0x1 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r1, [r4, 0x4] - bl StringCopy - b _080E670A - .align 2, 0 -_080E66E0: .4byte gUnknown_083DB7DC -_080E66E4: .4byte gUnknown_083DB7C0 -_080E66E8: .4byte 0x02001000 -_080E66EC: .4byte gUnknown_083DB6F4 -_080E66F0: - strb r0, [r3] - adds r3, 0x1 - ldr r1, [r4, 0x4] - adds r0, r3, 0 - bl StringCopy - lsls r0, r5, 1 - adds r0, 0x1 - lsls r0, 2 - add r0, sp - ldr r1, [r0] - movs r0, 0xFF - strb r0, [r1] -_080E670A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E66A4 - movs r5, 0 - ldr r3, _080E6758 - ldr r0, _080E675C - adds r2, r3, r0 - movs r1, 0 -_080E671E: - adds r0, r5, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x23 - bls _080E671E - ldr r1, _080E675C - adds r0, r3, r1 - adds r0, r5, r0 - movs r4, 0x1 - negs r4, r4 - adds r2, r4, 0 - movs r1, 0xFF - strb r1, [r0] - ldr r0, _080E6760 - adds r3, r0 - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x11 - strb r0, [r3, 0x1] - movs r0, 0xE0 - strb r0, [r3, 0x2] - strb r2, [r3, 0x3] - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E6758: .4byte 0x02001000 -_080E675C: .4byte 0x00009da4 -_080E6760: .4byte 0x00009f6e - thumb_func_end sub_80E6690 - - thumb_func_start sub_80E6764 -sub_80E6764: @ 80E6764 - push {r4-r6,lr} - movs r3, 0 - ldr r4, _080E680C - ldr r2, _080E6810 -_080E676C: - lsls r0, r3, 1 - adds r1, r0, r4 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080E676C - movs r3, 0 - ldr r4, _080E6814 - ldr r2, _080E6818 -_080E6786: - lsls r0, r3, 1 - adds r1, r0, r4 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _080E6786 - movs r3, 0 - ldr r5, _080E681C - ldr r0, _080E6820 - adds r4, r0, 0 - adds r6, r5, 0 - adds r6, 0xC -_080E67A6: - lsls r1, r3, 1 - adds r2, r1, r5 - ldrh r0, [r2] - orrs r0, r4 - strh r0, [r2] - adds r1, r6 - ldrh r0, [r1] - orrs r0, r4 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _080E67A6 - movs r3, 0 - ldr r6, _080E6824 - ldr r0, _080E6820 - adds r5, r0, 0 -_080E67CA: - movs r2, 0 - lsls r0, r3, 3 - adds r0, r3 - lsls r4, r0, 2 -_080E67D2: - lsls r0, r2, 1 - adds r0, r4 - adds r0, r6 - ldrh r1, [r0] - orrs r1, r5 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x8 - bls _080E67D2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bls _080E67CA - movs r3, 0 - ldr r2, _080E6828 - movs r1, 0 -_080E67F8: - adds r0, r3, r2 - strb r1, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3F - bls _080E67F8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E680C: .4byte gSaveBlock1 + 0x2B1C -_080E6810: .4byte gUnknown_083DB7EC -_080E6814: .4byte gSaveBlock1 + 0x2B28 -_080E6818: .4byte gUnknown_083DB7F4 -_080E681C: .4byte gSaveBlock1 + 0x2B34 -_080E6820: .4byte 0x0000ffff -_080E6824: .4byte gSaveBlock1 + 0x2B4C -_080E6828: .4byte gSaveBlock1 + 0x2D8C - thumb_func_end sub_80E6764 - - thumb_func_start sub_80E682C -sub_80E682C: @ 80E682C - ldr r1, _080E6838 - str r0, [r1, 0x20] - movs r0, 0 - strh r0, [r1, 0x24] - bx lr - .align 2, 0 -_080E6838: .4byte 0x02001000 - thumb_func_end sub_80E682C - - thumb_func_start sub_80E683C -sub_80E683C: @ 80E683C - push {r4,r5,lr} - ldr r1, _080E6890 - adds r0, r1, 0 - adds r0, 0x26 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0 - bne _080E6898 - movs r1, 0 - movs r0, 0xDB - lsls r0, 1 - adds r3, r2, r0 - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r1, r0 - bge _080E6876 - movs r0, 0xD5 - lsls r0, 1 - adds r5, r2, r0 - movs r4, 0x2 -_080E6864: - adds r0, r1, r5 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r1, r0 - blt _080E6864 -_080E6876: - adds r0, r2, r1 - ldr r1, _080E6894 - adds r3, r0, r1 - ldrh r0, [r2, 0x28] - movs r1, 0x1 - ands r0, r1 - strb r0, [r3] - cmp r0, 0 - bne _080E68B8 - movs r0, 0x2 - strb r0, [r3] - b _080E68B8 - .align 2, 0 -_080E6890: .4byte 0x02001000 -_080E6894: .4byte 0x000001a9 -_080E6898: - movs r3, 0xD5 - lsls r3, 1 - adds r1, r2, r3 - movs r0, 0x7 - strb r0, [r1] - ldr r1, _080E68E0 - adds r3, r2, r1 - movs r1, 0x6 - strb r1, [r3] - movs r3, 0xD6 - lsls r3, 1 - adds r1, r2, r3 - strb r0, [r1] - adds r3, 0x1 - adds r1, r2, r3 - strb r0, [r1] -_080E68B8: - movs r0, 0xD4 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - strb r0, [r1] - ldr r3, _080E68E4 - adds r1, r2, r3 - strb r0, [r1] - adds r3, 0xC - adds r1, r2, r3 - strb r0, [r1] - adds r3, 0x2 - adds r1, r2, r3 - strb r0, [r1] - bl sub_80E9A4C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E68E0: .4byte 0x000001ab -_080E68E4: .4byte 0x000001a9 - thumb_func_end sub_80E683C - - thumb_func_start sub_80E68E8 -sub_80E68E8: @ 80E68E8 - push {r4-r6,lr} - bl sub_80EB0B0 - ldr r3, _080E694C - adds r0, r3, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E695C - movs r1, 0xDC - lsls r1, 1 - adds r0, r3, r1 - ldrb r6, [r0] - lsls r0, r6, 1 - ldr r2, _080E6950 - adds r1, r3, r2 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x1 - asrs r0, 1 - ldr r1, _080E6954 - adds r2, r3, r1 - strb r0, [r2] - movs r1, 0 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r5, r3, 0 - cmp r1, r0 - bge _080E693A - ldr r3, _080E6958 - adds r4, r5, r3 - movs r3, 0x2 -_080E6928: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - blt _080E6928 -_080E693A: - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _080E6958 - adds r0, r5, r2 - adds r2, r1, r0 - lsls r0, r6, 1 - ldr r3, _080E6950 - b _080E69AC - .align 2, 0 -_080E694C: .4byte 0x02001000 -_080E6950: .4byte 0x00004178 -_080E6954: .4byte 0x00009a28 -_080E6958: .4byte 0x000099a6 -_080E695C: - movs r1, 0xDC - lsls r1, 1 - adds r0, r3, r1 - ldrb r6, [r0] - lsls r0, r6, 1 - ldr r2, _080E69E0 - adds r1, r3, r2 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x1 - asrs r0, 1 - ldr r1, _080E69E4 - adds r2, r3, r1 - strb r0, [r2] - movs r1, 0 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r5, r3, 0 - cmp r1, r0 - bge _080E699C - ldr r3, _080E69E8 - adds r4, r5, r3 - movs r3, 0x2 -_080E698A: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - blt _080E698A -_080E699C: - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _080E69E8 - adds r0, r5, r2 - adds r2, r1, r0 - lsls r0, r6, 1 - ldr r3, _080E69E0 -_080E69AC: - adds r1, r5, r3 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x1 - ands r0, r1 - strb r0, [r2] - cmp r0, 0 - bne _080E69C0 - movs r0, 0x2 - strb r0, [r2] -_080E69C0: - ldr r1, _080E69EC - adds r0, r5, r1 - movs r1, 0 - strb r1, [r0] - ldr r2, _080E69F0 - adds r0, r5, r2 - strb r1, [r0] - ldr r3, _080E69F4 - adds r0, r5, r3 - strb r1, [r0] - bl sub_80E9A4C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E69E0: .4byte 0x00004142 -_080E69E4: .4byte 0x00009a28 -_080E69E8: .4byte 0x000099a6 -_080E69EC: .4byte 0x000099a4 -_080E69F0: .4byte 0x000099a5 -_080E69F4: .4byte 0x00009a29 - thumb_func_end sub_80E68E8 - - thumb_func_start sub_80E69F8 -sub_80E69F8: @ 80E69F8 - push {r4,lr} - ldr r0, _080E6A10 - ldrb r1, [r0, 0x8] - adds r4, r0, 0 - cmp r1, 0xD - bhi _080E6A50 - lsls r0, r1, 2 - ldr r1, _080E6A14 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6A10: .4byte 0x02001000 -_080E6A14: .4byte _080E6A18 - .align 2, 0 -_080E6A18: - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A58 - .4byte _080E6A50 - .4byte _080E6A58 - .4byte _080E6A58 - .4byte _080E6A50 - .4byte _080E6A58 - .4byte _080E6A58 - .4byte _080E6A58 - .4byte _080E6A50 -_080E6A50: - ldrb r0, [r4, 0x8] - bl sub_80E9368 - b _080E6A66 -_080E6A58: - ldrb r0, [r4, 0x8] - bl sub_80E9368 - ldrb r0, [r4, 0xB] - ldrb r1, [r4, 0x9] - bl sub_80E8BF4 -_080E6A66: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E69F8 - - thumb_func_start sub_80E6A6C -sub_80E6A6C: @ 80E6A6C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl sub_80EAC5C - bl TransferPlttBuffer - bl sub_8089668 - pop {r0} - bx r0 - thumb_func_end sub_80E6A6C - - thumb_func_start sub_80E6A88 -sub_80E6A88: @ 80E6A88 - push {lr} - ldr r0, _080E6AA4 - ldr r0, [r0, 0x20] - bl _call_via_r0 - bl AnimateSprites - bl BuildOamBuffer - bl sub_80EAD08 - pop {r0} - bx r0 - .align 2, 0 -_080E6AA4: .4byte 0x02001000 - thumb_func_end sub_80E6A88 - - thumb_func_start sub_80E6AA8 -sub_80E6AA8: @ 80E6AA8 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080E6ABA - ldr r0, _080E6AC0 - bl sub_80E682C -_080E6ABA: - pop {r0} - bx r0 - .align 2, 0 -_080E6AC0: .4byte sub_80E6AC4 - thumb_func_end sub_80E6AA8 - - thumb_func_start sub_80E6AC4 -sub_80E6AC4: @ 80E6AC4 - push {lr} - bl sub_80E88F0 - movs r0, 0 - bl sub_80E8398 - movs r0, 0 - bl sub_80E91D4 - ldr r0, _080E6AE0 - bl sub_80E682C - pop {r0} - bx r0 - .align 2, 0 -_080E6AE0: .4byte sub_80E6AE4 - thumb_func_end sub_80E6AC4 - - thumb_func_start sub_80E6AE4 -sub_80E6AE4: @ 80E6AE4 - push {r4,r5,lr} - bl sub_80E75D8 - ldr r4, _080E6B44 - adds r1, r4, 0 - adds r1, 0x87 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - beq _080E6AFE - movs r0, 0x5 - bl PlaySE -_080E6AFE: - ldr r2, _080E6B48 - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - adds r5, r2, 0 - cmp r0, 0 - beq _080E6BA4 - movs r0, 0x5 - bl PlaySE - adds r1, r4, 0 - adds r1, 0x86 - adds r0, r4, 0 - adds r0, 0x84 - ldrb r2, [r1] - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E6B78 - adds r0, r4, 0 - adds r0, 0x85 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _080E6B60 - cmp r0, 0x1 - bgt _080E6B4C - cmp r0, 0 - beq _080E6B52 - b _080E6BA4 - .align 2, 0 -_080E6B44: .4byte 0x02001000 -_080E6B48: .4byte gMain -_080E6B4C: - cmp r0, 0x2 - beq _080E6B6C - b _080E6BA4 -_080E6B52: - ldr r0, _080E6B5C - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6B5C: .4byte sub_80E6BC0 -_080E6B60: - ldr r0, _080E6B68 - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6B68: .4byte sub_80E6C84 -_080E6B6C: - ldr r0, _080E6B74 - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6B74: .4byte sub_80E6D7C -_080E6B78: - adds r0, r4, 0 - adds r0, 0x83 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x85 - adds r3, r0, 0 - muls r3, r2 - adds r0, r3, 0 - ldrb r1, [r1] - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x27 - strb r0, [r1] - bl sub_80E7574 - ldr r0, _080E6BA0 - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6BA0: .4byte sub_80E6F68 -_080E6BA4: - ldrh r1, [r5, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E6BB4 - ldr r0, _080E6BBC - bl sub_80E682C -_080E6BB4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E6BBC: .4byte sub_80E6C84 - thumb_func_end sub_80E6AE4 - - thumb_func_start sub_80E6BC0 -sub_80E6BC0: @ 80E6BC0 - push {r4,lr} - ldr r4, _080E6BD4 - ldrh r0, [r4, 0x24] - cmp r0, 0x1 - beq _080E6C12 - cmp r0, 0x1 - bgt _080E6BD8 - cmp r0, 0 - beq _080E6BE2 - b _080E6C76 - .align 2, 0 -_080E6BD4: .4byte 0x02001000 -_080E6BD8: - cmp r0, 0x2 - beq _080E6C54 - cmp r0, 0x64 - beq _080E6C64 - b _080E6C76 -_080E6BE2: - movs r0, 0x2 - bl sub_80E8398 - ldrb r0, [r4, 0x8] - cmp r0, 0x6 - bne _080E6BFA - movs r0, 0x6 - bl sub_80E91D4 - movs r0, 0x64 - strh r0, [r4, 0x24] - b _080E6C76 -_080E6BFA: - movs r0, 0x2 - bl sub_80E91D4 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - movs r0, 0x1 - bl MoveMenuCursor - b _080E6C3E -_080E6C12: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080E6C32 - cmp r1, 0 - bgt _080E6C2C - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080E6C46 - b _080E6C76 -_080E6C2C: - cmp r1, 0x1 - beq _080E6C46 - b _080E6C76 -_080E6C32: - bl sub_80E7D6C - bl sub_80E98C4 - bl sub_80E95A4 -_080E6C3E: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E6C76 -_080E6C46: - ldr r1, _080E6C50 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E6C76 - .align 2, 0 -_080E6C50: .4byte 0x02001000 -_080E6C54: - bl sub_80E81FC - ldr r0, _080E6C60 - bl sub_80E682C - b _080E6C76 - .align 2, 0 -_080E6C60: .4byte sub_80E6AC4 -_080E6C64: - ldr r0, _080E6C7C - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080E6C76 - ldr r0, _080E6C80 - bl sub_80E682C -_080E6C76: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6C7C: .4byte gMain -_080E6C80: .4byte sub_80E6AC4 - thumb_func_end sub_80E6BC0 - - thumb_func_start sub_80E6C84 -sub_80E6C84: @ 80E6C84 - push {r4,lr} - ldr r4, _080E6C98 - ldrh r0, [r4, 0x24] - cmp r0, 0x1 - beq _080E6CF4 - cmp r0, 0x1 - bgt _080E6C9C - cmp r0, 0 - beq _080E6CA6 - b _080E6D72 - .align 2, 0 -_080E6C98: .4byte 0x02001000 -_080E6C9C: - cmp r0, 0x2 - beq _080E6D24 - cmp r0, 0xFF - beq _080E6D64 - b _080E6D72 -_080E6CA6: - movs r0, 0x2 - bl sub_80E8398 - movs r0, 0x3 - bl sub_80E91D4 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0 - bl DisplayYesNoMenu - movs r0, 0x1 - bl MoveMenuCursor - ldrb r0, [r4, 0x8] - cmp r0, 0x9 - beq _080E6CE8 - cmp r0, 0x4 - beq _080E6CE8 - cmp r0, 0x7 - beq _080E6CE8 - cmp r0, 0x8 - beq _080E6CE8 - cmp r0, 0xA - beq _080E6CE8 - cmp r0, 0xB - beq _080E6CE8 - cmp r0, 0xC - beq _080E6CE8 - cmp r0, 0x5 - beq _080E6CE8 - cmp r0, 0xD - bne _080E6D1C -_080E6CE8: - ldr r1, _080E6CF0 - movs r0, 0x2 - strh r0, [r1, 0x24] - b _080E6D72 - .align 2, 0 -_080E6CF0: .4byte 0x02001000 -_080E6CF4: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080E6D06 - cmp r1, 0 - ble _080E6D34 - b _080E6D3E -_080E6D06: - movs r0, 0x4 - bl sub_80E91D4 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0 - bl DisplayYesNoMenu - movs r0, 0x1 - bl MoveMenuCursor -_080E6D1C: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E6D72 -_080E6D24: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080E6D44 - cmp r1, 0 - bgt _080E6D3E -_080E6D34: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080E6D58 - b _080E6D72 -_080E6D3E: - cmp r1, 0x1 - beq _080E6D58 - b _080E6D72 -_080E6D44: - ldr r0, _080E6D50 - strh r1, [r0] - ldr r0, _080E6D54 - bl sub_80E682C - b _080E6D72 - .align 2, 0 -_080E6D50: .4byte gScriptResult -_080E6D54: .4byte sub_80E752C -_080E6D58: - ldr r1, _080E6D60 - movs r0, 0xFF - strh r0, [r1, 0x24] - b _080E6D72 - .align 2, 0 -_080E6D60: .4byte 0x02001000 -_080E6D64: - bl sub_8072DEC - bl sub_80E81FC - ldr r0, _080E6D78 - bl sub_80E682C -_080E6D72: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6D78: .4byte sub_80E6AC4 - thumb_func_end sub_80E6C84 - - thumb_func_start sub_80E6D7C -sub_80E6D7C: @ 80E6D7C - push {r4-r7,lr} - ldr r5, _080E6D98 - ldrh r0, [r5, 0x24] - cmp r0, 0xA - bne _080E6D88 - b _080E6F06 -_080E6D88: - cmp r0, 0xA - bgt _080E6D9C - cmp r0, 0 - beq _080E6DB6 - cmp r0, 0x1 - beq _080E6E3C - b _080E6F5E - .align 2, 0 -_080E6D98: .4byte 0x02001000 -_080E6D9C: - cmp r0, 0x65 - bne _080E6DA2 - b _080E6F30 -_080E6DA2: - cmp r0, 0x65 - bgt _080E6DAE - cmp r0, 0x64 - bne _080E6DAC - b _080E6F24 -_080E6DAC: - b _080E6F5E -_080E6DAE: - cmp r0, 0x66 - bne _080E6DB4 - b _080E6F50 -_080E6DB4: - b _080E6F5E -_080E6DB6: - movs r0, 0x2 - bl sub_80E8398 - bl sub_80E8054 - lsls r0, 24 - cmp r0, 0 - beq _080E6DCA - movs r0, 0x5 - b _080E6DEE -_080E6DCA: - ldrb r0, [r5, 0x8] - cmp r0, 0x9 - bne _080E6DFC - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - bne _080E6DDE - movs r0, 0x8 - b _080E6DEE -_080E6DDE: - ldrh r0, [r5, 0xC] - ldr r1, _080E6DF8 - cmp r0, r1 - beq _080E6DEC - ldrh r0, [r5, 0xE] - cmp r0, r1 - bne _080E6DFC -_080E6DEC: - movs r0, 0x9 -_080E6DEE: - bl sub_80E91D4 - movs r0, 0xA - strh r0, [r5, 0x24] - b _080E6F5E - .align 2, 0 -_080E6DF8: .4byte 0x0000ffff -_080E6DFC: - ldr r0, _080E6E18 - ldrb r0, [r0, 0x8] - cmp r0, 0x4 - bne _080E6E20 - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - bne _080E6E20 - ldr r0, _080E6E1C - bl sub_80E682C - b _080E6F5E - .align 2, 0 -_080E6E18: .4byte 0x02001000 -_080E6E1C: .4byte sub_80E6C84 -_080E6E20: - movs r0, 0x1 - bl sub_80E91D4 - bl sub_80E9744 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0 - bl DisplayYesNoMenu - movs r0, 0 - bl MoveMenuCursor - b _080E6F3C -_080E6E3C: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r6, r0, 24 - cmp r6, 0 - beq _080E6E5C - cmp r6, 0 - bgt _080E6E56 - movs r0, 0x1 - negs r0, r0 - cmp r6, r0 - beq _080E6EDC - b _080E6F5E -_080E6E56: - cmp r6, 0x1 - beq _080E6EDC - b _080E6F5E -_080E6E5C: - ldr r7, _080E6EC8 - bl sub_80E7FA8 - lsls r0, 24 - lsrs r0, 24 - negs r0, r0 - lsrs r0, 31 - strh r0, [r7] - bl sub_80E7D9C - ldrb r0, [r5, 0x8] - cmp r0, 0 - bne _080E6E82 - ldr r4, _080E6ECC - bl sub_80E8094 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_080E6E82: - ldrb r0, [r5, 0x8] - cmp r0, 0x9 - bne _080E6E9C - bl sub_80E81C0 - ldr r4, _080E6ECC - ldr r1, _080E6ED0 - adds r0, r5, r1 - bl sub_80FA364 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_080E6E9C: - ldrb r0, [r5, 0x8] - cmp r0, 0xD - bne _080E6EBE - ldrh r0, [r5, 0xC] - ldr r1, _080E6ED4 - cmp r0, r1 - beq _080E6EB0 - ldrh r0, [r5, 0xE] - cmp r0, r1 - bne _080E6EB2 -_080E6EB0: - strh r6, [r7] -_080E6EB2: - ldr r4, _080E6ECC - bl sub_80E810C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_080E6EBE: - ldr r0, _080E6ED8 - bl sub_80E682C - b _080E6F5E - .align 2, 0 -_080E6EC8: .4byte gScriptResult -_080E6ECC: .4byte gUnknown_0202E8CC -_080E6ED0: .4byte 0x00009c7c -_080E6ED4: .4byte 0x0000ffff -_080E6ED8: .4byte sub_80E752C -_080E6EDC: - bl sub_8072DEC - bl sub_80E81FC - ldr r4, _080E6EFC - ldrb r0, [r4, 0x8] - cmp r0, 0x6 - bne _080E6F00 - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - beq _080E6F00 - movs r0, 0x64 - strh r0, [r4, 0x24] - b _080E6F5E - .align 2, 0 -_080E6EFC: .4byte 0x02001000 -_080E6F00: - bl sub_80E95A4 - b _080E6F12 -_080E6F06: - ldr r0, _080E6F1C - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080E6F5E -_080E6F12: - ldr r0, _080E6F20 - bl sub_80E682C - b _080E6F5E - .align 2, 0 -_080E6F1C: .4byte gMain -_080E6F20: .4byte sub_80E6AC4 -_080E6F24: - movs r0, 0x7 - bl sub_80E91D4 - ldrh r0, [r5, 0x24] - adds r0, 0x1 - strh r0, [r5, 0x24] -_080E6F30: - ldr r0, _080E6F48 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E6F5E -_080E6F3C: - ldr r1, _080E6F4C - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E6F5E - .align 2, 0 -_080E6F48: .4byte gMain -_080E6F4C: .4byte 0x02001000 -_080E6F50: - bl sub_80E7E50 - bl sub_80E95A4 - ldr r0, _080E6F64 - bl sub_80E682C -_080E6F5E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E6F64: .4byte sub_80E6AC4 - thumb_func_end sub_80E6D7C - - thumb_func_start sub_80E6F68 -sub_80E6F68: @ 80E6F68 - push {r4,lr} - ldr r4, _080E6F78 - ldrh r0, [r4, 0x24] - cmp r0, 0 - beq _080E6F7C - cmp r0, 0x1 - beq _080E6F9C - b _080E6FBC - .align 2, 0 -_080E6F78: .4byte 0x02001000 -_080E6F7C: - movs r0, 0x1 - bl sub_80E8398 - movs r0, 0xA - bl sub_80E91D4 - bl sub_80E683C - bl sub_80E9974 - bl sub_80E9E98 - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E6FBC -_080E6F9C: - bl sub_80E9EA8 - lsls r0, 24 - cmp r0, 0 - beq _080E6FBC - movs r0, 0x1 - bl sub_80E8D8C - bl sub_80E8420 - movs r0, 0 - bl sub_80E8958 - ldr r0, _080E6FC4 - bl sub_80E682C -_080E6FBC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6FC4: .4byte sub_80E6FC8 - thumb_func_end sub_80E6F68 - - thumb_func_start sub_80E6FC8 -sub_80E6FC8: @ 80E6FC8 - push {r4,lr} - bl sub_80E77C8 - adds r1, r0, 0 - ldr r4, _080E7000 - adds r0, r4, 0 - adds r0, 0x96 - strb r1, [r0] - movs r2, 0xE0 - lsls r2, 1 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E700C - movs r0, 0x5 - bl PlaySE - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, _080E7004 - str r1, [r0] - ldr r0, _080E7008 - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E7000: .4byte 0x02001000 -_080E7004: .4byte sub_80E6FC8 -_080E7008: .4byte sub_80E7458 -_080E700C: - lsls r0, r1, 24 - cmp r0, 0 - beq _080E7018 - movs r0, 0x5 - bl PlaySE -_080E7018: - ldr r0, _080E7054 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E70E8 - ldr r2, _080E7058 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E7090 - movs r0, 0x5 - bl PlaySE - movs r1, 0xD4 - lsls r1, 1 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - beq _080E7070 - cmp r0, 0x2 - bgt _080E705C - cmp r0, 0x1 - beq _080E7062 - b _080E710A - .align 2, 0 -_080E7054: .4byte gMain -_080E7058: .4byte 0x000001b7 -_080E705C: - cmp r0, 0x3 - beq _080E70F0 - b _080E710A -_080E7062: - ldr r0, _080E706C - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E706C: .4byte sub_80E718C -_080E7070: - ldrb r0, [r4, 0x8] - cmp r0, 0x6 - beq _080E710A - adds r0, r4, 0 - adds r0, 0x27 - ldrb r0, [r0] - ldr r1, _080E708C - bl sub_80E7F00 - bl sub_80E7574 - bl sub_80E95A4 - b _080E710A - .align 2, 0 -_080E708C: .4byte 0x0000ffff -_080E7090: - adds r0, r4, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - beq _080E70CA - ldr r2, _080E70DC - adds r0, r4, r2 - movs r2, 0 - ldrsb r2, [r0, r2] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r4, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r2, r0 - adds r0, r4, 0 - adds r0, 0x40 - adds r2, r0 - ldrb r0, [r2] - lsls r0, 1 - ldr r2, _080E70E0 - adds r1, r4, r2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _080E710A -_080E70CA: - movs r0, 0x5 - bl PlaySE - bl sub_80E7AD4 - ldr r0, _080E70E4 - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E70DC: .4byte 0x000001a9 -_080E70E0: .4byte 0x00004142 -_080E70E4: .4byte sub_80E7218 -_080E70E8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E70FC -_080E70F0: - ldr r0, _080E70F8 - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E70F8: .4byte sub_80E7114 -_080E70FC: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E710A - ldr r0, _080E7110 - bl sub_80E682C -_080E710A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7110: .4byte sub_80E718C - thumb_func_end sub_80E6FC8 - - thumb_func_start sub_80E7114 -sub_80E7114: @ 80E7114 - push {lr} - ldr r0, _080E712C - ldrh r1, [r0, 0x24] - adds r2, r0, 0 - cmp r1, 0x4 - bhi _080E7182 - lsls r0, r1, 2 - ldr r1, _080E7130 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E712C: .4byte 0x02001000 -_080E7130: .4byte _080E7134 - .align 2, 0 -_080E7134: - .4byte _080E7148 - .4byte _080E715C - .4byte _080E715C - .4byte _080E7164 - .4byte _080E717C -_080E7148: - bl sub_80E8504 - bl sub_80E9E98 - bl sub_80E88F0 - movs r0, 0 - bl sub_80E8D8C - b _080E716E -_080E715C: - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - b _080E7182 -_080E7164: - bl sub_80E9F50 - lsls r0, 24 - cmp r0, 0 - beq _080E7182 -_080E716E: - ldr r1, _080E7178 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E7182 - .align 2, 0 -_080E7178: .4byte 0x02001000 -_080E717C: - ldr r0, _080E7188 - bl sub_80E682C -_080E7182: - pop {r0} - bx r0 - .align 2, 0 -_080E7188: .4byte sub_80E6AC4 - thumb_func_end sub_80E7114 - - thumb_func_start sub_80E718C -sub_80E718C: @ 80E718C - push {r4,lr} - ldr r0, _080E71A4 - ldrh r1, [r0, 0x24] - adds r4, r0, 0 - cmp r1, 0x1 - beq _080E71C6 - cmp r1, 0x1 - bgt _080E71A8 - cmp r1, 0 - beq _080E71AE - b _080E71EC - .align 2, 0 -_080E71A4: .4byte 0x02001000 -_080E71A8: - cmp r1, 0x8 - beq _080E71F4 - b _080E71EC -_080E71AE: - bl sub_80E8504 - bl sub_80E9E98 - bl sub_80E88F0 - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - bl sub_80E8D54 - b _080E720E -_080E71C6: - bl sub_80E9FD4 - lsls r0, 24 - cmp r0, 0 - beq _080E720E - movs r2, 0 - adds r1, r4, 0 - adds r1, 0x26 - ldrb r0, [r1] - cmp r0, 0 - bne _080E71DE - movs r2, 0x1 -_080E71DE: - strb r2, [r1] - bl sub_80E683C - bl sub_80E9974 - bl sub_80E9E98 -_080E71EC: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E720E -_080E71F4: - bl sub_80EA014 - lsls r0, 24 - cmp r0, 0 - beq _080E720E - bl sub_80E8420 - movs r0, 0 - bl sub_80E8958 - ldr r0, _080E7214 - bl sub_80E682C -_080E720E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7214: .4byte sub_80E6FC8 - thumb_func_end sub_80E718C - - thumb_func_start sub_80E7218 -sub_80E7218: @ 80E7218 - push {r4,lr} - ldr r4, _080E7230 - ldrh r0, [r4, 0x24] - adds r1, r4, 0 - cmp r0, 0x9 - beq _080E7260 - cmp r0, 0x9 - bgt _080E7234 - cmp r0, 0x8 - beq _080E7244 - b _080E723C - .align 2, 0 -_080E7230: .4byte 0x02001000 -_080E7234: - cmp r0, 0xA - beq _080E7276 - cmp r0, 0xB - beq _080E7288 -_080E723C: - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E7288 -_080E7244: - movs r0, 0 - bl sub_80E8D8C - bl sub_80E8504 - bl sub_80E9AD4 - bl sub_80E68E8 - bl sub_80E88F0 - bl sub_80E9E98 - b _080E726E -_080E7260: - bl sub_80EA050 - lsls r0, 24 - cmp r0, 0 - beq _080E7288 - bl sub_80E9C94 -_080E726E: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E7288 -_080E7276: - movs r0, 0x1 - bl sub_80E87CC - movs r0, 0x1 - bl sub_80E8958 - ldr r0, _080E7290 - bl sub_80E682C -_080E7288: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7290: .4byte sub_80E7294 - thumb_func_end sub_80E7218 - - thumb_func_start sub_80E7294 -sub_80E7294: @ 80E7294 - push {r4,lr} - bl sub_80E7B40 - adds r1, r0, 0 - ldr r4, _080E72CC - ldr r2, _080E72D0 - adds r0, r4, r2 - strb r1, [r0] - adds r2, 0x7 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E72DC - movs r0, 0x5 - bl PlaySE - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, _080E72D4 - str r1, [r0] - ldr r0, _080E72D8 - bl sub_80E682C - b _080E731A - .align 2, 0 -_080E72CC: .4byte 0x02001000 -_080E72D0: .4byte 0x000001b9 -_080E72D4: .4byte sub_80E7294 -_080E72D8: .4byte sub_80E7458 -_080E72DC: - lsls r0, r1, 24 - cmp r0, 0 - beq _080E72E8 - movs r0, 0x5 - bl PlaySE -_080E72E8: - ldr r0, _080E7304 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E730C - movs r0, 0x5 - bl PlaySE - ldr r0, _080E7308 - bl sub_80E682C - b _080E731A - .align 2, 0 -_080E7304: .4byte gMain -_080E7308: .4byte sub_80E7324 -_080E730C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E731A - ldr r0, _080E7320 - bl sub_80E682C -_080E731A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7320: .4byte sub_80E73D0 - thumb_func_end sub_80E7294 - - thumb_func_start sub_80E7324 -sub_80E7324: @ 80E7324 - push {lr} - ldr r0, _080E733C - ldrh r1, [r0, 0x24] - adds r2, r0, 0 - cmp r1, 0x4 - bhi _080E73C6 - lsls r0, r1, 2 - ldr r1, _080E7340 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E733C: .4byte 0x02001000 -_080E7340: .4byte _080E7344 - .align 2, 0 -_080E7344: - .4byte _080E7358 - .4byte _080E737C - .4byte _080E7384 - .4byte _080E738A - .4byte _080E73A4 -_080E7358: - bl sub_80E7DD0 - lsls r0, 24 - cmp r0, 0 - bne _080E7370 - ldr r0, _080E736C - bl sub_80E682C - b _080E73C6 - .align 2, 0 -_080E736C: .4byte sub_80E7294 -_080E7370: - bl sub_80E88F0 - movs r0, 0 - bl sub_80E87CC - b _080E7394 -_080E737C: - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - b _080E73C6 -_080E7384: - bl sub_80E9E98 - b _080E7394 -_080E738A: - bl sub_80EA184 - lsls r0, 24 - cmp r0, 0 - beq _080E73C6 -_080E7394: - ldr r1, _080E73A0 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E73C6 - .align 2, 0 -_080E73A0: .4byte 0x02001000 -_080E73A4: - ldrb r0, [r2, 0x8] - cmp r0, 0x6 - bne _080E73C0 - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - beq _080E73C0 - ldr r0, _080E73BC - bl sub_80E682C - b _080E73C6 - .align 2, 0 -_080E73BC: .4byte sub_80E6D7C -_080E73C0: - ldr r0, _080E73CC - bl sub_80E682C -_080E73C6: - pop {r0} - bx r0 - .align 2, 0 -_080E73CC: .4byte sub_80E6AC4 - thumb_func_end sub_80E7324 - - thumb_func_start sub_80E73D0 -sub_80E73D0: @ 80E73D0 - push {lr} - ldr r0, _080E73E4 - ldrh r0, [r0, 0x24] - cmp r0, 0x4 - bhi _080E744E - lsls r0, 2 - ldr r1, _080E73E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E73E4: .4byte 0x02001000 -_080E73E8: .4byte _080E73EC - .align 2, 0 -_080E73EC: - .4byte _080E7400 - .4byte _080E740C - .4byte _080E7416 - .4byte _080E742C - .4byte _080E7444 -_080E7400: - movs r0, 0 - bl sub_80E87CC - bl sub_80E88F0 - b _080E7436 -_080E740C: - bl sub_80E9AD4 - bl sub_80E9E98 - b _080E7436 -_080E7416: - bl sub_80EA0E4 - lsls r0, 24 - cmp r0, 0 - beq _080E744E - movs r0, 0x1 - bl sub_80E8D8C - bl sub_80E9A14 - b _080E7436 -_080E742C: - bl sub_80E8420 - movs r0, 0 - bl sub_80E8958 -_080E7436: - ldr r1, _080E7440 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E744E - .align 2, 0 -_080E7440: .4byte 0x02001000 -_080E7444: - bl sub_80E9974 - ldr r0, _080E7454 - bl sub_80E682C -_080E744E: - pop {r0} - bx r0 - .align 2, 0 -_080E7454: .4byte sub_80E6FC8 - thumb_func_end sub_80E73D0 - - thumb_func_start sub_80E7458 -sub_80E7458: @ 80E7458 - push {r4,r5,lr} - ldr r4, _080E7468 - ldrh r5, [r4, 0x24] - cmp r5, 0 - beq _080E746C - cmp r5, 0x1 - beq _080E74A4 - b _080E7518 - .align 2, 0 -_080E7468: .4byte 0x02001000 -_080E746C: - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, [r0] - ldr r0, _080E7480 - cmp r1, r0 - bne _080E7484 - bl sub_80E9D7C - b _080E7488 - .align 2, 0 -_080E7480: .4byte sub_80E6FC8 -_080E7484: - bl sub_80E9D00 -_080E7488: - ldr r4, _080E74A0 - movs r2, 0xDF - lsls r2, 1 - adds r0, r4, r2 - ldrb r0, [r0] - bl sub_80E9E08 - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E7518 - .align 2, 0 -_080E74A0: .4byte 0x02001000 -_080E74A4: - bl sub_80E9E54 - lsls r0, 24 - cmp r0, 0 - beq _080E7518 - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, [r0] - ldr r0, _080E74DC - cmp r1, r0 - bne _080E74E4 - bl sub_80E9D7C - ldr r2, _080E74E0 - adds r1, r4, r2 - adds r2, 0xB - adds r0, r4, r2 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - bl sub_80E7A98 - adds r0, r4, 0 - adds r0, 0x96 - b _080E74FE - .align 2, 0 -_080E74DC: .4byte sub_80E6FC8 -_080E74E0: .4byte 0x000001b5 -_080E74E4: - ldr r0, _080E7520 - adds r1, r4, r0 - movs r2, 0xE0 - lsls r2, 1 - adds r0, r4, r2 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - bl sub_80E7D30 - ldr r1, _080E7524 - adds r0, r4, r1 -_080E74FE: - strb r5, [r0] - ldr r1, _080E7528 - movs r0, 0xDF - lsls r0, 1 - adds r2, r1, r0 - movs r0, 0x2 - strb r0, [r2] - movs r2, 0xE2 - lsls r2, 1 - adds r0, r1, r2 - ldr r0, [r0] - bl sub_80E682C -_080E7518: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E7520: .4byte 0x00009a29 -_080E7524: .4byte 0x000001b9 -_080E7528: .4byte 0x02001000 - thumb_func_end sub_80E7458 - - thumb_func_start sub_80E752C -sub_80E752C: @ 80E752C - push {r4,lr} - sub sp, 0x4 - ldr r4, _080E7540 - ldrh r1, [r4, 0x24] - cmp r1, 0 - beq _080E7544 - cmp r1, 0x1 - beq _080E755C - b _080E756C - .align 2, 0 -_080E7540: .4byte 0x02001000 -_080E7544: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E756C -_080E755C: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080E756C - ldr r0, [r4] - bl SetMainCallback2 -_080E756C: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E752C - - thumb_func_start sub_80E7574 -sub_80E7574: @ 80E7574 - push {r4,r5,lr} - ldr r4, _080E75B8 - ldrb r5, [r4, 0x8] - cmp r5, 0x1 - bne _080E75BC - adds r0, r4, 0 - adds r0, 0x86 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r4, 0 - adds r1, 0x7E - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080E75BC - adds r0, r4, 0 - adds r0, 0x27 - ldrb r0, [r0] - lsls r0, 1 - subs r1, 0x72 - adds r0, r1 - ldrh r0, [r0] - bl sub_80EB2D4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7 - beq _080E75BC - adds r0, r4, 0 - adds r0, 0x7D - strb r5, [r0] - adds r1, r4, 0 - b _080E75C6 - .align 2, 0 -_080E75B8: .4byte 0x02001000 -_080E75BC: - ldr r1, _080E75D4 - adds r2, r1, 0 - adds r2, 0x7D - movs r0, 0 - strb r0, [r2] -_080E75C6: - adds r1, 0x7D - movs r0, 0 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E75D4: .4byte 0x02001000 - thumb_func_end sub_80E7574 - - thumb_func_start sub_80E75D8 -sub_80E75D8: @ 80E75D8 - push {r4-r6,lr} - movs r4, 0 - ldr r2, _080E75FC - ldrh r1, [r2, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080E7604 - ldr r1, _080E7600 - adds r0, r1, 0 - adds r0, 0x84 - ldrb r0, [r0] - adds r2, r1, 0 - adds r2, 0x86 - strb r0, [r2] - adds r1, 0x85 - movs r0, 0x2 - b _080E768E - .align 2, 0 -_080E75FC: .4byte gMain -_080E7600: .4byte 0x02001000 -_080E7604: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080E7630 - ldr r2, _080E762C - adds r1, r2, 0 - adds r1, 0x86 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080E765C - adds r0, r2, 0 - adds r0, 0x84 - ldrb r0, [r0] - strb r0, [r1] - b _080E765C - .align 2, 0 -_080E762C: .4byte 0x02001000 -_080E7630: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080E7658 - ldr r0, _080E7684 - adds r3, r0, 0 - adds r3, 0x86 - ldrb r1, [r3] - adds r1, 0x1 - strb r1, [r3] - adds r0, 0x84 - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - ble _080E7656 - strb r4, [r3] -_080E7656: - movs r4, 0x1 -_080E7658: - cmp r4, 0 - beq _080E76EA -_080E765C: - ldr r2, _080E7684 - ldrb r3, [r2, 0x9] - cmp r3, 0x2 - bne _080E7692 - adds r1, r2, 0 - adds r1, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E7688 - adds r0, r2, 0 - adds r0, 0x85 - strb r3, [r0] - b _080E77BC - .align 2, 0 -_080E7684: .4byte 0x02001000 -_080E7688: - adds r1, r2, 0 - adds r1, 0x85 - movs r0, 0 -_080E768E: - strb r0, [r1] - b _080E77BC -_080E7692: - movs r0, 0x85 - adds r0, r2 - mov r12, r0 - adds r4, r2, 0 - adds r4, 0x83 - movs r1, 0 - ldrsb r1, [r0, r1] - ldrb r3, [r4] - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r1, r0 - blt _080E76B0 - subs r0, r3, 0x1 - mov r1, r12 - strb r0, [r1] -_080E76B0: - adds r1, r2, 0 - adds r1, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - ldrb r3, [r1] - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - beq _080E77BC - ldrb r0, [r4] - adds r4, r0, 0 - muls r4, r3 - adds r0, r4, 0 - mov r5, r12 - ldrb r5, [r5] - adds r0, r5 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r2, 0xA] - cmp r0, r1 - bcc _080E77BC - subs r0, r1 - mov r6, r12 - strb r0, [r6] - b _080E77BC -_080E76EA: - ldrh r2, [r2, 0x30] - movs r0, 0x20 - ands r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _080E7744 - ldr r2, _080E7728 - adds r3, r2, 0 - adds r3, 0x85 - ldrb r0, [r3] - subs r0, 0x1 - strb r0, [r3] - lsls r0, 24 - cmp r0, 0 - bge _080E77BC - adds r1, r2, 0 - adds r1, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - ldrb r4, [r1] - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E772C - movs r0, 0x2 - b _080E77BA - .align 2, 0 -_080E7728: .4byte 0x02001000 -_080E772C: - adds r0, r2, 0 - adds r0, 0x83 - ldrb r0, [r0] - subs r1, r0, 0x1 - strb r1, [r3] - adds r5, r4, 0 - muls r5, r0 - adds r0, r5, 0 - adds r1, r0 - lsls r1, 24 - lsrs r0, r1, 24 - b _080E77B2 -_080E7744: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _080E77C0 - ldr r2, _080E777C - adds r5, r2, 0 - adds r5, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - movs r1, 0 - ldrsb r1, [r5, r1] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E7780 - adds r1, r2, 0 - adds r1, 0x85 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - ble _080E77BC - strb r4, [r1] - b _080E77BC - .align 2, 0 -_080E777C: .4byte 0x02001000 -_080E7780: - adds r3, r2, 0 - adds r3, 0x85 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - movs r6, 0x83 - adds r6, r2 - mov r12, r6 - lsls r0, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r6, r1] - cmp r0, r1 - blt _080E779E - strb r4, [r3] -_080E779E: - ldrb r1, [r5] - mov r4, r12 - ldrb r0, [r4] - adds r5, r0, 0 - muls r5, r1 - adds r0, r5, 0 - ldrb r6, [r3] - adds r0, r6 - lsls r0, 24 - lsrs r0, 24 -_080E77B2: - ldrb r1, [r2, 0xA] - cmp r0, r1 - bcc _080E77BC - subs r0, r1 -_080E77BA: - strb r0, [r3] -_080E77BC: - movs r0, 0x1 - b _080E77C2 -_080E77C0: - movs r0, 0 -_080E77C2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80E75D8 - - thumb_func_start sub_80E77C8 -sub_80E77C8: @ 80E77C8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r7, 0 - ldr r1, _080E780C - ldr r2, _080E7810 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r3, r1, 0 - cmp r0, 0 - beq _080E783E - ldr r1, _080E7814 - ldrh r2, [r1, 0x30] - movs r0, 0x40 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _080E7818 - movs r4, 0xD4 - lsls r4, 1 - adds r1, r3, r4 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - ble _080E7806 - b _080E7948 -_080E7806: - movs r0, 0x3 - strb r0, [r1] - b _080E7948 - .align 2, 0 -_080E780C: .4byte 0x02001000 -_080E7810: .4byte 0x000001b7 -_080E7814: .4byte gMain -_080E7818: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - bne _080E7822 - b _080E7950 -_080E7822: - movs r5, 0xD4 - lsls r5, 1 - adds r1, r3, r5 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bgt _080E7838 - b _080E7948 -_080E7838: - movs r0, 0x1 - strb r0, [r1] - b _080E7948 -_080E783E: - adds r0, r3, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080E789A - movs r4, 0 - ldr r1, _080E7870 - ldrh r2, [r1, 0x30] - movs r0, 0x40 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _080E7874 - movs r6, 0xD4 - lsls r6, 1 - adds r1, r3, r6 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080E7944 - movs r0, 0x3 - strb r0, [r1] - b _080E7944 - .align 2, 0 -_080E7870: .4byte gMain -_080E7874: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _080E7894 - movs r0, 0xD4 - lsls r0, 1 - adds r1, r3, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080E7892 - strb r7, [r1] -_080E7892: - movs r4, 0x1 -_080E7894: - cmp r4, 0 - beq _080E7950 - b _080E7944 -_080E789A: - movs r4, 0 - movs r1, 0xE0 - lsls r1, 1 - adds r5, r3, r1 - strb r7, [r5] - ldr r1, _080E78E0 - ldrh r2, [r1, 0x30] - movs r0, 0x40 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _080E78E8 - movs r2, 0xD4 - lsls r2, 1 - adds r1, r3, r2 - ldrb r2, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _080E78C4 - b _080E7A88 -_080E78C4: - subs r0, r2, 0x1 - strb r0, [r1] - ldr r4, _080E78E4 - adds r1, r3, r4 - lsls r0, 24 - asrs r0, 24 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - cmp r0, r1 - bge _080E7932 - movs r0, 0xFF - strb r0, [r5] - b _080E7932 - .align 2, 0 -_080E78E0: .4byte gMain -_080E78E4: .4byte 0x000001b5 -_080E78E8: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _080E792E - movs r0, 0xD4 - lsls r0, 1 - adds r2, r3, r0 - movs r1, 0 - ldrsb r1, [r2, r1] - movs r4, 0xDB - lsls r4, 1 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, 0x1 - cmp r1, r0 - blt _080E790E - b _080E7A88 -_080E790E: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - movs r1, 0 - ldrsb r1, [r2, r1] - ldr r2, _080E794C - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x3 - cmp r1, r0 - ble _080E792C - movs r0, 0x1 - strb r0, [r5] -_080E792C: - movs r4, 0x1 -_080E792E: - cmp r4, 0 - beq _080E7950 -_080E7932: - movs r4, 0xE0 - lsls r4, 1 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E7944 - b _080E7A88 -_080E7944: - bl sub_80E7A98 -_080E7948: - movs r0, 0x1 - b _080E7A8A - .align 2, 0 -_080E794C: .4byte 0x000001b5 -_080E7950: - ldrh r1, [r6, 0x30] - movs r0, 0x20 - ands r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - beq _080E7992 - ldr r5, _080E7974 - adds r2, r3, r5 - ldrb r1, [r2] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0 - beq _080E7978 - subs r0, r1, 0x1 - strb r0, [r2] - b _080E79E6 - .align 2, 0 -_080E7974: .4byte 0x000001a9 -_080E7978: - movs r6, 0xD4 - lsls r6, 1 - adds r0, r3, r6 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - movs r4, 0xD5 - lsls r4, 1 - adds r1, r3, r4 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - b _080E79E6 -_080E7992: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E79E2 - ldr r5, _080E79D4 - adds r0, r3, r5 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _080E79CC - ldr r0, _080E79D8 - adds r4, r3, r0 - movs r1, 0xD4 - lsls r1, 1 - adds r0, r3, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r2, 0xD5 - lsls r2, 1 - adds r0, r3, r2 - adds r1, r0 - ldrb r5, [r4] - movs r2, 0 - ldrsb r2, [r4, r2] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - bne _080E79DC -_080E79CC: - ldr r4, _080E79D8 - adds r0, r3, r4 - strb r6, [r0] - b _080E79E0 - .align 2, 0 -_080E79D4: .4byte 0x000001b7 -_080E79D8: .4byte 0x000001a9 -_080E79DC: - adds r0, r5, 0x1 - strb r0, [r4] -_080E79E0: - movs r7, 0x1 -_080E79E2: - cmp r7, 0 - beq _080E7A88 -_080E79E6: - adds r2, r3, 0 - ldr r5, _080E7A48 - adds r7, r2, r5 - ldrb r6, [r7] - mov r9, r6 - movs r1, 0 - ldr r0, _080E7A4C - adds r0, r2 - mov r12, r0 - subs r5, 0xF - adds r4, r2, r5 - movs r0, 0 - ldrsb r0, [r4, r0] - movs r6, 0xD5 - lsls r6, 1 - adds r6, r2 - mov r8, r6 - add r0, r8 - mov r6, r12 - movs r5, 0 - ldrsb r5, [r6, r5] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r5, r0 - bne _080E7A1C - movs r1, 0x1 -_080E7A1C: - strb r1, [r7] - cmp r1, 0 - beq _080E7A58 - ldr r0, _080E7A50 - adds r1, r2, r0 - ldrb r0, [r4] - ldrb r1, [r1] - subs r0, r1 - strb r0, [r4] - lsls r0, 24 - cmp r0, 0 - beq _080E7A36 - b _080E7948 -_080E7A36: - movs r0, 0x1 - strb r0, [r4] - ldr r1, _080E7A54 - adds r0, r2, r1 - ldrb r0, [r0] - mov r2, r12 - strb r0, [r2] - b _080E7948 - .align 2, 0 -_080E7A48: .4byte 0x000001b7 -_080E7A4C: .4byte 0x000001a9 -_080E7A50: .4byte 0x000001b5 -_080E7A54: .4byte 0x000001ab -_080E7A58: - mov r6, r9 - cmp r6, 0 - bne _080E7A60 - b _080E7948 -_080E7A60: - ldr r1, _080E7A84 - adds r0, r3, r1 - ldrb r0, [r0] - ldrb r2, [r4] - adds r0, r2 - strb r0, [r4] - cmp r5, 0 - bne _080E7A72 - b _080E7948 -_080E7A72: - movs r0, 0 - ldrsb r0, [r4, r0] - add r0, r8 - ldrb r0, [r0] - subs r0, 0x1 - mov r4, r12 - strb r0, [r4] - b _080E7948 - .align 2, 0 -_080E7A84: .4byte 0x000001b5 -_080E7A88: - movs r0, 0 -_080E7A8A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E77C8 - - thumb_func_start sub_80E7A98 -sub_80E7A98: @ 80E7A98 - push {lr} - ldr r1, _080E7ACC - ldr r0, _080E7AD0 - adds r3, r1, r0 - movs r2, 0xD4 - lsls r2, 1 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r2, 0x2 - adds r1, r2 - adds r0, r1 - movs r1, 0 - ldrsb r1, [r3, r1] - ldrb r2, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - blt _080E7AC6 - subs r0, r2, 0x1 - strb r0, [r3] -_080E7AC6: - pop {r0} - bx r0 - .align 2, 0 -_080E7ACC: .4byte 0x02001000 -_080E7AD0: .4byte 0x000001a9 - thumb_func_end sub_80E7A98 - - thumb_func_start sub_80E7AD4 -sub_80E7AD4: @ 80E7AD4 - push {lr} - ldr r3, _080E7B08 - adds r0, r3, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E7B10 - ldr r1, _080E7B0C - adds r0, r3, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r2, 0xD4 - lsls r2, 1 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x2A - adds r1, r0 - ldrb r1, [r1] - adds r2, 0x10 - b _080E7B34 - .align 2, 0 -_080E7B08: .4byte 0x02001000 -_080E7B0C: .4byte 0x000001a9 -_080E7B10: - ldr r1, _080E7B3C - adds r0, r3, r1 - movs r2, 0 - ldrsb r2, [r0, r2] - subs r1, 0x1 - adds r0, r3, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r2, r0 - adds r0, r3, 0 - adds r0, 0x40 - adds r2, r0 - ldrb r1, [r2] - movs r2, 0xDC - lsls r2, 1 -_080E7B34: - adds r0, r3, r2 - strb r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080E7B3C: .4byte 0x000001a9 - thumb_func_end sub_80E7AD4 - - thumb_func_start sub_80E7B40 -sub_80E7B40: @ 80E7B40 - push {r4-r7,lr} - movs r5, 0 - ldr r2, _080E7B8C - movs r0, 0xE0 - lsls r0, 1 - adds r6, r2, r0 - strb r5, [r6] - ldr r1, _080E7B90 - ldrh r4, [r1, 0x30] - movs r0, 0x40 - ands r0, r4 - adds r3, r2, 0 - adds r7, r1, 0 - cmp r0, 0 - beq _080E7B9C - ldr r2, _080E7B94 - adds r1, r3, r2 - ldrb r2, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _080E7B6E - b _080E7D1A -_080E7B6E: - subs r0, r2, 0x1 - strb r0, [r1] - ldr r4, _080E7B98 - adds r1, r3, r4 - lsls r0, 24 - asrs r0, 24 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - cmp r0, r1 - bge _080E7BF2 - movs r0, 0xFF - strb r0, [r6] - b _080E7D1A - .align 2, 0 -_080E7B8C: .4byte 0x02001000 -_080E7B90: .4byte gMain -_080E7B94: .4byte 0x000099a4 -_080E7B98: .4byte 0x00009a29 -_080E7B9C: - movs r0, 0x80 - ands r0, r4 - cmp r0, 0 - beq _080E7BEE - ldr r0, _080E7BE0 - adds r2, r3, r0 - movs r1, 0 - ldrsb r1, [r2, r1] - ldr r4, _080E7BE4 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, 0x1 - cmp r1, r0 - blt _080E7BBE - b _080E7D1A -_080E7BBE: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - movs r1, 0 - ldrsb r1, [r2, r1] - ldr r2, _080E7BE8 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x4 - cmp r1, r0 - blt _080E7BEC - movs r0, 0x1 - strb r0, [r6] - b _080E7D1A - .align 2, 0 -_080E7BE0: .4byte 0x000099a4 -_080E7BE4: .4byte 0x00009a28 -_080E7BE8: .4byte 0x00009a29 -_080E7BEC: - movs r5, 0x1 -_080E7BEE: - cmp r5, 0 - beq _080E7BFA -_080E7BF2: - bl sub_80E7D30 -_080E7BF6: - movs r0, 0x1 - b _080E7D1C -_080E7BFA: - ldrh r1, [r7, 0x30] - movs r0, 0x20 - ands r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _080E7C38 - ldr r4, _080E7C30 - adds r2, r3, r4 - ldrb r0, [r2] - subs r0, 0x1 - strb r0, [r2] - lsls r0, 24 - cmp r0, 0 - bge _080E7BF6 - ldr r6, _080E7C34 - adds r0, r3, r6 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r4, 0x1 - adds r1, r3, r4 - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x1 - strb r0, [r2] - b _080E7BF6 - .align 2, 0 -_080E7C30: .4byte 0x000099a5 -_080E7C34: .4byte 0x000099a4 -_080E7C38: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E7C70 - ldr r6, _080E7C68 - adds r4, r3, r6 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r2, _080E7C6C - adds r1, r3, r2 - movs r2, 0 - ldrsb r2, [r1, r2] - adds r6, 0x1 - adds r1, r3, r6 - adds r2, r1 - lsls r0, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r2, r1] - cmp r0, r1 - blt _080E7BF6 - strb r5, [r4] - b _080E7BF6 - .align 2, 0 -_080E7C68: .4byte 0x000099a5 -_080E7C6C: .4byte 0x000099a4 -_080E7C70: - ldrh r1, [r7, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080E7CC4 - ldr r1, _080E7CBC - adds r0, r3, r1 - ldrb r1, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E7CA2 - negs r0, r1 - movs r4, 0xE0 - lsls r4, 1 - adds r2, r3, r4 - strb r0, [r2] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x4 - negs r1, r1 - cmp r0, r1 - bge _080E7CA2 - strb r1, [r2] -_080E7CA2: - ldr r6, _080E7CC0 - adds r1, r3, r6 - movs r2, 0xE0 - lsls r2, 1 - adds r0, r3, r2 - ldrb r0, [r0] - ldrb r4, [r1] - adds r0, r4 - strb r0, [r1] - movs r6, 0xDF - lsls r6, 1 - adds r1, r3, r6 - b _080E7D16 - .align 2, 0 -_080E7CBC: .4byte 0x00009a29 -_080E7CC0: .4byte 0x000099a4 -_080E7CC4: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E7D1A - ldr r0, _080E7D24 - adds r4, r3, r0 - movs r1, 0 - ldrsb r1, [r4, r1] - ldr r6, _080E7D28 - adds r2, r3, r6 - movs r0, 0 - ldrsb r0, [r2, r0] - subs r0, 0x4 - cmp r1, r0 - bge _080E7CFE - ldrb r1, [r4] - adds r1, 0x4 - ldrb r0, [r2] - subs r0, r1 - movs r2, 0xE0 - lsls r2, 1 - adds r1, r3, r2 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - ble _080E7CFE - movs r0, 0x4 - strb r0, [r1] -_080E7CFE: - ldr r4, _080E7D2C - adds r1, r3, r4 - movs r6, 0xE0 - lsls r6, 1 - adds r0, r3, r6 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - movs r4, 0xDF - lsls r4, 1 - adds r1, r3, r4 -_080E7D16: - movs r0, 0x4 - strb r0, [r1] -_080E7D1A: - movs r0, 0 -_080E7D1C: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080E7D24: .4byte 0x00009a29 -_080E7D28: .4byte 0x00009a28 -_080E7D2C: .4byte 0x000099a4 - thumb_func_end sub_80E7B40 - - thumb_func_start sub_80E7D30 -sub_80E7D30: @ 80E7D30 - push {r4,lr} - ldr r0, _080E7D60 - ldr r1, _080E7D64 - adds r4, r0, r1 - ldr r2, _080E7D68 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - adds r2, 0x2 - adds r0, r2 - adds r1, r0 - movs r2, 0 - ldrsb r2, [r4, r2] - ldrb r3, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - blt _080E7D5A - subs r0, r3, 0x1 - strb r0, [r4] -_080E7D5A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7D60: .4byte 0x02001000 -_080E7D64: .4byte 0x000099a5 -_080E7D68: .4byte 0x000099a4 - thumb_func_end sub_80E7D30 - - thumb_func_start sub_80E7D6C -sub_80E7D6C: @ 80E7D6C - push {r4,r5,lr} - movs r4, 0 - ldr r0, _080E7D94 - ldrb r1, [r0, 0xA] - cmp r4, r1 - bcs _080E7D8E - adds r5, r0, 0 -_080E7D7A: - adds r0, r4, 0 - ldr r1, _080E7D98 - bl sub_80E7F00 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrb r0, [r5, 0xA] - cmp r4, r0 - bcc _080E7D7A -_080E7D8E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E7D94: .4byte 0x02001000 -_080E7D98: .4byte 0x0000ffff - thumb_func_end sub_80E7D6C - - thumb_func_start sub_80E7D9C -sub_80E7D9C: @ 80E7D9C - push {r4,r5,lr} - movs r2, 0 - ldr r0, _080E7DCC - ldrb r1, [r0, 0xA] - cmp r2, r1 - bcs _080E7DC6 - adds r3, r0, 0 - ldr r4, [r3, 0x4] - adds r5, r3, 0 - adds r5, 0xC -_080E7DB0: - lsls r0, r2, 1 - adds r1, r0, r4 - adds r0, r5 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrb r0, [r3, 0xA] - cmp r2, r0 - bcc _080E7DB0 -_080E7DC6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E7DCC: .4byte 0x02001000 - thumb_func_end sub_80E7D9C - - thumb_func_start sub_80E7DD0 -sub_80E7DD0: @ 80E7DD0 - push {r4,lr} - ldr r2, _080E7E28 - ldr r1, _080E7E2C - adds r0, r2, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r1, 1 - ldr r3, _080E7E30 - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r1, r0 - adds r3, 0x86 - adds r0, r2, r3 - adds r1, r0 - ldrh r4, [r1] - adds r0, r2, 0 - adds r0, 0x7D - ldrb r0, [r0] - cmp r0, 0 - beq _080E7E34 - adds r0, r2, 0 - adds r0, 0x86 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r2, 0 - adds r1, 0x7E - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bls _080E7E34 - adds r0, r4, 0 - bl sub_80EB2D4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7 - bne _080E7E34 - movs r0, 0 - b _080E7E46 - .align 2, 0 -_080E7E28: .4byte 0x02001000 -_080E7E2C: .4byte 0x000099a5 -_080E7E30: .4byte 0x000099a4 -_080E7E34: - ldr r0, _080E7E4C - adds r0, 0x27 - ldrb r0, [r0] - adds r1, r4, 0 - bl sub_80E7F00 - bl sub_80E95A4 - movs r0, 0x1 -_080E7E46: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E7E4C: .4byte 0x02001000 - thumb_func_end sub_80E7DD0 - - thumb_func_start sub_80E7E50 -sub_80E7E50: @ 80E7E50 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r5, 0 - movs r2, 0 - ldr r1, _080E7EF0 - adds r3, r1, 0 - adds r3, 0x84 - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r2, r0 - bge _080E7EDE - mov r8, r1 - adds r0, r1, 0 - str r0, [sp] -_080E7E74: - mov r0, r8 - adds r0, 0x7E - adds r0, r2, r0 - movs r1, 0 - strb r1, [r0] - movs r3, 0 - ldr r6, _080E7EF4 - movs r0, 0 - ldrsb r0, [r6, r0] - adds r1, r2, 0x1 - str r1, [sp, 0x4] - cmp r3, r0 - bge _080E7ECE - ldr r6, [sp] - mov r12, r6 - movs r0, 0 - mov r10, r0 - ldr r1, _080E7EF4 - mov r9, r1 - ldr r7, _080E7EF8 - lsls r4, r2, 1 -_080E7E9E: - lsls r1, r5, 1 - adds r2, r1, r7 - mov r6, r12 - ldr r0, [r6, 0x4] - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2] - adds r0, r3, r4 - mov r1, r12 - adds r1, 0x8C - adds r0, r1 - mov r1, r10 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - mov r6, r9 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r3, r0 - blt _080E7E9E -_080E7ECE: - ldr r1, [sp, 0x4] - lsls r0, r1, 16 - lsrs r2, r0, 16 - ldr r6, _080E7EFC - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r2, r0 - blt _080E7E74 -_080E7EDE: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7EF0: .4byte 0x02001000 -_080E7EF4: .4byte 0x02001083 -_080E7EF8: .4byte 0x0200100c -_080E7EFC: .4byte 0x02001084 - thumb_func_end sub_80E7E50 - - thumb_func_start sub_80E7F00 -sub_80E7F00: @ 80E7F00 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldr r7, _080E7F68 - adds r0, r7, 0 - adds r0, 0x83 - movs r4, 0 - ldrsb r4, [r0, r4] - adds r0, r6, 0 - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r6, 0 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r0, r6, 1 - adds r1, r7, 0 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] - bl sub_80EB2D4 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r9 - bl sub_80EB2D4 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r4, 0x7 - bne _080E7F6C - cmp r3, 0x7 - beq _080E7F7C - adds r1, r7, 0 - adds r1, 0x7E - adds r1, r5, r1 - ldrb r0, [r1] - subs r0, 0x1 - b _080E7F7A - .align 2, 0 -_080E7F68: .4byte 0x02001000 -_080E7F6C: - cmp r3, 0x7 - bne _080E7F7C - adds r1, r7, 0 - adds r1, 0x7E - adds r1, r5, r1 - ldrb r0, [r1] - adds r0, 0x1 -_080E7F7A: - strb r0, [r1] -_080E7F7C: - movs r3, 0 - ldr r2, _080E7FA4 - lsls r0, r5, 1 - add r0, r8 - adds r1, r2, 0 - adds r1, 0x8C - adds r0, r1 - strb r3, [r0] - lsls r0, r6, 1 - adds r2, 0xC - adds r0, r2 - mov r1, r9 - strh r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7FA4: .4byte 0x02001000 - thumb_func_end sub_80E7F00 - - thumb_func_start sub_80E7FA8 -sub_80E7FA8: @ 80E7FA8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r0, 0 - mov r8, r0 - movs r5, 0 - ldr r0, _080E8040 - ldrb r1, [r0, 0xA] - cmp r8, r1 - bcs _080E802E - ldr r3, _080E8044 - adds r6, r0, r3 - ldr r1, _080E8048 - adds r1, r0 - mov r9, r1 -_080E7FC8: - ldr r3, _080E804C - adds r7, r6, r3 - ldr r0, [r7, 0x4] - lsls r4, r5, 1 - adds r0, r4, r0 - ldrh r1, [r0] - adds r0, r6, 0 - movs r2, 0 - bl sub_80EB218 - ldr r1, _080E8050 - adds r0, r6, r1 - adds r0, r4 - ldrh r1, [r0] - mov r0, r9 - movs r2, 0 - bl sub_80EB218 - adds r1, r6, 0 - mov r2, r9 - ldrb r0, [r1] - adds r4, r5, 0x1 - ldrb r3, [r2] - cmp r0, r3 - bne _080E8018 - adds r3, r7, 0 - cmp r0, 0xFF - beq _080E8010 -_080E8000: - adds r1, 0x1 - adds r2, 0x1 - ldrb r0, [r1] - ldrb r5, [r2] - cmp r0, r5 - bne _080E8018 - cmp r0, 0xFF - bne _080E8000 -_080E8010: - ldrb r0, [r1] - ldrb r2, [r2] - cmp r0, r2 - beq _080E8024 -_080E8018: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r3, _080E8040 -_080E8024: - lsls r0, r4, 16 - lsrs r5, r0, 16 - ldrb r3, [r3, 0xA] - cmp r5, r3 - bcc _080E7FC8 -_080E802E: - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080E8040: .4byte 0x02001000 -_080E8044: .4byte 0x00009e14 -_080E8048: .4byte 0x00009e41 -_080E804C: .4byte 0xffff61ec -_080E8050: .4byte 0xffff61f8 - thumb_func_end sub_80E7FA8 - - thumb_func_start sub_80E8054 -sub_80E8054: @ 80E8054 - push {r4,lr} - movs r1, 0 - ldr r2, _080E8078 - ldrb r0, [r2, 0xA] - cmp r1, r0 - bcs _080E808A - adds r4, r2, 0 - adds r4, 0xC - ldr r3, _080E807C - adds r2, r0, 0 -_080E8068: - lsls r0, r1, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r3 - beq _080E8080 - movs r0, 0 - b _080E808C - .align 2, 0 -_080E8078: .4byte 0x02001000 -_080E807C: .4byte 0x0000ffff -_080E8080: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bcc _080E8068 -_080E808A: - movs r0, 0x1 -_080E808C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80E8054 - - thumb_func_start sub_80E8094 -sub_80E8094: @ 80E8094 - push {r4-r7,lr} - movs r5, 0 - ldr r6, _080E80C4 - adds r7, r6, 0 - adds r7, 0x2D -_080E809E: - lsls r4, r5, 1 - ldr r1, _080E80C8 - adds r0, r6, r1 - adds r0, r4 - ldrh r1, [r0] - adds r0, r6, 0 - movs r2, 0 - bl sub_80EB218 - ldr r0, _080E80CC - adds r4, r0 - ldrh r1, [r4] - adds r0, r7, 0 - movs r2, 0 - bl sub_80EB218 - adds r3, r6, 0 - adds r4, r7, 0 - b _080E80D8 - .align 2, 0 -_080E80C4: .4byte 0x0200ae14 -_080E80C8: .4byte 0xffff61f8 -_080E80CC: .4byte gMysteryEventPhrase -_080E80D0: - adds r4, 0x1 - adds r3, 0x1 - cmp r2, r1 - bne _080E80F4 -_080E80D8: - ldrb r2, [r3] - adds r0, r2, 0 - cmp r0, 0xFF - beq _080E80EE - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _080E80D0 - ldrb r0, [r3] - cmp r0, 0xFF - bne _080E80F4 -_080E80EE: - ldrb r0, [r4] - cmp r0, 0xFF - beq _080E80F8 -_080E80F4: - movs r0, 0 - b _080E8104 -_080E80F8: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080E809E - movs r0, 0x1 -_080E8104: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E8094 - - thumb_func_start sub_80E810C -sub_80E810C: @ 80E810C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r5, 0 - ldr r6, _080E8198 - ldr r0, _080E819C - adds r0, r6 - mov r9, r0 - movs r1, 0 - mov r8, r1 - adds r7, r6, 0 - adds r7, 0x80 - ldr r2, _080E81A0 - mov r10, r2 -_080E812C: - mov r0, r9 - ldrh r1, [r0, 0xC] - adds r0, r6, 0 - movs r2, 0 - bl sub_80EB218 - mov r1, r8 - strb r1, [r0] - adds r0, 0x1 - mov r2, r9 - ldrh r1, [r2, 0xE] - movs r2, 0 - bl sub_80EB218 - lsls r4, r5, 2 - mov r1, r10 - adds r0, r4, r1 - ldrh r1, [r0] - adds r0, r7, 0 - movs r2, 0 - bl sub_80EB218 - mov r2, r8 - strb r2, [r0] - adds r0, 0x1 - ldr r1, _080E81A4 - adds r4, r1 - ldrh r1, [r4] - movs r2, 0 - bl sub_80EB218 - adds r0, r6, 0 - adds r3, r7, 0 - adds r4, r5, 0x1 -_080E8170: - ldrb r2, [r0] - cmp r2, 0xFF - beq _080E818A - ldrb r1, [r3] - cmp r1, 0xFF - beq _080E8184 - adds r3, 0x1 - adds r0, 0x1 - cmp r2, r1 - beq _080E8170 -_080E8184: - ldrb r0, [r0] - cmp r0, 0xFF - bne _080E81A8 -_080E818A: - ldrb r0, [r3] - cmp r0, 0xFF - bne _080E81A8 - lsls r0, r4, 24 - lsrs r0, 24 - b _080E81B2 - .align 2, 0 -_080E8198: .4byte 0x0200ae6e -_080E819C: .4byte 0xffff6192 -_080E81A0: .4byte gBerryMasterWifePhrases -_080E81A4: .4byte gBerryMasterWifePhrases + 0x2 -_080E81A8: - lsls r0, r4, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bls _080E812C - movs r0, 0 -_080E81B2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E810C - - thumb_func_start sub_80E81C0 -sub_80E81C0: @ 80E81C0 - push {r4,lr} - ldr r0, _080E81EC - ldr r4, _080E81F0 - ldr r2, _080E81F4 - adds r1, r4, r2 - ldrh r1, [r1] - movs r2, 0 - bl sub_80EB218 - movs r1, 0 - strb r1, [r0] - adds r0, 0x1 - ldr r1, _080E81F8 - adds r4, r1 - ldrh r1, [r4] - movs r2, 0 - bl sub_80EB218 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E81EC: .4byte gStringVar2 -_080E81F0: .4byte 0x02001000 -_080E81F4: .4byte 0x00009c7c -_080E81F8: .4byte 0x00009c7e - thumb_func_end sub_80E81C0 - - thumb_func_start sub_80E81FC -sub_80E81FC: @ 80E81FC - push {lr} - movs r0, 0x5 - bl PlaySE - bl sub_80E95A4 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0xD - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_80E81FC - - thumb_func_start sub_80E8218 -sub_80E8218: @ 80E8218 - push {r4,r5,lr} - sub sp, 0x40 - mov r1, sp - ldr r0, _080E8260 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r4,r5} - stm r1!, {r2,r4,r5} - ldr r0, [r0] - str r0, [r1] - add r4, sp, 0x28 - adds r1, r4, 0 - ldr r0, _080E8264 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, sp - bl LoadSpriteSheets - adds r0, r4, 0 - bl LoadSpritePalettes - bl sub_80E8268 - bl sub_80E8818 - bl sub_80E8A7C - add sp, 0x40 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E8260: .4byte gSpriteSheets_Interview -_080E8264: .4byte gSpritePalettes_Interview - thumb_func_end sub_80E8218 - - thumb_func_start sub_80E8268 -sub_80E8268: @ 80E8268 - push {lr} - ldr r0, _080E82B0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E82B4 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r0, _080E82B8 - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0x8A - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x8 - movs r2, 0 - strh r0, [r1, 0x22] - adds r0, r3, 0 - adds r0, 0x88 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x20] - strh r2, [r1, 0x2E] - strh r2, [r1, 0x30] - adds r0, r3, 0 - adds r0, 0x98 - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080E82B0: .4byte gSpriteTemplate_83DBBFC -_080E82B4: .4byte gSprites -_080E82B8: .4byte gUnknown_083DB694 - thumb_func_end sub_80E8268 - - thumb_func_start sub_80E82BC -sub_80E82BC: @ 80E82BC - push {r4-r7,lr} - adds r3, r0, 0 - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080E838C - ldr r0, _080E8334 - ldr r2, [r0] - adds r1, r2, 0 - adds r1, 0x87 - ldrb r1, [r1] - mov r12, r0 - cmp r1, 0 - beq _080E836C - adds r0, r2, 0 - adds r0, 0x86 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r2, 0 - adds r0, 0x85 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r4, r0, 16 - movs r7, 0 - movs r1, 0 - cmp r7, r4 - bcs _080E8316 - lsls r6, r5, 1 - adds r2, 0x8C -_080E8300: - adds r0, r1, r6 - adds r0, r2, r0 - ldrb r0, [r0] - adds r0, r7, r0 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r4 - bcc _080E8300 -_080E8316: - mov r0, r12 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x84 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r5, r0 - bne _080E8338 - movs r0, 0x60 - strh r0, [r3, 0x22] - lsls r0, r4, 3 - subs r0, r4 - adds r0, 0x3 - b _080E8356 - .align 2, 0 -_080E8334: .4byte gUnknown_083DB694 -_080E8338: - adds r1, r2, 0 - adds r1, 0x8A - lsls r0, r5, 1 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 3 - adds r0, 0x8 - strh r0, [r3, 0x22] - adds r0, r2, 0 - adds r0, 0x88 - ldrh r0, [r0] - adds r0, r7 - movs r1, 0xB - muls r1, r4 - adds r0, r1 -_080E8356: - lsls r0, 3 - adds r0, 0x4 - strh r0, [r3, 0x20] - movs r1, 0 - ldr r0, _080E8368 - strh r0, [r3, 0x24] - strh r1, [r3, 0x2E] - b _080E838C - .align 2, 0 -_080E8368: .4byte 0x0000fffa -_080E836C: - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080E838C - strh r1, [r3, 0x2E] - ldrh r0, [r3, 0x24] - adds r0, 0x1 - strh r0, [r3, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _080E838C - ldr r0, _080E8394 - strh r0, [r3, 0x24] -_080E838C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8394: .4byte 0x0000fffa - thumb_func_end sub_80E82BC - - thumb_func_start sub_80E8398 -sub_80E8398: @ 80E8398 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - beq _080E83D4 - cmp r3, 0x1 - bgt _080E83AC - cmp r3, 0 - beq _080E83B2 - b _080E8416 -_080E83AC: - cmp r3, 0x2 - beq _080E83F8 - b _080E8416 -_080E83B2: - ldr r0, _080E83D0 - ldr r0, [r0] - adds r0, 0x98 - ldr r1, [r0] - strh r3, [r1, 0x30] - ldr r1, [r0] - strh r3, [r1, 0x24] - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _080E8414 - .align 2, 0 -_080E83D0: .4byte gUnknown_083DB694 -_080E83D4: - ldr r0, _080E83F4 - ldr r1, [r0] - adds r1, 0x98 - ldr r0, [r1] - movs r2, 0 - strh r3, [r0, 0x30] - ldr r0, [r1] - strh r2, [r0, 0x24] - ldr r1, [r1] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _080E8414 - .align 2, 0 -_080E83F4: .4byte gUnknown_083DB694 -_080E83F8: - ldr r0, _080E841C - ldr r1, [r0] - adds r1, 0x98 - ldr r2, [r1] - movs r3, 0 - movs r0, 0x1 - strh r0, [r2, 0x30] - ldr r0, [r1] - strh r3, [r0, 0x24] - ldr r1, [r1] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 -_080E8414: - strb r0, [r1] -_080E8416: - pop {r0} - bx r0 - .align 2, 0 -_080E841C: .4byte gUnknown_083DB694 - thumb_func_end sub_80E8398 - - thumb_func_start sub_80E8420 -sub_80E8420: @ 80E8420 - push {r4-r7,lr} - sub sp, 0x18 - mov r1, sp - ldr r0, _080E84E0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080E84E4 - ldr r7, [r1] - adds r5, r7, 0 - adds r5, 0x9C - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r4, _080E84E8 - adds r1, r4 - str r1, [r5] - ldr r0, _080E84EC - str r0, [sp, 0x8] - ldr r0, _080E84F0 - str r0, [sp, 0x14] - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x4 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - adds r6, r7, 0 - adds r6, 0xA0 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - str r1, [r6] - ldr r0, _080E84F4 - str r0, [sp, 0x8] - ldr r0, _080E84F8 - str r0, [sp, 0x14] - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - adds r2, r7, 0 - adds r2, 0xA4 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - str r1, [r2] - ldr r0, [r5] - movs r1, 0 - strh r1, [r0, 0x2E] - ldr r0, [r6] - strh r1, [r0, 0x2E] - ldr r0, [r2] - strh r1, [r0, 0x2E] - movs r0, 0x1 - bl IndexOfSpritePaletteTag - ldr r1, [r5] - lsls r0, 24 - lsrs r0, 20 - ldr r2, _080E84FC - adds r0, r2 - strh r0, [r1, 0x34] - bl sub_80E8534 - adds r1, r7, 0 - adds r1, 0x96 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080E8500 - movs r3, 0xFD - lsls r3, 6 - adds r0, r3, 0 - strh r0, [r1] - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E84E0: .4byte gSpriteTemplate_83DBCAC -_080E84E4: .4byte gUnknown_083DB694 -_080E84E8: .4byte gSprites -_080E84EC: .4byte gSpriteAnimTable_83DBC8C -_080E84F0: .4byte sub_80E872C -_080E84F4: .4byte gSpriteAnimTable_83DBC9C -_080E84F8: .4byte sub_80E8760 -_080E84FC: .4byte 0x00000101 -_080E8500: .4byte REG_BLDCNT - thumb_func_end sub_80E8420 - - thumb_func_start sub_80E8504 -sub_80E8504: @ 80E8504 - push {r4,lr} - ldr r0, _080E8530 - ldr r4, [r0] - adds r0, r4, 0 - adds r0, 0x9C - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0 - adds r0, 0xA0 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0 - adds r0, 0xA4 - ldr r0, [r0] - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E8530: .4byte gUnknown_083DB694 - thumb_func_end sub_80E8504 - - thumb_func_start sub_80E8534 -sub_80E8534: @ 80E8534 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, _080E8554 - ldr r3, [r1] - ldr r2, _080E8558 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r4, r1, 0 - cmp r0, 0 - beq _080E8560 - ldr r1, _080E855C - movs r0, 0x1 - b _080E8598 - .align 2, 0 -_080E8554: .4byte gUnknown_083DB694 -_080E8558: .4byte 0x000001b7 -_080E855C: .4byte gUnknown_020388AC -_080E8560: - adds r0, r3, 0 - adds r0, 0x26 - ldrb r2, [r0] - cmp r2, 0 - bne _080E8578 - ldr r0, _080E8574 - strb r2, [r0] - adds r7, r0, 0 - b _080E859C - .align 2, 0 -_080E8574: .4byte gUnknown_020388AC -_080E8578: - movs r1, 0xD4 - lsls r1, 1 - adds r0, r3, r1 - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 3 - cmp r1, r0 - bne _080E8594 - ldr r1, _080E8590 - movs r0, 0x2 - b _080E8598 - .align 2, 0 -_080E8590: .4byte gUnknown_020388AC -_080E8594: - ldr r1, _080E85F4 - movs r0, 0x3 -_080E8598: - strb r0, [r1] - adds r7, r1, 0 -_080E859C: - ldr r2, [r4] - adds r4, r2, 0 - adds r4, 0x9C - ldr r1, [r4] - ldrb r0, [r7] - movs r3, 0 - mov r8, r3 - strh r0, [r1, 0x32] - adds r5, r2, 0 - adds r5, 0xA0 - ldr r1, [r5] - ldrb r0, [r7] - strh r0, [r1, 0x32] - adds r6, r2, 0 - adds r6, 0xA4 - ldr r1, [r6] - ldrb r0, [r7] - strh r0, [r1, 0x32] - ldr r0, [r4] - ldrb r1, [r7] - bl StartSpriteAnim - ldr r0, [r5] - ldrb r1, [r7] - bl StartSpriteAnim - ldr r0, [r6] - ldrb r1, [r7] - bl StartSpriteAnim - ldr r0, [r4] - movs r1, 0x8 - strh r1, [r0, 0x38] - ldr r0, [r4] - strh r1, [r0, 0x3A] - ldr r0, [r4] - mov r1, r8 - strh r1, [r0, 0x30] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E85F4: .4byte gUnknown_020388AC - thumb_func_end sub_80E8534 - - thumb_func_start sub_80E85F8 -sub_80E85F8: @ 80E85F8 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E8624 - ldr r1, _080E8620 - movs r2, 0x30 - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 21 - adds r0, 0x8 - strh r0, [r5, 0x38] - b _080E863A - .align 2, 0 -_080E8620: .4byte gSineTable -_080E8624: - ldr r1, _080E8688 - movs r2, 0x30 - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 21 - movs r0, 0x8 - subs r0, r1 - strh r0, [r5, 0x3A] -_080E863A: - ldrh r0, [r5, 0x30] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x30] - ldr r2, _080E868C - ldrh r0, [r5, 0x3A] - lsls r0, 8 - ldrh r1, [r5, 0x38] - orrs r0, r1 - strh r0, [r2] - ldr r0, _080E8690 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0x96 - ldrb r0, [r0] - cmp r0, 0 - beq _080E871A - bl sub_80E8534 - adds r1, r6, 0 - adds r1, 0x9C - ldr r0, [r1] - movs r2, 0x8 - strh r2, [r0, 0x38] - ldr r0, [r1] - strh r2, [r0, 0x3A] - ldr r1, [r1] - movs r0, 0 - strh r0, [r1, 0x30] - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080E86C4 - cmp r0, 0x1 - bgt _080E8694 - cmp r0, 0 - beq _080E869E - b _080E871A - .align 2, 0 -_080E8688: .4byte gSineTable -_080E868C: .4byte REG_BLDALPHA -_080E8690: .4byte gUnknown_083DB694 -_080E8694: - cmp r0, 0x2 - beq _080E86D6 - cmp r0, 0x3 - beq _080E86DE - b _080E871A -_080E869E: - ldr r2, _080E86C0 - adds r0, r6, r2 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x58 - muls r0, r1 - adds r0, 0x20 - strh r0, [r5, 0x20] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r6, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r2, 0xC - b _080E870A - .align 2, 0 -_080E86C0: .4byte 0x000001a9 -_080E86C4: - movs r0, 0xD8 - strh r0, [r5, 0x20] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r6, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - b _080E8714 -_080E86D6: - movs r0, 0x97 - strh r0, [r5, 0x20] - movs r0, 0x60 - b _080E8718 -_080E86DE: - ldr r4, _080E8720 - ldr r2, _080E8724 - adds r0, r6, r2 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0xD4 - lsls r0, 1 - adds r3, r6, r0 - movs r2, 0 - ldrsb r2, [r3, r2] - lsls r0, r2, 3 - subs r0, r2 - adds r1, r0 - adds r1, r4 - movs r0, 0 - ldrsb r0, [r1, r0] - lsls r0, 3 - adds r0, 0x1F - strh r0, [r5, 0x20] - movs r0, 0 - ldrsb r0, [r3, r0] - ldr r2, _080E8728 -_080E870A: - adds r1, r6, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r0, r1 -_080E8714: - lsls r0, 4 - adds r0, 0x60 -_080E8718: - strh r0, [r5, 0x22] -_080E871A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E8720: .4byte gUnknown_083DBCC4 -_080E8724: .4byte 0x000001a9 -_080E8728: .4byte 0x000001b5 - thumb_func_end sub_80E85F8 - - thumb_func_start sub_80E872C -sub_80E872C: @ 80E872C - push {lr} - adds r2, r0, 0 - ldr r0, _080E875C - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x96 - ldrb r0, [r0] - cmp r0, 0 - beq _080E8756 - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080E8756 - adds r1, 0x9C - ldr r0, [r1] - ldrh r0, [r0, 0x20] - adds r0, 0x20 - strh r0, [r2, 0x20] - ldr r0, [r1] - ldrh r0, [r0, 0x22] - strh r0, [r2, 0x22] -_080E8756: - pop {r0} - bx r0 - .align 2, 0 -_080E875C: .4byte gUnknown_083DB694 - thumb_func_end sub_80E872C - - thumb_func_start sub_80E8760 -sub_80E8760: @ 80E8760 - push {lr} - adds r2, r0, 0 - ldr r0, _080E8780 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x96 - ldrb r0, [r0] - cmp r0, 0 - beq _080E879E - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080E8784 - cmp r0, 0x2 - beq _080E878E - b _080E879E - .align 2, 0 -_080E8780: .4byte gUnknown_083DB694 -_080E8784: - adds r1, 0x9C - ldr r0, [r1] - ldrh r0, [r0, 0x20] - adds r0, 0x40 - b _080E8796 -_080E878E: - adds r1, 0x9C - ldr r0, [r1] - ldrh r0, [r0, 0x20] - adds r0, 0x15 -_080E8796: - strh r0, [r2, 0x20] - ldr r0, [r1] - ldrh r0, [r0, 0x22] - strh r0, [r2, 0x22] -_080E879E: - pop {r0} - bx r0 - thumb_func_end sub_80E8760 - - thumb_func_start sub_80E87A4 -sub_80E87A4: @ 80E87A4 - push {r4,lr} - lsls r0, 24 - ldr r1, _080E87C8 - ldr r1, [r1] - adds r2, r1, 0 - adds r2, 0xA8 - ldr r3, [r2] - movs r4, 0 - cmp r0, 0 - bne _080E87BA - movs r4, 0x1 -_080E87BA: - movs r1, 0 - strh r4, [r3, 0x30] - ldr r0, [r2] - strh r1, [r0, 0x24] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E87C8: .4byte gUnknown_083DB694 - thumb_func_end sub_80E87A4 - - thumb_func_start sub_80E87CC -sub_80E87CC: @ 80E87CC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _080E8810 - ldr r5, [r0] - adds r0, r5, 0 - adds r0, 0xA8 - ldr r0, [r0] - movs r3, 0 - cmp r4, 0 - bne _080E87E6 - movs r3, 0x1 -_080E87E6: - adds r2, r0, 0 - adds r2, 0x3E - lsls r3, 2 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - adds r0, r4, 0 - bl sub_80E87A4 - cmp r4, 0 - beq _080E880A - ldr r0, _080E8814 - adds r1, r5, r0 - movs r0, 0x1 - strb r0, [r1] -_080E880A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E8810: .4byte gUnknown_083DB694 -_080E8814: .4byte 0x000001b9 - thumb_func_end sub_80E87CC - - thumb_func_start sub_80E8818 -sub_80E8818: @ 80E8818 - push {lr} - ldr r0, _080E8850 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E8854 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x2E] - strh r0, [r1, 0x30] - ldr r0, _080E8858 - ldr r0, [r0] - adds r0, 0xA8 - str r1, [r0] - ldr r0, _080E885C - str r0, [r1, 0x1C] - movs r0, 0 - bl sub_80E87CC - pop {r0} - bx r0 - .align 2, 0 -_080E8850: .4byte gSpriteTemplate_83DBBFC -_080E8854: .4byte gSprites -_080E8858: .4byte gUnknown_083DB694 -_080E885C: .4byte sub_80E8860 - thumb_func_end sub_80E8818 - - thumb_func_start sub_80E8860 -sub_80E8860: @ 80E8860 - push {r4,r5,lr} - adds r2, r0, 0 - movs r0, 0x30 - ldrsh r4, [r2, r0] - cmp r4, 0 - bne _080E88E4 - ldr r0, _080E88B0 - ldr r3, [r0] - ldr r1, _080E88B4 - adds r0, r3, r1 - ldrb r1, [r0] - cmp r1, 0 - beq _080E88C4 - ldr r5, _080E88B8 - adds r0, r3, r5 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x58 - muls r0, r1 - adds r0, 0x2C - strh r0, [r2, 0x20] - ldr r1, _080E88BC - adds r0, r3, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r5, 0x84 - adds r1, r3, r5 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r0, r1 - lsls r0, 4 - adds r0, 0x60 - strh r0, [r2, 0x22] - ldr r0, _080E88C0 - strh r0, [r2, 0x24] - strh r4, [r2, 0x2E] - b _080E88E4 - .align 2, 0 -_080E88B0: .4byte gUnknown_083DB694 -_080E88B4: .4byte 0x000001b9 -_080E88B8: .4byte 0x000099a5 -_080E88BC: .4byte 0x000099a4 -_080E88C0: .4byte 0x0000fffa -_080E88C4: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080E88E4 - strh r1, [r2, 0x2E] - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _080E88E4 - ldr r0, _080E88EC - strh r0, [r2, 0x24] -_080E88E4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E88EC: .4byte 0x0000fffa - thumb_func_end sub_80E8860 - - thumb_func_start sub_80E88F0 -sub_80E88F0: @ 80E88F0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - ldr r0, _080E8950 - mov r8, r0 - ldr r0, [r0] - movs r6, 0x4 - movs r5, 0 - movs r1, 0xB4 - adds r1, r0 - mov r12, r1 - adds r7, r0, 0 - adds r7, 0xAC -_080E890C: - lsls r2, r4, 2 - adds r3, r7, r2 - ldr r1, [r3] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - ldr r0, [r3] - strh r5, [r0, 0x30] - add r2, r12 - ldr r1, [r2] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - ldr r0, [r2] - strh r5, [r0, 0x30] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E890C - mov r1, r8 - ldr r0, [r1] - ldr r1, _080E8954 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8950: .4byte gUnknown_083DB694 -_080E8954: .4byte 0x00009c70 - thumb_func_end sub_80E88F0 - - thumb_func_start sub_80E8958 -sub_80E8958: @ 80E8958 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0 - bne _080E89B4 - movs r0, 0x64 - mov r9, r0 - ldr r0, _080E8998 - ldr r2, [r0] - ldr r3, _080E899C - adds r1, r2, r3 - ldr r3, _080E89A0 - adds r0, r2, r3 - str r0, [r1] - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E89A8 - movs r1, 0xDB - lsls r1, 1 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x4 - ldr r3, _080E89A4 - adds r1, r2, r3 - strb r0, [r1] - b _080E8A00 - .align 2, 0 -_080E8998: .4byte gUnknown_083DB694 -_080E899C: .4byte 0x00009c6c -_080E89A0: .4byte 0x000001b5 -_080E89A4: .4byte 0x00009c71 -_080E89A8: - ldr r1, _080E89B0 - adds r0, r2, r1 - strb r7, [r0] - b _080E8A00 - .align 2, 0 -_080E89B0: .4byte 0x00009c71 -_080E89B4: - movs r3, 0x78 - mov r9, r3 - ldr r0, _080E8A64 - ldr r2, [r0] - ldr r0, _080E8A68 - adds r1, r2, r0 - ldr r3, _080E8A6C - adds r0, r2, r3 - str r0, [r1] - ldr r1, _080E8A70 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x4 - ldr r3, _080E8A74 - adds r1, r2, r3 - strb r0, [r1] - movs r4, 0 - adds r5, r2, 0 - adds r5, 0xB4 - movs r0, 0x5 - negs r0, r0 - mov r12, r0 - movs r6, 0x1 -_080E89E2: - lsls r3, r4, 2 - adds r3, r5, r3 - ldr r1, [r3] - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r12 - ands r0, r2 - strb r0, [r1] - ldr r0, [r3] - strh r6, [r0, 0x30] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E89E2 -_080E8A00: - ldr r0, _080E8A64 - ldr r2, [r0] - ldr r3, _080E8A74 - adds r1, r2, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bge _080E8A14 - movs r0, 0 - strb r0, [r1] -_080E8A14: - movs r4, 0 - adds r6, r2, 0 - adds r6, 0xAC - movs r0, 0x5 - negs r0, r0 - mov r8, r0 -_080E8A20: - lsls r2, r4, 2 - adds r2, r6, r2 - ldr r0, [r2] - mov r1, r9 - strh r1, [r0, 0x20] - ldr r1, [r2] - adds r1, 0x3E - ldrb r0, [r1] - mov r3, r8 - ands r0, r3 - strb r0, [r1] - ldr r0, [r2] - movs r5, 0x1 - strh r5, [r0, 0x30] - ldr r0, [r2] - adds r1, r7, 0 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E8A20 - ldr r0, _080E8A64 - ldr r0, [r0] - ldr r1, _080E8A78 - adds r0, r1 - strb r5, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8A64: .4byte gUnknown_083DB694 -_080E8A68: .4byte 0x00009c6c -_080E8A6C: .4byte 0x00009a29 -_080E8A70: .4byte 0x00009a28 -_080E8A74: .4byte 0x00009c71 -_080E8A78: .4byte 0x00009c70 - thumb_func_end sub_80E8958 - - thumb_func_start sub_80E8A7C -sub_80E8A7C: @ 80E8A7C - push {r4-r7,lr} - sub sp, 0x18 - mov r1, sp - ldr r0, _080E8B68 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r5, 0 -_080E8A8E: - lsls r2, r5, 3 - adds r2, r5 - lsls r2, 19 - movs r0, 0xA8 - lsls r0, 15 - adds r2, r0 - asrs r2, 16 - mov r0, sp - movs r1, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080E8B6C - ldr r2, [r0] - lsls r0, r5, 2 - adds r2, 0xAC - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E8B70 - adds r0, r1 - str r0, [r2] - strh r5, [r0, 0x2E] - ldr r3, [r2] - adds r3, 0x3F - movs r0, 0x1 - adds r2, r5, 0 - ands r2, r0 - lsls r2, 1 - ldrb r0, [r3] - movs r4, 0x3 - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E8A8E - mov r0, sp - movs r1, 0x3 - strh r1, [r0] - ldr r0, _080E8B74 - str r0, [sp, 0x8] - movs r5, 0 - movs r7, 0x3F - movs r6, 0x40 -_080E8AF6: - lsls r4, r5, 2 - adds r1, r4, r5 - lsls r1, 19 - movs r0, 0x8E - lsls r0, 16 - adds r1, r0 - asrs r1, 16 - mov r0, sp - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080E8B6C - ldr r2, [r0] - adds r2, 0xB4 - adds r2, r4 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E8B70 - adds r0, r1 - str r0, [r2] - strh r5, [r0, 0x2E] - ldr r3, [r2] - ldrb r1, [r3, 0x1] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r6 - strb r0, [r3, 0x1] - ldr r3, [r2] - ldrb r1, [r3, 0x3] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r6 - strb r0, [r3, 0x3] - ldr r0, [r2] - lsls r1, r5, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E8AF6 - movs r0, 0 - bl sub_80E8958 - bl sub_80E88F0 - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8B68: .4byte gSpriteTemplate_83DBD18 -_080E8B6C: .4byte gUnknown_083DB694 -_080E8B70: .4byte gSprites -_080E8B74: .4byte gUnknown_083DBD10 - thumb_func_end sub_80E8A7C - - thumb_func_start sub_80E8B78 -sub_80E8B78: @ 80E8B78 - push {r4,lr} - adds r3, r0, 0 - ldr r0, _080E8BB0 - ldr r1, [r0] - ldr r2, _080E8BB4 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080E8BE8 - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _080E8BE8 - movs r2, 0x2E - ldrsh r0, [r3, r2] - cmp r0, 0 - bne _080E8BBC - movs r4, 0 - ldr r2, _080E8BB8 - adds r0, r1, r2 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _080E8BD6 - b _080E8BD4 - .align 2, 0 -_080E8BB0: .4byte gUnknown_083DB694 -_080E8BB4: .4byte 0x00009c70 -_080E8BB8: .4byte 0x00009c6c -_080E8BBC: - movs r4, 0 - ldr r2, _080E8BF0 - adds r0, r1, r2 - ldr r0, [r0] - adds r2, 0x5 - adds r1, r2 - movs r2, 0 - ldrsb r2, [r0, r2] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - bne _080E8BD6 -_080E8BD4: - movs r4, 0x1 -_080E8BD6: - adds r2, r3, 0 - adds r2, 0x3E - lsls r3, r4, 2 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] -_080E8BE8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E8BF0: .4byte 0x00009c6c - thumb_func_end sub_80E8B78 - - thumb_func_start sub_80E8BF4 -sub_80E8BF4: @ 80E8BF4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - ldr r0, _080E8C28 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x4] - str r1, [sp, 0x8] - ldr r0, _080E8C2C - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - cmp r2, 0x2 - beq _080E8C20 - cmp r2, 0x5 - beq _080E8C30 -_080E8C20: - movs r4, 0x40 - movs r5, 0x28 - b _080E8C34 - .align 2, 0 -_080E8C28: .4byte gUnknown_083DBD30 -_080E8C2C: .4byte gUnknown_083DBD38 -_080E8C30: - movs r4, 0x24 - movs r5, 0x30 -_080E8C34: - cmp r3, 0 - beq _080E8C3C - cmp r3, 0x1 - beq _080E8C40 -_080E8C3C: - movs r0, 0x43 - b _080E8C42 -_080E8C40: - movs r0, 0x44 -_080E8C42: - mov r8, r0 - add r0, sp, 0x4 - bl LoadCompressedObjectPic - add r0, sp, 0xC - bl LoadSpritePalette - ldr r0, _080E8CDC - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl CreateSprite - ldr r0, _080E8CE0 - ldrb r0, [r0, 0x8] - movs r1, 0x69 - cmp r0, 0 - bne _080E8C68 - movs r1, 0x64 -_080E8C68: - ldr r7, _080E8CE4 - adds r2, r4, 0 - subs r2, 0xC - movs r6, 0 - str r6, [sp] - adds r0, r1, 0 - adds r1, r7, 0 - adds r3, r5, 0 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080E8C9E - ldr r1, _080E8CE8 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x3 - bl StartSpriteAnim -_080E8C9E: - adds r2, r4, 0 - adds r2, 0xC - str r6, [sp] - mov r0, r8 - adds r1, r7, 0 - adds r3, r5, 0 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080E8CD0 - ldr r1, _080E8CE8 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x2 - bl StartSpriteAnim -_080E8CD0: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8CDC: .4byte gSpriteTemplate_83DBD48 -_080E8CE0: .4byte gSaveBlock2 -_080E8CE4: .4byte SpriteCallbackDummy -_080E8CE8: .4byte gSprites - thumb_func_end sub_80E8BF4 - - thumb_func_start sub_80E8CEC -sub_80E8CEC: @ 80E8CEC - push {lr} - ldr r0, _080E8D24 - bl LoadCompressedObjectPic - ldr r0, _080E8D28 - bl LoadSpritePalette - ldr r0, _080E8D2C - movs r1, 0xE0 - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080E8D3C - ldr r0, _080E8D30 - ldr r2, [r0] - ldr r0, _080E8D34 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E8D38 - adds r0, r1 - str r0, [r2] - b _080E8D48 - .align 2, 0 -_080E8D24: .4byte gUnknown_083DBD60 -_080E8D28: .4byte gUnknown_083DBD68 -_080E8D2C: .4byte gSpriteTemplate_83DBDE4 -_080E8D30: .4byte gUnknown_083DB694 -_080E8D34: .4byte 0x00009c74 -_080E8D38: .4byte gSprites -_080E8D3C: - ldr r0, _080E8D4C - ldr r0, [r0] - ldr r1, _080E8D50 - adds r0, r1 - movs r1, 0 - str r1, [r0] -_080E8D48: - pop {r0} - bx r0 - .align 2, 0 -_080E8D4C: .4byte gUnknown_083DB694 -_080E8D50: .4byte 0x00009c74 - thumb_func_end sub_80E8CEC - - thumb_func_start sub_80E8D54 -sub_80E8D54: @ 80E8D54 - push {lr} - ldr r0, _080E8D78 - ldr r2, [r0] - ldr r1, _080E8D7C - adds r0, r2, r1 - ldr r1, [r0] - cmp r1, 0 - beq _080E8D88 - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E8D80 - adds r0, r1, 0 - movs r1, 0x1 - bl StartSpriteAnim - b _080E8D88 - .align 2, 0 -_080E8D78: .4byte gUnknown_083DB694 -_080E8D7C: .4byte 0x00009c74 -_080E8D80: - adds r0, r1, 0 - movs r1, 0x2 - bl StartSpriteAnim -_080E8D88: - pop {r0} - bx r0 - thumb_func_end sub_80E8D54 - - thumb_func_start sub_80E8D8C -sub_80E8D8C: @ 80E8D8C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080E8DB8 - ldr r2, [r0] - ldr r1, _080E8DBC - adds r0, r2, r1 - ldr r1, [r0] - cmp r1, 0 - beq _080E8DD2 - cmp r3, 0 - beq _080E8DCA - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E8DC0 - adds r0, r1, 0 - movs r1, 0x3 - bl StartSpriteAnim - b _080E8DD2 - .align 2, 0 -_080E8DB8: .4byte gUnknown_083DB694 -_080E8DBC: .4byte 0x00009c74 -_080E8DC0: - adds r0, r1, 0 - movs r1, 0x4 - bl StartSpriteAnim - b _080E8DD2 -_080E8DCA: - adds r0, r1, 0 - movs r1, 0x5 - bl StartSpriteAnim -_080E8DD2: - pop {r0} - bx r0 - thumb_func_end sub_80E8D8C - - thumb_func_start sub_80E8DD8 -sub_80E8DD8: @ 80E8DD8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - ldr r0, _080E8F2C - movs r6, 0 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - adds r0, 0x4 - strh r6, [r0] - subs r0, 0x2 - strh r6, [r0] - adds r0, 0x4 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - ldr r1, _080E8F30 - movs r2, 0x8B - lsls r2, 8 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080E8F34 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080E8F38 - ldr r1, _080E8F3C - ldr r1, [r1] - mov r8, r1 - movs r4, 0xE4 - lsls r4, 1 - add r4, r8 - movs r5, 0xA0 - lsls r5, 2 - adds r1, r4, 0 - adds r2, r5, 0 - bl CpuSet - ldr r0, _080E8F40 - movs r1, 0xD9 - lsls r1, 3 - add r1, r8 - bl LZ77UnCompWram - ldr r0, _080E8F44 - ldr r1, _080E8F48 - bl LZ77UnCompVram - ldr r1, _080E8F4C - adds r0, r4, 0 - adds r2, r5, 0 - bl CpuSet - ldr r0, _080E8F50 - movs r1, 0x40 - movs r2, 0x40 - bl LoadPalette - ldr r1, _080E8F54 - ldr r2, _080E8F58 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E8F5C - movs r5, 0x80 - lsls r5, 4 - mov r0, sp - strh r6, [r0] - ldr r4, _080E8F60 - str r0, [r4] - str r1, [r4, 0x4] - lsrs r0, r5, 1 - movs r2, 0x81 - lsls r2, 24 - orrs r0, r2 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080E8F64 - ldr r2, _080E8F68 - str r0, [r4] - str r2, [r4, 0x4] - ldr r0, _080E8F6C - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080E8F70 - bl LZ77UnCompVram - ldr r0, _080E8F74 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080E8F78 - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - ldr r1, _080E8F7C - ldr r2, _080E8F80 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E8F84 - movs r0, 0 - mov r9, r0 - str r0, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r4] - str r1, [r4, 0x4] - lsrs r5, 2 - movs r0, 0x85 - lsls r0, 24 - orrs r5, r0 - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080E8F88 - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080E8F8C - adds r1, r0, 0 - adds r1, 0x7E - ldr r3, _080E8F90 - strh r3, [r1] - subs r1, 0x1C - ldr r2, _080E8F94 - strh r2, [r1] - adds r0, 0x70 - ldr r1, _080E8F98 - strh r1, [r0] - ldr r0, _080E8F9C - adds r4, r0, 0 - adds r4, 0x7E - strh r3, [r4] - adds r3, r0, 0 - adds r3, 0x62 - strh r2, [r3] - adds r0, 0x70 - strh r1, [r0] - movs r1, 0xBC - add r8, r1 - mov r2, r8 - strb r6, [r2] - bl sub_80E8FA4 - bl sub_80E948C - movs r0, 0xA - bl sub_80E9198 - movs r0, 0 - bl sub_80E91D4 - bl sub_80E95A4 - ldr r0, _080E8FA0 - mov r1, r9 - strh r1, [r0] - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E8F2C: .4byte REG_BG0HOFS -_080E8F30: .4byte REG_BG0CNT -_080E8F34: .4byte 0x00000d09 -_080E8F38: .4byte gUnknown_08E945D0 -_080E8F3C: .4byte gUnknown_083DB694 -_080E8F40: .4byte gUnknown_08E953D0 -_080E8F44: .4byte gMenuWordGroupFrame_Gfx -_080E8F48: .4byte 0x06008000 -_080E8F4C: .4byte 0x06006800 -_080E8F50: .4byte gMenuWordGroupFrame1_Pal -_080E8F54: .4byte REG_BG2CNT -_080E8F58: .4byte 0x00000e02 -_080E8F5C: .4byte 0x06007000 -_080E8F60: .4byte 0x040000d4 -_080E8F64: .4byte gUnknown_08E9AB00 -_080E8F68: .4byte 0x06006000 -_080E8F6C: .4byte 0x80000020 -_080E8F70: .4byte gUnknown_08E9AB60 -_080E8F74: .4byte gUnknown_08E9AB40 -_080E8F78: .4byte gUnknown_083DBDFC -_080E8F7C: .4byte REG_BG3CNT -_080E8F80: .4byte 0x00000f0f -_080E8F84: .4byte 0x06007800 -_080E8F88: .4byte gUnknown_083DBE40 -_080E8F8C: .4byte gPlttBufferUnfaded -_080E8F90: .4byte 0x00007fff -_080E8F94: .4byte 0x00006f5b -_080E8F98: .4byte 0x0000739c -_080E8F9C: .4byte gPlttBufferFaded -_080E8FA0: .4byte REG_BLDCNT - thumb_func_end sub_80E8DD8 - - thumb_func_start sub_80E8FA4 -sub_80E8FA4: @ 80E8FA4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - movs r0, 0 - mov r9, r0 - mov r1, sp - adds r1, 0x18 - str r1, [sp, 0x24] - add r2, sp, 0xC - mov r12, r2 -_080E8FBE: - mov r3, r9 - lsls r1, r3, 1 - ldr r4, _080E90F4 - adds r0, r1, r4 - ldrh r2, [r0] - movs r0, 0x1F - ands r0, r2 - lsls r0, 8 - str r0, [sp] - ldr r5, _080E90F8 - adds r1, r5 - ldrh r1, [r1] - movs r0, 0x1F - ands r0, r1 - lsls r0, 8 - str r0, [sp, 0xC] - lsls r2, 16 - lsrs r0, r2, 21 - movs r3, 0x1F - ands r0, r3 - lsls r0, 8 - str r0, [sp, 0x4] - lsls r1, 16 - lsrs r0, r1, 21 - ands r0, r3 - lsls r0, 8 - mov r4, r12 - str r0, [r4, 0x4] - lsrs r2, 26 - ands r2, r3 - lsls r2, 8 - str r2, [sp, 0x8] - lsrs r1, 26 - ands r1, r3 - lsls r1, 8 - str r1, [r4, 0x8] - movs r3, 0 - mov r5, r9 - lsls r5, 3 - mov r10, r5 - mov r0, r9 - adds r0, 0x1 - str r0, [sp, 0x28] - ldr r4, [sp, 0x24] -_080E9016: - lsls r0, r3, 2 - adds r2, r4, r0 - mov r5, r12 - adds r1, r5, r0 - add r0, sp - ldr r1, [r1] - ldr r0, [r0] - subs r0, r1, r0 - cmp r0, 0 - bge _080E902C - adds r0, 0x7 -_080E902C: - asrs r0, 3 - str r0, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x2 - bls _080E9016 - movs r4, 0 - ldr r0, _080E90FC - ldr r1, [r0] - mov r0, r10 - add r0, r9 - lsls r0, 1 - mov r8, r0 - movs r5, 0x1F - ldr r6, [sp, 0x24] - ldr r0, _080E9100 - adds r7, r1, r0 -_080E9050: - lsls r2, r4, 1 - add r2, r8 - adds r2, r7, r2 - ldr r1, [sp, 0x8] - asrs r1, 8 - ands r1, r5 - lsls r1, 10 - ldr r0, [sp, 0x4] - asrs r0, 8 - ands r0, r5 - lsls r0, 5 - orrs r1, r0 - ldr r0, [sp] - asrs r0, 8 - ands r0, r5 - orrs r1, r0 - strh r1, [r2] - movs r3, 0 - adds r4, 0x1 -_080E9076: - lsls r0, r3, 2 - mov r1, sp - adds r2, r1, r0 - adds r0, r6, r0 - ldr r1, [r2] - ldr r0, [r0] - adds r1, r0 - str r1, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x2 - bls _080E9076 - lsls r0, r4, 16 - lsrs r4, r0, 16 - cmp r4, 0x7 - bls _080E9050 - ldr r2, _080E90FC - ldr r3, [r2] - mov r0, r10 - add r0, r9 - adds r0, r4 - lsls r0, 1 - ldr r4, _080E9100 - adds r2, r3, r4 - adds r2, r0 - mov r5, r12 - ldr r1, [r5, 0x8] - asrs r1, 8 - movs r0, 0x1F - ands r1, r0 - lsls r1, 10 - ldr r0, [r5, 0x4] - asrs r0, 8 - movs r4, 0x1F - ands r0, r4 - lsls r0, 5 - orrs r1, r0 - ldr r0, [sp, 0xC] - asrs r0, 8 - ands r0, r4 - orrs r1, r0 - strh r1, [r2] - ldr r5, [sp, 0x28] - lsls r0, r5, 16 - lsrs r0, 16 - mov r9, r0 - cmp r0, 0x2 - bhi _080E90DA - b _080E8FBE -_080E90DA: - ldr r0, _080E9104 - adds r1, r3, r0 - movs r0, 0 - strb r0, [r1] - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E90F4: .4byte gMenuWordGroupFrame2_Pal + 0x2 -_080E90F8: .4byte gMenuWordGroupFrame2_Pal + 0x8 -_080E90FC: .4byte gUnknown_083DB694 -_080E9100: .4byte 0x00009c34 -_080E9104: .4byte 0x00009c32 - thumb_func_end sub_80E8FA4 - - thumb_func_start sub_80E9108 -sub_80E9108: @ 80E9108 - push {r4-r7,lr} - lsls r0, 24 - ldr r1, _080E9164 - ldr r2, [r1] - ldr r3, _080E9168 - adds r1, r2, r3 - lsrs r0, 24 - ldrb r3, [r1] - adds r0, r3 - strb r0, [r1] - movs r4, 0 - ldr r0, _080E916C - mov r12, r0 - adds r6, r1, 0 - ldr r3, _080E9170 - adds r5, r2, r3 - ldr r7, _080E9174 -_080E912A: - adds r2, r4, 0 - adds r2, 0x51 - lsls r2, 1 - mov r0, r12 - adds r3, r2, r0 - ldrb r0, [r6] - lsls r0, 1 - lsls r1, r4, 3 - adds r1, r4 - lsls r1, 1 - adds r0, r1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r3] - adds r2, r7 - ldrb r0, [r6] - lsls r0, 1 - adds r0, r1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r2] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x2 - bls _080E912A - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9164: .4byte gUnknown_083DB694 -_080E9168: .4byte 0x00009c32 -_080E916C: .4byte gPlttBufferUnfaded -_080E9170: .4byte 0x00009c34 -_080E9174: .4byte gPlttBufferFaded - thumb_func_end sub_80E9108 - - thumb_func_start sub_80E9178 -sub_80E9178: @ 80E9178 - push {lr} - ldr r0, _080E9190 - ldr r0, [r0] - ldr r1, _080E9194 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0 - bl sub_80E9108 - pop {r0} - bx r0 - .align 2, 0 -_080E9190: .4byte gUnknown_083DB694 -_080E9194: .4byte 0x00009c32 - thumb_func_end sub_80E9178 - - thumb_func_start sub_80E9198 -sub_80E9198: @ 80E9198 - ldr r1, _080E91A0 - strb r0, [r1] - bx lr - .align 2, 0 -_080E91A0: .4byte gUnknown_03000740 - thumb_func_end sub_80E9198 - - thumb_func_start sub_80E91A4 -sub_80E91A4: @ 80E91A4 - ldr r0, _080E91AC - ldrb r0, [r0] - bx lr - .align 2, 0 -_080E91AC: .4byte gUnknown_03000740 - thumb_func_end sub_80E91A4 - - thumb_func_start sub_80E91B0 -sub_80E91B0: @ 80E91B0 - push {lr} - sub sp, 0x8 - lsls r2, 24 - lsls r1, 27 - lsrs r1, 24 - lsrs r2, 21 - lsls r3, 27 - lsrs r3, 24 - str r3, [sp] - movs r3, 0x1 - str r3, [sp, 0x4] - movs r3, 0xB0 - bl sub_8072AB0 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_80E91B0 - - thumb_func_start sub_80E91D4 -sub_80E91D4: @ 80E91D4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _080E91FC - bl BasicInitMenuWindow - cmp r4, 0xA - bne _080E9200 - movs r0, 0x3 - movs r1, 0xE - movs r2, 0x1A - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0xA - bl sub_80E9198 - b _080E935C - .align 2, 0 -_080E91FC: .4byte gWindowConfig_81E6DA8 -_080E9200: - bl sub_80E91A4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA - bne _080E9218 - movs r0, 0x3 - movs r1, 0xE - movs r2, 0x1A - movs r3, 0x13 - bl MenuDrawTextWindow -_080E9218: - adds r0, r4, 0 - bl sub_80E9198 - cmp r4, 0x9 - bls _080E9224 - b _080E935C -_080E9224: - lsls r0, r4, 2 - ldr r1, _080E9230 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9230: .4byte _080E9234 - .align 2, 0 -_080E9234: - .4byte _080E925C - .4byte _080E9284 - .4byte _080E92AC - .4byte _080E92C4 - .4byte _080E92F0 - .4byte _080E9308 - .4byte _080E9310 - .4byte _080E9318 - .4byte _080E933C - .4byte _080E9350 -_080E925C: - ldr r0, _080E9278 - ldr r4, [r0] - ldr r1, _080E927C - adds r0, r4, r1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E9280 - adds r4, r0 - adds r0, r4, 0 - b _080E9326 - .align 2, 0 -_080E9278: .4byte gUnknown_083DB694 -_080E927C: .4byte 0x00009c80 -_080E9280: .4byte 0x00009cc9 -_080E9284: - ldr r0, _080E92A0 - ldr r4, [r0] - ldr r1, _080E92A4 - adds r0, r4, r1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E92A8 - adds r4, r0 - adds r0, r4, 0 - b _080E9326 - .align 2, 0 -_080E92A0: .4byte gUnknown_083DB694 -_080E92A4: .4byte 0x00009d12 -_080E92A8: .4byte 0x00009d5b -_080E92AC: - ldr r0, _080E92BC - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E92C0 - b _080E9326 - .align 2, 0 -_080E92BC: .4byte gOtherText_TextDeletedConfirmPage1 -_080E92C0: .4byte gOtherText_TextDeletedConfirmPage2 -_080E92C4: - ldr r0, _080E92D8 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0x4 - beq _080E92E0 - cmp r0, 0x9 - bne _080E92E8 - ldr r0, _080E92DC - b _080E933E - .align 2, 0 -_080E92D8: .4byte gUnknown_083DB694 -_080E92DC: .4byte gOtherText_QuitGivingInfo -_080E92E0: - ldr r0, _080E92E4 - b _080E933E - .align 2, 0 -_080E92E4: .4byte gOtherText_StopGivingMail -_080E92E8: - ldr r0, _080E92EC - b _080E933E - .align 2, 0 -_080E92EC: .4byte gOtherText_QuitEditing -_080E92F0: - ldr r0, _080E9300 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E9304 - b _080E9326 - .align 2, 0 -_080E9300: .4byte gOtherText_EditedTextNoSavePage1 -_080E9304: .4byte gOtherText_EditedTextNoSavePage2 -_080E9308: - ldr r0, _080E930C - b _080E933E - .align 2, 0 -_080E930C: .4byte gOtherText_EnterAPhraseOrWord -_080E9310: - ldr r0, _080E9314 - b _080E933E - .align 2, 0 -_080E9314: .4byte gOtherText_TextNoDelete -_080E9318: - ldr r0, _080E9334 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E9338 -_080E9326: - movs r1, 0x4 - movs r2, 0x11 - movs r3, 0x2 - bl sub_80E91B0 - b _080E935C - .align 2, 0 -_080E9334: .4byte gOtherText_OnlyOnePhrase -_080E9338: .4byte gOtherText_OriginalSongRestored -_080E933C: - ldr r0, _080E934C -_080E933E: - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x4 - bl sub_80E91B0 - b _080E935C - .align 2, 0 -_080E934C: .4byte gOtherText_TrendyAlready -_080E9350: - ldr r0, _080E9364 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x4 - bl sub_80E91B0 -_080E935C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E9364: .4byte gOtherText_CombineTwoPhrases - thumb_func_end sub_80E91D4 - - thumb_func_start sub_80E9368 -sub_80E9368: @ 80E9368 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bhi _080E93F8 - lsls r0, 2 - ldr r1, _080E937C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E937C: .4byte _080E9380 - .align 2, 0 -_080E9380: - .4byte _080E93B8 - .4byte _080E93C0 - .4byte _080E93C8 - .4byte _080E93D0 - .4byte _080E93F8 - .4byte _080E93E8 - .4byte _080E93D8 - .4byte _080E93E8 - .4byte _080E93E8 - .4byte _080E93E0 - .4byte _080E93E8 - .4byte _080E93E8 - .4byte _080E93E8 - .4byte _080E93F0 -_080E93B8: - ldr r4, _080E93BC - b _080E93FA - .align 2, 0 -_080E93BC: .4byte gOtherText_Profile -_080E93C0: - ldr r4, _080E93C4 - b _080E93FA - .align 2, 0 -_080E93C4: .4byte gOtherText_AtBattleStart -_080E93C8: - ldr r4, _080E93CC - b _080E93FA - .align 2, 0 -_080E93CC: .4byte gOtherText_UponWinningBattle -_080E93D0: - ldr r4, _080E93D4 - b _080E93FA - .align 2, 0 -_080E93D4: .4byte gOtherText_UponLosingBattle -_080E93D8: - ldr r4, _080E93DC - b _080E93FA - .align 2, 0 -_080E93DC: .4byte gOtherText_TheBardsSong -_080E93E0: - ldr r4, _080E93E4 - b _080E93FA - .align 2, 0 -_080E93E4: .4byte gOtherText_WhatsHipHappening -_080E93E8: - ldr r4, _080E93EC - b _080E93FA - .align 2, 0 -_080E93EC: .4byte gOtherText_Interview -_080E93F0: - ldr r4, _080E93F4 - b _080E93FA - .align 2, 0 -_080E93F4: .4byte gOtherText_GoodSaying -_080E93F8: - movs r4, 0 -_080E93FA: - ldr r0, _080E943C - bl BasicInitMenuWindow - ldr r0, _080E9440 - ldr r2, [r0] - ldr r0, _080E9444 - adds r5, r2, r0 - movs r3, 0xFC - strb r3, [r5] - adds r0, 0x1 - adds r1, r2, r0 - movs r0, 0x5 - strb r0, [r1] - ldr r0, _080E9448 - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] - cmp r4, 0 - beq _080E9450 - ldr r1, _080E944C - adds r0, r2, r1 - adds r1, r4, 0 - movs r2, 0xF0 - movs r3, 0x2 - bl sub_8072C74 - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - bl MenuPrint - b _080E9476 - .align 2, 0 -_080E943C: .4byte gWindowConfig_81E6D8C -_080E9440: .4byte gUnknown_083DB694 -_080E9444: .4byte 0x00009f8e -_080E9448: .4byte 0x00009f90 -_080E944C: .4byte 0x00009f91 -_080E9450: - ldr r0, _080E9484 - adds r1, r2, r0 - strb r3, [r1] - movs r0, 0x11 - strb r0, [r1, 0x1] - movs r0, 0x10 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - bl MenuPrint - adds r0, r5, 0 - movs r1, 0x1C - movs r2, 0 - bl MenuPrint -_080E9476: - ldr r0, _080E9488 - bl BasicInitMenuWindow - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E9484: .4byte 0x00009f91 -_080E9488: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E9368 - - thumb_func_start sub_80E948C -sub_80E948C: @ 80E948C - push {lr} - sub sp, 0x10 - ldr r0, _080E94A8 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bls _080E949C - b _080E9594 -_080E949C: - lsls r0, 2 - ldr r1, _080E94AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E94A8: .4byte gUnknown_083DB694 -_080E94AC: .4byte _080E94B0 - .align 2, 0 -_080E94B0: - .4byte _080E9508 - .4byte _080E9530 - .4byte _080E9554 - .4byte _080E9578 - .4byte _080E94C8 - .4byte _080E94E8 -_080E94C8: - ldr r0, _080E94E0 - ldr r3, _080E94E4 - movs r1, 0 - str r1, [sp] - movs r1, 0x1A - str r1, [sp, 0x4] - movs r1, 0x18 - str r1, [sp, 0x8] - movs r1, 0x6 - str r1, [sp, 0xC] - movs r1, 0x3 - b _080E9568 - .align 2, 0 -_080E94E0: .4byte 0x06006800 -_080E94E4: .4byte gUnknown_08E94AD0 -_080E94E8: - ldr r0, _080E9500 - ldr r3, _080E9504 - movs r1, 0 - str r1, [sp] - movs r1, 0x12 - str r1, [sp, 0x4] - movs r1, 0xD - str r1, [sp, 0x8] - movs r1, 0x8 - str r1, [sp, 0xC] - movs r1, 0xE - b _080E951E - .align 2, 0 -_080E9500: .4byte 0x06006800 -_080E9504: .4byte gUnknown_08E94AD0 -_080E9508: - ldr r0, _080E9528 - ldr r3, _080E952C - movs r1, 0 - str r1, [sp] - movs r1, 0xA - str r1, [sp, 0x4] - movs r1, 0x1A - str r1, [sp, 0x8] - movs r1, 0x8 - str r1, [sp, 0xC] - movs r1, 0x2 -_080E951E: - movs r2, 0x2 - bl sub_809D104 - b _080E9594 - .align 2, 0 -_080E9528: .4byte 0x06006800 -_080E952C: .4byte gUnknown_08E94AD0 -_080E9530: - ldr r0, _080E954C - ldr r3, _080E9550 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0x1A - str r1, [sp, 0x8] - movs r1, 0xA - str r1, [sp, 0xC] - movs r1, 0x2 - movs r2, 0 - bl sub_809D104 - b _080E9594 - .align 2, 0 -_080E954C: .4byte 0x06006800 -_080E9550: .4byte gUnknown_08E94AD0 -_080E9554: - ldr r0, _080E9570 - ldr r3, _080E9574 - movs r2, 0xD - str r2, [sp] - movs r1, 0x12 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - movs r1, 0xE -_080E9568: - movs r2, 0x3 - bl sub_809D104 - b _080E9594 - .align 2, 0 -_080E9570: .4byte 0x06006800 -_080E9574: .4byte gUnknown_08E94AD0 -_080E9578: - ldr r0, _080E959C - ldr r3, _080E95A0 - movs r1, 0 - str r1, [sp] - movs r1, 0x20 - str r1, [sp, 0x4] - movs r1, 0x18 - str r1, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - movs r1, 0x3 - movs r2, 0x2 - bl sub_809D104 -_080E9594: - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_080E959C: .4byte 0x06006800 -_080E95A0: .4byte gUnknown_08E94AD0 - thumb_func_end sub_80E948C - - thumb_func_start sub_80E95A4 -sub_80E95A4: @ 80E95A4 - push {lr} - ldr r0, _080E95C0 - bl BasicInitMenuWindow - ldr r0, _080E95C4 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bhi _080E9612 - lsls r0, 2 - ldr r1, _080E95C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E95C0: .4byte gWindowConfig_81E6D8C -_080E95C4: .4byte gUnknown_083DB694 -_080E95C8: .4byte _080E95CC - .align 2, 0 -_080E95CC: - .4byte _080E95F2 - .4byte _080E95F6 - .4byte _080E9600 - .4byte _080E960A - .4byte _080E95E4 - .4byte _080E95EE -_080E95E4: - movs r0, 0x4 - movs r1, 0x6 - bl sub_80E9620 - b _080E9612 -_080E95EE: - movs r0, 0x2 - b _080E9602 -_080E95F2: - movs r0, 0x3 - b _080E95F8 -_080E95F6: - movs r0, 0 -_080E95F8: - movs r1, 0x5 - bl sub_80E9620 - b _080E9612 -_080E9600: - movs r0, 0x4 -_080E9602: - movs r1, 0x11 - bl sub_80E9620 - b _080E9612 -_080E960A: - movs r0, 0x3 - movs r1, 0x6 - bl sub_80E9620 -_080E9612: - ldr r0, _080E961C - bl BasicInitMenuWindow - pop {r0} - bx r0 - .align 2, 0 -_080E961C: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E95A4 - - thumb_func_start sub_80E9620 -sub_80E9620: @ 80E9620 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x14] - movs r1, 0 - mov r10, r1 - lsrs r7, r0, 16 - mov r9, r1 - ldr r0, _080E9644 - ldr r0, [r0] - b _080E971A - .align 2, 0 -_080E9644: .4byte gUnknown_083DB694 -_080E9648: - ldr r6, [sp, 0x14] - movs r2, 0 - mov r8, r2 - adds r0, r7, 0x2 - str r0, [sp, 0x1C] - mov r1, r9 - adds r1, 0x1 - str r1, [sp, 0x18] - b _080E96E4 -_080E965A: - mov r2, r10 - lsls r0, r2, 1 - adds r1, r5, 0 - adds r1, 0xC - adds r1, r0 - ldrh r0, [r1] - ldr r2, _080E9690 - cmp r0, r2 - bne _080E969C - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - str r1, [sp, 0x10] - ldr r0, _080E9694 - adds r1, r6, 0 - adds r2, r7, 0 - ldr r3, _080E9698 - bl sub_8095C8C - adds r0, r6, 0 - adds r0, 0xB - b _080E96CC - .align 2, 0 -_080E9690: .4byte 0x0000ffff -_080E9694: .4byte 0x06007000 -_080E9698: .4byte gUnknown_083DBE1C -_080E969C: - ldr r0, _080E9738 - adds r4, r5, r0 - ldrh r1, [r1] - adds r0, r4, 0 - movs r2, 0xB - bl sub_80EB218 - lsls r1, r6, 24 - lsrs r1, 24 - lsls r2, r7, 24 - lsrs r2, 24 - adds r0, r4, 0 - bl MenuPrint - mov r1, r9 - lsls r0, r1, 1 - add r0, r8 - adds r1, r5, 0 - adds r1, 0x8C - adds r1, r0 - adds r0, r6, 0 - adds r0, 0xB - ldrb r1, [r1] - adds r0, r1 -_080E96CC: - lsls r0, 16 - lsrs r6, r0, 16 - mov r0, r10 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_080E96E4: - ldr r0, _080E973C - ldr r5, [r0] - adds r0, r5, 0 - adds r0, 0x83 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r8, r0 - bge _080E970A - ldrb r2, [r5, 0xA] - cmp r10, r2 - bcc _080E965A - lsls r1, r6, 24 - lsrs r1, 24 - lsls r2, r7, 24 - lsrs r2, 24 - ldr r0, _080E9740 - bl MenuPrint -_080E970A: - ldr r1, [sp, 0x1C] - lsls r0, r1, 16 - lsrs r7, r0, 16 - ldr r2, [sp, 0x18] - lsls r0, r2, 16 - lsrs r0, 16 - mov r9, r0 - adds r0, r5, 0 -_080E971A: - adds r0, 0x84 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r9, r0 - blt _080E9648 - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9738: .4byte 0x00009e14 -_080E973C: .4byte gUnknown_083DB694 -_080E9740: .4byte gUnknown_083DBEA8 - thumb_func_end sub_80E9620 - - thumb_func_start sub_80E9744 -sub_80E9744: @ 80E9744 - push {lr} - ldr r0, _080E9760 - bl BasicInitMenuWindow - ldr r0, _080E9764 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bhi _080E97B2 - lsls r0, 2 - ldr r1, _080E9768 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9760: .4byte gWindowConfig_81E6D8C -_080E9764: .4byte gUnknown_083DB694 -_080E9768: .4byte _080E976C - .align 2, 0 -_080E976C: - .4byte _080E9792 - .4byte _080E9796 - .4byte _080E97A0 - .4byte _080E97AA - .4byte _080E9784 - .4byte _080E978E -_080E9784: - movs r0, 0x4 - movs r1, 0x6 - bl sub_80E97C0 - b _080E97B2 -_080E978E: - movs r0, 0x2 - b _080E97A2 -_080E9792: - movs r0, 0x3 - b _080E9798 -_080E9796: - movs r0, 0 -_080E9798: - movs r1, 0x5 - bl sub_80E97C0 - b _080E97B2 -_080E97A0: - movs r0, 0x4 -_080E97A2: - movs r1, 0x11 - bl sub_80E97C0 - b _080E97B2 -_080E97AA: - movs r0, 0x3 - movs r1, 0x6 - bl sub_80E97C0 -_080E97B2: - ldr r0, _080E97BC - bl BasicInitMenuWindow - pop {r0} - bx r0 - .align 2, 0 -_080E97BC: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E9744 - - thumb_func_start sub_80E97C0 -sub_80E97C0: @ 80E97C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r7, 0 - movs r3, 0 - ldr r1, _080E98B8 - ldr r0, [r1] - adds r0, 0x84 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r3, r0 - bge _080E98A6 -_080E97EA: - ldr r1, [r1] - ldr r0, _080E98BC - adds r2, r1, r0 - movs r6, 0 - adds r0, r1, 0 - adds r0, 0x83 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldr r4, [sp] - lsls r4, 24 - mov r8, r4 - lsls r4, r5, 24 - mov r9, r4 - adds r5, 0x2 - mov r10, r5 - adds r3, 0x1 - str r3, [sp, 0x4] - cmp r6, r0 - bge _080E985E - ldrb r1, [r1, 0xA] - cmp r7, r1 - bcs _080E985E - ldr r0, _080E98B8 - ldr r4, [r0] - ldr r5, _080E98C0 -_080E981E: - lsls r0, r7, 1 - adds r1, r4, 0 - adds r1, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, r5 - beq _080E983E - adds r1, r0, 0 - adds r0, r2, 0 - movs r2, 0 - bl sub_80EB218 - adds r2, r0, 0 - movs r0, 0 - strb r0, [r2] - adds r2, 0x1 -_080E983E: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - adds r0, 0x83 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r6, r0 - bge _080E985E - ldrb r0, [r4, 0xA] - cmp r7, r0 - bcc _080E981E -_080E985E: - ldr r1, _080E98B8 - ldr r4, [r1] - adds r0, r4, 0 - adds r0, 0x83 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0xB - muls r1, r0 - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x13 - strb r0, [r2, 0x1] - lsls r1, 3 - strb r1, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r2, _080E98BC - adds r0, r4, r2 - mov r3, r8 - lsrs r1, r3, 24 - mov r3, r9 - lsrs r2, r3, 24 - bl MenuPrint - mov r1, r10 - lsls r0, r1, 16 - lsrs r5, r0, 16 - ldr r2, [sp, 0x4] - lsls r0, r2, 24 - lsrs r3, r0, 24 - ldr r1, _080E98B8 - adds r4, 0x84 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r3, r0 - blt _080E97EA -_080E98A6: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E98B8: .4byte gUnknown_083DB694 -_080E98BC: .4byte 0x00009e6e -_080E98C0: .4byte 0x0000ffff - thumb_func_end sub_80E97C0 - - thumb_func_start sub_80E98C4 -sub_80E98C4: @ 80E98C4 - push {lr} - ldr r0, _080E98E0 - bl BasicInitMenuWindow - ldr r0, _080E98E4 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bhi _080E9936 - lsls r0, 2 - ldr r1, _080E98E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E98E0: .4byte gWindowConfig_81E6D8C -_080E98E4: .4byte gUnknown_083DB694 -_080E98E8: .4byte _080E98EC - .align 2, 0 -_080E98EC: - .4byte _080E990A - .4byte _080E9910 - .4byte _080E9916 - .4byte _080E991A - .4byte _080E9904 - .4byte _080E990A -_080E9904: - movs r1, 0x4 - movs r3, 0x2 - b _080E991E -_080E990A: - movs r1, 0x3 - movs r3, 0x2 - b _080E991E -_080E9910: - movs r1, 0x1 - movs r3, 0x3 - b _080E991E -_080E9916: - movs r1, 0x4 - b _080E991C -_080E991A: - movs r1, 0x3 -_080E991C: - movs r3, 0x1 -_080E991E: - lsls r3, 1 - adds r3, r1, r3 - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x2 - movs r2, 0x1B - bl MenuFillWindowRectWithBlankTile - ldr r0, _080E993C - bl BasicInitMenuWindow -_080E9936: - pop {r0} - bx r0 - .align 2, 0 -_080E993C: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E98C4 - - thumb_func_start sub_80E9940 -sub_80E9940: @ 80E9940 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r5, r1, 24 - lsrs r5, 24 - movs r4, 0x7 - ands r4, r5 - lsls r3, r4, 1 - adds r1, r3, 0 - adds r3, 0x1 - movs r0, 0x2 - movs r2, 0x1F - bl MenuFillWindowRectWithBlankTile - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_80E9A7C - lsls r4, 1 - adds r0, r6, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl sub_80E9A60 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E9940 - - thumb_func_start sub_80E9974 -sub_80E9974: @ 80E9974 - push {r4-r6,lr} - ldr r0, _080E99C4 - bl BasicInitMenuWindow - ldr r0, _080E99C8 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E99D4 - ldr r1, _080E99CC - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r1, r0, 16 - lsrs r4, r1, 16 - adds r0, 0x4 - cmp r4, r0 - bge _080E9A08 - adds r5, r2, 0 - ldr r2, _080E99CC - adds r6, r5, r2 -_080E99A4: - lsls r1, r4, 24 - lsrs r1, 24 - ldr r2, _080E99D0 - adds r0, r5, r2 - bl sub_80E9940 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0 - ldrsb r0, [r6, r0] - adds r0, 0x4 - cmp r4, r0 - blt _080E99A4 - b _080E9A08 - .align 2, 0 -_080E99C4: .4byte gWindowConfig_81E6D54 -_080E99C8: .4byte gUnknown_083DB694 -_080E99CC: .4byte 0x000001b5 -_080E99D0: .4byte 0x00009dc9 -_080E99D4: - bl sub_80E9AD4 - ldr r4, _080E9A10 - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_80E9A60 - adds r0, r4, 0 - adds r0, 0x20 - movs r1, 0x2 - movs r2, 0x2 - bl sub_80E9A60 - adds r0, r4, 0 - adds r0, 0x40 - movs r1, 0x2 - movs r2, 0x4 - bl sub_80E9A60 - adds r4, 0x60 - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0x6 - bl sub_80E9A60 -_080E9A08: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9A10: .4byte gUnknown_083DBEAC - thumb_func_end sub_80E9974 - - thumb_func_start sub_80E9A14 -sub_80E9A14: @ 80E9A14 - push {lr} - bl sub_80E9A4C - ldr r0, _080E9A44 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E9A40 - movs r0, 0xDD - lsls r0, 1 - adds r2, r1, r0 - ldr r3, _080E9A48 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 4 - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] -_080E9A40: - pop {r0} - bx r0 - .align 2, 0 -_080E9A44: .4byte gUnknown_083DB694 -_080E9A48: .4byte 0x000001b5 - thumb_func_end sub_80E9A14 - - thumb_func_start sub_80E9A4C -sub_80E9A4C: @ 80E9A4C - ldr r0, _080E9A5C - ldr r0, [r0] - movs r2, 0xDD - lsls r2, 1 - adds r1, r0, r2 - movs r0, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_080E9A5C: .4byte gUnknown_083DB694 - thumb_func_end sub_80E9A4C - - thumb_func_start sub_80E9A60 -sub_80E9A60: @ 80E9A60 - push {lr} - lsls r2, 16 - movs r3, 0xF0 - lsls r3, 12 - ands r3, r2 - lsls r1, 24 - lsrs r1, 24 - lsrs r3, 16 - adds r2, r3, 0 - bl MenuPrint - pop {r0} - bx r0 - thumb_func_end sub_80E9A60 - - thumb_func_start sub_80E9A7C -sub_80E9A7C: @ 80E9A7C - push {r4-r7,lr} - adds r2, r0, 0 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r0, r7, 17 - lsrs r5, r0, 16 - movs r4, 0 - ldr r0, _080E9AD0 - ldr r6, [r0] -_080E9A8E: - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x12 - strb r0, [r2, 0x1] - movs r0, 0x58 - muls r0, r4 - strb r0, [r2, 0x2] - adds r2, 0x3 - lsls r1, r7, 1 - adds r1, r4, r1 - adds r0, r6, 0 - adds r0, 0x2A - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - movs r2, 0xB - bl sub_80EAD64 - adds r2, r0, 0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r0, [r6, 0x28] - cmp r5, r0 - bcs _080E9ACA - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E9A8E -_080E9ACA: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9AD0: .4byte gUnknown_083DB694 - thumb_func_end sub_80E9A7C - - thumb_func_start sub_80E9AD4 -sub_80E9AD4: @ 80E9AD4 - push {r4,lr} - ldr r0, _080E9AF4 - bl BasicInitMenuWindow - movs r4, 0 -_080E9ADE: - adds r0, r4, 0 - bl sub_80E9C74 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _080E9ADE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E9AF4: .4byte gWindowConfig_81E6D54 - thumb_func_end sub_80E9AD4 - - thumb_func_start sub_80E9AF8 -sub_80E9AF8: @ 80E9AF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r7, 0 - bl sub_80E9C74 - ldr r4, _080E9B7C - ldr r5, [r4] - ldr r0, _080E9B80 - adds r0, r5 - mov r8, r0 - movs r0, 0xFC - mov r1, r8 - strb r0, [r1] - movs r0, 0x11 - strb r0, [r1, 0x1] - movs r0, 0x10 - strb r0, [r1, 0x2] - ldr r2, _080E9B84 - adds r2, r5 - mov r8, r2 - adds r0, r5, 0 - adds r0, 0x7D - ldrb r0, [r0] - cmp r0, 0 - beq _080E9BF4 - movs r6, 0 - ldr r3, _080E9B88 - adds r0, r5, r3 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r6, r0 - blt _080E9B4A - b _080E9C52 -_080E9B4A: - lsls r0, r7, 2 - mov r9, r0 - ldr r1, _080E9B8C - adds r1, r5, r1 - str r1, [sp] - lsls r2, r7, 17 - mov r10, r2 -_080E9B58: - lsls r4, r6, 1 - mov r3, r9 - adds r0, r4, r3 - ldr r1, [sp] - adds r0, r1, r0 - ldrh r0, [r0] - bl sub_80EB2D4 - lsls r0, 16 - lsrs r0, 16 - adds r5, r4, 0 - cmp r0, 0x7 - bne _080E9B94 - ldr r0, _080E9B90 - bl BasicInitMenuWindow - b _080E9B9A - .align 2, 0 -_080E9B7C: .4byte gUnknown_083DB694 -_080E9B80: .4byte 0x00009e14 -_080E9B84: .4byte 0x00009e17 -_080E9B88: .4byte 0x000099a6 -_080E9B8C: .4byte 0x00009a2a -_080E9B90: .4byte gWindowConfig_81E6D70 -_080E9B94: - ldr r0, _080E9BE0 - bl BasicInitMenuWindow -_080E9B9A: - ldr r2, _080E9BE4 - ldr r4, [r2] - mov r3, r9 - adds r1, r5, r3 - ldr r2, _080E9BE8 - adds r0, r4, r2 - adds r0, r1 - ldrh r1, [r0] - mov r0, r8 - movs r2, 0x9 - bl sub_80EB218 - ldr r3, _080E9BEC - adds r0, r4, r3 - movs r1, 0xB - muls r1, r6 - adds r1, 0x4 - lsls r1, 16 - lsrs r1, 16 - mov r3, r10 - lsrs r2, r3, 16 - bl sub_80E9A60 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _080E9BF0 - adds r4, r0 - adds r4, r7 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r6, r0 - blt _080E9B58 - b _080E9C52 - .align 2, 0 -_080E9BE0: .4byte gWindowConfig_81E6D54 -_080E9BE4: .4byte gUnknown_083DB694 -_080E9BE8: .4byte 0x00009a2a -_080E9BEC: .4byte 0x00009e14 -_080E9BF0: .4byte 0x000099a6 -_080E9BF4: - ldr r0, _080E9C64 - bl BasicInitMenuWindow - movs r6, 0 - ldr r1, _080E9C68 - adds r0, r5, r1 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r6, r0 - bge _080E9C52 - adds r4, r5, 0 - adds r0, r4, r1 - adds r0, r7 - mov r9, r0 - lsls r5, r7, 17 -_080E9C16: - lsls r1, r6, 1 - lsls r0, r7, 2 - adds r1, r0 - ldr r2, _080E9C6C - adds r0, r4, r2 - adds r0, r1 - ldrh r1, [r0] - mov r0, r8 - movs r2, 0x9 - bl sub_80EB218 - movs r0, 0xB - adds r1, r6, 0 - muls r1, r0 - adds r1, 0x4 - lsls r1, 16 - lsrs r1, 16 - ldr r3, _080E9C70 - adds r0, r4, r3 - lsrs r2, r5, 16 - bl sub_80E9A60 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - mov r1, r9 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r6, r0 - blt _080E9C16 -_080E9C52: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9C64: .4byte gWindowConfig_81E6D54 -_080E9C68: .4byte 0x000099a6 -_080E9C6C: .4byte 0x00009a2a -_080E9C70: .4byte 0x00009e14 - thumb_func_end sub_80E9AF8 - - thumb_func_start sub_80E9C74 -sub_80E9C74: @ 80E9C74 - push {lr} - lsls r0, 16 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - lsrs r1, 16 - lsls r3, r1, 1 - adds r1, r3, 0 - adds r3, 0x1 - movs r0, 0 - movs r2, 0x1D - bl MenuFillWindowRectWithBlankTile - pop {r0} - bx r0 - thumb_func_end sub_80E9C74 - - thumb_func_start sub_80E9C94 -sub_80E9C94: @ 80E9C94 - push {r4-r6,lr} - ldr r0, _080E9CAC - ldr r0, [r0] - ldr r2, _080E9CB0 - adds r1, r0, r2 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0x3 - bgt _080E9CB4 - lsls r0, 16 - lsrs r0, 16 - b _080E9CB6 - .align 2, 0 -_080E9CAC: .4byte gUnknown_083DB694 -_080E9CB0: .4byte 0x00009a28 -_080E9CB4: - movs r0, 0x4 -_080E9CB6: - adds r5, r0, 0 - movs r4, 0 - cmp r4, r5 - bcs _080E9CF4 - ldr r0, _080E9CE0 - ldr r0, [r0] - ldr r1, _080E9CE4 - adds r6, r0, r1 -_080E9CC6: - movs r0, 0 - ldrsb r0, [r6, r0] - adds r0, r4, r0 - lsls r0, 16 - lsrs r0, 16 - bl sub_80E9AF8 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r5 - bcc _080E9CC6 - b _080E9CF4 - .align 2, 0 -_080E9CE0: .4byte gUnknown_083DB694 -_080E9CE4: .4byte 0x00009a29 -_080E9CE8: - adds r0, r4, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r4, r1, 16 - bl sub_80E9C74 -_080E9CF4: - cmp r4, 0x3 - bls _080E9CE8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E9C94 - - thumb_func_start sub_80E9D00 -sub_80E9D00: @ 80E9D00 - push {r4-r6,lr} - ldr r0, _080E9D28 - ldr r2, [r0] - movs r0, 0xE0 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - ble _080E9D30 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _080E9D2C - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x4 - b _080E9D46 - .align 2, 0 -_080E9D28: .4byte gUnknown_083DB694 -_080E9D2C: .4byte 0x00009a29 -_080E9D30: - movs r0, 0 - ldrsb r0, [r1, r0] - negs r0, r0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _080E9D74 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, r4 -_080E9D46: - lsls r0, 16 - lsrs r5, r0, 16 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080E9D78 - cmp r4, r0 - beq _080E9D6E - adds r6, r0, 0 -_080E9D58: - adds r0, r5, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r5, r1, 16 - bl sub_80E9AF8 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r6 - bne _080E9D58 -_080E9D6E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9D74: .4byte 0x00009a29 -_080E9D78: .4byte 0x0000ffff - thumb_func_end sub_80E9D00 - - thumb_func_start sub_80E9D7C -sub_80E9D7C: @ 80E9D7C - push {r4-r7,lr} - ldr r0, _080E9DAC - bl BasicInitMenuWindow - ldr r0, _080E9DB0 - ldr r2, [r0] - movs r0, 0xE0 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bge _080E9DB8 - negs r0, r0 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _080E9DB4 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, r6 - b _080E9DCC - .align 2, 0 -_080E9DAC: .4byte gWindowConfig_81E6D54 -_080E9DB0: .4byte gUnknown_083DB694 -_080E9DB4: .4byte 0x000001b5 -_080E9DB8: - movs r0, 0 - ldrsb r0, [r1, r0] - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _080E9DFC - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x4 -_080E9DCC: - lsls r0, 16 - lsrs r4, r0, 16 - movs r5, 0 - cmp r5, r6 - bcs _080E9DF6 - ldr r0, _080E9E00 - ldr r7, [r0] -_080E9DDA: - lsls r1, r4, 24 - lsrs r1, 24 - ldr r2, _080E9E04 - adds r0, r7, r2 - bl sub_80E9940 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r6 - bcc _080E9DDA -_080E9DF6: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9DFC: .4byte 0x000001b5 -_080E9E00: .4byte gUnknown_083DB694 -_080E9E04: .4byte 0x00009dc9 - thumb_func_end sub_80E9D7C - - thumb_func_start sub_80E9E08 -sub_80E9E08: @ 80E9E08 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E9E4C - ldr r3, [r0] - movs r0, 0xDD - lsls r0, 1 - adds r1, r3, r0 - movs r5, 0xE0 - lsls r5, 1 - adds r2, r3, r5 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 4 - ldrh r1, [r1] - adds r0, r1 - movs r1, 0x7F - ands r0, r1 - subs r5, 0x4 - adds r1, r3, r5 - strh r0, [r1] - adds r1, r4, 0 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0 - bge _080E9E3E - negs r1, r4 -_080E9E3E: - ldr r2, _080E9E50 - adds r0, r3, r2 - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E9E4C: .4byte gUnknown_083DB694 -_080E9E50: .4byte 0x000001bf - thumb_func_end sub_80E9E08 - - thumb_func_start sub_80E9E54 -sub_80E9E54: @ 80E9E54 - push {r4,lr} - ldr r0, _080E9E8C - ldr r2, [r0] - movs r0, 0xDD - lsls r0, 1 - adds r3, r2, r0 - ldr r1, _080E9E90 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r4, [r3] - adds r0, r4 - movs r1, 0x7F - ands r0, r1 - strh r0, [r3] - movs r3, 0 - movs r4, 0xDE - lsls r4, 1 - adds r1, r2, r4 - ldrh r1, [r1] - cmp r0, r1 - bne _080E9E84 - movs r3, 0x1 -_080E9E84: - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E9E8C: .4byte gUnknown_083DB694 -_080E9E90: .4byte 0x000001bf - thumb_func_end sub_80E9E54 - - thumb_func_start nullsub_23 -nullsub_23: @ 80E9E94 - bx lr - thumb_func_end nullsub_23 - - thumb_func_start sub_80E9E98 -sub_80E9E98: @ 80E9E98 - ldr r0, _080E9EA4 - ldr r0, [r0] - adds r0, 0xBE - movs r1, 0 - strh r1, [r0] - bx lr - .align 2, 0 -_080E9EA4: .4byte gUnknown_083DB694 - thumb_func_end sub_80E9E98 - - thumb_func_start sub_80E9EA8 -sub_80E9EA8: @ 80E9EA8 - push {lr} - ldr r1, _080E9EC4 - ldr r0, [r1] - adds r0, 0xBE - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0x5 - bhi _080E9F48 - lsls r0, 2 - ldr r1, _080E9EC8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9EC4: .4byte gUnknown_083DB694 -_080E9EC8: .4byte _080E9ECC - .align 2, 0 -_080E9ECC: - .4byte _080E9EE4 - .4byte _080E9EF4 - .4byte _080E9F0C - .4byte _080E9F24 - .4byte _080E9F38 - .4byte _080E9F44 -_080E9EE4: - bl sub_80EA24C - ldr r0, _080E9F08 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080E9EF4: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9F48 - bl sub_80EA4A4 - ldr r0, _080E9F08 - ldr r1, [r0] - b _080E9F3A - .align 2, 0 -_080E9F08: .4byte gUnknown_083DB694 -_080E9F0C: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9F48 - bl sub_80EA704 - ldr r0, _080E9F20 - ldr r1, [r0] - b _080E9F3A - .align 2, 0 -_080E9F20: .4byte gUnknown_083DB694 -_080E9F24: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9F48 - ldr r0, _080E9F34 - ldr r1, [r0] - b _080E9F3A - .align 2, 0 -_080E9F34: .4byte gUnknown_083DB694 -_080E9F38: - ldr r1, [r2] -_080E9F3A: - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080E9F48 -_080E9F44: - movs r0, 0x1 - b _080E9F4A -_080E9F48: - movs r0, 0 -_080E9F4A: - pop {r1} - bx r1 - thumb_func_end sub_80E9EA8 - - thumb_func_start sub_80E9F50 -sub_80E9F50: @ 80E9F50 - push {lr} - ldr r0, _080E9F68 - ldr r0, [r0] - adds r0, 0xBE - ldrh r0, [r0] - cmp r0, 0x6 - bhi _080E9FCC - lsls r0, 2 - ldr r1, _080E9F6C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9F68: .4byte gUnknown_083DB694 -_080E9F6C: .4byte _080E9F70 - .align 2, 0 -_080E9F70: - .4byte _080E9F8C - .4byte _080E9FAC - .4byte _080E9F96 - .4byte _080E9FAC - .4byte _080E9F9C - .4byte _080E9FAC - .4byte _080E9FC8 -_080E9F8C: - bl nullsub_23 - bl sub_80EA764 - b _080E9FA0 -_080E9F96: - bl sub_80EA5A0 - b _080E9FA0 -_080E9F9C: - bl sub_80EA348 -_080E9FA0: - ldr r0, _080E9FC4 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080E9FAC: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9FCC - ldr r0, _080E9FC4 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080E9FCC - .align 2, 0 -_080E9FC4: .4byte gUnknown_083DB694 -_080E9FC8: - movs r0, 0x1 - b _080E9FCE -_080E9FCC: - movs r0, 0 -_080E9FCE: - pop {r1} - bx r1 - thumb_func_end sub_80E9F50 - - thumb_func_start sub_80E9FD4 -sub_80E9FD4: @ 80E9FD4 - push {r4,lr} - ldr r0, _080E9FEC - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0xBE - ldrh r0, [r4] - cmp r0, 0 - beq _080E9FF0 - cmp r0, 0x1 - beq _080E9FFE - b _080EA00C - .align 2, 0 -_080E9FEC: .4byte gUnknown_083DB694 -_080E9FF0: - bl nullsub_23 - bl sub_80EA5A0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080E9FFE: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA00C - movs r0, 0x1 - b _080EA00E -_080EA00C: - movs r0, 0 -_080EA00E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80E9FD4 - - thumb_func_start sub_80EA014 -sub_80EA014: @ 80EA014 - push {r4,lr} - ldr r0, _080EA02C - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0xBE - ldrh r0, [r4] - cmp r0, 0 - beq _080EA030 - cmp r0, 0x1 - beq _080EA03A - b _080EA048 - .align 2, 0 -_080EA02C: .4byte gUnknown_083DB694 -_080EA030: - bl sub_80EA4A4 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080EA03A: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA048 - movs r0, 0x1 - b _080EA04A -_080EA048: - movs r0, 0 -_080EA04A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EA014 - - thumb_func_start sub_80EA050 -sub_80EA050: @ 80EA050 - push {lr} - ldr r0, _080EA068 - ldr r0, [r0] - adds r0, 0xBE - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080EA0DC - lsls r0, 2 - ldr r1, _080EA06C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EA068: .4byte gUnknown_083DB694 -_080EA06C: .4byte _080EA070 - .align 2, 0 -_080EA070: - .4byte _080EA084 - .4byte _080EA08E - .4byte _080EA09E - .4byte _080EA0B4 - .4byte _080EA0D8 -_080EA084: - bl nullsub_23 - bl sub_80EA764 - b _080EA0C4 -_080EA08E: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA0DC - bl sub_80EA7F4 - b _080EA0C4 -_080EA09E: - movs r0, 0x1 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA0DC - bl sub_80EA8BC - b _080EA0C4 -_080EA0B4: - movs r0, 0x1 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA0DC -_080EA0C4: - ldr r0, _080EA0D4 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EA0DC - .align 2, 0 -_080EA0D4: .4byte gUnknown_083DB694 -_080EA0D8: - movs r0, 0x1 - b _080EA0DE -_080EA0DC: - movs r0, 0 -_080EA0DE: - pop {r1} - bx r1 - thumb_func_end sub_80EA050 - - thumb_func_start sub_80EA0E4 -sub_80EA0E4: @ 80EA0E4 - push {lr} - ldr r0, _080EA0FC - ldr r0, [r0] - adds r0, 0xBE - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080EA17C - lsls r0, 2 - ldr r1, _080EA100 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EA0FC: .4byte gUnknown_083DB694 -_080EA100: .4byte _080EA104 - .align 2, 0 -_080EA104: - .4byte _080EA118 - .4byte _080EA128 - .4byte _080EA144 - .4byte _080EA15C - .4byte _080EA178 -_080EA118: - bl sub_80EA948 - ldr r0, _080EA140 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EA128: - movs r0, 0x1 - negs r0, r0 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA17C - bl sub_80EAA44 - b _080EA166 - .align 2, 0 -_080EA140: .4byte gUnknown_083DB694 -_080EA144: - movs r0, 0x1 - negs r0, r0 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA17C - bl sub_80EA704 - b _080EA166 -_080EA15C: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA17C -_080EA166: - ldr r0, _080EA174 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EA17C - .align 2, 0 -_080EA174: .4byte gUnknown_083DB694 -_080EA178: - movs r0, 0x1 - b _080EA17E -_080EA17C: - movs r0, 0 -_080EA17E: - pop {r1} - bx r1 - thumb_func_end sub_80EA0E4 - - thumb_func_start sub_80EA184 -sub_80EA184: @ 80EA184 - push {r4,lr} - ldr r0, _080EA1A0 - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0xBE - ldrh r0, [r4] - cmp r0, 0x1 - beq _080EA1B4 - cmp r0, 0x1 - bgt _080EA1A4 - cmp r0, 0 - beq _080EA1AA - b _080EA1D8 - .align 2, 0 -_080EA1A0: .4byte gUnknown_083DB694 -_080EA1A4: - cmp r0, 0x2 - beq _080EA1D0 - b _080EA1D8 -_080EA1AA: - bl sub_80EAAD4 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080EA1B4: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA1D8 - ldr r0, _080EA1CC - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EA1D8 - .align 2, 0 -_080EA1CC: .4byte gUnknown_083DB694 -_080EA1D0: - bl sub_80E9178 - movs r0, 0x1 - b _080EA1DA -_080EA1D8: - movs r0, 0 -_080EA1DA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EA184 - - thumb_func_start sub_80EA1E0 -sub_80EA1E0: @ 80EA1E0 - push {r4-r6,lr} - ldr r0, _080EA240 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xC4 - ldrh r0, [r0] - cmp r0, 0 - beq _080EA244 - movs r4, 0 - adds r0, r1, 0 - adds r0, 0xC2 - ldrh r2, [r0] - cmp r4, r2 - bcs _080EA228 - adds r5, r1, 0 - adds r6, r0, 0 -_080EA200: - lsls r0, r4, 4 - adds r0, 0xC8 - adds r0, r5, r0 - bl sub_80EAC0C - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r1 - adds r0, r5, r0 - bl sub_80EAC48 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r2, [r6] - cmp r4, r2 - bcc _080EA200 -_080EA228: - ldr r0, _080EA240 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0xBC - movs r0, 0x1 - strb r0, [r2] - adds r1, 0xC4 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - movs r0, 0 - b _080EA246 - .align 2, 0 -_080EA240: .4byte gUnknown_083DB694 -_080EA244: - movs r0, 0x1 -_080EA246: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80EA1E0 - - thumb_func_start sub_80EA24C -sub_80EA24C: @ 80EA24C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA340 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0xF - str r6, [sp] - ldr r1, _080EA344 - mov r8, r1 - str r1, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xD - movs r2, 0xE - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - mov r9, r1 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xE - movs r3, 0xC - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x1E - movs r2, 0 - mov r3, r8 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r6, 0x10 - str r6, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xD - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - str r6, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r1, r9 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0xC - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x1E - movs r2, 0x9 - mov r3, r8 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x4 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x6 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA340: .4byte gUnknown_083DB694 -_080EA344: .4byte 0x0000fffe - thumb_func_end sub_80EA24C - - thumb_func_start sub_80EA348 -sub_80EA348: @ 80EA348 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA49C - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r5, 0xF - str r5, [sp] - movs r1, 0x2 - mov r9, r1 - str r1, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r6, r7, r1 - str r6, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r1, _080EA4A0 - mov r8, r1 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xE - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0x12 - movs r2, 0 - movs r3, 0x2 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r5, 0x10 - str r5, [sp] - mov r1, r9 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r1, r8 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0x12 - movs r2, 0x9 - movs r3, 0x2 - bl sub_80EAC30 - movs r1, 0x84 - lsls r1, 1 - adds r0, r7, r1 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r1, r9 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0x1 - bl sub_80EABD4 - movs r1, 0xBC - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x50 - adds r6, r7, r1 - str r6, [sp, 0x4] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0 - bl sub_80EAC30 - movs r1, 0x8C - lsls r1, 1 - adds r0, r7, r1 - str r5, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xE - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xC2 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0x18 - movs r2, 0xE - mov r3, r8 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xC2 - movs r1, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA49C: .4byte gUnknown_083DB694 -_080EA4A0: .4byte 0x0000fffe - thumb_func_end sub_80EA348 - - thumb_func_start sub_80EA4A4 -sub_80EA4A4: @ 80EA4A4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA598 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0xF - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r1, _080EA59C - mov r8, r1 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xE - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r1, 0x10 - mov r9, r1 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - movs r6, 0x1 - str r6, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r6, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xC2 - movs r1, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA598: .4byte gUnknown_083DB694 -_080EA59C: .4byte 0x0000ffff - thumb_func_end sub_80EA4A4 - - thumb_func_start sub_80EA5A0 -sub_80EA5A0: @ 80EA5A0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA6FC - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0xF - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r1, 0x1 - mov r8, r1 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r2, 0xA - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xA - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r1, 0x14 - mov r9, r1 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - ldr r6, _080EA700 - str r6, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x5 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r6, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0x5 - movs r3, 0 - bl sub_80EAC30 - movs r1, 0x84 - lsls r1, 1 - adds r0, r7, r1 - movs r1, 0xA - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - mov r1, r8 - str r1, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xA - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xBC - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x50 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0x1 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - movs r1, 0x8C - lsls r1, 1 - adds r0, r7, r1 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0x14 - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xC2 - lsls r1, 1 - adds r0, r7, r1 - str r6, [sp] - str r5, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x14 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x6 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x4 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA6FC: .4byte gUnknown_083DB694 -_080EA700: .4byte 0x0000ffff - thumb_func_end sub_80EA5A0 - - thumb_func_start sub_80EA704 -sub_80EA704: @ 80EA704 - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _080EA75C - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0xC8 - movs r1, 0x14 - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r5, 0x1 - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xC - movs r3, 0x19 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r6, r1 - ldr r3, _080EA760 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0x5 - movs r2, 0xA - bl sub_80EAC30 - adds r0, r6, 0 - adds r0, 0xC2 - strh r5, [r0] - adds r1, r6, 0 - adds r1, 0xC4 - movs r0, 0x5 - strh r0, [r1] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA75C: .4byte gUnknown_083DB694 -_080EA760: .4byte 0x0000ffff - thumb_func_end sub_80EA704 - - thumb_func_start sub_80EA764 -sub_80EA764: @ 80EA764 - push {r4-r7,lr} - sub sp, 0x14 - ldr r0, _080EA7EC - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0x14 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r5, _080EA7F0 - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xC - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r7, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1E - movs r2, 0xC - movs r3, 0x1F - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r7, r2 - str r1, [sp, 0x4] - movs r1, 0x1E - movs r2, 0xC - adds r3, r5, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x2 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x6 - strh r0, [r1] - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA7EC: .4byte gUnknown_083DB694 -_080EA7F0: .4byte 0x0000ffff - thumb_func_end sub_80EA764 - - thumb_func_start sub_80EA7F4 -sub_80EA7F4: @ 80EA7F4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r0, _080EA8B4 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0x14 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r5, 0x1 - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x14 - movs r2, 0xA - movs r3, 0x19 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - ldr r3, _080EA8B8 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r2, r7 - mov r8, r2 - str r2, [sp, 0x4] - movs r1, 0x19 - movs r2, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r7, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xA - movs r3, 0x4 - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - mov r2, r8 - str r2, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x3 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2 - strh r0, [r1] - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA8B4: .4byte gUnknown_083DB694 -_080EA8B8: .4byte 0x0000ffff - thumb_func_end sub_80EA7F4 - - thumb_func_start sub_80EA8BC -sub_80EA8BC: @ 80EA8BC - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _080EA944 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0xC8 - movs r5, 0x14 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x3 - movs r2, 0xA - movs r3, 0x4 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r6, 0 - adds r0, 0xD8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x2 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r1, r6, 0 - adds r1, 0xC2 - movs r0, 0x2 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1 - strh r0, [r1] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA944: .4byte gUnknown_083DB694 - thumb_func_end sub_80EA8BC - - thumb_func_start sub_80EA948 -sub_80EA948: @ 80EA948 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EAA3C - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0x14 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r5, _080EAA40 - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x2 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x80 - adds r1, r7 - mov r9, r1 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x3 - movs r2, 0xA - movs r3, 0x5 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r1, r7 - mov r8, r1 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1A - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - mov r1, r9 - str r1, [sp, 0x4] - movs r1, 0x1A - movs r2, 0xA - adds r3, r5, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x19 - movs r2, 0xA - movs r3, 0x1A - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - mov r1, r8 - str r1, [sp, 0x4] - movs r1, 0x1D - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x4 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EAA3C: .4byte gUnknown_083DB694 -_080EAA40: .4byte 0x0000ffff - thumb_func_end sub_80EA948 - - thumb_func_start sub_80EAA44 -sub_80EAA44: @ 80EAA44 - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _080EAACC - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0xC8 - movs r5, 0x14 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0x18 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r6, 0 - adds r0, 0xD8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r1, _080EAAD0 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x17 - movs r2, 0xA - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0x1D - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r1, r6, 0 - adds r1, 0xC2 - movs r0, 0x2 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1 - strh r0, [r1] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EAACC: .4byte gUnknown_083DB694 -_080EAAD0: .4byte 0x0000ffff - thumb_func_end sub_80EAA44 - - thumb_func_start sub_80EAAD4 -sub_80EAAD4: @ 80EAAD4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EABCC - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r1, 0xF - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r5, 0x1 - str r5, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r1, r7 - mov r8, r1 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - movs r1, 0x14 - mov r9, r1 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - ldr r6, _080EABD0 - str r6, [sp, 0x10] - movs r1, 0 - movs r2, 0xF - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r5, [sp] - mov r1, r8 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0x5 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r1, 0xA - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r5, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x68 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0x14 - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r6, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x14 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x4 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x5 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EABCC: .4byte gUnknown_083DB694 -_080EABD0: .4byte 0x0000ffff - thumb_func_end sub_80EAAD4 - - thumb_func_start sub_80EABD4 -sub_80EABD4: @ 80EABD4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r5, [sp, 0x1C] - ldr r6, [sp, 0x20] - ldr r4, [sp, 0x24] - mov r9, r4 - ldr r4, [sp, 0x28] - ldr r7, [sp, 0x2C] - mov r8, r7 - strh r1, [r0] - strh r3, [r0, 0x2] - strh r2, [r0, 0x4] - strh r5, [r0, 0x6] - strh r6, [r0, 0x8] - strh r4, [r0, 0xA] - mov r1, r9 - strh r1, [r0, 0xC] - mov r4, r8 - strh r4, [r0, 0xE] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EABD4 - - thumb_func_start sub_80EAC0C -sub_80EAC0C: @ 80EAC0C - ldrh r1, [r0, 0x8] - ldrh r2, [r0] - adds r1, r2 - strh r1, [r0] - ldrh r1, [r0, 0xA] - ldrh r2, [r0, 0x2] - adds r1, r2 - strh r1, [r0, 0x2] - ldrh r1, [r0, 0xC] - ldrh r2, [r0, 0x4] - adds r1, r2 - strh r1, [r0, 0x4] - ldrh r1, [r0, 0xE] - ldrh r2, [r0, 0x6] - adds r1, r2 - strh r1, [r0, 0x6] - bx lr - thumb_func_end sub_80EAC0C - - thumb_func_start sub_80EAC30 -sub_80EAC30: @ 80EAC30 - push {r4,r5,lr} - ldr r4, [sp, 0xC] - ldr r5, [sp, 0x10] - strh r1, [r0] - strh r2, [r0, 0x2] - strh r3, [r0, 0x4] - strh r4, [r0, 0x6] - str r5, [r0, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80EAC30 - - thumb_func_start sub_80EAC48 -sub_80EAC48: @ 80EAC48 - ldrh r1, [r0, 0x4] - ldrh r2, [r0] - adds r1, r2 - strh r1, [r0] - ldrh r1, [r0, 0x6] - ldrh r2, [r0, 0x2] - adds r1, r2 - strh r1, [r0, 0x2] - bx lr - thumb_func_end sub_80EAC48 - - thumb_func_start sub_80EAC5C -sub_80EAC5C: @ 80EAC5C - push {r4-r6,lr} - ldr r0, _080EACB4 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xBC - ldrb r0, [r0] - cmp r0, 0 - beq _080EACAC - movs r4, 0 - adds r0, r1, 0 - adds r0, 0xC2 - ldrh r2, [r0] - cmp r4, r2 - bcs _080EACA2 - adds r5, r1, 0 - adds r6, r0, 0 -_080EAC7C: - lsls r1, r4, 4 - adds r1, 0xC8 - adds r1, r5, r1 - lsls r2, r4, 1 - adds r2, r4 - lsls r2, 2 - movs r0, 0xA4 - lsls r0, 1 - adds r2, r0 - adds r2, r5, r2 - ldr r0, _080EACB8 - bl sub_80EACBC - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r2, [r6] - cmp r4, r2 - bcc _080EAC7C -_080EACA2: - ldr r0, _080EACB4 - ldr r0, [r0] - adds r0, 0xBC - movs r1, 0 - strb r1, [r0] -_080EACAC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EACB4: .4byte gUnknown_083DB694 -_080EACB8: .4byte 0x06006800 - thumb_func_end sub_80EAC5C - - thumb_func_start sub_80EACBC -sub_80EACBC: @ 80EACBC - push {r4-r7,lr} - sub sp, 0x10 - adds r7, r0, 0 - adds r3, r1, 0 - adds r4, r2, 0 - ldrh r2, [r3, 0x2] - ldrh r0, [r3] - subs r2, r0 - ldrh r0, [r3, 0x6] - ldrh r1, [r3, 0x4] - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - lsls r6, r2, 16 - cmp r6, 0 - ble _080EACFE - lsls r5, r0, 16 - cmp r5, 0 - ble _080EACFE - ldrh r1, [r3] - ldrh r2, [r3, 0x4] - ldr r3, [r4, 0x8] - ldrh r0, [r4] - str r0, [sp] - ldrh r0, [r4, 0x2] - str r0, [sp, 0x4] - lsrs r0, r6, 16 - str r0, [sp, 0x8] - lsrs r0, r5, 16 - str r0, [sp, 0xC] - adds r0, r7, 0 - bl sub_809D104 -_080EACFE: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EACBC - - thumb_func_start sub_80EAD08 -sub_80EAD08: @ 80EAD08 - push {r4,r5,lr} - ldr r0, _080EAD58 - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - ldr r1, _080EAD5C - adds r4, r0, r1 - adds r4, 0xB0 - ldr r0, _080EAD60 - ldr r1, [r0] - movs r0, 0xDD - lsls r0, 1 - adds r1, r0 - ldrh r0, [r1] - adds r2, r0, 0 - subs r2, 0x58 - movs r0, 0xFF - ands r2, r0 - movs r3, 0 - movs r5, 0xFF -_080EAD32: - ldrh r0, [r1] - adds r0, r3 - cmp r0, 0x80 - bne _080EAD42 - negs r0, r3 - adds r2, r0, 0 - subs r2, 0x58 - ands r2, r5 -_080EAD42: - strh r2, [r4] - adds r4, 0x2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3F - bls _080EAD32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EAD58: .4byte gUnknown_03004DC0 -_080EAD5C: .4byte gUnknown_03004DE0 -_080EAD60: .4byte gUnknown_083DB694 - thumb_func_end sub_80EAD08 - - thumb_func_start sub_80EAD64 -sub_80EAD64: @ 80EAD64 - push {lr} - lsls r1, 24 - ldr r2, _080EAD78 - lsrs r1, 22 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r1} - bx r1 - .align 2, 0 -_080EAD78: .4byte gEasyChatGroupNames - thumb_func_end sub_80EAD64 - - thumb_func_start sub_80EAD7C -sub_80EAD7C: @ 80EAD7C - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x14 - beq _080EADA2 - cmp r0, 0x14 - bgt _080EAD9C - cmp r0, 0x11 - blt _080EADBA - ldr r0, _080EAD98 - bl FlagGet - b _080EADB4 - .align 2, 0 -_080EAD98: .4byte 0x00000804 -_080EAD9C: - cmp r1, 0x15 - beq _080EADB0 - b _080EADBA -_080EADA2: - ldr r0, _080EADAC - bl FlagGet - b _080EADB4 - .align 2, 0 -_080EADAC: .4byte 0x00000806 -_080EADB0: - bl sub_80EB9C8 -_080EADB4: - lsls r0, 24 - lsrs r0, 24 - b _080EADBC -_080EADBA: - movs r0, 0x1 -_080EADBC: - pop {r1} - bx r1 - thumb_func_end sub_80EAD7C - - thumb_func_start sub_80EADC0 -sub_80EADC0: @ 80EADC0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 16 - lsrs r3, r1, 16 - cmp r2, 0x15 - bhi _080EAE82 - lsls r0, r2, 2 - ldr r1, _080EADD8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EADD8: .4byte _080EADDC - .align 2, 0 -_080EADDC: - .4byte _080EAE50 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE62 - .4byte _080EAE62 - .4byte _080EAE62 - .4byte _080EAE34 - .4byte _080EAE78 -_080EAE34: - ldr r0, _080EAE4C - ldr r0, [r0] - adds r0, r2 - adds r0, 0x67 - ldrb r0, [r0] - cmp r0, 0 - beq _080EAE70 - lsls r0, r3, 24 - lsrs r0, 24 - bl sub_80EB868 - b _080EAE7C - .align 2, 0 -_080EAE4C: .4byte gUnknown_083DB694 -_080EAE50: - adds r0, r3, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl sub_8090D90 - b _080EAE7C -_080EAE62: - ldr r0, _080EAE74 - ldr r0, [r0] - adds r0, r2 - adds r0, 0x67 - ldrb r0, [r0] - cmp r0, 0 - bne _080EAE82 -_080EAE70: - movs r0, 0 - b _080EAE84 - .align 2, 0 -_080EAE74: .4byte gUnknown_083DB694 -_080EAE78: - bl sub_80EB9C8 -_080EAE7C: - lsls r0, 24 - lsrs r0, 24 - b _080EAE84 -_080EAE82: - movs r0, 0x1 -_080EAE84: - pop {r1} - bx r1 - thumb_func_end sub_80EADC0 - - thumb_func_start sub_80EAE88 -sub_80EAE88: @ 80EAE88 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080EAEA6 - cmp r4, 0x14 - beq _080EAEB2 - adds r0, r4, 0 - bl sub_80EAD7C - lsls r0, 24 - cmp r0, 0 - bne _080EAEBC - movs r0, 0 - b _080EAEC2 -_080EAEA6: - movs r0, 0 - bl sub_8090F68 - lsls r0, 16 - lsrs r0, 16 - b _080EAEC2 -_080EAEB2: - bl sub_80EB8C0 - lsls r0, 24 - lsrs r0, 24 - b _080EAEC2 -_080EAEBC: - ldr r0, _080EAEC8 - adds r0, r4, r0 - ldrb r0, [r0] -_080EAEC2: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EAEC8: .4byte gEasyChatGroupSizes - thumb_func_end sub_80EAE88 - - thumb_func_start sub_80EAECC -sub_80EAECC: @ 80EAECC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - movs r0, 0 - mov r8, r0 - ldr r1, _080EAF10 - ldr r0, [r1] - ldr r3, _080EAF14 - adds r3, r0, r3 - str r3, [sp, 0x4] -_080EAEE6: - ldr r1, _080EAF18 - mov r7, r8 - lsls r2, r7, 1 - adds r0, r2, r1 - ldrh r4, [r0] - mov r3, r8 - adds r3, 0x1 - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - str r0, [sp] - ldr r0, [sp, 0x4] - adds r1, r0, r2 - movs r0, 0 - strh r0, [r1] - mov r9, r0 - adds r6, r4, 0 - mov r10, r2 - str r3, [sp, 0x8] - b _080EB00C - .align 2, 0 -_080EAF10: .4byte gUnknown_083DB694 -_080EAF14: .4byte 0x00004142 -_080EAF18: .4byte gEasyChatWordsByLetter -_080EAF1C: - ldr r2, _080EAFB0 - adds r0, r6, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - adds r4, r1, 0 - ldr r0, _080EAFB4 - cmp r1, r0 - bls _080EAFCC - movs r0, 0xFF - ands r1, r0 - movs r7, 0 - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r3, _080EAFB8 - cmp r5, r3 - beq _080EB00C - mov r1, r8 - lsls r0, r1, 8 - subs r0, r1 - lsls r3, r0, 1 -_080EAF4E: - adds r1, r6, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 1 - ldr r0, _080EAFB0 - adds r1, r0 - ldrh r4, [r1] - lsrs r0, r4, 9 - ldr r1, _080EAFBC - adds r2, r1, 0 - adds r1, r4, 0 - ands r1, r2 - str r3, [sp, 0xC] - bl sub_80EADC0 - lsls r0, 24 - ldr r3, [sp, 0xC] - cmp r0, 0 - beq _080EAFA2 - cmp r7, 0 - bne _080EAFA2 - ldr r7, _080EAFC0 - ldr r2, [r7] - mov r1, r9 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r1, 1 - adds r1, r3 - ldr r7, _080EAFC4 - adds r0, r2, r7 - adds r0, r1 - strh r4, [r0] - ldr r0, _080EAFC8 - adds r2, r0 - add r2, r10 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - movs r7, 0x1 -_080EAFA2: - subs r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _080EAFB8 - cmp r5, r1 - bne _080EAF4E - b _080EB00C - .align 2, 0 -_080EAFB0: .4byte gEasyChatWordsAlphabetized -_080EAFB4: .4byte 0x0000feff -_080EAFB8: .4byte 0x0000ffff -_080EAFBC: .4byte 0x000001ff -_080EAFC0: .4byte gUnknown_083DB694 -_080EAFC4: .4byte 0x00000b78 -_080EAFC8: .4byte 0x00004142 -_080EAFCC: - lsrs r0, r4, 9 - ldr r3, _080EB030 - adds r2, r3, 0 - adds r1, r4, 0 - ands r1, r2 - bl sub_80EADC0 - lsls r0, 24 - cmp r0, 0 - beq _080EB00C - ldr r7, _080EB034 - ldr r2, [r7] - mov r1, r9 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - mov r3, r8 - lsls r0, r3, 8 - subs r0, r3 - adds r0, r1 - lsls r0, 1 - ldr r7, _080EB038 - adds r1, r2, r7 - adds r1, r0 - strh r4, [r1] - ldr r0, _080EB03C - adds r2, r0 - add r2, r10 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] -_080EB00C: - ldr r1, [sp] - cmp r6, r1 - bcc _080EAF1C - ldr r3, [sp, 0x8] - lsls r0, r3, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0x1A - bhi _080EB020 - b _080EAEE6 -_080EB020: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EB030: .4byte 0x000001ff -_080EB034: .4byte gUnknown_083DB694 -_080EB038: .4byte 0x00000b78 -_080EB03C: .4byte 0x00004142 - thumb_func_end sub_80EAECC - - thumb_func_start sub_80EB040 -sub_80EB040: @ 80EB040 - push {r4-r6,lr} - movs r3, 0 -_080EB044: - adds r6, r3, 0x1 - cmp r3, 0 - beq _080EB094 - cmp r3, 0x15 - beq _080EB094 - cmp r3, 0x12 - beq _080EB094 - cmp r3, 0x13 - beq _080EB094 - ldr r0, _080EB0A4 - lsls r1, r3, 2 - adds r1, r0 - ldr r2, [r1] - movs r4, 0 - ldrb r0, [r2] - cmp r0, 0xFF - beq _080EB094 - ldr r0, _080EB0A8 - ldr r0, [r0] - ldr r1, _080EB0AC - adds r5, r0, r1 -_080EB06E: - lsls r0, r4, 2 - lsls r1, r3, 10 - adds r0, r1 - adds r0, r5, r0 - str r2, [r0] - ldrb r0, [r2] - adds r1, r4, 0x1 - cmp r0, 0xFF - beq _080EB088 -_080EB080: - adds r2, 0x1 - ldrb r0, [r2] - cmp r0, 0xFF - bne _080EB080 -_080EB088: - adds r2, 0x1 - lsls r0, r1, 16 - lsrs r4, r0, 16 - ldrb r0, [r2] - cmp r0, 0xFF - bne _080EB06E -_080EB094: - lsls r0, r6, 16 - lsrs r3, r0, 16 - cmp r3, 0x15 - bls _080EB044 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EB0A4: .4byte gEasyChatGroupWords -_080EB0A8: .4byte gUnknown_083DB694 -_080EB0AC: .4byte 0x000041a4 - thumb_func_end sub_80EB040 - - thumb_func_start sub_80EB0B0 -sub_80EB0B0: @ 80EB0B0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r3, _080EB184 - ldr r4, [r3] - adds r0, r4, 0 - adds r0, 0x26 - ldrb r5, [r0] - cmp r5, 0 - bne _080EB19C - movs r0, 0xDC - lsls r0, 1 - adds r2, r4, r0 - ldrb r6, [r2] - lsls r1, r6, 1 - ldr r7, _080EB188 - adds r0, r4, r7 - adds r0, r1 - strh r5, [r0] - movs r7, 0 - movs r0, 0 - mov r9, r0 - ldr r1, _080EB18C - lsls r0, r6, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [sp] - movs r1, 0 - mov r8, r1 - ldr r1, _080EB190 - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - cmp r8, r0 - bcc _080EB0FE - b _080EB1FA -_080EB0FE: - movs r2, 0xDC - lsls r2, 1 - adds r2, r4, r2 - str r2, [sp, 0x4] - lsls r5, r6, 24 - mov r10, r5 -_080EB10A: - mov r1, r8 - lsls r0, r1, 1 - ldr r2, [sp] - adds r5, r0, r2 - ldrh r1, [r5] - mov r2, r10 - lsrs r0, r2, 24 - bl sub_80EADC0 - lsls r0, 24 - cmp r0, 0 - beq _080EB16A - ldr r0, _080EB184 - ldr r3, [r0] - lsls r1, r7, 1 - mov r2, r9 - lsls r0, r2, 2 - adds r1, r0 - ldr r0, _080EB194 - adds r4, r3, r0 - adds r4, r1 - movs r0, 0x7F - ands r0, r6 - lsls r0, 9 - ldrh r1, [r5] - ldr r5, _080EB198 - adds r2, r5, 0 - ands r1, r2 - orrs r0, r1 - strh r0, [r4] - lsls r0, r6, 1 - ldr r1, _080EB188 - adds r3, r1 - adds r3, r0 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x1 - bls _080EB16A - movs r7, 0 - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 -_080EB16A: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r1, _080EB190 - ldr r2, [sp, 0x4] - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - cmp r8, r0 - bcc _080EB10A - b _080EB1FA - .align 2, 0 -_080EB184: .4byte gUnknown_083DB694 -_080EB188: .4byte 0x00004178 -_080EB18C: .4byte gEasyChatGroupOrders -_080EB190: .4byte gEasyChatGroupSizes -_080EB194: .4byte 0x00009a2a -_080EB198: .4byte 0x000001ff -_080EB19C: - movs r5, 0xDC - lsls r5, 1 - adds r0, r4, r5 - ldrb r2, [r0] - movs r3, 0 - movs r6, 0 - movs r5, 0 - lsls r1, r2, 1 - ldr r7, _080EB20C - adds r0, r4, r7 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r5, r0 - bcs _080EB1FA - ldr r7, _080EB210 - adds r7, r4 - mov r8, r7 - lsls r0, r2, 8 - subs r0, r2 - lsls r7, r0, 1 - ldr r0, _080EB214 - adds r2, r4, r0 - adds r4, r1, 0 -_080EB1CA: - lsls r1, r3, 1 - lsls r0, r6, 2 - adds r1, r0 - add r1, r8 - lsls r0, r5, 1 - adds r0, r7 - adds r0, r2, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x1 - bls _080EB1EE - movs r3, 0 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080EB1EE: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r1, [r4] - cmp r5, r1 - bcc _080EB1CA -_080EB1FA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EB20C: .4byte 0x00004142 -_080EB210: .4byte 0x00009a2a -_080EB214: .4byte 0x00000b78 - thumb_func_end sub_80EB0B0 - - thumb_func_start sub_80EB218 -sub_80EB218: @ 80EB218 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - lsls r6, r1, 16 - lsrs r4, r6, 16 - adds r7, r4, 0 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - adds r0, r4, 0 - bl sub_80EB37C - lsls r0, 24 - cmp r0, 0 - beq _080EB240 - ldr r1, _080EB23C - b _080EB2A2 - .align 2, 0 -_080EB23C: .4byte gOtherText_ThreeQuestions -_080EB240: - ldr r0, _080EB250 - cmp r4, r0 - bne _080EB254 - adds r1, r5, 0 - movs r0, 0xFF - strb r0, [r1] - b _080EB2AA - .align 2, 0 -_080EB250: .4byte 0x0000ffff -_080EB254: - lsrs r2, r6, 25 - ldr r1, _080EB268 - ands r1, r7 - cmp r2, 0x13 - bgt _080EB26C - cmp r2, 0x12 - bge _080EB280 - cmp r2, 0 - beq _080EB270 - b _080EB290 - .align 2, 0 -_080EB268: .4byte 0x000001ff -_080EB26C: - cmp r2, 0x15 - bne _080EB290 -_080EB270: - movs r0, 0xB - muls r1, r0 - ldr r0, _080EB27C - adds r1, r0 - b _080EB2A2 - .align 2, 0 -_080EB27C: .4byte gSpeciesNames -_080EB280: - movs r0, 0xD - muls r1, r0 - ldr r0, _080EB28C - adds r1, r0 - b _080EB2A2 - .align 2, 0 -_080EB28C: .4byte gMoveNames -_080EB290: - ldr r0, _080EB2CC - ldr r0, [r0] - lsls r1, 2 - lsls r2, 10 - adds r1, r2 - ldr r2, _080EB2D0 - adds r0, r2 - adds r0, r1 - ldr r1, [r0] -_080EB2A2: - adds r0, r5, 0 - bl StringCopy - adds r1, r0, 0 -_080EB2AA: - movs r0, 0xFC - strb r0, [r1] - movs r0, 0x13 - strb r0, [r1, 0x1] - mov r2, r8 - lsls r0, r2, 3 - strb r0, [r1, 0x2] - adds r1, 0x3 - movs r0, 0xFF - strb r0, [r1] - adds r0, r1, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080EB2CC: .4byte gUnknown_083DB694 -_080EB2D0: .4byte 0x000041a4 - thumb_func_end sub_80EB218 - - thumb_func_start sub_80EB2D4 -sub_80EB2D4: @ 80EB2D4 - push {r4-r6,lr} - lsls r5, r0, 16 - lsrs r4, r5, 16 - adds r6, r4, 0 - adds r0, r4, 0 - bl sub_80EB37C - lsls r0, 24 - cmp r0, 0 - beq _080EB2F8 - ldr r0, _080EB2F4 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - b _080EB374 - .align 2, 0 -_080EB2F4: .4byte gOtherText_ThreeQuestions -_080EB2F8: - ldr r0, _080EB304 - cmp r4, r0 - bne _080EB308 - movs r0, 0 - b _080EB374 - .align 2, 0 -_080EB304: .4byte 0x0000ffff -_080EB308: - lsrs r2, r5, 25 - ldr r1, _080EB31C - ands r1, r6 - cmp r2, 0x13 - bgt _080EB320 - cmp r2, 0x12 - bge _080EB334 - cmp r2, 0 - beq _080EB324 - b _080EB344 - .align 2, 0 -_080EB31C: .4byte 0x000001ff -_080EB320: - cmp r2, 0x15 - bne _080EB344 -_080EB324: - movs r0, 0xB - muls r1, r0 - ldr r0, _080EB330 - adds r1, r0 - b _080EB356 - .align 2, 0 -_080EB330: .4byte gSpeciesNames -_080EB334: - movs r0, 0xD - muls r1, r0 - ldr r0, _080EB340 - adds r1, r0 - b _080EB356 - .align 2, 0 -_080EB340: .4byte gMoveNames -_080EB344: - ldr r0, _080EB35C - ldr r0, [r0] - lsls r1, 2 - lsls r2, 10 - adds r1, r2 - ldr r2, _080EB360 - adds r0, r2 - adds r0, r1 - ldr r1, [r0] -_080EB356: - movs r2, 0 - b _080EB36C - .align 2, 0 -_080EB35C: .4byte gUnknown_083DB694 -_080EB360: .4byte 0x000041a4 -_080EB364: - adds r1, 0x1 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 -_080EB36C: - ldrb r0, [r1] - cmp r0, 0xFF - bne _080EB364 - adds r0, r2, 0 -_080EB374: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80EB2D4 - - thumb_func_start sub_80EB37C -sub_80EB37C: @ 80EB37C - push {r4,r5,lr} - lsls r1, r0, 16 - lsrs r3, r1, 16 - ldr r0, _080EB3A0 - cmp r3, r0 - beq _080EB3EA - lsrs r2, r1, 25 - ldr r5, _080EB3A4 - ands r5, r3 - cmp r2, 0x15 - bhi _080EB3F4 - cmp r2, 0x13 - bgt _080EB3A8 - cmp r2, 0x12 - bge _080EB3AC - cmp r2, 0 - beq _080EB3AC - b _080EB3E0 - .align 2, 0 -_080EB3A0: .4byte 0x0000ffff -_080EB3A4: .4byte 0x000001ff -_080EB3A8: - cmp r2, 0x15 - bne _080EB3E0 -_080EB3AC: - ldr r0, _080EB3D8 - lsls r1, r2, 2 - adds r1, r0 - ldr r4, [r1] - movs r3, 0 - ldr r0, _080EB3DC - adds r0, r2, r0 - ldrb r0, [r0] - cmp r3, r0 - bcs _080EB3F4 - adds r1, r0, 0 -_080EB3C2: - lsls r0, r3, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r5, r0 - beq _080EB3EA - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bcc _080EB3C2 - b _080EB3F4 - .align 2, 0 -_080EB3D8: .4byte gEasyChatGroupWords -_080EB3DC: .4byte gEasyChatGroupSizes -_080EB3E0: - ldr r0, _080EB3F0 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r5, r0 - bcs _080EB3F4 -_080EB3EA: - movs r0, 0 - b _080EB3F6 - .align 2, 0 -_080EB3F0: .4byte gEasyChatGroupSizes -_080EB3F4: - movs r0, 0x1 -_080EB3F6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80EB37C - - thumb_func_start sub_80EB3FC -sub_80EB3FC: @ 80EB3FC - push {r4-r7,lr} - adds r5, r0, 0 - lsls r6, r1, 16 - lsrs r4, r6, 16 - adds r7, r4, 0 - adds r0, r4, 0 - bl sub_80EB37C - lsls r0, 24 - cmp r0, 0 - beq _080EB420 - ldr r1, _080EB41C - adds r0, r5, 0 - bl StringCopy - b _080EB4A6 - .align 2, 0 -_080EB41C: .4byte gOtherText_ThreeQuestions -_080EB420: - ldr r0, _080EB43C - cmp r4, r0 - beq _080EB4A0 - lsrs r1, r6, 25 - ldr r2, _080EB440 - ands r2, r7 - cmp r1, 0x13 - bgt _080EB444 - cmp r1, 0x12 - bge _080EB458 - cmp r1, 0 - beq _080EB448 - b _080EB468 - .align 2, 0 -_080EB43C: .4byte 0x0000ffff -_080EB440: .4byte 0x000001ff -_080EB444: - cmp r1, 0x15 - bne _080EB468 -_080EB448: - movs r0, 0xB - adds r1, r2, 0 - muls r1, r0 - ldr r0, _080EB454 - adds r1, r0 - b _080EB498 - .align 2, 0 -_080EB454: .4byte gSpeciesNames -_080EB458: - movs r0, 0xD - adds r1, r2, 0 - muls r1, r0 - ldr r0, _080EB464 - adds r1, r0 - b _080EB498 - .align 2, 0 -_080EB464: .4byte gMoveNames -_080EB468: - ldr r0, _080EB4AC - lsls r1, 2 - adds r1, r0 - ldr r1, [r1] - subs r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _080EB4B0 - cmp r2, r0 - beq _080EB498 - adds r3, r0, 0 -_080EB47E: - ldrb r0, [r1] - adds r1, 0x1 - subs r2, 0x1 - cmp r0, 0xFF - beq _080EB490 -_080EB488: - ldrb r0, [r1] - adds r1, 0x1 - cmp r0, 0xFF - bne _080EB488 -_080EB490: - lsls r0, r2, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bne _080EB47E -_080EB498: - adds r0, r5, 0 - bl StringCopy - adds r5, r0, 0 -_080EB4A0: - movs r0, 0xFF - strb r0, [r5] - adds r0, r5, 0 -_080EB4A6: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080EB4AC: .4byte gEasyChatGroupWords -_080EB4B0: .4byte 0x0000ffff - thumb_func_end sub_80EB3FC - - thumb_func_start ConvertEasyChatWordsToString -ConvertEasyChatWordsToString: @ 80EB4B4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 16 - lsls r3, 16 - lsrs r3, 16 - mov r9, r3 - ldr r0, _080EB53C - adds r2, r0 - lsrs r7, r2, 16 - movs r0, 0 - cmp r0, r9 - bcs _080EB524 -_080EB4D6: - movs r6, 0 - adds r0, 0x1 - mov r8, r0 - cmp r6, r7 - bcs _080EB508 - ldr r2, _080EB540 -_080EB4E2: - ldrh r1, [r5] - adds r0, r4, 0 - str r2, [sp] - bl sub_80EB3FC - adds r4, r0, 0 - ldrh r0, [r5] - ldr r2, [sp] - cmp r0, r2 - beq _080EB4FC - movs r0, 0 - strb r0, [r4] - adds r4, 0x1 -_080EB4FC: - adds r5, 0x2 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r7 - bcc _080EB4E2 -_080EB508: - ldrh r1, [r5] - adds r5, 0x2 - adds r0, r4, 0 - bl sub_80EB3FC - adds r4, r0, 0 - movs r0, 0xFE - strb r0, [r4] - adds r4, 0x1 - mov r1, r8 - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, r9 - bcc _080EB4D6 -_080EB524: - subs r4, 0x1 - movs r0, 0xFF - strb r0, [r4] - adds r0, r4, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080EB53C: .4byte 0xffff0000 -_080EB540: .4byte 0x0000ffff - thumb_func_end ConvertEasyChatWordsToString - - thumb_func_start sub_80EB544 -sub_80EB544: @ 80EB544 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 16 - lsls r3, 16 - lsrs r3, 16 - mov r10, r3 - ldr r0, _080EB5B0 - adds r2, r0 - lsrs r2, 16 - mov r8, r2 - movs r7, 0 - cmp r7, r10 - bcs _080EB5C8 -_080EB56A: - movs r6, 0 - adds r1, r7, 0x1 - mov r9, r1 - cmp r6, r8 - bcs _080EB59C - ldr r2, _080EB5B4 -_080EB576: - ldrh r1, [r5] - adds r0, r4, 0 - str r2, [sp] - bl sub_80EB3FC - adds r4, r0, 0 - ldrh r0, [r5] - ldr r2, [sp] - cmp r0, r2 - beq _080EB590 - movs r0, 0 - strb r0, [r4] - adds r4, 0x1 -_080EB590: - adds r5, 0x2 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r8 - bcc _080EB576 -_080EB59C: - ldrh r1, [r5] - adds r5, 0x2 - adds r0, r4, 0 - bl sub_80EB3FC - adds r4, r0, 0 - cmp r7, 0 - bne _080EB5B8 - movs r0, 0xFE - b _080EB5BA - .align 2, 0 -_080EB5B0: .4byte 0xffff0000 -_080EB5B4: .4byte 0x0000ffff -_080EB5B8: - movs r0, 0xFA -_080EB5BA: - strb r0, [r4] - adds r4, 0x1 - mov r1, r9 - lsls r0, r1, 16 - lsrs r7, r0, 16 - cmp r7, r10 - bcc _080EB56A -_080EB5C8: - subs r4, 0x1 - movs r0, 0xFF - strb r0, [r4] - adds r0, r4, 0 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80EB544 - - thumb_func_start unref_sub_80EB5E0 -unref_sub_80EB5E0: @ 80EB5E0 - push {lr} - lsls r1, r0, 16 - lsrs r3, r1, 16 - ldr r0, _080EB5F0 - cmp r3, r0 - bne _080EB5F4 - movs r0, 0 - b _080EB67C - .align 2, 0 -_080EB5F0: .4byte 0x0000ffff -_080EB5F4: - lsrs r1, 25 - ldr r2, _080EB608 - ands r2, r3 - cmp r1, 0x13 - bgt _080EB60C - cmp r1, 0x12 - bge _080EB620 - cmp r1, 0 - beq _080EB610 - b _080EB630 - .align 2, 0 -_080EB608: .4byte 0x000001ff -_080EB60C: - cmp r1, 0x15 - bne _080EB630 -_080EB610: - movs r0, 0xB - adds r1, r2, 0 - muls r1, r0 - ldr r0, _080EB61C - adds r1, r0 - b _080EB660 - .align 2, 0 -_080EB61C: .4byte gSpeciesNames -_080EB620: - movs r0, 0xD - adds r1, r2, 0 - muls r1, r0 - ldr r0, _080EB62C - adds r1, r0 - b _080EB660 - .align 2, 0 -_080EB62C: .4byte gMoveNames -_080EB630: - ldr r0, _080EB664 - lsls r1, 2 - adds r1, r0 - ldr r1, [r1] - subs r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _080EB668 - cmp r2, r0 - beq _080EB660 - adds r3, r0, 0 -_080EB646: - ldrb r0, [r1] - adds r1, 0x1 - subs r2, 0x1 - cmp r0, 0xFF - beq _080EB658 -_080EB650: - ldrb r0, [r1] - adds r1, 0x1 - cmp r0, 0xFF - bne _080EB650 -_080EB658: - lsls r0, r2, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bne _080EB646 -_080EB660: - movs r2, 0 - b _080EB674 - .align 2, 0 -_080EB664: .4byte gEasyChatGroupWords -_080EB668: .4byte 0x0000ffff -_080EB66C: - adds r1, 0x1 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 -_080EB674: - ldrb r0, [r1] - cmp r0, 0xFF - bne _080EB66C - adds r0, r2, 0 -_080EB67C: - pop {r1} - bx r1 - thumb_func_end unref_sub_80EB5E0 - - thumb_func_start sub_80EB680 -sub_80EB680: @ 80EB680 - movs r0, 0 - bx lr - thumb_func_end sub_80EB680 - - thumb_func_start unref_sub_80EB684 -unref_sub_80EB684: @ 80EB684 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - lsls r1, 16 - lsrs r1, 16 - cmp r0, 0x7 - beq _080EB6B4 - cmp r0, 0x7 - bgt _080EB69E - cmp r0, 0x5 - beq _080EB6A4 - b _080EB6EE -_080EB69E: - cmp r2, 0x8 - beq _080EB6C4 - b _080EB6EE -_080EB6A4: - movs r2, 0x6 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080EB6B0 - b _080EB6CE - .align 2, 0 -_080EB6B0: .4byte gSaveBlock1 + 0x273C -_080EB6B4: - movs r2, 0x2 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080EB6C0 - b _080EB6CE - .align 2, 0 -_080EB6C0: .4byte gSaveBlock1 + 0x2754 -_080EB6C4: - movs r2, 0x1 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080EB6F4 -_080EB6CE: - adds r1, r0, r1 - subs r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _080EB6F8 - cmp r2, r0 - beq _080EB6EE - adds r4, r0, 0 - adds r3, r0, 0 -_080EB6E0: - strh r4, [r1] - adds r1, 0x2 - subs r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bne _080EB6E0 -_080EB6EE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EB6F4: .4byte gSaveBlock1 + 0x273A -_080EB6F8: .4byte 0x0000ffff - thumb_func_end unref_sub_80EB684 - - thumb_func_start sub_80EB6FC -sub_80EB6FC: @ 80EB6FC - push {lr} - adds r2, r0, 0 - lsls r1, 16 - ldr r0, _080EB724 - adds r1, r0 - lsrs r0, r1, 16 - ldr r1, _080EB728 - cmp r0, r1 - beq _080EB71E - adds r3, r1, 0 -_080EB710: - strh r3, [r2] - adds r2, 0x2 - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r1 - bne _080EB710 -_080EB71E: - pop {r0} - bx r0 - .align 2, 0 -_080EB724: .4byte 0xffff0000 -_080EB728: .4byte 0x0000ffff - thumb_func_end sub_80EB6FC - - thumb_func_start sub_80EB72C -sub_80EB72C: @ 80EB72C - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, _080EB778 - adds r1, r4, r1 - ldrb r1, [r1] - bl __modsi3 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r4, 0 - beq _080EB758 - cmp r4, 0x15 - beq _080EB758 - cmp r4, 0x12 - beq _080EB758 - cmp r4, 0x13 - bne _080EB766 -_080EB758: - ldr r1, _080EB77C - lsls r0, r4, 2 - adds r0, r1 - ldr r1, [r0] - lsls r0, r2, 1 - adds r0, r1 - ldrh r2, [r0] -_080EB766: - movs r0, 0x7F - ands r0, r4 - lsls r0, 9 - ldr r1, _080EB780 - ands r2, r1 - orrs r0, r2 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EB778: .4byte gEasyChatGroupSizes -_080EB77C: .4byte gEasyChatGroupWords -_080EB780: .4byte 0x000001ff - thumb_func_end sub_80EB72C - - thumb_func_start sub_80EB784 -sub_80EB784: @ 80EB784 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80EAD7C - lsls r0, 24 - cmp r0, 0 - bne _080EB7A0 - ldr r0, _080EB79C - b _080EB7BE - .align 2, 0 -_080EB79C: .4byte 0x0000ffff -_080EB7A0: - cmp r4, 0 - beq _080EB7AE - cmp r4, 0x14 - bne _080EB7B4 - bl sub_80EB960 - b _080EB7BA -_080EB7AE: - bl sub_80EB9D8 - b _080EB7BA -_080EB7B4: - adds r0, r4, 0 - bl sub_80EB72C -_080EB7BA: - lsls r0, 16 - lsrs r0, 16 -_080EB7BE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EB784 - - thumb_func_start sub_80EB7C4 -sub_80EB7C4: @ 80EB7C4 - push {r4,r5,lr} - ldr r0, _080EB7D8 - ldrh r0, [r0] - cmp r0, 0x1 - beq _080EB7F0 - cmp r0, 0x1 - bgt _080EB7DC - cmp r0, 0 - beq _080EB7E6 - b _080EB82E - .align 2, 0 -_080EB7D8: .4byte gUnknown_0202E8CC -_080EB7DC: - cmp r0, 0x2 - beq _080EB810 - cmp r0, 0x3 - beq _080EB818 - b _080EB82E -_080EB7E6: - ldr r5, _080EB7EC - movs r2, 0x2 - b _080EB81C - .align 2, 0 -_080EB7EC: .4byte gSaveBlock1 + 0x2B1C -_080EB7F0: - ldr r5, _080EB80C - adds r0, r5, 0 - movs r1, 0x3 - movs r2, 0x2 - movs r3, 0x14 - bl sub_80EB680 - lsls r0, 24 - cmp r0, 0 - beq _080EB81A - movs r2, 0x2 - movs r3, 0x3 - b _080EB81E - .align 2, 0 -_080EB80C: .4byte gSaveBlock1 + 0x2B28 -_080EB810: - ldr r5, _080EB814 - b _080EB81A - .align 2, 0 -_080EB814: .4byte gSaveBlock1 + 0x2B34 -_080EB818: - ldr r5, _080EB834 -_080EB81A: - movs r2, 0x3 -_080EB81C: - movs r3, 0x2 -_080EB81E: - ldr r4, _080EB838 - adds r0, r4, 0 - adds r1, r5, 0 - bl ConvertEasyChatWordsToString - adds r0, r4, 0 - bl ShowFieldAutoScrollMessage -_080EB82E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EB834: .4byte gSaveBlock1 + 0x2B40 -_080EB838: .4byte gStringVar4 - thumb_func_end sub_80EB7C4 - - thumb_func_start sub_80EB83C -sub_80EB83C: @ 80EB83C - push {lr} - bl Random - movs r1, 0x1 - ands r1, r0 - movs r0, 0xC - cmp r1, 0 - beq _080EB84E - movs r0, 0xD -_080EB84E: - bl sub_80EB784 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _080EB864 - bl sub_80EB3FC - pop {r0} - bx r0 - .align 2, 0 -_080EB864: .4byte gStringVar2 - thumb_func_end sub_80EB83C - - thumb_func_start sub_80EB868 -sub_80EB868: @ 80EB868 - lsls r0, 24 - lsrs r2, r0, 27 - movs r1, 0xE0 - lsls r1, 19 - ands r1, r0 - lsrs r1, 24 - ldr r0, _080EB888 - ldr r3, _080EB88C - adds r0, r3 - adds r2, r0 - ldrb r0, [r2] - asrs r0, r1 - movs r1, 0x1 - ands r0, r1 - bx lr - .align 2, 0 -_080EB888: .4byte gSaveBlock1 -_080EB88C: .4byte 0x00002d8c - thumb_func_end sub_80EB868 - - thumb_func_start sub_80EB890 -sub_80EB890: @ 80EB890 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x20 - bhi _080EB8B2 - lsrs r2, r0, 27 - movs r1, 0x7 - ands r1, r3 - ldr r0, _080EB8B8 - ldr r3, _080EB8BC - adds r0, r3 - adds r2, r0 - movs r0, 0x1 - lsls r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] -_080EB8B2: - pop {r0} - bx r0 - .align 2, 0 -_080EB8B8: .4byte gSaveBlock1 -_080EB8BC: .4byte 0x00002d8c - thumb_func_end sub_80EB890 - - thumb_func_start sub_80EB8C0 -sub_80EB8C0: @ 80EB8C0 - push {r4,r5,lr} - movs r4, 0 - movs r5, 0 -_080EB8C6: - adds r0, r4, 0 - bl sub_80EB868 - lsls r0, 24 - cmp r0, 0 - beq _080EB8D8 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080EB8D8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x20 - bls _080EB8C6 - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80EB8C0 - - thumb_func_start sub_80EB8EC -sub_80EB8EC: @ 80EB8EC - push {r4-r6,lr} - bl sub_80EB8C0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x21 - bne _080EB918 - b _080EB952 -_080EB8FC: - adds r0, r5, 0 - bl sub_80EB890 - ldr r0, _080EB914 - ands r4, r0 - movs r1, 0xA0 - lsls r1, 6 - adds r0, r1, 0 - orrs r4, r0 - adds r0, r4, 0 - b _080EB954 - .align 2, 0 -_080EB914: .4byte 0x000001ff -_080EB918: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x21 - subs r1, r4 - bl __modsi3 - lsls r0, 16 - lsrs r6, r0, 16 - movs r4, 0 -_080EB92E: - lsls r0, r4, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_80EB868 - lsls r0, 24 - cmp r0, 0 - bne _080EB948 - cmp r6, 0 - beq _080EB8FC - subs r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080EB948: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x20 - bls _080EB92E -_080EB952: - ldr r0, _080EB95C -_080EB954: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080EB95C: .4byte 0x0000ffff - thumb_func_end sub_80EB8EC - - thumb_func_start sub_80EB960 -sub_80EB960: @ 80EB960 - push {r4,r5,lr} - bl sub_80EB8C0 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080EB984 - b _080EB9BA -_080EB970: - ldr r0, _080EB980 - ands r4, r0 - movs r1, 0xA0 - lsls r1, 6 - adds r0, r1, 0 - orrs r4, r0 - adds r0, r4, 0 - b _080EB9BC - .align 2, 0 -_080EB980: .4byte 0x000001ff -_080EB984: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl __umodsi3 - lsls r0, 16 - lsrs r5, r0, 16 - movs r4, 0 -_080EB998: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80EB868 - lsls r0, 24 - cmp r0, 0 - beq _080EB9B0 - cmp r5, 0 - beq _080EB970 - subs r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080EB9B0: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x20 - bls _080EB998 -_080EB9BA: - ldr r0, _080EB9C4 -_080EB9BC: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080EB9C4: .4byte 0x0000ffff - thumb_func_end sub_80EB960 - - thumb_func_start sub_80EB9C8 -sub_80EB9C8: @ 80EB9C8 - push {lr} - bl sub_806912C - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80EB9C8 - - thumb_func_start sub_80EB9D8 -sub_80EB9D8: @ 80EB9D8 - push {r4-r7,lr} - movs r0, 0 - bl sub_80EAE88 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _080EB9F8 - b _080EBA46 -_080EB9EA: - ldrh r1, [r5] - ldr r0, _080EB9F4 - ands r0, r1 - b _080EBA48 - .align 2, 0 -_080EB9F4: .4byte 0x000001ff -_080EB9F8: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080EBA50 - ldr r5, [r0] - movs r6, 0 - ldr r0, _080EBA54 - ldrb r0, [r0] - cmp r6, r0 - bcs _080EBA46 - adds r7, r0, 0 -_080EBA1A: - ldrh r0, [r5] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - beq _080EBA3A - cmp r4, 0 - beq _080EB9EA - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080EBA3A: - adds r5, 0x2 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r7 - bcc _080EBA1A -_080EBA46: - ldr r0, _080EBA58 -_080EBA48: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080EBA50: .4byte gEasyChatGroupWords -_080EBA54: .4byte gEasyChatGroupSizes -_080EBA58: .4byte 0x0000ffff - thumb_func_end sub_80EB9D8 - - thumb_func_start sub_80EBA5C -sub_80EBA5C: @ 80EBA5C - push {lr} - ldr r0, _080EBA74 - ldr r2, _080EBA78 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xE - bhi _080EBABC - lsls r0, 2 - ldr r1, _080EBA7C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EBA74: .4byte gMain -_080EBA78: .4byte 0x0000043c -_080EBA7C: .4byte _080EBA80 - .align 2, 0 -_080EBA80: - .4byte _080EBAC0 - .4byte _080EBB08 - .4byte _080EBB10 - .4byte _080EBB16 - .4byte _080EBB1C - .4byte _080EBB22 - .4byte _080EBB28 - .4byte _080EBB2E - .4byte _080EBB3E - .4byte _080EBB4C - .4byte _080EBB5C - .4byte _080EBB6C - .4byte _080EBB7C - .4byte _080EBB90 - .4byte _080EBBA0 -_080EBABC: - movs r0, 0 - strb r0, [r1] -_080EBAC0: - bl is_c1_link_related_active - ldr r3, _080EBAF0 - ldr r2, _080EBAF4 - adds r1, r3, r2 - strb r0, [r1] - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080EBBC0 - ldr r1, _080EBAF8 - adds r0, r3, r1 - strb r2, [r0] - ldr r1, _080EBAFC - ldr r2, _080EBB00 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, _080EBB04 - bl SetMainCallback2 - b _080EBBC0 - .align 2, 0 -_080EBAF0: .4byte 0x02000000 -_080EBAF4: .4byte 0x00006dac -_080EBAF8: .4byte 0x00006dab -_080EBAFC: .4byte gMain -_080EBB00: .4byte 0x0000043c -_080EBB04: .4byte sub_80EBBE8 -_080EBB08: - movs r0, 0 - bl SetVBlankCallback - b _080EBBC0 -_080EBB10: - bl ResetPaletteFade - b _080EBBC0 -_080EBB16: - bl ResetSpriteData - b _080EBBC0 -_080EBB1C: - bl FreeAllSpritePalettes - b _080EBBC0 -_080EBB22: - bl ResetTasks - b _080EBBC0 -_080EBB28: - bl remove_some_task - b _080EBBC0 -_080EBB2E: - bl sub_80F1A90 - ldr r1, _080EBB44 - ldr r0, _080EBB48 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080EBB3E: - bl sub_80F1AC4 - b _080EBB80 - .align 2, 0 -_080EBB44: .4byte gMain -_080EBB48: .4byte 0x0000043c -_080EBB4C: - bl sub_80F2688 - ldr r1, _080EBB64 - ldr r2, _080EBB68 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080EBB5C: - bl sub_80F26BC - b _080EBB80 - .align 2, 0 -_080EBB64: .4byte gMain -_080EBB68: .4byte 0x0000043c -_080EBB6C: - bl sub_80F36F0 - ldr r1, _080EBB88 - ldr r0, _080EBB8C - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080EBB7C: - bl sub_80F3724 -_080EBB80: - lsls r0, 24 - cmp r0, 0 - bne _080EBBCC - b _080EBBC0 - .align 2, 0 -_080EBB88: .4byte gMain -_080EBB8C: .4byte 0x0000043c -_080EBB90: - bl sub_80EBC10 - ldr r0, _080EBB9C - bl sub_80EBDBC - b _080EBBC0 - .align 2, 0 -_080EBB9C: .4byte sub_80EBDD8 -_080EBBA0: - ldr r0, _080EBBD0 - ldr r1, _080EBBD4 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - movs r0, 0x6E - bl PlaySE - ldr r0, _080EBBD8 - bl SetMainCallback2 - ldr r0, _080EBBDC - bl SetVBlankCallback - bl sub_80F1A74 -_080EBBC0: - ldr r1, _080EBBE0 - ldr r2, _080EBBE4 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080EBBCC: - pop {r0} - bx r0 - .align 2, 0 -_080EBBD0: .4byte 0x02000000 -_080EBBD4: .4byte 0x00006dab -_080EBBD8: .4byte sub_80EBD90 -_080EBBDC: .4byte sub_80EBD18 -_080EBBE0: .4byte gMain -_080EBBE4: .4byte 0x0000043c - thumb_func_end sub_80EBA5C - - thumb_func_start sub_80EBBE8 -sub_80EBBE8: @ 80EBBE8 - push {r4,lr} - ldr r0, _080EBC08 - ldr r2, _080EBC0C - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _080EBC02 - adds r4, r1, 0 -_080EBBF8: - bl sub_80EBA5C - ldrb r0, [r4] - cmp r0, 0 - beq _080EBBF8 -_080EBC02: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EBC08: .4byte 0x02000000 -_080EBC0C: .4byte 0x00006dab - thumb_func_end sub_80EBBE8 - - thumb_func_start sub_80EBC10 -sub_80EBC10: @ 80EBC10 - push {r4-r7,lr} - ldr r1, _080EBC7C - movs r0, 0x14 - strh r0, [r1] - bl CalculatePlayerPartyCount - ldr r2, _080EBC80 - ldr r1, _080EBC84 - adds r3, r2, r1 - movs r1, 0 - strb r0, [r3] - ldr r3, _080EBC88 - adds r0, r2, r3 - strb r1, [r0] - ldr r3, _080EBC8C - adds r0, r2, r3 - strb r1, [r0] - ldr r3, _080EBC90 - adds r0, r2, r3 - str r1, [r0] - ldr r3, _080EBC94 - adds r0, r2, r3 - str r1, [r0] - movs r3, 0 - ldr r0, _080EBC98 - adds r7, r2, r0 - mov r12, r2 - movs r6, 0 - ldr r5, _080EBC9C - movs r4, 0x9B -_080EBC4C: - adds r0, r3, r7 - strb r6, [r0] - lsls r1, r3, 2 - adds r1, r2 - adds r0, r1, r5 - strh r4, [r0] - ldr r0, _080EBCA0 - adds r1, r0 - movs r0, 0x5B - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x4 - bls _080EBC4C - ldr r1, _080EBCA4 - add r1, r12 - movs r0, 0 - strb r0, [r1] - bl sub_80EBCA8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EBC7C: .4byte gKeyRepeatStartDelay -_080EBC80: .4byte 0x02000000 -_080EBC84: .4byte 0x00008828 -_080EBC88: .4byte 0x00006ddc -_080EBC8C: .4byte 0x00009344 -_080EBC90: .4byte 0x00008768 -_080EBC94: .4byte 0x0000ced0 -_080EBC98: .4byte 0x00008fff -_080EBC9C: .4byte 0x00009040 -_080EBCA0: .4byte 0x00009042 -_080EBCA4: .4byte 0x00006e95 - thumb_func_end sub_80EBC10 - - thumb_func_start sub_80EBCA8 -sub_80EBCA8: @ 80EBCA8 - push {r4,lr} - ldr r4, _080EBCDC - ldr r0, _080EBCE0 - adds r1, r4, r0 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080EBCE4 - adds r1, r4, r0 - movs r0, 0x2 - strb r0, [r1] - ldr r0, _080EBCE8 - adds r1, r4, r0 - movs r0, 0x3 - strb r0, [r1] - ldr r0, _080EBCEC - bl FlagGet - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080EBCF4 - ldr r0, _080EBCF0 - adds r1, r4, r0 - movs r0, 0x4 - strb r0, [r1] - b _080EBCFA - .align 2, 0 -_080EBCDC: .4byte 0x02000000 -_080EBCE0: .4byte 0x00006db2 -_080EBCE4: .4byte 0x00006db3 -_080EBCE8: .4byte 0x00006db4 -_080EBCEC: .4byte 0x0000083b -_080EBCF0: .4byte 0x00006db5 -_080EBCF4: - ldr r1, _080EBD0C - adds r0, r4, r1 - strb r2, [r0] -_080EBCFA: - ldr r0, _080EBD10 - ldr r1, _080EBD14 - adds r0, r1 - movs r1, 0x5 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EBD0C: .4byte 0x00006db5 -_080EBD10: .4byte 0x02000000 -_080EBD14: .4byte 0x00006db6 - thumb_func_end sub_80EBCA8 - - thumb_func_start sub_80EBD18 -sub_80EBD18: @ 80EBD18 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_80F1FF0 - pop {r0} - bx r0 - thumb_func_end sub_80EBD18 - - thumb_func_start sub_80EBD30 -sub_80EBD30: @ 80EBD30 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_80FB260 - bl sub_80EFE7C - pop {r0} - bx r0 - thumb_func_end sub_80EBD30 - - thumb_func_start sub_80EBD4C -sub_80EBD4C: @ 80EBD4C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_80F5BF0 - bl sub_8089668 - pop {r0} - bx r0 - thumb_func_end sub_80EBD4C - - thumb_func_start sub_80EBD68 -sub_80EBD68: @ 80EBD68 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_80F6F64 - pop {r0} - bx r0 - thumb_func_end sub_80EBD68 - - thumb_func_start sub_80EBD80 -sub_80EBD80: @ 80EBD80 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - pop {r0} - bx r0 - thumb_func_end sub_80EBD80 - - thumb_func_start sub_80EBD90 -sub_80EBD90: @ 80EBD90 - push {lr} - ldr r0, _080EBDB8 - movs r1, 0xC0 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl UpdatePaletteFade - bl sub_80F19FC - pop {r0} - bx r0 - .align 2, 0 -_080EBDB8: .4byte 0x02000000 - thumb_func_end sub_80EBD90 - - thumb_func_start sub_80EBDBC -sub_80EBDBC: @ 80EBDBC - ldr r2, _080EBDD4 - movs r3, 0xC0 - lsls r3, 2 - adds r1, r2, r3 - str r0, [r1] - movs r0, 0xC1 - lsls r0, 2 - adds r1, r2, r0 - movs r0, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_080EBDD4: .4byte 0x02000000 - thumb_func_end sub_80EBDBC - - thumb_func_start sub_80EBDD8 -sub_80EBDD8: @ 80EBDD8 - push {lr} - sub sp, 0x4 - ldr r1, _080EBDF8 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0x11 - bls _080EBDEE - b _080EC000 -_080EBDEE: - lsls r0, 2 - ldr r1, _080EBDFC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EBDF8: .4byte 0x02000000 -_080EBDFC: .4byte _080EBE00 - .align 2, 0 -_080EBE00: - .4byte _080EBE48 - .4byte _080EBE80 - .4byte _080EBE92 - .4byte _080EBEAC - .4byte _080EBEC0 - .4byte _080EBED2 - .4byte _080EBEF0 - .4byte _080EBF04 - .4byte _080EBF18 - .4byte _080EBF2C - .4byte _080EBF48 - .4byte _080EBF54 - .4byte _080EBF74 - .4byte _080EBF88 - .4byte _080EBFA0 - .4byte _080EBFB4 - .4byte _080EBFD0 - .4byte _080EBFE8 -_080EBE48: - movs r0, 0 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - ldr r1, _080EBE74 - ldr r3, _080EBE78 - adds r0, r1, r3 - ldrb r2, [r0] - subs r3, 0x2F - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080EBE7C - adds r2, r1, r0 - movs r0, 0x5 - strb r0, [r2] - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EBFDC - .align 2, 0 -_080EBE74: .4byte 0x02000000 -_080EBE78: .4byte 0x00006ddc -_080EBE7C: .4byte 0x00006dae -_080EBE80: - bl sub_80F3FF0 - ldr r1, _080EBEA8 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EBE92: - bl sub_80F4024 - lsls r0, 24 - cmp r0, 0 - beq _080EBE9E - b _080EC000 -_080EBE9E: - ldr r1, _080EBEA8 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EBFDC - .align 2, 0 -_080EBEA8: .4byte 0x02000000 -_080EBEAC: - bl sub_80F2598 - ldr r1, _080EBEBC - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EBFDC - .align 2, 0 -_080EBEBC: .4byte 0x02000000 -_080EBEC0: - bl sub_80EEE20 - ldr r1, _080EBEEC - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EBED2: - bl sub_80EEE54 - lsls r0, 24 - cmp r0, 0 - beq _080EBEDE - b _080EC000 -_080EBEDE: - bl sub_80EEE08 - ldr r1, _080EBEEC - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EBFDC - .align 2, 0 -_080EBEEC: .4byte 0x02000000 -_080EBEF0: - movs r0, 0 - bl sub_80EF248 - ldr r1, _080EBF14 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EBF04: - movs r0, 0 - bl sub_80EF284 - lsls r0, 24 - cmp r0, 0 - beq _080EBF12 - b _080EC000 -_080EBF12: - b _080EBFD4 - .align 2, 0 -_080EBF14: .4byte 0x02000000 -_080EBF18: - movs r0, 0 - bl sub_80F1B8C - ldr r1, _080EBF44 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EBF2C: - movs r0, 0 - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - bne _080EC000 - ldr r1, _080EBF44 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EBFDC - .align 2, 0 -_080EBF44: .4byte 0x02000000 -_080EBF48: - ldr r0, _080EBF50 - bl SetVBlankCallback - b _080EBFD4 - .align 2, 0 -_080EBF50: .4byte sub_80EBD18 -_080EBF54: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _080EBF70 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EBFDC - .align 2, 0 -_080EBF70: .4byte 0x02000000 -_080EBF74: - movs r0, 0 - bl sub_80EED2C - ldr r1, _080EBF84 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EBFDC - .align 2, 0 -_080EBF84: .4byte 0x02000000 -_080EBF88: - ldr r0, _080EBF9C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EC000 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r2, r3 - b _080EBFDC - .align 2, 0 -_080EBF9C: .4byte gPaletteFade -_080EBFA0: - movs r0, 0 - bl sub_80F2C80 - ldr r1, _080EBFCC - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EBFB4: - movs r0, 0 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080EC000 - ldr r1, _080EBFCC - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EBFDC - .align 2, 0 -_080EBFCC: .4byte 0x02000000 -_080EBFD0: - bl sub_80F1DF0 -_080EBFD4: - ldr r1, _080EBFE4 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 -_080EBFDC: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EC000 - .align 2, 0 -_080EBFE4: .4byte 0x02000000 -_080EBFE8: - bl sub_80F1E50 - lsls r0, 24 - cmp r0, 0 - bne _080EC000 - movs r0, 0 - movs r1, 0 - bl sub_80EF428 - ldr r0, _080EC008 - bl sub_80EBDBC -_080EC000: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080EC008: .4byte sub_80EC268 - thumb_func_end sub_80EBDD8 - - thumb_func_start sub_80EC00C -sub_80EC00C: @ 80EC00C - push {r4,lr} - sub sp, 0x4 - ldr r1, _080EC02C - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0xD - bls _080EC022 - b _080EC1FA -_080EC022: - lsls r0, 2 - ldr r1, _080EC030 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC02C: .4byte 0x02000000 -_080EC030: .4byte _080EC034 - .align 2, 0 -_080EC034: - .4byte _080EC06C - .4byte _080EC0C0 - .4byte _080EC0D4 - .4byte _080EC0F0 - .4byte _080EC104 - .4byte _080EC120 - .4byte _080EC12A - .4byte _080EC154 - .4byte _080EC168 - .4byte _080EC180 - .4byte _080EC194 - .4byte _080EC1A8 - .4byte _080EC1C4 - .4byte _080EC1DC -_080EC06C: - bl sub_80EEF78 - lsls r0, 24 - cmp r0, 0 - beq _080EC078 - b _080EC1FA -_080EC078: - ldr r0, _080EC0AC - bl SetVBlankCallback - bl sub_80EED1C - ldr r4, _080EC0B0 - ldr r1, _080EC0B4 - adds r0, r4, r1 - ldrb r1, [r0] - ldr r2, _080EC0B8 - adds r0, r4, r2 - strb r1, [r0] - ldr r0, _080EC0BC - adds r1, r4, r0 - movs r0, 0x5 - strb r0, [r1] - bl sub_80EEE08 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r1 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EC1FA - .align 2, 0 -_080EC0AC: .4byte sub_80EBD80 -_080EC0B0: .4byte 0x02000000 -_080EC0B4: .4byte 0x00006ddc -_080EC0B8: .4byte 0x00006dad -_080EC0BC: .4byte 0x00006dae -_080EC0C0: - movs r0, 0 - bl sub_80EF248 - ldr r1, _080EC0EC - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EC0D4: - movs r0, 0 - bl sub_80EF284 - lsls r0, 24 - cmp r0, 0 - beq _080EC0E2 - b _080EC1FA -_080EC0E2: - ldr r1, _080EC0EC - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EC1D0 - .align 2, 0 -_080EC0EC: .4byte 0x02000000 -_080EC0F0: - movs r0, 0 - bl sub_80F1B8C - ldr r1, _080EC11C - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EC104: - movs r0, 0 - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - beq _080EC112 - b _080EC1FA -_080EC112: - ldr r1, _080EC11C - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EC1D0 - .align 2, 0 -_080EC11C: .4byte 0x02000000 -_080EC120: - bl sub_8055870 - cmp r0, 0 - bne _080EC1FA - b _080EC1C8 -_080EC12A: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080EC150 - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EC1D0 - .align 2, 0 -_080EC150: .4byte sub_80EBD18 -_080EC154: - movs r0, 0 - bl sub_80EED2C - ldr r1, _080EC164 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EC1D0 - .align 2, 0 -_080EC164: .4byte 0x02000000 -_080EC168: - ldr r0, _080EC17C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EC1FA - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EC1D0 - .align 2, 0 -_080EC17C: .4byte gPaletteFade -_080EC180: - bl sub_80F2598 - ldr r1, _080EC190 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EC1D0 - .align 2, 0 -_080EC190: .4byte 0x02000000 -_080EC194: - movs r0, 0 - bl sub_80F2C80 - ldr r1, _080EC1C0 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EC1A8: - movs r0, 0 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080EC1FA - ldr r1, _080EC1C0 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EC1D0 - .align 2, 0 -_080EC1C0: .4byte 0x02000000 -_080EC1C4: - bl sub_80F1DF0 -_080EC1C8: - ldr r1, _080EC1D8 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 -_080EC1D0: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EC1FA - .align 2, 0 -_080EC1D8: .4byte 0x02000000 -_080EC1DC: - bl sub_80F1E50 - lsls r0, 24 - cmp r0, 0 - bne _080EC1FA - ldr r0, _080EC204 - ldr r1, _080EC208 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0 - bl sub_80EF428 - ldr r0, _080EC20C - bl sub_80EBDBC -_080EC1FA: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC204: .4byte 0x02000000 -_080EC208: .4byte 0x00006dad -_080EC20C: .4byte sub_80EC268 - thumb_func_end sub_80EC00C - - thumb_func_start sub_80EC210 -sub_80EC210: @ 80EC210 - push {r4,r5,lr} - ldr r5, _080EC228 - movs r0, 0xC1 - lsls r0, 2 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, 0 - beq _080EC22C - cmp r0, 0x1 - beq _080EC24C - b _080EC25C - .align 2, 0 -_080EC228: .4byte 0x02000000 -_080EC22C: - movs r0, 0x1 - bl sub_80F2D04 - ldr r1, _080EC248 - adds r0, r5, r1 - ldrb r1, [r0] - movs r0, 0 - movs r2, 0 - bl sub_80EE9C0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EC25C - .align 2, 0 -_080EC248: .4byte 0x00006ddc -_080EC24C: - bl sub_80EEA0C - lsls r0, 24 - cmp r0, 0 - bne _080EC25C - ldr r0, _080EC264 - bl sub_80EBDBC -_080EC25C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EC264: .4byte sub_80EC268 - thumb_func_end sub_80EC210 - - thumb_func_start sub_80EC268 -sub_80EC268: @ 80EC268 - push {r4-r6,lr} - ldr r4, _080EC290 - movs r0, 0xC1 - lsls r0, 2 - adds r6, r4, r0 - ldrh r0, [r6] - cmp r0, 0x3 - bne _080EC27A - b _080EC3BE -_080EC27A: - cmp r0, 0x3 - bgt _080EC294 - cmp r0, 0x1 - bne _080EC284 - b _080EC3A2 -_080EC284: - cmp r0, 0x1 - ble _080EC28A - b _080EC3B4 -_080EC28A: - cmp r0, 0 - beq _080EC2AE - b _080EC492 - .align 2, 0 -_080EC290: .4byte 0x02000000 -_080EC294: - cmp r0, 0x6 - bne _080EC29A - b _080EC414 -_080EC29A: - cmp r0, 0x6 - bgt _080EC2A6 - cmp r0, 0x4 - bne _080EC2A4 - b _080EC3DC -_080EC2A4: - b _080EC492 -_080EC2A6: - cmp r0, 0xFF - bne _080EC2AC - b _080EC44C -_080EC2AC: - b _080EC492 -_080EC2AE: - bl sub_80EEC10 - lsls r0, 24 - cmp r0, 0 - beq _080EC2D4 - movs r0, 0x5 - bl PlaySE - ldr r1, _080EC2D0 - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, 0 - bl sub_80EF428 - bl sub_80EED9C - b _080EC492 - .align 2, 0 -_080EC2D0: .4byte 0x00006dad -_080EC2D4: - ldr r0, _080EC310 - ldrh r1, [r0, 0x2E] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080EC394 - ldr r2, _080EC314 - adds r0, r4, r2 - ldrb r1, [r0] - adds r2, 0x2F - adds r0, r4, r2 - strb r1, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r2, 0x2A - adds r1, r4, r2 - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, 0x4 - bls _080EC304 - b _080EC492 -_080EC304: - lsls r0, 2 - ldr r1, _080EC318 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC310: .4byte gMain -_080EC314: .4byte 0x00006dad -_080EC318: .4byte _080EC31C - .align 2, 0 -_080EC31C: - .4byte _080EC330 - .4byte _080EC344 - .4byte _080EC380 - .4byte _080EC36C - .4byte _080EC358 -_080EC330: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC340 - bl sub_80EBDBC - b _080EC492 - .align 2, 0 -_080EC340: .4byte sub_80EC4A0 -_080EC344: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC354 - bl sub_80EBDBC - b _080EC492 - .align 2, 0 -_080EC354: .4byte sub_80EC81C -_080EC358: - ldr r0, _080EC368 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0] - b _080EC492 - .align 2, 0 -_080EC368: .4byte 0x02000000 -_080EC36C: - ldr r0, _080EC37C - movs r2, 0xC1 - lsls r2, 2 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0] - b _080EC492 - .align 2, 0 -_080EC37C: .4byte 0x02000000 -_080EC380: - ldr r0, _080EC390 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x6 - strh r1, [r0] - b _080EC492 - .align 2, 0 -_080EC390: .4byte 0x02000000 -_080EC394: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080EC39E - b _080EC492 -_080EC39E: - strh r2, [r6] - b _080EC492 -_080EC3A2: - bl sub_80F208C - ldr r0, _080EC3B0 - bl sub_80EBDBC - b _080EC492 - .align 2, 0 -_080EC3B0: .4byte sub_80EE96C -_080EC3B4: - bl sub_80F6208 - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] -_080EC3BE: - bl sub_80F6250 - lsls r0, 24 - cmp r0, 0 - bne _080EC492 - ldr r1, _080EC3D8 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EC492 - .align 2, 0 -_080EC3D8: .4byte 0x02000000 -_080EC3DC: - bl sub_8055870 - cmp r0, 0 - bne _080EC492 - ldr r1, _080EC400 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080EC408 - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC404 - bl sub_80EBDBC - b _080EC492 - .align 2, 0 -_080EC400: .4byte 0x00008fe8 -_080EC404: .4byte sub_80EDB88 -_080EC408: - movs r0, 0x20 - bl PlaySE - movs r0, 0 - movs r1, 0x5 - b _080EC442 -_080EC414: - bl sub_80F6C20 - ldr r2, _080EC430 - adds r0, r4, r2 - ldrh r0, [r0] - cmp r0, 0 - beq _080EC438 - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC434 - bl sub_80EBDBC - b _080EC492 - .align 2, 0 -_080EC430: .4byte 0x0000d158 -_080EC434: .4byte sub_80EE3D8 -_080EC438: - movs r0, 0x20 - bl PlaySE - movs r0, 0 - movs r1, 0x6 -_080EC442: - bl sub_80EF428 - movs r0, 0xFF - strh r0, [r6] - b _080EC492 -_080EC44C: - bl sub_80EEC10 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080EC478 - movs r0, 0x5 - bl PlaySE - ldr r1, _080EC474 - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, 0 - bl sub_80EF428 - movs r0, 0 - strh r0, [r6] - bl sub_80EED9C - b _080EC492 - .align 2, 0 -_080EC474: .4byte 0x00006dad -_080EC478: - ldr r0, _080EC498 - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080EC492 - ldr r2, _080EC49C - adds r0, r4, r2 - ldrb r1, [r0] - movs r0, 0 - bl sub_80EF428 - strh r5, [r6] -_080EC492: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EC498: .4byte gMain -_080EC49C: .4byte 0x00006dad - thumb_func_end sub_80EC268 - - thumb_func_start sub_80EC4A0 -sub_80EC4A0: @ 80EC4A0 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080EC4C0 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0xE - bls _080EC4B6 - b _080EC66A -_080EC4B6: - lsls r0, 2 - ldr r1, _080EC4C4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC4C0: .4byte 0x02000000 -_080EC4C4: .4byte _080EC4C8 - .align 2, 0 -_080EC4C8: - .4byte _080EC504 - .4byte _080EC510 - .4byte _080EC544 - .4byte _080EC578 - .4byte _080EC594 - .4byte _080EC5A8 - .4byte _080EC5AE - .4byte _080EC5C0 - .4byte _080EC5D0 - .4byte _080EC5E4 - .4byte _080EC5F8 - .4byte _080EC614 - .4byte _080EC61E - .4byte _080EC63E - .4byte _080EC658 -_080EC504: - bl sub_80F1E84 - movs r0, 0 - bl sub_80F2D04 - b _080EC644 -_080EC510: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080EC51C - b _080EC66A -_080EC51C: - ldr r0, _080EC53C - ldrb r1, [r0, 0x15] - movs r0, 0x8 - ands r0, r1 - movs r1, 0x8 - cmp r0, 0 - beq _080EC52C - movs r1, 0x7 -_080EC52C: - adds r0, r1, 0 - bl sub_80EEFBC - ldr r1, _080EC540 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EC64C - .align 2, 0 -_080EC53C: .4byte gSaveBlock2 -_080EC540: .4byte 0x02000000 -_080EC544: - bl sub_80EEF34 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080EC552 - b _080EC66A -_080EC552: - ldr r4, _080EC574 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EC64C - .align 2, 0 -_080EC574: .4byte 0x02000000 -_080EC578: - ldr r0, _080EC590 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EC66A - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - b _080EC644 - .align 2, 0 -_080EC590: .4byte gPaletteFade -_080EC594: - bl sub_80F2620 - ldr r1, _080EC5A4 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EC64C - .align 2, 0 -_080EC5A4: .4byte 0x02000000 -_080EC5A8: - bl sub_80EF814 - b _080EC644 -_080EC5AE: - bl sub_80EF840 - ldr r1, _080EC5CC - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EC5C0: - bl sub_80EF874 - lsls r0, 24 - cmp r0, 0 - bne _080EC66A - b _080EC644 - .align 2, 0 -_080EC5CC: .4byte 0x02000000 -_080EC5D0: - movs r0, 0x4 - bl sub_80F2C80 - ldr r1, _080EC5F4 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EC5E4: - movs r0, 0x4 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080EC66A - b _080EC644 - .align 2, 0 -_080EC5F4: .4byte 0x02000000 -_080EC5F8: - bl sub_80F2DD8 - ldr r0, _080EC60C - bl SetVBlankCallback - ldr r1, _080EC610 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EC64C - .align 2, 0 -_080EC60C: .4byte sub_80EBD30 -_080EC610: .4byte 0x02000000 -_080EC614: - bl sub_8055870 - cmp r0, 0 - bne _080EC66A - b _080EC644 -_080EC61E: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EC64C -_080EC63E: - movs r0, 0x1 - bl sub_80EED2C -_080EC644: - ldr r1, _080EC654 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080EC64C: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EC66A - .align 2, 0 -_080EC654: .4byte 0x02000000 -_080EC658: - ldr r0, _080EC674 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EC66A - ldr r0, _080EC678 - bl sub_80EBDBC -_080EC66A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC674: .4byte gPaletteFade -_080EC678: .4byte sub_80EC67C - thumb_func_end sub_80EC4A0 - - thumb_func_start sub_80EC67C -sub_80EC67C: @ 80EC67C - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, _080EC69C - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x5 - bls _080EC692 - b _080EC800 -_080EC692: - lsls r0, 2 - ldr r1, _080EC6A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC69C: .4byte 0x02000000 -_080EC6A0: .4byte _080EC6A4 - .align 2, 0 -_080EC6A4: - .4byte _080EC6BC - .4byte _080EC718 - .4byte _080EC746 - .4byte _080EC77C - .4byte _080EC7A0 - .4byte _080EC7C4 -_080EC6BC: - bl sub_80FAB60 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080EC6E2 - cmp r0, 0x3 - bgt _080EC6D2 - cmp r0, 0x1 - beq _080EC6DC - b _080EC800 -_080EC6D2: - cmp r0, 0x4 - beq _080EC6E8 - cmp r0, 0x5 - beq _080EC700 - b _080EC800 -_080EC6DC: - bl sub_80EED9C - b _080EC800 -_080EC6E2: - bl sub_80EF9F8 - b _080EC800 -_080EC6E8: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC6FC - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0] - b _080EC800 - .align 2, 0 -_080EC6FC: .4byte 0x02000000 -_080EC700: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC714 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r2 - movs r1, 0x4 - strh r1, [r0] - b _080EC800 - .align 2, 0 -_080EC714: .4byte 0x02000000 -_080EC718: - ldr r1, _080EC730 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EC734 - bl sub_80FAEC4 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EC7BC - .align 2, 0 -_080EC730: .4byte 0x00006e90 -_080EC734: - movs r0, 0x1 - bl sub_80EFBDC - lsls r0, 24 - cmp r0, 0 - bne _080EC800 - bl sub_80FAEC4 - b _080EC7B6 -_080EC746: - bl sub_80FAFC0 - lsls r0, 24 - cmp r0, 0 - bne _080EC800 - ldr r5, _080EC76C - ldr r1, _080EC770 - adds r0, r5, r1 - ldrb r4, [r0] - cmp r4, 0 - bne _080EC774 - bl sub_80EFBB0 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r5, r2 - strh r4, [r0] - b _080EC800 - .align 2, 0 -_080EC76C: .4byte 0x02000000 -_080EC770: .4byte 0x00006e90 -_080EC774: - movs r0, 0xC1 - lsls r0, 2 - adds r1, r5, r0 - b _080EC7BC -_080EC77C: - movs r0, 0 - bl sub_80EFBDC - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080EC800 - bl sub_80EFBB0 - ldr r0, _080EC79C - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - strh r4, [r0] - b _080EC800 - .align 2, 0 -_080EC79C: .4byte 0x02000000 -_080EC7A0: - movs r2, 0xC2 - lsls r2, 2 - adds r0, r4, r2 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade -_080EC7B6: - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 -_080EC7BC: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EC800 -_080EC7C4: - ldr r0, _080EC808 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EC800 - bl sub_80F2DF4 - movs r0, 0x4 - bl sub_80F2D04 - ldr r3, _080EC80C - movs r2, 0 - ldr r0, _080EC810 - ldr r1, _080EC814 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080EC7EC - movs r2, 0x1 -_080EC7EC: - lsls r2, 3 - ldrb r1, [r3, 0x15] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x15] - ldr r0, _080EC818 - bl sub_80EBDBC -_080EC800: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EC808: .4byte gPaletteFade -_080EC80C: .4byte gSaveBlock2 -_080EC810: .4byte 0x02000000 -_080EC814: .4byte 0x00006e90 -_080EC818: .4byte sub_80EC00C - thumb_func_end sub_80EC67C - - thumb_func_start sub_80EC81C -sub_80EC81C: @ 80EC81C - push {r4,lr} - ldr r0, _080EC834 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0 - beq _080EC838 - cmp r0, 0x1 - beq _080EC850 - b _080EC860 - .align 2, 0 -_080EC834: .4byte 0x02000000 -_080EC838: - movs r0, 0 - bl sub_80F2D04 - movs r0, 0x1 - movs r1, 0 - movs r2, 0x1 - bl sub_80EE9C0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EC860 -_080EC850: - bl sub_80EEA0C - lsls r0, 24 - cmp r0, 0 - bne _080EC860 - ldr r0, _080EC868 - bl sub_80EBDBC -_080EC860: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC868: .4byte sub_80EC86C - thumb_func_end sub_80EC81C - - thumb_func_start sub_80EC86C -sub_80EC86C: @ 80EC86C - push {r4-r6,lr} - ldr r4, _080EC884 - movs r0, 0xC1 - lsls r0, 2 - adds r5, r4, r0 - ldrh r0, [r5] - cmp r0, 0 - beq _080EC888 - cmp r0, 0x1 - beq _080EC944 - b _080EC954 - .align 2, 0 -_080EC884: .4byte 0x02000000 -_080EC888: - bl sub_80EEC90 - lsls r0, 24 - cmp r0, 0 - beq _080EC8B0 - movs r0, 0x5 - bl PlaySE - ldr r1, _080EC8AC - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, 0x1 - bl sub_80EF428 - bl sub_80EED9C - b _080EC954 - .align 2, 0 -_080EC8AC: .4byte 0x00006dad -_080EC8B0: - ldr r0, _080EC8E4 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080EC918 - movs r0, 0x5 - bl PlaySE - ldr r2, _080EC8E8 - adds r0, r4, r2 - ldrb r1, [r0] - adds r2, 0x43 - adds r0, r4, r2 - strb r1, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _080EC900 - cmp r0, 0x1 - bgt _080EC8EC - cmp r0, 0 - beq _080EC8F2 - b _080EC954 - .align 2, 0 -_080EC8E4: .4byte gMain -_080EC8E8: .4byte 0x00006dad -_080EC8EC: - cmp r0, 0x2 - beq _080EC90C - b _080EC954 -_080EC8F2: - ldr r0, _080EC8FC - bl sub_80EBDBC - b _080EC954 - .align 2, 0 -_080EC8FC: .4byte sub_80ED620 -_080EC900: - ldr r0, _080EC908 - bl sub_80EBDBC - b _080EC954 - .align 2, 0 -_080EC908: .4byte sub_80EC960 -_080EC90C: - ldr r0, _080EC914 - bl sub_80EBDBC - b _080EC954 - .align 2, 0 -_080EC914: .4byte sub_80EC210 -_080EC918: - movs r6, 0x2 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EC954 - movs r0, 0x5 - bl PlaySE - ldr r1, _080EC93C - adds r0, r4, r1 - strb r6, [r0] - ldr r2, _080EC940 - adds r0, r4, r2 - strb r6, [r0] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _080EC954 - .align 2, 0 -_080EC93C: .4byte 0x00006df0 -_080EC940: .4byte 0x00006dad -_080EC944: - bl sub_80F1E6C - lsls r0, 24 - cmp r0, 0 - bne _080EC954 - ldr r0, _080EC95C - bl sub_80EBDBC -_080EC954: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EC95C: .4byte sub_80EC210 - thumb_func_end sub_80EC86C - - thumb_func_start sub_80EC960 -sub_80EC960: @ 80EC960 - push {r4,lr} - ldr r0, _080EC978 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0 - beq _080EC97C - cmp r0, 0x1 - beq _080EC98E - b _080EC99E - .align 2, 0 -_080EC978: .4byte 0x02000000 -_080EC97C: - movs r0, 0x2 - movs r1, 0 - movs r2, 0x5 - bl sub_80EE9C0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EC99E -_080EC98E: - bl sub_80EEA0C - lsls r0, 24 - cmp r0, 0 - bne _080EC99E - ldr r0, _080EC9A4 - bl sub_80EBDBC -_080EC99E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC9A4: .4byte sub_80ECC08 - thumb_func_end sub_80EC960 - - thumb_func_start sub_80EC9A8 -sub_80EC9A8: @ 80EC9A8 - push {r4,r5,lr} - ldr r5, _080EC9C0 - movs r0, 0xC1 - lsls r0, 2 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, 0 - beq _080EC9C4 - cmp r0, 0x1 - beq _080EC9E4 - b _080ECA00 - .align 2, 0 -_080EC9C0: .4byte 0x02000000 -_080EC9C4: - movs r0, 0x5 - bl sub_80F2D04 - ldr r1, _080EC9E0 - adds r0, r5, r1 - ldrb r1, [r0] - movs r0, 0x1 - movs r2, 0xC - bl sub_80EE9C0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080ECA00 - .align 2, 0 -_080EC9E0: .4byte 0x00006df0 -_080EC9E4: - bl sub_80EEA0C - lsls r0, 24 - cmp r0, 0 - bne _080ECA00 - ldr r0, _080ECA08 - bl sub_80EBDBC - ldr r1, _080ECA0C - adds r0, r5, r1 - ldrb r1, [r0] - movs r0, 0x1 - bl sub_80EF428 -_080ECA00: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ECA08: .4byte sub_80EC86C -_080ECA0C: .4byte 0x00006dad - thumb_func_end sub_80EC9A8 - - thumb_func_start sub_80ECA10 -sub_80ECA10: @ 80ECA10 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080ECA30 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0xD - bls _080ECA26 - b _080ECBF2 -_080ECA26: - lsls r0, 2 - ldr r1, _080ECA34 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ECA30: .4byte 0x02000000 -_080ECA34: .4byte _080ECA38 - .align 2, 0 -_080ECA38: - .4byte _080ECA70 - .4byte _080ECAC4 - .4byte _080ECAD8 - .4byte _080ECAF4 - .4byte _080ECB08 - .4byte _080ECB24 - .4byte _080ECB2E - .4byte _080ECB58 - .4byte _080ECB6C - .4byte _080ECB72 - .4byte _080ECB8C - .4byte _080ECBA0 - .4byte _080ECBBC - .4byte _080ECBD4 -_080ECA70: - bl sub_80EEF78 - lsls r0, 24 - cmp r0, 0 - beq _080ECA7C - b _080ECBF2 -_080ECA7C: - ldr r0, _080ECAB0 - bl SetVBlankCallback - bl sub_80EED1C - ldr r4, _080ECAB4 - ldr r1, _080ECAB8 - adds r0, r4, r1 - ldrb r1, [r0] - ldr r2, _080ECABC - adds r0, r4, r2 - strb r1, [r0] - ldr r0, _080ECAC0 - adds r1, r4, r0 - movs r0, 0x3 - strb r0, [r1] - bl sub_80EEE08 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r1 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080ECBF2 - .align 2, 0 -_080ECAB0: .4byte sub_80EBD80 -_080ECAB4: .4byte 0x02000000 -_080ECAB8: .4byte 0x00006df0 -_080ECABC: .4byte 0x00006dad -_080ECAC0: .4byte 0x00006dae -_080ECAC4: - movs r0, 0x1 - bl sub_80EF248 - ldr r1, _080ECAF0 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECAD8: - movs r0, 0x1 - bl sub_80EF284 - lsls r0, 24 - cmp r0, 0 - beq _080ECAE6 - b _080ECBF2 -_080ECAE6: - ldr r1, _080ECAF0 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECBC8 - .align 2, 0 -_080ECAF0: .4byte 0x02000000 -_080ECAF4: - movs r0, 0x1 - bl sub_80F1B8C - ldr r1, _080ECB20 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECB08: - movs r0, 0x1 - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - bne _080ECBF2 - ldr r1, _080ECB20 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECBC8 - .align 2, 0 -_080ECB20: .4byte 0x02000000 -_080ECB24: - bl sub_8055870 - cmp r0, 0 - bne _080ECBF2 - b _080ECBC0 -_080ECB2E: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ECB54 - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ECBC8 - .align 2, 0 -_080ECB54: .4byte sub_80EBD18 -_080ECB58: - movs r0, 0 - bl sub_80EED2C - ldr r1, _080ECB68 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECBC8 - .align 2, 0 -_080ECB68: .4byte 0x02000000 -_080ECB6C: - bl sub_80F2598 - b _080ECBC0 -_080ECB72: - ldr r0, _080ECB88 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ECBF2 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080ECBC8 - .align 2, 0 -_080ECB88: .4byte gPaletteFade -_080ECB8C: - movs r0, 0x1 - bl sub_80F2C80 - ldr r1, _080ECBB8 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECBA0: - movs r0, 0x1 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080ECBF2 - ldr r1, _080ECBB8 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECBC8 - .align 2, 0 -_080ECBB8: .4byte 0x02000000 -_080ECBBC: - bl sub_80F1DF0 -_080ECBC0: - ldr r1, _080ECBD0 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 -_080ECBC8: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ECBF2 - .align 2, 0 -_080ECBD0: .4byte 0x02000000 -_080ECBD4: - bl sub_80F1E50 - lsls r0, 24 - cmp r0, 0 - bne _080ECBF2 - ldr r0, _080ECBFC - ldr r1, _080ECC00 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - bl sub_80EF428 - ldr r0, _080ECC04 - bl sub_80EBDBC -_080ECBF2: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ECBFC: .4byte 0x02000000 -_080ECC00: .4byte 0x00006dad -_080ECC04: .4byte sub_80EC86C - thumb_func_end sub_80ECA10 - - thumb_func_start sub_80ECC08 -sub_80ECC08: @ 80ECC08 - push {r4,r5,lr} - ldr r4, _080ECC20 - movs r0, 0xC1 - lsls r0, 2 - adds r5, r4, r0 - ldrh r0, [r5] - cmp r0, 0 - beq _080ECC24 - cmp r0, 0x1 - bne _080ECC1E - b _080ECD64 -_080ECC1E: - b _080ECD74 - .align 2, 0 -_080ECC20: .4byte 0x02000000 -_080ECC24: - bl sub_80EEC90 - lsls r0, 24 - cmp r0, 0 - beq _080ECC4C - movs r0, 0x5 - bl PlaySE - ldr r1, _080ECC48 - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, 0x2 - bl sub_80EF428 - bl sub_80EED9C - b _080ECD74 - .align 2, 0 -_080ECC48: .4byte 0x00006dad -_080ECC4C: - ldr r0, _080ECC78 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080ECC5A - b _080ECD40 -_080ECC5A: - movs r0, 0x5 - bl PlaySE - ldr r2, _080ECC7C - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x5 - bhi _080ECD0C - lsls r0, 2 - ldr r1, _080ECC80 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ECC78: .4byte gMain -_080ECC7C: .4byte 0x00006dad -_080ECC80: .4byte _080ECC84 - .align 2, 0 -_080ECC84: - .4byte _080ECC9C - .4byte _080ECCB0 - .4byte _080ECCC4 - .4byte _080ECCD8 - .4byte _080ECCEC - .4byte _080ECD00 -_080ECC9C: - ldr r0, _080ECCA8 - ldr r3, _080ECCAC - adds r0, r3 - movs r1, 0x16 - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCA8: .4byte 0x02000000 -_080ECCAC: .4byte 0x000087d8 -_080ECCB0: - ldr r0, _080ECCBC - ldr r1, _080ECCC0 - adds r0, r1 - movs r1, 0x17 - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCBC: .4byte 0x02000000 -_080ECCC0: .4byte 0x000087d8 -_080ECCC4: - ldr r0, _080ECCD0 - ldr r2, _080ECCD4 - adds r0, r2 - movs r1, 0x18 - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCD0: .4byte 0x02000000 -_080ECCD4: .4byte 0x000087d8 -_080ECCD8: - ldr r0, _080ECCE4 - ldr r3, _080ECCE8 - adds r0, r3 - movs r1, 0x21 - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCE4: .4byte 0x02000000 -_080ECCE8: .4byte 0x000087d8 -_080ECCEC: - ldr r0, _080ECCF8 - ldr r1, _080ECCFC - adds r0, r1 - movs r1, 0x2F - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCF8: .4byte 0x02000000 -_080ECCFC: .4byte 0x000087d8 -_080ECD00: - ldr r0, _080ECD08 - bl sub_80EBDBC - b _080ECD74 - .align 2, 0 -_080ECD08: .4byte sub_80EC9A8 -_080ECD0C: - ldr r1, _080ECD2C - ldr r2, _080ECD30 - adds r0, r1, r2 - ldrb r2, [r0] - ldr r3, _080ECD34 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080ECD38 - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080ECD3C - bl sub_80EBDBC - b _080ECD74 - .align 2, 0 -_080ECD2C: .4byte 0x02000000 -_080ECD30: .4byte 0x00006dad -_080ECD34: .4byte 0x00006dfc -_080ECD38: .4byte 0x000076aa -_080ECD3C: .4byte sub_80ED01C -_080ECD40: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080ECD74 - movs r0, 0x5 - bl PlaySE - ldr r2, _080ECD60 - adds r1, r4, r2 - movs r0, 0x5 - strb r0, [r1] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _080ECD74 - .align 2, 0 -_080ECD60: .4byte 0x00006dad -_080ECD64: - bl sub_80F1E6C - lsls r0, 24 - cmp r0, 0 - bne _080ECD74 - ldr r0, _080ECD7C - bl sub_80EBDBC -_080ECD74: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ECD7C: .4byte sub_80EC9A8 - thumb_func_end sub_80ECC08 - - thumb_func_start sub_80ECD80 -sub_80ECD80: @ 80ECD80 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080ECDA0 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x14 - bls _080ECD96 - b _080ED006 -_080ECD96: - lsls r0, 2 - ldr r1, _080ECDA4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ECDA0: .4byte 0x02000000 -_080ECDA4: .4byte _080ECDA8 - .align 2, 0 -_080ECDA8: - .4byte _080ECDFC - .4byte _080ECE1A - .4byte _080ECE34 - .4byte _080ECE4C - .4byte _080ECE64 - .4byte _080ECE78 - .4byte _080ECE80 - .4byte _080ECEAC - .4byte _080ECEC0 - .4byte _080ECED4 - .4byte _080ECEE8 - .4byte _080ECF04 - .4byte _080ECF10 - .4byte _080ECF3C - .4byte _080ECF44 - .4byte _080ECF58 - .4byte _080ECF70 - .4byte _080ECF84 - .4byte _080ECFB0 - .4byte _080ECFC4 - .4byte _080ECFE8 -_080ECDFC: - movs r3, 0xC2 - lsls r3, 2 - adds r0, r4, r3 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080ECFDC -_080ECE1A: - ldr r0, _080ECE30 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080ECE28 - b _080ED006 -_080ECE28: - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ECFDC - .align 2, 0 -_080ECE30: .4byte gPaletteFade -_080ECE34: - bl sub_80EEF78 - lsls r0, 24 - cmp r0, 0 - beq _080ECE40 - b _080ED006 -_080ECE40: - ldr r0, _080ECE48 - bl SetVBlankCallback - b _080ECFD4 - .align 2, 0 -_080ECE48: .4byte sub_80EBD80 -_080ECE4C: - bl sub_80EED1C - bl sub_80F3130 - ldr r1, _080ECE60 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECFDC - .align 2, 0 -_080ECE60: .4byte 0x02000000 -_080ECE64: - movs r0, 0x1 - bl sub_80F2D6C - ldr r1, _080ECE74 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080ECFDC - .align 2, 0 -_080ECE74: .4byte 0x02000000 -_080ECE78: - movs r0, 0x5 - bl sub_80F2D6C - b _080ECFD4 -_080ECE80: - ldr r1, _080ECEA0 - adds r0, r4, r1 - ldrb r1, [r0] - ldr r2, _080ECEA4 - adds r0, r4, r2 - strb r1, [r0] - ldr r3, _080ECEA8 - adds r1, r4, r3 - movs r0, 0x6 - strb r0, [r1] - bl sub_80EEE08 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080ECFDC - .align 2, 0 -_080ECEA0: .4byte 0x00006dfc -_080ECEA4: .4byte 0x00006dad -_080ECEA8: .4byte 0x00006dae -_080ECEAC: - movs r0, 0x2 - bl sub_80EF248 - ldr r1, _080ECED0 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECEC0: - movs r0, 0x2 - bl sub_80EF284 - lsls r0, 24 - cmp r0, 0 - beq _080ECECE - b _080ED006 -_080ECECE: - b _080ECFD4 - .align 2, 0 -_080ECED0: .4byte 0x02000000 -_080ECED4: - movs r0, 0x2 - bl sub_80F1B8C - ldr r1, _080ECF00 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECEE8: - movs r0, 0x2 - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - beq _080ECEF6 - b _080ED006 -_080ECEF6: - ldr r1, _080ECF00 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080ECFDC - .align 2, 0 -_080ECF00: .4byte 0x02000000 -_080ECF04: - bl sub_8055870 - cmp r0, 0 - beq _080ECF0E - b _080ED006 -_080ECF0E: - b _080ECFD4 -_080ECF10: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ECF38 - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ECFDC - .align 2, 0 -_080ECF38: .4byte sub_80EBD18 -_080ECF3C: - movs r0, 0 - bl sub_80EED2C - b _080ECFD4 -_080ECF44: - bl sub_80F2598 - ldr r1, _080ECF54 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECFDC - .align 2, 0 -_080ECF54: .4byte 0x02000000 -_080ECF58: - ldr r0, _080ECF6C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ED006 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ECFDC - .align 2, 0 -_080ECF6C: .4byte gPaletteFade -_080ECF70: - movs r0, 0x1 - bl sub_80F2C80 - ldr r1, _080ECFA8 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECF84: - movs r0, 0x1 - bl sub_80F2CBC - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080ED006 - ldr r0, _080ECFA8 - ldr r3, _080ECFAC - adds r1, r0, r3 - strh r2, [r1] - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - b _080ED006 - .align 2, 0 -_080ECFA8: .4byte 0x02000000 -_080ECFAC: .4byte 0x00000306 -_080ECFB0: - movs r0, 0x5 - bl sub_80F2C80 - ldr r1, _080ECFE4 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECFC4: - movs r0, 0x5 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080ED006 - bl sub_80F1DF0 -_080ECFD4: - ldr r1, _080ECFE4 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 -_080ECFDC: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ED006 - .align 2, 0 -_080ECFE4: .4byte 0x02000000 -_080ECFE8: - bl sub_80F1E50 - lsls r0, 24 - cmp r0, 0 - bne _080ED006 - ldr r0, _080ED010 - ldr r1, _080ED014 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - bl sub_80EF428 - ldr r0, _080ED018 - bl sub_80EBDBC -_080ED006: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED010: .4byte 0x02000000 -_080ED014: .4byte 0x00006dad -_080ED018: .4byte sub_80ECC08 - thumb_func_end sub_80ECD80 - - thumb_func_start sub_80ED01C -sub_80ED01C: @ 80ED01C - push {r4,lr} - sub sp, 0x4 - ldr r1, _080ED03C - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x13 - bls _080ED032 - b _080ED308 -_080ED032: - lsls r0, 2 - ldr r1, _080ED040 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED03C: .4byte 0x02000000 -_080ED040: .4byte _080ED044 - .align 2, 0 -_080ED044: - .4byte _080ED094 - .4byte _080ED0B4 - .4byte _080ED0D4 - .4byte _080ED108 - .4byte _080ED138 - .4byte _080ED14C - .4byte _080ED15E - .4byte _080ED18C - .4byte _080ED1AC - .4byte _080ED1C4 - .4byte _080ED1D8 - .4byte _080ED1F4 - .4byte _080ED208 - .4byte _080ED220 - .4byte _080ED24C - .4byte _080ED260 - .4byte _080ED28C - .4byte _080ED2A0 - .4byte _080ED2CC - .4byte _080ED2EA -_080ED094: - bl sub_80F1E84 - movs r0, 0x1 - bl sub_80F2D04 - movs r0, 0x5 - bl sub_80F2D04 - ldr r1, _080ED0B0 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - b _080ED27C - .align 2, 0 -_080ED0B0: .4byte 0x02000000 -_080ED0B4: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080ED0C0 - b _080ED308 -_080ED0C0: - movs r0, 0 - bl sub_80EEFBC - ldr r1, _080ED0D0 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED27C - .align 2, 0 -_080ED0D0: .4byte 0x02000000 -_080ED0D4: - bl sub_80EEF34 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080ED0E2 - b _080ED308 -_080ED0E2: - ldr r4, _080ED104 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED27C - .align 2, 0 -_080ED104: .4byte 0x02000000 -_080ED108: - ldr r0, _080ED130 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080ED116 - b _080ED308 -_080ED116: - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80EF814 - ldr r1, _080ED134 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - b _080ED27C - .align 2, 0 -_080ED130: .4byte gPaletteFade -_080ED134: .4byte 0x02000000 -_080ED138: - bl sub_80F2620 - ldr r1, _080ED148 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED27C - .align 2, 0 -_080ED148: .4byte 0x02000000 -_080ED14C: - bl sub_80F4D44 - ldr r1, _080ED178 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED15E: - bl sub_80F4D88 - lsls r0, 24 - cmp r0, 0 - bne _080ED17C - ldr r1, _080ED178 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x2 - strh r0, [r1] - b _080ED308 - .align 2, 0 -_080ED178: .4byte 0x02000000 -_080ED17C: - ldr r1, _080ED188 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED27C - .align 2, 0 -_080ED188: .4byte 0x02000000 -_080ED18C: - bl sub_8055870 - cmp r0, 0 - beq _080ED196 - b _080ED308 -_080ED196: - ldr r1, _080ED1A8 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - b _080ED308 - .align 2, 0 -_080ED1A8: .4byte 0x02000000 -_080ED1AC: - bl sub_8055870 - cmp r0, 0 - beq _080ED1B6 - b _080ED308 -_080ED1B6: - ldr r1, _080ED1C0 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - b _080ED27C - .align 2, 0 -_080ED1C0: .4byte 0x02000000 -_080ED1C4: - movs r0, 0 - bl sub_80F0264 - ldr r1, _080ED1F0 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED1D8: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - beq _080ED1E4 - b _080ED308 -_080ED1E4: - ldr r1, _080ED1F0 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080ED27C - .align 2, 0 -_080ED1F0: .4byte 0x02000000 -_080ED1F4: - movs r0, 0 - bl sub_80F3008 - ldr r1, _080ED204 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - b _080ED27C - .align 2, 0 -_080ED204: .4byte 0x02000000 -_080ED208: - bl sub_8055870 - cmp r0, 0 - beq _080ED212 - b _080ED308 -_080ED212: - ldr r1, _080ED21C - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED27C - .align 2, 0 -_080ED21C: .4byte 0x02000000 -_080ED220: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ED248 - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED27C - .align 2, 0 -_080ED248: .4byte sub_80EBD18 -_080ED24C: - movs r0, 0x4 - bl sub_80EED2C - ldr r1, _080ED25C - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - b _080ED27C - .align 2, 0 -_080ED25C: .4byte 0x02000000 -_080ED260: - ldr r0, _080ED284 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080ED308 - ldr r2, _080ED288 - adds r0, r4, r2 - strh r1, [r0] - movs r3, 0xC1 - lsls r3, 2 - adds r1, r4, r3 -_080ED27C: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ED308 - .align 2, 0 -_080ED284: .4byte gPaletteFade -_080ED288: .4byte 0x00000306 -_080ED28C: - movs r0, 0x1 - bl sub_80F2C80 - ldr r1, _080ED2C4 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED2A0: - movs r0, 0x1 - bl sub_80F2CBC - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080ED308 - ldr r0, _080ED2C4 - ldr r3, _080ED2C8 - adds r1, r0, r3 - strh r2, [r1] - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - b _080ED308 - .align 2, 0 -_080ED2C4: .4byte 0x02000000 -_080ED2C8: .4byte 0x00000306 -_080ED2CC: - ldr r4, _080ED310 - ldr r2, _080ED314 - adds r0, r4, r2 - ldrb r0, [r0] - adds r0, 0x7 - lsls r0, 24 - lsrs r0, 24 - bl sub_80F2C80 - movs r3, 0xC1 - lsls r3, 2 - adds r4, r3 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080ED2EA: - ldr r0, _080ED310 - ldr r1, _080ED314 - adds r0, r1 - ldrb r0, [r0] - adds r0, 0x7 - lsls r0, 24 - lsrs r0, 24 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080ED308 - ldr r0, _080ED318 - bl sub_80EBDBC -_080ED308: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED310: .4byte 0x02000000 -_080ED314: .4byte 0x00006dfc -_080ED318: .4byte sub_80ED31C - thumb_func_end sub_80ED01C - - thumb_func_start sub_80ED31C -sub_80ED31C: @ 80ED31C - push {r4,lr} - ldr r0, _080ED338 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0x1 - beq _080ED3A8 - cmp r0, 0x1 - bgt _080ED33C - cmp r0, 0 - beq _080ED342 - b _080ED3CA - .align 2, 0 -_080ED338: .4byte 0x02000000 -_080ED33C: - cmp r0, 0x2 - beq _080ED3C0 - b _080ED3CA -_080ED342: - bl sub_80F5DD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080ED374 - cmp r0, 0x2 - beq _080ED380 - ldr r0, _080ED36C - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080ED38C - movs r0, 0x5 - bl PlaySE - ldr r0, _080ED370 - bl sub_80EBDBC - b _080ED3CA - .align 2, 0 -_080ED36C: .4byte gMain -_080ED370: .4byte sub_80ED4D8 -_080ED374: - movs r0, 0x5 - bl PlaySE - bl ShowMapNamePopUpWindow - b _080ED3CA -_080ED380: - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - adds r0, 0x1 - b _080ED3C8 -_080ED38C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080ED3CA - movs r0, 0x5 - bl PlaySE - ldr r0, _080ED3A4 - bl sub_80EBDBC - b _080ED3CA - .align 2, 0 -_080ED3A4: .4byte sub_80ECD80 -_080ED3A8: - bl sub_80F0718 - lsls r0, 24 - cmp r0, 0 - bne _080ED3CA - bl ShowMapNamePopUpWindow - bl sub_80F3264 - ldrh r0, [r4] - adds r0, 0x1 - b _080ED3C8 -_080ED3C0: - bl sub_8055870 - cmp r0, 0 - bne _080ED3CA -_080ED3C8: - strh r0, [r4] -_080ED3CA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ED31C - - thumb_func_start sub_80ED3D0 -sub_80ED3D0: @ 80ED3D0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080ED3EC - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x8 - bhi _080ED4C6 - lsls r0, 2 - ldr r1, _080ED3F0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED3EC: .4byte 0x02000000 -_080ED3F0: .4byte _080ED3F4 - .align 2, 0 -_080ED3F4: - .4byte _080ED418 - .4byte _080ED420 - .4byte _080ED42A - .4byte _080ED432 - .4byte _080ED446 - .4byte _080ED458 - .4byte _080ED462 - .4byte _080ED498 - .4byte _080ED4B4 -_080ED418: - movs r0, 0 - bl SetVBlankCallback - b _080ED49E -_080ED420: - bl sub_80EED0C - bl sub_80F6134 - b _080ED49E -_080ED42A: - movs r0, 0 - bl sub_80EEFBC - b _080ED49E -_080ED432: - movs r0, 0 - bl sub_80F0264 - ldr r1, _080ED454 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED446: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - bne _080ED4C6 - b _080ED49E - .align 2, 0 -_080ED454: .4byte 0x02000000 -_080ED458: - bl sub_8055870 - cmp r0, 0 - bne _080ED4C6 - b _080ED49E -_080ED462: - movs r0, 0 - bl sub_80F3008 - ldr r4, _080ED490 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ED494 - bl SetVBlankCallback - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080ED4A6 - .align 2, 0 -_080ED490: .4byte 0x02000000 -_080ED494: .4byte sub_80EBD18 -_080ED498: - movs r0, 0x4 - bl sub_80EED2C -_080ED49E: - ldr r1, _080ED4B0 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080ED4A6: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ED4C6 - .align 2, 0 -_080ED4B0: .4byte 0x02000000 -_080ED4B4: - ldr r0, _080ED4D0 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ED4C6 - ldr r0, _080ED4D4 - bl sub_80EBDBC -_080ED4C6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED4D0: .4byte gPaletteFade -_080ED4D4: .4byte sub_80ED31C - thumb_func_end sub_80ED3D0 - - thumb_func_start sub_80ED4D8 -sub_80ED4D8: @ 80ED4D8 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080ED4F8 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x8 - bls _080ED4EE - b _080ED60E -_080ED4EE: - lsls r0, 2 - ldr r1, _080ED4FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED4F8: .4byte 0x02000000 -_080ED4FC: .4byte _080ED500 - .align 2, 0 -_080ED500: - .4byte _080ED524 - .4byte _080ED542 - .4byte _080ED564 - .4byte _080ED57C - .4byte _080ED582 - .4byte _080ED594 - .4byte _080ED5A4 - .4byte _080ED5E0 - .4byte _080ED5FC -_080ED524: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED5EE -_080ED542: - ldr r0, _080ED560 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ED60E - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80F3130 - b _080ED5E6 - .align 2, 0 -_080ED560: .4byte gPaletteFade -_080ED564: - bl sub_8055870 - cmp r0, 0 - bne _080ED60E - ldr r1, _080ED578 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080ED5EE - .align 2, 0 -_080ED578: .4byte 0x02000000 -_080ED57C: - bl sub_80F4CF0 - b _080ED5E6 -_080ED582: - bl sub_80EFF34 - ldr r1, _080ED5A0 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED594: - bl sub_80EFF68 - lsls r0, 24 - cmp r0, 0 - bne _080ED60E - b _080ED5E6 - .align 2, 0 -_080ED5A0: .4byte 0x02000000 -_080ED5A4: - bl sub_80F35B4 - movs r0, 0x2 - bl sub_80EEFBC - ldr r4, _080ED5D8 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ED5DC - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED5EE - .align 2, 0 -_080ED5D8: .4byte 0x02000000 -_080ED5DC: .4byte sub_80EBD4C -_080ED5E0: - movs r0, 0x2 - bl sub_80EED2C -_080ED5E6: - ldr r1, _080ED5F8 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080ED5EE: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ED60E - .align 2, 0 -_080ED5F8: .4byte 0x02000000 -_080ED5FC: - ldr r0, _080ED618 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ED60E - ldr r0, _080ED61C - bl sub_80EBDBC -_080ED60E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED618: .4byte gPaletteFade -_080ED61C: .4byte sub_80ED858 - thumb_func_end sub_80ED4D8 - - thumb_func_start sub_80ED620 -sub_80ED620: @ 80ED620 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080ED640 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x10 - bls _080ED636 - b _080ED846 -_080ED636: - lsls r0, 2 - ldr r1, _080ED644 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED640: .4byte 0x02000000 -_080ED644: .4byte _080ED648 - .align 2, 0 -_080ED648: - .4byte _080ED68C - .4byte _080ED6A4 - .4byte _080ED6B8 - .4byte _080ED6EC - .4byte _080ED730 - .4byte _080ED736 - .4byte _080ED750 - .4byte _080ED762 - .4byte _080ED76C - .4byte _080ED784 - .4byte _080ED78A - .4byte _080ED7C0 - .4byte _080ED7D4 - .4byte _080ED7EC - .4byte _080ED800 - .4byte _080ED820 - .4byte _080ED834 -_080ED68C: - bl sub_80F1E84 - movs r0, 0x1 - bl sub_80F2D04 - ldr r1, _080ED6A0 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED814 - .align 2, 0 -_080ED6A0: .4byte 0x02000000 -_080ED6A4: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080ED6B0 - b _080ED846 -_080ED6B0: - movs r0, 0x1 - bl sub_80EEFBC - b _080ED80C -_080ED6B8: - bl sub_80EEF34 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080ED6C6 - b _080ED846 -_080ED6C6: - ldr r4, _080ED6E8 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED814 - .align 2, 0 -_080ED6E8: .4byte 0x02000000 -_080ED6EC: - ldr r0, _080ED724 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080ED6FE - b _080ED846 -_080ED6FE: - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80EF814 - ldr r0, _080ED728 - ldr r2, _080ED72C - adds r1, r0, r2 - strb r4, [r1] - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - b _080ED846 - .align 2, 0 -_080ED724: .4byte gPaletteFade -_080ED728: .4byte 0x02000000 -_080ED72C: .4byte 0x000076aa -_080ED730: - bl sub_80F2620 - b _080ED80C -_080ED736: - ldr r0, _080ED74C - adds r1, r4, r0 - movs r0, 0x2 - strb r0, [r1] - bl sub_80F4BD0 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED814 - .align 2, 0 -_080ED74C: .4byte 0x0000d162 -_080ED750: - bl sub_80EFF34 - ldr r1, _080ED768 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED762: - bl sub_80EFF68 - b _080ED806 - .align 2, 0 -_080ED768: .4byte 0x02000000 -_080ED76C: - bl sub_8055870 - cmp r0, 0 - bne _080ED846 - ldr r1, _080ED780 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED814 - .align 2, 0 -_080ED780: .4byte 0x02000000 -_080ED784: - bl sub_8055870 - b _080ED808 -_080ED78A: - bl sub_80F33A8 - ldr r4, _080ED7B8 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ED7BC - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED814 - .align 2, 0 -_080ED7B8: .4byte 0x02000000 -_080ED7BC: .4byte sub_80EBD4C -_080ED7C0: - movs r0, 0x2 - bl sub_80EED2C - ldr r1, _080ED7D0 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED814 - .align 2, 0 -_080ED7D0: .4byte 0x02000000 -_080ED7D4: - ldr r0, _080ED7E8 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ED846 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED814 - .align 2, 0 -_080ED7E8: .4byte gPaletteFade -_080ED7EC: - movs r0, 0x1 - bl sub_80F2C80 - ldr r1, _080ED81C - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED800: - movs r0, 0x1 - bl sub_80F2CBC -_080ED806: - lsls r0, 24 -_080ED808: - cmp r0, 0 - bne _080ED846 -_080ED80C: - ldr r1, _080ED81C - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 -_080ED814: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ED846 - .align 2, 0 -_080ED81C: .4byte 0x02000000 -_080ED820: - movs r0, 0x6 - bl sub_80F2C80 - ldr r1, _080ED850 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED834: - movs r0, 0x6 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080ED846 - ldr r0, _080ED854 - bl sub_80EBDBC -_080ED846: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED850: .4byte 0x02000000 -_080ED854: .4byte sub_80ED858 - thumb_func_end sub_80ED620 - - thumb_func_start sub_80ED858 -sub_80ED858: @ 80ED858 - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, _080ED878 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r5, r1, 0 - cmp r0, 0xB - bls _080ED86E - b _080EDB7A -_080ED86E: - lsls r0, 2 - ldr r1, _080ED87C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED878: .4byte 0x02000000 -_080ED87C: .4byte _080ED880 - .align 2, 0 -_080ED880: - .4byte _080ED8B0 - .4byte _080ED8CC - .4byte _080ED8EC - .4byte _080ED904 - .4byte _080ED91A - .4byte _080EDA68 - .4byte _080EDA8C - .4byte _080EDAA4 - .4byte _080EDAC0 - .4byte _080EDAE8 - .4byte _080EDB7A - .4byte _080EDB28 -_080ED8B0: - bl sub_80F4F78 - bl sub_80F5B38 - ldr r0, _080ED8C8 - movs r4, 0xC1 - lsls r4, 2 - adds r0, r4 - movs r1, 0x1 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080ED8C8: .4byte 0x02000000 -_080ED8CC: - bl sub_80F5B50 - lsls r0, 24 - cmp r0, 0 - beq _080ED8D8 - b _080EDB7A -_080ED8D8: - ldr r0, _080ED8E8 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080ED8E8: .4byte 0x02000000 -_080ED8EC: - movs r0, 0x1 - bl sub_80F0174 - ldr r0, _080ED900 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r2 - movs r1, 0x3 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080ED900: .4byte 0x02000000 -_080ED904: - bl sub_80F4FB4 - lsls r0, 24 - cmp r0, 0 - beq _080ED910 - b _080EDB7A -_080ED910: - bl sub_80F3C94 - bl sub_80F3D00 - b _080EDAD4 -_080ED91A: - ldr r2, _080ED960 - ldrh r1, [r2, 0x2C] - movs r0, 0x40 - ands r0, r1 - adds r3, r2, 0 - cmp r0, 0 - beq _080ED970 - ldr r1, _080ED964 - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080ED970 - ldr r2, _080ED968 - adds r0, r5, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080ED948 - ldr r4, _080ED96C - adds r0, r5, r4 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080ED970 -_080ED948: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_80F5060 - bl move_anim_execute - movs r2, 0xC1 - lsls r2, 2 - adds r1, r5, r2 - b _080ED9B8 - .align 2, 0 -_080ED960: .4byte gMain -_080ED964: .4byte 0x000087cb -_080ED968: .4byte 0x000076aa -_080ED96C: .4byte 0x000087dc -_080ED970: - ldrh r1, [r3, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080ED9CC - ldr r4, _080ED9C0 - adds r0, r5, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _080ED9CC - ldr r1, _080ED9C4 - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080ED9A2 - ldr r2, _080ED9C8 - adds r0, r5, r2 - subs r4, 0x57 - adds r1, r5, r4 - movs r4, 0 - ldrsh r2, [r0, r4] - movs r4, 0 - ldrsh r0, [r1, r4] - cmp r2, r0 - bge _080ED9CC -_080ED9A2: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_80F5060 - bl move_anim_execute - movs r0, 0xC1 - lsls r0, 2 - adds r1, r5, r0 -_080ED9B8: - movs r0, 0x5 - strh r0, [r1] - b _080EDB7A - .align 2, 0 -_080ED9C0: .4byte 0x000087cb -_080ED9C4: .4byte 0x000076aa -_080ED9C8: .4byte 0x000087dc -_080ED9CC: - ldrh r2, [r3, 0x2E] - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _080ED9F8 - movs r0, 0x5 - bl PlaySE - bl sub_80F4FDC - bl move_anim_execute - ldr r0, _080ED9F4 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x9 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080ED9F4: .4byte 0x02000000 -_080ED9F8: - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _080EDA02 - b _080EDB7A -_080EDA02: - adds r4, r5, 0 - ldr r2, _080EDA38 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080EDA44 - ldr r1, _080EDA3C - adds r0, r4, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r2, _080EDA40 - adds r0, r4, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - subs r0, 0x1 - cmp r1, r0 - beq _080EDA26 - b _080EDB7A -_080EDA26: - movs r0, 0x5 - bl PlaySE - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - movs r0, 0x9 - strh r0, [r1] - b _080EDB7A - .align 2, 0 -_080EDA38: .4byte 0x000076aa -_080EDA3C: .4byte 0x000087dc -_080EDA40: .4byte 0x000087da -_080EDA44: - ldr r1, _080EDA64 - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080EDA50 - b _080EDB7A -_080EDA50: - movs r0, 0x5 - bl PlaySE - movs r2, 0xC1 - lsls r2, 2 - adds r1, r5, r2 - movs r0, 0x7 - strh r0, [r1] - b _080EDB7A - .align 2, 0 -_080EDA64: .4byte 0x00006dac -_080EDA68: - bl gpu_sync_bg_show - lsls r0, 24 - cmp r0, 0 - beq _080EDA74 - b _080EDB7A -_080EDA74: - bl sub_80F3D00 - ldr r0, _080EDA88 - movs r4, 0xC1 - lsls r4, 2 - adds r0, r4 - movs r1, 0x6 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080EDA88: .4byte 0x02000000 -_080EDA8C: - bl sub_8055870 - cmp r0, 0 - bne _080EDB7A - ldr r0, _080EDAA0 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - b _080EDADC - .align 2, 0 -_080EDAA0: .4byte 0x02000000 -_080EDAA4: - movs r0, 0x3 - bl sub_80EEFBC - bl sub_80F3668 - ldr r0, _080EDABC - movs r2, 0xC1 - lsls r2, 2 - adds r0, r2 - movs r1, 0x8 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080EDABC: .4byte 0x02000000 -_080EDAC0: - bl sub_80F7500 - lsls r0, 24 - cmp r0, 0 - bne _080EDB7A - movs r0, 0x2 - bl sub_80EEFBC - bl sub_80F3698 -_080EDAD4: - ldr r0, _080EDAE4 - movs r4, 0xC1 - lsls r4, 2 - adds r0, r4 -_080EDADC: - movs r1, 0x4 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080EDAE4: .4byte 0x02000000 -_080EDAE8: - bl sub_80F5038 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080EDB7A - movs r0, 0 - bl sub_80F0174 - bl sub_80F2F48 - ldr r5, _080EDB24 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r5, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r4, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r5, r2 - movs r0, 0xB - strh r0, [r1] - b _080EDB7A - .align 2, 0 -_080EDB24: .4byte 0x02000000 -_080EDB28: - ldr r0, _080EDB60 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EDB7A - bl sub_80F3CE8 - bl sub_80F5BDC - ldr r0, _080EDB64 - ldr r4, _080EDB68 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _080EDB70 - bl sub_80F357C - movs r0, 0x1 - bl sub_80F2D6C - movs r0, 0x6 - bl sub_80F2D6C - ldr r0, _080EDB6C - bl sub_80EBDBC - b _080EDB7A - .align 2, 0 -_080EDB60: .4byte gPaletteFade -_080EDB64: .4byte 0x02000000 -_080EDB68: .4byte 0x000076aa -_080EDB6C: .4byte sub_80ECA10 -_080EDB70: - bl sub_80F3614 - ldr r0, _080EDB84 - bl sub_80EBDBC -_080EDB7A: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EDB84: .4byte sub_80ED3D0 - thumb_func_end sub_80ED858 - - thumb_func_start sub_80EDB88 -sub_80EDB88: @ 80EDB88 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080EDBA8 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x11 - bls _080EDB9E - b _080EDDAA -_080EDB9E: - lsls r0, 2 - ldr r1, _080EDBAC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EDBA8: .4byte 0x02000000 -_080EDBAC: .4byte _080EDBB0 - .align 2, 0 -_080EDBB0: - .4byte _080EDBF8 - .4byte _080EDC04 - .4byte _080EDC24 - .4byte _080EDC58 - .4byte _080EDC7C - .4byte _080EDC90 - .4byte _080EDCA2 - .4byte _080EDCC0 - .4byte _080EDCDC - .4byte _080EDCE6 - .4byte _080EDCFA - .4byte _080EDD0C - .4byte _080EDD20 - .4byte _080EDD34 - .4byte _080EDD48 - .4byte _080EDD52 - .4byte _080EDD7C - .4byte _080EDD98 -_080EDBF8: - bl sub_80F1E84 - movs r0, 0 - bl sub_80F2D04 - b _080EDD82 -_080EDC04: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080EDC10 - b _080EDDAA -_080EDC10: - movs r0, 0x4 - bl sub_80EEFBC - ldr r1, _080EDC20 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EDD8A - .align 2, 0 -_080EDC20: .4byte 0x02000000 -_080EDC24: - bl sub_80EEF34 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080EDC32 - b _080EDDAA -_080EDC32: - ldr r4, _080EDC54 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EDD8A - .align 2, 0 -_080EDC54: .4byte 0x02000000 -_080EDC58: - ldr r0, _080EDC78 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EDC66 - b _080EDDAA -_080EDC66: - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80EF814 - b _080EDD82 - .align 2, 0 -_080EDC78: .4byte gPaletteFade -_080EDC7C: - bl sub_80F2620 - ldr r1, _080EDC8C - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EDD8A - .align 2, 0 -_080EDC8C: .4byte 0x02000000 -_080EDC90: - bl sub_80F638C - ldr r1, _080EDCBC - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EDCA2: - bl sub_80F63D0 - lsls r0, 24 - cmp r0, 0 - bne _080EDD82 - ldr r1, _080EDCBC - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x2 - strh r0, [r1] - b _080EDDAA - .align 2, 0 -_080EDCBC: .4byte 0x02000000 -_080EDCC0: - bl sub_8055870 - cmp r0, 0 - bne _080EDDAA - ldr r1, _080EDCD8 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - b _080EDDAA - .align 2, 0 -_080EDCD8: .4byte 0x02000000 -_080EDCDC: - bl sub_8055870 - cmp r0, 0 - bne _080EDDAA - b _080EDD82 -_080EDCE6: - movs r0, 0x1 - bl sub_80F0264 - ldr r1, _080EDD08 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EDCFA: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - bne _080EDDAA - b _080EDD82 - .align 2, 0 -_080EDD08: .4byte 0x02000000 -_080EDD0C: - movs r0, 0x2 - bl sub_80F2C80 - ldr r1, _080EDD30 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EDD20: - movs r0, 0x2 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080EDDAA - b _080EDD82 - .align 2, 0 -_080EDD30: .4byte 0x02000000 -_080EDD34: - movs r0, 0x1 - bl sub_80F3008 - ldr r1, _080EDD44 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EDD8A - .align 2, 0 -_080EDD44: .4byte 0x02000000 -_080EDD48: - bl sub_8055870 - cmp r0, 0 - bne _080EDDAA - b _080EDD82 -_080EDD52: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080EDD78 - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EDD8A - .align 2, 0 -_080EDD78: .4byte sub_80EBD18 -_080EDD7C: - movs r0, 0x4 - bl sub_80EED2C -_080EDD82: - ldr r1, _080EDD94 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080EDD8A: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EDDAA - .align 2, 0 -_080EDD94: .4byte 0x02000000 -_080EDD98: - ldr r0, _080EDDB4 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EDDAA - ldr r0, _080EDDB8 - bl sub_80EBDBC -_080EDDAA: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EDDB4: .4byte gPaletteFade -_080EDDB8: .4byte sub_80EDDBC - thumb_func_end sub_80EDB88 - - thumb_func_start sub_80EDDBC -sub_80EDDBC: @ 80EDDBC - push {r4,lr} - ldr r0, _080EDDD8 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0x1 - beq _080EDE48 - cmp r0, 0x1 - bgt _080EDDDC - cmp r0, 0 - beq _080EDDE2 - b _080EDE6A - .align 2, 0 -_080EDDD8: .4byte 0x02000000 -_080EDDDC: - cmp r0, 0x2 - beq _080EDE60 - b _080EDE6A -_080EDDE2: - bl sub_80F5DD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EDE14 - cmp r0, 0x2 - beq _080EDE20 - ldr r0, _080EDE0C - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080EDE2C - movs r0, 0x5 - bl PlaySE - ldr r0, _080EDE10 - bl sub_80EBDBC - b _080EDE6A - .align 2, 0 -_080EDE0C: .4byte gMain -_080EDE10: .4byte sub_80EDEE4 -_080EDE14: - movs r0, 0x5 - bl PlaySE - bl ShowMapNamePopUpWindow - b _080EDE6A -_080EDE20: - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - adds r0, 0x1 - b _080EDE68 -_080EDE2C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EDE6A - movs r0, 0x5 - bl PlaySE - ldr r0, _080EDE44 - bl sub_80EBDBC - b _080EDE6A - .align 2, 0 -_080EDE44: .4byte sub_80EDE70 -_080EDE48: - bl sub_80F0718 - lsls r0, 24 - cmp r0, 0 - bne _080EDE6A - bl ShowMapNamePopUpWindow - bl sub_80F3264 - ldrh r0, [r4] - adds r0, 0x1 - b _080EDE68 -_080EDE60: - bl sub_8055870 - cmp r0, 0 - bne _080EDE6A -_080EDE68: - strh r0, [r4] -_080EDE6A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80EDDBC - - thumb_func_start sub_80EDE70 -sub_80EDE70: @ 80EDE70 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080EDE8C - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r2, [r4] - cmp r2, 0x1 - beq _080EDEAE - cmp r2, 0x1 - bgt _080EDE90 - cmp r2, 0 - beq _080EDE96 - b _080EDED6 - .align 2, 0 -_080EDE8C: .4byte 0x02000000 -_080EDE90: - cmp r2, 0x2 - beq _080EDED0 - b _080EDED6 -_080EDE96: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080EDEC4 -_080EDEAE: - ldr r0, _080EDECC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EDED6 - bl sub_80F3130 - movs r0, 0x2 - bl sub_80F2D6C -_080EDEC4: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EDED6 - .align 2, 0 -_080EDECC: .4byte gPaletteFade -_080EDED0: - ldr r0, _080EDEE0 - bl sub_80EBDBC -_080EDED6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EDEE0: .4byte sub_80EC00C - thumb_func_end sub_80EDE70 - - thumb_func_start sub_80EDEE4 -sub_80EDEE4: @ 80EDEE4 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080EDF04 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0xA - bls _080EDEFA - b _080EE060 -_080EDEFA: - lsls r0, 2 - ldr r1, _080EDF08 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EDF04: .4byte 0x02000000 -_080EDF08: .4byte _080EDF0C - .align 2, 0 -_080EDF0C: - .4byte _080EDF38 - .4byte _080EDF50 - .4byte _080EDF80 - .4byte _080EDF98 - .4byte _080EDFB0 - .4byte _080EDFC8 - .4byte _080EDFE0 - .4byte _080EDFF8 - .4byte _080EE01C - .4byte _080EE030 - .4byte _080EE050 -_080EDF38: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080EE03C -_080EDF50: - ldr r0, _080EDF78 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EDF5E - b _080EE060 -_080EDF5E: - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80F3130 - ldr r1, _080EDF7C - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE042 - .align 2, 0 -_080EDF78: .4byte gPaletteFade -_080EDF7C: .4byte 0x02000000 -_080EDF80: - bl sub_80F66E0 - bl sub_80EEE08 - ldr r1, _080EDF94 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE042 - .align 2, 0 -_080EDF94: .4byte 0x02000000 -_080EDF98: - bl sub_80F1080 - lsls r0, 24 - cmp r0, 0 - bne _080EE060 - ldr r1, _080EDFAC - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE042 - .align 2, 0 -_080EDFAC: .4byte 0x02000000 -_080EDFB0: - movs r0, 0x5 - bl sub_80EEFBC - bl sub_80F38B8 - ldr r1, _080EDFDC - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EDFC8: - bl sub_80F38EC - lsls r0, 24 - cmp r0, 0 - bne _080EE060 - ldr r1, _080EDFDC - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE042 - .align 2, 0 -_080EDFDC: .4byte 0x02000000 -_080EDFE0: - bl sub_8055870 - cmp r0, 0 - bne _080EE060 - ldr r1, _080EDFF4 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE042 - .align 2, 0 -_080EDFF4: .4byte 0x02000000 -_080EDFF8: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080EE018 - bl SetVBlankCallback - b _080EE03C - .align 2, 0 -_080EE018: .4byte sub_80EBD18 -_080EE01C: - movs r0, 0x3 - bl sub_80EED2C - ldr r1, _080EE02C - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE042 - .align 2, 0 -_080EE02C: .4byte 0x02000000 -_080EE030: - ldr r0, _080EE04C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE060 -_080EE03C: - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 -_080EE042: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EE060 - .align 2, 0 -_080EE04C: .4byte gPaletteFade -_080EE050: - bl sub_80F170C - lsls r0, 24 - cmp r0, 0 - bne _080EE060 - ldr r0, _080EE068 - bl sub_80EBDBC -_080EE060: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EE068: .4byte sub_80EE06C - thumb_func_end sub_80EDEE4 - - thumb_func_start sub_80EE06C -sub_80EE06C: @ 80EE06C - push {r4,r5,lr} - ldr r1, _080EE08C - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x8 - bls _080EE080 - b _080EE288 -_080EE080: - lsls r0, 2 - ldr r1, _080EE090 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EE08C: .4byte 0x02000000 -_080EE090: .4byte _080EE094 - .align 2, 0 -_080EE094: - .4byte _080EE0B8 - .4byte _080EE0CC - .4byte _080EE180 - .4byte _080EE19C - .4byte _080EE1B8 - .4byte _080EE1D0 - .4byte _080EE1F8 - .4byte _080EE250 - .4byte _080EE26C -_080EE0B8: - bl sub_80F15A8 - ldr r1, _080EE0C8 - movs r5, 0xC1 - lsls r5, 2 - adds r1, r5 - b _080EE1C4 - .align 2, 0 -_080EE0C8: .4byte 0x02000000 -_080EE0CC: - ldr r2, _080EE0FC - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - adds r3, r2, 0 - cmp r0, 0 - beq _080EE104 - ldr r1, _080EE100 - adds r0, r4, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - beq _080EE104 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl sub_80F6A4C - movs r5, 0xC1 - lsls r5, 2 - adds r1, r4, r5 - b _080EE1C4 - .align 2, 0 -_080EE0FC: .4byte gMain -_080EE100: .4byte 0x000087dc -_080EE104: - ldrh r1, [r3, 0x30] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EE140 - ldr r1, _080EE138 - adds r0, r4, r1 - ldr r2, _080EE13C - adds r1, r4, r2 - movs r5, 0 - ldrsh r2, [r0, r5] - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r2, r0 - bge _080EE140 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_80F6A4C - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080EE1C4 - .align 2, 0 -_080EE138: .4byte 0x000087dc -_080EE13C: .4byte 0x00008774 -_080EE140: - ldrh r2, [r3, 0x2E] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _080EE164 - movs r0, 0x5 - bl PlaySE - movs r0, 0xB - bl sub_80EEFBC - ldr r0, _080EE160 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - b _080EE262 - .align 2, 0 -_080EE160: .4byte 0x02000000 -_080EE164: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - bne _080EE16E - b _080EE288 -_080EE16E: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EE17C - bl sub_80EBDBC - b _080EE288 - .align 2, 0 -_080EE17C: .4byte sub_80EE294 -_080EE180: - bl sub_80F6AF0 - lsls r0, 24 - cmp r0, 0 - beq _080EE18C - b _080EE288 -_080EE18C: - ldr r1, _080EE198 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE1C4 - .align 2, 0 -_080EE198: .4byte 0x02000000 -_080EE19C: - bl sub_8055870 - adds r1, r0, 0 - cmp r1, 0 - bne _080EE288 - ldr r0, _080EE1B4 - movs r5, 0xC1 - lsls r5, 2 - adds r0, r5 - strh r1, [r0] - b _080EE288 - .align 2, 0 -_080EE1B4: .4byte 0x02000000 -_080EE1B8: - bl sub_80F3B00 - ldr r1, _080EE1CC - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080EE1C4: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EE288 - .align 2, 0 -_080EE1CC: .4byte 0x02000000 -_080EE1D0: - bl sub_80F3B58 - lsls r0, 24 - cmp r0, 0 - bne _080EE288 - bl sub_80F1494 - ldr r1, _080EE1F4 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - bl sub_80EED9C - b _080EE288 - .align 2, 0 -_080EE1F4: .4byte 0x02000000 -_080EE1F8: - bl sub_80F68E8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080EE224 - cmp r0, 0x1 - bne _080EE224 - movs r0, 0x5 - bl PlaySE - bl sub_80F3B94 - ldr r0, _080EE220 - movs r5, 0xC1 - lsls r5, 2 - adds r0, r5 - movs r1, 0x7 - strh r1, [r0] - b _080EE288 - .align 2, 0 -_080EE220: .4byte 0x02000000 -_080EE224: - ldr r0, _080EE248 - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EE288 - movs r0, 0x5 - bl PlaySE - bl sub_80F3B94 - ldr r0, _080EE24C - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x8 - strh r1, [r0] - b _080EE288 - .align 2, 0 -_080EE248: .4byte gMain -_080EE24C: .4byte 0x02000000 -_080EE250: - bl sub_80F3BD4 - lsls r0, 24 - cmp r0, 0 - bne _080EE288 - ldr r0, _080EE268 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r2 -_080EE262: - movs r1, 0x4 - strh r1, [r0] - b _080EE288 - .align 2, 0 -_080EE268: .4byte 0x02000000 -_080EE26C: - bl sub_80F3BD4 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080EE288 - movs r0, 0x5 - bl sub_80EEFBC - ldr r0, _080EE290 - movs r5, 0xC1 - lsls r5, 2 - adds r0, r5 - strh r4, [r0] -_080EE288: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EE290: .4byte 0x02000000 - thumb_func_end sub_80EE06C - - thumb_func_start sub_80EE294 -sub_80EE294: @ 80EE294 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080EE2B4 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x8 - bls _080EE2AA - b _080EE3C6 -_080EE2AA: - lsls r0, 2 - ldr r1, _080EE2B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EE2B4: .4byte 0x02000000 -_080EE2B8: .4byte _080EE2BC - .align 2, 0 -_080EE2BC: - .4byte _080EE2E0 - .4byte _080EE2FE - .4byte _080EE324 - .4byte _080EE33C - .4byte _080EE34C - .4byte _080EE370 - .4byte _080EE37A - .4byte _080EE39A - .4byte _080EE3B4 -_080EE2E0: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EE3A8 -_080EE2FE: - ldr r0, _080EE320 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE3C6 - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80F3C2C - bl sub_80EEE08 - b _080EE3A0 - .align 2, 0 -_080EE320: .4byte gPaletteFade -_080EE324: - bl sub_80F6134 - movs r0, 0x1 - bl sub_80F0264 - ldr r1, _080EE348 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EE33C: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - bne _080EE3C6 - b _080EE3A0 - .align 2, 0 -_080EE348: .4byte 0x02000000 -_080EE34C: - movs r0, 0x4 - bl sub_80EEFBC - movs r0, 0x1 - bl sub_80F3008 - ldr r0, _080EE368 - bl SetVBlankCallback - ldr r1, _080EE36C - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE3A8 - .align 2, 0 -_080EE368: .4byte sub_80EBD18 -_080EE36C: .4byte 0x02000000 -_080EE370: - bl sub_8055870 - cmp r0, 0 - bne _080EE3C6 - b _080EE3A0 -_080EE37A: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EE3A8 -_080EE39A: - movs r0, 0x4 - bl sub_80EED2C -_080EE3A0: - ldr r1, _080EE3B0 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080EE3A8: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EE3C6 - .align 2, 0 -_080EE3B0: .4byte 0x02000000 -_080EE3B4: - ldr r0, _080EE3D0 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE3C6 - ldr r0, _080EE3D4 - bl sub_80EBDBC -_080EE3C6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EE3D0: .4byte gPaletteFade -_080EE3D4: .4byte sub_80EDDBC - thumb_func_end sub_80EE294 - - thumb_func_start sub_80EE3D8 -sub_80EE3D8: @ 80EE3D8 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080EE3F8 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0xD - bls _080EE3EC - b _080EE57A -_080EE3EC: - lsls r0, 2 - ldr r1, _080EE3FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EE3F8: .4byte 0x02000000 -_080EE3FC: .4byte _080EE400 - .align 2, 0 -_080EE400: - .4byte _080EE438 - .4byte _080EE444 - .4byte _080EE458 - .4byte _080EE48C - .4byte _080EE4B0 - .4byte _080EE4B6 - .4byte _080EE4CA - .4byte _080EE4DC - .4byte _080EE4F0 - .4byte _080EE504 - .4byte _080EE50C - .4byte _080EE516 - .4byte _080EE54C - .4byte _080EE568 -_080EE438: - bl sub_80F1E84 - movs r0, 0 - bl sub_80F2D04 - b _080EE552 -_080EE444: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080EE450 - b _080EE57A -_080EE450: - movs r0, 0x9 - bl sub_80EEFBC - b _080EE552 -_080EE458: - bl sub_80EEF34 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080EE466 - b _080EE57A -_080EE466: - ldr r4, _080EE488 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080EE55A - .align 2, 0 -_080EE488: .4byte 0x02000000 -_080EE48C: - ldr r0, _080EE4AC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE57A - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80EF814 - bl sub_80EEE08 - b _080EE552 - .align 2, 0 -_080EE4AC: .4byte gPaletteFade -_080EE4B0: - bl sub_80F2620 - b _080EE552 -_080EE4B6: - movs r0, 0x2 - bl sub_80F0264 - ldr r1, _080EE4D8 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EE4CA: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - bne _080EE57A - b _080EE552 - .align 2, 0 -_080EE4D8: .4byte 0x02000000 -_080EE4DC: - movs r0, 0x3 - bl sub_80F2C80 - ldr r1, _080EE500 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EE4F0: - movs r0, 0x3 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080EE57A - b _080EE552 - .align 2, 0 -_080EE500: .4byte 0x02000000 -_080EE504: - movs r0, 0x2 - bl sub_80F3008 - b _080EE552 -_080EE50C: - bl sub_8055870 - cmp r0, 0 - bne _080EE57A - b _080EE552 -_080EE516: - bl sub_80F6F10 - ldr r4, _080EE544 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080EE548 - bl SetVBlankCallback - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080EE55A - .align 2, 0 -_080EE544: .4byte 0x02000000 -_080EE548: .4byte sub_80EBD68 -_080EE54C: - movs r0, 0x5 - bl sub_80EED2C -_080EE552: - ldr r1, _080EE564 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080EE55A: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EE57A - .align 2, 0 -_080EE564: .4byte 0x02000000 -_080EE568: - ldr r0, _080EE584 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE57A - ldr r0, _080EE588 - bl sub_80EBDBC -_080EE57A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EE584: .4byte gPaletteFade -_080EE588: .4byte sub_80EE58C - thumb_func_end sub_80EE3D8 - - thumb_func_start sub_80EE58C -sub_80EE58C: @ 80EE58C - push {r4,r5,lr} - ldr r5, _080EE5A8 - movs r0, 0xC1 - lsls r0, 2 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, 0x1 - beq _080EE624 - cmp r0, 0x1 - bgt _080EE5AC - cmp r0, 0 - beq _080EE5B2 - b _080EE652 - .align 2, 0 -_080EE5A8: .4byte 0x02000000 -_080EE5AC: - cmp r0, 0x2 - beq _080EE648 - b _080EE652 -_080EE5B2: - bl sub_80F5DD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EE5E4 - cmp r0, 0x2 - beq _080EE5FC - ldr r0, _080EE5DC - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080EE608 - movs r0, 0x5 - bl PlaySE - ldr r0, _080EE5E0 - bl sub_80EBDBC - b _080EE652 - .align 2, 0 -_080EE5DC: .4byte gMain -_080EE5E0: .4byte sub_80EE658 -_080EE5E4: - movs r0, 0x5 - bl PlaySE - ldr r1, _080EE5F8 - adds r0, r5, r1 - ldrb r0, [r0] - bl sub_80F0FFC - b _080EE652 - .align 2, 0 -_080EE5F8: .4byte 0x0000876e -_080EE5FC: - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - adds r0, 0x1 - b _080EE650 -_080EE608: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EE652 - movs r0, 0x5 - bl PlaySE - ldr r0, _080EE620 - bl sub_80EBDBC - b _080EE652 - .align 2, 0 -_080EE620: .4byte sub_80EE8F4 -_080EE624: - bl sub_80F0718 - lsls r0, 24 - cmp r0, 0 - bne _080EE652 - ldr r1, _080EE644 - adds r0, r5, r1 - ldrb r0, [r0] - bl sub_80F0FFC - bl sub_80F3264 - ldrh r0, [r4] - adds r0, 0x1 - b _080EE650 - .align 2, 0 -_080EE644: .4byte 0x0000876e -_080EE648: - bl sub_8055870 - cmp r0, 0 - bne _080EE652 -_080EE650: - strh r0, [r4] -_080EE652: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80EE58C - - thumb_func_start sub_80EE658 -sub_80EE658: @ 80EE658 - push {r4,r5,lr} - ldr r1, _080EE678 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x11 - bls _080EE66C - b _080EE8E8 -_080EE66C: - lsls r0, 2 - ldr r1, _080EE67C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EE678: .4byte 0x02000000 -_080EE67C: .4byte _080EE680 - .align 2, 0 -_080EE680: - .4byte _080EE6C8 - .4byte _080EE6DA - .4byte _080EE6F4 - .4byte _080EE708 - .4byte _080EE71C - .4byte _080EE730 - .4byte _080EE758 - .4byte _080EE76A - .4byte _080EE780 - .4byte _080EE820 - .4byte _080EE840 - .4byte _080EE854 - .4byte _080EE868 - .4byte _080EE86E - .4byte _080EE880 - .4byte _080EE898 - .4byte _080EE8B4 - .4byte _080EE8D4 -_080EE6C8: - movs r0, 0x1 - bl sub_80F3294 - movs r0, 0xA - bl sub_80EEFBC - bl sub_80F0B24 - b _080EE8BE -_080EE6DA: - bl sub_80F0B44 - lsls r0, 24 - cmp r0, 0 - beq _080EE6E6 - b _080EE8E8 -_080EE6E6: - ldr r1, _080EE6F0 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE8C6 - .align 2, 0 -_080EE6F0: .4byte 0x02000000 -_080EE6F4: - bl sub_80F0F64 - ldr r1, _080EE704 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE8C6 - .align 2, 0 -_080EE704: .4byte 0x02000000 -_080EE708: - bl sub_80F0FEC - lsls r0, 24 - cmp r0, 0 - beq _080EE714 - b _080EE8E8 -_080EE714: - movs r0, 0x1 - bl sub_80F6FB8 - b _080EE8BE -_080EE71C: - bl sub_80F6DB8 - ldr r1, _080EE72C - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE8C6 - .align 2, 0 -_080EE72C: .4byte 0x02000000 -_080EE730: - ldr r4, _080EE750 - adds r0, r4, 0 - subs r0, 0x1A - ldrh r1, [r0] - adds r0, r4, 0 - bl sub_80F700C - adds r0, r4, 0 - bl sub_80F42C4 - ldr r1, _080EE754 - adds r4, r1 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EE8E8 - .align 2, 0 -_080EE750: .4byte 0x02008788 -_080EE754: .4byte 0xffff7b7c -_080EE758: - bl sub_80F0CD8 - ldr r1, _080EE77C - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EE76A: - bl sub_80F6E9C - lsls r0, 24 - cmp r0, 0 - beq _080EE776 - b _080EE8E8 -_080EE776: - bl sub_80F0D5C - b _080EE8B8 - .align 2, 0 -_080EE77C: .4byte 0x02000000 -_080EE780: - ldr r2, _080EE7B0 - ldrh r1, [r2, 0x2C] - movs r0, 0x40 - ands r0, r1 - adds r3, r2, 0 - cmp r0, 0 - beq _080EE7B8 - ldr r1, _080EE7B4 - adds r0, r4, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - beq _080EE7B8 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl sub_80F708C - movs r5, 0xC1 - lsls r5, 2 - adds r1, r4, r5 - b _080EE7E8 - .align 2, 0 -_080EE7B0: .4byte gMain -_080EE7B4: .4byte 0x000087dc -_080EE7B8: - ldrh r1, [r3, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EE7F8 - ldr r1, _080EE7F0 - adds r0, r4, r1 - ldr r2, _080EE7F4 - adds r1, r4, r2 - movs r5, 0 - ldrsh r2, [r0, r5] - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r2, r0 - bge _080EE7F8 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_80F708C - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 -_080EE7E8: - movs r0, 0x10 - strh r0, [r1] - b _080EE8E8 - .align 2, 0 -_080EE7F0: .4byte 0x000087dc -_080EE7F4: .4byte 0x00008774 -_080EE7F8: - ldrh r1, [r3, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EE8E8 - movs r0, 0x5 - bl PlaySE - bl sub_80F4394 - bl sub_80F0EC0 - ldr r1, _080EE81C - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE8C6 - .align 2, 0 -_080EE81C: .4byte 0x02000000 -_080EE820: - bl sub_80F6ED4 - lsls r0, 24 - cmp r0, 0 - bne _080EE8E8 - bl sub_80F0EF4 - lsls r0, 24 - cmp r0, 0 - bne _080EE8E8 - movs r0, 0 - bl sub_80F6FB8 - bl sub_80F2FB0 - b _080EE8BE -_080EE840: - bl sub_80F6134 - ldr r1, _080EE850 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE8C6 - .align 2, 0 -_080EE850: .4byte 0x02000000 -_080EE854: - bl sub_80F0FA0 - ldr r1, _080EE864 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE8C6 - .align 2, 0 -_080EE864: .4byte 0x02000000 -_080EE868: - bl sub_80F0FEC - b _080EE8B8 -_080EE86E: - bl sub_80F0C28 - ldr r1, _080EE87C - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE8C6 - .align 2, 0 -_080EE87C: .4byte 0x02000000 -_080EE880: - bl sub_80F0C48 - lsls r0, 24 - cmp r0, 0 - bne _080EE8E8 - ldr r1, _080EE894 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE8C6 - .align 2, 0 -_080EE894: .4byte 0x02000000 -_080EE898: - movs r0, 0x9 - bl sub_80EEFBC - movs r0, 0 - bl sub_80F3294 - ldr r0, _080EE8B0 - bl sub_80EBDBC - bl sub_80EED9C - b _080EE8E8 - .align 2, 0 -_080EE8B0: .4byte sub_80EE58C -_080EE8B4: - bl sub_80F70FC -_080EE8B8: - lsls r0, 24 - cmp r0, 0 - bne _080EE8E8 -_080EE8BE: - ldr r1, _080EE8D0 - movs r5, 0xC1 - lsls r5, 2 - adds r1, r5 -_080EE8C6: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EE8E8 - .align 2, 0 -_080EE8D0: .4byte 0x02000000 -_080EE8D4: - bl sub_8055870 - cmp r0, 0 - bne _080EE8E8 - ldr r0, _080EE8F0 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x8 - strh r1, [r0] -_080EE8E8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EE8F0: .4byte 0x02000000 - thumb_func_end sub_80EE658 - - thumb_func_start sub_80EE8F4 -sub_80EE8F4: @ 80EE8F4 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080EE910 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r2, [r4] - cmp r2, 0x1 - beq _080EE932 - cmp r2, 0x1 - bgt _080EE914 - cmp r2, 0 - beq _080EE91A - b _080EE95E - .align 2, 0 -_080EE910: .4byte 0x02000000 -_080EE914: - cmp r2, 0x2 - beq _080EE958 - b _080EE95E -_080EE91A: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080EE94C -_080EE932: - ldr r0, _080EE954 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE95E - bl sub_80F3130 - movs r0, 0x2 - bl sub_80F2D6C - bl sub_80F6FFC -_080EE94C: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EE95E - .align 2, 0 -_080EE954: .4byte gPaletteFade -_080EE958: - ldr r0, _080EE968 - bl sub_80EBDBC -_080EE95E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EE968: .4byte sub_80EC00C - thumb_func_end sub_80EE8F4 - - thumb_func_start sub_80EE96C -sub_80EE96C: @ 80EE96C - push {r4,r5,lr} - sub sp, 0x4 - ldr r0, _080EE99C - movs r1, 0xC1 - lsls r1, 2 - adds r5, r0, r1 - ldrh r4, [r5] - cmp r4, 0 - bne _080EE9A0 - movs r0, 0x6F - bl PlaySE - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _080EE9B4 - .align 2, 0 -_080EE99C: .4byte 0x02000000 -_080EE9A0: - ldr r0, _080EE9BC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE9B4 - bl sub_80F5BDC - bl sub_805469C -_080EE9B4: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EE9BC: .4byte gPaletteFade - thumb_func_end sub_80EE96C - - thumb_func_start sub_80EE9C0 -sub_80EE9C0: @ 80EE9C0 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - bl sub_80F1E84 - ldr r1, _080EE9FC - ldr r2, _080EEA00 - adds r0, r1, r2 - movs r2, 0 - strb r4, [r0] - ldr r3, _080EEA04 - adds r0, r1, r3 - strb r5, [r0] - adds r3, 0x1 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080EEA08 - adds r1, r0 - strb r6, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EE9FC: .4byte 0x02000000 -_080EEA00: .4byte 0x00006e14 -_080EEA04: .4byte 0x00006e15 -_080EEA08: .4byte 0x00006e17 - thumb_func_end sub_80EE9C0 - - thumb_func_start sub_80EEA0C -sub_80EEA0C: @ 80EEA0C - push {r4,lr} - ldr r1, _080EEA28 - ldr r2, _080EEA2C - adds r0, r1, r2 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x8 - bls _080EEA1E - b _080EEBFA -_080EEA1E: - lsls r0, 2 - ldr r1, _080EEA30 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EEA28: .4byte 0x02000000 -_080EEA2C: .4byte 0x00006e16 -_080EEA30: .4byte _080EEA34 - .align 2, 0 -_080EEA34: - .4byte _080EEA58 - .4byte _080EEA98 - .4byte _080EEAAE - .4byte _080EEAD4 - .4byte _080EEB3E - .4byte _080EEB68 - .4byte _080EEB88 - .4byte _080EEBAC - .4byte _080EEBE4 -_080EEA58: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080EEA64 - b _080EEC08 -_080EEA64: - ldr r1, _080EEA7C - ldr r4, _080EEA80 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0xC - beq _080EEA88 - ldr r0, _080EEA84 - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] - b _080EEC08 - .align 2, 0 -_080EEA7C: .4byte 0x02000000 -_080EEA80: .4byte 0x00006e17 -_080EEA84: .4byte 0x00006e16 -_080EEA88: - ldr r2, _080EEA94 - adds r1, r2 - movs r0, 0x3 - strb r0, [r1] - b _080EEC08 - .align 2, 0 -_080EEA94: .4byte 0x00006e16 -_080EEA98: - ldr r4, _080EEAC8 - ldr r1, _080EEACC - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80F2C80 - ldr r2, _080EEAD0 - adds r4, r2 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_080EEAAE: - ldr r4, _080EEAC8 - ldr r1, _080EEACC - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - beq _080EEAC2 - b _080EEC08 -_080EEAC2: - ldr r2, _080EEAD0 - adds r1, r4, r2 - b _080EEB76 - .align 2, 0 -_080EEAC8: .4byte 0x02000000 -_080EEACC: .4byte 0x00006e17 -_080EEAD0: .4byte 0x00006e16 -_080EEAD4: - adds r2, r3, 0 - ldr r4, _080EEAF8 - adds r0, r2, r4 - ldrb r1, [r0] - subs r4, 0x68 - adds r0, r2, r4 - strb r1, [r0] - ldr r1, _080EEAFC - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080EEB14 - cmp r0, 0x1 - bgt _080EEB00 - cmp r0, 0 - beq _080EEB06 - b _080EEB28 - .align 2, 0 -_080EEAF8: .4byte 0x00006e15 -_080EEAFC: .4byte 0x00006e14 -_080EEB00: - cmp r0, 0x2 - beq _080EEB20 - b _080EEB28 -_080EEB06: - ldr r4, _080EEB10 - adds r1, r2, r4 - movs r0, 0x5 - b _080EEB26 - .align 2, 0 -_080EEB10: .4byte 0x00006dae -_080EEB14: - ldr r0, _080EEB1C - adds r1, r2, r0 - movs r0, 0x3 - b _080EEB26 - .align 2, 0 -_080EEB1C: .4byte 0x00006dae -_080EEB20: - ldr r2, _080EEB58 - adds r1, r3, r2 - movs r0, 0x6 -_080EEB26: - strb r0, [r1] -_080EEB28: - ldr r4, _080EEB5C - ldr r1, _080EEB60 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80F1B8C - ldr r2, _080EEB64 - adds r4, r2 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_080EEB3E: - ldr r4, _080EEB5C - ldr r1, _080EEB60 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - bne _080EEC08 - ldr r2, _080EEB64 - adds r1, r4, r2 - b _080EEB76 - .align 2, 0 -_080EEB58: .4byte 0x00006dae -_080EEB5C: .4byte 0x02000000 -_080EEB60: .4byte 0x00006e14 -_080EEB64: .4byte 0x00006e16 -_080EEB68: - bl sub_8055870 - cmp r0, 0 - bne _080EEC08 - ldr r1, _080EEB80 - ldr r4, _080EEB84 - adds r1, r4 -_080EEB76: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080EEC08 - .align 2, 0 -_080EEB80: .4byte 0x02000000 -_080EEB84: .4byte 0x00006e16 -_080EEB88: - bl sub_80F1DF0 - ldr r4, _080EEBA0 - ldr r1, _080EEBA4 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80EF490 - ldr r2, _080EEBA8 - adds r4, r2 - b _080EEBCC - .align 2, 0 -_080EEBA0: .4byte 0x02000000 -_080EEBA4: .4byte 0x00006e14 -_080EEBA8: .4byte 0x00006e16 -_080EEBAC: - bl sub_80F1E50 - lsls r0, 24 - cmp r0, 0 - bne _080EEC08 - ldr r4, _080EEBD4 - ldr r1, _080EEBD8 - adds r0, r4, r1 - ldrb r0, [r0] - ldr r2, _080EEBDC - adds r1, r4, r2 - ldrb r1, [r1] - bl sub_80EF428 - ldr r0, _080EEBE0 - adds r4, r0 -_080EEBCC: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _080EEC08 - .align 2, 0 -_080EEBD4: .4byte 0x02000000 -_080EEBD8: .4byte 0x00006e14 -_080EEBDC: .4byte 0x00006dad -_080EEBE0: .4byte 0x00006e16 -_080EEBE4: - bl sub_80EF4F8 - lsls r0, 24 - cmp r0, 0 - bne _080EEC08 - ldr r1, _080EEC00 - ldr r2, _080EEC04 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080EEBFA: - movs r0, 0 - b _080EEC0A - .align 2, 0 -_080EEC00: .4byte 0x02000000 -_080EEC04: .4byte 0x00006e16 -_080EEC08: - movs r0, 0x1 -_080EEC0A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EEA0C - - thumb_func_start sub_80EEC10 -sub_80EEC10: @ 80EEC10 - push {r4,lr} - ldr r0, _080EEC48 - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080EEC50 - ldr r1, _080EEC4C - adds r3, r1, 0x1 - adds r2, r1, 0x5 -_080EEC24: - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080EEC36 - ldrb r0, [r3] - subs r0, 0x1 - strb r0, [r1] -_080EEC36: - movs r0, 0 - ldrsb r0, [r1, r0] - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080EEC24 - movs r0, 0x1 - b _080EEC8A - .align 2, 0 -_080EEC48: .4byte gMain -_080EEC4C: .4byte 0x02006dad -_080EEC50: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EEC88 - ldr r1, _080EEC84 - movs r4, 0 - movs r2, 0x1 - ldrsb r2, [r1, r2] - adds r3, r1, 0x5 -_080EEC62: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, r2 - blt _080EEC72 - strb r4, [r1] -_080EEC72: - movs r0, 0 - ldrsb r0, [r1, r0] - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _080EEC62 - movs r0, 0x1 - b _080EEC8A - .align 2, 0 -_080EEC84: .4byte 0x02006dad -_080EEC88: - movs r0, 0 -_080EEC8A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EEC10 - - thumb_func_start sub_80EEC90 -sub_80EEC90: @ 80EEC90 - push {r4,lr} - ldr r0, _080EECC0 - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _080EECD0 - ldr r2, _080EECC4 - ldr r0, _080EECC8 - adds r1, r2, r0 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080EECF8 - ldr r3, _080EECCC - adds r0, r2, r3 - ldrb r0, [r0] - subs r0, 0x1 - strb r0, [r1] - b _080EECF8 - .align 2, 0 -_080EECC0: .4byte gMain -_080EECC4: .4byte 0x02000000 -_080EECC8: .4byte 0x00006dad -_080EECCC: .4byte 0x00006dae -_080EECD0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EED04 - ldr r0, _080EECFC - ldr r4, _080EED00 - adds r2, r0, r4 - ldrb r1, [r2] - adds r1, 0x1 - strb r1, [r2] - adds r4, 0x1 - adds r0, r4 - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - blt _080EECF8 - strb r3, [r2] -_080EECF8: - movs r0, 0x1 - b _080EED06 - .align 2, 0 -_080EECFC: .4byte 0x02000000 -_080EED00: .4byte 0x00006dad -_080EED04: - movs r0, 0 -_080EED06: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EEC90 - - thumb_func_start sub_80EED0C -sub_80EED0C: @ 80EED0C - movs r1, 0x80 - lsls r1, 19 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - strh r0, [r1] - bx lr - thumb_func_end sub_80EED0C - - thumb_func_start sub_80EED1C -sub_80EED1C: @ 80EED1C - movs r1, 0x80 - lsls r1, 19 - movs r2, 0x92 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bx lr - thumb_func_end sub_80EED1C - - thumb_func_start sub_80EED2C -sub_80EED2C: @ 80EED2C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bhi _080EED98 - lsls r0, 2 - ldr r1, _080EED40 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EED40: .4byte _080EED44 - .align 2, 0 -_080EED44: - .4byte _080EED5C - .4byte _080EED66 - .4byte _080EED7E - .4byte _080EED74 - .4byte _080EED74 - .4byte _080EED8C -_080EED5C: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - b _080EED94 -_080EED66: - movs r1, 0x80 - lsls r1, 19 - ldr r2, _080EED70 - b _080EED94 - .align 2, 0 -_080EED70: .4byte 0x00001741 -_080EED74: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - b _080EED94 -_080EED7E: - movs r1, 0x80 - lsls r1, 19 - ldr r2, _080EED88 - b _080EED94 - .align 2, 0 -_080EED88: .4byte 0x00007b40 -_080EED8C: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFD - lsls r2, 6 -_080EED94: - adds r0, r2, 0 - strh r0, [r1] -_080EED98: - pop {r0} - bx r0 - thumb_func_end sub_80EED2C - - thumb_func_start sub_80EED9C -sub_80EED9C: @ 80EED9C - push {lr} - ldr r2, _080EEDB8 - ldr r0, _080EEDBC - movs r1, 0xC0 - lsls r1, 2 - adds r0, r1 - ldr r1, [r0] - str r1, [r2] - ldr r1, _080EEDC0 - str r1, [r0] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080EEDB8: .4byte gUnknown_03000744 -_080EEDBC: .4byte 0x02000000 -_080EEDC0: .4byte sub_80EEDC4 - thumb_func_end sub_80EED9C - - thumb_func_start sub_80EEDC4 -sub_80EEDC4: @ 80EEDC4 - push {lr} - bl sub_8055870 - cmp r0, 0x1 - beq _080EEDDC - ldr r0, _080EEDE0 - movs r1, 0xC0 - lsls r1, 2 - adds r0, r1 - ldr r1, _080EEDE4 - ldr r1, [r1] - str r1, [r0] -_080EEDDC: - pop {r0} - bx r0 - .align 2, 0 -_080EEDE0: .4byte 0x02000000 -_080EEDE4: .4byte gUnknown_03000744 - thumb_func_end sub_80EEDC4 - - thumb_func_start sub_80EEDE8 -sub_80EEDE8: @ 80EEDE8 - ldr r0, _080EEE04 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x8 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_080EEE04: .4byte REG_BG0HOFS - thumb_func_end sub_80EEDE8 - - thumb_func_start sub_80EEE08 -sub_80EEE08: @ 80EEE08 - ldr r0, _080EEE18 - ldr r0, [r0] - ldr r1, _080EEE1C - adds r0, r1 - movs r1, 0 - strh r1, [r0] - bx lr - .align 2, 0 -_080EEE18: .4byte gUnknown_083DFEC4 -_080EEE1C: .4byte 0x0000d160 - thumb_func_end sub_80EEE08 - - thumb_func_start sub_80EEE20 -sub_80EEE20: @ 80EEE20 - push {lr} - ldr r0, _080EEE48 - ldr r0, [r0] - ldr r1, _080EEE4C - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080EEE50 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EEE42 -_080EEE38: - bl sub_80EEE54 - lsls r0, 24 - cmp r0, 0 - bne _080EEE38 -_080EEE42: - pop {r0} - bx r0 - .align 2, 0 -_080EEE48: .4byte gUnknown_083DFEC4 -_080EEE4C: .4byte 0x0000d160 -_080EEE50: .4byte 0x00006dac - thumb_func_end sub_80EEE20 - - thumb_func_start sub_80EEE54 -sub_80EEE54: @ 80EEE54 - push {lr} - ldr r1, _080EEE70 - ldr r0, [r1] - ldr r2, _080EEE74 - adds r0, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0x4 - bhi _080EEF02 - lsls r0, 2 - ldr r1, _080EEE78 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EEE70: .4byte gUnknown_083DFEC4 -_080EEE74: .4byte 0x0000d160 -_080EEE78: .4byte _080EEE7C - .align 2, 0 -_080EEE7C: - .4byte _080EEE90 - .4byte _080EEEA4 - .4byte _080EEEB8 - .4byte _080EEEC8 - .4byte _080EEEDC -_080EEE90: - ldr r0, _080EEE9C - ldr r1, _080EEEA0 - bl LZ77UnCompVram - b _080EEF18 - .align 2, 0 -_080EEE9C: .4byte gPokenavHoennMapMisc_Gfx -_080EEEA0: .4byte 0x0600c000 -_080EEEA4: - ldr r0, _080EEEB0 - ldr r1, _080EEEB4 - bl LZ77UnCompVram - b _080EEF18 - .align 2, 0 -_080EEEB0: .4byte gUnknown_08E99FB0 -_080EEEB4: .4byte 0x0600d800 -_080EEEB8: - ldr r0, _080EEEC4 - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - b _080EEF18 - .align 2, 0 -_080EEEC4: .4byte gPokenavHoennMap1_Pal -_080EEEC8: - movs r0, 0 - bl sub_80EF58C - movs r0, 0x1 - bl sub_80EF58C - movs r0, 0x2 - bl sub_80EF58C - b _080EEF18 -_080EEEDC: - ldr r2, [r2] - movs r3, 0xC3 - lsls r3, 2 - adds r0, r2, r3 - movs r1, 0 - strh r1, [r0] - ldr r0, _080EEF08 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _080EEF0C - ldr r3, _080EEF10 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _080EEF14 - adds r2, r0 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] -_080EEF02: - movs r0, 0 - b _080EEF28 - .align 2, 0 -_080EEF08: .4byte REG_BG1HOFS -_080EEF0C: .4byte REG_BG1CNT -_080EEF10: .4byte 0x00001b0c -_080EEF14: .4byte 0x0000d160 -_080EEF18: - ldr r0, _080EEF2C - ldr r1, [r0] - ldr r2, _080EEF30 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 -_080EEF28: - pop {r1} - bx r1 - .align 2, 0 -_080EEF2C: .4byte gUnknown_083DFEC4 -_080EEF30: .4byte 0x0000d160 - thumb_func_end sub_80EEE54 - - thumb_func_start sub_80EEF34 -sub_80EEF34: @ 80EEF34 - push {r4,lr} - movs r3, 0x1 - ldr r0, _080EEF50 - ldr r0, [r0] - movs r1, 0xC3 - lsls r1, 2 - adds r2, r0, r1 - ldrh r1, [r2] - movs r4, 0 - ldrsh r0, [r2, r4] - cmp r0, 0x20 - bne _080EEF54 - movs r0, 0 - b _080EEF6E - .align 2, 0 -_080EEF50: .4byte gUnknown_083DFEC4 -_080EEF54: - adds r0, r1, 0x2 - strh r0, [r2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - ble _080EEF66 - movs r0, 0x20 - strh r0, [r2] - movs r3, 0 -_080EEF66: - ldr r1, _080EEF74 - ldrh r0, [r2] - strh r0, [r1] - adds r0, r3, 0 -_080EEF6E: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EEF74: .4byte REG_BG1VOFS - thumb_func_end sub_80EEF34 - - thumb_func_start sub_80EEF78 -sub_80EEF78: @ 80EEF78 - push {r4,lr} - movs r3, 0x1 - ldr r0, _080EEF94 - ldr r0, [r0] - movs r1, 0xC3 - lsls r1, 2 - adds r2, r0, r1 - ldrh r1, [r2] - movs r4, 0 - ldrsh r0, [r2, r4] - cmp r0, 0 - bne _080EEF98 - movs r0, 0 - b _080EEFB0 - .align 2, 0 -_080EEF94: .4byte gUnknown_083DFEC4 -_080EEF98: - subs r0, r1, 0x2 - strh r0, [r2] - lsls r0, 16 - cmp r0, 0 - bgt _080EEFA8 - movs r0, 0 - strh r0, [r2] - movs r3, 0 -_080EEFA8: - ldr r1, _080EEFB8 - ldrh r0, [r2] - strh r0, [r1] - adds r0, r3, 0 -_080EEFB0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EEFB8: .4byte REG_BG1VOFS - thumb_func_end sub_80EEF78 - - thumb_func_start sub_80EEFBC -sub_80EEFBC: @ 80EEFBC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080EEFF4 - ldr r3, _080EEFF8 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0x11 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0 - movs r2, 0x16 - bl sub_809D104 - cmp r4, 0xB - bls _080EEFE8 - b _080EF234 -_080EEFE8: - lsls r0, r4, 2 - ldr r1, _080EEFFC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EEFF4: .4byte 0x0600d800 -_080EEFF8: .4byte gUnknown_08E9A100 -_080EEFFC: .4byte _080EF000 - .align 2, 0 -_080EF000: - .4byte _080EF030 - .4byte _080EF234 - .4byte _080EF08C - .4byte _080EF100 - .4byte _080EF13C - .4byte _080EF1D4 - .4byte _080EF234 - .4byte _080EF178 - .4byte _080EF190 - .4byte _080EF1D4 - .4byte _080EF218 - .4byte _080EF06C -_080EF030: - ldr r6, _080EF064 - ldr r0, _080EF068 - mov r8, r0 - movs r0, 0x11 - str r0, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] - movs r5, 0x2 - str r5, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0x16 - mov r3, r8 - bl sub_809D104 - str r4, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r5, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0xA - b _080EF204 - .align 2, 0 -_080EF064: .4byte 0x0600d800 -_080EF068: .4byte gUnknown_08E9A100 -_080EF06C: - ldr r0, _080EF084 - ldr r3, _080EF088 - movs r1, 0 - str r1, [sp] - movs r1, 0x6 - str r1, [sp, 0x4] - movs r1, 0x7 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x8 - b _080EF0EE - .align 2, 0 -_080EF084: .4byte 0x0600d800 -_080EF088: .4byte gUnknown_08E9A100 -_080EF08C: - ldr r0, _080EF0C8 - ldr r0, [r0] - ldr r1, _080EF0CC - adds r0, r1 - ldrb r7, [r0] - cmp r7, 0 - bne _080EF0D8 - ldr r5, _080EF0D0 - ldr r6, _080EF0D4 - movs r0, 0xA - str r0, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x16 - adds r3, r6, 0 - bl sub_809D104 - str r7, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0xA - b _080EF1C2 - .align 2, 0 -_080EF0C8: .4byte gUnknown_083DFEC4 -_080EF0CC: .4byte 0x00006dac -_080EF0D0: .4byte 0x0600d800 -_080EF0D4: .4byte gUnknown_08E9A100 -_080EF0D8: - ldr r0, _080EF0F8 - ldr r3, _080EF0FC - movs r1, 0 - str r1, [sp] - movs r1, 0x6 - str r1, [sp, 0x4] - movs r1, 0x7 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0xA -_080EF0EE: - movs r2, 0x16 - bl sub_809D104 - b _080EF234 - .align 2, 0 -_080EF0F8: .4byte 0x0600d800 -_080EF0FC: .4byte gUnknown_08E9A100 -_080EF100: - ldr r6, _080EF134 - ldr r0, _080EF138 - mov r8, r0 - movs r5, 0 - str r5, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] - movs r4, 0x2 - str r4, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0x16 - mov r3, r8 - bl sub_809D104 - str r5, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0xA - b _080EF204 - .align 2, 0 -_080EF134: .4byte 0x0600d800 -_080EF138: .4byte gUnknown_08E9A100 -_080EF13C: - ldr r5, _080EF170 - ldr r6, _080EF174 - movs r0, 0x14 - str r0, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x16 - adds r3, r6, 0 - bl sub_809D104 - movs r0, 0 - str r0, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0xA - b _080EF1C2 - .align 2, 0 -_080EF170: .4byte 0x0600d800 -_080EF174: .4byte gUnknown_08E9A100 -_080EF178: - ldr r5, _080EF188 - ldr r6, _080EF18C - movs r1, 0xA - str r1, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - b _080EF1A0 - .align 2, 0 -_080EF188: .4byte 0x0600d800 -_080EF18C: .4byte gUnknown_08E9A100 -_080EF190: - ldr r5, _080EF1CC - ldr r6, _080EF1D0 - movs r0, 0x14 - str r0, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] -_080EF1A0: - movs r4, 0x2 - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x16 - adds r3, r6, 0 - bl sub_809D104 - movs r0, 0 - str r0, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0x7 -_080EF1C2: - movs r2, 0x16 - adds r3, r6, 0 - bl sub_809D104 - b _080EF234 - .align 2, 0 -_080EF1CC: .4byte 0x0600d800 -_080EF1D0: .4byte gUnknown_08E9A100 -_080EF1D4: - ldr r6, _080EF210 - ldr r1, _080EF214 - mov r8, r1 - movs r5, 0 - str r5, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0x16 - mov r3, r8 - bl sub_809D104 - str r5, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0x8 -_080EF204: - movs r2, 0x16 - mov r3, r8 - bl sub_809D104 - b _080EF234 - .align 2, 0 -_080EF210: .4byte 0x0600d800 -_080EF214: .4byte gUnknown_08E9A100 -_080EF218: - ldr r0, _080EF240 - ldr r3, _080EF244 - movs r1, 0 - str r1, [sp] - movs r1, 0x6 - str r1, [sp, 0x4] - movs r1, 0x7 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x8 - movs r2, 0x16 - bl sub_809D104 -_080EF234: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EF240: .4byte 0x0600d800 -_080EF244: .4byte gUnknown_08E9A100 - thumb_func_end sub_80EEFBC - - thumb_func_start sub_80EF248 -sub_80EF248: @ 80EF248 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080EF278 - ldr r0, [r0] - ldr r1, _080EF27C - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080EF280 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EF270 -_080EF264: - adds r0, r4, 0 - bl sub_80EF284 - lsls r0, 24 - cmp r0, 0 - bne _080EF264 -_080EF270: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF278: .4byte gUnknown_083DFEC4 -_080EF27C: .4byte 0x0000d160 -_080EF280: .4byte 0x00006dac - thumb_func_end sub_80EF248 - - thumb_func_start sub_80EF284 -sub_80EF284: @ 80EF284 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080EF2A8 - ldr r0, [r1] - ldr r3, _080EF2AC - adds r0, r3 - ldrh r0, [r0] - adds r3, r1, 0 - cmp r0, 0xB - bls _080EF29C - b _080EF3F6 -_080EF29C: - lsls r0, 2 - ldr r1, _080EF2B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EF2A8: .4byte gUnknown_083DFEC4 -_080EF2AC: .4byte 0x0000d160 -_080EF2B0: .4byte _080EF2B4 - .align 2, 0 -_080EF2B4: - .4byte _080EF2E4 - .4byte _080EF2EA - .4byte _080EF2F8 - .4byte _080EF304 - .4byte _080EF310 - .4byte _080EF330 - .4byte _080EF344 - .4byte _080EF368 - .4byte _080EF37C - .4byte _080EF390 - .4byte _080EF3A4 - .4byte _080EF3CC -_080EF2E4: - bl sub_80EEDE8 - b _080EF40C -_080EF2EA: - ldr r0, _080EF2F4 - bl SetUpWindowConfig - b _080EF40C - .align 2, 0 -_080EF2F4: .4byte gWindowConfig_81E7224 -_080EF2F8: - ldr r0, _080EF300 - bl MultistepInitMenuWindowBegin - b _080EF40C - .align 2, 0 -_080EF300: .4byte gWindowConfig_81E7224 -_080EF304: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - beq _080EF30E - b _080EF40C -_080EF30E: - b _080EF41A -_080EF310: - ldr r1, _080EF320 - ldr r2, _080EF324 - ldr r0, _080EF328 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080EF32C - b _080EF350 - .align 2, 0 -_080EF320: .4byte gUnknown_083DFEEC -_080EF324: .4byte 0x06005000 -_080EF328: .4byte 0x040000d4 -_080EF32C: .4byte 0x80000050 -_080EF330: - ldr r0, _080EF33C - ldr r1, _080EF340 - bl LZ77UnCompVram - b _080EF40C - .align 2, 0 -_080EF33C: .4byte gUnknown_083DFF8C -_080EF340: .4byte 0x0600f800 -_080EF344: - ldr r1, _080EF358 - ldr r2, _080EF35C - ldr r0, _080EF360 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080EF364 -_080EF350: - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080EF40C - .align 2, 0 -_080EF358: .4byte gUnknown_083E005C -_080EF35C: .4byte 0x06008000 -_080EF360: .4byte 0x040000d4 -_080EF364: .4byte 0x80000010 -_080EF368: - ldr r0, _080EF374 - ldr r1, _080EF378 - bl LZ77UnCompVram - b _080EF40C - .align 2, 0 -_080EF374: .4byte gUnknown_083E007C -_080EF378: .4byte 0x0600e000 -_080EF37C: - ldr r0, _080EF388 - ldr r1, _080EF38C - bl LZ77UnCompVram - b _080EF40C - .align 2, 0 -_080EF388: .4byte gPokenavOutlineTilemap -_080EF38C: .4byte 0x0600e800 -_080EF390: - ldr r0, _080EF39C - ldr r1, _080EF3A0 - bl LZ77UnCompVram - b _080EF40C - .align 2, 0 -_080EF39C: .4byte gPokenavOutlineTiles -_080EF3A0: .4byte 0x06008020 -_080EF3A4: - adds r0, r2, 0 - bl sub_80EF54C - ldr r0, _080EF3C4 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080EF3C8 - movs r1, 0x40 - movs r2, 0x20 - bl LoadPalette - bl sub_80EF7D4 - b _080EF40C - .align 2, 0 -_080EF3C4: .4byte gUnknown_083DFECC -_080EF3C8: .4byte gPokenavOutlinePalette -_080EF3CC: - ldr r1, _080EF3FC - ldr r2, _080EF400 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080EF404 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - subs r2, 0xFF - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x42 - movs r0, 0 - strh r0, [r1] - ldr r1, [r3] - ldr r3, _080EF408 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EF3F6: - movs r0, 0 - b _080EF41C - .align 2, 0 -_080EF3FC: .4byte REG_BG0CNT -_080EF400: .4byte 0x00001f01 -_080EF404: .4byte 0x00001d0a -_080EF408: .4byte 0x0000d160 -_080EF40C: - ldr r0, _080EF420 - ldr r1, [r0] - ldr r0, _080EF424 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EF41A: - movs r0, 0x1 -_080EF41C: - pop {r1} - bx r1 - .align 2, 0 -_080EF420: .4byte gUnknown_083DFEC4 -_080EF424: .4byte 0x0000d160 - thumb_func_end sub_80EF284 - - thumb_func_start sub_80EF428 -sub_80EF428: @ 80EF428 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r1, 24 - lsrs r2, r1, 24 - movs r1, 0 - cmp r0, 0x1 - beq _080EF454 - cmp r0, 0x1 - bgt _080EF444 - cmp r0, 0 - beq _080EF44A - b _080EF464 -_080EF444: - cmp r3, 0x2 - beq _080EF45C - b _080EF464 -_080EF44A: - ldr r1, _080EF450 - b _080EF45E - .align 2, 0 -_080EF450: .4byte gUnknown_083E31B0 -_080EF454: - ldr r1, _080EF458 - b _080EF45E - .align 2, 0 -_080EF458: .4byte gUnknown_083E31CC -_080EF45C: - ldr r1, _080EF488 -_080EF45E: - lsls r0, r2, 2 - adds r0, r1 - ldr r1, [r0] -_080EF464: - ldr r0, _080EF48C - ldr r4, [r0] - movs r0, 0x80 - lsls r0, 4 - adds r4, r0 - adds r0, r4, 0 - movs r2, 0xC0 - movs r3, 0x2 - bl sub_8072C74 - adds r0, r4, 0 - movs r1, 0x3 - movs r2, 0x11 - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF488: .4byte gUnknown_083E31D8 -_080EF48C: .4byte gUnknown_083DFEC8 - thumb_func_end sub_80EF428 - - thumb_func_start sub_80EF490 -sub_80EF490: @ 80EF490 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bne _080EF49C - movs r2, 0x1 -_080EF49C: - ldr r0, _080EF4C4 - ldr r3, [r0] - lsls r1, r2, 4 - subs r1, r2 - lsls r2, r1, 1 - ldr r4, _080EF4C8 - adds r0, r3, r4 - strh r2, [r0] - ldr r2, _080EF4CC - adds r0, r3, r2 - ldrh r2, [r0] - lsls r1, 17 - lsrs r0, r1, 16 - cmp r2, r0 - bcs _080EF4D0 - adds r4, 0x2 - adds r1, r3, r4 - movs r0, 0x2 - b _080EF4EA - .align 2, 0 -_080EF4C4: .4byte gUnknown_083DFEC4 -_080EF4C8: .4byte 0x0000ce4e -_080EF4CC: .4byte 0x0000ce4c -_080EF4D0: - cmp r2, r0 - bls _080EF4E4 - ldr r0, _080EF4DC - adds r1, r3, r0 - ldr r0, _080EF4E0 - b _080EF4EA - .align 2, 0 -_080EF4DC: .4byte 0x0000ce50 -_080EF4E0: .4byte 0x0000fffe -_080EF4E4: - ldr r2, _080EF4F4 - adds r1, r3, r2 - movs r0, 0 -_080EF4EA: - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF4F4: .4byte 0x0000ce50 - thumb_func_end sub_80EF490 - - thumb_func_start sub_80EF4F8 -sub_80EF4F8: @ 80EF4F8 - push {r4,lr} - ldr r0, _080EF530 - ldr r1, [r0] - ldr r0, _080EF534 - adds r2, r1, r0 - ldr r3, _080EF538 - adds r0, r1, r3 - ldrh r3, [r2] - ldrh r0, [r0] - cmp r3, r0 - beq _080EF544 - ldr r4, _080EF53C - adds r0, r1, r4 - ldrh r0, [r0] - adds r0, r3, r0 - strh r0, [r2] - ldr r3, _080EF540 - adds r0, r1, r3 - ldrh r1, [r2] - lsls r1, 1 - adds r0, r1 - movs r1, 0x31 - movs r2, 0x4 - bl LoadPalette - movs r0, 0x1 - b _080EF546 - .align 2, 0 -_080EF530: .4byte gUnknown_083DFEC4 -_080EF534: .4byte 0x0000ce4c -_080EF538: .4byte 0x0000ce4e -_080EF53C: .4byte 0x0000ce50 -_080EF540: .4byte 0x0000ce52 -_080EF544: - movs r0, 0 -_080EF546: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EF4F8 - - thumb_func_start sub_80EF54C -sub_80EF54C: @ 80EF54C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bne _080EF558 - movs r2, 0x1 -_080EF558: - ldr r0, _080EF580 - ldr r0, [r0] - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 1 - ldr r3, _080EF584 - adds r2, r0, r3 - strh r1, [r2] - ldrh r1, [r2] - lsls r1, 1 - ldr r2, _080EF588 - adds r1, r2 - adds r0, r1 - movs r1, 0x31 - movs r2, 0x4 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_080EF580: .4byte gUnknown_083DFEC4 -_080EF584: .4byte 0x0000ce4c -_080EF588: .4byte 0x0000ce52 - thumb_func_end sub_80EF54C - - thumb_func_start sub_80EF58C -sub_80EF58C: @ 80EF58C - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _080EF5D0 - cmp r0, 0x1 - bgt _080EF5A4 - cmp r0, 0 - beq _080EF5AA - b _080EF610 -_080EF5A4: - cmp r1, 0x2 - beq _080EF5F8 - b _080EF610 -_080EF5AA: - movs r1, 0 - ldr r0, _080EF5C8 - ldr r0, [r0] - ldr r3, _080EF5CC - adds r2, r0, r3 - movs r3, 0 -_080EF5B6: - lsls r0, r1, 1 - adds r0, r2, r0 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3D - bls _080EF5B6 - b _080EF610 - .align 2, 0 -_080EF5C8: .4byte gUnknown_083DFEC4 -_080EF5CC: .4byte 0x0000ce52 -_080EF5D0: - ldr r0, _080EF5EC - ldr r0, [r0] - ldr r1, _080EF5F0 - adds r2, r0, r1 - ldr r1, _080EF5F4 - adds r0, r1, 0x2 - adds r1, 0x6 - str r2, [sp] - movs r2, 0x10 - movs r3, 0x2 - bl sub_80EF624 - b _080EF610 - .align 2, 0 -_080EF5EC: .4byte gUnknown_083DFEC4 -_080EF5F0: .4byte 0x0000ce52 -_080EF5F4: .4byte gUnknown_083E003C -_080EF5F8: - ldr r0, _080EF618 - ldr r0, [r0] - ldr r3, _080EF61C - adds r2, r0, r3 - ldr r1, _080EF620 - adds r0, r1, 0x6 - adds r1, 0xE - str r2, [sp] - movs r2, 0x10 - movs r3, 0x2 - bl sub_80EF624 -_080EF610: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080EF618: .4byte gUnknown_083DFEC4 -_080EF61C: .4byte 0x0000ce8e -_080EF620: .4byte gUnknown_083E003C - thumb_func_end sub_80EF58C - - thumb_func_start sub_80EF624 -sub_80EF624: @ 80EF624 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x38 - str r0, [sp] - str r1, [sp, 0x4] - ldr r4, [sp, 0x58] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x8] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0xC] - movs r0, 0 - str r0, [sp, 0x10] - lsls r0, r3, 16 - ldr r1, [sp, 0x10] - cmp r1, r3 - bcs _080EF72E - subs r2, 0x1 - str r2, [sp, 0x20] - str r0, [sp, 0x2C] -_080EF654: - ldr r2, [sp] - ldrh r1, [r2] - movs r0, 0x1F - ands r0, r1 - lsls r7, r0, 8 - lsls r1, 16 - lsrs r0, r1, 21 - movs r2, 0x1F - ands r0, r2 - lsls r6, r0, 8 - lsrs r1, 26 - ands r1, r2 - lsls r5, r1, 8 - ldr r0, [sp, 0x4] - ldrh r1, [r0] - movs r0, 0x1F - ands r0, r1 - lsls r0, 8 - str r0, [sp, 0x14] - lsls r1, 16 - lsrs r0, r1, 21 - ands r0, r2 - lsls r0, 8 - str r0, [sp, 0x18] - lsrs r1, 26 - ands r1, r2 - lsls r1, 8 - str r1, [sp, 0x1C] - ldr r1, [sp, 0x14] - subs r0, r1, r7 - ldr r1, [sp, 0x8] - bl __divsi3 - mov r10, r0 - ldr r2, [sp, 0x18] - subs r0, r2, r6 - ldr r1, [sp, 0x8] - bl __divsi3 - mov r9, r0 - ldr r1, [sp, 0x1C] - subs r0, r1, r5 - ldr r1, [sp, 0x8] - bl __divsi3 - mov r8, r0 - adds r3, r4, 0 - movs r4, 0 - ldr r2, [sp] - adds r2, 0x2 - str r2, [sp, 0x30] - ldr r0, [sp, 0x4] - adds r0, 0x2 - str r0, [sp, 0x34] - adds r1, r3, 0x2 - str r1, [sp, 0x24] - ldr r2, [sp, 0x10] - adds r2, 0x1 - str r2, [sp, 0x28] - ldr r0, [sp, 0x20] - cmp r4, r0 - bge _080EF700 - ldr r1, [sp, 0xC] - lsls r1, 1 - mov r12, r1 -_080EF6D6: - lsls r0, r7, 8 - lsrs r2, r0, 16 - lsls r0, r6, 8 - lsrs r1, r0, 16 - lsls r0, r5, 8 - lsrs r0, 16 - lsls r0, 10 - lsls r1, 5 - orrs r0, r1 - orrs r2, r0 - strh r2, [r3] - add r3, r12 - add r7, r10 - add r6, r9 - add r5, r8 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r2, [sp, 0x20] - cmp r4, r2 - blt _080EF6D6 -_080EF700: - ldr r4, [sp, 0x14] - lsrs r2, r4, 8 - ldr r1, [sp, 0x1C] - lsls r0, r1, 2 - ldr r4, [sp, 0x18] - lsrs r1, r4, 3 - orrs r0, r1 - orrs r2, r0 - strh r2, [r3] - ldr r0, [sp, 0x30] - str r0, [sp] - ldr r1, [sp, 0x34] - str r1, [sp, 0x4] - ldr r4, [sp, 0x24] - ldr r2, [sp, 0x28] - lsls r0, r2, 16 - lsrs r0, 16 - str r0, [sp, 0x10] - ldr r1, [sp, 0x2C] - lsrs r0, r1, 16 - ldr r2, [sp, 0x10] - cmp r2, r0 - bcc _080EF654 -_080EF72E: - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EF624 - - thumb_func_start sub_80EF740 -sub_80EF740: @ 80EF740 - push {lr} - ldr r0, _080EF770 - ldr r3, [r0] - ldr r0, _080EF774 - adds r2, r3, r0 - ldrh r0, [r2] - adds r0, 0x1 - movs r1, 0x1 - ands r0, r1 - strh r0, [r2] - cmp r0, 0 - beq _080EF762 - ldr r2, _080EF778 - adds r1, r3, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EF762: - ldr r0, _080EF77C - ldr r2, _080EF778 - adds r1, r3, r2 - ldrh r1, [r1] - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080EF770: .4byte gUnknown_083DFEC4 -_080EF774: .4byte 0x00006da0 -_080EF778: .4byte 0x00006da2 -_080EF77C: .4byte REG_BG3HOFS - thumb_func_end sub_80EF740 - - thumb_func_start sub_80EF780 -sub_80EF780: @ 80EF780 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080EF7B0 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080EF7AA - ldr r0, _080EF7B4 - ldr r3, [r0] - ldr r0, _080EF7B8 - adds r2, r3, r0 - ldrh r0, [r2] - movs r1, 0x7 - ands r1, r0 - cmp r1, 0 - beq _080EF7BC -_080EF7AA: - bl sub_80EF740 - b _080EF7C8 - .align 2, 0 -_080EF7B0: .4byte gTasks -_080EF7B4: .4byte gUnknown_083DFEC4 -_080EF7B8: .4byte 0x00006da2 -_080EF7BC: - strh r1, [r2] - ldr r2, _080EF7CC - adds r0, r3, r2 - strh r1, [r0] - ldr r0, _080EF7D0 - strh r1, [r0] -_080EF7C8: - pop {r0} - bx r0 - .align 2, 0 -_080EF7CC: .4byte 0x00006da0 -_080EF7D0: .4byte REG_BG3HOFS - thumb_func_end sub_80EF780 - - thumb_func_start sub_80EF7D4 -sub_80EF7D4: @ 80EF7D4 - push {r4,lr} - ldr r0, _080EF800 - ldr r4, [r0] - ldr r1, _080EF804 - adds r0, r4, r1 - movs r1, 0 - strh r1, [r0] - ldr r2, _080EF808 - adds r0, r4, r2 - strh r1, [r0] - ldr r0, _080EF80C - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080EF810 - adds r4, r1 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF800: .4byte gUnknown_083DFEC4 -_080EF804: .4byte 0x00006da2 -_080EF808: .4byte 0x00006da0 -_080EF80C: .4byte sub_80EF780 -_080EF810: .4byte 0x00006da4 - thumb_func_end sub_80EF7D4 - - thumb_func_start sub_80EF814 -sub_80EF814: @ 80EF814 - push {lr} - ldr r0, _080EF834 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - beq _080EF830 - ldr r0, _080EF838 - ldr r0, [r0] - ldr r1, _080EF83C - adds r0, r1 - ldrb r0, [r0] - bl DestroyTask -_080EF830: - pop {r0} - bx r0 - .align 2, 0 -_080EF834: .4byte sub_80EF780 -_080EF838: .4byte gUnknown_083DFEC4 -_080EF83C: .4byte 0x00006da4 - thumb_func_end sub_80EF814 - - thumb_func_start sub_80EF840 -sub_80EF840: @ 80EF840 - push {lr} - ldr r0, _080EF868 - ldr r0, [r0] - ldr r1, _080EF86C - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080EF870 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EF862 -_080EF858: - bl sub_80EF874 - lsls r0, 24 - cmp r0, 0 - bne _080EF858 -_080EF862: - pop {r0} - bx r0 - .align 2, 0 -_080EF868: .4byte gUnknown_083DFEC4 -_080EF86C: .4byte 0x0000d160 -_080EF870: .4byte 0x00006dac - thumb_func_end sub_80EF840 - - thumb_func_start sub_80EF874 -sub_80EF874: @ 80EF874 - push {lr} - ldr r0, _080EF890 - ldr r0, [r0] - ldr r1, _080EF894 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0xB - bls _080EF886 - b _080EF9D8 -_080EF886: - lsls r0, 2 - ldr r1, _080EF898 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EF890: .4byte gUnknown_083DFEC4 -_080EF894: .4byte 0x0000d160 -_080EF898: .4byte _080EF89C - .align 2, 0 -_080EF89C: - .4byte _080EF8CC - .4byte _080EF8D2 - .4byte _080EF8E0 - .4byte _080EF8EC - .4byte _080EF8F6 - .4byte _080EF8FC - .4byte _080EF920 - .4byte _080EF92C - .4byte _080EF940 - .4byte _080EF954 - .4byte _080EF960 - .4byte _080EF972 -_080EF8CC: - bl sub_80EEDE8 - b _080EF9DC -_080EF8D2: - ldr r0, _080EF8DC - bl SetUpWindowConfig - b _080EF9DC - .align 2, 0 -_080EF8DC: .4byte gWindowConfig_81E7224 -_080EF8E0: - ldr r0, _080EF8E8 - bl MultistepInitMenuWindowBegin - b _080EF9DC - .align 2, 0 -_080EF8E8: .4byte gWindowConfig_81E7224 -_080EF8EC: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - bne _080EF9DC - b _080EF9EA -_080EF8F6: - bl MenuZeroFillScreen - b _080EF9DC -_080EF8FC: - ldr r0, _080EF914 - ldr r0, [r0] - ldr r2, _080EF918 - adds r0, r2 - ldr r1, _080EF91C - ldrb r1, [r1, 0x15] - lsrs r1, 3 - movs r2, 0x1 - ands r1, r2 - bl sub_80FA904 - b _080EF9DC - .align 2, 0 -_080EF914: .4byte gUnknown_083DFEC4 -_080EF918: .4byte 0x00006e18 -_080EF91C: .4byte gSaveBlock2 -_080EF920: - bl sub_80FA940 - lsls r0, 24 - cmp r0, 0 - beq _080EF9DC - b _080EF9EA -_080EF92C: - ldr r0, _080EF938 - ldr r1, _080EF93C - bl LZ77UnCompVram - b _080EF9DC - .align 2, 0 -_080EF938: .4byte gPokenavHoennMapSquares_Gfx -_080EF93C: .4byte 0x06005000 -_080EF940: - ldr r0, _080EF950 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - bl sub_80EFC3C - b _080EF9DC - .align 2, 0 -_080EF950: .4byte gPokenavHoennMapSquares_Pal -_080EF954: - bl sub_80EFC64 - lsls r0, 24 - cmp r0, 0 - beq _080EF9DC - b _080EF9EA -_080EF960: - movs r0, 0xD - movs r1, 0x3 - movs r2, 0x1D - movs r3, 0x11 - bl MenuDrawTextWindow - bl sub_80EF9F8 - b _080EF9DC -_080EF972: - ldr r0, _080EF990 - ldr r1, [r0] - ldr r2, _080EF994 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080EF9A0 - ldr r2, _080EF998 - adds r0, r1, r2 - movs r1, 0xA0 - strh r1, [r0] - ldr r0, _080EF99C - strh r1, [r0] - b _080EF9B0 - .align 2, 0 -_080EF990: .4byte gUnknown_083DFEC4 -_080EF994: .4byte 0x00006e90 -_080EF998: .4byte 0x00007698 -_080EF99C: .4byte REG_BG0VOFS -_080EF9A0: - ldr r0, _080EF9C8 - adds r1, r0 - movs r2, 0 - movs r0, 0x80 - lsls r0, 1 - strh r0, [r1] - ldr r0, _080EF9CC - strh r2, [r0] -_080EF9B0: - ldr r2, _080EF9D0 - ldrh r0, [r2] - strh r0, [r2] - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080EF9D4 - movs r0, 0 - strh r0, [r1] - b _080EF9DC - .align 2, 0 -_080EF9C8: .4byte 0x00007698 -_080EF9CC: .4byte REG_BG0VOFS -_080EF9D0: .4byte REG_BG0CNT -_080EF9D4: .4byte REG_BLDCNT -_080EF9D8: - movs r0, 0 - b _080EF9EC -_080EF9DC: - ldr r0, _080EF9F0 - ldr r1, [r0] - ldr r2, _080EF9F4 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EF9EA: - movs r0, 0x1 -_080EF9EC: - pop {r1} - bx r1 - .align 2, 0 -_080EF9F0: .4byte gUnknown_083DFEC4 -_080EF9F4: .4byte 0x0000d160 - thumb_func_end sub_80EF874 - - thumb_func_start sub_80EF9F8 -sub_80EF9F8: @ 80EF9F8 - push {r4-r6,lr} - sub sp, 0x14 - movs r5, 0x4 - ldr r0, _080EFA18 - ldr r0, [r0] - ldr r1, _080EFA1C - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - bls _080EFA0E - b _080EFB6A -_080EFA0E: - lsls r0, 2 - ldr r1, _080EFA20 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EFA18: .4byte gUnknown_083DFEC4 -_080EFA1C: .4byte 0x00006e2e -_080EFA20: .4byte _080EFA24 - .align 2, 0 -_080EFA24: - .4byte _080EFB6A - .4byte _080EFA38 - .4byte _080EFAC0 - .4byte _080EFB4C - .4byte _080EFA38 -_080EFA38: - ldr r0, _080EFA64 - ldr r0, [r0] - ldr r2, _080EFA68 - adds r0, r2 - lsls r2, r5, 19 - lsrs r2, 16 - movs r1, 0x1 - str r1, [sp] - movs r1, 0x70 - movs r3, 0x78 - bl sub_8072A18 - adds r0, r5, 0x2 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080EFA6C - ldrb r0, [r0] - cmp r0, 0x1 - bne _080EFA70 - bl sub_80F1A80 - b _080EFB82 - .align 2, 0 -_080EFA64: .4byte gUnknown_083DFEC4 -_080EFA68: .4byte 0x00006e18 -_080EFA6C: .4byte gLinkOpen -_080EFA70: - movs r4, 0 - b _080EFA92 -_080EFA74: - lsls r2, r5, 19 - lsrs r2, 16 - movs r0, 0x1 - str r0, [sp] - adds r0, r1, 0 - movs r1, 0x70 - movs r3, 0x78 - bl sub_8072A18 - adds r0, r5, 0x2 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080EFA92: - cmp r4, 0x3 - bhi _080EFB6A - ldr r0, _080EFAB8 - ldr r1, [r0] - ldr r2, _080EFABC - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x3 - adds r1, r2 - ldrb r1, [r1] - lsls r2, r4, 24 - lsrs r2, 24 - bl sub_811A8CC - adds r1, r0, 0 - cmp r1, 0 - bne _080EFA74 - b _080EFB6A - .align 2, 0 -_080EFAB8: .4byte gUnknown_083DFEC4 -_080EFABC: .4byte 0x00006e2c -_080EFAC0: - ldr r0, _080EFB38 - ldr r4, [r0] - ldr r1, _080EFB3C - adds r0, r4, r1 - lsls r2, r5, 19 - lsrs r2, 16 - movs r1, 0x1 - str r1, [sp] - movs r1, 0x70 - movs r3, 0x78 - bl sub_8072A18 - adds r0, r5, 0x2 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r2, _080EFB40 - adds r0, r4, r2 - ldrh r1, [r0] - adds r2, 0x3 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 2 - lsls r1, 3 - adds r0, r1 - ldr r1, _080EFB44 - adds r4, r1 - adds r6, r4, r0 - ldr r0, [r6] - cmp r0, 0 - beq _080EFB6A - lsls r4, r5, 24 - lsrs r4, 24 - movs r0, 0xE - adds r1, r4, 0 - movs r2, 0xF - movs r3, 0xF - bl MenuFillWindowRectWithBlankTile - movs r0, 0x1A - adds r1, r4, 0 - movs r2, 0x1C - movs r3, 0xF - bl MenuFillWindowRectWithBlankTile - ldr r0, _080EFB48 - ldr r3, [r6] - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0xA - str r1, [sp, 0x8] - str r1, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x10 - movs r2, 0x6 - bl sub_8095C8C - adds r0, r5, 0 - adds r0, 0xB - b _080EFB66 - .align 2, 0 -_080EFB38: .4byte gUnknown_083DFEC4 -_080EFB3C: .4byte 0x00006e18 -_080EFB40: .4byte 0x00006e2c -_080EFB44: .4byte 0x0000cdcc -_080EFB48: .4byte 0x0600f800 -_080EFB4C: - ldr r0, _080EFB98 - ldr r0, [r0] - ldr r2, _080EFB9C - adds r0, r2 - lsls r2, r5, 19 - lsrs r2, 16 - movs r1, 0x1 - str r1, [sp] - movs r1, 0x70 - movs r3, 0x78 - bl sub_8072A18 - adds r0, r5, 0x2 -_080EFB66: - lsls r0, 16 - lsrs r5, r0, 16 -_080EFB6A: - movs r0, 0 - cmp r0, 0 - bne _080EFB82 - cmp r5, 0xF - bhi _080EFB82 - lsls r1, r5, 24 - lsrs r1, 24 - movs r0, 0xE - movs r2, 0x1C - movs r3, 0xF - bl MenuFillWindowRectWithBlankTile -_080EFB82: - ldr r0, _080EFB98 - ldr r0, [r0] - ldr r1, _080EFBA0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080EFBA4 - bl sub_80EFD74 - b _080EFBA8 - .align 2, 0 -_080EFB98: .4byte gUnknown_083DFEC4 -_080EFB9C: .4byte 0x00006e18 -_080EFBA0: .4byte 0x00006e2e -_080EFBA4: - bl sub_80EFDA0 -_080EFBA8: - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80EF9F8 - - thumb_func_start sub_80EFBB0 -sub_80EFBB0: @ 80EFBB0 - push {lr} - ldr r0, _080EFBC8 - ldr r0, [r0] - ldr r1, _080EFBCC - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EFBD0 - movs r0, 0x8 - bl sub_80EEFBC - b _080EFBD6 - .align 2, 0 -_080EFBC8: .4byte gUnknown_083DFEC4 -_080EFBCC: .4byte 0x00006e90 -_080EFBD0: - movs r0, 0x7 - bl sub_80EEFBC -_080EFBD6: - pop {r0} - bx r0 - thumb_func_end sub_80EFBB0 - - thumb_func_start sub_80EFBDC -sub_80EFBDC: @ 80EFBDC - push {r4,lr} - lsls r0, 24 - movs r4, 0x1 - ldr r2, _080EFBFC - ldr r1, [r2] - ldr r3, _080EFC00 - adds r1, r3 - ldrh r3, [r1] - cmp r0, 0 - beq _080EFC08 - cmp r3, 0xA8 - bls _080EFC04 - adds r0, r3, 0 - subs r0, 0x8 - b _080EFC10 - .align 2, 0 -_080EFBFC: .4byte gUnknown_083DFEC4 -_080EFC00: .4byte 0x00007698 -_080EFC04: - movs r3, 0xA0 - b _080EFC1A -_080EFC08: - cmp r3, 0xF7 - bhi _080EFC16 - adds r0, r3, 0 - adds r0, 0x8 -_080EFC10: - lsls r0, 16 - lsrs r3, r0, 16 - b _080EFC1C -_080EFC16: - movs r3, 0x80 - lsls r3, 1 -_080EFC1A: - movs r4, 0 -_080EFC1C: - ldr r0, [r2] - ldr r1, _080EFC34 - adds r0, r1 - strh r3, [r0] - ldr r1, _080EFC38 - movs r0, 0xFF - ands r3, r0 - strh r3, [r1] - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EFC34: .4byte 0x00007698 -_080EFC38: .4byte REG_BG0VOFS - thumb_func_end sub_80EFBDC - - thumb_func_start sub_80EFC3C -sub_80EFC3C: @ 80EFC3C - push {lr} - ldr r0, _080EFC58 - ldr r0, [r0] - ldr r2, _080EFC5C - adds r1, r0, r2 - movs r2, 0 - strb r2, [r1] - ldr r1, _080EFC60 - adds r0, r1 - strb r2, [r0] - bl sub_80EFD3C - pop {r0} - bx r0 - .align 2, 0 -_080EFC58: .4byte gUnknown_083DFEC4 -_080EFC5C: .4byte 0x0000bc9a -_080EFC60: .4byte 0x0000bc9b - thumb_func_end sub_80EFC3C - - thumb_func_start sub_80EFC64 -sub_80EFC64: @ 80EFC64 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - ldr r4, _080EFCD0 - ldr r2, [r4] - ldr r0, _080EFCD4 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0xF - bhi _080EFD2C - ldrb r1, [r1] - mov r8, r1 - ldr r1, _080EFCD8 - adds r0, r2, r1 - ldrb r7, [r0] - movs r2, 0 - ldr r0, _080EFCDC - mov r9, r0 - adds r3, r4, 0 -_080EFC8E: - lsls r0, r2, 2 - mov r4, r8 - lsls r1, r4, 3 - adds r6, r0, r1 - mov r1, r9 - adds r0, r6, r1 - ldr r1, [r0] - cmp r1, 0 - beq _080EFCE8 - movs r0, 0xC8 - adds r5, r7, 0 - muls r5, r0 - ldr r4, _080EFCE0 - adds r5, r4 - ldr r4, [r3] - adds r5, r4, r5 - adds r0, r1, 0 - adds r1, r5, 0 - str r2, [sp] - str r3, [sp, 0x4] - bl LZ77UnCompVram - ldr r0, _080EFCE4 - adds r4, r0 - adds r4, r6 - str r5, [r4] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r2, [sp] - ldr r3, [sp, 0x4] - b _080EFCF2 - .align 2, 0 -_080EFCD0: .4byte gUnknown_083DFEC4 -_080EFCD4: .4byte 0x0000bc9a -_080EFCD8: .4byte 0x0000bc9b -_080EFCDC: .4byte gPokenavCityMaps -_080EFCE0: .4byte 0x0000bc9c -_080EFCE4: .4byte 0x0000cdcc -_080EFCE8: - ldr r0, [r3] - ldr r4, _080EFD1C - adds r0, r4 - adds r0, r6 - str r1, [r0] -_080EFCF2: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _080EFC8E - ldr r0, _080EFD20 - ldr r2, [r0] - ldr r0, _080EFD24 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xF - bhi _080EFD2C - ldr r1, _080EFD28 - adds r0, r2, r1 - strb r7, [r0] - movs r0, 0x1 - b _080EFD2E - .align 2, 0 -_080EFD1C: .4byte 0x0000cdcc -_080EFD20: .4byte gUnknown_083DFEC4 -_080EFD24: .4byte 0x0000bc9a -_080EFD28: .4byte 0x0000bc9b -_080EFD2C: - movs r0, 0 -_080EFD2E: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80EFC64 - - thumb_func_start sub_80EFD3C -sub_80EFD3C: @ 80EFD3C - ldr r0, _080EFD60 - ldr r1, [r0] - ldr r2, _080EFD64 - adds r0, r1, r2 - movs r2, 0 - strb r2, [r0] - ldr r0, _080EFD68 - adds r3, r1, r0 - movs r0, 0x2F - strb r0, [r3] - ldr r3, _080EFD6C - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080EFD70 - adds r1, r0 - strh r2, [r1] - bx lr - .align 2, 0 -_080EFD60: .4byte gUnknown_083DFEC4 -_080EFD64: .4byte 0x0000769e -_080EFD68: .4byte 0x0000769c -_080EFD6C: .4byte 0x0000769d -_080EFD70: .4byte 0x0000769a - thumb_func_end sub_80EFD3C - - thumb_func_start sub_80EFD74 -sub_80EFD74: @ 80EFD74 - push {lr} - ldr r0, _080EFD94 - ldr r2, [r0] - ldr r0, _080EFD98 - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080EFD9C - adds r2, r0 - ldrb r0, [r2] - cmp r0, 0x1 - bne _080EFD90 - movs r0, 0x2 - strb r0, [r2] -_080EFD90: - pop {r0} - bx r0 - .align 2, 0 -_080EFD94: .4byte gUnknown_083DFEC4 -_080EFD98: .4byte 0x0000769e -_080EFD9C: .4byte 0x0000769d - thumb_func_end sub_80EFD74 - - thumb_func_start sub_80EFDA0 -sub_80EFDA0: @ 80EFDA0 - push {r4,lr} - sub sp, 0x14 - ldr r0, _080EFDD4 - ldr r3, _080EFDD8 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - movs r2, 0xF - str r2, [sp, 0x8] - movs r1, 0x1 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0xE - movs r2, 0x10 - bl sub_8095C8C - ldr r0, _080EFDDC - ldr r0, [r0] - ldr r1, _080EFDE0 - adds r0, r1 - strb r4, [r0] - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EFDD4: .4byte 0x0600f800 -_080EFDD8: .4byte gUnknown_08E9AC2C -_080EFDDC: .4byte gUnknown_083DFEC4 -_080EFDE0: .4byte 0x0000769e - thumb_func_end sub_80EFDA0 - - thumb_func_start sub_80EFDE4 -sub_80EFDE4: @ 80EFDE4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EFE68 - ldr r1, [r0] - ldr r2, _080EFE6C - adds r0, r1, r2 - ldrb r2, [r0] - movs r0, 0x3C - subs r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _080EFE06 - movs r4, 0xF -_080EFE06: - ldr r3, _080EFE70 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _080EFE58 - ldr r0, _080EFE74 - mov r8, r0 - ldr r3, _080EFE78 - mov r9, r3 - str r2, [sp] - movs r5, 0 - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r7, 0x1 - str r7, [sp, 0xC] - movs r6, 0x3C - str r6, [sp, 0x10] - movs r1, 0xE - movs r2, 0x10 - bl sub_8095C8C - cmp r4, 0xE - bhi _080EFE58 - adds r1, r4, 0 - adds r1, 0xE - lsls r1, 16 - lsrs r1, 16 - str r5, [sp] - str r5, [sp, 0x4] - movs r0, 0xF - subs r0, r4 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - str r7, [sp, 0xC] - str r6, [sp, 0x10] - mov r0, r8 - movs r2, 0x10 - mov r3, r9 - bl sub_8095C8C -_080EFE58: - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EFE68: .4byte gUnknown_083DFEC4 -_080EFE6C: .4byte 0x0000769c -_080EFE70: .4byte 0x0000769e -_080EFE74: .4byte 0x0600f800 -_080EFE78: .4byte gUnknown_08E9ABB4 - thumb_func_end sub_80EFDE4 - - thumb_func_start sub_80EFE7C -sub_80EFE7C: @ 80EFE7C - push {r4,lr} - ldr r0, _080EFE98 - ldr r2, [r0] - ldr r0, _080EFE9C - adds r4, r2, r0 - ldrb r1, [r4] - cmp r1, 0x1 - beq _080EFF08 - cmp r1, 0x1 - bgt _080EFEA0 - cmp r1, 0 - beq _080EFEA6 - b _080EFF2E - .align 2, 0 -_080EFE98: .4byte gUnknown_083DFEC4 -_080EFE9C: .4byte 0x0000769d -_080EFEA0: - cmp r1, 0x2 - beq _080EFF24 - b _080EFF2E -_080EFEA6: - ldr r0, _080EFED4 - adds r4, r2, r0 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3B - bls _080EFEBA - strb r1, [r4] -_080EFEBA: - ldr r1, _080EFED8 - adds r0, r2, r1 - ldrb r0, [r0] - bl sub_80EFDE4 - ldrb r0, [r4] - cmp r0, 0xF - beq _080EFEE4 - cmp r0, 0xF - bgt _080EFEDC - cmp r0, 0 - beq _080EFEE4 - b _080EFF2E - .align 2, 0 -_080EFED4: .4byte 0x0000769c -_080EFED8: .4byte 0x0000769e -_080EFEDC: - cmp r0, 0x1E - beq _080EFEE4 - cmp r0, 0x2D - bne _080EFF2E -_080EFEE4: - ldr r0, _080EFEFC - ldr r1, [r0] - ldr r0, _080EFF00 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0x1 - strb r0, [r2] - ldr r0, _080EFF04 - adds r1, r0 - strh r3, [r1] - b _080EFF2E - .align 2, 0 -_080EFEFC: .4byte gUnknown_083DFEC4 -_080EFF00: .4byte 0x0000769d -_080EFF04: .4byte 0x0000769a -_080EFF08: - ldr r0, _080EFF20 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x78 - bls _080EFF2E - movs r0, 0 - strh r0, [r1] - b _080EFF2C - .align 2, 0 -_080EFF20: .4byte 0x0000769a -_080EFF24: - movs r0, 0x1 - bl sub_80EFDE4 - movs r0, 0x1 -_080EFF2C: - strb r0, [r4] -_080EFF2E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80EFE7C - - thumb_func_start sub_80EFF34 -sub_80EFF34: @ 80EFF34 - push {lr} - ldr r0, _080EFF5C - ldr r0, [r0] - ldr r1, _080EFF60 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080EFF64 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EFF56 -_080EFF4C: - bl sub_80EFF68 - lsls r0, 24 - cmp r0, 0 - bne _080EFF4C -_080EFF56: - pop {r0} - bx r0 - .align 2, 0 -_080EFF5C: .4byte gUnknown_083DFEC4 -_080EFF60: .4byte 0x0000d160 -_080EFF64: .4byte 0x00006dac - thumb_func_end sub_80EFF34 - - thumb_func_start sub_80EFF68 -sub_80EFF68: @ 80EFF68 - push {r4,lr} - sub sp, 0x14 - ldr r0, _080EFF88 - ldr r0, [r0] - ldr r1, _080EFF8C - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0xD - bls _080EFF7C - b _080F0150 -_080EFF7C: - lsls r0, 2 - ldr r1, _080EFF90 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EFF88: .4byte gUnknown_083DFEC4 -_080EFF8C: .4byte 0x0000d160 -_080EFF90: .4byte _080EFF94 - .align 2, 0 -_080EFF94: - .4byte _080EFFCC - .4byte _080EFFE8 - .4byte _080EFFF4 - .4byte _080F0000 - .4byte _080F000C - .4byte _080F0012 - .4byte _080F0018 - .4byte _080F0028 - .4byte _080F003C - .4byte _080F005C - .4byte _080F0098 - .4byte _080F00AC - .4byte _080F00F8 - .4byte _080F0118 -_080EFFCC: - bl sub_80EEDE8 - ldr r0, _080EFFE0 - ldr r0, [r0] - ldr r2, _080EFFE4 - adds r0, r2 - movs r1, 0xB - strb r1, [r0] - b _080F0154 - .align 2, 0 -_080EFFE0: .4byte gUnknown_083DFEC4 -_080EFFE4: .4byte 0x0000d162 -_080EFFE8: - ldr r0, _080EFFF0 - bl SetUpWindowConfig - b _080F0154 - .align 2, 0 -_080EFFF0: .4byte gWindowConfig_81E7080 -_080EFFF4: - ldr r0, _080EFFFC - bl MultistepInitMenuWindowBegin - b _080F0154 - .align 2, 0 -_080EFFFC: .4byte gWindowConfig_81E7080 -_080F0000: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - beq _080F000A - b _080F0154 -_080F000A: - b _080F0162 -_080F000C: - bl MenuZeroFillScreen - b _080F0154 -_080F0012: - bl sub_80F1614 - b _080F0154 -_080F0018: - movs r0, 0 - bl sub_80F162C - lsls r0, 24 - cmp r0, 0 - bne _080F0026 - b _080F0154 -_080F0026: - b _080F0162 -_080F0028: - ldr r0, _080F0034 - ldr r1, _080F0038 - bl LZ77UnCompVram - b _080F0154 - .align 2, 0 -_080F0034: .4byte gPokenavConditionView_Gfx -_080F0038: .4byte 0x06005000 -_080F003C: - ldr r0, _080F0050 - ldr r1, _080F0054 - bl LZ77UnCompVram - ldr r0, _080F0058 - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - b _080F0154 - .align 2, 0 -_080F0050: .4byte gUnknown_08E9AC4C -_080F0054: .4byte 0x0600f000 -_080F0058: .4byte gPokenavConditionMenu2_Pal -_080F005C: - ldr r0, _080F0088 - ldr r0, [r0] - ldr r1, _080F008C - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080F0154 - ldr r0, _080F0090 - ldr r3, _080F0094 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r2, 0x9 - str r2, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0 - movs r2, 0x5 - bl sub_8095C8C - b _080F0154 - .align 2, 0 -_080F0088: .4byte gUnknown_083DFEC4 -_080F008C: .4byte 0x000076aa -_080F0090: .4byte 0x0600f000 -_080F0094: .4byte gUnknown_083E01AC -_080F0098: - ldr r0, _080F00A4 - ldr r1, _080F00A8 - bl LZ77UnCompVram - b _080F0154 - .align 2, 0 -_080F00A4: .4byte gUnknown_08E9FEB4 -_080F00A8: .4byte 0x0600b800 -_080F00AC: - ldr r0, _080F00EC - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080F00F0 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - ldr r4, _080F00F4 - adds r0, r4, 0 - movs r1, 0xB1 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0xE - movs r1, 0xB5 - movs r2, 0x2 - bl LoadPalette - adds r4, 0x1C - adds r0, r4, 0 - movs r1, 0xBF - movs r2, 0x2 - bl LoadPalette - bl sub_80F01A4 - b _080F0154 - .align 2, 0 -_080F00EC: .4byte gUnknown_083E0254 -_080F00F0: .4byte gUnknownPalette_81E6692 -_080F00F4: .4byte gPokenavConditionMenu2_Pal + 0x2 -_080F00F8: - ldr r0, _080F0110 - ldr r0, [r0] - ldr r2, _080F0114 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - bl sub_80F01E0 - b _080F0154 - .align 2, 0 -_080F0110: .4byte gUnknown_083DFEC4 -_080F0114: .4byte 0x00008fe9 -_080F0118: - ldr r1, _080F013C - ldr r2, _080F0140 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _080F0144 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x44 - ldr r2, _080F0148 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F014C - adds r0, r2, 0 - strh r0, [r1] - b _080F0154 - .align 2, 0 -_080F013C: .4byte REG_BG3CNT -_080F0140: .4byte 0x00001e03 -_080F0144: .4byte 0x00001702 -_080F0148: .4byte 0x00000844 -_080F014C: .4byte 0x0000040b -_080F0150: - movs r0, 0 - b _080F0164 -_080F0154: - ldr r0, _080F016C - ldr r1, [r0] - ldr r0, _080F0170 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F0162: - movs r0, 0x1 -_080F0164: - add sp, 0x14 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F016C: .4byte gUnknown_083DFEC4 -_080F0170: .4byte 0x0000d160 - thumb_func_end sub_80EFF68 - - thumb_func_start sub_80F0174 -sub_80F0174: @ 80F0174 - push {lr} - lsls r0, 24 - cmp r0, 0 - beq _080F018E - movs r0, 0x80 - lsls r0, 19 - ldrh r1, [r0] - movs r3, 0x80 - lsls r3, 3 - adds r2, r3, 0 - orrs r1, r2 - strh r1, [r0] - b _080F019A -_080F018E: - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080F01A0 - ands r0, r1 - strh r0, [r2] -_080F019A: - pop {r0} - bx r0 - .align 2, 0 -_080F01A0: .4byte 0x0000fbff - thumb_func_end sub_80F0174 - - thumb_func_start sub_80F01A4 -sub_80F01A4: @ 80F01A4 - ldr r1, _080F01CC - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x9B - strh r0, [r1] - ldr r0, _080F01D0 - ldr r2, _080F01D4 - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _080F01D8 - ldr r2, _080F01DC - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1B - strh r0, [r1] - bx lr - .align 2, 0 -_080F01CC: .4byte REG_WIN0H -_080F01D0: .4byte REG_WIN0V -_080F01D4: .4byte 0x00003879 -_080F01D8: .4byte REG_WININ -_080F01DC: .4byte 0x00003f3f - thumb_func_end sub_80F01A4 - - thumb_func_start sub_80F01E0 -sub_80F01E0: @ 80F01E0 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _080F0248 - lsls r0, r4, 6 - ldr r2, _080F024C - adds r0, r2 - ldr r5, [r1] - adds r0, r5, r0 - movs r1, 0xD - movs r2, 0x1 - bl MenuPrint - ldr r1, _080F0250 - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080F0242 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r2, _080F0254 - adds r0, r2 - adds r0, r5, r0 - movs r1, 0xD - movs r2, 0x3 - bl MenuPrint - ldr r0, _080F0258 - adds r4, r5, r0 - ldr r1, _080F025C - adds r0, r5, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - lsls r0, 2 - adds r0, r5, r0 - ldr r1, _080F0260 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 18 - lsrs r1, 23 - adds r0, r4, 0 - bl sub_80F443C - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x6 - bl MenuPrint -_080F0242: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F0248: .4byte gUnknown_083DFEC4 -_080F024C: .4byte 0x00008829 -_080F0250: .4byte 0x000076aa -_080F0254: .4byte 0x000088e9 -_080F0258: .4byte 0x00008788 -_080F025C: .4byte 0x000087dc -_080F0260: .4byte 0x0000893e - thumb_func_end sub_80F01E0 - - thumb_func_start sub_80F0264 -sub_80F0264: @ 80F0264 - push {lr} - ldr r1, _080F0290 - ldr r2, [r1] - ldr r1, _080F0294 - adds r3, r2, r1 - movs r1, 0 - strh r1, [r3] - ldr r3, _080F0298 - adds r1, r2, r3 - strb r0, [r1] - ldr r0, _080F029C - adds r2, r0 - ldrb r0, [r2] - cmp r0, 0 - bne _080F028C -_080F0282: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - bne _080F0282 -_080F028C: - pop {r0} - bx r0 - .align 2, 0 -_080F0290: .4byte gUnknown_083DFEC4 -_080F0294: .4byte 0x00000306 -_080F0298: .4byte 0x000087ca -_080F029C: .4byte 0x00006dac - thumb_func_end sub_80F0264 - - thumb_func_start sub_80F02A0 -sub_80F02A0: @ 80F02A0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x18 - ldr r1, _080F02C4 - ldr r0, [r1] - ldr r2, _080F02C8 - adds r0, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0xE - bls _080F02BA - b _080F05FA -_080F02BA: - lsls r0, 2 - ldr r1, _080F02CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F02C4: .4byte gUnknown_083DFEC4 -_080F02C8: .4byte 0x00000306 -_080F02CC: .4byte _080F02D0 - .align 2, 0 -_080F02D0: - .4byte _080F030C - .4byte _080F0344 - .4byte _080F0350 - .4byte _080F035C - .4byte _080F0368 - .4byte _080F036E - .4byte _080F0380 - .4byte _080F0394 - .4byte _080F04BC - .4byte _080F053C - .4byte _080F0550 - .4byte _080F0574 - .4byte _080F057A - .4byte _080F0586 - .4byte _080F05BC -_080F030C: - bl sub_80EEDE8 - ldr r0, _080F0334 - ldr r1, [r0] - movs r2, 0 - ldr r3, _080F0338 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080F0322 - movs r2, 0x1 -_080F0322: - ldr r3, _080F033C - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080F0340 - adds r1, r0 - movs r0, 0xB - strb r0, [r1] - b _080F0618 - .align 2, 0 -_080F0334: .4byte gUnknown_083DFEC4 -_080F0338: .4byte 0x000087ca -_080F033C: .4byte 0x000087c8 -_080F0340: .4byte 0x0000d162 -_080F0344: - ldr r0, _080F034C - bl SetUpWindowConfig - b _080F0618 - .align 2, 0 -_080F034C: .4byte gWindowConfig_81E70D4 -_080F0350: - ldr r0, _080F0358 - bl MultistepInitMenuWindowBegin - b _080F0618 - .align 2, 0 -_080F0358: .4byte gWindowConfig_81E70D4 -_080F035C: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - beq _080F0366 - b _080F0618 -_080F0366: - b _080F0626 -_080F0368: - bl MenuZeroFillScreen - b _080F0618 -_080F036E: - ldr r0, _080F0378 - ldr r1, _080F037C - bl LZ77UnCompVram - b _080F0618 - .align 2, 0 -_080F0378: .4byte gUnknown_08E9FC64 -_080F037C: .4byte 0x0600e800 -_080F0380: - ldr r0, _080F038C - ldr r1, _080F0390 - bl LZ77UnCompVram - b _080F0618 - .align 2, 0 -_080F038C: .4byte gPokenavConditionSearch2_Gfx -_080F0390: .4byte 0x06008000 -_080F0394: - ldr r6, _080F03FC - adds r0, r6, 0 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - adds r0, r6, 0 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080F0400 - movs r1, 0x40 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080F0404 - ldr r0, [r0] - ldr r1, _080F0408 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F0418 - ldr r4, _080F040C - adds r0, r4, 0 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r1, _080F0410 - ldrh r0, [r4, 0xA] - strh r0, [r1] - ldr r0, _080F0414 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - adds r0, r6, 0x2 - movs r1, 0xB1 - movs r2, 0x2 - bl LoadPalette - adds r0, r6, 0 - adds r0, 0x10 - movs r1, 0xB5 - movs r2, 0x2 - bl LoadPalette - adds r4, 0xA - adds r0, r4, 0 - movs r1, 0xBF - b _080F04A8 - .align 2, 0 -_080F03FC: .4byte gUnknown_083E02B4 -_080F0400: .4byte gUnknown_083E0334 -_080F0404: .4byte gUnknown_083DFEC4 -_080F0408: .4byte 0x000087ca -_080F040C: .4byte gPokenavConditionSearch2_Pal -_080F0410: .4byte gPlttBufferUnfaded -_080F0414: .4byte gUnknownPalette_81E6692 -_080F0418: - cmp r0, 0x1 - bne _080F0464 - ldr r4, _080F0458 - adds r0, r4, 0 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r1, _080F045C - ldrh r0, [r4, 0xA] - strh r0, [r1] - ldr r0, _080F0460 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - adds r0, r6, 0x2 - movs r1, 0xB1 - movs r2, 0x2 - bl LoadPalette - adds r0, r6, 0 - adds r0, 0x10 - movs r1, 0xB5 - movs r2, 0x2 - bl LoadPalette - adds r4, 0xA - adds r0, r4, 0 - movs r1, 0xBF - b _080F04A8 - .align 2, 0 -_080F0458: .4byte gUnknown_083E0274 -_080F045C: .4byte gPlttBufferUnfaded -_080F0460: .4byte gUnknownPalette_81E6692 -_080F0464: - ldr r4, _080F04B0 - adds r0, r4, 0 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r1, _080F04B4 - adds r5, r4, 0 - adds r5, 0xA - ldrh r0, [r4, 0xA] - strh r0, [r1] - ldr r0, _080F04B8 - movs r1, 0x50 - movs r2, 0x20 - bl LoadPalette - adds r0, r6, 0x2 - movs r1, 0xB1 - movs r2, 0x2 - bl LoadPalette - adds r0, r6, 0 - adds r0, 0x10 - movs r1, 0xB5 - movs r2, 0x2 - bl LoadPalette - adds r0, r5, 0 - movs r1, 0xBF - movs r2, 0x2 - bl LoadPalette - adds r0, r5, 0 - movs r1, 0x5F -_080F04A8: - movs r2, 0x2 - bl LoadPalette - b _080F0618 - .align 2, 0 -_080F04B0: .4byte gUnknown_08E9F9E8 -_080F04B4: .4byte gPlttBufferUnfaded -_080F04B8: .4byte gUnknown_083E0314 -_080F04BC: - ldr r0, _080F04E8 - ldr r0, [r0] - ldr r2, _080F04EC - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x2 - beq _080F04F8 - ldr r0, _080F04F0 - ldr r3, _080F04F4 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r2, 0x9 - str r2, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0 - movs r2, 0x5 - bl sub_8095C8C - b _080F0618 - .align 2, 0 -_080F04E8: .4byte gUnknown_083DFEC4 -_080F04EC: .4byte 0x000087ca -_080F04F0: .4byte 0x0600e800 -_080F04F4: .4byte gUnknown_08E9FD1C -_080F04F8: - ldr r3, _080F0530 - mov r8, r3 - ldr r3, _080F0534 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - movs r5, 0xC - str r5, [sp, 0x8] - movs r6, 0xA - str r6, [sp, 0xC] - str r5, [sp, 0x10] - mov r0, r8 - movs r1, 0 - movs r2, 0x4 - bl sub_8095C8C - ldr r3, _080F0538 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - str r6, [sp, 0xC] - str r5, [sp, 0x10] - mov r0, r8 - movs r1, 0 - movs r2, 0x8 - bl sub_8095C8C - b _080F0618 - .align 2, 0 -_080F0530: .4byte 0x0600e800 -_080F0534: .4byte gUnknown_08E9FE54 -_080F0538: .4byte gUnknown_08E9FD64 -_080F053C: - ldr r0, _080F0548 - ldr r1, _080F054C - bl LZ77UnCompVram - b _080F0618 - .align 2, 0 -_080F0548: .4byte gUnknown_083E0354 -_080F054C: .4byte 0x06005000 -_080F0550: - ldr r2, _080F0568 - add r1, sp, 0x14 - movs r0, 0 - strh r0, [r1] - ldr r0, _080F056C - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080F0570 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080F0618 - .align 2, 0 -_080F0568: .4byte 0x0600f800 -_080F056C: .4byte 0x040000d4 -_080F0570: .4byte 0x81000400 -_080F0574: - bl sub_80F0900 - b _080F0618 -_080F057A: - bl sub_80F0944 - lsls r0, 24 - cmp r0, 0 - beq _080F0618 - b _080F0626 -_080F0586: - ldr r0, _080F059C - ldr r4, [r0] - ldr r1, _080F05A0 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0x2 - beq _080F05A4 - bl ShowMapNamePopUpWindow - b _080F0618 - .align 2, 0 -_080F059C: .4byte gUnknown_083DFEC4 -_080F05A0: .4byte 0x000087ca -_080F05A4: - movs r0, 0 - bl sub_80F081C - ldr r2, _080F05B8 - adds r0, r4, r2 - ldrb r0, [r0] - bl sub_80F0FFC - b _080F0618 - .align 2, 0 -_080F05B8: .4byte 0x0000876e -_080F05BC: - ldr r1, _080F0600 - ldr r3, _080F0604 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - adds r3, 0xF9 - adds r0, r3, 0 - strh r0, [r1] - subs r1, 0x6 - adds r3, 0xFE - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x16 - movs r0, 0xF8 - strh r0, [r1] - ldr r1, [r2] - ldr r0, _080F0608 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0xF8 - strh r0, [r2] - ldr r2, _080F060C - adds r0, r1, r2 - strh r3, [r0] - ldr r0, _080F0610 - strh r3, [r0] - ldr r3, _080F0614 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F05FA: - movs r0, 0 - b _080F0628 - .align 2, 0 -_080F0600: .4byte REG_BG2CNT -_080F0604: .4byte 0x00001d0a -_080F0608: .4byte 0x00008776 -_080F060C: .4byte 0x00008778 -_080F0610: .4byte REG_BLDCNT -_080F0614: .4byte 0x0000d160 -_080F0618: - ldr r0, _080F0634 - ldr r1, [r0] - ldr r0, _080F0638 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F0626: - movs r0, 0x1 -_080F0628: - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080F0634: .4byte gUnknown_083DFEC4 -_080F0638: .4byte 0x00000306 - thumb_func_end sub_80F02A0 - - thumb_func_start sub_80F063C -sub_80F063C: @ 80F063C - push {r4-r7,lr} - lsls r0, 16 - ldr r3, _080F0664 - ldr r2, [r3] - lsrs r5, r0, 16 - asrs r4, r0, 16 - lsls r1, r4, 4 - ldr r6, _080F0668 - adds r0, r2, r6 - strh r1, [r0] - adds r7, r3, 0 - cmp r4, 0x1 - beq _080F065E - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - bne _080F066C -_080F065E: - movs r1, 0x4 - b _080F066E - .align 2, 0 -_080F0664: .4byte gUnknown_083DFEC4 -_080F0668: .4byte 0x0000877c -_080F066C: - movs r1, 0x8 -_080F066E: - ldr r3, _080F06C0 - adds r0, r2, r3 - strh r1, [r0] - lsls r0, r5, 16 - asrs r3, r0, 16 - cmp r3, 0 - bge _080F06CC - ldr r4, [r7] - ldr r6, _080F06C0 - adds r1, r4, r6 - movs r2, 0 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1] - subs r6, 0x2 - adds r1, r4, r6 - lsls r0, r3, 1 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _080F06C4 - adds r0, r4, r1 - ldrh r0, [r0] - adds r0, r3, r0 - lsls r0, 16 - lsrs r2, r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080F06B8 - ldr r2, _080F06C8 - adds r1, r4, r2 - adds r0, 0x1 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 -_080F06B8: - negs r0, r3 - lsls r0, 16 - lsrs r5, r0, 16 - b _080F06E6 - .align 2, 0 -_080F06C0: .4byte 0x0000877a -_080F06C4: .4byte 0x00008770 -_080F06C8: .4byte 0x00008774 -_080F06CC: - ldr r1, [r7] - ldr r3, _080F070C - adds r0, r1, r3 - ldrh r0, [r0] - adds r0, 0x10 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _080F0710 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 -_080F06E6: - ldr r0, [r7] - ldr r1, _080F0714 - adds r0, r1 - lsls r1, r2, 16 - asrs r1, 16 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r1, r0 - ble _080F06FA - movs r2, 0 -_080F06FA: - movs r1, 0x1F - adds r0, r2, 0 - ands r1, r6 - adds r2, r5, 0 - bl sub_80F0954 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F070C: .4byte 0x00008778 -_080F0710: .4byte 0x00008772 -_080F0714: .4byte 0x00008774 - thumb_func_end sub_80F063C - - thumb_func_start sub_80F0718 -sub_80F0718: @ 80F0718 - push {r4,r5,lr} - bl sub_80F098C - lsls r0, 24 - cmp r0, 0 - bne _080F0790 - ldr r0, _080F073C - ldr r4, [r0] - ldr r0, _080F0740 - adds r3, r4, r0 - ldrh r2, [r3] - movs r1, 0 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080F0744 - movs r0, 0 - b _080F0792 - .align 2, 0 -_080F073C: .4byte gUnknown_083DFEC4 -_080F0740: .4byte 0x0000877c -_080F0744: - ldr r0, _080F0780 - adds r1, r4, r0 - ldrh r0, [r1] - subs r0, r2, r0 - strh r0, [r3] - ldr r0, _080F0784 - adds r2, r4, r0 - ldrh r0, [r1] - ldrh r1, [r2] - adds r0, r1 - movs r5, 0xFF - ands r0, r5 - strh r0, [r2] - ldr r1, _080F0788 - strh r0, [r1] - movs r1, 0 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080F0790 - movs r1, 0 - ldrsh r0, [r2, r1] - adds r0, 0x8 - ands r0, r5 - asrs r1, r0, 3 - ldr r2, _080F078C - adds r0, r4, r2 - strh r1, [r0] - movs r0, 0 - b _080F0792 - .align 2, 0 -_080F0780: .4byte 0x0000877a -_080F0784: .4byte 0x00008776 -_080F0788: .4byte REG_BG3VOFS -_080F078C: .4byte 0x00008778 -_080F0790: - movs r0, 0x1 -_080F0792: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F0718 - - thumb_func_start ShowMapNamePopUpWindow -ShowMapNamePopUpWindow: @ 80F0798 - push {lr} - ldr r0, _080F07B0 - ldr r2, [r0] - ldr r1, _080F07B4 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F07B8 - cmp r0, 0x1 - beq _080F07E0 - b _080F080A - .align 2, 0 -_080F07B0: .4byte gUnknown_083DFEC4 -_080F07B4: .4byte 0x000087ca -_080F07B8: - ldr r3, _080F07D8 - adds r0, r2, r3 - subs r3, 0x1A - adds r1, r2, r3 - movs r3, 0 - ldrsh r1, [r1, r3] - lsls r1, 2 - adds r1, r2, r1 - ldr r2, _080F07DC - adds r1, r2 - ldrh r1, [r1] - lsls r1, 18 - lsrs r1, 23 - bl sub_80F443C - b _080F07F4 - .align 2, 0 -_080F07D8: .4byte 0x00008788 -_080F07DC: .4byte 0x0000893e -_080F07E0: - ldr r3, _080F0810 - adds r0, r2, r3 - subs r3, 0x1A - adds r1, r2, r3 - ldrh r1, [r1] - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - bl sub_80F445C -_080F07F4: - ldr r0, _080F0814 - bl BasicInitMenuWindow - ldr r0, _080F0818 - ldr r0, [r0] - ldr r1, _080F0810 - adds r0, r1 - movs r1, 0x1 - movs r2, 0x6 - bl MenuPrint -_080F080A: - pop {r0} - bx r0 - .align 2, 0 -_080F0810: .4byte 0x00008788 -_080F0814: .4byte gWindowConfig_81E710C -_080F0818: .4byte gUnknown_083DFEC4 - thumb_func_end ShowMapNamePopUpWindow - - thumb_func_start sub_80F081C -sub_80F081C: @ 80F081C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080F0838 - bl BasicInitMenuWindow - cmp r5, 0x4 - bhi _080F08C6 - lsls r0, r5, 2 - ldr r1, _080F083C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F0838: .4byte gWindowConfig_81E710C -_080F083C: .4byte _080F0840 - .align 2, 0 -_080F0840: - .4byte _080F0854 - .4byte _080F0854 - .4byte _080F0862 - .4byte _080F088C - .4byte _080F089A -_080F0854: - ldr r0, _080F08CC - movs r1, 0xA - movs r2, 0x9 - bl sub_8072B4C - cmp r5, 0 - bne _080F08C6 -_080F0862: - ldr r0, _080F08D0 - ldr r0, [r0] - ldr r1, _080F08D4 - adds r4, r0, r1 - ldr r2, _080F08D8 - adds r0, r2 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r1, 0x1 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - movs r1, 0xA - movs r2, 0xB - bl sub_8072B4C - cmp r5, 0 - bne _080F08C6 -_080F088C: - ldr r0, _080F08DC - movs r1, 0xA - movs r2, 0xD - bl sub_8072B4C - cmp r5, 0 - bne _080F08C6 -_080F089A: - movs r0, 0x9 - bl sub_8053108 - adds r1, r0, 0 - ldr r0, _080F08E0 - cmp r1, r0 - bls _080F08AA - adds r1, r0, 0 -_080F08AA: - ldr r0, _080F08D0 - ldr r4, [r0] - ldr r0, _080F08D4 - adds r4, r0 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - movs r1, 0xA - movs r2, 0xF - bl sub_8072B4C -_080F08C6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F08CC: .4byte gOtherText_NumberRegistered -_080F08D0: .4byte gUnknown_083DFEC4 -_080F08D4: .4byte 0x00008788 -_080F08D8: .4byte 0x00008774 -_080F08DC: .4byte gOtherText_NumberBattles -_080F08E0: .4byte 0x0001869f - thumb_func_end sub_80F081C - - thumb_func_start sub_80F08E4 -sub_80F08E4: @ 80F08E4 - push {lr} - ldr r0, _080F08FC - bl BasicInitMenuWindow - movs r0, 0 - movs r1, 0x9 - movs r2, 0xB - movs r3, 0x10 - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - .align 2, 0 -_080F08FC: .4byte gWindowConfig_81E710C - thumb_func_end sub_80F08E4 - - thumb_func_start sub_80F0900 -sub_80F0900: @ 80F0900 - push {r4,r5,lr} - ldr r0, _080F093C - ldr r0, [r0] - ldr r2, _080F0940 - adds r1, r0, r2 - subs r2, 0x2 - adds r5, r0, r2 - ldrh r0, [r1] - ldrh r1, [r5] - subs r0, r1 - adds r0, 0x1 - lsls r4, r0, 16 - asrs r0, r4, 16 - cmp r0, 0x7 - bgt _080F092A - movs r0, 0xC - movs r1, 0x1 - movs r2, 0x1F - movs r3, 0xF - bl MenuZeroFillWindowRect -_080F092A: - ldrh r0, [r5] - lsrs r2, r4, 16 - movs r1, 0 - bl sub_80F0954 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F093C: .4byte gUnknown_083DFEC4 -_080F0940: .4byte 0x00008772 - thumb_func_end sub_80F0900 - - thumb_func_start sub_80F0944 -sub_80F0944: @ 80F0944 - push {lr} - bl sub_80F098C - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80F0944 - - thumb_func_start sub_80F0954 -sub_80F0954: @ 80F0954 - push {r4,r5,lr} - ldr r3, _080F097C - ldr r3, [r3] - ldr r5, _080F0980 - adds r4, r3, r5 - movs r5, 0 - strh r0, [r4] - ldr r4, _080F0984 - adds r0, r3, r4 - strh r1, [r0] - ldr r1, _080F0988 - adds r0, r3, r1 - strh r2, [r0] - adds r4, 0x6 - adds r3, r4 - strh r5, [r3] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F097C: .4byte gUnknown_083DFEC4 -_080F0980: .4byte 0x0000877e -_080F0984: .4byte 0x00008780 -_080F0988: .4byte 0x00008784 - thumb_func_end sub_80F0954 - - thumb_func_start sub_80F098C -sub_80F098C: @ 80F098C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _080F09A4 - ldr r6, [r0] - ldr r0, _080F09A8 - adds r7, r6, r0 - ldrh r0, [r7] - cmp r0, 0 - bne _080F09AC -_080F09A0: - movs r0, 0 - b _080F0A02 - .align 2, 0 -_080F09A4: .4byte gUnknown_083DFEC4 -_080F09A8: .4byte 0x00008784 -_080F09AC: - movs r1, 0 - mov r8, r1 - ldr r1, _080F0A0C - ldr r2, _080F0A10 - adds r0, r6, r2 - ldrb r2, [r0] - lsls r2, 2 - adds r2, r1 - ldr r0, _080F0A14 - adds r4, r6, r0 - ldrh r0, [r4] - ldr r1, _080F0A18 - adds r5, r6, r1 - ldrh r1, [r5] - ldr r2, [r2] - bl _call_via_r2 - ldrh r0, [r7] - subs r0, 0x1 - strh r0, [r7] - ldr r2, _080F0A1C - adds r1, r2, 0 - lsls r0, 16 - cmp r0, 0 - beq _080F09A0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - ands r0, r1 - ldr r2, _080F0A20 - adds r1, r6, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - cmp r0, r1 - ble _080F09F6 - mov r0, r8 - strh r0, [r4] -_080F09F6: - ldrh r0, [r5] - adds r0, 0x2 - movs r1, 0x1F - ands r0, r1 - strh r0, [r5] - movs r0, 0x1 -_080F0A02: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080F0A0C: .4byte gUnknown_083E3270 -_080F0A10: .4byte 0x000087ca -_080F0A14: .4byte 0x0000877e -_080F0A18: .4byte 0x00008780 -_080F0A1C: .4byte 0x0000ffff -_080F0A20: .4byte 0x00008774 - thumb_func_end sub_80F098C - - thumb_func_start sub_80F0A24 -sub_80F0A24: @ 80F0A24 - push {r4,r5,lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - ldr r0, _080F0A64 - ldr r4, [r0] - ldr r1, _080F0A68 - adds r0, r4, r1 - ldrb r0, [r0] - movs r2, 0x1 - cmp r0, 0 - bne _080F0A40 - movs r2, 0x2 -_080F0A40: - ldr r0, _080F0A6C - adds r4, r0 - adds r0, r4, 0 - adds r1, r3, 0 - bl sub_80F4428 - ldr r0, _080F0A70 - bl BasicInitMenuWindow - lsls r2, r5, 24 - lsrs r2, 24 - adds r0, r4, 0 - movs r1, 0xD - bl MenuPrint - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F0A64: .4byte gUnknown_083DFEC4 -_080F0A68: .4byte 0x000087c8 -_080F0A6C: .4byte 0x00008788 -_080F0A70: .4byte gWindowConfig_81E70D4 - thumb_func_end sub_80F0A24 - - thumb_func_start sub_80F0A74 -sub_80F0A74: @ 80F0A74 - push {r4-r7,lr} - sub sp, 0x14 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r7, r1, 16 - ldr r0, _080F0ADC - ldr r5, [r0] - ldr r0, _080F0AE0 - adds r4, r5, r0 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80F700C - movs r0, 0x1F - ands r7, r0 - ldr r0, _080F0AE4 - bl BasicInitMenuWindow - lsls r2, r7, 3 - adds r0, r4, 0 - movs r1, 0x61 - movs r3, 0 - bl sub_80729D8 - ldr r1, _080F0AE8 - adds r0, r5, r1 - ldrh r0, [r0] - cmp r6, r0 - bcs _080F0AF8 - lsls r0, r6, 3 - adds r0, r5, r0 - ldr r1, _080F0AEC - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F0AF8 - ldr r0, _080F0AF0 - ldr r3, _080F0AF4 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r2, 0x1 - str r2, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0x1D - adds r2, r7, 0 - bl sub_8095C8C - b _080F0B14 - .align 2, 0 -_080F0ADC: .4byte gUnknown_083DFEC4 -_080F0AE0: .4byte 0x00008788 -_080F0AE4: .4byte gWindowConfig_81E70D4 -_080F0AE8: .4byte 0x0000d158 -_080F0AEC: .4byte 0x0000ceed -_080F0AF0: .4byte 0x0600f000 -_080F0AF4: .4byte gUnknown_083E039C -_080F0AF8: - ldr r0, _080F0B1C - ldr r3, _080F0B20 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r2, 0x1 - str r2, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0x1D - adds r2, r7, 0 - bl sub_8095C8C -_080F0B14: - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F0B1C: .4byte 0x0600f000 -_080F0B20: .4byte gUnknown_083E03A0 - thumb_func_end sub_80F0A74 - - thumb_func_start sub_80F0B24 -sub_80F0B24: @ 80F0B24 - ldr r0, _080F0B38 - ldr r0, [r0] - ldr r2, _080F0B3C - adds r1, r0, r2 - movs r2, 0 - strh r2, [r1] - ldr r1, _080F0B40 - adds r0, r1 - strh r2, [r0] - bx lr - .align 2, 0 -_080F0B38: .4byte gUnknown_083DFEC4 -_080F0B3C: .4byte 0x0000d15c -_080F0B40: .4byte 0x00000306 - thumb_func_end sub_80F0B24 - - thumb_func_start sub_80F0B44 -sub_80F0B44: @ 80F0B44 - push {r4-r6,lr} - ldr r0, _080F0B58 - ldr r5, [r0] - ldr r0, _080F0B5C - adds r6, r5, r0 - ldrh r0, [r6] - cmp r0, 0x8 - bls _080F0B60 - movs r0, 0 - b _080F0C22 - .align 2, 0 -_080F0B58: .4byte gUnknown_083DFEC4 -_080F0B5C: .4byte 0x0000d15c -_080F0B60: - ldr r0, _080F0BBC - adds r1, r5, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080F0C20 - movs r0, 0 - strh r0, [r1] - ldrh r0, [r6] - cmp r0, 0x7 - bhi _080F0BCC - ldr r0, _080F0BC0 - adds r1, r5, r0 - ldrh r2, [r6] - lsls r0, r2, 1 - ldrh r1, [r1] - adds r4, r0, r1 - movs r0, 0x1F - ands r4, r0 - ldr r1, _080F0BC4 - adds r0, r5, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r2, r0 - beq _080F0BAA - ldr r0, _080F0BC8 - bl BasicInitMenuWindow - adds r1, r4, 0 - adds r3, r1, 0x1 - movs r0, 0xC - movs r2, 0x1F - bl MenuZeroFillWindowRect -_080F0BAA: - ldrh r0, [r6] - cmp r0, 0 - bne _080F0BB4 - bl sub_80F08E4 -_080F0BB4: - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - b _080F0C20 - .align 2, 0 -_080F0BBC: .4byte 0x00000306 -_080F0BC0: .4byte 0x00008778 -_080F0BC4: .4byte 0x0000876c -_080F0BC8: .4byte gWindowConfig_81E70D4 -_080F0BCC: - ldr r0, _080F0C10 - bl BasicInitMenuWindow - ldr r1, _080F0C14 - adds r0, r5, r1 - ldrh r0, [r0] - adds r4, r0, 0 - adds r4, 0x10 - movs r0, 0x1F - ands r4, r0 - movs r5, 0 -_080F0BE2: - adds r3, r4, 0x1 - movs r0, 0xC - adds r1, r4, 0 - movs r2, 0x1F - bl MenuZeroFillWindowRect - adds r4, 0x2 - movs r0, 0x1F - ands r4, r0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x7 - bls _080F0BE2 - ldr r0, _080F0C18 - ldr r1, [r0] - ldr r0, _080F0C1C - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0 - b _080F0C22 - .align 2, 0 -_080F0C10: .4byte gWindowConfig_81E70D4 -_080F0C14: .4byte 0x00008778 -_080F0C18: .4byte gUnknown_083DFEC4 -_080F0C1C: .4byte 0x0000d15c -_080F0C20: - movs r0, 0x1 -_080F0C22: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F0B44 - - thumb_func_start sub_80F0C28 -sub_80F0C28: @ 80F0C28 - ldr r0, _080F0C3C - ldr r0, [r0] - ldr r2, _080F0C40 - adds r1, r0, r2 - movs r2, 0 - strh r2, [r1] - ldr r1, _080F0C44 - adds r0, r1 - strh r2, [r0] - bx lr - .align 2, 0 -_080F0C3C: .4byte gUnknown_083DFEC4 -_080F0C40: .4byte 0x0000d15c -_080F0C44: .4byte 0x00000306 - thumb_func_end sub_80F0C28 - - thumb_func_start sub_80F0C48 -sub_80F0C48: @ 80F0C48 - push {r4-r6,lr} - ldr r0, _080F0C5C - ldr r4, [r0] - ldr r0, _080F0C60 - adds r5, r4, r0 - ldrh r0, [r5] - cmp r0, 0x7 - bls _080F0C64 - movs r0, 0 - b _080F0CD2 - .align 2, 0 -_080F0C5C: .4byte gUnknown_083DFEC4 -_080F0C60: .4byte 0x0000d15c -_080F0C64: - ldr r2, _080F0CBC - adds r1, r4, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - ldr r2, _080F0CC0 - adds r6, r2, 0 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080F0CD0 - movs r0, 0 - strh r0, [r1] - ldr r0, _080F0CC4 - bl BasicInitMenuWindow - ldr r0, _080F0CC8 - adds r1, r4, r0 - ldrh r0, [r5] - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _080F0CCC - adds r2, r4, r1 - ldrh r1, [r5] - lsls r1, 1 - ldrh r2, [r2] - adds r1, r2 - lsls r1, 16 - lsrs r1, 16 - bl sub_80F0A74 - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - ands r0, r6 - cmp r0, 0x7 - bls _080F0CD0 - movs r0, 0 - bl sub_80F081C - movs r0, 0 - b _080F0CD2 - .align 2, 0 -_080F0CBC: .4byte 0x00000306 -_080F0CC0: .4byte 0x0000ffff -_080F0CC4: .4byte gWindowConfig_81E70D4 -_080F0CC8: .4byte 0x00008770 -_080F0CCC: .4byte 0x00008778 -_080F0CD0: - movs r0, 0x1 -_080F0CD2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F0C48 - - thumb_func_start sub_80F0CD8 -sub_80F0CD8: @ 80F0CD8 - push {r4,r5,lr} - ldr r4, _080F0D40 - ldr r1, [r4] - ldr r2, _080F0D44 - adds r0, r1, r2 - movs r2, 0 - strh r2, [r0] - ldr r3, _080F0D48 - adds r0, r1, r3 - strh r2, [r0] - ldr r2, _080F0D4C - adds r0, r1, r2 - movs r3, 0 - ldrsh r0, [r0, r3] - lsls r0, 3 - adds r0, r1, r0 - ldr r2, _080F0D50 - adds r0, r2 - ldrb r0, [r0] - ldr r3, _080F0D54 - adds r1, r3 - ldr r2, _080F0D58 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r1] - adds r2, r0, 0 - movs r1, 0 - adds r5, r4, 0 - adds r4, r3, 0 -_080F0D14: - ldrb r0, [r2] - adds r3, r1, 0x1 - cmp r0, 0xFF - beq _080F0D24 -_080F0D1C: - adds r2, 0x1 - ldrb r0, [r2] - cmp r0, 0xFF - bne _080F0D1C -_080F0D24: - ldr r0, [r5] - lsls r1, r3, 2 - adds r0, r4 - adds r0, r1 - adds r2, 0x1 - str r2, [r0] - lsls r0, r3, 16 - lsrs r1, r0, 16 - cmp r1, 0x2 - bls _080F0D14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F0D40: .4byte gUnknown_083DFEC4 -_080F0D44: .4byte 0x00000306 -_080F0D48: .4byte 0x0000d15c -_080F0D4C: .4byte 0x0000876e -_080F0D50: .4byte 0x0000ceec -_080F0D54: .4byte 0x0000d110 -_080F0D58: .4byte gTrainerEyeDescriptions - thumb_func_end sub_80F0CD8 - - thumb_func_start sub_80F0D5C -sub_80F0D5C: @ 80F0D5C - push {r4,r5,lr} - ldr r0, _080F0D70 - ldr r4, [r0] - ldr r0, _080F0D74 - adds r5, r4, r0 - ldrh r0, [r5] - cmp r0, 0x7 - bne _080F0D78 -_080F0D6C: - movs r0, 0 - b _080F0EB0 - .align 2, 0 -_080F0D70: .4byte gUnknown_083DFEC4 -_080F0D74: .4byte 0x0000d15c -_080F0D78: - ldr r0, _080F0DB8 - adds r1, r4, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080F0D8C - b _080F0EAE -_080F0D8C: - movs r0, 0 - strh r0, [r1] - ldr r0, _080F0DBC - bl BasicInitMenuWindow - ldr r0, _080F0DC0 - adds r1, r4, r0 - ldrh r3, [r5] - lsls r0, r3, 1 - adds r0, 0x2 - ldrh r1, [r1] - adds r5, r0, r1 - movs r0, 0x1F - ands r5, r0 - cmp r3, 0x6 - bhi _080F0D6C - lsls r0, r3, 2 - ldr r1, _080F0DC4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F0DB8: .4byte 0x00000306 -_080F0DBC: .4byte gWindowConfig_81E70D4 -_080F0DC0: .4byte 0x00008778 -_080F0DC4: .4byte _080F0DC8 - .align 2, 0 -_080F0DC8: - .4byte _080F0DE4 - .4byte _080F0DF0 - .4byte _080F0E08 - .4byte _080F0E14 - .4byte _080F0E2C - .4byte _080F0E38 - .4byte _080F0E6C -_080F0DE4: - ldr r0, _080F0DEC - lsls r2, r5, 3 - b _080F0E54 - .align 2, 0 -_080F0DEC: .4byte gOtherText_Strategy -_080F0DF0: - ldr r0, _080F0DFC - ldr r0, [r0] - ldr r1, _080F0E00 - adds r4, r0, r1 - ldr r1, _080F0E04 - b _080F0E42 - .align 2, 0 -_080F0DFC: .4byte gUnknown_083DFEC4 -_080F0E00: .4byte 0x00008788 -_080F0E04: .4byte 0x0000d110 -_080F0E08: - ldr r0, _080F0E10 - lsls r2, r5, 3 - b _080F0E54 - .align 2, 0 -_080F0E10: .4byte gOtherText_TrainersPokemon -_080F0E14: - ldr r0, _080F0E20 - ldr r0, [r0] - ldr r1, _080F0E24 - adds r4, r0, r1 - ldr r1, _080F0E28 - b _080F0E42 - .align 2, 0 -_080F0E20: .4byte gUnknown_083DFEC4 -_080F0E24: .4byte 0x00008788 -_080F0E28: .4byte 0x0000d114 -_080F0E2C: - ldr r0, _080F0E34 - lsls r2, r5, 3 - b _080F0E54 - .align 2, 0 -_080F0E34: .4byte gOtherText_SelfIntroduction -_080F0E38: - ldr r0, _080F0E60 - ldr r0, [r0] - ldr r1, _080F0E64 - adds r4, r0, r1 - ldr r1, _080F0E68 -_080F0E42: - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - movs r2, 0x88 - movs r3, 0 - bl sub_8072C74 - lsls r2, r5, 3 - adds r0, r4, 0 -_080F0E54: - movs r1, 0x61 - movs r3, 0 - bl sub_80729D8 - b _080F0EA0 - .align 2, 0 -_080F0E60: .4byte gUnknown_083DFEC4 -_080F0E64: .4byte 0x00008788 -_080F0E68: .4byte 0x0000d118 -_080F0E6C: - ldr r0, _080F0E94 - ldr r0, [r0] - ldr r1, _080F0E98 - adds r4, r0, r1 - ldr r1, _080F0E9C - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - movs r2, 0x88 - movs r3, 0 - bl sub_8072C74 - lsls r2, r5, 3 - adds r0, r4, 0 - movs r1, 0x61 - movs r3, 0 - bl sub_80729D8 - b _080F0D6C - .align 2, 0 -_080F0E94: .4byte gUnknown_083DFEC4 -_080F0E98: .4byte 0x00008788 -_080F0E9C: .4byte 0x0000d11c -_080F0EA0: - ldr r0, _080F0EB8 - ldr r1, [r0] - ldr r0, _080F0EBC - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F0EAE: - movs r0, 0x1 -_080F0EB0: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080F0EB8: .4byte gUnknown_083DFEC4 -_080F0EBC: .4byte 0x0000d15c - thumb_func_end sub_80F0D5C - - thumb_func_start sub_80F0EC0 -sub_80F0EC0: @ 80F0EC0 - push {lr} - ldr r0, _080F0EE4 - ldr r0, [r0] - ldr r2, _080F0EE8 - adds r1, r0, r2 - movs r2, 0 - strh r2, [r1] - ldr r3, _080F0EEC - adds r1, r0, r3 - strh r2, [r1] - ldr r1, _080F0EF0 - adds r0, r1 - movs r1, 0 - movs r2, 0x10 - bl StringFill - pop {r0} - bx r0 - .align 2, 0 -_080F0EE4: .4byte gUnknown_083DFEC4 -_080F0EE8: .4byte 0x00000306 -_080F0EEC: .4byte 0x0000d15c -_080F0EF0: .4byte 0x00008788 - thumb_func_end sub_80F0EC0 - - thumb_func_start sub_80F0EF4 -sub_80F0EF4: @ 80F0EF4 - push {r4,r5,lr} - ldr r0, _080F0F08 - ldr r2, [r0] - ldr r0, _080F0F0C - adds r5, r2, r0 - ldrh r0, [r5] - cmp r0, 0x6 - bls _080F0F10 - movs r0, 0 - b _080F0F52 - .align 2, 0 -_080F0F08: .4byte gUnknown_083DFEC4 -_080F0F0C: .4byte 0x0000d15c -_080F0F10: - ldr r0, _080F0F58 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080F0F50 - movs r0, 0 - strh r0, [r1] - ldr r1, _080F0F5C - adds r0, r2, r1 - ldrh r4, [r5] - lsls r4, 1 - adds r4, 0x2 - ldrh r0, [r0] - adds r4, r0 - movs r0, 0x1F - ands r4, r0 - ldr r0, _080F0F60 - bl BasicInitMenuWindow - adds r3, r4, 0x1 - movs r0, 0xC - adds r1, r4, 0 - movs r2, 0x1F - bl MenuZeroFillWindowRect - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_080F0F50: - movs r0, 0x1 -_080F0F52: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080F0F58: .4byte 0x00000306 -_080F0F5C: .4byte 0x00008778 -_080F0F60: .4byte gWindowConfig_81E70D4 - thumb_func_end sub_80F0EF4 - - thumb_func_start sub_80F0F64 -sub_80F0F64: @ 80F0F64 - push {r4,lr} - ldr r0, _080F0F90 - ldr r3, [r0] - ldr r1, _080F0F94 - adds r0, r3, r1 - movs r4, 0 - ldrsh r2, [r0, r4] - lsls r1, r2, 4 - ldr r4, _080F0F98 - adds r0, r3, r4 - strh r1, [r0] - movs r1, 0x8 - cmp r2, 0x1 - bne _080F0F82 - movs r1, 0x4 -_080F0F82: - ldr r2, _080F0F9C - adds r0, r3, r2 - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F0F90: .4byte gUnknown_083DFEC4 -_080F0F94: .4byte 0x0000876c -_080F0F98: .4byte 0x0000877c -_080F0F9C: .4byte 0x0000877a - thumb_func_end sub_80F0F64 - - thumb_func_start sub_80F0FA0 -sub_80F0FA0: @ 80F0FA0 - push {r4,lr} - ldr r0, _080F0FDC - ldr r3, [r0] - ldr r1, _080F0FE0 - adds r0, r3, r1 - movs r4, 0 - ldrsh r0, [r0, r4] - negs r0, r0 - lsls r0, 16 - asrs r0, 16 - lsls r2, r0, 4 - ldr r4, _080F0FE4 - adds r1, r3, r4 - strh r2, [r1] - movs r1, 0x1 - negs r1, r1 - movs r4, 0x8 - negs r4, r4 - adds r2, r4, 0 - cmp r0, r1 - bne _080F0FD0 - movs r0, 0x4 - negs r0, r0 - adds r2, r0, 0 -_080F0FD0: - ldr r1, _080F0FE8 - adds r0, r3, r1 - strh r2, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F0FDC: .4byte gUnknown_083DFEC4 -_080F0FE0: .4byte 0x0000876c -_080F0FE4: .4byte 0x0000877c -_080F0FE8: .4byte 0x0000877a - thumb_func_end sub_80F0FA0 - - thumb_func_start sub_80F0FEC -sub_80F0FEC: @ 80F0FEC - push {lr} - bl sub_80F0718 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80F0FEC - - thumb_func_start sub_80F0FFC -sub_80F0FFC: @ 80F0FFC - push {r4,r5,lr} - lsls r0, 24 - ldr r1, _080F1048 - ldr r4, [r1] - ldr r1, _080F104C - adds r5, r4, r1 - lsrs r0, 21 - adds r0, r4, r0 - ldr r1, _080F1050 - adds r0, r1 - ldrh r1, [r0] - adds r0, r5, 0 - movs r2, 0 - bl sub_80FBFB4 - ldr r0, _080F1054 - bl BasicInitMenuWindow - adds r0, r5, 0 - bl sub_80F19DC - ldr r0, _080F1058 - adds r4, r0 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x58 - movs r3, 0x2 - bl sub_8072C74 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x5 - bl MenuPrint - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F1048: .4byte gUnknown_083DFEC4 -_080F104C: .4byte 0x00008788 -_080F1050: .4byte 0x0000ceea -_080F1054: .4byte gWindowConfig_81E710C -_080F1058: .4byte 0x0000d138 - thumb_func_end sub_80F0FFC - - thumb_func_start sub_80F105C -sub_80F105C: @ 80F105C - push {lr} - ldr r0, _080F1078 - ldr r1, [r0] - ldr r2, _080F107C - adds r0, r1, r2 - ldrh r0, [r0] - adds r2, 0xA - adds r1, r2 - ldrh r1, [r1] - bl sub_80F0A74 - pop {r0} - bx r0 - .align 2, 0 -_080F1078: .4byte gUnknown_083DFEC4 -_080F107C: .4byte 0x0000876e - thumb_func_end sub_80F105C - - thumb_func_start sub_80F1080 -sub_80F1080: @ 80F1080 - push {r4,lr} - ldr r1, _080F10A0 - ldr r0, [r1] - ldr r2, _080F10A4 - adds r0, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0xE - bls _080F1094 - b _080F1204 -_080F1094: - lsls r0, 2 - ldr r1, _080F10A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F10A0: .4byte gUnknown_083DFEC4 -_080F10A4: .4byte 0x0000d160 -_080F10A8: .4byte _080F10AC - .align 2, 0 -_080F10AC: - .4byte _080F10E8 - .4byte _080F1104 - .4byte _080F1110 - .4byte _080F111C - .4byte _080F1128 - .4byte _080F112E - .4byte _080F1134 - .4byte _080F1142 - .4byte _080F1160 - .4byte _080F1166 - .4byte _080F116C - .4byte _080F1180 - .4byte _080F1194 - .4byte _080F11DC - .4byte _080F11E2 -_080F10E8: - bl sub_80EEDE8 - ldr r0, _080F10FC - ldr r0, [r0] - ldr r3, _080F1100 - adds r0, r3 - movs r1, 0xB - strb r1, [r0] - b _080F1218 - .align 2, 0 -_080F10FC: .4byte gUnknown_083DFEC4 -_080F1100: .4byte 0x0000d162 -_080F1104: - ldr r0, _080F110C - bl SetUpWindowConfig - b _080F1218 - .align 2, 0 -_080F110C: .4byte gWindowConfig_81E70B8 -_080F1110: - ldr r0, _080F1118 - bl MultistepInitMenuWindowBegin - b _080F1218 - .align 2, 0 -_080F1118: .4byte gWindowConfig_81E70B8 -_080F111C: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - beq _080F1126 - b _080F1218 -_080F1126: - b _080F1226 -_080F1128: - bl MenuZeroFillScreen - b _080F1218 -_080F112E: - bl sub_80F1614 - b _080F1218 -_080F1134: - movs r0, 0x1 - bl sub_80F162C - lsls r0, 24 - cmp r0, 0 - beq _080F1218 - b _080F1226 -_080F1142: - ldr r0, _080F1154 - ldr r1, _080F1158 - ldr r1, [r1] - ldr r2, _080F115C - adds r1, r2 - bl LZ77UnCompWram - b _080F1218 - .align 2, 0 -_080F1154: .4byte gUnknown_08E9FBA0 -_080F1158: .4byte gUnknown_083DFEC4 -_080F115C: .4byte 0x0000934c -_080F1160: - bl sub_80F1238 - b _080F1218 -_080F1166: - bl sub_80F13FC - b _080F1218 -_080F116C: - ldr r0, _080F1178 - ldr r1, _080F117C - bl LZ77UnCompVram - b _080F1218 - .align 2, 0 -_080F1178: .4byte gPokenavRibbonView_Gfx -_080F117C: .4byte 0x06008000 -_080F1180: - ldr r0, _080F118C - ldr r1, _080F1190 - bl LZ77UnCompVram - b _080F1218 - .align 2, 0 -_080F118C: .4byte gUnknown_083E040C -_080F1190: .4byte 0x06008200 -_080F1194: - ldr r0, _080F11CC - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - ldr r4, _080F11D0 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080F11D4 - movs r1, 0x30 - movs r2, 0xA0 - bl LoadPalette - ldr r0, _080F11D8 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - adds r4, 0x1E - adds r0, r4, 0 - movs r1, 0xBF - movs r2, 0x2 - bl LoadPalette - b _080F1218 - .align 2, 0 -_080F11CC: .4byte gPokenavRibbonView_Pal -_080F11D0: .4byte gUnknown_083E03A8 -_080F11D4: .4byte gUnknown_083E3C60 -_080F11D8: .4byte gUnknownPalette_81E6692 -_080F11DC: - bl sub_80F1438 - b _080F1218 -_080F11E2: - ldr r1, _080F1208 - ldr r3, _080F120C - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080F1210 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x42 - movs r0, 0 - strh r0, [r1] - ldr r1, [r2] - ldr r0, _080F1214 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F1204: - movs r0, 0 - b _080F1228 - .align 2, 0 -_080F1208: .4byte REG_BG2CNT -_080F120C: .4byte 0x00001e02 -_080F1210: .4byte 0x0000170b -_080F1214: .4byte 0x0000d160 -_080F1218: - ldr r0, _080F1230 - ldr r1, [r0] - ldr r2, _080F1234 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F1226: - movs r0, 0x1 -_080F1228: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F1230: .4byte gUnknown_083DFEC4 -_080F1234: .4byte 0x0000d160 - thumb_func_end sub_80F1080 - - thumb_func_start sub_80F1238 -sub_80F1238: @ 80F1238 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r6, 0x8B - ldr r0, _080F1318 - ldr r2, [r0] - ldr r1, _080F131C - adds r0, r2, r1 - ldr r3, _080F1320 - adds r1, r2, r3 - ldrb r0, [r0] - ldrb r1, [r1] - subs r0, r1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r7, 0 - mov r5, sp - adds r4, r2, 0 -_080F1264: - movs r1, 0x80 - lsls r1, 6 - adds r0, r1, 0 - strh r0, [r5] - lsls r1, r7, 5 - adds r1, r6, r1 - lsls r1, 1 - ldr r2, _080F1324 - adds r1, r2 - adds r1, r4, r1 - mov r0, sp - ldr r2, _080F1328 - bl CpuSet - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x7 - bls _080F1264 - ldr r3, [sp, 0x4] - lsls r0, r3, 16 - movs r7, 0 - mov r9, r0 - cmp r0, 0 - beq _080F1342 - ldr r0, _080F1318 - ldr r0, [r0] - mov r8, r0 - ldr r1, _080F132C - mov r10, r1 - ldr r5, _080F1324 - add r5, r8 -_080F12A4: - ldr r0, _080F1330 - add r0, r8 - adds r0, r7 - ldrb r1, [r0] - lsls r1, 2 - mov r0, r10 - adds r0, 0x2 - adds r0, r1, r0 - ldrb r2, [r0] - adds r2, 0x3 - lsls r2, 24 - add r1, r10 - ldrh r0, [r1] - lsls r0, 25 - movs r3, 0x80 - lsls r3, 21 - adds r0, r3 - lsrs r4, r0, 24 - lsls r1, r6, 1 - adds r1, r5, r1 - lsrs r2, 12 - adds r0, r2, 0 - orrs r0, r4 - strh r0, [r1] - adds r1, r6, 0x1 - lsls r1, 1 - adds r1, r5, r1 - movs r3, 0x80 - lsls r3, 3 - adds r0, r3, 0 - adds r3, r2, 0 - orrs r3, r0 - adds r0, r3, 0 - orrs r0, r4 - strh r0, [r1] - adds r0, r6, 0 - adds r0, 0x20 - lsls r0, 1 - adds r0, r5, r0 - adds r1, r4, 0x1 - orrs r2, r1 - strh r2, [r0] - adds r0, r6, 0 - adds r0, 0x21 - lsls r0, 1 - adds r0, r5, r0 - orrs r3, r1 - strh r3, [r0] - adds r4, r7, 0x1 - adds r0, r4, 0 - movs r1, 0x9 - bl __modsi3 - cmp r0, 0 - bne _080F1334 - adds r0, r6, 0 - adds r0, 0x30 - b _080F1336 - .align 2, 0 -_080F1318: .4byte gUnknown_083DFEC4 -_080F131C: .4byte 0x0000bc8e -_080F1320: .4byte 0x0000bc8f -_080F1324: .4byte 0x0000934c -_080F1328: .4byte 0x01000012 -_080F132C: .4byte gUnknown_083E4698 -_080F1330: .4byte 0x0000bc4c -_080F1334: - adds r0, r6, 0x2 -_080F1336: - lsls r0, 16 - lsrs r6, r0, 16 - lsls r0, r4, 16 - lsrs r7, r0, 16 - cmp r0, r9 - bcc _080F12A4 -_080F1342: - ldr r6, _080F13E8 - movs r7, 0 - ldr r1, _080F13EC - ldr r0, [r1] - ldr r2, _080F13F0 - adds r1, r0, r2 - ldrb r3, [r1] - cmp r7, r3 - bcs _080F13D8 - subs r2, 0x43 - adds r2, r0 - mov r10, r2 - ldr r3, _080F13F4 - mov r8, r3 - ldr r2, _080F13F8 - adds r5, r0, r2 - mov r9, r1 -_080F1364: - ldr r3, [sp, 0x4] - adds r0, r3, r7 - add r0, r10 - ldrb r1, [r0] - lsls r1, 2 - mov r0, r8 - adds r0, 0x2 - adds r0, r1, r0 - ldrb r2, [r0] - adds r2, 0x3 - lsls r2, 24 - add r1, r8 - ldrh r0, [r1] - lsls r0, 25 - movs r1, 0x80 - lsls r1, 21 - adds r0, r1 - lsrs r4, r0, 24 - lsls r1, r6, 1 - adds r1, r5, r1 - lsrs r2, 12 - adds r0, r2, 0 - orrs r0, r4 - strh r0, [r1] - adds r1, r6, 0x1 - lsls r1, 1 - adds r1, r5, r1 - movs r3, 0x80 - lsls r3, 3 - adds r0, r3, 0 - adds r3, r2, 0 - orrs r3, r0 - adds r0, r3, 0 - orrs r0, r4 - strh r0, [r1] - adds r0, r6, 0 - adds r0, 0x20 - lsls r0, 1 - adds r0, r5, r0 - adds r1, r4, 0x1 - orrs r2, r1 - strh r2, [r0] - adds r0, r6, 0 - adds r0, 0x21 - lsls r0, 1 - adds r0, r5, r0 - orrs r3, r1 - strh r3, [r0] - adds r0, r6, 0x2 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - mov r0, r9 - ldrb r0, [r0] - cmp r7, r0 - bcc _080F1364 -_080F13D8: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F13E8: .4byte 0x0000014b -_080F13EC: .4byte gUnknown_083DFEC4 -_080F13F0: .4byte 0x0000bc8f -_080F13F4: .4byte gUnknown_083E4698 -_080F13F8: .4byte 0x0000934c - thumb_func_end sub_80F1238 - - thumb_func_start sub_80F13FC -sub_80F13FC: @ 80F13FC - ldr r0, _080F141C - ldr r0, [r0] - ldr r1, _080F1420 - adds r0, r1 - ldr r2, _080F1424 - ldr r1, _080F1428 - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _080F142C - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _080F1430 - ldr r0, _080F1434 - ldrh r0, [r0] - strh r0, [r1] - bx lr - .align 2, 0 -_080F141C: .4byte gUnknown_083DFEC4 -_080F1420: .4byte 0x0000934c -_080F1424: .4byte 0x0600b800 -_080F1428: .4byte 0x040000d4 -_080F142C: .4byte 0x84000140 -_080F1430: .4byte gPlttBufferUnfaded -_080F1434: .4byte gPokenavRibbonView_Pal + 0x1C - thumb_func_end sub_80F13FC - - thumb_func_start sub_80F1438 -sub_80F1438: @ 80F1438 - push {r4,r5,lr} - ldr r0, _080F1470 - ldr r4, [r0] - ldr r1, _080F1474 - adds r0, r4, r1 - movs r1, 0xD - movs r2, 0x1 - bl MenuPrint - ldr r0, _080F1478 - adds r5, r4, r0 - ldr r1, _080F147C - adds r4, r1 - ldrh r1, [r4] - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl sub_80F445C - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x5 - bl MenuPrint - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F1470: .4byte gUnknown_083DFEC4 -_080F1474: .4byte 0x00008829 -_080F1478: .4byte 0x00008788 -_080F147C: .4byte 0x0000876e - thumb_func_end sub_80F1438 - - thumb_func_start sub_80F1480 -sub_80F1480: @ 80F1480 - push {lr} - movs r0, 0xC - movs r1, 0xD - movs r2, 0x1B - movs r3, 0x10 - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_80F1480 - - thumb_func_start sub_80F1494 -sub_80F1494: @ 80F1494 - push {r4-r7,lr} - ldr r0, _080F14D4 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 4 - adds r6, r0, r1 - ldr r2, _080F14D8 - adds r7, r0, r2 - ldr r0, _080F14DC - ldr r3, [r0] - ldr r4, _080F14E0 - adds r1, r3, r4 - ldrb r0, [r1] - cmp r0, 0x2 - bhi _080F14F0 - ldr r5, _080F14E4 - adds r1, r0, 0 - lsls r0, r1, 3 - subs r4, 0x1 - adds r2, r3, r4 - adds r0, r1 - ldrb r2, [r2] - adds r0, r2 - strh r0, [r5] - ldr r1, _080F14E8 - adds r0, r3, r1 - ldrh r2, [r5] - adds r0, r2 - ldrb r0, [r0] - strh r0, [r5] - ldr r4, _080F14EC - b _080F152E - .align 2, 0 -_080F14D4: .4byte gUnknown_083DFEC8 -_080F14D8: .4byte 0x00000a98 -_080F14DC: .4byte gUnknown_083DFEC4 -_080F14E0: .4byte 0x0000bc91 -_080F14E4: .4byte gUnknown_020388B4 -_080F14E8: .4byte 0x0000bc4c -_080F14EC: .4byte gRibbonDescriptions -_080F14F0: - ldr r5, _080F1558 - ldr r4, _080F155C - adds r0, r3, r4 - ldrb r0, [r0] - ldr r2, _080F1560 - adds r1, r3, r2 - ldrb r1, [r1] - subs r0, r1 - strh r0, [r5] - ldrh r1, [r5] - adds r4, 0x2 - adds r0, r3, r4 - ldrb r0, [r0] - adds r1, r0 - subs r2, 0x43 - adds r0, r3, r2 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r5] - ldr r0, _080F1564 - ldrh r1, [r5] - adds r0, r1 - ldr r4, _080F1568 - adds r0, r4 - ldrb r0, [r0] - strh r0, [r5] - cmp r0, 0 - beq _080F1570 - subs r0, 0x1 - strh r0, [r5] - ldr r4, _080F156C -_080F152E: - ldrh r0, [r5] - lsls r0, 3 - adds r0, r4 - ldr r1, [r0] - adds r0, r6, 0 - movs r2, 0x80 - movs r3, 0 - bl sub_8072C74 - ldrh r0, [r5] - lsls r0, 3 - adds r4, 0x4 - adds r0, r4 - ldr r1, [r0] - adds r0, r7, 0 - movs r2, 0x80 - movs r3, 0 - bl sub_8072C74 - b _080F158A - .align 2, 0 -_080F1558: .4byte gUnknown_020388B4 -_080F155C: .4byte 0x0000bc8e -_080F1560: .4byte 0x0000bc8f -_080F1564: .4byte gSaveBlock1 -_080F1568: .4byte 0x000030f7 -_080F156C: .4byte gGiftRibbonDescriptions -_080F1570: - ldr r4, _080F15A4 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0x80 - movs r3, 0 - bl sub_8072C74 - adds r0, r7, 0 - adds r1, r4, 0 - movs r2, 0x80 - movs r3, 0 - bl sub_8072C74 -_080F158A: - adds r0, r6, 0 - movs r1, 0xC - movs r2, 0xD - bl MenuPrint - adds r0, r7, 0 - movs r1, 0xC - movs r2, 0xF - bl MenuPrint - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F15A4: .4byte gEmptyString_81E72B0 - thumb_func_end sub_80F1494 - - thumb_func_start sub_80F15A8 -sub_80F15A8: @ 80F15A8 - push {r4,r5,lr} - movs r0, 0xC - movs r1, 0xD - movs r2, 0x1B - movs r3, 0x10 - bl MenuZeroFillWindowRect - ldr r0, _080F1600 - ldr r4, [r0] - ldr r0, _080F1604 - adds r5, r4, r0 - ldr r1, _080F1608 - adds r0, r5, 0 - bl StringCopy - adds r2, r0, 0 - movs r0, 0 - strb r0, [r2] - adds r2, 0x1 - ldr r1, _080F160C - adds r0, r4, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - lsls r0, 2 - adds r4, r0 - ldr r0, _080F1610 - adds r4, r0 - ldrb r1, [r4] - adds r0, r2, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r2, r0, 0 - movs r0, 0xFF - strb r0, [r2] - adds r0, r5, 0 - movs r1, 0xC - movs r2, 0xD - bl MenuPrint - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F1600: .4byte gUnknown_083DFEC4 -_080F1604: .4byte 0x00008788 -_080F1608: .4byte gOtherText_Ribbons -_080F160C: .4byte 0x000087dc -_080F1610: .4byte 0x0000893c - thumb_func_end sub_80F15A8 - - thumb_func_start sub_80F1614 -sub_80F1614: @ 80F1614 - ldr r0, _080F1624 - ldr r0, [r0] - ldr r1, _080F1628 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - bx lr - .align 2, 0 -_080F1624: .4byte gUnknown_083DFEC4 -_080F1628: .4byte 0x00008764 - thumb_func_end sub_80F1614 - - thumb_func_start sub_80F162C -sub_80F162C: @ 80F162C - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080F164C - ldr r0, [r0] - ldr r2, _080F1650 - adds r0, r2 - ldrh r0, [r0] - cmp r0, 0x1 - beq _080F165E - cmp r0, 0x1 - bgt _080F1654 - cmp r0, 0 - beq _080F16F0 - b _080F16D0 - .align 2, 0 -_080F164C: .4byte gUnknown_083DFEC4 -_080F1650: .4byte 0x00008764 -_080F1654: - cmp r0, 0x2 - beq _080F1670 - cmp r0, 0x3 - beq _080F1694 - b _080F16D0 -_080F165E: - ldr r0, _080F1668 - ldr r1, _080F166C - bl LZ77UnCompVram - b _080F16F0 - .align 2, 0 -_080F1668: .4byte gUnknown_08E9FF58 -_080F166C: .4byte 0x0600e800 -_080F1670: - ldr r1, _080F1684 - ldr r2, _080F1688 - ldr r0, _080F168C - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080F1690 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080F16F0 - .align 2, 0 -_080F1684: .4byte gPokenavRibbonPokeView_Gfx -_080F1688: .4byte 0x0600e000 -_080F168C: .4byte 0x040000d4 -_080F1690: .4byte 0x80000070 -_080F1694: - cmp r1, 0 - bne _080F16A8 - ldr r0, _080F16A4 - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - b _080F16B2 - .align 2, 0 -_080F16A4: .4byte gUnknown_083E0124 -_080F16A8: - ldr r0, _080F16D4 - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette -_080F16B2: - ldr r0, _080F16D8 - ldr r1, [r0] - ldr r3, _080F16DC - adds r2, r1, r3 - ldr r0, _080F16E0 - strh r0, [r2] - ldr r2, _080F16E4 - ldr r3, _080F16E8 - adds r0, r3, 0 - strh r0, [r2] - ldr r0, _080F16EC - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F16D0: - movs r0, 0 - b _080F1700 - .align 2, 0 -_080F16D4: .4byte gUnknown_083E0144 -_080F16D8: .4byte gUnknown_083DFEC4 -_080F16DC: .4byte 0x00008766 -_080F16E0: .4byte 0x0000ffb0 -_080F16E4: .4byte REG_BG0CNT -_080F16E8: .4byte 0x00001d0d -_080F16EC: .4byte 0x00008764 -_080F16F0: - ldr r0, _080F1704 - ldr r1, [r0] - ldr r2, _080F1708 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 -_080F1700: - pop {r1} - bx r1 - .align 2, 0 -_080F1704: .4byte gUnknown_083DFEC4 -_080F1708: .4byte 0x00008764 - thumb_func_end sub_80F162C - - thumb_func_start sub_80F170C -sub_80F170C: @ 80F170C - push {lr} - ldr r0, _080F1734 - ldr r0, [r0] - ldr r2, _080F1738 - adds r1, r0, r2 - ldrh r0, [r1] - adds r0, 0x10 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - ble _080F1726 - movs r0, 0 - strh r0, [r1] -_080F1726: - movs r0, 0 - ldrsh r1, [r1, r0] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - pop {r1} - bx r1 - .align 2, 0 -_080F1734: .4byte gUnknown_083DFEC4 -_080F1738: .4byte 0x00008766 - thumb_func_end sub_80F170C - - thumb_func_start sub_80F173C -sub_80F173C: @ 80F173C - push {lr} - ldr r0, _080F176C - ldr r0, [r0] - ldr r2, _080F1770 - adds r1, r0, r2 - ldrh r0, [r1] - subs r0, 0x10 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x50 - negs r2, r2 - cmp r0, r2 - bge _080F175C - ldr r0, _080F1774 - strh r0, [r1] -_080F175C: - movs r0, 0 - ldrsh r1, [r1, r0] - eors r1, r2 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - pop {r1} - bx r1 - .align 2, 0 -_080F176C: .4byte gUnknown_083DFEC4 -_080F1770: .4byte 0x00008766 -_080F1774: .4byte 0x0000ffb0 - thumb_func_end sub_80F173C - - thumb_func_start sub_80F1778 -sub_80F1778: @ 80F1778 - push {r4,lr} - sub sp, 0x14 - ldr r0, _080F1798 - ldr r0, [r0] - ldr r1, _080F179C - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x9 - bls _080F178C - b _080F1910 -_080F178C: - lsls r0, 2 - ldr r1, _080F17A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F1798: .4byte gUnknown_083DFEC4 -_080F179C: .4byte 0x0000d160 -_080F17A0: .4byte _080F17A4 - .align 2, 0 -_080F17A4: - .4byte _080F17CC - .4byte _080F17E8 - .4byte _080F17EE - .4byte _080F17FE - .4byte _080F1810 - .4byte _080F1830 - .4byte _080F1858 - .4byte _080F186C - .4byte _080F18B8 - .4byte _080F18D8 -_080F17CC: - bl sub_80EEDE8 - ldr r0, _080F17E0 - ldr r0, [r0] - ldr r2, _080F17E4 - adds r0, r2 - movs r1, 0x2 - strb r1, [r0] - b _080F1914 - .align 2, 0 -_080F17E0: .4byte gUnknown_083DFEC4 -_080F17E4: .4byte 0x0000d162 -_080F17E8: - bl sub_80F1614 - b _080F1914 -_080F17EE: - movs r0, 0 - bl sub_80F162C - lsls r0, 24 - cmp r0, 0 - bne _080F17FC - b _080F1914 -_080F17FC: - b _080F1922 -_080F17FE: - ldr r0, _080F1808 - ldr r1, _080F180C - bl LZ77UnCompVram - b _080F1914 - .align 2, 0 -_080F1808: .4byte gPokenavConditionView_Gfx -_080F180C: .4byte 0x06005000 -_080F1810: - ldr r0, _080F1824 - ldr r1, _080F1828 - bl LZ77UnCompVram - ldr r0, _080F182C - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - b _080F1914 - .align 2, 0 -_080F1824: .4byte gUnknown_08E9AC4C -_080F1828: .4byte 0x0600f000 -_080F182C: .4byte gPokenavConditionMenu2_Pal -_080F1830: - ldr r0, _080F1850 - ldr r3, _080F1854 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r2, 0xC - str r2, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0 - movs r2, 0xD - bl sub_8095C8C - b _080F1914 - .align 2, 0 -_080F1850: .4byte 0x0600f000 -_080F1854: .4byte gUnknown_083E01F4 -_080F1858: - ldr r0, _080F1864 - ldr r1, _080F1868 - bl LZ77UnCompVram - b _080F1914 - .align 2, 0 -_080F1864: .4byte gUnknown_08E9FEB4 -_080F1868: .4byte 0x0600b800 -_080F186C: - ldr r0, _080F18AC - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080F18B0 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - ldr r4, _080F18B4 - adds r0, r4, 0 - movs r1, 0xB1 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0xE - movs r1, 0xB5 - movs r2, 0x2 - bl LoadPalette - adds r4, 0x1C - adds r0, r4, 0 - movs r1, 0xBF - movs r2, 0x2 - bl LoadPalette - bl sub_80F01A4 - b _080F1914 - .align 2, 0 -_080F18AC: .4byte gUnknown_083E0254 -_080F18B0: .4byte gUnknownPalette_81E6692 -_080F18B4: .4byte gPokenavConditionMenu2_Pal + 0x2 -_080F18B8: - ldr r0, _080F18D0 - ldr r0, [r0] - ldr r1, _080F18D4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - bl sub_80F01E0 - b _080F1914 - .align 2, 0 -_080F18D0: .4byte gUnknown_083DFEC4 -_080F18D4: .4byte 0x00008fe9 -_080F18D8: - ldr r1, _080F18FC - ldr r2, _080F1900 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _080F1904 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x44 - ldr r2, _080F1908 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F190C - adds r0, r2, 0 - strh r0, [r1] - b _080F1914 - .align 2, 0 -_080F18FC: .4byte REG_BG3CNT -_080F1900: .4byte 0x00001e03 -_080F1904: .4byte 0x00001702 -_080F1908: .4byte 0x00000844 -_080F190C: .4byte 0x0000040b -_080F1910: - movs r0, 0 - b _080F1924 -_080F1914: - ldr r0, _080F192C - ldr r1, [r0] - ldr r0, _080F1930 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F1922: - movs r0, 0x1 -_080F1924: - add sp, 0x14 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F192C: .4byte gUnknown_083DFEC4 -_080F1930: .4byte 0x0000d160 - thumb_func_end sub_80F1778 - - thumb_func_start sub_80F1934 -sub_80F1934: @ 80F1934 - push {r4,r5,lr} - ldr r0, _080F1990 - ldr r1, [r0] - ldr r0, _080F1994 - adds r5, r1, r0 - ldr r3, _080F1998 - adds r2, r1, r3 - movs r3, 0 - ldrsh r0, [r2, r3] - lsls r0, 2 - adds r1, r0 - ldr r0, _080F199C - adds r1, r0 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - bge _080F19AC - ldrb r0, [r2] - bl sub_8137124 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080F19A0 - adds r0, r1 - bl GetNature - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080F19A4 - adds r0, r5, 0 - bl StringCopy - adds r5, r0, 0 - ldr r0, _080F19A8 - lsls r4, 2 - adds r4, r0 - ldr r1, [r4] - adds r0, r5, 0 - movs r2, 0x57 - movs r3, 0 - bl sub_8072C74 - b _080F19B8 - .align 2, 0 -_080F1990: .4byte gUnknown_083DFEC4 -_080F1994: .4byte 0x00008788 -_080F1998: .4byte 0x000087dc -_080F199C: .4byte 0x0000893f -_080F19A0: .4byte gPlayerParty -_080F19A4: .4byte gOtherText_Nature2 -_080F19A8: .4byte gNatureNames -_080F19AC: - ldr r1, _080F19D0 - adds r0, r5, 0 - movs r2, 0x57 - movs r3, 0 - bl sub_8072C74 -_080F19B8: - ldr r0, _080F19D4 - ldr r0, [r0] - ldr r1, _080F19D8 - adds r0, r1 - movs r1, 0x1 - movs r2, 0x70 - movs r3, 0x1 - bl sub_80729D8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F19D0: .4byte gEmptyString_81E72B0 -_080F19D4: .4byte gUnknown_083DFEC4 -_080F19D8: .4byte 0x00008788 - thumb_func_end sub_80F1934 - - thumb_func_start sub_80F19DC -sub_80F19DC: @ 80F19DC - push {lr} - adds r1, r0, 0 - b _080F19E4 -_080F19E2: - adds r1, 0x1 -_080F19E4: - ldrb r0, [r1] - cmp r0, 0xFF - beq _080F19F8 - cmp r0, 0xFC - bne _080F19E2 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _080F19E2 - movs r0, 0xFF - strb r0, [r1] -_080F19F8: - pop {r0} - bx r0 - thumb_func_end sub_80F19DC - - thumb_func_start sub_80F19FC -sub_80F19FC: @ 80F19FC - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _080F1A68 - ldrb r4, [r5] - cmp r4, 0x1 - bne _080F1A60 - ldr r0, _080F1A6C - ldr r1, [r0] - ldr r2, _080F1A70 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x3 - adds r1, r2 - ldrb r1, [r1] - ldrb r2, [r5, 0x1] - bl sub_811A8CC - cmp r0, 0 - beq _080F1A46 - ldrb r2, [r5, 0x1] - lsls r2, 20 - movs r1, 0xC0 - lsls r1, 14 - adds r2, r1 - lsrs r2, 16 - str r4, [sp] - movs r1, 0x70 - movs r3, 0x78 - bl sub_8072A18 - ldrb r0, [r5, 0x1] - adds r0, 0x1 - strb r0, [r5, 0x1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _080F1A60 -_080F1A46: - ldrb r1, [r5, 0x1] - lsls r1, 25 - movs r2, 0xC0 - lsls r2, 19 - adds r1, r2 - lsrs r1, 24 - movs r0, 0xE - movs r2, 0x1C - movs r3, 0xF - bl MenuFillWindowRectWithBlankTile - movs r0, 0 - strb r0, [r5] -_080F1A60: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F1A68: .4byte gUnknown_020388B0 -_080F1A6C: .4byte gUnknown_083DFEC4 -_080F1A70: .4byte 0x00006e2c - thumb_func_end sub_80F19FC - - thumb_func_start sub_80F1A74 -sub_80F1A74: @ 80F1A74 - ldr r1, _080F1A7C - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080F1A7C: .4byte gUnknown_020388B0 - thumb_func_end sub_80F1A74 - - thumb_func_start sub_80F1A80 -sub_80F1A80: @ 80F1A80 - ldr r0, _080F1A8C - movs r2, 0 - movs r1, 0x1 - strb r1, [r0] - strb r2, [r0, 0x1] - bx lr - .align 2, 0 -_080F1A8C: .4byte gUnknown_020388B0 - thumb_func_end sub_80F1A80 - - thumb_func_start sub_80F1A90 -sub_80F1A90: @ 80F1A90 - push {lr} - ldr r0, _080F1AB8 - ldr r0, [r0] - ldr r1, _080F1ABC - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080F1AC0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F1AB2 -_080F1AA8: - bl sub_80F1AC4 - lsls r0, 24 - cmp r0, 0 - bne _080F1AA8 -_080F1AB2: - pop {r0} - bx r0 - .align 2, 0 -_080F1AB8: .4byte gUnknown_083DFEC4 -_080F1ABC: .4byte 0x00000306 -_080F1AC0: .4byte 0x00006dac - thumb_func_end sub_80F1A90 - - thumb_func_start sub_80F1AC4 -sub_80F1AC4: @ 80F1AC4 - push {r4,r5,lr} - ldr r0, _080F1AE0 - ldr r1, [r0] - ldr r2, _080F1AE4 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, 0x1 - beq _080F1B34 - cmp r0, 0x1 - bgt _080F1AE8 - cmp r0, 0 - beq _080F1AF2 - b _080F1B6C - .align 2, 0 -_080F1AE0: .4byte gUnknown_083DFEC4 -_080F1AE4: .4byte 0x00000306 -_080F1AE8: - cmp r0, 0x2 - beq _080F1B40 - cmp r0, 0x3 - beq _080F1B54 - b _080F1B6C -_080F1AF2: - movs r0, 0 - movs r2, 0xC8 - lsls r2, 2 - adds r4, r1, r2 - movs r5, 0 -_080F1AFC: - movs r2, 0 - adds r1, r0, 0x1 - lsls r3, r0, 4 -_080F1B02: - lsls r0, r2, 2 - adds r0, r3 - adds r0, r4, r0 - str r5, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x3 - bls _080F1B02 - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, 0x5 - bls _080F1AFC - ldr r0, _080F1B2C - ldr r0, [r0] - ldr r1, _080F1B30 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - b _080F1B6C - .align 2, 0 -_080F1B2C: .4byte gUnknown_083DFEC4 -_080F1B30: .4byte 0x00000311 -_080F1B34: - ldr r0, _080F1B3C - movs r2, 0xE2 - lsls r2, 2 - b _080F1B44 - .align 2, 0 -_080F1B3C: .4byte gPokenavMenuOptions_Gfx -_080F1B40: - ldr r0, _080F1B4C - ldr r2, _080F1B50 -_080F1B44: - adds r1, r2 - bl LZ77UnCompWram - b _080F1B6C - .align 2, 0 -_080F1B4C: .4byte gPokenavConditionMenu_Gfx -_080F1B50: .4byte 0x00001788 -_080F1B54: - ldr r0, _080F1B64 - ldr r2, _080F1B68 - adds r1, r2 - bl LZ77UnCompWram - movs r0, 0 - b _080F1B7C - .align 2, 0 -_080F1B64: .4byte gPokenavConditionSearch_Gfx -_080F1B68: .4byte 0x00002388 -_080F1B6C: - ldr r0, _080F1B84 - ldr r1, [r0] - ldr r0, _080F1B88 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 -_080F1B7C: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080F1B84: .4byte gUnknown_083DFEC4 -_080F1B88: .4byte 0x00000306 - thumb_func_end sub_80F1AC4 - - thumb_func_start sub_80F1B8C -sub_80F1B8C: @ 80F1B8C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080F1BBC - ldr r0, [r0] - ldr r1, _080F1BC0 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080F1BC4 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F1BB4 -_080F1BA8: - adds r0, r4, 0 - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - bne _080F1BA8 -_080F1BB4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F1BBC: .4byte gUnknown_083DFEC4 -_080F1BC0: .4byte 0x00000306 -_080F1BC4: .4byte 0x00006dac - thumb_func_end sub_80F1B8C - - thumb_func_start sub_80F1BC8 -sub_80F1BC8: @ 80F1BC8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _080F1BF4 - ldr r2, [r1] - ldr r3, _080F1BF8 - adds r0, r2, r3 - ldrh r0, [r0] - adds r3, r1, 0 - cmp r0, 0x1 - beq _080F1C0A - cmp r0, 0x1 - bgt _080F1BFC - cmp r0, 0 - beq _080F1C02 - b _080F1DC4 - .align 2, 0 -_080F1BF4: .4byte gUnknown_083DFEC4 -_080F1BF8: .4byte 0x00000306 -_080F1BFC: - cmp r0, 0x2 - beq _080F1C12 - b _080F1DC4 -_080F1C02: - mov r0, r9 - bl sub_80F2458 - b _080F1DC8 -_080F1C0A: - mov r0, r9 - bl sub_80F2514 - b _080F1DC8 -_080F1C12: - mov r4, r9 - cmp r4, 0x1 - beq _080F1C40 - cmp r4, 0x1 - bgt _080F1C22 - cmp r4, 0 - beq _080F1C2A - b _080F1DC4 -_080F1C22: - mov r5, r9 - cmp r5, 0x2 - beq _080F1C54 - b _080F1DC4 -_080F1C2A: - movs r0, 0x2A - str r0, [sp, 0x4] - movs r1, 0x14 - str r1, [sp, 0x8] - ldr r4, _080F1C3C - adds r1, r2, r4 - movs r0, 0x5 - b _080F1C62 - .align 2, 0 -_080F1C3C: .4byte 0x0000030e -_080F1C40: - movs r5, 0x38 - str r5, [sp, 0x4] - movs r0, 0x14 - str r0, [sp, 0x8] - ldr r4, _080F1C50 - adds r1, r2, r4 - movs r0, 0x3 - b _080F1C62 - .align 2, 0 -_080F1C50: .4byte 0x0000030e -_080F1C54: - movs r5, 0x28 - str r5, [sp, 0x4] - movs r0, 0x10 - str r0, [sp, 0x8] - ldr r4, _080F1CDC - adds r1, r2, r4 - movs r0, 0x6 -_080F1C62: - strb r0, [r1] - movs r5, 0 - str r5, [sp] - mov r8, r5 - adds r1, r3, 0 - ldr r0, [r1] - ldr r2, _080F1CDC - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r8, r0 - blt _080F1C7E - b _080F1DC8 -_080F1C7E: - ldr r4, [sp, 0x8] - mov r3, r8 - muls r3, r4 - ldr r5, [sp, 0x4] - adds r0, r5, r3 - subs r0, 0x8 - lsls r0, 16 - lsrs r0, 16 - ldr r4, [r1] - mov r2, r8 - lsls r1, r2, 1 - movs r5, 0xC5 - lsls r5, 2 - adds r2, r4, r5 - adds r2, r1 - lsls r1, r0, 8 - adds r0, 0x11 - orrs r1, r0 - strh r1, [r2] - mov r0, r9 - cmp r0, 0 - bne _080F1CF2 - ldr r1, _080F1CE0 - adds r0, r4, r1 - mov r2, r8 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _080F1CE8 - movs r5, 0 - ldr r0, _080F1CE4 - ldr r0, [r0] - lsls r2, 4 - movs r3, 0xC8 - lsls r3, 2 - adds r1, r0, r3 - movs r3, 0 -_080F1CC8: - lsls r0, r5, 2 - adds r0, r2 - adds r0, r1, r0 - str r3, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080F1CC8 - b _080F1D92 - .align 2, 0 -_080F1CDC: .4byte 0x0000030e -_080F1CE0: .4byte 0x00006db2 -_080F1CE4: .4byte gUnknown_083DFEC4 -_080F1CE8: - ldrb r0, [r1] - subs r0, 0x1 - lsls r0, 18 - lsrs r0, 16 - str r0, [sp] -_080F1CF2: - movs r5, 0 - ldr r4, [sp, 0x4] - adds r0, r4, r3 - lsls r0, 16 - mov r10, r0 -_080F1CFC: - lsls r6, r5, 5 - movs r0, 0x80 - lsls r0, 1 - adds r7, r6, r0 - lsls r1, r7, 16 - asrs r1, 16 - ldr r0, _080F1DB4 - mov r3, r10 - asrs r2, r3, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _080F1DC4 - ldr r0, _080F1DB8 - ldr r2, [r0] - lsls r1, r5, 2 - mov r4, r8 - lsls r0, r4, 4 - adds r1, r0 - movs r0, 0xC8 - lsls r0, 2 - adds r2, r0 - adds r4, r2, r1 - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - ldr r1, _080F1DBC - adds r0, r1 - str r0, [r4] - mov r1, r8 - strh r1, [r0, 0x2E] - ldr r0, [r4] - strh r5, [r0, 0x30] - ldr r1, [r4] - adds r0, r6, 0 - adds r0, 0x98 - strh r0, [r1, 0x32] - ldr r0, [r4] - strh r7, [r0, 0x34] - ldr r0, [r4] - ldr r1, [sp] - adds r2, r1, 0x1 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp] - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim - mov r2, r9 - cmp r2, 0x2 - beq _080F1D6E - cmp r2, 0 - bne _080F1D88 -_080F1D6E: - mov r3, r8 - cmp r3, 0x2 - bls _080F1D88 - movs r0, 0x1 - bl IndexOfSpritePaletteTag - ldr r3, [r4] - lsls r0, 4 - ldrb r2, [r3, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x5] -_080F1D88: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080F1CFC -_080F1D92: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r1, _080F1DB8 - ldr r0, [r1] - ldr r4, _080F1DC0 - adds r0, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r8, r0 - bge _080F1DB0 - b _080F1C7E -_080F1DB0: - b _080F1DC8 - .align 2, 0 -_080F1DB4: .4byte gSpriteTemplate_83E4454 -_080F1DB8: .4byte gUnknown_083DFEC4 -_080F1DBC: .4byte gSprites -_080F1DC0: .4byte 0x0000030e -_080F1DC4: - movs r0, 0 - b _080F1DD8 -_080F1DC8: - ldr r0, _080F1DE8 - ldr r1, [r0] - ldr r5, _080F1DEC - adds r1, r5 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 -_080F1DD8: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080F1DE8: .4byte gUnknown_083DFEC4 -_080F1DEC: .4byte 0x00000306 - thumb_func_end sub_80F1BC8 - - thumb_func_start sub_80F1DF0 -sub_80F1DF0: @ 80F1DF0 - push {r4-r6,lr} - movs r2, 0 - ldr r0, _080F1E44 - ldr r3, [r0] - ldr r0, _080F1E48 - adds r1, r3, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - bge _080F1E38 - movs r0, 0xC8 - lsls r0, 2 - adds r4, r3, r0 - adds r6, r1, 0 - ldr r5, _080F1E4C -_080F1E0E: - movs r1, 0 - adds r3, r2, 0x1 - lsls r2, 4 -_080F1E14: - lsls r0, r1, 2 - adds r0, r2 - adds r0, r4, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080F1E22 - str r5, [r0, 0x1C] -_080F1E22: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bls _080F1E14 - lsls r0, r3, 16 - lsrs r2, r0, 16 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r2, r0 - blt _080F1E0E -_080F1E38: - movs r0, 0x6 - bl PlaySE - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F1E44: .4byte gUnknown_083DFEC4 -_080F1E48: .4byte 0x0000030e -_080F1E4C: .4byte sub_80F2218 - thumb_func_end sub_80F1DF0 - - thumb_func_start sub_80F1E50 -sub_80F1E50: @ 80F1E50 - push {lr} - bl sub_80F22F8 - lsls r0, 24 - cmp r0, 0 - bne _080F1E60 - movs r0, 0x1 - b _080F1E66 -_080F1E60: - bl sub_80F2108 - movs r0, 0 -_080F1E66: - pop {r1} - bx r1 - thumb_func_end sub_80F1E50 - - thumb_func_start sub_80F1E6C -sub_80F1E6C: @ 80F1E6C - push {lr} - bl sub_80F22F8 - movs r1, 0 - lsls r0, 24 - cmp r0, 0 - bne _080F1E7C - movs r1, 0x1 -_080F1E7C: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end sub_80F1E6C - - thumb_func_start sub_80F1E84 -sub_80F1E84: @ 80F1E84 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r5, _080F1EFC - ldr r4, [r5] - ldr r1, _080F1F00 - adds r0, r4, r1 - movs r1, 0 - strb r1, [r0] - bl sub_80F2148 - movs r2, 0 - ldr r3, _080F1F04 - adds r1, r4, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - bge _080F1EF2 - ldr r0, _080F1F08 - adds r7, r4, r0 - adds r6, r1, 0 - mov r8, r5 - ldr r1, _080F1F0C - mov r12, r1 -_080F1EB4: - movs r0, 0 - ldrsb r0, [r7, r0] - adds r5, r2, 0x1 - cmp r2, r0 - beq _080F1EE6 - movs r1, 0 - mov r3, r8 - ldr r0, [r3] - lsls r3, r2, 4 - movs r4, 0xC8 - lsls r4, 2 - adds r2, r0, r4 - mov r4, r12 -_080F1ECE: - lsls r0, r1, 2 - adds r0, r3 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080F1EDC - str r4, [r0, 0x1C] -_080F1EDC: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bls _080F1ECE -_080F1EE6: - lsls r0, r5, 16 - lsrs r2, r0, 16 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r2, r0 - blt _080F1EB4 -_080F1EF2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F1EFC: .4byte gUnknown_083DFEC4 -_080F1F00: .4byte 0x0000030f -_080F1F04: .4byte 0x0000030e -_080F1F08: .4byte 0x00006dad -_080F1F0C: .4byte sub_80F2240 - thumb_func_end sub_80F1E84 - - thumb_func_start sub_80F1F10 -sub_80F1F10: @ 80F1F10 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _080F1F2C - ldr r4, [r0] - ldr r1, _080F1F30 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F1F34 - cmp r0, 0x1 - beq _080F1FC0 - b _080F1FE4 - .align 2, 0 -_080F1F2C: .4byte gUnknown_083DFEC4 -_080F1F30: .4byte 0x0000030f -_080F1F34: - bl sub_80F2360 - lsls r0, 24 - cmp r0, 0 - beq _080F1FE4 - movs r6, 0 - adds r7, r4, 0 - movs r0, 0xC8 - lsls r0, 2 - adds r0, r7 - mov r8, r0 -_080F1F4A: - lsls r5, r6, 2 - ldr r1, _080F1FAC - adds r0, r7, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 4 - adds r0, r5, r0 - add r0, r8 - ldr r4, [r0] - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, _080F1FB0 - str r0, [r4, 0x10] - adds r0, r4, 0 - bl InitSpriteAffineAnim - subs r5, 0x6 - strh r5, [r4, 0x36] - movs r1, 0x36 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x36] - movs r1, 0x36 - ldrsh r0, [r4, r1] - lsls r0, 3 - strh r0, [r4, 0x38] - ldr r0, _080F1FB4 - str r0, [r4, 0x1C] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _080F1F4A - bl sub_80F2170 - ldr r0, _080F1FB8 - ldr r1, [r0] - ldr r0, _080F1FBC - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080F1FE4 - .align 2, 0 -_080F1FAC: .4byte 0x00006dad -_080F1FB0: .4byte gUnknown_083E4450 -_080F1FB4: .4byte sub_80F2240 -_080F1FB8: .4byte gUnknown_083DFEC4 -_080F1FBC: .4byte 0x0000030f -_080F1FC0: - bl sub_80F23C8 - lsls r0, 24 - cmp r0, 0 - beq _080F1FE4 - bl sub_80F21F8 - movs r0, 0 - bl FreeSpriteTilesByTag - movs r0, 0 - bl FreeSpritePaletteByTag - movs r0, 0x1 - bl FreeSpritePaletteByTag - movs r0, 0 - b _080F1FE6 -_080F1FE4: - movs r0, 0x1 -_080F1FE6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F1F10 - - thumb_func_start sub_80F1FF0 -sub_80F1FF0: @ 80F1FF0 - push {r4,lr} - ldr r0, _080F203C - ldr r4, [r0] - ldr r1, _080F2040 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080F2058 - ldr r2, _080F2044 - ldr r3, _080F2048 - adds r0, r4, r3 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r1, 1 - movs r3, 0xC5 - lsls r3, 2 - adds r0, r4, r3 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - ldr r3, _080F204C - ldr r1, _080F2050 - ldr r0, _080F2054 - adds r2, r4, r0 - ldrh r0, [r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 21 - strh r0, [r3] - ldrh r0, [r2] - adds r0, 0x3 - movs r1, 0x7F - ands r0, r1 - strh r0, [r2] - b _080F2078 - .align 2, 0 -_080F203C: .4byte gUnknown_083DFEC4 -_080F2040: .4byte 0x00000311 -_080F2044: .4byte REG_WIN0V -_080F2048: .4byte 0x00006dad -_080F204C: .4byte REG_BLDY -_080F2050: .4byte gSineTable -_080F2054: .4byte 0x00000312 -_080F2058: - cmp r0, 0x2 - bne _080F2078 - ldr r2, _080F2080 - ldr r1, _080F2084 - ldr r0, _080F2088 - adds r3, r4, r0 - ldrh r0, [r3] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - ldrh r0, [r3] - cmp r0, 0xE - bhi _080F2078 - adds r0, 0x1 - strh r0, [r3] -_080F2078: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F2080: .4byte REG_BLDALPHA -_080F2084: .4byte gUnknown_083E42F8 -_080F2088: .4byte 0x00000312 - thumb_func_end sub_80F1FF0 - - thumb_func_start sub_80F208C -sub_80F208C: @ 80F208C - push {lr} - bl sub_80F2148 - pop {r0} - bx r0 - thumb_func_end sub_80F208C - - thumb_func_start sub_80F2098 -sub_80F2098: @ 80F2098 - ldr r1, _080F20DC - ldr r2, _080F20E0 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080F20E4 - ldr r0, _080F20E8 - ldr r1, [r0] - ldr r3, _080F20EC - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - movs r3, 0xC5 - lsls r3, 2 - adds r1, r3 - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2] - ldr r1, _080F20F0 - movs r0, 0x3F - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1F - strh r0, [r1] - subs r2, 0x44 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 6 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_080F20DC: .4byte REG_WIN0H -_080F20E0: .4byte 0x000077f0 -_080F20E4: .4byte REG_WIN0V -_080F20E8: .4byte gUnknown_083DFEC4 -_080F20EC: .4byte 0x00006dad -_080F20F0: .4byte REG_WININ - thumb_func_end sub_80F2098 - - thumb_func_start sub_80F20F4 -sub_80F20F4: @ 80F20F4 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080F2104 - ands r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_080F2104: .4byte 0x0000dfff - thumb_func_end sub_80F20F4 - - thumb_func_start sub_80F2108 -sub_80F2108: @ 80F2108 - push {lr} - ldr r0, _080F2134 - ldr r3, [r0] - ldr r0, _080F2138 - adds r1, r3, r0 - ldrb r2, [r1] - cmp r2, 0 - bne _080F2130 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080F213C - adds r0, r3, r1 - strh r2, [r0] - ldr r1, _080F2140 - movs r0, 0x90 - strh r0, [r1] - ldr r0, _080F2144 - strh r2, [r0] - bl sub_80F2098 -_080F2130: - pop {r0} - bx r0 - .align 2, 0 -_080F2134: .4byte gUnknown_083DFEC4 -_080F2138: .4byte 0x00000311 -_080F213C: .4byte 0x00000312 -_080F2140: .4byte REG_BLDCNT -_080F2144: .4byte REG_BLDY - thumb_func_end sub_80F2108 - - thumb_func_start sub_80F2148 -sub_80F2148: @ 80F2148 - push {lr} - ldr r0, _080F2164 - ldr r0, [r0] - ldr r1, _080F2168 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, _080F216C - strh r1, [r0] - bl sub_80F20F4 - pop {r0} - bx r0 - .align 2, 0 -_080F2164: .4byte gUnknown_083DFEC4 -_080F2168: .4byte 0x00000311 -_080F216C: .4byte REG_BLDCNT - thumb_func_end sub_80F2148 - - thumb_func_start sub_80F2170 -sub_80F2170: @ 80F2170 - push {r4-r7,lr} - ldr r7, _080F21E4 - ldr r4, [r7] - ldr r1, _080F21E8 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F21DC - bl sub_80F20F4 - movs r3, 0 - ldr r2, _080F21EC - adds r5, r4, r2 - movs r0, 0xC8 - lsls r0, 2 - adds r4, r0 - movs r1, 0xD - negs r1, r1 - mov r12, r1 - movs r6, 0x4 -_080F2198: - lsls r1, r3, 2 - movs r0, 0 - ldrsb r0, [r5, r0] - lsls r0, 4 - adds r1, r0 - adds r1, r4, r1 - ldr r2, [r1] - ldrb r1, [r2, 0x1] - mov r0, r12 - ands r0, r1 - orrs r0, r6 - strb r0, [r2, 0x1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080F2198 - ldr r1, [r7] - ldr r0, _080F21E8 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0x2 - strb r0, [r2] - ldr r2, _080F21F0 - adds r1, r2 - strh r3, [r1] - ldr r1, _080F21F4 - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x10 - strh r0, [r1] -_080F21DC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F21E4: .4byte gUnknown_083DFEC4 -_080F21E8: .4byte 0x00000311 -_080F21EC: .4byte 0x00006dad -_080F21F0: .4byte 0x00000312 -_080F21F4: .4byte REG_BLDCNT - thumb_func_end sub_80F2170 - - thumb_func_start sub_80F21F8 -sub_80F21F8: @ 80F21F8 - ldr r0, _080F220C - ldr r0, [r0] - ldr r1, _080F2210 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, _080F2214 - strh r1, [r0] - bx lr - .align 2, 0 -_080F220C: .4byte gUnknown_083DFEC4 -_080F2210: .4byte 0x00000311 -_080F2214: .4byte REG_BLDCNT - thumb_func_end sub_80F21F8 - - thumb_func_start sub_80F2218 -sub_80F2218: @ 80F2218 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x20] - subs r0, 0x8 - strh r0, [r2, 0x20] - lsls r0, 16 - asrs r0, 16 - ldrh r3, [r2, 0x32] - movs r4, 0x32 - ldrsh r1, [r2, r4] - cmp r0, r1 - bgt _080F2236 - strh r3, [r2, 0x20] - ldr r0, _080F223C - str r0, [r2, 0x1C] -_080F2236: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F223C: .4byte sub_80F22B0 - thumb_func_end sub_80F2218 - - thumb_func_start sub_80F2240 -sub_80F2240: @ 80F2240 - push {r4,lr} - adds r2, r0, 0 - ldr r0, _080F2288 - ldr r0, [r0] - ldr r1, _080F228C - adds r0, r1 - movs r3, 0x2E - ldrsh r1, [r2, r3] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080F2290 - ldrh r3, [r2, 0x38] - movs r4, 0x38 - ldrsh r0, [r2, r4] - cmp r0, 0 - beq _080F2270 - ldrh r0, [r2, 0x36] - ldrh r4, [r2, 0x20] - adds r1, r0, r4 - strh r1, [r2, 0x20] - subs r0, r3, r0 - strh r0, [r2, 0x38] -_080F2270: - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080F22A8 - adds r0, r2, 0 - bl sub_80F240C - b _080F22A8 - .align 2, 0 -_080F2288: .4byte gUnknown_083DFEC4 -_080F228C: .4byte 0x00006dad -_080F2290: - ldrh r0, [r2, 0x20] - adds r0, 0x8 - strh r0, [r2, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x34 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _080F22A8 - adds r0, r2, 0 - bl sub_80F240C -_080F22A8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F2240 - - thumb_func_start sub_80F22B0 -sub_80F22B0: @ 80F22B0 - push {lr} - adds r2, r0, 0 - ldr r0, _080F22DC - ldr r0, [r0] - ldr r1, _080F22E0 - adds r0, r1 - movs r3, 0x2E - ldrsh r1, [r2, r3] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080F22E4 - ldrh r3, [r2, 0x24] - movs r0, 0x24 - ldrsh r1, [r2, r0] - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - ble _080F22F2 - subs r0, r3, 0x4 - b _080F22F0 - .align 2, 0 -_080F22DC: .4byte gUnknown_083DFEC4 -_080F22E0: .4byte 0x00006dad -_080F22E4: - ldrh r1, [r2, 0x24] - movs r3, 0x24 - ldrsh r0, [r2, r3] - cmp r0, 0 - bge _080F22F2 - adds r0, r1, 0x4 -_080F22F0: - strh r0, [r2, 0x24] -_080F22F2: - pop {r0} - bx r0 - thumb_func_end sub_80F22B0 - - thumb_func_start sub_80F22F8 -sub_80F22F8: @ 80F22F8 - push {r4-r7,lr} - movs r3, 0 - ldr r0, _080F233C - ldr r1, [r0] - ldr r2, _080F2340 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r3, r0 - bge _080F2358 - movs r7, 0xC8 - lsls r7, 2 - adds r4, r1, r7 - movs r5, 0x10 - negs r5, r5 - adds r6, r0, 0 -_080F231A: - movs r1, 0 - lsls r2, r3, 4 -_080F231E: - lsls r0, r1, 2 - adds r0, r2 - adds r0, r4, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080F2358 - movs r7, 0x24 - ldrsh r0, [r0, r7] - cmp r0, 0 - beq _080F2344 - cmp r0, r5 - beq _080F2344 - movs r0, 0 - b _080F235A - .align 2, 0 -_080F233C: .4byte gUnknown_083DFEC4 -_080F2340: .4byte 0x00006dae -_080F2344: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bls _080F231E - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r6 - blt _080F231A -_080F2358: - movs r0, 0x1 -_080F235A: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F22F8 - - thumb_func_start sub_80F2360 -sub_80F2360: @ 80F2360 - push {r4-r7,lr} - movs r4, 0 - ldr r0, _080F23A0 - ldr r2, [r0] - ldr r1, _080F23A4 - adds r0, r2, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - cmp r4, r1 - bge _080F23C0 - ldr r3, _080F23A8 - adds r0, r2, r3 - movs r6, 0 - ldrsb r6, [r0, r6] - adds r5, r1, 0 -_080F237E: - cmp r4, r6 - beq _080F23B6 - movs r1, 0 - ldr r0, _080F23A0 - ldr r0, [r0] - lsls r3, r4, 4 - movs r7, 0xC8 - lsls r7, 2 - adds r2, r0, r7 -_080F2390: - lsls r0, r1, 2 - adds r0, r3 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080F23AC - movs r0, 0 - b _080F23C2 - .align 2, 0 -_080F23A0: .4byte gUnknown_083DFEC4 -_080F23A4: .4byte 0x0000030e -_080F23A8: .4byte 0x00006dad -_080F23AC: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bls _080F2390 -_080F23B6: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r5 - blt _080F237E -_080F23C0: - movs r0, 0x1 -_080F23C2: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F2360 - - thumb_func_start sub_80F23C8 -sub_80F23C8: @ 80F23C8 - push {lr} - movs r2, 0 - ldr r0, _080F23F4 - ldr r1, [r0] - ldr r3, _080F23F8 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r3, r0, 4 - movs r0, 0xC8 - lsls r0, 2 - adds r1, r0 -_080F23E2: - lsls r0, r2, 2 - adds r0, r3 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080F23FC - movs r0, 0 - b _080F2408 - .align 2, 0 -_080F23F4: .4byte gUnknown_083DFEC4 -_080F23F8: .4byte 0x00006dad -_080F23FC: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x3 - bls _080F23E2 - movs r0, 0x1 -_080F2408: - pop {r1} - bx r1 - thumb_func_end sub_80F23C8 - - thumb_func_start sub_80F240C -sub_80F240C: @ 80F240C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080F2454 - ldr r2, [r0] - movs r0, 0x30 - ldrsh r1, [r4, r0] - lsls r1, 2 - movs r3, 0x2E - ldrsh r0, [r4, r3] - lsls r0, 4 - adds r1, r0 - movs r0, 0xC8 - lsls r0, 2 - adds r2, r0 - adds r2, r1 - movs r0, 0 - str r0, [r2] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080F2446 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix -_080F2446: - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F2454: .4byte gUnknown_083DFEC4 - thumb_func_end sub_80F240C - - thumb_func_start sub_80F2458 -sub_80F2458: @ 80F2458 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - beq _080F24A0 - cmp r4, 0x1 - bgt _080F246C - cmp r4, 0 - beq _080F2472 - b _080F2502 -_080F246C: - cmp r4, 0x2 - beq _080F24D0 - b _080F2502 -_080F2472: - ldr r2, _080F2498 - ldr r3, [r2] - movs r0, 0xE0 - lsls r0, 2 - adds r1, r3, r0 - movs r5, 0xE2 - lsls r5, 2 - adds r0, r3, r5 - str r0, [r1] - movs r0, 0xE1 - lsls r0, 2 - adds r1, r3, r0 - movs r0, 0xA0 - lsls r0, 5 - strh r0, [r1] - ldr r1, _080F249C - adds r0, r3, r1 - strh r4, [r0] - b _080F24F6 - .align 2, 0 -_080F2498: .4byte gUnknown_083DFEC4 -_080F249C: .4byte 0x00000386 -_080F24A0: - ldr r4, _080F24C4 - ldr r1, [r4] - movs r3, 0xE0 - lsls r3, 2 - adds r2, r1, r3 - ldr r5, _080F24C8 - adds r0, r1, r5 - str r0, [r2] - movs r0, 0xE1 - lsls r0, 2 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0xC0 - lsls r0, 4 - strh r0, [r2] - ldr r5, _080F24CC - adds r1, r5 - b _080F24F2 - .align 2, 0 -_080F24C4: .4byte gUnknown_083DFEC4 -_080F24C8: .4byte 0x00001788 -_080F24CC: .4byte 0x00000386 -_080F24D0: - ldr r4, _080F2508 - ldr r1, [r4] - movs r0, 0xE0 - lsls r0, 2 - adds r2, r1, r0 - ldr r3, _080F250C - adds r0, r1, r3 - str r0, [r2] - movs r5, 0xE1 - lsls r5, 2 - adds r2, r1, r5 - movs r3, 0 - movs r0, 0xC0 - lsls r0, 5 - strh r0, [r2] - ldr r0, _080F2510 - adds r1, r0 -_080F24F2: - strh r3, [r1] - adds r2, r4, 0 -_080F24F6: - ldr r0, [r2] - movs r1, 0xE0 - lsls r1, 2 - adds r0, r1 - bl LoadSpriteSheet -_080F2502: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F2508: .4byte gUnknown_083DFEC4 -_080F250C: .4byte 0x00002388 -_080F2510: .4byte 0x00000386 - thumb_func_end sub_80F2458 - - thumb_func_start sub_80F2514 -sub_80F2514: @ 80F2514 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _080F2558 - cmp r0, 0x1 - bgt _080F252C - cmp r0, 0 - beq _080F2532 - b _080F2586 -_080F252C: - cmp r1, 0x2 - beq _080F2568 - b _080F2586 -_080F2532: - ldr r0, _080F254C - str r0, [sp] - ldr r1, _080F2550 - mov r4, sp - ldr r0, [sp, 0x4] - ands r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpritePalette - ldr r0, _080F2554 - b _080F257A - .align 2, 0 -_080F254C: .4byte gPokenavMenuOptions1_Pal -_080F2550: .4byte 0xffff0000 -_080F2554: .4byte gPokenavMenuOptions2_Pal -_080F2558: - ldr r0, _080F2564 - str r0, [sp] - mov r1, sp - movs r0, 0 - strh r0, [r1, 0x4] - b _080F2580 - .align 2, 0 -_080F2564: .4byte gPokenavConditionMenu_Pal -_080F2568: - ldr r0, _080F2590 - str r0, [sp] - mov r4, sp - movs r0, 0 - strh r0, [r4, 0x4] - mov r0, sp - bl LoadSpritePalette - ldr r0, _080F2594 -_080F257A: - str r0, [sp] - movs r0, 0x1 - strh r0, [r4, 0x4] -_080F2580: - mov r0, sp - bl LoadSpritePalette -_080F2586: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F2590: .4byte gPokenavCondition6_Pal -_080F2594: .4byte gPokenavCondition7_Pal - thumb_func_end sub_80F2514 - - thumb_func_start sub_80F2598 -sub_80F2598: @ 80F2598 - push {r4,lr} - ldr r0, _080F25F0 - ldr r0, [r0] - ldr r1, _080F25F4 - adds r4, r0, r1 - movs r0, 0 - str r0, [r4] - ldr r1, _080F25F8 - movs r0, 0x4 - ldrsb r0, [r1, r0] - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r1, 0x5] - lsls r1, 24 - asrs r1, 24 - lsls r1, 16 - lsrs r1, 16 - bl sub_8082C0C - cmp r0, 0x1 - bne _080F2618 - ldr r0, _080F25FC - bl LoadSpriteSheet - ldr r0, _080F2600 - bl LoadSpritePalette - ldr r0, _080F2604 - movs r1, 0xC - movs r2, 0x60 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080F260C - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F2608 - adds r0, r1 - str r0, [r4] - b _080F2618 - .align 2, 0 -_080F25F0: .4byte gUnknown_083DFEC4 -_080F25F4: .4byte 0x00006d9c -_080F25F8: .4byte gSaveBlock1 -_080F25FC: .4byte gSpriteSheet_PokenavBlueLight -_080F2600: .4byte gSpritePalette_PokenavBlueLight -_080F2604: .4byte gSpriteTemplate_83E4484 -_080F2608: .4byte gSprites -_080F260C: - movs r0, 0x19 - bl FreeSpriteTilesByTag - movs r0, 0x11 - bl FreeSpritePaletteByTag -_080F2618: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F2598 - - thumb_func_start sub_80F2620 -sub_80F2620: @ 80F2620 - push {r4,lr} - ldr r0, _080F264C - ldr r0, [r0] - ldr r1, _080F2650 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _080F2644 - bl DestroySprite - movs r0, 0x19 - bl FreeSpriteTilesByTag - movs r0, 0x11 - bl FreeSpritePaletteByTag - movs r0, 0 - str r0, [r4] -_080F2644: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F264C: .4byte gUnknown_083DFEC4 -_080F2650: .4byte 0x00006d9c - thumb_func_end sub_80F2620 - - thumb_func_start sub_80F2654 -sub_80F2654: @ 80F2654 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - ble _080F2682 - movs r0, 0 - strh r0, [r3, 0x2E] - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080F2682: - pop {r0} - bx r0 - thumb_func_end sub_80F2654 - - thumb_func_start sub_80F2688 -sub_80F2688: @ 80F2688 - push {lr} - ldr r0, _080F26B0 - ldr r0, [r0] - ldr r1, _080F26B4 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080F26B8 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F26AA -_080F26A0: - bl sub_80F26BC - lsls r0, 24 - cmp r0, 0 - bne _080F26A0 -_080F26AA: - pop {r0} - bx r0 - .align 2, 0 -_080F26B0: .4byte gUnknown_083DFEC4 -_080F26B4: .4byte 0x00000306 -_080F26B8: .4byte 0x00006dac - thumb_func_end sub_80F2688 - - thumb_func_start sub_80F26BC -sub_80F26BC: @ 80F26BC - push {lr} - ldr r0, _080F26D8 - ldr r0, [r0] - ldr r1, _080F26DC - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x7 - bls _080F26CE - b _080F27BC -_080F26CE: - lsls r0, 2 - ldr r1, _080F26E0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F26D8: .4byte gUnknown_083DFEC4 -_080F26DC: .4byte 0x00000306 -_080F26E0: .4byte _080F26E4 - .align 2, 0 -_080F26E4: - .4byte _080F2704 - .4byte _080F271C - .4byte _080F2734 - .4byte _080F274C - .4byte _080F2764 - .4byte _080F277C - .4byte _080F2794 - .4byte _080F27B0 -_080F2704: - ldr r0, _080F2710 - ldr r1, _080F2714 - ldr r1, [r1] - ldr r2, _080F2718 - b _080F279C - .align 2, 0 -_080F2710: .4byte gPokenavMainMenu_Gfx -_080F2714: .4byte gUnknown_083DFEC4 -_080F2718: .4byte 0x00003b98 -_080F271C: - ldr r0, _080F2728 - ldr r1, _080F272C - ldr r1, [r1] - ldr r2, _080F2730 - b _080F279C - .align 2, 0 -_080F2728: .4byte gPokenavConditionMenuHeader_Gfx -_080F272C: .4byte gUnknown_083DFEC4 -_080F2730: .4byte 0x00004198 -_080F2734: - ldr r0, _080F2740 - ldr r1, _080F2744 - ldr r1, [r1] - ldr r2, _080F2748 - b _080F279C - .align 2, 0 -_080F2740: .4byte gPokenavRibbonsHeader_Gfx -_080F2744: .4byte gUnknown_083DFEC4 -_080F2748: .4byte 0x00004d98 -_080F274C: - ldr r0, _080F2758 - ldr r1, _080F275C - ldr r1, [r1] - ldr r2, _080F2760 - b _080F279C - .align 2, 0 -_080F2758: .4byte gPokenavHoennMapHeader_Gfx -_080F275C: .4byte gUnknown_083DFEC4 -_080F2760: .4byte 0x00005398 -_080F2764: - ldr r0, _080F2770 - ldr r1, _080F2774 - ldr r1, [r1] - ldr r2, _080F2778 - b _080F279C - .align 2, 0 -_080F2770: .4byte gPokenavConditionMenuOptions_Gfx -_080F2774: .4byte gUnknown_083DFEC4 -_080F2778: .4byte 0x00005f98 -_080F277C: - ldr r0, _080F2788 - ldr r1, _080F278C - ldr r1, [r1] - ldr r2, _080F2790 - b _080F279C - .align 2, 0 -_080F2788: .4byte gPokenavConditionMenuOptions2_Gfx -_080F278C: .4byte gUnknown_083DFEC4 -_080F2790: .4byte 0x00006798 -_080F2794: - ldr r0, _080F27A4 - ldr r1, _080F27A8 - ldr r1, [r1] - ldr r2, _080F27AC -_080F279C: - adds r1, r2 - bl LZ77UnCompWram - b _080F27C0 - .align 2, 0 -_080F27A4: .4byte gPokenavTrainersEyesHeader_Gfx -_080F27A8: .4byte gUnknown_083DFEC4 -_080F27AC: .4byte 0x00004798 -_080F27B0: - ldr r0, _080F27B8 - bl LoadSpritePalettes - b _080F27C0 - .align 2, 0 -_080F27B8: .4byte gUnknown_083E449C -_080F27BC: - movs r0, 0 - b _080F27D0 -_080F27C0: - ldr r0, _080F27D4 - ldr r1, [r0] - ldr r0, _080F27D8 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 -_080F27D0: - pop {r1} - bx r1 - .align 2, 0 -_080F27D4: .4byte gUnknown_083DFEC4 -_080F27D8: .4byte 0x00000306 - thumb_func_end sub_80F26BC - - thumb_func_start sub_80F27DC -sub_80F27DC: @ 80F27DC - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB - bls _080F27EA - b _080F29A0 -_080F27EA: - lsls r0, 2 - ldr r1, _080F27F4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F27F4: .4byte _080F27F8 - .align 2, 0 -_080F27F8: - .4byte _080F2828 - .4byte _080F2858 - .4byte _080F28B8 - .4byte _080F2888 - .4byte _080F28E8 - .4byte _080F2918 - .4byte _080F2928 - .4byte _080F2978 - .4byte _080F2938 - .4byte _080F2948 - .4byte _080F2968 - .4byte _080F2958 -_080F2828: - ldr r0, _080F2848 - ldr r0, [r0] - ldr r1, _080F284C - adds r0, r1 - str r0, [sp] - ldr r1, _080F2850 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0xC0 - lsls r1, 3 - orrs r0, r1 - ldr r1, _080F2854 - ands r0, r1 - adds r1, 0x1 - b _080F2996 - .align 2, 0 -_080F2848: .4byte gUnknown_083DFEC4 -_080F284C: .4byte 0x00003b98 -_080F2850: .4byte 0xffff0000 -_080F2854: .4byte 0x0000ffff -_080F2858: - ldr r0, _080F2878 - ldr r0, [r0] - ldr r1, _080F287C - adds r0, r1 - str r0, [sp] - ldr r1, _080F2880 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0xC0 - lsls r1, 3 - orrs r0, r1 - ldr r1, _080F2884 - ands r0, r1 - adds r1, 0x1 - b _080F2996 - .align 2, 0 -_080F2878: .4byte gUnknown_083DFEC4 -_080F287C: .4byte 0x00004198 -_080F2880: .4byte 0xffff0000 -_080F2884: .4byte 0x0000ffff -_080F2888: - ldr r0, _080F28A8 - ldr r0, [r0] - ldr r1, _080F28AC - adds r0, r1 - str r0, [sp] - ldr r1, _080F28B0 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0xC0 - lsls r1, 3 - orrs r0, r1 - ldr r1, _080F28B4 - ands r0, r1 - adds r1, 0x1 - b _080F2996 - .align 2, 0 -_080F28A8: .4byte gUnknown_083DFEC4 -_080F28AC: .4byte 0x00004798 -_080F28B0: .4byte 0xffff0000 -_080F28B4: .4byte 0x0000ffff -_080F28B8: - ldr r0, _080F28D8 - ldr r0, [r0] - ldr r1, _080F28DC - adds r0, r1 - str r0, [sp] - ldr r1, _080F28E0 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0xC0 - lsls r1, 3 - orrs r0, r1 - ldr r1, _080F28E4 - ands r0, r1 - adds r1, 0x1 - b _080F2996 - .align 2, 0 -_080F28D8: .4byte gUnknown_083DFEC4 -_080F28DC: .4byte 0x00004d98 -_080F28E0: .4byte 0xffff0000 -_080F28E4: .4byte 0x0000ffff -_080F28E8: - ldr r0, _080F2908 - ldr r0, [r0] - ldr r1, _080F290C - adds r0, r1 - str r0, [sp] - ldr r1, _080F2910 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0xC0 - lsls r1, 4 - orrs r0, r1 - ldr r1, _080F2914 - ands r0, r1 - adds r1, 0x1 - b _080F2996 - .align 2, 0 -_080F2908: .4byte gUnknown_083DFEC4 -_080F290C: .4byte 0x00005398 -_080F2910: .4byte 0xffff0000 -_080F2914: .4byte 0x0000ffff -_080F2918: - ldr r0, _080F2920 - ldr r0, [r0] - ldr r1, _080F2924 - b _080F297E - .align 2, 0 -_080F2920: .4byte gUnknown_083DFEC4 -_080F2924: .4byte 0x00005f98 -_080F2928: - ldr r0, _080F2930 - ldr r0, [r0] - ldr r1, _080F2934 - b _080F297E - .align 2, 0 -_080F2930: .4byte gUnknown_083DFEC4 -_080F2934: .4byte 0x00006198 -_080F2938: - ldr r0, _080F2940 - ldr r0, [r0] - ldr r1, _080F2944 - b _080F297E - .align 2, 0 -_080F2940: .4byte gUnknown_083DFEC4 -_080F2944: .4byte 0x00006398 -_080F2948: - ldr r0, _080F2950 - ldr r0, [r0] - ldr r1, _080F2954 - b _080F297E - .align 2, 0 -_080F2950: .4byte gUnknown_083DFEC4 -_080F2954: .4byte 0x00006598 -_080F2958: - ldr r0, _080F2960 - ldr r0, [r0] - ldr r1, _080F2964 - b _080F297E - .align 2, 0 -_080F2960: .4byte gUnknown_083DFEC4 -_080F2964: .4byte 0x00006998 -_080F2968: - ldr r0, _080F2970 - ldr r0, [r0] - ldr r1, _080F2974 - b _080F297E - .align 2, 0 -_080F2970: .4byte gUnknown_083DFEC4 -_080F2974: .4byte 0x00006798 -_080F2978: - ldr r0, _080F29A8 - ldr r0, [r0] - ldr r1, _080F29AC -_080F297E: - adds r0, r1 - str r0, [sp] - ldr r1, _080F29B0 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0x80 - lsls r1, 2 - orrs r0, r1 - ldr r1, _080F29B4 - ands r0, r1 - movs r1, 0x80 - lsls r1, 10 -_080F2996: - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet -_080F29A0: - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080F29A8: .4byte gUnknown_083DFEC4 -_080F29AC: .4byte 0x00006b98 -_080F29B0: .4byte 0xffff0000 -_080F29B4: .4byte 0x0000ffff - thumb_func_end sub_80F27DC - - thumb_func_start sub_80F29B8 -sub_80F29B8: @ 80F29B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0 - mov r8, r0 - cmp r7, 0xB - bls _080F29D2 - b _080F2BA6 -_080F29D2: - lsls r0, r7, 2 - ldr r1, _080F29DC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F29DC: .4byte _080F29E0 - .align 2, 0 -_080F29E0: - .4byte _080F2A10 - .4byte _080F2A10 - .4byte _080F2A10 - .4byte _080F2A10 - .4byte _080F2A58 - .4byte _080F2A94 - .4byte _080F2A94 - .4byte _080F2A98 - .4byte _080F2A94 - .4byte _080F2A94 - .4byte _080F2A98 - .4byte _080F2A98 -_080F2A10: - ldr r3, _080F2A44 - ldr r0, _080F2A48 - ldr r2, [r0] - movs r1, 0xC3 - lsls r1, 2 - adds r0, r2, r1 - ldrh r1, [r0] - movs r0, 0x31 - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - movs r4, 0x8 - str r4, [sp] - movs r1, 0x20 - str r1, [sp, 0x4] - movs r1, 0x40 - ldr r4, _080F2A4C - adds r4, r2 - mov r9, r4 - ldr r2, _080F2A50 - mov r8, r2 - cmp r7, 0x3 - beq _080F2AC8 - ldr r4, _080F2A54 - mov r8, r4 - b _080F2AC8 - .align 2, 0 -_080F2A44: .4byte 0x0000ffa0 -_080F2A48: .4byte gUnknown_083DFEC4 -_080F2A4C: .4byte 0x00003b88 -_080F2A50: .4byte gSpriteTemplate_83E44F8 -_080F2A54: .4byte gSpriteTemplate_83E44E0 -_080F2A58: - movs r3, 0x88 - lsls r3, 1 - ldr r0, _080F2A84 - ldr r2, [r0] - movs r1, 0xC3 - lsls r1, 2 - adds r0, r2, r1 - ldrh r1, [r0] - movs r0, 0x31 - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080F2A88 - str r4, [sp] - movs r1, 0x98 - str r1, [sp, 0x4] - movs r1, 0x40 - ldr r4, _080F2A8C - mov r8, r4 - ldr r4, _080F2A90 - b _080F2AC4 - .align 2, 0 -_080F2A84: .4byte gUnknown_083DFEC4 -_080F2A88: .4byte 0x0000fff8 -_080F2A8C: .4byte gSpriteTemplate_83E44E0 -_080F2A90: .4byte 0x00003b88 -_080F2A94: - ldr r0, _080F2B40 - mov r8, r0 -_080F2A98: - mov r1, r8 - cmp r1, 0 - bne _080F2AA2 - ldr r2, _080F2B44 - mov r8, r2 -_080F2AA2: - ldr r3, _080F2B48 - ldr r0, _080F2B4C - ldr r2, [r0] - movs r4, 0xC3 - lsls r4, 2 - adds r0, r2, r4 - ldrh r1, [r0] - movs r0, 0x44 - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x8 - str r1, [sp] - movs r4, 0x10 - str r4, [sp, 0x4] - movs r1, 0x20 - ldr r4, _080F2B50 -_080F2AC4: - adds r4, r2 - mov r9, r4 -_080F2AC8: - movs r6, 0 - lsls r1, 16 - str r1, [sp, 0x10] - lsls r3, 16 - str r3, [sp, 0x8] - lsls r0, 16 - str r0, [sp, 0xC] - ldr r0, _080F2B54 - mov r10, r0 -_080F2ADA: - ldr r1, [sp, 0x10] - asrs r0, r1, 16 - adds r5, r6, 0 - muls r5, r0 - ldr r2, [sp, 0x8] - asrs r1, r2, 16 - adds r1, r5 - lsls r1, 16 - asrs r1, 16 - mov r0, r8 - ldr r3, [sp, 0xC] - asrs r2, r3, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x40 - beq _080F2B9C - lsls r0, r4, 4 - adds r1, r0, r4 - lsls r1, 2 - mov r2, r10 - adds r3, r1, r2 - mov r1, sp - ldrh r1, [r1] - strh r1, [r3, 0x2E] - ldr r2, [sp, 0x4] - adds r1, r2, r5 - strh r1, [r3, 0x30] - strh r6, [r3, 0x32] - strh r7, [r3, 0x34] - adds r5, r0, 0 - cmp r7, 0x4 - bne _080F2B5C - cmp r6, 0x1 - bne _080F2B5C - ldr r0, _080F2B4C - ldr r0, [r0] - ldr r1, _080F2B58 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - cmp r0, 0 - bne _080F2B36 - movs r1, 0x1 -_080F2B36: - adds r0, r3, 0 - bl StartSpriteAnim - b _080F2B6A - .align 2, 0 -_080F2B40: .4byte gSpriteTemplate_83E4530 -_080F2B44: .4byte gSpriteTemplate_83E4548 -_080F2B48: .4byte 0x0000ffa0 -_080F2B4C: .4byte gUnknown_083DFEC4 -_080F2B50: .4byte 0x00003b90 -_080F2B54: .4byte gSprites -_080F2B58: .4byte 0x00006e90 -_080F2B5C: - adds r0, r5, r4 - lsls r0, 2 - add r0, r10 - lsls r1, r6, 24 - lsrs r1, 24 - bl StartSpriteAnim -_080F2B6A: - ldr r2, _080F2BB8 - mov r12, r2 - cmp r7, 0x3 - bhi _080F2B90 - cmp r6, 0x1 - bne _080F2B90 - adds r2, r5, r4 - lsls r2, 2 - add r2, r10 - ldrb r3, [r2, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r3 - strb r0, [r2, 0x1] - ldrb r0, [r2, 0x3] - ands r1, r0 - movs r0, 0x80 - orrs r1, r0 - strb r1, [r2, 0x3] -_080F2B90: - lsls r1, r6, 2 - add r1, r9 - adds r0, r5, r4 - lsls r0, 2 - add r0, r12 - str r0, [r1] -_080F2B9C: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x1 - bls _080F2ADA -_080F2BA6: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F2BB8: .4byte gSprites - thumb_func_end sub_80F29B8 - - thumb_func_start sub_80F2BBC -sub_80F2BBC: @ 80F2BBC - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x20] - ldrh r1, [r2, 0x2E] - adds r3, r0, r1 - strh r3, [r2, 0x20] - lsls r0, 16 - asrs r4, r0, 16 - movs r0, 0x30 - ldrsh r1, [r2, r0] - cmp r4, r1 - bgt _080F2BE0 - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, r1 - bge _080F2BE8 - cmp r4, r1 - blt _080F2C08 -_080F2BE0: - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, r1 - bgt _080F2C08 -_080F2BE8: - ldrh r0, [r2, 0x30] - strh r0, [r2, 0x20] - movs r1, 0x34 - ldrsh r0, [r2, r1] - cmp r0, 0x4 - bne _080F2C04 - movs r1, 0x32 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _080F2C04 - ldr r0, _080F2C00 - b _080F2C06 - .align 2, 0 -_080F2C00: .4byte sub_80F2C58 -_080F2C04: - ldr r0, _080F2C10 -_080F2C06: - str r0, [r2, 0x1C] -_080F2C08: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F2C10: .4byte SpriteCallbackDummy - thumb_func_end sub_80F2BBC - - thumb_func_start sub_80F2C14 -sub_80F2C14: @ 80F2C14 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - ldrh r1, [r4, 0x2E] - subs r0, r1 - strh r0, [r4, 0x20] - adds r0, 0x20 - lsls r0, 16 - movs r1, 0x98 - lsls r1, 17 - cmp r0, r1 - bls _080F2C50 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080F2C4A - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bgt _080F2C44 - movs r0, 0x1 - bl FreeSpriteTilesByTag - b _080F2C4A -_080F2C44: - movs r0, 0x2 - bl FreeSpriteTilesByTag -_080F2C4A: - adds r0, r4, 0 - bl DestroySprite -_080F2C50: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F2C14 - - thumb_func_start sub_80F2C58 -sub_80F2C58: @ 80F2C58 - push {lr} - adds r2, r0, 0 - ldr r0, _080F2C78 - ldr r0, [r0] - ldr r1, _080F2C7C - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - cmp r0, 0 - bne _080F2C6E - movs r1, 0x1 -_080F2C6E: - adds r0, r2, 0 - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_080F2C78: .4byte gUnknown_083DFEC4 -_080F2C7C: .4byte 0x00006e90 - thumb_func_end sub_80F2C58 - - thumb_func_start sub_80F2C80 -sub_80F2C80: @ 80F2C80 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080F2CB0 - ldr r0, [r0] - ldr r1, _080F2CB4 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080F2CB8 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F2CA8 -_080F2C9C: - adds r0, r4, 0 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080F2C9C -_080F2CA8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F2CB0: .4byte gUnknown_083DFEC4 -_080F2CB4: .4byte 0x00000306 -_080F2CB8: .4byte 0x00006dac - thumb_func_end sub_80F2C80 - - thumb_func_start sub_80F2CBC -sub_80F2CBC: @ 80F2CBC - push {r4,lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080F2CD8 - ldr r0, [r0] - ldr r2, _080F2CDC - adds r4, r0, r2 - ldrh r0, [r4] - cmp r0, 0 - beq _080F2CE0 - cmp r0, 0x1 - beq _080F2CF0 - b _080F2CFC - .align 2, 0 -_080F2CD8: .4byte gUnknown_083DFEC4 -_080F2CDC: .4byte 0x00000306 -_080F2CE0: - adds r0, r1, 0 - bl sub_80F27DC - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - movs r0, 0x1 - b _080F2CFE -_080F2CF0: - adds r0, r1, 0 - bl sub_80F29B8 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080F2CFC: - movs r0, 0 -_080F2CFE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F2CBC - - thumb_func_start sub_80F2D04 -sub_80F2D04: @ 80F2D04 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080F2D3C - movs r1, 0 - ldr r0, _080F2D30 - ldr r0, [r0] - ldr r3, _080F2D34 - adds r2, r0, r3 - ldr r3, _080F2D38 -_080F2D1A: - lsls r0, r1, 2 - adds r0, r2, r0 - ldr r0, [r0] - str r3, [r0, 0x1C] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bls _080F2D1A - b _080F2D5A - .align 2, 0 -_080F2D30: .4byte gUnknown_083DFEC4 -_080F2D34: .4byte 0x00003b88 -_080F2D38: .4byte sub_80F2C14 -_080F2D3C: - movs r1, 0 - ldr r0, _080F2D60 - ldr r0, [r0] - ldr r3, _080F2D64 - adds r2, r0, r3 - ldr r3, _080F2D68 -_080F2D48: - lsls r0, r1, 2 - adds r0, r2, r0 - ldr r0, [r0] - str r3, [r0, 0x1C] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bls _080F2D48 -_080F2D5A: - pop {r0} - bx r0 - .align 2, 0 -_080F2D60: .4byte gUnknown_083DFEC4 -_080F2D64: .4byte 0x00003b90 -_080F2D68: .4byte sub_80F2C14 - thumb_func_end sub_80F2D04 - - thumb_func_start sub_80F2D6C -sub_80F2D6C: @ 80F2D6C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080F2DA4 - movs r0, 0x1 - bl FreeSpriteTilesByTag - movs r4, 0 - ldr r0, _080F2D9C - ldr r0, [r0] - ldr r1, _080F2DA0 - adds r5, r0, r1 -_080F2D86: - lsls r0, r4, 2 - adds r0, r5, r0 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080F2D86 - b _080F2DC8 - .align 2, 0 -_080F2D9C: .4byte gUnknown_083DFEC4 -_080F2DA0: .4byte 0x00003b88 -_080F2DA4: - movs r0, 0x2 - bl FreeSpriteTilesByTag - movs r4, 0 - ldr r0, _080F2DD0 - ldr r0, [r0] - ldr r1, _080F2DD4 - adds r5, r0, r1 -_080F2DB4: - lsls r0, r4, 2 - adds r0, r5, r0 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080F2DB4 -_080F2DC8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F2DD0: .4byte gUnknown_083DFEC4 -_080F2DD4: .4byte 0x00003b90 - thumb_func_end sub_80F2D6C - - thumb_func_start sub_80F2DD8 -sub_80F2DD8: @ 80F2DD8 - push {lr} - movs r0, 0x7 - movs r1, 0x7 - bl sub_80FBB3C - movs r0, 0x8 - movs r1, 0x8 - bl sub_80FBCF0 - bl sub_80FBF94 - pop {r0} - bx r0 - thumb_func_end sub_80F2DD8 - - thumb_func_start sub_80F2DF4 -sub_80F2DF4: @ 80F2DF4 - push {lr} - bl sub_80FAB10 - pop {r0} - bx r0 - thumb_func_end sub_80F2DF4 - - thumb_func_start sub_80F2E00 -sub_80F2E00: @ 80F2E00 - ldr r1, _080F2E10 - ldr r1, [r1] - ldr r2, _080F2E14 - adds r1, r2 - ldrh r1, [r1] - adds r1, 0x26 - strh r1, [r0, 0x20] - bx lr - .align 2, 0 -_080F2E10: .4byte gUnknown_083DFEC4 -_080F2E14: .4byte 0x00008766 - thumb_func_end sub_80F2E00 - - thumb_func_start sub_80F2E18 -sub_80F2E18: @ 80F2E18 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x28 - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080F2EA8 - ldr r4, [r0] - ldr r0, _080F2EAC - adds r7, r4, r0 - ldr r1, [r7] - mov r8, r1 - cmp r1, 0 - bne _080F2EFC - ldr r0, _080F2EB0 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x20] - str r1, [sp, 0x24] - mov r1, sp - ldr r0, _080F2EB4 - ldm r0!, {r2,r5,r6} - stm r1!, {r2,r5,r6} - ldm r0!, {r2,r5,r6} - stm r1!, {r2,r5,r6} - ldr r0, _080F2EB8 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - lsls r0, r3, 13 - ldr r1, _080F2EBC - adds r0, r1 - adds r0, r4, r0 - str r0, [sp, 0x20] - lsls r0, r3, 7 - adds r0, r4, r0 - str r0, [sp, 0x18] - add r0, sp, 0x18 - bl LoadSpritePalette - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F2EC0 - adds r5, r4, r2 - strh r0, [r5] - add r0, sp, 0x20 - bl LoadSpriteSheet - ldr r1, _080F2EC4 - adds r6, r4, r1 - strh r0, [r6] - mov r0, sp - movs r1, 0x26 - movs r2, 0x68 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _080F2EC8 - movs r0, 0x6 - bl FreeSpriteTilesByTag - movs r0, 0x6 - bl FreeSpritePaletteByTag - mov r2, r8 - str r2, [r7] - b _080F2F26 - .align 2, 0 -_080F2EA8: .4byte gUnknown_083DFEC4 -_080F2EAC: .4byte 0x00008768 -_080F2EB0: .4byte gUnknown_083E4568 -_080F2EB4: .4byte gSpriteTemplate_83E4570 -_080F2EB8: .4byte gUnknown_083E4588 -_080F2EBC: .4byte 0x0000d1e4 -_080F2EC0: .4byte 0x0000d1dc -_080F2EC4: .4byte 0x0000d1de -_080F2EC8: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F2EF0 - adds r0, r1 - str r0, [r7] - ldr r0, _080F2EF4 - adds r1, r4, r0 - ldrh r0, [r6] - lsls r0, 5 - ldr r2, _080F2EF8 - adds r0, r2 - str r0, [r1] - ldrh r0, [r5] - lsls r0, 4 - movs r6, 0x80 - lsls r6, 1 - adds r0, r6 - strh r0, [r5] - b _080F2F26 - .align 2, 0 -_080F2EF0: .4byte gSprites -_080F2EF4: .4byte 0x0000d1e0 -_080F2EF8: .4byte 0x06010000 -_080F2EFC: - lsls r0, r3, 13 - ldr r1, _080F2F34 - adds r0, r1 - adds r0, r4, r0 - ldr r2, _080F2F38 - adds r1, r4, r2 - ldr r2, [r1] - ldr r1, _080F2F3C - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _080F2F40 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - lsls r0, r3, 7 - adds r0, r4, r0 - ldr r5, _080F2F44 - adds r1, r4, r5 - ldrh r1, [r1] - movs r2, 0x20 - bl LoadPalette -_080F2F26: - add sp, 0x28 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F2F34: .4byte 0x0000d1e4 -_080F2F38: .4byte 0x0000d1e0 -_080F2F3C: .4byte 0x040000d4 -_080F2F40: .4byte 0x80000400 -_080F2F44: .4byte 0x0000d1dc - thumb_func_end sub_80F2E18 - - thumb_func_start sub_80F2F48 -sub_80F2F48: @ 80F2F48 - push {r4,lr} - ldr r0, _080F2F74 - ldr r0, [r0] - ldr r1, _080F2F78 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _080F2F6C - bl DestroySprite - movs r0, 0x6 - bl FreeSpriteTilesByTag - movs r0, 0x6 - bl FreeSpritePaletteByTag - movs r0, 0 - str r0, [r4] -_080F2F6C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F2F74: .4byte gUnknown_083DFEC4 -_080F2F78: .4byte 0x00008768 - thumb_func_end sub_80F2F48 - - thumb_func_start sub_80F2F7C -sub_80F2F7C: @ 80F2F7C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80F2E18 - ldr r0, _080F2FA0 - ldr r0, [r0] - ldr r1, _080F2FA4 - adds r2, r0, r1 - ldr r1, _080F2FA8 - adds r0, r1 - ldr r1, [r0] - str r1, [r2] - ldr r0, _080F2FAC - str r0, [r1, 0x1C] - pop {r0} - bx r0 - .align 2, 0 -_080F2FA0: .4byte gUnknown_083DFEC4 -_080F2FA4: .4byte 0x0000ced0 -_080F2FA8: .4byte 0x00008768 -_080F2FAC: .4byte sub_80F2FEC - thumb_func_end sub_80F2F7C - - thumb_func_start sub_80F2FB0 -sub_80F2FB0: @ 80F2FB0 - push {r4,r5,lr} - ldr r0, _080F2FE0 - ldr r5, [r0] - ldr r0, _080F2FE4 - adds r4, r5, r0 - ldr r0, [r4] - cmp r0, 0 - beq _080F2FDA - bl DestroySprite - movs r0, 0x6 - bl FreeSpriteTilesByTag - movs r0, 0x6 - bl FreeSpritePaletteByTag - movs r1, 0 - str r1, [r4] - ldr r2, _080F2FE8 - adds r0, r5, r2 - str r1, [r0] -_080F2FDA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F2FE0: .4byte gUnknown_083DFEC4 -_080F2FE4: .4byte 0x0000ced0 -_080F2FE8: .4byte 0x00008768 - thumb_func_end sub_80F2FB0 - - thumb_func_start sub_80F2FEC -sub_80F2FEC: @ 80F2FEC - ldr r1, _080F3000 - ldr r1, [r1] - ldr r2, _080F3004 - adds r1, r2 - ldrh r1, [r1] - adds r1, 0x28 - strh r1, [r0, 0x20] - movs r1, 0x68 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_080F3000: .4byte gUnknown_083DFEC4 -_080F3004: .4byte 0x0000d15a - thumb_func_end sub_80F2FEC - - thumb_func_start sub_80F3008 -sub_80F3008: @ 80F3008 - push {r4,r5,lr} - sub sp, 0x20 - lsls r0, 24 - lsrs r2, r0, 24 - mov r1, sp - ldr r0, _080F3060 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldr r0, _080F3064 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - cmp r2, 0x2 - bgt _080F3032 - cmp r2, 0x1 - blt _080F3032 - ldr r0, _080F3068 - str r0, [sp, 0x18] -_080F3032: - mov r0, sp - bl LoadSpriteSheets - add r0, sp, 0x18 - bl LoadSpritePalette - ldr r0, _080F306C - movs r1, 0x5F - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _080F3078 - ldr r0, _080F3070 - ldr r0, [r0] - ldr r1, _080F3074 - adds r0, r1 - movs r1, 0 - str r1, [r0] - b _080F3120 - .align 2, 0 -_080F3060: .4byte gUnknown_083E4590 -_080F3064: .4byte gUnknown_083E45A8 -_080F3068: .4byte gUnknown_08E9F988 -_080F306C: .4byte gSpriteTemplate_83E45B8 -_080F3070: .4byte gUnknown_083DFEC4 -_080F3074: .4byte 0x000087cc -_080F3078: - ldr r0, _080F30F4 - ldr r2, [r0] - ldr r3, _080F30F8 - adds r2, r3 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F30FC - adds r0, r1 - str r0, [r2] - movs r4, 0 - movs r5, 0 -_080F3090: - lsls r2, r4, 7 - adds r2, 0x8 - lsls r2, 16 - asrs r2, 16 - ldr r0, _080F3100 - movs r1, 0xA8 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080F3108 - ldr r0, _080F30F4 - ldr r2, [r0] - lsls r0, r4, 2 - ldr r3, _080F3104 - adds r2, r3 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F30FC - adds r3, r0, r1 - str r3, [r2] - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - strh r5, [r3, 0x2E] - strh r5, [r3, 0x30] - movs r0, 0x1 - cmp r4, 0 - bne _080F30DE - movs r1, 0x1 - negs r1, r1 - adds r0, r1, 0 -_080F30DE: - strh r0, [r3, 0x32] - strh r4, [r3, 0x34] - movs r0, 0x1 - strh r0, [r3, 0x36] - lsls r1, r4, 24 - lsrs r1, 24 - adds r0, r3, 0 - bl StartSpriteAnim - b _080F3116 - .align 2, 0 -_080F30F4: .4byte gUnknown_083DFEC4 -_080F30F8: .4byte 0x000087cc -_080F30FC: .4byte gSprites -_080F3100: .4byte gSpriteTemplate_83E45F0 -_080F3104: .4byte 0x000087d0 -_080F3108: - ldr r0, _080F3128 - ldr r0, [r0] - lsls r1, r4, 2 - ldr r2, _080F312C - adds r0, r2 - adds r0, r1 - str r5, [r0] -_080F3116: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080F3090 -_080F3120: - add sp, 0x20 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F3128: .4byte gUnknown_083DFEC4 -_080F312C: .4byte 0x000087d0 - thumb_func_end sub_80F3008 - - thumb_func_start sub_80F3130 -sub_80F3130: @ 80F3130 - push {r4-r6,lr} - ldr r0, _080F3184 - ldr r6, [r0] - ldr r0, _080F3188 - adds r4, r6, r0 - ldr r0, [r4] - cmp r0, 0 - beq _080F3154 - bl DestroySprite - movs r0, 0x9 - bl FreeSpriteTilesByTag - movs r0, 0x9 - bl FreeSpritePaletteByTag - movs r0, 0 - str r0, [r4] -_080F3154: - movs r5, 0 - ldr r0, _080F318C - adds r6, r0 -_080F315A: - lsls r0, r5, 2 - adds r4, r6, r0 - ldr r0, [r4] - cmp r0, 0 - beq _080F316C - bl DestroySprite - movs r0, 0 - str r0, [r4] -_080F316C: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080F315A - movs r0, 0xA - bl FreeSpriteTilesByTag - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F3184: .4byte gUnknown_083DFEC4 -_080F3188: .4byte 0x000087cc -_080F318C: .4byte 0x000087d0 - thumb_func_end sub_80F3130 - - thumb_func_start sub_80F3190 -sub_80F3190: @ 80F3190 - ldr r1, _080F31A4 - ldr r1, [r1] - ldr r2, _080F31A8 - adds r1, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - lsls r1, 4 - adds r1, 0x10 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_080F31A4: .4byte gUnknown_083DFEC4 -_080F31A8: .4byte 0x0000876c - thumb_func_end sub_80F3190 - - thumb_func_start sub_80F31AC -sub_80F31AC: @ 80F31AC - push {r4,r5,lr} - adds r3, r0, 0 - ldr r0, _080F31E8 - ldr r1, [r0] - ldr r2, _080F31EC - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080F325C - movs r4, 0x36 - ldrsh r0, [r3, r4] - cmp r0, 0 - beq _080F3226 - movs r5, 0x34 - ldrsh r0, [r3, r5] - cmp r0, 0 - bne _080F31F4 - movs r2, 0 - ldr r4, _080F31F0 - adds r0, r1, r4 - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r0, 0 - bne _080F31DE - movs r2, 0x1 -_080F31DE: - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - lsls r2, 2 - b _080F3214 - .align 2, 0 -_080F31E8: .4byte gUnknown_083DFEC4 -_080F31EC: .4byte 0x000087c9 -_080F31F0: .4byte 0x00008770 -_080F31F4: - movs r4, 0 - ldr r2, _080F3250 - adds r0, r1, r2 - ldr r5, _080F3254 - adds r1, r5 - movs r5, 0 - ldrsh r2, [r0, r5] - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r2, r0 - bne _080F320C - movs r4, 0x1 -_080F320C: - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - lsls r2, r4, 2 -_080F3214: - ldrb r1, [r0] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - orrs r0, r2 - mov r1, r12 - strb r0, [r1] - movs r0, 0 - strh r0, [r3, 0x36] -_080F3226: - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - movs r1, 0 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080F325C - strh r1, [r3, 0x2E] - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bgt _080F3258 - ldrh r0, [r3, 0x32] - ldrh r2, [r3, 0x26] - adds r0, r2 - strh r0, [r3, 0x26] - b _080F325C - .align 2, 0 -_080F3250: .4byte 0x00008772 -_080F3254: .4byte 0x00008774 -_080F3258: - strh r1, [r3, 0x30] - strh r1, [r3, 0x26] -_080F325C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80F31AC - - thumb_func_start sub_80F3264 -sub_80F3264: @ 80F3264 - push {lr} - movs r1, 0 - ldr r0, _080F328C - ldr r0, [r0] - ldr r3, _080F3290 - adds r2, r0, r3 - movs r3, 0x1 -_080F3272: - lsls r0, r1, 2 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080F327E - strh r3, [r0, 0x36] -_080F327E: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bls _080F3272 - pop {r0} - bx r0 - .align 2, 0 -_080F328C: .4byte gUnknown_083DFEC4 -_080F3290: .4byte 0x000087d0 - thumb_func_end sub_80F3264 - - thumb_func_start sub_80F3294 -sub_80F3294: @ 80F3294 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080F32F4 - ldr r4, [r0] - ldr r1, _080F32F8 - adds r0, r4, r1 - ldr r2, [r0] - adds r2, 0x3E - movs r0, 0x1 - adds r1, r6, 0 - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r5, 0x5 - negs r5, r5 - adds r0, r5, 0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r2, _080F32FC - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080F331A - cmp r6, 0x1 - bne _080F3308 - ldr r1, _080F3300 - adds r0, r4, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r5, 0 - ands r0, r2 - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1] - ldr r2, _080F3304 - adds r0, r4, r2 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r5, 0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1] - b _080F331A - .align 2, 0 -_080F32F4: .4byte gUnknown_083DFEC4 -_080F32F8: .4byte 0x000087cc -_080F32FC: .4byte 0x000087c9 -_080F3300: .4byte 0x000087d0 -_080F3304: .4byte 0x000087d4 -_080F3308: - ldr r1, _080F3320 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - strh r1, [r0, 0x36] - ldr r2, _080F3324 - adds r0, r4, r2 - ldr r0, [r0] - strh r1, [r0, 0x36] -_080F331A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F3320: .4byte 0x000087d0 -_080F3324: .4byte 0x000087d4 - thumb_func_end sub_80F3294 - - thumb_func_start sub_80F3328 -sub_80F3328: @ 80F3328 - push {lr} - adds r2, r0, 0 - ldr r0, _080F334C - ldr r0, [r0] - ldr r1, _080F3350 - adds r0, r1 - movs r3, 0x2E - ldrsh r1, [r2, r3] - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r1, r0 - bne _080F3354 - adds r0, r2, 0 - movs r1, 0 - bl StartSpriteAnim - b _080F335C - .align 2, 0 -_080F334C: .4byte gUnknown_083DFEC4 -_080F3350: .4byte 0x000087dc -_080F3354: - adds r0, r2, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080F335C: - pop {r0} - bx r0 - thumb_func_end sub_80F3328 - - thumb_func_start sub_80F3360 -sub_80F3360: @ 80F3360 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080F3384 - ldr r0, [r0] - ldr r2, _080F3388 - adds r1, r0, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - ldr r2, _080F338C - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - subs r0, 0x1 - cmp r1, r0 - bne _080F3390 - movs r0, 0x4 - b _080F3392 - .align 2, 0 -_080F3384: .4byte gUnknown_083DFEC4 -_080F3388: .4byte 0x000087dc -_080F338C: .4byte 0x000087da -_080F3390: - movs r0, 0x5 -_080F3392: - bl IndexOfSpritePaletteTag - lsls r0, 4 - ldrb r2, [r4, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F3360 - - thumb_func_start sub_80F33A8 -sub_80F33A8: @ 80F33A8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x50 - mov r1, sp - ldr r0, _080F3440 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r5,r6} - stm r1!, {r2,r5,r6} - ldm r0!, {r3,r4} - stm r1!, {r3,r4} - add r4, sp, 0x20 - adds r1, r4, 0 - ldr r0, _080F3444 - ldm r0!, {r2,r5,r6} - stm r1!, {r2,r5,r6} - ldm r0!, {r3,r5,r6} - stm r1!, {r3,r5,r6} - add r5, sp, 0x38 - adds r1, r5, 0 - ldr r0, _080F3448 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - mov r0, sp - bl LoadSpriteSheets - adds r0, r4, 0 - bl LoadSpritePalettes - movs r6, 0 - ldr r2, _080F344C - ldr r1, [r2] - ldr r3, _080F3450 - adds r0, r1, r3 - movs r4, 0 - ldrsh r0, [r0, r4] - subs r0, 0x1 - adds r7, r5, 0 - cmp r6, r0 - bge _080F347A - adds r5, r2, 0 - adds r0, r3, 0 - adds r0, r1 - mov r8, r0 -_080F3406: - lsls r4, r6, 2 - adds r2, r4, r6 - lsls r2, 18 - movs r1, 0x80 - lsls r1, 12 - adds r2, r1 - asrs r2, 16 - adds r0, r7, 0 - movs r1, 0xE2 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _080F345C - ldr r0, [r5] - ldr r2, _080F3454 - adds r0, r2 - adds r0, r4 - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - ldr r2, _080F3458 - adds r1, r2 - str r1, [r0] - strh r6, [r1, 0x2E] - b _080F3468 - .align 2, 0 -_080F3440: .4byte gUnknown_083E4628 -_080F3444: .4byte gUnknown_083E4648 -_080F3448: .4byte gSpriteTemplate_83E4660 -_080F344C: .4byte gUnknown_083DFEC4 -_080F3450: .4byte 0x000087da -_080F3454: .4byte 0x000087e4 -_080F3458: .4byte gSprites -_080F345C: - ldr r0, [r5] - ldr r3, _080F34C8 - adds r0, r3 - adds r0, r4 - movs r1, 0 - str r1, [r0] -_080F3468: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - mov r4, r8 - movs r1, 0 - ldrsh r0, [r4, r1] - subs r0, 0x1 - cmp r6, r0 - blt _080F3406 -_080F347A: - movs r0, 0x4 - strh r0, [r7] - ldr r0, _080F34CC - str r0, [r7, 0x14] - cmp r6, 0x5 - bhi _080F34EE - ldr r5, _080F34D0 -_080F3488: - lsls r4, r6, 2 - adds r2, r4, r6 - lsls r2, 18 - movs r3, 0x80 - lsls r3, 12 - adds r2, r3 - asrs r2, 16 - adds r0, r7, 0 - movs r1, 0xE6 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _080F34D8 - ldr r2, [r5] - ldr r0, _080F34C8 - adds r2, r0 - adds r2, r4 - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - ldr r0, _080F34D4 - adds r1, r0 - str r1, [r2] - ldrb r2, [r1, 0x3] - movs r0, 0x3F - ands r0, r2 - strb r0, [r1, 0x3] - b _080F34E4 - .align 2, 0 -_080F34C8: .4byte 0x000087e4 -_080F34CC: .4byte SpriteCallbackDummy -_080F34D0: .4byte gUnknown_083DFEC4 -_080F34D4: .4byte gSprites -_080F34D8: - ldr r0, [r5] - ldr r1, _080F3548 - adds r0, r1 - adds r0, r4 - movs r1, 0 - str r1, [r0] -_080F34E4: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _080F3488 -_080F34EE: - movs r0, 0x5 - strh r0, [r7] - ldr r0, _080F354C - str r0, [r7, 0x14] - lsls r5, r6, 2 - adds r2, r5, r6 - lsls r2, 18 - movs r3, 0x80 - lsls r3, 12 - adds r2, r3 - asrs r2, 16 - adds r0, r7, 0 - movs r1, 0xDE - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _080F3558 - ldr r0, _080F3550 - ldr r4, [r0] - ldr r6, _080F3548 - adds r4, r6 - adds r4, r5 - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - ldr r0, _080F3554 - adds r1, r0 - str r1, [r4] - ldrb r3, [r1, 0x1] - movs r2, 0x3F - adds r0, r2, 0 - ands r0, r3 - movs r3, 0x40 - orrs r0, r3 - strb r0, [r1, 0x1] - ldr r1, [r4] - ldrb r0, [r1, 0x3] - ands r2, r0 - movs r0, 0x80 - orrs r2, r0 - strb r2, [r1, 0x3] - b _080F3566 - .align 2, 0 -_080F3548: .4byte 0x000087e4 -_080F354C: .4byte sub_80F3360 -_080F3550: .4byte gUnknown_083DFEC4 -_080F3554: .4byte gSprites -_080F3558: - ldr r0, _080F3574 - ldr r0, [r0] - ldr r1, _080F3578 - adds r0, r1 - adds r0, r5 - movs r1, 0 - str r1, [r0] -_080F3566: - add sp, 0x50 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F3574: .4byte gUnknown_083DFEC4 -_080F3578: .4byte 0x000087e4 - thumb_func_end sub_80F33A8 - - thumb_func_start sub_80F357C -sub_80F357C: @ 80F357C - push {r4-r6,lr} - movs r5, 0 - ldr r0, _080F35AC - ldr r0, [r0] - ldr r1, _080F35B0 - adds r6, r0, r1 -_080F3588: - lsls r0, r5, 2 - adds r4, r6, r0 - ldr r0, [r4] - cmp r0, 0 - beq _080F359A - bl DestroySprite - movs r0, 0 - str r0, [r4] -_080F359A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x6 - bls _080F3588 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F35AC: .4byte gUnknown_083DFEC4 -_080F35B0: .4byte 0x000087e4 - thumb_func_end sub_80F357C - - thumb_func_start sub_80F35B4 -sub_80F35B4: @ 80F35B4 - push {r4,lr} - ldr r0, _080F35FC - ldr r4, [r0] - ldr r1, _080F3600 - adds r0, r4, r1 - movs r1, 0x1C - strh r1, [r0] - ldr r1, _080F3604 - adds r2, r4, r1 - movs r1, 0x13 - strh r1, [r2] - bl sub_80F727C - bl sub_80F7404 - ldr r2, _080F3608 - movs r0, 0x1B - movs r1, 0x15 - bl sub_80F7920 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - movs r1, 0xC0 - strh r1, [r0, 0x20] - movs r1, 0x20 - strh r1, [r0, 0x22] - ldr r1, _080F360C - str r1, [r0, 0x1C] - ldr r1, _080F3610 - adds r4, r1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F35FC: .4byte gUnknown_083DFEC4 -_080F3600: .4byte 0x000076b0 -_080F3604: .4byte 0x000076b2 -_080F3608: .4byte gUnknown_083E4678 -_080F360C: .4byte sub_80F363C -_080F3610: .4byte 0x000076ac - thumb_func_end sub_80F35B4 - - thumb_func_start sub_80F3614 -sub_80F3614: @ 80F3614 - push {lr} - ldr r0, _080F3634 - ldr r0, [r0] - ldr r1, _080F3638 - adds r0, r1 - ldr r0, [r0] - bl DestroySprite - movs r0, 0x1B - bl FreeSpriteTilesByTag - movs r0, 0x15 - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .align 2, 0 -_080F3634: .4byte gUnknown_083DFEC4 -_080F3638: .4byte 0x000076ac - thumb_func_end sub_80F3614 - - thumb_func_start sub_80F363C -sub_80F363C: @ 80F363C - push {lr} - ldr r1, _080F365C - ldr r1, [r1] - ldr r3, _080F3660 - adds r2, r1, r3 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - ldr r3, _080F3664 - adds r1, r3 - adds r1, r2 - ldrb r1, [r1] - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_080F365C: .4byte gUnknown_083DFEC4 -_080F3660: .4byte 0x00008fe9 -_080F3664: .4byte 0x00008934 - thumb_func_end sub_80F363C - - thumb_func_start sub_80F3668 -sub_80F3668: @ 80F3668 - push {lr} - ldr r0, _080F368C - ldr r0, [r0] - ldr r2, _080F3690 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldr r2, _080F3694 - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0xB0 - movs r2, 0x20 - bl sub_80F7418 - pop {r0} - bx r0 - .align 2, 0 -_080F368C: .4byte gUnknown_083DFEC4 -_080F3690: .4byte 0x00008fe9 -_080F3694: .4byte 0x00008934 - thumb_func_end sub_80F3668 - - thumb_func_start sub_80F3698 -sub_80F3698: @ 80F3698 - push {r4,lr} - ldr r0, _080F36DC - ldr r3, [r0] - ldr r1, _080F36E0 - adds r0, r3, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r1, 2 - ldr r4, _080F36E4 - adds r1, r4 - adds r1, r3, r1 - ldr r2, _080F36E8 - adds r0, r3, r2 - movs r2, 0 - ldrsb r2, [r0, r2] - subs r4, 0x8 - adds r0, r3, r4 - adds r0, r2 - ldr r2, _080F36EC - adds r3, r2 - ldrb r2, [r3] - strb r2, [r0] - ldrb r0, [r1, 0x1] - ldr r1, [r1] - lsls r1, 11 - lsrs r1, 27 - ldrb r2, [r3] - bl sub_80F4548 - bl sub_80F7470 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F36DC: .4byte gUnknown_083DFEC4 -_080F36E0: .4byte 0x000087dc -_080F36E4: .4byte 0x0000893c -_080F36E8: .4byte 0x00008fe9 -_080F36EC: .4byte 0x000076b4 - thumb_func_end sub_80F3698 - - thumb_func_start sub_80F36F0 -sub_80F36F0: @ 80F36F0 - push {lr} - ldr r0, _080F3718 - ldr r0, [r0] - ldr r1, _080F371C - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080F3720 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F3712 -_080F3708: - bl sub_80F3724 - lsls r0, 24 - cmp r0, 0 - bne _080F3708 -_080F3712: - pop {r0} - bx r0 - .align 2, 0 -_080F3718: .4byte gUnknown_083DFEC4 -_080F371C: .4byte 0x00000306 -_080F3720: .4byte 0x00006dac - thumb_func_end sub_80F36F0 - - thumb_func_start sub_80F3724 -sub_80F3724: @ 80F3724 - push {r4,lr} - ldr r0, _080F3740 - ldr r1, [r0] - ldr r0, _080F3744 - adds r4, r1, r0 - ldrh r0, [r4] - cmp r0, 0x1 - beq _080F3764 - cmp r0, 0x1 - bgt _080F3748 - cmp r0, 0 - beq _080F374E - b _080F377A - .align 2, 0 -_080F3740: .4byte gUnknown_083DFEC4 -_080F3744: .4byte 0x00000306 -_080F3748: - cmp r0, 0x2 - beq _080F376E - b _080F377A -_080F374E: - ldr r0, _080F375C - ldr r2, _080F3760 - adds r1, r2 - bl LZ77UnCompWram - b _080F377E - .align 2, 0 -_080F375C: .4byte gUnknown_083E3D00 -_080F3760: .4byte 0x0000984c -_080F3764: - bl sub_80F379C - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080F376E: - bl sub_80F37D0 - lsls r0, 24 - cmp r0, 0 - beq _080F377E - b _080F378C -_080F377A: - movs r0, 0 - b _080F378E -_080F377E: - ldr r0, _080F3794 - ldr r1, [r0] - ldr r0, _080F3798 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F378C: - movs r0, 0x1 -_080F378E: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F3794: .4byte gUnknown_083DFEC4 -_080F3798: .4byte 0x00000306 - thumb_func_end sub_80F3724 - - thumb_func_start sub_80F379C -sub_80F379C: @ 80F379C - push {lr} - ldr r0, _080F37C4 - ldr r0, [r0] - ldr r1, _080F37C8 - adds r2, r0, r1 - movs r1, 0 - strb r1, [r2] - ldr r1, _080F37CC - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F37BE -_080F37B4: - bl sub_80F37D0 - lsls r0, 24 - cmp r0, 0 - bne _080F37B4 -_080F37BE: - pop {r0} - bx r0 - .align 2, 0 -_080F37C4: .4byte gUnknown_083DFEC4 -_080F37C8: .4byte 0x0000bc93 -_080F37CC: .4byte 0x00006dac - thumb_func_end sub_80F379C - - thumb_func_start sub_80F37D0 -sub_80F37D0: @ 80F37D0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _080F3898 - ldr r1, [r0] - ldr r2, _080F389C - adds r1, r2 - ldrb r1, [r1] - adds r2, r0, 0 - cmp r1, 0xB - bhi _080F38A8 - movs r3, 0 - mov r8, r3 - movs r7, 0xF - mov r9, r7 -_080F37F0: - ldr r2, [r2] - ldr r1, _080F389C - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, 8 - ldr r3, _080F38A0 - adds r0, r3 - adds r4, r2, r0 - lsls r1, 9 - ldr r7, _080F38A4 - adds r1, r7 - adds r5, r2, r1 - movs r6, 0 -_080F380A: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x10 - bl CpuFastSet - adds r5, 0x40 - adds r4, 0x20 - movs r1, 0 - adds r6, 0x1 - mov r12, r6 -_080F381E: - movs r0, 0 - adds r6, r1, 0x1 -_080F3822: - adds r4, 0x4 - movs r2, 0 - adds r3, r0, 0x1 -_080F3828: - subs r4, 0x1 - ldrb r0, [r4] - lsls r1, r0, 4 - lsrs r0, 4 - mov r7, r9 - ands r0, r7 - orrs r1, r0 - strb r1, [r5] - adds r5, 0x1 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080F3828 - adds r4, 0x4 - lsls r0, r3, 24 - lsrs r0, 24 - cmp r0, 0x7 - bls _080F3822 - subs r4, 0x40 - lsls r0, r6, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - bls _080F381E - adds r4, 0x60 - mov r1, r12 - lsls r0, r1, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bls _080F380A - ldr r2, _080F3898 - ldr r3, [r2] - ldr r7, _080F389C - adds r1, r3, r7 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB - bhi _080F38A8 - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0x1 - bls _080F37F0 - adds r1, r7, 0 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0xB - bhi _080F38A8 - movs r0, 0x1 - b _080F38AA - .align 2, 0 -_080F3898: .4byte gUnknown_083DFEC4 -_080F389C: .4byte 0x0000bc93 -_080F38A0: .4byte 0x0000984c -_080F38A4: .4byte 0x0000a44c -_080F38A8: - movs r0, 0 -_080F38AA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F37D0 - - thumb_func_start sub_80F38B8 -sub_80F38B8: @ 80F38B8 - push {lr} - ldr r0, _080F38E0 - ldr r0, [r0] - ldr r1, _080F38E4 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080F38E8 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F38DA -_080F38D0: - bl sub_80F38EC - lsls r0, 24 - cmp r0, 0 - bne _080F38D0 -_080F38DA: - pop {r0} - bx r0 - .align 2, 0 -_080F38E0: .4byte gUnknown_083DFEC4 -_080F38E4: .4byte 0x00000306 -_080F38E8: .4byte 0x00006dac - thumb_func_end sub_80F38B8 - - thumb_func_start sub_80F38EC -sub_80F38EC: @ 80F38EC - push {r4,lr} - ldr r0, _080F3908 - ldr r2, [r0] - ldr r0, _080F390C - adds r4, r2, r0 - ldrh r1, [r4] - cmp r1, 0x1 - beq _080F3930 - cmp r1, 0x1 - bgt _080F3910 - cmp r1, 0 - beq _080F391A - b _080F394E - .align 2, 0 -_080F3908: .4byte gUnknown_083DFEC4 -_080F390C: .4byte 0x00000306 -_080F3910: - cmp r1, 0x2 - beq _080F3938 - cmp r1, 0x3 - beq _080F3942 - b _080F394E -_080F391A: - ldr r3, _080F3928 - adds r0, r2, r3 - str r1, [r0] - ldr r3, _080F392C - adds r0, r2, r3 - strb r1, [r0] - b _080F3952 - .align 2, 0 -_080F3928: .4byte 0x00009348 -_080F392C: .4byte 0x0000bc92 -_080F3930: - movs r0, 0 - bl sub_80F2E18 - b _080F3952 -_080F3938: - bl sub_80F3970 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080F3942: - bl sub_80F39A4 - lsls r0, 24 - cmp r0, 0 - beq _080F3952 - b _080F3960 -_080F394E: - movs r0, 0 - b _080F3962 -_080F3952: - ldr r0, _080F3968 - ldr r1, [r0] - ldr r0, _080F396C - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F3960: - movs r0, 0x1 -_080F3962: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F3968: .4byte gUnknown_083DFEC4 -_080F396C: .4byte 0x00000306 - thumb_func_end sub_80F38EC - - thumb_func_start sub_80F3970 -sub_80F3970: @ 80F3970 - push {lr} - ldr r0, _080F3998 - ldr r0, [r0] - ldr r1, _080F399C - adds r2, r0, r1 - movs r1, 0 - strb r1, [r2] - ldr r1, _080F39A0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F3992 -_080F3988: - bl sub_80F39A4 - lsls r0, 24 - cmp r0, 0 - bne _080F3988 -_080F3992: - pop {r0} - bx r0 - .align 2, 0 -_080F3998: .4byte gUnknown_083DFEC4 -_080F399C: .4byte 0x0000bc93 -_080F39A0: .4byte 0x00006dac - thumb_func_end sub_80F3970 - - thumb_func_start sub_80F39A4 -sub_80F39A4: @ 80F39A4 - push {r4,r5,lr} - sub sp, 0x10 - ldr r0, _080F3A18 - ldr r1, [r0] - ldr r0, _080F3A1C - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xB - bhi _080F3A30 - ldrb r0, [r4] - lsls r0, 9 - ldr r2, _080F3A20 - adds r0, r2 - adds r0, r1, r0 - str r0, [sp] - ldr r5, _080F3A24 - ldr r2, [sp, 0x4] - ands r2, r5 - movs r0, 0x80 - lsls r0, 2 - orrs r2, r0 - str r2, [sp, 0x4] - ldrb r1, [r4] - adds r1, 0xB - lsls r1, 16 - ldr r0, _080F3A28 - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - ldrb r0, [r4] - cmp r0, 0x4 - bhi _080F3A04 - lsls r0, 5 - ldr r1, _080F3A2C - adds r0, r1 - str r0, [sp, 0x8] - ldrb r2, [r4] - adds r2, 0xA - add r0, sp, 0x8 - ldr r1, [r0, 0x4] - ands r1, r5 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadSpritePalette -_080F3A04: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB - bhi _080F3A30 - movs r0, 0x1 - b _080F3A32 - .align 2, 0 -_080F3A18: .4byte gUnknown_083DFEC4 -_080F3A1C: .4byte 0x0000bc93 -_080F3A20: .4byte 0x0000a44c -_080F3A24: .4byte 0xffff0000 -_080F3A28: .4byte 0x0000ffff -_080F3A2C: .4byte gUnknown_083E3C60 -_080F3A30: - movs r0, 0 -_080F3A32: - add sp, 0x10 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F39A4 - - thumb_func_start sub_80F3A3C -sub_80F3A3C: @ 80F3A3C - push {r4-r7,lr} - sub sp, 0x18 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - cmp r4, 0x2 - bhi _080F3A60 - lsls r0, r4, 3 - adds r0, r4 - adds r0, r5, r0 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _080F3A5C - b _080F3A78 - .align 2, 0 -_080F3A5C: .4byte gUnknown_083DFEC4 -_080F3A60: - ldr r2, _080F3AD0 - ldr r1, [r2] - ldr r3, _080F3AD4 - adds r0, r1, r3 - ldrb r0, [r0] - ldr r6, _080F3AD8 - adds r1, r6 - ldrb r1, [r1] - subs r0, r1 - adds r0, r5, r0 - lsls r0, 16 - lsrs r1, r0, 16 -_080F3A78: - ldr r0, [r2] - ldr r7, _080F3ADC - adds r0, r7 - adds r0, r1 - ldrb r2, [r0] - mov r1, sp - ldr r0, _080F3AE0 - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - mov r3, sp - ldr r1, _080F3AE4 - lsls r2, 2 - adds r0, r2, r1 - ldrh r0, [r0] - adds r0, 0xB - strh r0, [r3] - adds r1, 0x2 - adds r2, r1 - ldrh r0, [r2] - adds r0, 0xA - strh r0, [r3, 0x2] - lsls r1, r5, 20 - movs r0, 0xC0 - lsls r0, 15 - adds r1, r0 - asrs r1, 16 - lsls r2, r4, 20 - movs r3, 0xA0 - lsls r3, 14 - adds r2, r3 - asrs r2, 16 - mov r0, sp - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _080F3AE8 - movs r0, 0 - b _080F3AF2 - .align 2, 0 -_080F3AD0: .4byte gUnknown_083DFEC4 -_080F3AD4: .4byte 0x0000bc8e -_080F3AD8: .4byte 0x0000bc8f -_080F3ADC: .4byte 0x0000bc4c -_080F3AE0: .4byte gSpriteTemplate_83E476C -_080F3AE4: .4byte gUnknown_083E4698 -_080F3AE8: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F3AFC - adds r0, r1 -_080F3AF2: - add sp, 0x18 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080F3AFC: .4byte gSprites - thumb_func_end sub_80F3A3C - - thumb_func_start sub_80F3B00 -sub_80F3B00: @ 80F3B00 - push {r4,lr} - ldr r0, _080F3B34 - ldr r4, [r0] - ldr r1, _080F3B38 - adds r0, r4, r1 - ldrb r0, [r0] - ldr r2, _080F3B3C - adds r1, r4, r2 - ldrb r1, [r1] - bl sub_80F3A3C - adds r2, r0, 0 - ldr r1, _080F3B40 - adds r0, r4, r1 - str r2, [r0] - cmp r2, 0 - beq _080F3B48 - adds r0, r2, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r2, _080F3B44 - adds r1, r4, r2 - movs r0, 0x1 - strb r0, [r1] - b _080F3B4E - .align 2, 0 -_080F3B34: .4byte gUnknown_083DFEC4 -_080F3B38: .4byte 0x0000bc90 -_080F3B3C: .4byte 0x0000bc91 -_080F3B40: .4byte 0x00009348 -_080F3B44: .4byte 0x0000bc92 -_080F3B48: - ldr r1, _080F3B54 - adds r0, r4, r1 - strb r2, [r0] -_080F3B4E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F3B54: .4byte 0x0000bc92 - thumb_func_end sub_80F3B00 - - thumb_func_start sub_80F3B58 -sub_80F3B58: @ 80F3B58 - push {lr} - ldr r0, _080F3B6C - ldr r1, [r0] - ldr r0, _080F3B70 - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, 0 - bne _080F3B74 - movs r0, 0 - b _080F3B8A - .align 2, 0 -_080F3B6C: .4byte gUnknown_083DFEC4 -_080F3B70: .4byte 0x0000bc92 -_080F3B74: - ldr r3, _080F3B90 - adds r0, r1, r3 - ldr r0, [r0] - adds r0, 0x3F - ldrb r0, [r0] - lsrs r0, 5 - movs r1, 0x1 - eors r0, r1 - ands r0, r1 - strb r0, [r2] - ldrb r0, [r2] -_080F3B8A: - pop {r1} - bx r1 - .align 2, 0 -_080F3B90: .4byte 0x00009348 - thumb_func_end sub_80F3B58 - - thumb_func_start sub_80F3B94 -sub_80F3B94: @ 80F3B94 - push {r4,lr} - ldr r0, _080F3BB8 - ldr r4, [r0] - ldr r1, _080F3BBC - adds r0, r4, r1 - ldr r2, [r0] - cmp r2, 0 - beq _080F3BC4 - adds r0, r2, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldr r0, _080F3BC0 - adds r1, r4, r0 - movs r0, 0x1 - strb r0, [r1] - b _080F3BCA - .align 2, 0 -_080F3BB8: .4byte gUnknown_083DFEC4 -_080F3BBC: .4byte 0x00009348 -_080F3BC0: .4byte 0x0000bc92 -_080F3BC4: - ldr r1, _080F3BD0 - adds r0, r4, r1 - strb r2, [r0] -_080F3BCA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F3BD0: .4byte 0x0000bc92 - thumb_func_end sub_80F3B94 - - thumb_func_start sub_80F3BD4 -sub_80F3BD4: @ 80F3BD4 - push {r4-r6,lr} - ldr r0, _080F3C18 - ldr r1, [r0] - ldr r0, _080F3C1C - adds r5, r1, r0 - ldrb r0, [r5] - cmp r0, 0 - beq _080F3C24 - ldr r0, _080F3C20 - adds r4, r1, r0 - ldr r0, [r4] - adds r0, 0x3F - ldrb r0, [r0] - lsrs r0, 5 - movs r1, 0x1 - eors r0, r1 - ands r0, r1 - strb r0, [r5] - adds r6, r0, 0 - cmp r6, 0 - bne _080F3C12 - ldr r0, [r4] - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldr r0, [r4] - bl DestroySprite - str r6, [r4] -_080F3C12: - ldrb r0, [r5] - b _080F3C26 - .align 2, 0 -_080F3C18: .4byte gUnknown_083DFEC4 -_080F3C1C: .4byte 0x0000bc92 -_080F3C20: .4byte 0x00009348 -_080F3C24: - movs r0, 0 -_080F3C26: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F3BD4 - - thumb_func_start sub_80F3C2C -sub_80F3C2C: @ 80F3C2C - push {r4,lr} - ldr r0, _080F3C8C - ldr r0, [r0] - ldr r1, _080F3C90 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _080F3C50 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldr r0, [r4] - bl DestroySprite - movs r0, 0 - str r0, [r4] -_080F3C50: - movs r4, 0 -_080F3C52: - adds r0, r4, 0 - adds r0, 0xB - lsls r0, 16 - lsrs r0, 16 - bl FreeSpriteTilesByTag - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xB - bls _080F3C52 - movs r4, 0 -_080F3C6A: - adds r0, r4, 0 - adds r0, 0xA - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _080F3C6A - bl sub_80F2F48 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F3C8C: .4byte gUnknown_083DFEC4 -_080F3C90: .4byte 0x00009348 - thumb_func_end sub_80F3C2C - - thumb_func_start sub_80F3C94 -sub_80F3C94: @ 80F3C94 - push {lr} - sub sp, 0x10 - ldr r0, _080F3CDC - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, _080F3CE0 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x8] - str r1, [sp, 0xC] - mov r0, sp - bl LoadSpriteSheet - add r0, sp, 0x8 - bl LoadSpritePalette - movs r1, 0 - ldr r0, _080F3CE4 - ldr r0, [r0] - movs r3, 0x88 - lsls r3, 8 - adds r2, r0, r3 - movs r3, 0 -_080F3CC6: - lsls r0, r1, 2 - adds r0, r2, r0 - str r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x9 - bls _080F3CC6 - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_080F3CDC: .4byte gUnknown_083E4784 -_080F3CE0: .4byte gUnknown_083E478C -_080F3CE4: .4byte gUnknown_083DFEC4 - thumb_func_end sub_80F3C94 - - thumb_func_start sub_80F3CE8 -sub_80F3CE8: @ 80F3CE8 - push {lr} - bl move_anim_execute - movs r0, 0x17 - bl FreeSpriteTilesByTag - movs r0, 0xF - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - thumb_func_end sub_80F3CE8 - - thumb_func_start sub_80F3D00 -sub_80F3D00: @ 80F3D00 - push {r4,r5,lr} - ldr r0, _080F3D34 - ldr r2, [r0] - ldr r1, _080F3D38 - adds r0, r2, r1 - movs r3, 0 - ldrsh r0, [r0, r3] - lsls r0, 2 - ldr r1, _080F3D3C - adds r0, r1 - adds r0, r2, r0 - ldrb r1, [r0, 0x3] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080F3D94 - ldr r3, _080F3D40 - adds r0, r2, r3 - movs r1, 0 - ldrsb r1, [r0, r1] - ldr r3, _080F3D44 - adds r0, r2, r3 - adds r0, r1 - ldrb r5, [r0] - movs r4, 0 - b _080F3D86 - .align 2, 0 -_080F3D34: .4byte gUnknown_083DFEC4 -_080F3D38: .4byte 0x000087dc -_080F3D3C: .4byte 0x0000893c -_080F3D40: .4byte 0x00008fe9 -_080F3D44: .4byte 0x00008931 -_080F3D48: - ldr r0, _080F3D9C - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080F3D8C - ldr r0, _080F3DA0 - ldr r2, [r0] - lsls r0, r4, 2 - movs r3, 0x88 - lsls r3, 8 - adds r2, r3 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F3DA4 - adds r0, r1 - str r0, [r2] - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080F3D86: - adds r0, r5, 0x1 - cmp r4, r0 - blt _080F3D48 -_080F3D8C: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80F3F20 -_080F3D94: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F3D9C: .4byte gSpriteTemplate_83E4800 -_080F3DA0: .4byte gUnknown_083DFEC4 -_080F3DA4: .4byte gSprites - thumb_func_end sub_80F3D00 - - thumb_func_start move_anim_execute -move_anim_execute: @ 80F3DA8 - push {r4-r6,lr} - movs r5, 0 - ldr r0, _080F3DD8 - ldr r0, [r0] - movs r1, 0x88 - lsls r1, 8 - adds r6, r0, r1 -_080F3DB6: - lsls r0, r5, 2 - adds r4, r6, r0 - ldr r0, [r4] - cmp r0, 0 - beq _080F3DD2 - bl DestroySprite - movs r0, 0 - str r0, [r4] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x9 - bls _080F3DB6 -_080F3DD2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F3DD8: .4byte gUnknown_083DFEC4 - thumb_func_end move_anim_execute - - thumb_func_start sub_80F3DDC -sub_80F3DDC: @ 80F3DDC - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080F3DFE - movs r0, 0 - strh r0, [r1, 0x30] - ldrh r0, [r1, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_80F3F20 -_080F3DFE: - pop {r0} - bx r0 - thumb_func_end sub_80F3DDC - - thumb_func_start sub_80F3E04 -sub_80F3E04: @ 80F3E04 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080F3E1C - movs r0, 0 - strh r0, [r2, 0x30] - ldr r0, _080F3E20 - str r0, [r2, 0x1C] -_080F3E1C: - pop {r0} - bx r0 - .align 2, 0 -_080F3E20: .4byte sub_80F3DDC - thumb_func_end sub_80F3E04 - - thumb_func_start sub_80F3E24 -sub_80F3E24: @ 80F3E24 - push {r4,r5,lr} - adds r3, r0, 0 - ldr r0, _080F3E64 - ldr r0, [r0] - ldr r1, _080F3E68 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _080F3E70 - ldrh r1, [r0, 0x24] - ldrh r0, [r0, 0x20] - adds r1, r0 - ldr r2, _080F3E6C - movs r5, 0x2E - ldrsh r0, [r3, r5] - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - adds r0, r1 - strh r0, [r3, 0x20] - ldr r0, [r4] - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - movs r4, 0x2E - ldrsh r0, [r3, r4] - lsls r0, 2 - adds r2, 0x2 - adds r0, r2 - ldrh r0, [r0] - adds r0, r1 - b _080F3E8E - .align 2, 0 -_080F3E64: .4byte gUnknown_083DFEC4 -_080F3E68: .4byte 0x00008768 -_080F3E6C: .4byte gUnknown_083E4794 -_080F3E70: - ldr r1, _080F3E98 - movs r5, 0x2E - ldrsh r0, [r3, r5] - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x28 - strh r0, [r3, 0x20] - movs r2, 0x2E - ldrsh r0, [r3, r2] - lsls r0, 2 - adds r1, 0x2 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x68 -_080F3E8E: - strh r0, [r3, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F3E98: .4byte gUnknown_083E4794 - thumb_func_end sub_80F3E24 - - thumb_func_start sub_80F3E9C -sub_80F3E9C: @ 80F3E9C - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080F3ECA - subs r0, r1, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080F3F14 - adds r0, r4, 0 - movs r1, 0 - bl SeekSpriteAnim - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080F3ECA: - adds r0, r4, 0 - bl sub_80F3E24 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080F3F14 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x34 - ldrsh r1, [r4, r0] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080F3F10 - cmp r1, 0x9 - bne _080F3F08 - bl sub_80F3FAC - ldr r0, _080F3F04 - b _080F3F12 - .align 2, 0 -_080F3F04: .4byte sub_80F3E04 -_080F3F08: - ldr r0, _080F3F0C - b _080F3F12 - .align 2, 0 -_080F3F0C: .4byte sub_80F3DDC -_080F3F10: - ldr r0, _080F3F1C -_080F3F12: - str r0, [r4, 0x1C] -_080F3F14: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F3F1C: .4byte SpriteCallbackDummy - thumb_func_end sub_80F3E9C - - thumb_func_start sub_80F3F20 -sub_80F3F20: @ 80F3F20 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - movs r5, 0 - ldr r0, _080F3F6C - ldr r0, [r0] - movs r1, 0x88 - lsls r1, 8 - adds r7, r0, r1 -_080F3F3C: - lsls r0, r5, 2 - adds r4, r7, r0 - ldr r0, [r4] - cmp r0, 0 - beq _080F3F92 - strh r5, [r0, 0x2E] - ldr r1, [r4] - lsls r0, r5, 4 - adds r0, 0x1 - strh r0, [r1, 0x30] - ldr r0, [r4] - strh r6, [r0, 0x32] - ldr r0, [r4] - strh r5, [r0, 0x34] - mov r3, r8 - cmp r3, 0 - beq _080F3F62 - cmp r6, 0x9 - beq _080F3F74 -_080F3F62: - ldr r1, [r4] - ldr r0, _080F3F70 - str r0, [r1, 0x1C] - b _080F3F92 - .align 2, 0 -_080F3F6C: .4byte gUnknown_083DFEC4 -_080F3F70: .4byte sub_80F3E9C -_080F3F74: - ldr r0, [r4] - bl sub_80F3E24 - bl sub_80F3FAC - ldr r2, [r4] - ldr r0, _080F3FA8 - str r0, [r2, 0x1C] - adds r2, 0x3E - ldrb r0, [r2] - movs r3, 0x5 - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - strb r0, [r2] -_080F3F92: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x9 - bls _080F3F3C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F3FA8: .4byte sub_80F3E04 - thumb_func_end sub_80F3F20 - - thumb_func_start sub_80F3FAC -sub_80F3FAC: @ 80F3FAC - push {r4-r7,lr} - movs r5, 0 - ldr r0, _080F3FEC - ldr r0, [r0] - movs r1, 0x88 - lsls r1, 8 - adds r6, r0, r1 - movs r0, 0x5 - negs r0, r0 - adds r7, r0, 0 -_080F3FC0: - lsls r0, r5, 2 - adds r4, r6, r0 - ldr r0, [r4] - cmp r0, 0 - beq _080F3FDA - movs r1, 0 - bl SeekSpriteAnim - ldr r1, [r4] - adds r1, 0x3E - ldrb r0, [r1] - ands r0, r7 - strb r0, [r1] -_080F3FDA: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x9 - bls _080F3FC0 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F3FEC: .4byte gUnknown_083DFEC4 - thumb_func_end sub_80F3FAC - - thumb_func_start sub_80F3FF0 -sub_80F3FF0: @ 80F3FF0 - push {lr} - ldr r0, _080F4018 - ldr r0, [r0] - ldr r1, _080F401C - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080F4020 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F4012 -_080F4008: - bl sub_80F4024 - lsls r0, 24 - cmp r0, 0 - bne _080F4008 -_080F4012: - pop {r0} - bx r0 - .align 2, 0 -_080F4018: .4byte gUnknown_083DFEC4 -_080F401C: .4byte 0x00000306 -_080F4020: .4byte 0x00006dac - thumb_func_end sub_80F3FF0 - - thumb_func_start sub_80F4024 -sub_80F4024: @ 80F4024 - push {r4,lr} - sub sp, 0x10 - ldr r0, _080F4040 - ldr r4, [r0] - ldr r1, _080F4044 - adds r0, r4, r1 - ldrh r0, [r0] - cmp r0, 0x1 - beq _080F4068 - cmp r0, 0x1 - bgt _080F4048 - cmp r0, 0 - beq _080F4052 - b _080F4106 - .align 2, 0 -_080F4040: .4byte gUnknown_083DFEC4 -_080F4044: .4byte 0x00000306 -_080F4048: - cmp r0, 0x2 - beq _080F4084 - cmp r0, 0x3 - beq _080F40B8 - b _080F4106 -_080F4052: - ldr r0, _080F4060 - ldr r2, _080F4064 - adds r1, r4, r2 - bl LZ77UnCompWram - b _080F4118 - .align 2, 0 -_080F4060: .4byte gUnknown_083E329C -_080F4064: .4byte 0x000131e4 -_080F4068: - ldr r1, _080F407C - adds r0, r4, r1 - str r0, [sp] - ldr r0, _080F4080 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - b _080F4118 - .align 2, 0 -_080F407C: .4byte 0x000131e4 -_080F4080: .4byte 0x00181000 -_080F4084: - ldr r0, _080F40B4 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x8] - str r1, [sp, 0xC] - add r0, sp, 0x8 - bl LoadSpritePalette - movs r0, 0x10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xC2 - lsls r1, 2 - adds r2, r4, r1 - adds r0, 0x10 - movs r1, 0x1 - lsls r1, r0 - movs r0, 0x3 - negs r0, r0 - bics r0, r1 - str r0, [r2] - b _080F4118 - .align 2, 0 -_080F40B4: .4byte gUnknown_083E4818 -_080F40B8: - ldr r0, _080F40E4 - movs r1, 0xDA - movs r2, 0xE - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080F40F0 - ldr r0, _080F40E8 - adds r2, r4, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F40EC - adds r0, r1 - str r0, [r2] - movs r1, 0 - strh r1, [r0, 0x2E] - b _080F40F8 - .align 2, 0 -_080F40E4: .4byte gSpriteTemplate_83E4850 -_080F40E8: .4byte 0x00006d98 -_080F40EC: .4byte gSprites -_080F40F0: - ldr r2, _080F410C - adds r1, r4, r2 - movs r0, 0 - str r0, [r1] -_080F40F8: - ldr r0, _080F4110 - ldr r1, [r0] - ldr r0, _080F4114 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F4106: - movs r0, 0 - b _080F4128 - .align 2, 0 -_080F410C: .4byte 0x00006d98 -_080F4110: .4byte gUnknown_083DFEC4 -_080F4114: .4byte 0x00000306 -_080F4118: - ldr r0, _080F4130 - ldr r1, [r0] - ldr r2, _080F4134 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 -_080F4128: - add sp, 0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F4130: .4byte gUnknown_083DFEC4 -_080F4134: .4byte 0x00000306 - thumb_func_end sub_80F4024 - - thumb_func_start sub_80F4138 -sub_80F4138: @ 80F4138 - push {lr} - adds r2, r0, 0 - ldr r0, _080F4170 - ldr r0, [r0] - movs r1, 0xC3 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - negs r0, r0 - strh r0, [r2, 0x26] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bgt _080F4174 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080F418E - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x1 - b _080F418C - .align 2, 0 -_080F4170: .4byte gUnknown_083DFEC4 -_080F4174: - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _080F418E - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r3] - movs r0, 0 -_080F418C: - strh r0, [r2, 0x2E] -_080F418E: - pop {r0} - bx r0 - thumb_func_end sub_80F4138 - - thumb_func_start sub_80F4194 -sub_80F4194: @ 80F4194 - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r0, 0 - adds r2, r1, 0 - ldr r0, _080F42A4 - ldr r6, [r0] - mov r0, sp - ldr r1, _080F42A8 - adds r5, r1, 0 - strh r5, [r0] - ldr r4, _080F42AC - str r0, [r4] - str r6, [r4, 0x4] - ldr r3, _080F42B0 - str r3, [r4, 0x8] - ldr r0, [r4, 0x8] - movs r0, 0x80 - lsls r0, 3 - adds r1, r6, r0 - mov r0, sp - strh r5, [r0] - str r0, [r4] - str r1, [r4, 0x4] - str r3, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080F42B4 - adds r1, r6, 0 - bl sub_8004E3C - movs r3, 0x88 - lsls r3, 2 - adds r1, r6, r3 - mov r0, sp - movs r3, 0 - strh r3, [r0] - str r0, [r4] - str r1, [r4, 0x4] - ldr r2, _080F42B8 - str r2, [r4, 0x8] - ldr r0, [r4, 0x8] - movs r0, 0xC4 - lsls r0, 3 - adds r1, r6, r0 - mov r0, sp - strh r3, [r0] - str r0, [r4] - str r1, [r4, 0x4] - str r2, [r4, 0x8] - ldr r0, [r4, 0x8] - movs r1, 0x80 - lsls r1, 2 - adds r2, r6, r1 - ldr r0, [r2] - ldr r1, _080F42BC - ands r0, r1 - str r0, [r2] - ldr r0, [r2, 0x4] - ands r0, r1 - str r0, [r2, 0x4] - ldr r0, [r2, 0x8] - ands r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0xC] - ands r0, r1 - str r0, [r2, 0xC] - ldr r0, [r2, 0x10] - ands r0, r1 - str r0, [r2, 0x10] - ldr r0, [r2, 0x14] - ands r0, r1 - str r0, [r2, 0x14] - ldr r0, [r2, 0x18] - ands r0, r1 - str r0, [r2, 0x18] - ldr r0, [r2, 0x1C] - ands r0, r1 - str r0, [r2, 0x1C] - movs r3, 0xC0 - lsls r3, 3 - adds r2, r6, r3 - ldr r0, [r2] - ands r0, r1 - str r0, [r2] - ldr r0, [r2, 0x4] - ands r0, r1 - str r0, [r2, 0x4] - ldr r0, [r2, 0x8] - ands r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0xC] - ands r0, r1 - str r0, [r2, 0xC] - ldr r0, [r2, 0x10] - ands r0, r1 - str r0, [r2, 0x10] - ldr r0, [r2, 0x14] - ands r0, r1 - str r0, [r2, 0x14] - ldr r0, [r2, 0x18] - ands r0, r1 - str r0, [r2, 0x18] - ldr r0, [r2, 0x1C] - ands r0, r1 - str r0, [r2, 0x1C] - movs r1, 0 - ldr r2, _080F42C0 -_080F4268: - lsls r0, r1, 7 - adds r0, r6, r0 - str r0, [r4] - lsls r0, r1, 8 - adds r0, r7, r0 - str r0, [r4, 0x4] - str r2, [r4, 0x8] - ldr r0, [r4, 0x8] - lsls r0, r1, 7 - movs r3, 0x80 - lsls r3, 3 - adds r0, r3 - adds r0, r6, r0 - str r0, [r4] - lsls r0, r1, 3 - adds r0, 0x4 - lsls r0, 5 - adds r0, r7, r0 - str r0, [r4, 0x4] - str r2, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080F4268 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F42A4: .4byte gUnknown_083DFEC8 -_080F42A8: .4byte 0x00001111 -_080F42AC: .4byte 0x040000d4 -_080F42B0: .4byte 0x81000140 -_080F42B4: .4byte gWindowConfig_81E70F0 -_080F42B8: .4byte 0x81000030 -_080F42BC: .4byte 0x0fffffff -_080F42C0: .4byte 0x80000040 - thumb_func_end sub_80F4194 - - thumb_func_start sub_80F42C4 -sub_80F42C4: @ 80F42C4 - push {r4-r7,lr} - sub sp, 0x8 - adds r1, r0, 0 - ldr r0, _080F433C - ldr r0, [r0] - ldr r2, _080F4340 - adds r0, r2 - str r0, [sp] - ldr r2, _080F4344 - str r2, [sp, 0x4] - bl sub_80F4194 - mov r0, sp - bl LoadSpriteSheet - ldr r0, _080F4348 - bl LoadSpritePalette - movs r5, 0 - movs r4, 0 - ldr r6, _080F434C -_080F42EE: - lsls r1, r4, 21 - movs r7, 0xE2 - lsls r7, 15 - adds r1, r7 - asrs r1, 16 - ldr r0, _080F4350 - movs r2, 0x10 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080F4360 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r3, r6 - ldrh r2, [r3, 0x4] - lsls r0, r2, 22 - lsrs r0, 22 - adds r0, r5, r0 - ldr r7, _080F4354 - adds r1, r7, 0 - ands r0, r1 - ldr r7, _080F4358 - adds r1, r7, 0 - ands r2, r1 - orrs r2, r0 - strh r2, [r3, 0x4] - ldr r0, _080F433C - ldr r0, [r0] - lsls r1, r4, 2 - ldr r2, _080F435C - adds r0, r2 - adds r0, r1 - str r3, [r0] - b _080F4370 - .align 2, 0 -_080F433C: .4byte gUnknown_083DFEC4 -_080F4340: .4byte 0x0000d1e4 -_080F4344: .4byte 0x001a0500 -_080F4348: .4byte gUnknown_083E4868 -_080F434C: .4byte gSprites -_080F4350: .4byte gSpriteTemplate_83E4878 -_080F4354: .4byte 0x000003ff -_080F4358: .4byte 0xfffffc00 -_080F435C: .4byte 0x0000ced4 -_080F4360: - ldr r0, _080F438C - ldr r1, [r0] - lsls r0, r4, 2 - ldr r7, _080F4390 - adds r1, r7 - adds r1, r0 - movs r0, 0 - str r0, [r1] -_080F4370: - adds r0, r5, 0 - adds r0, 0x8 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _080F42EE - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F438C: .4byte gUnknown_083DFEC4 -_080F4390: .4byte 0x0000ced4 - thumb_func_end sub_80F42C4 - - thumb_func_start sub_80F4394 -sub_80F4394: @ 80F4394 - push {r4,r5,lr} - movs r4, 0 - ldr r0, _080F43CC - ldr r0, [r0] - ldr r1, _080F43D0 - adds r5, r0, r1 -_080F43A0: - lsls r0, r4, 2 - adds r0, r5, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080F43AE - bl DestroySprite -_080F43AE: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _080F43A0 - movs r0, 0x1A - bl FreeSpriteTilesByTag - movs r0, 0x12 - bl FreeSpritePaletteByTag - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F43CC: .4byte gUnknown_083DFEC4 -_080F43D0: .4byte 0x0000ced4 - thumb_func_end sub_80F4394 - - thumb_func_start sub_80F43D4 -sub_80F43D4: @ 80F43D4 - push {r4,lr} - adds r1, r0, 0 - ldr r0, _080F4410 - ldr r0, [r0] - ldr r2, _080F4414 - adds r4, r0, r2 - adds r0, r4, 0 - bl sub_80F4194 - movs r0, 0x1A - bl GetSpriteTileStartByTag - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _080F4418 - cmp r1, r0 - beq _080F4408 - lsls r0, r1, 5 - ldr r1, _080F441C - adds r0, r1 - ldr r1, _080F4420 - str r4, [r1] - str r0, [r1, 0x4] - ldr r0, _080F4424 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_080F4408: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F4410: .4byte gUnknown_083DFEC4 -_080F4414: .4byte 0x0000d1e4 -_080F4418: .4byte 0x0000ffff -_080F441C: .4byte 0x06010000 -_080F4420: .4byte 0x040000d4 -_080F4424: .4byte 0x84000140 - thumb_func_end sub_80F43D4 - - thumb_func_start sub_80F4428 -sub_80F4428: @ 80F4428 - push {lr} - lsls r1, 16 - lsrs r1, 16 - lsls r2, 24 - lsrs r2, 24 - bl sub_80F6514 - pop {r1} - bx r1 - thumb_func_end sub_80F4428 - - thumb_func_start sub_80F443C -sub_80F443C: @ 80F443C - push {r4,lr} - lsls r4, r1, 16 - lsrs r4, 16 - ldr r1, _080F4458 - bl StringCopy - adds r1, r4, 0 - movs r2, 0x38 - movs r3, 0x1 - bl sub_8072C14 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F4458: .4byte gOtherText_Number - thumb_func_end sub_80F443C - - thumb_func_start sub_80F445C -sub_80F445C: @ 80F445C - push {r4,lr} - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x17 - movs r3, 0x1 - bl sub_8072C14 - adds r4, r0, 0 - movs r3, 0xFC - strb r3, [r4] - movs r2, 0x11 - strb r2, [r4, 0x1] - movs r1, 0x1 - strb r1, [r4, 0x2] - adds r4, 0x3 - movs r0, 0xBA - strb r0, [r4] - adds r4, 0x1 - strb r3, [r4] - strb r2, [r4, 0x1] - strb r1, [r4, 0x2] - adds r4, 0x3 - ldr r0, _080F44A8 - ldr r0, [r0] - ldr r1, _080F44AC - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r1, 0x1 - adds r0, r4, 0 - movs r2, 0x32 - movs r3, 0x1 - bl sub_8072C14 - adds r4, r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F44A8: .4byte gUnknown_083DFEC4 -_080F44AC: .4byte 0x00008774 - thumb_func_end sub_80F445C - - thumb_func_start sub_80F44B0 -sub_80F44B0: @ 80F44B0 - push {r4,lr} - adds r4, r2, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r2, r1, 16 - cmp r0, 0xE - bne _080F44F4 - cmp r4, 0x2 - beq _080F44C8 - cmp r4, 0x7 - bne _080F44E0 -_080F44C8: - movs r0, 0x64 - muls r0, r2 - ldr r1, _080F44DC - adds r0, r1 - adds r1, r4, 0 - adds r2, r3, 0 - bl GetMonData - b _080F453C - .align 2, 0 -_080F44DC: .4byte gPlayerParty -_080F44E0: - movs r0, 0x64 - muls r0, r2 - ldr r1, _080F44F0 - adds r0, r1 - adds r1, r4, 0 - bl GetMonData - b _080F453C - .align 2, 0 -_080F44F0: .4byte gPlayerParty -_080F44F4: - cmp r4, 0x2 - beq _080F44FC - cmp r4, 0x7 - bne _080F4520 -_080F44FC: - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _080F451C - adds r1, r2 - adds r0, r1 - adds r1, r4, 0 - adds r2, r3, 0 - bl GetBoxMonData - b _080F453C - .align 2, 0 -_080F451C: .4byte gUnknown_020300A4 -_080F4520: - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _080F4544 - adds r1, r2 - adds r0, r1 - adds r1, r4, 0 - bl GetBoxMonData -_080F453C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F4544: .4byte gUnknown_020300A4 - thumb_func_end sub_80F44B0 - - thumb_func_start sub_80F4548 -sub_80F4548: @ 80F4548 - push {r4,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - mov r0, sp - strb r2, [r0] - cmp r3, 0xE - bne _080F4574 - movs r0, 0x64 - muls r0, r4 - ldr r1, _080F4570 - adds r0, r1 - movs r1, 0x8 - mov r2, sp - bl SetMonData - b _080F4592 - .align 2, 0 -_080F4570: .4byte gPlayerParty -_080F4574: - lsls r1, r3, 2 - adds r1, r3 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 4 - ldr r2, _080F459C - adds r1, r2 - adds r0, r1 - movs r1, 0x8 - mov r2, sp - bl SetBoxMonData -_080F4592: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F459C: .4byte gUnknown_020300A4 - thumb_func_end sub_80F4548 - - thumb_func_start sub_80F45A0 -sub_80F45A0: @ 80F45A0 - push {r4-r7,lr} - lsls r1, 24 - lsrs r6, r1, 24 - ldr r1, _080F45F0 - ldr r5, [r1] - lsls r1, r0, 16 - asrs r0, r1, 14 - adds r4, r5, r0 - ldr r2, _080F45F4 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 25 - lsrs r7, r0, 31 - cmp r7, 0 - beq _080F4644 - lsls r0, r6, 6 - ldr r2, _080F45F8 - adds r0, r2 - adds r0, r5, r0 - lsrs r1, 16 - movs r2, 0 - bl sub_80F4428 - ldr r1, _080F45FC - adds r0, r4, r1 - ldrb r2, [r0] - cmp r2, 0xE - bne _080F4608 - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 3 - ldr r2, _080F4600 - adds r0, r2 - adds r0, r5, r0 - ldr r1, _080F4604 - movs r2, 0x40 - movs r3, 0 - bl sub_8072C74 - b _080F4624 - .align 2, 0 -_080F45F0: .4byte gUnknown_083DFEC4 -_080F45F4: .4byte 0x0000893f -_080F45F8: .4byte 0x00008829 -_080F45FC: .4byte 0x0000893d -_080F4600: .4byte 0x000088e9 -_080F4604: .4byte gOtherText_InParty -_080F4608: - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 3 - ldr r1, _080F4634 - adds r0, r1 - adds r0, r5, r0 - lsls r1, r2, 3 - adds r1, r2 - ldr r2, _080F4638 - adds r1, r2 - movs r2, 0x40 - movs r3, 0 - bl sub_8072C74 -_080F4624: - ldr r0, _080F463C - ldr r0, [r0] - ldr r2, _080F4640 - adds r0, r2 - adds r0, r6 - movs r1, 0x1 - strb r1, [r0] - b _080F4676 - .align 2, 0 -_080F4634: .4byte 0x000088e9 -_080F4638: .4byte gUnknown_020383E4 -_080F463C: .4byte gUnknown_083DFEC4 -_080F4640: .4byte 0x00008937 -_080F4644: - lsls r0, r6, 6 - ldr r1, _080F467C - adds r0, r1 - adds r0, r5, r0 - ldr r4, _080F4680 - adds r1, r4, 0 - movs r2, 0x68 - movs r3, 0 - bl sub_8072C74 - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 3 - ldr r2, _080F4684 - adds r0, r2 - adds r0, r5, r0 - adds r1, r4, 0 - movs r2, 0x40 - movs r3, 0 - bl sub_8072C74 - ldr r1, _080F4688 - adds r0, r5, r1 - adds r0, r6 - strb r7, [r0] -_080F4676: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F467C: .4byte 0x00008829 -_080F4680: .4byte gEmptyString_81E72B0 -_080F4684: .4byte 0x000088e9 -_080F4688: .4byte 0x00008937 - thumb_func_end sub_80F45A0 - - thumb_func_start sub_80F468C -sub_80F468C: @ 80F468C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - ldr r1, _080F475C - ldr r7, [r1] - lsls r0, 16 - asrs r0, 14 - adds r1, r7, r0 - ldr r2, _080F4760 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 25 - cmp r0, 0 - blt _080F46B2 - b _080F47C4 -_080F46B2: - ldr r3, _080F4764 - adds r0, r1, r3 - ldrb r5, [r0] - subs r2, 0x1 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 27 - lsrs r6, r0, 27 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x16 - movs r3, 0 - bl sub_80F44B0 - mov r3, r9 - lsls r3, 2 - mov r8, r3 - mov r4, r8 - add r4, r9 - ldr r2, _080F4768 - adds r1, r7, r2 - adds r1, r4 - strb r0, [r1] - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x2F - movs r3, 0 - bl sub_80F44B0 - ldr r3, _080F476C - adds r1, r7, r3 - adds r1, r4 - strb r0, [r1] - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x21 - movs r3, 0 - bl sub_80F44B0 - ldr r2, _080F4770 - adds r1, r7, r2 - adds r1, r4 - strb r0, [r1] - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x18 - movs r3, 0 - bl sub_80F44B0 - ldr r3, _080F4774 - adds r1, r7, r3 - adds r1, r4 - strb r0, [r1] - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x17 - movs r3, 0 - bl sub_80F44B0 - ldr r2, _080F4778 - adds r1, r7, r2 - adds r1, r4 - strb r0, [r1] - ldr r3, _080F477C - adds r0, r7, r3 - mov r7, r9 - adds r4, r0, r7 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x30 - movs r3, 0 - bl sub_80F44B0 - cmp r0, 0xFF - beq _080F4780 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x30 - movs r3, 0 - bl sub_80F44B0 - movs r1, 0x1D - bl __udivsi3 - b _080F4782 - .align 2, 0 -_080F475C: .4byte gUnknown_083DFEC4 -_080F4760: .4byte 0x0000893f -_080F4764: .4byte 0x0000893d -_080F4768: .4byte 0x00008ff0 -_080F476C: .4byte 0x00008ff1 -_080F4770: .4byte 0x00008ff2 -_080F4774: .4byte 0x00008ff3 -_080F4778: .4byte 0x00008ff4 -_080F477C: .4byte 0x00008931 -_080F4780: - movs r0, 0x9 -_080F4782: - strb r0, [r4] - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x8 - movs r3, 0 - bl sub_80F44B0 - ldr r1, _080F47B4 - ldr r1, [r1] - ldr r3, _080F47B8 - adds r2, r1, r3 - add r2, r9 - strb r0, [r2] - mov r2, r8 - add r2, r9 - ldr r7, _080F47BC - adds r0, r2, r7 - adds r0, r1, r0 - lsls r2, 2 - ldr r3, _080F47C0 - adds r2, r3 - adds r1, r2 - bl sub_80F55AC - b _080F480A - .align 2, 0 -_080F47B4: .4byte gUnknown_083DFEC4 -_080F47B8: .4byte 0x00008934 -_080F47BC: .4byte 0x00008ff0 -_080F47C0: .4byte 0x00009004 -_080F47C4: - movs r3, 0 - mov r0, r9 - lsls r0, 2 - mov r8, r0 - adds r4, r7, 0 - mov r2, r8 - add r2, r9 - ldr r1, _080F4818 - adds r6, r4, r1 - lsls r5, r2, 2 - mov r9, r3 - ldr r7, _080F481C - mov r8, r7 - movs r0, 0x9B - mov r12, r0 -_080F47E2: - adds r0, r3, r2 - adds r0, r6, r0 - mov r1, r9 - strb r1, [r0] - lsls r0, r3, 2 - adds r0, r5 - adds r0, r4, r0 - mov r7, r8 - adds r1, r0, r7 - mov r7, r12 - strh r7, [r1] - ldr r1, _080F4820 - adds r0, r1 - movs r1, 0x5B - strh r1, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x4 - bls _080F47E2 -_080F480A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F4818: .4byte 0x00008ff0 -_080F481C: .4byte 0x00009004 -_080F4820: .4byte 0x00009006 - thumb_func_end sub_80F468C - - thumb_func_start sub_80F4824 -sub_80F4824: @ 80F4824 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - ldr r1, _080F48E0 - ldr r7, [r1] - lsls r0, 16 - asrs r0, 14 - adds r1, r7, r0 - ldr r2, _080F48E4 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 25 - cmp r0, 0 - bge _080F48D0 - ldr r6, _080F48E8 - adds r0, r1, r6 - ldrb r6, [r0] - subs r2, 0x1 - adds r0, r1, r2 - ldrb r4, [r0] - lsls r4, 27 - lsrs r4, 27 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0x41 - movs r3, 0 - bl sub_80F44B0 - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0 - bl sub_80F44B0 - mov r8, r0 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl sub_80F44B0 - adds r4, r0, 0 - lsls r0, r5, 3 - ldr r1, _080F48EC - adds r0, r1 - ldr r2, _080F48F0 - lsls r1, r5, 2 - adds r1, r2 - ldrb r1, [r1] - ldr r6, _080F48F4 - adds r3, r7, r6 - mov r6, r9 - lsls r2, r6, 13 - ldr r6, _080F48F8 - adds r2, r6 - adds r2, r7, r2 - str r2, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r2, 0x1 - bl sub_800D334 - adds r0, r5, 0 - mov r1, r8 - adds r2, r4, 0 - bl species_and_otid_get_pal - mov r2, r9 - lsls r1, r2, 7 - adds r1, r7, r1 - bl LZ77UnCompWram - mov r6, r9 - lsls r1, r6, 1 - ldr r2, _080F48FC - adds r0, r7, r2 - adds r0, r1 - strh r5, [r0] -_080F48D0: - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F48E0: .4byte gUnknown_083DFEC4 -_080F48E4: .4byte 0x0000893f -_080F48E8: .4byte 0x0000893d -_080F48EC: .4byte gMonFrontPicTable -_080F48F0: .4byte gMonFrontPicCoords -_080F48F4: .4byte 0x000131e4 -_080F48F8: .4byte 0x0000d1e4 -_080F48FC: .4byte 0x0000d1d6 - thumb_func_end sub_80F4824 - - thumb_func_start sub_80F4900 -sub_80F4900: @ 80F4900 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80F45A0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80F468C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80F4824 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80F4900 - - thumb_func_start sub_80F492C -sub_80F492C: @ 80F492C - ldr r0, _080F493C - ldr r0, [r0] - ldr r1, _080F4940 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - bx lr - .align 2, 0 -_080F493C: .4byte gUnknown_083DFEC4 -_080F4940: .4byte 0x00008fe4 - thumb_func_end sub_80F492C - - thumb_func_start sub_80F4944 -sub_80F4944: @ 80F4944 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r12, r0 - movs r2, 0 - ldr r1, _080F4978 - ldr r5, [r1] - ldr r3, _080F497C - adds r0, r5, r3 - ldrh r4, [r0] - lsrs r3, r4, 1 - mov r8, r1 - cmp r4, r3 - beq _080F499C - adds r6, r5, 0 - mov r0, r12 - ldrb r5, [r0] - ldr r7, _080F4980 -_080F4968: - lsls r0, r3, 2 - adds r0, r6, r0 - adds r0, r7 - ldrb r0, [r0] - cmp r5, r0 - bls _080F4984 - adds r4, r3, 0 - b _080F498A - .align 2, 0 -_080F4978: .4byte gUnknown_083DFEC4 -_080F497C: .4byte 0x00008fe4 -_080F4980: .4byte 0x0000893c -_080F4984: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 -_080F498A: - subs r0, r4, r2 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, r2, r0 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r4, r3 - bne _080F4968 -_080F499C: - mov r1, r8 - ldr r2, [r1] - ldr r1, _080F49EC - adds r0, r2, r1 - ldrh r4, [r0] - lsls r6, r3, 2 - cmp r4, r3 - bls _080F49C6 - ldr r0, _080F49F0 - adds r5, r2, r0 -_080F49B0: - lsls r2, r4, 2 - adds r2, r5, r2 - subs r1, r4, 0x1 - lsls r0, r1, 2 - adds r0, r5, r0 - ldr r0, [r0] - str r0, [r2] - lsls r1, 16 - lsrs r4, r1, 16 - cmp r4, r3 - bhi _080F49B0 -_080F49C6: - mov r1, r8 - ldr r2, [r1] - ldr r3, _080F49F0 - adds r0, r2, r3 - adds r0, r6 - mov r3, r12 - ldr r1, [r3] - str r1, [r0] - ldr r0, _080F49EC - adds r2, r0 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F49EC: .4byte 0x00008fe4 -_080F49F0: .4byte 0x0000893c - thumb_func_end sub_80F4944 - - thumb_func_start sub_80F49F4 -sub_80F49F4: @ 80F49F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r3, _080F4A64 - ldr r4, [r3] - ldr r7, _080F4A68 - adds r2, r4, r7 - ldrh r1, [r2] - ldr r0, _080F4A6C - mov r12, r0 - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strh r0, [r2] - movs r5, 0x1 - ldr r1, _080F4A70 - adds r0, r4, r1 - ldrh r3, [r0] - cmp r5, r3 - bcs _080F4A9E - adds r6, r4, 0 - ldr r1, _080F4A74 - mov r8, r1 - ldr r3, _080F4A78 - mov r10, r3 - mov r9, r0 -_080F4A2C: - lsls r0, r5, 2 - adds r3, r6, r0 - mov r0, r8 - adds r2, r3, r0 - subs r0, r5, 0x1 - lsls r0, 2 - adds r4, r6, r0 - mov r0, r8 - adds r1, r4, r0 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bne _080F4A7C - adds r0, r4, r7 - ldrh r0, [r0] - lsls r0, 18 - lsrs r0, 23 - adds r3, r7 - ldr r1, _080F4A78 - ands r1, r0 - lsls r1, 5 - ldrh r2, [r3] - mov r0, r12 - ands r0, r2 - orrs r0, r1 - strh r0, [r3] - adds r4, r5, 0x1 - b _080F4A92 - .align 2, 0 -_080F4A64: .4byte gUnknown_083DFEC4 -_080F4A68: .4byte 0x0000893e -_080F4A6C: .4byte 0xffffc01f -_080F4A70: .4byte 0x00008fe4 -_080F4A74: .4byte 0x0000893c -_080F4A78: .4byte 0x000001ff -_080F4A7C: - adds r4, r5, 0x1 - adds r3, r7 - adds r1, r4, 0 - mov r0, r10 - ands r1, r0 - lsls r1, 5 - ldrh r2, [r3] - mov r0, r12 - ands r0, r2 - orrs r0, r1 - strh r0, [r3] -_080F4A92: - lsls r0, r4, 16 - lsrs r5, r0, 16 - mov r1, r9 - ldrh r1, [r1] - cmp r5, r1 - bcc _080F4A2C -_080F4A9E: - ldr r3, _080F4AC4 - ldr r2, [r3] - ldr r1, _080F4AC8 - adds r0, r2, r1 - movs r1, 0 - strh r1, [r0] - ldr r3, _080F4ACC - adds r0, r2, r3 - strh r1, [r0] - subs r3, 0x2 - adds r0, r2, r3 - strh r1, [r0] - ldr r1, _080F4AD0 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, 0x8 - bhi _080F4AD4 - subs r1, r0, 0x1 - b _080F4AD6 - .align 2, 0 -_080F4AC4: .4byte gUnknown_083DFEC4 -_080F4AC8: .4byte 0x0000876c -_080F4ACC: .4byte 0x00008770 -_080F4AD0: .4byte 0x00008fe4 -_080F4AD4: - movs r1, 0x7 -_080F4AD6: - ldr r3, _080F4B10 - adds r0, r2, r3 - strh r1, [r0] - ldr r0, _080F4B14 - ldr r2, [r0] - ldr r1, _080F4B18 - adds r0, r2, r1 - ldrh r0, [r0] - subs r0, 0x1 - adds r3, 0x2 - adds r1, r2, r3 - strh r0, [r1] - movs r1, 0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080F4AFA - movs r1, 0x1 -_080F4AFA: - ldr r3, _080F4B1C - adds r0, r2, r3 - strb r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F4B10: .4byte 0x00008772 -_080F4B14: .4byte gUnknown_083DFEC4 -_080F4B18: .4byte 0x00008fe4 -_080F4B1C: .4byte 0x000087c9 - thumb_func_end sub_80F49F4 - - thumb_func_start sub_80F4B20 -sub_80F4B20: @ 80F4B20 - push {r4-r6,lr} - ldr r0, _080F4B5C - ldr r4, [r0] - ldr r0, _080F4B60 - adds r5, r4, r0 - movs r1, 0 - ldrsh r0, [r5, r1] - movs r1, 0 - bl sub_80F4900 - movs r0, 0 - bl sub_80F2E18 - ldr r0, _080F4B64 - adds r2, r4, r0 - movs r1, 0 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _080F4B6C - ldr r2, _080F4B68 - adds r0, r4, r2 - movs r1, 0 - strb r1, [r0] - adds r2, 0x1 - adds r0, r4, r2 - strb r1, [r0] - adds r2, 0x1 - adds r0, r4, r2 - strb r1, [r0] - b _080F4BBE - .align 2, 0 -_080F4B5C: .4byte gUnknown_083DFEC4 -_080F4B60: .4byte 0x000087dc -_080F4B64: .4byte 0x000087da -_080F4B68: .4byte 0x00008fe9 -_080F4B6C: - ldr r0, _080F4BC4 - adds r1, r4, r0 - movs r0, 0 - strb r0, [r1] - ldr r0, _080F4BC8 - adds r1, r4, r0 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080F4BCC - adds r1, r4, r0 - movs r0, 0x2 - strb r0, [r1] - ldrh r3, [r5] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - ldrh r6, [r2] - movs r4, 0 - ldrsh r1, [r2, r4] - cmp r0, r1 - blt _080F4B9A - movs r5, 0 -_080F4B9A: - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r0, 0 - bge _080F4BAA - subs r0, r6, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080F4BAA: - lsls r0, r5, 16 - asrs r0, 16 - movs r1, 0x1 - bl sub_80F4900 - lsls r0, r4, 16 - asrs r0, 16 - movs r1, 0x2 - bl sub_80F4900 -_080F4BBE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F4BC4: .4byte 0x00008fe9 -_080F4BC8: .4byte 0x00008fea -_080F4BCC: .4byte 0x00008feb - thumb_func_end sub_80F4B20 - - thumb_func_start sub_80F4BD0 -sub_80F4BD0: @ 80F4BD0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r6, 0 - movs r7, 0 - ldr r0, _080F4CC4 - ldr r2, [r0] - ldr r3, _080F4CC8 - adds r1, r2, r3 - mov r9, r0 - ldrb r1, [r1] - cmp r7, r1 - bcs _080F4C66 - mov r10, r9 - adds r4, r3, 0 - adds r4, r2 - mov r8, r4 -_080F4BF6: - movs r0, 0x64 - muls r0, r6 - ldr r1, _080F4CCC - adds r0, r1 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _080F4C58 - mov r0, r10 - ldr r3, [r0] - lsls r0, r7, 2 - adds r3, r0 - ldr r2, _080F4CD0 - adds r1, r3, r2 - movs r0, 0xE - strb r0, [r1] - ldr r4, _080F4CD4 - adds r5, r3, r4 - movs r0, 0x1F - adds r2, r6, 0 - ands r2, r0 - ldrb r0, [r5] - movs r4, 0x20 - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5] - adds r4, r7, 0x1 - ldr r7, _080F4CD8 - adds r0, r7, 0 - adds r2, r4, 0 - ands r2, r0 - lsls r2, 5 - ldrh r0, [r5] - ldr r7, _080F4CDC - adds r1, r7, 0 - ands r0, r1 - orrs r0, r2 - strh r0, [r5] - ldr r0, _080F4CE0 - adds r3, r0 - ldrb r0, [r3] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r3] - lsls r4, 16 - lsrs r7, r4, 16 -_080F4C58: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - mov r1, r8 - ldrb r1, [r1] - cmp r6, r1 - bcc _080F4BF6 -_080F4C66: - mov r2, r9 - ldr r4, [r2] - lsls r1, r7, 2 - adds r1, r4, r1 - ldr r3, _080F4CD0 - adds r0, r1, r3 - movs r5, 0 - strb r5, [r0] - ldr r0, _080F4CD4 - adds r2, r1, r0 - ldrb r3, [r2] - movs r0, 0x20 - negs r0, r0 - ands r0, r3 - strb r0, [r2] - ldrh r3, [r2] - ldr r0, _080F4CDC - ands r0, r3 - strh r0, [r2] - ldr r2, _080F4CE0 - adds r1, r2 - ldrb r2, [r1] - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r3, _080F4CE4 - adds r0, r4, r3 - strh r5, [r0] - adds r1, r7, 0x1 - ldr r7, _080F4CE8 - adds r0, r4, r7 - strh r1, [r0] - bl sub_80F4B20 - ldr r0, _080F4CEC - adds r4, r0 - movs r0, 0x1 - strb r0, [r4] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F4CC4: .4byte gUnknown_083DFEC4 -_080F4CC8: .4byte 0x00008828 -_080F4CCC: .4byte gPlayerParty -_080F4CD0: .4byte 0x0000893d -_080F4CD4: .4byte 0x0000893e -_080F4CD8: .4byte 0x000001ff -_080F4CDC: .4byte 0xffffc01f -_080F4CE0: .4byte 0x0000893f -_080F4CE4: .4byte 0x000087dc -_080F4CE8: .4byte 0x000087da -_080F4CEC: .4byte 0x000087cb - thumb_func_end sub_80F4BD0 - - thumb_func_start sub_80F4CF0 -sub_80F4CF0: @ 80F4CF0 - push {r4,lr} - ldr r0, _080F4D1C - ldr r4, [r0] - ldr r1, _080F4D20 - adds r0, r4, r1 - ldrh r1, [r0] - ldr r2, _080F4D24 - adds r0, r4, r2 - strh r1, [r0] - bl sub_80F4B20 - ldr r1, _080F4D28 - adds r0, r4, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _080F4D30 - ldr r0, _080F4D2C - adds r1, r4, r0 - movs r0, 0 - b _080F4D36 - .align 2, 0 -_080F4D1C: .4byte gUnknown_083DFEC4 -_080F4D20: .4byte 0x0000876e -_080F4D24: .4byte 0x000087dc -_080F4D28: .4byte 0x00008774 -_080F4D2C: .4byte 0x000087cb -_080F4D30: - ldr r2, _080F4D40 - adds r1, r4, r2 - movs r0, 0x1 -_080F4D36: - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F4D40: .4byte 0x000087cb - thumb_func_end sub_80F4CF0 - - thumb_func_start sub_80F4D44 -sub_80F4D44: @ 80F4D44 - push {r4,lr} - ldr r0, _080F4D78 - ldr r4, [r0] - ldr r1, _080F4D7C - adds r0, r4, r1 - movs r1, 0 - strb r1, [r0] - ldr r2, _080F4D80 - adds r0, r4, r2 - strb r1, [r0] - bl sub_80F492C - ldr r0, _080F4D84 - adds r4, r0 - ldrb r0, [r4] - cmp r0, 0 - bne _080F4D70 -_080F4D66: - bl sub_80F4D88 - lsls r0, 24 - cmp r0, 0 - bne _080F4D66 -_080F4D70: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F4D78: .4byte gUnknown_083DFEC4 -_080F4D7C: .4byte 0x00008fe6 -_080F4D80: .4byte 0x00008fe7 -_080F4D84: .4byte 0x00006dac - thumb_func_end sub_80F4D44 - - thumb_func_start sub_80F4D88 -sub_80F4D88: @ 80F4D88 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r6, _080F4E98 - ldr r4, [r6] - ldr r1, _080F4E9C - adds r0, r4, r1 - ldrb r3, [r0] - cmp r3, 0xE - bne _080F4DA4 - b _080F4EB8 -_080F4DA4: - cmp r3, 0xF - bne _080F4DAA - b _080F4F60 -_080F4DAA: - movs r1, 0x80 - lsls r1, 23 - ldr r0, [sp] - orrs r0, r1 - str r0, [sp] - movs r7, 0 - mov r10, r6 - ldr r2, _080F4E9C - adds r6, r4, r2 - ldr r3, _080F4EA0 - adds r5, r4, r3 - ldr r0, _080F4EA4 - adds r0, r4 - mov r9, r0 - ldr r1, _080F4EA8 - mov r8, r1 -_080F4DCA: - ldrb r0, [r6] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldrb r2, [r5] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - add r1, r8 - adds r0, r1 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _080F4E60 - ldrb r0, [r6] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldrb r2, [r5] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - add r1, r8 - adds r0, r1 - movs r1, 0x2D - bl GetBoxMonData - cmp r0, 0 - bne _080F4E60 - ldrb r1, [r6] - lsls r1, 8 - ldr r2, _080F4EAC - ldr r0, [sp] - ands r0, r2 - orrs r0, r1 - str r0, [sp] - ldrb r2, [r5] - movs r1, 0x1F - ands r2, r1 - lsls r2, 16 - ldr r1, _080F4EB0 - ands r0, r1 - orrs r0, r2 - str r0, [sp] - ldrb r0, [r6] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldrb r2, [r5] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - add r1, r8 - adds r0, r1 - mov r2, r9 - ldrb r1, [r2] - bl GetBoxMonData - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F4EB4 - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - bl sub_80F4944 -_080F4E60: - mov r3, r10 - ldr r1, [r3] - ldr r0, _080F4EA0 - adds r2, r1, r0 - ldrb r0, [r2] - adds r0, 0x1 - movs r4, 0 - strb r0, [r2] - movs r3, 0xFF - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1E - bne _080F4E8C - strb r4, [r2] - ldr r2, _080F4E9C - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ands r0, r3 - cmp r0, 0xE - beq _080F4F64 -_080F4E8C: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0xE - bls _080F4DCA - b _080F4F64 - .align 2, 0 -_080F4E98: .4byte gUnknown_083DFEC4 -_080F4E9C: .4byte 0x00008fe6 -_080F4EA0: .4byte 0x00008fe7 -_080F4EA4: .4byte 0x000087d8 -_080F4EA8: .4byte gUnknown_020300A4 -_080F4EAC: .4byte 0xffff00ff -_080F4EB0: .4byte 0xffe0ffff -_080F4EB4: .4byte 0xffffff00 -_080F4EB8: - mov r2, sp - ldrb r0, [r2, 0x3] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2, 0x3] - strb r3, [r2, 0x1] - movs r7, 0 - ldr r3, _080F4F44 - adds r0, r4, r3 - ldrb r0, [r0] - cmp r7, r0 - bcs _080F4F24 - mov r5, sp - mov r8, r6 - adds r6, r4, r3 -_080F4ED6: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _080F4F48 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _080F4F18 - movs r0, 0x1F - adds r2, r7, 0 - ands r2, r0 - ldrb r0, [r5, 0x2] - movs r3, 0x20 - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, 0x2] - mov r1, r8 - ldr r0, [r1] - ldr r2, _080F4F4C - adds r0, r2 - ldrb r1, [r0] - adds r0, r4, 0 - bl GetMonData - strb r0, [r5] - mov r0, sp - bl sub_80F4944 -_080F4F18: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - ldrb r3, [r6] - cmp r7, r3 - bcc _080F4ED6 -_080F4F24: - bl sub_80F49F4 - ldr r0, _080F4F50 - ldr r1, [r0] - ldr r2, _080F4F54 - adds r0, r1, r2 - ldrh r2, [r0] - ldr r3, _080F4F58 - adds r0, r1, r3 - strh r2, [r0] - ldr r0, _080F4F5C - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080F4F64 - .align 2, 0 -_080F4F44: .4byte 0x00008828 -_080F4F48: .4byte gPlayerParty -_080F4F4C: .4byte 0x000087d8 -_080F4F50: .4byte gUnknown_083DFEC4 -_080F4F54: .4byte 0x00008fe4 -_080F4F58: .4byte 0x000087da -_080F4F5C: .4byte 0x00008fe6 -_080F4F60: - movs r0, 0 - b _080F4F66 -_080F4F64: - movs r0, 0x1 -_080F4F66: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F4D88 - - thumb_func_start sub_80F4F78 -sub_80F4F78: @ 80F4F78 - push {lr} - ldr r0, _080F4FA4 - ldr r1, [r0] - ldr r2, _080F4FA8 - adds r0, r1, r2 - ldr r3, _080F4FAC - adds r2, r1, r3 - movs r3, 0 - ldrsb r3, [r2, r3] - lsls r2, r3, 2 - adds r2, r3 - lsls r2, 2 - ldr r3, _080F4FB0 - adds r2, r3 - adds r1, r2 - bl sub_80F53EC - bl sub_80F5504 - pop {r0} - bx r0 - .align 2, 0 -_080F4FA4: .4byte gUnknown_083DFEC4 -_080F4FA8: .4byte 0x00009040 -_080F4FAC: .4byte 0x00008fe9 -_080F4FB0: .4byte 0x00009004 - thumb_func_end sub_80F4F78 - - thumb_func_start sub_80F4FB4 -sub_80F4FB4: @ 80F4FB4 - push {r4,lr} - bl sub_80F5504 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80F170C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - cmp r4, 0 - bne _080F4FD2 - cmp r0, 0 - beq _080F4FD4 -_080F4FD2: - movs r1, 0x1 -_080F4FD4: - adds r0, r1, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F4FB4 - - thumb_func_start sub_80F4FDC -sub_80F4FDC: @ 80F4FDC - push {lr} - ldr r0, _080F5020 - ldr r2, [r0] - ldr r1, _080F5024 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F4FFE - ldr r3, _080F5028 - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - ldr r3, _080F502C - adds r0, r2, r3 - ldrb r0, [r0] - cmp r1, r0 - beq _080F501A -_080F4FFE: - ldr r1, _080F5030 - adds r0, r2, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - ldr r3, _080F5034 - adds r0, r3 - adds r0, r2, r0 - adds r3, 0x3C - adds r1, r2, r3 - bl sub_80F53EC -_080F501A: - pop {r0} - bx r0 - .align 2, 0 -_080F5020: .4byte gUnknown_083DFEC4 -_080F5024: .4byte 0x000076aa -_080F5028: .4byte 0x000087dc -_080F502C: .4byte 0x00008828 -_080F5030: .4byte 0x00008fe9 -_080F5034: .4byte 0x00009004 - thumb_func_end sub_80F4FDC - - thumb_func_start sub_80F5038 -sub_80F5038: @ 80F5038 - push {r4,lr} - bl sub_80F5504 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80F173C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - cmp r4, 0 - bne _080F5056 - cmp r0, 0 - beq _080F5058 -_080F5056: - movs r1, 0x1 -_080F5058: - adds r0, r1, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F5038 - - thumb_func_start sub_80F5060 -sub_80F5060: @ 80F5060 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0 - beq _080F507C - ldr r0, _080F5074 - ldr r0, [r0] - ldr r1, _080F5078 - adds r0, r1 - b _080F5084 - .align 2, 0 -_080F5074: .4byte gUnknown_083DFEC4 -_080F5078: .4byte 0x00008feb -_080F507C: - ldr r0, _080F50FC - ldr r0, [r0] - ldr r2, _080F5100 - adds r0, r2 -_080F5084: - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _080F50FC - ldr r4, [r0] - ldr r3, _080F5104 - adds r5, r4, r3 - movs r1, 0 - ldrsb r1, [r5, r1] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - ldr r2, _080F5108 - adds r0, r2 - adds r0, r4, r0 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 2 - adds r1, r2 - adds r1, r4, r1 - bl sub_80F53EC - ldr r0, _080F510C - adds r3, r4, r0 - movs r1, 0 - ldrsh r0, [r3, r1] - lsls r0, 2 - adds r0, r4, r0 - ldr r2, _080F5110 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 25 - lsrs r0, 31 - mov r12, r0 - cmp r7, 0 - beq _080F5158 - ldr r7, _080F5100 - adds r1, r4, r7 - ldrb r0, [r1] - adds r7, 0x1 - adds r2, r4, r7 - strb r0, [r2] - ldrb r0, [r5] - strb r0, [r1] - strb r6, [r5] - ldrb r1, [r2] - ldr r2, _080F5114 - adds r0, r4, r2 - strb r1, [r0] - adds r5, r4, 0 - ldrh r1, [r3] - movs r7, 0 - ldrsh r0, [r3, r7] - cmp r0, 0 - beq _080F5118 - subs r2, r1, 0x1 - b _080F5120 - .align 2, 0 -_080F50FC: .4byte gUnknown_083DFEC4 -_080F5100: .4byte 0x00008fea -_080F5104: .4byte 0x00008fe9 -_080F5108: .4byte 0x00009004 -_080F510C: .4byte 0x000087dc -_080F5110: .4byte 0x0000893f -_080F5114: .4byte 0x00008fec -_080F5118: - ldr r1, _080F513C - adds r0, r4, r1 - ldrh r0, [r0] - subs r2, r0, 0x1 -_080F5120: - ldr r1, _080F5140 - adds r0, r5, r1 - strh r2, [r0] - ldr r2, _080F5144 - ldr r3, [r2] - adds r1, r3, r1 - ldrh r4, [r1] - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r0, 0 - beq _080F5148 - subs r1, r4, 0x1 - b _080F51CE - .align 2, 0 -_080F513C: .4byte 0x000087da -_080F5140: .4byte 0x000087dc -_080F5144: .4byte gUnknown_083DFEC4 -_080F5148: - ldr r7, _080F5154 - adds r0, r3, r7 - ldrh r0, [r0] - subs r1, r0, 0x1 - b _080F51CE - .align 2, 0 -_080F5154: .4byte 0x000087da -_080F5158: - ldr r7, _080F518C - adds r1, r4, r7 - ldrb r0, [r1] - subs r7, 0x1 - adds r2, r4, r7 - strb r0, [r2] - ldrb r0, [r5] - strb r0, [r1] - strb r6, [r5] - ldrb r1, [r2] - ldr r2, _080F5190 - adds r0, r4, r2 - strb r1, [r0] - adds r2, r4, 0 - movs r4, 0 - ldrsh r1, [r3, r4] - ldr r5, _080F5194 - adds r0, r2, r5 - movs r7, 0 - ldrsh r0, [r0, r7] - subs r0, 0x1 - cmp r1, r0 - bge _080F5198 - ldrh r0, [r3] - adds r3, r0, 0x1 - b _080F519A - .align 2, 0 -_080F518C: .4byte 0x00008feb -_080F5190: .4byte 0x00008fec -_080F5194: .4byte 0x000087da -_080F5198: - movs r3, 0 -_080F519A: - ldr r1, _080F51C0 - adds r0, r2, r1 - strh r3, [r0] - ldr r2, _080F51C4 - ldr r3, [r2] - adds r4, r3, r1 - movs r0, 0 - ldrsh r1, [r4, r0] - ldr r5, _080F51C8 - adds r0, r3, r5 - movs r7, 0 - ldrsh r0, [r0, r7] - subs r0, 0x1 - cmp r1, r0 - bge _080F51CC - ldrh r0, [r4] - adds r1, r0, 0x1 - b _080F51CE - .align 2, 0 -_080F51C0: .4byte 0x000087dc -_080F51C4: .4byte gUnknown_083DFEC4 -_080F51C8: .4byte 0x000087da -_080F51CC: - movs r1, 0 -_080F51CE: - ldr r4, _080F51FC - adds r0, r3, r4 - strh r1, [r0] - ldr r1, [r2] - ldr r5, _080F5200 - adds r0, r1, r5 - movs r7, 0 - ldrsh r0, [r0, r7] - lsls r0, 2 - adds r0, r1, r0 - ldr r3, _080F5204 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 25 - lsrs r0, 31 - mov r4, r12 - cmp r4, 0 - bne _080F520C - adds r5, 0x4 - adds r1, r5 - ldr r0, _080F5208 - b _080F5226 - .align 2, 0 -_080F51FC: .4byte 0x00008fee -_080F5200: .4byte 0x000087dc -_080F5204: .4byte 0x0000893f -_080F5208: .4byte sub_80F5264 -_080F520C: - cmp r0, 0 - bne _080F5220 - ldr r7, _080F5218 - adds r1, r7 - ldr r0, _080F521C - b _080F5226 - .align 2, 0 -_080F5218: .4byte 0x000087e0 -_080F521C: .4byte sub_80F52F8 -_080F5220: - ldr r0, _080F5238 - adds r1, r0 - ldr r0, _080F523C -_080F5226: - str r0, [r1] - ldr r0, [r2] - ldr r1, _080F5240 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F5238: .4byte 0x000087e0 -_080F523C: .4byte sub_80F5364 -_080F5240: .4byte 0x000087de - thumb_func_end sub_80F5060 - - thumb_func_start gpu_sync_bg_show -gpu_sync_bg_show: @ 80F5244 - push {lr} - ldr r0, _080F525C - ldr r0, [r0] - ldr r1, _080F5260 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080F525C: .4byte gUnknown_083DFEC4 -_080F5260: .4byte 0x000087e0 - thumb_func_end gpu_sync_bg_show - - thumb_func_start sub_80F5264 -sub_80F5264: @ 80F5264 - push {r4,r5,lr} - ldr r0, _080F5280 - ldr r0, [r0] - ldr r1, _080F5284 - adds r5, r0, r1 - ldrb r1, [r5] - cmp r1, 0x1 - beq _080F52AA - cmp r1, 0x1 - bgt _080F5288 - cmp r1, 0 - beq _080F528E - b _080F52F0 - .align 2, 0 -_080F5280: .4byte gUnknown_083DFEC4 -_080F5284: .4byte 0x000087de -_080F5288: - cmp r1, 0x2 - beq _080F52EC - b _080F52F0 -_080F528E: - ldr r2, _080F52D8 - adds r4, r0, r2 - ldrb r0, [r4] - bl sub_80F2E18 - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r0, 16 - lsrs r0, 16 - bl sub_80F01E0 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] -_080F52AA: - bl sub_80F4FB4 - lsls r0, 24 - cmp r0, 0 - bne _080F52F0 - ldr r0, _080F52DC - ldr r4, [r0] - ldr r1, _080F52E0 - adds r0, r4, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - ldr r2, _080F52E4 - adds r1, r4, r2 - ldrb r1, [r1] - bl sub_80F4900 - ldr r0, _080F52E8 - adds r4, r0 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _080F52F0 - .align 2, 0 -_080F52D8: .4byte 0x00008fe9 -_080F52DC: .4byte gUnknown_083DFEC4 -_080F52E0: .4byte 0x00008fee -_080F52E4: .4byte 0x00008fec -_080F52E8: .4byte 0x000087de -_080F52EC: - movs r0, 0 - b _080F52F2 -_080F52F0: - movs r0, 0x1 -_080F52F2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F5264 - - thumb_func_start sub_80F52F8 -sub_80F52F8: @ 80F52F8 - push {r4,r5,lr} - ldr r0, _080F5310 - ldr r4, [r0] - ldr r0, _080F5314 - adds r5, r4, r0 - ldrb r0, [r5] - cmp r0, 0 - beq _080F5318 - cmp r0, 0x1 - beq _080F5358 - b _080F535C - .align 2, 0 -_080F5310: .4byte gUnknown_083DFEC4 -_080F5314: .4byte 0x000087de -_080F5318: - bl sub_80F5038 - lsls r0, 24 - cmp r0, 0 - bne _080F535C - ldr r1, _080F5350 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - bl sub_80F01E0 - ldr r2, _080F5354 - adds r0, r4, r2 - movs r1, 0 - ldrsh r0, [r0, r1] - subs r2, 0x2 - adds r1, r4, r2 - ldrb r1, [r1] - bl sub_80F4900 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _080F535C - .align 2, 0 -_080F5350: .4byte 0x00008fe9 -_080F5354: .4byte 0x00008fee -_080F5358: - movs r0, 0 - b _080F535E -_080F535C: - movs r0, 0x1 -_080F535E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F52F8 - - thumb_func_start sub_80F5364 -sub_80F5364: @ 80F5364 - push {r4,r5,lr} - ldr r0, _080F5380 - ldr r4, [r0] - ldr r0, _080F5384 - adds r5, r4, r0 - ldrb r0, [r5] - cmp r0, 0x1 - beq _080F53B8 - cmp r0, 0x1 - bgt _080F5388 - cmp r0, 0 - beq _080F538E - b _080F53E4 - .align 2, 0 -_080F5380: .4byte gUnknown_083DFEC4 -_080F5384: .4byte 0x000087de -_080F5388: - cmp r0, 0x2 - beq _080F53CA - b _080F53E4 -_080F538E: - bl sub_80F5504 - bl sub_80F173C - lsls r0, 24 - cmp r0, 0 - bne _080F53E4 - ldr r1, _080F53B4 - adds r4, r1 - ldrb r0, [r4] - bl sub_80F2E18 - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r0, 16 - lsrs r0, 16 - bl sub_80F01E0 - b _080F53C2 - .align 2, 0 -_080F53B4: .4byte 0x00008fe9 -_080F53B8: - bl sub_80F4FB4 - lsls r0, 24 - cmp r0, 0 - bne _080F53E4 -_080F53C2: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _080F53E4 -_080F53CA: - ldr r2, _080F53E0 - adds r0, r4, r2 - movs r1, 0 - ldrsh r0, [r0, r1] - subs r2, 0x2 - adds r1, r4, r2 - ldrb r1, [r1] - bl sub_80F4900 - movs r0, 0 - b _080F53E6 - .align 2, 0 -_080F53E0: .4byte 0x00008fee -_080F53E4: - movs r0, 0x1 -_080F53E6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F5364 - - thumb_func_start sub_80F53EC -sub_80F53EC: @ 80F53EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - str r0, [sp] - mov r9, r1 - movs r7, 0 - ldr r0, _080F54F4 - ldr r0, [r0] - str r0, [sp, 0x4] -_080F5404: - lsls r4, r7, 2 - ldr r1, [sp] - adds r0, r4, r1 - ldrh r1, [r0] - lsls r5, r1, 8 - mov r2, r9 - adds r0, r4, r2 - ldrh r0, [r0] - subs r0, r1 - lsls r0, 8 - movs r1, 0xA - bl __divsi3 - adds r6, r0, 0 - movs r3, 0 - adds r7, 0x1 - mov r10, r7 - mov r8, r4 -_080F5428: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - add r0, r8 - ldr r7, [sp, 0x4] - adds r0, r7, r0 - asrs r2, r5, 8 - asrs r1, r5, 7 - movs r7, 0x1 - ands r1, r7 - adds r2, r1 - ldr r1, _080F54F8 - adds r0, r1 - strh r2, [r0] - adds r5, r6 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x8 - bls _080F5428 - ldr r2, _080F54F4 - ldr r1, [r2] - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - adds r0, r4, r0 - adds r1, r0 - mov r3, r9 - adds r2, r4, r3 - ldrh r0, [r2] - ldr r7, _080F54F8 - adds r1, r7 - strh r0, [r1] - ldr r1, [sp] - adds r0, r4, r1 - ldrh r1, [r0, 0x2] - lsls r5, r1, 8 - ldrh r0, [r2, 0x2] - subs r0, r1 - lsls r0, 8 - movs r1, 0xA - bl __divsi3 - adds r6, r0, 0 - movs r3, 0 - ldr r0, _080F54F4 - ldr r0, [r0] - mov r12, r0 - str r4, [sp, 0x8] - movs r2, 0x1 - mov r8, r2 -_080F548E: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - ldr r7, [sp, 0x8] - adds r0, r7, r0 - add r0, r12 - asrs r2, r5, 8 - asrs r1, r5, 7 - mov r7, r8 - ands r1, r7 - adds r2, r1 - ldr r1, _080F54FC - adds r0, r1 - strh r2, [r0] - adds r5, r6 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x8 - bls _080F548E - ldr r7, _080F54F4 - ldr r2, [r7] - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - adds r0, r4, r0 - adds r0, r2, r0 - mov r3, r9 - adds r1, r4, r3 - ldrh r1, [r1, 0x2] - ldr r7, _080F54FC - adds r0, r7 - strh r1, [r0] - mov r1, r10 - lsls r0, r1, 16 - lsrs r7, r0, 16 - cmp r7, 0x4 - bls _080F5404 - ldr r3, _080F5500 - adds r1, r2, r3 - movs r0, 0 - strh r0, [r1] - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F54F4: .4byte gUnknown_083DFEC4 -_080F54F8: .4byte 0x00009054 -_080F54FC: .4byte 0x00009056 -_080F5500: .4byte 0x00009342 - thumb_func_end sub_80F53EC - - thumb_func_start sub_80F5504 -sub_80F5504: @ 80F5504 - push {r4,lr} - ldr r0, _080F551C - ldr r2, [r0] - ldr r0, _080F5520 - adds r4, r2, r0 - ldrh r0, [r4] - adds r1, r0, 0 - cmp r1, 0x9 - bls _080F5524 - movs r0, 0 - b _080F5544 - .align 2, 0 -_080F551C: .4byte gUnknown_083DFEC4 -_080F5520: .4byte 0x00009342 -_080F5524: - adds r0, 0x1 - strh r0, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F554C - adds r0, r1 - adds r0, r2, r0 - bl sub_80F556C - ldrh r1, [r4] - movs r0, 0xA - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 -_080F5544: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F554C: .4byte 0x00009054 - thumb_func_end sub_80F5504 - - thumb_func_start sub_80F5550 -sub_80F5550: @ 80F5550 - push {lr} - bl sub_80F53EC - pop {r0} - bx r0 - thumb_func_end sub_80F5550 - - thumb_func_start sub_80F555C -sub_80F555C: @ 80F555C - push {lr} - bl sub_80F5504 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80F555C - - thumb_func_start sub_80F556C -sub_80F556C: @ 80F556C - push {r4,r5,lr} - adds r4, r0, 0 - movs r2, 0 - ldr r5, _080F55A0 - ldr r0, [r5] - ldr r1, _080F55A4 - adds r3, r0, r1 -_080F557A: - lsls r0, r2, 2 - adds r1, r3, r0 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x4 - bls _080F557A - ldr r0, [r5] - ldr r1, _080F55A8 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F55A0: .4byte gUnknown_083DFEC4 -_080F55A4: .4byte 0x0000911c -_080F55A8: .4byte 0x00009344 - thumb_func_end sub_80F556C - - thumb_func_start sub_80F55AC -sub_80F55AC: @ 80F55AC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r6, r0, 0 - mov r8, r1 - ldr r1, _080F5674 - ldrb r0, [r6] - adds r0, r1 - ldrb r2, [r0] - adds r6, 0x1 - movs r0, 0x9B - mov r3, r8 - strh r0, [r3] - movs r0, 0x5B - subs r0, r2 - strh r0, [r3, 0x2] - movs r7, 0x40 - movs r0, 0 - mov r12, r0 - movs r2, 0x1 - mov r9, r2 - ldr r3, _080F5678 - mov r10, r3 -_080F55DE: - adds r0, r7, 0 - adds r0, 0x33 - lsls r0, 24 - lsrs r7, r0, 24 - mov r1, r12 - lsls r0, r1, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r3, r0, 24 - mov r12, r3 - cmp r0, 0 - bge _080F55FC - movs r0, 0x4 - mov r12, r0 -_080F55FC: - mov r1, r12 - lsls r0, r1, 24 - asrs r4, r0, 24 - cmp r4, 0x2 - bne _080F560C - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_080F560C: - ldrb r0, [r6] - ldr r2, _080F5674 - adds r0, r2 - ldrb r2, [r0] - adds r6, 0x1 - lsls r0, r4, 2 - mov r1, r8 - adds r3, r0, r1 - adds r0, r7, 0 - adds r0, 0x40 - lsls r0, 1 - add r0, r10 - movs r1, 0 - ldrsh r0, [r0, r1] - muls r0, r2 - asrs r5, r0, 8 - adds r0, r5, 0 - adds r0, 0x9B - strh r0, [r3] - lsls r0, r7, 1 - add r0, r10 - movs r1, 0 - ldrsh r0, [r0, r1] - adds r1, r2, 0 - muls r1, r0 - asrs r1, 8 - movs r0, 0x5B - subs r0, r1 - strh r0, [r3, 0x2] - cmp r4, 0x2 - bgt _080F5658 - cmp r2, 0x20 - bne _080F5652 - cmp r4, 0x2 - beq _080F5658 -_080F5652: - adds r0, r5, 0 - adds r0, 0x9C - strh r0, [r3] -_080F5658: - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - cmp r0, 0x4 - bls _080F55DE - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F5674: .4byte gUnknown_083E4890 -_080F5678: .4byte gSineTable - thumb_func_end sub_80F55AC - - thumb_func_start sub_80F567C -sub_80F567C: @ 80F567C - push {lr} - bl sub_80F55AC - pop {r0} - bx r0 - thumb_func_end sub_80F567C - - thumb_func_start sub_80F5688 -sub_80F5688: @ 80F5688 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r6, r0, 0 - adds r5, r1, 0 - str r2, [sp] - ldr r7, [sp, 0x34] - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - movs r0, 0 - str r0, [sp, 0x8] - ldrh r0, [r5, 0x2] - ldrh r1, [r2, 0x2] - cmp r0, r1 - bcs _080F56D0 - adds r2, r0, 0 - str r2, [sp, 0x4] - ldr r3, [sp] - ldrh r0, [r3, 0x2] - ldrh r1, [r5] - lsls r4, r1, 10 - ldrh r2, [r3] - mov r10, r2 - ldr r3, [sp, 0x4] - subs r0, r3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0 - beq _080F56FC - subs r0, r2, r1 - b _080F56F2 -_080F56D0: - ldrh r0, [r5, 0x2] - ldr r1, [sp] - ldrh r1, [r1, 0x2] - str r1, [sp, 0x4] - ldr r2, [sp] - ldrh r1, [r2] - lsls r4, r1, 10 - ldrh r3, [r5] - mov r10, r3 - ldr r2, [sp, 0x4] - subs r0, r2 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0 - beq _080F56FC - subs r0, r3, r1 -_080F56F2: - lsls r0, 10 - mov r1, r8 - bl __divsi3 - str r0, [sp, 0x8] -_080F56FC: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r7, 0 - bne _080F5746 - ldr r0, [sp, 0x4] - subs r0, 0x38 - lsls r0, 2 - adds r6, r0 - movs r5, 0 - mov r3, r9 - lsls r3, 1 - mov r12, r3 - mov r0, r10 - add r0, r9 - str r0, [sp, 0xC] - cmp r7, r8 - bcs _080F57D4 - movs r7, 0x1 -_080F5726: - adds r2, r3, r6 - asrs r1, r4, 10 - asrs r0, r4, 9 - ands r0, r7 - adds r1, r0 - add r1, r9 - strh r1, [r2] - ldr r1, [sp, 0x8] - adds r4, r1 - adds r6, 0x4 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _080F5726 - b _080F57D4 -_080F5746: - ldr r2, [sp, 0x8] - cmp r2, 0 - ble _080F57E4 - ldr r0, [sp, 0x4] - subs r0, 0x38 - lsls r0, 2 - adds r7, r0 - movs r5, 0 - mov r3, r9 - lsls r3, 1 - mov r12, r3 - mov r0, r10 - add r0, r9 - str r0, [sp, 0xC] - cmp r5, r8 - bcs _080F5798 - ldr r0, _080F57D8 - cmp r4, r0 - bgt _080F5798 - mov r1, r12 - str r1, [sp, 0x10] - mov r10, r0 -_080F5772: - ldr r3, [sp, 0x10] - adds r2, r3, r7 - asrs r1, r4, 10 - asrs r0, r4, 9 - movs r3, 0x1 - ands r0, r3 - adds r1, r0 - add r1, r9 - strh r1, [r2] - ldr r0, [sp, 0x8] - adds r4, r0 - adds r7, 0x4 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcs _080F5798 - cmp r4, r10 - ble _080F5772 -_080F5798: - ldr r1, _080F57DC - ldr r0, [r1] - ldr r2, [sp, 0x4] - adds r1, r2, r5 - ldr r3, _080F57E0 - adds r0, r3 - strh r1, [r0] - ldrh r0, [r0] - subs r0, 0x38 - lsls r0, 2 - adds r6, r0 - cmp r5, r8 - bcs _080F57D4 - mov r3, r12 - movs r7, 0x1 -_080F57B6: - adds r2, r3, r6 - asrs r1, r4, 10 - asrs r0, r4, 9 - ands r0, r7 - adds r1, r0 - add r1, r9 - strh r1, [r2] - ldr r0, [sp, 0x8] - adds r4, r0 - adds r6, 0x4 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _080F57B6 -_080F57D4: - subs r0, r6, 0x4 - b _080F58C4 - .align 2, 0 -_080F57D8: .4byte 0x00026bff -_080F57DC: .4byte gUnknown_083DFEC4 -_080F57E0: .4byte 0x00009340 -_080F57E4: - ldr r1, [sp, 0x8] - cmp r1, 0 - bge _080F5890 - ldr r0, [sp, 0x4] - subs r0, 0x38 - lsls r0, 2 - adds r6, r0 - movs r5, 0 - mov r2, r9 - lsls r2, 1 - mov r12, r2 - mov r3, r10 - add r3, r9 - str r3, [sp, 0xC] - cmp r5, r8 - bcs _080F5842 - adds r3, r2, r6 - asrs r1, r4, 10 - asrs r0, r4, 9 - movs r2, 0x1 - ands r0, r2 - adds r1, r0 - add r1, r9 - strh r1, [r3] - b _080F5838 -_080F5816: - ldr r0, [sp, 0x8] - adds r4, r0 - adds r6, 0x4 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcs _080F5842 - mov r1, r12 - adds r3, r1, r6 - asrs r2, r4, 10 - asrs r0, r4, 9 - movs r1, 0x1 - ands r0, r1 - adds r2, r0 - add r2, r9 - strh r2, [r3] -_080F5838: - ldr r0, _080F5884 - cmp r4, r0 - bgt _080F5816 - movs r0, 0x9B - strh r0, [r3] -_080F5842: - ldr r2, _080F5888 - ldr r0, [r2] - ldr r3, [sp, 0x4] - adds r1, r3, r5 - ldr r2, _080F588C - adds r0, r2 - strh r1, [r0] - ldrh r0, [r0] - subs r0, 0x38 - lsls r0, 2 - adds r7, r0 - cmp r5, r8 - bcs _080F587E - mov r3, r12 - movs r6, 0x1 -_080F5860: - adds r2, r3, r7 - asrs r1, r4, 10 - asrs r0, r4, 9 - ands r0, r6 - adds r1, r0 - add r1, r9 - strh r1, [r2] - ldr r0, [sp, 0x8] - adds r4, r0 - adds r7, 0x4 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _080F5860 -_080F587E: - subs r0, r7, 0x4 - b _080F58C4 - .align 2, 0 -_080F5884: .4byte 0x00026bff -_080F5888: .4byte gUnknown_083DFEC4 -_080F588C: .4byte 0x00009340 -_080F5890: - ldr r0, _080F58BC - ldr r0, [r0] - ldr r1, _080F58C0 - adds r0, r1 - mov r2, sp - ldrh r2, [r2, 0x4] - strh r2, [r0] - ldr r0, [sp, 0x4] - subs r0, 0x38 - lsls r0, 2 - adds r6, r0 - adds r7, r0 - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r6, 0x2] - ldr r3, [sp] - ldrh r0, [r3] - strh r0, [r7] - movs r0, 0x9B - strh r0, [r7, 0x2] - b _080F58CC - .align 2, 0 -_080F58BC: .4byte gUnknown_083DFEC4 -_080F58C0: .4byte 0x00009340 -_080F58C4: - add r0, r12 - mov r1, sp - ldrh r1, [r1, 0xC] - strh r1, [r0] -_080F58CC: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80F5688 - - thumb_func_start sub_80F58DC -sub_80F58DC: @ 80F58DC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r0, [r5, 0x2] - ldrh r1, [r5, 0x6] - cmp r0, r1 - bcs _080F5914 - adds r4, r0, 0 - mov r8, r4 - ldr r0, _080F590C - ldr r0, [r0] - ldr r1, _080F5910 - adds r0, r1 - adds r4, r5, 0x4 - movs r1, 0 - str r1, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl sub_80F5688 - b _080F5930 - .align 2, 0 -_080F590C: .4byte gUnknown_083DFEC4 -_080F5910: .4byte 0x00009130 -_080F5914: - ldrh r4, [r5, 0x6] - mov r8, r4 - ldr r0, _080F5A08 - ldr r0, [r0] - ldr r1, _080F5A0C - adds r0, r1 - adds r4, r5, 0x4 - movs r1, 0 - str r1, [sp] - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0 - bl sub_80F5688 -_080F5930: - adds r1, r4, 0 - ldr r0, _080F5A08 - ldr r6, [r0] - ldr r0, _080F5A0C - adds r4, r6, r0 - adds r7, r5, 0 - adds r7, 0x8 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - adds r2, r7, 0 - movs r3, 0x1 - bl sub_80F5688 - movs r3, 0 - ldrh r0, [r5, 0xA] - ldrh r1, [r5, 0xE] - cmp r0, r1 - bhi _080F5958 - movs r3, 0x1 -_080F5958: - adds r2, r5, 0 - adds r2, 0xC - ldr r1, _080F5A10 - adds r0, r6, r1 - str r0, [sp] - adds r0, r4, 0 - adds r1, r7, 0 - bl sub_80F5688 - movs r2, 0x38 - cmp r2, r8 - bcs _080F5990 - adds r7, r4, 0 - movs r3, 0 - ldr r0, _080F5A14 - adds r4, r6, r0 -_080F5978: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 2 - adds r1, r7, r0 - strh r3, [r1] - adds r0, r4, r0 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r8 - bcc _080F5978 -_080F5990: - ldrh r2, [r5, 0x2] - ldr r0, _080F5A08 - ldr r3, [r0] - ldr r4, _080F5A18 - adds r1, r3, r4 - adds r6, r0, 0 - ldrh r0, [r1] - cmp r2, r0 - bhi _080F59BE - ldr r4, _080F5A0C - adds r3, r4 - movs r4, 0x9B -_080F59A8: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 2 - adds r0, r3, r0 - strh r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r1] - cmp r2, r0 - bls _080F59A8 -_080F59BE: - ldr r4, [r6] - ldr r1, _080F5A18 - adds r0, r4, r1 - ldrh r0, [r0] - ldrh r1, [r5, 0xA] - cmp r0, r1 - bcs _080F59CE - adds r0, r1, 0 -_080F59CE: - adds r0, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x79 - bhi _080F59FA - ldr r0, _080F5A0C - adds r5, r4, r0 - movs r3, 0 - ldr r1, _080F5A14 - adds r4, r1 -_080F59E2: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 2 - adds r1, r5, r0 - strh r3, [r1] - adds r0, r4, r0 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x79 - bls _080F59E2 -_080F59FA: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F5A08: .4byte gUnknown_083DFEC4 -_080F5A0C: .4byte 0x00009130 -_080F5A10: .4byte 0x00009238 -_080F5A14: .4byte 0x00009132 -_080F5A18: .4byte 0x00009340 - thumb_func_end sub_80F58DC - - thumb_func_start sub_80F5A1C -sub_80F5A1C: @ 80F5A1C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r0, [r5, 0x2] - ldrh r1, [r5, 0x12] - cmp r0, r1 - bcs _080F5A54 - adds r7, r0, 0 - ldr r0, _080F5A4C - ldr r0, [r0] - ldr r2, _080F5A50 - adds r0, r2 - adds r4, r5, 0 - adds r4, 0x10 - movs r1, 0 - str r1, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0 - bl sub_80F5688 - b _080F5A70 - .align 2, 0 -_080F5A4C: .4byte gUnknown_083DFEC4 -_080F5A50: .4byte 0x00009238 -_080F5A54: - ldrh r7, [r5, 0x12] - ldr r0, _080F5B28 - ldr r0, [r0] - ldr r4, _080F5B2C - adds r0, r4 - adds r4, r5, 0 - adds r4, 0x10 - movs r1, 0 - str r1, [sp] - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl sub_80F5688 -_080F5A70: - adds r1, r4, 0 - ldr r0, _080F5B28 - ldr r0, [r0] - mov r8, r0 - ldr r4, _080F5B2C - add r4, r8 - adds r2, r5, 0 - adds r2, 0xC - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r3, 0 - bl sub_80F5688 - movs r2, 0x38 - cmp r2, r7 - bcs _080F5AB2 - adds r6, r4, 0 - movs r3, 0 - ldr r4, _080F5B30 - add r4, r8 -_080F5A9A: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 2 - adds r1, r6, r0 - strh r3, [r1] - adds r0, r4, r0 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r7 - bcc _080F5A9A -_080F5AB2: - ldrh r2, [r5, 0x2] - ldr r0, _080F5B28 - ldr r3, [r0] - ldr r4, _080F5B34 - adds r1, r3, r4 - adds r6, r0, 0 - ldrh r0, [r1] - cmp r2, r0 - bhi _080F5AE0 - ldr r4, _080F5B30 - adds r3, r4 - movs r4, 0x9B -_080F5ACA: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 2 - adds r0, r3, r0 - strh r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r1] - cmp r2, r0 - bls _080F5ACA -_080F5AE0: - ldrh r0, [r5, 0xE] - adds r1, r0, 0x1 - ldr r3, [r6] - ldr r2, _080F5B34 - adds r0, r3, r2 - ldrh r0, [r0] - cmp r0, r1 - bge _080F5AF2 - adds r0, r1, 0 -_080F5AF2: - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x79 - bhi _080F5B1C - ldr r4, _080F5B2C - adds r5, r3, r4 - movs r4, 0 - ldr r0, _080F5B30 - adds r3, r0 -_080F5B04: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 2 - adds r1, r5, r0 - strh r4, [r1] - adds r0, r3, r0 - strh r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x79 - bls _080F5B04 -_080F5B1C: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F5B28: .4byte gUnknown_083DFEC4 -_080F5B2C: .4byte 0x00009238 -_080F5B30: .4byte 0x0000923a -_080F5B34: .4byte 0x00009340 - thumb_func_end sub_80F5A1C - - thumb_func_start sub_80F5B38 -sub_80F5B38: @ 80F5B38 - ldr r0, _080F5B48 - ldr r0, [r0] - ldr r1, _080F5B4C - adds r0, r1 - movs r1, 0 - strb r1, [r0] - bx lr - .align 2, 0 -_080F5B48: .4byte gUnknown_083DFEC4 -_080F5B4C: .4byte 0x00009345 - thumb_func_end sub_80F5B38 - - thumb_func_start sub_80F5B50 -sub_80F5B50: @ 80F5B50 - push {r4,r5,lr} - sub sp, 0xC - ldr r0, _080F5B68 - ldr r0, [r0] - ldr r1, _080F5B6C - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - beq _080F5B70 - cmp r0, 0x1 - beq _080F5BB4 - b _080F5BCC - .align 2, 0 -_080F5B68: .4byte gUnknown_083DFEC4 -_080F5B6C: .4byte 0x00009345 -_080F5B70: - bl dp12_8087EA4 - ldr r0, _080F5BA8 - movs r2, 0xEF - movs r3, 0xF4 - lsls r3, 3 - adds r1, r0, r3 - adds r0, 0x20 - movs r3, 0xF -_080F5B82: - strh r2, [r0] - strh r2, [r0, 0x2] - strh r2, [r1] - strh r2, [r1, 0x2] - adds r1, 0x4 - adds r0, 0x4 - subs r3, 0x1 - cmp r3, 0 - bge _080F5B82 - ldr r0, _080F5BAC - ldr r1, [r0] - ldr r5, _080F5BB0 - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0x1 - b _080F5BCE - .align 2, 0 -_080F5BA8: .4byte gUnknown_03004DE0 -_080F5BAC: .4byte gUnknown_083DFEC4 -_080F5BB0: .4byte 0x00009345 -_080F5BB4: - mov r0, sp - ldr r1, _080F5BD8 - ldm r1!, {r2,r3,r5} - stm r0!, {r2,r3,r5} - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_080F5BCC: - movs r0, 0 -_080F5BCE: - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080F5BD8: .4byte gUnknown_083E4990 - thumb_func_end sub_80F5B50 - - thumb_func_start sub_80F5BDC -sub_80F5BDC: @ 80F5BDC - push {lr} - ldr r1, _080F5BEC - movs r0, 0x3 - strb r0, [r1, 0x15] - bl sub_8089668 - pop {r0} - bx r0 - .align 2, 0 -_080F5BEC: .4byte gUnknown_03004DC0 - thumb_func_end sub_80F5BDC - - thumb_func_start sub_80F5BF0 -sub_80F5BF0: @ 80F5BF0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - ldr r0, _080F5CB8 - ldr r5, [r0] - ldr r1, _080F5CBC - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F5CA6 - ldr r0, _080F5CC0 - adds r4, r5, r0 - adds r0, r4, 0 - bl sub_80F58DC - adds r0, r4, 0 - bl sub_80F5A1C - movs r6, 0 - ldr r1, _080F5CC4 - mov r12, r1 - movs r0, 0xF0 - lsls r0, 3 - add r0, r12 - mov r9, r0 - adds r7, r5, 0 - ldr r1, _080F5CC8 - mov r8, r1 - ldr r5, _080F5CCC - adds r5, r7, r5 - str r5, [sp] - ldr r0, _080F5CD0 - adds r0, r7, r0 - str r0, [sp, 0x4] - ldr r1, _080F5CD4 - adds r1, r7 - mov r10, r1 -_080F5C40: - adds r2, r6, 0 - adds r2, 0x37 - lsls r3, r2, 2 - mov r5, r9 - adds r5, r3, r5 - str r5, [sp, 0x8] - add r3, r12 - lsls r4, r6, 2 - ldr r1, [sp] - adds r0, r1, r4 - ldrh r0, [r0] - lsls r0, 8 - ldr r5, [sp, 0x4] - adds r1, r5, r4 - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r3] - mov r1, r8 - ands r0, r1 - ldr r5, [sp, 0x8] - strh r0, [r5] - lsls r2, 1 - adds r2, 0x1 - lsls r2, 1 - mov r0, r9 - adds r3, r2, r0 - add r2, r12 - mov r1, r10 - adds r0, r1, r4 - ldrh r1, [r0] - lsls r1, 8 - ldr r5, _080F5CD8 - adds r0, r7, r5 - adds r0, r4 - ldrh r0, [r0] - orrs r1, r0 - strh r1, [r2] - mov r0, r8 - ands r1, r0 - strh r1, [r3] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _080F5CB8 - cmp r6, 0x41 - bls _080F5C40 - ldr r0, [r0] - ldr r1, _080F5CBC - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_080F5CA6: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F5CB8: .4byte gUnknown_083DFEC4 -_080F5CBC: .4byte 0x00009344 -_080F5CC0: .4byte 0x0000911c -_080F5CC4: .4byte gUnknown_03004DE0 -_080F5CC8: .4byte 0x0000ffff -_080F5CCC: .4byte 0x00009130 -_080F5CD0: .4byte 0x00009132 -_080F5CD4: .4byte 0x00009238 -_080F5CD8: .4byte 0x0000923a - thumb_func_end sub_80F5BF0 - - thumb_func_start sub_80F5CDC -sub_80F5CDC: @ 80F5CDC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080F5DB0 - ldr r6, [r0] - ldr r1, _080F5DB4 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F5DA0 - ldr r0, _080F5DB8 - adds r4, r6, r0 - adds r0, r4, 0 - bl sub_80F58DC - adds r0, r4, 0 - bl sub_80F5A1C - movs r0, 0x37 - subs r0, r5 - lsls r0, 17 - lsrs r5, r0, 16 - movs r7, 0 - ldr r1, _080F5DBC - mov r12, r1 - movs r4, 0xF0 - lsls r4, 3 - add r4, r12 - mov r9, r4 - ldr r0, _080F5DC0 - mov r8, r0 - ldr r1, _080F5DC4 - adds r1, r6, r1 - str r1, [sp] - ldr r4, _080F5DC8 - adds r4, r6, r4 - str r4, [sp, 0x4] - ldr r0, _080F5DCC - adds r0, r6 - mov r10, r0 -_080F5D36: - lsls r2, r5, 1 - mov r1, r9 - adds r1, r2, r1 - str r1, [sp, 0x8] - add r2, r12 - lsls r3, r7, 2 - ldr r4, [sp] - adds r0, r4, r3 - ldrh r0, [r0] - lsls r0, 8 - ldr r4, [sp, 0x4] - adds r1, r4, r3 - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2] - mov r1, r8 - ands r0, r1 - ldr r4, [sp, 0x8] - strh r0, [r4] - adds r2, r5, 0x1 - lsls r2, 1 - mov r0, r9 - adds r0, r2, r0 - str r0, [sp, 0x8] - add r2, r12 - mov r1, r10 - adds r0, r1, r3 - ldrh r1, [r0] - lsls r1, 8 - ldr r4, _080F5DD0 - adds r0, r6, r4 - adds r0, r3 - ldrh r0, [r0] - orrs r1, r0 - strh r1, [r2] - mov r0, r8 - ands r1, r0 - ldr r4, [sp, 0x8] - strh r1, [r4] - adds r0, r5, 0x2 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, _080F5DB0 - cmp r7, 0x41 - bls _080F5D36 - ldr r0, [r0] - ldr r1, _080F5DB4 - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_080F5DA0: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F5DB0: .4byte gUnknown_083DFEC4 -_080F5DB4: .4byte 0x00009344 -_080F5DB8: .4byte 0x0000911c -_080F5DBC: .4byte gUnknown_03004DE0 -_080F5DC0: .4byte 0x0000ffff -_080F5DC4: .4byte 0x00009130 -_080F5DC8: .4byte 0x00009132 -_080F5DCC: .4byte 0x00009238 -_080F5DD0: .4byte 0x0000923a - thumb_func_end sub_80F5CDC - - thumb_func_start sub_80F5DD4 -sub_80F5DD4: @ 80F5DD4 - push {lr} - ldr r0, _080F5DE8 - ldrh r1, [r0, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080F5DEC - bl sub_80F5E20 - b _080F5E18 - .align 2, 0 -_080F5DE8: .4byte gMain -_080F5DEC: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080F5DFA - bl sub_80F5EE4 - b _080F5E18 -_080F5DFA: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080F5E08 - bl sub_80F5FB4 - b _080F5E18 -_080F5E08: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080F5E14 - movs r0, 0 - b _080F5E1C -_080F5E14: - bl sub_80F6010 -_080F5E18: - lsls r0, 24 - lsrs r0, 24 -_080F5E1C: - pop {r1} - bx r1 - thumb_func_end sub_80F5DD4 - - thumb_func_start sub_80F5E20 -sub_80F5E20: @ 80F5E20 - push {r4,r5,lr} - ldr r0, _080F5E38 - ldr r2, [r0] - ldr r3, _080F5E3C - adds r1, r2, r3 - movs r5, 0 - ldrsh r1, [r1, r5] - adds r4, r0, 0 - cmp r1, 0 - bne _080F5E40 - movs r0, 0 - b _080F5EC8 - .align 2, 0 -_080F5E38: .4byte gUnknown_083DFEC4 -_080F5E3C: .4byte 0x0000876e -_080F5E40: - ldr r1, _080F5E6C - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F5E74 - ldr r3, _080F5E70 - adds r0, r2, r3 - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r0, 0 - bne _080F5E74 - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - bl sub_80F063C - adds r0, r4, 0 - bl sub_80F6074 - movs r0, 0x2 - b _080F5EC8 - .align 2, 0 -_080F5E6C: .4byte 0x000087c9 -_080F5E70: .4byte 0x0000876c -_080F5E74: - ldr r1, [r4] - ldr r0, _080F5ED0 - adds r2, r1, r0 - ldrh r0, [r2] - subs r3, r0, 0x1 - strh r3, [r2] - ldr r5, _080F5ED4 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0 - bne _080F5E98 - lsls r0, r3, 16 - cmp r0, 0 - bge _080F5E98 - ldr r3, _080F5ED8 - adds r0, r1, r3 - ldrh r0, [r0] - strh r0, [r2] -_080F5E98: - ldr r0, [r4] - ldr r5, _080F5EDC - adds r2, r0, r5 - ldr r3, _080F5ED0 - adds r1, r0, r3 - ldrh r1, [r1] - ldrh r2, [r2] - adds r2, r1, r2 - subs r5, 0x2 - adds r4, r0, r5 - strh r2, [r4] - ldr r1, _080F5EE0 - adds r0, r1 - lsls r1, r2, 16 - asrs r1, 16 - ldrh r3, [r0] - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r1, r0 - ble _080F5EC6 - subs r0, r2, 0x1 - subs r0, r3 - strh r0, [r4] -_080F5EC6: - movs r0, 0x1 -_080F5EC8: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080F5ED0: .4byte 0x0000876c -_080F5ED4: .4byte 0x000087c9 -_080F5ED8: .4byte 0x00008772 -_080F5EDC: .4byte 0x00008770 -_080F5EE0: .4byte 0x00008774 - thumb_func_end sub_80F5E20 - - thumb_func_start sub_80F5EE4 -sub_80F5EE4: @ 80F5EE4 - push {r4-r6,lr} - ldr r3, _080F5F04 - ldr r4, [r3] - ldr r1, _080F5F08 - adds r0, r4, r1 - ldr r2, _080F5F0C - adds r1, r4, r2 - movs r5, 0 - ldrsh r2, [r0, r5] - movs r6, 0 - ldrsh r0, [r1, r6] - adds r5, r3, 0 - cmp r2, r0 - bne _080F5F10 - movs r0, 0 - b _080F5F98 - .align 2, 0 -_080F5F04: .4byte gUnknown_083DFEC4 -_080F5F08: .4byte 0x0000876e -_080F5F0C: .4byte 0x00008774 -_080F5F10: - ldr r1, _080F5F38 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F5F40 - ldr r2, _080F5F3C - adds r0, r4, r2 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0x7 - bne _080F5F40 - movs r0, 0x1 - bl sub_80F063C - movs r0, 0x1 - bl sub_80F6074 - movs r0, 0x2 - b _080F5F98 - .align 2, 0 -_080F5F38: .4byte 0x000087c9 -_080F5F3C: .4byte 0x0000876c -_080F5F40: - ldr r2, [r5] - ldr r6, _080F5FA0 - adds r4, r2, r6 - ldrh r0, [r4] - adds r1, r0, 0x1 - strh r1, [r4] - ldr r3, _080F5FA4 - adds r0, r2, r3 - ldrb r3, [r0] - cmp r3, 0 - bne _080F5F68 - adds r6, 0x6 - adds r0, r2, r6 - lsls r1, 16 - asrs r1, 16 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r1, r0 - ble _080F5F68 - strh r3, [r4] -_080F5F68: - ldr r0, [r5] - ldr r3, _080F5FA8 - adds r2, r0, r3 - ldr r5, _080F5FA0 - adds r1, r0, r5 - ldrh r1, [r1] - ldrh r2, [r2] - adds r2, r1, r2 - ldr r6, _080F5FAC - adds r4, r0, r6 - strh r2, [r4] - ldr r1, _080F5FB0 - adds r0, r1 - lsls r1, r2, 16 - asrs r1, 16 - ldrh r3, [r0] - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r1, r0 - ble _080F5F96 - subs r0, r2, 0x1 - subs r0, r3 - strh r0, [r4] -_080F5F96: - movs r0, 0x1 -_080F5F98: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080F5FA0: .4byte 0x0000876c -_080F5FA4: .4byte 0x000087c9 -_080F5FA8: .4byte 0x00008770 -_080F5FAC: .4byte 0x0000876e -_080F5FB0: .4byte 0x00008774 - thumb_func_end sub_80F5EE4 - - thumb_func_start sub_80F5FB4 -sub_80F5FB4: @ 80F5FB4 - push {r4,lr} - ldr r0, _080F5FD8 - ldr r1, [r0] - ldr r2, _080F5FDC - adds r0, r1, r2 - ldrh r3, [r0] - movs r4, 0 - ldrsh r2, [r0, r4] - cmp r2, 0 - beq _080F5FD2 - ldr r4, _080F5FE0 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _080F5FE4 -_080F5FD2: - movs r0, 0 - b _080F6004 - .align 2, 0 -_080F5FD8: .4byte gUnknown_083DFEC4 -_080F5FDC: .4byte 0x00008770 -_080F5FE0: .4byte 0x000087c9 -_080F5FE4: - cmp r2, 0x7 - bgt _080F5FF0 - negs r0, r3 - lsls r0, 16 - lsrs r0, 16 - b _080F5FF2 -_080F5FF0: - ldr r0, _080F600C -_080F5FF2: - lsls r4, r0, 16 - asrs r4, 16 - adds r0, r4, 0 - bl sub_80F063C - adds r0, r4, 0 - bl sub_80F6074 - movs r0, 0x2 -_080F6004: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F600C: .4byte 0x0000fff8 - thumb_func_end sub_80F5FB4 - - thumb_func_start sub_80F6010 -sub_80F6010: @ 80F6010 - push {r4-r6,lr} - ldr r0, _080F603C - ldr r3, [r0] - ldr r1, _080F6040 - adds r0, r3, r1 - ldr r2, _080F6044 - adds r1, r3, r2 - ldrh r5, [r0] - movs r4, 0 - ldrsh r2, [r0, r4] - ldrh r4, [r1] - movs r6, 0 - ldrsh r0, [r1, r6] - cmp r2, r0 - beq _080F6038 - ldr r1, _080F6048 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F604C -_080F6038: - movs r0, 0 - b _080F606C - .align 2, 0 -_080F603C: .4byte gUnknown_083DFEC4 -_080F6040: .4byte 0x00008772 -_080F6044: .4byte 0x00008774 -_080F6048: .4byte 0x000087c9 -_080F604C: - subs r0, r4, r5 - lsls r0, 16 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080F605A - movs r4, 0x8 -_080F605A: - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - bl sub_80F063C - adds r0, r4, 0 - bl sub_80F6074 - movs r0, 0x2 -_080F606C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F6010 - - thumb_func_start sub_80F6074 -sub_80F6074: @ 80F6074 - push {r4-r7,lr} - ldr r1, _080F6120 - ldr r6, [r1] - ldr r1, _080F6124 - adds r3, r6, r1 - ldrh r1, [r3] - lsls r0, 16 - asrs r7, r0, 16 - adds r2, r7, r1 - strh r2, [r3] - ldr r5, _080F6128 - adds r4, r6, r5 - lsls r0, r2, 16 - asrs r0, 16 - ldrh r1, [r4] - mov r12, r1 - movs r5, 0 - ldrsh r1, [r4, r5] - cmp r0, r1 - ble _080F60A4 - subs r0, r2, 0x1 - mov r1, r12 - subs r0, r1 - strh r0, [r3] -_080F60A4: - ldrh r1, [r3] - movs r2, 0 - ldrsh r0, [r3, r2] - cmp r0, 0 - bge _080F60B6 - adds r0, r1, 0x1 - ldrh r5, [r4] - adds r0, r5 - strh r0, [r3] -_080F60B6: - ldr r0, _080F612C - adds r3, r6, r0 - ldrh r0, [r3] - adds r2, r7, r0 - strh r2, [r3] - lsls r0, r2, 16 - asrs r0, 16 - ldrh r1, [r4] - mov r12, r1 - movs r5, 0 - ldrsh r1, [r4, r5] - cmp r0, r1 - ble _080F60D8 - subs r0, r2, 0x1 - mov r1, r12 - subs r0, r1 - strh r0, [r3] -_080F60D8: - ldrh r1, [r3] - movs r2, 0 - ldrsh r0, [r3, r2] - cmp r0, 0 - bge _080F60EA - adds r0, r1, 0x1 - ldrh r5, [r4] - adds r0, r5 - strh r0, [r3] -_080F60EA: - ldr r0, _080F6130 - adds r3, r6, r0 - ldrh r0, [r3] - adds r2, r7, r0 - strh r2, [r3] - lsls r0, r2, 16 - asrs r0, 16 - ldrh r5, [r4] - movs r6, 0 - ldrsh r1, [r4, r6] - cmp r0, r1 - ble _080F6108 - subs r0, r2, 0x1 - subs r0, r5 - strh r0, [r3] -_080F6108: - ldrh r1, [r3] - movs r2, 0 - ldrsh r0, [r3, r2] - cmp r0, 0 - bge _080F611A - adds r0, r1, 0x1 - ldrh r4, [r4] - adds r0, r4 - strh r0, [r3] -_080F611A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F6120: .4byte gUnknown_083DFEC4 -_080F6124: .4byte 0x00008770 -_080F6128: .4byte 0x00008774 -_080F612C: .4byte 0x00008772 -_080F6130: .4byte 0x0000876e - thumb_func_end sub_80F6074 - - thumb_func_start sub_80F6134 -sub_80F6134: @ 80F6134 - push {r4-r6,lr} - ldr r0, _080F6194 - ldr r3, [r0] - ldr r1, _080F6198 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F61E0 - ldr r2, _080F619C - adds r5, r3, r2 - movs r4, 0 - ldrsh r1, [r5, r4] - ldr r6, _080F61A0 - adds r4, r3, r6 - movs r2, 0 - ldrsh r0, [r4, r2] - subs r0, 0x7 - cmp r1, r0 - bge _080F61AC - subs r6, 0x8 - adds r1, r3, r6 - movs r0, 0 - strh r0, [r1] - ldrh r0, [r5] - ldr r1, _080F61A4 - adds r2, r3, r1 - strh r0, [r2] - ldrh r1, [r5] - ldr r5, _080F61A8 - adds r0, r3, r5 - strh r1, [r0] - ldrh r5, [r2] - adds r0, r5, 0x7 - adds r6, 0x6 - adds r2, r3, r6 - strh r0, [r2] - lsls r0, 16 - asrs r0, 16 - ldrh r3, [r4] - movs r6, 0 - ldrsh r1, [r4, r6] - cmp r0, r1 - ble _080F61F4 - adds r0, r5, 0x6 - subs r0, r3 - strh r0, [r2] - b _080F61F4 - .align 2, 0 -_080F6194: .4byte gUnknown_083DFEC4 -_080F6198: .4byte 0x000087c9 -_080F619C: .4byte 0x000087dc -_080F61A0: .4byte 0x00008774 -_080F61A4: .4byte 0x00008770 -_080F61A8: .4byte 0x0000876e -_080F61AC: - ldrh r0, [r4] - subs r0, 0x7 - ldr r2, _080F61D4 - adds r1, r3, r2 - strh r0, [r1] - ldrh r1, [r4] - ldr r6, _080F61D8 - adds r0, r3, r6 - strh r1, [r0] - ldrh r1, [r5] - subs r2, 0x2 - adds r0, r3, r2 - strh r1, [r0] - ldrh r0, [r4] - subs r0, r1 - movs r1, 0x7 - subs r1, r0 - ldr r4, _080F61DC - adds r0, r3, r4 - b _080F61F2 - .align 2, 0 -_080F61D4: .4byte 0x00008770 -_080F61D8: .4byte 0x00008772 -_080F61DC: .4byte 0x0000876c -_080F61E0: - ldr r5, _080F61FC - adds r2, r3, r5 - ldrh r1, [r2] - ldr r6, _080F6200 - adds r0, r3, r6 - strh r1, [r0] - ldrh r1, [r2] - ldr r2, _080F6204 - adds r0, r3, r2 -_080F61F2: - strh r1, [r0] -_080F61F4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F61FC: .4byte 0x000087dc -_080F6200: .4byte 0x0000876c -_080F6204: .4byte 0x0000876e - thumb_func_end sub_80F6134 - - thumb_func_start sub_80F6208 -sub_80F6208: @ 80F6208 - push {lr} - ldr r0, _080F623C - ldr r1, [r0] - ldr r2, _080F6240 - adds r0, r1, r2 - movs r2, 0 - strb r2, [r0] - ldr r3, _080F6244 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080F6248 - adds r2, r1, r0 - movs r0, 0xFF - strb r0, [r2] - ldr r2, _080F624C - adds r1, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _080F6238 -_080F622E: - bl sub_80F6250 - lsls r0, 24 - cmp r0, 0 - bne _080F622E -_080F6238: - pop {r0} - bx r0 - .align 2, 0 -_080F623C: .4byte gUnknown_083DFEC4 -_080F6240: .4byte 0x00008fe6 -_080F6244: .4byte 0x00008fe7 -_080F6248: .4byte 0x00008fe8 -_080F624C: .4byte 0x00006dac - thumb_func_end sub_80F6208 - - thumb_func_start sub_80F6250 -sub_80F6250: @ 80F6250 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _080F6270 - ldr r2, [r0] - ldr r0, _080F6274 - adds r3, r2, r0 - movs r1, 0 - ldrsb r1, [r3, r1] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080F6278 -_080F626C: - movs r0, 0 - b _080F637E - .align 2, 0 -_080F6270: .4byte gUnknown_083DFEC4 -_080F6274: .4byte 0x00008fe8 -_080F6278: - ldr r1, _080F630C - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x7 - beq _080F631C - cmp r0, 0x8 - beq _080F626C - movs r6, 0 - adds r7, r2, 0 - adds r5, r7, r1 - ldr r0, _080F6310 - adds r4, r7, r0 - ldr r1, _080F6314 - mov r8, r1 - ldr r0, _080F6318 - add r0, r8 - mov r9, r0 -_080F629A: - ldrb r0, [r5] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldrb r2, [r4] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - add r1, r8 - adds r0, r1 - movs r1, 0x51 - bl GetBoxMonData - cmp r0, 0 - bne _080F636C - ldrb r0, [r5] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldrb r2, [r4] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - add r1, r9 - adds r0, r1 - movs r1, 0x51 - bl GetBoxMonData - adds r1, r0, 0 - cmp r1, 0 - bne _080F636C - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - movs r2, 0xFF - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1D - bls _080F62FE - strb r1, [r4] - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - ands r0, r2 - cmp r0, 0x6 - bhi _080F637C -_080F62FE: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x9 - bls _080F629A - b _080F637C - .align 2, 0 -_080F630C: .4byte 0x00008fe6 -_080F6310: .4byte 0x00008fe7 -_080F6314: .4byte gUnknown_020300A4 -_080F6318: .4byte 0x000041a0 -_080F631C: - movs r0, 0 - strb r0, [r3] - movs r6, 0 - b _080F632A -_080F6324: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080F632A: - cmp r6, 0x5 - bhi _080F634C - movs r0, 0x64 - muls r0, r6 - ldr r1, _080F635C - adds r0, r1 - movs r1, 0x51 - bl GetMonData - cmp r0, 0 - beq _080F6324 - ldr r0, _080F6360 - ldr r0, [r0] - ldr r1, _080F6364 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] -_080F634C: - ldr r0, _080F6360 - ldr r1, [r0] - ldr r0, _080F6368 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - b _080F6372 - .align 2, 0 -_080F635C: .4byte gPlayerParty -_080F6360: .4byte gUnknown_083DFEC4 -_080F6364: .4byte 0x00008fe8 -_080F6368: .4byte 0x00008fe6 -_080F636C: - ldr r0, _080F6378 - adds r1, r7, r0 - movs r0, 0x1 -_080F6372: - strb r0, [r1] - b _080F626C - .align 2, 0 -_080F6378: .4byte 0x00008fe8 -_080F637C: - movs r0, 0x1 -_080F637E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F6250 - - thumb_func_start sub_80F638C -sub_80F638C: @ 80F638C - push {r4,lr} - ldr r0, _080F63C0 - ldr r4, [r0] - ldr r1, _080F63C4 - adds r0, r4, r1 - movs r1, 0 - strb r1, [r0] - ldr r2, _080F63C8 - adds r0, r4, r2 - strb r1, [r0] - bl sub_80F492C - ldr r0, _080F63CC - adds r4, r0 - ldrb r0, [r4] - cmp r0, 0 - bne _080F63B8 -_080F63AE: - bl sub_80F63D0 - lsls r0, 24 - cmp r0, 0 - bne _080F63AE -_080F63B8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F63C0: .4byte gUnknown_083DFEC4 -_080F63C4: .4byte 0x00008fe6 -_080F63C8: .4byte 0x00008fe7 -_080F63CC: .4byte 0x00006dac - thumb_func_end sub_80F638C - - thumb_func_start sub_80F63D0 -sub_80F63D0: @ 80F63D0 - push {r4-r6,lr} - sub sp, 0x4 - ldr r0, _080F647C - ldr r2, [r0] - ldr r1, _080F6480 - adds r0, r2, r1 - ldrb r3, [r0] - cmp r3, 0xE - beq _080F6498 - cmp r3, 0xF - bne _080F63E8 - b _080F64F6 -_080F63E8: - movs r1, 0x80 - lsls r1, 23 - ldr r0, [sp] - orrs r0, r1 - str r0, [sp] - movs r6, 0 - ldr r0, _080F6480 - adds r5, r2, r0 - ldr r1, _080F6484 - adds r4, r2, r1 -_080F63FC: - ldrb r0, [r5] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldrb r2, [r4] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _080F6488 - adds r1, r2 - adds r0, r1 - movs r1, 0x51 - bl GetBoxMonData - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _080F644E - ldrb r1, [r5] - lsls r1, 8 - ldr r2, _080F648C - ldr r0, [sp] - ands r0, r2 - orrs r0, r1 - str r0, [sp] - ldrb r2, [r4] - movs r1, 0x1F - ands r2, r1 - lsls r2, 16 - ldr r1, _080F6490 - ands r0, r1 - orrs r0, r2 - ldr r1, _080F6494 - ands r0, r1 - orrs r0, r3 - str r0, [sp] - mov r0, sp - bl sub_80F4944 -_080F644E: - ldrb r0, [r4] - adds r0, 0x1 - movs r2, 0 - strb r0, [r4] - movs r1, 0xFF - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1E - bne _080F646E - strb r2, [r4] - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - ands r0, r1 - cmp r0, 0xE - beq _080F6508 -_080F646E: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0xE - bls _080F63FC - b _080F6508 - .align 2, 0 -_080F647C: .4byte gUnknown_083DFEC4 -_080F6480: .4byte 0x00008fe6 -_080F6484: .4byte 0x00008fe7 -_080F6488: .4byte gUnknown_020300A4 -_080F648C: .4byte 0xffff00ff -_080F6490: .4byte 0xffe0ffff -_080F6494: .4byte 0xffffff00 -_080F6498: - mov r0, sp - ldrb r1, [r0, 0x3] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0, 0x3] - strb r3, [r0, 0x1] - movs r6, 0 - mov r4, sp -_080F64A8: - movs r0, 0x64 - muls r0, r6 - ldr r1, _080F64FC - adds r0, r1 - movs r1, 0x51 - bl GetMonData - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _080F64DA - movs r0, 0x1F - adds r2, r6, 0 - ands r2, r0 - ldrb r0, [r4, 0x2] - movs r5, 0x20 - negs r5, r5 - adds r1, r5, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x2] - strb r3, [r4] - mov r0, sp - bl sub_80F4944 -_080F64DA: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _080F64A8 - bl sub_80F49F4 - ldr r0, _080F6500 - ldr r1, [r0] - ldr r0, _080F6504 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080F64F6: - movs r0, 0 - b _080F650A - .align 2, 0 -_080F64FC: .4byte gPlayerParty -_080F6500: .4byte gUnknown_083DFEC4 -_080F6504: .4byte 0x00008fe6 -_080F6508: - movs r0, 0x1 -_080F650A: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F63D0 - - thumb_func_start sub_80F6514 -sub_80F6514: @ 80F6514 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r10, r0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x4] - mov r5, r10 - ldr r0, _080F65A4 - ldr r0, [r0] - lsls r1, 2 - adds r0, r1 - ldr r2, _080F65A8 - adds r1, r0, r2 - ldrb r6, [r1] - mov r8, r6 - ldr r1, _080F65AC - adds r0, r1 - ldrb r0, [r0] - lsls r0, 27 - lsrs r4, r0, 27 - adds r7, r4, 0 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0x2D - movs r3, 0 - bl sub_80F44B0 - cmp r0, 0 - beq _080F655E - b _080F66CA -_080F655E: - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0x2 - adds r3, r5, 0 - bl sub_80F44B0 - adds r0, r5, 0 - bl StringGetEnd10 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0xB - movs r3, 0 - bl sub_80F44B0 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - cmp r6, 0xE - bne _080F65B4 - movs r0, 0x64 - muls r4, r0 - ldr r0, _080F65B0 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - adds r0, r4, 0 - bl GetMonGender - b _080F65EA - .align 2, 0 -_080F65A4: .4byte gUnknown_083DFEC4 -_080F65A8: .4byte 0x0000893d -_080F65AC: .4byte 0x0000893e -_080F65B0: .4byte gPlayerParty -_080F65B4: - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 4 - ldr r2, _080F6620 - adds r1, r2 - adds r0, r1 - bl GetLevelFromBoxMonExp - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - mov r0, r8 - adds r1, r7, 0 - movs r2, 0 - movs r3, 0 - bl sub_80F44B0 - adds r1, r0, 0 - mov r0, r9 - bl GetGenderFromSpeciesAndPersonality -_080F65EA: - lsls r0, 24 - lsrs r4, r0, 24 - mov r0, r9 - mov r1, r10 - bl sub_8040D8C - cmp r0, 0 - beq _080F65FC - movs r4, 0xFF -_080F65FC: - adds r0, r5, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - adds r5, r0 - movs r1, 0xFC - strb r1, [r5] - movs r0, 0x13 - strb r0, [r5, 0x1] - movs r0, 0x3F - strb r0, [r5, 0x2] - adds r5, 0x3 - cmp r4, 0 - beq _080F6624 - cmp r4, 0xFE - beq _080F663C - b _080F6656 - .align 2, 0 -_080F6620: .4byte gUnknown_020300A4 -_080F6624: - strb r1, [r5] - movs r0, 0x1 - strb r0, [r5, 0x1] - movs r0, 0xC - strb r0, [r5, 0x2] - strb r1, [r5, 0x3] - movs r0, 0x3 - strb r0, [r5, 0x4] - movs r0, 0xD - strb r0, [r5, 0x5] - movs r0, 0xB5 - b _080F6652 -_080F663C: - strb r1, [r5] - movs r0, 0x1 - strb r0, [r5, 0x1] - movs r0, 0xA - strb r0, [r5, 0x2] - strb r1, [r5, 0x3] - movs r0, 0x3 - strb r0, [r5, 0x4] - movs r0, 0xB - strb r0, [r5, 0x5] - movs r0, 0xB6 -_080F6652: - strb r0, [r5, 0x6] - adds r5, 0x7 -_080F6656: - movs r4, 0xFC - strb r4, [r5] - movs r1, 0x1 - strb r1, [r5, 0x1] - strb r1, [r5, 0x2] - strb r4, [r5, 0x3] - movs r0, 0x3 - strb r0, [r5, 0x4] - movs r0, 0x5 - strb r0, [r5, 0x5] - adds r5, 0x6 - strb r4, [r5] - movs r6, 0x13 - strb r6, [r5, 0x1] - movs r0, 0x46 - strb r0, [r5, 0x2] - adds r5, 0x3 - movs r0, 0xBA - strb r0, [r5] - strb r4, [r5, 0x1] - movs r0, 0x11 - strb r0, [r5, 0x2] - strb r1, [r5, 0x3] - movs r0, 0x34 - strb r0, [r5, 0x4] - adds r5, 0x5 - adds r0, r5, 0 - ldr r1, [sp, 0x8] - bl ConvertIntToDecimalString - adds r5, r0, 0 - ldr r0, [sp, 0x4] - cmp r0, 0x1 - bne _080F66C0 - ldr r0, _080F66B8 - ldr r0, [r0] - ldr r2, [sp] - lsls r1, r2, 2 - adds r0, r1 - ldr r1, _080F66BC - adds r0, r1 - ldrb r1, [r0] - adds r0, r5, 0 - movs r2, 0x80 - movs r3, 0x1 - bl sub_8072C14 - adds r5, r0, 0 - b _080F66CE - .align 2, 0 -_080F66B8: .4byte gUnknown_083DFEC4 -_080F66BC: .4byte 0x0000893c -_080F66C0: - strb r4, [r5] - strb r6, [r5, 0x1] - movs r0, 0x67 - strb r0, [r5, 0x2] - adds r5, 0x3 -_080F66CA: - movs r0, 0xFF - strb r0, [r5] -_080F66CE: - adds r0, r5, 0 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F6514 - - thumb_func_start sub_80F66E0 -sub_80F66E0: @ 80F66E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, _080F676C - mov r8, r0 - ldr r4, [r0] - ldr r1, _080F6770 - adds r0, r4, r1 - ldr r2, _080F6774 - adds r5, r4, r2 - ldrh r1, [r5] - movs r2, 0 - bl sub_80F6514 - movs r3, 0 - ldrsh r0, [r5, r3] - movs r1, 0 - bl sub_80F4824 - ldrh r1, [r5] - ldr r6, _080F6778 - adds r0, r4, r6 - movs r6, 0 - strh r1, [r0] - ldr r1, _080F677C - adds r0, r4, r1 - strb r6, [r0] - movs r2, 0 - mov r9, r2 - movs r3, 0 - ldrsh r1, [r5, r3] - lsls r1, 2 - adds r1, r4, r1 - ldr r5, _080F6780 - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _080F6784 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 27 - lsrs r1, 27 - movs r2, 0x52 - movs r3, 0 - bl sub_80F44B0 - adds r7, r0, 0 - ldr r3, _080F6788 - adds r4, r3 - strb r6, [r4] - movs r5, 0 - mov r12, r5 - mov r10, r8 -_080F674E: - ldr r1, _080F678C - mov r6, r12 - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x36 - bgt _080F6790 - cmp r0, 0x32 - blt _080F6790 - movs r0, 0x7 - adds r2, r7, 0 - ands r2, r0 - lsrs r7, 3 - movs r0, 0x4 - b _080F679A - .align 2, 0 -_080F676C: .4byte gUnknown_083DFEC4 -_080F6770: .4byte 0x00008829 -_080F6774: .4byte 0x0000876e -_080F6778: .4byte 0x000087dc -_080F677C: .4byte 0x0000bc8e -_080F6780: .4byte 0x0000893d -_080F6784: .4byte 0x0000893e -_080F6788: .4byte 0x0000bc8f -_080F678C: .4byte gUnknown_083E499C -_080F6790: - movs r0, 0x1 - adds r2, r7, 0 - ands r2, r0 - lsrs r7, 1 - movs r0, 0x1 -_080F679A: - movs r4, 0 - adds r1, r2, 0 - add r0, r9 - mov r8, r0 - cmp r4, r1 - bcs _080F67D4 - mov r3, r10 - ldr r0, [r3] - ldr r5, _080F6828 - adds r3, r0, r5 - ldr r6, _080F682C - adds r6, r0, r6 - str r6, [sp] - adds r5, r1, 0 -_080F67B6: - ldrb r0, [r3] - adds r1, r0, 0x1 - strb r1, [r3] - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp] - adds r0, r1, r0 - mov r6, r9 - adds r1, r6, r4 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r5 - bcc _080F67B6 -_080F67D4: - cmp r2, 0 - beq _080F67EC - mov r0, r9 - cmp r0, 0x18 - bls _080F67EC - mov r2, r10 - ldr r1, [r2] - ldr r3, _080F6830 - adds r1, r3 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080F67EC: - mov r5, r8 - lsls r0, r5, 24 - lsrs r0, 24 - mov r9, r0 - mov r0, r12 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r12, r0 - cmp r0, 0x10 - bls _080F674E - ldr r6, _080F6834 - ldr r2, [r6] - ldr r1, _080F6828 - adds r0, r2, r1 - ldr r3, _080F6830 - adds r1, r2, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _080F6840 - ldr r5, _080F6838 - adds r0, r2, r5 - movs r1, 0 - strb r1, [r0] - ldr r6, _080F683C - adds r0, r2, r6 - strb r1, [r0] - b _080F6850 - .align 2, 0 -_080F6828: .4byte 0x0000bc8e -_080F682C: .4byte 0x0000bc4c -_080F6830: .4byte 0x0000bc8f -_080F6834: .4byte gUnknown_083DFEC4 -_080F6838: .4byte 0x0000bc90 -_080F683C: .4byte 0x0000bc91 -_080F6840: - ldr r0, _080F6888 - adds r1, r2, r0 - movs r0, 0 - strb r0, [r1] - ldr r3, _080F688C - adds r1, r2, r3 - movs r0, 0x3 - strb r0, [r1] -_080F6850: - ldr r5, _080F6890 - ldr r1, [r5] - ldr r6, _080F6894 - adds r0, r1, r6 - ldr r2, _080F6898 - adds r1, r2 - ldrb r0, [r0] - ldrb r1, [r1] - subs r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - movs r3, 0 - mov r12, r3 - adds r3, r5, 0 - ldr r1, _080F689C - movs r4, 0x9 -_080F6870: - cmp r2, 0x8 - bls _080F68A0 - ldr r0, [r3] - adds r0, r1 - add r0, r12 - strb r4, [r0] - adds r0, r2, 0 - subs r0, 0x9 - lsls r0, 24 - lsrs r2, r0, 24 - b _080F68AA - .align 2, 0 -_080F6888: .4byte 0x0000bc90 -_080F688C: .4byte 0x0000bc91 -_080F6890: .4byte gUnknown_083DFEC4 -_080F6894: .4byte 0x0000bc8e -_080F6898: .4byte 0x0000bc8f -_080F689C: .4byte 0x0000bc96 -_080F68A0: - ldr r0, [r3] - adds r0, r1 - add r0, r12 - strb r2, [r0] - movs r2, 0 -_080F68AA: - mov r0, r12 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r12, r0 - cmp r0, 0x2 - bls _080F6870 - ldr r5, _080F68DC - ldr r0, [r5] - ldr r6, _080F68E0 - adds r1, r0, r6 - add r1, r12 - ldr r2, _080F68E4 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F68DC: .4byte gUnknown_083DFEC4 -_080F68E0: .4byte 0x0000bc96 -_080F68E4: .4byte 0x0000bc8f - thumb_func_end sub_80F66E0 - - thumb_func_start sub_80F68E8 -sub_80F68E8: @ 80F68E8 - push {r4-r7,lr} - ldr r3, _080F6918 - ldr r0, [r3] - ldr r2, _080F691C - adds r1, r0, r2 - ldrb r5, [r1] - ldr r6, _080F6920 - adds r0, r6 - ldrb r4, [r0] - movs r0, 0x1 - mov r12, r0 - ldr r2, _080F6924 - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - adds r6, r3, 0 - adds r7, r2, 0 - cmp r0, 0 - beq _080F692E - lsls r0, r4, 24 - cmp r0, 0 - ble _080F692E - b _080F69BC - .align 2, 0 -_080F6918: .4byte gUnknown_083DFEC4 -_080F691C: .4byte 0x0000bc90 -_080F6920: .4byte 0x0000bc91 -_080F6924: .4byte gMain -_080F6928: - ldr r1, _080F69B0 - adds r0, r2, r1 - ldrb r4, [r0] -_080F692E: - ldrh r1, [r7, 0x30] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080F6978 - lsls r0, r4, 24 - asrs r0, 24 - cmp r0, 0x2 - bgt _080F6978 - ldr r3, _080F69B4 - ldr r2, _080F69B8 -_080F6944: - lsls r0, r4, 24 - asrs r0, 24 - cmp r0, 0x2 - bgt _080F6960 - adds r0, 0x1 - lsls r0, 24 - ldr r1, [r3] - lsrs r4, r0, 24 - asrs r0, 24 - adds r1, r2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080F6944 -_080F6960: - ldr r2, [r6] - lsls r0, r4, 24 - asrs r0, 24 - ldr r3, _080F69B8 - adds r1, r2, r3 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _080F69EC - ldr r1, _080F69B0 - adds r0, r2, r1 - ldrb r4, [r0] -_080F6978: - ldrh r2, [r7, 0x30] - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _080F698A - lsls r0, r5, 24 - asrs r0, 24 - cmp r0, 0 - bgt _080F6A3C -_080F698A: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _080F69AA - lsls r0, r5, 24 - asrs r2, r0, 24 - ldr r1, [r6] - lsls r0, r4, 24 - asrs r0, 24 - ldr r3, _080F69B8 - adds r1, r3 - adds r1, r0 - ldrb r0, [r1] - subs r0, 0x1 - cmp r2, r0 - blt _080F6A38 -_080F69AA: - movs r0, 0 - mov r12, r0 - b _080F69FC - .align 2, 0 -_080F69B0: .4byte 0x0000bc91 -_080F69B4: .4byte gUnknown_083DFEC4 -_080F69B8: .4byte 0x0000bc96 -_080F69BC: - lsls r0, r4, 24 - asrs r0, 24 - cmp r0, 0 - ble _080F69DA - subs r0, 0x1 - lsls r0, 24 - ldr r1, [r6] - lsrs r4, r0, 24 - asrs r0, 24 - ldr r2, _080F6A2C - adds r1, r2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080F69BC -_080F69DA: - ldr r2, [r6] - lsls r0, r4, 24 - asrs r0, 24 - ldr r3, _080F6A2C - adds r1, r2, r3 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080F6928 -_080F69EC: - lsls r0, r5, 24 - asrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - blt _080F69FC - subs r0, r1, 0x1 -_080F69F8: - lsls r0, 24 - lsrs r5, r0, 24 -_080F69FC: - mov r0, r12 - cmp r0, 0 - beq _080F6A44 - lsls r0, r5, 24 - asrs r0, 24 - ldr r3, [r6] - ldr r1, _080F6A30 - adds r2, r3, r1 - ldrb r6, [r2] - cmp r0, r6 - bne _080F6A20 - lsls r0, r4, 24 - asrs r0, 24 - ldr r6, _080F6A34 - adds r1, r3, r6 - ldrb r1, [r1] - cmp r0, r1 - beq _080F6A40 -_080F6A20: - strb r5, [r2] - ldr r1, _080F6A34 - adds r0, r3, r1 - strb r4, [r0] - b _080F6A44 - .align 2, 0 -_080F6A2C: .4byte 0x0000bc96 -_080F6A30: .4byte 0x0000bc90 -_080F6A34: .4byte 0x0000bc91 -_080F6A38: - adds r0, r2, 0x1 - b _080F69F8 -_080F6A3C: - subs r0, 0x1 - b _080F69F8 -_080F6A40: - movs r2, 0 - mov r12, r2 -_080F6A44: - mov r0, r12 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F68E8 - - thumb_func_start sub_80F6A4C -sub_80F6A4C: @ 80F6A4C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _080F6AC4 - ldr r3, [r0] - ldr r0, _080F6AC8 - adds r2, r3, r0 - lsls r0, r4, 24 - asrs r0, 24 - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] - lsls r0, 16 - cmp r0, 0 - bge _080F6A74 - ldr r5, _080F6ACC - adds r0, r3, r5 - ldrh r0, [r0] - strh r0, [r2] -_080F6A74: - ldr r1, _080F6ACC - adds r0, r3, r1 - movs r5, 0 - ldrsh r1, [r2, r5] - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r1, r0 - ble _080F6A88 - movs r0, 0 - strh r0, [r2] -_080F6A88: - ldr r1, _080F6AD0 - adds r0, r3, r1 - strb r4, [r0] - ldrh r1, [r2] - ldr r2, _080F6AD4 - adds r0, r3, r2 - strh r1, [r0] - ldr r1, _080F6AD8 - ldr r5, _080F6ADC - adds r0, r5, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F6AE0 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xA - ldr r5, _080F6AE4 - adds r0, r5, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080F6AE8 - adds r0, r2, 0 - strh r0, [r1] - ldr r5, _080F6AEC - adds r1, r3, r5 - movs r0, 0 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F6AC4: .4byte gUnknown_083DFEC4 -_080F6AC8: .4byte 0x0000876e -_080F6ACC: .4byte 0x00008774 -_080F6AD0: .4byte 0x0000bc94 -_080F6AD4: .4byte 0x000087dc -_080F6AD8: .4byte REG_WININ -_080F6ADC: .4byte 0x00003f37 -_080F6AE0: .4byte 0x00003f3f -_080F6AE4: .4byte 0x000058f0 -_080F6AE8: .4byte 0x00002060 -_080F6AEC: .4byte 0x000087de - thumb_func_end sub_80F6A4C - - thumb_func_start sub_80F6AF0 -sub_80F6AF0: @ 80F6AF0 - push {r4,lr} - ldr r1, _080F6B10 - ldr r0, [r1] - ldr r2, _080F6B14 - adds r0, r2 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x6 - bls _080F6B04 - b _080F6C08 -_080F6B04: - lsls r0, 2 - ldr r1, _080F6B18 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F6B10: .4byte gUnknown_083DFEC4 -_080F6B14: .4byte 0x000087de -_080F6B18: .4byte _080F6B1C - .align 2, 0 -_080F6B1C: - .4byte _080F6B38 - .4byte _080F6B54 - .4byte _080F6B6E - .4byte _080F6B84 - .4byte _080F6B9C - .4byte _080F6BC0 - .4byte _080F6BE0 -_080F6B38: - bl sub_80F173C - lsls r0, 24 - cmp r0, 0 - bne _080F6C18 - ldr r0, _080F6B4C - ldr r1, [r0] - ldr r3, _080F6B50 - adds r1, r3 - b _080F6BCE - .align 2, 0 -_080F6B4C: .4byte gUnknown_083DFEC4 -_080F6B50: .4byte 0x000087de -_080F6B54: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 6 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - bl sub_80F1480 - bl sub_80F66E0 - b _080F6BC6 -_080F6B6E: - bl sub_80F1238 - ldr r0, _080F6B7C - ldr r1, [r0] - ldr r2, _080F6B80 - adds r1, r2 - b _080F6BCE - .align 2, 0 -_080F6B7C: .4byte gUnknown_083DFEC4 -_080F6B80: .4byte 0x000087de -_080F6B84: - bl sub_80F13FC - ldr r0, _080F6B94 - ldr r1, [r0] - ldr r3, _080F6B98 - adds r1, r3 - b _080F6BCE - .align 2, 0 -_080F6B94: .4byte gUnknown_083DFEC4 -_080F6B98: .4byte 0x000087de -_080F6B9C: - ldr r4, [r4] - ldr r1, _080F6BB8 - adds r0, r4, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0 - bl sub_80F4824 - ldr r3, _080F6BBC - adds r4, r3 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _080F6C18 - .align 2, 0 -_080F6BB8: .4byte 0x0000876e -_080F6BBC: .4byte 0x000087de -_080F6BC0: - movs r0, 0 - bl sub_80F2E18 -_080F6BC6: - ldr r0, _080F6BD8 - ldr r1, [r0] - ldr r0, _080F6BDC - adds r1, r0 -_080F6BCE: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080F6C18 - .align 2, 0 -_080F6BD8: .4byte gUnknown_083DFEC4 -_080F6BDC: .4byte 0x000087de -_080F6BE0: - bl sub_80F170C - lsls r0, 24 - cmp r0, 0 - bne _080F6C18 - bl sub_80F1438 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080F6C0C - ands r0, r1 - strh r0, [r2] - ldr r0, _080F6C10 - ldr r1, [r0] - ldr r2, _080F6C14 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080F6C08: - movs r0, 0 - b _080F6C1A - .align 2, 0 -_080F6C0C: .4byte 0x0000dfff -_080F6C10: .4byte gUnknown_083DFEC4 -_080F6C14: .4byte 0x000087de -_080F6C18: - movs r0, 0x1 -_080F6C1A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F6AF0 - - thumb_func_start sub_80F6C20 -sub_80F6C20: @ 80F6C20 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _080F6D44 - ldr r0, [r0] - ldr r1, _080F6D48 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - mov r8, r1 - ldr r2, _080F6D4C - mov r9, r2 -_080F6C3A: - ldr r1, _080F6D50 - mov r4, r8 - lsls r0, r4, 4 - adds r6, r0, r1 - ldrh r7, [r6] - adds r0, r7, 0 - bl trainer_flag_check - lsls r0, 24 - cmp r0, 0 - beq _080F6CA0 - ldr r0, _080F6D44 - ldr r4, [r0] - ldr r0, _080F6D48 - adds r5, r4, r0 - ldrh r0, [r5] - lsls r0, 3 - adds r0, r4, r0 - ldr r1, _080F6D54 - adds r0, r1 - strh r7, [r0] - ldrh r0, [r5] - lsls r0, 3 - adds r0, r4, r0 - ldr r2, _080F6D58 - adds r0, r2 - mov r1, r8 - strb r1, [r0] - ldrh r0, [r5] - lsls r0, 3 - adds r0, r4, r0 - mov r1, r8 - add r1, r9 - ldrb r1, [r1] - adds r2, 0x1 - adds r0, r2 - strb r1, [r0] - ldrh r0, [r6, 0xA] - ldrh r1, [r6, 0xC] - bl get_mapheader_by_bank_and_number - ldrh r1, [r5] - lsls r1, 3 - adds r4, r1 - ldrb r0, [r0, 0x14] - ldr r1, _080F6D5C - adds r4, r1 - strh r0, [r4] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_080F6CA0: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0x37 - bls _080F6C3A - movs r2, 0 - mov r8, r2 - movs r6, 0 -_080F6CB4: - ldr r1, _080F6D60 - mov r4, r8 - lsls r0, r4, 2 - adds r5, r0, r1 - ldrh r4, [r5] - adds r0, r4, 0 - bl trainer_flag_check - lsls r0, 24 - cmp r0, 0 - beq _080F6D0E - ldr r0, _080F6D44 - ldr r2, [r0] - ldr r0, _080F6D48 - adds r3, r2, r0 - ldrh r0, [r3] - lsls r0, 3 - adds r0, r2, r0 - ldr r1, _080F6D54 - adds r0, r1 - strh r4, [r0] - ldrh r0, [r3] - lsls r0, 3 - adds r0, r2, r0 - ldrh r1, [r5, 0x2] - ldr r4, _080F6D5C - adds r0, r4 - strh r1, [r0] - ldrh r0, [r3] - lsls r0, 3 - adds r0, r2, r0 - ldr r1, _080F6D64 - adds r0, r1 - strb r6, [r0] - ldrh r0, [r3] - lsls r0, 3 - adds r2, r0 - mov r0, r8 - adds r0, 0x38 - adds r4, 0x2 - adds r2, r4 - strb r0, [r2] - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] -_080F6D0E: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0xC - bls _080F6CB4 - ldr r3, _080F6D44 - ldr r2, [r3] - ldr r1, _080F6D68 - adds r0, r2, r1 - movs r1, 0 - strh r1, [r0] - ldr r4, _080F6D6C - adds r0, r2, r4 - strh r1, [r0] - subs r4, 0x2 - adds r0, r2, r4 - strh r1, [r0] - ldr r1, _080F6D48 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, 0x8 - bhi _080F6D70 - subs r4, r0, 0x1 - b _080F6D72 - .align 2, 0 -_080F6D44: .4byte gUnknown_083DFEC4 -_080F6D48: .4byte 0x0000d158 -_080F6D4C: .4byte gSaveBlock1 + 0x97A -_080F6D50: .4byte gTrainerEyeTrainers -_080F6D54: .4byte 0x0000cee8 -_080F6D58: .4byte 0x0000ceec -_080F6D5C: .4byte 0x0000ceea -_080F6D60: .4byte gUnknown_083E49C0 -_080F6D64: .4byte 0x0000ceed -_080F6D68: .4byte 0x0000876c -_080F6D6C: .4byte 0x00008770 -_080F6D70: - movs r4, 0x7 -_080F6D72: - ldr r1, _080F6DA8 - adds r0, r2, r1 - strh r4, [r0] - ldr r3, [r3] - ldr r2, _080F6DAC - adds r0, r3, r2 - ldrh r0, [r0] - subs r0, 0x1 - ldr r4, _080F6DB0 - adds r1, r3, r4 - strh r0, [r1] - movs r1, 0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080F6D94 - movs r1, 0x1 -_080F6D94: - ldr r2, _080F6DB4 - adds r0, r3, r2 - strb r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F6DA8: .4byte 0x00008772 -_080F6DAC: .4byte 0x0000d158 -_080F6DB0: .4byte 0x00008774 -_080F6DB4: .4byte 0x000087c9 - thumb_func_end sub_80F6C20 - - thumb_func_start sub_80F6DB8 -sub_80F6DB8: @ 80F6DB8 - push {r4,lr} - movs r1, 0 - ldr r0, _080F6DEC - ldr r4, [r0] - ldr r2, _080F6DF0 - adds r0, r4, r2 - strb r1, [r0] - movs r0, 0 - bl sub_80F6E04 - ldr r0, _080F6DF4 - adds r1, r4, r0 - ldr r0, _080F6DF8 - strh r0, [r1] - movs r0, 0 - bl sub_80F2F7C - ldr r1, _080F6DFC - adds r0, r4, r1 - ldrh r0, [r0] - ldr r2, _080F6E00 - adds r4, r2 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F6DEC: .4byte gUnknown_083DFEC4 -_080F6DF0: .4byte 0x00008fe9 -_080F6DF4: .4byte 0x0000d15a -_080F6DF8: .4byte 0x0000ffb8 -_080F6DFC: .4byte 0x0000876e -_080F6E00: .4byte 0x000087dc - thumb_func_end sub_80F6DB8 - - thumb_func_start sub_80F6E04 -sub_80F6E04: @ 80F6E04 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080F6E78 - ldr r5, [r0] - ldr r1, _080F6E7C - adds r0, r5, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - lsls r0, 3 - adds r0, r5, r0 - ldr r7, _080F6E80 - adds r0, r7 - ldrh r1, [r0] - ldr r2, _080F6E84 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r6, [r0, 0x3] - lsls r0, r6, 3 - mov r8, r0 - ldr r0, _080F6E88 - add r0, r8 - ldr r2, _080F6E8C - lsls r1, r6, 2 - adds r1, r2 - ldrb r1, [r1] - ldr r2, _080F6E90 - adds r3, r5, r2 - lsls r2, r4, 13 - ldr r7, _080F6E94 - adds r2, r7 - adds r2, r5, r2 - str r2, [sp] - str r6, [sp, 0x4] - movs r2, 0x1 - bl DecompressPicFromTable_2 - ldr r0, _080F6E98 - add r8, r0 - mov r1, r8 - ldr r0, [r1] - lsls r4, 7 - adds r5, r4 - adds r1, r5, 0 - bl LZ77UnCompWram - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F6E78: .4byte gUnknown_083DFEC4 -_080F6E7C: .4byte 0x0000876e -_080F6E80: .4byte 0x0000cee8 -_080F6E84: .4byte gTrainers -_080F6E88: .4byte gTrainerFrontPicTable -_080F6E8C: .4byte gTrainerFrontPicCoords -_080F6E90: .4byte 0x000131e4 -_080F6E94: .4byte 0x0000d1e4 -_080F6E98: .4byte gTrainerFrontPicPaletteTable - thumb_func_end sub_80F6E04 - - thumb_func_start sub_80F6E9C -sub_80F6E9C: @ 80F6E9C - push {lr} - ldr r0, _080F6EB4 - ldr r0, [r0] - ldr r2, _080F6EB8 - adds r1, r0, r2 - ldrh r2, [r1] - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080F6EBC - movs r0, 0 - b _080F6ED0 - .align 2, 0 -_080F6EB4: .4byte gUnknown_083DFEC4 -_080F6EB8: .4byte 0x0000d15a -_080F6EBC: - adds r0, r2, 0 - adds r0, 0x8 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bge _080F6ECC - movs r0, 0x1 - b _080F6ED0 -_080F6ECC: - movs r0, 0 - strh r0, [r1] -_080F6ED0: - pop {r1} - bx r1 - thumb_func_end sub_80F6E9C - - thumb_func_start sub_80F6ED4 -sub_80F6ED4: @ 80F6ED4 - push {lr} - ldr r0, _080F6F00 - ldr r0, [r0] - ldr r2, _080F6F04 - adds r1, r0, r2 - ldrh r3, [r1] - movs r2, 0 - ldrsh r0, [r1, r2] - movs r2, 0x48 - negs r2, r2 - cmp r0, r2 - beq _080F6F0A - adds r0, r3, 0 - subs r0, 0x8 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - cmp r0, r2 - ble _080F6F08 - movs r0, 0x1 - b _080F6F0C - .align 2, 0 -_080F6F00: .4byte gUnknown_083DFEC4 -_080F6F04: .4byte 0x0000d15a -_080F6F08: - strh r2, [r1] -_080F6F0A: - movs r0, 0 -_080F6F0C: - pop {r1} - bx r1 - thumb_func_end sub_80F6ED4 - - thumb_func_start sub_80F6F10 -sub_80F6F10: @ 80F6F10 - push {lr} - ldr r0, _080F6F48 - ldr r0, [r0] - ldr r2, _080F6F4C - adds r1, r0, r2 - movs r2, 0 - strb r2, [r1] - ldr r1, _080F6F50 - adds r0, r1 - strb r2, [r0] - ldr r1, _080F6F54 - movs r0, 0xC8 - strh r0, [r1] - ldr r0, _080F6F58 - strh r2, [r0] - subs r1, 0x8 - ldr r2, _080F6F5C - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F6F60 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - bl sub_80F6FB8 - pop {r0} - bx r0 - .align 2, 0 -_080F6F48: .4byte gUnknown_083DFEC4 -_080F6F4C: .4byte 0x0000d15e -_080F6F50: .4byte 0x0000d15f -_080F6F54: .4byte REG_BLDCNT -_080F6F58: .4byte REG_BLDY -_080F6F5C: .4byte 0x00003f3f -_080F6F60: .4byte 0x00001f1f - thumb_func_end sub_80F6F10 - - thumb_func_start sub_80F6F64 -sub_80F6F64: @ 80F6F64 - push {lr} - ldr r0, _080F6F9C - ldr r1, [r0] - ldr r0, _080F6FA0 - adds r2, r1, r0 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8 - bls _080F6FB0 - movs r0, 0 - strb r0, [r2] - ldr r0, _080F6FA4 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080F6FAC - ldr r1, _080F6FA8 - movs r0, 0x6 - strh r0, [r1] - b _080F6FB0 - .align 2, 0 -_080F6F9C: .4byte gUnknown_083DFEC4 -_080F6FA0: .4byte 0x0000d15e -_080F6FA4: .4byte 0x0000d15f -_080F6FA8: .4byte REG_BLDY -_080F6FAC: - ldr r0, _080F6FB4 - strh r1, [r0] -_080F6FB0: - pop {r0} - bx r0 - .align 2, 0 -_080F6FB4: .4byte REG_BLDY - thumb_func_end sub_80F6F64 - - thumb_func_start sub_80F6FB8 -sub_80F6FB8: @ 80F6FB8 - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _080F6FDC - ldr r1, _080F6FD0 - ldr r2, _080F6FD4 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080F6FD8 - b _080F6FE8 - .align 2, 0 -_080F6FD0: .4byte REG_WIN0H -_080F6FD4: .4byte 0x0000e8f0 -_080F6FD8: .4byte 0x00000888 -_080F6FDC: - ldr r1, _080F6FF0 - ldr r2, _080F6FF4 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080F6FF8 -_080F6FE8: - adds r0, r2, 0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080F6FF0: .4byte REG_WIN0H -_080F6FF4: .4byte 0x0000e8f0 -_080F6FF8: .4byte 0x00000818 - thumb_func_end sub_80F6FB8 - - thumb_func_start sub_80F6FFC -sub_80F6FFC: @ 80F6FFC - ldr r0, _080F7008 - movs r1, 0 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - bx lr - .align 2, 0 -_080F7008: .4byte REG_BLDCNT - thumb_func_end sub_80F6FFC - - thumb_func_start sub_80F700C -sub_80F700C: @ 80F700C - push {r4,r5,lr} - lsls r1, 16 - lsrs r1, 16 - ldr r2, _080F7078 - ldr r4, [r2] - lsls r2, r1, 3 - adds r2, r4, r2 - ldr r3, _080F707C - adds r2, r3 - ldrh r3, [r2] - lsls r2, r3, 2 - adds r2, r3 - lsls r2, 3 - ldr r3, _080F7080 - adds r5, r2, r3 - adds r3, r0, 0 - ldr r0, _080F7084 - adds r4, r0 - ldrh r4, [r4] - cmp r1, r4 - bcs _080F7060 - ldrb r1, [r5, 0x1] - movs r0, 0xD - muls r1, r0 - ldr r0, _080F7088 - adds r1, r0 - adds r0, r3, 0 - bl StringCopy - adds r3, r0, 0 - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x13 - strb r0, [r3, 0x1] - movs r0, 0x4B - strb r0, [r3, 0x2] - adds r3, 0x3 - adds r1, r5, 0x4 - adds r0, r3, 0 - bl StringCopy - adds r3, r0, 0 -_080F7060: - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x13 - strb r0, [r3, 0x1] - movs r0, 0x80 - strb r0, [r3, 0x2] - movs r0, 0xFF - strb r0, [r3, 0x3] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F7078: .4byte gUnknown_083DFEC4 -_080F707C: .4byte 0x0000cee8 -_080F7080: .4byte gTrainers -_080F7084: .4byte 0x0000d158 -_080F7088: .4byte gTrainerClassNames - thumb_func_end sub_80F700C - - thumb_func_start sub_80F708C -sub_80F708C: @ 80F708C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _080F70E4 - ldr r3, [r0] - ldr r0, _080F70E8 - adds r2, r3, r0 - lsls r0, r4, 24 - asrs r0, 24 - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] - lsls r0, 16 - cmp r0, 0 - bge _080F70B4 - ldr r5, _080F70EC - adds r0, r3, r5 - ldrh r0, [r0] - strh r0, [r2] -_080F70B4: - ldr r1, _080F70EC - adds r0, r3, r1 - movs r5, 0 - ldrsh r1, [r2, r5] - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r1, r0 - ble _080F70C8 - movs r0, 0 - strh r0, [r2] -_080F70C8: - ldr r1, _080F70F0 - adds r0, r3, r1 - strb r4, [r0] - ldrh r1, [r2] - ldr r2, _080F70F4 - adds r0, r3, r2 - strh r1, [r0] - ldr r5, _080F70F8 - adds r1, r3, r5 - movs r0, 0 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F70E4: .4byte gUnknown_083DFEC4 -_080F70E8: .4byte 0x0000876e -_080F70EC: .4byte 0x00008774 -_080F70F0: .4byte 0x0000bc94 -_080F70F4: .4byte 0x000087dc -_080F70F8: .4byte 0x000087de - thumb_func_end sub_80F708C - - thumb_func_start sub_80F70FC -sub_80F70FC: @ 80F70FC - push {r4-r6,lr} - ldr r1, _080F711C - ldr r0, [r1] - ldr r2, _080F7120 - adds r0, r2 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x6 - bls _080F7110 - b _080F7218 -_080F7110: - lsls r0, 2 - ldr r1, _080F7124 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F711C: .4byte gUnknown_083DFEC4 -_080F7120: .4byte 0x000087de -_080F7124: .4byte _080F7128 - .align 2, 0 -_080F7128: - .4byte _080F7144 - .4byte _080F714A - .4byte _080F7164 - .4byte _080F716C - .4byte _080F71A0 - .4byte _080F71BA - .4byte _080F71EA -_080F7144: - bl sub_80F6ED4 - b _080F71F8 -_080F714A: - movs r0, 0 - bl sub_80F6E04 - ldr r0, _080F715C - ldr r1, [r0] - ldr r2, _080F7160 - adds r1, r2 - b _080F7206 - .align 2, 0 -_080F715C: .4byte gUnknown_083DFEC4 -_080F7160: .4byte 0x000087de -_080F7164: - movs r0, 0 - bl sub_80F2F7C - b _080F71FE -_080F716C: - ldr r4, [r4] - ldr r2, _080F7194 - adds r5, r4, r2 - ldr r0, _080F7198 - adds r6, r4, r0 - ldrh r1, [r6] - adds r0, r5, 0 - bl sub_80F700C - adds r0, r5, 0 - bl sub_80F43D4 - bl sub_80F105C - ldrb r0, [r6] - bl sub_80F0FFC - ldr r2, _080F719C - adds r4, r2 - b _080F71CC - .align 2, 0 -_080F7194: .4byte 0x00008788 -_080F7198: .4byte 0x0000876e -_080F719C: .4byte 0x000087de -_080F71A0: - bl sub_80F0CD8 - ldr r0, _080F71D4 - ldr r1, [r0] - ldr r0, _080F71D8 - adds r2, r1, r0 - movs r0, 0 - strb r0, [r2] - ldr r2, _080F71DC - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080F71BA: - ldr r0, _080F71D4 - ldr r1, [r0] - ldr r0, _080F71D8 - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0x1 - bhi _080F71E0 - bl sub_80F0D5C -_080F71CC: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _080F721C - .align 2, 0 -_080F71D4: .4byte gUnknown_083DFEC4 -_080F71D8: .4byte 0x0000bc95 -_080F71DC: .4byte 0x000087de -_080F71E0: - ldr r2, _080F7210 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080F71EA: - bl sub_80F6E9C - lsls r0, 24 - cmp r0, 0 - bne _080F721C - bl sub_80F0D5C -_080F71F8: - lsls r0, 24 - cmp r0, 0 - bne _080F721C -_080F71FE: - ldr r0, _080F7214 - ldr r1, [r0] - ldr r0, _080F7210 - adds r1, r0 -_080F7206: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080F721C - .align 2, 0 -_080F7210: .4byte 0x000087de -_080F7214: .4byte gUnknown_083DFEC4 -_080F7218: - movs r0, 0 - b _080F721E -_080F721C: - movs r0, 0x1 -_080F721E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F70FC - - thumb_func_start sub_80F7224 -sub_80F7224: @ 80F7224 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080F7260 - adds r0, r1 - movs r1, 0x30 - bl GetMonData - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080F7264 - ldr r0, [r0] - ldr r3, _080F7268 - adds r1, r0, r3 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldr r3, _080F726C - adds r0, r3 - adds r4, r0, r1 - cmp r2, 0xFF - beq _080F7270 - adds r0, r2, 0 - movs r1, 0x1D - bl __udivsi3 - b _080F7272 - .align 2, 0 -_080F7260: .4byte gPlayerParty -_080F7264: .4byte gUnknown_083DFEC4 -_080F7268: .4byte 0x00008fe9 -_080F726C: .4byte 0x00008931 -_080F7270: - movs r0, 0x9 -_080F7272: - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F7224 - - thumb_func_start sub_80F727C -sub_80F727C: @ 80F727C - ldr r1, _080F7288 - str r0, [r1] - movs r1, 0 - strb r1, [r0, 0xB] - bx lr - .align 2, 0 -_080F7288: .4byte gUnknown_020388B8 - thumb_func_end sub_80F727C - - thumb_func_start sub_80F728C -sub_80F728C: @ 80F728C - push {lr} - sub sp, 0x4 - ldr r0, _080F72C4 - ldrb r0, [r0, 0x14] - lsrs r0, 3 - bl GetTextWindowFrameGraphics - ldr r3, _080F72C8 - ldr r2, [r3] - ldr r1, [r0] - str r1, [r2, 0x28] - ldr r0, [r0, 0x4] - str r0, [r2, 0x2C] - ldr r0, _080F72CC - adds r2, r0 - movs r1, 0 - strb r1, [r2] - mov r0, sp - strh r1, [r0] - ldr r1, [r3] - adds r1, 0x30 - ldr r2, _080F72D0 - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080F72C4: .4byte gSaveBlock2 -_080F72C8: .4byte gUnknown_020388B8 -_080F72CC: .4byte 0x000010b0 -_080F72D0: .4byte 0x01000800 - thumb_func_end sub_80F728C - - thumb_func_start sub_80F72D4 -sub_80F72D4: @ 80F72D4 - push {r4-r7,lr} - ldr r0, _080F72F4 - ldr r1, [r0] - ldr r2, _080F72F8 - adds r0, r1, r2 - ldrb r2, [r0] - lsls r0, r2, 8 - adds r0, 0x30 - adds r5, r1, r0 - cmp r2, 0xD - beq _080F73A4 - cmp r2, 0xD - bgt _080F72FC - cmp r2, 0 - beq _080F7302 - b _080F734C - .align 2, 0 -_080F72F4: .4byte gUnknown_020388B8 -_080F72F8: .4byte 0x000010b0 -_080F72FC: - cmp r2, 0xE - beq _080F73F0 - b _080F734C -_080F7302: - ldr r0, [r1, 0x28] - adds r1, r5, 0 - movs r2, 0x8 - bl CpuFastSet - movs r4, 0 - adds r7, r5, 0 - adds r7, 0xE0 -_080F7312: - ldr r6, _080F7344 - ldr r0, [r6] - ldr r0, [r0, 0x28] - adds r0, 0x20 - adds r4, 0x1 - lsls r1, r4, 5 - adds r1, r5, r1 - movs r2, 0x8 - bl CpuFastSet - lsls r4, 16 - lsrs r4, 16 - cmp r4, 0x5 - bls _080F7312 - ldr r0, [r6] - ldr r0, [r0, 0x28] - adds r0, 0x40 - adds r1, r7, 0 - movs r2, 0x8 - bl CpuFastSet - ldr r1, [r6] - ldr r0, _080F7348 - adds r1, r0 - b _080F7392 - .align 2, 0 -_080F7344: .4byte gUnknown_020388B8 -_080F7348: .4byte 0x000010b0 -_080F734C: - ldr r0, _080F739C - ldr r0, [r0] - ldr r0, [r0, 0x28] - adds r0, 0x60 - adds r1, r5, 0 - movs r2, 0x8 - bl CpuFastSet - movs r4, 0 - adds r7, r5, 0 - adds r7, 0xE0 -_080F7362: - ldr r6, _080F739C - ldr r0, [r6] - ldr r0, [r0, 0x28] - adds r0, 0x80 - adds r4, 0x1 - lsls r1, r4, 5 - adds r1, r5, r1 - movs r2, 0x8 - bl CpuFastSet - lsls r4, 16 - lsrs r4, 16 - cmp r4, 0x5 - bls _080F7362 - ldr r0, [r6] - ldr r0, [r0, 0x28] - adds r0, 0xA0 - adds r1, r7, 0 - movs r2, 0x8 - bl CpuFastSet - ldr r1, [r6] - ldr r2, _080F73A0 - adds r1, r2 -_080F7392: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080F73FC - .align 2, 0 -_080F739C: .4byte gUnknown_020388B8 -_080F73A0: .4byte 0x000010b0 -_080F73A4: - ldr r0, [r1, 0x28] - adds r0, 0xC0 - adds r1, r5, 0 - movs r2, 0x8 - bl CpuFastSet - movs r4, 0 - adds r7, r5, 0 - adds r7, 0xE0 -_080F73B6: - ldr r6, _080F73F4 - ldr r0, [r6] - ldr r0, [r0, 0x28] - adds r0, 0xE0 - adds r4, 0x1 - lsls r1, r4, 5 - adds r1, r5, r1 - movs r2, 0x8 - bl CpuFastSet - lsls r4, 16 - lsrs r4, 16 - cmp r4, 0x5 - bls _080F73B6 - ldr r0, [r6] - ldr r0, [r0, 0x28] - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - adds r1, r7, 0 - movs r2, 0x8 - bl CpuFastSet - ldr r1, [r6] - ldr r2, _080F73F8 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080F73F0: - movs r0, 0 - b _080F73FE - .align 2, 0 -_080F73F4: .4byte gUnknown_020388B8 -_080F73F8: .4byte 0x000010b0 -_080F73FC: - movs r0, 0x1 -_080F73FE: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F72D4 - - thumb_func_start sub_80F7404 -sub_80F7404: @ 80F7404 - push {lr} - bl sub_80F728C -_080F740A: - bl sub_80F72D4 - lsls r0, 24 - cmp r0, 0 - bne _080F740A - pop {r0} - bx r0 - thumb_func_end sub_80F7404 - - thumb_func_start sub_80F7418 -sub_80F7418: @ 80F7418 - push {r4-r6,lr} - lsls r1, 16 - lsrs r5, r1, 16 - lsls r2, 16 - lsrs r6, r2, 16 - ldr r2, _080F746C - ldr r3, [r2] - movs r1, 0 - strb r1, [r3, 0x5] - ldr r1, [r2] - strb r0, [r1, 0x4] - movs r3, 0 - adds r4, r2, 0 - movs r2, 0x1 -_080F7434: - ldr r0, [r4] - adds r1, r0, 0x6 - adds r1, r3 - ldrb r0, [r0, 0x4] - asrs r0, r3 - ands r0, r2 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080F7434 - bl sub_814A7FC - lsls r0, r5, 16 - asrs r0, 16 - lsls r1, r6, 16 - asrs r1, 16 - ldr r2, _080F746C - ldr r3, [r2] - ldrh r2, [r3] - ldrh r3, [r3, 0x2] - bl sub_80F761C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F746C: .4byte gUnknown_020388B8 - thumb_func_end sub_80F7418 - - thumb_func_start sub_80F7470 -sub_80F7470: @ 80F7470 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _080F74FC -_080F7476: - ldr r0, [r5] - ldrh r0, [r0] - adds r0, r4, r0 - lsls r0, 16 - lsrs r0, 16 - bl FreeSpriteTilesByTag - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x2 - bls _080F7476 - ldr r4, _080F74FC - ldr r0, [r4] - ldrh r0, [r0, 0x2] - bl FreeSpritePaletteByTag - ldr r0, [r4] - ldrh r0, [r0, 0x2] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag - movs r4, 0 -_080F74A8: - ldr r0, _080F74FC - ldr r0, [r0] - lsls r1, r4, 2 - adds r0, 0xC - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _080F74F6 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080F74A8 - movs r4, 0 -_080F74C8: - ldr r5, _080F74FC - ldr r0, [r5] - lsls r1, r4, 2 - adds r0, 0x14 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _080F74F6 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080F74C8 - bl sub_814A7FC - ldr r0, [r5] - ldr r0, [r0, 0x24] - cmp r0, 0 - beq _080F74F6 - bl DestroySprite -_080F74F6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F74FC: .4byte gUnknown_020388B8 - thumb_func_end sub_80F7470 - - thumb_func_start sub_80F7500 -sub_80F7500: @ 80F7500 - push {r4,r5,lr} - sub sp, 0x30 - ldr r4, _080F7580 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x30 - str r0, [sp, 0x18] - add r1, sp, 0x1C - movs r5, 0 - movs r0, 0x80 - lsls r0, 5 - strh r0, [r1] - ldrh r1, [r2] - mov r0, sp - adds r0, 0x1E - strh r1, [r0] - add r1, sp, 0x20 - ldr r0, _080F7584 - str r0, [sp, 0x20] - movs r0, 0xA4 - lsls r0, 3 - strh r0, [r1, 0x4] - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r1, 0x6] - add r0, sp, 0x28 - movs r1, 0 - movs r2, 0x8 - bl memset - add r1, sp, 0x18 - mov r0, sp - movs r2, 0x18 - bl memcpy - ldr r0, [r4] - ldrb r0, [r0, 0xB] - cmp r0, 0 - beq _080F7558 - mov r0, sp - bl LoadTilesForSpriteSheets - ldr r0, [r4] - strb r5, [r0, 0xB] -_080F7558: - ldr r0, _080F7588 - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080F758C - movs r0, 0x5 - bl PlaySE - ldr r1, [r4] - ldrb r0, [r1, 0x5] - subs r0, 0x1 - strb r0, [r1, 0x5] - lsls r0, 24 - cmp r0, 0 - bge _080F75FE - ldr r1, [r4] - movs r0, 0x5 - strb r0, [r1, 0x5] - b _080F75FE - .align 2, 0 -_080F7580: .4byte gUnknown_020388B8 -_080F7584: .4byte gPokenavConditionMenuMisc_Gfx -_080F7588: .4byte gMain -_080F758C: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080F75B0 - movs r0, 0x5 - bl PlaySE - ldr r1, [r4] - ldrb r0, [r1, 0x5] - adds r0, 0x1 - strb r0, [r1, 0x5] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x5 - ble _080F75FE - ldr r0, [r4] - strb r5, [r0, 0x5] - b _080F75FE -_080F75B0: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080F7602 - movs r0, 0x5 - bl PlaySE - ldr r0, [r4] - movs r1, 0x5 - ldrsb r1, [r0, r1] - cmp r1, 0x4 - beq _080F75DC - cmp r1, 0x5 - beq _080F7610 - adds r0, 0x6 - adds r1, r0, r1 - movs r2, 0 - ldrb r0, [r1] - cmp r0, 0 - bne _080F75FC - movs r2, 0x1 - b _080F75FC -_080F75DC: - strb r5, [r0, 0x4] - movs r3, 0 -_080F75E0: - ldr r2, [r4] - adds r0, r2, 0x6 - adds r0, r3 - ldrb r0, [r0] - lsls r0, r3 - ldrb r1, [r2, 0x4] - orrs r0, r1 - strb r0, [r2, 0x4] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080F75E0 - b _080F7610 -_080F75FC: - strb r2, [r1] -_080F75FE: - movs r0, 0x1 - b _080F7612 -_080F7602: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080F75FE - movs r0, 0x5 - bl PlaySE -_080F7610: - movs r0, 0 -_080F7612: - add sp, 0x30 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F7500 - - thumb_func_start sub_80F761C -sub_80F761C: @ 80F761C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x5C - adds r5, r2, 0 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x4C] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x50] - lsls r5, 16 - lsrs r5, 16 - lsls r3, 16 - lsrs r3, 16 - str r3, [sp, 0x54] - ldr r0, _080F7820 - mov r8, r0 - ldr r0, [r0] - adds r0, 0x30 - str r0, [sp, 0x1C] - add r1, sp, 0x20 - movs r2, 0 - mov r9, r2 - movs r0, 0x80 - lsls r0, 5 - strh r0, [r1] - mov r0, sp - adds r0, 0x22 - strh r5, [r0] - add r1, sp, 0x24 - ldr r0, _080F7824 - str r0, [sp, 0x24] - movs r0, 0xA4 - lsls r0, 3 - strh r0, [r1, 0x4] - adds r0, r5, 0x1 - strh r0, [r1, 0x6] - add r0, sp, 0x2C - movs r1, 0 - movs r2, 0x8 - bl memset - add r6, sp, 0x1C - add r0, sp, 0x4 - adds r1, r6, 0 - movs r2, 0x18 - bl memcpy - mov r3, r8 - ldr r0, [r3] - ldr r0, [r0, 0x2C] - str r0, [sp, 0x34] - add r0, sp, 0x38 - add r1, sp, 0x54 - ldrh r1, [r1] - strh r1, [r0] - add r1, sp, 0x3C - ldr r0, _080F7828 - str r0, [sp, 0x3C] - ldr r0, [sp, 0x54] - adds r0, 0x1 - strh r0, [r1, 0x4] - add r0, sp, 0x44 - movs r1, 0 - movs r2, 0x8 - bl memset - add r4, sp, 0x34 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0x18 - bl memcpy - strh r5, [r4] - add r2, sp, 0x54 - ldrh r2, [r2] - strh r2, [r4, 0x2] - ldr r0, _080F782C - str r0, [r4, 0x4] - ldr r0, _080F7830 - str r0, [r4, 0x8] - mov r3, r9 - str r3, [r4, 0xC] - ldr r0, _080F7834 - str r0, [r4, 0x10] - ldr r0, _080F7838 - str r0, [r4, 0x14] - mov r0, r8 - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1, 0xB] - add r0, sp, 0x4 - bl AllocTilesForSpriteSheets - adds r0, r6, 0 - bl LoadSpritePalettes - movs r5, 0 - ldr r1, [sp, 0x4C] - lsls r0, r1, 16 - movs r2, 0x80 - lsls r2, 14 - adds r2, r0 - mov r8, r2 - str r0, [sp, 0x58] - ldr r3, [sp, 0x50] - lsls r0, r3, 16 - movs r1, 0x80 - lsls r1, 14 - adds r7, r0, r1 - mov r9, r0 -_080F7700: - adds r0, r4, 0 - mov r2, r8 - asrs r1, r2, 16 - asrs r2, r7, 16 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - bne _080F7718 - b _080F7850 -_080F7718: - ldr r6, _080F7820 - ldr r2, [r6] - lsls r0, r5, 2 - adds r2, 0xC - adds r2, r0 - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - ldr r1, _080F783C - adds r0, r1 - str r0, [r2] - lsls r1, r5, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080F7700 - ldr r0, [r6] - ldr r1, [r0, 0x10] - mov r3, r9 - asrs r0, r3, 16 - adds r0, 0x60 - strh r0, [r1, 0x22] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - ldr r0, _080F7840 - str r0, [r4, 0x8] - ldr r0, _080F7844 - str r0, [r4, 0x14] - ldr r0, _080F7848 - str r0, [r4, 0x4] - movs r5, 0 - ldr r0, [sp, 0x58] - movs r1, 0x80 - lsls r1, 14 - adds r0, r1 - mov r10, r0 -_080F7770: - lsls r2, r5, 4 - adds r2, 0x10 - mov r3, r9 - asrs r3, 16 - mov r8, r3 - add r2, r8 - lsls r2, 16 - asrs r2, 16 - adds r0, r4, 0 - mov r3, r10 - asrs r1, r3, 16 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _080F7860 - ldr r6, _080F7820 - ldr r1, [r6] - lsls r0, r5, 2 - adds r1, 0x14 - adds r1, r0 - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - ldr r7, _080F783C - adds r0, r7 - str r0, [r1] - strh r5, [r0, 0x2E] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080F7770 - ldr r0, _080F784C - str r0, [r4, 0x14] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _080F7874 - ldr r1, [r6] - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - adds r0, r7 - str r0, [r1, 0x24] - ldrb r2, [r0, 0x1] - movs r1, 0x3F - ands r1, r2 - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0, 0x1] - ldr r0, [r6] - ldr r2, [r0, 0x24] - ldrb r0, [r2, 0x3] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r2, 0x3] - ldr r0, [r6] - ldr r0, [r0, 0x24] - movs r1, 0x9 - bl StartSpriteAnim - ldr r1, [r6] - ldr r2, [r1, 0x24] - ldr r3, [sp, 0x58] - asrs r0, r3, 16 - adds r0, 0x20 - strh r0, [r2, 0x20] - ldr r2, [r1, 0x24] - mov r0, r8 - adds r0, 0x50 - strh r0, [r2, 0x22] - ldr r0, [r1, 0x24] - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0 - bl CalcCenterToCornerVec - b _080F787A - .align 2, 0 -_080F7820: .4byte gUnknown_020388B8 -_080F7824: .4byte gPokenavConditionMenuMisc_Gfx -_080F7828: .4byte gUnknown_08E966B8 -_080F782C: .4byte gUnknown_083E5214 -_080F7830: .4byte gSpriteAnimTable_83E52AC -_080F7834: .4byte gDummySpriteAffineAnimTable -_080F7838: .4byte nullsub_65 -_080F783C: .4byte gSprites -_080F7840: .4byte gSpriteAnimTable_83E5274 -_080F7844: .4byte sub_80F78CC -_080F7848: .4byte gUnknown_083E521C -_080F784C: .4byte SpriteCallbackDummy -_080F7850: - ldr r0, _080F785C - ldr r0, [r0] - lsls r1, r5, 2 - adds r0, 0xC - b _080F7868 - .align 2, 0 -_080F785C: .4byte gUnknown_020388B8 -_080F7860: - ldr r0, _080F7870 - ldr r0, [r0] - lsls r1, r5, 2 - adds r0, 0x14 -_080F7868: - adds r0, r1 - movs r1, 0 - str r1, [r0] - b _080F78B0 - .align 2, 0 -_080F7870: .4byte gUnknown_020388B8 -_080F7874: - ldr r1, [r6] - movs r0, 0 - str r0, [r1, 0x24] -_080F787A: - ldr r4, _080F78C0 - ldr r1, [r4] - ldr r0, [sp, 0x50] - adds r0, 0x8 - strb r0, [r1, 0xA] - ldr r1, [sp, 0x54] - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x30 - str r0, [sp] - movs r0, 0 - movs r2, 0xF - movs r3, 0 - bl sub_814A5C0 - ldr r0, [sp, 0x4C] - adds r0, 0x8 - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - ldrb r1, [r1, 0xA] - bl sub_814A880 - ldr r0, _080F78C4 - bl sub_814AABC -_080F78B0: - add sp, 0x5C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F78C0: .4byte gUnknown_020388B8 -_080F78C4: .4byte sub_80F7908 - thumb_func_end sub_80F761C - - thumb_func_start nullsub_65 -nullsub_65: @ 80F78C8 - bx lr - thumb_func_end nullsub_65 - - thumb_func_start sub_80F78CC -sub_80F78CC: @ 80F78CC - push {lr} - adds r2, r0, 0 - ldr r0, _080F78F4 - ldr r0, [r0] - movs r3, 0x2E - ldrsh r1, [r2, r3] - adds r0, 0x6 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F78F8 - lsls r1, 1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - adds r0, r2, 0 - bl StartSpriteAnim - b _080F7902 - .align 2, 0 -_080F78F4: .4byte gUnknown_020388B8 -_080F78F8: - lsls r1, 25 - lsrs r1, 24 - adds r0, r2, 0 - bl StartSpriteAnim -_080F7902: - pop {r0} - bx r0 - thumb_func_end sub_80F78CC - - thumb_func_start sub_80F7908 -sub_80F7908: @ 80F7908 - ldr r1, _080F791C - ldr r2, [r1] - movs r1, 0x5 - ldrsb r1, [r2, r1] - lsls r1, 4 - ldrb r2, [r2, 0xA] - adds r1, r2 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_080F791C: .4byte gUnknown_020388B8 - thumb_func_end sub_80F7908 - - thumb_func_start sub_80F7920 -sub_80F7920: @ 80F7920 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - cmp r2, 0 - bne _080F7930 - ldr r2, _080F793C -_080F7930: - movs r3, 0x10 - bl sub_80F7960 - pop {r1} - bx r1 - .align 2, 0 -_080F793C: .4byte gUnknown_083E49F4 - thumb_func_end sub_80F7920 - - thumb_func_start sub_80F7940 -sub_80F7940: @ 80F7940 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - cmp r2, 0 - bne _080F7950 - ldr r2, _080F795C -_080F7950: - movs r3, 0x1 - bl sub_80F7960 - pop {r1} - bx r1 - .align 2, 0 -_080F795C: .4byte gUnknown_083E49F4 - thumb_func_end sub_80F7940 - - thumb_func_start sub_80F7960 -sub_80F7960: @ 80F7960 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x28 - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r4, _080F79DC - str r4, [sp, 0x18] - movs r4, 0x80 - add r5, sp, 0x18 - lsrs r6, r0, 16 - orrs r0, r4 - str r0, [r5, 0x4] - str r2, [sp, 0x20] - ldr r0, _080F79E0 - mov r8, r0 - add r4, sp, 0x20 - ldr r0, [r4, 0x4] - mov r2, r8 - ands r0, r2 - orrs r0, r1 - str r0, [r4, 0x4] - mov r0, sp - movs r2, 0 - strh r6, [r0] - strh r1, [r0, 0x2] - ldr r0, _080F79E4 - str r0, [sp, 0x4] - ldr r0, _080F79E8 - str r0, [sp, 0x8] - str r2, [sp, 0xC] - ldr r0, _080F79EC - str r0, [sp, 0x10] - ldr r0, _080F79F0 - str r0, [sp, 0x14] - lsls r3, 23 - lsrs r3, 16 - ldr r0, [r5, 0x4] - mov r1, r8 - ands r0, r1 - orrs r0, r3 - str r0, [r5, 0x4] - adds r0, r5, 0 - bl LoadSpriteSheet - adds r0, r4, 0 - bl LoadSpritePalette - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _080F79F4 - movs r0, 0 - b _080F79FE - .align 2, 0 -_080F79DC: .4byte gUnknown_083E4A14 -_080F79E0: .4byte 0xffff0000 -_080F79E4: .4byte gUnknown_083E52B4 -_080F79E8: .4byte gSpriteAnimTable_83E533C -_080F79EC: .4byte gDummySpriteAffineAnimTable -_080F79F0: .4byte nullsub_65 -_080F79F4: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F7A0C - adds r0, r1 -_080F79FE: - add sp, 0x28 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080F7A0C: .4byte gSprites - thumb_func_end sub_80F7960 - - thumb_func_start sub_80F7A10 -sub_80F7A10: @ 80F7A10 - lsls r0, 24 - lsrs r0, 17 - ldr r2, _080F7A28 - adds r0, r2 - ldr r2, _080F7A2C - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _080F7A30 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - bx lr - .align 2, 0 -_080F7A28: .4byte gUnknown_083E4A14 -_080F7A2C: .4byte 0x040000d4 -_080F7A30: .4byte 0x80000040 - thumb_func_end sub_80F7A10 - - thumb_func_start sub_80F7A34 -sub_80F7A34: @ 80F7A34 - push {r4,lr} - ldr r0, _080F7A64 - movs r1, 0 - strb r1, [r0] - adds r2, r0, 0 - adds r2, 0x29 - strb r1, [r2] - movs r2, 0 - adds r4, r0, 0x2 - ldr r3, _080F7A68 -_080F7A48: - lsls r0, r2, 1 - adds r1, r4, r0 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080F7A48 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F7A64: .4byte gSaveBlock1 + 0x2D94 -_080F7A68: .4byte gUnknown_083E537C - thumb_func_end sub_80F7A34 - - thumb_func_start sub_80F7A6C -sub_80F7A6C: @ 80F7A6C - ldr r0, _080F7A78 - movs r2, 0 - movs r1, 0x1 - strb r1, [r0] - strb r2, [r0, 0x1] - bx lr - .align 2, 0 -_080F7A78: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7A6C - - thumb_func_start sub_80F7A7C -sub_80F7A7C: @ 80F7A7C - push {lr} - bl sub_80F83F8 - pop {r0} - bx r0 - thumb_func_end sub_80F7A7C - - thumb_func_start sub_80F7A88 -sub_80F7A88: @ 80F7A88 - ldr r0, _080F7A94 - movs r2, 0 - movs r1, 0x4 - strb r1, [r0] - strb r2, [r0, 0x1] - bx lr - .align 2, 0 -_080F7A94: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7A88 - - thumb_func_start sub_80F7A98 -sub_80F7A98: @ 80F7A98 - push {lr} - bl sub_81099CC - pop {r0} - bx r0 - thumb_func_end sub_80F7A98 - - thumb_func_start sub_80F7AA4 -sub_80F7AA4: @ 80F7AA4 - push {lr} - ldr r0, _080F7AC8 - ldrb r1, [r0, 0xB] - lsls r1, 8 - ldrb r0, [r0, 0xA] - orrs r0, r1 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - lsrs r0, 17 - cmp r0, 0x4 - bhi _080F7B00 - lsls r0, 2 - ldr r1, _080F7ACC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F7AC8: .4byte gSaveBlock2 -_080F7ACC: .4byte _080F7AD0 - .align 2, 0 -_080F7AD0: - .4byte _080F7AE4 - .4byte _080F7AEA - .4byte _080F7AF0 - .4byte _080F7AF6 - .4byte _080F7AFC -_080F7AE4: - bl sub_80F7A34 - b _080F7B00 -_080F7AEA: - bl sub_80F7A6C - b _080F7B00 -_080F7AF0: - bl sub_80F7A98 - b _080F7B00 -_080F7AF6: - bl sub_80F7A7C - b _080F7B00 -_080F7AFC: - bl sub_80F7A88 -_080F7B00: - bl sub_80F83D0 - pop {r0} - bx r0 - thumb_func_end sub_80F7AA4 - - thumb_func_start GetCurrentMauvilleOldMan -GetCurrentMauvilleOldMan: @ 80F7B08 - ldr r0, _080F7B10 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080F7B10: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end GetCurrentMauvilleOldMan - - thumb_func_start sub_80F7B14 -sub_80F7B14: @ 80F7B14 - push {r4,lr} - ldr r4, _080F7B28 - bl GetCurrentMauvilleOldMan - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F7B28: .4byte gScriptResult - thumb_func_end sub_80F7B14 - - thumb_func_start sub_80F7B2C -sub_80F7B2C: @ 80F7B2C - ldr r0, _080F7B38 - ldr r1, _080F7B3C - adds r1, 0x29 - ldrb r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_080F7B38: .4byte gScriptResult -_080F7B3C: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7B2C - - thumb_func_start sub_80F7B40 -sub_80F7B40: @ 80F7B40 - push {r4,r5,lr} - ldr r5, _080F7B98 - adds r0, r5, 0 - adds r0, 0x1A - ldr r4, _080F7B9C - adds r1, r4, 0 - bl StringCopy - movs r2, 0 - adds r3, r5, 0 - adds r3, 0x25 - adds r4, 0xA -_080F7B58: - adds r1, r3, r2 - adds r0, r2, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x3 - bls _080F7B58 - movs r2, 0 - movs r0, 0x29 - adds r0, r5 - mov r12, r0 - adds r4, r5, 0x2 - adds r3, r5, 0 - adds r3, 0xE -_080F7B78: - lsls r0, r2, 1 - adds r1, r4, r0 - adds r0, r3, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080F7B78 - movs r0, 0x1 - mov r1, r12 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F7B98: .4byte gSaveBlock1 + 0x2D94 -_080F7B9C: .4byte gSaveBlock2 - thumb_func_end sub_80F7B40 - - thumb_func_start sub_80F7BA0 -sub_80F7BA0: @ 80F7BA0 - push {r4-r7,lr} - ldr r1, _080F7C48 - ldr r0, _080F7C4C - ldrh r0, [r0] - adds r5, r1, 0 - adds r5, 0xE - cmp r0, 0 - bne _080F7BB2 - adds r5, r1, 0x2 -_080F7BB2: - ldr r2, _080F7C50 - adds r4, r2, 0 - movs r6, 0 -_080F7BB8: - ldrh r1, [r5] - adds r5, 0x2 - adds r0, r2, 0 - bl sub_80EB3FC - adds r2, r0, 0 - adds r7, r6, 0x1 - cmp r2, r4 - beq _080F7BDA - movs r1, 0x37 -_080F7BCC: - ldrb r0, [r4] - cmp r0, 0 - bne _080F7BD4 - strb r1, [r4] -_080F7BD4: - adds r4, 0x1 - cmp r2, r4 - bne _080F7BCC -_080F7BDA: - adds r4, 0x1 - movs r0, 0 - strb r0, [r2] - adds r2, 0x1 - ldrh r1, [r5] - adds r5, 0x2 - adds r0, r2, 0 - bl sub_80EB3FC - adds r2, r0, 0 - cmp r2, r4 - beq _080F7C02 - movs r1, 0x37 -_080F7BF4: - ldrb r0, [r4] - cmp r0, 0 - bne _080F7BFC - strb r1, [r4] -_080F7BFC: - adds r4, 0x1 - cmp r2, r4 - bne _080F7BF4 -_080F7C02: - adds r4, 0x1 - movs r0, 0xFE - strb r0, [r2] - adds r2, 0x1 - ldrh r1, [r5] - adds r5, 0x2 - adds r0, r2, 0 - bl sub_80EB3FC - adds r2, r0, 0 - cmp r2, r4 - beq _080F7C2A - movs r1, 0x37 -_080F7C1C: - ldrb r0, [r4] - cmp r0, 0 - bne _080F7C24 - strb r1, [r4] -_080F7C24: - adds r4, 0x1 - cmp r2, r4 - bne _080F7C1C -_080F7C2A: - cmp r6, 0 - bne _080F7C3A - movs r0, 0xFC - strb r0, [r2] - adds r2, 0x1 - movs r0, 0xF - strb r0, [r2] - adds r2, 0x1 -_080F7C3A: - lsls r0, r7, 16 - lsrs r6, r0, 16 - cmp r6, 0x1 - bls _080F7BB8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F7C48: .4byte gSaveBlock1 + 0x2D94 -_080F7C4C: .4byte gUnknown_0202E8CC -_080F7C50: .4byte gStringVar4 - thumb_func_end sub_80F7BA0 - - thumb_func_start sub_80F7C54 -sub_80F7C54: @ 80F7C54 - push {lr} - ldr r0, _080F7C6C - ldrb r0, [r0] - bl sub_80F7F80 - bl MenuDisplayMessageBox - bl ScriptContext1_Stop - pop {r0} - bx r0 - .align 2, 0 -_080F7C6C: .4byte gUnknown_0202E8CC - thumb_func_end sub_80F7C54 - - thumb_func_start sub_80F7C70 -sub_80F7C70: @ 80F7C70 - ldr r0, _080F7C7C - ldr r1, _080F7C80 - ldrb r1, [r1, 0x1] - strh r1, [r0] - bx lr - .align 2, 0 -_080F7C7C: .4byte gScriptResult -_080F7C80: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7C70 - - thumb_func_start sub_80F7C84 -sub_80F7C84: @ 80F7C84 - ldr r1, _080F7C8C - movs r0, 0x1 - strb r0, [r1, 0x1] - bx lr - .align 2, 0 -_080F7C8C: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7C84 - - thumb_func_start sub_80F7C90 -sub_80F7C90: @ 80F7C90 - push {lr} - bl sub_80EB8EC - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _080F7CA8 - cmp r1, r0 - bne _080F7CB0 - ldr r1, _080F7CAC - movs r0, 0 - b _080F7CBA - .align 2, 0 -_080F7CA8: .4byte 0x0000ffff -_080F7CAC: .4byte gScriptResult -_080F7CB0: - ldr r0, _080F7CC0 - bl sub_80EB3FC - ldr r1, _080F7CC4 - movs r0, 0x1 -_080F7CBA: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080F7CC0: .4byte gStringVar1 -_080F7CC4: .4byte gScriptResult - thumb_func_end sub_80F7C90 - - thumb_func_start sub_80F7CC8 -sub_80F7CC8: @ 80F7CC8 - push {lr} - ldr r2, _080F7CDC - ldrb r0, [r2, 0x1] - cmp r0, 0xA - bne _080F7CE4 - ldr r1, _080F7CE0 - movs r0, 0 - strh r0, [r1] - strb r0, [r2, 0x1] - b _080F7CEA - .align 2, 0 -_080F7CDC: .4byte gSaveBlock1 + 0x2D94 -_080F7CE0: .4byte gScriptResult -_080F7CE4: - ldr r1, _080F7CF0 - movs r0, 0x1 - strh r0, [r1] -_080F7CEA: - pop {r0} - bx r0 - .align 2, 0 -_080F7CF0: .4byte gScriptResult - thumb_func_end sub_80F7CC8 - - thumb_func_start sub_80F7CF4 -sub_80F7CF4: @ 80F7CF4 - push {r4-r6,lr} - ldr r5, _080F7D50 - ldrb r0, [r5, 0x1] - cmp r0, 0 - bne _080F7D02 - bl sub_80F7DC0 -_080F7D02: - ldrb r0, [r5, 0x1] - lsls r0, 1 - adds r6, r5, 0x4 - adds r0, r6 - ldrh r1, [r0] - ldr r0, _080F7D54 - cmp r1, r0 - beq _080F7D68 - bl Random - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x7 - ands r4, r0 - ldr r0, _080F7D58 - ldrb r1, [r5, 0x1] - lsls r1, 1 - adds r1, r6 - ldrh r1, [r1] - bl sub_80EB3FC - adds r2, r0, 0 - ldr r1, _080F7D5C - bl StringCopy - adds r2, r0, 0 - ldr r0, _080F7D60 - lsls r4, 2 - adds r4, r0 - ldr r1, [r4] - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - ldr r1, _080F7D64 - bl StringCopy - b _080F7D88 - .align 2, 0 -_080F7D50: .4byte gSaveBlock1 + 0x2D94 -_080F7D54: .4byte 0x0000ffff -_080F7D58: .4byte gStringVar4 -_080F7D5C: .4byte gOtherText_Is -_080F7D60: .4byte gUnknown_083E5388 -_080F7D64: .4byte gOtherText_DontYouAgree -_080F7D68: - ldr r0, _080F7DA0 - ldr r3, _080F7DA4 - ldrb r1, [r5, 0x2] - adds r2, r1, 0x1 - strb r2, [r5, 0x2] - lsls r1, 24 - lsrs r1, 24 - adds r2, r5, 0 - adds r2, 0x18 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl StringCopy -_080F7D88: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _080F7DA8 - movs r0, 0xA - b _080F7DAC - .align 2, 0 -_080F7DA0: .4byte gStringVar4 -_080F7DA4: .4byte gUnknown_083E53A8 -_080F7DA8: - ldrb r0, [r5, 0x1] - adds r0, 0x1 -_080F7DAC: - strb r0, [r5, 0x1] - ldr r1, _080F7DBC - movs r0, 0x1 - strh r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F7DBC: .4byte gScriptResult - thumb_func_end sub_80F7CF4 - - thumb_func_start sub_80F7DC0 -sub_80F7DC0: @ 80F7DC0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - ldr r1, _080F7E84 - mov r0, sp - movs r2, 0x18 - bl memcpy - movs r5, 0 - movs r0, 0x2 - add r0, sp - mov r8, r0 - ldr r1, _080F7E88 - adds r1, 0x18 - adds r3, r1, 0 -_080F7DE4: - adds r0, r3, r5 - strb r5, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x7 - bls _080F7DE4 - movs r5, 0 - ldr r2, _080F7E88 - adds r2, 0x4 - mov r9, r2 - adds r6, r1, 0 -_080F7DFC: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r4, r5, 0x1 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, r6, r5 - ldrb r7, [r2] - adds r1, r6, r1 - ldrb r0, [r1] - strb r0, [r2] - strb r7, [r1] - lsls r4, 16 - lsrs r5, r4, 16 - cmp r5, 0x7 - bls _080F7DFC - movs r3, 0 - mov r10, r3 - movs r5, 0 -_080F7E2A: - lsls r4, r5, 2 - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - bl sub_80EAE88 - add r4, r8 - strh r0, [r4] - add r0, r10 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _080F7E2A - movs r0, 0 - ldr r2, _080F7E88 - strb r0, [r2, 0x2] - movs r7, 0 - movs r5, 0 -_080F7E56: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x2 - bhi _080F7E90 - cmp r7, 0x7 - bhi _080F7E90 - lsls r0, r5, 1 - add r0, r9 - ldr r1, _080F7E8C - strh r1, [r0] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - adds r4, r5, 0x1 - b _080F7EE2 - .align 2, 0 -_080F7E84: .4byte gUnknown_083E53C8 -_080F7E88: .4byte gSaveBlock1 + 0x2D94 -_080F7E8C: .4byte 0x0000ffff -_080F7E90: - bl Random - lsls r0, 16 - lsrs r0, 16 - mov r1, r10 - bl __umodsi3 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0 - adds r4, r5, 0x1 - lsls r6, r5, 1 - cmp r5, 0x5 - bhi _080F7ECC - mov r3, r8 - ldrh r0, [r3] - b _080F7EC2 -_080F7EB2: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r5, 0x5 - bhi _080F7ECC - lsls r0, r1, 2 - adds r0, r3, r0 - ldrh r0, [r0] -_080F7EC2: - subs r0, r2, r0 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r0, 0 - bgt _080F7EB2 -_080F7ECC: - cmp r1, 0x6 - bne _080F7ED2 - movs r1, 0 -_080F7ED2: - lsls r0, r1, 2 - add r0, sp - ldrh r0, [r0] - bl sub_80EB784 - mov r2, r9 - adds r1, r2, r6 - strh r0, [r1] -_080F7EE2: - lsls r0, r4, 16 - lsrs r5, r0, 16 - cmp r5, 0x9 - bls _080F7E56 - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80F7DC0 - - thumb_func_start sub_80F7EFC -sub_80F7EFC: @ 80F7EFC - ldr r0, _080F7F08 - adds r0, 0x29 - movs r1, 0 - strb r1, [r0] - bx lr - .align 2, 0 -_080F7F08: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7EFC - - thumb_func_start sub_80F7F0C -sub_80F7F0C: @ 80F7F0C - ldr r1, _080F7F14 - movs r0, 0 - strb r0, [r1, 0x1] - bx lr - .align 2, 0 -_080F7F14: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7F0C - - thumb_func_start sub_80F7F18 -sub_80F7F18: @ 80F7F18 - push {lr} - bl sub_8109A20 - pop {r0} - bx r0 - thumb_func_end sub_80F7F18 - - thumb_func_start sub_80F7F24 -sub_80F7F24: @ 80F7F24 - push {lr} - bl sub_80F8428 - pop {r0} - bx r0 - thumb_func_end sub_80F7F24 - - thumb_func_start sub_80F7F30 -sub_80F7F30: @ 80F7F30 - push {lr} - bl GetCurrentMauvilleOldMan - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080F7F76 - lsls r0, 2 - ldr r1, _080F7F48 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F7F48: .4byte _080F7F4C - .align 2, 0 -_080F7F4C: - .4byte _080F7F60 - .4byte _080F7F66 - .4byte _080F7F72 - .4byte _080F7F6C - .4byte _080F7F76 -_080F7F60: - bl sub_80F7EFC - b _080F7F76 -_080F7F66: - bl sub_80F7F0C - b _080F7F76 -_080F7F6C: - bl sub_80F7F24 - b _080F7F76 -_080F7F72: - bl sub_80F7F18 -_080F7F76: - bl sub_80F83D0 - pop {r0} - bx r0 - thumb_func_end sub_80F7F30 - - thumb_func_start sub_80F7F80 -sub_80F7F80: @ 80F7F80 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080F7FA8 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F7FAC - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x12] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F7FA8: .4byte sub_80F8184 -_080F7FAC: .4byte gTasks - thumb_func_end sub_80F7F80 - - thumb_func_start sub_80F7FB0 -sub_80F7FB0: @ 80F7FB0 - push {r4-r7,lr} - adds r6, r1, 0 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x5 - bls _080F7FBE - b _080F817A -_080F7FBE: - lsls r0, 2 - ldr r1, _080F7FC8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F7FC8: .4byte _080F7FCC - .align 2, 0 -_080F7FCC: - .4byte _080F7FE4 - .4byte _080F817A - .4byte _080F8040 - .4byte _080F8074 - .4byte _080F8074 - .4byte _080F817A -_080F7FE4: - ldr r2, _080F8034 - ldr r0, _080F8038 - ldrh r0, [r0] - adds r1, r2, 0 - adds r1, 0xE - cmp r0, 0 - bne _080F7FF4 - adds r1, r2, 0x2 -_080F7FF4: - adds r2, r1, 0 - adds r1, r6, 0 - adds r1, 0xC - movs r3, 0x5 -_080F7FFC: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080F7FFC - ldr r2, _080F803C - adds r4, r2, 0 - movs r2, 0 - adds r1, r6, 0 - adds r1, 0x18 - movs r3, 0x5 -_080F8016: - ldrh r0, [r1] - orrs r0, r4 - strh r0, [r1] - strh r2, [r1, 0x2] - strh r2, [r1, 0x4] - strh r2, [r1, 0x6] - adds r1, 0x8 - subs r3, 0x1 - cmp r3, 0 - bge _080F8016 - movs r0, 0 - strb r0, [r6] - strb r0, [r6, 0x1] - strh r0, [r6, 0x4] - b _080F817A - .align 2, 0 -_080F8034: .4byte gSaveBlock1 + 0x2D94 -_080F8038: .4byte gUnknown_0202E8CC -_080F803C: .4byte 0x0000ffff -_080F8040: - ldrb r1, [r6] - lsls r1, 1 - adds r0, r6, 0 - adds r0, 0xC - adds r0, r1 - ldrh r4, [r0] - lsrs r0, r4, 9 - ldr r1, _080F8070 - ands r1, r4 - bl sub_814A2D0 - adds r1, r0, 0 - movs r0, 0 - strh r0, [r6, 0x4] - movs r2, 0x3 - ands r2, r4 - lsrs r4, 3 - movs r0, 0x1 - ands r4, r0 - adds r2, r4 - adds r0, r6, 0 - bl sub_814A2EC - b _080F817A - .align 2, 0 -_080F8070: .4byte 0x000001ff -_080F8074: - ldrb r1, [r6, 0x1] - lsls r0, r1, 3 - adds r0, 0x18 - adds r7, r6, r0 - ldrb r0, [r6, 0x3] - cmp r0, 0x1 - beq _080F8124 - cmp r0, 0x1 - bgt _080F808C - cmp r0, 0 - beq _080F8092 - b _080F817A -_080F808C: - cmp r0, 0xFE - beq _080F8170 - b _080F817A -_080F8092: - ldrb r0, [r6, 0x2] - cmp r0, 0 - bne _080F80D0 - cmp r1, 0x6 - beq _080F80A2 - ldrh r0, [r7] - cmp r0, 0xFF - bne _080F80A6 -_080F80A2: - movs r0, 0xFE - b _080F8178 -_080F80A6: - ldrh r0, [r7, 0x2] - strb r0, [r6, 0x2] - ldrh r0, [r7] - cmp r0, 0x32 - bhi _080F80CA - movs r1, 0x3 - bl __udivsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r0, r1, 1 - adds r0, r1 - adds r0, 0xF9 - lsls r0, 16 - lsrs r0, 16 - bl m4aSongNumStart -_080F80CA: - movs r0, 0x1 - strb r0, [r6, 0x3] - b _080F8114 -_080F80D0: - ldrh r1, [r6, 0xA] - movs r2, 0xA - ldrsh r0, [r6, r2] - cmp r0, 0xA - ble _080F80E0 - ldrh r0, [r6, 0x6] - subs r0, 0x2 - strh r0, [r6, 0x6] -_080F80E0: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080F80EE - ldrh r0, [r6, 0x8] - adds r0, 0x40 - b _080F80F2 -_080F80EE: - ldrh r0, [r6, 0x8] - subs r0, 0x40 -_080F80F2: - strh r0, [r6, 0x8] - ldr r4, _080F811C - ldr r5, _080F8120 - ldrh r2, [r6, 0x6] - adds r0, r4, 0 - adds r1, r5, 0 - bl m4aMPlayVolumeControl - movs r0, 0x8 - ldrsh r2, [r6, r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl m4aMPlayPitchControl - ldrh r0, [r6, 0xA] - adds r0, 0x1 - strh r0, [r6, 0xA] -_080F8114: - ldrb r0, [r6, 0x2] - subs r0, 0x1 - strb r0, [r6, 0x2] - b _080F817A - .align 2, 0 -_080F811C: .4byte gMPlay_SE2 -_080F8120: .4byte 0x0000ffff -_080F8124: - adds r0, r1, 0x1 - movs r1, 0 - strb r0, [r6, 0x1] - strb r1, [r6, 0x3] - ldrh r0, [r7] - cmp r0, 0x32 - bhi _080F817A - ldrh r0, [r7, 0x6] - lsls r0, 4 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r6, 0x6] - ldr r4, _080F8168 - ldr r5, _080F816C - ldrh r2, [r6, 0x6] - adds r0, r4, 0 - adds r1, r5, 0 - bl m4aMPlayVolumeControl - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r7, [r7, 0x4] - adds r0, r7 - strh r0, [r6, 0x8] - movs r0, 0x8 - ldrsh r2, [r6, r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl m4aMPlayPitchControl - b _080F817A - .align 2, 0 -_080F8168: .4byte gMPlay_SE2 -_080F816C: .4byte 0x0000ffff -_080F8170: - ldr r0, _080F8180 - bl m4aMPlayStop - movs r0, 0xFF -_080F8178: - strb r0, [r6, 0x3] -_080F817A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F8180: .4byte gMPlay_SE2 - thumb_func_end sub_80F7FB0 - - thumb_func_start sub_80F8184 -sub_80F8184: @ 80F8184 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080F81B4 - adds r5, r0, r1 - ldr r1, _080F81B8 - adds r0, r5, 0 - bl sub_80F7FB0 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x5 - bls _080F81A8 - b _080F83C8 -_080F81A8: - lsls r0, 2 - ldr r1, _080F81BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F81B4: .4byte gTasks -_080F81B8: .4byte gUnknown_03005DA0 -_080F81BC: .4byte _080F81C0 - .align 2, 0 -_080F81C0: - .4byte _080F81D8 - .4byte _080F8218 - .4byte _080F8228 - .4byte _080F82D8 - .4byte _080F83B8 - .4byte _080F82C6 -_080F81D8: - bl sub_80F7BA0 - ldr r4, _080F820C - ldr r0, [r4] - ldr r1, _080F8210 - bl InitWindowFromConfig - ldr r0, [r4] - ldr r1, _080F8214 - movs r2, 0xF - str r2, [sp] - movs r2, 0x2 - movs r3, 0x4 - bl sub_8002EB0 - movs r0, 0 - strh r0, [r5, 0xA] - strh r0, [r5, 0xC] - strh r0, [r5, 0xE] - strh r0, [r5, 0x10] - movs r0, 0x4 - bl FadeOutBGMTemporarily - movs r0, 0x1 - b _080F83C6 - .align 2, 0 -_080F820C: .4byte gMenuWindowPtr -_080F8210: .4byte gWindowConfig_81E6CE4 -_080F8214: .4byte gStringVar4 -_080F8218: - bl IsBGMPausedOrStopped - lsls r0, 24 - cmp r0, 0 - bne _080F8224 - b _080F83C8 -_080F8224: - movs r0, 0x2 - b _080F83C6 -_080F8228: - ldr r4, _080F8240 - movs r2, 0xE - ldrsh r1, [r5, r2] - ldr r0, _080F8244 - adds r1, r0 - movs r3, 0 - ldrb r0, [r1] - ldr r7, _080F8248 - ldrh r2, [r5, 0x12] - ldr r6, _080F824C - b _080F825A - .align 2, 0 -_080F8240: .4byte gSaveBlock1 + 0x2D94 -_080F8244: .4byte gStringVar4 -_080F8248: .4byte gUnknown_03005DA0 -_080F824C: .4byte gUnknown_020388BC -_080F8250: - adds r1, 0x1 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - ldrb r0, [r1] -_080F825A: - cmp r0, 0 - beq _080F826A - cmp r0, 0xFE - beq _080F826A - cmp r0, 0xFC - beq _080F826A - cmp r0, 0xFF - bne _080F8250 -_080F826A: - cmp r2, 0 - bne _080F8278 - movs r0, 0x10 - ldrsh r1, [r5, r0] - lsls r1, 1 - adds r0, r4, 0x2 - b _080F8282 -_080F8278: - movs r2, 0x10 - ldrsh r1, [r5, r2] - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0xE -_080F8282: - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x3 - ands r1, r0 - lsrs r0, 3 - movs r2, 0x1 - ands r0, r2 - adds r1, r0 - strh r1, [r6] - movs r1, 0x4 - ldrsh r0, [r7, r1] - adds r1, r3, 0 - bl __divsi3 - movs r1, 0 - strh r0, [r7, 0x4] - lsls r0, 16 - cmp r0, 0 - bgt _080F82AC - movs r0, 0x1 - strh r0, [r7, 0x4] -_080F82AC: - ldrh r0, [r5, 0x10] - adds r0, 0x1 - strh r0, [r5, 0x10] - movs r2, 0xC - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _080F82BE - movs r0, 0x3 - b _080F82C0 -_080F82BE: - movs r0, 0x5 -_080F82C0: - strh r0, [r5, 0x8] - strh r1, [r5, 0xA] - b _080F83C8 -_080F82C6: - ldrh r1, [r5, 0xC] - movs r2, 0xC - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _080F82D2 - b _080F83C4 -_080F82D2: - subs r0, r1, 0x1 - strh r0, [r5, 0xC] - b _080F83C8 -_080F82D8: - ldr r1, _080F8304 - movs r2, 0xE - ldrsh r0, [r5, r2] - adds r0, r1 - ldrb r4, [r0] - cmp r4, 0xFF - bne _080F830C - movs r0, 0xC8 - lsls r0, 1 - movs r1, 0x6 - bl FadeInNewBGM - ldr r0, _080F8308 - movs r1, 0x2 - bl m4aMPlayFadeOutTemporarily - bl EnableBothScriptContexts - adds r0, r6, 0 - bl DestroyTask - b _080F83C8 - .align 2, 0 -_080F8304: .4byte gStringVar4 -_080F8308: .4byte gMPlay_SE2 -_080F830C: - cmp r4, 0 - bne _080F832C - ldr r0, _080F8328 - ldr r0, [r0] - bl sub_8003418 - ldrh r0, [r5, 0xE] - adds r0, 0x1 - strh r0, [r5, 0xE] - movs r0, 0x2 - strh r0, [r5, 0x8] - strh r4, [r5, 0xC] - b _080F83C8 - .align 2, 0 -_080F8328: .4byte gMenuWindowPtr -_080F832C: - cmp r4, 0xFE - bne _080F8340 - ldrh r0, [r5, 0xE] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0xE] - movs r0, 0x2 - strh r0, [r5, 0x8] - strh r1, [r5, 0xC] - b _080F83C8 -_080F8340: - cmp r4, 0xFC - bne _080F8354 - ldrh r0, [r5, 0xE] - adds r0, 0x2 - strh r0, [r5, 0xE] - movs r0, 0x2 - strh r0, [r5, 0x8] - movs r0, 0x8 - strh r0, [r5, 0xC] - b _080F83C8 -_080F8354: - cmp r4, 0x37 - bne _080F8374 - movs r4, 0 - strb r4, [r0] - ldr r0, _080F8370 - ldr r0, [r0] - bl sub_8003418 - ldrh r0, [r5, 0xE] - adds r0, 0x1 - strh r0, [r5, 0xE] - strh r4, [r5, 0xC] - b _080F83C8 - .align 2, 0 -_080F8370: .4byte gMenuWindowPtr -_080F8374: - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080F8394 - cmp r0, 0x1 - bgt _080F8386 - cmp r0, 0 - beq _080F838C - b _080F83C8 -_080F8386: - cmp r0, 0x2 - beq _080F83A0 - b _080F83C8 -_080F838C: - ldr r0, _080F839C - ldr r0, [r0] - bl sub_8003418 -_080F8394: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - b _080F83C8 - .align 2, 0 -_080F839C: .4byte gMenuWindowPtr -_080F83A0: - ldrh r0, [r5, 0xE] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0xE] - strh r1, [r5, 0xA] - ldr r0, _080F83B4 - ldrh r0, [r0, 0x4] - strh r0, [r5, 0xC] - movs r0, 0x4 - b _080F83C6 - .align 2, 0 -_080F83B4: .4byte gUnknown_03005DA0 -_080F83B8: - ldrh r0, [r5, 0xC] - subs r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _080F83C8 -_080F83C4: - movs r0, 0x3 -_080F83C6: - strh r0, [r5, 0x8] -_080F83C8: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80F8184 - - thumb_func_start sub_80F83D0 -sub_80F83D0: @ 80F83D0 - push {r4,lr} - ldr r4, _080F83F4 - bl GetCurrentMauvilleOldMan - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 8 - movs r0, 0x8A - lsls r0, 15 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F83F4: .4byte 0x00004010 - thumb_func_end sub_80F83D0 - - thumb_func_start sub_80F83F8 -sub_80F83F8: @ 80F83F8 - push {r4,lr} - ldr r0, _080F8424 - movs r2, 0 - movs r1, 0x3 - strb r1, [r0] - strb r2, [r0, 0x1] - movs r4, 0 - movs r3, 0xFF - adds r1, r0, 0x4 - movs r2, 0x3 -_080F840C: - strb r4, [r1] - ldrb r0, [r1, 0x4] - orrs r0, r3 - strb r0, [r1, 0x4] - adds r1, 0x1 - subs r2, 0x1 - cmp r2, 0 - bge _080F840C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F8424: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F83F8 - - thumb_func_start sub_80F8428 -sub_80F8428: @ 80F8428 - ldr r0, _080F8434 - movs r2, 0 - movs r1, 0x3 - strb r1, [r0] - strb r2, [r0, 0x1] - bx lr - .align 2, 0 -_080F8434: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F8428 - - thumb_func_start sub_80F8438 -sub_80F8438: @ 80F8438 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x32 - bne _080F8444 - movs r0, 0 -_080F8444: - bl sub_8053108 - pop {r1} - bx r1 - thumb_func_end sub_80F8438 - - thumb_func_start sub_80F844C -sub_80F844C: @ 80F844C - push {lr} - adds r3, r0, 0 - movs r2, 0 - ldr r1, _080F8460 -_080F8454: - ldrb r0, [r1] - cmp r0, r3 - bne _080F8464 - adds r0, r1, 0 - b _080F846E - .align 2, 0 -_080F8460: .4byte gUnknown_083E53E0 -_080F8464: - adds r1, 0x10 - adds r2, 0x1 - cmp r2, 0x23 - ble _080F8454 - ldr r0, _080F8474 -_080F846E: - pop {r1} - bx r1 - .align 2, 0 -_080F8474: .4byte gUnknown_083E5610 - thumb_func_end sub_80F844C - - thumb_func_start sub_80F8478 -sub_80F8478: @ 80F8478 - push {lr} - bl sub_80F844C - ldr r0, [r0, 0x4] - pop {r1} - bx r1 - thumb_func_end sub_80F8478 - - thumb_func_start sub_80F8484 -sub_80F8484: @ 80F8484 - push {lr} - bl sub_80F844C - ldr r0, [r0, 0xC] - pop {r1} - bx r1 - thumb_func_end sub_80F8484 - - thumb_func_start sub_80F8490 -sub_80F8490: @ 80F8490 - push {lr} - bl sub_80F844C - ldr r0, [r0, 0x8] - pop {r1} - bx r1 - thumb_func_end sub_80F8490 - - thumb_func_start sub_80F849C -sub_80F849C: @ 80F849C - push {lr} - movs r1, 0 - ldr r2, _080F84C4 - ldrb r0, [r2, 0x4] - cmp r0, 0 - beq _080F84BC - adds r2, 0x4 -_080F84AA: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bhi _080F84BC - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080F84AA -_080F84BC: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080F84C4: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F849C - - thumb_func_start sub_80F84C8 -sub_80F84C8: @ 80F84C8 - lsls r0, 2 - ldr r1, _080F84E8 - adds r0, r1 - ldrb r2, [r0] - ldrb r1, [r0, 0x1] - lsls r1, 8 - orrs r2, r1 - ldrb r1, [r0, 0x2] - lsls r1, 16 - orrs r2, r1 - ldrb r0, [r0, 0x3] - lsls r0, 24 - orrs r2, r0 - adds r0, r2, 0 - bx lr - .align 2, 0 -_080F84E8: .4byte gSaveBlock1 + 0x2DB8 - thumb_func_end sub_80F84C8 - - thumb_func_start sub_80F84EC -sub_80F84EC: @ 80F84EC - lsls r0, 2 - ldr r2, _080F8504 - adds r0, r2 - strb r1, [r0] - lsrs r2, r1, 8 - strb r2, [r0, 0x1] - lsrs r2, r1, 16 - strb r2, [r0, 0x2] - lsrs r1, 24 - strb r1, [r0, 0x3] - bx lr - .align 2, 0 -_080F8504: .4byte gSaveBlock1 + 0x2DB8 - thumb_func_end sub_80F84EC - - thumb_func_start sub_80F8508 -sub_80F8508: @ 80F8508 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080F8528 - adds r0, 0x4 - adds r0, r5, r0 - ldrb r0, [r0] - bl sub_80F8438 - adds r4, r0, 0 - adds r0, r5, 0 - bl sub_80F84C8 - cmp r4, r0 - bhi _080F852C - movs r0, 0 - b _080F852E - .align 2, 0 -_080F8528: .4byte gSaveBlock1 + 0x2D94 -_080F852C: - movs r0, 0x1 -_080F852E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F8508 - - thumb_func_start sub_80F8534 -sub_80F8534: @ 80F8534 - push {r4,r5,lr} - adds r5, r1, 0 - lsls r4, r0, 3 - subs r4, r0 - ldr r0, _080F855C - adds r4, r0 - adds r0, r5, 0 - movs r1, 0xFF - movs r2, 0x8 - bl memset - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x7 - bl memcpy - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F855C: .4byte gSaveBlock1 + 0x2D9C - thumb_func_end sub_80F8534 - - thumb_func_start sub_80F8560 -sub_80F8560: @ 80F8560 - push {r4-r6,lr} - adds r6, r1, 0 - lsls r5, r0, 3 - subs r5, r0 - ldr r0, _080F8594 - adds r5, r0 - adds r0, r6, 0 - bl StringLength - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0xFF - movs r2, 0x7 - bl memset - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl StringCopyN - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F8594: .4byte gSaveBlock1 + 0x2D9C - thumb_func_end sub_80F8560 - - thumb_func_start sub_80F8598 -sub_80F8598: @ 80F8598 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - ldr r0, _080F85EC - adds r0, 0x4 - adds r0, r5, r0 - strb r6, [r0] - ldr r1, _080F85F0 - adds r0, r5, 0 - bl sub_80F8560 - lsls r4, r6, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80F8438 - adds r1, r0, 0 - adds r0, r5, 0 - bl sub_80F84EC - ldr r5, _080F85F4 - adds r0, r4, 0 - bl sub_80F8438 - adds r1, r0, 0 - adds r0, r5, 0 - movs r2, 0 - movs r3, 0xA - bl ConvertIntToDecimalStringN - ldr r4, _080F85F8 - adds r0, r6, 0 - bl sub_80F8490 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F85EC: .4byte gSaveBlock1 + 0x2D94 -_080F85F0: .4byte gSaveBlock2 -_080F85F4: .4byte gStringVar1 -_080F85F8: .4byte gStringVar2 - thumb_func_end sub_80F8598 - - thumb_func_start sub_80F85FC -sub_80F85FC: @ 80F85FC - push {r4-r7,lr} - adds r7, r0, 0 - adds r6, r1, 0 - movs r5, 0 - cmp r5, r6 - bge _080F8612 -_080F8608: - adds r0, r7, r5 - strb r5, [r0] - adds r5, 0x1 - cmp r5, r6 - blt _080F8608 -_080F8612: - cmp r6, 0 - ble _080F8648 - adds r5, r6, 0 -_080F8618: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl __modsi3 - adds r4, r0, 0 - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl __modsi3 - adds r4, r7, r4 - ldrb r2, [r4] - adds r0, r7, r0 - ldrb r1, [r0] - strb r1, [r4] - strb r2, [r0] - subs r5, 0x1 - cmp r5, 0 - bne _080F8618 -_080F8648: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80F85FC - - thumb_func_start sub_80F8650 -sub_80F8650: @ 80F8650 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r7, sp - mov r10, sp - ldr r0, _080F86D4 - ldr r0, [r0] - lsls r0, 3 - lsrs r0, 3 - adds r0, 0x3 - lsrs r0, 2 - lsls r0, 2 - mov r1, sp - subs r1, r0 - mov sp, r1 - mov r8, sp - mov r0, sp - movs r1, 0x24 - bl sub_80F85FC - movs r5, 0 - ldr r0, _080F86D8 - mov r9, r0 - ldr r3, _080F86DC -_080F8686: - mov r1, r8 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, 4 - add r0, r9 - ldrb r4, [r0] - ldrb r6, [r0, 0x1] - movs r1, 0 - ldrb r0, [r3, 0x4] - cmp r0, r4 - beq _080F86AC - ldr r2, _080F86E0 -_080F869E: - adds r1, 0x1 - cmp r1, 0x3 - bgt _080F86AC - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, r4 - bne _080F869E -_080F86AC: - cmp r1, 0x4 - bne _080F86E4 - adds r0, r4, 0 - str r3, [r7] - bl sub_80F8438 - ldr r3, [r7] - cmp r0, r6 - bcc _080F86E4 - movs r0, 0x1 - strb r0, [r3, 0x1] - bl sub_80F849C - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl sub_80F8598 - movs r0, 0x1 - b _080F86EC - .align 2, 0 -_080F86D4: .4byte gUnknown_083E5620 -_080F86D8: .4byte gUnknown_083E53E0 -_080F86DC: .4byte gSaveBlock1 + 0x2D94 -_080F86E0: .4byte gSaveBlock1 + 0x2D98 -_080F86E4: - adds r5, 0x1 - cmp r5, 0x23 - ble _080F8686 - movs r0, 0 -_080F86EC: - mov sp, r10 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F8650 - - thumb_func_start sub_80F8700 -sub_80F8700: @ 80F8700 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080F8748 - adds r0, 0x4 - adds r0, r5, r0 - ldrb r6, [r0] - ldr r4, _080F874C - adds r0, r5, 0 - bl sub_80F84C8 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0xA - bl ConvertIntToDecimalStringN - ldr r4, _080F8750 - adds r0, r6, 0 - bl sub_80F8490 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r1, _080F8754 - adds r0, r5, 0 - bl sub_80F8534 - adds r0, r6, 0 - bl sub_80F8484 - bl ShowFieldMessage - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F8748: .4byte gSaveBlock1 + 0x2D94 -_080F874C: .4byte gStringVar1 -_080F8750: .4byte gStringVar2 -_080F8754: .4byte gStringVar3 - thumb_func_end sub_80F8700 - - thumb_func_start sub_80F8758 -sub_80F8758: @ 80F8758 - push {r4-r6,lr} - bl sub_80F849C - adds r3, r0, 0 - lsls r3, 25 - movs r0, 0x80 - lsls r0, 19 - adds r3, r0 - lsrs r3, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x19 - bl MenuDrawTextWindow - movs r4, 0 - ldr r1, _080F87BC - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _080F87A4 - adds r6, r1, 0x4 - movs r5, 0x80 - lsls r5, 18 -_080F8784: - bl sub_80F8478 - lsrs r2, r5, 24 - movs r1, 0x1 - bl MenuPrint - movs r1, 0x80 - lsls r1, 18 - adds r5, r1 - adds r4, 0x1 - cmp r4, 0x3 - bgt _080F87A4 - adds r0, r4, r6 - ldrb r0, [r0] - cmp r0, 0 - bne _080F8784 -_080F87A4: - ldr r0, _080F87C0 - lsls r2, r4, 25 - movs r1, 0x80 - lsls r1, 18 - adds r2, r1 - lsrs r2, 24 - movs r1, 0x1 - bl MenuPrint - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F87BC: .4byte gSaveBlock1 + 0x2D94 -_080F87C0: .4byte gPCText_Cancel - thumb_func_end sub_80F8758 - - thumb_func_start sub_80F87C4 -sub_80F87C4: @ 80F87C4 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080F87E4 - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0 - beq _080F87E8 - cmp r5, 0x1 - beq _080F8810 - b _080F8862 - .align 2, 0 -_080F87E4: .4byte gTasks -_080F87E8: - bl sub_80F8758 - bl sub_80F849C - adds r3, r0, 0 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - str r5, [sp] - movs r0, 0x18 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x2 - bl InitMenu - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080F8862 -_080F8810: - bl ProcessMenuInput - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _080F8862 - adds r0, 0x1 - cmp r4, r0 - beq _080F8832 - bl sub_80F849C - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _080F8840 -_080F8832: - ldr r1, _080F883C - movs r0, 0 - strh r0, [r1] - b _080F8848 - .align 2, 0 -_080F883C: .4byte gScriptResult -_080F8840: - ldr r0, _080F886C - strh r5, [r0] - ldr r0, _080F8870 - strb r4, [r0] -_080F8848: - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x19 - movs r3, 0xC - bl MenuZeroFillWindowRect - adds r0, r6, 0 - bl DestroyTask - bl EnableBothScriptContexts -_080F8862: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F886C: .4byte gScriptResult -_080F8870: .4byte gUnknown_03000748 - thumb_func_end sub_80F87C4 - - thumb_func_start sub_80F8874 -sub_80F8874: @ 80F8874 - push {lr} - ldr r0, _080F8884 - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080F8884: .4byte sub_80F87C4 - thumb_func_end sub_80F8874 - - thumb_func_start sub_80F8888 -sub_80F8888: @ 80F8888 - push {lr} - ldr r0, _080F8898 - ldrb r0, [r0] - bl sub_80F8700 - pop {r0} - bx r0 - .align 2, 0 -_080F8898: .4byte gUnknown_03000748 - thumb_func_end sub_80F8888 - - thumb_func_start sub_80F889C -sub_80F889C: @ 80F889C - push {lr} - bl sub_80F849C - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80F889C - - thumb_func_start sub_80F88AC -sub_80F88AC: @ 80F88AC - push {r4,r5,lr} - ldr r1, _080F88C8 - ldr r5, _080F88CC - ldrb r0, [r5] - adds r1, 0x4 - adds r1, r0, r1 - ldrb r4, [r1] - bl sub_80F8508 - cmp r0, 0x1 - beq _080F88D0 - movs r0, 0 - b _080F88DA - .align 2, 0 -_080F88C8: .4byte gSaveBlock1 + 0x2D94 -_080F88CC: .4byte gUnknown_03000748 -_080F88D0: - ldrb r0, [r5] - adds r1, r4, 0 - bl sub_80F8598 - movs r0, 0x1 -_080F88DA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F88AC - - thumb_func_start sub_80F88E0 -sub_80F88E0: @ 80F88E0 - push {lr} - ldr r0, _080F88F0 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _080F88F4 - movs r0, 0x1 - b _080F88F6 - .align 2, 0 -_080F88F0: .4byte gSaveBlock1 + 0x2D94 -_080F88F4: - movs r0, 0 -_080F88F6: - pop {r1} - bx r1 - thumb_func_end sub_80F88E0 - - thumb_func_start sub_80F88FC -sub_80F88FC: @ 80F88FC - push {lr} - bl sub_80F8650 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80F88FC - - thumb_func_start sub_80F890C -sub_80F890C: @ 80F890C - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r6, r1, 0 - lsls r2, 24 - lsrs r5, r2, 24 - ldr r2, _080F8958 - adds r1, r2, 0 - adds r1, 0xFF - movs r0, 0x2 - strb r0, [r1] - adds r0, 0xFE - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x82 - lsls r0, 1 - adds r1, r2, r0 - ldr r0, _080F895C - str r0, [r1] - movs r0, 0x84 - lsls r0, 1 - adds r1, r2, r0 - ldr r0, _080F8960 - str r0, [r1] - ldrh r1, [r4, 0x20] - adds r0, r1, 0 - subs r0, 0x79 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB - bhi _080F8964 - subs r1, 0x79 - adds r0, r2, 0 - adds r0, 0xFA - strb r1, [r0] - b _080F896E - .align 2, 0 -_080F8958: .4byte 0x02000000 -_080F895C: .4byte sub_80EB3FC -_080F8960: .4byte ConvertEasyChatWordsToString -_080F8964: - adds r1, r2, 0 - adds r1, 0xFA - movs r0, 0 - strb r0, [r1] - movs r5, 0 -_080F896E: - ldr r1, _080F8994 - movs r2, 0x80 - lsls r2, 1 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080F8980 - cmp r0, 0x1 - beq _080F899C -_080F8980: - movs r0, 0x86 - lsls r0, 1 - adds r2, r1, r0 - adds r0, r1, 0 - adds r0, 0xFA - ldrb r0, [r0] - lsls r0, 3 - ldr r1, _080F8998 - b _080F89AC - .align 2, 0 -_080F8994: .4byte 0x02000000 -_080F8998: .4byte gUnknown_083E5730 -_080F899C: - movs r0, 0x86 - lsls r0, 1 - adds r2, r1, r0 - adds r0, r1, 0 - adds r0, 0xFA - ldrb r0, [r0] - lsls r0, 3 - ldr r1, _080F89DC -_080F89AC: - adds r0, r1 - str r0, [r2] - ldrh r0, [r4, 0x1E] - mov r1, sp - bl sub_80A2D64 - lsls r0, 16 - ldr r1, _080F89E0 - adds r0, r1 - movs r1, 0xCD - lsls r1, 17 - cmp r0, r1 - bhi _080F89F8 - ldr r0, _080F89E4 - adds r1, r0, 0 - adds r1, 0xFA - ldrb r2, [r1] - adds r1, r0, 0 - cmp r2, 0x6 - beq _080F89E8 - cmp r2, 0x9 - beq _080F89F0 - b _080F89FA - .align 2, 0 -_080F89DC: .4byte gUnknown_083E57A4 -_080F89E0: .4byte 0xffff0000 -_080F89E4: .4byte 0x02000000 -_080F89E8: - adds r2, r1, 0 - adds r2, 0xFB - movs r0, 0x1 - b _080F8A00 -_080F89F0: - adds r2, r1, 0 - adds r2, 0xFB - movs r0, 0x2 - b _080F8A00 -_080F89F8: - ldr r1, _080F8A20 -_080F89FA: - adds r2, r1, 0 - adds r2, 0xFB - movs r0, 0 -_080F8A00: - strb r0, [r2] - adds r0, r1, 0 - adds r0, 0xF4 - str r4, [r0] - subs r0, 0x8 - str r6, [r0] - adds r0, 0xC - strb r5, [r0] - ldr r0, _080F8A24 - bl SetMainCallback2 - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F8A20: .4byte 0x02000000 -_080F8A24: .4byte sub_80F8D50 - thumb_func_end sub_80F890C - - thumb_func_start sub_80F8A28 -sub_80F8A28: @ 80F8A28 - push {r4,r5,lr} - sub sp, 0x8 - ldr r0, _080F8A44 - ldr r1, _080F8A48 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x12 - bls _080F8A3A - b _080F8D3C -_080F8A3A: - lsls r0, 2 - ldr r1, _080F8A4C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F8A44: .4byte gMain -_080F8A48: .4byte 0x0000043c -_080F8A4C: .4byte _080F8A50 - .align 2, 0 -_080F8A50: - .4byte _080F8A9C - .4byte _080F8AB0 - .4byte _080F8AC8 - .4byte _080F8ACE - .4byte _080F8AD4 - .4byte _080F8ADA - .4byte _080F8B10 - .4byte _080F8B1C - .4byte _080F8B28 - .4byte _080F8B34 - .4byte _080F8B3A - .4byte _080F8B54 - .4byte _080F8B78 - .4byte _080F8BA0 - .4byte _080F8C14 - .4byte _080F8C2C - .4byte _080F8C58 - .4byte _080F8CBC - .4byte _080F8CC6 -_080F8A9C: - movs r0, 0 - bl SetVBlankCallback - bl remove_some_task - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - b _080F8D30 -_080F8AB0: - add r1, sp, 0x4 - movs r0, 0 - strh r0, [r1] - movs r1, 0xE0 - lsls r1, 19 - ldr r2, _080F8AC4 - add r0, sp, 0x4 - bl CpuSet - b _080F8D30 - .align 2, 0 -_080F8AC4: .4byte 0x01000200 -_080F8AC8: - bl ResetPaletteFade - b _080F8D30 -_080F8ACE: - bl ResetTasks - b _080F8D30 -_080F8AD4: - bl ResetSpriteData - b _080F8D30 -_080F8ADA: - bl FreeAllSpritePalettes - ldr r0, _080F8B0C - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x32 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - b _080F8D30 - .align 2, 0 -_080F8B0C: .4byte REG_BG0HOFS -_080F8B10: - ldr r0, _080F8B18 - bl SetUpWindowConfig - b _080F8D30 - .align 2, 0 -_080F8B18: .4byte gWindowConfig_81E6DFC -_080F8B1C: - ldr r0, _080F8B24 - bl MultistepInitMenuWindowBegin - b _080F8D30 - .align 2, 0 -_080F8B24: .4byte gWindowConfig_81E6DFC -_080F8B28: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - beq _080F8B32 - b _080F8D30 -_080F8B32: - b _080F8D3C -_080F8B34: - bl MenuZeroFillScreen - b _080F8D30 -_080F8B3A: - mov r0, sp - adds r0, 0x6 - movs r1, 0x1 - strh r1, [r0] - ldr r1, _080F8B4C - ldr r2, _080F8B50 - bl CpuSet - b _080F8D30 - .align 2, 0 -_080F8B4C: .4byte 0x06004800 -_080F8B50: .4byte 0x01000400 -_080F8B54: - ldr r2, _080F8B70 - ldr r0, _080F8B74 - adds r0, 0xFA - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - b _080F8D30 - .align 2, 0 -_080F8B70: .4byte gMailGraphicsTable -_080F8B74: .4byte 0x02000000 -_080F8B78: - ldr r2, _080F8B94 - ldr r0, _080F8B98 - adds r0, 0xFA - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x8 - adds r0, r2 - ldr r0, [r0] - ldr r1, _080F8B9C - bl LZ77UnCompVram - b _080F8D30 - .align 2, 0 -_080F8B94: .4byte gMailGraphicsTable -_080F8B98: .4byte 0x02000000 -_080F8B9C: .4byte 0x06004000 -_080F8BA0: - ldr r5, _080F8C00 - ldr r4, _080F8C04 - adds r4, 0xFA - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0x4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r3, _080F8C08 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r0, [r0, 0x10] - movs r2, 0xF1 - lsls r2, 1 - adds r1, r3, r2 - strh r0, [r1] - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x12] - adds r2, 0xE - adds r0, r3, r2 - strh r1, [r0] - ldr r1, _080F8C0C - ldr r2, _080F8C10 - ldrb r0, [r2, 0x8] - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3, 0x14] - ldrb r0, [r2, 0x8] - lsls r0, 2 - adds r1, 0x2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3, 0x16] - b _080F8D30 - .align 2, 0 -_080F8C00: .4byte gMailGraphicsTable -_080F8C04: .4byte 0x02000000 -_080F8C08: .4byte gPlttBufferUnfaded -_080F8C0C: .4byte gUnknown_083E562C -_080F8C10: .4byte gSaveBlock2 -_080F8C14: - ldr r0, _080F8C28 - adds r0, 0xF8 - ldrb r0, [r0] - cmp r0, 0 - bne _080F8C20 - b _080F8D30 -_080F8C20: - bl sub_80F8DA0 - b _080F8D30 - .align 2, 0 -_080F8C28: .4byte 0x02000000 -_080F8C2C: - ldr r0, _080F8C4C - adds r0, 0xF8 - ldrb r0, [r0] - cmp r0, 0 - beq _080F8C3A - bl sub_80F8E80 -_080F8C3A: - ldr r0, _080F8C50 - bl SetVBlankCallback - ldr r2, _080F8C54 - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - b _080F8D30 - .align 2, 0 -_080F8C4C: .4byte 0x02000000 -_080F8C50: .4byte sub_80F8F18 -_080F8C54: .4byte gPaletteFade -_080F8C58: - ldr r5, _080F8C7C - adds r0, r5, 0 - adds r0, 0xF4 - ldr r0, [r0] - ldrh r0, [r0, 0x1E] - bl sub_809D4A8 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0 - adds r0, 0xFB - ldrb r0, [r0] - cmp r0, 0x1 - beq _080F8C80 - cmp r0, 0x2 - beq _080F8C98 - b _080F8D30 - .align 2, 0 -_080F8C7C: .4byte 0x02000000 -_080F8C80: - adds r0, r4, 0 - bl sub_809D580 - ldr r1, _080F8C94 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x60 - b _080F8CA8 - .align 2, 0 -_080F8C94: .4byte SpriteCallbackDummy -_080F8C98: - adds r0, r4, 0 - bl sub_809D580 - ldr r1, _080F8CB8 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x28 -_080F8CA8: - movs r3, 0x80 - bl sub_809D3A4 - adds r1, r5, 0 - adds r1, 0xFC - strb r0, [r1] - b _080F8D30 - .align 2, 0 -_080F8CB8: .4byte SpriteCallbackDummy -_080F8CBC: - bl sub_8055870 - cmp r0, 0x1 - bne _080F8D30 - b _080F8D3C -_080F8CC6: - ldr r1, _080F8D14 - ldr r2, _080F8D18 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F8D1C - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F8D20 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x44 - movs r0, 0 - strh r0, [r1] - subs r1, 0x50 - movs r2, 0xBA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, _080F8D24 - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, _080F8D28 - adds r0, 0xF0 - ldr r1, _080F8D2C - str r1, [r0] - movs r0, 0x1 - b _080F8D3E - .align 2, 0 -_080F8D14: .4byte REG_BG0CNT -_080F8D18: .4byte 0x00009f08 -_080F8D1C: .4byte 0x00000801 -_080F8D20: .4byte 0x00000902 -_080F8D24: .4byte gPaletteFade -_080F8D28: .4byte 0x02000000 -_080F8D2C: .4byte sub_80F8F58 -_080F8D30: - ldr r1, _080F8D48 - ldr r0, _080F8D4C - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080F8D3C: - movs r0, 0 -_080F8D3E: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080F8D48: .4byte gMain -_080F8D4C: .4byte 0x0000043c - thumb_func_end sub_80F8A28 - - thumb_func_start sub_80F8D50 -sub_80F8D50: @ 80F8D50 - push {lr} -_080F8D52: - bl sub_80F8A28 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F8D6C - ldr r0, _080F8D68 - bl SetMainCallback2 - b _080F8D78 - .align 2, 0 -_080F8D68: .4byte sub_80F8F2C -_080F8D6C: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F8D52 -_080F8D78: - pop {r0} - bx r0 - thumb_func_end sub_80F8D50 - - thumb_func_start sub_80F8D7C -sub_80F8D7C: @ 80F8D7C - push {r4,lr} - adds r4, r0, 0 - bl StringCopy - adds r0, r4, 0 - bl sub_814A568 - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - adds r4, r0 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F8D7C - - thumb_func_start sub_80F8DA0 -sub_80F8DA0: @ 80F8DA0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - movs r5, 0 - ldr r2, _080F8E3C - movs r0, 0x86 - lsls r0, 1 - adds r1, r2, r0 - ldr r0, [r1] - ldrb r0, [r0] - cmp r5, r0 - bcs _080F8E04 - mov r8, r2 - adds r7, r1, 0 -_080F8DBE: - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - subs r0, r5 - add r0, r8 - mov r1, r8 - adds r1, 0xF4 - lsls r2, r6, 1 - ldr r1, [r1] - adds r1, r2 - ldr r2, [r7] - ldr r2, [r2, 0x4] - lsls r4, r5, 2 - adds r2, r4, r2 - ldr r2, [r2] - lsls r2, 28 - lsrs r2, 30 - movs r3, 0x1 - bl ConvertEasyChatWordsToString - ldr r1, [r7] - ldr r0, [r1, 0x4] - adds r4, r0 - ldr r0, [r4] - lsls r0, 28 - lsrs r0, 30 - adds r0, r6, r0 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrb r1, [r1] - cmp r5, r1 - bcc _080F8DBE -_080F8E04: - ldr r2, _080F8E40 - adds r4, r2, 0 - subs r4, 0xD8 - adds r0, r2, 0 - adds r0, 0x28 - ldrb r0, [r0] - cmp r0, 0 - bne _080F8E48 - ldr r1, [r2, 0x1C] - adds r1, 0x12 - adds r0, r2, 0 - bl sub_80F8D7C - adds r2, r0, 0 - ldr r1, _080F8E44 - bl StringCopy - ldr r0, _080F8E40 - bl StringLength - movs r2, 0x86 - lsls r2, 1 - adds r1, r4, r2 - ldr r1, [r1] - ldrb r1, [r1, 0x2] - subs r1, r0 - b _080F8E6A - .align 2, 0 -_080F8E3C: .4byte 0x02000000 -_080F8E40: .4byte 0x020000d8 -_080F8E44: .4byte gOtherText_From -_080F8E48: - ldr r1, _080F8E7C - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - adds r0, r4, 0 - adds r0, 0xF4 - ldr r1, [r0] - adds r1, 0x12 - adds r0, r2, 0 - bl sub_80F8D7C - movs r1, 0x86 - lsls r1, 1 - adds r0, r4, r1 - ldr r0, [r0] - ldrb r1, [r0, 0x2] -_080F8E6A: - adds r0, r4, 0 - adds r0, 0xF9 - strb r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F8E7C: .4byte gOtherText_From - thumb_func_end sub_80F8DA0 - - thumb_func_start sub_80F8E80 -sub_80F8E80: @ 80F8E80 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - movs r4, 0 - ldr r1, _080F8F10 - movs r0, 0x86 - lsls r0, 1 - adds r2, r1, r0 - ldr r0, [r2] - ldrb r0, [r0] - cmp r4, r0 - bcs _080F8EF6 - mov r8, r1 - adds r7, r2, 0 -_080F8E9E: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - subs r0, r4 - mov r1, r8 - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, 0xFF - beq _080F8EE8 - cmp r0, 0 - beq _080F8EE8 - ldr r2, [r7] - ldr r1, [r2, 0x4] - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - lsls r3, r0, 24 - lsrs r3, 28 - lsls r0, 30 - lsrs r0, 30 - adds r0, r6, r0 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r2, [r2, 0x3] - lsrs r1, r2, 4 - adds r1, r3 - lsls r2, 28 - lsrs r2, 28 - adds r2, r6, r2 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - bl MenuPrint - adds r0, r6, 0x2 - lsls r0, 24 - lsrs r6, r0, 24 -_080F8EE8: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, [r7] - ldrb r0, [r0] - cmp r4, r0 - bcc _080F8E9E -_080F8EF6: - ldr r0, _080F8F14 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r1, [r1] - ldr r2, [r0, 0x34] - ldrb r2, [r2, 0x1] - bl MenuPrint - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F8F10: .4byte 0x02000000 -_080F8F14: .4byte 0x020000d8 - thumb_func_end sub_80F8E80 - - thumb_func_start sub_80F8F18 -sub_80F8F18: @ 80F8F18 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_80F8F18 - - thumb_func_start sub_80F8F2C -sub_80F8F2C: @ 80F8F2C - push {r4,lr} - ldr r4, _080F8F54 - adds r0, r4, 0 - adds r0, 0xFB - ldrb r0, [r0] - cmp r0, 0 - beq _080F8F42 - bl AnimateSprites - bl BuildOamBuffer -_080F8F42: - adds r0, r4, 0 - adds r0, 0xF0 - ldr r0, [r0] - bl _call_via_r0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F8F54: .4byte 0x02000000 - thumb_func_end sub_80F8F2C - - thumb_func_start sub_80F8F58 -sub_80F8F58: @ 80F8F58 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080F8F6C - ldr r0, _080F8F70 - adds r0, 0xF0 - ldr r1, _080F8F74 - str r1, [r0] -_080F8F6C: - pop {r0} - bx r0 - .align 2, 0 -_080F8F70: .4byte 0x02000000 -_080F8F74: .4byte sub_80F8F78 - thumb_func_end sub_80F8F58 - - thumb_func_start sub_80F8F78 -sub_80F8F78: @ 80F8F78 - push {lr} - sub sp, 0x4 - ldr r0, _080F8FA8 - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080F8FA0 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _080F8FAC - adds r0, 0xF0 - ldr r1, _080F8FB0 - str r1, [r0] -_080F8FA0: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080F8FA8: .4byte gMain -_080F8FAC: .4byte 0x02000000 -_080F8FB0: .4byte sub_80F8FB4 - thumb_func_end sub_80F8F78 - - thumb_func_start sub_80F8FB4 -sub_80F8FB4: @ 80F8FB4 - push {r4,lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080F9012 - ldr r4, _080F9018 - adds r0, r4, 0 - adds r0, 0xEC - ldr r0, [r0] - bl SetMainCallback2 - adds r0, r4, 0 - adds r0, 0xFB - ldrb r0, [r0] - cmp r0, 0x2 - bgt _080F9002 - cmp r0, 0x1 - blt _080F9002 - adds r0, r4, 0 - adds r0, 0xF4 - ldr r0, [r0] - ldrh r0, [r0, 0x1E] - bl sub_809D4A8 - lsls r0, 16 - lsrs r0, 16 - bl sub_809D608 - adds r0, r4, 0 - adds r0, 0xFC - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F901C - adds r0, r1 - bl sub_809D510 -_080F9002: - ldr r0, _080F9018 - movs r2, 0x88 - lsls r2, 1 - movs r1, 0 - bl memset - bl ResetPaletteFade -_080F9012: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9018: .4byte 0x02000000 -_080F901C: .4byte gSprites - thumb_func_end sub_80F8FB4 - - thumb_func_start sub_80F9020 -sub_80F9020: @ 80F9020 - push {r4,r5,lr} - ldr r4, _080F9054 - movs r5, 0x80 - lsls r5, 4 - adds r0, r4, 0 - movs r1, 0 - adds r2, r5, 0 - bl memset - adds r0, r4, r5 - movs r1, 0 - adds r2, r5, 0 - bl memset - movs r0, 0x80 - lsls r0, 5 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0 - adds r2, r5, 0 - bl memset - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F9054: .4byte gBG1TilemapBuffer - thumb_func_end sub_80F9020 - - thumb_func_start sav2_get_text_speed -sav2_get_text_speed: @ 80F9058 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - bl MenuDisplayMessageBox - cmp r4, 0 - beq _080F907C - ldr r0, _080F908C - movs r1, 0x4 - str r1, [sp] - str r4, [sp, 0x4] - movs r1, 0x2 - movs r2, 0xF - movs r3, 0x1A - bl sub_80A3FA0 -_080F907C: - adds r0, r5, 0 - bl sub_8072044 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F908C: .4byte gBG1TilemapBuffer - thumb_func_end sav2_get_text_speed - - thumb_func_start sub_80F9090 -sub_80F9090: @ 80F9090 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl MenuUpdateWindowText - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F90AC - ldr r0, _080F90B4 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 -_080F90AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F90B4: .4byte gUnknown_0300074C - thumb_func_end sub_80F9090 - - thumb_func_start DisplayItemMessageOnField -DisplayItemMessageOnField: @ 80F90B8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r0, r1, 0 - adds r5, r2, 0 - adds r1, r3, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 16 - lsrs r1, 16 - bl sav2_get_text_speed - ldr r0, _080F90E8 - str r5, [r0] - ldr r1, _080F90EC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080F90F0 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F90E8: .4byte gUnknown_0300074C -_080F90EC: .4byte gTasks -_080F90F0: .4byte sub_80F9090 - thumb_func_end DisplayItemMessageOnField - - thumb_func_start Task_CallYesOrNoCallback -Task_CallYesOrNoCallback: @ 80F90F4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080F911A - cmp r1, 0 - bgt _080F9114 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080F9130 - b _080F9140 -_080F9114: - cmp r1, 0x1 - beq _080F9130 - b _080F9140 -_080F911A: - movs r0, 0x5 - bl PlaySE - ldr r0, _080F912C - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _080F9140 - .align 2, 0 -_080F912C: .4byte gUnknown_020388C4 -_080F9130: - movs r0, 0x5 - bl PlaySE - ldr r0, _080F9148 - ldr r1, [r0, 0x4] - adds r0, r4, 0 - bl _call_via_r1 -_080F9140: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9148: .4byte gUnknown_020388C4 - thumb_func_end Task_CallYesOrNoCallback - - thumb_func_start sub_80F914C -sub_80F914C: @ 80F914C - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080F916C - ldr r2, [r1, 0x4] - ldr r1, [r1] - str r1, [r3] - str r2, [r3, 0x4] - ldr r2, _080F9170 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080F9174 - str r0, [r1] - bx lr - .align 2, 0 -_080F916C: .4byte gUnknown_020388C4 -_080F9170: .4byte gTasks -_080F9174: .4byte Task_CallYesOrNoCallback - thumb_func_end sub_80F914C - - thumb_func_start brm_trade_1 -brm_trade_1: @ 80F9178 - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r6, r3, 24 - ldr r1, _080F91C0 - mov r0, sp - movs r2, 0x4 - bl memcpy - cmp r4, 0xFF - beq _080F91CC - mov r0, sp - strb r4, [r0, 0x2] - ldr r4, _080F91C4 - adds r0, r4, 0 - mov r1, sp - bl StringCopy - adds r0, r4, 0 - adds r1, r5, 0 - bl StringAppend - mov r1, sp - ldr r0, _080F91C8 - ldr r0, [r0] - ldrb r0, [r0, 0x6] - strb r0, [r1, 0x2] - adds r0, r4, 0 - bl StringAppend - b _080F91D4 - .align 2, 0 -_080F91C0: .4byte gUnknown_083E5A18 -_080F91C4: .4byte gStringVar4 -_080F91C8: .4byte gMenuWindowPtr -_080F91CC: - ldr r0, _080F91E8 - adds r1, r5, 0 - bl StringCopy -_080F91D4: - ldr r0, _080F91E8 - adds r1, r7, 0 - adds r2, r6, 0 - bl MenuPrint - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F91E8: .4byte gStringVar4 - thumb_func_end brm_trade_1 - - thumb_func_start unref_sub_80F91EC -unref_sub_80F91EC: @ 80F91EC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r12, r0 - adds r4, r2, 0 - adds r2, r3, 0 - ldr r0, [sp, 0x18] - ldr r3, [sp, 0x1C] - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r3, 24 - lsrs r5, r3, 24 - ldr r6, _080F9234 - adds r0, r6, 0 - mov r1, r12 - adds r3, r4, 0 - bl ConvertIntToDecimalStringN - mov r0, r8 - cmp r0, 0xFF - beq _080F9238 - adds r0, r6, 0 - mov r1, r8 - adds r2, r7, 0 - adds r3, r5, 0 - bl brm_trade_1 - b _080F9242 - .align 2, 0 -_080F9234: .4byte gStringVar1 -_080F9238: - adds r0, r6, 0 - adds r1, r7, 0 - adds r2, r5, 0 - bl MenuPrint -_080F9242: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_80F91EC - - thumb_func_start unref_sub_80F924C -unref_sub_80F924C: @ 80F924C - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - adds r4, r2, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080F9280 - mov r0, sp - movs r2, 0x2 - bl memcpy - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl brm_trade_1 - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F9280: .4byte gUnknown_083E5A1C - thumb_func_end unref_sub_80F924C - - thumb_func_start sub_80F9284 -sub_80F9284: @ 80F9284 - push {lr} - ldr r0, _080F92A0 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _080F92B6 - ldr r0, _080F92A4 - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _080F92A8 - movs r0, 0x1 - b _080F92B8 - .align 2, 0 -_080F92A0: .4byte gSaveBlock2 -_080F92A4: .4byte gMain -_080F92A8: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080F92B6 - movs r0, 0x2 - b _080F92B8 -_080F92B6: - movs r0, 0 -_080F92B8: - pop {r1} - bx r1 - thumb_func_end sub_80F9284 - - thumb_func_start sub_80F92BC -sub_80F92BC: @ 80F92BC - push {lr} - ldr r0, _080F92D8 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _080F92EE - ldr r0, _080F92DC - ldrh r1, [r0, 0x30] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _080F92E0 - movs r0, 0x1 - b _080F92F0 - .align 2, 0 -_080F92D8: .4byte gSaveBlock2 -_080F92DC: .4byte gMain -_080F92E0: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080F92EE - movs r0, 0x2 - b _080F92F0 -_080F92EE: - movs r0, 0 -_080F92F0: - pop {r1} - bx r1 - thumb_func_end sub_80F92BC - - thumb_func_start sub_80F92F4 -sub_80F92F4: @ 80F92F4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _080F9314 - ldr r0, _080F930C - ldrh r1, [r0, 0x4] - ldr r0, _080F9310 - cmp r1, r0 - bne _080F9314 - movs r0, 0 - b _080F9316 - .align 2, 0 -_080F930C: .4byte gSaveBlock1 -_080F9310: .4byte 0x00001919 -_080F9314: - movs r0, 0x1 -_080F9316: - pop {r1} - bx r1 - thumb_func_end sub_80F92F4 - - thumb_func_start sub_80F931C -sub_80F931C: @ 80F931C - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl is_c1_link_related_active - cmp r0, 0x1 - bne _080F933C - adds r0, r4, 0 - bl itemid_is_mail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F933C - movs r0, 0 - b _080F933E -_080F933C: - movs r0, 0x1 -_080F933E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F931C - - thumb_func_start sub_80F9344 -sub_80F9344: @ 80F9344 - push {lr} - bl is_c1_link_related_active - cmp r0, 0x1 - beq _080F9356 - ldr r0, _080F935C - ldrb r0, [r0] - cmp r0, 0x1 - bne _080F9360 -_080F9356: - movs r0, 0x1 - b _080F9362 - .align 2, 0 -_080F935C: .4byte gReceivedRemoteLinkPlayers -_080F9360: - movs r0, 0 -_080F9362: - pop {r1} - bx r1 - thumb_func_end sub_80F9344 - - thumb_func_start sub_80F9368 -sub_80F9368: @ 80F9368 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - adds r0, 0xE - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x14 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - movs r3, 0xC0 - lsls r3, 19 - movs r4, 0xC0 - lsls r4, 9 - add r0, sp, 0x4 - mov r8, r0 - mov r2, sp - movs r6, 0 - ldr r1, _080F9430 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _080F9434 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_080F93C6: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r5 - subs r4, r5 - cmp r4, r5 - bhi _080F93C6 - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, 0x4] - lsrs r0, r4, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 19 - movs r3, 0x80 - lsls r3, 3 - movs r4, 0 - str r4, [sp, 0x4] - ldr r2, _080F9430 - mov r1, r8 - str r1, [r2] - str r0, [r2, 0x4] - lsrs r0, r3, 2 - movs r1, 0x85 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r1, 0xA0 - lsls r1, 19 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, 0x4] - lsrs r3, 1 - movs r0, 0x81 - lsls r0, 24 - orrs r3, r0 - str r3, [r2, 0x8] - ldr r0, [r2, 0x8] - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F9430: .4byte 0x040000d4 -_080F9434: .4byte 0x81000800 - thumb_func_end sub_80F9368 - - thumb_func_start sub_80F9438 -sub_80F9438: @ 80F9438 - push {lr} - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - pop {r0} - bx r0 - thumb_func_end sub_80F9438 - - thumb_func_start sub_80F944C -sub_80F944C: @ 80F944C - push {r4,lr} - movs r2, 0 - ldr r4, _080F9478 - movs r3, 0xFF -_080F9454: - adds r0, r2, r4 - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080F9454 - movs r0, 0x6 - bl FreeSpritePaletteByTag - ldr r0, _080F947C - bl LoadSpritePalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9478: .4byte gUnknown_020388C0 -_080F947C: .4byte gUnknown_083E5968 - thumb_func_end sub_80F944C - - thumb_func_start sub_80F9480 -sub_80F9480: @ 80F9480 - push {r4,lr} - adds r3, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - cmp r2, r1 - bcs _080F949E - movs r4, 0xFF -_080F9490: - adds r0, r3, r2 - strb r4, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r1 - bcc _080F9490 -_080F949E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F9480 - - thumb_func_start sub_80F94A4 -sub_80F94A4: @ 80F94A4 - push {r4,r5,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r2, 16 - lsrs r1, r2, 16 - lsls r3, 16 - lsrs r2, r3, 16 - cmp r4, 0x5 - bhi _080F94E8 - ldrb r0, [r5] - cmp r0, 0xFF - bne _080F94D0 - ldr r0, _080F94F0 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - strb r0, [r5] -_080F94D0: - subs r0, r4, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F94F4 - adds r0, r1 - adds r1, r4, 0 - bl StartSpriteAnim -_080F94E8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F94F0: .4byte gSpriteTemplate_83E5A00 -_080F94F4: .4byte gSprites - thumb_func_end sub_80F94A4 - - thumb_func_start sub_80F94F8 -sub_80F94F8: @ 80F94F8 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _080F9516 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F951C - adds r0, r1 - bl DestroySprite - movs r0, 0xFF - strb r0, [r4] -_080F9516: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F951C: .4byte gSprites - thumb_func_end sub_80F94F8 - - thumb_func_start sub_80F9520 -sub_80F9520: @ 80F9520 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_080F9526: - adds r0, r5, r4 - bl sub_80F94F8 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _080F9526 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80F9520 - - thumb_func_start sub_80F953C -sub_80F953C: @ 80F953C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - lsrs r3, r1, 16 - lsls r2, 16 - lsrs r2, 16 - cmp r4, 0x3 - bls _080F9550 - b _080F9790 -_080F9550: - cmp r4, 0x1 - beq _080F95F6 - cmp r4, 0x1 - bgt _080F9564 - cmp r4, 0 - beq _080F9578 - ldr r5, _080F9560 - b _080F977A - .align 2, 0 -_080F9560: .4byte gUnknown_020388C0 -_080F9564: - cmp r4, 0x2 - bne _080F956A - b _080F967C -_080F956A: - cmp r4, 0x3 - bne _080F9570 - b _080F96F8 -_080F9570: - ldr r5, _080F9574 - b _080F977A - .align 2, 0 -_080F9574: .4byte gUnknown_020388C0 -_080F9578: - ldr r0, _080F95D8 - ldrb r1, [r0] - adds r5, r0, 0 - cmp r1, 0xFF - beq _080F9584 - b _080F977A -_080F9584: - ldr r0, _080F95DC - lsls r1, r3, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - strb r0, [r5] - ldr r3, _080F95E0 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, _080F95E4 - strh r1, [r0, 0x32] - ldrb r0, [r5, 0x1] - cmp r0, 0xFF - beq _080F95E8 - ldrb r0, [r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x1] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x26 - ldrsh r0, [r0, r2] - negs r0, r0 - strh r0, [r1, 0x26] - ldrb r0, [r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x1] - b _080F9650 - .align 2, 0 -_080F95D8: .4byte gUnknown_020388C0 -_080F95DC: .4byte gSpriteTemplate_83E59D0 -_080F95E0: .4byte gSprites -_080F95E4: .4byte 0x0000ffff -_080F95E8: - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x34] - b _080F977A -_080F95F6: - ldr r0, _080F9660 - ldrb r1, [r0, 0x1] - adds r5, r0, 0 - cmp r1, 0xFF - beq _080F9602 - b _080F977A -_080F9602: - ldr r0, _080F9664 - lsls r1, r3, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - strb r0, [r5, 0x1] - ldr r3, _080F9668 - ldrb r1, [r5, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x32] - ldrb r0, [r5] - cmp r0, 0xFF - beq _080F966C - ldrb r0, [r5, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x26 - ldrsh r0, [r0, r2] - negs r0, r0 - strh r0, [r1, 0x26] - ldrb r0, [r5, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5] -_080F9650: - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x34] - strh r0, [r1, 0x34] - b _080F977A - .align 2, 0 -_080F9660: .4byte gUnknown_020388C0 -_080F9664: .4byte gSpriteTemplate_83E59D0 -_080F9668: .4byte gSprites -_080F966C: - ldrb r0, [r5, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r0, 0 - strh r0, [r1, 0x34] - b _080F977A -_080F967C: - ldr r0, _080F96E4 - ldrb r1, [r0, 0x2] - adds r5, r0, 0 - cmp r1, 0xFF - bne _080F977A - ldr r0, _080F96E8 - lsls r1, r3, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - strb r0, [r5, 0x2] - ldr r3, _080F96EC - ldrb r1, [r5, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, _080F96F0 - strh r1, [r0, 0x2E] - ldrb r0, [r5, 0x3] - cmp r0, 0xFF - beq _080F96F4 - ldrb r0, [r5, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x3] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x24 - ldrsh r0, [r0, r2] - negs r0, r0 - strh r0, [r1, 0x24] - ldrb r0, [r5, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x3] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x30] - b _080F9778 - .align 2, 0 -_080F96E4: .4byte gUnknown_020388C0 -_080F96E8: .4byte gSpriteTemplate_83E59E8 -_080F96EC: .4byte gSprites -_080F96F0: .4byte 0x0000ffff -_080F96F4: - ldrb r0, [r5, 0x2] - b _080F976E -_080F96F8: - ldr r0, _080F9760 - ldrb r1, [r0, 0x3] - adds r5, r0, 0 - cmp r1, 0xFF - bne _080F977A - ldr r0, _080F9764 - lsls r1, r3, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - strb r0, [r5, 0x3] - ldr r3, _080F9768 - ldrb r1, [r5, 0x3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x1 - strh r1, [r0, 0x2E] - ldrb r0, [r5, 0x2] - cmp r0, 0xFF - beq _080F976C - ldrb r0, [r5, 0x3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x2] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x24 - ldrsh r0, [r0, r2] - negs r0, r0 - strh r0, [r1, 0x24] - ldrb r0, [r5, 0x3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x2] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x30] - b _080F9778 - .align 2, 0 -_080F9760: .4byte gUnknown_020388C0 -_080F9764: .4byte gSpriteTemplate_83E59E8 -_080F9768: .4byte gSprites -_080F976C: - ldrb r0, [r5, 0x3] -_080F976E: - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r0, 0 -_080F9778: - strh r0, [r1, 0x30] -_080F977A: - adds r0, r4, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F9798 - adds r0, r1 - movs r1, 0x1 - ands r1, r4 - bl StartSpriteAnim -_080F9790: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F9798: .4byte gSprites - thumb_func_end sub_80F953C - - thumb_func_start sub_80F979C -sub_80F979C: @ 80F979C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - cmp r2, 0x3 - bhi _080F97D4 - ldr r0, _080F97D8 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _080F97D4 - ldr r2, _080F97DC - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - movs r0, 0x1 - adds r2, r3, 0 - ands r2, r0 - lsls r2, 2 - ldrb r3, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1] -_080F97D4: - pop {r0} - bx r0 - .align 2, 0 -_080F97D8: .4byte gUnknown_020388C0 -_080F97DC: .4byte gSprites - thumb_func_end sub_80F979C - - thumb_func_start SetBgTilemapBuffer -SetBgTilemapBuffer: @ 80F97E0 - push {r4,lr} - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bhi _080F9808 - ldr r0, _080F9810 - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _080F9808 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F9814 - adds r0, r1 - bl DestroySprite - movs r0, 0xFF - strb r0, [r4] -_080F9808: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9810: .4byte gUnknown_020388C0 -_080F9814: .4byte gSprites - thumb_func_end SetBgTilemapBuffer - - thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed -InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 80F9818 - push {lr} - ldr r0, _080F9824 - bl LoadSpritePalette - pop {r0} - bx r0 - .align 2, 0 -_080F9824: .4byte gUnknown_083E5968 - thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed - - thumb_func_start BuyMenuFreeMemory -BuyMenuFreeMemory: @ 80F9828 - push {lr} - movs r0, 0x6 - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - thumb_func_end BuyMenuFreeMemory - - thumb_func_start sub_80F9834 -sub_80F9834: @ 80F9834 - push {lr} - adds r2, r0, 0 - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080F9848 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] -_080F9848: - movs r1, 0x34 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080F9858 - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x26] - adds r0, r1 - strh r0, [r2, 0x26] -_080F9858: - ldrh r1, [r2, 0x30] - adds r1, 0x1 - movs r3, 0 - strh r1, [r2, 0x30] - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x2 - ble _080F9870 - strh r3, [r2, 0x30] -_080F9870: - movs r1, 0x34 - ldrsh r0, [r2, r1] - cmp r0, 0x2 - ble _080F987A - strh r3, [r2, 0x34] -_080F987A: - movs r0, 0x24 - ldrsh r1, [r2, r0] - cmp r1, 0x8 - beq _080F988A - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - bne _080F988C -_080F988A: - strh r3, [r2, 0x24] -_080F988C: - movs r0, 0x26 - ldrsh r1, [r2, r0] - cmp r1, 0x8 - beq _080F989C - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - bne _080F98A0 -_080F989C: - movs r0, 0 - strh r0, [r2, 0x26] -_080F98A0: - pop {r0} - bx r0 - thumb_func_end sub_80F9834 - - thumb_func_start sub_80F98A4 -sub_80F98A4: @ 80F98A4 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080F98D0 - adds r3, r1, r0 - ldrb r0, [r3] - cmp r0, 0xFF - beq _080F98CA - cmp r1, 0x3 - bhi _080F98CA - ldr r2, _080F98D4 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080F98D8 - str r1, [r0] -_080F98CA: - pop {r0} - bx r0 - .align 2, 0 -_080F98D0: .4byte gUnknown_020388C0 -_080F98D4: .4byte gSprites -_080F98D8: .4byte SpriteCallbackDummy - thumb_func_end sub_80F98A4 - - thumb_func_start sub_80F98DC -sub_80F98DC: @ 80F98DC - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080F9908 - adds r3, r1, r0 - ldrb r0, [r3] - cmp r0, 0xFF - beq _080F9902 - cmp r1, 0x3 - bhi _080F9902 - ldr r2, _080F990C - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080F9910 - str r1, [r0] -_080F9902: - pop {r0} - bx r0 - .align 2, 0 -_080F9908: .4byte gUnknown_020388C0 -_080F990C: .4byte gSprites -_080F9910: .4byte sub_80F9834 - thumb_func_end sub_80F98DC - - thumb_func_start sub_80F9914 -sub_80F9914: @ 80F9914 - push {r4,lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080F9964 - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _080F995C - cmp r1, 0x3 - bhi _080F995C - ldr r3, _080F9968 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r2, 0 - strh r2, [r0, 0x24] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x26] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x34] -_080F995C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9964: .4byte gUnknown_020388C0 -_080F9968: .4byte gSprites - thumb_func_end sub_80F9914 - - thumb_func_start sub_80F996C -sub_80F996C: @ 80F996C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80F98A4 - adds r0, r4, 0 - bl sub_80F9914 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F996C - - thumb_func_start sub_80F9988 -sub_80F9988: @ 80F9988 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - ldr r0, _080F99C4 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _080F99BE - cmp r2, 0x3 - bhi _080F99BE - ldr r2, _080F99C8 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x3 - adds r2, r3, 0 - ands r2, r0 - lsls r2, 2 - ldrb r3, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] -_080F99BE: - pop {r0} - bx r0 - .align 2, 0 -_080F99C4: .4byte gUnknown_020388C0 -_080F99C8: .4byte gSprites - thumb_func_end sub_80F9988 - - thumb_func_start sub_80F99CC -sub_80F99CC: @ 80F99CC - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - ldr r0, _080F9A04 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F9A08 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - movs r0, 0x2 - strh r0, [r1, 0x8] - subs r0, 0x3 - str r2, [sp] - movs r1, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080F9A04: .4byte sub_80F9A8C -_080F9A08: .4byte gTasks - thumb_func_end sub_80F99CC - - thumb_func_start sub_80F9A0C -sub_80F9A0C: @ 80F9A0C - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - ldr r0, _080F9A44 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F9A48 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - movs r0, 0x3 - strh r0, [r1, 0x8] - subs r0, 0x4 - str r2, [sp] - movs r1, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080F9A44: .4byte sub_80F9A8C -_080F9A48: .4byte gTasks - thumb_func_end sub_80F9A0C - - thumb_func_start sub_80F9A4C -sub_80F9A4C: @ 80F9A4C - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - ldr r0, _080F9A84 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F9A88 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - movs r0, 0x7 - strh r0, [r1, 0x8] - subs r0, 0x8 - str r2, [sp] - movs r1, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080F9A84: .4byte sub_80F9A8C -_080F9A88: .4byte gTasks - thumb_func_end sub_80F9A4C - - thumb_func_start sub_80F9A8C -sub_80F9A8C: @ 80F9A8C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, _080F9AC4 - ldrb r1, [r2, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080F9ABE - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r1, _080F9AC8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x8] - movs r1, 0 - bl sub_806AFAC - adds r0, r4, 0 - bl DestroyTask -_080F9ABE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9AC4: .4byte gPaletteFade -_080F9AC8: .4byte gTasks - thumb_func_end sub_80F9A8C - - thumb_func_start sub_80F9ACC -sub_80F9ACC: @ 80F9ACC - push {r4,r5,lr} - ldr r1, _080F9AEC - movs r2, 0x99 - lsls r2, 2 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0x7 - bls _080F9AE2 - b _080F9BF6 -_080F9AE2: - lsls r0, 2 - ldr r1, _080F9AF0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F9AEC: .4byte 0x0201b000 -_080F9AF0: .4byte _080F9AF4 - .align 2, 0 -_080F9AF4: - .4byte _080F9B14 - .4byte _080F9B54 - .4byte _080F9B5A - .4byte _080F9B6E - .4byte _080F9B98 - .4byte _080F9B9E - .4byte _080F9BB0 - .4byte _080F9BC8 -_080F9B14: - ldr r0, _080F9B3C - adds r5, r4, r0 - movs r1, 0 - ldrsh r3, [r5, r1] - ldr r0, _080F9B40 - ldrb r0, [r0] - cmp r3, r0 - bge _080F9B48 - movs r2, 0x98 - lsls r2, 2 - adds r0, r4, r2 - ldrb r0, [r0] - ldrb r1, [r5] - movs r2, 0x64 - muls r2, r3 - ldr r3, _080F9B44 - adds r2, r3 - bl sub_806D90C - b _080F9BF0 - .align 2, 0 -_080F9B3C: .4byte 0x00000266 -_080F9B40: .4byte gPlayerPartyCount -_080F9B44: .4byte gPlayerParty -_080F9B48: - movs r0, 0 - strh r0, [r5] - movs r0, 0x99 - lsls r0, 2 - adds r1, r4, r0 - b _080F9BBC -_080F9B54: - bl sub_806DA98 - b _080F9BB4 -_080F9B5A: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_806DC34 - movs r2, 0x99 - lsls r2, 2 - adds r1, r4, r2 - b _080F9BBC -_080F9B6E: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - ldr r2, _080F9B94 - adds r5, r4, r2 - ldrb r1, [r5] - bl sub_806BD58 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F9BF0 - movs r0, 0 - strh r0, [r5] - movs r0, 0x99 - lsls r0, 2 - adds r1, r4, r0 - b _080F9BBC - .align 2, 0 -_080F9B94: .4byte 0x00000266 -_080F9B98: - bl sub_806E334 - b _080F9BB4 -_080F9B9E: - bl sub_806E0C4 - ldr r1, _080F9BAC - movs r0, 0x99 - lsls r0, 2 - adds r1, r0 - b _080F9BBC - .align 2, 0 -_080F9BAC: .4byte 0x0201b000 -_080F9BB0: - bl sub_80F9C00 -_080F9BB4: - ldr r1, _080F9BC4 - movs r2, 0x99 - lsls r2, 2 - adds r1, r2 -_080F9BBC: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080F9BF6 - .align 2, 0 -_080F9BC4: .4byte 0x0201b000 -_080F9BC8: - ldr r0, _080F9BEC - adds r5, r4, r0 - ldrb r0, [r5] - bl sub_806B58C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F9BF0 - movs r1, 0 - strh r1, [r5] - movs r2, 0x99 - lsls r2, 2 - adds r0, r4, r2 - strh r1, [r0] - movs r0, 0x1 - b _080F9BF8 - .align 2, 0 -_080F9BEC: .4byte 0x00000266 -_080F9BF0: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_080F9BF6: - movs r0, 0 -_080F9BF8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F9ACC - - thumb_func_start sub_80F9C00 -sub_80F9C00: @ 80F9C00 - push {r4,lr} - movs r4, 0 - b _080F9C58 -_080F9C06: - movs r0, 0x64 - muls r0, r4 - ldr r1, _080F9C24 - adds r0, r1 - bl sub_80AE47C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080F9C52 - lsls r0, 2 - ldr r1, _080F9C28 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F9C24: .4byte gPlayerParty -_080F9C28: .4byte _080F9C2C - .align 2, 0 -_080F9C2C: - .4byte _080F9C40 - .4byte _080F9C4A - .4byte _080F9C4A - .4byte _080F9C40 - .4byte _080F9C40 -_080F9C40: - adds r0, r4, 0 - movs r1, 0x7E - bl sub_806BC3C - b _080F9C52 -_080F9C4A: - adds r0, r4, 0 - movs r1, 0x70 - bl sub_806BC3C -_080F9C52: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080F9C58: - ldr r0, _080F9C68 - ldrb r0, [r0] - cmp r4, r0 - bcc _080F9C06 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9C68: .4byte gPlayerPartyCount - thumb_func_end sub_80F9C00 - - thumb_func_start sub_80F9C6C -sub_80F9C6C: @ 80F9C6C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080F9C94 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080F9CD8 - adds r0, r4, 0 - bl sub_806BD80 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _080F9C98 - cmp r0, 0x2 - beq _080F9CC0 - b _080F9CD8 - .align 2, 0 -_080F9C94: .4byte gPaletteFade -_080F9C98: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_806CA38 - ldr r1, _080F9CB8 - strb r0, [r1] - ldr r2, _080F9CBC - ldrb r0, [r1] - strh r0, [r2] - adds r0, r4, 0 - bl sub_8123138 - b _080F9CD8 - .align 2, 0 -_080F9CB8: .4byte gUnknown_02038694 -_080F9CBC: .4byte gUnknown_0202E8CC -_080F9CC0: - movs r0, 0x5 - bl PlaySE - ldr r1, _080F9CE0 - movs r0, 0xFF - strb r0, [r1] - ldr r1, _080F9CE4 - movs r0, 0xFF - strh r0, [r1] - adds r0, r4, 0 - bl sub_8123138 -_080F9CD8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9CE0: .4byte gUnknown_02038694 -_080F9CE4: .4byte gUnknown_0202E8CC - thumb_func_end sub_80F9C6C - - thumb_func_start sub_80F9CE8 -sub_80F9CE8: @ 80F9CE8 - push {r4,r5,lr} - ldr r1, _080F9D08 - movs r2, 0x99 - lsls r2, 2 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0x7 - bls _080F9CFE - b _080F9E12 -_080F9CFE: - lsls r0, 2 - ldr r1, _080F9D0C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F9D08: .4byte 0x0201b000 -_080F9D0C: .4byte _080F9D10 - .align 2, 0 -_080F9D10: - .4byte _080F9D30 - .4byte _080F9D70 - .4byte _080F9D76 - .4byte _080F9D8A - .4byte _080F9DB4 - .4byte _080F9DBA - .4byte _080F9DCC - .4byte _080F9DE4 -_080F9D30: - ldr r0, _080F9D58 - adds r5, r4, r0 - movs r1, 0 - ldrsh r3, [r5, r1] - ldr r0, _080F9D5C - ldrb r0, [r0] - cmp r3, r0 - bge _080F9D64 - movs r2, 0x98 - lsls r2, 2 - adds r0, r4, r2 - ldrb r0, [r0] - ldrb r1, [r5] - movs r2, 0x64 - muls r2, r3 - ldr r3, _080F9D60 - adds r2, r3 - bl sub_806D90C - b _080F9E0C - .align 2, 0 -_080F9D58: .4byte 0x00000266 -_080F9D5C: .4byte gPlayerPartyCount -_080F9D60: .4byte gPlayerParty -_080F9D64: - movs r0, 0 - strh r0, [r5] - movs r0, 0x99 - lsls r0, 2 - adds r1, r4, r0 - b _080F9DD8 -_080F9D70: - bl sub_806DA98 - b _080F9DD0 -_080F9D76: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_806DC34 - movs r2, 0x99 - lsls r2, 2 - adds r1, r4, r2 - b _080F9DD8 -_080F9D8A: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - ldr r2, _080F9DB0 - adds r5, r4, r2 - ldrb r1, [r5] - bl sub_806BD58 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F9E0C - movs r0, 0 - strh r0, [r5] - movs r0, 0x99 - lsls r0, 2 - adds r1, r4, r0 - b _080F9DD8 - .align 2, 0 -_080F9DB0: .4byte 0x00000266 -_080F9DB4: - bl sub_806E334 - b _080F9DD0 -_080F9DBA: - bl sub_806E0C4 - ldr r1, _080F9DC8 - movs r0, 0x99 - lsls r0, 2 - adds r1, r0 - b _080F9DD8 - .align 2, 0 -_080F9DC8: .4byte 0x0201b000 -_080F9DCC: - bl sub_80F9E1C -_080F9DD0: - ldr r1, _080F9DE0 - movs r2, 0x99 - lsls r2, 2 - adds r1, r2 -_080F9DD8: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080F9E12 - .align 2, 0 -_080F9DE0: .4byte 0x0201b000 -_080F9DE4: - ldr r0, _080F9E08 - adds r5, r4, r0 - ldrb r0, [r5] - bl sub_806B58C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F9E0C - movs r1, 0 - strh r1, [r5] - movs r2, 0x99 - lsls r2, 2 - adds r0, r4, r2 - strh r1, [r0] - movs r0, 0x1 - b _080F9E14 - .align 2, 0 -_080F9E08: .4byte 0x00000266 -_080F9E0C: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_080F9E12: - movs r0, 0 -_080F9E14: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F9CE8 - - thumb_func_start sub_80F9E1C -sub_80F9E1C: @ 80F9E1C - push {r4,lr} - movs r4, 0 - b _080F9E52 -_080F9E22: - movs r0, 0x64 - muls r0, r4 - ldr r1, _080F9E40 - adds r0, r1 - bl sub_8040574 - lsls r0, 24 - cmp r0, 0 - bne _080F9E44 - adds r0, r4, 0 - movs r1, 0x9A - bl sub_806BC3C - b _080F9E4C - .align 2, 0 -_080F9E40: .4byte gPlayerParty -_080F9E44: - adds r0, r4, 0 - movs r1, 0x8C - bl sub_806BC3C -_080F9E4C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080F9E52: - ldr r0, _080F9E60 - ldrb r0, [r0] - cmp r4, r0 - bcc _080F9E22 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9E60: .4byte gPlayerPartyCount - thumb_func_end sub_80F9E1C - - thumb_func_start sub_80F9E64 -sub_80F9E64: @ 80F9E64 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080F9E8C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080F9EE2 - adds r0, r6, 0 - bl sub_806BD80 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _080F9E90 - cmp r0, 0x2 - beq _080F9ED0 - b _080F9EE2 - .align 2, 0 -_080F9E8C: .4byte gPaletteFade -_080F9E90: - movs r0, 0x5 - bl PlaySE - ldr r4, _080F9EC4 - adds r0, r6, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - ldr r5, _080F9EC8 - ldrh r1, [r4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080F9ECC - adds r0, r1 - bl sub_8040574 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - adds r0, r6, 0 - bl sub_8123138 - b _080F9EE2 - .align 2, 0 -_080F9EC4: .4byte gUnknown_0202E8CC -_080F9EC8: .4byte gUnknown_0202E8CE -_080F9ECC: .4byte gPlayerParty -_080F9ED0: - movs r0, 0x5 - bl PlaySE - ldr r1, _080F9EE8 - movs r0, 0xFF - strh r0, [r1] - adds r0, r6, 0 - bl sub_8123138 -_080F9EE2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F9EE8: .4byte gUnknown_0202E8CC - thumb_func_end sub_80F9E64 - - thumb_func_start sub_80F9EEC -sub_80F9EEC: @ 80F9EEC - push {r4,lr} - sub sp, 0x4 - ldr r0, _080F9F20 - ldr r1, _080F9F24 - ldrb r1, [r1] - ldr r2, _080F9F28 - ldrb r2, [r2] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _080F9F2C - movs r4, 0 - str r4, [sp] - bl sub_809D9F0 - ldr r1, _080F9F30 - movs r0, 0x3 - strb r0, [r1, 0x8] - ldr r1, _080F9F34 - ldr r0, _080F9F38 - str r0, [r1] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9F20: .4byte gPlayerParty -_080F9F24: .4byte gUnknown_0202E8CC -_080F9F28: .4byte gPlayerPartyCount -_080F9F2C: .4byte c2_exit_to_overworld_2_switch -_080F9F30: .4byte 0x02018000 -_080F9F34: .4byte gUnknown_0300485C -_080F9F38: .4byte sub_8080990 - thumb_func_end sub_80F9EEC - - thumb_func_start sub_80F9F3C -sub_80F9F3C: @ 80F9F3C - push {r4,r5,lr} - ldr r1, _080F9F78 - movs r0, 0 - strh r0, [r1] - movs r4, 0 - adds r5, r1, 0 -_080F9F48: - ldr r0, _080F9F7C - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080F9F80 - adds r0, r1 - adds r1, r4, 0 - adds r1, 0xD - bl GetMonData - cmp r0, 0 - beq _080F9F66 - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_080F9F66: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080F9F48 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F9F78: .4byte gScriptResult -_080F9F7C: .4byte gUnknown_0202E8CC -_080F9F80: .4byte gPlayerParty - thumb_func_end sub_80F9F3C - - thumb_func_start sub_80F9F84 -sub_80F9F84: @ 80F9F84 - push {r4,r5,lr} - ldr r0, _080F9FC4 - ldrh r1, [r0] - movs r0, 0x64 - adds r5, r1, 0 - muls r5, r0 - ldr r0, _080F9FC8 - adds r5, r0 - ldr r0, _080F9FCC - ldrh r1, [r0] - adds r1, 0xD - adds r0, r5, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r1, _080F9FD0 - adds r0, r5, 0 - bl GetMonNickname - ldr r0, _080F9FD4 - movs r1, 0xD - muls r1, r4 - ldr r2, _080F9FD8 - adds r1, r2 - bl StringCopy - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F9FC4: .4byte gUnknown_0202E8CC -_080F9FC8: .4byte gPlayerParty -_080F9FCC: .4byte gUnknown_0202E8CE -_080F9FD0: .4byte gStringVar1 -_080F9FD4: .4byte gStringVar2 -_080F9FD8: .4byte gMoveNames - thumb_func_end sub_80F9F84 - - thumb_func_start sub_80F9FDC -sub_80F9FDC: @ 80F9FDC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - mov r8, r0 - adds r5, r1, 0 - adds r4, r2, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - adds r0, 0xD - str r0, [sp, 0x8] - mov r0, r8 - ldr r1, [sp, 0x8] - bl GetMonData - mov r1, sp - adds r1, 0x2 - str r1, [sp, 0x14] - strh r0, [r1] - adds r3, r4, 0 - adds r3, 0xD - str r3, [sp, 0xC] - mov r0, r8 - adds r1, r3, 0 - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r7, r5, 0 - adds r7, 0x11 - str r7, [sp, 0x10] - mov r0, r8 - adds r1, r7, 0 - bl GetMonData - mov r1, sp - adds r1, 0x5 - str r1, [sp, 0x18] - strb r0, [r1] - adds r3, r4, 0 - adds r3, 0x11 - str r3, [sp, 0x1C] - mov r0, r8 - adds r1, r3, 0 - bl GetMonData - add r7, sp, 0x4 - mov r10, r7 - strb r0, [r7] - mov r0, r8 - movs r1, 0x15 - bl GetMonData - mov r6, sp - adds r6, 0x6 - strb r0, [r6] - ldr r1, _080FA0D8 - adds r0, r5, r1 - ldrb r0, [r0] - mov r9, r0 - ldrb r0, [r6] - adds r2, r0, 0 - mov r3, r9 - ands r2, r3 - lsls r5, 1 - asrs r2, r5 - lsls r2, 24 - lsrs r2, 24 - adds r1, r4, r1 - ldrb r3, [r1] - adds r1, r0, 0 - ands r1, r3 - lsls r4, 1 - asrs r1, r4 - lsls r1, 24 - lsrs r1, 24 - mov r7, r9 - bics r0, r7 - strb r0, [r6] - ldrb r0, [r6] - bics r0, r3 - strb r0, [r6] - lsls r2, r4 - lsls r1, r5 - adds r2, r1 - ldrb r0, [r6] - orrs r0, r2 - strb r0, [r6] - mov r0, r8 - ldr r1, [sp, 0x8] - mov r2, sp - bl SetMonData - mov r0, r8 - ldr r1, [sp, 0xC] - ldr r2, [sp, 0x14] - bl SetMonData - mov r0, r8 - ldr r1, [sp, 0x10] - mov r2, r10 - bl SetMonData - mov r0, r8 - ldr r1, [sp, 0x1C] - ldr r2, [sp, 0x18] - bl SetMonData - mov r0, r8 - movs r1, 0x15 - adds r2, r6, 0 - bl SetMonData - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FA0D8: .4byte gUnknown_08208238 - thumb_func_end sub_80F9FDC - - thumb_func_start sub_80FA0DC -sub_80FA0DC: @ 80FA0DC - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, _080FA13C - mov r8, r0 - ldrh r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, _080FA140 - adds r0, r5 - ldr r4, _080FA144 - ldrb r2, [r4] - movs r1, 0 - bl SetMonMoveSlot - mov r1, r8 - ldrh r0, [r1] - muls r0, r6 - adds r0, r5 - ldrb r1, [r4] - bl RemoveMonPPBonus - ldrh r4, [r4] - cmp r4, 0x2 - bhi _080FA130 -_080FA10E: - ldr r0, _080FA13C - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080FA140 - adds r0, r1 - lsls r1, r4, 24 - lsrs r1, 24 - adds r4, 0x1 - lsls r2, r4, 24 - lsrs r2, 24 - bl sub_80F9FDC - lsls r4, 16 - lsrs r4, 16 - cmp r4, 0x2 - bls _080FA10E -_080FA130: - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080FA13C: .4byte gUnknown_0202E8CC -_080FA140: .4byte gPlayerParty -_080FA144: .4byte gUnknown_0202E8CE - thumb_func_end sub_80FA0DC - - thumb_func_start sub_80FA148 -sub_80FA148: @ 80FA148 - push {r4,lr} - ldr r0, _080FA170 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080FA174 - adds r0, r1 - ldr r4, _080FA178 - movs r1, 0 - strh r1, [r4] - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _080FA16A - movs r0, 0x1 - strh r0, [r4] -_080FA16A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FA170: .4byte gUnknown_0202E8CC -_080FA174: .4byte gPlayerParty -_080FA178: .4byte gScriptResult - thumb_func_end sub_80FA148 - - thumb_func_start sub_80FA17C -sub_80FA17C: @ 80FA17C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r6, 0 - ldr r7, _080FA1B4 - ldr r0, _080FA1B8 - adds r0, r7 - mov r9, r0 - movs r1, 0x1 - mov r8, r1 -_080FA192: - movs r0, 0xA - bl sub_80EB72C - lsls r4, r6, 3 - adds r5, r4, r7 - ldr r2, _080FA1BC - adds r1, r5, r2 - strh r0, [r1] - bl Random - mov r1, r8 - ands r1, r0 - cmp r1, 0 - beq _080FA1C0 - movs r0, 0xC - b _080FA1C2 - .align 2, 0 -_080FA1B4: .4byte gSaveBlock1 -_080FA1B8: .4byte 0x00002dd4 -_080FA1BC: .4byte 0x00002dd8 -_080FA1C0: - movs r0, 0xD -_080FA1C2: - bl sub_80EB72C - ldr r2, _080FA214 - adds r1, r5, r2 - strh r0, [r1] - bl Random - adds r3, r4, r7 - mov r2, r8 - ands r2, r0 - ldr r5, _080FA218 - adds r3, r5 - lsls r2, 6 - ldrb r0, [r3] - movs r5, 0x41 - negs r5, r5 - adds r1, r5, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - mov r1, r9 - adds r0, r4, r1 - bl sub_80FA740 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x4 - bls _080FA192 - ldr r0, _080FA21C - movs r1, 0x5 - movs r2, 0 - bl sub_80FA46C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FA214: .4byte 0x00002dda -_080FA218: .4byte 0x00002dd5 -_080FA21C: .4byte gSaveBlock1 + 0x2DD4 - thumb_func_end sub_80FA17C - - thumb_func_start sub_80FA220 -sub_80FA220: @ 80FA220 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _080FA236 - b _080FA34E -_080FA236: - lsls r0, r1, 2 - adds r0, r1 - str r0, [sp] - movs r0, 0 - mov r10, r0 - movs r1, 0x7F - mov r9, r1 - movs r2, 0x80 - negs r2, r2 - mov r8, r2 -_080FA24A: - ldr r2, [sp] - mov r4, r10 - lsls r0, r4, 3 - ldr r1, _080FA28C - adds r5, r0, r1 - ldrb r6, [r5, 0x1] - movs r0, 0x40 - ands r0, r6 - cmp r0, 0 - bne _080FA2A0 - ldrb r4, [r5] - lsls r3, r4, 25 - lsrs r1, r3, 25 - lsls r0, r2, 16 - lsrs r0, 16 - cmp r1, r0 - bcc _080FA290 - adds r0, r1, 0 - subs r0, r2 - mov r2, r9 - ands r0, r2 - mov r1, r8 - ands r1, r4 - orrs r1, r0 - strb r1, [r5] - movs r0, 0x7F - ands r1, r0 - cmp r1, 0 - bne _080FA336 - movs r0, 0x40 - orrs r0, r6 - b _080FA334 - .align 2, 0 -_080FA28C: .4byte gSaveBlock1 + 0x2DD4 -_080FA290: - lsrs r0, r3, 25 - subs r2, r0 - mov r0, r8 - ands r0, r4 - strb r0, [r5] - movs r0, 0x40 - orrs r0, r6 - strb r0, [r5, 0x1] -_080FA2A0: - ldrb r7, [r5] - lsls r0, r7, 25 - lsrs r0, 25 - adds r4, r0, r2 - ldrh r0, [r5] - lsls r6, r0, 18 - lsls r0, r4, 16 - lsrs r0, 16 - lsrs r1, r6, 25 - cmp r0, r1 - bls _080FA310 - adds r0, r4, 0 - bl __umodsi3 - adds r3, r0, 0 - lsrs r1, r6, 25 - adds r0, r4, 0 - str r3, [sp, 0x4] - bl __udivsi3 - adds r4, r0, 0 - movs r0, 0x1 - eors r4, r0 - ands r4, r0 - lsls r2, r4, 6 - ldrb r0, [r5, 0x1] - movs r4, 0x41 - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, 0x1] - movs r1, 0x40 - ands r0, r1 - ldr r3, [sp, 0x4] - cmp r0, 0 - beq _080FA2FA - adds r1, r3, 0 - mov r0, r9 - ands r1, r0 - mov r0, r8 - ands r0, r7 - orrs r0, r1 - strb r0, [r5] - b _080FA336 -_080FA2FA: - ldrh r0, [r5] - lsls r0, 18 - lsrs r0, 25 - subs r0, r3 - mov r1, r9 - ands r0, r1 - mov r1, r8 - ands r1, r7 - orrs r1, r0 - strb r1, [r5] - b _080FA336 -_080FA310: - mov r2, r9 - ands r4, r2 - mov r0, r8 - ands r0, r7 - orrs r0, r4 - strb r0, [r5] - lsls r0, 25 - ldrh r1, [r5] - lsls r1, 18 - lsrs r0, 25 - lsrs r1, 25 - cmp r0, r1 - bne _080FA336 - ldrb r0, [r5, 0x1] - movs r4, 0x41 - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 -_080FA334: - strb r0, [r5, 0x1] -_080FA336: - mov r0, r10 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - cmp r0, 0x4 - bls _080FA24A - ldr r0, _080FA360 - movs r1, 0x5 - movs r2, 0 - bl sub_80FA46C -_080FA34E: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FA360: .4byte gSaveBlock1 + 0x2DD4 - thumb_func_end sub_80FA220 - - thumb_func_start sub_80FA364 -sub_80FA364: @ 80FA364 - push {r4-r7,lr} - sub sp, 0x8 - adds r4, r0, 0 - movs r0, 0 - movs r1, 0 - str r0, [sp] - str r1, [sp, 0x4] - adds r0, r4, 0 - bl sub_80FA7C8 - lsls r0, 24 - cmp r0, 0 - bne _080FA462 - ldr r5, _080FA3B4 - adds r0, r5, 0 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _080FA3C8 - adds r0, r5, 0 - bl FlagSet - ldr r0, _080FA3B8 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _080FA3C8 - ldr r1, _080FA3BC - ldrh r2, [r4] - ldr r3, _080FA3C0 - adds r0, r1, r3 - strh r2, [r0] - ldrh r0, [r4, 0x2] - ldr r2, _080FA3C4 - adds r1, r2 - strh r0, [r1] - movs r0, 0x1 - b _080FA464 - .align 2, 0 -_080FA3B4: .4byte 0x00000833 -_080FA3B8: .4byte 0x00000834 -_080FA3BC: .4byte gSaveBlock1 -_080FA3C0: .4byte 0x00002dd8 -_080FA3C4: .4byte 0x00002dda -_080FA3C8: - ldrh r1, [r4, 0x2] - lsls r1, 16 - ldrh r0, [r4] - orrs r0, r1 - str r0, [sp, 0x4] - movs r1, 0x80 - lsls r1, 7 - ldr r0, [sp] - orrs r0, r1 - str r0, [sp] - mov r0, sp - bl sub_80FA740 - movs r6, 0 -_080FA3E4: - lsls r4, r6, 3 - ldr r5, _080FA444 - adds r1, r4, r5 - mov r0, sp - movs r2, 0 - bl atk90_changetypestoenemyattacktype - lsls r0, 24 - adds r7, r4, 0 - cmp r0, 0 - beq _080FA450 - movs r3, 0x4 - ldr r0, _080FA448 - adds r0, r5 - mov r12, r0 - cmp r3, r6 - bls _080FA428 - mov r5, r12 - ldr r4, _080FA44C -_080FA40A: - lsls r2, r3, 3 - adds r2, r5 - adds r2, r4 - subs r3, 0x1 - lsls r0, r3, 3 - adds r0, r5 - adds r0, r4 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [r2] - str r1, [r2, 0x4] - lsls r3, 16 - lsrs r3, 16 - cmp r3, r6 - bhi _080FA40A -_080FA428: - mov r3, r12 - adds r2, r7, r3 - ldr r0, _080FA44C - adds r2, r0 - ldr r0, [sp] - ldr r1, [sp, 0x4] - str r0, [r2] - str r1, [r2, 0x4] - movs r0, 0 - cmp r6, 0 - bne _080FA464 - movs r0, 0x1 - b _080FA464 - .align 2, 0 -_080FA444: .4byte gSaveBlock1 + 0x2DD4 -_080FA448: .4byte 0xffffd22c -_080FA44C: .4byte 0x00002dd4 -_080FA450: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x4 - bls _080FA3E4 - ldr r0, [sp] - ldr r1, [sp, 0x4] - str r0, [r5, 0x20] - str r1, [r5, 0x24] -_080FA462: - movs r0, 0 -_080FA464: - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FA364 - - thumb_func_start sub_80FA46C -sub_80FA46C: @ 80FA46C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r0 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - movs r2, 0 - cmp r2, r7 - bcs _080FA4D4 -_080FA488: - adds r1, r2, 0x1 - lsls r0, r1, 16 - lsrs r5, r0, 16 - mov r8, r1 - cmp r5, r7 - bcs _080FA4CA - lsls r0, r2, 3 - mov r1, r9 - adds r6, r1, r0 -_080FA49A: - lsls r0, r5, 3 - mov r1, r9 - adds r4, r1, r0 - adds r0, r4, 0 - adds r1, r6, 0 - mov r2, r10 - bl atk90_changetypestoenemyattacktype - lsls r0, 24 - cmp r0, 0 - beq _080FA4C0 - ldr r2, [r4] - ldr r3, [r4, 0x4] - ldr r0, [r6] - ldr r1, [r6, 0x4] - str r0, [r4] - str r1, [r4, 0x4] - str r2, [r6] - str r3, [r6, 0x4] -_080FA4C0: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r7 - bcc _080FA49A -_080FA4CA: - mov r1, r8 - lsls r0, r1, 16 - lsrs r2, r0, 16 - cmp r2, r7 - bcc _080FA488 -_080FA4D4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FA46C - - thumb_func_start sub_80FA4E4 -sub_80FA4E4: @ 80FA4E4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r6, r0, 0 - adds r5, r1, 0 - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r4, 0 - cmp r4, r8 - bcs _080FA520 -_080FA500: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080FA554 - adds r0, r1 - adds r1, r4, 0 - muls r1, r5 - adds r1, r6, r1 - movs r2, 0x28 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bcc _080FA500 -_080FA520: - ldr r5, _080FA554 - movs r0, 0x80 - lsls r0, 1 - adds r3, r5, r0 - movs r7, 0 - movs r4, 0 - cmp r4, r8 - bcs _080FA588 -_080FA530: - movs r6, 0 -_080FA532: - adds r0, r5, 0 - adds r1, r7, 0 - str r3, [sp] - bl sub_80FA828 - lsls r0, 16 - asrs r0, 16 - ldr r3, [sp] - cmp r0, 0 - bge _080FA558 - ldr r0, [r5] - ldr r1, [r5, 0x4] - stm r3!, {r0,r1} - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - b _080FA572 - .align 2, 0 -_080FA554: .4byte 0x02007800 -_080FA558: - lsls r1, r0, 3 - ldr r0, _080FA5B4 - adds r2, r1, r0 - ldrb r1, [r2] - lsls r1, 25 - ldrb r0, [r5] - lsls r0, 25 - cmp r1, r0 - bcs _080FA572 - ldr r0, [r5] - ldr r1, [r5, 0x4] - str r0, [r2] - str r1, [r2, 0x4] -_080FA572: - adds r5, 0x8 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x4 - bls _080FA532 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bcc _080FA530 -_080FA588: - ldr r4, _080FA5B4 - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0x2 - bl sub_80FA46C - adds r5, r4, 0 - ldr r3, _080FA5B8 - movs r4, 0 -_080FA59A: - ldm r5!, {r0,r1} - stm r3!, {r0,r1} - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _080FA59A - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FA5B4: .4byte 0x02007900 -_080FA5B8: .4byte gSaveBlock1 + 0x2DD4 - thumb_func_end sub_80FA4E4 - - thumb_func_start sub_80FA5BC -sub_80FA5BC: @ 80FA5BC - push {lr} - ldr r0, _080FA5D8 - ldrh r1, [r0] - lsls r1, 3 - ldr r0, _080FA5DC - adds r1, r0 - ldr r0, _080FA5E0 - adds r1, 0x4 - movs r2, 0x2 - movs r3, 0x1 - bl ConvertEasyChatWordsToString - pop {r0} - bx r0 - .align 2, 0 -_080FA5D8: .4byte gUnknown_0202E8CC -_080FA5DC: .4byte gSaveBlock1 + 0x2DD4 -_080FA5E0: .4byte gStringVar1 - thumb_func_end sub_80FA5BC - - thumb_func_start sub_80FA5E4 -sub_80FA5E4: @ 80FA5E4 - push {r4,lr} - movs r4, 0 - ldr r3, _080FA630 - ldr r1, _080FA634 - adds r0, r3, r1 - ldrb r1, [r0] - lsls r1, 25 - lsrs r1, 25 - ldr r2, _080FA638 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 25 - lsrs r0, 25 - subs r1, r0 - cmp r1, 0x1 - bgt _080FA626 - ldr r1, _080FA63C - adds r0, r3, r1 - ldrb r1, [r0] - movs r2, 0x40 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080FA626 - ldr r1, _080FA640 - adds r0, r3, r1 - ldrb r1, [r0] - adds r0, r2, 0 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - negs r0, r0 - lsrs r4, r0, 31 -_080FA626: - ldr r0, _080FA644 - strh r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FA630: .4byte gSaveBlock1 -_080FA634: .4byte 0x00002dd4 -_080FA638: .4byte 0x00002ddc -_080FA63C: .4byte 0x00002dd5 -_080FA640: .4byte 0x00002ddd -_080FA644: .4byte gScriptResult - thumb_func_end sub_80FA5E4 - - thumb_func_start sub_80FA648 -sub_80FA648: @ 80FA648 - ldr r2, _080FA664 - ldr r0, _080FA668 - ldr r3, _080FA66C - adds r1, r0, r3 - adds r3, 0x2 - adds r0, r3 - ldrh r0, [r0] - ldrh r1, [r1] - adds r0, r1 - movs r1, 0x7 - ands r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_080FA664: .4byte gScriptResult -_080FA668: .4byte gSaveBlock1 -_080FA66C: .4byte 0x00002dd8 - thumb_func_end sub_80FA648 - - thumb_func_start atk90_changetypestoenemyattacktype -atk90_changetypestoenemyattacktype: @ 80FA670 - push {r4,r5,lr} - adds r3, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r2, 0 - cmp r2, 0x1 - beq _080FA6B6 - cmp r2, 0x1 - bgt _080FA68A - cmp r2, 0 - beq _080FA690 - b _080FA732 -_080FA68A: - cmp r0, 0x2 - beq _080FA6E2 - b _080FA732 -_080FA690: - ldrb r0, [r3] - lsls r1, r0, 25 - ldrb r0, [r5] - lsls r0, 25 - cmp r1, r0 - bhi _080FA72E - cmp r1, r0 - bcc _080FA6DE - ldrh r0, [r3] - lsls r3, r0, 18 - ldrh r0, [r5] - lsls r2, r0, 18 - lsrs r1, r3, 25 - lsrs r0, r2, 25 - cmp r1, r0 - bhi _080FA72E - lsrs r1, r3, 25 - lsrs r0, r2, 25 - b _080FA6DA -_080FA6B6: - ldrh r0, [r3] - lsls r4, r0, 18 - ldrh r0, [r5] - lsls r2, r0, 18 - lsrs r1, r4, 25 - lsrs r0, r2, 25 - cmp r1, r0 - bhi _080FA72E - lsrs r1, r4, 25 - lsrs r0, r2, 25 - cmp r1, r0 - bcc _080FA6DE - ldrb r0, [r3] - lsls r1, r0, 25 - ldrb r0, [r5] - lsls r0, 25 - cmp r1, r0 - bhi _080FA72E -_080FA6DA: - cmp r1, r0 - bcs _080FA732 -_080FA6DE: - movs r0, 0 - b _080FA73A -_080FA6E2: - ldrb r0, [r3] - lsls r1, r0, 25 - ldrb r0, [r5] - lsls r0, 25 - cmp r1, r0 - bhi _080FA72E - cmp r1, r0 - bcc _080FA6DE - ldrh r0, [r3] - lsls r4, r0, 18 - ldrh r0, [r5] - lsls r2, r0, 18 - lsrs r1, r4, 25 - lsrs r0, r2, 25 - cmp r1, r0 - bhi _080FA72E - lsrs r1, r4, 25 - lsrs r0, r2, 25 - cmp r1, r0 - bcc _080FA6DE - ldrh r1, [r3, 0x2] - ldrh r0, [r5, 0x2] - cmp r1, r0 - bhi _080FA72E - cmp r1, r0 - bcc _080FA6DE - ldrh r1, [r3, 0x4] - ldrh r0, [r5, 0x4] - cmp r1, r0 - bhi _080FA72E - cmp r1, r0 - bcc _080FA6DE - ldrh r1, [r3, 0x6] - ldrh r0, [r5, 0x6] - cmp r1, r0 - bhi _080FA72E - cmp r1, r0 - bcc _080FA6DE -_080FA72E: - movs r0, 0x1 - b _080FA73A -_080FA732: - bl Random - movs r1, 0x1 - ands r0, r1 -_080FA73A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end atk90_changetypestoenemyattacktype - - thumb_func_start sub_80FA740 -sub_80FA740: @ 80FA740 - push {r4,r5,lr} - adds r5, r0, 0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x62 - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x32 - bls _080FA782 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x62 - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x50 - bls _080FA782 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x62 - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 -_080FA782: - adds r1, r4, 0 - adds r1, 0x1E - movs r0, 0x7F - ands r1, r0 - lsls r1, 7 - ldrh r2, [r5] - ldr r0, _080FA7C4 - ands r0, r2 - orrs r0, r1 - strh r0, [r5] - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0x1 - bl __modsi3 - adds r0, 0x1E - movs r1, 0x7F - ands r0, r1 - ldrb r2, [r5] - movs r1, 0x80 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - bl Random - strh r0, [r5, 0x2] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FA7C4: .4byte 0xffffc07f - thumb_func_end sub_80FA740 - - thumb_func_start sub_80FA7C8 -sub_80FA7C8: @ 80FA7C8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_080FA7CE: - lsls r1, r4, 3 - ldr r0, _080FA7E4 - adds r1, r0 - adds r0, r5, 0 - bl sub_80FA7FC - lsls r0, 24 - cmp r0, 0 - beq _080FA7E8 - movs r0, 0x1 - b _080FA7F4 - .align 2, 0 -_080FA7E4: .4byte gSaveBlock1 + 0x2DD8 -_080FA7E8: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _080FA7CE - movs r0, 0 -_080FA7F4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80FA7C8 - - thumb_func_start sub_80FA7FC -sub_80FA7FC: @ 80FA7FC - push {r4,lr} - adds r3, r0, 0 - adds r2, r1, 0 - movs r4, 0 -_080FA804: - ldrh r1, [r3] - ldrh r0, [r2] - adds r2, 0x2 - adds r3, 0x2 - cmp r1, r0 - beq _080FA814 - movs r0, 0 - b _080FA820 -_080FA814: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080FA804 - movs r0, 0x1 -_080FA820: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FA7FC - - thumb_func_start sub_80FA828 -sub_80FA828: @ 80FA828 - push {r4-r7,lr} - adds r7, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - ldr r6, _080FA84C - movs r4, 0 - cmp r4, r5 - bge _080FA862 -_080FA838: - adds r1, r6, 0x4 - adds r0, r7, 0x4 - bl sub_80FA7FC - lsls r0, 24 - cmp r0, 0 - beq _080FA850 - lsls r0, r4, 16 - asrs r0, 16 - b _080FA866 - .align 2, 0 -_080FA84C: .4byte 0x02007900 -_080FA850: - adds r6, 0x8 - lsls r0, r4, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, r5 - blt _080FA838 -_080FA862: - movs r0, 0x1 - negs r0, r0 -_080FA866: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FA828 - - thumb_func_start sub_80FA86C -sub_80FA86C: @ 80FA86C - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r1, 16 - movs r3, 0 - ldr r2, _080FA890 -_080FA87A: - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, r4 - bne _080FA894 - movs r0, 0x1 - ldrsb r0, [r2, r0] - cmp r0, r1 - bne _080FA894 - adds r0, r3, 0x1 - b _080FA89E - .align 2, 0 -_080FA890: .4byte gUnknown_083E5A20 -_080FA894: - adds r2, 0x8 - adds r3, 0x1 - cmp r3, 0x15 - bls _080FA87A - movs r0, 0 -_080FA89E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FA86C - - thumb_func_start unref_sub_80FA8A4 -unref_sub_80FA8A4: @ 80FA8A4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - bl sub_80FA86C - cmp r0, 0 - beq _080FA8C4 - lsls r0, 3 - ldr r1, _080FA8C0 - adds r0, r1 - b _080FA8C6 - .align 2, 0 -_080FA8C0: .4byte gUnknown_083E5A18 -_080FA8C4: - movs r0, 0 -_080FA8C6: - pop {r1} - bx r1 - thumb_func_end unref_sub_80FA8A4 - - thumb_func_start sub_80FA8CC -sub_80FA8CC: @ 80FA8CC - push {lr} - cmp r0, 0 - beq _080FA8E4 - cmp r0, 0x16 - bhi _080FA8E4 - lsls r0, 3 - ldr r1, _080FA8E0 - adds r0, r1 - b _080FA8E6 - .align 2, 0 -_080FA8E0: .4byte gUnknown_083E5A18 -_080FA8E4: - movs r0, 0 -_080FA8E6: - pop {r1} - bx r1 - thumb_func_end sub_80FA8CC - - thumb_func_start sub_80FA8EC -sub_80FA8EC: @ 80FA8EC - push {lr} - lsls r1, 24 - lsrs r1, 24 - bl sub_80FA904 -_080FA8F6: - bl sub_80FA940 - lsls r0, 24 - cmp r0, 0 - bne _080FA8F6 - pop {r0} - bx r0 - thumb_func_end sub_80FA8EC - - thumb_func_start sub_80FA904 -sub_80FA904: @ 80FA904 - push {r4,lr} - lsls r1, 24 - lsrs r1, 24 - ldr r3, _080FA928 - str r0, [r3] - movs r2, 0x79 - adds r2, r0 - mov r12, r2 - movs r2, 0 - mov r4, r12 - strb r2, [r4] - adds r0, 0x78 - strb r1, [r0] - ldr r3, [r3] - cmp r1, 0 - bne _080FA930 - ldr r0, _080FA92C - b _080FA932 - .align 2, 0 -_080FA928: .4byte gUnknown_020388CC -_080FA92C: .4byte sub_80FAB78 -_080FA930: - ldr r0, _080FA93C -_080FA932: - str r0, [r3, 0x18] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FA93C: .4byte sub_80FAD04 - thumb_func_end sub_80FA904 - - thumb_func_start sub_80FA940 -sub_80FA940: @ 80FA940 - push {r4,r5,lr} - sub sp, 0xC - ldr r0, _080FA95C - ldr r0, [r0] - adds r0, 0x79 - ldrb r0, [r0] - cmp r0, 0x7 - bls _080FA952 - b _080FAAE2 -_080FA952: - lsls r0, 2 - ldr r1, _080FA960 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FA95C: .4byte gUnknown_020388CC -_080FA960: .4byte _080FA964 - .align 2, 0 -_080FA964: - .4byte _080FA984 - .4byte _080FA998 - .4byte _080FA9AC - .4byte _080FA9BC - .4byte _080FA9D8 - .4byte _080FA9F4 - .4byte _080FAA38 - .4byte _080FAAB4 -_080FA984: - ldr r0, _080FA990 - ldr r1, _080FA994 - bl LZ77UnCompVram - b _080FAAF4 - .align 2, 0 -_080FA990: .4byte gUnknown_083E5DA0 -_080FA994: .4byte 0x06008000 -_080FA998: - ldr r0, _080FA9A4 - ldr r1, _080FA9A8 - bl LZ77UnCompVram - b _080FAAF4 - .align 2, 0 -_080FA9A4: .4byte gUnknown_083E6B04 -_080FA9A8: .4byte 0x0600e000 -_080FA9AC: - ldr r0, _080FA9B8 - movs r1, 0x70 - movs r2, 0x60 - bl LoadPalette - b _080FAAF4 - .align 2, 0 -_080FA9B8: .4byte gUnknown_083E5D60 -_080FA9BC: - ldr r0, _080FA9D0 - ldr r1, _080FA9D4 - ldr r1, [r1] - movs r2, 0xC0 - lsls r2, 1 - adds r1, r2 - bl LZ77UnCompWram - b _080FAAF4 - .align 2, 0 -_080FA9D0: .4byte gUnknown_083E5AF0 -_080FA9D4: .4byte gUnknown_020388CC -_080FA9D8: - ldr r0, _080FA9EC - ldr r1, _080FA9F0 - ldr r1, [r1] - movs r3, 0xA0 - lsls r3, 2 - adds r1, r3 - bl LZ77UnCompWram - b _080FAAF4 - .align 2, 0 -_080FA9EC: .4byte gUnknown_083E5B34 -_080FA9F0: .4byte gUnknown_020388CC -_080FA9F4: - bl sub_80FB32C - ldr r4, _080FAA34 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x54 - ldrh r1, [r0] - adds r0, 0x20 - strh r1, [r0] - subs r0, 0x1E - ldrh r0, [r0] - adds r1, r2, 0 - adds r1, 0x76 - strh r0, [r1] - ldrh r0, [r2, 0x14] - bl sub_80FB758 - ldr r1, [r4] - strb r0, [r1, 0x16] - ldr r0, [r4] - ldrh r0, [r0, 0x14] - bl sub_80FB9C0 - adds r1, r0, 0 - ldr r0, [r4] - strh r1, [r0, 0x14] - ldrh r1, [r0, 0x14] - movs r2, 0x10 - bl sub_80FBFB4 - b _080FAAF4 - .align 2, 0 -_080FAA34: .4byte gUnknown_020388CC -_080FAA38: - ldr r0, _080FAA60 - ldr r4, [r0] - adds r0, r4, 0 - adds r0, 0x78 - ldrb r1, [r0] - cmp r1, 0 - bne _080FAA64 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - str r1, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80FB170 - b _080FAAF4 - .align 2, 0 -_080FAA60: .4byte gUnknown_020388CC -_080FAA64: - adds r1, r4, 0 - adds r1, 0x54 - ldrh r0, [r1] - lsls r0, 3 - subs r0, 0x34 - adds r2, r4, 0 - adds r2, 0x5C - movs r3, 0 - strh r0, [r2] - movs r5, 0x56 - adds r5, r4 - mov r12, r5 - ldrh r0, [r5] - lsls r0, 3 - subs r0, 0x44 - adds r5, r4, 0 - adds r5, 0x5E - strh r0, [r5] - ldrh r1, [r1] - adds r0, r4, 0 - adds r0, 0x64 - strh r1, [r0] - mov r0, r12 - ldrh r1, [r0] - adds r0, r4, 0 - adds r0, 0x66 - strh r1, [r0] - movs r1, 0 - ldrsh r0, [r2, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - movs r2, 0x80 - str r2, [sp] - str r2, [sp, 0x4] - str r3, [sp, 0x8] - movs r2, 0x38 - movs r3, 0x48 - bl sub_80FB170 - b _080FAAF4 -_080FAAB4: - bl sub_80FBA18 - bl sub_80FB260 - ldr r2, _080FAAE8 - ldr r0, [r2] - movs r1, 0 - str r1, [r0, 0x1C] - str r1, [r0, 0x20] - adds r0, 0x7A - strb r1, [r0] - ldr r0, [r2] - adds r0, 0x7E - strb r1, [r0] - ldr r1, _080FAAEC - ldr r3, _080FAAF0 - adds r0, r3, 0 - strh r0, [r1] - ldr r1, [r2] - adds r1, 0x79 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080FAAE2: - movs r0, 0 - b _080FAB02 - .align 2, 0 -_080FAAE8: .4byte gUnknown_020388CC -_080FAAEC: .4byte REG_BG2CNT -_080FAAF0: .4byte 0x0000bc8a -_080FAAF4: - ldr r0, _080FAB0C - ldr r1, [r0] - adds r1, 0x79 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0x1 -_080FAB02: - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080FAB0C: .4byte gUnknown_020388CC - thumb_func_end sub_80FA940 - - thumb_func_start sub_80FAB10 -sub_80FAB10: @ 80FAB10 - push {r4,lr} - ldr r4, _080FAB5C - ldr r0, [r4] - ldr r0, [r0, 0x1C] - cmp r0, 0 - beq _080FAB34 - bl DestroySprite - ldr r0, [r4] - adds r0, 0x58 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r4] - adds r0, 0x5A - ldrh r0, [r0] - bl FreeSpritePaletteByTag -_080FAB34: - ldr r0, [r4] - ldr r0, [r0, 0x20] - cmp r0, 0 - beq _080FAB54 - bl DestroySprite - ldr r0, [r4] - adds r0, 0x70 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r4] - adds r0, 0x72 - ldrh r0, [r0] - bl FreeSpritePaletteByTag -_080FAB54: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FAB5C: .4byte gUnknown_020388CC - thumb_func_end sub_80FAB10 - - thumb_func_start sub_80FAB60 -sub_80FAB60: @ 80FAB60 - push {lr} - ldr r0, _080FAB74 - ldr r0, [r0] - ldr r0, [r0, 0x18] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080FAB74: .4byte gUnknown_020388CC - thumb_func_end sub_80FAB60 - - thumb_func_start sub_80FAB78 -sub_80FAB78: @ 80FAB78 - push {r4,lr} - movs r4, 0 - ldr r2, _080FAC14 - ldr r0, [r2] - adds r0, 0x7B - strb r4, [r0] - ldr r0, [r2] - adds r0, 0x7C - strb r4, [r0] - ldr r3, _080FAC18 - ldrh r1, [r3, 0x2C] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080FABAA - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0x56 - ldrh r0, [r0] - cmp r0, 0x2 - bls _080FABAA - adds r1, 0x7C - movs r0, 0xFF - strb r0, [r1] - movs r4, 0x1 -_080FABAA: - ldrh r1, [r3, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080FABC8 - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0x56 - ldrh r0, [r0] - cmp r0, 0xF - bhi _080FABC8 - adds r1, 0x7C - movs r0, 0x1 - strb r0, [r1] - movs r4, 0x1 -_080FABC8: - ldrh r1, [r3, 0x2C] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080FABE6 - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0x54 - ldrh r0, [r0] - cmp r0, 0x1 - bls _080FABE6 - adds r1, 0x7B - movs r0, 0xFF - strb r0, [r1] - movs r4, 0x1 -_080FABE6: - ldrh r1, [r3, 0x2C] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080FAC04 - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0x54 - ldrh r0, [r0] - cmp r0, 0x1B - bhi _080FAC04 - adds r1, 0x7B - movs r0, 0x1 - strb r0, [r1] - movs r4, 0x1 -_080FAC04: - ldrh r3, [r3, 0x2E] - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _080FAC1C - movs r4, 0x4 - b _080FAC26 - .align 2, 0 -_080FAC14: .4byte gUnknown_020388CC -_080FAC18: .4byte gMain -_080FAC1C: - movs r0, 0x2 - ands r0, r3 - cmp r0, 0 - beq _080FAC26 - movs r4, 0x5 -_080FAC26: - cmp r4, 0x1 - bne _080FAC38 - ldr r0, [r2] - adds r0, 0x7A - movs r1, 0x4 - strb r1, [r0] - ldr r1, [r2] - ldr r0, _080FAC40 - str r0, [r1, 0x18] -_080FAC38: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080FAC40: .4byte _swiopen - thumb_func_end sub_80FAB78 - - thumb_func_start _swiopen -_swiopen: @ 80FAC44 - push {r4,r5,lr} - ldr r5, _080FAC5C - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x7A - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080FAC60 - movs r0, 0x2 - b _080FACFA - .align 2, 0 -_080FAC5C: .4byte gUnknown_020388CC -_080FAC60: - adds r0, r1, 0 - adds r0, 0x7B - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _080FAC76 - adds r1, 0x54 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080FAC76: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x7B - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bge _080FAC8E - adds r1, 0x54 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] -_080FAC8E: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x7C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _080FACA6 - adds r1, 0x56 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080FACA6: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x7C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bge _080FACBE - adds r1, 0x56 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] -_080FACBE: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x54 - ldrh r0, [r0] - adds r1, 0x56 - ldrh r1, [r1] - bl sub_80FB2EC - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl sub_80FB758 - ldr r1, [r5] - strb r0, [r1, 0x16] - ldr r0, [r5] - ldrh r1, [r0, 0x14] - cmp r4, r1 - beq _080FACEE - strh r4, [r0, 0x14] - ldrh r1, [r0, 0x14] - movs r2, 0x10 - bl sub_80FBFB4 -_080FACEE: - bl sub_80FBA18 - ldr r1, [r5] - ldr r0, _080FAD00 - str r0, [r1, 0x18] - movs r0, 0x3 -_080FACFA: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080FAD00: .4byte sub_80FAB78 - thumb_func_end _swiopen - - thumb_func_start sub_80FAD04 -sub_80FAD04: @ 80FAD04 - push {r4-r6,lr} - movs r4, 0 - ldr r3, _080FADD4 - ldr r0, [r3] - mov r12, r0 - adds r0, 0x6A - strh r4, [r0] - mov r5, r12 - adds r5, 0x68 - strh r4, [r5] - ldr r2, _080FADD8 - ldrh r1, [r2, 0x2C] - movs r0, 0x40 - ands r0, r1 - adds r6, r3, 0 - adds r3, r2, 0 - cmp r0, 0 - beq _080FAD3E - mov r0, r12 - adds r0, 0x5E - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0x34 - negs r0, r0 - cmp r1, r0 - ble _080FAD3E - ldr r0, _080FADDC - strh r0, [r5] - movs r4, 0x1 -_080FAD3E: - ldrh r1, [r3, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080FAD5E - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x5E - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r0, 0x3B - bgt _080FAD5E - adds r1, 0x68 - movs r0, 0x1 - strh r0, [r1] - movs r4, 0x1 -_080FAD5E: - ldrh r1, [r3, 0x2C] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080FAD84 - ldr r2, [r6] - adds r0, r2, 0 - adds r0, 0x5C - movs r5, 0 - ldrsh r1, [r0, r5] - movs r0, 0x2C - negs r0, r0 - cmp r1, r0 - ble _080FAD84 - adds r1, r2, 0 - adds r1, 0x6A - ldr r0, _080FADDC - strh r0, [r1] - movs r4, 0x1 -_080FAD84: - ldrh r1, [r3, 0x2C] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080FADA4 - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x5C - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0xAB - bgt _080FADA4 - adds r1, 0x6A - movs r0, 0x1 - strh r0, [r1] - movs r4, 0x1 -_080FADA4: - ldrh r2, [r3, 0x2E] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _080FADB0 - movs r4, 0x4 -_080FADB0: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _080FADBA - movs r4, 0x5 -_080FADBA: - cmp r4, 0x1 - bne _080FADCA - ldr r0, [r6] - ldr r1, _080FADE0 - str r1, [r0, 0x18] - adds r0, 0x6C - movs r1, 0 - strh r1, [r0] -_080FADCA: - adds r0, r4, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080FADD4: .4byte gUnknown_020388CC -_080FADD8: .4byte gMain -_080FADDC: .4byte 0x0000ffff -_080FADE0: .4byte sub_80FADE4 - thumb_func_end sub_80FAD04 - - thumb_func_start sub_80FADE4 -sub_80FADE4: @ 80FADE4 - push {r4,r5,lr} - ldr r5, _080FAEB4 - ldr r2, [r5] - adds r3, r2, 0 - adds r3, 0x5E - adds r0, r2, 0 - adds r0, 0x68 - ldrh r0, [r0] - ldrh r1, [r3] - adds r0, r1 - strh r0, [r3] - adds r1, r2, 0 - adds r1, 0x5C - adds r0, r2, 0 - adds r0, 0x6A - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - movs r4, 0 - ldrsh r0, [r1, r4] - movs r2, 0 - ldrsh r1, [r3, r2] - bl sub_80FB238 - ldr r2, [r5] - adds r1, r2, 0 - adds r1, 0x6C - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x8 - bne _080FAEBC - adds r0, r2, 0 - adds r0, 0x5C - movs r3, 0 - ldrsh r1, [r0, r3] - adds r0, r1, 0 - adds r0, 0x2C - cmp r0, 0 - bge _080FAE3C - adds r0, 0x7 -_080FAE3C: - asrs r0, 3 - adds r0, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r0, r2, 0 - adds r0, 0x5E - movs r4, 0 - ldrsh r1, [r0, r4] - adds r0, r1, 0 - adds r0, 0x34 - cmp r0, 0 - bge _080FAE56 - adds r0, 0x7 -_080FAE56: - asrs r0, 3 - adds r0, 0x2 - lsls r0, 16 - lsrs r1, r0, 16 - adds r4, r2, 0 - adds r4, 0x64 - adds r0, r2, 0 - adds r0, 0x66 - ldrh r2, [r4] - cmp r3, r2 - bne _080FAE72 - ldrh r2, [r0] - cmp r1, r2 - beq _080FAEA0 -_080FAE72: - strh r3, [r4] - strh r1, [r0] - adds r0, r3, 0 - bl sub_80FB2EC - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl sub_80FB758 - ldr r1, [r5] - strb r0, [r1, 0x16] - ldr r0, [r5] - ldrh r3, [r0, 0x14] - cmp r4, r3 - beq _080FAE9C - strh r4, [r0, 0x14] - ldrh r1, [r0, 0x14] - movs r2, 0x10 - bl sub_80FBFB4 -_080FAE9C: - bl sub_80FBA18 -_080FAEA0: - ldr r0, _080FAEB4 - ldr r2, [r0] - adds r1, r2, 0 - adds r1, 0x6C - movs r0, 0 - strh r0, [r1] - ldr r0, _080FAEB8 - str r0, [r2, 0x18] - movs r0, 0x3 - b _080FAEBE - .align 2, 0 -_080FAEB4: .4byte gUnknown_020388CC -_080FAEB8: .4byte sub_80FAD04 -_080FAEBC: - movs r0, 0x2 -_080FAEBE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80FADE4 - - thumb_func_start sub_80FAEC4 -sub_80FAEC4: @ 80FAEC4 - push {r4-r6,lr} - ldr r1, _080FAF40 - ldr r2, [r1] - adds r0, r2, 0 - adds r0, 0x78 - ldrb r3, [r0] - adds r5, r1, 0 - cmp r3, 0 - bne _080FAF48 - subs r0, 0x1A - strh r3, [r0] - subs r0, 0x2 - strh r3, [r0] - str r3, [r2, 0x40] - str r3, [r2, 0x3C] - adds r4, r2, 0 - adds r4, 0x54 - ldrh r0, [r4] - lsls r0, 3 - subs r0, 0x34 - adds r1, r2, 0 - adds r1, 0x60 - strh r0, [r1] - movs r0, 0x56 - adds r0, r2 - mov r12, r0 - ldrh r0, [r0] - lsls r0, 3 - subs r0, 0x44 - adds r3, r2, 0 - adds r3, 0x62 - strh r0, [r3] - movs r6, 0 - ldrsh r0, [r1, r6] - lsls r0, 8 - cmp r0, 0 - bge _080FAF10 - adds r0, 0xF -_080FAF10: - asrs r0, 4 - str r0, [r2, 0x44] - movs r1, 0 - ldrsh r0, [r3, r1] - lsls r0, 8 - cmp r0, 0 - bge _080FAF20 - adds r0, 0xF -_080FAF20: - asrs r0, 4 - str r0, [r2, 0x48] - ldrh r1, [r4] - adds r0, r2, 0 - adds r0, 0x64 - strh r1, [r0] - mov r3, r12 - ldrh r0, [r3] - adds r1, r2, 0 - adds r1, 0x66 - strh r0, [r1] - movs r0, 0x80 - lsls r0, 9 - str r0, [r2, 0x4C] - ldr r0, _080FAF44 - b _080FAFA6 - .align 2, 0 -_080FAF40: .4byte gUnknown_020388CC -_080FAF44: .4byte 0xfffff800 -_080FAF48: - adds r0, r2, 0 - adds r0, 0x5C - movs r6, 0 - ldrsh r0, [r0, r6] - lsls r0, 8 - str r0, [r2, 0x3C] - adds r0, r2, 0 - adds r0, 0x5E - movs r1, 0 - ldrsh r0, [r0, r1] - lsls r0, 8 - str r0, [r2, 0x40] - adds r0, r2, 0 - adds r0, 0x60 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r0, [r2, 0x3C] - cmp r0, 0 - bge _080FAF74 - adds r0, 0xF -_080FAF74: - asrs r0, 4 - negs r0, r0 - str r0, [r2, 0x44] - ldr r0, [r2, 0x40] - cmp r0, 0 - bge _080FAF82 - adds r0, 0xF -_080FAF82: - asrs r0, 4 - negs r0, r0 - str r0, [r2, 0x48] - adds r0, r2, 0 - adds r0, 0x64 - ldrh r1, [r0] - subs r0, 0x10 - strh r1, [r0] - adds r0, 0x12 - ldrh r0, [r0] - adds r1, r2, 0 - adds r1, 0x56 - strh r0, [r1] - movs r0, 0x80 - lsls r0, 8 - str r0, [r2, 0x4C] - movs r0, 0x80 - lsls r0, 4 -_080FAFA6: - str r0, [r2, 0x50] - ldr r0, [r5] - adds r0, 0x6E - movs r1, 0 - strh r1, [r0] - bl sub_80FBCA0 - bl sub_80FBDF8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80FAEC4 - - thumb_func_start sub_80FAFC0 -sub_80FAFC0: @ 80FAFC0 - push {r4-r6,lr} - sub sp, 0xC - ldr r0, _080FAFD8 - ldr r3, [r0] - adds r2, r3, 0 - adds r2, 0x6E - ldrh r1, [r2] - adds r5, r0, 0 - cmp r1, 0xF - bls _080FAFDC - movs r0, 0 - b _080FB164 - .align 2, 0 -_080FAFD8: .4byte gUnknown_020388CC -_080FAFDC: - adds r0, r1, 0x1 - movs r1, 0 - strh r0, [r2] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x10 - bne _080FB050 - str r1, [r3, 0x44] - str r1, [r3, 0x48] - adds r0, r3, 0 - adds r0, 0x60 - ldrh r1, [r0] - subs r0, 0x4 - strh r1, [r0] - adds r0, 0x6 - ldrh r0, [r0] - adds r1, r3, 0 - adds r1, 0x5E - strh r0, [r1] - adds r1, 0x1A - ldrb r0, [r1] - movs r2, 0x80 - lsls r2, 9 - cmp r0, 0 - bne _080FB012 - movs r2, 0x80 - lsls r2, 8 -_080FB012: - str r2, [r3, 0x4C] - movs r2, 0 - ldrb r0, [r1] - cmp r0, 0 - bne _080FB01E - movs r2, 0x1 -_080FB01E: - strb r2, [r1] - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x78 - ldrb r0, [r0] - ldr r2, _080FB048 - cmp r0, 0 - bne _080FB030 - ldr r2, _080FB04C -_080FB030: - str r2, [r1, 0x18] - adds r0, r1, 0 - adds r0, 0x58 - ldrh r0, [r0] - adds r1, 0x5A - ldrh r1, [r1] - bl sub_80FBB3C - bl sub_80FBE24 - movs r4, 0 - b _080FB132 - .align 2, 0 -_080FB048: .4byte sub_80FAD04 -_080FB04C: .4byte sub_80FAB78 -_080FB050: - ldr r2, [r3, 0x3C] - ldr r0, [r3, 0x44] - adds r2, r0 - str r2, [r3, 0x3C] - ldr r0, [r3, 0x40] - ldr r1, [r3, 0x48] - adds r0, r1 - str r0, [r3, 0x40] - asrs r2, 8 - adds r4, r3, 0 - adds r4, 0x5C - strh r2, [r4] - ldr r0, [r3, 0x40] - asrs r0, 8 - adds r1, r3, 0 - adds r1, 0x5E - strh r0, [r1] - ldr r0, [r3, 0x4C] - ldr r1, [r3, 0x50] - adds r0, r1 - str r0, [r3, 0x4C] - ldr r2, [r3, 0x44] - cmp r2, 0 - bge _080FB090 - adds r0, r3, 0 - adds r0, 0x60 - movs r6, 0 - ldrsh r1, [r4, r6] - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r1, r0 - blt _080FB0A4 -_080FB090: - cmp r2, 0 - ble _080FB0B4 - adds r0, r3, 0 - adds r0, 0x60 - movs r2, 0 - ldrsh r1, [r4, r2] - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r1, r0 - ble _080FB0B4 -_080FB0A4: - ldr r3, [r5] - adds r0, r3, 0 - adds r0, 0x60 - ldrh r2, [r0] - subs r0, 0x4 - movs r1, 0 - strh r2, [r0] - str r1, [r3, 0x44] -_080FB0B4: - ldr r2, [r5] - ldr r4, [r2, 0x48] - cmp r4, 0 - bge _080FB0D0 - adds r0, r2, 0 - adds r0, 0x5E - adds r3, r2, 0 - adds r3, 0x62 - movs r6, 0 - ldrsh r1, [r0, r6] - movs r6, 0 - ldrsh r0, [r3, r6] - cmp r1, r0 - blt _080FB0E8 -_080FB0D0: - cmp r4, 0 - ble _080FB0FA - adds r1, r2, 0 - adds r1, 0x5E - adds r0, r2, 0 - adds r0, 0x62 - movs r2, 0 - ldrsh r1, [r1, r2] - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r1, r0 - ble _080FB0FA -_080FB0E8: - ldr r2, [r5] - adds r0, r2, 0 - adds r0, 0x62 - ldrh r1, [r0] - adds r3, r2, 0 - adds r3, 0x5E - movs r0, 0 - strh r1, [r3] - str r0, [r2, 0x48] -_080FB0FA: - ldr r0, _080FB118 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x78 - ldrb r3, [r0] - cmp r3, 0 - bne _080FB120 - ldr r1, [r2, 0x4C] - ldr r0, _080FB11C - cmp r1, r0 - bgt _080FB130 - adds r0, 0x1 - str r0, [r2, 0x4C] - str r3, [r2, 0x50] - b _080FB130 - .align 2, 0 -_080FB118: .4byte gUnknown_020388CC -_080FB11C: .4byte 0x00007fff -_080FB120: - ldr r0, [r2, 0x4C] - movs r1, 0x80 - lsls r1, 9 - cmp r0, r1 - ble _080FB130 - str r1, [r2, 0x4C] - movs r0, 0 - str r0, [r2, 0x50] -_080FB130: - movs r4, 0x1 -_080FB132: - ldr r0, _080FB16C - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0x5C - movs r1, 0 - ldrsh r0, [r0, r1] - adds r1, r3, 0 - adds r1, 0x5E - movs r2, 0 - ldrsh r1, [r1, r2] - ldr r2, [r3, 0x4C] - lsls r2, 8 - lsrs r2, 16 - str r2, [sp] - ldr r2, [r3, 0x4C] - lsls r2, 8 - lsrs r2, 16 - str r2, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - movs r2, 0x38 - movs r3, 0x48 - bl sub_80FB170 - adds r0, r4, 0 -_080FB164: - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080FB16C: .4byte gUnknown_020388CC - thumb_func_end sub_80FAFC0 - - thumb_func_start sub_80FB170 -sub_80FB170: @ 80FB170 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, [sp, 0x24] - ldr r7, [sp, 0x28] - ldr r5, [sp, 0x2C] - lsls r4, 16 - lsrs r4, 16 - mov r8, r4 - lsls r7, 16 - adds r4, r7, 0 - lsrs r4, 16 - mov r9, r4 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _080FB230 - ldr r6, [r4] - ldr r7, _080FB234 - mov r12, r7 - adds r4, r5, 0 - adds r4, 0x40 - lsls r4, 1 - add r4, r12 - movs r7, 0 - ldrsh r4, [r4, r7] - str r4, [sp] - mov r7, r8 - muls r7, r4 - adds r4, r7, 0 - asrs r4, 8 - mov r10, r4 - str r4, [r6, 0x2C] - lsls r5, 1 - add r5, r12 - movs r7, 0 - ldrsh r5, [r5, r7] - negs r4, r5 - mov r7, r8 - muls r7, r4 - adds r4, r7, 0 - asrs r4, 8 - mov r12, r4 - str r4, [r6, 0x30] - mov r7, r9 - muls r7, r5 - adds r5, r7, 0 - asrs r5, 8 - str r5, [r6, 0x34] - ldr r7, [sp] - mov r4, r9 - muls r4, r7 - asrs r4, 8 - mov r8, r4 - str r4, [r6, 0x38] - lsls r0, 16 - asrs r0, 8 - lsls r2, 16 - asrs r2, 16 - lsls r4, r2, 8 - adds r0, r4 - lsls r3, 16 - asrs r3, 16 - adds r4, r3, 0 - muls r4, r5 - mov r5, r10 - muls r5, r2 - adds r4, r5 - subs r0, r4 - str r0, [r6, 0x24] - lsls r1, 16 - asrs r1, 8 - lsls r0, r3, 8 - adds r1, r0 - mov r0, r8 - muls r0, r3 - mov r3, r12 - muls r3, r2 - adds r2, r3, 0 - adds r0, r2 - subs r1, r0 - str r1, [r6, 0x28] - adds r6, 0x7D - movs r0, 0x1 - strb r0, [r6] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FB230: .4byte gUnknown_020388CC -_080FB234: .4byte gSineTable - thumb_func_end sub_80FB170 - - thumb_func_start sub_80FB238 -sub_80FB238: @ 80FB238 - ldr r2, _080FB25C - ldr r2, [r2] - lsls r0, 16 - asrs r0, 8 - movs r3, 0xE0 - lsls r3, 5 - adds r0, r3 - str r0, [r2, 0x24] - lsls r1, 16 - asrs r1, 8 - movs r0, 0x90 - lsls r0, 6 - adds r1, r0 - str r1, [r2, 0x28] - adds r2, 0x7D - movs r0, 0x1 - strb r0, [r2] - bx lr - .align 2, 0 -_080FB25C: .4byte gUnknown_020388CC - thumb_func_end sub_80FB238 - - thumb_func_start sub_80FB260 -sub_80FB260: @ 80FB260 - push {lr} - ldr r0, _080FB29C - ldr r2, [r0] - adds r3, r2, 0 - adds r3, 0x7D - ldrb r0, [r3] - cmp r0, 0 - beq _080FB298 - ldr r1, _080FB2A0 - ldr r0, [r2, 0x2C] - strh r0, [r1] - adds r1, 0x2 - ldr r0, [r2, 0x34] - strh r0, [r1] - adds r1, 0x2 - ldr r0, [r2, 0x30] - strh r0, [r1] - adds r1, 0x2 - ldr r0, [r2, 0x38] - strh r0, [r1] - adds r1, 0x2 - ldr r0, [r2, 0x24] - str r0, [r1] - adds r1, 0x4 - ldr r0, [r2, 0x28] - str r0, [r1] - movs r0, 0 - strb r0, [r3] -_080FB298: - pop {r0} - bx r0 - .align 2, 0 -_080FB29C: .4byte gUnknown_020388CC -_080FB2A0: .4byte REG_BG2PA - thumb_func_end sub_80FB260 - - thumb_func_start sub_80FB2A4 -sub_80FB2A4: @ 80FB2A4 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 16 - asrs r4, r0, 16 - lsls r1, 16 - asrs r5, r1, 16 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x38 - movs r3, 0x48 - bl sub_80FB170 - bl sub_80FB260 - ldr r0, _080FB2E8 - ldr r2, [r0] - ldr r1, [r2, 0x20] - cmp r1, 0 - beq _080FB2E0 - negs r0, r4 - strh r0, [r1, 0x24] - ldr r1, [r2, 0x20] - negs r0, r5 - strh r0, [r1, 0x26] -_080FB2E0: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FB2E8: .4byte gUnknown_020388CC - thumb_func_end sub_80FB2A4 - - thumb_func_start sub_80FB2EC -sub_80FB2EC: @ 80FB2EC - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - ldr r0, _080FB30C - adds r1, r0 - lsrs r2, r1, 16 - cmp r2, 0xE - bhi _080FB306 - cmp r3, 0 - beq _080FB306 - cmp r3, 0x1C - bls _080FB310 -_080FB306: - movs r0, 0x58 - b _080FB324 - .align 2, 0 -_080FB30C: .4byte 0xfffe0000 -_080FB310: - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r1, _080FB328 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r3, r0 - adds r0, r1 - ldrb r0, [r0] -_080FB324: - pop {r1} - bx r1 - .align 2, 0 -_080FB328: .4byte gRegionMapSections - thumb_func_end sub_80FB2EC - - thumb_func_start sub_80FB32C -sub_80FB32C: @ 80FB32C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, _080FB358 - movs r1, 0x4 - ldrsb r1, [r0, r1] - adds r2, r0, 0 - cmp r1, 0x19 - bne _080FB35C - ldrb r0, [r2, 0x5] - subs r0, 0x29 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bhi _080FB35C - bl sub_80FB600 - b _080FB5E8 - .align 2, 0 -_080FB358: .4byte gSaveBlock1 -_080FB35C: - movs r0, 0x4 - ldrsb r0, [r2, r0] - movs r1, 0x5 - ldrsb r1, [r2, r1] - bl get_map_light_level_by_bank_and_number - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x8 - bhi _080FB3A4 - lsls r0, 2 - ldr r1, _080FB37C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FB37C: .4byte _080FB380 - .align 2, 0 -_080FB380: - .4byte _080FB3A4 - .4byte _080FB3A4 - .4byte _080FB3A4 - .4byte _080FB3E0 - .4byte _080FB3A4 - .4byte _080FB3A4 - .4byte _080FB3E0 - .4byte _080FB464 - .4byte _080FB428 -_080FB3A4: - ldr r4, _080FB3D4 - ldr r0, [r4] - ldr r3, _080FB3D8 - ldrb r1, [r3, 0x14] - movs r2, 0 - strh r1, [r0, 0x14] - adds r0, 0x7F - strb r2, [r0] - ldr r0, [r3] - ldrh r2, [r0] - ldrh r0, [r0, 0x4] - mov r8, r0 - ldr r0, _080FB3DC - ldrh r6, [r0] - ldrh r3, [r0, 0x2] - ldr r1, [r4] - ldrh r0, [r1, 0x14] - cmp r0, 0x45 - beq _080FB3CC - b _080FB4CC -_080FB3CC: - adds r1, 0x7F - movs r0, 0x1 - strb r0, [r1] - b _080FB4CC - .align 2, 0 -_080FB3D4: .4byte gUnknown_020388CC -_080FB3D8: .4byte gMapHeader -_080FB3DC: .4byte gSaveBlock1 -_080FB3E0: - ldr r4, _080FB420 - adds r0, r4, 0 - adds r0, 0x24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - adds r1, 0x25 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - lsls r1, 16 - lsrs r1, 16 - bl get_mapheader_by_bank_and_number - adds r2, r0, 0 - ldr r0, _080FB424 - ldr r0, [r0] - ldrb r1, [r2, 0x14] - strh r1, [r0, 0x14] - adds r0, 0x7F - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r2] - ldrh r2, [r0] - ldrh r0, [r0, 0x4] - mov r8, r0 - ldrh r6, [r4, 0x28] - ldrh r3, [r4, 0x2A] - b _080FB4CC - .align 2, 0 -_080FB420: .4byte gSaveBlock1 -_080FB424: .4byte gUnknown_020388CC -_080FB428: - ldr r4, _080FB45C - movs r0, 0x14 - ldrsb r0, [r4, r0] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x15 - ldrsb r1, [r4, r1] - lsls r1, 16 - lsrs r1, 16 - bl get_mapheader_by_bank_and_number - adds r2, r0, 0 - ldr r0, _080FB460 - ldr r0, [r0] - ldrb r1, [r2, 0x14] - strh r1, [r0, 0x14] - adds r0, 0x7F - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r2] - ldrh r2, [r0] - ldrh r0, [r0, 0x4] - mov r8, r0 - ldrh r6, [r4, 0x18] - ldrh r3, [r4, 0x1A] - b _080FB4CC - .align 2, 0 -_080FB45C: .4byte gSaveBlock1 -_080FB460: .4byte gUnknown_020388CC -_080FB464: - ldr r5, _080FB48C - ldr r0, [r5] - ldr r1, _080FB490 - ldrb r1, [r1, 0x14] - strh r1, [r0, 0x14] - cmp r1, 0x57 - beq _080FB498 - ldr r4, _080FB494 - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ldrsb r1, [r4, r1] - lsls r1, 16 - lsrs r1, 16 - bl get_mapheader_by_bank_and_number - adds r2, r0, 0 - b _080FB4B6 - .align 2, 0 -_080FB48C: .4byte gUnknown_020388CC -_080FB490: .4byte gMapHeader -_080FB494: .4byte gSaveBlock1 + 0x24 -_080FB498: - ldr r4, _080FB548 - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ldrsb r1, [r4, r1] - lsls r1, 16 - lsrs r1, 16 - bl get_mapheader_by_bank_and_number - adds r2, r0, 0 - ldr r1, [r5] - ldrb r0, [r2, 0x14] - strh r0, [r1, 0x14] -_080FB4B6: - ldr r0, _080FB54C - ldr r0, [r0] - adds r0, 0x7F - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - ldrh r2, [r0] - ldrh r0, [r0, 0x4] - mov r8, r0 - ldrh r6, [r4, 0x4] - ldrh r3, [r4, 0x6] -_080FB4CC: - mov r9, r6 - ldr r4, _080FB54C - ldr r0, [r4] - ldrh r5, [r0, 0x14] - lsls r0, r5, 3 - ldr r1, _080FB550 - adds r0, r1 - mov r10, r0 - ldrb r7, [r0, 0x2] - adds r0, r2, 0 - adds r1, r7, 0 - str r3, [sp] - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r3, [sp] - cmp r1, 0 - bne _080FB4F4 - movs r1, 0x1 -_080FB4F4: - adds r0, r6, 0 - str r3, [sp] - bl __udivsi3 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r3, [sp] - cmp r6, r7 - bcc _080FB50C - subs r0, r7, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080FB50C: - mov r2, r10 - ldrb r4, [r2, 0x3] - mov r0, r8 - adds r1, r4, 0 - str r3, [sp] - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r3, [sp] - cmp r1, 0 - bne _080FB526 - movs r1, 0x1 -_080FB526: - adds r0, r3, 0 - bl __udivsi3 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - bcc _080FB53A - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 -_080FB53A: - cmp r5, 0x24 - beq _080FB59C - cmp r5, 0x24 - bgt _080FB554 - cmp r5, 0x1D - beq _080FB55E - b _080FB5BE - .align 2, 0 -_080FB548: .4byte gSaveBlock1 + 0x14 -_080FB54C: .4byte gUnknown_020388CC -_080FB550: .4byte gRegionMapLocations -_080FB554: - cmp r5, 0x29 - beq _080FB566 - cmp r5, 0x33 - beq _080FB566 - b _080FB5BE -_080FB55E: - cmp r3, 0 - beq _080FB5BE - movs r6, 0 - b _080FB5BE -_080FB566: - movs r6, 0 - ldr r1, _080FB598 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x20 - ble _080FB574 - movs r6, 0x1 -_080FB574: - cmp r0, 0x33 - ble _080FB57E - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080FB57E: - movs r3, 0 - movs r2, 0x2 - ldrsh r0, [r1, r2] - cmp r0, 0x25 - ble _080FB58A - movs r3, 0x1 -_080FB58A: - cmp r0, 0x38 - ble _080FB5BE - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - b _080FB5BE - .align 2, 0 -_080FB598: .4byte gSaveBlock1 -_080FB59C: - movs r6, 0 - mov r0, r9 - cmp r0, 0xE - bls _080FB5A6 - movs r6, 0x1 -_080FB5A6: - mov r1, r9 - cmp r1, 0x1C - bls _080FB5B2 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080FB5B2: - mov r2, r9 - cmp r2, 0x36 - bls _080FB5BE - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080FB5BE: - ldr r0, _080FB5F8 - ldr r2, [r0] - ldrh r0, [r2, 0x14] - lsls r0, 3 - ldr r1, _080FB5FC - adds r0, r1 - ldrb r0, [r0] - adds r0, r6, r0 - adds r0, 0x1 - adds r1, r2, 0 - adds r1, 0x54 - strh r0, [r1] - ldrh r0, [r2, 0x14] - lsls r0, 3 - ldr r1, _080FB5FC - adds r0, r1 - ldrb r0, [r0, 0x1] - adds r0, r3, r0 - adds r0, 0x2 - adds r2, 0x56 - strh r0, [r2] -_080FB5E8: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FB5F8: .4byte gUnknown_020388CC -_080FB5FC: .4byte gRegionMapLocations - thumb_func_end sub_80FB32C - - thumb_func_start sub_80FB600 -sub_80FB600: @ 80FB600 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r7, 0 - movs r0, 0 - mov r8, r0 - mov r4, sp - adds r4, 0x1 - mov r5, sp - adds r5, 0x2 - add r6, sp, 0x4 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_810D9EC - lsls r0, 24 - lsrs r0, 24 - mov r10, r5 - cmp r0, 0x4 - bhi _080FB694 - lsls r0, 2 - ldr r1, _080FB63C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FB63C: .4byte _080FB640 - .align 2, 0 -_080FB640: - .4byte _080FB694 - .4byte _080FB654 - .4byte _080FB664 - .4byte _080FB674 - .4byte _080FB684 -_080FB654: - ldr r2, _080FB660 - ldr r1, [r2] - movs r0, 0x8 - strh r0, [r1, 0x14] - b _080FB710 - .align 2, 0 -_080FB660: .4byte gUnknown_020388CC -_080FB664: - ldr r2, _080FB670 - ldr r1, [r2] - movs r0, 0xC - strh r0, [r1, 0x14] - b _080FB710 - .align 2, 0 -_080FB670: .4byte gUnknown_020388CC -_080FB674: - ldr r2, _080FB680 - ldr r1, [r2] - movs r0, 0x27 - strh r0, [r1, 0x14] - b _080FB710 - .align 2, 0 -_080FB680: .4byte gUnknown_020388CC -_080FB684: - ldr r2, _080FB690 - ldr r1, [r2] - movs r0, 0x2E - strh r0, [r1, 0x14] - b _080FB710 - .align 2, 0 -_080FB690: .4byte gUnknown_020388CC -_080FB694: - mov r0, sp - ldrb r0, [r0] - ldrb r1, [r4] - bl get_mapheader_by_bank_and_number - ldr r1, _080FB750 - mov r9, r1 - ldr r2, [r1] - ldrb r1, [r0, 0x14] - strh r1, [r2, 0x14] - ldr r6, [r0] - ldr r1, _080FB754 - ldrh r0, [r2, 0x14] - lsls r0, 3 - adds r5, r0, r1 - ldrb r4, [r5, 0x2] - ldr r0, [r6] - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _080FB6C6 - movs r1, 0x1 -_080FB6C6: - mov r2, r10 - movs r3, 0 - ldrsh r0, [r2, r3] - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r8, r4 - bcc _080FB6E2 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_080FB6E2: - ldrb r4, [r5, 0x3] - ldr r0, [r6, 0x4] - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _080FB6F6 - movs r1, 0x1 -_080FB6F6: - mov r2, sp - movs r3, 0x4 - ldrsh r0, [r2, r3] - bl __divsi3 - lsls r0, 16 - lsrs r7, r0, 16 - mov r2, r9 - cmp r7, r4 - bcc _080FB710 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 -_080FB710: - ldr r0, [r2] - adds r0, 0x7F - movs r1, 0 - strb r1, [r0] - ldr r2, [r2] - ldr r3, _080FB754 - ldrh r0, [r2, 0x14] - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0] - add r0, r8 - adds r0, 0x1 - adds r1, r2, 0 - adds r1, 0x54 - strh r0, [r1] - ldrh r0, [r2, 0x14] - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0, 0x1] - adds r0, r7, r0 - adds r0, 0x2 - adds r2, 0x56 - strh r0, [r2] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FB750: .4byte gUnknown_020388CC -_080FB754: .4byte gRegionMapLocations - thumb_func_end sub_80FB600 - - thumb_func_start sub_80FB758 -sub_80FB758: @ 80FB758 - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x58 - bls _080FB764 - b _080FB9A0 -_080FB764: - lsls r0, 2 - ldr r1, _080FB770 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FB770: .4byte _080FB774 - .align 2, 0 -_080FB774: - .4byte _080FB8DC - .4byte _080FB8E4 - .4byte _080FB8EA - .4byte _080FB8F4 - .4byte _080FB8FC - .4byte _080FB904 - .4byte _080FB90C - .4byte _080FB914 - .4byte _080FB91C - .4byte _080FB924 - .4byte _080FB92C - .4byte _080FB934 - .4byte _080FB93C - .4byte _080FB944 - .4byte _080FB94C - .4byte _080FB954 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB96C - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB988 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB8D8 -_080FB8D8: - movs r0, 0 - b _080FB9A2 -_080FB8DC: - ldr r0, _080FB8E0 - b _080FB956 - .align 2, 0 -_080FB8E0: .4byte 0x0000080f -_080FB8E4: - movs r0, 0x81 - lsls r0, 4 - b _080FB956 -_080FB8EA: - ldr r0, _080FB8F0 - b _080FB956 - .align 2, 0 -_080FB8F0: .4byte 0x00000811 -_080FB8F4: - ldr r0, _080FB8F8 - b _080FB956 - .align 2, 0 -_080FB8F8: .4byte 0x00000812 -_080FB8FC: - ldr r0, _080FB900 - b _080FB956 - .align 2, 0 -_080FB900: .4byte 0x00000813 -_080FB904: - ldr r0, _080FB908 - b _080FB956 - .align 2, 0 -_080FB908: .4byte 0x00000814 -_080FB90C: - ldr r0, _080FB910 - b _080FB956 - .align 2, 0 -_080FB910: .4byte 0x00000815 -_080FB914: - ldr r0, _080FB918 - b _080FB956 - .align 2, 0 -_080FB918: .4byte 0x00000816 -_080FB91C: - ldr r0, _080FB920 - b _080FB956 - .align 2, 0 -_080FB920: .4byte 0x00000817 -_080FB924: - ldr r0, _080FB928 - b _080FB956 - .align 2, 0 -_080FB928: .4byte 0x00000818 -_080FB92C: - ldr r0, _080FB930 - b _080FB956 - .align 2, 0 -_080FB930: .4byte 0x00000819 -_080FB934: - ldr r0, _080FB938 - b _080FB956 - .align 2, 0 -_080FB938: .4byte 0x0000081a -_080FB93C: - ldr r0, _080FB940 - b _080FB956 - .align 2, 0 -_080FB940: .4byte 0x0000081b -_080FB944: - ldr r0, _080FB948 - b _080FB956 - .align 2, 0 -_080FB948: .4byte 0x0000081c -_080FB94C: - ldr r0, _080FB950 - b _080FB956 - .align 2, 0 -_080FB950: .4byte 0x0000081d -_080FB954: - ldr r0, _080FB968 -_080FB956: - bl FlagGet - lsls r0, 24 - movs r1, 0x3 - cmp r0, 0 - beq _080FB964 - movs r1, 0x2 -_080FB964: - adds r0, r1, 0 - b _080FB9A2 - .align 2, 0 -_080FB968: .4byte 0x0000081e -_080FB96C: - ldr r0, _080FB984 - bl FlagGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - negs r0, r1 - orrs r0, r1 - asrs r0, 31 - movs r1, 0x4 - ands r0, r1 - b _080FB9A2 - .align 2, 0 -_080FB984: .4byte 0x00000848 -_080FB988: - ldr r0, _080FB99C - bl FlagGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - b _080FB9A2 - .align 2, 0 -_080FB99C: .4byte 0x00000849 -_080FB9A0: - movs r0, 0x1 -_080FB9A2: - pop {r1} - bx r1 - thumb_func_end sub_80FB758 - - thumb_func_start sub_80FB9A8 -sub_80FB9A8: @ 80FB9A8 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - bl sub_80FB2EC - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80FB9A8 - - thumb_func_start sub_80FB9C0 -sub_80FB9C0: @ 80FB9C0 - push {r4-r6,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r0, _080FB9E8 - ldrh r1, [r0] - adds r4, r0, 0 - cmp r1, 0x58 - beq _080FB9FC - adds r5, r4, 0 - adds r6, r4, 0x2 -_080FB9D6: - lsls r1, r2, 2 - adds r0, r1, r5 - ldrh r0, [r0] - cmp r0, r3 - bne _080FB9EC - adds r0, r1, r6 - ldrh r0, [r0] - b _080FB9FE - .align 2, 0 -_080FB9E8: .4byte gUnknown_083E7684 -_080FB9EC: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r0, r2, 2 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0x58 - bne _080FB9D6 -_080FB9FC: - adds r0, r3, 0 -_080FB9FE: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80FB9C0 - - thumb_func_start sub_80FBA04 -sub_80FBA04: @ 80FBA04 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_80FB9C0 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80FBA04 - - thumb_func_start sub_80FBA18 -sub_80FBA18: @ 80FBA18 - push {r4-r6,lr} - ldr r0, _080FBA2C - ldr r1, [r0] - ldrh r0, [r1, 0x14] - cmp r0, 0x58 - bne _080FBA30 - movs r0, 0 - strb r0, [r1, 0x17] - b _080FBA96 - .align 2, 0 -_080FBA2C: .4byte gUnknown_020388CC -_080FBA30: - adds r0, r1, 0 - adds r0, 0x78 - ldrb r0, [r0] - cmp r0, 0 - bne _080FBA40 - adds r0, r1, 0 - adds r0, 0x54 - b _080FBA44 -_080FBA40: - adds r0, r1, 0 - adds r0, 0x64 -_080FBA44: - ldrh r4, [r0] - adds r0, 0x2 - ldrh r5, [r0] - movs r6, 0 - b _080FBA70 -_080FBA4E: - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80FB2EC - ldr r1, _080FBA8C - ldr r1, [r1] - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r1, 0x14] - cmp r0, r1 - bne _080FBA70 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080FBA70: - cmp r4, 0x1 - bhi _080FBA4E - adds r0, r5, 0 - bl sub_80FBAA0 - lsls r0, 24 - cmp r0, 0 - beq _080FBA90 - subs r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - movs r4, 0x1D - b _080FBA70 - .align 2, 0 -_080FBA8C: .4byte gUnknown_020388CC -_080FBA90: - ldr r0, _080FBA9C - ldr r0, [r0] - strb r6, [r0, 0x17] -_080FBA96: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080FBA9C: .4byte gUnknown_020388CC - thumb_func_end sub_80FBA18 - - thumb_func_start sub_80FBAA0 -sub_80FBAA0: @ 80FBAA0 - push {r4,r5,lr} - lsls r0, 16 - ldr r1, _080FBAB4 - adds r0, r1 - lsrs r5, r0, 16 - ldr r0, _080FBAB8 - cmp r5, r0 - bne _080FBAC0 - b _080FBAE2 - .align 2, 0 -_080FBAB4: .4byte 0xffff0000 -_080FBAB8: .4byte 0x0000ffff -_080FBABC: - movs r0, 0x1 - b _080FBAE4 -_080FBAC0: - movs r4, 0x1 -_080FBAC2: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80FB2EC - ldr r1, _080FBAEC - ldr r1, [r1] - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r1, 0x14] - cmp r0, r1 - beq _080FBABC - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1C - bls _080FBAC2 -_080FBAE2: - movs r0, 0 -_080FBAE4: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080FBAEC: .4byte gUnknown_020388CC - thumb_func_end sub_80FBAA0 - - thumb_func_start sub_80FBAF0 -sub_80FBAF0: @ 80FBAF0 - push {r4,lr} - adds r2, r0, 0 - ldr r0, _080FBB34 - ldr r1, [r0] - adds r3, r1, 0 - adds r3, 0x7A - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r0, 0 - beq _080FBB2E - adds r0, r1, 0 - adds r0, 0x7B - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - ldrh r4, [r2, 0x20] - adds r0, r4 - strh r0, [r2, 0x20] - adds r0, r1, 0 - adds r0, 0x7C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - ldrh r1, [r2, 0x22] - adds r0, r1 - strh r0, [r2, 0x22] - ldrb r0, [r3] - subs r0, 0x1 - strb r0, [r3] -_080FBB2E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FBB34: .4byte gUnknown_020388CC - thumb_func_end sub_80FBAF0 - - thumb_func_start nullsub_66 -nullsub_66: @ 80FBB38 - bx lr - thumb_func_end nullsub_66 - - thumb_func_start sub_80FBB3C -sub_80FBB3C: @ 80FBB3C - push {r4-r7,lr} - sub sp, 0x28 - lsls r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - ldr r1, _080FBBAC - ldr r2, [r1, 0x4] - ldr r1, [r1] - str r1, [sp, 0x20] - str r2, [sp, 0x24] - mov r2, sp - ldr r1, _080FBBB0 - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - lsrs r3, r0, 16 - add r2, sp, 0x18 - ldrh r1, [r2, 0x4] - orrs r1, r0 - str r1, [r2, 0x4] - mov r0, sp - strh r3, [r0] - ldr r0, _080FBBB4 - ldr r4, [r0] - adds r0, r4, 0 - adds r0, 0x58 - strh r3, [r0] - ldr r5, _080FBBB8 - add r1, sp, 0x20 - ldr r0, [r1, 0x4] - ands r0, r5 - orrs r0, r6 - str r0, [r1, 0x4] - mov r0, sp - strh r6, [r0, 0x2] - adds r3, r4, 0 - adds r0, r3, 0 - adds r0, 0x5A - strh r6, [r0] - adds r0, 0x1E - ldrb r0, [r0] - adds r7, r1, 0 - cmp r0, 0 - bne _080FBBC0 - movs r1, 0xC0 - lsls r1, 1 - adds r0, r3, r1 - str r0, [sp, 0x18] - ldr r0, [r2, 0x4] - ands r0, r5 - subs r1, 0x80 - orrs r0, r1 - str r0, [r2, 0x4] - ldr r0, _080FBBBC - b _080FBBD6 - .align 2, 0 -_080FBBAC: .4byte gUnknown_083E76E8 -_080FBBB0: .4byte gSpriteTemplate_83E76F0 -_080FBBB4: .4byte gUnknown_020388CC -_080FBBB8: .4byte 0xffff0000 -_080FBBBC: .4byte sub_80FBAF0 -_080FBBC0: - movs r3, 0xA0 - lsls r3, 2 - adds r0, r4, r3 - str r0, [sp, 0x18] - ldr r0, [r2, 0x4] - ands r0, r5 - movs r1, 0xC0 - lsls r1, 3 - orrs r0, r1 - str r0, [r2, 0x4] - ldr r0, _080FBC38 -_080FBBD6: - str r0, [sp, 0x14] - adds r0, r2, 0 - bl LoadSpriteSheet - adds r0, r7, 0 - bl LoadSpritePalette - mov r0, sp - movs r1, 0x38 - movs r2, 0x48 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080FBC90 - ldr r4, _080FBC3C - ldr r2, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080FBC40 - adds r3, r0, r1 - str r3, [r2, 0x1C] - adds r2, 0x78 - ldrb r0, [r2] - cmp r0, 0x1 - bne _080FBC44 - ldrb r1, [r3, 0x3] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r3, 0x3] - ldr r2, [r4] - ldr r1, [r2, 0x1C] - ldrh r0, [r1, 0x20] - subs r0, 0x8 - strh r0, [r1, 0x20] - ldr r1, [r2, 0x1C] - ldrh r0, [r1, 0x22] - subs r0, 0x8 - strh r0, [r1, 0x22] - ldr r0, [r2, 0x1C] - movs r1, 0x1 - bl StartSpriteAnim - b _080FBC6C - .align 2, 0 -_080FBC38: .4byte nullsub_66 -_080FBC3C: .4byte gUnknown_020388CC -_080FBC40: .4byte gSprites -_080FBC44: - ldrb r1, [r3, 0x3] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r3, 0x3] - ldr r1, [r4] - ldr r2, [r1, 0x1C] - adds r0, r1, 0 - adds r0, 0x54 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r2, 0x20] - ldr r2, [r1, 0x1C] - adds r1, 0x56 - ldrh r0, [r1] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r2, 0x22] -_080FBC6C: - ldr r4, _080FBC98 - ldr r0, [r4] - ldr r1, [r0, 0x1C] - movs r0, 0x2 - strh r0, [r1, 0x30] - adds r0, r6, 0 - bl IndexOfSpritePaletteTag - ldr r1, [r4] - ldr r2, [r1, 0x1C] - lsls r0, 24 - lsrs r0, 20 - ldr r4, _080FBC9C - adds r0, r4 - strh r0, [r2, 0x32] - ldr r1, [r1, 0x1C] - movs r0, 0x1 - strh r0, [r1, 0x34] -_080FBC90: - add sp, 0x28 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FBC98: .4byte gUnknown_020388CC -_080FBC9C: .4byte 0x00000101 - thumb_func_end sub_80FBB3C - - thumb_func_start sub_80FBCA0 -sub_80FBCA0: @ 80FBCA0 - push {r4,lr} - ldr r4, _080FBCCC - ldr r0, [r4] - ldr r0, [r0, 0x1C] - cmp r0, 0 - beq _080FBCC4 - bl DestroySprite - ldr r0, [r4] - adds r0, 0x58 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r4] - adds r0, 0x5A - ldrh r0, [r0] - bl FreeSpritePaletteByTag -_080FBCC4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FBCCC: .4byte gUnknown_020388CC - thumb_func_end sub_80FBCA0 - - thumb_func_start unref_sub_80FBCD0 -unref_sub_80FBCD0: @ 80FBCD0 - ldr r0, _080FBCDC - ldr r0, [r0] - ldr r1, [r0, 0x1C] - movs r0, 0x1 - strh r0, [r1, 0x34] - bx lr - .align 2, 0 -_080FBCDC: .4byte gUnknown_020388CC - thumb_func_end unref_sub_80FBCD0 - - thumb_func_start unref_sub_80FBCE0 -unref_sub_80FBCE0: @ 80FBCE0 - ldr r0, _080FBCEC - ldr r0, [r0] - ldr r1, [r0, 0x1C] - movs r0, 0 - strh r0, [r1, 0x34] - bx lr - .align 2, 0 -_080FBCEC: .4byte gUnknown_020388CC - thumb_func_end unref_sub_80FBCE0 - - thumb_func_start sub_80FBCF0 -sub_80FBCF0: @ 80FBCF0 - push {r4,r5,lr} - sub sp, 0x28 - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _080FBD98 - str r2, [sp, 0x18] - movs r2, 0x80 - add r5, sp, 0x18 - lsrs r3, r0, 16 - orrs r0, r2 - str r0, [r5, 0x4] - ldr r0, _080FBD9C - str r0, [sp, 0x20] - ldr r2, _080FBDA0 - add r4, sp, 0x20 - ldr r0, [r4, 0x4] - ands r0, r2 - orrs r0, r1 - str r0, [r4, 0x4] - mov r0, sp - movs r2, 0 - strh r3, [r0] - strh r1, [r0, 0x2] - ldr r0, _080FBDA4 - str r0, [sp, 0x4] - ldr r0, _080FBDA8 - str r0, [sp, 0x8] - str r2, [sp, 0xC] - ldr r0, _080FBDAC - str r0, [sp, 0x10] - ldr r0, _080FBDB0 - str r0, [sp, 0x14] - ldr r0, _080FBDB4 - ldrb r0, [r0, 0x8] - cmp r0, 0x1 - bne _080FBD42 - ldr r0, _080FBDB8 - str r0, [sp, 0x18] - ldr r0, _080FBDBC - str r0, [sp, 0x20] -_080FBD42: - adds r0, r5, 0 - bl LoadSpriteSheet - adds r0, r4, 0 - bl LoadSpritePalette - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080FBDC0 - ldr r2, [r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _080FBDC4 - adds r1, r0 - str r1, [r2, 0x20] - adds r0, r2, 0 - adds r0, 0x78 - ldrb r0, [r0] - cmp r0, 0 - bne _080FBDCC - adds r0, r2, 0 - adds r0, 0x74 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x20] - ldr r1, [r2, 0x20] - adds r0, r2, 0 - adds r0, 0x76 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x22] - ldr r1, [r2, 0x20] - ldr r0, _080FBDC8 - b _080FBDEA - .align 2, 0 -_080FBD98: .4byte gUnknown_083E5C40 -_080FBD9C: .4byte gUnknown_083E5C20 -_080FBDA0: .4byte 0xffff0000 -_080FBDA4: .4byte gUnknown_083E7708 -_080FBDA8: .4byte gUnknown_083E7718 -_080FBDAC: .4byte gDummySpriteAffineAnimTable -_080FBDB0: .4byte SpriteCallbackDummy -_080FBDB4: .4byte gSaveBlock2 -_080FBDB8: .4byte gUnknown_083E5CE0 -_080FBDBC: .4byte gUnknown_083E5CC0 -_080FBDC0: .4byte gUnknown_020388CC -_080FBDC4: .4byte gSprites -_080FBDC8: .4byte sub_80FBF34 -_080FBDCC: - adds r0, r2, 0 - adds r0, 0x74 - ldrh r0, [r0] - lsls r0, 4 - subs r0, 0x30 - strh r0, [r1, 0x20] - ldr r1, [r2, 0x20] - adds r0, r2, 0 - adds r0, 0x76 - ldrh r0, [r0] - lsls r0, 4 - subs r0, 0x42 - strh r0, [r1, 0x22] - ldr r1, [r2, 0x20] - ldr r0, _080FBDF4 -_080FBDEA: - str r0, [r1, 0x1C] - add sp, 0x28 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FBDF4: .4byte sub_80FBEA4 - thumb_func_end sub_80FBCF0 - - thumb_func_start sub_80FBDF8 -sub_80FBDF8: @ 80FBDF8 - push {lr} - ldr r3, _080FBE1C - ldr r0, [r3] - ldr r2, [r0, 0x20] - cmp r2, 0 - beq _080FBE16 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r3] - ldr r1, [r0, 0x20] - ldr r0, _080FBE20 - str r0, [r1, 0x1C] -_080FBE16: - pop {r0} - bx r0 - .align 2, 0 -_080FBE1C: .4byte gUnknown_020388CC -_080FBE20: .4byte SpriteCallbackDummy - thumb_func_end sub_80FBDF8 - - thumb_func_start sub_80FBE24 -sub_80FBE24: @ 80FBE24 - push {lr} - ldr r0, _080FBE5C - ldr r3, [r0] - ldr r1, [r3, 0x20] - cmp r1, 0 - beq _080FBE9A - adds r0, r3, 0 - adds r0, 0x78 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080FBE64 - adds r0, r3, 0 - adds r0, 0x74 - ldrh r0, [r0] - lsls r0, 4 - subs r0, 0x30 - strh r0, [r1, 0x20] - ldr r1, [r3, 0x20] - adds r0, r3, 0 - adds r0, 0x76 - ldrh r0, [r0] - lsls r0, 4 - subs r0, 0x42 - strh r0, [r1, 0x22] - ldr r1, [r3, 0x20] - ldr r0, _080FBE60 - b _080FBE8C - .align 2, 0 -_080FBE5C: .4byte gUnknown_020388CC -_080FBE60: .4byte sub_80FBEA4 -_080FBE64: - adds r0, r3, 0 - adds r0, 0x74 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - movs r2, 0 - strh r0, [r1, 0x20] - ldr r1, [r3, 0x20] - adds r0, r3, 0 - adds r0, 0x76 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x22] - ldr r0, [r3, 0x20] - strh r2, [r0, 0x24] - ldr r0, [r3, 0x20] - strh r2, [r0, 0x26] - ldr r1, [r3, 0x20] - ldr r0, _080FBEA0 -_080FBE8C: - str r0, [r1, 0x1C] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_080FBE9A: - pop {r0} - bx r0 - .align 2, 0 -_080FBEA0: .4byte sub_80FBF34 - thumb_func_end sub_80FBE24 - - thumb_func_start sub_80FBEA4 -sub_80FBEA4: @ 80FBEA4 - push {r4,lr} - adds r3, r0, 0 - ldr r0, _080FBF08 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x5C - movs r4, 0 - ldrsh r2, [r0, r4] - lsls r2, 1 - negs r2, r2 - strh r2, [r3, 0x24] - adds r1, 0x5E - movs r4, 0 - ldrsh r0, [r1, r4] - lsls r0, 1 - negs r0, r0 - strh r0, [r3, 0x26] - ldrh r1, [r3, 0x22] - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - strh r0, [r3, 0x2E] - ldrh r1, [r3, 0x20] - adds r1, r2 - adds r2, r3, 0 - adds r2, 0x28 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - adds r2, r1 - strh r2, [r3, 0x30] - adds r0, 0x8 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB0 - bhi _080FBF04 - lsls r0, r2, 16 - asrs r2, r0, 16 - movs r0, 0x8 - negs r0, r0 - cmp r2, r0 - blt _080FBF04 - cmp r2, 0xF8 - ble _080FBF0C -_080FBF04: - movs r0, 0 - b _080FBF0E - .align 2, 0 -_080FBF08: .4byte gUnknown_020388CC -_080FBF0C: - movs r0, 0x1 -_080FBF0E: - strh r0, [r3, 0x32] - movs r1, 0x32 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - bne _080FBF20 - adds r0, r3, 0 - bl sub_80FBF40 - b _080FBF2C -_080FBF20: - adds r0, r3, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080FBF2C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FBEA4 - - thumb_func_start sub_80FBF34 -sub_80FBF34: @ 80FBF34 - push {lr} - bl sub_80FBF40 - pop {r0} - bx r0 - thumb_func_end sub_80FBF34 - - thumb_func_start sub_80FBF40 -sub_80FBF40: @ 80FBF40 - push {lr} - adds r2, r0, 0 - ldr r0, _080FBF80 - ldr r0, [r0] - adds r0, 0x7E - ldrb r0, [r0] - cmp r0, 0 - beq _080FBF84 - ldrh r0, [r2, 0x3C] - adds r0, 0x1 - strh r0, [r2, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080FBF90 - movs r0, 0 - strh r0, [r2, 0x3C] - adds r3, r2, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080FBF90 - .align 2, 0 -_080FBF80: .4byte gUnknown_020388CC -_080FBF84: - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080FBF90: - pop {r0} - bx r0 - thumb_func_end sub_80FBF40 - - thumb_func_start sub_80FBF94 -sub_80FBF94: @ 80FBF94 - push {lr} - ldr r0, _080FBFB0 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x7F - ldrb r0, [r0] - cmp r0, 0 - beq _080FBFAA - adds r1, 0x7E - movs r0, 0x1 - strb r0, [r1] -_080FBFAA: - pop {r0} - bx r0 - .align 2, 0 -_080FBFB0: .4byte gUnknown_020388CC - thumb_func_end sub_80FBF94 - - thumb_func_start sub_80FBFB4 -sub_80FBFB4: @ 80FBFB4 - push {lr} - adds r3, r0, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - cmp r1, 0x56 - bne _080FBFCA - bl GetSecretBaseMapName - b _080FBFF2 -_080FBFCA: - cmp r1, 0x57 - bhi _080FBFE4 - ldr r0, _080FBFE0 - lsls r1, 3 - adds r0, 0x4 - adds r1, r0 - ldr r1, [r1] - adds r0, r3, 0 - bl StringCopy - b _080FBFF2 - .align 2, 0 -_080FBFE0: .4byte gRegionMapLocations -_080FBFE4: - cmp r2, 0 - bne _080FBFEA - movs r2, 0x12 -_080FBFEA: - adds r0, r3, 0 - movs r1, 0 - bl StringFill -_080FBFF2: - pop {r1} - bx r1 - thumb_func_end sub_80FBFB4 - - thumb_func_start sub_80FBFF8 -sub_80FBFF8: @ 80FBFF8 - push {lr} - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x56 - beq _080FC014 - cmp r1, 0x57 - bne _080FC020 - ldr r1, _080FC010 - bl StringCopy - b _080FC026 - .align 2, 0 -_080FC010: .4byte gOtherText_Ferry -_080FC014: - ldr r1, _080FC01C - bl StringCopy - b _080FC026 - .align 2, 0 -_080FC01C: .4byte gOtherText_SecretBase -_080FC020: - movs r2, 0 - bl sub_80FBFB4 -_080FC026: - pop {r1} - bx r1 - thumb_func_end sub_80FBFF8 - - thumb_func_start sub_80FC02C -sub_80FC02C: @ 80FC02C - push {lr} - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x42 - beq _080FC03C - bl sub_80FBFF8 - b _080FC042 -_080FC03C: - ldr r1, _080FC048 - bl StringCopy -_080FC042: - pop {r1} - bx r1 - .align 2, 0 -_080FC048: .4byte gOtherText_Hideout - thumb_func_end sub_80FC02C - - thumb_func_start sub_80FC04C -sub_80FC04C: @ 80FC04C - push {r4,r5,lr} - ldr r5, [sp, 0xC] - lsls r0, 16 - ldr r4, _080FC070 - lsrs r0, 13 - adds r0, r4 - ldrb r4, [r0] - strh r4, [r1] - ldrb r1, [r0, 0x1] - strh r1, [r2] - ldrb r1, [r0, 0x2] - strh r1, [r3] - ldrb r0, [r0, 0x3] - strh r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FC070: .4byte gRegionMapLocations - thumb_func_end sub_80FC04C - - thumb_func_start sub_80FC074 -sub_80FC074: @ 80FC074 - push {r4,lr} - ldr r0, _080FC090 - ldr r1, _080FC094 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x9 - bls _080FC084 - b _080FC1F2 -_080FC084: - lsls r0, 2 - ldr r1, _080FC098 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FC090: .4byte gMain -_080FC094: .4byte 0x0000043c -_080FC098: .4byte _080FC09C - .align 2, 0 -_080FC09C: - .4byte _080FC0C4 - .4byte _080FC104 - .4byte _080FC110 - .4byte _080FC120 - .4byte _080FC15C - .4byte _080FC170 - .4byte _080FC184 - .4byte _080FC1A4 - .4byte _080FC1AA - .4byte _080FC1C4 -_080FC0C4: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - adds r0, 0x10 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl ResetPaletteFade - bl ResetSpriteData - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - b _080FC1E6 -_080FC104: - ldr r0, _080FC10C - bl SetUpWindowConfig - b _080FC1E6 - .align 2, 0 -_080FC10C: .4byte gWindowConfig_81E7224 -_080FC110: - ldr r0, _080FC11C - bl InitMenuWindow - bl MenuZeroFillScreen - b _080FC1E6 - .align 2, 0 -_080FC11C: .4byte gWindowConfig_81E7224 -_080FC120: - ldr r4, _080FC158 - adds r0, r4, 0 - movs r1, 0 - bl sub_80FA8EC - movs r0, 0 - movs r1, 0 - bl sub_80FBB3C - movs r0, 0x1 - movs r1, 0x1 - bl sub_80FBCF0 - adds r1, r4, 0 - subs r1, 0x8 - ldrh r0, [r1, 0x1C] - strh r0, [r1, 0x6] - movs r2, 0xA4 - lsls r2, 4 - adds r4, r2 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0xC - bl StringFill - bl sub_80FC254 - b _080FC1E6 - .align 2, 0 -_080FC158: .4byte 0x02000008 -_080FC15C: - ldr r0, _080FC168 - ldr r1, _080FC16C - bl LZ77UnCompVram - b _080FC1E6 - .align 2, 0 -_080FC168: .4byte gUnknown_083E773C -_080FC16C: .4byte 0x0600c000 -_080FC170: - ldr r0, _080FC17C - ldr r1, _080FC180 - bl LZ77UnCompVram - b _080FC1E6 - .align 2, 0 -_080FC17C: .4byte gUnknown_083E7774 -_080FC180: .4byte 0x0600f000 -_080FC184: - ldr r0, _080FC19C - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080FC1A0 - movs r1, 0x1 - movs r2, 0x90 - movs r3, 0x1 - bl sub_80729D8 - b _080FC1E6 - .align 2, 0 -_080FC19C: .4byte gUnknown_083E771C -_080FC1A0: .4byte gOtherText_FlyToWhere -_080FC1A4: - bl sub_80FC31C - b _080FC1E6 -_080FC1AA: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, _080FC1C0 - bl SetVBlankCallback - b _080FC1E6 - .align 2, 0 -_080FC1C0: .4byte sub_80FC214 -_080FC1C4: - ldr r1, _080FC1F8 - movs r0, 0 - strh r0, [r1] - subs r1, 0x46 - ldr r2, _080FC1FC - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xA - ldr r2, _080FC200 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080FC204 - bl sub_80FC244 - ldr r0, _080FC208 - bl SetMainCallback2 -_080FC1E6: - ldr r1, _080FC20C - ldr r0, _080FC210 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080FC1F2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FC1F8: .4byte REG_BLDCNT -_080FC1FC: .4byte 0x00001e0d -_080FC200: .4byte 0x00001741 -_080FC204: .4byte sub_80FC5B4 -_080FC208: .4byte sub_80FC228 -_080FC20C: .4byte gMain -_080FC210: .4byte 0x0000043c - thumb_func_end sub_80FC074 - - thumb_func_start sub_80FC214 -sub_80FC214: @ 80FC214 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_80FC214 - - thumb_func_start sub_80FC228 -sub_80FC228: @ 80FC228 - push {lr} - ldr r0, _080FC240 - ldr r0, [r0] - bl _call_via_r0 - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - .align 2, 0 -_080FC240: .4byte 0x02000000 - thumb_func_end sub_80FC228 - - thumb_func_start sub_80FC244 -sub_80FC244: @ 80FC244 - ldr r1, _080FC250 - str r0, [r1] - movs r0, 0 - strh r0, [r1, 0x4] - bx lr - .align 2, 0 -_080FC250: .4byte 0x02000000 - thumb_func_end sub_80FC244 - - thumb_func_start sub_80FC254 -sub_80FC254: @ 80FC254 - push {r4,r5,lr} - ldr r4, _080FC2AC - ldrb r0, [r4, 0x1E] - cmp r0, 0x2 - beq _080FC262 - cmp r0, 0x4 - bne _080FC2EC -_080FC262: - movs r1, 0 - ldr r2, _080FC2B0 - adds r5, r4, 0 -_080FC268: - lsls r0, r1, 3 - adds r4, r0, r2 - ldrh r0, [r5, 0x1C] - ldrh r3, [r4, 0x4] - cmp r0, r3 - bne _080FC2B4 - ldrh r0, [r4, 0x6] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080FC2BE - movs r0, 0x10 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - adds r0, r5, 0 - adds r0, 0x8 - movs r1, 0x11 - movs r2, 0xF - bl MenuPrint - ldrb r0, [r5, 0x1F] - ldr r1, [r4] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1D - movs r2, 0x11 - bl sub_8072B4C - b _080FC310 - .align 2, 0 -_080FC2AC: .4byte 0x02000000 -_080FC2B0: .4byte gUnknown_083E79C0 -_080FC2B4: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _080FC268 -_080FC2BE: - movs r0, 0 - cmp r0, 0 - bne _080FC310 - movs r0, 0x10 - movs r1, 0x10 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _080FC2E8 - movs r1, 0x11 - movs r2, 0x11 - bl MenuPrint - movs r0, 0x10 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0xF - bl MenuZeroFillWindowRect - b _080FC310 - .align 2, 0 -_080FC2E8: .4byte 0x02000008 -_080FC2EC: - movs r0, 0x10 - movs r1, 0x10 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r1, _080FC318 - adds r0, r4, r1 - movs r1, 0x11 - movs r2, 0x11 - bl MenuPrint - movs r0, 0x10 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0xF - bl MenuZeroFillWindowRect -_080FC310: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FC318: .4byte 0x00000a48 - thumb_func_end sub_80FC254 - - thumb_func_start sub_80FC31C -sub_80FC31C: @ 80FC31C - push {r4,lr} - sub sp, 0x8 - ldr r0, _080FC360 - ldr r4, _080FC364 - adds r1, r4, 0 - bl LZ77UnCompWram - str r4, [sp] - ldr r1, _080FC368 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0xE0 - lsls r1, 1 - orrs r0, r1 - ldr r1, _080FC36C - ands r0, r1 - movs r1, 0x80 - lsls r1, 10 - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - ldr r0, _080FC370 - bl LoadSpritePalette - bl sub_80FC374 - bl sub_80FC484 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FC360: .4byte gUnknown_083E784C -_080FC364: .4byte 0x02000888 -_080FC368: .4byte 0xffff0000 -_080FC36C: .4byte 0x0000ffff -_080FC370: .4byte gUnknown_083E79CC - thumb_func_end sub_80FC31C - - thumb_func_start sub_80FC374 -sub_80FC374: @ 80FC374 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r0, _080FC3D4 - str r0, [sp, 0xC] - movs r1, 0 - mov r9, r1 - mov r2, sp - adds r2, 0x6 - str r2, [sp, 0x14] - mov r3, sp - adds r3, 0xA - str r3, [sp, 0x18] - mov r0, sp - adds r0, 0x8 - str r0, [sp, 0x10] - add r1, sp, 0x4 - mov r10, r1 -_080FC39E: - ldr r2, [sp, 0x18] - str r2, [sp] - mov r0, r9 - add r1, sp, 0x4 - mov r2, sp - adds r2, 0x6 - ldr r3, [sp, 0x10] - bl sub_80FC04C - mov r3, r10 - ldrh r0, [r3] - adds r0, 0x1 - lsls r0, 3 - adds r0, 0x4 - strh r0, [r3] - mov r1, sp - ldrh r0, [r1, 0x6] - adds r0, 0x2 - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x6] - ldr r2, [sp, 0x10] - ldrh r0, [r2] - cmp r0, 0x2 - bne _080FC3D8 - movs r7, 0x1 - b _080FC3E4 - .align 2, 0 -_080FC3D4: .4byte 0x0000080f -_080FC3D8: - ldr r3, [sp, 0x18] - ldrh r0, [r3] - movs r7, 0 - cmp r0, 0x2 - bne _080FC3E4 - movs r7, 0x2 -_080FC3E4: - mov r0, r10 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r3, [sp, 0x14] - movs r0, 0 - ldrsh r2, [r3, r0] - ldr r0, _080FC430 - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _080FC458 - ldr r1, _080FC434 - mov r8, r1 - lsls r4, r5, 4 - adds r0, r4, r5 - lsls r6, r0, 2 - adds r2, r6, r1 - lsls r3, r7, 6 - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - orrs r0, r3 - strb r0, [r2, 0x1] - ldr r0, [sp, 0xC] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080FC43C - mov r0, r8 - adds r0, 0x1C - adds r0, r6, r0 - ldr r1, _080FC438 - str r1, [r0] - b _080FC442 - .align 2, 0 -_080FC430: .4byte gSpriteTemplate_83E7A38 -_080FC434: .4byte gSprites -_080FC438: .4byte sub_80FC55C -_080FC43C: - adds r0, r7, 0x3 - lsls r0, 16 - lsrs r7, r0, 16 -_080FC442: - adds r4, r5 - lsls r4, 2 - ldr r0, _080FC480 - adds r4, r0 - lsls r1, r7, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - mov r2, r9 - strh r2, [r4, 0x2E] -_080FC458: - ldr r0, [sp, 0xC] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - cmp r0, 0xF - bls _080FC39E - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FC480: .4byte gSprites - thumb_func_end sub_80FC374 - - thumb_func_start sub_80FC484 -sub_80FC484: @ 80FC484 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0 - mov r8, r0 - ldr r6, _080FC54C - ldrh r0, [r6, 0x2] - cmp r0, 0x58 - beq _080FC53C - mov r5, sp - adds r5, 0x6 - add r7, sp, 0x4 - ldr r1, _080FC550 - mov r9, r1 - movs r0, 0x1C - add r0, r9 - mov r10, r0 -_080FC4AC: - mov r1, r8 - lsls r4, r1, 2 - adds r0, r4, r6 - ldrh r0, [r0] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080FC524 - adds r0, r6, 0x2 - adds r0, r4, r0 - ldrh r6, [r0] - mov r0, sp - adds r0, 0xA - str r0, [sp] - adds r0, r6, 0 - add r1, sp, 0x4 - adds r2, r5, 0 - add r3, sp, 0x8 - bl sub_80FC04C - ldrh r0, [r7] - adds r0, 0x1 - lsls r0, 3 - strh r0, [r7] - ldrh r0, [r5] - adds r0, 0x2 - lsls r0, 3 - strh r0, [r5] - movs r0, 0 - ldrsh r1, [r7, r0] - movs r0, 0 - ldrsh r2, [r5, r0] - ldr r0, _080FC554 - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080FC524 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - mov r1, r9 - adds r4, r2, r1 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4, 0x3] - add r2, r10 - ldr r0, _080FC558 - str r0, [r2] - adds r0, r4, 0 - movs r1, 0x6 - bl StartSpriteAnim - strh r6, [r4, 0x2E] -_080FC524: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r6, _080FC54C - lsls r0, 2 - adds r1, r6, 0x2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x58 - bne _080FC4AC -_080FC53C: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FC54C: .4byte gUnknown_083E79D4 -_080FC550: .4byte gSprites -_080FC554: .4byte gSpriteTemplate_83E7A38 -_080FC558: .4byte sub_80FC55C - thumb_func_end sub_80FC484 - - thumb_func_start sub_80FC55C -sub_80FC55C: @ 80FC55C - push {lr} - adds r2, r0, 0 - ldr r0, _080FC59C - ldrh r1, [r0, 0x1C] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r1, r0 - bne _080FC5A0 - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080FC5AE - movs r0, 0 - strh r0, [r2, 0x30] - adds r3, r2, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080FC5AE - .align 2, 0 -_080FC59C: .4byte 0x02000000 -_080FC5A0: - movs r0, 0x10 - strh r0, [r2, 0x30] - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x15 - ands r0, r1 - strb r0, [r2] -_080FC5AE: - pop {r0} - bx r0 - thumb_func_end sub_80FC55C - - thumb_func_start sub_80FC5B4 -sub_80FC5B4: @ 80FC5B4 - push {r4,lr} - sub sp, 0x4 - ldr r4, _080FC5C8 - ldrh r1, [r4, 0x4] - cmp r1, 0 - beq _080FC5CC - cmp r1, 0x1 - beq _080FC5E4 - b _080FC5F4 - .align 2, 0 -_080FC5C8: .4byte 0x02000000 -_080FC5CC: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - b _080FC5F4 -_080FC5E4: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080FC5F4 - ldr r0, _080FC5FC - bl sub_80FC244 -_080FC5F4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FC5FC: .4byte sub_80FC600 - thumb_func_end sub_80FC5B4 - - thumb_func_start sub_80FC600 -sub_80FC600: @ 80FC600 - push {r4,lr} - ldr r0, _080FC620 - ldrh r0, [r0, 0x4] - cmp r0, 0 - bne _080FC68A - bl sub_80FAB60 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bhi _080FC68A - lsls r0, 2 - ldr r1, _080FC624 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FC620: .4byte 0x02000000 -_080FC624: .4byte _080FC628 - .align 2, 0 -_080FC628: - .4byte _080FC68A - .4byte _080FC68A - .4byte _080FC68A - .4byte _080FC640 - .4byte _080FC646 - .4byte _080FC674 -_080FC640: - bl sub_80FC254 - b _080FC68A -_080FC646: - ldr r4, _080FC668 - ldrb r0, [r4, 0x1E] - cmp r0, 0x2 - beq _080FC652 - cmp r0, 0x4 - bne _080FC68A -_080FC652: - movs r0, 0x5 - bl m4aSongNumStart - ldr r1, _080FC66C - adds r0, r4, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _080FC670 - bl sub_80FC244 - b _080FC68A - .align 2, 0 -_080FC668: .4byte 0x02000000 -_080FC66C: .4byte 0x00000a6e -_080FC670: .4byte sub_80FC69C -_080FC674: - movs r0, 0x5 - bl m4aSongNumStart - ldr r0, _080FC690 - ldr r1, _080FC694 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, _080FC698 - bl sub_80FC244 -_080FC68A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FC690: .4byte 0x02000000 -_080FC694: .4byte 0x00000a6e -_080FC698: .4byte sub_80FC69C - thumb_func_end sub_80FC600 - - thumb_func_start sub_80FC69C -sub_80FC69C: @ 80FC69C - push {r4,lr} - sub sp, 0x4 - ldr r4, _080FC6B0 - ldrh r1, [r4, 0x4] - cmp r1, 0 - beq _080FC6B4 - cmp r1, 0x1 - beq _080FC6CC - b _080FC792 - .align 2, 0 -_080FC6B0: .4byte 0x02000000 -_080FC6B4: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - b _080FC792 -_080FC6CC: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080FC792 - bl sub_80FAB10 - ldr r1, _080FC6F4 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080FC78C - ldrh r0, [r4, 0x1C] - cmp r0, 0xF - beq _080FC724 - cmp r0, 0xF - bgt _080FC6F8 - cmp r0, 0 - beq _080FC710 - b _080FC748 - .align 2, 0 -_080FC6F4: .4byte 0x00000a6e -_080FC6F8: - cmp r0, 0x3A - beq _080FC708 - cmp r0, 0x49 - bne _080FC748 - movs r0, 0x16 - bl sub_8053538 - b _080FC786 -_080FC708: - movs r0, 0x15 - bl sub_8053538 - b _080FC786 -_080FC710: - ldr r0, _080FC720 - ldrb r0, [r0, 0x8] - movs r1, 0xD - cmp r0, 0 - bne _080FC73A - movs r1, 0xC - b _080FC73A - .align 2, 0 -_080FC720: .4byte gSaveBlock2 -_080FC724: - ldr r0, _080FC744 - bl FlagGet - lsls r0, 24 - movs r1, 0xB - cmp r0, 0 - beq _080FC73A - ldrb r0, [r4, 0x1F] - cmp r0, 0 - bne _080FC73A - movs r1, 0x14 -_080FC73A: - adds r0, r1, 0 - bl sub_8053538 - b _080FC786 - .align 2, 0 -_080FC744: .4byte 0x00000854 -_080FC748: - ldr r3, _080FC764 - ldr r0, _080FC768 - ldrh r1, [r0, 0x1C] - lsls r0, r1, 1 - adds r2, r0, r1 - adds r0, r3, 0x2 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080FC76C - bl sub_8053538 - b _080FC786 - .align 2, 0 -_080FC764: .4byte gUnknown_083E7920 -_080FC768: .4byte 0x02000000 -_080FC76C: - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - movs r2, 0x1 - negs r2, r2 - bl warp1_set_2 -_080FC786: - bl sub_80865BC - b _080FC792 -_080FC78C: - ldr r0, _080FC79C - bl SetMainCallback2 -_080FC792: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FC79C: .4byte sub_808AD58 - thumb_func_end sub_80FC69C - - thumb_func_start sub_80FC7A0 -sub_80FC7A0: @ 80FC7A0 - push {lr} - ldr r2, _080FC7E8 - ldr r1, [r0, 0x4] - str r1, [r2] - ldr r2, _080FC7EC - ldrb r1, [r0, 0x1F] - strb r1, [r2] - ldr r2, _080FC7F0 - ldrb r1, [r0, 0x19] - strb r1, [r2] - ldr r2, _080FC7F4 - ldrb r1, [r0, 0x1A] - strb r1, [r2] - ldr r2, _080FC7F8 - ldrb r1, [r0, 0x1B] - strb r1, [r2] - ldr r2, _080FC7FC - ldrb r1, [r0, 0x1C] - strb r1, [r2] - ldr r2, _080FC800 - ldrb r1, [r0, 0x1D] - strb r1, [r2] - ldr r2, _080FC804 - ldrb r1, [r0, 0x1E] - strb r1, [r2] - ldrb r0, [r0] - subs r0, 0x2 - cmp r0, 0x22 - bls _080FC7DC - b _080FC928 -_080FC7DC: - lsls r0, 2 - ldr r1, _080FC808 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FC7E8: .4byte gUnknown_03005DEC -_080FC7EC: .4byte gUnknown_03005E00 -_080FC7F0: .4byte gUnknown_03005DE8 -_080FC7F4: .4byte gUnknown_03005DFC -_080FC7F8: .4byte gUnknown_03005DF8 -_080FC7FC: .4byte gUnknown_03005DF0 -_080FC800: .4byte gUnknown_03005E04 -_080FC804: .4byte gUnknown_03005DF4 -_080FC808: .4byte _080FC80C - .align 2, 0 -_080FC80C: - .4byte _080FC898 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC8F8 - .4byte _080FC928 - .4byte _080FC89E - .4byte _080FC8A4 - .4byte _080FC8B8 - .4byte _080FC8CA - .4byte _080FC928 - .4byte _080FC8E0 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC8E6 - .4byte _080FC8C4 - .4byte _080FC8EC - .4byte _080FC8F2 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC904 -_080FC898: - bl sub_80FCAA4 - b _080FC928 -_080FC89E: - bl sub_80FCB5C - b _080FC928 -_080FC8A4: - bl sub_80FCD54 - ldr r0, _080FC8B4 - ldrb r0, [r0] - bl sub_80FCC18 - b _080FC928 - .align 2, 0 -_080FC8B4: .4byte gUnknown_03005E00 -_080FC8B8: - bl sub_80FCD54 - bl sub_80FCEA4 - bl sub_80FCCBC -_080FC8C4: - bl sub_80FCEA4 - b _080FC928 -_080FC8CA: - bl sub_80FCD54 - bl sub_80FD06C - bl sub_80FD06C - bl sub_80FD114 - bl sub_80FCCBC - b _080FC928 -_080FC8E0: - bl sub_80FCF3C - b _080FC928 -_080FC8E6: - bl sub_80FCD54 - b _080FC928 -_080FC8EC: - bl sub_80FD06C - b _080FC928 -_080FC8F2: - bl sub_80FD114 - b _080FC928 -_080FC8F8: - bl sub_80FCAC4 - movs r0, 0x3 - bl sub_80FC92C - b _080FC928 -_080FC904: - bl sub_80FCD54 - bl sub_80FD06C - bl sub_80FD114 - bl sub_80FCCBC - bl sub_80FCB5C - bl sub_80FCB5C - movs r0, 0x2 - bl sub_80FC92C - movs r0, 0x4 - bl sub_80FC9E4 -_080FC928: - pop {r0} - bx r0 - thumb_func_end sub_80FC7A0 - - thumb_func_start sub_80FC92C -sub_80FC92C: @ 80FC92C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r7, r0, 24 - movs r2, 0 - ldr r0, _080FC9CC - mov r8, r0 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FC9BE - ldr r1, _080FC9D0 - mov r12, r1 - ldr r3, _080FC9D4 - mov r10, r3 - ldr r0, _080FC9D8 - mov r9, r0 -_080FC952: - ldr r1, _080FC9DC - ldrb r0, [r1] - adds r0, r2 - mov r3, r10 - ldrb r1, [r3] - muls r0, r1 - lsls r0, 1 - ldr r3, _080FC9E0 - ldr r1, [r3] - adds r1, r0 - mov r3, r9 - ldrb r0, [r3] - lsls r0, 1 - adds r3, r1, r0 - movs r4, 0 - adds r5, r2, 0x1 - mov r0, r12 - ldrb r0, [r0] - cmp r4, r0 - bcs _080FC9B2 - movs r6, 0x80 - lsls r6, 8 -_080FC97E: - ldrh r1, [r3] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _080FC9A2 - movs r0, 0x1F - ands r0, r1 - adds r0, r7 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1F - bls _080FC998 - movs r2, 0x1F -_080FC998: - lsls r0, r2, 10 - lsls r1, r2, 5 - orrs r0, r1 - orrs r0, r2 - strh r0, [r3] -_080FC9A2: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r3, 0x2 - mov r1, r12 - ldrb r1, [r1] - cmp r4, r1 - bcc _080FC97E -_080FC9B2: - lsls r0, r5, 24 - lsrs r2, r0, 24 - mov r3, r8 - ldrb r3, [r3] - cmp r2, r3 - bcc _080FC952 -_080FC9BE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FC9CC: .4byte gUnknown_03005DF0 -_080FC9D0: .4byte gUnknown_03005DF8 -_080FC9D4: .4byte gUnknown_03005E04 -_080FC9D8: .4byte gUnknown_03005DE8 -_080FC9DC: .4byte gUnknown_03005DFC -_080FC9E0: .4byte gUnknown_03005DEC - thumb_func_end sub_80FC92C - - thumb_func_start sub_80FC9E4 -sub_80FC9E4: @ 80FC9E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r2, 0 - ldr r0, _080FCA8C - ldrb r0, [r0] - cmp r2, r0 - bcs _080FCA7C - ldr r1, _080FCA90 - mov r10, r1 -_080FCA02: - ldr r3, _080FCA94 - ldrb r0, [r3] - adds r0, r2 - ldr r3, _080FCA98 - ldrb r1, [r3] - muls r0, r1 - lsls r0, 1 - ldr r3, _080FCA9C - ldr r1, [r3] - adds r1, r0 - ldr r3, _080FCAA0 - ldrb r0, [r3] - lsls r0, 1 - adds r3, r1, r0 - movs r5, 0 - adds r7, r2, 0x1 - mov r0, r10 - ldrb r0, [r0] - cmp r5, r0 - bcs _080FCA70 - movs r1, 0x80 - lsls r1, 8 - mov r9, r1 - movs r0, 0x1F - mov r12, r0 - mov r1, r8 - subs r6, r0, r1 -_080FCA38: - ldrh r1, [r3] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080FCA60 - movs r4, 0x1F - mov r2, r12 - ands r2, r1 - cmp r2, r6 - ble _080FCA56 - mov r1, r8 - lsrs r0, r1, 1 - subs r0, r4, r0 - lsls r0, 24 - lsrs r2, r0, 24 -_080FCA56: - lsls r0, r2, 10 - lsls r1, r2, 5 - orrs r0, r1 - orrs r0, r2 - strh r0, [r3] -_080FCA60: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r3, 0x2 - mov r0, r10 - ldrb r0, [r0] - cmp r5, r0 - bcc _080FCA38 -_080FCA70: - lsls r0, r7, 24 - lsrs r2, r0, 24 - ldr r1, _080FCA8C - ldrb r1, [r1] - cmp r2, r1 - bcc _080FCA02 -_080FCA7C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCA8C: .4byte gUnknown_03005DF0 -_080FCA90: .4byte gUnknown_03005DF8 -_080FCA94: .4byte gUnknown_03005DFC -_080FCA98: .4byte gUnknown_03005E04 -_080FCA9C: .4byte gUnknown_03005DEC -_080FCAA0: .4byte gUnknown_03005DE8 - thumb_func_end sub_80FC9E4 - - thumb_func_start sub_80FCAA4 -sub_80FCAA4: @ 80FCAA4 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _080FCAC0 -_080FCAAA: - lsls r0, r4, 16 - lsrs r0, 16 - bl sub_80FD1C8 - adds r4, 0x1 - cmp r4, r5 - bls _080FCAAA - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FCAC0: .4byte 0x00000c7f - thumb_func_end sub_80FCAA4 - - thumb_func_start sub_80FCAC4 -sub_80FCAC4: @ 80FCAC4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r2, 0 - ldr r0, _080FCB44 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FCB36 - ldr r0, _080FCB48 - mov r8, r0 - ldr r3, _080FCB4C -_080FCADC: - ldr r0, _080FCB50 - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FCB54 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r4, r8 - ldr r1, [r4] - adds r1, r0 - ldr r0, _080FCB58 - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r5, 0 - adds r6, r2, 0x1 - ldrb r0, [r3] - cmp r5, r0 - bcs _080FCB2A - movs r0, 0x80 - lsls r0, 8 - adds r7, r0, 0 -_080FCB08: - ldrh r0, [r4] - ands r0, r7 - cmp r0, 0 - bne _080FCB1C - adds r0, r4, 0 - str r3, [sp] - bl sub_80FD39C - strh r0, [r4] - ldr r3, [sp] -_080FCB1C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x2 - ldrb r0, [r3] - cmp r5, r0 - bcc _080FCB08 -_080FCB2A: - lsls r0, r6, 24 - lsrs r2, r0, 24 - ldr r0, _080FCB44 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FCADC -_080FCB36: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCB44: .4byte gUnknown_03005DF0 -_080FCB48: .4byte gUnknown_03005DEC -_080FCB4C: .4byte gUnknown_03005DF8 -_080FCB50: .4byte gUnknown_03005DFC -_080FCB54: .4byte gUnknown_03005E04 -_080FCB58: .4byte gUnknown_03005DE8 - thumb_func_end sub_80FCAC4 - - thumb_func_start sub_80FCB5C -sub_80FCB5C: @ 80FCB5C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r2, 0 - ldr r0, _080FCC00 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FCBF2 - ldr r0, _080FCC04 - mov r8, r0 - ldr r3, _080FCC08 -_080FCB74: - ldr r0, _080FCC0C - ldrb r1, [r0] - ldrb r0, [r3] - muls r0, r1 - lsls r0, 1 - mov r4, r8 - ldr r1, [r4] - adds r1, r0 - ldr r0, _080FCC10 - ldrb r0, [r0] - adds r0, r2 - lsls r0, 1 - adds r4, r1, r0 - ldrh r1, [r4] - mov r0, sp - strh r1, [r0] - movs r5, 0x1 - ldrb r0, [r3] - lsls r0, 1 - adds r4, r0 - ldr r0, _080FCC14 - ldrb r0, [r0] - subs r0, 0x1 - adds r7, r2, 0x1 - cmp r5, r0 - bge _080FCBE6 - ldr r6, _080FCC08 -_080FCBAA: - ldrh r0, [r4] - movs r2, 0x80 - lsls r2, 8 - adds r1, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080FCBD0 - ldrb r2, [r6] - lsls r2, 1 - adds r2, r4, r2 - mov r0, sp - adds r1, r4, 0 - str r3, [sp, 0x4] - bl sub_80FD68C - strh r0, [r4] - mov r1, sp - strh r0, [r1] - ldr r3, [sp, 0x4] -_080FCBD0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r6] - lsls r0, 1 - adds r4, r0 - ldr r0, _080FCC14 - ldrb r0, [r0] - subs r0, 0x1 - cmp r5, r0 - blt _080FCBAA -_080FCBE6: - lsls r0, r7, 24 - lsrs r2, r0, 24 - ldr r0, _080FCC00 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FCB74 -_080FCBF2: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCC00: .4byte gUnknown_03005DF8 -_080FCC04: .4byte gUnknown_03005DEC -_080FCC08: .4byte gUnknown_03005E04 -_080FCC0C: .4byte gUnknown_03005DFC -_080FCC10: .4byte gUnknown_03005DE8 -_080FCC14: .4byte gUnknown_03005DF0 - thumb_func_end sub_80FCB5C - - thumb_func_start sub_80FCC18 -sub_80FCC18: @ 80FCC18 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r2, 0 - ldr r0, _080FCCA4 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FCC94 - ldr r0, _080FCCA8 - mov r9, r0 - ldr r3, _080FCCAC -_080FCC38: - ldr r0, _080FCCB0 - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FCCB4 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r4, r9 - ldr r1, [r4] - adds r1, r0 - ldr r0, _080FCCB8 - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r5, 0 - adds r6, r2, 0x1 - ldrb r0, [r3] - cmp r5, r0 - bcs _080FCC88 - movs r0, 0x80 - lsls r0, 8 - adds r7, r0, 0 -_080FCC64: - ldrh r0, [r4] - ands r0, r7 - cmp r0, 0 - bne _080FCC7A - adds r0, r4, 0 - mov r1, r8 - str r3, [sp] - bl sub_80FD3D0 - strh r0, [r4] - ldr r3, [sp] -_080FCC7A: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x2 - ldrb r0, [r3] - cmp r5, r0 - bcc _080FCC64 -_080FCC88: - lsls r0, r6, 24 - lsrs r2, r0, 24 - ldr r0, _080FCCA4 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FCC38 -_080FCC94: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCCA4: .4byte gUnknown_03005DF0 -_080FCCA8: .4byte gUnknown_03005DEC -_080FCCAC: .4byte gUnknown_03005DF8 -_080FCCB0: .4byte gUnknown_03005DFC -_080FCCB4: .4byte gUnknown_03005E04 -_080FCCB8: .4byte gUnknown_03005DE8 - thumb_func_end sub_80FCC18 - - thumb_func_start sub_80FCCBC -sub_80FCCBC: @ 80FCCBC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r2, 0 - ldr r0, _080FCD3C - ldrb r0, [r0] - cmp r2, r0 - bcs _080FCD2E - ldr r0, _080FCD40 - mov r8, r0 - ldr r3, _080FCD44 -_080FCCD4: - ldr r0, _080FCD48 - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FCD4C - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r4, r8 - ldr r1, [r4] - adds r1, r0 - ldr r0, _080FCD50 - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r5, 0 - adds r6, r2, 0x1 - ldrb r0, [r3] - cmp r5, r0 - bcs _080FCD22 - movs r0, 0x80 - lsls r0, 8 - adds r7, r0, 0 -_080FCD00: - ldrh r0, [r4] - ands r0, r7 - cmp r0, 0 - bne _080FCD14 - adds r0, r4, 0 - str r3, [sp] - bl sub_80FD4DC - strh r0, [r4] - ldr r3, [sp] -_080FCD14: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x2 - ldrb r0, [r3] - cmp r5, r0 - bcc _080FCD00 -_080FCD22: - lsls r0, r6, 24 - lsrs r2, r0, 24 - ldr r0, _080FCD3C - ldrb r0, [r0] - cmp r2, r0 - bcc _080FCCD4 -_080FCD2E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCD3C: .4byte gUnknown_03005DF0 -_080FCD40: .4byte gUnknown_03005DEC -_080FCD44: .4byte gUnknown_03005DF8 -_080FCD48: .4byte gUnknown_03005DFC -_080FCD4C: .4byte gUnknown_03005E04 -_080FCD50: .4byte gUnknown_03005DE8 - thumb_func_end sub_80FCCBC - - thumb_func_start sub_80FCD54 -sub_80FCD54: @ 80FCD54 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r7, 0 - ldr r0, _080FCE8C - ldrb r0, [r0] - cmp r7, r0 - bcs _080FCDE0 - ldr r0, _080FCE90 - mov r8, r0 -_080FCD6A: - ldr r0, _080FCE94 - ldrb r1, [r0] - adds r1, r7 - ldr r0, _080FCE98 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r2, r8 - ldr r1, [r2] - adds r1, r0 - ldr r0, _080FCE9C - ldrb r0, [r0] - lsls r0, 1 - adds r5, r1, r0 - adds r4, r5, 0x2 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80FD50C - strh r0, [r5] - movs r6, 0x1 - adds r5, r4, 0 - ldr r0, _080FCEA0 - ldrb r0, [r0] - subs r0, 0x1 - adds r7, 0x1 - cmp r6, r0 - bge _080FCDCA -_080FCDA2: - adds r4, r5, 0x2 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80FD50C - strh r0, [r5] - subs r1, r5, 0x2 - adds r0, r5, 0 - bl sub_80FD50C - strh r0, [r5] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r5, r4, 0 - ldr r0, _080FCEA0 - ldrb r0, [r0] - subs r0, 0x1 - cmp r6, r0 - blt _080FCDA2 -_080FCDCA: - subs r1, r5, 0x2 - adds r0, r5, 0 - bl sub_80FD50C - strh r0, [r5] - lsls r0, r7, 24 - lsrs r7, r0, 24 - ldr r0, _080FCE8C - ldrb r0, [r0] - cmp r7, r0 - bcc _080FCD6A -_080FCDE0: - movs r6, 0 - ldr r0, _080FCEA0 - ldrb r0, [r0] - cmp r6, r0 - bcs _080FCE80 - ldr r3, _080FCE90 - mov r9, r3 - ldr r0, _080FCE98 - mov r8, r0 -_080FCDF2: - ldr r0, _080FCE94 - ldrb r0, [r0] - mov r2, r8 - ldrb r1, [r2] - muls r0, r1 - lsls r0, 1 - mov r3, r9 - ldr r2, [r3] - adds r2, r0 - ldr r0, _080FCE9C - ldrb r0, [r0] - adds r0, r6 - lsls r0, 1 - adds r5, r2, r0 - lsls r1, 1 - adds r1, r5, r1 - adds r0, r5, 0 - bl sub_80FD50C - strh r0, [r5] - movs r7, 0x1 - mov r1, r8 - ldrb r0, [r1] - lsls r0, 1 - adds r5, r0 - ldr r0, _080FCE8C - ldrb r0, [r0] - subs r0, 0x1 - adds r6, 0x1 - cmp r7, r0 - bge _080FCE64 - ldr r4, _080FCE98 -_080FCE32: - ldrb r1, [r4] - lsls r1, 1 - adds r1, r5, r1 - adds r0, r5, 0 - bl sub_80FD50C - strh r0, [r5] - ldrb r1, [r4] - lsls r1, 1 - subs r1, r5, r1 - adds r0, r5, 0 - bl sub_80FD50C - strh r0, [r5] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r4] - lsls r0, 1 - adds r5, r0 - ldr r0, _080FCE8C - ldrb r0, [r0] - subs r0, 0x1 - cmp r7, r0 - blt _080FCE32 -_080FCE64: - mov r2, r8 - ldrb r1, [r2] - lsls r1, 1 - subs r1, r5, r1 - adds r0, r5, 0 - bl sub_80FD50C - strh r0, [r5] - lsls r0, r6, 24 - lsrs r6, r0, 24 - ldr r0, _080FCEA0 - ldrb r0, [r0] - cmp r6, r0 - bcc _080FCDF2 -_080FCE80: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCE8C: .4byte gUnknown_03005DF0 -_080FCE90: .4byte gUnknown_03005DEC -_080FCE94: .4byte gUnknown_03005DFC -_080FCE98: .4byte gUnknown_03005E04 -_080FCE9C: .4byte gUnknown_03005DE8 -_080FCEA0: .4byte gUnknown_03005DF8 - thumb_func_end sub_80FCD54 - - thumb_func_start sub_80FCEA4 -sub_80FCEA4: @ 80FCEA4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r2, 0 - ldr r0, _080FCF24 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FCF16 - ldr r0, _080FCF28 - mov r8, r0 - ldr r3, _080FCF2C -_080FCEBC: - ldr r0, _080FCF30 - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FCF34 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r4, r8 - ldr r1, [r4] - adds r1, r0 - ldr r0, _080FCF38 - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r5, 0 - adds r6, r2, 0x1 - ldrb r0, [r3] - cmp r5, r0 - bcs _080FCF0A - movs r0, 0x80 - lsls r0, 8 - adds r7, r0, 0 -_080FCEE8: - ldrh r0, [r4] - ands r0, r7 - cmp r0, 0 - bne _080FCEFC - adds r0, r4, 0 - str r3, [sp] - bl sub_80FD53C - strh r0, [r4] - ldr r3, [sp] -_080FCEFC: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x2 - ldrb r0, [r3] - cmp r5, r0 - bcc _080FCEE8 -_080FCF0A: - lsls r0, r6, 24 - lsrs r2, r0, 24 - ldr r0, _080FCF24 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FCEBC -_080FCF16: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCF24: .4byte gUnknown_03005DF0 -_080FCF28: .4byte gUnknown_03005DEC -_080FCF2C: .4byte gUnknown_03005DF8 -_080FCF30: .4byte gUnknown_03005DFC -_080FCF34: .4byte gUnknown_03005E04 -_080FCF38: .4byte gUnknown_03005DE8 - thumb_func_end sub_80FCEA4 - - thumb_func_start sub_80FCF3C -sub_80FCF3C: @ 80FCF3C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r0, _080FD068 - ldr r4, [r0] - movs r6, 0 - movs r0, 0x80 - lsls r0, 8 - adds r5, r0, 0 -_080FCF54: - movs r7, 0 -_080FCF56: - ldrh r0, [r4] - ands r0, r5 - cmp r0, 0 - bne _080FCF66 - adds r0, r4, 0 - bl sub_80FD53C - strh r0, [r4] -_080FCF66: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r4, 0x2 - cmp r7, 0x3F - bls _080FCF56 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3F - bls _080FCF54 - movs r7, 0 - ldr r1, _080FD068 - mov r10, r1 - mov r3, sp - movs r2, 0x80 - lsls r2, 8 - mov r9, r2 -_080FCF8A: - lsls r0, r7, 1 - mov r2, r10 - ldr r1, [r2] - adds r4, r1, r0 - ldrh r1, [r4] - strh r1, [r3] - mov r1, r9 - strh r1, [r4] - movs r6, 0x1 - adds r4, 0x80 - adds r5, r0, 0 -_080FCFA0: - ldrh r0, [r4] - movs r2, 0x80 - lsls r2, 8 - ands r0, r2 - cmp r0, 0 - bne _080FCFC0 - adds r2, r4, 0 - adds r2, 0x80 - mov r0, sp - adds r1, r4, 0 - str r3, [sp, 0x4] - bl sub_80FD7AC - strh r0, [r4] - ldr r3, [sp, 0x4] - strh r0, [r3] -_080FCFC0: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r4, 0x80 - cmp r6, 0x3E - bls _080FCFA0 - mov r0, r9 - strh r0, [r4] - mov r1, r10 - ldr r0, [r1] - adds r4, r0, r5 - ldrh r0, [r4] - strh r0, [r3] - mov r2, r9 - strh r2, [r4] - movs r6, 0x1 - adds r4, 0x80 - movs r0, 0x80 - lsls r0, 8 - mov r8, r0 -_080FCFE8: - ldrh r0, [r4] - mov r1, r8 - ands r0, r1 - adds r5, r4, 0 - adds r5, 0x80 - cmp r0, 0 - bne _080FD008 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - str r3, [sp, 0x4] - bl sub_80FD7AC - strh r0, [r4] - ldr r3, [sp, 0x4] - strh r0, [r3] -_080FD008: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r4, r5, 0 - cmp r6, 0x3E - bls _080FCFE8 - mov r2, r9 - strh r2, [r4] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x3F - bls _080FCF8A - ldr r0, _080FD068 - ldr r4, [r0] - movs r6, 0 - movs r0, 0x80 - lsls r0, 8 - mov r8, r0 -_080FD02E: - movs r7, 0 - adds r5, r6, 0x1 -_080FD032: - ldrh r0, [r4] - mov r1, r8 - ands r0, r1 - cmp r0, 0 - bne _080FD044 - adds r0, r4, 0 - bl sub_80FD53C - strh r0, [r4] -_080FD044: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r4, 0x2 - cmp r7, 0x3F - bls _080FD032 - lsls r0, r5, 24 - lsrs r6, r0, 24 - cmp r6, 0x3F - bls _080FD02E - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FD068: .4byte gUnknown_03005DEC - thumb_func_end sub_80FCF3C - - thumb_func_start sub_80FD06C -sub_80FD06C: @ 80FD06C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r2, 0 - ldr r0, _080FD0FC - ldrb r0, [r0] - cmp r2, r0 - bcs _080FD0EE - ldr r0, _080FD100 - mov r8, r0 -_080FD082: - ldr r0, _080FD104 - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FD108 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r3, r8 - ldr r1, [r3] - adds r1, r0 - ldr r0, _080FD10C - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - ldrh r1, [r4] - mov r0, sp - strh r1, [r0] - movs r5, 0x1 - adds r4, 0x2 - ldr r0, _080FD110 - ldrb r0, [r0] - subs r0, 0x1 - adds r6, r2, 0x1 - cmp r5, r0 - bge _080FD0E2 - movs r0, 0x80 - lsls r0, 8 - adds r7, r0, 0 -_080FD0BA: - ldrh r0, [r4] - ands r0, r7 - cmp r0, 0 - bne _080FD0D0 - mov r0, sp - adds r1, r4, 0 - bl sub_80FD568 - strh r0, [r4] - mov r1, sp - strh r0, [r1] -_080FD0D0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x2 - ldr r0, _080FD110 - ldrb r0, [r0] - subs r0, 0x1 - cmp r5, r0 - blt _080FD0BA -_080FD0E2: - lsls r0, r6, 24 - lsrs r2, r0, 24 - ldr r0, _080FD0FC - ldrb r0, [r0] - cmp r2, r0 - bcc _080FD082 -_080FD0EE: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FD0FC: .4byte gUnknown_03005DF0 -_080FD100: .4byte gUnknown_03005DEC -_080FD104: .4byte gUnknown_03005DFC -_080FD108: .4byte gUnknown_03005E04 -_080FD10C: .4byte gUnknown_03005DE8 -_080FD110: .4byte gUnknown_03005DF8 - thumb_func_end sub_80FD06C - - thumb_func_start sub_80FD114 -sub_80FD114: @ 80FD114 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r2, 0 - ldr r0, _080FD1B0 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FD1A2 - ldr r0, _080FD1B4 - mov r8, r0 - ldr r7, _080FD1B8 -_080FD12C: - ldr r0, _080FD1BC - ldrb r1, [r0] - ldrb r0, [r7] - muls r0, r1 - lsls r0, 1 - mov r3, r8 - ldr r1, [r3] - adds r1, r0 - ldr r0, _080FD1C0 - ldrb r0, [r0] - adds r0, r2 - lsls r0, 1 - adds r4, r1, r0 - ldrh r1, [r4] - mov r0, sp - strh r1, [r0] - movs r5, 0x1 - ldrb r0, [r7] - lsls r0, 1 - adds r4, r0 - ldr r0, _080FD1C4 - ldrb r0, [r0] - subs r0, 0x1 - adds r6, r2, 0x1 - cmp r5, r0 - bge _080FD196 - movs r0, 0x80 - lsls r0, 8 - adds r2, r0, 0 -_080FD166: - ldrh r0, [r4] - ands r0, r2 - cmp r0, 0 - bne _080FD180 - mov r0, sp - adds r1, r4, 0 - str r2, [sp, 0x4] - bl sub_80FD568 - strh r0, [r4] - mov r1, sp - strh r0, [r1] - ldr r2, [sp, 0x4] -_080FD180: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r7] - lsls r0, 1 - adds r4, r0 - ldr r0, _080FD1C4 - ldrb r0, [r0] - subs r0, 0x1 - cmp r5, r0 - blt _080FD166 -_080FD196: - lsls r0, r6, 24 - lsrs r2, r0, 24 - ldr r0, _080FD1B0 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FD12C -_080FD1A2: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FD1B0: .4byte gUnknown_03005DF8 -_080FD1B4: .4byte gUnknown_03005DEC -_080FD1B8: .4byte gUnknown_03005E04 -_080FD1BC: .4byte gUnknown_03005DFC -_080FD1C0: .4byte gUnknown_03005DE8 -_080FD1C4: .4byte gUnknown_03005DF0 - thumb_func_end sub_80FD114 - - thumb_func_start sub_80FD1C8 -sub_80FD1C8: @ 80FD1C8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - mov r2, sp - ldr r3, _080FD234 - lsls r1, r0, 1 - add r1, r10 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r3, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - strb r0, [r2, 0x1] - mov r5, sp - adds r0, r3, 0x2 - adds r1, r0 - ldrb r4, [r1] - lsls r2, r4, 24 - lsrs r1, r2, 27 - movs r0, 0x7 - ands r1, r0 - strh r1, [r5, 0x2] - lsrs r2, 25 - mov r9, r2 - movs r0, 0x3 - ands r2, r0 - mov r9, r2 - movs r5, 0x1 - ands r5, r4 - movs r4, 0x1 - mov r8, r4 - cmp r8, r1 - bcs _080FD27A - mov r3, sp -_080FD21A: - cmp r5, 0 - bne _080FD238 - mov r0, r8 - lsls r2, r0, 2 - mov r4, sp - adds r1, r4, r2 - ldrb r0, [r3] - mov r4, r8 - subs r0, r4 - strb r0, [r1] - ldrb r0, [r3, 0x1] - add r0, r8 - b _080FD24A - .align 2, 0 -_080FD234: .4byte gUnknown_083E7A50 -_080FD238: - mov r0, r8 - lsls r2, r0, 2 - mov r4, sp - adds r1, r4, r2 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r1] - ldrb r0, [r3, 0x1] - subs r0, 0x1 -_080FD24A: - strb r0, [r1, 0x1] - add r2, sp - ldrb r0, [r2] - cmp r0, 0x3F - bhi _080FD25A - ldrb r0, [r2, 0x1] - cmp r0, 0x3F - bls _080FD262 -_080FD25A: - mov r0, r8 - subs r0, 0x1 - strh r0, [r3, 0x2] - b _080FD27A -_080FD262: - ldrh r0, [r3, 0x2] - mov r1, r8 - subs r0, r1 - strh r0, [r2, 0x2] - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrh r0, [r3, 0x2] - cmp r8, r0 - bcc _080FD21A -_080FD27A: - movs r2, 0 - mov r8, r2 - mov r0, sp - ldrh r0, [r0, 0x2] - cmp r8, r0 - bcc _080FD288 - b _080FD38A -_080FD288: - movs r3, 0x1F -_080FD28A: - ldr r1, _080FD2E8 - mov r4, r8 - lsls r0, r4, 2 - mov r2, sp - adds r6, r2, r0 - ldrb r0, [r6, 0x1] - lsls r0, 7 - ldr r1, [r1] - adds r1, r0 - ldrb r0, [r6] - lsls r0, 1 - adds r2, r1, r0 - ldrh r1, [r2] - movs r4, 0x80 - lsls r4, 8 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _080FD376 - movs r7, 0x1F - ands r7, r1 - lsls r0, r1, 16 - lsrs r5, r0, 21 - ands r5, r3 - lsrs r4, r0, 26 - ands r4, r3 - mov r0, r9 - cmp r0, 0 - blt _080FD36C - cmp r0, 0x1 - ble _080FD2EC - cmp r0, 0x3 - bgt _080FD36C - ldrh r0, [r6, 0x2] - adds r1, r7, r0 - lsls r1, 16 - lsrs r7, r1, 16 - adds r1, r5, r0 - lsls r1, 16 - lsrs r5, r1, 16 - adds r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r7, 0x1F - bls _080FD360 - movs r7, 0x1F - b _080FD360 - .align 2, 0 -_080FD2E8: .4byte gUnknown_03005DEC -_080FD2EC: - mov r1, r10 - lsls r0, r1, 1 - add r0, r10 - ldr r1, _080FD320 - adds r1, 0x2 - adds r0, r1 - ldrb r0, [r0] - lsrs r0, 3 - movs r1, 0x7 - ands r0, r1 - movs r1, 0x3 - str r2, [sp, 0x18] - str r3, [sp, 0x1C] - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - cmp r0, 0x1 - beq _080FD33C - cmp r0, 0x1 - bgt _080FD324 - cmp r0, 0 - beq _080FD32A - b _080FD36C - .align 2, 0 -_080FD320: .4byte gUnknown_083E7A50 -_080FD324: - cmp r0, 0x2 - beq _080FD34E - b _080FD36C -_080FD32A: - ldrh r0, [r6, 0x2] - cmp r7, r0 - bcc _080FD338 - subs r0, r7, r0 - lsls r0, 16 - lsrs r7, r0, 16 - b _080FD36C -_080FD338: - movs r7, 0 - b _080FD36C -_080FD33C: - ldrh r0, [r6, 0x2] - cmp r5, r0 - bcc _080FD34A - subs r0, r5, r0 - lsls r0, 16 - lsrs r5, r0, 16 - b _080FD36C -_080FD34A: - movs r5, 0 - b _080FD36C -_080FD34E: - ldrh r0, [r6, 0x2] - cmp r4, r0 - bcc _080FD35C - subs r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - b _080FD36C -_080FD35C: - movs r4, 0 - b _080FD36C -_080FD360: - cmp r5, 0x1F - bls _080FD366 - movs r5, 0x1F -_080FD366: - cmp r4, 0x1F - bls _080FD36C - movs r4, 0x1F -_080FD36C: - lsls r0, r4, 10 - lsls r1, r5, 5 - orrs r0, r1 - orrs r7, r0 - strh r7, [r2] -_080FD376: - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r0, sp - ldrh r0, [r0, 0x2] - cmp r8, r0 - bcs _080FD38A - b _080FD28A -_080FD38A: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FD1C8 - - thumb_func_start sub_80FD39C -sub_80FD39C: @ 80FD39C - push {lr} - ldrh r1, [r0] - movs r3, 0x1F - movs r0, 0x1F - ands r0, r1 - lsls r1, 16 - lsrs r2, r1, 21 - ands r2, r3 - lsrs r1, 26 - ands r1, r3 - adds r0, r2 - adds r0, r1 - movs r1, 0x3 - bl __divsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r0, r1, 10 - lsls r2, r1, 5 - orrs r0, r2 - orrs r0, r1 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80FD39C - - thumb_func_start sub_80FD3D0 -sub_80FD3D0: @ 80FD3D0 - push {r4,lr} - lsls r1, 24 - lsrs r4, r1, 24 - ldrh r0, [r0] - movs r2, 0x1F - movs r1, 0x1F - ands r1, r0 - lsls r0, 16 - lsrs r3, r0, 21 - ands r3, r2 - lsrs r0, 26 - ands r0, r2 - cmp r1, 0x10 - bhi _080FD400 - cmp r3, 0x10 - bhi _080FD400 - cmp r0, 0x10 - bhi _080FD400 - adds r0, r4, 0 - bl sub_80FD40C - lsls r0, 16 - lsrs r0, 16 - b _080FD402 -_080FD400: - ldr r0, _080FD408 -_080FD402: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080FD408: .4byte 0x00007fff - thumb_func_end sub_80FD3D0 - - thumb_func_start sub_80FD40C -sub_80FD40C: @ 80FD40C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - mov r8, r0 - movs r6, 0 - movs r7, 0 - adds r0, r4, 0 - movs r1, 0x6 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bhi _080FD4C4 - lsls r0, 2 - ldr r1, _080FD450 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FD450: .4byte _080FD454 - .align 2, 0 -_080FD454: - .4byte _080FD46C - .4byte _080FD47C - .4byte _080FD48C - .4byte _080FD49A - .4byte _080FD4A8 - .4byte _080FD4B6 -_080FD46C: - movs r0, 0x15 - subs r0, r5 - lsls r0, 16 - lsrs r6, r0, 16 - adds r7, r6, 0 - movs r1, 0 - mov r8, r1 - b _080FD4C4 -_080FD47C: - movs r7, 0 - movs r0, 0x15 - subs r0, r5 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - mov r6, r8 - b _080FD4C4 -_080FD48C: - movs r0, 0x15 - subs r0, r5 - lsls r0, 16 - lsrs r7, r0, 16 - movs r6, 0 - mov r8, r7 - b _080FD4C4 -_080FD49A: - movs r7, 0 - movs r6, 0 - movs r0, 0x17 - subs r0, r5 - lsls r0, 16 - lsrs r0, 16 - b _080FD4C2 -_080FD4A8: - movs r0, 0x17 - subs r0, r5 - lsls r0, 16 - lsrs r7, r0, 16 - movs r6, 0 - mov r8, r6 - b _080FD4C4 -_080FD4B6: - movs r7, 0 - movs r0, 0x17 - subs r0, r5 - lsls r0, 16 - lsrs r6, r0, 16 - movs r0, 0 -_080FD4C2: - mov r8, r0 -_080FD4C4: - lsls r0, r7, 10 - lsls r1, r6, 5 - orrs r0, r1 - mov r1, r8 - orrs r1, r0 - lsls r0, r1, 16 - lsrs r0, 16 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FD40C - - thumb_func_start sub_80FD4DC -sub_80FD4DC: @ 80FD4DC - push {lr} - ldrh r0, [r0] - movs r2, 0x1F - movs r1, 0x1F - ands r1, r0 - lsls r0, 16 - lsrs r3, r0, 21 - ands r3, r2 - lsrs r0, 26 - ands r0, r2 - cmp r1, 0x10 - bhi _080FD500 - cmp r3, 0x10 - bhi _080FD500 - cmp r0, 0x10 - bhi _080FD500 - movs r0, 0 - b _080FD502 -_080FD500: - ldr r0, _080FD508 -_080FD502: - pop {r1} - bx r1 - .align 2, 0 -_080FD508: .4byte 0x00007fff - thumb_func_end sub_80FD4DC - - thumb_func_start sub_80FD50C -sub_80FD50C: @ 80FD50C - push {r4,lr} - adds r4, r0, 0 - ldrh r3, [r4] - cmp r3, 0 - beq _080FD534 - movs r2, 0x80 - lsls r2, 8 - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - beq _080FD526 - adds r0, r2, 0 - b _080FD536 -_080FD526: - ldrh r1, [r1] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080FD534 - ldrh r0, [r4] - b _080FD536 -_080FD534: - movs r0, 0 -_080FD536: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FD50C - - thumb_func_start sub_80FD53C -sub_80FD53C: @ 80FD53C - push {r4,lr} - ldrh r1, [r0] - movs r0, 0x1F - movs r3, 0x1F - ands r3, r1 - lsls r1, 16 - lsrs r2, r1, 21 - lsrs r1, 26 - subs r3, r0, r3 - adds r4, r0, 0 - bics r4, r2 - adds r2, r4, 0 - bics r0, r1 - lsls r0, 10 - lsls r2, 5 - orrs r0, r2 - orrs r0, r3 - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FD53C - - thumb_func_start sub_80FD568 -sub_80FD568: @ 80FD568 - push {r4-r7,lr} - sub sp, 0x14 - adds r7, r1, 0 - ldrh r4, [r0] - ldrh r5, [r7] - lsls r6, r4, 16 - lsls r0, r5, 16 - mov r12, r0 - cmp r4, r5 - beq _080FD5DA - mov r2, sp - movs r3, 0x1F - movs r1, 0x1F - adds r0, r1, 0 - ands r0, r4 - strh r0, [r2] - lsrs r0, r6, 21 - ands r0, r3 - strh r0, [r2, 0x2] - lsrs r0, r6, 26 - ands r0, r3 - strh r0, [r2, 0x4] - mov r0, sp - ands r1, r5 - strh r1, [r0, 0x6] - mov r1, sp - mov r2, r12 - lsrs r0, r2, 21 - ands r0, r3 - strh r0, [r1, 0x8] - lsrs r0, r2, 26 - ands r0, r3 - strh r0, [r1, 0xA] - mov r0, sp - ldrh r0, [r0] - cmp r0, 0x19 - bls _080FD5C2 - mov r0, sp - ldrh r0, [r0, 0x2] - cmp r0, 0x19 - bls _080FD5C2 - mov r0, sp - ldrh r0, [r0, 0x4] - cmp r0, 0x19 - bhi _080FD5DA -_080FD5C2: - mov r0, sp - ldrh r0, [r0, 0x6] - cmp r0, 0x19 - bls _080FD5DE - mov r0, sp - ldrh r0, [r0, 0x8] - cmp r0, 0x19 - bls _080FD5DE - mov r0, sp - ldrh r0, [r0, 0xA] - cmp r0, 0x19 - bls _080FD5DE -_080FD5DA: - ldrh r0, [r7] - b _080FD684 -_080FD5DE: - movs r4, 0 - add r6, sp, 0xC - mov r7, sp - adds r7, 0x6 - adds r5, r6, 0 -_080FD5E8: - lsls r2, r4, 1 - mov r1, sp - adds r0, r1, r2 - adds r1, r7, r2 - ldrh r3, [r0] - ldrh r0, [r1] - cmp r3, r0 - bls _080FD5FE - adds r1, r5, r2 - subs r0, r3, r0 - b _080FD602 -_080FD5FE: - adds r1, r5, r2 - subs r0, r3 -_080FD602: - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _080FD5E8 - adds r1, r6, 0 - ldrh r0, [r1, 0x2] - ldrh r3, [r1] - cmp r3, r0 - bcc _080FD628 - ldrh r2, [r1, 0x4] - cmp r3, r2 - bcc _080FD622 - adds r2, r3, 0 - b _080FD63C -_080FD622: - cmp r0, r2 - bcs _080FD62E - b _080FD636 -_080FD628: - ldrh r2, [r1, 0x4] - cmp r0, r2 - bcc _080FD632 -_080FD62E: - ldrh r2, [r1, 0x2] - b _080FD63C -_080FD632: - cmp r2, r3 - bcc _080FD63A -_080FD636: - ldrh r2, [r1, 0x4] - b _080FD63C -_080FD63A: - ldrh r2, [r6] -_080FD63C: - mov r0, sp - ldrh r1, [r0, 0x6] - lsrs r0, r2, 1 - movs r6, 0x1F - subs r6, r0 - adds r0, r1, 0 - muls r0, r6 - movs r1, 0x1F - bl __divsi3 - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - mov r0, sp - ldrh r0, [r0, 0x8] - muls r0, r6 - movs r1, 0x1F - bl __divsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, sp - ldrh r0, [r0, 0xA] - muls r0, r6 - movs r1, 0x1F - bl __divsi3 - lsls r0, 16 - lsrs r0, 6 - lsls r4, 5 - orrs r0, r4 - orrs r5, r0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r5, 0 -_080FD684: - add sp, 0x14 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FD568 - - thumb_func_start sub_80FD68C -sub_80FD68C: @ 80FD68C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r3, r0, 0 - mov r10, r1 - str r2, [sp] - ldrh r1, [r3] - mov r0, r10 - ldrh r0, [r0] - cmp r1, r0 - bne _080FD6B4 - ldrh r0, [r2] - cmp r0, r1 - bne _080FD6B4 - mov r1, r10 - ldrh r0, [r1] - b _080FD79C -_080FD6B4: - mov r2, r10 - ldrh r0, [r2] - movs r1, 0x1F - mov r9, r1 - movs r4, 0x1F - adds r5, r4, 0 - ands r5, r0 - lsls r0, 16 - lsrs r2, r0, 21 - mov r1, r9 - ands r1, r2 - mov r8, r1 - lsrs r0, 26 - mov r2, r9 - ands r2, r0 - str r2, [sp, 0x4] - ldrh r2, [r3] - adds r0, r4, 0 - ands r0, r2 - lsls r2, 16 - lsrs r1, r2, 21 - mov r3, r9 - ands r1, r3 - adds r0, r1 - lsrs r2, 26 - ands r2, r3 - adds r0, r2 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r7, r0, 16 - mov r1, r8 - adds r0, r5, r1 - ldr r2, [sp, 0x4] - adds r0, r2 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r3, [sp] - ldrh r1, [r3] - ands r4, r1 - lsls r1, 16 - lsrs r0, r1, 21 - mov r2, r9 - ands r0, r2 - adds r4, r0 - lsrs r1, 26 - ands r1, r2 - adds r4, r1 - adds r0, r4, 0 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r7, r6 - bne _080FD736 - cmp r1, r6 - bne _080FD736 - mov r3, r10 - ldrh r0, [r3] - b _080FD79C -_080FD736: - cmp r7, r6 - bls _080FD73E - subs r0, r7, r6 - b _080FD740 -_080FD73E: - subs r0, r6, r7 -_080FD740: - lsls r0, 16 - lsrs r2, r0, 16 - cmp r1, r6 - bls _080FD74C - subs r0, r1, r6 - b _080FD74E -_080FD74C: - subs r0, r6, r1 -_080FD74E: - lsls r0, 16 - lsrs r0, 16 - cmp r2, r0 - bcc _080FD758 - adds r0, r2, 0 -_080FD758: - lsrs r0, 1 - movs r4, 0x1F - subs r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - muls r0, r4 - movs r1, 0x1F - bl __divsi3 - lsls r0, 16 - lsrs r5, r0, 16 - mov r0, r8 - muls r0, r4 - movs r1, 0x1F - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r1, [sp, 0x4] - adds r0, r1, 0 - muls r0, r4 - movs r1, 0x1F - bl __divsi3 - lsls r0, 16 - lsrs r0, 6 - mov r2, r8 - lsls r1, r2, 5 - orrs r0, r1 - orrs r5, r0 - lsls r0, r5, 16 - lsrs r0, 16 -_080FD79C: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FD68C - - thumb_func_start sub_80FD7AC -sub_80FD7AC: @ 80FD7AC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r3, r0, 0 - mov r10, r1 - str r2, [sp] - ldrh r1, [r3] - mov r0, r10 - ldrh r0, [r0] - cmp r1, r0 - bne _080FD7D4 - ldrh r0, [r2] - cmp r0, r1 - bne _080FD7D4 - mov r1, r10 - ldrh r0, [r1] - b _080FD8BA -_080FD7D4: - mov r2, r10 - ldrh r0, [r2] - movs r1, 0x1F - mov r9, r1 - movs r4, 0x1F - adds r5, r4, 0 - ands r5, r0 - lsls r0, 16 - lsrs r2, r0, 21 - mov r1, r9 - ands r1, r2 - mov r8, r1 - lsrs r0, 26 - mov r2, r9 - ands r2, r0 - str r2, [sp, 0x4] - ldrh r2, [r3] - adds r0, r4, 0 - ands r0, r2 - lsls r2, 16 - lsrs r1, r2, 21 - mov r3, r9 - ands r1, r3 - adds r0, r1 - lsrs r2, 26 - ands r2, r3 - adds r0, r2 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r7, r0, 16 - mov r1, r8 - adds r0, r5, r1 - ldr r2, [sp, 0x4] - adds r0, r2 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r3, [sp] - ldrh r1, [r3] - ands r4, r1 - lsls r1, 16 - lsrs r0, r1, 21 - mov r2, r9 - ands r0, r2 - adds r4, r0 - lsrs r1, 26 - ands r1, r2 - adds r4, r1 - adds r0, r4, 0 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r7, r6 - bne _080FD856 - cmp r1, r6 - bne _080FD856 - mov r3, r10 - ldrh r0, [r3] - b _080FD8BA -_080FD856: - cmp r7, r6 - bls _080FD85E - subs r0, r7, r6 - b _080FD860 -_080FD85E: - subs r0, r6, r7 -_080FD860: - lsls r0, 16 - lsrs r2, r0, 16 - cmp r1, r6 - bls _080FD86C - subs r0, r1, r6 - b _080FD86E -_080FD86C: - subs r0, r6, r1 -_080FD86E: - lsls r0, 16 - lsrs r0, 16 - cmp r2, r0 - bcc _080FD878 - adds r0, r2, 0 -_080FD878: - movs r4, 0x1F - subs r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - muls r0, r4 - movs r1, 0x1F - bl __divsi3 - lsls r0, 16 - lsrs r5, r0, 16 - mov r0, r8 - muls r0, r4 - movs r1, 0x1F - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r1, [sp, 0x4] - adds r0, r1, 0 - muls r0, r4 - movs r1, 0x1F - bl __divsi3 - lsls r0, 16 - lsrs r0, 6 - mov r2, r8 - lsls r1, r2, 5 - orrs r0, r1 - orrs r5, r0 - lsls r0, r5, 16 - lsrs r0, 16 -_080FD8BA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FD7AC - - thumb_func_start sub_80FD8CC -sub_80FD8CC: @ 80FD8CC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - ldrb r1, [r0, 0x1D] - lsrs r5, r1, 3 - ldrb r1, [r0, 0x1E] - lsrs r1, 3 - str r1, [sp, 0x8] - ldr r1, [r0, 0x4] - str r1, [sp] - ldr r2, [r0, 0x10] - str r2, [sp, 0x4] - ldrh r0, [r0, 0x16] - cmp r0, 0x2 - bne _080FD97C - movs r1, 0 - ldr r0, [sp, 0x8] - cmp r1, r0 - bcc _080FD8FA - b _080FDA08 -_080FD8FA: - movs r0, 0 - adds r2, r1, 0x1 - mov r10, r2 - cmp r0, r5 - bcs _080FD96E - adds r2, r1, 0 - muls r2, r5 - mov r9, r2 - lsls r1, 3 - mov r8, r1 -_080FD90E: - movs r4, 0 - lsls r6, r0, 4 - adds r7, r0, 0x1 - add r0, r9 - lsls r0, 6 - ldr r1, [sp, 0x4] - adds r1, r0 - mov r12, r1 -_080FD91E: - lsls r0, r4, 3 - mov r2, r12 - adds r3, r2, r0 - mov r1, r8 - adds r0, r1, r4 - lsls r0, 3 - muls r0, r5 - lsls r0, 1 - ldr r2, [sp] - adds r0, r2, r0 - adds r2, r0, r6 - ldrh r0, [r2, 0x2] - lsls r0, 8 - ldrh r1, [r2] - orrs r0, r1 - strh r0, [r3] - ldrh r0, [r2, 0x6] - lsls r0, 8 - ldrh r1, [r2, 0x4] - orrs r0, r1 - strh r0, [r3, 0x2] - ldrh r0, [r2, 0xA] - lsls r0, 8 - ldrh r1, [r2, 0x8] - orrs r0, r1 - strh r0, [r3, 0x4] - ldrh r0, [r2, 0xE] - lsls r0, 8 - ldrh r1, [r2, 0xC] - orrs r0, r1 - strh r0, [r3, 0x6] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x7 - bls _080FD91E - lsls r0, r7, 16 - lsrs r0, 16 - cmp r0, r5 - bcc _080FD90E -_080FD96E: - mov r1, r10 - lsls r0, r1, 16 - lsrs r1, r0, 16 - ldr r2, [sp, 0x8] - cmp r1, r2 - bcc _080FD8FA - b _080FDA08 -_080FD97C: - movs r1, 0 - ldr r0, [sp, 0x8] - cmp r1, r0 - bcs _080FDA08 -_080FD984: - movs r0, 0 - adds r2, r1, 0x1 - mov r10, r2 - cmp r0, r5 - bcs _080FD9FC - adds r2, r1, 0 - muls r2, r5 - mov r9, r2 - lsls r1, 3 - mov r8, r1 -_080FD998: - movs r4, 0 - lsls r6, r0, 4 - adds r7, r0, 0x1 - add r0, r9 - lsls r0, 5 - ldr r1, [sp, 0x4] - adds r1, r0 - mov r12, r1 -_080FD9A8: - lsls r0, r4, 2 - mov r2, r12 - adds r3, r2, r0 - mov r1, r8 - adds r0, r1, r4 - lsls r0, 3 - muls r0, r5 - lsls r0, 1 - ldr r2, [sp] - adds r0, r2, r0 - adds r2, r0, r6 - ldrh r1, [r2, 0x2] - lsls r1, 4 - ldrh r0, [r2] - orrs r1, r0 - ldrh r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrh r0, [r2, 0x6] - lsls r0, 12 - orrs r1, r0 - strh r1, [r3] - ldrh r1, [r2, 0xA] - lsls r1, 4 - ldrh r0, [r2, 0x8] - orrs r1, r0 - ldrh r0, [r2, 0xC] - lsls r0, 8 - orrs r1, r0 - ldrh r0, [r2, 0xE] - lsls r0, 12 - orrs r1, r0 - strh r1, [r3, 0x2] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x7 - bls _080FD9A8 - lsls r0, r7, 16 - lsrs r0, 16 - cmp r0, r5 - bcc _080FD998 -_080FD9FC: - mov r1, r10 - lsls r0, r1, 16 - lsrs r1, r0, 16 - ldr r2, [sp, 0x8] - cmp r1, r2 - bcc _080FD984 -_080FDA08: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FD8CC - - thumb_func_start sub_80FDA18 -sub_80FDA18: @ 80FDA18 - push {lr} - ldr r2, _080FDA68 - ldrb r1, [r0, 0x18] - lsls r1, 4 - strh r1, [r2] - ldr r3, _080FDA6C - ldrh r2, [r2] - lsls r2, 1 - ldr r1, [r0, 0x8] - adds r1, r2 - str r1, [r3] - ldr r2, _080FDA70 - ldr r1, [r0, 0x4] - str r1, [r2] - ldr r2, _080FDA74 - ldrb r1, [r0, 0x19] - strb r1, [r2] - ldr r2, _080FDA78 - ldrb r1, [r0, 0x1A] - strb r1, [r2] - ldr r2, _080FDA7C - ldrb r1, [r0, 0x1B] - strb r1, [r2] - ldr r2, _080FDA80 - ldrb r1, [r0, 0x1C] - strb r1, [r2] - ldr r2, _080FDA84 - ldrb r1, [r0, 0x1D] - strb r1, [r2] - ldr r2, _080FDA88 - ldrb r1, [r0, 0x1E] - strb r1, [r2] - ldrh r0, [r0, 0x14] - cmp r0, 0x5 - bhi _080FDADE - lsls r0, 2 - ldr r1, _080FDA8C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FDA68: .4byte gUnknown_03005E0C -_080FDA6C: .4byte gUnknown_03005E08 -_080FDA70: .4byte gUnknown_03005DEC -_080FDA74: .4byte gUnknown_03005DE8 -_080FDA78: .4byte gUnknown_03005DFC -_080FDA7C: .4byte gUnknown_03005DF8 -_080FDA80: .4byte gUnknown_03005DF0 -_080FDA84: .4byte gUnknown_03005E04 -_080FDA88: .4byte gUnknown_03005DF4 -_080FDA8C: .4byte _080FDA90 - .align 2, 0 -_080FDA90: - .4byte _080FDAA8 - .4byte _080FDAB0 - .4byte _080FDAB8 - .4byte _080FDAC2 - .4byte _080FDACC - .4byte _080FDAD6 -_080FDAA8: - movs r0, 0 - bl sub_80FDC18 - b _080FDADE -_080FDAB0: - movs r0, 0x1 - bl sub_80FDC18 - b _080FDADE -_080FDAB8: - bl sub_80FDAE4 - bl sub_80FDF88 - b _080FDADE -_080FDAC2: - bl sub_80FDBE4 - bl sub_80FDED8 - b _080FDADE -_080FDACC: - bl sub_80FDBA8 - bl sub_80FDE28 - b _080FDADE -_080FDAD6: - bl sub_80FDB8C - bl sub_80FDD70 -_080FDADE: - pop {r0} - bx r0 - thumb_func_end sub_80FDA18 - - thumb_func_start sub_80FDAE4 -sub_80FDAE4: @ 80FDAE4 - ldr r2, _080FDB4C - ldr r1, [r2] - movs r0, 0 - strh r0, [r1] - ldr r0, [r2] - ldr r2, _080FDB50 - adds r1, r2, 0 - strh r1, [r0, 0x2] - ldr r2, _080FDB54 - adds r1, r2, 0 - strh r1, [r0, 0x4] - ldr r2, _080FDB58 - adds r1, r2, 0 - strh r1, [r0, 0x6] - ldr r2, _080FDB5C - adds r1, r2, 0 - strh r1, [r0, 0x8] - ldr r2, _080FDB60 - adds r1, r2, 0 - strh r1, [r0, 0xA] - ldr r2, _080FDB64 - adds r1, r2, 0 - strh r1, [r0, 0xC] - ldr r2, _080FDB68 - adds r1, r2, 0 - strh r1, [r0, 0xE] - ldr r2, _080FDB6C - adds r1, r2, 0 - strh r1, [r0, 0x10] - ldr r2, _080FDB70 - adds r1, r2, 0 - strh r1, [r0, 0x12] - ldr r2, _080FDB74 - adds r1, r2, 0 - strh r1, [r0, 0x14] - ldr r2, _080FDB78 - adds r1, r2, 0 - strh r1, [r0, 0x16] - ldr r2, _080FDB7C - adds r1, r2, 0 - strh r1, [r0, 0x18] - ldr r2, _080FDB80 - adds r1, r2, 0 - strh r1, [r0, 0x1A] - ldr r2, _080FDB84 - adds r1, r2, 0 - strh r1, [r0, 0x1C] - ldr r2, _080FDB88 - adds r1, r2, 0 - strh r1, [r0, 0x1E] - bx lr - .align 2, 0 -_080FDB4C: .4byte gUnknown_03005E08 -_080FDB50: .4byte 0x000018c6 -_080FDB54: .4byte 0x000077bd -_080FDB58: .4byte 0x00002d6b -_080FDB5C: .4byte 0x000018dd -_080FDB60: .4byte 0x00001ba6 -_080FDB64: .4byte 0x000074c6 -_080FDB68: .4byte 0x00001bbd -_080FDB6C: .4byte 0x000074dd -_080FDB70: .4byte 0x000077a6 -_080FDB74: .4byte 0x0000197d -_080FDB78: .4byte 0x00001bab -_080FDB7C: .4byte 0x00007566 -_080FDB80: .4byte 0x00002cdd -_080FDB84: .4byte 0x00002fa6 -_080FDB88: .4byte 0x000074cb - thumb_func_end sub_80FDAE4 - - thumb_func_start sub_80FDB8C -sub_80FDB8C: @ 80FDB8C - ldr r2, _080FDBA0 - ldr r0, [r2] - movs r1, 0 - strh r1, [r0] - ldr r2, [r2] - strh r1, [r2, 0x2] - ldr r1, _080FDBA4 - adds r0, r1, 0 - strh r0, [r2, 0x4] - bx lr - .align 2, 0 -_080FDBA0: .4byte gUnknown_03005E08 -_080FDBA4: .4byte 0x00007fff - thumb_func_end sub_80FDB8C - - thumb_func_start sub_80FDBA8 -sub_80FDBA8: @ 80FDBA8 - push {r4,r5,lr} - ldr r1, _080FDBE0 - ldr r0, [r1] - movs r2, 0 - strh r2, [r0] - ldr r0, [r1] - strh r2, [r0, 0x2] - movs r4, 0 - adds r5, r1, 0 -_080FDBBA: - ldr r0, [r5] - lsls r2, r4, 1 - adds r2, r0 - adds r0, r4, 0x2 - lsls r3, r0, 1 - lsls r1, r0, 11 - lsls r0, 6 - orrs r1, r0 - orrs r1, r3 - strh r1, [r2, 0x4] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xD - bls _080FDBBA - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FDBE0: .4byte gUnknown_03005E08 - thumb_func_end sub_80FDBA8 - - thumb_func_start sub_80FDBE4 -sub_80FDBE4: @ 80FDBE4 - push {r4,lr} - ldr r2, _080FDC14 - ldr r1, [r2] - movs r0, 0 - strh r0, [r1] - movs r3, 0 - adds r4, r2, 0 -_080FDBF2: - ldr r0, [r4] - lsls r2, r3, 1 - adds r2, r0 - lsls r0, r3, 10 - lsls r1, r3, 5 - orrs r0, r1 - orrs r0, r3 - strh r0, [r2, 0x2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1F - bls _080FDBF2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FDC14: .4byte gUnknown_03005E08 - thumb_func_end sub_80FDBE4 - - thumb_func_start sub_80FDC18 -sub_80FDC18: @ 80FDC18 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - movs r1, 0xDF - mov r9, r1 - cmp r0, 0 - bne _080FDC30 - movs r2, 0xFF - mov r9, r2 -_080FDC30: - movs r6, 0 - ldr r3, _080FDCB4 - mov r12, r3 - mov r0, r9 - lsls r4, r0, 1 - ldr r5, _080FDCB8 - cmp r6, r9 - bcs _080FDC54 - movs r2, 0 -_080FDC42: - ldr r0, [r3] - lsls r1, r6, 1 - adds r1, r0 - strh r2, [r1] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, r9 - bcc _080FDC42 -_080FDC54: - mov r1, r12 - ldr r0, [r1] - adds r0, r4, r0 - ldr r2, _080FDCBC - adds r1, r2, 0 - strh r1, [r0] - movs r3, 0 - ldrb r5, [r5] - cmp r3, r5 - bcs _080FDD58 -_080FDC68: - ldr r2, _080FDCC0 - ldr r0, _080FDCC4 - ldrb r1, [r0] - adds r1, r3 - ldr r0, _080FDCC8 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - ldr r1, [r2] - adds r1, r0 - ldr r0, _080FDCCC - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r6, 0 - ldr r0, _080FDCD0 - adds r2, r0, 0 - adds r3, 0x1 - mov r10, r3 - ldrb r3, [r2] - cmp r6, r3 - bcs _080FDD4A - ldr r0, _080FDCD4 - mov r8, r0 -_080FDC98: - ldrh r0, [r4] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080FDCD8 - mov r1, r8 - ldrh r0, [r1] - strh r0, [r4] - adds r6, 0x1 - adds r7, r4, 0x2 - b _080FDD3E - .align 2, 0 -_080FDCB4: .4byte gUnknown_03005E08 -_080FDCB8: .4byte gUnknown_03005DF0 -_080FDCBC: .4byte 0x00003def -_080FDCC0: .4byte gUnknown_03005DEC -_080FDCC4: .4byte gUnknown_03005DFC -_080FDCC8: .4byte gUnknown_03005E04 -_080FDCCC: .4byte gUnknown_03005DE8 -_080FDCD0: .4byte gUnknown_03005DF8 -_080FDCD4: .4byte gUnknown_03005E0C -_080FDCD8: - adds r0, r4, 0 - bl sub_80FE038 - lsls r0, 16 - lsrs r5, r0, 16 - movs r3, 0x1 - adds r6, 0x1 - adds r7, r4, 0x2 - cmp r3, r9 - bcs _080FDD34 - ldr r0, _080FDD04 - ldr r2, [r0] - ldrh r1, [r2, 0x2] - mov r12, r0 - cmp r1, 0 - bne _080FDD08 - strh r5, [r2, 0x2] - mov r2, r8 - ldrh r0, [r2] - adds r0, 0x1 - b _080FDD32 - .align 2, 0 -_080FDD04: .4byte gUnknown_03005E08 -_080FDD08: - mov r2, r12 - ldr r1, [r2] - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r5 - beq _080FDD2C - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r9 - bcs _080FDD34 - lsls r0, r3, 1 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, 0 - bne _080FDD08 - strh r5, [r1] -_080FDD2C: - mov r1, r8 - ldrh r0, [r1] - adds r0, r3 -_080FDD32: - strh r0, [r4] -_080FDD34: - ldr r2, _080FDD68 - cmp r3, r9 - bne _080FDD3E - mov r3, r9 - strh r3, [r4] -_080FDD3E: - lsls r0, r6, 24 - lsrs r6, r0, 24 - adds r4, r7, 0 - ldrb r0, [r2] - cmp r6, r0 - bcc _080FDC98 -_080FDD4A: - mov r1, r10 - lsls r0, r1, 24 - lsrs r3, r0, 24 - ldr r0, _080FDD6C - ldrb r0, [r0] - cmp r3, r0 - bcc _080FDC68 -_080FDD58: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FDD68: .4byte gUnknown_03005DF8 -_080FDD6C: .4byte gUnknown_03005DF0 - thumb_func_end sub_80FDC18 - - thumb_func_start sub_80FDD70 -sub_80FDD70: @ 80FDD70 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r2, 0 - ldr r0, _080FDDC4 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FDE14 - ldr r0, _080FDDC8 - mov r8, r0 -_080FDD84: - ldr r0, _080FDDCC - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FDDD0 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r3, r8 - ldr r1, [r3] - adds r1, r0 - ldr r0, _080FDDD4 - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r6, 0 - ldr r0, _080FDDD8 - adds r3, r0, 0 - adds r7, r2, 0x1 - ldrb r0, [r3] - cmp r6, r0 - bcs _080FDE08 - ldr r5, _080FDDDC -_080FDDB0: - ldrh r0, [r4] - movs r2, 0x80 - lsls r2, 8 - adds r1, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080FDDE0 - ldrh r0, [r5] - strh r0, [r4] - b _080FDDFA - .align 2, 0 -_080FDDC4: .4byte gUnknown_03005DF0 -_080FDDC8: .4byte gUnknown_03005DEC -_080FDDCC: .4byte gUnknown_03005DFC -_080FDDD0: .4byte gUnknown_03005E04 -_080FDDD4: .4byte gUnknown_03005DE8 -_080FDDD8: .4byte gUnknown_03005DF8 -_080FDDDC: .4byte gUnknown_03005E0C -_080FDDE0: - adds r0, r4, 0 - bl sub_80FD4DC - lsls r0, 16 - cmp r0, 0 - bne _080FDDF2 - ldrh r0, [r5] - adds r0, 0x1 - b _080FDDF6 -_080FDDF2: - ldrh r0, [r5] - adds r0, 0x2 -_080FDDF6: - strh r0, [r4] - ldr r3, _080FDE20 -_080FDDFA: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r4, 0x2 - ldrb r0, [r3] - cmp r6, r0 - bcc _080FDDB0 -_080FDE08: - lsls r0, r7, 24 - lsrs r2, r0, 24 - ldr r0, _080FDE24 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FDD84 -_080FDE14: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FDE20: .4byte gUnknown_03005DF8 -_080FDE24: .4byte gUnknown_03005DF0 - thumb_func_end sub_80FDD70 - - thumb_func_start sub_80FDE28 -sub_80FDE28: @ 80FDE28 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r2, 0 - ldr r0, _080FDE7C - ldrb r0, [r0] - cmp r2, r0 - bcs _080FDEC4 - ldr r0, _080FDE80 - mov r8, r0 -_080FDE3E: - ldr r0, _080FDE84 - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FDE88 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r3, r8 - ldr r1, [r3] - adds r1, r0 - ldr r0, _080FDE8C - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r5, 0 - ldr r0, _080FDE90 - adds r7, r2, 0x1 - ldrb r0, [r0] - cmp r5, r0 - bcs _080FDEB8 - ldr r6, _080FDE94 - movs r0, 0x80 - lsls r0, 8 - adds r2, r0, 0 -_080FDE6E: - ldrh r0, [r4] - ands r0, r2 - cmp r0, 0 - beq _080FDE98 - ldrh r0, [r6] - strh r0, [r4] - b _080FDEA8 - .align 2, 0 -_080FDE7C: .4byte gUnknown_03005DF0 -_080FDE80: .4byte gUnknown_03005DEC -_080FDE84: .4byte gUnknown_03005DFC -_080FDE88: .4byte gUnknown_03005E04 -_080FDE8C: .4byte gUnknown_03005DE8 -_080FDE90: .4byte gUnknown_03005DF8 -_080FDE94: .4byte gUnknown_03005E0C -_080FDE98: - adds r0, r4, 0 - str r2, [sp] - bl sub_80FE17C - ldrh r1, [r6] - adds r0, r1 - strh r0, [r4] - ldr r2, [sp] -_080FDEA8: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x2 - ldr r0, _080FDED0 - ldrb r0, [r0] - cmp r5, r0 - bcc _080FDE6E -_080FDEB8: - lsls r0, r7, 24 - lsrs r2, r0, 24 - ldr r0, _080FDED4 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FDE3E -_080FDEC4: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FDED0: .4byte gUnknown_03005DF8 -_080FDED4: .4byte gUnknown_03005DF0 - thumb_func_end sub_80FDE28 - - thumb_func_start sub_80FDED8 -sub_80FDED8: @ 80FDED8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r2, 0 - ldr r0, _080FDF2C - ldrb r0, [r0] - cmp r2, r0 - bcs _080FDF74 - ldr r0, _080FDF30 - mov r8, r0 -_080FDEEE: - ldr r0, _080FDF34 - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FDF38 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r3, r8 - ldr r1, [r3] - adds r1, r0 - ldr r0, _080FDF3C - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r5, 0 - ldr r0, _080FDF40 - adds r7, r2, 0x1 - ldrb r0, [r0] - cmp r5, r0 - bcs _080FDF68 - ldr r6, _080FDF44 - movs r0, 0x80 - lsls r0, 8 - adds r2, r0, 0 -_080FDF1E: - ldrh r0, [r4] - ands r0, r2 - cmp r0, 0 - beq _080FDF48 - ldrh r0, [r6] - strh r0, [r4] - b _080FDF58 - .align 2, 0 -_080FDF2C: .4byte gUnknown_03005DF0 -_080FDF30: .4byte gUnknown_03005DEC -_080FDF34: .4byte gUnknown_03005DFC -_080FDF38: .4byte gUnknown_03005E04 -_080FDF3C: .4byte gUnknown_03005DE8 -_080FDF40: .4byte gUnknown_03005DF8 -_080FDF44: .4byte gUnknown_03005E0C -_080FDF48: - adds r0, r4, 0 - str r2, [sp] - bl sub_80FE1B0 - ldrh r1, [r6] - adds r0, r1 - strh r0, [r4] - ldr r2, [sp] -_080FDF58: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x2 - ldr r0, _080FDF80 - ldrb r0, [r0] - cmp r5, r0 - bcc _080FDF1E -_080FDF68: - lsls r0, r7, 24 - lsrs r2, r0, 24 - ldr r0, _080FDF84 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FDEEE -_080FDF74: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FDF80: .4byte gUnknown_03005DF8 -_080FDF84: .4byte gUnknown_03005DF0 - thumb_func_end sub_80FDED8 - - thumb_func_start sub_80FDF88 -sub_80FDF88: @ 80FDF88 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r2, 0 - ldr r0, _080FDFDC - ldrb r0, [r0] - cmp r2, r0 - bcs _080FE024 - ldr r0, _080FDFE0 - mov r8, r0 -_080FDF9E: - ldr r0, _080FDFE4 - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FDFE8 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r3, r8 - ldr r1, [r3] - adds r1, r0 - ldr r0, _080FDFEC - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r5, 0 - ldr r0, _080FDFF0 - adds r7, r2, 0x1 - ldrb r0, [r0] - cmp r5, r0 - bcs _080FE018 - ldr r6, _080FDFF4 - movs r0, 0x80 - lsls r0, 8 - adds r2, r0, 0 -_080FDFCE: - ldrh r0, [r4] - ands r0, r2 - cmp r0, 0 - beq _080FDFF8 - ldrh r0, [r6] - strh r0, [r4] - b _080FE008 - .align 2, 0 -_080FDFDC: .4byte gUnknown_03005DF0 -_080FDFE0: .4byte gUnknown_03005DEC -_080FDFE4: .4byte gUnknown_03005DFC -_080FDFE8: .4byte gUnknown_03005E04 -_080FDFEC: .4byte gUnknown_03005DE8 -_080FDFF0: .4byte gUnknown_03005DF8 -_080FDFF4: .4byte gUnknown_03005E0C -_080FDFF8: - adds r0, r4, 0 - str r2, [sp] - bl sub_80FE0AC - ldrh r1, [r6] - adds r0, r1 - strh r0, [r4] - ldr r2, [sp] -_080FE008: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x2 - ldr r0, _080FE030 - ldrb r0, [r0] - cmp r5, r0 - bcc _080FDFCE -_080FE018: - lsls r0, r7, 24 - lsrs r2, r0, 24 - ldr r0, _080FE034 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FDF9E -_080FE024: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FE030: .4byte gUnknown_03005DF8 -_080FE034: .4byte gUnknown_03005DF0 - thumb_func_end sub_80FDF88 - - thumb_func_start sub_80FE038 -sub_80FE038: @ 80FE038 - push {r4,lr} - ldrh r0, [r0] - movs r1, 0x1F - movs r4, 0x1F - ands r4, r0 - lsls r0, 16 - lsrs r3, r0, 21 - ands r3, r1 - lsrs r2, r0, 26 - ands r2, r1 - movs r1, 0x3 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _080FE05C - movs r0, 0x1C - ands r0, r4 - adds r4, r0, 0x4 -_080FE05C: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080FE06A - movs r0, 0x1C - ands r0, r3 - adds r3, r0, 0x4 -_080FE06A: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080FE078 - movs r0, 0x1C - ands r0, r2 - adds r2, r0, 0x4 -_080FE078: - cmp r4, 0x5 - bhi _080FE07E - movs r4, 0x6 -_080FE07E: - cmp r4, 0x1E - bls _080FE084 - movs r4, 0x1E -_080FE084: - cmp r3, 0x5 - bhi _080FE08A - movs r3, 0x6 -_080FE08A: - cmp r3, 0x1E - bls _080FE090 - movs r3, 0x1E -_080FE090: - cmp r2, 0x5 - bhi _080FE096 - movs r2, 0x6 -_080FE096: - cmp r2, 0x1E - bls _080FE09C - movs r2, 0x1E -_080FE09C: - lsls r0, r2, 10 - lsls r1, r3, 5 - orrs r0, r1 - orrs r4, r0 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FE038 - - thumb_func_start sub_80FE0AC -sub_80FE0AC: @ 80FE0AC - push {lr} - ldrh r0, [r0] - movs r1, 0x1F - movs r3, 0x1F - ands r3, r0 - lsls r0, 16 - lsrs r2, r0, 21 - ands r2, r1 - lsrs r0, 26 - ands r0, r1 - cmp r3, 0xB - bhi _080FE0D0 - cmp r2, 0xA - bhi _080FE0D0 - cmp r0, 0xA - bhi _080FE0D0 - movs r0, 0x1 - b _080FE176 -_080FE0D0: - cmp r3, 0x13 - bls _080FE0F4 - cmp r2, 0x13 - bls _080FE0DC - cmp r0, 0x13 - bhi _080FE100 -_080FE0DC: - cmp r3, 0x13 - bls _080FE0F4 - cmp r2, 0x13 - bls _080FE0EA - cmp r0, 0xE - bhi _080FE100 - b _080FE138 -_080FE0EA: - cmp r0, 0x13 - bls _080FE0F4 - cmp r2, 0xE - bhi _080FE100 - b _080FE114 -_080FE0F4: - cmp r2, 0x13 - bls _080FE104 - cmp r0, 0x13 - bls _080FE104 - cmp r3, 0xE - bls _080FE15C -_080FE100: - movs r0, 0x2 - b _080FE176 -_080FE104: - cmp r3, 0x13 - bls _080FE128 - cmp r2, 0xB - bls _080FE11C - cmp r0, 0xB - bls _080FE118 - cmp r2, r0 - bcs _080FE138 -_080FE114: - movs r0, 0x8 - b _080FE176 -_080FE118: - movs r0, 0xA - b _080FE176 -_080FE11C: - cmp r0, 0xB - bls _080FE124 - movs r0, 0xD - b _080FE176 -_080FE124: - movs r0, 0x4 - b _080FE176 -_080FE128: - cmp r2, 0x13 - bls _080FE14C - cmp r3, 0xB - bls _080FE140 - cmp r0, 0xB - bls _080FE13C - cmp r3, r0 - bcc _080FE15C -_080FE138: - movs r0, 0x7 - b _080FE176 -_080FE13C: - movs r0, 0xB - b _080FE176 -_080FE140: - cmp r0, 0xB - bls _080FE148 - movs r0, 0xE - b _080FE176 -_080FE148: - movs r0, 0x5 - b _080FE176 -_080FE14C: - cmp r0, 0x13 - bls _080FE174 - cmp r3, 0xB - bls _080FE160 - cmp r2, 0xB - bls _080FE168 - cmp r3, r2 - bcs _080FE114 -_080FE15C: - movs r0, 0x9 - b _080FE176 -_080FE160: - cmp r2, 0xB - bls _080FE168 - movs r0, 0xC - b _080FE176 -_080FE168: - cmp r0, 0xB - bls _080FE170 - movs r0, 0xF - b _080FE176 -_080FE170: - movs r0, 0x6 - b _080FE176 -_080FE174: - movs r0, 0x3 -_080FE176: - pop {r1} - bx r1 - thumb_func_end sub_80FE0AC - - thumb_func_start sub_80FE17C -sub_80FE17C: @ 80FE17C - push {lr} - ldrh r1, [r0] - movs r3, 0x1F - movs r0, 0x1F - ands r0, r1 - lsls r1, 16 - lsrs r2, r1, 21 - ands r2, r3 - lsrs r1, 26 - ands r1, r3 - adds r0, r2 - adds r0, r1 - movs r1, 0x3 - bl __divsi3 - movs r1, 0x1E - ands r0, r1 - lsls r0, 16 - cmp r0, 0 - beq _080FE1A8 - lsrs r0, 17 - b _080FE1AA -_080FE1A8: - movs r0, 0x1 -_080FE1AA: - pop {r1} - bx r1 - thumb_func_end sub_80FE17C - - thumb_func_start sub_80FE1B0 -sub_80FE1B0: @ 80FE1B0 - push {lr} - ldrh r1, [r0] - movs r3, 0x1F - movs r0, 0x1F - ands r0, r1 - lsls r1, 16 - lsrs r2, r1, 21 - ands r2, r3 - lsrs r1, 26 - ands r1, r3 - adds r0, r2 - adds r0, r1 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80FE1B0 - - thumb_func_start sub_80FE1DC -sub_80FE1DC: @ 80FE1DC - push {lr} - sub sp, 0x8 - bl sub_80FE2B4 - movs r0, 0 - movs r1, 0 - movs r2, 0xA - movs r3, 0x9 - bl MenuDrawTextWindow - ldr r3, _080FE218 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x4 - bl PrintMenuItems - ldr r0, _080FE21C - ldrb r0, [r0] - str r0, [sp] - movs r0, 0x9 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x4 - bl InitMenu - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080FE218: .4byte gUnknown_083EC604 -_080FE21C: .4byte gUnknown_020388D4 - thumb_func_end sub_80FE1DC - - thumb_func_start sub_80FE220 -sub_80FE220: @ 80FE220 - push {lr} - ldr r1, _080FE238 - movs r0, 0 - strb r0, [r1] - bl ScriptContext2_Enable - bl sub_80FE1DC - bl sub_80FE394 - pop {r0} - bx r0 - .align 2, 0 -_080FE238: .4byte gUnknown_020388D4 - thumb_func_end sub_80FE220 - - thumb_func_start sub_80FE23C -sub_80FE23C: @ 80FE23C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80FE220 - ldr r1, _080FE25C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FE260 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE25C: .4byte gTasks -_080FE260: .4byte sub_80FE2EC - thumb_func_end sub_80FE23C - - thumb_func_start sub_80FE264 -sub_80FE264: @ 80FE264 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80FE23C - ldr r1, _080FE284 - ldr r0, _080FE288 - str r0, [r1] - adds r0, 0x10 - str r0, [r1, 0x4] - movs r2, 0 - movs r0, 0x10 - strb r0, [r1, 0x8] - strb r2, [r1, 0x9] - pop {r0} - bx r0 - .align 2, 0 -_080FE284: .4byte 0x0201f000 -_080FE288: .4byte gSaveBlock1 + 0x1A1A - thumb_func_end sub_80FE264 - - thumb_func_start sub_80FE28C -sub_80FE28C: @ 80FE28C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80FE23C - ldr r1, _080FE2AC - ldr r0, _080FE2B0 - str r0, [r1] - adds r0, 0xC - str r0, [r1, 0x4] - movs r0, 0xC - strb r0, [r1, 0x8] - movs r0, 0x1 - strb r0, [r1, 0x9] - pop {r0} - bx r0 - .align 2, 0 -_080FE2AC: .4byte 0x0201f000 -_080FE2B0: .4byte gSaveBlock1 + 0x2688 - thumb_func_end sub_80FE28C - - thumb_func_start sub_80FE2B4 -sub_80FE2B4: @ 80FE2B4 - push {lr} - sub sp, 0x8 - ldr r1, _080FE2E8 - mov r0, sp - movs r2, 0x6 - bl memcpy - add r0, sp, 0x4 - movs r1, 0xDF - movs r2, 0x2 - bl LoadPalette - mov r0, sp - adds r0, 0x2 - movs r1, 0xD1 - movs r2, 0x2 - bl LoadPalette - mov r0, sp - movs r1, 0xD8 - movs r2, 0x2 - bl LoadPalette - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080FE2E8: .4byte gUnknown_083EC654 - thumb_func_end sub_80FE2B4 - - thumb_func_start sub_80FE2EC -sub_80FE2EC: @ 80FE2EC - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - adds r7, r6, 0 - ldr r0, _080FE368 - ldrb r1, [r0, 0x7] - movs r5, 0x80 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _080FE38C - ldr r4, _080FE36C - ldrh r1, [r4, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080FE324 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - ldr r1, _080FE370 - strb r0, [r1] - bl sub_80FE394 -_080FE324: - ldrh r1, [r4, 0x2E] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080FE342 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - ldr r1, _080FE370 - strb r0, [r1] - bl sub_80FE394 -_080FE342: - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080FE378 - movs r0, 0x5 - bl PlaySE - ldr r1, _080FE374 - ldr r0, _080FE370 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r6, 0 - bl _call_via_r1 - b _080FE38C - .align 2, 0 -_080FE368: .4byte gPaletteFade -_080FE36C: .4byte gMain -_080FE370: .4byte gUnknown_020388D4 -_080FE374: .4byte gUnknown_083EC604 -_080FE378: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080FE38C - movs r0, 0x5 - bl PlaySE - adds r0, r7, 0 - bl gpu_pal_decompress_alloc_tag_and_upload -_080FE38C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FE2EC - - thumb_func_start sub_80FE394 -sub_80FE394: @ 80FE394 - push {lr} - movs r0, 0x2 - movs r1, 0xF - movs r2, 0x1B - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile - ldr r1, _080FE3BC - ldr r0, _080FE3C0 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - pop {r0} - bx r0 - .align 2, 0 -_080FE3BC: .4byte gUnknown_083EC624 -_080FE3C0: .4byte gUnknown_020388D4 - thumb_func_end sub_80FE394 - - thumb_func_start gpu_pal_decompress_alloc_tag_and_upload -gpu_pal_decompress_alloc_tag_and_upload: @ 80FE3C4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xA - movs r3, 0x9 - bl MenuZeroFillWindowRect - movs r0, 0x2 - movs r1, 0xF - movs r2, 0x1B - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile - movs r0, 0x6 - bl FreeSpritePaletteByTag - ldr r0, _080FE404 - ldrb r0, [r0, 0x9] - cmp r0, 0 - bne _080FE40C - ldr r0, _080FE408 - bl ScriptContext1_SetupScript - adds r0, r4, 0 - bl DestroyTask - b _080FE412 - .align 2, 0 -_080FE404: .4byte 0x0201f000 -_080FE408: .4byte gUnknown_0815F399 -_080FE40C: - adds r0, r4, 0 - bl sub_8139E24 -_080FE412: - pop {r4} - pop {r0} - bx r0 - thumb_func_end gpu_pal_decompress_alloc_tag_and_upload - - thumb_func_start sub_80FE418 -sub_80FE418: @ 80FE418 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80FE5AC - pop {r0} - bx r0 - thumb_func_end sub_80FE418 - - thumb_func_start sub_80FE428 -sub_80FE428: @ 80FE428 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080FE464 - ldrb r0, [r0] - str r0, [sp] - movs r0, 0x9 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x4 - bl InitMenu - bl sub_80FE394 - ldr r1, _080FE468 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FE46C - str r1, [r0] - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE464: .4byte gUnknown_020388D4 -_080FE468: .4byte gTasks -_080FE46C: .4byte sub_80FE2EC - thumb_func_end sub_80FE428 - - thumb_func_start sub_80FE470 -sub_80FE470: @ 80FE470 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r4, r0, 0 - mov r8, r1 - mov r9, r2 - adds r5, r3, 0 - lsls r4, 24 - lsrs r4, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r5, 24 - lsrs r5, 24 - bl sub_8072CBC - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r7, _080FE51C - movs r0, 0xFC - strb r0, [r7] - movs r0, 0x5 - mov r10, r0 - strb r0, [r7, 0x1] - strb r5, [r7, 0x2] - adds r7, 0x3 - ldr r1, _080FE520 - lsls r0, r4, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r7, 0 - bl StringCopy - adds r7, r0, 0 - adds r0, r4, 0 - bl sub_8134194 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r7, 0 - movs r2, 0x56 - movs r3, 0x1 - bl sub_8072C14 - adds r7, r0, 0 - movs r0, 0xBA - strb r0, [r7] - adds r7, 0x1 - ldr r0, _080FE524 - lsls r4, 3 - adds r4, r0 - ldrb r1, [r4, 0x4] - adds r0, r7, 0 - movs r2, 0x68 - movs r3, 0x1 - bl sub_8072C14 - adds r7, r0, 0 - movs r0, 0xFC - strb r0, [r7] - mov r0, r10 - strb r0, [r7, 0x1] - strb r6, [r7, 0x2] - movs r0, 0xFF - strb r0, [r7, 0x3] - ldr r0, _080FE51C - mov r1, r8 - mov r2, r9 - bl MenuPrint - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FE51C: .4byte gStringVar4 -_080FE520: .4byte gUnknown_083EC5E4 -_080FE524: .4byte gUnknown_08402E40 - thumb_func_end sub_80FE470 - - thumb_func_start sub_80FE528 -sub_80FE528: @ 80FE528 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuDrawTextWindow - movs r5, 0 - ldr r1, _080FE574 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r1 -_080FE548: - ldr r0, _080FE578 - ldrb r0, [r0, 0x9] - cmp r0, 0x1 - bne _080FE57C - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080FE57C - cmp r5, 0x6 - beq _080FE57C - cmp r5, 0x7 - beq _080FE57C - lsls r2, r5, 1 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - movs r1, 0x1 - movs r3, 0xD - bl sub_80FE470 - b _080FE58E - .align 2, 0 -_080FE574: .4byte gTasks -_080FE578: .4byte 0x0201f000 -_080FE57C: - lsls r2, r5, 1 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - movs r1, 0x1 - movs r3, 0xFF - bl sub_80FE470 -_080FE58E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _080FE548 - ldr r0, _080FE5A8 - movs r1, 0x1 - movs r2, 0x11 - bl MenuPrint - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FE5A8: .4byte gUnknownText_Exit - thumb_func_end sub_80FE528 - - thumb_func_start sub_80FE5AC -sub_80FE5AC: @ 80FE5AC - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_80FE528 - ldr r0, _080FE5F8 - ldrb r0, [r0] - str r0, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x9 - bl InitMenu - ldr r1, _080FE5FC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FE600 - str r1, [r0] - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE5F8: .4byte gUnknown_020388F6 -_080FE5FC: .4byte gTasks -_080FE600: .4byte sub_80FE604 - thumb_func_end sub_80FE5AC - - thumb_func_start sub_80FE604 -sub_80FE604: @ 80FE604 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - ldr r0, _080FE638 - ldrb r1, [r0, 0x7] - movs r3, 0x80 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080FE61C - b _080FE720 -_080FE61C: - ldr r2, _080FE63C - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080FE640 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _080FE720 - .align 2, 0 -_080FE638: .4byte gPaletteFade -_080FE63C: .4byte gMain -_080FE640: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080FE656 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _080FE720 -_080FE656: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080FE70C - movs r0, 0x5 - bl PlaySE - bl GetMenuCursorPos - ldr r4, _080FE6C0 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8 - beq _080FE704 - ldrb r0, [r4] - bl sub_8134194 - ldr r1, _080FE6C4 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - beq _080FE6DC - ldrb r0, [r4] - bl sub_8134104 - ldr r2, _080FE6C8 - ldr r1, _080FE6CC - ldrb r0, [r4] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - adds r0, r5, 0 - bl sub_80FEF50 - bl sub_80F944C - ldr r0, _080FE6D0 - movs r1, 0x8 - bl sub_80F9480 - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - ldr r1, _080FE6D4 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FE6D8 - str r1, [r0] - b _080FE720 - .align 2, 0 -_080FE6C0: .4byte gUnknown_020388F6 -_080FE6C4: .4byte gUnknown_020388D5 -_080FE6C8: .4byte gUnknown_020388D0 -_080FE6CC: .4byte gUnknown_08402E40 -_080FE6D0: .4byte gUnknown_020388F7 -_080FE6D4: .4byte gTasks -_080FE6D8: .4byte sub_80FE868 -_080FE6DC: - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080FE6FC - ldr r2, _080FE700 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _080FE720 - .align 2, 0 -_080FE6FC: .4byte gSecretBaseText_NoDecors -_080FE700: .4byte sub_80FE418 -_080FE704: - adds r0, r5, 0 - bl sub_80FE728 - b _080FE720 -_080FE70C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080FE720 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80FE728 -_080FE720: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80FE604 - - thumb_func_start sub_80FE728 -sub_80FE728: @ 80FE728 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080FE748 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1E - ldrsh r0, [r0, r1] - cmp r0, 0x3 - beq _080FE74C - adds r0, r2, 0 - bl sub_80FE758 - b _080FE752 - .align 2, 0 -_080FE748: .4byte gTasks -_080FE74C: - adds r0, r2, 0 - bl sub_8109DAC -_080FE752: - pop {r0} - bx r0 - thumb_func_end sub_80FE728 - - thumb_func_start sub_80FE758 -sub_80FE758: @ 80FE758 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080FE794 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x1E - ldrsh r0, [r5, r1] - cmp r0, 0x2 - beq _080FE79C - bl sub_80FE1DC - bl MenuDisplayMessageBox - bl sub_80FE394 - ldr r0, _080FE798 - str r0, [r5] - b _080FE7A2 - .align 2, 0 -_080FE794: .4byte gTasks -_080FE798: .4byte sub_80FE2EC -_080FE79C: - adds r0, r4, 0 - bl sub_80B3068 -_080FE7A2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80FE758 - - thumb_func_start sub_80FE7A8 -sub_80FE7A8: @ 80FE7A8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080FE7CC - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r3, 0 - movs r2, 0x3 - strh r2, [r1, 0x1E] - ldr r1, _080FE7D0 - strb r3, [r1] - bl sub_80FE5AC - pop {r0} - bx r0 - .align 2, 0 -_080FE7CC: .4byte gTasks -_080FE7D0: .4byte gUnknown_020388F6 - thumb_func_end sub_80FE7A8 - - thumb_func_start sub_80FE7D4 -sub_80FE7D4: @ 80FE7D4 - push {lr} - lsls r1, 24 - ldr r2, _080FE7E8 - lsrs r1, 22 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_080FE7E8: .4byte gUnknown_083EC5E4 - thumb_func_end sub_80FE7D4 - - thumb_func_start sub_80FE7EC -sub_80FE7EC: @ 80FE7EC - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_80FEC94 - ldr r0, _080FE858 - ldrb r0, [r0] - bl sub_80FECB8 - movs r0, 0xF - movs r1, 0xC - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r4, _080FE85C - ldr r0, _080FE860 - ldrb r0, [r0] - ldrb r1, [r4] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl sub_80FECE0 - ldr r0, _080FE864 - ldrb r3, [r0] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r4] - str r0, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x2 - bl InitMenu - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE858: .4byte gUnknown_020388F6 -_080FE85C: .4byte gUnknown_020388F2 -_080FE860: .4byte gUnknown_020388F4 -_080FE864: .4byte gUnknown_020388F3 - thumb_func_end sub_80FE7EC - - thumb_func_start sub_80FE868 -sub_80FE868: @ 80FE868 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80FE7EC - ldr r1, _080FE88C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FE890 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE88C: .4byte gTasks -_080FE890: .4byte sub_80FE948 - thumb_func_end sub_80FE868 - - thumb_func_start sub_80FE894 -sub_80FE894: @ 80FE894 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - movs r0, 0 - mov r10, r0 - ldr r6, _080FE920 - ldrb r1, [r6] - ldr r4, _080FE924 - ldrb r0, [r4] - adds r1, r0 - ldr r2, _080FE928 - mov r9, r2 - ldrb r0, [r2] - cmp r1, r0 - bne _080FE8C8 - movs r1, 0x1 - mov r10, r1 -_080FE8C8: - movs r0, 0x5 - bl PlaySE - lsls r0, r5, 24 - asrs r0, 24 - cmp r0, 0 - beq _080FE8DC - bl MoveMenuCursor - strb r0, [r6] -_080FE8DC: - cmp r7, 0 - beq _080FE8EE - ldrb r0, [r4] - adds r0, r7 - strb r0, [r4] - mov r0, r8 - movs r1, 0x1 - bl sub_80FEABC -_080FE8EE: - ldrb r0, [r6] - ldrb r1, [r4] - adds r0, r1 - mov r2, r9 - ldrb r2, [r2] - cmp r0, r2 - beq _080FE92C - mov r0, r10 - cmp r0, 0 - beq _080FE90E - movs r0, 0xF - movs r1, 0xC - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow -_080FE90E: - ldrb r0, [r4] - ldrb r6, [r6] - adds r0, r6 - lsls r0, 24 - lsrs r0, 24 - bl sub_80FECE0 - b _080FE938 - .align 2, 0 -_080FE920: .4byte gUnknown_020388F2 -_080FE924: .4byte gUnknown_020388F4 -_080FE928: .4byte gUnknown_020388D5 -_080FE92C: - movs r0, 0xF - movs r1, 0xC - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect -_080FE938: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FE894 - - thumb_func_start sub_80FE948 -sub_80FE948: @ 80FE948 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080FE980 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080FE95C - b _080FEAAC -_080FE95C: - ldr r0, _080FE984 - ldrh r1, [r0, 0x30] - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0x40 - bne _080FE9A0 - ldr r0, _080FE988 - ldrb r0, [r0] - cmp r0, 0 - beq _080FE98C - movs r1, 0x1 - negs r1, r1 - adds r0, r4, 0 - movs r2, 0 - bl sub_80FE894 - b _080FE9A0 - .align 2, 0 -_080FE980: .4byte gPaletteFade -_080FE984: .4byte gMain -_080FE988: .4byte gUnknown_020388F2 -_080FE98C: - ldr r0, _080FE9C4 - ldrb r0, [r0] - cmp r0, 0 - beq _080FE9A0 - movs r2, 0x1 - negs r2, r2 - adds r0, r4, 0 - movs r1, 0 - bl sub_80FE894 -_080FE9A0: - ldr r0, _080FE9C8 - ldrh r1, [r0, 0x30] - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0x80 - bne _080FE9EE - ldr r2, _080FE9CC - ldr r1, _080FE9D0 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - beq _080FE9D4 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_80FE894 - b _080FE9EE - .align 2, 0 -_080FE9C4: .4byte gUnknown_020388F4 -_080FE9C8: .4byte gMain -_080FE9CC: .4byte gUnknown_020388F2 -_080FE9D0: .4byte gUnknown_020388F3 -_080FE9D4: - ldr r0, _080FEA38 - ldrb r0, [r0] - ldrb r1, [r2] - adds r0, r1 - ldr r1, _080FEA3C - ldrb r1, [r1] - cmp r0, r1 - beq _080FE9EE - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x1 - bl sub_80FE894 -_080FE9EE: - ldr r0, _080FEA40 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080FEA7C - bl sub_8072DEC - movs r0, 0x5 - bl PlaySE - ldr r2, _080FEA44 - ldr r1, _080FEA48 - ldr r0, _080FEA38 - ldrb r0, [r0] - ldrb r1, [r1] - adds r0, r1 - strb r0, [r2] - ldr r1, _080FEA3C - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _080FEA54 - ldr r1, _080FEA4C - ldr r2, _080FEA50 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - movs r2, 0x1E - ldrsh r0, [r0, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - b _080FEA68 - .align 2, 0 -_080FEA38: .4byte gUnknown_020388F4 -_080FEA3C: .4byte gUnknown_020388D5 -_080FEA40: .4byte gMain -_080FEA44: .4byte gUnknown_020388F5 -_080FEA48: .4byte gUnknown_020388F2 -_080FEA4C: .4byte gUnknown_083EC634 -_080FEA50: .4byte gTasks -_080FEA54: - ldr r2, _080FEA74 - ldr r1, _080FEA78 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1E - ldrsh r0, [r0, r1] - lsls r0, 3 - adds r0, r2 -_080FEA68: - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _080FEAAC - .align 2, 0 -_080FEA74: .4byte gUnknown_083EC634 -_080FEA78: .4byte gTasks -_080FEA7C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080FEAAC - bl sub_8072DEC - movs r0, 0x5 - bl PlaySE - ldr r1, _080FEAB4 - ldr r2, _080FEAB8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - movs r2, 0x1E - ldrsh r0, [r0, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 -_080FEAAC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FEAB4: .4byte gUnknown_083EC634 -_080FEAB8: .4byte gTasks - thumb_func_end sub_80FE948 - - thumb_func_start sub_80FEABC -sub_80FEABC: @ 80FEABC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r4, _080FEB58 - ldrb r0, [r4] - cmp r0, 0 - bne _080FEADE - movs r0, 0 - bl SetBgTilemapBuffer - ldrb r0, [r4] - cmp r0, 0 - beq _080FEAE8 -_080FEADE: - movs r0, 0 - movs r1, 0x3C - movs r2, 0x8 - bl sub_80F953C -_080FEAE8: - ldr r5, _080FEB58 - ldrb r0, [r5] - adds r0, 0x7 - ldr r4, _080FEB5C - ldrb r1, [r4] - cmp r0, r1 - bne _080FEAFC - movs r0, 0x1 - bl SetBgTilemapBuffer -_080FEAFC: - ldrb r0, [r5] - adds r0, 0x7 - ldrb r4, [r4] - cmp r0, r4 - bge _080FEB10 - movs r0, 0x1 - movs r1, 0x3C - movs r2, 0x98 - bl sub_80F953C -_080FEB10: - ldrb r4, [r5] - adds r0, r4, 0 - adds r0, 0x8 - cmp r4, r0 - blt _080FEB1C - b _080FEC7E -_080FEB1C: - adds r7, r5, 0 -_080FEB1E: - ldrb r1, [r7] - subs r1, r4, r1 - lsls r0, r1, 25 - movs r2, 0x80 - lsls r2, 18 - adds r0, r2 - lsrs r6, r0, 24 - ldr r0, _080FEB60 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080FEB3C - adds r0, r1, 0 - bl sub_80F94F8 -_080FEB3C: - ldr r0, _080FEB5C - ldrb r0, [r0] - cmp r4, r0 - bne _080FEB68 - lsls r2, r6, 3 - movs r0, 0x1 - str r0, [sp] - ldr r0, _080FEB64 - movs r1, 0x8 - movs r3, 0x68 - bl sub_8072A18 - b _080FEC7E - .align 2, 0 -_080FEB58: .4byte gUnknown_020388F4 -_080FEB5C: .4byte gUnknown_020388D5 -_080FEB60: .4byte gUnknown_020388F7 -_080FEB64: .4byte gUnknownText_Exit -_080FEB68: - ldr r0, _080FEBC0 - ldr r1, [r0] - adds r2, r1, r4 - ldrb r1, [r2] - mov r12, r0 - adds r5, r4, 0x1 - cmp r1, 0 - bne _080FEB7A - b _080FEC70 -_080FEB7A: - ldr r0, _080FEBC4 - ldrb r5, [r0, 0x9] - cmp r5, 0x1 - bne _080FEBDC - ldr r0, _080FEBC8 - ldrb r0, [r0] - cmp r0, 0x6 - beq _080FEBDC - cmp r0, 0x7 - beq _080FEBDC - ldr r0, _080FEBCC - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r3, 0x1E - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080FEBDC - ldrb r1, [r2] - lsls r1, 5 - ldr r0, _080FEBD0 - adds r1, r0 - ldr r0, _080FEBD4 - bl StringCopy - lsls r2, r6, 3 - str r5, [sp] - ldr r0, _080FEBD8 - movs r1, 0x8 - movs r3, 0x68 - bl sub_8072A18 - b _080FEBF8 - .align 2, 0 -_080FEBC0: .4byte gUnknown_020388D0 -_080FEBC4: .4byte 0x0201f000 -_080FEBC8: .4byte gUnknown_020388F6 -_080FEBCC: .4byte gTasks -_080FEBD0: .4byte gDecorations + 0x1 -_080FEBD4: .4byte gStringVar1 -_080FEBD8: .4byte gUnknown_083EC65A -_080FEBDC: - mov r1, r12 - ldr r0, [r1] - adds r0, r4 - ldrb r0, [r0] - lsls r0, 5 - ldr r1, _080FEC00 - adds r0, r1 - lsls r2, r6, 3 - movs r1, 0x1 - str r1, [sp] - movs r1, 0x8 - movs r3, 0x68 - bl sub_8072A18 -_080FEBF8: - movs r1, 0 - adds r5, r4, 0x1 - b _080FEC0A - .align 2, 0 -_080FEC00: .4byte gDecorations + 0x1 -_080FEC04: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 -_080FEC0A: - cmp r1, 0xF - bhi _080FEC34 - ldr r0, _080FEC38 - adds r0, r1, r0 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, r4 - bne _080FEC04 - ldrb r3, [r7] - subs r3, r4, r3 - ldr r1, _080FEC3C - adds r1, r3, r1 - lsls r3, 20 - movs r2, 0xC0 - lsls r2, 13 - adds r3, r2 - asrs r3, 16 - movs r0, 0x4 - movs r2, 0x6C - bl sub_80F94A4 -_080FEC34: - movs r1, 0 - b _080FEC46 - .align 2, 0 -_080FEC38: .4byte gUnknown_020388D6 -_080FEC3C: .4byte gUnknown_020388F7 -_080FEC40: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 -_080FEC46: - cmp r1, 0xB - bhi _080FEC70 - ldr r0, _080FEC8C - adds r0, r1, r0 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, r4 - bne _080FEC40 - ldrb r3, [r7] - subs r3, r4, r3 - ldr r1, _080FEC90 - adds r1, r3, r1 - lsls r3, 20 - movs r0, 0xC0 - lsls r0, 13 - adds r3, r0 - asrs r3, 16 - movs r0, 0x5 - movs r2, 0x6C - bl sub_80F94A4 -_080FEC70: - lsls r0, r5, 16 - lsrs r4, r0, 16 - ldrb r0, [r7] - adds r0, 0x8 - cmp r4, r0 - bge _080FEC7E - b _080FEB1E -_080FEC7E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FEC8C: .4byte gUnknown_020388E6 -_080FEC90: .4byte gUnknown_020388F7 - thumb_func_end sub_80FEABC - - thumb_func_start sub_80FEC94 -sub_80FEC94: @ 80FEC94 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuDrawTextWindow - adds r0, r4, 0 - movs r1, 0 - bl sub_80FEABC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FEC94 - - thumb_func_start sub_80FECB8 -sub_80FECB8: @ 80FECB8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xF - movs r1, 0 - movs r2, 0x1D - movs r3, 0x3 - bl MenuDrawTextWindow - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x1 - movs r3, 0xFF - bl sub_80FE470 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FECB8 - - thumb_func_start sub_80FECE0 -sub_80FECE0: @ 80FECE0 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080FED14 - ldr r1, _080FED18 - ldr r1, [r1] - adds r1, r0 - ldrb r0, [r1] - lsls r0, 5 - adds r2, 0x18 - adds r0, r2 - ldr r0, [r0] - movs r1, 0x30 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - movs r1, 0x80 - movs r2, 0x68 - movs r3, 0x68 - bl sub_8072AB0 - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080FED14: .4byte gDecorations -_080FED18: .4byte gUnknown_020388D0 - thumb_func_end sub_80FECE0 - - thumb_func_start sub_80FED1C -sub_80FED1C: @ 80FED1C - push {lr} - movs r0, 0xF - movs r1, 0 - movs r2, 0x1D - movs r3, 0x3 - bl MenuZeroFillWindowRect - movs r0, 0xF - movs r1, 0xC - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_80FED1C - - thumb_func_start sub_80FED3C -sub_80FED3C: @ 80FED3C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - ldr r1, _080FED5C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FED60 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FED5C: .4byte gTasks -_080FED60: .4byte sub_80FE868 - thumb_func_end sub_80FED3C - - thumb_func_start sub_80FED64 -sub_80FED64: @ 80FED64 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, _080FED7C -_080FED6E: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _080FED80 - movs r0, 0x1 - b _080FED8C - .align 2, 0 -_080FED7C: .4byte gUnknown_020388D6 -_080FED80: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080FED6E - movs r0, 0 -_080FED8C: - pop {r1} - bx r1 - thumb_func_end sub_80FED64 - - thumb_func_start sub_80FED90 -sub_80FED90: @ 80FED90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r6, 0 - movs r3, 0 - ldr r4, _080FEE30 - movs r1, 0 - ldr r2, _080FEE34 -_080FEDA4: - adds r0, r3, r4 - strb r1, [r0] - cmp r3, 0xB - bhi _080FEDB0 - adds r0, r3, r2 - strb r1, [r0] -_080FEDB0: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bls _080FEDA4 - movs r3, 0 - ldr r0, _080FEE38 - mov r10, r0 - ldr r1, _080FEE3C - mov r9, r1 - ldr r2, _080FEE40 - mov r8, r2 -_080FEDC8: - mov r1, r10 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080FEE5A - movs r1, 0 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 3 - add r0, r9 - ldrb r0, [r0, 0x4] - cmp r1, r0 - bcs _080FEE5A - ldr r0, _080FEE38 - adds r0, r3 - mov r12, r0 - ldr r7, _080FEE30 -_080FEDEA: - ldr r0, _080FEE44 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - adds r4, r1, 0x1 - mov r1, r12 - ldrb r1, [r1] - cmp r0, r1 - bne _080FEE48 - movs r1, 0 - cmp r1, r6 - bcs _080FEE1E - ldrb r0, [r7] - cmp r0, r4 - beq _080FEE1E - ldr r5, _080FEE30 - adds r2, r4, 0 -_080FEE0C: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r6 - bcs _080FEE1E - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, r2 - bne _080FEE0C -_080FEE1E: - cmp r1, r6 - bne _080FEE48 - adds r0, r6, r7 - strb r4, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - b _080FEE5A - .align 2, 0 -_080FEE30: .4byte gUnknown_020388D6 -_080FEE34: .4byte gUnknown_020388E6 -_080FEE38: .4byte gSaveBlock1 + 0x1A1A -_080FEE3C: .4byte gUnknown_08402E40 -_080FEE40: .4byte gUnknown_020388F6 -_080FEE44: .4byte gUnknown_020388D0 -_080FEE48: - lsls r0, r4, 16 - lsrs r1, r0, 16 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 3 - add r0, r9 - ldrb r0, [r0, 0x4] - cmp r1, r0 - bcc _080FEDEA -_080FEE5A: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bls _080FEDC8 - movs r6, 0 - movs r3, 0 - ldr r0, _080FEEE4 - mov r8, r0 -_080FEE6C: - ldr r0, _080FEEE8 - ldr r1, _080FEEEC - adds r0, r1 - adds r2, r3, r0 - ldrb r0, [r2] - adds r7, r3, 0x1 - cmp r0, 0 - beq _080FEF0E - movs r1, 0 - ldr r0, _080FEEF0 - ldrb r0, [r0] - lsls r0, 3 - add r0, r8 - ldrb r0, [r0, 0x4] - cmp r1, r0 - bcs _080FEF0E - adds r5, r2, 0 -_080FEE8E: - ldr r0, _080FEEF4 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - adds r4, r1, 0x1 - ldrb r2, [r5] - cmp r0, r2 - bne _080FEEFC - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80FED64 - lsls r0, 24 - cmp r0, 0 - bne _080FEEFC - movs r1, 0 - cmp r1, r6 - bcs _080FEED0 - ldr r2, _080FEEF8 - ldrb r0, [r2] - cmp r0, r4 - beq _080FEED0 - adds r3, r2, 0 - adds r2, r4, 0 -_080FEEBE: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r6 - bcs _080FEED0 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _080FEEBE -_080FEED0: - cmp r1, r6 - bne _080FEEFC - ldr r0, _080FEEF8 - adds r0, r6, r0 - strb r4, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - b _080FEF0E - .align 2, 0 -_080FEEE4: .4byte gUnknown_08402E40 -_080FEEE8: .4byte gSaveBlock1 -_080FEEEC: .4byte 0x00002688 -_080FEEF0: .4byte gUnknown_020388F6 -_080FEEF4: .4byte gUnknown_020388D0 -_080FEEF8: .4byte gUnknown_020388E6 -_080FEEFC: - lsls r0, r4, 16 - lsrs r1, r0, 16 - ldr r0, _080FEF24 - ldrb r0, [r0] - lsls r0, 3 - add r0, r8 - ldrb r0, [r0, 0x4] - cmp r1, r0 - bcc _080FEE8E -_080FEF0E: - lsls r0, r7, 16 - lsrs r3, r0, 16 - cmp r3, 0xB - bls _080FEE6C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FEF24: .4byte gUnknown_020388F6 - thumb_func_end sub_80FED90 - - thumb_func_start sub_80FEF28 -sub_80FEF28: @ 80FEF28 - push {lr} - ldr r0, _080FEF38 - ldrb r1, [r0] - cmp r1, 0x7 - bhi _080FEF40 - ldr r0, _080FEF3C - strb r1, [r0] - b _080FEF46 - .align 2, 0 -_080FEF38: .4byte gUnknown_020388D5 -_080FEF3C: .4byte gUnknown_020388F3 -_080FEF40: - ldr r1, _080FEF4C - movs r0, 0x7 - strb r0, [r1] -_080FEF46: - pop {r0} - bx r0 - .align 2, 0 -_080FEF4C: .4byte gUnknown_020388F3 - thumb_func_end sub_80FEF28 - - thumb_func_start sub_80FEF50 -sub_80FEF50: @ 80FEF50 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80FED90 - bl sub_80FEF28 - ldr r0, _080FEF6C - movs r1, 0 - strb r1, [r0] - ldr r0, _080FEF70 - strb r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080FEF6C: .4byte gUnknown_020388F2 -_080FEF70: .4byte gUnknown_020388F4 - thumb_func_end sub_80FEF50 - - thumb_func_start sub_80FEF74 -sub_80FEF74: @ 80FEF74 - push {lr} - ldr r0, _080FEFA0 - movs r1, 0x8 - bl sub_80F9520 - movs r0, 0 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl SetBgTilemapBuffer - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - .align 2, 0 -_080FEFA0: .4byte gUnknown_020388F7 - thumb_func_end sub_80FEF74 - - thumb_func_start sub_80FEFA4 -sub_80FEFA4: @ 80FEFA4 - push {r4,lr} - movs r2, 0 - ldr r0, _080FEFD0 - ldrb r0, [r0] - ldr r1, _080FEFD4 - ldrb r1, [r1] - adds r0, r1 - adds r1, r0, 0x1 - ldr r4, _080FEFD8 - ldr r3, _080FEFDC -_080FEFB8: - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, r1 - beq _080FEFCC - cmp r2, 0xB - bhi _080FEFE0 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, r1 - bne _080FEFE0 -_080FEFCC: - movs r0, 0 - b _080FEFEC - .align 2, 0 -_080FEFD0: .4byte gUnknown_020388F4 -_080FEFD4: .4byte gUnknown_020388F2 -_080FEFD8: .4byte gUnknown_020388D6 -_080FEFDC: .4byte gUnknown_020388E6 -_080FEFE0: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xF - bls _080FEFB8 - movs r0, 0x1 -_080FEFEC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FEFA4 - - thumb_func_start sub_80FEFF4 -sub_80FEFF4: @ 80FEFF4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080FF028 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080FF00E - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080FF020 -_080FF00E: - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - ldr r0, _080FF02C - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080FF030 - str r0, [r1] -_080FF020: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF028: .4byte gMain -_080FF02C: .4byte gTasks -_080FF030: .4byte sub_80FE868 - thumb_func_end sub_80FEFF4 - - thumb_func_start sub_80FF034 -sub_80FF034: @ 80FF034 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_80FE5AC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FF034 - - thumb_func_start sub_80FF058 -sub_80FF058: @ 80FF058 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080FF08C - movs r1, 0x8 - bl sub_80F9520 - movs r0, 0 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl SetBgTilemapBuffer - bl BuyMenuFreeMemory - ldr r1, _080FF090 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FF094 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF08C: .4byte gUnknown_020388F7 -_080FF090: .4byte gTasks -_080FF094: .4byte sub_80FF034 - thumb_func_end sub_80FF058 - - thumb_func_start sub_80FF098 -sub_80FF098: @ 80FF098 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080FF0D4 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - ldr r3, _080FF0D8 - ldrb r2, [r3] - adds r0, r2, 0x7 - ldrb r1, [r1] - cmp r0, r1 - ble _080FF0BA - cmp r2, 0 - beq _080FF0BA - subs r0, r2, 0x1 - strb r0, [r3] -_080FF0BA: - ldr r0, _080FF0DC - ldrb r0, [r0] - bl sub_8134104 - adds r0, r4, 0 - bl sub_80FED90 - bl sub_80FEF28 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF0D4: .4byte gUnknown_020388D5 -_080FF0D8: .4byte gUnknown_020388F4 -_080FF0DC: .4byte gUnknown_020388F6 - thumb_func_end sub_80FF098 - - thumb_func_start sub_80FF0E0 -sub_80FF0E0: @ 80FF0E0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080FF10C - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r4, r2, r3 - ldr r1, _080FF110 - ldrh r0, [r1] - strh r0, [r4, 0xE] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x10] - adds r3, 0x8 - adds r2, r3 - adds r1, r2, 0x2 - adds r0, r2, 0 - bl PlayerGetDestCoords - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF10C: .4byte gTasks -_080FF110: .4byte gSaveBlock1 - thumb_func_end sub_80FF0E0 - - thumb_func_start sub_80FF114 -sub_80FF114: @ 80FF114 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - bl DrawWholeMapView - ldr r1, _080FF158 - movs r0, 0x4 - ldrsb r0, [r1, r0] - ldrb r1, [r1, 0x5] - lsls r1, 24 - asrs r1, 24 - movs r2, 0x1 - negs r2, r2 - ldr r3, _080FF15C - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r3 - movs r3, 0xE - ldrsb r3, [r4, r3] - ldrb r4, [r4, 0x10] - lsls r4, 24 - asrs r4, 24 - str r4, [sp] - bl warp1_set - bl warp_in - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FF158: .4byte gSaveBlock1 -_080FF15C: .4byte gTasks - thumb_func_end sub_80FF114 - - thumb_func_start sub_80FF160 -sub_80FF160: @ 80FF160 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81341D4 - lsls r0, 24 - cmp r0, 0 - bne _080FF188 - ldr r1, _080FF180 - ldr r2, _080FF184 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _080FF1A2 - .align 2, 0 -_080FF180: .4byte gSecretBaseText_NoDecors -_080FF184: .4byte sub_80FE428 -_080FF188: - ldr r1, _080FF1A8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0 - strh r1, [r0, 0x1E] - ldr r0, _080FF1AC - strb r2, [r0] - adds r0, r4, 0 - bl sub_80FE5AC -_080FF1A2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF1A8: .4byte gTasks -_080FF1AC: .4byte gUnknown_020388F6 - thumb_func_end sub_80FF160 - - thumb_func_start sub_80FF1B0 -sub_80FF1B0: @ 80FF1B0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _080FF1D0 - cmp r2, 0x22 - beq _080FF1D8 - cmp r2, 0x26 - bne _080FF1E2 - ldr r0, _080FF1D4 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 28 - lsrs r0, 16 - b _080FF1E2 - .align 2, 0 -_080FF1D0: .4byte 0x0000ffff -_080FF1D4: .4byte gUnknown_083EC97C -_080FF1D8: - ldr r0, _080FF1E8 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 28 - lsrs r0, 16 -_080FF1E2: - pop {r1} - bx r1 - .align 2, 0 -_080FF1E8: .4byte gUnknown_083EC984 - thumb_func_end sub_80FF1B0 - - thumb_func_start sub_80FF1EC -sub_80FF1EC: @ 80FF1EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - ldr r4, [sp, 0x54] - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x4] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x8] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0xC] - lsls r4, 16 - lsrs r4, 16 - str r4, [sp, 0x10] - movs r2, 0 - lsls r0, r3, 16 - cmp r2, r3 - bcc _080FF222 - b _080FF384 -_080FF222: - ldr r1, [sp, 0x8] - str r1, [sp, 0x28] - str r0, [sp, 0x2C] -_080FF228: - ldr r3, [sp, 0x4] - ldr r4, [sp, 0xC] - subs r1, r3, r4 - lsls r0, r2, 16 - asrs r0, 16 - adds r0, 0x1 - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x14] - movs r0, 0 - mov r10, r0 - adds r1, r2, 0x1 - str r1, [sp, 0x30] - ldr r3, [sp, 0x28] - cmp r10, r3 - bcc _080FF24C - b _080FF374 -_080FF24C: - ldr r4, [sp, 0x10] - lsls r4, 5 - str r4, [sp, 0x18] - ldr r0, _080FF2B4 - adds r0, r4, r0 - str r0, [sp, 0x1C] - ldr r0, _080FF2B8 - adds r0, r4, r0 - str r0, [sp, 0x24] - ldr r3, [sp, 0x8] - adds r1, r2, 0 - muls r1, r3 - str r1, [sp, 0x20] -_080FF266: - ldr r0, [sp] - add r0, r10 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, [sp, 0x20] - add r1, r10 - ldr r4, [sp, 0x1C] - ldr r0, [r4] - lsls r1, 1 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - lsls r4, r0, 16 - lsls r0, r4, 8 - lsrs r0, 24 - bl sub_8057288 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080FF2AC - ldr r3, [sp, 0x24] - ldrb r0, [r3, 0x11] - cmp r0, 0x1 - beq _080FF2BC - lsrs r0, r4, 28 - cmp r0, 0 - beq _080FF2BC -_080FF2AC: - movs r4, 0xC0 - lsls r4, 4 - mov r8, r4 - b _080FF2C0 - .align 2, 0 -_080FF2B4: .4byte gDecorations + 0x1C -_080FF2B8: .4byte gDecorations -_080FF2BC: - movs r0, 0 - mov r8, r0 -_080FF2C0: - ldr r1, [sp, 0x24] - ldrb r0, [r1, 0x11] - lsls r7, r5, 16 - ldr r2, [sp, 0x14] - lsls r2, 16 - mov r9, r2 - cmp r0, 0x3 - beq _080FF2EA - asrs r0, r7, 16 - asrs r1, r2, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl sub_80572B0 - lsls r0, 24 - lsrs r0, 24 - movs r6, 0x1 - cmp r0, 0x1 - beq _080FF2EC -_080FF2EA: - movs r6, 0 -_080FF2EC: - ldr r3, [sp, 0x18] - ldr r4, _080FF334 - adds r0, r3, r4 - ldrb r0, [r0] - ldr r4, [sp, 0x20] - add r4, r10 - lsls r1, r4, 24 - lsrs r1, 24 - bl sub_80FF1B0 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080FF338 - cmp r5, r0 - beq _080FF33C - asrs r0, r7, 16 - mov r2, r9 - asrs r1, r2, 16 - ldr r3, [sp, 0x1C] - ldr r2, [r3] - lsls r3, r4, 1 - adds r3, r2 - movs r4, 0x80 - lsls r4, 2 - adds r2, r4, 0 - orrs r6, r2 - ldrh r3, [r3] - adds r2, r6, r3 - mov r3, r8 - orrs r3, r2 - orrs r3, r5 - lsls r2, r3, 16 - lsrs r2, 16 - bl MapGridSetMetatileEntryAt - b _080FF362 - .align 2, 0 -_080FF334: .4byte gDecorations -_080FF338: .4byte 0x0000ffff -_080FF33C: - asrs r0, r7, 16 - mov r2, r9 - asrs r1, r2, 16 - ldr r3, [sp, 0x1C] - ldr r2, [r3] - lsls r3, r4, 1 - adds r3, r2 - movs r4, 0x80 - lsls r4, 2 - adds r2, r4, 0 - orrs r6, r2 - ldrh r3, [r3] - adds r2, r6, r3 - mov r3, r8 - orrs r3, r2 - lsls r2, r3, 16 - lsrs r2, 16 - bl MapGridSetMetatileIdAt -_080FF362: - mov r0, r10 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - ldr r4, [sp, 0x28] - cmp r10, r4 - bcs _080FF374 - b _080FF266 -_080FF374: - ldr r1, [sp, 0x30] - lsls r0, r1, 16 - lsrs r2, r0, 16 - ldr r3, [sp, 0x2C] - lsrs r0, r3, 16 - cmp r2, r0 - bcs _080FF384 - b _080FF228 -_080FF384: - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FF1EC - - thumb_func_start sub_80FF394 -sub_80FF394: @ 80FF394 - push {r4,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r1, _080FF3BC - lsls r0, r2, 5 - adds r0, r1 - ldrb r0, [r0, 0x12] - cmp r0, 0x9 - bhi _080FF46C - lsls r0, 2 - ldr r1, _080FF3C0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FF3BC: .4byte gDecorations -_080FF3C0: .4byte _080FF3C4 - .align 2, 0 -_080FF3C4: - .4byte _080FF3EC - .4byte _080FF3F6 - .4byte _080FF400 - .4byte _080FF410 - .4byte _080FF41A - .4byte _080FF424 - .4byte _080FF434 - .4byte _080FF43E - .4byte _080FF44E - .4byte _080FF45E -_080FF3EC: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x1 - b _080FF408 -_080FF3F6: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x2 - b _080FF408 -_080FF400: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x3 -_080FF408: - movs r3, 0x1 - bl sub_80FF1EC - b _080FF46C -_080FF410: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x4 - b _080FF42C -_080FF41A: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x2 - b _080FF42C -_080FF424: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x1 -_080FF42C: - movs r3, 0x2 - bl sub_80FF1EC - b _080FF46C -_080FF434: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x1 - b _080FF456 -_080FF43E: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x4 - bl sub_80FF1EC - b _080FF46C -_080FF44E: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x3 -_080FF456: - movs r3, 0x3 - bl sub_80FF1EC - b _080FF46C -_080FF45E: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x3 - movs r3, 0x2 - bl sub_80FF1EC -_080FF46C: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FF394 - - thumb_func_start sub_80FF474 -sub_80FF474: @ 80FF474 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r6, 0 - ldr r0, _080FF54C - mov r8, r0 - ldr r1, _080FF550 - mov r9, r1 - ldr r2, _080FF554 - mov r10, r2 - ldr r7, _080FF558 -_080FF490: - adds r5, r6, 0 - adds r5, 0xAE - adds r4, r5, 0 - adds r0, r4, 0 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FF570 - adds r0, r4, 0 - bl FlagReset - movs r2, 0 - mov r4, r8 - ldr r0, [r4, 0x4] - ldrb r6, [r0] - cmp r2, r6 - bcs _080FF4E0 - ldr r0, [r0, 0x4] - ldrh r0, [r0, 0x14] - cmp r0, r5 - beq _080FF4E0 - ldr r0, _080FF54C - ldr r3, [r0, 0x4] - ldrb r6, [r3] - adds r4, r5, 0 -_080FF4C6: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r6 - bcs _080FF4E0 - ldr r0, [r3, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x14] - cmp r0, r4 - bne _080FF4C6 -_080FF4E0: - mov r1, r8 - ldr r0, [r1, 0x4] - ldr r1, [r0, 0x4] - lsls r4, r2, 1 - adds r4, r2 - lsls r4, 3 - adds r1, r4, r1 - ldr r2, _080FF55C - adds r0, r2, 0 - ldrb r1, [r1, 0x1] - adds r0, r1 - ldr r1, _080FF560 - ldr r1, [r1] - ldr r1, [r1, 0x1C] - ldrh r1, [r1] - bl VarSet - mov r5, r8 - ldr r0, [r5, 0x4] - ldr r0, [r0, 0x4] - adds r4, r0 - ldrb r0, [r4] - mov r6, r9 - strh r0, [r6] - ldr r1, _080FF564 - ldrh r1, [r1] - mov r2, r10 - strh r1, [r2] - ldr r1, _080FF568 - ldrh r1, [r1] - ldr r4, _080FF56C - strh r1, [r4] - ldrb r1, [r7, 0x5] - ldrb r2, [r7, 0x4] - bl show_sprite - ldrb r0, [r6] - ldrb r1, [r7, 0x5] - ldrb r2, [r7, 0x4] - mov r5, r10 - movs r6, 0 - ldrsh r3, [r5, r6] - movs r5, 0 - ldrsh r4, [r4, r5] - str r4, [sp] - bl sub_805C0F8 - mov r6, r9 - ldrb r0, [r6] - ldrb r1, [r7, 0x5] - ldrb r2, [r7, 0x4] - bl sub_805C78C - b _080FF57A - .align 2, 0 -_080FF54C: .4byte gMapHeader -_080FF550: .4byte gUnknown_0202E8CE -_080FF554: .4byte gUnknown_0202E8D0 -_080FF558: .4byte gSaveBlock1 -_080FF55C: .4byte 0x00003f20 -_080FF560: .4byte gUnknown_02038900 -_080FF564: .4byte gUnknown_020391A4 -_080FF568: .4byte gUnknown_020391A6 -_080FF56C: .4byte gUnknown_0202E8D2 -_080FF570: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xD - bls _080FF490 -_080FF57A: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FF474 - - thumb_func_start sub_80FF58C -sub_80FF58C: @ 80FF58C - push {lr} - movs r1, 0 - ldr r0, _080FF5A8 - ldrb r2, [r0, 0x8] - cmp r1, r2 - bcs _080FF5B6 - ldr r3, [r0] -_080FF59A: - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080FF5AC - movs r0, 0x1 - b _080FF5B8 - .align 2, 0 -_080FF5A8: .4byte 0x0201f000 -_080FF5AC: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bcc _080FF59A -_080FF5B6: - movs r0, 0 -_080FF5B8: - pop {r1} - bx r1 - thumb_func_end sub_80FF58C - - thumb_func_start sub_80FF5BC -sub_80FF5BC: @ 80FF5BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080FF5E4 - ldrb r0, [r0, 0x9] - cmp r0, 0x1 - bne _080FF5F0 - ldr r0, _080FF5E8 - ldrb r0, [r0] - cmp r0, 0x6 - beq _080FF5F0 - cmp r0, 0x7 - beq _080FF5F0 - bl sub_80FEF74 - bl sub_80FED1C - ldr r1, _080FF5EC - b _080FF66E - .align 2, 0 -_080FF5E4: .4byte 0x0201f000 -_080FF5E8: .4byte gUnknown_020388F6 -_080FF5EC: .4byte gSecretBaseText_DecorCantPlace -_080FF5F0: - bl sub_80FEFA4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FF688 - bl sub_80FF58C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FF62C - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, _080FF624 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, _080FF628 - str r1, [r0] - b _080FF69C - .align 2, 0 -_080FF624: .4byte gTasks -_080FF628: .4byte sub_80FF6AC -_080FF62C: - bl sub_80FEF74 - bl sub_80FED1C - ldr r0, _080FF654 - ldr r4, _080FF658 - ldrb r1, [r4, 0x8] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldrb r0, [r4, 0x9] - cmp r0, 0 - bne _080FF664 - ldr r0, _080FF65C - ldr r1, _080FF660 - bl StringExpandPlaceholders - b _080FF66C - .align 2, 0 -_080FF654: .4byte gStringVar1 -_080FF658: .4byte 0x0201f000 -_080FF65C: .4byte gStringVar4 -_080FF660: .4byte gSecretBaseText_NoMoreDecor -_080FF664: - ldr r0, _080FF67C - ldr r1, _080FF680 - bl StringExpandPlaceholders -_080FF66C: - ldr r1, _080FF67C -_080FF66E: - ldr r2, _080FF684 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _080FF69C - .align 2, 0 -_080FF67C: .4byte gStringVar4 -_080FF680: .4byte gSecretBaseText_NoMoreDecor2 -_080FF684: .4byte sub_80FEFF4 -_080FF688: - bl sub_80FEF74 - bl sub_80FED1C - ldr r1, _080FF6A4 - ldr r2, _080FF6A8 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080FF69C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FF6A4: .4byte gSecretBaseText_InUseAlready -_080FF6A8: .4byte sub_80FEFF4 - thumb_func_end sub_80FF5BC - - thumb_func_start sub_80FF6AC -sub_80FF6AC: @ 80FF6AC - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080FF6D0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r7, r0, r1 - movs r1, 0xC - ldrsh r0, [r7, r1] - cmp r0, 0x1 - beq _080FF714 - cmp r0, 0x1 - bgt _080FF6D4 - cmp r0, 0 - beq _080FF6DA - b _080FF77A - .align 2, 0 -_080FF6D0: .4byte gTasks -_080FF6D4: - cmp r0, 0x2 - beq _080FF764 - b _080FF77A -_080FF6DA: - ldr r0, _080FF70C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080FF77A - adds r0, r6, 0 - bl sub_80FF0E0 - movs r0, 0 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r0, _080FF710 - movs r1, 0x8 - bl sub_80F9520 - bl BuyMenuFreeMemory - movs r0, 0x1 - strh r0, [r7, 0xC] - b _080FF77A - .align 2, 0 -_080FF70C: .4byte gPaletteFade -_080FF710: .4byte gUnknown_020388F7 -_080FF714: - ldr r4, _080FF754 - ldrb r0, [r4, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r4, 0x8] - ldr r5, _080FF758 - ldr r0, _080FF75C - ldrb r1, [r0] - ldr r0, _080FF760 - ldr r0, [r0] - adds r0, r1 - ldrb r1, [r0] - adds r0, r5, 0 - bl AddDecorationIconObjectFromFieldObject - adds r0, r6, 0 - bl sub_80FF960 - adds r0, r6, 0 - adds r1, r5, 0 - bl SetUpPlacingDecorationPlayerAvatar - bl pal_fill_black - ldrb r1, [r4, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4, 0x8] - movs r0, 0x2 - strh r0, [r7, 0xC] - b _080FF77A - .align 2, 0 -_080FF754: .4byte gPaletteFade -_080FF758: .4byte gUnknown_02038900 -_080FF75C: .4byte gUnknown_020388F5 -_080FF760: .4byte gUnknown_020388D0 -_080FF764: - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FF77A - movs r0, 0 - strh r0, [r7, 0x20] - adds r0, r6, 0 - bl sub_810065C -_080FF77A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FF6AC - - thumb_func_start AddDecorationIconObjectFromFieldObject -AddDecorationIconObjectFromFieldObject: @ 80FF780 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - bl sub_80FEF74 - bl sub_80FED1C - adds r0, r5, 0 - bl sub_81006D0 - lsls r4, 5 - ldr r0, _080FF810 - adds r4, r0 - str r4, [r5] - ldrb r0, [r4, 0x11] - cmp r0, 0x4 - beq _080FF834 - adds r0, r5, 0 - bl sub_81008BC - ldr r0, [r5] - ldrb r0, [r0, 0x12] - bl sub_8100930 - adds r0, r5, 0 - bl sub_8100874 - ldr r1, _080FF814 - adds r0, r5, r1 - ldr r1, _080FF818 - ldr r1, [r1] - ldr r2, [r1, 0x14] - ldr r1, [r5] - ldr r1, [r1, 0x1C] - ldrh r1, [r1] - ldr r2, [r2, 0xC] - lsls r1, 4 - adds r1, r2 - ldrh r1, [r1, 0xE] - lsrs r1, 12 - bl sub_810070C - ldr r0, _080FF81C - bl LoadSpritePalette - ldr r3, _080FF820 - ldr r2, _080FF824 - ldr r4, _080FF828 - ldr r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strb r0, [r3] - ldr r0, _080FF82C - ldr r3, _080FF830 - ldr r1, [r5] - ldrb r2, [r1, 0x12] - lsls r2, 2 - adds r2, r3 - ldrb r1, [r2, 0x2] - ldrb r2, [r2, 0x3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - str r0, [r4, 0x4] - b _080FF87E - .align 2, 0 -_080FF810: .4byte gDecorations -_080FF814: .4byte 0x00000884 -_080FF818: .4byte gMapHeader -_080FF81C: .4byte gUnknown_083EC954 -_080FF820: .4byte gUnknown_020391A8 -_080FF824: .4byte gSprites -_080FF828: .4byte gUnknown_03004880 -_080FF82C: .4byte gSpriteTemplate_83EC93C -_080FF830: .4byte gUnknown_083EC900 -_080FF834: - ldr r2, _080FF888 - ldr r6, _080FF88C - ldr r5, _080FF890 - ldr r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r0, [r0, 0x2E] - strb r0, [r2] - ldr r0, [r4, 0x1C] - ldrh r0, [r0] - ldr r1, _080FF894 - ldr r2, _080FF898 - ldrb r3, [r4, 0x12] - lsls r3, 2 - adds r3, r2 - ldrb r2, [r3, 0x2] - ldrb r3, [r3, 0x3] - movs r4, 0x1 - str r4, [sp] - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r0, 24 - str r0, [r5, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1, 0x5] -_080FF87E: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080FF888: .4byte gUnknown_020391A8 -_080FF88C: .4byte gSprites -_080FF890: .4byte gUnknown_03004880 -_080FF894: .4byte sub_81009A8 -_080FF898: .4byte gUnknown_083EC900 - thumb_func_end AddDecorationIconObjectFromFieldObject - - thumb_func_start SetUpPlacingDecorationPlayerAvatar -SetUpPlacingDecorationPlayerAvatar: @ 80FF89C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080FF8F0 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - ldrb r2, [r2, 0x12] - ldr r3, _080FF8F4 - ldr r0, [r1] - ldrb r4, [r0, 0x12] - lsls r1, r4, 2 - adds r1, r3 - lsls r0, r2, 4 - ldrb r1, [r1, 0x2] - adds r0, r1 - subs r2, 0x1 - lsls r2, 3 - subs r0, r2 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r4, 0x2 - beq _080FF8D6 - cmp r4, 0x8 - beq _080FF8D6 - cmp r4, 0x9 - bne _080FF8DE -_080FF8D6: - adds r0, r2, 0 - subs r0, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 -_080FF8DE: - ldr r0, _080FF8F8 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _080FF900 - ldr r1, _080FF8FC - str r0, [sp] - movs r0, 0xC1 - b _080FF908 - .align 2, 0 -_080FF8F0: .4byte gTasks -_080FF8F4: .4byte gUnknown_083EC900 -_080FF8F8: .4byte gSaveBlock2 -_080FF8FC: .4byte SpriteCallbackDummy -_080FF900: - ldr r1, _080FF94C - movs r0, 0 - str r0, [sp] - movs r0, 0xC2 -_080FF908: - movs r3, 0x48 - bl AddPseudoFieldObject - ldr r1, _080FF950 - strb r0, [r1] - ldr r3, _080FF954 - ldr r0, _080FF950 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r4, _080FF958 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - bl DestroySprite - ldr r0, _080FF95C - ldr r0, [r0, 0x4] - strb r0, [r4] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF94C: .4byte SpriteCallbackDummy -_080FF950: .4byte gUnknown_020391A9 -_080FF954: .4byte gSprites -_080FF958: .4byte gUnknown_020391A8 -_080FF95C: .4byte gUnknown_03004880 - thumb_func_end SetUpPlacingDecorationPlayerAvatar - - thumb_func_start sub_80FF960 -sub_80FF960: @ 80FF960 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080FF98C - ldr r0, _080FF990 - ldrb r1, [r0] - ldr r0, _080FF994 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 5 - adds r0, r2 - ldrb r0, [r0, 0x12] - cmp r0, 0x9 - bls _080FF980 - b _080FFAA6 -_080FF980: - lsls r0, 2 - ldr r1, _080FF998 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FF98C: .4byte gDecorations -_080FF990: .4byte gUnknown_020388F5 -_080FF994: .4byte gUnknown_020388D0 -_080FF998: .4byte _080FF99C - .align 2, 0 -_080FF99C: - .4byte _080FF9C4 - .4byte _080FF9D8 - .4byte _080FF9F0 - .4byte _080FFA08 - .4byte _080FFA1C - .4byte _080FFA30 - .4byte _080FFA44 - .4byte _080FFA64 - .4byte _080FFA7C - .4byte _080FFA94 -_080FF9C4: - ldr r0, _080FF9D4 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - b _080FFA88 - .align 2, 0 -_080FF9D4: .4byte gTasks -_080FF9D8: - ldr r1, _080FF9EC - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x12] - movs r1, 0x1 - b _080FFAA4 - .align 2, 0 -_080FF9EC: .4byte gTasks -_080FF9F0: - ldr r1, _080FFA04 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 - strh r1, [r0, 0x12] - movs r1, 0x1 - b _080FFAA4 - .align 2, 0 -_080FFA04: .4byte gTasks -_080FFA08: - ldr r1, _080FFA18 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x4 - b _080FFAA0 - .align 2, 0 -_080FFA18: .4byte gTasks -_080FFA1C: - ldr r0, _080FFA2C - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r0, 0x2 - b _080FFA88 - .align 2, 0 -_080FFA2C: .4byte gTasks -_080FFA30: - ldr r1, _080FFA40 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - b _080FFAA0 - .align 2, 0 -_080FFA40: .4byte gTasks -_080FFA44: - ldr r0, _080FFA60 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x12] - movs r0, 0x3 - strh r0, [r1, 0x14] - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - b _080FFAA6 - .align 2, 0 -_080FFA60: .4byte gTasks -_080FFA64: - ldr r1, _080FFA78 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x12] - movs r1, 0x4 - b _080FFAA4 - .align 2, 0 -_080FFA78: .4byte gTasks -_080FFA7C: - ldr r0, _080FFA90 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r0, 0x3 -_080FFA88: - strh r0, [r1, 0x12] - strh r0, [r1, 0x14] - b _080FFAA6 - .align 2, 0 -_080FFA90: .4byte gTasks -_080FFA94: - ldr r1, _080FFAAC - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 -_080FFAA0: - strh r1, [r0, 0x12] - movs r1, 0x2 -_080FFAA4: - strh r1, [r0, 0x14] -_080FFAA6: - pop {r0} - bx r0 - .align 2, 0 -_080FFAAC: .4byte gTasks - thumb_func_end sub_80FF960 - - thumb_func_start sub_80FFAB0 -sub_80FFAB0: @ 80FFAB0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080FFAF8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - ldr r3, _080FFAFC - ldr r0, _080FFB00 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r2, 0x1 - strh r2, [r0, 0x3C] - ldr r0, _080FFB04 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x3C] - bl sub_810045C - adds r0, r4, 0 - bl sub_8100038 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FFAF8: .4byte gTasks -_080FFAFC: .4byte gSprites -_080FFB00: .4byte gUnknown_020391A8 -_080FFB04: .4byte gUnknown_020391A9 - thumb_func_end sub_80FFAB0 - - thumb_func_start sub_80FFB08 -sub_80FFB08: @ 80FFB08 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080FFB54 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - ldr r3, _080FFB58 - ldr r0, _080FFB5C - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r2, 0x1 - strh r2, [r0, 0x3C] - ldr r0, _080FFB60 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x3C] - bl sub_810045C - ldr r1, _080FFB64 - ldr r2, _080FFB68 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FFB54: .4byte gTasks -_080FFB58: .4byte gSprites -_080FFB5C: .4byte gUnknown_020391A8 -_080FFB60: .4byte gUnknown_020391A9 -_080FFB64: .4byte gSecretBaseText_CancelDecorating -_080FFB68: .4byte sub_8100248 - thumb_func_end sub_80FFB08 - - thumb_func_start sub_80FFB6C -sub_80FFB6C: @ 80FFB6C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - bl sub_8057274 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FFB86 - cmp r4, 0 - beq _080FFB8A -_080FFB86: - movs r0, 0 - b _080FFB8C -_080FFB8A: - movs r0, 0x1 -_080FFB8C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FFB6C - - thumb_func_start sub_80FFB94 -sub_80FFB94: @ 80FFB94 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r4, r2, 16 - lsls r3, 16 - lsrs r5, r3, 16 - lsls r1, 16 - asrs r1, 16 - ldr r3, _080FFBD0 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - movs r3, 0xE - ldrsh r0, [r2, r3] - adds r0, 0x7 - cmp r1, r0 - bne _080FFBD4 - lsls r1, r4, 16 - asrs r1, 16 - movs r3, 0x10 - ldrsh r0, [r2, r3] - adds r0, 0x7 - cmp r1, r0 - bne _080FFBD4 - cmp r5, 0 - beq _080FFBD4 - movs r0, 0 - b _080FFBD6 - .align 2, 0 -_080FFBD0: .4byte gTasks -_080FFBD4: - movs r0, 0x1 -_080FFBD6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80FFB94 - - thumb_func_start sub_80FFBDC -sub_80FFBDC: @ 80FFBDC - push {r4-r6,lr} - adds r5, r1, 0 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8057274 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080FFC1C - ldrb r0, [r5] - cmp r0, 0x21 - bne _080FFC0A - adds r0, r4, 0 - bl sub_8057300 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080FFC18 -_080FFC0A: - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_805729C - lsls r0, 24 - cmp r0, 0 - beq _080FFC1C -_080FFC18: - movs r0, 0x1 - b _080FFC1E -_080FFC1C: - movs r0, 0 -_080FFC1E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80FFBDC - - thumb_func_start sub_80FFC24 -sub_80FFC24: @ 80FFC24 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r1, [sp] - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r1, _080FFC60 - lsls r0, 2 - add r0, r10 - lsls r0, 3 - adds r0, r1 - ldrb r2, [r0, 0x14] - str r2, [sp, 0x4] - ldrb r0, [r0, 0x12] - str r0, [sp, 0x8] - ldr r3, [sp] - ldrb r0, [r3, 0x11] - adds r2, r1, 0 - cmp r0, 0x4 - bls _080FFC56 - b _08100024 -_080FFC56: - lsls r0, 2 - ldr r1, _080FFC64 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FFC60: .4byte gTasks -_080FFC64: .4byte _080FFC68 - .align 2, 0 -_080FFC68: - .4byte _080FFC7C - .4byte _080FFC7C - .4byte _080FFD68 - .4byte _080FFF1C - .4byte _080FFFA0 -_080FFC7C: - movs r6, 0 - ldr r0, [sp, 0x4] - cmp r6, r0 - bcc _080FFC86 - b _08100024 -_080FFC86: - mov r1, r10 - lsls r1, 2 - str r1, [sp, 0x1C] -_080FFC8C: - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - ldr r3, _080FFD64 - adds r0, r3 - ldrh r0, [r0, 0xA] - subs r0, r6 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r7, 0 - adds r6, 0x1 - str r6, [sp, 0x14] - ldr r0, [sp, 0x8] - cmp r7, r0 - bcs _080FFD56 - mov r1, r9 - lsls r1, 16 - str r1, [sp, 0xC] - asrs r1, 16 - mov r9, r1 -_080FFCB8: - ldr r0, [sp, 0x1C] - add r0, r10 - lsls r0, 3 - ldr r2, _080FFD64 - adds r0, r2 - ldrh r0, [r0, 0x8] - adds r0, r7 - lsls r0, 16 - mov r8, r0 - asrs r6, r0, 16 - adds r0, r6, 0 - mov r1, r9 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, [sp, 0x4] - ldr r1, [sp, 0x14] - subs r0, r3, r1 - ldr r2, [sp, 0x8] - adds r1, r0, 0 - muls r1, r2 - adds r1, r7 - ldr r3, [sp] - ldr r0, [r3, 0x1C] - lsls r1, 1 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - movs r3, 0xF0 - lsls r3, 8 - adds r1, r3, 0 - adds r5, r1, 0 - ands r5, r0 - adds r0, r4, 0 - ldr r1, [sp] - bl sub_80FFBDC - lsls r0, 24 - cmp r0, 0 - bne _080FFD1A - b _080FFFF4 -_080FFD1A: - mov r0, r10 - adds r1, r6, 0 - mov r2, r9 - adds r3, r5, 0 - bl sub_80FFB94 - lsls r0, 24 - cmp r0, 0 - bne _080FFD2E - b _080FFFF4 -_080FFD2E: - mov r1, r8 - lsrs r0, r1, 16 - ldr r2, [sp, 0xC] - lsrs r1, r2, 16 - movs r2, 0 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080FFD4A - cmp r4, 0x10 - beq _080FFD4A - b _080FFFF4 -_080FFD4A: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFCB8 -_080FFD56: - ldr r1, [sp, 0x14] - lsls r0, r1, 24 - lsrs r6, r0, 24 - ldr r2, [sp, 0x4] - cmp r6, r2 - bcc _080FFC8C - b _08100024 - .align 2, 0 -_080FFD64: .4byte gTasks -_080FFD68: - movs r6, 0 - mov r3, r10 - lsls r3, 2 - str r3, [sp, 0x1C] - ldr r0, [sp, 0x4] - subs r0, 0x1 - str r0, [sp, 0x18] - cmp r6, r0 - bge _080FFE54 - adds r0, r3, 0 - add r0, r10 - lsls r0, 3 - str r0, [sp, 0x10] -_080FFD82: - ldr r1, [sp, 0x10] - adds r0, r1, r2 - ldrh r0, [r0, 0xA] - subs r0, r6 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r7, 0 - adds r6, 0x1 - str r6, [sp, 0x14] - ldr r3, [sp, 0x8] - cmp r7, r3 - bcs _080FFE48 - lsls r0, 16 - str r0, [sp, 0x20] -_080FFDA0: - ldr r1, [sp, 0x10] - adds r0, r1, r2 - ldrh r0, [r0, 0x8] - adds r0, r7 - lsls r0, 16 - mov r8, r0 - asrs r6, r0, 16 - mov r2, r9 - lsls r1, r2, 16 - adds r0, r6, 0 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, [sp, 0x4] - ldr r1, [sp, 0x14] - subs r0, r3, r1 - ldr r2, [sp, 0x8] - adds r1, r0, 0 - muls r1, r2 - adds r1, r7 - ldr r3, [sp] - ldr r0, [r3, 0x1C] - lsls r1, 1 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - movs r3, 0xF0 - lsls r3, 8 - adds r1, r3, 0 - adds r5, r1, 0 - ands r5, r0 - adds r0, r4, 0 - bl sub_805729C - lsls r0, 24 - cmp r0, 0 - bne _080FFE0C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80FFB6C - lsls r0, 24 - cmp r0, 0 - bne _080FFE0C - b _080FFFF4 -_080FFE0C: - mov r0, r10 - adds r1, r6, 0 - ldr r3, [sp, 0x20] - asrs r2, r3, 16 - adds r3, r5, 0 - bl sub_80FFB94 - lsls r0, 24 - cmp r0, 0 - bne _080FFE22 - b _080FFFF4 -_080FFE22: - mov r1, r8 - lsrs r0, r1, 16 - ldr r2, [sp, 0x20] - lsrs r1, r2, 16 - movs r2, 0 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - beq _080FFE3A - b _080FFFF4 -_080FFE3A: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _080FFF18 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFDA0 -_080FFE48: - ldr r1, [sp, 0x14] - lsls r0, r1, 24 - lsrs r6, r0, 24 - ldr r3, [sp, 0x18] - cmp r6, r3 - blt _080FFD82 -_080FFE54: - ldr r0, [sp, 0x1C] - add r0, r10 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0xA] - ldr r1, [sp, 0x4] - subs r0, r1 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r7, 0 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFE74 - b _08100024 -_080FFE74: - lsls r0, 16 - str r0, [sp, 0x20] -_080FFE78: - ldr r0, [sp, 0x1C] - add r0, r10 - lsls r0, 3 - ldr r1, _080FFF18 - adds r0, r1 - ldrh r0, [r0, 0x8] - adds r0, r7 - lsls r0, 16 - mov r8, r0 - asrs r6, r0, 16 - mov r2, r9 - lsls r1, r2, 16 - adds r0, r6, 0 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, [sp] - ldr r0, [r3, 0x1C] - lsls r1, r7, 1 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - movs r3, 0xF0 - lsls r3, 8 - adds r1, r3, 0 - adds r5, r1, 0 - ands r5, r0 - adds r0, r4, 0 - bl sub_805729C - lsls r0, 24 - cmp r0, 0 - bne _080FFEDA - adds r0, r4, 0 - bl sub_80572B0 - lsls r0, 24 - cmp r0, 0 - bne _080FFEDA - b _080FFFF4 -_080FFEDA: - mov r0, r10 - adds r1, r6, 0 - ldr r3, [sp, 0x20] - asrs r2, r3, 16 - adds r3, r5, 0 - bl sub_80FFB94 - lsls r0, 24 - cmp r0, 0 - bne _080FFEF0 - b _080FFFF4 -_080FFEF0: - mov r1, r8 - lsrs r0, r1, 16 - ldr r2, [sp, 0x20] - lsrs r1, r2, 16 - movs r2, 0 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080FFF0A - cmp r4, 0x10 - bne _080FFFF4 -_080FFF0A: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFE78 - b _08100024 - .align 2, 0 -_080FFF18: .4byte gTasks -_080FFF1C: - movs r6, 0 - ldr r0, [sp, 0x4] - cmp r6, r0 - bcc _080FFF26 - b _08100024 -_080FFF26: - mov r1, r10 - lsls r0, r1, 2 - add r0, r10 - lsls r1, r0, 3 - ldr r2, _080FFF9C - adds r0, r1, r2 - ldrh r0, [r0, 0xA] - subs r0, r6 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r7, 0 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcs _080FFF8C - adds r0, r2, 0 - adds r1, r0 - mov r8, r1 - mov r1, r9 - lsls r0, r1, 16 - asrs r5, r0, 16 -_080FFF50: - mov r2, r8 - ldrh r0, [r2, 0x8] - adds r0, r7 - lsls r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl sub_80572B0 - lsls r0, 24 - cmp r0, 0 - beq _080FFFF4 - adds r0, r4, 0 - adds r1, r5, 0x1 - bl MapGridGetMetatileIdAt - movs r1, 0xA3 - lsls r1, 2 - cmp r0, r1 - beq _080FFFF4 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFF50 -_080FFF8C: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [sp, 0x4] - cmp r6, r0 - bcc _080FFF26 - b _08100024 - .align 2, 0 -_080FFF9C: .4byte gTasks -_080FFFA0: - mov r3, r10 - lsls r1, r3, 2 - adds r0, r1, r3 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0xA] - mov r9, r0 - movs r7, 0 - str r1, [sp, 0x1C] - ldr r0, [sp, 0x8] - cmp r7, r0 - bcs _08100024 - adds r6, r2, 0 - mov r1, r9 - lsls r1, 16 - str r1, [sp, 0x20] -_080FFFC0: - ldr r0, [sp, 0x1C] - add r0, r10 - lsls r0, 3 - adds r0, r6 - ldrh r0, [r0, 0x8] - adds r0, r7 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - mov r2, r9 - lsls r1, r2, 16 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, [sp] - ldrb r0, [r3, 0x12] - cmp r0, 0x5 - bne _080FFFF8 -_080FFFE8: - adds r0, r4, 0 - bl sub_80572EC - lsls r0, 24 - cmp r0, 0 - bne _08100004 -_080FFFF4: - movs r0, 0 - b _08100026 -_080FFFF8: - adds r0, r4, 0 - bl sub_80572D8 - lsls r0, 24 - cmp r0, 0 - beq _080FFFE8 -_08100004: - adds r0, r5, 0 - ldr r2, [sp, 0x20] - lsrs r1, r2, 16 - movs r2, 0 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - bne _080FFFF4 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFFC0 -_08100024: - movs r0, 0x1 -_08100026: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FFC24 - - thumb_func_start sub_8100038 -sub_8100038: @ 8100038 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0810006C - ldrb r1, [r0] - ldr r0, _08100070 - ldr r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r1, 5 - ldr r0, _08100074 - adds r1, r0 - adds r0, r4, 0 - bl sub_80FFC24 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08100080 - ldr r1, _08100078 - ldr r2, _0810007C - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _08100092 - .align 2, 0 -_0810006C: .4byte gUnknown_020388F5 -_08100070: .4byte gUnknown_020388D0 -_08100074: .4byte gDecorations -_08100078: .4byte gSecretBaseText_PlaceItHere -_0810007C: .4byte sub_81000A0 -_08100080: - movs r0, 0x20 - bl PlaySE - ldr r1, _08100098 - ldr r2, _0810009C - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_08100092: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100098: .4byte gSecretBaseText_CantBePlacedHere -_0810009C: .4byte sub_81006A8 - thumb_func_end sub_8100038 - - thumb_func_start sub_81000A0 -sub_81000A0: @ 81000A0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _081000C0 - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081000C0: .4byte gUnknown_083EC95C - thumb_func_end sub_81000A0 - - thumb_func_start sub_81000C4 -sub_81000C4: @ 81000C4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_8100174 - ldr r2, _0810010C - ldr r0, _08100110 - ldrb r1, [r0] - ldr r0, _08100114 - ldr r0, [r0] - adds r0, r1 - ldrb r3, [r0] - lsls r0, r3, 5 - adds r0, r2 - ldrb r0, [r0, 0x11] - cmp r0, 0x4 - beq _0810011C - ldr r0, _08100118 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - ldrh r1, [r1, 0xA] - adds r2, r3, 0 - bl sub_80FF394 - b _0810013C - .align 2, 0 -_0810010C: .4byte gDecorations -_08100110: .4byte gUnknown_020388F5 -_08100114: .4byte gUnknown_020388D0 -_08100118: .4byte gTasks -_0810011C: - ldr r2, _0810015C - ldr r0, _08100160 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - subs r0, 0x7 - strh r0, [r2] - ldr r2, _08100164 - ldrh r0, [r1, 0xA] - subs r0, 0x7 - strh r0, [r2] - ldr r0, _08100168 - bl ScriptContext1_SetupScript -_0810013C: - ldr r2, _0810016C - ldr r0, _08100170 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x2 - strh r1, [r0, 0x22] - adds r0, r4, 0 - bl sub_810028C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810015C: .4byte gUnknown_020391A4 -_08100160: .4byte gTasks -_08100164: .4byte gUnknown_020391A6 -_08100168: .4byte gUnknown_081A2F7B -_0810016C: .4byte gSprites -_08100170: .4byte gUnknown_020391A8 - thumb_func_end sub_81000C4 - - thumb_func_start sub_8100174 -sub_8100174: @ 8100174 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r3, 0 - ldr r0, _081001B0 - ldrb r1, [r0, 0x8] - adds r5, r0, 0 - cmp r3, r1 - bcs _0810019A - ldr r4, [r5] -_08100188: - adds r2, r4, r3 - ldrb r0, [r2] - cmp r0, 0 - beq _081001B8 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bcc _08100188 -_0810019A: - ldrb r0, [r5, 0x9] - cmp r0, 0 - bne _08100204 - movs r3, 0 - ldr r0, _081001B4 - ldrb r1, [r0] - adds r2, r0, 0 - cmp r1, 0 - bne _081001F0 - b _08100210 - .align 2, 0 -_081001B0: .4byte 0x0201f000 -_081001B4: .4byte gUnknown_020388D6 -_081001B8: - ldr r0, _081001E4 - ldrb r1, [r0] - ldr r0, _081001E8 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r2, [r5, 0x4] - adds r2, r3 - ldr r0, _081001EC - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x8] - subs r0, 0x7 - lsls r0, 4 - ldrb r1, [r1, 0xA] - subs r1, 0x7 - adds r0, r1 - strb r0, [r2] - b _0810019A - .align 2, 0 -_081001E4: .4byte gUnknown_020388F5 -_081001E8: .4byte gUnknown_020388D0 -_081001EC: .4byte gTasks -_081001F0: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bhi _0810023E - adds r1, r3, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _081001F0 - b _08100236 -_08100204: - movs r3, 0 - ldr r0, _0810021C - ldrb r1, [r0] - adds r2, r0, 0 - cmp r1, 0 - bne _08100224 -_08100210: - ldr r0, _08100220 - ldrb r0, [r0] - adds r0, 0x1 - strb r0, [r2] - b _0810023E - .align 2, 0 -_0810021C: .4byte gUnknown_020388E6 -_08100220: .4byte gUnknown_020388F5 -_08100224: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xB - bhi _0810023E - adds r1, r3, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _08100224 -_08100236: - ldr r0, _08100244 - ldrb r0, [r0] - adds r0, 0x1 - strb r0, [r1] -_0810023E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08100244: .4byte gUnknown_020388F5 - thumb_func_end sub_8100174 - - thumb_func_start sub_8100248 -sub_8100248: @ 8100248 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _08100268 - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100268: .4byte gUnknown_083EC964 - thumb_func_end sub_8100248 - - thumb_func_start sub_810026C -sub_810026C: @ 810026C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_810028C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_810026C - - thumb_func_start sub_810028C -sub_810028C: @ 810028C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, _081002B4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, _081002B8 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081002B4: .4byte gTasks -_081002B8: .4byte c1_overworld_prev_quest - thumb_func_end sub_810028C - - thumb_func_start c1_overworld_prev_quest -c1_overworld_prev_quest: @ 81002BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _081002DC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _081002E0 - cmp r0, 0x1 - beq _08100300 - b _0810031C - .align 2, 0 -_081002DC: .4byte gTasks -_081002E0: - bl ScriptContext2_Enable - ldr r0, _081002FC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810031C - adds r0, r4, 0 - bl sub_80FF114 - movs r0, 0x1 - strh r0, [r5, 0xC] - b _0810031C - .align 2, 0 -_081002FC: .4byte gPaletteFade -_08100300: - bl sub_81016F4 - ldr r0, _08100324 - bl FreeSpritePaletteByTag - ldr r1, _08100328 - ldr r0, _0810032C - str r0, [r1] - ldr r0, _08100330 - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_0810031C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08100324: .4byte 0x00000bb8 -_08100328: .4byte gUnknown_0300485C -_0810032C: .4byte sub_8100364 -_08100330: .4byte c2_exit_to_overworld_2_switch - thumb_func_end c1_overworld_prev_quest - - thumb_func_start sub_8100334 -sub_8100334: @ 8100334 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08100354 - ldr r0, _0810035C - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08100360 - str r0, [r1] -_08100354: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810035C: .4byte gTasks -_08100360: .4byte sub_80FE948 - thumb_func_end sub_8100334 - - thumb_func_start sub_8100364 -sub_8100364: @ 8100364 - push {lr} - bl ScriptContext2_Enable - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - bl pal_fill_black - ldr r0, _08100388 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl sub_80FE7EC - pop {r0} - bx r0 - .align 2, 0 -_08100388: .4byte sub_8100334 - thumb_func_end sub_8100364 - - thumb_func_start sub_810038C -sub_810038C: @ 810038C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _081003BC - adds r2, r1, r0 - ldr r0, _081003C0 - ldrb r1, [r0] - adds r3, r0, 0 - cmp r1, 0x1 - bne _081003C4 - movs r1, 0x2 - ldrsh r0, [r2, r1] - movs r4, 0xC - ldrsh r1, [r2, r4] - subs r0, r1 - subs r0, 0x6 - cmp r0, 0 - bge _081003C4 - ldrh r0, [r2, 0x2] - adds r0, 0x1 - b _081003DE - .align 2, 0 -_081003BC: .4byte gUnknown_03004B28 -_081003C0: .4byte gUnknown_020391AA -_081003C4: - ldrb r0, [r3] - cmp r0, 0x2 - bne _081003E8 - movs r0, 0x2 - ldrsh r1, [r2, r0] - subs r1, 0x7 - ldr r0, _081003E4 - ldr r0, [r0] - ldr r0, [r0, 0x4] - cmp r1, r0 - blt _081003E8 - ldrh r0, [r2, 0x2] - subs r0, 0x1 -_081003DE: - strh r0, [r2, 0x2] - movs r0, 0 - b _0810042A - .align 2, 0 -_081003E4: .4byte gMapHeader -_081003E8: - ldrb r0, [r3] - cmp r0, 0x3 - bne _081003FE - movs r1, 0 - ldrsh r0, [r2, r1] - subs r0, 0x7 - cmp r0, 0 - bge _081003FE - ldrh r0, [r2] - adds r0, 0x1 - b _0810041E -_081003FE: - ldrb r0, [r3] - cmp r0, 0x4 - bne _08100428 - movs r3, 0 - ldrsh r1, [r2, r3] - movs r4, 0xA - ldrsh r0, [r2, r4] - adds r1, r0 - subs r1, 0x8 - ldr r0, _08100424 - ldr r0, [r0] - ldr r0, [r0] - cmp r1, r0 - blt _08100428 - ldrh r0, [r2] - subs r0, 0x1 -_0810041E: - strh r0, [r2] - movs r0, 0 - b _0810042A - .align 2, 0 -_08100424: .4byte gMapHeader -_08100428: - movs r0, 0x1 -_0810042A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810038C - - thumb_func_start sub_8100430 -sub_8100430: @ 8100430 - push {lr} - ldr r0, _08100450 - ldrh r0, [r0, 0x2C] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - beq _08100454 - cmp r1, 0x80 - beq _08100454 - cmp r1, 0x20 - beq _08100454 - cmp r1, 0x10 - beq _08100454 - movs r0, 0 - b _08100456 - .align 2, 0 -_08100450: .4byte gMain -_08100454: - movs r0, 0x1 -_08100456: - pop {r1} - bx r1 - thumb_func_end sub_8100430 - - thumb_func_start sub_810045C -sub_810045C: @ 810045C - push {r4,lr} - ldr r1, _08100488 - movs r0, 0 - strb r0, [r1] - ldr r4, _0810048C - ldr r3, _08100490 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r2, 0 - strh r2, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x34] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100488: .4byte gUnknown_020391AA -_0810048C: .4byte gSprites -_08100490: .4byte gUnknown_020391A8 - thumb_func_end sub_810045C - - thumb_func_start sub_8100494 -sub_8100494: @ 8100494 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, _081004D0 - ldr r3, _081004D4 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x36 - ldrsh r6, [r0, r1] - cmp r6, 0 - beq _081004B2 - b _081005DE -_081004B2: - ldr r1, _081004D8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r1, 0x1C - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _081004E0 - ldr r0, _081004DC - movs r3, 0x20 - ldrsh r1, [r2, r3] - lsls r1, 3 - b _081004EE - .align 2, 0 -_081004D0: .4byte gSprites -_081004D4: .4byte gUnknown_020391A8 -_081004D8: .4byte gTasks -_081004DC: .4byte gUnknown_083EC96C -_081004E0: - cmp r0, 0x2 - bne _08100500 - ldr r0, _081004FC - movs r3, 0x20 - ldrsh r1, [r2, r3] - lsls r1, 3 - adds r0, 0x4 -_081004EE: - adds r1, r0 - ldr r1, [r1] - adds r0, r4, 0 - bl _call_via_r1 - b _0810063C - .align 2, 0 -_081004FC: .4byte gUnknown_083EC96C -_08100500: - ldr r7, _08100644 - ldrh r1, [r7, 0x2C] - movs r0, 0xF0 - mov r12, r0 - ands r0, r1 - cmp r0, 0x40 - bne _08100534 - ldr r1, _08100648 - movs r0, 0x1 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0810064C - strh r1, [r0, 0x34] - ldrh r0, [r2, 0xA] - subs r0, 0x1 - strh r0, [r2, 0xA] -_08100534: - ldrh r1, [r7, 0x2C] - mov r0, r12 - ands r0, r1 - cmp r0, 0x80 - bne _08100564 - ldr r1, _08100648 - movs r0, 0x2 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x2 - strh r1, [r0, 0x34] - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] -_08100564: - ldrh r1, [r7, 0x2C] - mov r0, r12 - ands r0, r1 - cmp r0, 0x20 - bne _08100594 - ldr r1, _08100648 - movs r0, 0x3 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0810064C - strh r1, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x34] - ldrh r0, [r2, 0x8] - subs r0, 0x1 - strh r0, [r2, 0x8] -_08100594: - ldrh r1, [r7, 0x2C] - mov r0, r12 - ands r0, r1 - cmp r0, 0x10 - bne _081005C4 - ldr r1, _08100648 - movs r0, 0x4 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x2 - strh r1, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x34] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_081005C4: - bl sub_8100430 - lsls r0, 24 - cmp r0, 0 - beq _081005DA - adds r0, r4, 0 - bl sub_810038C - lsls r0, 24 - cmp r0, 0 - bne _081005DE -_081005DA: - bl sub_810045C -_081005DE: - ldr r0, _08100648 - ldrb r0, [r0] - cmp r0, 0 - beq _0810060C - ldr r3, _08100650 - ldr r2, _08100654 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x36] - adds r1, 0x1 - strh r1, [r0, 0x36] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r2, [r1, 0x36] - movs r0, 0x7 - ands r0, r2 - strh r0, [r1, 0x36] -_0810060C: - ldr r0, _08100658 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r2, r1, r0 - movs r1, 0x1C - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _0810063C - ldr r4, _08100644 - ldrh r1, [r4, 0x2E] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0810062E - strh r3, [r2, 0x1C] -_0810062E: - ldrh r1, [r4, 0x2E] - movs r3, 0x2 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0810063C - strh r3, [r2, 0x1C] -_0810063C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08100644: .4byte gMain -_08100648: .4byte gUnknown_020391AA -_0810064C: .4byte 0x0000fffe -_08100650: .4byte gSprites -_08100654: .4byte gUnknown_020391A8 -_08100658: .4byte gTasks - thumb_func_end sub_8100494 - - thumb_func_start sub_810065C -sub_810065C: @ 810065C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r2, _08100698 - ldr r0, _0810069C - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r2, 0 - strh r2, [r0, 0x3C] - ldr r1, _081006A0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x1C] - ldr r1, _081006A4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100698: .4byte gSprites -_0810069C: .4byte gUnknown_020391A8 -_081006A0: .4byte gTasks -_081006A4: .4byte sub_8100494 - thumb_func_end sub_810065C - - thumb_func_start sub_81006A8 -sub_81006A8: @ 81006A8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _081006CC - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081006C2 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081006C8 -_081006C2: - adds r0, r2, 0 - bl sub_810065C -_081006C8: - pop {r0} - bx r0 - .align 2, 0 -_081006CC: .4byte gMain - thumb_func_end sub_81006A8 - - thumb_func_start sub_81006D0 -sub_81006D0: @ 81006D0 - push {r4,r5,lr} - adds r3, r0, 0 - movs r1, 0 - adds r2, r3, 0 - adds r2, 0x84 - movs r5, 0 - ldr r4, _08100708 -_081006DE: - adds r0, r2, r1 - strb r5, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r4 - bls _081006DE - movs r1, 0 - adds r2, r3, 0x4 - movs r3, 0 -_081006F2: - lsls r0, r1, 1 - adds r0, r2, r0 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3F - bls _081006F2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08100708: .4byte 0x000007ff - thumb_func_end sub_81006D0 - - thumb_func_start sub_810070C -sub_810070C: @ 810070C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 16 - movs r2, 0 - ldr r0, _0810073C - ldr r0, [r0] - ldr r0, [r0, 0x10] - lsrs r4, r1, 12 - ldr r3, [r0, 0x8] -_0810071E: - lsls r1, r2, 1 - adds r1, r5 - adds r0, r4, r2 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xF - bls _0810071E - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810073C: .4byte gMapHeader - thumb_func_end sub_810070C - - thumb_func_start sub_8100740 -sub_8100740: @ 8100740 - push {r4-r7,lr} - sub sp, 0x20 - adds r7, r0, 0 - lsls r1, 16 - lsrs r2, r1, 16 - lsrs r3, r1, 26 - cmp r2, 0 - beq _08100754 - ldr r0, _08100784 - ands r2, r0 -_08100754: - movs r5, 0 - ldr r0, _08100788 - ldr r6, [r0] - lsls r4, r2, 5 -_0810075C: - mov r0, sp - adds r2, r0, r5 - ldr r0, [r6, 0x10] - ldr r0, [r0, 0x4] - adds r1, r4, r5 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1F - bls _0810075C - cmp r3, 0x1 - beq _081007AE - cmp r3, 0x1 - bgt _0810078C - cmp r3, 0 - beq _08100796 - b _0810086A - .align 2, 0 -_08100784: .4byte 0x000003ff -_08100788: .4byte gMapHeader -_0810078C: - cmp r3, 0x2 - beq _0810080E - cmp r3, 0x3 - beq _08100846 - b _0810086A -_08100796: - movs r5, 0 -_08100798: - adds r1, r7, r5 - mov r2, sp - adds r0, r2, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1F - bls _08100798 - b _0810086A -_081007AE: - movs r5, 0 - movs r6, 0xF -_081007B2: - lsls r4, r5, 2 - adds r4, r7 - adds r5, 0x1 - lsls r3, r5, 2 - subs r0, r3, 0x1 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r4] - subs r0, r3, 0x2 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r4, 0x1] - subs r0, r3, 0x3 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r4, 0x2] - subs r3, 0x4 - mov r1, sp - adds r0, r1, r3 - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r4, 0x3] - lsls r5, 16 - lsrs r5, 16 - cmp r5, 0x7 - bls _081007B2 - b _0810086A -_0810080E: - movs r5, 0 - movs r3, 0x7 -_08100812: - lsls r2, r5, 2 - adds r2, r7 - subs r1, r3, r5 - lsls r1, 2 - mov r4, sp - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r1, 0x1 - add r0, sp - ldrb r0, [r0] - strb r0, [r2, 0x1] - adds r0, r1, 0x2 - add r0, sp - ldrb r0, [r0] - strb r0, [r2, 0x2] - adds r1, 0x3 - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r2, 0x3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x7 - bls _08100812 - b _0810086A -_08100846: - movs r5, 0 - movs r4, 0x1F - movs r6, 0xF -_0810084C: - adds r3, r7, r5 - subs r0, r4, r5 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1F - bls _0810084C -_0810086A: - add sp, 0x20 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8100740 - - thumb_func_start sub_8100874 -sub_8100874: @ 8100874 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_0810087A: - lsls r0, r4, 5 - adds r0, 0x84 - adds r0, r5, r0 - lsls r2, r4, 1 - adds r1, r5, 0x4 - adds r1, r2 - ldrh r1, [r1] - bl sub_8100740 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3F - bls _0810087A - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8100874 - - thumb_func_start sub_810089C -sub_810089C: @ 810089C - lsls r0, 16 - ldr r1, _081008B4 - ldr r1, [r1] - ldr r1, [r1, 0x14] - ldr r1, [r1, 0xC] - lsrs r0, 15 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _081008B8 - ands r0, r1 - bx lr - .align 2, 0 -_081008B4: .4byte gMapHeader -_081008B8: .4byte 0x00000fff - thumb_func_end sub_810089C - - thumb_func_start sub_81008BC -sub_81008BC: @ 81008BC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - ldr r0, [r0] - ldrb r0, [r0, 0x12] - movs r6, 0 - ldr r1, _0810092C - lsls r5, r0, 4 - adds r0, r5, r1 - ldrb r0, [r0, 0xC] - cmp r6, r0 - bcs _08100920 - adds r7, r1, 0 -_081008D8: - mov r4, r8 - ldm r4!, {r1} - adds r0, r7, 0x4 - adds r0, r5, r0 - ldr r0, [r0] - adds r0, r6 - ldrb r0, [r0] - ldr r1, [r1, 0x1C] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - adds r1, r7, 0 - adds r1, 0x8 - adds r1, r5, r1 - ldr r1, [r1] - adds r1, r6 - lsls r0, 3 - ldrb r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl sub_810089C - adds r2, r5, r7 - ldr r1, [r2] - adds r1, r6 - ldrb r1, [r1] - lsls r1, 1 - adds r4, r1 - strh r0, [r4] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r2, [r2, 0xC] - cmp r6, r2 - bcc _081008D8 -_08100920: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810092C: .4byte gUnknown_083EC860 - thumb_func_end sub_81008BC - - thumb_func_start sub_8100930 -sub_8100930: @ 8100930 - push {r4,r5,lr} - lsls r0, 24 - ldr r3, _08100998 - movs r1, 0 - strb r1, [r3] - ldrb r2, [r3, 0x1] - subs r1, 0x4 - ands r1, r2 - movs r4, 0xD - negs r4, r4 - ands r1, r4 - movs r2, 0x11 - negs r2, r2 - ands r1, r2 - subs r2, 0x10 - ands r1, r2 - strb r1, [r3, 0x1] - ldr r1, _0810099C - lsrs r0, 22 - adds r0, r1 - ldrb r1, [r0] - movs r5, 0x3F - lsls r1, 6 - strb r1, [r3, 0x1] - ldrh r2, [r3, 0x2] - ldr r1, _081009A0 - ands r1, r2 - strh r1, [r3, 0x2] - ldrb r2, [r3, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - strb r1, [r3, 0x3] - ldrb r0, [r0, 0x1] - lsls r0, 6 - ands r5, r1 - orrs r5, r0 - strb r5, [r3, 0x3] - ldrh r1, [r3, 0x4] - ldr r0, _081009A4 - ands r0, r1 - strh r0, [r3, 0x4] - ldrb r0, [r3, 0x5] - ands r4, r0 - movs r0, 0x4 - orrs r4, r0 - movs r0, 0xF - ands r4, r0 - strb r4, [r3, 0x5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08100998: .4byte gUnknown_020391AC -_0810099C: .4byte gUnknown_083EC900 -_081009A0: .4byte 0xfffffe00 -_081009A4: .4byte 0xfffffc00 - thumb_func_end sub_8100930 - - thumb_func_start sub_81009A8 -sub_81009A8: @ 81009A8 - movs r1, 0 - strh r1, [r0, 0x32] - strh r1, [r0, 0x34] - strh r1, [r0, 0x36] - strh r1, [r0, 0x38] - strh r1, [r0, 0x3A] - strh r1, [r0, 0x3C] - ldr r1, _081009BC - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_081009BC: .4byte sub_81009C0 - thumb_func_end sub_81009A8 - - thumb_func_start sub_81009C0 -sub_81009C0: @ 81009C0 - push {lr} - adds r2, r0, 0 - movs r1, 0x3C - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _081009FA - movs r1, 0x3A - ldrsh r0, [r2, r1] - cmp r0, 0xE - bgt _081009E2 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - b _081009EC -_081009E2: - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 -_081009EC: - strb r0, [r3] - ldrh r0, [r2, 0x3A] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r2, 0x3A] - b _08100A06 -_081009FA: - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08100A06: - pop {r0} - bx r0 - thumb_func_end sub_81009C0 - - thumb_func_start sub_8100A0C -sub_8100A0C: @ 8100A0C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8100D38 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08100A44 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, _08100A3C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, _08100A40 - str r1, [r0] - b _08100A50 - .align 2, 0 -_08100A3C: .4byte gTasks -_08100A40: .4byte sub_8100E70 -_08100A44: - ldr r1, _08100A58 - ldr r2, _08100A5C - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_08100A50: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100A58: .4byte gSecretBaseText_NoDecorInUse -_08100A5C: .4byte sub_80FE428 - thumb_func_end sub_8100A0C - - thumb_func_start sub_8100A60 -sub_8100A60: @ 8100A60 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08100A78 - ldr r1, [r3] - adds r1, r0 - movs r2, 0 - strb r2, [r1] - ldr r1, [r3, 0x4] - adds r1, r0 - strb r2, [r1] - bx lr - .align 2, 0 -_08100A78: .4byte 0x0201f000 - thumb_func_end sub_8100A60 - - thumb_func_start sub_8100A7C -sub_8100A7C: @ 8100A7C - push {r4-r6,lr} - ldr r6, _08100A9C - movs r0, 0 - strh r0, [r6] - ldr r2, _08100AA0 - strh r0, [r2] - ldr r4, _08100AA4 - ldr r1, _08100AA8 - ldrh r0, [r4] - ldrb r1, [r1] - cmp r0, r1 - bne _08100AB8 - movs r0, 0x1 - strh r0, [r2] - b _08100B0A - .align 2, 0 -_08100A9C: .4byte gUnknown_0202E8CE -_08100AA0: .4byte gScriptResult -_08100AA4: .4byte gUnknown_0202E8CC -_08100AA8: .4byte gUnknown_02039234 -_08100AAC: - ldr r1, _08100AB4 - ldrb r0, [r2] - strh r0, [r1] - b _08100B0A - .align 2, 0 -_08100AB4: .4byte gUnknown_0202E8D0 -_08100AB8: - ldr r3, _08100B10 - ldr r2, _08100B14 - ldr r1, _08100B18 - ldrh r0, [r4] - lsls r0, 3 - adds r4, r0, r1 - ldrb r1, [r4] - ldr r0, [r2] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 5 - adds r0, r3 - ldrb r0, [r0, 0x11] - cmp r0, 0x4 - bne _08100B0A - ldrh r0, [r4, 0x4] - strh r0, [r6] - ldrb r0, [r4] - bl sub_8100A60 - movs r1, 0 - ldr r0, _08100B1C - ldr r0, [r0, 0x4] - ldrb r2, [r0] - cmp r1, r2 - bcs _08100B0A - ldr r5, [r0, 0x4] - ldrh r4, [r6] - adds r3, r2, 0 -_08100AF2: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0, r5 - ldrh r0, [r2, 0x14] - cmp r0, r4 - beq _08100AAC - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r3 - bcc _08100AF2 -_08100B0A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08100B10: .4byte gDecorations -_08100B14: .4byte 0x0201f000 -_08100B18: .4byte gUnknown_020391B4 -_08100B1C: .4byte gMapHeader - thumb_func_end sub_8100A7C - - thumb_func_start sub_8100B20 -sub_8100B20: @ 8100B20 - push {r4-r6,lr} - movs r2, 0 - ldr r0, _08100B4C - ldr r0, [r0, 0x4] - ldrb r1, [r0] - cmp r2, r1 - bcs _08100B64 - adds r3, r0, 0 - ldr r5, [r3, 0x4] - ldr r0, _08100B50 - ldrh r4, [r0] - ldr r6, _08100B54 -_08100B38: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r5 - ldrh r0, [r1, 0x14] - cmp r0, r4 - bne _08100B58 - ldrb r0, [r1] - strh r0, [r6] - b _08100B64 - .align 2, 0 -_08100B4C: .4byte gMapHeader -_08100B50: .4byte gUnknown_0202E8CC -_08100B54: .4byte gUnknown_0202E8CE -_08100B58: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r3] - cmp r2, r0 - bcc _08100B38 -_08100B64: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8100B20 - - thumb_func_start sub_8100B6C -sub_8100B6C: @ 8100B6C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r7, 0 - b _08100C64 -_08100B7C: - lsls r3, r7, 3 - ldr r0, _08100BE0 - adds r4, r3, r0 - ldrb r1, [r4] - ldr r2, _08100BE4 - ldr r0, [r2] - adds r0, r1 - ldrb r6, [r0] - lsls r0, r6, 5 - ldr r5, _08100BE8 - adds r0, r5 - ldrb r2, [r0, 0x11] - ldr r5, _08100BE4 - ldr r0, [r5, 0x4] - adds r0, r1 - ldrb r0, [r0] - lsrs r1, r0, 4 - mov r9, r1 - movs r5, 0xF - mov r10, r5 - mov r1, r10 - ands r1, r0 - mov r10, r1 - adds r5, r3, 0 - adds r3, r7, 0x1 - str r3, [sp] - cmp r2, 0x4 - beq _08100C5E - cmp r6, 0x29 - bne _08100BD0 - mov r0, r9 - adds r0, 0x7 - adds r1, 0x7 - bl MapGridGetMetatileIdAt - movs r1, 0xA3 - lsls r1, 2 - cmp r0, r1 - bne _08100BD0 - ldrb r0, [r4, 0x2] - adds r0, 0x1 - strb r0, [r4, 0x2] -_08100BD0: - movs r6, 0 - ldr r1, _08100BE0 - adds r2, r5, 0 - adds r0, r5, r1 - adds r3, r7, 0x1 - str r3, [sp] - b _08100C4E - .align 2, 0 -_08100BE0: .4byte gUnknown_020391B4 -_08100BE4: .4byte 0x0201f000 -_08100BE8: .4byte gDecorations -_08100BEC: - movs r4, 0 - adds r0, r2, r1 - adds r7, r6, 0x1 - str r7, [sp, 0x4] - ldrb r0, [r0, 0x1] - cmp r4, r0 - bcs _08100C42 - ldr r0, _08100C7C - adds r0, r5 - mov r8, r0 - subs r1, r6, 0x7 - str r1, [sp, 0x8] -_08100C04: - adds r0, r4, 0x7 - add r0, r9 - ldr r1, _08100C80 - ldr r3, [r1] - mov r7, r10 - subs r2, r7, r6 - ldr r1, [r3] - muls r2, r1 - mov r7, r9 - adds r1, r7, r4 - adds r1, r2 - ldr r2, [r3, 0xC] - lsls r1, 1 - adds r1, r2 - ldrh r1, [r1] - movs r3, 0xC0 - lsls r3, 6 - adds r2, r3, 0 - orrs r2, r1 - mov r7, r10 - ldr r3, [sp, 0x8] - subs r1, r7, r3 - bl MapGridSetMetatileEntryAt - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - mov r7, r8 - ldrb r7, [r7, 0x1] - cmp r4, r7 - bcc _08100C04 -_08100C42: - ldr r1, [sp, 0x4] - lsls r0, r1, 24 - lsrs r6, r0, 24 - ldr r1, _08100C7C - adds r2, r5, 0 - adds r0, r5, r1 -_08100C4E: - ldrb r0, [r0, 0x2] - cmp r6, r0 - bcc _08100BEC - ldr r2, _08100C7C - adds r0, r5, r2 - ldrb r0, [r0] - bl sub_8100A60 -_08100C5E: - ldr r3, [sp] - lsls r0, r3, 24 - lsrs r7, r0, 24 -_08100C64: - ldr r0, _08100C84 - ldrb r0, [r0] - cmp r7, r0 - bcc _08100B7C - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08100C7C: .4byte gUnknown_020391B4 -_08100C80: .4byte gMapHeader -_08100C84: .4byte gUnknown_02039234 - thumb_func_end sub_8100B6C - - thumb_func_start sub_8100C88 -sub_8100C88: @ 8100C88 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08100CAC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _08100CC4 - cmp r0, 0x1 - bgt _08100CB0 - cmp r0, 0 - beq _08100CBA - b _08100D24 - .align 2, 0 -_08100CAC: .4byte gTasks -_08100CB0: - cmp r0, 0x2 - beq _08100CF4 - cmp r0, 0x3 - beq _08100D08 - b _08100D24 -_08100CBA: - bl sub_8100B6C - movs r0, 0x1 - strh r0, [r5, 0xC] - b _08100D24 -_08100CC4: - ldr r0, _08100CEC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08100D24 - bl DrawWholeMapView - ldr r0, _08100CF0 - bl ScriptContext1_SetupScript - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0x2 - strh r0, [r5, 0xC] - b _08100D24 - .align 2, 0 -_08100CEC: .4byte gPaletteFade -_08100CF0: .4byte gUnknown_081A2F8A -_08100CF4: - bl ScriptContext2_Enable - adds r0, r4, 0 - bl sub_80FED90 - bl pal_fill_black - movs r0, 0x3 - strh r0, [r5, 0xC] - b _08100D24 -_08100D08: - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08100D24 - ldr r0, _08100D2C - strh r0, [r5, 0x22] - ldr r1, _08100D30 - ldr r2, _08100D34 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_08100D24: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08100D2C: .4byte 0x0000ffff -_08100D30: .4byte gSecretBaseText_DecorReturned -_08100D34: .4byte sub_81010F0 - thumb_func_end sub_8100C88 - - thumb_func_start sub_8100D38 -sub_8100D38: @ 8100D38 - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - movs r2, 0 - ldr r0, _08100D68 - adds r4, r0, 0 - ldrb r0, [r4, 0x8] - cmp r2, r0 - bcs _08100D7C - adds r5, r4, 0 - ldr r1, _08100D6C - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r1, r0, r1 -_08100D56: - ldr r0, [r5] - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08100D70 - strh r2, [r1, 0x22] - movs r0, 0x1 - b _08100D7E - .align 2, 0 -_08100D68: .4byte 0x0201f000 -_08100D6C: .4byte gTasks -_08100D70: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrb r0, [r4, 0x8] - cmp r2, r0 - bcc _08100D56 -_08100D7C: - movs r0, 0 -_08100D7E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8100D38 - - thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar -SetUpPuttingAwayDecorationPlayerAvatar: @ 8100D84 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - bl player_get_direction_lower_nybble - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r3, _08100DD8 - ldr r2, _08100DDC - ldr r4, _08100DE0 - ldr r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strb r0, [r3] - bl sub_81016C8 - ldr r0, _08100DE4 - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - str r0, [r4, 0x4] - ldr r0, _08100DE8 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08100DF0 - ldr r1, _08100DEC - str r0, [sp] - movs r0, 0xC1 - b _08100DF8 - .align 2, 0 -_08100DD8: .4byte gUnknown_020391A8 -_08100DDC: .4byte gSprites -_08100DE0: .4byte gUnknown_03004880 -_08100DE4: .4byte gSpriteTemplate_83ECA88 -_08100DE8: .4byte gSaveBlock2 -_08100DEC: .4byte SpriteCallbackDummy -_08100DF0: - ldr r1, _08100E5C - movs r0, 0 - str r0, [sp] - movs r0, 0xC2 -_08100DF8: - movs r2, 0x88 - movs r3, 0x48 - bl AddPseudoFieldObject - ldr r1, _08100E60 - strb r0, [r1] - ldr r6, _08100E64 - ldr r0, _08100E60 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x5] - movs r4, 0xD - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - movs r2, 0x4 - mov r8, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r5, _08100E68 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - ldr r0, _08100E6C - ldr r0, [r0, 0x4] - strb r0, [r5] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0, 0x5] - ands r4, r1 - mov r1, r8 - orrs r4, r1 - strb r4, [r0, 0x5] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08100E5C: .4byte SpriteCallbackDummy -_08100E60: .4byte gUnknown_020391A9 -_08100E64: .4byte gSprites -_08100E68: .4byte gUnknown_020391A8 -_08100E6C: .4byte gUnknown_03004880 - thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar - - thumb_func_start sub_8100E70 -sub_8100E70: @ 8100E70 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08100E94 - adds r4, r0, r1 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08100EC4 - cmp r0, 0x1 - bgt _08100E98 - cmp r0, 0 - beq _08100E9E - b _08100EE6 - .align 2, 0 -_08100E94: .4byte gUnknown_03004B28 -_08100E98: - cmp r0, 0x2 - beq _08100ED2 - b _08100EE6 -_08100E9E: - ldr r0, _08100EC0 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08100EE6 - adds r0, r5, 0 - bl sub_80FF0E0 - movs r0, 0x1 - strh r0, [r4, 0x4] - strh r0, [r4, 0xC] - strh r0, [r4, 0xA] - bl sub_8072DEC - b _08100EE6 - .align 2, 0 -_08100EC0: .4byte gPaletteFade -_08100EC4: - bl SetUpPuttingAwayDecorationPlayerAvatar - bl pal_fill_black - movs r0, 0x2 - strh r0, [r4, 0x4] - b _08100EE6 -_08100ED2: - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08100EE6 - strh r0, [r4, 0x18] - adds r0, r5, 0 - bl sub_8100EEC -_08100EE6: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8100E70 - - thumb_func_start sub_8100EEC -sub_8100EEC: @ 8100EEC - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r4, _08100F70 - ldr r3, _08100F74 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r6, 0 - strh r6, [r0, 0x3C] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _08100F78 - str r1, [r0] - ldr r2, _08100F7C - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x88 - strh r1, [r0, 0x20] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x48 - strh r1, [r0, 0x22] - ldr r1, _08100F80 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r6, [r0, 0x1C] - ldr r1, _08100F84 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08100F70: .4byte gSprites -_08100F74: .4byte gUnknown_020391A8 -_08100F78: .4byte sub_8101698 -_08100F7C: .4byte gUnknown_020391A9 -_08100F80: .4byte gTasks -_08100F84: .4byte sub_8100494 - thumb_func_end sub_8100EEC - - thumb_func_start sub_8100F88 -sub_8100F88: @ 8100F88 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _08100FB0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - bl sub_810045C - adds r0, r4, 0 - bl sub_8101024 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100FB0: .4byte gTasks - thumb_func_end sub_8100F88 - - thumb_func_start sub_8100FB4 -sub_8100FB4: @ 8100FB4 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0810100C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - bl sub_810045C - ldr r3, _08101010 - ldr r5, _08101014 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, 0x1C - adds r0, r3 - ldr r1, _08101018 - str r1, [r0] - ldr r1, _0810101C - ldr r2, _08101020 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810100C: .4byte gTasks -_08101010: .4byte gSprites -_08101014: .4byte gUnknown_020391A8 -_08101018: .4byte SpriteCallbackDummy -_0810101C: .4byte gSecretBaseText_StopPuttingAwayDecor -_08101020: .4byte sub_810156C - thumb_func_end sub_8100FB4 - - thumb_func_start sub_8101024 -sub_8101024: @ 8101024 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_8101460 - ldr r0, _08101040 - ldrb r0, [r0] - cmp r0, 0 - beq _0810104C - ldr r1, _08101044 - ldr r2, _08101048 - b _081010B0 - .align 2, 0 -_08101040: .4byte gUnknown_02039234 -_08101044: .4byte gSecretBaseText_ReturnDecor -_08101048: .4byte sub_8101518 -_0810104C: - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - ldr r0, _081010BC - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r2, 0x2 - ldrsh r1, [r1, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8057238 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08101082 - adds r0, r4, 0 - bl sub_805738C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081010D4 -_08101082: - ldr r3, _081010C0 - ldr r4, _081010C4 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, 0x1C - adds r0, r3 - ldr r1, _081010C8 - str r1, [r0] - ldr r1, _081010CC - ldr r2, _081010D0 -_081010B0: - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _081010E0 - .align 2, 0 -_081010BC: .4byte gUnknown_03004B28 -_081010C0: .4byte gSprites -_081010C4: .4byte gUnknown_020391A8 -_081010C8: .4byte SpriteCallbackDummy -_081010CC: .4byte gSecretBaseText_StopPuttingAwayDecor -_081010D0: .4byte sub_810156C -_081010D4: - ldr r1, _081010E8 - ldr r2, _081010EC - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_081010E0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081010E8: .4byte gSecretBaseText_NoDecor -_081010EC: .4byte sub_81010F0 - thumb_func_end sub_8101024 - - thumb_func_start sub_81010F0 -sub_81010F0: @ 81010F0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08101114 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810110A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08101110 -_0810110A: - adds r0, r2, 0 - bl sub_8100EEC -_08101110: - pop {r0} - bx r0 - .align 2, 0 -_08101114: .4byte gMain - thumb_func_end sub_81010F0 - - thumb_func_start sub_8101118 -sub_8101118: @ 8101118 - push {lr} - adds r2, r1, 0 - lsls r0, 24 - ldr r1, _08101130 - lsrs r0, 19 - adds r0, r1 - ldrb r1, [r0, 0x12] - cmp r1, 0 - bne _08101134 - movs r0, 0x1 - strb r0, [r2, 0x1] - b _08101192 - .align 2, 0 -_08101130: .4byte gDecorations -_08101134: - cmp r1, 0x1 - bne _08101140 - movs r0, 0x2 - strb r0, [r2, 0x1] - strb r1, [r2, 0x2] - b _08101194 -_08101140: - cmp r1, 0x2 - bne _0810114C - movs r0, 0x3 - strb r0, [r2, 0x1] - movs r0, 0x1 - b _08101192 -_0810114C: - cmp r1, 0x3 - bne _08101154 - movs r0, 0x4 - b _0810118E -_08101154: - cmp r1, 0x4 - bne _0810115E - movs r0, 0x2 - strb r0, [r2, 0x1] - b _08101192 -_0810115E: - cmp r1, 0x5 - bne _08101166 - movs r0, 0x1 - b _0810118E -_08101166: - cmp r1, 0x6 - bne _08101172 - movs r0, 0x1 - strb r0, [r2, 0x1] - movs r0, 0x3 - b _08101192 -_08101172: - cmp r1, 0x7 - bne _0810117E - movs r0, 0x2 - strb r0, [r2, 0x1] - movs r0, 0x4 - b _08101192 -_0810117E: - cmp r1, 0x8 - bne _08101188 - movs r0, 0x3 - strb r0, [r2, 0x1] - b _08101192 -_08101188: - cmp r1, 0x9 - bne _08101194 - movs r0, 0x3 -_0810118E: - strb r0, [r2, 0x1] - movs r0, 0x2 -_08101192: - strb r0, [r2, 0x2] -_08101194: - pop {r0} - bx r0 - thumb_func_end sub_8101118 - - thumb_func_start sub_8101198 -sub_8101198: @ 8101198 - push {r4-r6,lr} - lsls r0, 24 - lsls r1, 24 - ldr r5, _081011F0 - ldr r6, _081011F4 - ldrb r3, [r6] - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r2, r5 - adds r2, 0x3E - ldrb r3, [r2] - movs r4, 0x4 - orrs r3, r4 - strb r3, [r2] - ldrb r3, [r6] - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r3, r5, 0 - adds r3, 0x1C - adds r2, r3 - ldr r3, _081011F8 - str r3, [r2] - ldr r4, _081011FC - ldrb r3, [r4] - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r2, r5 - lsrs r0, 20 - adds r0, 0x88 - strh r0, [r2, 0x20] - ldrb r2, [r4] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r5 - lsrs r1, 20 - adds r1, 0x48 - strh r1, [r0, 0x22] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081011F0: .4byte gSprites -_081011F4: .4byte gUnknown_020391A8 -_081011F8: .4byte SpriteCallbackDummy -_081011FC: .4byte gUnknown_020391A9 - thumb_func_end sub_8101198 - - thumb_func_start sub_8101200 -sub_8101200: @ 8101200 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _0810128C - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - ldrb r0, [r2, 0x8] - subs r0, 0x7 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r2, 0xA] - subs r0, 0x7 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r2, _08101290 - ldr r0, [r2, 0x4] - adds r0, r1 - ldrb r0, [r0] - lsrs r4, r0, 4 - movs r5, 0xF - ands r5, r0 - ldr r0, [r2] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x29 - bne _0810125A - adds r0, r4, 0x7 - adds r1, r5, 0x7 - bl MapGridGetMetatileIdAt - movs r1, 0xA3 - lsls r1, 2 - cmp r0, r1 - bne _0810125A - ldrb r0, [r6, 0x2] - subs r0, 0x1 - strb r0, [r6, 0x2] -_0810125A: - cmp r7, r4 - bcc _08101294 - ldrb r1, [r6, 0x1] - adds r0, r4, r1 - cmp r7, r0 - bge _08101294 - ldrb r0, [r6, 0x2] - subs r0, r5, r0 - cmp r8, r0 - ble _08101294 - cmp r8, r5 - bhi _08101294 - subs r0, r7, r4 - adds r0, 0x1 - subs r0, r1, r0 - lsls r0, 24 - lsrs r0, 24 - mov r2, r8 - subs r1, r5, r2 - lsls r1, 24 - lsrs r1, 24 - bl sub_8101198 - movs r0, 0x1 - b _08101296 - .align 2, 0 -_0810128C: .4byte gTasks -_08101290: .4byte 0x0201f000 -_08101294: - movs r0, 0 -_08101296: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8101200 - - thumb_func_start sub_81012A0 -sub_81012A0: @ 81012A0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r2, _0810130C - ldr r3, _08101310 - ldr r0, _08101314 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r3 - ldrb r1, [r0] - ldr r0, [r2, 0x4] - adds r0, r1 - ldrb r0, [r0] - lsrs r7, r0, 4 - movs r6, 0xF - ands r6, r0 - movs r5, 0 - ldr r0, _08101318 - mov r8, r0 - mov r9, r3 -_081012CA: - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 3 - mov r2, r8 - adds r1, r0, r2 - ldr r2, _0810131C - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, r7 - bne _08101328 - ldr r2, _08101320 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, r6 - bne _08101328 - ldr r0, _08101324 - adds r4, r1, r0 - ldrh r0, [r4] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _08101328 - ldr r0, _08101314 - ldrb r0, [r0] - lsls r0, 3 - add r0, r9 - ldrh r1, [r4] - strh r1, [r0, 0x4] - b _08101332 - .align 2, 0 -_0810130C: .4byte 0x0201f000 -_08101310: .4byte gUnknown_020391B4 -_08101314: .4byte gUnknown_02039234 -_08101318: .4byte gSaveBlock1 -_0810131C: .4byte 0x00000c24 -_08101320: .4byte 0x00000c26 -_08101324: .4byte 0x00000c34 -_08101328: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3F - bls _081012CA -_08101332: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81012A0 - - thumb_func_start sub_8101340 -sub_8101340: @ 8101340 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - b _081013A2 -_0810134A: - ldr r0, [r0] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0 - beq _0810139C - ldr r0, _08101390 - ldrb r2, [r1] - lsls r1, r2, 5 - adds r1, r0 - ldrb r0, [r1, 0x11] - cmp r0, 0x4 - bne _0810139C - ldr r5, _08101394 - adds r0, r2, 0 - adds r1, r5, 0 - bl sub_8101118 - lsls r1, r6, 24 - lsrs r1, 24 - adds r0, r7, 0 - adds r2, r5, 0 - bl sub_8101200 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _0810139C - strb r6, [r5] - bl sub_81012A0 - ldr r0, _08101398 - strb r4, [r0] - movs r0, 0x1 - b _081013AC - .align 2, 0 -_08101390: .4byte gDecorations -_08101394: .4byte gUnknown_020391B4 -_08101398: .4byte gUnknown_02039234 -_0810139C: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_081013A2: - ldr r0, _081013B4 - ldrb r1, [r0, 0x8] - cmp r6, r1 - bcc _0810134A - movs r0, 0 -_081013AC: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_081013B4: .4byte 0x0201f000 - thumb_func_end sub_8101340 - - thumb_func_start sub_81013B8 -sub_81013B8: @ 81013B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - movs r4, 0 - ldr r7, _08101450 - ldrb r0, [r7, 0x8] - cmp r4, r0 - bcs _0810143E - adds r6, r7, 0 - ldr r5, _08101454 -_081013EA: - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - ldr r0, [r6, 0x4] - adds r0, r4 - ldrb r0, [r0] - lsrs r3, r0, 4 - movs r2, 0xF - ands r2, r0 - cmp r1, 0 - beq _08101432 - ldr r0, _08101458 - lsls r1, 5 - adds r1, r0 - ldrb r0, [r1, 0x11] - cmp r0, 0x4 - bne _08101432 - ldr r0, [sp] - cmp r0, r3 - bhi _08101432 - cmp r10, r2 - bhi _08101432 - cmp r9, r3 - bcc _08101432 - cmp r8, r2 - bcc _08101432 - ldr r0, _0810145C - ldrb r1, [r5] - lsls r1, 3 - adds r1, r0 - strb r4, [r1] - bl sub_81012A0 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] -_08101432: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r7, 0x8] - cmp r4, r0 - bcc _081013EA -_0810143E: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08101450: .4byte 0x0201f000 -_08101454: .4byte gUnknown_02039234 -_08101458: .4byte gDecorations -_0810145C: .4byte gUnknown_020391B4 - thumb_func_end sub_81013B8 - - thumb_func_start sub_8101460 -sub_8101460: @ 8101460 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _081014B8 - movs r0, 0 - strb r0, [r4] - adds r0, r6, 0 - bl sub_8101340 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08101504 - movs r5, 0 - ldr r0, _081014BC - ldrb r1, [r0, 0x8] - cmp r5, r1 - bcs _081014D2 - adds r7, r4, 0 -_08101486: - ldr r0, [r0] - adds r0, r5 - ldrb r1, [r0] - cmp r1, 0 - beq _081014C4 - ldr r4, _081014C0 - adds r0, r1, 0 - adds r1, r4, 0 - bl sub_8101118 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_8101200 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081014C4 - strb r5, [r4] - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] - b _081014D2 - .align 2, 0 -_081014B8: .4byte gUnknown_02039234 -_081014BC: .4byte 0x0201f000 -_081014C0: .4byte gUnknown_020391B4 -_081014C4: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0810150C - ldrb r1, [r0, 0x8] - cmp r5, r1 - bcc _08101486 -_081014D2: - ldr r0, _08101510 - ldrb r0, [r0] - cmp r0, 0 - beq _08101504 - ldr r0, _0810150C - ldr r2, _08101514 - ldrb r1, [r2] - ldr r0, [r0, 0x4] - adds r0, r1 - ldrb r1, [r0] - lsrs r0, r1, 4 - movs r3, 0xF - ands r3, r1 - ldrb r1, [r2, 0x2] - subs r1, r3, r1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r2, 0x1] - adds r2, r0 - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - bl sub_81013B8 -_08101504: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810150C: .4byte 0x0201f000 -_08101510: .4byte gUnknown_02039234 -_08101514: .4byte gUnknown_020391B4 - thumb_func_end sub_8101460 - - thumb_func_start sub_8101518 -sub_8101518: @ 8101518 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _08101538 - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101538: .4byte gUnknown_083EC9CC - thumb_func_end sub_8101518 - - thumb_func_start sub_810153C -sub_810153C: @ 810153C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, _08101564 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, _08101568 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101564: .4byte gTasks -_08101568: .4byte sub_8100C88 - thumb_func_end sub_810153C - - thumb_func_start sub_810156C -sub_810156C: @ 810156C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _0810158C - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810158C: .4byte gUnknown_083EC9D4 - thumb_func_end sub_810156C - - thumb_func_start sub_8101590 -sub_8101590: @ 8101590 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_81015B0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8101590 - - thumb_func_start sub_81015B0 -sub_81015B0: @ 81015B0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, _081015D8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, _081015DC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081015D8: .4byte gTasks -_081015DC: .4byte sub_81015E0 - thumb_func_end sub_81015B0 - - thumb_func_start sub_81015E0 -sub_81015E0: @ 81015E0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08101600 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08101604 - cmp r0, 0x1 - beq _08101620 - b _08101636 - .align 2, 0 -_08101600: .4byte gTasks -_08101604: - ldr r0, _0810161C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08101636 - adds r0, r4, 0 - bl sub_80FF114 - movs r0, 0x1 - strh r0, [r5, 0xC] - b _08101636 - .align 2, 0 -_0810161C: .4byte gPaletteFade -_08101620: - bl sub_81016F4 - ldr r0, _0810163C - ldr r1, _08101640 - str r1, [r0] - ldr r0, _08101644 - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_08101636: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810163C: .4byte gUnknown_0300485C -_08101640: .4byte sub_8101678 -_08101644: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_81015E0 - - thumb_func_start sub_8101648 -sub_8101648: @ 8101648 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08101668 - ldr r0, _08101670 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08101674 - str r0, [r1] -_08101668: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101670: .4byte gTasks -_08101674: .4byte sub_80FE2EC - thumb_func_end sub_8101648 - - thumb_func_start sub_8101678 -sub_8101678: @ 8101678 - push {lr} - bl pal_fill_black - bl MenuDisplayMessageBox - bl sub_80FE220 - ldr r0, _08101694 - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08101694: .4byte sub_8101648 - thumb_func_end sub_8101678 - - thumb_func_start sub_8101698 -sub_8101698: @ 8101698 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r2, 0x2E] - cmp r0, 0xF - ble _081016B8 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _081016C4 -_081016B8: - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_081016C4: - pop {r0} - bx r0 - thumb_func_end sub_8101698 - - thumb_func_start sub_81016C8 -sub_81016C8: @ 81016C8 - push {lr} - ldr r0, _081016DC - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _081016E4 - ldr r0, _081016E0 - bl LoadSpritePalette - b _081016EA - .align 2, 0 -_081016DC: .4byte gSaveBlock2 -_081016E0: .4byte gUnknown_083ECA5C -_081016E4: - ldr r0, _081016F0 - bl LoadSpritePalette -_081016EA: - pop {r0} - bx r0 - .align 2, 0 -_081016F0: .4byte gUnknown_083ECA64 - thumb_func_end sub_81016C8 - - thumb_func_start sub_81016F4 -sub_81016F4: @ 81016F4 - push {lr} - movs r0, 0x8 - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - thumb_func_end sub_81016F4 - - thumb_func_start sub_8101700 -sub_8101700: @ 8101700 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81341D4 - lsls r0, 24 - cmp r0, 0 - bne _08101728 - ldr r1, _08101720 - ldr r2, _08101724 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _08101742 - .align 2, 0 -_08101720: .4byte gSecretBaseText_NoDecors -_08101724: .4byte sub_80FE428 -_08101728: - ldr r1, _08101748 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0x1 - strh r1, [r0, 0x1E] - ldr r0, _0810174C - strb r2, [r0] - adds r0, r4, 0 - bl sub_80FE5AC -_08101742: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101748: .4byte gTasks -_0810174C: .4byte gUnknown_020388F6 - thumb_func_end sub_8101700 - - thumb_func_start unref_sub_8101750 -unref_sub_8101750: @ 8101750 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81341D4 - lsls r0, 24 - cmp r0, 0 - bne _08101778 - ldr r1, _08101770 - ldr r2, _08101774 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _08101792 - .align 2, 0 -_08101770: .4byte gSecretBaseText_NoDecors -_08101774: .4byte sub_80FE428 -_08101778: - ldr r1, _08101798 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0x2 - strh r1, [r0, 0x1E] - ldr r0, _0810179C - strb r2, [r0] - adds r0, r4, 0 - bl sub_80FE5AC -_08101792: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101798: .4byte gTasks -_0810179C: .4byte gUnknown_020388F6 - thumb_func_end unref_sub_8101750 - - thumb_func_start sub_81017A0 -sub_81017A0: @ 81017A0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_80FEF74 - bl sub_80FED1C - bl sub_80FEFA4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08101808 - ldr r0, _081017EC - ldr r1, _081017F0 - ldrb r2, [r1] - ldr r1, _081017F4 - ldr r1, [r1] - adds r1, r2 - ldrb r1, [r1] - lsls r1, 5 - ldr r2, _081017F8 - adds r1, r2 - bl StringCopy - ldr r4, _081017FC - ldr r1, _08101800 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _08101804 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _08101814 - .align 2, 0 -_081017EC: .4byte gStringVar1 -_081017F0: .4byte gUnknown_020388F5 -_081017F4: .4byte gUnknown_020388D0 -_081017F8: .4byte gDecorations + 0x1 -_081017FC: .4byte gStringVar4 -_08101800: .4byte gSecretBaseText_WillBeDiscarded -_08101804: .4byte sub_8101824 -_08101808: - ldr r1, _0810181C - ldr r2, _08101820 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_08101814: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810181C: .4byte gSecretBaseText_DecorInUse -_08101820: .4byte sub_80FEFF4 - thumb_func_end sub_81017A0 - - thumb_func_start sub_8101824 -sub_8101824: @ 8101824 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _08101844 - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101844: .4byte gUnknown_083ECAA0 - thumb_func_end sub_8101824 - - thumb_func_start sub_8101848 -sub_8101848: @ 8101848 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1A - movs r3, 0xE - bl MenuZeroFillWindowRect - ldr r6, _08101890 - ldrb r1, [r6] - ldr r5, _08101894 - ldr r0, [r5] - adds r0, r1 - ldrb r0, [r0] - bl sub_8109A30 - ldrb r1, [r6] - ldr r0, [r5] - adds r0, r1 - movs r1, 0 - strb r1, [r0] - adds r0, r4, 0 - bl sub_80FF098 - ldr r1, _08101898 - ldr r2, _0810189C - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08101890: .4byte gUnknown_020388F5 -_08101894: .4byte gUnknown_020388D0 -_08101898: .4byte gSecretBaseText_DecorThrownAway -_0810189C: .4byte sub_80FEFF4 - thumb_func_end sub_8101848 - - thumb_func_start sub_81018A0 -sub_81018A0: @ 81018A0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_81019B0 - ldr r0, _081018B4 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_081018B4: .4byte sub_81018B8 - thumb_func_end sub_81018A0 - - thumb_func_start sub_81018B8 -sub_81018B8: @ 81018B8 - push {lr} - ldr r0, _081018D0 - ldr r1, _081018D4 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x6 - bhi _0810194A - lsls r0, 2 - ldr r1, _081018D8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081018D0: .4byte gMain -_081018D4: .4byte 0x0000043c -_081018D8: .4byte _081018DC - .align 2, 0 -_081018DC: - .4byte _081018F8 - .4byte _08101902 - .4byte _08101908 - .4byte _08101912 - .4byte _08101918 - .4byte _0810191E - .4byte _08101938 -_081018F8: - bl sub_8101A28 - bl sub_8101BA4 - b _08101922 -_08101902: - bl sub_8101A8C - b _08101922 -_08101908: - bl sub_8101AE0 - bl sub_8101B04 - b _08101922 -_08101912: - bl sub_8101C84 - b _08101922 -_08101918: - bl sub_8101CA0 - b _08101922 -_0810191E: - bl sub_8101CC0 -_08101922: - ldr r1, _08101930 - ldr r0, _08101934 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0810194A - .align 2, 0 -_08101930: .4byte gMain -_08101934: .4byte 0x0000043c -_08101938: - bl sub_8101CD4 - bl sub_8101CEC - bl sub_8101A44 - ldr r0, _08101950 - bl SetMainCallback2 -_0810194A: - pop {r0} - bx r0 - .align 2, 0 -_08101950: .4byte sub_8101954 - thumb_func_end sub_81018B8 - - thumb_func_start sub_8101954 -sub_8101954: @ 8101954 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8101954 - - thumb_func_start sub_810196C -sub_810196C: @ 810196C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r1, _081019A8 - ldr r2, _081019AC - adds r0, r2, 0 - adds r0, 0x58 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - adds r0, r2, 0 - adds r0, 0x5A - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - adds r0, r2, 0 - adds r0, 0x5C - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - adds r0, r2, 0 - adds r0, 0x5E - ldrh r0, [r0] - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081019A8: .4byte REG_WIN0H -_081019AC: .4byte 0x02000000 - thumb_func_end sub_810196C - - thumb_func_start sub_81019B0 -sub_81019B0: @ 81019B0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _081019E4 - movs r1, 0xFF - bl CreateTask - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _081019E8 - adds r0, r1 - strh r4, [r0, 0x8] - adds r0, 0xA - adds r1, r5, 0 - bl StoreWordInTwoHalfwords - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081019E4: .4byte nullsub_67 -_081019E8: .4byte gTasks - thumb_func_end sub_81019B0 - - thumb_func_start sub_81019EC -sub_81019EC: @ 81019EC - push {lr} - ldr r0, _08101A18 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - ldr r0, _08101A1C - adds r2, r0 - ldr r1, _08101A20 - ldrh r0, [r2, 0x8] - strb r0, [r1, 0x1] - adds r2, 0xA - adds r1, 0x64 - adds r0, r2, 0 - bl LoadWordFromTwoHalfwords - pop {r0} - bx r0 - .align 2, 0 -_08101A18: .4byte nullsub_67 -_08101A1C: .4byte gTasks -_08101A20: .4byte 0x02000000 - thumb_func_end sub_81019EC - - thumb_func_start nullsub_67 -nullsub_67: @ 8101A24 - bx lr - thumb_func_end nullsub_67 - - thumb_func_start sub_8101A28 -sub_8101A28: @ 8101A28 - push {lr} - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - pop {r0} - bx r0 - thumb_func_end sub_8101A28 - - thumb_func_start sub_8101A44 -sub_8101A44: @ 8101A44 - push {r4,lr} - ldr r0, _08101A7C - bl SetVBlankCallback - ldr r3, _08101A80 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _08101A84 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08101A88 - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101A7C: .4byte sub_810196C -_08101A80: .4byte 0x04000208 -_08101A84: .4byte 0x04000200 -_08101A88: .4byte REG_DISPSTAT - thumb_func_end sub_8101A44 - - thumb_func_start sub_8101A8C -sub_8101A8C: @ 8101A8C - push {r4-r7,lr} - sub sp, 0x4 - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0x80 - lsls r3, 9 - mov r4, sp - movs r6, 0 - ldr r1, _08101AD8 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _08101ADC - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_08101AAA: - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r5 - subs r3, r5 - cmp r3, r5 - bhi _08101AAA - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08101AD8: .4byte 0x040000d4 -_08101ADC: .4byte 0x81000800 - thumb_func_end sub_8101A8C - - thumb_func_start sub_8101AE0 -sub_8101AE0: @ 8101AE0 - sub sp, 0x4 - movs r2, 0xE0 - lsls r2, 19 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r0, _08101AFC - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _08101B00 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - add sp, 0x4 - bx lr - .align 2, 0 -_08101AFC: .4byte 0x040000d4 -_08101B00: .4byte 0x81000200 - thumb_func_end sub_8101AE0 - - thumb_func_start sub_8101B04 -sub_8101B04: @ 8101B04 - push {r4,r5,lr} - ldr r5, _08101B70 - movs r1, 0 - strh r1, [r5] - ldr r2, _08101B74 - strh r1, [r2] - ldr r3, _08101B78 - strh r1, [r3] - ldr r4, _08101B7C - strh r1, [r4] - ldr r0, _08101B80 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _08101B84 - adds r0, r1, 0 - strh r0, [r5] - ldr r1, _08101B88 - adds r0, r1, 0 - strh r0, [r2] - ldr r2, _08101B8C - adds r0, r2, 0 - strh r0, [r3] - ldr r1, _08101B90 - adds r0, r1, 0 - strh r0, [r4] - ldr r0, _08101B94 - movs r1, 0x3F - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _08101B98 - ldr r2, _08101B9C - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _08101BA0 - adds r0, r2, 0 - strh r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08101B70: .4byte REG_BG0CNT -_08101B74: .4byte REG_BG1CNT -_08101B78: .4byte REG_BG2CNT -_08101B7C: .4byte REG_BG3CNT -_08101B80: .4byte REG_BG0HOFS -_08101B84: .4byte 0x00001f08 -_08101B88: .4byte 0x00001c01 -_08101B8C: .4byte 0x00001d02 -_08101B90: .4byte 0x00001e02 -_08101B94: .4byte REG_WININ -_08101B98: .4byte REG_BLDCNT -_08101B9C: .4byte 0x00001048 -_08101BA0: .4byte 0x00000809 - thumb_func_end sub_8101B04 - - thumb_func_start sub_8101BA4 -sub_8101BA4: @ 8101BA4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - bl sub_81019EC - ldr r5, _08101C74 - movs r4, 0 - strb r4, [r5] - strb r4, [r5, 0x2] - bl Random - movs r1, 0x1 - ands r1, r0 - strb r1, [r5, 0x3] - strb r4, [r5, 0x4] - movs r0, 0 - strh r4, [r5, 0x8] - strb r0, [r5, 0xA] - strb r0, [r5, 0xB] - ldr r0, _08101C78 - ldr r1, _08101C7C - adds r0, r1 - ldrh r0, [r0] - strh r0, [r5, 0xC] - strh r4, [r5, 0xE] - strh r4, [r5, 0x10] - strh r4, [r5, 0x12] - strh r4, [r5, 0x18] - movs r0, 0x8 - strh r0, [r5, 0x1A] - adds r1, r5, 0 - adds r1, 0x58 - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0xA0 - strh r0, [r1] - adds r0, r5, 0 - adds r0, 0x5C - movs r1, 0x3F - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl GetCurrentMapMusic - adds r1, r5, 0 - adds r1, 0x60 - strh r0, [r1] - movs r7, 0 - adds r6, r5, 0 - ldr r2, _08101C80 - mov r9, r2 - movs r0, 0x1C - adds r0, r6 - mov r8, r0 -_08101C14: - lsls r5, r7, 1 - adds r0, r6, 0 - adds r0, 0x22 - adds r0, r5, r0 - movs r1, 0 - strh r1, [r0] - adds r4, r6, 0 - adds r4, 0x28 - adds r4, r5, r4 - ldrb r0, [r6, 0x3] - lsls r0, 1 - lsls r1, r7, 2 - adds r0, r1 - add r0, r9 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x15 - bl __modsi3 - strh r0, [r4] - add r5, r8 - movs r2, 0 - ldrsh r0, [r4, r2] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - movs r2, 0xFC - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r5] - movs r1, 0 - ldrsh r0, [r5, r1] - adds r1, r2, 0 - bl __modsi3 - strh r0, [r5] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _08101C14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08101C74: .4byte 0x02000000 -_08101C78: .4byte gSaveBlock1 -_08101C7C: .4byte 0x00000494 -_08101C80: .4byte gUnknown_083ECCF8 - thumb_func_end sub_8101BA4 - - thumb_func_start sub_8101C84 -sub_8101C84: @ 8101C84 - push {r4,lr} - ldr r4, _08101C9C - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101C9C: .4byte gWindowConfig_81E7128 - thumb_func_end sub_8101C84 - - thumb_func_start sub_8101CA0 -sub_8101CA0: @ 8101CA0 - push {lr} - bl ResetPaletteFade - bl ResetSpriteData - ldr r1, _08101CBC - movs r0, 0x80 - strb r0, [r1] - bl FreeAllSpritePalettes - bl ResetTasks - pop {r0} - bx r0 - .align 2, 0 -_08101CBC: .4byte gOamLimit - thumb_func_end sub_8101CA0 - - thumb_func_start sub_8101CC0 -sub_8101CC0: @ 8101CC0 - push {lr} - bl sub_8106448 - bl sub_81064B8 - bl sub_81063C0 - pop {r0} - bx r0 - thumb_func_end sub_8101CC0 - - thumb_func_start sub_8101CD4 -sub_8101CD4: @ 8101CD4 - push {lr} - bl sub_8104EA8 - bl sub_8104F8C - bl sub_8103DC8 - bl sub_81050C4 - pop {r0} - bx r0 - thumb_func_end sub_8101CD4 - - thumb_func_start sub_8101CEC -sub_8101CEC: @ 8101CEC - push {lr} - bl sub_8104048 - bl sub_8102DA8 - bl sub_8104C5C - bl sub_8101D04 - pop {r0} - bx r0 - thumb_func_end sub_8101CEC - - thumb_func_start sub_8101D04 -sub_8101D04: @ 8101D04 - push {r4,lr} - ldr r4, _08101D20 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101D20: .4byte sub_8101D24 - thumb_func_end sub_8101D04 - - thumb_func_start sub_8101D24 -sub_8101D24: @ 8101D24 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r7, _08101D50 - lsls r1, r0, 2 - adds r1, r0 - lsls r4, r1, 3 - ldr r6, _08101D54 - ldr r5, _08101D58 -_08101D36: - ldrb r0, [r6] - lsls r0, 2 - adds r0, r7 - ldr r1, [r0] - adds r0, r4, r5 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _08101D36 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08101D50: .4byte gUnknown_083ECAAC -_08101D54: .4byte 0x02000000 -_08101D58: .4byte gTasks - thumb_func_end sub_8101D24 - - thumb_func_start sub_8101D5C -sub_8101D5C: @ 8101D5C - push {r4,lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r4, _08101D88 - ldrb r0, [r4, 0x2] - bl sub_810423C - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08101D88: .4byte 0x02000000 - thumb_func_end sub_8101D5C - - thumb_func_start sub_8101D8C -sub_8101D8C: @ 8101D8C - push {lr} - ldr r0, _08101DA8 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08101DA2 - ldr r1, _08101DAC - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08101DA2: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08101DA8: .4byte gPaletteFade -_08101DAC: .4byte 0x02000000 - thumb_func_end sub_8101D8C - - thumb_func_start sub_8101DB0 -sub_8101DB0: @ 8101DB0 - push {lr} - ldr r2, _08101DD8 - movs r0, 0 - strh r0, [r2, 0xE] - strh r0, [r2, 0x12] - strh r0, [r2, 0x18] - ldrb r1, [r2, 0x4] - movs r0, 0xC0 - ands r0, r1 - strb r0, [r2, 0x4] - movs r0, 0x4 - strb r0, [r2] - movs r1, 0xC - ldrsh r0, [r2, r1] - cmp r0, 0 - bgt _08101DDC - movs r0, 0x19 - strb r0, [r2] - b _08101DEC - .align 2, 0 -_08101DD8: .4byte 0x02000000 -_08101DDC: - ldrb r0, [r2, 0xA] - cmp r0, 0 - beq _08101DEC - movs r0, 0x3 - strb r0, [r2] - movs r0, 0x4 - bl sub_8104CAC -_08101DEC: - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8101DB0 - - thumb_func_start sub_8101DF4 -sub_8101DF4: @ 8101DF4 - push {lr} - bl sub_8104E18 - lsls r0, 24 - cmp r0, 0 - beq _08101E06 - ldr r1, _08101E0C - movs r0, 0x4 - strb r0, [r1] -_08101E06: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08101E0C: .4byte 0x02000000 - thumb_func_end sub_8101DF4 - - thumb_func_start sub_8101E10 -sub_8101E10: @ 8101E10 - push {lr} - movs r0, 0 - bl sub_8104CAC - ldr r2, _08101E34 - movs r0, 0x5 - strb r0, [r2] - movs r0, 0xC - ldrsh r1, [r2, r0] - ldr r0, _08101E38 - cmp r1, r0 - ble _08101E2C - movs r0, 0x17 - strb r0, [r2] -_08101E2C: - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_08101E34: .4byte 0x02000000 -_08101E38: .4byte 0x0000270e - thumb_func_end sub_8101E10 - - thumb_func_start sub_8101E3C -sub_8101E3C: @ 8101E3C - push {r4,lr} - ldr r0, _08101E58 - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08101E60 - movs r0, 0 - bl sub_8104AB8 - ldr r1, _08101E5C - movs r0, 0x8 - strb r0, [r1] - b _08101F1A - .align 2, 0 -_08101E58: .4byte gMain -_08101E5C: .4byte 0x02000000 -_08101E60: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08101EC2 - ldr r2, _08101EB8 - movs r1, 0xC - ldrsh r0, [r2, r1] - subs r0, 0x3 - movs r3, 0x12 - ldrsh r1, [r2, r3] - adds r0, r1 - cmp r0, 0 - blt _08101EBC - ldrh r4, [r2, 0x12] - adds r0, r1, 0 - cmp r0, 0x2 - bgt _08101E9C -_08101E84: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8103D50 - lsls r0, r4, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _08101E84 -_08101E9C: - ldr r1, _08101EB8 - ldrh r0, [r1, 0xC] - subs r0, 0x3 - ldrh r3, [r1, 0x12] - adds r0, r3 - strh r0, [r1, 0xC] - movs r0, 0x3 - strh r0, [r1, 0x12] - movs r0, 0x9 - strb r0, [r1] - movs r0, 0x5F - bl PlaySE - b _08101F1A - .align 2, 0 -_08101EB8: .4byte 0x02000000 -_08101EBC: - movs r0, 0x6 - strb r0, [r2] - b _08101F1A -_08101EC2: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08101EEC - ldr r4, _08101F24 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08101EEC - movs r0, 0x5F - bl PlaySE - ldrb r0, [r4, 0x12] - bl sub_8103D50 - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] -_08101EEC: - ldr r0, _08101F24 - movs r2, 0x12 - ldrsh r1, [r0, r2] - ldr r2, _08101F28 - adds r3, r0, 0 - cmp r1, 0x2 - bgt _08101F08 - cmp r1, 0 - beq _08101F0C - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08101F0C -_08101F08: - movs r0, 0x9 - strb r0, [r3] -_08101F0C: - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08101F1A - movs r0, 0x15 - strb r0, [r3] -_08101F1A: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08101F24: .4byte 0x02000000 -_08101F28: .4byte gMain - thumb_func_end sub_8101E3C - - thumb_func_start sub_8101F2C -sub_8101F2C: @ 8101F2C - push {r4,lr} - adds r4, r0, 0 - bl MenuDisplayMessageBox - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8101F2C - - thumb_func_start sub_8101F44 -sub_8101F44: @ 8101F44 - push {lr} - ldr r0, _08101F58 - bl sub_8101F2C - ldr r1, _08101F5C - movs r0, 0x7 - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08101F58: .4byte gOtherText_DontHaveThreeCoins -_08101F5C: .4byte 0x02000000 - thumb_func_end sub_8101F44 - - thumb_func_start sub_8101F60 -sub_8101F60: @ 8101F60 - push {lr} - ldr r0, _08101F80 - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08101F78 - bl MenuZeroFillScreen - ldr r1, _08101F84 - movs r0, 0x5 - strb r0, [r1] -_08101F78: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08101F80: .4byte gMain -_08101F84: .4byte 0x02000000 - thumb_func_end sub_8101F60 - - thumb_func_start sub_8101F88 -sub_8101F88: @ 8101F88 - push {lr} - bl sub_8104AEC - lsls r0, 24 - cmp r0, 0 - beq _08101F9A - ldr r1, _08101FA0 - movs r0, 0x5 - strb r0, [r1] -_08101F9A: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08101FA0: .4byte 0x02000000 - thumb_func_end sub_8101F88 - - thumb_func_start sub_8101FA4 -sub_8101FA4: @ 8101FA4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8102484 - bl sub_8104DA4 - movs r0, 0 - bl sub_8102DEC - movs r0, 0x1 - bl sub_8102DEC - movs r0, 0x2 - bl sub_8102DEC - movs r0, 0 - strh r0, [r4, 0x8] - ldr r4, _08101FDC - ldrb r1, [r4, 0x4] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08101FE0 - bl sub_810430C - movs r0, 0xA - b _08101FE8 - .align 2, 0 -_08101FDC: .4byte 0x02000000 -_08101FE0: - movs r0, 0x1 - bl sub_8104CAC - movs r0, 0xB -_08101FE8: - strb r0, [r4] - ldr r4, _08102004 - movs r0, 0x8 - strh r0, [r4, 0x1A] - ldrb r0, [r4, 0xA] - cmp r0, 0 - beq _08101FFC - bl dp15_jump_random_unknown - strh r0, [r4, 0x1A] -_08101FFC: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102004: .4byte 0x02000000 - thumb_func_end sub_8101FA4 - - thumb_func_start sub_8102008 -sub_8102008: @ 8102008 - push {lr} - bl sub_810432C - lsls r0, 24 - cmp r0, 0 - beq _08102028 - movs r0, 0x1 - bl sub_8104CAC - ldr r1, _08102030 - ldrb r2, [r1, 0x4] - movs r0, 0xDF - ands r0, r2 - strb r0, [r1, 0x4] - movs r0, 0xB - strb r0, [r1] -_08102028: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102030: .4byte 0x02000000 - thumb_func_end sub_8102008 - - thumb_func_start sub_8102034 -sub_8102034: @ 8102034 - push {lr} - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x1D - ble _0810204E - bl sub_81024F0 - ldr r1, _08102054 - movs r0, 0xC - strb r0, [r1] -_0810204E: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102054: .4byte 0x02000000 - thumb_func_end sub_8102034 - - thumb_func_start sub_8102058 -sub_8102058: @ 8102058 - push {r4,lr} - ldr r0, _08102088 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810207E - movs r0, 0x18 - bl PlaySE - ldr r4, _0810208C - ldrb r0, [r4, 0x18] - bl sub_8102E1C - ldrb r0, [r4, 0x18] - bl sub_8103C14 - movs r0, 0xD - strb r0, [r4] -_0810207E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102088: .4byte gMain -_0810208C: .4byte 0x02000000 - thumb_func_end sub_8102058 - - thumb_func_start sub_8102090 -sub_8102090: @ 8102090 - push {r4,lr} - ldr r4, _081020BC - ldrb r0, [r4, 0x18] - bl sub_8102E40 - lsls r0, 24 - cmp r0, 0 - bne _081020C0 - ldrh r0, [r4, 0x18] - adds r0, 0x1 - strh r0, [r4, 0x18] - movs r1, 0xC - strb r1, [r4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _081020B6 - movs r0, 0xE - strb r0, [r4] -_081020B6: - movs r0, 0x1 - b _081020C2 - .align 2, 0 -_081020BC: .4byte 0x02000000 -_081020C0: - movs r0, 0 -_081020C2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8102090 - - thumb_func_start sub_81020C8 -sub_81020C8: @ 81020C8 - push {r4,lr} - ldr r4, _08102128 - ldrb r1, [r4, 0x4] - movs r0, 0xC0 - ands r0, r1 - strb r0, [r4, 0x4] - bl sub_81027A0 - ldrb r0, [r4, 0xA] - cmp r0, 0 - beq _081020E8 - subs r0, 0x1 - strb r0, [r4, 0xA] - ldrb r0, [r4, 0xB] - adds r0, 0x1 - strb r0, [r4, 0xB] -_081020E8: - ldrh r0, [r4, 0x8] - cmp r0, 0 - beq _081021B4 - movs r0, 0xF - strb r0, [r4] - bl sub_8102A24 - bl sub_8103F70 - ldrh r0, [r4, 0x10] - ldrh r1, [r4, 0xE] - subs r0, r1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bge _0810210C - movs r0, 0 - strh r0, [r4, 0x10] -_0810210C: - ldrh r1, [r4, 0x8] - movs r0, 0xC0 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08102130 - ldr r0, _0810212C - bl PlayFanfare - movs r0, 0x6 - bl sub_8104CAC - b _0810215A - .align 2, 0 -_08102128: .4byte 0x02000000 -_0810212C: .4byte 0x00000185 -_08102130: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0810214C - ldr r0, _08102148 - bl PlayFanfare - movs r0, 0x5 - bl sub_8104CAC - b _0810215A - .align 2, 0 -_08102148: .4byte 0x00000185 -_0810214C: - movs r0, 0xC3 - lsls r0, 1 - bl PlayFanfare - movs r0, 0x2 - bl sub_8104CAC -_0810215A: - ldr r1, _081021B0 - ldrh r3, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 1 - ands r0, r3 - adds r2, r1, 0 - cmp r0, 0 - beq _08102192 - ldrb r1, [r2, 0x4] - movs r0, 0x3F - ands r0, r1 - movs r1, 0 - strb r0, [r2, 0x4] - movs r0, 0xC0 - lsls r0, 1 - ands r0, r3 - cmp r0, 0 - beq _08102192 - strb r1, [r2, 0xA] - strb r1, [r2, 0xB] - strb r1, [r2, 0x3] - movs r0, 0x80 - lsls r0, 1 - ands r0, r3 - cmp r0, 0 - beq _08102192 - movs r0, 0x1 - strb r0, [r2, 0x3] -_08102192: - ldrh r1, [r2, 0x8] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081021D2 - ldrb r0, [r2, 0x2] - cmp r0, 0xF - bhi _081021D2 - adds r0, 0x1 - strb r0, [r2, 0x2] - ldrb r0, [r2, 0x2] - bl sub_8104064 - b _081021D2 - .align 2, 0 -_081021B0: .4byte 0x02000000 -_081021B4: - movs r0, 0x3 - bl sub_8104CAC - movs r0, 0x14 - strb r0, [r4] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x10] - adds r0, r1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - ldr r1, _081021DC - cmp r0, r1 - ble _081021D2 - strh r1, [r4, 0x10] -_081021D2: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081021DC: .4byte 0x0000270f - thumb_func_end sub_81020C8 - - thumb_func_start sub_81021E0 -sub_81021E0: @ 81021E0 - push {lr} - bl sub_8102A44 - lsls r0, 24 - cmp r0, 0 - beq _081021F2 - ldr r1, _081021F8 - movs r0, 0x10 - strb r0, [r1] -_081021F2: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081021F8: .4byte 0x02000000 - thumb_func_end sub_81021E0 - - thumb_func_start sub_81021FC -sub_81021FC: @ 81021FC - push {r4,lr} - bl sub_8103FA0 - lsls r0, 24 - cmp r0, 0 - beq _08102256 - ldr r4, _08102260 - movs r0, 0x13 - strb r0, [r4] - ldrh r1, [r4, 0x8] - movs r0, 0xC0 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08102220 - movs r0, 0x1C - bl sav12_xor_increment -_08102220: - ldrh r1, [r4, 0x8] - movs r0, 0x4 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _08102236 - movs r0, 0 - strh r0, [r4, 0x18] - movs r0, 0x9 - strb r0, [r4] -_08102236: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08102242 - movs r0, 0x11 - strb r0, [r4] -_08102242: - ldrb r0, [r4, 0xA] - cmp r0, 0 - beq _08102256 - cmp r2, 0 - beq _08102256 - movs r0, 0x4 - bl sub_8104CAC - movs r0, 0x12 - strb r0, [r4] -_08102256: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102260: .4byte 0x02000000 - thumb_func_end sub_81021FC - - thumb_func_start sub_8102264 -sub_8102264: @ 8102264 - push {r4,lr} - bl sub_81040C8 - lsls r0, 24 - cmp r0, 0 - bne _08102294 - ldr r4, _0810229C - movs r0, 0x13 - strb r0, [r4] - ldrh r1, [r4, 0x8] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08102294 - movs r0, 0x9 - strb r0, [r4] - ldrb r0, [r4, 0xA] - cmp r0, 0 - beq _08102294 - movs r0, 0x4 - bl sub_8104CAC - movs r0, 0x12 - strb r0, [r4] -_08102294: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0810229C: .4byte 0x02000000 - thumb_func_end sub_8102264 - - thumb_func_start sub_81022A0 -sub_81022A0: @ 81022A0 - push {lr} - bl sub_8104E18 - lsls r0, 24 - cmp r0, 0 - beq _081022C0 - ldr r2, _081022C8 - movs r0, 0x13 - strb r0, [r2] - ldrh r1, [r2, 0x8] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081022C0 - movs r0, 0x9 - strb r0, [r2] -_081022C0: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081022C8: .4byte 0x02000000 - thumb_func_end sub_81022A0 - - thumb_func_start sub_81022CC -sub_81022CC: @ 81022CC - push {lr} - movs r0, 0 - bl sub_8103D8C - movs r0, 0x1 - bl sub_8103D8C - movs r0, 0x2 - bl sub_8103D8C - ldr r1, _081022EC - movs r0, 0x2 - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081022EC: .4byte 0x02000000 - thumb_func_end sub_81022CC - - thumb_func_start sub_81022F0 -sub_81022F0: @ 81022F0 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - ble _0810230C - movs r0, 0 - strh r0, [r1, 0xA] - ldr r1, _08102314 - movs r0, 0x13 - strb r0, [r1] -_0810230C: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102314: .4byte 0x02000000 - thumb_func_end sub_81022F0 - - thumb_func_start sub_8102318 -sub_8102318: @ 8102318 - push {lr} - ldr r0, _0810233C - bl sub_8101F2C - movs r0, 0x15 - movs r1, 0x7 - movs r2, 0x1 - bl DisplayYesNoMenu - bl sub_814AB84 - ldr r1, _08102340 - movs r0, 0x16 - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0810233C: .4byte gOtherText_QuitGamePrompt -_08102340: .4byte 0x02000000 - thumb_func_end sub_8102318 - - thumb_func_start sub_8102344 -sub_8102344: @ 8102344 - push {lr} - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - bne _0810237C - bl MenuZeroFillScreen - movs r0, 0 - bl sub_8103D8C - movs r0, 0x1 - bl sub_8103D8C - movs r0, 0x2 - bl sub_8103D8C - ldr r0, _08102378 - ldrh r1, [r0, 0x12] - ldrh r2, [r0, 0xC] - adds r1, r2 - strh r1, [r0, 0xC] - movs r1, 0x1B - strb r1, [r0] - b _08102392 - .align 2, 0 -_08102378: .4byte 0x02000000 -_0810237C: - cmp r1, 0x1 - beq _08102388 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _08102392 -_08102388: - bl MenuZeroFillScreen - ldr r1, _08102398 - movs r0, 0x5 - strb r0, [r1] -_08102392: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102398: .4byte 0x02000000 - thumb_func_end sub_8102344 - - thumb_func_start sub_810239C -sub_810239C: @ 810239C - push {lr} - ldr r0, _081023B0 - bl sub_8101F2C - ldr r1, _081023B4 - movs r0, 0x18 - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081023B0: .4byte gOtherText_MaxCoins -_081023B4: .4byte 0x02000000 - thumb_func_end sub_810239C - - thumb_func_start sub_81023B8 -sub_81023B8: @ 81023B8 - push {lr} - ldr r0, _081023D8 - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081023D0 - bl MenuZeroFillScreen - ldr r1, _081023DC - movs r0, 0x5 - strb r0, [r1] -_081023D0: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081023D8: .4byte gMain -_081023DC: .4byte 0x02000000 - thumb_func_end sub_81023B8 - - thumb_func_start sub_81023E0 -sub_81023E0: @ 81023E0 - push {lr} - ldr r0, _081023F4 - bl sub_8101F2C - ldr r1, _081023F8 - movs r0, 0x1A - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081023F4: .4byte gOtherText_OutOfCoins -_081023F8: .4byte 0x02000000 - thumb_func_end sub_81023E0 - - thumb_func_start sub_81023FC -sub_81023FC: @ 81023FC - push {lr} - ldr r0, _0810241C - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08102414 - bl MenuZeroFillScreen - ldr r1, _08102420 - movs r0, 0x1B - strb r0, [r1] -_08102414: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0810241C: .4byte gMain -_08102420: .4byte 0x02000000 - thumb_func_end sub_81023FC - - thumb_func_start sub_8102424 -sub_8102424: @ 8102424 - push {r4,lr} - sub sp, 0x4 - ldr r0, _08102454 - ldr r4, _08102458 - ldrh r1, [r4, 0xC] - ldr r2, _0810245C - adds r0, r2 - movs r2, 0 - strh r1, [r0] - movs r0, 0x1 - negs r0, r0 - str r2, [sp] - movs r1, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102454: .4byte gSaveBlock1 -_08102458: .4byte 0x02000000 -_0810245C: .4byte 0x00000494 - thumb_func_end sub_8102424 - - thumb_func_start sub_8102460 -sub_8102460: @ 8102460 - push {lr} - ldr r0, _0810247C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08102476 - ldr r0, _08102480 - ldr r0, [r0, 0x64] - bl SetMainCallback2 -_08102476: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0810247C: .4byte gPaletteFade -_08102480: .4byte 0x02000000 - thumb_func_end sub_8102460 - - thumb_func_start sub_8102484 -sub_8102484: @ 8102484 - push {r4,lr} - ldr r4, _081024E4 - ldrb r0, [r4, 0xA] - cmp r0, 0 - bne _081024DC - ldrb r1, [r4, 0x4] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - bne _081024DC - bl sub_8102540 - lsls r0, 24 - cmp r0, 0 - beq _081024C0 - bl sub_8102578 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - beq _081024C0 - ldr r1, _081024E8 - lsls r0, r3, 1 - adds r0, r1 - ldrb r1, [r0] - ldrb r0, [r4, 0x4] - orrs r0, r1 - strb r0, [r4, 0x4] - cmp r3, 0x1 - bne _081024DC -_081024C0: - bl sub_81025BC - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x5 - beq _081024DC - ldr r2, _081024E4 - ldr r1, _081024EC - lsls r0, r3, 1 - adds r0, r1 - ldrb r1, [r0] - ldrb r0, [r2, 0x4] - orrs r0, r1 - strb r0, [r2, 0x4] -_081024DC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081024E4: .4byte 0x02000000 -_081024E8: .4byte gUnknown_083ECE42 -_081024EC: .4byte gUnknown_083ECE48 - thumb_func_end sub_8102484 - - thumb_func_start sub_81024F0 -sub_81024F0: @ 81024F0 - push {lr} - ldr r1, _08102508 - movs r0, 0 - strb r0, [r1, 0x6] - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _08102502 - movs r0, 0x1 - strb r0, [r1, 0x6] -_08102502: - pop {r0} - bx r0 - .align 2, 0 -_08102508: .4byte 0x02000000 - thumb_func_end sub_81024F0 - - thumb_func_start sub_810250C -sub_810250C: @ 810250C - push {r4,lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0 - movs r3, 0x1 - ldr r4, _08102528 -_08102518: - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _0810252C - adds r0, r2, r4 - ldrb r0, [r0] - b _0810253A - .align 2, 0 -_08102528: .4byte gUnknown_083ECE3A -_0810252C: - lsrs r1, 1 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _08102518 - movs r0, 0 -_0810253A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810250C - - thumb_func_start sub_8102540 -sub_8102540: @ 8102540 - push {r4,lr} - bl Random - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08102568 - ldr r1, _0810256C - movs r3, 0x12 - ldrsh r2, [r1, r3] - ldrb r3, [r1, 0x1] - lsls r1, r3, 1 - adds r1, r3 - subs r1, 0x1 - adds r2, r1 - adds r2, r4 - ldrb r1, [r2] - cmp r1, r0 - bhi _08102570 - movs r0, 0 - b _08102572 - .align 2, 0 -_08102568: .4byte gUnknown_083ECD04 -_0810256C: .4byte 0x02000000 -_08102570: - movs r0, 0x1 -_08102572: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8102540 - - thumb_func_start sub_8102578 -sub_8102578: @ 8102578 - push {r4-r6,lr} - movs r5, 0 - ldr r6, _081025B4 -_0810257E: - bl Random - movs r2, 0xFF - ldr r3, _081025B8 - lsls r1, r5, 16 - asrs r4, r1, 16 - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 1 - ldrb r3, [r3, 0x1] - adds r1, r3 - adds r1, r6 - ldrb r1, [r1] - ands r2, r0 - cmp r1, r2 - bgt _081025AA - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _0810257E -_081025AA: - lsls r0, r5, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_081025B4: .4byte gUnknown_083ECD16 -_081025B8: .4byte 0x02000000 - thumb_func_end sub_8102578 - - thumb_func_start sub_81025BC -sub_81025BC: @ 81025BC - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - ldr r0, _08102600 - mov r8, r0 - ldr r5, _08102604 - movs r7, 0x80 - lsls r7, 17 -_081025CE: - bl Random - movs r4, 0xFF - ands r4, r0 - lsls r2, r6, 16 - asrs r1, r2, 16 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - ldrb r3, [r5, 0x1] - adds r0, r3 - add r0, r8 - ldrb r3, [r0] - cmp r1, 0 - bne _08102608 - ldrb r0, [r5, 0x3] - cmp r0, 0x1 - bne _08102608 - adds r3, 0xA - asrs r0, r7, 16 - cmp r3, r0 - ble _08102622 - adds r3, r0, 0 - b _08102622 - .align 2, 0 -_08102600: .4byte gUnknown_083ECD28 -_08102604: .4byte 0x02000000 -_08102608: - asrs r0, r2, 16 - cmp r0, 0x4 - bne _08102622 - ldrb r0, [r5, 0x3] - cmp r0, 0x1 - bne _08102622 - lsls r0, r3, 16 - ldr r1, _08102648 - adds r0, r1 - lsrs r3, r0, 16 - cmp r0, 0 - bge _08102622 - movs r3, 0 -_08102622: - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, r4 - bgt _08102638 - movs r3, 0x80 - lsls r3, 9 - adds r0, r2, r3 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081025CE -_08102638: - lsls r0, r6, 24 - lsrs r0, 24 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08102648: .4byte 0xfff60000 - thumb_func_end sub_81025BC - - thumb_func_start sub_810264C -sub_810264C: @ 810264C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r3, _08102660 - ldrb r0, [r3, 0x3] - cmp r0, 0 - beq _08102668 - ldr r0, _08102664 - b _0810266A - .align 2, 0 -_08102660: .4byte 0x02000000 -_08102664: .4byte gUnknown_083ECDAC -_08102668: - ldr r0, _0810267C -_0810266A: - lsls r1, r2, 4 - adds r1, r2 - ldrb r3, [r3, 0x2] - adds r1, r3 - adds r1, r0 - ldrb r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_0810267C: .4byte gUnknown_083ECD46 - thumb_func_end sub_810264C - - thumb_func_start sub_8102680 -sub_8102680: @ 8102680 - push {r4-r6,lr} - ldr r1, _081026A4 - movs r0, 0 - strb r0, [r1, 0x5] - bl Random - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl sub_810264C - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _081026D2 - movs r6, 0x5 - b _081026AE - .align 2, 0 -_081026A4: .4byte 0x02000000 -_081026A8: - subs r0, r5, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_081026AE: - lsls r0, r6, 16 - asrs r5, r0, 16 - cmp r5, 0 - ble _081026CE - bl Random - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_810264C - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcs _081026A8 -_081026CE: - ldr r0, _081026D8 - strb r6, [r0, 0x5] -_081026D2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081026D8: .4byte 0x02000000 - thumb_func_end sub_8102680 - - thumb_func_start sub_81026DC -sub_81026DC: @ 81026DC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl Random - movs r1, 0xFF - ands r1, r0 - ldr r0, _081026FC - lsls r4, 1 - adds r4, r0 - ldrh r4, [r4] - cmp r1, r4 - bcc _08102700 - movs r0, 0 - b _08102702 - .align 2, 0 -_081026FC: .4byte gUnknown_083ECE12 -_08102700: - movs r0, 0x1 -_08102702: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81026DC - - thumb_func_start dp15_jump_random_unknown -dp15_jump_random_unknown: @ 8102708 - push {r4,r5,lr} - movs r4, 0 - ldr r0, _0810271C - movs r2, 0x10 - ldrsh r1, [r0, r2] - ldr r0, _08102720 - cmp r1, r0 - ble _08102724 - movs r4, 0x4 - b _0810273A - .align 2, 0 -_0810271C: .4byte 0x02000000 -_08102720: .4byte 0x0000012b -_08102724: - cmp r1, 0xF9 - ble _0810272C - movs r4, 0x3 - b _0810273A -_0810272C: - cmp r1, 0xC7 - ble _08102734 - movs r4, 0x2 - b _0810273A -_08102734: - cmp r1, 0x95 - ble _0810273A - movs r4, 0x1 -_0810273A: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r5, _0810275C - lsls r4, 2 - adds r0, r4, r5 - ldrb r0, [r0] - cmp r1, r0 - bcs _08102760 - movs r0, 0x4 - b _0810279A - .align 2, 0 -_0810275C: .4byte gUnknown_083ECE1C -_08102760: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 24 - adds r2, r5, 0x2 - adds r2, r4, r2 - ldr r3, _08102790 - ldr r1, _08102794 - ldrb r1, [r1, 0xB] - lsls r1, 1 - adds r1, r3 - ldrb r1, [r1] - ldrb r2, [r2] - adds r1, r2 - lsls r1, 24 - cmp r0, r1 - bcc _08102798 - movs r0, 0x8 - b _0810279A - .align 2, 0 -_08102790: .4byte gUnknown_083ECE30 -_08102794: .4byte 0x02000000 -_08102798: - movs r0, 0x2 -_0810279A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end dp15_jump_random_unknown - - thumb_func_start sub_81027A0 -sub_81027A0: @ 81027A0 - push {r4,lr} - ldr r4, _081027CC - movs r0, 0 - strh r0, [r4, 0x8] - bl sub_81027D0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - ble _081027B8 - bl sub_8102840 -_081027B8: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x2 - ble _081027C4 - bl sub_810290C -_081027C4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081027CC: .4byte 0x02000000 - thumb_func_end sub_81027A0 - - thumb_func_start sub_81027D0 -sub_81027D0: @ 81027D0 - push {r4,r5,lr} - movs r0, 0 - movs r1, 0x2 - bl sub_8102BA4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x1 - movs r1, 0x2 - bl sub_8102BA4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x2 - bl sub_8102BA4 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81029D4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _0810282E - ldr r2, _08102834 - ldr r0, _08102838 - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, _0810283C - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] - movs r0, 0 - bl sub_8103E04 -_0810282E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08102834: .4byte 0x02000000 -_08102838: .4byte gUnknown_083ECE6C -_0810283C: .4byte gUnknown_083ECE5A - thumb_func_end sub_81027D0 - - thumb_func_start sub_8102840 -sub_8102840: @ 8102840 - push {r4,r5,lr} - movs r0, 0 - movs r1, 0x1 - bl sub_8102BA4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x1 - movs r1, 0x1 - bl sub_8102BA4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - movs r1, 0x1 - bl sub_8102BA4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81029D4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _0810289E - cmp r1, 0 - bne _0810287C - movs r1, 0x1 -_0810287C: - ldr r2, _08102900 - ldr r0, _08102904 - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, _08102908 - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] - movs r0, 0x1 - bl sub_8103E04 -_0810289E: - movs r0, 0 - movs r1, 0x3 - bl sub_8102BA4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x1 - movs r1, 0x3 - bl sub_8102BA4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - movs r1, 0x3 - bl sub_8102BA4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81029D4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _081028FA - cmp r1, 0 - bne _081028D8 - movs r1, 0x1 -_081028D8: - ldr r2, _08102900 - ldr r0, _08102904 - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, _08102908 - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] - movs r0, 0x2 - bl sub_8103E04 -_081028FA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08102900: .4byte 0x02000000 -_08102904: .4byte gUnknown_083ECE6C -_08102908: .4byte gUnknown_083ECE5A - thumb_func_end sub_8102840 - - thumb_func_start sub_810290C -sub_810290C: @ 810290C - push {r4,r5,lr} - movs r0, 0 - movs r1, 0x1 - bl sub_8102BA4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x1 - movs r1, 0x2 - bl sub_8102BA4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - movs r1, 0x3 - bl sub_8102BA4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81029D4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _08102968 - cmp r1, 0 - beq _08102962 - ldr r2, _081029C8 - ldr r0, _081029CC - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, _081029D0 - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] -_08102962: - movs r0, 0x3 - bl sub_8103E04 -_08102968: - movs r0, 0 - movs r1, 0x3 - bl sub_8102BA4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x1 - movs r1, 0x2 - bl sub_8102BA4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - movs r1, 0x1 - bl sub_8102BA4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81029D4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _081029C2 - cmp r1, 0 - beq _081029BC - ldr r2, _081029C8 - ldr r0, _081029CC - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, _081029D0 - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] -_081029BC: - movs r0, 0x4 - bl sub_8103E04 -_081029C2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081029C8: .4byte 0x02000000 -_081029CC: .4byte gUnknown_083ECE6C -_081029D0: .4byte gUnknown_083ECE5A - thumb_func_end sub_810290C - - thumb_func_start sub_81029D4 -sub_81029D4: @ 81029D4 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - cmp r3, r1 - bne _081029F8 - cmp r3, r2 - bne _081029F8 - ldr r0, _081029F4 - adds r0, r3, r0 - ldrb r0, [r0] - b _08102A1E - .align 2, 0 -_081029F4: .4byte gUnknown_083ECE52 -_081029F8: - cmp r3, 0 - bne _08102A04 - cmp r1, 0 - bne _08102A04 - cmp r2, 0x1 - beq _08102A10 -_08102A04: - cmp r3, 0x1 - bne _08102A14 - cmp r1, 0x1 - bne _08102A14 - cmp r2, 0 - bne _08102A14 -_08102A10: - movs r0, 0x6 - b _08102A1E -_08102A14: - cmp r3, 0x4 - beq _08102A1C - movs r0, 0x9 - b _08102A1E -_08102A1C: - movs r0, 0 -_08102A1E: - pop {r1} - bx r1 - thumb_func_end sub_81029D4 - - thumb_func_start sub_8102A24 -sub_8102A24: @ 8102A24 - push {r4,lr} - ldr r4, _08102A40 - adds r0, r4, 0 - movs r1, 0x4 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08102A40: .4byte sub_8102A64 - thumb_func_end sub_8102A24 - - thumb_func_start sub_8102A44 -sub_8102A44: @ 8102A44 - push {lr} - ldr r0, _08102A58 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _08102A5C - movs r0, 0 - b _08102A5E - .align 2, 0 -_08102A58: .4byte sub_8102A64 -_08102A5C: - movs r0, 0x1 -_08102A5E: - pop {r1} - bx r1 - thumb_func_end sub_8102A44 - - thumb_func_start sub_8102A64 -sub_8102A64: @ 8102A64 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08102A94 - ldr r2, _08102A98 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08102A76: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _08102A76 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08102A94: .4byte gUnknown_083ECB20 -_08102A98: .4byte gTasks - thumb_func_end sub_8102A64 - - thumb_func_start sub_8102A9C -sub_8102A9C: @ 8102A9C - push {r4,lr} - adds r4, r0, 0 - bl sub_8103E38 - lsls r0, 24 - cmp r0, 0 - beq _08102AC8 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, _08102AC4 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08102AC8 - movs r0, 0x2 - strh r0, [r4, 0x8] - movs r0, 0x1 - b _08102ACA - .align 2, 0 -_08102AC4: .4byte 0x02000000 -_08102AC8: - movs r0, 0 -_08102ACA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8102A9C - - thumb_func_start sub_8102AD0 -sub_8102AD0: @ 8102AD0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _08102B22 - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _08102AF6 - movs r0, 0x15 - bl PlaySE -_08102AF6: - ldr r2, _08102B70 - ldrh r0, [r2, 0xE] - subs r0, 0x1 - strh r0, [r2, 0xE] - ldrh r3, [r2, 0xC] - movs r0, 0xC - ldrsh r1, [r2, r0] - ldr r0, _08102B74 - cmp r1, r0 - bgt _08102B0E - adds r0, r3, 0x1 - strh r0, [r2, 0xC] -_08102B0E: - movs r0, 0x8 - strh r0, [r4, 0xA] - ldr r0, _08102B78 - ldrh r1, [r0, 0x2C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08102B22 - movs r0, 0x4 - strh r0, [r4, 0xA] -_08102B22: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _08102B58 - ldr r0, _08102B78 - ldrh r1, [r0, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08102B58 - movs r0, 0x15 - bl PlaySE - ldr r1, _08102B70 - ldrh r0, [r1, 0xE] - ldrh r2, [r1, 0xC] - adds r0, r2 - strh r0, [r1, 0xC] - lsls r0, 16 - asrs r0, 16 - ldr r2, _08102B7C - cmp r0, r2 - ble _08102B54 - strh r2, [r1, 0xC] -_08102B54: - movs r0, 0 - strh r0, [r1, 0xE] -_08102B58: - ldr r0, _08102B70 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08102B68 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08102B68: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102B70: .4byte 0x02000000 -_08102B74: .4byte 0x0000270e -_08102B78: .4byte gMain -_08102B7C: .4byte 0x0000270f - thumb_func_end sub_8102AD0 - - thumb_func_start sub_8102B80 -sub_8102B80: @ 8102B80 - push {lr} - bl sub_8103E7C - lsls r0, 24 - cmp r0, 0 - beq _08102B9A - ldr r0, _08102BA0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08102B9A: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102BA0: .4byte sub_8102A64 - thumb_func_end sub_8102B80 - - thumb_func_start sub_8102BA4 -sub_8102BA4: @ 8102BA4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _08102BF0 - lsls r2, r4, 1 - adds r0, 0x28 - adds r2, r0 - movs r3, 0 - ldrsh r0, [r2, r3] - lsls r1, 16 - asrs r1, 16 - adds r0, r1 - movs r1, 0x15 - bl __modsi3 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _08102BD4 - adds r0, 0x15 - lsls r0, 16 - lsrs r1, r0, 16 -_08102BD4: - ldr r2, _08102BF4 - lsls r1, 16 - asrs r1, 16 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 2 - adds r0, r4 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102BF0: .4byte 0x02000000 -_08102BF4: .4byte gUnknown_083ECCB2 - thumb_func_end sub_8102BA4 - - thumb_func_start sub_8102BF8 -sub_8102BF8: @ 8102BF8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - movs r6, 0 - ldr r0, _08102C40 - lsls r1, r5, 1 - adds r0, 0x1C - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - beq _08102C20 - ldr r6, _08102C44 -_08102C20: - lsls r1, r4, 16 - asrs r1, 16 - lsls r0, r6, 16 - asrs r0, 16 - adds r1, r0 - lsls r1, 16 - asrs r1, 16 - adds r0, r5, 0 - bl sub_8102BA4 - lsls r0, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08102C40: .4byte 0x02000000 -_08102C44: .4byte 0x0000ffff - thumb_func_end sub_8102BF8 - - thumb_func_start sub_8102C48 -sub_8102C48: @ 8102C48 - push {lr} - ldr r1, _08102C7C - movs r2, 0x16 - ldrsh r1, [r1, r2] - lsls r0, 16 - asrs r0, 16 - adds r1, r0 - adds r0, r1, 0 - movs r1, 0x6 - bl __modsi3 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _08102C6E - adds r0, 0x6 - lsls r0, 16 - lsrs r1, r0, 16 -_08102C6E: - ldr r0, _08102C80 - lsls r1, 16 - asrs r1, 16 - adds r1, r0 - ldrb r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_08102C7C: .4byte 0x02000000 -_08102C80: .4byte gUnknown_083ECCF1 - thumb_func_end sub_8102C48 - - thumb_func_start sub_8102C84 -sub_8102C84: @ 8102C84 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - ldr r6, _08102CC8 - lsrs r5, 23 - adds r4, r6, 0 - adds r4, 0x1C - adds r4, r5, r4 - lsls r1, 16 - asrs r1, 16 - ldrh r0, [r4] - adds r1, r0 - strh r1, [r4] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0xFC - lsls r1, 1 - bl __modsi3 - strh r0, [r4] - adds r6, 0x28 - adds r5, r6 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x18 - bl __divsi3 - movs r1, 0x15 - subs r1, r0 - strh r1, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08102CC8: .4byte 0x02000000 - thumb_func_end sub_8102C84 - - thumb_func_start sub_8102CCC -sub_8102CCC: @ 8102CCC - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - ldr r0, _08102D24 - lsls r1, r6, 1 - adds r0, 0x1C - adds r5, r1, r0 - movs r1, 0 - ldrsh r0, [r5, r1] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r2, r0, 16 - asrs r1, r2, 16 - cmp r1, 0 - beq _08102D18 - lsls r0, r4, 16 - asrs r0, 16 - cmp r1, r0 - bge _08102D00 - lsrs r4, r2, 16 -_08102D00: - lsls r1, r4, 16 - asrs r1, 16 - adds r0, r6, 0 - bl sub_8102C84 - movs r1, 0 - ldrsh r0, [r5, r1] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 -_08102D18: - lsls r0, 16 - asrs r0, 16 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08102D24: .4byte 0x02000000 - thumb_func_end sub_8102CCC - - thumb_func_start sub_8102D28 -sub_8102D28: @ 8102D28 - push {r4,lr} - ldr r4, _08102D58 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r4, 0x14] - adds r0, r1 - strh r0, [r4, 0x14] - movs r1, 0x14 - ldrsh r0, [r4, r1] - movs r1, 0x78 - bl __modsi3 - strh r0, [r4, 0x14] - movs r1, 0x14 - ldrsh r0, [r4, r1] - movs r1, 0x14 - bl __divsi3 - movs r1, 0x6 - subs r1, r0 - strh r1, [r4, 0x16] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08102D58: .4byte 0x02000000 - thumb_func_end sub_8102D28 - - thumb_func_start sub_8102D5C -sub_8102D5C: @ 8102D5C - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r5, _08102DA4 - movs r1, 0x14 - ldrsh r0, [r5, r1] - movs r1, 0x14 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r2, r0, 16 - asrs r1, r2, 16 - cmp r1, 0 - beq _08102D9A - lsls r0, r4, 16 - asrs r0, 16 - cmp r1, r0 - bge _08102D84 - lsrs r4, r2, 16 -_08102D84: - lsls r0, r4, 16 - asrs r0, 16 - bl sub_8102D28 - movs r1, 0x14 - ldrsh r0, [r5, r1] - movs r1, 0x14 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 -_08102D9A: - lsls r0, 16 - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08102DA4: .4byte 0x02000000 - thumb_func_end sub_8102D5C - - thumb_func_start sub_8102DA8 -sub_8102DA8: @ 8102DA8 - push {r4-r7,lr} - movs r4, 0 - ldr r5, _08102DE0 - ldr r7, _08102DE4 - ldr r6, _08102DE8 -_08102DB2: - adds r0, r5, 0 - movs r1, 0x2 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r7 - strh r4, [r1, 0x26] - adds r1, r4, r6 - strb r0, [r1] - bl _call_via_r5 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08102DB2 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08102DE0: .4byte sub_8102E68 -_08102DE4: .4byte gTasks -_08102DE8: .4byte 0x0200003a - thumb_func_end sub_8102DA8 - - thumb_func_start sub_8102DEC -sub_8102DEC: @ 8102DEC - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08102E14 - ldr r1, _08102E18 - adds r1, 0x3A - adds r0, r1 - ldrb r2, [r0] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r3 - movs r2, 0x1 - strh r2, [r1, 0x8] - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - strh r2, [r0, 0x24] - bx lr - .align 2, 0 -_08102E14: .4byte gTasks -_08102E18: .4byte 0x02000000 - thumb_func_end sub_8102DEC - - thumb_func_start sub_8102E1C -sub_8102E1C: @ 8102E1C - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08102E38 - ldr r1, _08102E3C - adds r1, 0x3A - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x8] - bx lr - .align 2, 0 -_08102E38: .4byte gTasks -_08102E3C: .4byte 0x02000000 - thumb_func_end sub_8102E1C - - thumb_func_start sub_8102E40 -sub_8102E40: @ 8102E40 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08102E60 - ldr r1, _08102E64 - adds r1, 0x3A - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x24] - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_08102E60: .4byte gTasks -_08102E64: .4byte 0x02000000 - thumb_func_end sub_8102E40 - - thumb_func_start sub_8102E68 -sub_8102E68: @ 8102E68 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08102E98 - ldr r2, _08102E9C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08102E7A: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _08102E7A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08102E98: .4byte gUnknown_083ECB2C -_08102E9C: .4byte gTasks - thumb_func_end sub_8102E68 - - thumb_func_start sub_8102EA0 -sub_8102EA0: @ 8102EA0 - movs r0, 0 - bx lr - thumb_func_end sub_8102EA0 - - thumb_func_start sub_8102EA4 -sub_8102EA4: @ 8102EA4 - push {lr} - ldrh r0, [r0, 0x26] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08102EBC - movs r2, 0x1A - ldrsh r1, [r1, r2] - bl sub_8102C84 - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102EBC: .4byte 0x02000000 - thumb_func_end sub_8102EA4 - - thumb_func_start sub_8102EC0 -sub_8102EC0: @ 8102EC0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r2, 0 - strh r0, [r4, 0x8] - ldr r3, _08102F40 - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r0, 1 - adds r1, r3, 0 - adds r1, 0x34 - adds r0, r1 - strh r2, [r0] - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r0, 1 - adds r1, r3, 0 - adds r1, 0x2E - adds r0, r1 - strh r2, [r0] - ldrb r0, [r3, 0xA] - cmp r0, 0 - bne _08102F28 - ldrb r0, [r3, 0x4] - cmp r0, 0 - beq _08102F12 - ldrb r0, [r3, 0x6] - cmp r0, 0 - beq _08102F12 - ldr r1, _08102F44 - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - cmp r0, 0 - bne _08102F28 -_08102F12: - ldr r1, _08102F40 - movs r0, 0 - strb r0, [r1, 0x6] - ldr r1, _08102F48 - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08102F28: - ldr r0, _08102F40 - movs r2, 0x26 - ldrsh r1, [r4, r2] - lsls r1, 1 - adds r0, 0x2E - adds r1, r0 - ldrh r0, [r1] - strh r0, [r4, 0xA] - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102F40: .4byte 0x02000000 -_08102F44: .4byte gUnknown_083ECB40 -_08102F48: .4byte gUnknown_083ECB4C - thumb_func_end sub_8102EC0 - - thumb_func_start sub_8102F4C -sub_8102F4C: @ 8102F4C - push {r4-r7,lr} - sub sp, 0xC - adds r4, r0, 0 - ldr r1, _08102F8C - mov r0, sp - movs r2, 0xA - bl memcpy - ldr r5, _08102F90 - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r6, r0, 1 - adds r7, r5, 0 - adds r7, 0x1C - adds r0, r6, r7 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r0, 0 - beq _08102F94 - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r6, 0x1A - ldrsh r1, [r5, r6] - bl sub_8102CCC - b _08102FC8 - .align 2, 0 -_08102F8C: .4byte gUnknown_083ECB58 -_08102F90: .4byte 0x02000000 -_08102F94: - adds r0, r5, 0 - adds r0, 0x2E - adds r1, r6, r0 - ldrh r3, [r1] - movs r6, 0 - ldrsh r0, [r1, r6] - cmp r0, 0 - beq _08102FCC - subs r0, r3, 0x1 - strh r0, [r1] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x1A - ldrsh r1, [r5, r2] - bl sub_8102C84 - movs r6, 0x26 - ldrsh r0, [r4, r6] - lsls r0, 1 - adds r0, r7 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x18 - bl __modsi3 -_08102FC8: - lsls r0, 16 - lsrs r2, r0, 16 -_08102FCC: - cmp r2, 0 - bne _08102FF8 - ldr r1, _08103004 - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r1, 0x2E - adds r0, r1 - movs r6, 0 - ldrsh r1, [r0, r6] - cmp r1, 0 - bne _08102FF8 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, 0xA] - strh r1, [r4, 0xC] -_08102FF8: - movs r0, 0 - add sp, 0xC - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08103004: .4byte 0x02000000 - thumb_func_end sub_8102F4C - - thumb_func_start sub_8103008 -sub_8103008: @ 8103008 - push {r4,lr} - adds r2, r0, 0 - ldr r1, _08103058 - movs r3, 0x26 - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r4, r1, 0 - adds r4, 0x22 - adds r0, r4 - ldrh r1, [r2, 0xA] - strh r1, [r0] - ldrh r0, [r2, 0xA] - negs r3, r0 - strh r3, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08103038 - lsls r0, r3, 16 - asrs r0, 17 - strh r0, [r2, 0xA] -_08103038: - movs r0, 0xA - ldrsh r3, [r2, r0] - cmp r3, 0 - bne _0810304E - strh r3, [r2, 0x8] - strh r3, [r2, 0x24] - movs r1, 0x26 - ldrsh r0, [r2, r1] - lsls r0, 1 - adds r0, r4 - strh r3, [r0] -_0810304E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08103058: .4byte 0x02000000 - thumb_func_end sub_8103008 - - thumb_func_start sub_810305C -sub_810305C: @ 810305C - push {r4,r5,lr} - ldr r4, _0810309C - ldrb r0, [r4, 0x4] - bl sub_810250C - lsls r0, 24 - lsrs r3, r0, 24 - adds r5, r3, 0 - ldrb r1, [r4, 0x4] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - beq _0810307A - movs r5, 0 - movs r3, 0x1 -_0810307A: - ldr r1, _081030A0 - movs r2, 0x12 - ldrsh r0, [r4, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r3, 0 - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0810309C: .4byte 0x02000000 -_081030A0: .4byte gUnknown_083ECB64 - thumb_func_end sub_810305C - - thumb_func_start sub_81030A4 -sub_81030A4: @ 81030A4 - push {r4,r5,lr} - adds r3, r0, 0 - adds r4, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r5, r2, 24 - lsls r3, 16 - asrs r3, 16 - movs r0, 0 - adds r1, r3, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, r4 - beq _081030CC - cmp r0, r5 - bne _081030D8 -_081030CC: - ldr r0, _081030D4 - strb r1, [r0, 0x7] - movs r0, 0x1 - b _081030DA - .align 2, 0 -_081030D4: .4byte 0x02000000 -_081030D8: - movs r0, 0 -_081030DA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81030A4 - - thumb_func_start sub_81030E0 -sub_81030E0: @ 81030E0 - push {r4,lr} - movs r1, 0x1 - lsls r0, 16 - asrs r4, r0, 16 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _08103128 - movs r1, 0x2 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _08103128 - movs r1, 0x3 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _0810312C -_08103128: - movs r0, 0x1 - b _0810312E -_0810312C: - movs r0, 0 -_0810312E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81030E0 - - thumb_func_start sub_8103134 -sub_8103134: @ 8103134 - push {lr} - ldr r0, _08103148 - ldrb r1, [r0, 0x4] - movs r0, 0xC2 - ands r0, r1 - cmp r0, 0 - bne _0810314C - movs r0, 0 - b _0810314E - .align 2, 0 -_08103148: .4byte 0x02000000 -_0810314C: - movs r0, 0x1 -_0810314E: - pop {r1} - bx r1 - thumb_func_end sub_8103134 - - thumb_func_start sub_8103154 -sub_8103154: @ 8103154 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r7, r1, 24 - movs r5, 0 - movs r0, 0x2 - mov r9, r0 - ldr r6, _08103194 -_0810316E: - lsls r0, r5, 16 - asrs r4, r0, 16 - mov r1, r9 - subs r0, r1, r4 - lsls r0, 16 - asrs r0, 16 - mov r1, r8 - adds r2, r7, 0 - bl sub_81030A4 - lsls r0, 24 - cmp r0, 0 - beq _08103198 - movs r0, 0x2 - strh r0, [r6, 0x34] - strh r5, [r6, 0x2E] - movs r0, 0x1 - b _081031A6 - .align 2, 0 -_08103194: .4byte 0x02000000 -_08103198: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0810316E - movs r0, 0 -_081031A6: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8103154 - - thumb_func_start sub_81031B4 -sub_81031B4: @ 81031B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - bl sub_8103134 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _081031E2 - movs r0, 0 - bl sub_81030E0 - lsls r0, 24 - cmp r0, 0 - bne _0810321E -_081031E2: - movs r0, 0x1 - mov r8, r0 - ldr r5, _0810320C - movs r7, 0 -_081031EA: - mov r1, r8 - lsls r0, r1, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - mov r1, r10 - mov r2, r9 - bl sub_81030A4 - lsls r0, 24 - cmp r0, 0 - beq _08103210 - mov r0, r8 - strh r0, [r5, 0x34] - strh r7, [r5, 0x2E] - movs r0, 0x1 - b _081032B2 - .align 2, 0 -_0810320C: .4byte 0x02000000 -_08103210: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - mov r8, r1 - asrs r0, 16 - cmp r0, 0x3 - ble _081031EA -_0810321E: - movs r0, 0x1 - mov r8, r0 - adds r7, r6, 0 - ldr r6, _0810326C -_08103226: - mov r1, r8 - lsls r5, r1, 16 - cmp r7, 0 - bne _0810323A - asrs r0, r5, 16 - bl sub_81030E0 - lsls r0, 24 - cmp r0, 0 - bne _081032A0 -_0810323A: - movs r0, 0x1 - asrs r4, r5, 16 - subs r0, r4 - lsls r0, 16 - asrs r0, 16 - mov r1, r10 - mov r2, r9 - bl sub_81030A4 - lsls r0, 24 - cmp r0, 0 - beq _081032A0 - cmp r4, 0x1 - bne _08103270 - cmp r7, 0 - bne _08103266 - movs r0, 0x3 - bl sub_81030E0 - lsls r0, 24 - cmp r0, 0 - bne _08103270 -_08103266: - movs r0, 0x3 - strh r0, [r6, 0x34] - b _0810329A - .align 2, 0 -_0810326C: .4byte 0x02000000 -_08103270: - asrs r0, r5, 16 - cmp r0, 0x3 - bgt _08103294 - adds r4, r0, 0x1 - cmp r7, 0 - bne _0810328A - lsls r0, r4, 16 - asrs r0, 16 - bl sub_81030E0 - lsls r0, 24 - cmp r0, 0 - bne _08103294 -_0810328A: - movs r0, 0x2 - strh r0, [r6, 0x34] - strh r4, [r6, 0x2E] - movs r0, 0x1 - b _081032B2 -_08103294: - movs r0, 0x1 - strh r0, [r6, 0x34] - mov r0, r8 -_0810329A: - strh r0, [r6, 0x2E] - movs r0, 0x1 - b _081032B2 -_081032A0: - movs r1, 0x80 - lsls r1, 9 - adds r0, r5, r1 - lsrs r1, r0, 16 - mov r8, r1 - asrs r0, 16 - cmp r0, 0x4 - ble _08103226 - movs r0, 0 -_081032B2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81031B4 - - thumb_func_start sub_81032C0 -sub_81032C0: @ 81032C0 - push {lr} - ldr r1, _081032E0 - ldr r0, _081032E4 - movs r2, 0x12 - ldrsh r0, [r0, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_081032E0: .4byte gUnknown_083ECB70 -_081032E4: .4byte 0x02000000 - thumb_func_end sub_81032C0 - - thumb_func_start sub_81032E8 -sub_81032E8: @ 81032E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08103320 - movs r6, 0 - ldrh r1, [r0, 0x34] - mov r8, r1 - movs r1, 0x34 - ldrsh r7, [r0, r1] - adds r5, r0, 0 -_081032FC: - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r5, 0x7] - cmp r0, r1 - bne _08103324 - mov r0, r8 - strh r0, [r5, 0x36] - strh r6, [r5, 0x30] - movs r0, 0x1 - b _08103332 - .align 2, 0 -_08103320: .4byte 0x02000000 -_08103324: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081032FC - movs r0, 0 -_08103332: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81032E8 - - thumb_func_start sub_810333C -sub_810333C: @ 810333C - push {r4-r7,lr} - bl sub_81032E8 - lsls r0, 24 - cmp r0, 0 - beq _0810339A - ldr r1, _0810338C - movs r2, 0x34 - ldrsh r0, [r1, r2] - cmp r0, 0x2 - beq _08103396 - movs r2, 0x30 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - ble _08103396 - cmp r0, 0x4 - beq _08103396 - movs r5, 0 - movs r7, 0x2 - adds r6, r1, 0 -_08103364: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6, 0x7] - cmp r0, r1 - beq _08103390 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _08103364 - b _08103396 - .align 2, 0 -_0810338C: .4byte 0x02000000 -_08103390: - movs r0, 0x2 - strh r0, [r6, 0x36] - strh r5, [r6, 0x30] -_08103396: - movs r0, 0x1 - b _081033D2 -_0810339A: - ldr r1, _081033D8 - movs r2, 0x34 - ldrsh r0, [r1, r2] - cmp r0, 0x2 - beq _081033D0 - movs r5, 0 - movs r7, 0x2 - adds r6, r1, 0 -_081033AA: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6, 0x7] - cmp r0, r1 - beq _08103390 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081033AA -_081033D0: - movs r0, 0 -_081033D2: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_081033D8: .4byte 0x02000000 - thumb_func_end sub_810333C - - thumb_func_start sub_81033DC -sub_81033DC: @ 81033DC - push {r4,lr} - ldr r0, _08103414 - ldrb r3, [r0, 0x7] - adds r4, r3, 0 - ldrb r2, [r0, 0x4] - movs r1, 0x40 - ands r1, r2 - cmp r1, 0 - beq _081033F6 - movs r3, 0 - cmp r4, 0 - bne _081033F6 - movs r3, 0x1 -_081033F6: - ldr r1, _08103418 - movs r2, 0x12 - ldrsh r0, [r0, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r3, 0 - bl _call_via_r1 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08103414: .4byte 0x02000000 -_08103418: .4byte gUnknown_083ECB7C - thumb_func_end sub_81033DC - - thumb_func_start sub_810341C -sub_810341C: @ 810341C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _0810345C - movs r5, 0 - ldrh r1, [r0, 0x36] - mov r8, r1 - movs r1, 0x36 - ldrsh r7, [r0, r1] - adds r6, r0, 0 -_08103438: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r9 - bne _08103460 - mov r0, r8 - strh r0, [r6, 0x38] - strh r5, [r6, 0x32] - movs r0, 0x1 - b _0810346E - .align 2, 0 -_0810345C: .4byte 0x02000000 -_08103460: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _08103438 - movs r0, 0 -_0810346E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810341C - - thumb_func_start sub_810347C -sub_810347C: @ 810347C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _081034A0 - movs r2, 0x34 - ldrsh r1, [r0, r2] - movs r2, 0x36 - ldrsh r0, [r0, r2] - cmp r1, r0 - bne _081034B4 - adds r0, r6, 0 - bl sub_810341C - lsls r0, 24 - lsrs r0, 24 - b _081034EA - .align 2, 0 -_081034A0: .4byte 0x02000000 -_081034A4: - ldr r0, _081034B0 - strh r5, [r0, 0x32] - mov r1, r8 - strh r1, [r0, 0x38] - movs r0, 0x1 - b _081034EA - .align 2, 0 -_081034B0: .4byte 0x02000000 -_081034B4: - movs r2, 0x1 - mov r8, r2 - cmp r1, 0x1 - bne _081034C0 - movs r0, 0x3 - mov r8, r0 -_081034C0: - movs r5, 0 - mov r7, r8 -_081034C4: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r6 - beq _081034A4 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081034C4 - movs r0, 0 -_081034EA: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810347C - - thumb_func_start sub_81034F4 -sub_81034F4: @ 81034F4 - push {r4,r5,lr} - movs r5, 0 - b _08103500 -_081034FA: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08103500: - lsls r0, r5, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - bl sub_81030E0 - lsls r0, 24 - cmp r0, 0 - bne _081034FA - ldr r0, _0810351C - strh r5, [r0, 0x2E] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810351C: .4byte 0x02000000 - thumb_func_end sub_81034F4 - - thumb_func_start sub_8103520 -sub_8103520: @ 8103520 - push {lr} - adds r1, r0, 0 - ldrb r0, [r1] - cmp r0, 0 - bne _0810352E - movs r0, 0x1 - b _08103538 -_0810352E: - cmp r0, 0x1 - beq _08103536 - movs r0, 0 - b _0810353C -_08103536: - movs r0, 0 -_08103538: - strb r0, [r1] - movs r0, 0x1 -_0810353C: - pop {r1} - bx r1 - thumb_func_end sub_8103520 - - thumb_func_start sub_8103540 -sub_8103540: @ 8103540 - push {lr} - ldr r1, _0810355C - ldr r0, _08103560 - movs r2, 0x12 - ldrsh r0, [r0, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .align 2, 0 -_0810355C: .4byte gUnknown_083ECB88 -_08103560: .4byte 0x02000000 - thumb_func_end sub_8103540 - - thumb_func_start sub_8103564 -sub_8103564: @ 8103564 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r4, _081035D0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081035E0 - ldrb r1, [r4, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081035E0 - ldrh r0, [r4, 0x2E] - movs r1, 0x2 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - mov r1, sp - strb r0, [r1] - mov r0, sp - bl sub_8103520 - lsls r0, 24 - cmp r0, 0 - beq _081035E0 - movs r5, 0 - mov r7, sp - movs r0, 0x2 - mov r8, r0 - adds r6, r4, 0 -_081035AA: - lsls r0, r5, 16 - asrs r4, r0, 16 - mov r0, r8 - subs r1, r0, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - ldrb r1, [r7] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _081035D4 - movs r0, 0x2 - strh r0, [r6, 0x36] - strh r5, [r6, 0x30] - b _081035E0 - .align 2, 0 -_081035D0: .4byte 0x02000000 -_081035D4: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081035AA -_081035E0: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8103564 - - thumb_func_start j5_08111E84 -j5_08111E84: @ 81035EC - push {r4-r7,lr} - sub sp, 0x4 - ldr r4, _08103650 - ldrh r2, [r4, 0x34] - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08103660 - ldrb r1, [r4, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08103660 - ldrh r1, [r4, 0x2E] - subs r1, r2, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - mov r1, sp - strb r0, [r1] - mov r0, sp - bl sub_8103520 - lsls r0, 24 - cmp r0, 0 - beq _08103660 - movs r6, 0 - mov r7, sp - adds r5, r4, 0 -_0810362A: - ldrh r1, [r5, 0x34] - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - ldrb r1, [r7] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _08103654 - ldrh r0, [r5, 0x34] - strh r0, [r5, 0x36] - strh r6, [r5, 0x30] - b _08103660 - .align 2, 0 -_08103650: .4byte 0x02000000 -_08103654: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0810362A -_08103660: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end j5_08111E84 - - thumb_func_start sub_8103668 -sub_8103668: @ 8103668 - push {r4-r7,lr} - sub sp, 0x4 - ldr r4, _0810368C - ldrh r3, [r4, 0x34] - movs r0, 0x34 - ldrsh r2, [r4, r0] - cmp r2, 0 - beq _0810375A - ldrb r1, [r4, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0810375A - cmp r2, 0x2 - bne _081036AE - bl j5_08111E84 - b _0810375A - .align 2, 0 -_0810368C: .4byte 0x02000000 -_08103690: - ldr r0, _0810369C - movs r1, 0 - strh r6, [r0, 0x36] - strh r1, [r0, 0x30] - b _0810375A - .align 2, 0 -_0810369C: .4byte 0x02000000 -_081036A0: - movs r0, 0x2 - strh r0, [r5, 0x36] - adds r0, r4, 0x1 - strh r0, [r5, 0x30] - b _0810375A -_081036AA: - movs r0, 0x3 - b _08103736 -_081036AE: - ldrh r1, [r4, 0x2E] - subs r1, r3, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - mov r1, sp - strb r0, [r1] - mov r0, sp - bl sub_8103520 - lsls r0, 24 - cmp r0, 0 - beq _0810375A - movs r6, 0x2 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - bne _081036D8 - movs r6, 0x3 -_081036D8: - movs r5, 0 - mov r7, sp -_081036DC: - lsls r0, r6, 16 - asrs r4, r0, 16 - movs r0, 0x1 - adds r1, r4, 0 - bl sub_8102BF8 - ldrb r1, [r7] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - beq _08103690 - lsls r1, r5, 16 - movs r0, 0x80 - lsls r0, 9 - adds r1, r0 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - lsrs r5, r1, 16 - asrs r1, 16 - cmp r1, 0x1 - ble _081036DC - movs r6, 0x1 - mov r7, sp - ldr r5, _0810373C -_0810370E: - ldrh r1, [r5, 0x34] - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - ldrb r1, [r7] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _0810374E - movs r1, 0x34 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _08103740 - cmp r4, 0x2 - ble _081036A0 -_08103736: - strh r0, [r5, 0x36] - strh r6, [r5, 0x30] - b _0810375A - .align 2, 0 -_0810373C: .4byte 0x02000000 -_08103740: - cmp r4, 0x2 - ble _081036AA - movs r0, 0x2 - strh r0, [r5, 0x36] - subs r0, r4, 0x1 - strh r0, [r5, 0x30] - b _0810375A -_0810374E: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0810370E -_0810375A: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8103668 - - thumb_func_start sub_8103764 -sub_8103764: @ 8103764 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r0, 0 - bne _08103778 - cmp r1, 0x1 - beq _08103780 -_08103778: - cmp r0, 0x1 - bne _08103784 - cmp r2, 0 - bne _08103784 -_08103780: - movs r0, 0x1 - b _08103786 -_08103784: - movs r0, 0 -_08103786: - pop {r1} - bx r1 - thumb_func_end sub_8103764 - - thumb_func_start sub_810378C -sub_810378C: @ 810378C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - cmp r0, 0 - bne _081037A6 - cmp r1, 0x1 - bne _081037A6 - cmp r2, 0 - beq _081037B2 -_081037A6: - cmp r0, 0x1 - bne _081037B6 - cmp r1, 0 - bne _081037B6 - cmp r2, 0x1 - bne _081037B6 -_081037B2: - movs r0, 0x1 - b _081037B8 -_081037B6: - movs r0, 0 -_081037B8: - pop {r1} - bx r1 - thumb_func_end sub_810378C - - thumb_func_start sub_81037BC -sub_81037BC: @ 81037BC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - cmp r0, 0 - bne _081037D6 - cmp r1, 0x1 - bne _081037D6 - cmp r2, 0 - beq _08103802 -_081037D6: - cmp r0, 0x1 - bne _081037E2 - cmp r1, 0 - bne _081037E2 - cmp r2, 0x1 - beq _08103802 -_081037E2: - cmp r0, 0 - bne _081037EE - cmp r1, 0 - bne _081037EE - cmp r2, 0x1 - beq _08103802 -_081037EE: - cmp r0, 0x1 - bne _081037FA - cmp r1, 0x1 - bne _081037FA - cmp r2, 0 - beq _08103802 -_081037FA: - cmp r0, r1 - bne _08103806 - cmp r0, r2 - bne _08103806 -_08103802: - movs r0, 0 - b _08103808 -_08103806: - movs r0, 0x1 -_08103808: - pop {r1} - bx r1 - thumb_func_end sub_81037BC - - thumb_func_start sub_810380C -sub_810380C: @ 810380C - push {lr} - ldr r1, _08103828 - ldr r0, _0810382C - movs r2, 0x12 - ldrsh r0, [r0, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .align 2, 0 -_08103828: .4byte gUnknown_083ECB94 -_0810382C: .4byte 0x02000000 - thumb_func_end sub_810380C - - thumb_func_start sub_8103830 -sub_8103830: @ 8103830 - push {r4-r7,lr} - movs r6, 0 - ldr r7, _08103868 - ldrh r1, [r7, 0x2E] - movs r4, 0x2 - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r7, 0x30] - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x1 - adds r1, r4, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r5, r1 - bne _081038A0 - movs r4, 0x2 - b _08103876 - .align 2, 0 -_08103868: .4byte 0x02000000 -_0810386C: - lsls r0, r6, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r6, r0, 16 -_08103876: - lsls r1, r6, 16 - asrs r1, 16 - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _0810386C - cmp r5, 0 - bne _08103896 - cmp r0, 0x1 - beq _0810386C -_08103896: - cmp r5, 0x1 - bne _08103900 - cmp r0, 0 - beq _0810386C - b _08103900 -_081038A0: - adds r0, r5, 0 - bl sub_8103764 - lsls r0, 24 - cmp r0, 0 - beq _08103900 - ldrb r1, [r7, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081038DC - movs r7, 0x2 -_081038B8: - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _08103900 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081038B8 -_081038DC: - movs r6, 0 - movs r7, 0x2 - b _081038E8 -_081038E2: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_081038E8: - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _081038E2 -_08103900: - ldr r0, _0810390C - strh r6, [r0, 0x32] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810390C: .4byte 0x02000000 - thumb_func_end sub_8103830 - - thumb_func_start sub_8103910 -sub_8103910: @ 8103910 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r4, _08103978 - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _081039A6 - ldrh r2, [r4, 0x34] - movs r3, 0x34 - ldrsh r0, [r4, r3] - cmp r0, r1 - bne _081039A6 - ldrb r1, [r4, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081039A6 - ldrh r1, [r4, 0x2E] - subs r1, r2, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r1, [r4, 0x36] - ldrh r0, [r4, 0x30] - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_8103764 - lsls r0, 24 - cmp r0, 0 - beq _081039A6 - movs r5, 0 - b _08103982 - .align 2, 0 -_08103978: .4byte 0x02000000 -_0810397C: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08103982: - lsls r6, r5, 16 - asrs r5, r6, 16 - cmp r5, 0x4 - bgt _081039A6 - ldr r0, _08103A34 - ldrh r1, [r0, 0x36] - subs r1, r5 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r7, r4 - bne _0810397C - lsrs r6, 16 - str r6, [sp] -_081039A6: - ldr r0, _08103A34 - mov r9, r0 -_081039AA: - movs r5, 0x1 - movs r1, 0 - mov r8, r1 - ldr r2, [sp] - lsls r2, 16 - mov r10, r2 -_081039B6: - mov r3, r9 - ldrh r1, [r3, 0x2E] - lsls r5, 16 - asrs r4, r5, 16 - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r7, r0, 24 - mov r0, r9 - ldrh r1, [r0, 0x30] - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r6, r0, 24 - mov r1, r10 - asrs r0, r1, 16 - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x2 - adds r1, r4, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_81037BC - lsls r0, 24 - cmp r0, 0 - bne _08103A38 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_810378C - lsls r0, 24 - cmp r0, 0 - beq _08103A24 - mov r2, r9 - ldrb r1, [r2, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08103A38 -_08103A24: - mov r3, r8 - lsls r0, r3, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r0, 16 - mov r8, r0 - b _08103A46 - .align 2, 0 -_08103A34: .4byte 0x02000000 -_08103A38: - movs r2, 0x80 - lsls r2, 9 - adds r0, r5, r2 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _081039B6 -_08103A46: - mov r3, r8 - cmp r3, 0 - beq _08103A5C - ldr r1, [sp] - lsls r0, r1, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r0, 16 - str r0, [sp] - b _081039AA -_08103A5C: - ldr r0, _08103A74 - mov r3, sp - ldrh r3, [r3] - strh r3, [r0, 0x32] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08103A74: .4byte 0x02000000 - thumb_func_end sub_8103910 - - thumb_func_start sub_8103A78 -sub_8103A78: @ 8103A78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - bl sub_8103910 - ldr r4, _08103B10 - movs r0, 0x36 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _08103B20 - ldrh r2, [r4, 0x34] - movs r3, 0x34 - ldrsh r0, [r4, r3] - cmp r0, r1 - beq _08103B20 - ldrb r1, [r4, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08103B20 - ldrh r1, [r4, 0x2E] - subs r1, r2, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r1, [r4, 0x36] - ldrh r0, [r4, 0x30] - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_8103764 - lsls r0, 24 - cmp r0, 0 - beq _08103B20 - movs r1, 0x1 - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bne _08103AE0 - movs r1, 0x3 -_08103AE0: - movs r3, 0 - lsls r1, 16 - mov r8, r1 - adds r7, r4, 0 -_08103AE8: - ldrh r2, [r7, 0x32] - lsls r0, r3, 16 - asrs r5, r0, 16 - adds r2, r5, r2 - mov r3, r8 - asrs r1, r3, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r6, r4 - bne _08103B14 - ldrh r0, [r7, 0x32] - adds r0, r5, r0 - strh r0, [r7, 0x32] - b _08103B20 - .align 2, 0 -_08103B10: .4byte 0x02000000 -_08103B14: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _08103AE8 -_08103B20: - ldr r7, _08103B90 -_08103B22: - ldrh r0, [r7, 0x2E] - movs r1, 0x1 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r0, [r7, 0x30] - movs r1, 0x2 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r7, 0x32] - movs r1, 0x3 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_81037BC - lsls r0, 24 - cmp r0, 0 - bne _08103B94 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_810378C - lsls r0, 24 - cmp r0, 0 - beq _08103B88 - ldrb r1, [r7, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08103B94 -_08103B88: - ldrh r0, [r7, 0x32] - adds r0, 0x1 - strh r0, [r7, 0x32] - b _08103B22 - .align 2, 0 -_08103B90: .4byte 0x02000000 -_08103B94: - ldr r7, _08103C04 -_08103B96: - ldrh r0, [r7, 0x2E] - movs r1, 0x3 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r0, [r7, 0x30] - movs r1, 0x2 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r7, 0x32] - movs r1, 0x1 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_81037BC - lsls r0, 24 - cmp r0, 0 - bne _08103C08 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_810378C - lsls r0, 24 - cmp r0, 0 - beq _08103BFC - ldrb r1, [r7, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08103C08 -_08103BFC: - ldrh r0, [r7, 0x32] - adds r0, 0x1 - strh r0, [r7, 0x32] - b _08103B96 - .align 2, 0 -_08103C04: .4byte 0x02000000 -_08103C08: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8103A78 - - thumb_func_start sub_8103C14 -sub_8103C14: @ 8103C14 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08103C40 - adds r0, r5, 0 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08103C44 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x26] - bl _call_via_r5 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08103C40: .4byte sub_8103C48 -_08103C44: .4byte gTasks - thumb_func_end sub_8103C14 - - thumb_func_start sub_8103C48 -sub_8103C48: @ 8103C48 - push {r4,lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08103C70 - ldr r2, _08103C74 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r4, 0x8 - ldrsh r2, [r0, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103C70: .4byte gUnknown_083ECBA0 -_08103C74: .4byte gTasks - thumb_func_end sub_8103C48 - - thumb_func_start sub_8103C78 -sub_8103C78: @ 8103C78 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r1, _08103CA8 - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x73 - str r1, [sp] - movs r1, 0x62 - movs r2, 0x63 - movs r3, 0x72 - bl sub_81065A8 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103CA8: .4byte gUnknown_083ECBAC - thumb_func_end sub_8103C78 - - thumb_func_start sub_8103CAC -sub_8103CAC: @ 8103CAC - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - ble _08103CC4 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_08103CC4: - pop {r0} - bx r0 - thumb_func_end sub_8103CAC - - thumb_func_start sub_8103CC8 -sub_8103CC8: @ 8103CC8 - push {r4,lr} - sub sp, 0x4 - lsls r4, r1, 24 - lsrs r4, 24 - ldr r1, _08103CFC - movs r2, 0x26 - ldrsh r0, [r0, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x53 - str r1, [sp] - movs r1, 0x42 - movs r2, 0x43 - movs r3, 0x52 - bl sub_81065A8 - adds r0, r4, 0 - bl DestroyTask - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103CFC: .4byte gUnknown_083ECBAC - thumb_func_end sub_8103CC8 - - thumb_func_start sub_8103D00 -sub_8103D00: @ 8103D00 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08103D20 - lsls r1, r0, 2 - adds r1, r2 - ldr r2, [r1] - ldr r1, _08103D24 - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - movs r2, 0x2 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08103D20: .4byte gUnknown_083EDD08 -_08103D24: .4byte gUnknown_083EDD30 - thumb_func_end sub_8103D00 - - thumb_func_start sub_8103D28 -sub_8103D28: @ 8103D28 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08103D48 - lsls r1, r0, 2 - adds r1, r2 - ldr r2, [r1] - ldr r1, _08103D4C - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - movs r2, 0x2 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08103D48: .4byte gUnknown_083EDD1C -_08103D4C: .4byte gUnknown_083EDD30 - thumb_func_end sub_8103D28 - - thumb_func_start sub_8103D50 -sub_8103D50: @ 8103D50 - push {r4-r7,lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r4, 0 - ldr r0, _08103D84 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r4, r0 - bcs _08103D7C - ldr r7, _08103D88 - adds r6, r0, 0 - lsls r5, r1, 1 -_08103D68: - adds r0, r4, r5 - adds r0, r7 - ldrb r0, [r0] - bl sub_8103D00 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _08103D68 -_08103D7C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08103D84: .4byte gUnknown_083EDD3B -_08103D88: .4byte gUnknown_083EDD35 - thumb_func_end sub_8103D50 - - thumb_func_start sub_8103D8C -sub_8103D8C: @ 8103D8C - push {r4-r7,lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r4, 0 - ldr r0, _08103DC0 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r4, r0 - bcs _08103DB8 - ldr r7, _08103DC4 - adds r6, r0, 0 - lsls r5, r1, 1 -_08103DA4: - adds r0, r4, r5 - adds r0, r7 - ldrb r0, [r0] - bl sub_8103D28 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _08103DA4 -_08103DB8: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08103DC0: .4byte gUnknown_083EDD3B -_08103DC4: .4byte gUnknown_083EDD35 - thumb_func_end sub_8103D8C - - thumb_func_start sub_8103DC8 -sub_8103DC8: @ 8103DC8 - push {r4-r6,lr} - movs r4, 0 - ldr r6, _08103DF8 - ldr r5, _08103DFC -_08103DD0: - ldr r0, _08103E00 - bl CreateInvisibleSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - strh r4, [r1, 0x2E] - adds r1, r4, r5 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _08103DD0 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08103DF8: .4byte gSprites -_08103DFC: .4byte 0x02000044 -_08103E00: .4byte sub_8103EE4 - thumb_func_end sub_8103DC8 - - thumb_func_start sub_8103E04 -sub_8103E04: @ 8103E04 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08103E30 - adds r1, 0x44 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08103E34 - adds r0, r1 - movs r2, 0 - movs r1, 0x1 - strh r1, [r0, 0x30] - movs r1, 0x4 - strh r1, [r0, 0x32] - strh r2, [r0, 0x34] - strh r2, [r0, 0x36] - movs r1, 0x2 - strh r1, [r0, 0x38] - strh r2, [r0, 0x3C] - bx lr - .align 2, 0 -_08103E30: .4byte 0x02000000 -_08103E34: .4byte gSprites - thumb_func_end sub_8103E04 - - thumb_func_start sub_8103E38 -sub_8103E38: @ 8103E38 - push {r4,r5,lr} - movs r2, 0 - ldr r4, _08103E60 - ldr r3, _08103E64 -_08103E40: - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r3 - movs r5, 0x30 - ldrsh r0, [r1, r5] - cmp r0, 0 - beq _08103E68 - movs r5, 0x32 - ldrsh r0, [r1, r5] - cmp r0, 0 - beq _08103E68 - movs r0, 0 - b _08103E74 - .align 2, 0 -_08103E60: .4byte 0x02000044 -_08103E64: .4byte gSprites -_08103E68: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x4 - bls _08103E40 - movs r0, 0x1 -_08103E74: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8103E38 - - thumb_func_start sub_8103E7C -sub_8103E7C: @ 8103E7C - push {r4,r5,lr} - movs r4, 0 - ldr r5, _08103E94 -_08103E82: - adds r0, r4, r5 - ldrb r0, [r0] - bl sub_8103EAC - lsls r0, 24 - cmp r0, 0 - bne _08103E98 - movs r0, 0 - b _08103EA4 - .align 2, 0 -_08103E94: .4byte 0x02000044 -_08103E98: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _08103E82 - movs r0, 0x1 -_08103EA4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8103E7C - - thumb_func_start sub_8103EAC -sub_8103EAC: @ 8103EAC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08103EC8 - adds r1, r0 - movs r2, 0x30 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08103ECC - movs r0, 0x1 - b _08103EDE - .align 2, 0 -_08103EC8: .4byte gSprites -_08103ECC: - ldrh r2, [r1, 0x3C] - movs r3, 0x3C - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08103EDA - movs r0, 0 - strh r0, [r1, 0x30] -_08103EDA: - lsls r0, r2, 24 - lsrs r0, 24 -_08103EDE: - pop {r1} - bx r1 - thumb_func_end sub_8103EAC - - thumb_func_start sub_8103EE4 -sub_8103EE4: @ 8103EE4 - push {r4-r7,lr} - adds r2, r0, 0 - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _08103F66 - ldrh r0, [r2, 0x34] - subs r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _08103F4E - movs r0, 0 - strh r0, [r2, 0x3C] - movs r6, 0x1 - strh r6, [r2, 0x34] - ldrh r1, [r2, 0x38] - ldrh r3, [r2, 0x36] - adds r0, r1, r3 - strh r0, [r2, 0x36] - movs r4, 0x4 - ldrh r5, [r2, 0x32] - movs r7, 0x32 - ldrsh r3, [r2, r7] - cmp r3, 0 - beq _08103F20 - movs r4, 0x8 -_08103F20: - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bgt _08103F38 - strh r6, [r2, 0x3C] - negs r0, r1 - strh r0, [r2, 0x38] - cmp r3, 0 - beq _08103F4E - subs r0, r5, 0x1 - strh r0, [r2, 0x32] - b _08103F40 -_08103F38: - cmp r0, r4 - blt _08103F40 - negs r0, r1 - strh r0, [r2, 0x38] -_08103F40: - movs r1, 0x32 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _08103F4E - ldrh r0, [r2, 0x34] - lsls r0, 1 - strh r0, [r2, 0x34] -_08103F4E: - ldr r1, _08103F6C - movs r3, 0x2E - ldrsh r0, [r2, r3] - adds r0, r1 - ldrb r0, [r0] - ldrh r3, [r2, 0x36] - lsls r3, 24 - lsrs r3, 24 - adds r1, r3, 0 - adds r2, r3, 0 - bl sub_8085D08 -_08103F66: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08103F6C: .4byte gUnknown_083EDD30 - thumb_func_end sub_8103EE4 - - thumb_func_start sub_8103F70 -sub_8103F70: @ 8103F70 - push {r4,lr} - ldr r4, _08103F98 - adds r0, r4, 0 - movs r1, 0x6 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08103F9C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x1 - strh r2, [r1, 0xE] - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103F98: .4byte sub_8103FE8 -_08103F9C: .4byte gTasks - thumb_func_end sub_8103F70 - - thumb_func_start sub_8103FA0 -sub_8103FA0: @ 8103FA0 - push {lr} - ldr r0, _08103FC4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _08103FC8 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08103FCC - movs r0, 0 - b _08103FE0 - .align 2, 0 -_08103FC4: .4byte sub_8103FE8 -_08103FC8: .4byte gTasks -_08103FCC: - adds r0, r2, 0 - bl DestroyTask - ldr r0, _08103FE4 - ldr r0, [r0] - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - movs r0, 0x1 -_08103FE0: - pop {r1} - bx r1 - .align 2, 0 -_08103FE4: .4byte gUnknown_083EDDAC - thumb_func_end sub_8103FA0 - - thumb_func_start sub_8103FE8 -sub_8103FE8: @ 8103FE8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08104040 - adds r2, r1, r0 - ldrh r0, [r2, 0xA] - subs r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _08104026 - movs r0, 0x4 - strh r0, [r2, 0xA] - ldrh r1, [r2, 0xE] - ldrh r3, [r2, 0xC] - adds r0, r1, r3 - strh r0, [r2, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - beq _08104022 - cmp r0, 0x2 - bne _08104026 -_08104022: - negs r0, r1 - strh r0, [r2, 0xE] -_08104026: - ldr r0, _08104044 - movs r3, 0xC - ldrsh r1, [r2, r3] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08104040: .4byte gTasks -_08104044: .4byte gUnknown_083EDDA0 - thumb_func_end sub_8103FE8 - - thumb_func_start sub_8104048 -sub_8104048: @ 8104048 - push {lr} - ldr r0, _0810405C - movs r1, 0x8 - bl CreateTask - ldr r1, _08104060 - adds r1, 0x3E - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0810405C: .4byte sub_81040E8 -_08104060: .4byte 0x02000000 - thumb_func_end sub_8104048 - - thumb_func_start sub_8104064 -sub_8104064: @ 8104064 - push {r4,lr} - ldr r0, _08104090 - adds r0, 0x3E - ldrb r0, [r0] - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _08104094 - adds r4, r0 - adds r0, r4, 0 - bl sub_810421C - movs r1, 0x1 - strh r1, [r4, 0x8] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - strh r1, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104090: .4byte 0x02000000 -_08104094: .4byte gTasks - thumb_func_end sub_8104064 - - thumb_func_start sub_8104098 -sub_8104098: @ 8104098 - push {r4,lr} - ldr r0, _081040C0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _081040C4 - adds r4, r0 - adds r0, r4, 0 - bl sub_810421C - movs r0, 0x3 - strh r0, [r4, 0x8] - movs r0, 0x1 - strh r0, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081040C0: .4byte 0x02000000 -_081040C4: .4byte gTasks - thumb_func_end sub_8104098 - - thumb_func_start sub_81040C8 -sub_81040C8: @ 81040C8 - ldr r2, _081040E0 - ldr r0, _081040E4 - adds r0, 0x3E - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x26] - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_081040E0: .4byte gTasks -_081040E4: .4byte 0x02000000 - thumb_func_end sub_81040C8 - - thumb_func_start sub_81040E8 -sub_81040E8: @ 81040E8 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08104110 - ldr r2, _08104114 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08104110: .4byte gUnknown_083ECBB4 -_08104114: .4byte gTasks - thumb_func_end sub_81040E8 - - thumb_func_start nullsub_68 -nullsub_68: @ 8104118 - bx lr - thumb_func_end nullsub_68 - - thumb_func_start sub_810411C -sub_810411C: @ 810411C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0xA] - lsls r0, 19 - movs r1, 0xA0 - lsls r1, 13 - adds r0, r1 - asrs r0, 16 - movs r1, 0x14 - bl sub_8105B1C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_810411C - - thumb_func_start sub_8104144 -sub_8104144: @ 8104144 - push {r4,lr} - adds r4, r0, 0 - ldr r2, _08104174 - movs r0, 0xC - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3C - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0810419E - ldrh r1, [r4, 0xA] - adds r0, r1, 0x2 - lsls r0, 16 - lsrs r2, r0, 16 - movs r0, 0 - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x1 - bne _08104178 - movs r0, 0x1 - b _0810417E - .align 2, 0 -_08104174: .4byte gSprites -_08104178: - cmp r1, 0x10 - bne _0810417E - movs r0, 0x2 -_0810417E: - lsls r1, r2, 16 - asrs r1, 15 - ldr r2, _081041A4 - adds r1, r2 - adds r1, 0x80 - ldr r2, _081041A8 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - ldrb r0, [r4, 0xC] - bl sub_8105B88 - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0x26] -_0810419E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081041A4: .4byte 0x0600e800 -_081041A8: .4byte gUnknown_083ECBC4 - thumb_func_end sub_8104144 - - thumb_func_start sub_81041AC -sub_81041AC: @ 81041AC - push {r4,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0xA] - adds r0, r1, 0x2 - lsls r0, 16 - lsrs r4, r0, 16 - movs r2, 0 - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x1 - bne _081041C6 - movs r2, 0x1 - b _081041CC -_081041C6: - cmp r1, 0x10 - bne _081041CC - movs r2, 0x2 -_081041CC: - movs r1, 0xC - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _081041F0 - lsls r0, r4, 16 - asrs r0, 15 - ldr r1, _08104214 - adds r0, r1 - adds r0, 0x80 - ldr r1, _08104218 - lsls r2, 2 - adds r1, 0x2 - adds r2, r1 - ldrh r1, [r2] - strh r1, [r0] - ldrh r0, [r3, 0xA] - subs r0, 0x1 - strh r0, [r3, 0xA] -_081041F0: - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _08104202 - movs r0, 0 - strh r0, [r3, 0xC] -_08104202: - movs r1, 0xA - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _0810420E - strh r0, [r3, 0x8] - strh r0, [r3, 0x26] -_0810420E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104214: .4byte 0x0600e800 -_08104218: .4byte gUnknown_083ECBC4 - thumb_func_end sub_81041AC - - thumb_func_start sub_810421C -sub_810421C: @ 810421C - push {lr} - movs r1, 0x2 - adds r2, r0, 0 - adds r2, 0x8 - movs r3, 0 -_08104226: - lsls r0, r1, 1 - adds r0, r2, r0 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _08104226 - pop {r0} - bx r0 - thumb_func_end sub_810421C - - thumb_func_start sub_810423C -sub_810423C: @ 810423C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - movs r2, 0x3 - ldr r6, _08104268 - movs r4, 0 - ldr r0, _0810426C - mov r8, r0 - ldr r1, _08104270 - mov r12, r1 - cmp r4, r5 - bge _081042A6 - ldr r7, _08104274 -_0810425A: - movs r3, 0 - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0 - bne _08104278 - movs r3, 0x1 - b _0810427E - .align 2, 0 -_08104268: .4byte 0x0600e800 -_0810426C: .4byte gTasks -_08104270: .4byte 0x02000000 -_08104274: .4byte gUnknown_083ECBC4 -_08104278: - cmp r0, 0xF - bne _0810427E - movs r3, 0x2 -_0810427E: - lsls r2, 16 - asrs r2, 16 - lsls r1, r2, 1 - adds r1, r6 - adds r1, 0x80 - lsls r0, r3, 2 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r1] - lsls r0, r4, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - adds r2, 0x1 - lsls r2, 16 - lsrs r2, 16 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, r5 - blt _0810425A -_081042A6: - lsls r1, r4, 16 - asrs r0, r1, 16 - cmp r0, 0xF - bgt _081042F0 - ldr r7, _081042BC -_081042B0: - movs r3, 0 - asrs r0, r1, 16 - cmp r0, 0 - bne _081042C0 - movs r3, 0x1 - b _081042C6 - .align 2, 0 -_081042BC: .4byte gUnknown_083ECBC4 + 0x2 -_081042C0: - cmp r0, 0xF - bne _081042C6 - movs r3, 0x2 -_081042C6: - lsls r2, 16 - asrs r2, 16 - lsls r1, r2, 1 - adds r1, r6 - adds r1, 0x80 - lsls r0, r3, 2 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r1] - lsls r0, r4, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r4, r0, 16 - adds r2, 0x1 - lsls r2, 16 - lsrs r2, 16 - lsls r1, r4, 16 - asrs r0, r1, 16 - cmp r0, 0xF - ble _081042B0 -_081042F0: - mov r0, r12 - adds r0, 0x3E - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - add r0, r8 - strh r5, [r0, 0xA] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810423C - - thumb_func_start sub_810430C -sub_810430C: @ 810430C - push {r4,lr} - ldr r4, _08104328 - adds r0, r4, 0 - movs r1, 0x7 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104328: .4byte sub_810434C - thumb_func_end sub_810430C - - thumb_func_start sub_810432C -sub_810432C: @ 810432C - push {lr} - ldr r0, _08104340 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _08104344 - movs r0, 0 - b _08104346 - .align 2, 0 -_08104340: .4byte sub_810434C -_08104344: - movs r0, 0x1 -_08104346: - pop {r1} - bx r1 - thumb_func_end sub_810432C - - thumb_func_start sub_810434C -sub_810434C: @ 810434C - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08104374 - ldr r2, _08104378 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08104374: .4byte gUnknown_083ECBD0 -_08104378: .4byte gTasks - thumb_func_end sub_810434C - - thumb_func_start sub_810437C -sub_810437C: @ 810437C - push {lr} - ldr r1, _081043DC - movs r2, 0 - strb r2, [r1, 0xA] - strh r2, [r1, 0x14] - strh r2, [r1, 0x16] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - strh r2, [r0, 0xA] - movs r1, 0x1E - strh r1, [r0, 0xC] - movs r1, 0xA0 - lsls r1, 3 - strh r1, [r0, 0x10] - ldr r0, _081043E0 - strh r2, [r0] - ldr r0, _081043E4 - strh r2, [r0] - ldr r0, _081043E8 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - movs r0, 0x1E - movs r1, 0 - bl sub_8104A40 - bl sub_81051C0 - bl sub_8105100 - bl sub_81052EC - bl sub_81053A0 - bl sub_810545C - bl sub_8102680 - bl StopMapMusic - movs r0, 0xC4 - lsls r0, 1 - bl PlayNewMapMusic - pop {r0} - bx r0 - .align 2, 0 -_081043DC: .4byte 0x02000000 -_081043E0: .4byte gSpriteCoordOffsetX -_081043E4: .4byte gSpriteCoordOffsetY -_081043E8: .4byte REG_BG1HOFS - thumb_func_end sub_810437C - - thumb_func_start sub_81043EC -sub_81043EC: @ 81043EC - push {r4,lr} - adds r4, r0, 0 - ldr r1, _0810445C - ldrh r0, [r1] - subs r0, 0x8 - strh r0, [r1] - ldrh r2, [r4, 0xA] - adds r2, 0x8 - strh r2, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - adds r0, 0xF0 - movs r1, 0xFF - ands r0, r1 - lsrs r3, r0, 3 - ldr r1, _08104460 - ldr r0, _08104464 - ands r2, r0 - strh r2, [r1] - adds r2, r3, 0 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r2, r0 - beq _08104438 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x12 - bgt _08104438 - strh r3, [r4, 0xC] - ldrh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 19 - strh r0, [r4, 0xE] - movs r0, 0xE - ldrsh r1, [r4, r0] - adds r0, r2, 0 - bl sub_8104A40 -_08104438: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0xC7 - ble _0810444A - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xE] -_0810444A: - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810445C: .4byte gSpriteCoordOffsetX -_08104460: .4byte REG_BG1HOFS -_08104464: .4byte 0x000001ff - thumb_func_end sub_81043EC - - thumb_func_start sub_8104468 -sub_8104468: @ 8104468 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - ble _08104492 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - bl sub_8105578 - bl sub_81056F0 -_08104492: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104468 - - thumb_func_start sub_8104498 -sub_8104498: @ 8104498 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r7, r0, 0 - ldr r1, _08104534 - mov r0, sp - movs r2, 0x4 - bl memcpy - add r0, sp, 0x4 - mov r8, r0 - ldr r1, _08104538 - movs r2, 0x8 - bl memcpy - add r6, sp, 0xC - ldr r1, _0810453C - adds r0, r6, 0 - movs r2, 0x8 - bl memcpy - ldrh r0, [r7, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrh r0, [r7, 0x10] - subs r0, 0x4 - strh r0, [r7, 0x10] - lsls r0, 16 - asrs r0, 24 - movs r5, 0x4 - subs r5, r0 - lsls r4, r5, 1 - add r8, r4 - mov r1, r8 - movs r2, 0 - ldrsh r0, [r1, r2] - bl sub_8105688 - adds r6, r4 - movs r1, 0 - ldrsh r0, [r6, r1] - bl sub_81057E8 - ldr r0, _08104540 - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08104544 - adds r0, r1 - mov r2, sp - adds r1, r2, r5 - ldrb r1, [r1] - bl StartSpriteAnimIfDifferent - movs r1, 0x10 - ldrsh r0, [r7, r1] - movs r1, 0x80 - lsls r1, 1 - cmp r0, r1 - bgt _08104526 - ldrh r0, [r7, 0x8] - adds r0, 0x1 - strh r0, [r7, 0x8] - strh r1, [r7, 0x10] - movs r0, 0 - strh r0, [r7, 0x12] -_08104526: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08104534: .4byte gUnknown_083ECC1C -_08104538: .4byte gUnknown_083ECC20 -_0810453C: .4byte gUnknown_083ECC28 -_08104540: .4byte 0x02000000 -_08104544: .4byte gSprites - thumb_func_end sub_8104498 - - thumb_func_start sub_8104548 -sub_8104548: @ 8104548 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4F - ble _0810458A - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - strh r0, [r4, 0x12] - movs r0, 0x2 - bl sub_81057E8 - ldr r0, _08104590 - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08104594 - adds r0, r1 - movs r1, 0x3 - bl StartSpriteAnimIfDifferent -_0810458A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104590: .4byte 0x02000000 -_08104594: .4byte gSprites - thumb_func_end sub_8104548 - - thumb_func_start sub_8104598 -sub_8104598: @ 8104598 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrb r0, [r4, 0x10] - adds r0, 0x80 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4F - ble _081045C4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - strh r0, [r4, 0x12] -_081045C4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104598 - - thumb_func_start sub_81045CC -sub_81045CC: @ 81045CC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrb r0, [r4, 0x10] - adds r0, 0x40 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x27 - ble _08104634 - movs r0, 0 - strh r0, [r4, 0x12] - ldr r1, _0810460C - ldrb r0, [r1, 0x5] - cmp r0, 0 - beq _08104610 - ldrb r1, [r1, 0xA] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r1, r0 - bgt _0810462E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - b _0810462C - .align 2, 0 -_0810460C: .4byte 0x02000000 -_08104610: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _0810461E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - b _0810462C -_0810461E: - ldrh r0, [r4, 0x14] - bl sub_81026DC - lsls r0, 24 - cmp r0, 0 - beq _0810462E - movs r0, 0xE -_0810462C: - strh r0, [r4, 0x8] -_0810462E: - ldrh r0, [r4, 0x14] - adds r0, 0x1 - strh r0, [r4, 0x14] -_08104634: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81045CC - - thumb_func_start sub_810463C -sub_810463C: @ 810463C - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _08104660 - movs r1, 0x14 - ldrsh r0, [r6, r1] - movs r1, 0x14 - bl __modsi3 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r0, 0 - beq _08104664 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D5C - b _08104688 - .align 2, 0 -_08104660: .4byte 0x02000000 -_08104664: - movs r0, 0x1 - bl sub_8102C48 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6, 0x5] - cmp r0, r1 - beq _08104692 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - movs r1, 0x14 - ldrsh r0, [r6, r1] - movs r1, 0x14 - bl __modsi3 -_08104688: - lsls r0, 16 - lsrs r5, r0, 16 - ldrb r0, [r4, 0x10] - adds r0, 0x40 - strh r0, [r4, 0x10] -_08104692: - lsls r0, r5, 16 - asrs r5, r0, 16 - cmp r5, 0 - bne _081046B4 - movs r0, 0x1 - bl sub_8102C48 - ldr r1, _081046BC - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1, 0x5] - cmp r0, r1 - bne _081046B4 - strh r5, [r4, 0x10] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_081046B4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081046BC: .4byte 0x02000000 - thumb_func_end sub_810463C - - thumb_func_start sub_81046C0 -sub_81046C0: @ 81046C0 - push {r4-r7,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - adds r0, 0x1 - movs r7, 0 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - ble _08104758 - bl StopMapMusic - bl sub_81056C0 - bl sub_8105804 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r5, _08104710 - ldrb r0, [r5, 0x5] - cmp r0, 0 - bne _0810471C - movs r0, 0xA0 - strh r0, [r4, 0x10] - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08104714 - adds r0, r1 - movs r1, 0x5 - bl StartSpriteAnimIfDifferent - ldr r0, _08104718 - bl PlayFanfare - b _08104758 - .align 2, 0 -_08104710: .4byte 0x02000000 -_08104714: .4byte gSprites -_08104718: .4byte 0x00000187 -_0810471C: - movs r0, 0xC0 - strh r0, [r4, 0x10] - adds r6, r5, 0 - adds r6, 0x3F - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _08104760 - adds r0, r4 - movs r1, 0x4 - bl StartSpriteAnimIfDifferent - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x2B - strb r7, [r0] - ldrb r0, [r5, 0x2] - cmp r0, 0 - beq _08104750 - bl sub_8104098 - strb r7, [r5, 0x2] -_08104750: - movs r0, 0xC3 - lsls r0, 1 - bl PlayFanfare -_08104758: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08104760: .4byte gSprites - thumb_func_end sub_81046C0 - - thumb_func_start sub_8104764 -sub_8104764: @ 8104764 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0810477C - subs r0, r1, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bne _0810478C -_0810477C: - bl sub_81040C8 - lsls r0, 24 - cmp r0, 0 - bne _0810478C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0810478C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104764 - - thumb_func_start sub_8104794 -sub_8104794: @ 8104794 - push {r4,lr} - adds r3, r0, 0 - ldr r1, _081047D4 - ldrh r0, [r1] - subs r0, 0x8 - strh r0, [r1] - ldrh r2, [r3, 0xA] - adds r2, 0x8 - strh r2, [r3, 0xA] - ldrh r0, [r3, 0xE] - adds r0, 0x8 - strh r0, [r3, 0xE] - movs r1, 0xA - ldrsh r0, [r3, r1] - subs r0, 0x8 - movs r1, 0xFF - ands r0, r1 - lsrs r4, r0, 3 - ldr r1, _081047D8 - ldr r0, _081047DC - ands r2, r0 - strh r2, [r1] - ldrh r0, [r3, 0xE] - lsls r0, 16 - asrs r0, 19 - cmp r0, 0x19 - bgt _081047E0 - adds r0, r4, 0 - bl sub_8104A88 - b _081047E6 - .align 2, 0 -_081047D4: .4byte gSpriteCoordOffsetX -_081047D8: .4byte REG_BG1HOFS -_081047DC: .4byte 0x000001ff -_081047E0: - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_081047E6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104794 - - thumb_func_start sub_81047EC -sub_81047EC: @ 81047EC - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _08104834 - movs r6, 0 - strb r6, [r4, 0xB] - ldrb r0, [r4, 0x5] - strb r0, [r4, 0xA] - ldr r0, _08104838 - strh r6, [r0] - ldr r0, _0810483C - strh r6, [r0] - movs r0, 0x8 - strh r0, [r4, 0x1A] - bl sub_810514C - bl sub_81054B8 - bl sub_8105524 - adds r0, r4, 0 - adds r0, 0x60 - ldrh r0, [r0] - bl PlayNewMapMusic - ldrb r0, [r4, 0xA] - cmp r0, 0 - bne _08104844 - ldr r0, _08104840 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - b _0810485A - .align 2, 0 -_08104834: .4byte 0x02000000 -_08104838: .4byte gSpriteCoordOffsetX -_0810483C: .4byte REG_BG1HOFS -_08104840: .4byte sub_810434C -_08104844: - movs r0, 0x4 - bl sub_8104CAC - bl dp15_jump_random_unknown - strh r0, [r5, 0xA] - strh r6, [r5, 0xC] - strh r6, [r5, 0xE] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_0810485A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81047EC - - thumb_func_start sub_8104860 -sub_8104860: @ 8104860 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, _0810487C - ldrh r0, [r5, 0x1A] - lsls r6, r0, 16 - asrs r1, r6, 16 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08104880 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _081048A2 - .align 2, 0 -_0810487C: .4byte 0x02000000 -_08104880: - movs r1, 0x1C - ldrsh r0, [r5, r1] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _081048A2 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _081048A2 - asrs r0, r6, 17 - strh r0, [r5, 0x1A] -_081048A2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8104860 - - thumb_func_start sub_81048A8 -sub_81048A8: @ 81048A8 - push {lr} - bl sub_8104E18 - lsls r0, 24 - cmp r0, 0 - beq _081048C2 - ldr r0, _081048C8 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_081048C2: - pop {r0} - bx r0 - .align 2, 0 -_081048C8: .4byte sub_810434C - thumb_func_end sub_81048A8 - - thumb_func_start sub_81048CC -sub_81048CC: @ 81048CC - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_81054B8 - bl sub_81056C0 - bl sub_8105804 - bl sub_8105854 - ldr r5, _08104934 - ldr r3, _08104938 - adds r0, r3, 0 - adds r0, 0x4E - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r3, 0x3F - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x5 - bl StartSpriteAnimIfDifferent - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x8] - movs r0, 0x4 - strh r0, [r4, 0x10] - strh r1, [r4, 0x12] - bl StopMapMusic - ldr r0, _0810493C - bl PlayFanfare - movs r0, 0xB2 - bl PlaySE - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08104934: .4byte gSprites -_08104938: .4byte 0x02000000 -_0810493C: .4byte 0x00000187 - thumb_func_end sub_81048CC - - thumb_func_start sub_8104940 -sub_8104940: @ 8104940 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _081049B8 - ldrh r1, [r4, 0x10] - strh r1, [r0] - ldr r0, _081049BC - strh r1, [r0] - ldrh r1, [r4, 0x12] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810495E - ldrh r0, [r4, 0x10] - negs r0, r0 - strh r0, [r4, 0x10] -_0810495E: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - movs r1, 0x1F - ands r0, r1 - cmp r0, 0 - bne _08104974 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 17 - strh r0, [r4, 0x10] -_08104974: - movs r0, 0x10 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _081049B0 - bl sub_81058A0 - bl sub_81058C4 - bl sub_8105284 - bl sub_81059E8 - ldr r2, _081049C0 - ldr r0, _081049C4 - adds r0, 0x4E - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - strh r5, [r4, 0x12] -_081049B0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081049B8: .4byte gSpriteCoordOffsetY -_081049BC: .4byte REG_BG1VOFS -_081049C0: .4byte gSprites -_081049C4: .4byte 0x02000000 - thumb_func_end sub_8104940 - - thumb_func_start sub_81049C8 -sub_81049C8: @ 81049C8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _081049F0 - movs r1, 0 - strh r1, [r0] - ldr r0, _081049F4 - strh r1, [r0] - bl sub_8105ACC - lsls r0, 24 - cmp r0, 0 - beq _081049EA - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - bl sub_8105AEC -_081049EA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081049F0: .4byte gSpriteCoordOffsetY -_081049F4: .4byte REG_BG1VOFS - thumb_func_end sub_81049C8 - - thumb_func_start sub_81049F8 -sub_81049F8: @ 81049F8 - push {lr} - ldr r0, _08104A30 - movs r1, 0 - strh r1, [r0] - ldr r0, _08104A34 - strh r1, [r0] - ldr r0, _08104A38 - adds r0, 0x60 - ldrh r0, [r0] - bl PlayNewMapMusic - bl sub_810514C - bl sub_8105554 - bl sub_8105524 - bl sub_81059B8 - ldr r0, _08104A3C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 -_08104A30: .4byte gSpriteCoordOffsetX -_08104A34: .4byte REG_BG1HOFS -_08104A38: .4byte 0x02000000 -_08104A3C: .4byte sub_810434C - thumb_func_end sub_81049F8 - - thumb_func_start sub_8104A40 -sub_8104A40: @ 8104A40 - push {r4-r7,lr} - movs r3, 0x4 - ldr r7, _08104A80 - lsls r1, 16 - asrs r5, r1, 16 - lsls r0, 16 - asrs r4, r0, 16 - ldr r6, _08104A84 -_08104A50: - lsls r2, r3, 16 - asrs r2, 16 - subs r1, r2, 0x4 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r5, r0 - lsls r0, 1 - adds r0, r7 - ldrh r1, [r0] - lsls r0, r2, 5 - adds r0, r4 - lsls r0, 1 - adds r0, r6 - strh r1, [r0] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - asrs r2, 16 - cmp r2, 0xE - ble _08104A50 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08104A80: .4byte gReelTimeWindowTilemap -_08104A84: .4byte 0x0600e000 - thumb_func_end sub_8104A40 - - thumb_func_start sub_8104A88 -sub_8104A88: @ 8104A88 - push {r4,r5,lr} - movs r2, 0x4 - lsls r0, 16 - asrs r3, r0, 16 - ldr r5, _08104AB4 - movs r4, 0 -_08104A94: - lsls r1, r2, 16 - asrs r1, 16 - lsls r0, r1, 5 - adds r0, r3 - lsls r0, 1 - adds r0, r5 - strh r4, [r0] - adds r1, 0x1 - lsls r1, 16 - lsrs r2, r1, 16 - asrs r1, 16 - cmp r1, 0xE - ble _08104A94 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08104AB4: .4byte 0x0600e000 - thumb_func_end sub_8104A88 - - thumb_func_start sub_8104AB8 -sub_8104AB8: @ 8104AB8 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08104AE4 - adds r0, r5, 0 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08104AE8 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - bl _call_via_r5 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08104AE4: .4byte sub_8104B0C -_08104AE8: .4byte gTasks - thumb_func_end sub_8104AB8 - - thumb_func_start sub_8104AEC -sub_8104AEC: @ 8104AEC - push {lr} - ldr r0, _08104B00 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _08104B04 - movs r0, 0 - b _08104B06 - .align 2, 0 -_08104B00: .4byte sub_8104B0C -_08104B04: - movs r0, 0x1 -_08104B06: - pop {r1} - bx r1 - thumb_func_end sub_8104AEC - - thumb_func_start sub_8104B0C -sub_8104B0C: @ 8104B0C - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08104B34 - ldr r2, _08104B38 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08104B34: .4byte gUnknown_083ECC30 -_08104B38: .4byte gTasks - thumb_func_end sub_8104B0C - - thumb_func_start sub_8104B3C -sub_8104B3C: @ 8104B3C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104B3C - - thumb_func_start sub_8104B60 -sub_8104B60: @ 8104B60 - push {lr} - adds r2, r0, 0 - ldr r0, _08104B7C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08104B76 - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_08104B76: - pop {r0} - bx r0 - .align 2, 0 -_08104B7C: .4byte gPaletteFade - thumb_func_end sub_8104B60 - - thumb_func_start sub_8104B80 -sub_8104B80: @ 8104B80 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - bl sub_8104DA4 - bl sub_81065DC - ldr r0, _08104BC0 - bl BasicInitMenuWindow - ldr r0, _08104BC4 - movs r1, 0xA - movs r2, 0x20 - movs r3, 0x1 - bl sub_80729D8 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104BC0: .4byte gWindowConfig_81E7144 -_08104BC4: .4byte gOtherText_ReelTime - thumb_func_end sub_8104B80 - - thumb_func_start sub_8104BC8 -sub_8104BC8: @ 8104BC8 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r0, _08104BF8 - ldrh r1, [r0, 0x2E] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - beq _08104BF0 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08104BF0: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104BF8: .4byte gMain - thumb_func_end sub_8104BC8 - - thumb_func_start sub_8104BFC -sub_8104BFC: @ 8104BFC - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - bl MenuZeroFillScreen - ldr r0, _08104C3C - bl BasicInitMenuWindow - bl sub_81064B8 - ldrb r0, [r4, 0xA] - bl sub_8104CAC - ldr r0, _08104C40 - ldrb r0, [r0, 0x2] - bl sub_810423C - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104C3C: .4byte gWindowConfig_81E7128 -_08104C40: .4byte 0x02000000 - thumb_func_end sub_8104BFC - - thumb_func_start sub_8104C44 -sub_8104C44: @ 8104C44 - push {lr} - ldr r0, _08104C58 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 -_08104C58: .4byte sub_8104B0C - thumb_func_end sub_8104C44 - - thumb_func_start sub_8104C5C -sub_8104C5C: @ 8104C5C - push {lr} - ldr r0, _08104C9C - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _08104CA0 - adds r0, 0x3D - strb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08104CA4 - adds r0, r1 - ldr r1, _08104CA8 - strh r1, [r0, 0xA] - movs r1, 0x4 - adds r2, r0, 0 - adds r2, 0x8 - movs r3, 0x40 -_08104C86: - lsls r0, r1, 1 - adds r0, r2, r0 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _08104C86 - pop {r0} - bx r0 - .align 2, 0 -_08104C9C: .4byte sub_8104E74 -_08104CA0: .4byte 0x02000000 -_08104CA4: .4byte gTasks -_08104CA8: .4byte 0x0000ffff - thumb_func_end sub_8104C5C - - thumb_func_start sub_8104CAC -sub_8104CAC: @ 8104CAC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8104DA4 - ldr r0, _08104D24 - adds r0, 0x3D - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08104D28 - adds r7, r0, r1 - strh r4, [r7, 0xA] - movs r6, 0 - ldr r1, _08104D2C - lsls r5, r4, 2 - adds r0, r5, r1 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0xFF - beq _08104D18 - mov r8, r1 -_08104CE0: - mov r0, r8 - adds r4, r5, r0 - ldr r0, [r4] - lsls r2, r6, 2 - adds r2, r0 - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - movs r3, 0x2 - ldrsh r2, [r2, r3] - bl sub_8105BB4 - lsls r0, 24 - lsrs r0, 24 - adds r2, r6, 0x4 - lsls r2, 1 - adds r1, r7, 0 - adds r1, 0x8 - adds r1, r2 - strh r0, [r1] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, [r4] - lsls r0, r6, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08104CE0 -_08104D18: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08104D24: .4byte 0x02000000 -_08104D28: .4byte gTasks -_08104D2C: .4byte gUnknown_083ED048 - thumb_func_end sub_8104CAC - - thumb_func_start sub_8104D30 -sub_8104D30: @ 8104D30 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r8, r1 - ldr r4, [sp, 0x1C] - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08104D84 - adds r0, 0x3D - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08104D88 - adds r0, r1 - mov r12, r0 - movs r5, 0x4 - lsls r4, 16 - asrs r6, r4, 16 - lsls r2, 16 - lsls r3, 16 -_08104D5C: - lsls r0, r5, 1 - mov r1, r12 - adds r1, 0x8 - adds r4, r1, r0 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x40 - bne _08104D8C - str r6, [sp] - adds r0, r7, 0 - mov r1, r8 - asrs r2, 16 - asrs r3, 16 - bl sub_8105BF8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - b _08104D96 - .align 2, 0 -_08104D84: .4byte 0x02000000 -_08104D88: .4byte gTasks -_08104D8C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _08104D5C -_08104D96: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8104D30 - - thumb_func_start sub_8104DA4 -sub_8104DA4: @ 8104DA4 - push {r4-r6,lr} - ldr r0, _08104E04 - adds r0, 0x3D - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08104E08 - adds r4, r0, r1 - ldrh r1, [r4, 0xA] - ldr r0, _08104E0C - cmp r1, r0 - beq _08104DCE - ldr r0, _08104E10 - movs r2, 0xA - ldrsh r1, [r4, r2] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_08104DCE: - movs r5, 0x4 - adds r6, r4, 0 - adds r6, 0x8 -_08104DD4: - lsls r0, r5, 1 - adds r4, r6, r0 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x40 - beq _08104DF4 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08104E14 - adds r0, r1 - bl DestroySprite - movs r0, 0x40 - strh r0, [r4] -_08104DF4: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _08104DD4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08104E04: .4byte 0x02000000 -_08104E08: .4byte gTasks -_08104E0C: .4byte 0x0000ffff -_08104E10: .4byte gUnknown_083ED064 -_08104E14: .4byte gSprites - thumb_func_end sub_8104DA4 - - thumb_func_start sub_8104E18 -sub_8104E18: @ 8104E18 - push {r4,r5,lr} - ldr r0, _08104E54 - adds r0, 0x3D - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08104E58 - adds r0, r1 - movs r2, 0x4 - adds r3, r0, 0 - adds r3, 0x8 - ldr r4, _08104E5C -_08104E32: - lsls r0, r2, 1 - adds r1, r3, r0 - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r0, 0x40 - beq _08104E60 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r5, 0x3C - ldrsh r0, [r1, r5] - cmp r0, 0 - beq _08104E60 - movs r0, 0 - b _08104E6C - .align 2, 0 -_08104E54: .4byte 0x02000000 -_08104E58: .4byte gTasks -_08104E5C: .4byte gSprites -_08104E60: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _08104E32 - movs r0, 0x1 -_08104E6C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8104E18 - - thumb_func_start sub_8104E74 -sub_8104E74: @ 8104E74 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08104E9C - ldr r2, _08104EA0 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08104E9C: .4byte gUnknown_083ECC54 -_08104EA0: .4byte gTasks - thumb_func_end sub_8104E74 - - thumb_func_start nullsub_69 -nullsub_69: @ 8104EA4 - bx lr - thumb_func_end nullsub_69 - - thumb_func_start sub_8104EA8 -sub_8104EA8: @ 8104EA8 - push {r4-r7,lr} - movs r6, 0 - movs r0, 0x30 -_08104EAE: - movs r4, 0 - lsls r5, r0, 16 - lsls r7, r6, 16 -_08104EB4: - ldr r0, _08104F0C - asrs r1, r5, 16 - movs r2, 0 - movs r3, 0xE - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08104F10 - adds r1, r0 - ldrb r0, [r1, 0x5] - movs r2, 0xC - orrs r0, r2 - strb r0, [r1, 0x5] - strh r6, [r1, 0x2E] - strh r4, [r1, 0x30] - ldr r0, _08104F14 - strh r0, [r1, 0x34] - lsls r0, r4, 16 - movs r1, 0xC0 - lsls r1, 13 - adds r0, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x77 - ble _08104EB4 - movs r2, 0x80 - lsls r2, 9 - adds r1, r7, r2 - movs r2, 0xA0 - lsls r2, 14 - adds r0, r5, r2 - lsrs r0, 16 - lsrs r6, r1, 16 - asrs r1, 16 - cmp r1, 0x2 - ble _08104EAE - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08104F0C: .4byte gSpriteTemplate_83ED414 -_08104F10: .4byte gSprites -_08104F14: .4byte 0x0000ffff - thumb_func_end sub_8104EA8 - - thumb_func_start sub_8104F18 -sub_8104F18: @ 8104F18 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _08104F88 - movs r0, 0x2E - ldrsh r1, [r5, r0] - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x1C - adds r1, r0 - ldrh r0, [r5, 0x30] - ldrh r1, [r1] - adds r0, r1 - strh r0, [r5, 0x32] - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r1, 0x78 - bl __modsi3 - strh r0, [r5, 0x32] - movs r2, 0x2E - ldrsh r1, [r5, r2] - lsls r1, 1 - adds r4, 0x22 - adds r1, r4 - ldrh r1, [r1] - adds r1, 0x1C - adds r0, r1 - strh r0, [r5, 0x22] - ldrh r4, [r5, 0x2E] - lsls r4, 24 - lsrs r4, 24 - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r1, 0x18 - bl __divsi3 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_8102BA4 - lsls r0, 24 - lsrs r0, 24 - bl GetSpriteTileStartByTag - adds r1, r5, 0 - adds r1, 0x40 - strh r0, [r1] - adds r0, r5, 0 - bl SetSpriteSheetFrameTileNum - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08104F88: .4byte 0x02000000 - thumb_func_end sub_8104F18 - - thumb_func_start sub_8104F8C -sub_8104F8C: @ 8104F8C - push {r4-r6,lr} - movs r4, 0xCB - movs r5, 0x1 - ldr r6, _08104FF0 -_08104F94: - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r0, r4, 0 - movs r1, 0x17 - movs r2, 0 - adds r3, r5, 0 - bl sub_8104FF4 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 17 - subs r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, r6 - ble _08104F94 - movs r4, 0xEB - movs r5, 0x1 - ldr r6, _08104FF0 -_08104FC2: - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r0, r4, 0 - movs r1, 0x17 - movs r2, 0x1 - adds r3, r5, 0 - bl sub_8104FF4 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 17 - subs r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, r6 - ble _08104FC2 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08104FF0: .4byte 0x0000270f - thumb_func_end sub_8104F8C - - thumb_func_start sub_8104FF4 -sub_8104FF4: @ 8104FF4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - adds r4, r3, 0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _08105060 - lsls r5, 16 - asrs r5, 16 - lsls r6, 16 - asrs r6, 16 - adds r1, r5, 0 - adds r2, r6, 0 - movs r3, 0xD - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _08105064 - adds r2, r0 - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2, 0x5] - mov r0, r8 - strh r0, [r2, 0x2E] - strh r4, [r2, 0x30] - lsls r4, 16 - asrs r4, 16 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 1 - strh r0, [r2, 0x32] - ldr r0, _08105068 - strh r0, [r2, 0x34] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08105060: .4byte gSpriteTemplate_83ED42C -_08105064: .4byte gSprites -_08105068: .4byte 0x0000ffff - thumb_func_end sub_8104FF4 - - thumb_func_start sub_810506C -sub_810506C: @ 810506C - push {r4,lr} - adds r4, r0, 0 - ldr r1, _081050C0 - ldrh r2, [r1, 0xC] - movs r3, 0x2E - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _0810507E - ldrh r2, [r1, 0xE] -_0810507E: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, r2 - beq _081050B8 - strh r2, [r4, 0x34] - ldrh r1, [r4, 0x32] - adds r0, r2, 0 - bl __umodsi3 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r1, [r4, 0x30] - adds r0, r2, 0 - bl __udivsi3 - lsls r0, 16 - movs r3, 0xE0 - lsls r3, 11 - adds r0, r3 - lsrs r2, r0, 16 - adds r0, r2, 0 - bl GetSpriteTileStartByTag - adds r1, r4, 0 - adds r1, 0x40 - strh r0, [r1] - adds r0, r4, 0 - bl SetSpriteSheetFrameTileNum -_081050B8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081050C0: .4byte 0x02000000 - thumb_func_end sub_810506C - - thumb_func_start sub_81050C4 -sub_81050C4: @ 81050C4 - push {lr} - ldr r0, _081050F4 - movs r1, 0x58 - movs r2, 0x48 - movs r3, 0xF - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _081050F8 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r1, _081050FC - bl SetSubspriteTables - pop {r0} - bx r0 - .align 2, 0 -_081050F4: .4byte gSpriteTemplate_83ED444 -_081050F8: .4byte gSprites -_081050FC: .4byte gUnknown_083ED704 - thumb_func_end sub_81050C4 - - thumb_func_start sub_8105100 -sub_8105100: @ 8105100 - push {lr} - ldr r0, _08105140 - movs r1, 0x8C - lsls r1, 1 - movs r2, 0x50 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08105144 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2, 0x5] - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x2 - orrs r1, r3 - strb r1, [r2] - ldr r1, _08105148 - adds r1, 0x3F - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08105140: .4byte gSpriteTemplate_83ED45C -_08105144: .4byte gSprites -_08105148: .4byte 0x02000000 - thumb_func_end sub_8105100 - - thumb_func_start sub_810514C -sub_810514C: @ 810514C - push {lr} - ldr r0, _08105168 - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0810516C - adds r0, r1 - bl DestroySprite - pop {r0} - bx r0 - .align 2, 0 -_08105168: .4byte 0x02000000 -_0810516C: .4byte gSprites - thumb_func_end sub_810514C - - thumb_func_start sub_8105170 -sub_8105170: @ 8105170 - push {lr} - adds r2, r0, 0 - movs r0, 0 - strh r0, [r2, 0x24] - strh r0, [r2, 0x26] - adds r0, r2, 0 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, 0x4 - bne _081051B6 - movs r0, 0x8 - strh r0, [r2, 0x24] - strh r0, [r2, 0x26] - adds r0, r2, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0 - beq _081051A4 - adds r0, r2, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - bne _081051B2 - b _081051B6 -_081051A4: - adds r0, r2, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - bne _081051B6 -_081051B2: - ldr r0, _081051BC - strh r0, [r2, 0x26] -_081051B6: - pop {r0} - bx r0 - .align 2, 0 -_081051BC: .4byte 0x0000fff8 - thumb_func_end sub_8105170 - - thumb_func_start sub_81051C0 -sub_81051C0: @ 81051C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _0810526C - movs r7, 0xB8 - lsls r7, 1 - adds r1, r7, 0 - movs r2, 0x34 - movs r3, 0x7 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _08105270 - mov r10, r1 - adds r2, r0, r1 - ldrb r1, [r2, 0x5] - movs r5, 0xD - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - movs r3, 0x4 - mov r9, r3 - mov r1, r9 - orrs r0, r1 - strb r0, [r2, 0x5] - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r3, 0x2 - mov r8, r3 - mov r3, r8 - orrs r0, r3 - strb r0, [r1] - ldr r1, _08105274 - adds r0, r2, 0 - bl SetSubspriteTables - ldr r6, _08105278 - adds r0, r6, 0 - adds r0, 0x49 - strb r4, [r0] - ldr r0, _0810527C - adds r1, r7, 0 - movs r2, 0x54 - movs r3, 0x7 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - mov r1, r10 - adds r2, r0, r1 - ldrb r0, [r2, 0x5] - ands r5, r0 - mov r3, r9 - orrs r5, r3 - strb r5, [r2, 0x5] - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - mov r3, r8 - orrs r0, r3 - strb r0, [r1] - ldr r1, _08105280 - adds r0, r2, 0 - bl SetSubspriteTables - adds r6, 0x4A - strb r4, [r6] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810526C: .4byte gSpriteTemplate_83ED474 -_08105270: .4byte gSprites -_08105274: .4byte gUnknown_083ED73C -_08105278: .4byte 0x02000000 -_0810527C: .4byte gSpriteTemplate_83ED48C -_08105280: .4byte gUnknown_083ED75C - thumb_func_end sub_81051C0 - - thumb_func_start sub_8105284 -sub_8105284: @ 8105284 - push {r4,lr} - ldr r0, _081052D8 - ldr r1, _081052DC - ldrh r2, [r1] - movs r1, 0xA8 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x50 - movs r3, 0x7 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _081052E0 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - ldr r1, _081052E4 - bl SetSubspriteTables - ldr r0, _081052E8 - adds r0, 0x42 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081052D8: .4byte gSpriteTemplate_83ED4A4 -_081052DC: .4byte gSpriteCoordOffsetX -_081052E0: .4byte gSprites -_081052E4: .4byte gUnknown_083ED78C -_081052E8: .4byte 0x02000000 - thumb_func_end sub_8105284 - - thumb_func_start sub_81052EC -sub_81052EC: @ 81052EC - push {r4-r7,lr} - movs r4, 0 - movs r5, 0 - ldr r6, _08105350 -_081052F4: - ldr r0, _08105354 - movs r1, 0xB8 - lsls r1, 1 - movs r2, 0 - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - ldr r1, _08105358 - adds r3, r1 - ldrb r2, [r3, 0x5] - movs r7, 0xD - negs r7, r7 - adds r1, r7, 0 - ands r2, r1 - movs r1, 0x4 - orrs r2, r1 - strb r2, [r3, 0x5] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r1, [r1] - movs r2, 0x2 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - strh r5, [r3, 0x3C] - adds r1, r4, r6 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r5, 16 - movs r7, 0xA0 - lsls r7, 13 - adds r0, r7 - lsrs r5, r0, 16 - cmp r4, 0x2 - bls _081052F4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08105350: .4byte 0x0200004b -_08105354: .4byte gSpriteTemplate_83ED4BC -_08105358: .4byte gSprites - thumb_func_end sub_81052EC - - thumb_func_start sub_810535C -sub_810535C: @ 810535C - push {r4,lr} - adds r4, r0, 0 - ldr r1, _0810539C - ldrh r0, [r4, 0x3C] - ldrh r1, [r1, 0x14] - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x28 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - adds r1, r0, 0 - adds r1, 0x3B - strh r1, [r4, 0x22] - movs r1, 0x14 - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - bl sub_8102C48 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnimIfDifferent - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810539C: .4byte 0x02000000 - thumb_func_end sub_810535C - - thumb_func_start sub_81053A0 -sub_81053A0: @ 81053A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r1, 0xB8 - lsls r1, 1 - ldr r0, _0810544C - movs r2, 0x64 - movs r3, 0x9 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r7, _08105450 - adds r2, r0, r7 - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r3, 0x2 - mov r10, r3 - mov r3, r10 - orrs r0, r3 - strb r0, [r1] - ldrb r1, [r2, 0x5] - movs r5, 0xD - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - movs r1, 0x4 - mov r8, r1 - mov r3, r8 - orrs r0, r3 - strb r0, [r2, 0x5] - ldr r0, _08105454 - mov r9, r0 - adds r0, r2, 0 - mov r1, r9 - bl SetSubspriteTables - ldr r6, _08105458 - adds r0, r6, 0 - adds r0, 0x4E - strb r4, [r0] - movs r1, 0x90 - lsls r1, 1 - ldr r0, _0810544C - movs r2, 0x68 - movs r3, 0x4 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r2, r0, r7 - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - mov r3, r10 - orrs r0, r3 - strb r0, [r1] - ldrb r0, [r2, 0x5] - ands r5, r0 - mov r0, r8 - orrs r5, r0 - strb r5, [r2, 0x5] - adds r0, r2, 0 - mov r1, r9 - bl SetSubspriteTables - adds r6, 0x4F - strb r4, [r6] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810544C: .4byte gSpriteTemplate_83ED4D4 -_08105450: .4byte gSprites -_08105454: .4byte gUnknown_083ED7B4 -_08105458: .4byte 0x02000000 - thumb_func_end sub_81053A0 - - thumb_func_start sub_810545C -sub_810545C: @ 810545C - push {r4,lr} - ldr r0, _081054A8 - movs r1, 0xB8 - lsls r1, 1 - movs r2, 0x4C - movs r3, 0xB - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _081054AC - adds r0, r1 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r1, _081054B0 - bl SetSubspriteTables - ldr r0, _081054B4 - adds r0, 0x40 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081054A8: .4byte gSpriteTemplate_83ED4EC -_081054AC: .4byte gSprites -_081054B0: .4byte gUnknown_083ED7D4 -_081054B4: .4byte 0x02000000 - thumb_func_end sub_810545C - - thumb_func_start sub_81054B8 -sub_81054B8: @ 81054B8 - push {r4,r5,lr} - ldr r4, _08105518 - adds r0, r4, 0 - adds r0, 0x40 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0810551C - adds r0, r1 - bl DestroySprite - movs r5, 0 - adds r4, 0x49 -_081054D4: - adds r0, r5, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0810551C - adds r0, r1 - bl DestroySprite - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _081054D4 - movs r5, 0 - ldr r4, _08105520 -_081054F4: - adds r0, r5, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0810551C - adds r0, r1 - bl DestroySprite - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _081054F4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08105518: .4byte 0x02000000 -_0810551C: .4byte gSprites -_08105520: .4byte 0x0200004b - thumb_func_end sub_81054B8 - - thumb_func_start sub_8105524 -sub_8105524: @ 8105524 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _0810554C -_0810552A: - adds r0, r4, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08105550 - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0810552A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810554C: .4byte 0x0200004e -_08105550: .4byte gSprites - thumb_func_end sub_8105524 - - thumb_func_start sub_8105554 -sub_8105554: @ 8105554 - push {lr} - ldr r0, _08105570 - adds r0, 0x42 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08105574 - adds r0, r1 - bl DestroySprite - pop {r0} - bx r0 - .align 2, 0 -_08105570: .4byte 0x02000000 -_08105574: .4byte gSprites - thumb_func_end sub_8105554 - - thumb_func_start sub_8105578 -sub_8105578: @ 8105578 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - ldr r0, _0810561C - mov r10, r0 - movs r1, 0x98 - movs r2, 0x20 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r2, _08105620 - mov r9, r2 - adds r3, r1, r2 - ldrb r2, [r3, 0x5] - movs r4, 0xD - negs r4, r4 - adds r1, r4, 0 - ands r1, r2 - movs r2, 0x4 - mov r8, r2 - mov r2, r8 - orrs r1, r2 - strb r1, [r3, 0x5] - adds r5, r3, 0 - adds r5, 0x3F - ldrb r1, [r5] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r5] - ldr r5, _08105624 - adds r1, r5, 0 - adds r1, 0x50 - strb r0, [r1] - movs r0, 0x8 - strh r0, [r3, 0x2E] - ldr r0, _08105628 - strh r0, [r3, 0x30] - movs r0, 0x1 - negs r0, r0 - strh r0, [r3, 0x32] - movs r6, 0x20 - strh r6, [r3, 0x3C] - mov r0, r10 - movs r1, 0xB8 - movs r2, 0x20 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - mov r2, r9 - adds r3, r1, r2 - ldrb r1, [r3, 0x5] - ands r4, r1 - mov r1, r8 - orrs r4, r1 - strb r4, [r3, 0x5] - adds r5, 0x51 - strb r0, [r5] - movs r0, 0x1 - strh r0, [r3, 0x30] - subs r0, 0x2 - strh r0, [r3, 0x32] - strh r6, [r3, 0x3C] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810561C: .4byte gSpriteTemplate_83ED504 -_08105620: .4byte gSprites -_08105624: .4byte 0x02000000 -_08105628: .4byte 0x0000ffff - thumb_func_end sub_8105578 - - thumb_func_start sub_810562C -sub_810562C: @ 810562C - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - movs r1, 0x2E - ldrsh r4, [r2, r1] - cmp r4, 0 - beq _08105650 - subs r0, 0x1 - movs r1, 0 - strh r0, [r2, 0x2E] - strh r1, [r2, 0x24] - strh r1, [r2, 0x26] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - b _08105682 -_08105650: - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x26] - adds r0, r1 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _08105682 - ldrh r0, [r2, 0x3C] - strh r0, [r2, 0x2E] - strh r4, [r2, 0x34] -_08105682: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_810562C - - thumb_func_start sub_8105688 -sub_8105688: @ 8105688 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _081056B8 - ldr r3, _081056BC - adds r1, r3, 0 - adds r1, 0x50 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x3C] - adds r3, 0x51 - ldrb r2, [r3] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x3C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081056B8: .4byte gSprites -_081056BC: .4byte 0x02000000 - thumb_func_end sub_8105688 - - thumb_func_start sub_81056C0 -sub_81056C0: @ 81056C0 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _081056E8 -_081056C6: - adds r0, r4, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081056EC - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _081056C6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081056E8: .4byte 0x02000050 -_081056EC: .4byte gSprites - thumb_func_end sub_81056C0 - - thumb_func_start sub_81056F0 -sub_81056F0: @ 81056F0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - ldr r0, _08105778 - mov r8, r0 - movs r1, 0x48 - movs r2, 0x50 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810577C - mov r9, r1 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - add r2, r9 - ldrb r3, [r2, 0x5] - movs r4, 0xD - negs r4, r4 - adds r1, r4, 0 - ands r1, r3 - movs r6, 0x4 - orrs r1, r6 - strb r1, [r2, 0x5] - movs r3, 0 - movs r1, 0x1 - strh r1, [r2, 0x2E] - strh r3, [r2, 0x38] - movs r1, 0x10 - strh r1, [r2, 0x3A] - movs r1, 0x8 - strh r1, [r2, 0x3C] - ldr r5, _08105780 - adds r1, r5, 0 - adds r1, 0x52 - strb r0, [r1] - mov r0, r8 - movs r1, 0x68 - movs r2, 0x50 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - ldrb r2, [r1, 0x5] - ands r4, r2 - orrs r4, r6 - strb r4, [r1, 0x5] - adds r1, 0x3F - ldrb r2, [r1] - movs r3, 0x1 - orrs r2, r3 - strb r2, [r1] - adds r5, 0x53 - strb r0, [r5] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08105778: .4byte gSpriteTemplate_83ED51C -_0810577C: .4byte gSprites -_08105780: .4byte 0x02000000 - thumb_func_end sub_81056F0 - - thumb_func_start sub_8105784 -sub_8105784: @ 8105784 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r1, _081057E0 - mov r0, sp - movs r2, 0x2 - bl memcpy - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081057D6 - ldrh r0, [r4, 0x3A] - subs r0, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - cmp r0, 0 - bgt _081057D6 - movs r0, 0x7 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r2, _081057E4 - adds r0, r2 - lsrs r0, 16 - movs r2, 0x38 - ldrsh r1, [r4, r2] - add r1, sp - ldrb r3, [r1] - adds r1, r3, 0 - adds r2, r3, 0 - bl sub_8085C7C - ldrh r0, [r4, 0x38] - adds r0, 0x1 - movs r1, 0x1 - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3C] - strh r0, [r4, 0x3A] -_081057D6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081057E0: .4byte gUnknown_083ECC58 -_081057E4: .4byte 0x01030000 - thumb_func_end sub_8105784 - - thumb_func_start sub_81057E8 -sub_81057E8: @ 81057E8 - ldr r3, _081057FC - ldr r1, _08105800 - adds r1, 0x52 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - strh r0, [r1, 0x3C] - bx lr - .align 2, 0 -_081057FC: .4byte gSprites -_08105800: .4byte 0x02000000 - thumb_func_end sub_81057E8 - - thumb_func_start sub_8105804 -sub_8105804: @ 8105804 - push {r4,r5,lr} - movs r0, 0x7 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r1, _08105848 - adds r0, r1 - lsrs r0, 16 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8085C7C - movs r4, 0 - ldr r5, _0810584C -_08105824: - adds r0, r4, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08105850 - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _08105824 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08105848: .4byte 0x01030000 -_0810584C: .4byte 0x02000052 -_08105850: .4byte gSprites - thumb_func_end sub_8105804 - - thumb_func_start sub_8105854 -sub_8105854: @ 8105854 - push {lr} - ldr r0, _08105888 - movs r1, 0xA8 - movs r2, 0x50 - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810588C - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r3, [r1, 0x5] - movs r2, 0xD - negs r2, r2 - ands r2, r3 - movs r3, 0x4 - orrs r2, r3 - strb r2, [r1, 0x5] - ldr r1, _08105890 - adds r1, 0x41 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08105888: .4byte gSpriteTemplate_83ED534 -_0810588C: .4byte gSprites -_08105890: .4byte 0x02000000 - thumb_func_end sub_8105854 - - thumb_func_start sub_8105894 -sub_8105894: @ 8105894 - ldr r1, _0810589C - ldrh r1, [r1] - strh r1, [r0, 0x26] - bx lr - .align 2, 0 -_0810589C: .4byte gSpriteCoordOffsetY - thumb_func_end sub_8105894 - - thumb_func_start sub_81058A0 -sub_81058A0: @ 81058A0 - push {lr} - ldr r0, _081058BC - adds r0, 0x41 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081058C0 - adds r0, r1 - bl DestroySprite - pop {r0} - bx r0 - .align 2, 0 -_081058BC: .4byte 0x02000000 -_081058C0: .4byte gSprites - thumb_func_end sub_81058A0 - - thumb_func_start sub_81058C4 -sub_81058C4: @ 81058C4 - push {r4-r6,lr} - sub sp, 0x8 - ldr r1, _08105938 - mov r0, sp - movs r2, 0x8 - bl memcpy - movs r4, 0 - ldr r5, _0810593C -_081058D6: - ldr r0, _08105940 - ldrh r0, [r0] - movs r1, 0x50 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - ldr r0, _08105944 - movs r2, 0x44 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - ldr r1, _08105948 - adds r3, r1 - ldrb r2, [r3, 0x5] - movs r6, 0xD - negs r6, r6 - adds r1, r6, 0 - ands r2, r1 - movs r1, 0x4 - orrs r2, r1 - strb r2, [r3, 0x5] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r1, [r1] - movs r2, 0x2 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - lsls r1, r4, 1 - add r1, sp - ldrh r1, [r1] - strh r1, [r3, 0x2E] - adds r1, r4, r5 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081058D6 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08105938: .4byte gUnknown_083ECC5A -_0810593C: .4byte 0x02000054 -_08105940: .4byte gSpriteCoordOffsetX -_08105944: .4byte gSpriteTemplate_83ED54C -_08105948: .4byte gSprites - thumb_func_end sub_81058C4 - - thumb_func_start sub_810594C -sub_810594C: @ 810594C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - subs r0, 0x2 - movs r4, 0 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x2E] - movs r1, 0x2E - ldrsh r0, [r5, r1] - movs r1, 0x14 - bl Cos - strh r0, [r5, 0x24] - movs r2, 0x2E - ldrsh r0, [r5, r2] - movs r1, 0x6 - bl Sin - strh r0, [r5, 0x26] - adds r1, r5, 0 - adds r1, 0x43 - strb r4, [r1] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x7F - ble _08105986 - movs r0, 0x2 - strb r0, [r1] -_08105986: - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _081059B0 - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r0, r2, 31 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0 - strh r0, [r5, 0x30] -_081059B0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_810594C - - thumb_func_start sub_81059B8 -sub_81059B8: @ 81059B8 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _081059E0 -_081059BE: - adds r0, r4, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081059E4 - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081059BE - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081059E0: .4byte 0x02000054 -_081059E4: .4byte gSprites - thumb_func_end sub_81059B8 - - thumb_func_start sub_81059E8 -sub_81059E8: @ 81059E8 - push {r4,lr} - ldr r0, _08105A2C - movs r1, 0xA8 - movs r2, 0x3C - movs r3, 0x8 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _08105A30 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - ldrb r1, [r0, 0x1] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0, 0x1] - bl InitSpriteAffineAnim - ldr r0, _08105A34 - adds r0, 0x43 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105A2C: .4byte gSpriteTemplate_83ED564 -_08105A30: .4byte gSprites -_08105A34: .4byte 0x02000000 - thumb_func_end sub_81059E8 - - thumb_func_start sub_8105A38 -sub_8105A38: @ 8105A38 - push {lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x2E] - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _08105A5A - adds r0, r3, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08105AB4 - adds r0, r2, 0x1 - strh r0, [r3, 0x2E] - b _08105AB4 -_08105A5A: - cmp r0, 0x1 - bne _08105A96 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x17 - ble _08105AB4 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - movs r0, 0 - strh r0, [r3, 0x32] - b _08105AB4 -_08105A96: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _08105AB4 - movs r0, 0x1 - strh r0, [r3, 0x3C] -_08105AB4: - ldrh r0, [r3, 0x30] - movs r1, 0xFF - ands r1, r0 - adds r1, 0x10 - strh r1, [r3, 0x30] - lsrs r1, 8 - ldrh r0, [r3, 0x26] - subs r0, r1 - strh r0, [r3, 0x26] - pop {r0} - bx r0 - thumb_func_end sub_8105A38 - - thumb_func_start sub_8105ACC -sub_8105ACC: @ 8105ACC - ldr r2, _08105AE4 - ldr r0, _08105AE8 - adds r0, 0x43 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_08105AE4: .4byte gSprites -_08105AE8: .4byte 0x02000000 - thumb_func_end sub_8105ACC - - thumb_func_start sub_8105AEC -sub_8105AEC: @ 8105AEC - push {r4,lr} - ldr r0, _08105B14 - adds r0, 0x43 - ldrb r0, [r0] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08105B18 - adds r4, r0 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105B14: .4byte 0x02000000 -_08105B18: .4byte gSprites - thumb_func_end sub_8105AEC - - thumb_func_start sub_8105B1C -sub_8105B1C: @ 8105B1C - push {r4,lr} - adds r3, r0, 0 - adds r2, r1, 0 - ldr r0, _08105B68 - lsls r3, 16 - asrs r3, 16 - lsls r2, 16 - asrs r2, 16 - adds r1, r3, 0 - movs r3, 0xC - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _08105B6C - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x5] - ldrb r1, [r0, 0x1] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0, 0x1] - bl InitSpriteAffineAnim - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08105B68: .4byte gSpriteTemplate_83ED6CC -_08105B6C: .4byte gSprites - thumb_func_end sub_8105B1C - - thumb_func_start sub_8105B70 -sub_8105B70: @ 8105B70 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08105B84 - movs r0, 0x1 - strh r0, [r2, 0x3C] -_08105B84: - pop {r0} - bx r0 - thumb_func_end sub_8105B70 - - thumb_func_start sub_8105B88 -sub_8105B88: @ 8105B88 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08105BB0 - adds r4, r0 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105BB0: .4byte gSprites - thumb_func_end sub_8105B88 - - thumb_func_start sub_8105BB4 -sub_8105BB4: @ 8105BB4 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r3, _08105BF0 - lsrs r1, 22 - adds r3, r1, r3 - ldr r5, [r3] - ldr r3, _08105BF4 - adds r4, r1, r3 - movs r6, 0 - ldrsh r4, [r4, r6] - adds r3, 0x2 - adds r1, r3 - movs r6, 0 - ldrsh r3, [r1, r6] - lsls r2, 16 - asrs r2, 16 - str r2, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_8105BF8 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08105BF0: .4byte gUnknown_083ECF0C -_08105BF4: .4byte gUnknown_083ECE7E - thumb_func_end sub_8105BB4 - - thumb_func_start sub_8105BF8 -sub_8105BF8: @ 8105BF8 - push {r4-r7,lr} - adds r4, r0, 0 - adds r6, r1, 0 - adds r1, r2, 0 - adds r2, r3, 0 - ldr r5, [sp, 0x14] - lsls r4, 24 - lsls r5, 16 - lsrs r5, 16 - ldr r0, _08105C58 - lsrs r4, 22 - adds r0, r4, r0 - ldr r0, [r0] - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x10 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - adds r7, r0, 0 - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - ldr r1, _08105C5C - adds r2, r0, r1 - ldrb r0, [r2, 0x5] - movs r1, 0xC - orrs r0, r1 - strb r0, [r2, 0x5] - str r6, [r2, 0x1C] - strh r5, [r2, 0x3A] - movs r0, 0x1 - strh r0, [r2, 0x3C] - ldr r0, _08105C60 - adds r4, r0 - ldr r1, [r4] - cmp r1, 0 - beq _08105C50 - adds r0, r2, 0 - bl SetSubspriteTables -_08105C50: - adds r0, r7, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08105C58: .4byte gUnknown_083EDB5C -_08105C5C: .4byte gSprites -_08105C60: .4byte gUnknown_083EDBC4 - thumb_func_end sub_8105BF8 - - thumb_func_start sub_8105C64 -sub_8105C64: @ 8105C64 - movs r1, 0 - strh r1, [r0, 0x3C] - bx lr - thumb_func_end sub_8105C64 - - thumb_func_start sub_8105C6C -sub_8105C6C: @ 8105C6C - push {r4,r5,lr} - sub sp, 0x10 - adds r4, r0, 0 - ldr r1, _08105CE8 - mov r0, sp - movs r2, 0x8 - bl memcpy - add r5, sp, 0x8 - ldr r1, _08105CEC - adds r0, r5, 0 - movs r2, 0x8 - bl memcpy - ldrh r0, [r4, 0x30] - adds r1, r0, 0x1 - strh r1, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _08105CB2 - adds r3, r4, 0 - adds r3, 0x42 - ldrb r2, [r3] - lsls r0, r2, 26 - lsrs r0, 26 - movs r1, 0x1 - eors r1, r0 - movs r0, 0x40 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0 - strh r0, [r4, 0x30] -_08105CB2: - movs r0, 0 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x42 - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - beq _08105CDE - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r4, 0x26] -_08105CDE: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08105CE8: .4byte gUnknown_083ECC62 -_08105CEC: .4byte gUnknown_083ECC6A - thumb_func_end sub_8105C6C - - thumb_func_start sub_8105CF0 -sub_8105CF0: @ 8105CF0 - push {lr} - adds r3, r0, 0 - adds r3, 0x3F - ldrb r1, [r3] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r3] - bl sub_8105C6C - pop {r0} - bx r0 - thumb_func_end sub_8105CF0 - - thumb_func_start sub_8105D08 -sub_8105D08: @ 8105D08 - push {lr} - adds r3, r0, 0 - adds r3, 0x3F - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - bl sub_8105C6C - pop {r0} - bx r0 - thumb_func_end sub_8105D08 - - thumb_func_start sub_8105D20 -sub_8105D20: @ 8105D20 - push {lr} - adds r3, r0, 0 - adds r3, 0x3F - ldrb r1, [r3] - movs r2, 0x1 - orrs r1, r2 - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - bl sub_8105C6C - pop {r0} - bx r0 - thumb_func_end sub_8105D20 - - thumb_func_start sub_8105D3C -sub_8105D3C: @ 8105D3C - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _08105D70 - cmp r0, 0x1 - bgt _08105D52 - cmp r0, 0 - beq _08105D5C - b _08105DA0 -_08105D52: - cmp r0, 0x2 - beq _08105D80 - cmp r0, 0x3 - beq _08105D9C - b _08105DA0 -_08105D5C: - ldrh r0, [r2, 0x20] - adds r0, 0x4 - strh r0, [r2, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xCF - ble _08105DA0 - movs r0, 0xD0 - strh r0, [r2, 0x20] - b _08105D8E -_08105D70: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - ble _08105DA0 - b _08105D8E -_08105D80: - ldrh r0, [r2, 0x20] - adds r0, 0x4 - strh r0, [r2, 0x20] - lsls r0, 16 - ldr r1, _08105D98 - cmp r0, r1 - ble _08105DA0 -_08105D8E: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - b _08105DA0 - .align 2, 0 -_08105D98: .4byte 0x010f0000 -_08105D9C: - movs r0, 0 - strh r0, [r2, 0x3C] -_08105DA0: - pop {r0} - bx r0 - thumb_func_end sub_8105D3C - - thumb_func_start sub_8105DA4 -sub_8105DA4: @ 8105DA4 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _08105DD8 - cmp r0, 0x1 - bgt _08105DBA - cmp r0, 0 - beq _08105DC4 - b _08105E02 -_08105DBA: - cmp r0, 0x2 - beq _08105DE8 - cmp r0, 0x3 - beq _08105DFE - b _08105E02 -_08105DC4: - ldrh r0, [r1, 0x20] - subs r0, 0x4 - strh r0, [r1, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD0 - bgt _08105E02 - movs r0, 0xD0 - strh r0, [r1, 0x20] - b _08105DF6 -_08105DD8: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - ble _08105E02 - b _08105DF6 -_08105DE8: - ldrh r0, [r1, 0x20] - subs r0, 0x4 - strh r0, [r1, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x90 - bgt _08105E02 -_08105DF6: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _08105E02 -_08105DFE: - movs r0, 0 - strh r0, [r1, 0x3C] -_08105E02: - pop {r0} - bx r0 - thumb_func_end sub_8105DA4 - - thumb_func_start sub_8105E08 -sub_8105E08: @ 8105E08 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bhi _08105EAE - lsls r0, 2 - ldr r1, _08105E20 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08105E20: .4byte _08105E24 - .align 2, 0 -_08105E24: - .4byte _08105E3C - .4byte _08105E52 - .4byte _08105E70 - .4byte _08105E84 - .4byte _08105E94 - .4byte _08105EAA -_08105E3C: - ldr r0, _08105E6C - ldrb r1, [r0, 0xA] - subs r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_08105E52: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _08105EAE - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0 - strh r0, [r4, 0x30] - b _08105EAE - .align 2, 0 -_08105E6C: .4byte 0x02000000 -_08105E70: - ldrh r0, [r4, 0x20] - adds r0, 0x4 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xCF - ble _08105EAE - movs r0, 0xD0 - strh r0, [r4, 0x20] - b _08105EA2 -_08105E84: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - ble _08105EAE - b _08105EA2 -_08105E94: - ldrh r0, [r4, 0x20] - adds r0, 0x4 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF7 - ble _08105EAE -_08105EA2: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _08105EAE -_08105EAA: - movs r0, 0 - strh r0, [r4, 0x3C] -_08105EAE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8105E08 - - thumb_func_start sub_8105EB4 -sub_8105EB4: @ 8105EB4 - push {lr} - adds r3, r0, 0 - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _08105EE2 - cmp r0, 0x1 - bgt _08105ECA - cmp r0, 0 - beq _08105ED0 - b _08105F50 -_08105ECA: - cmp r0, 0x2 - beq _08105F00 - b _08105F50 -_08105ED0: - adds r2, r3, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] -_08105EE2: - ldrh r0, [r3, 0x22] - adds r0, 0x8 - strh r0, [r3, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6F - ble _08105F50 - movs r0, 0x70 - strh r0, [r3, 0x22] - movs r0, 0x10 - strh r0, [r3, 0x30] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _08105F50 -_08105F00: - movs r0, 0x32 - ldrsh r2, [r3, r0] - cmp r2, 0 - bne _08105F46 - ldrh r0, [r3, 0x22] - ldrh r1, [r3, 0x30] - subs r0, r1 - strh r0, [r3, 0x22] - negs r1, r1 - strh r1, [r3, 0x30] - ldrh r0, [r3, 0x34] - adds r0, 0x1 - strh r0, [r3, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _08105F46 - lsls r0, r1, 16 - asrs r0, 18 - strh r0, [r3, 0x30] - strh r2, [r3, 0x34] - adds r1, r0, 0 - cmp r1, 0 - bne _08105F46 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - strh r1, [r3, 0x3C] - adds r2, r3, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08105F46: - ldrh r0, [r3, 0x32] - adds r0, 0x1 - movs r1, 0x7 - ands r0, r1 - strh r0, [r3, 0x32] -_08105F50: - pop {r0} - bx r0 - thumb_func_end sub_8105EB4 - - thumb_func_start sub_8105F54 -sub_8105F54: @ 8105F54 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _08105F66 - cmp r0, 0x1 - beq _08105F7C - b _08105F98 -_08105F66: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _08105F98 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _08105F98 -_08105F7C: - ldrh r0, [r1, 0x22] - adds r0, 0x2 - strh r0, [r1, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2F - ble _08105F98 - movs r0, 0x30 - strh r0, [r1, 0x22] - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - movs r0, 0 - strh r0, [r1, 0x3C] -_08105F98: - pop {r0} - bx r0 - thumb_func_end sub_8105F54 - - thumb_func_start sub_8105F9C -sub_8105F9C: @ 8105F9C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08105FAE - cmp r0, 0x1 - beq _08106000 - b _0810604E -_08105FAE: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - ble _0810604E - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0x5 - strh r0, [r4, 0x30] - ldrb r0, [r4, 0x1] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldr r2, _08105FFC - ldrh r1, [r4, 0x30] - lsls r0, r1, 4 - orrs r0, r1 - lsls r0, 8 - strh r0, [r2] - b _0810604E - .align 2, 0 -_08105FFC: .4byte REG_MOSAIC -_08106000: - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - ldrh r0, [r4, 0x30] - subs r0, r1 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bge _08106016 - movs r0, 0 - strh r0, [r4, 0x30] -_08106016: - ldr r2, _08106054 - ldrh r1, [r4, 0x30] - lsls r0, r1, 4 - orrs r0, r1 - lsls r0, 8 - strh r0, [r2] - ldrh r1, [r4, 0x32] - movs r0, 0xFF - ands r0, r1 - adds r0, 0x80 - strh r0, [r4, 0x32] - movs r0, 0x30 - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _0810604E - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x3C] - ldrb r1, [r4, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim -_0810604E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08106054: .4byte REG_MOSAIC - thumb_func_end sub_8105F9C - - thumb_func_start sub_8106058 -sub_8106058: @ 8106058 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0x2 - bgt _081060A8 - ldr r1, _081060A4 - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - movs r0, 0x6 - bl IndexOfSpritePaletteTag - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 4 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _081060E4 - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - movs r0, 0 - strh r0, [r5, 0x32] - b _081060E4 - .align 2, 0 -_081060A4: .4byte gUnknown_083EDE10 -_081060A8: - ldr r1, _081060F8 - movs r2, 0x30 - ldrsh r0, [r5, r2] - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - movs r0, 0x6 - bl IndexOfSpritePaletteTag - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 4 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - ldrh r0, [r5, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - ble _081060E4 - strh r1, [r5, 0x30] - strh r1, [r5, 0x32] -_081060E4: - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnimIfDifferent - movs r0, 0 - strh r0, [r5, 0x3C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081060F8: .4byte gUnknown_083EDE10 - thumb_func_end sub_8106058 - - thumb_func_start sub_81060FC -sub_81060FC: @ 81060FC - push {r4-r6,lr} - sub sp, 0x30 - adds r4, r0, 0 - ldr r1, _08106138 - mov r0, sp - movs r2, 0x10 - bl memcpy - add r6, sp, 0x10 - ldr r1, _0810613C - adds r0, r6, 0 - movs r2, 0x10 - bl memcpy - add r5, sp, 0x20 - ldr r1, _08106140 - adds r0, r5, 0 - movs r2, 0x10 - bl memcpy - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08106174 - cmp r0, 0x1 - bgt _08106144 - cmp r0, 0 - beq _0810614A - b _081061C0 - .align 2, 0 -_08106138: .4byte gUnknown_083ECC72 -_0810613C: .4byte gUnknown_083ECC82 -_08106140: .4byte gUnknown_083ECC92 -_08106144: - cmp r0, 0x2 - beq _08106188 - b _081061C0 -_0810614A: - movs r2, 0x3A - ldrsh r0, [r4, r2] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - adds r0, r6, r0 - ldrh r0, [r0] - strh r0, [r4, 0x26] - movs r2, 0x3A - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_08106174: - ldrh r0, [r4, 0x30] - subs r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _081061C0 - b _081061BA -_08106188: - ldrh r0, [r4, 0x24] - movs r2, 0x24 - ldrsh r1, [r4, r2] - cmp r1, 0 - ble _08106196 - subs r0, 0x4 - b _0810619C -_08106196: - cmp r1, 0 - bge _0810619E - adds r0, 0x4 -_0810619C: - strh r0, [r4, 0x24] -_0810619E: - ldrh r0, [r4, 0x26] - movs r2, 0x26 - ldrsh r1, [r4, r2] - cmp r1, 0 - ble _081061AC - subs r0, 0x4 - b _081061B2 -_081061AC: - cmp r1, 0 - bge _081061B4 - adds r0, 0x4 -_081061B2: - strh r0, [r4, 0x26] -_081061B4: - ldr r0, [r4, 0x24] - cmp r0, 0 - bne _081061C0 -_081061BA: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_081061C0: - add sp, 0x30 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81060FC - - thumb_func_start sub_81061C8 -sub_81061C8: @ 81061C8 - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - ldr r1, _0810622C - mov r0, sp - movs r2, 0x10 - bl memcpy - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _081061EA - adds r0, r1, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0xC - strh r0, [r4, 0x30] -_081061EA: - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - add r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - add r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08106224 - subs r0, r1, 0x1 - strh r0, [r4, 0x30] -_08106224: - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810622C: .4byte gUnknown_083ECCA2 - thumb_func_end sub_81061C8 - - thumb_func_start sub_8106230 -sub_8106230: @ 8106230 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _0810627A - cmp r0, 0x1 - bgt _08106248 - cmp r0, 0 - beq _08106252 - b _0810634A -_08106248: - cmp r0, 0x2 - beq _081062C4 - cmp r0, 0x3 - beq _081062FC - b _0810634A -_08106252: - ldr r2, _081062BC - adds r1, r2, 0 - adds r1, 0x5C - movs r0, 0x2F - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x3F - strh r0, [r1] - subs r1, 0x4 - ldr r0, _081062C0 - strh r0, [r1] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] -_0810627A: - ldrh r0, [r5, 0x30] - adds r2, r0, 0x2 - strh r2, [r5, 0x30] - adds r0, 0xB2 - strh r0, [r5, 0x32] - movs r1, 0xF0 - subs r1, r2 - strh r1, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD0 - ble _08106296 - movs r0, 0xD0 - strh r0, [r5, 0x32] -_08106296: - movs r1, 0x34 - ldrsh r0, [r5, r1] - cmp r0, 0xCF - bgt _081062A2 - movs r0, 0xD0 - strh r0, [r5, 0x34] -_081062A2: - ldr r2, _081062BC - ldrh r0, [r5, 0x32] - lsls r0, 8 - ldrh r1, [r5, 0x34] - orrs r0, r1 - adds r1, r2, 0 - adds r1, 0x58 - strh r0, [r1] - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0x33 - ble _0810634A - b _0810633C - .align 2, 0 -_081062BC: .4byte 0x02000000 -_081062C0: .4byte 0x00002088 -_081062C4: - ldr r6, _08106354 - movs r1, 0x12 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _0810634A - ldr r1, _08106358 - movs r4, 0 - str r4, [sp] - movs r0, 0x5 - movs r2, 0xD0 - movs r3, 0x74 - bl sub_8104D30 - adds r1, r6, 0 - adds r1, 0x58 - ldr r0, _0810635C - strh r0, [r1] - adds r1, 0x2 - movs r0, 0xD1 - lsls r0, 7 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2F - strh r0, [r1] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - strh r4, [r5, 0x30] -_081062FC: - ldrh r0, [r5, 0x30] - adds r2, r0, 0x2 - strh r2, [r5, 0x30] - adds r0, 0xC2 - strh r0, [r5, 0x32] - movs r1, 0xE0 - subs r1, r2 - strh r1, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD0 - ble _08106318 - movs r0, 0xD0 - strh r0, [r5, 0x32] -_08106318: - movs r1, 0x34 - ldrsh r0, [r5, r1] - cmp r0, 0xCF - bgt _08106324 - movs r0, 0xD0 - strh r0, [r5, 0x34] -_08106324: - ldr r2, _08106354 - ldrh r0, [r5, 0x32] - lsls r0, 8 - ldrh r1, [r5, 0x34] - orrs r0, r1 - adds r1, r2, 0 - adds r1, 0x58 - strh r0, [r1] - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0xF - ble _0810634A -_0810633C: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r1, r2, 0 - adds r1, 0x5C - movs r0, 0x3F - strh r0, [r1] -_0810634A: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08106354: .4byte 0x02000000 -_08106358: .4byte SpriteCallbackDummy -_0810635C: .4byte 0x0000c0e0 - thumb_func_end sub_8106230 - - thumb_func_start nullsub_70 -nullsub_70: @ 8106360 - bx lr - thumb_func_end nullsub_70 - - thumb_func_start sub_8106364 -sub_8106364: @ 8106364 - ldr r1, _0810636C - movs r0, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_0810636C: .4byte REG_MOSAIC - thumb_func_end sub_8106364 - - thumb_func_start sub_8106370 -sub_8106370: @ 8106370 - push {r4,lr} - ldr r0, _08106398 - ldr r4, [r0] - movs r0, 0x6 - bl IndexOfSpritePaletteTag - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 4 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08106398: .4byte gUnknown_083EDE20 - thumb_func_end sub_8106370 - - thumb_func_start sub_810639C -sub_810639C: @ 810639C - ldr r2, _081063BC - adds r1, r2, 0 - adds r1, 0x58 - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0xA0 - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0x5C - movs r1, 0x3F - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_081063BC: .4byte 0x02000000 - thumb_func_end sub_810639C - - thumb_func_start sub_81063C0 -sub_81063C0: @ 81063C0 - push {r4,lr} - bl sub_8106404 - ldr r0, _081063F0 - ldr r4, _081063F4 - adds r1, r4, 0 - bl sub_800D238 - ldr r0, _081063F8 - movs r1, 0xC8 - lsls r1, 6 - adds r4, r1 - adds r1, r4, 0 - bl sub_800D238 - ldr r0, _081063FC - bl LoadSpriteSheets - ldr r0, _08106400 - bl LoadSpritePalettes - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081063F0: .4byte gSlotMachineReelTimeLights_Gfx -_081063F4: .4byte 0x02010000 -_081063F8: .4byte gUnknown_083EDE8C -_081063FC: .4byte gUnknown_083EDC2C -_08106400: .4byte gSlotMachineSpritePalettes - thumb_func_end sub_81063C0 - - thumb_func_start sub_8106404 -sub_8106404: @ 8106404 - push {r4,r5,lr} - ldr r3, _0810643C - movs r2, 0 - ldr r5, _08106440 - ldr r0, _08106444 - ldr r4, [r0] -_08106410: - movs r1, 0 - adds r2, 0x1 -_08106414: - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r3] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - adds r3, 0x1 - cmp r1, 0x1F - bls _08106414 - lsls r0, r2, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _08106410 - adds r0, r5, 0 - bl LoadSpriteSheet - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810643C: .4byte 0x02010000 -_08106440: .4byte gUnknown_083EDCDC -_08106444: .4byte gUnknown_083EDCE4 - thumb_func_end sub_8106404 - - thumb_func_start sub_8106448 -sub_8106448: @ 8106448 - push {r4-r7,lr} - ldr r0, _081064A0 - ldr r4, _081064A4 - adds r1, r4, 0 - bl sub_800D238 - movs r3, 0xC0 - lsls r3, 19 - movs r5, 0xE9 - lsls r5, 5 - ldr r1, _081064A8 - ldr r6, _081064AC - movs r2, 0x80 - lsls r2, 5 - movs r7, 0x80 - lsls r7, 24 -_08106468: - str r4, [r1] - str r3, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r4, r2 - adds r3, r2 - subs r5, r2 - cmp r5, r2 - bhi _08106468 - str r4, [r1] - str r3, [r1, 0x4] - lsrs r0, r5, 1 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r0, _081064B0 - movs r1, 0 - movs r2, 0xA0 - bl LoadPalette - ldr r0, _081064B4 - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081064A0: .4byte gSlotMachine_Gfx -_081064A4: .4byte 0x02010000 -_081064A8: .4byte 0x040000d4 -_081064AC: .4byte 0x80000800 -_081064B0: .4byte gUnknown_08E95A18 -_081064B4: .4byte gUnknown_083EDE24 - thumb_func_end sub_8106448 - - thumb_func_start sub_81064B8 -sub_81064B8: @ 81064B8 - push {lr} - ldr r0, _081064D0 - ldr r1, _081064D4 - movs r2, 0xA0 - lsls r2, 2 - bl CpuSet - bl sub_81064D8 - pop {r0} - bx r0 - .align 2, 0 -_081064D0: .4byte gUnknown_08E95AB8 -_081064D4: .4byte 0x0600e800 - thumb_func_end sub_81064B8 - - thumb_func_start sub_81064D8 -sub_81064D8: @ 81064D8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r6, _0810658C - movs r3, 0x4 - movs r0, 0xC0 - lsls r0, 1 - mov r12, r0 - movs r1, 0xC0 - lsls r1, 2 - mov r9, r1 - movs r2, 0xA0 - lsls r2, 1 - mov r8, r2 -_081064F6: - movs r0, 0 - lsls r4, r3, 16 - asrs r5, r4, 16 -_081064FC: - lsls r2, r0, 16 - asrs r2, 16 - adds r1, r5, r2 - lsls r1, 1 - adds r1, r6 - mov r7, r8 - adds r3, r1, r7 - ldr r7, _08106590 - adds r0, r7, 0 - strh r0, [r3] - movs r0, 0xD0 - lsls r0, 2 - adds r3, r1, r0 - ldr r7, _08106594 - adds r0, r7, 0 - strh r0, [r3] - mov r0, r12 - adds r3, r1, r0 - ldr r7, _08106598 - adds r0, r7, 0 - strh r0, [r3] - add r1, r9 - ldr r3, _0810659C - adds r0, r3, 0 - strh r0, [r1] - adds r2, 0x1 - lsls r2, 16 - lsrs r0, r2, 16 - asrs r2, 16 - cmp r2, 0x3 - ble _081064FC - asrs r3, r4, 16 - lsls r1, r3, 1 - adds r1, r6 - mov r5, r12 - adds r2, r1, r5 - adds r7, 0x5D - adds r0, r7, 0 - strh r0, [r2] - add r1, r9 - ldr r2, _081065A0 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0x7 - ldr r5, _081065A4 - adds r2, r5, 0 -_08106558: - lsls r1, r0, 16 - asrs r1, 16 - lsls r0, r1, 5 - adds r0, r3 - lsls r0, 1 - adds r0, r6 - strh r2, [r0] - adds r1, 0x1 - lsls r1, 16 - lsrs r0, r1, 16 - asrs r1, 16 - cmp r1, 0xB - ble _08106558 - movs r7, 0xA0 - lsls r7, 11 - adds r0, r4, r7 - lsrs r3, r0, 16 - asrs r0, 16 - cmp r0, 0x11 - ble _081064F6 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810658C: .4byte 0x0600f000 -_08106590: .4byte 0x00002051 -_08106594: .4byte 0x00002851 -_08106598: .4byte 0x00002061 -_0810659C: .4byte 0x00002861 -_081065A0: .4byte 0x000028be -_081065A4: .4byte 0x000020bf - thumb_func_end sub_81064D8 - - thumb_func_start sub_81065A8 -sub_81065A8: @ 81065A8 - push {r4-r6,lr} - ldr r5, [sp, 0x10] - lsls r0, 16 - asrs r0, 15 - ldr r6, _081065D0 - adds r4, r0, r6 - strh r1, [r4] - ldr r4, _081065D4 - adds r1, r0, r4 - strh r2, [r1] - adds r6, 0x40 - adds r1, r0, r6 - strh r3, [r1] - ldr r1, _081065D8 - adds r0, r1 - strh r5, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081065D0: .4byte 0x0600ebc0 -_081065D4: .4byte 0x0600ebc2 -_081065D8: .4byte 0x0600ec02 - thumb_func_end sub_81065A8 - - thumb_func_start sub_81065DC -sub_81065DC: @ 81065DC - push {r4,r5,lr} - ldr r0, _08106624 - ldr r1, _08106628 - movs r2, 0xA0 - lsls r2, 2 - bl CpuSet - ldr r5, _0810662C - movs r1, 0 - movs r4, 0 -_081065F0: - movs r0, 0 - lsls r3, r1, 16 - asrs r2, r3, 11 -_081065F6: - lsls r1, r0, 16 - asrs r1, 16 - adds r0, r2, r1 - lsls r0, 1 - adds r0, r5 - strh r4, [r0] - adds r1, 0x1 - lsls r1, 16 - lsrs r0, r1, 16 - asrs r1, 16 - cmp r1, 0x1D - ble _081065F6 - movs r1, 0x80 - lsls r1, 9 - adds r0, r3, r1 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _081065F0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08106624: .4byte gUnknown_08E95FB8 -_08106628: .4byte 0x0600e800 -_0810662C: .4byte 0x0600f000 - thumb_func_end sub_81065DC - - thumb_func_start sub_8106630 -sub_8106630: @ 8106630 - push {r4-r7,lr} - ldr r2, _0810665C - subs r4, r2, 0x2 - subs r5, r2, 0x1 - ldr r3, _08106660 - subs r0, 0x1 - lsls r1, r0, 5 - adds r1, r3 - ldr r3, _08106664 - adds r1, r3 - ldm r1!, {r3,r6,r7} - stm r2!, {r3,r6,r7} - ldm r1!, {r3,r6,r7} - stm r2!, {r3,r6,r7} - ldm r1!, {r6,r7} - stm r2!, {r6,r7} - strb r0, [r4] - movs r0, 0 - strb r0, [r5] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810665C: .4byte 0x02015de0 -_08106660: .4byte gSaveBlock1 -_08106664: .4byte 0x00002dfc - thumb_func_end sub_8106630 - - thumb_func_start sub_8106668 -sub_8106668: @ 8106668 - push {lr} - bl sub_8106674 - pop {r0} - bx r0 - thumb_func_end sub_8106668 - - thumb_func_start sub_8106674 -sub_8106674: @ 8106674 - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, _08106694 - ldr r2, _08106698 - adds r0, r1, r2 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x4 - bls _08106688 - b _081067E0 -_08106688: - lsls r0, 2 - ldr r1, _0810669C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106694: .4byte gMain -_08106698: .4byte 0x0000043c -_0810669C: .4byte _081066A0 - .align 2, 0 -_081066A0: - .4byte _081066B4 - .4byte _081066D8 - .4byte _08106734 - .4byte _0810675C - .4byte _0810678C -_081066B4: - bl remove_some_task - movs r0, 0 - bl SetVBlankCallback - ldr r1, _081066D0 - ldr r0, _081066D4 - str r0, [r1] - movs r0, 0x1 - bl sub_8106A10 - bl sub_81069CC - b _0810676E - .align 2, 0 -_081066D0: .4byte gUnknown_03005E8C -_081066D4: .4byte 0x02015de0 -_081066D8: - bl ResetPaletteFade - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0xC0 - lsls r3, 9 - movs r5, 0 - ldr r1, _08106724 - movs r4, 0x80 - lsls r4, 5 - ldr r6, _08106728 - movs r7, 0x85 - lsls r7, 24 -_081066F2: - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _081066F2 - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetSpriteData - ldr r1, _0810672C - ldr r2, _08106730 - adds r1, r2 - b _08106774 - .align 2, 0 -_08106724: .4byte 0x040000d4 -_08106728: .4byte 0x85000400 -_0810672C: .4byte gMain -_08106730: .4byte 0x0000043c -_08106734: - ldrh r0, [r4, 0x20] - bl SeedRng - bl InitKeys - ldr r0, _08106750 - ldr r1, _08106754 - adds r0, r1 - ldrb r0, [r0] - bl sub_81068FC - ldr r2, _08106758 - adds r1, r4, r2 - b _08106774 - .align 2, 0 -_08106750: .4byte 0x02000000 -_08106754: .4byte 0x00015ddf -_08106758: .4byte 0x0000043c -_0810675C: - ldr r1, _0810677C - ldr r2, _08106780 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - bl sub_8107090 -_0810676E: - ldr r1, _08106784 - ldr r0, _08106788 - adds r1, r0 -_08106774: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081067E0 - .align 2, 0 -_0810677C: .4byte 0x02000000 -_08106780: .4byte 0x00015dde -_08106784: .4byte gMain -_08106788: .4byte 0x0000043c -_0810678C: - ldr r1, _081067E8 - ldr r2, _081067EC - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - bl sub_8106918 - ldr r0, _081067F0 - movs r1, 0 - movs r2, 0x2 - bl LoadPalette - movs r1, 0xA0 - lsls r1, 19 - movs r4, 0 - str r4, [sp] - ldr r0, _081067F4 - mov r2, sp - str r2, [r0] - str r1, [r0, 0x4] - ldr r1, _081067F8 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - movs r0, 0x2 - bl BeginFastPaletteFade - ldr r0, _081067FC - bl SetVBlankCallback - ldr r0, _08106800 - strb r4, [r0] - movs r1, 0x80 - lsls r1, 19 - movs r2, 0x9A - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08106804 - bl SetMainCallback2 -_081067E0: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081067E8: .4byte 0x02000000 -_081067EC: .4byte 0x00015dde -_081067F0: .4byte gUnknown_083F6140 -_081067F4: .4byte 0x040000d4 -_081067F8: .4byte 0x85000100 -_081067FC: .4byte sub_8106AAC -_08106800: .4byte gUnknown_03000750 -_08106804: .4byte sub_8106808 - thumb_func_end sub_8106674 - - thumb_func_start sub_8106808 -sub_8106808: @ 8106808 - push {lr} - bl sub_810682C - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8106808 - - thumb_func_start sub_8106818 -sub_8106818: @ 8106818 - push {lr} - ldr r0, _08106828 - ldr r0, [r0, 0x8] - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08106828: .4byte gMain - thumb_func_end sub_8106818 - - thumb_func_start sub_810682C -sub_810682C: @ 810682C - push {lr} - sub sp, 0x4 - ldr r3, _08106844 - ldrb r1, [r3] - cmp r1, 0x1 - beq _08106880 - cmp r1, 0x1 - bgt _08106848 - cmp r1, 0 - beq _0810684E - b _081068E6 - .align 2, 0 -_08106844: .4byte gUnknown_03000750 -_08106848: - cmp r1, 0x2 - beq _081068C0 - b _081068E6 -_0810684E: - ldr r0, _08106874 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810685E - movs r0, 0x1 - strb r0, [r3] -_0810685E: - ldr r0, _08106878 - ldrb r0, [r0] - cmp r0, 0 - beq _081068E6 - ldr r1, _0810687C - ldrh r0, [r1] - cmp r0, 0 - beq _081068E6 - subs r0, 0x1 - b _081068E4 - .align 2, 0 -_08106874: .4byte gPaletteFade -_08106878: .4byte gUnknown_03000756 -_0810687C: .4byte gUnknown_03000754 -_08106880: - ldr r0, _081068B4 - ldrh r2, [r0, 0x2E] - ands r1, r2 - cmp r1, 0 - bne _08106892 - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _081068A4 -_08106892: - movs r0, 0x2 - strb r0, [r3] - subs r0, 0x3 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_081068A4: - ldr r0, _081068B8 - ldrb r0, [r0] - cmp r0, 0 - beq _081068E6 - ldr r1, _081068BC - movs r0, 0 - b _081068E4 - .align 2, 0 -_081068B4: .4byte gMain -_081068B8: .4byte gUnknown_03000756 -_081068BC: .4byte gUnknown_03000754 -_081068C0: - ldr r0, _081068EC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081068D2 - ldr r0, _081068F0 - bl SetMainCallback2 -_081068D2: - ldr r0, _081068F4 - ldrb r0, [r0] - cmp r0, 0 - beq _081068E6 - ldr r1, _081068F8 - ldrh r0, [r1] - cmp r0, 0x1D - bhi _081068E6 - adds r0, 0x1 -_081068E4: - strh r0, [r1] -_081068E6: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_081068EC: .4byte gPaletteFade -_081068F0: .4byte sub_8106818 -_081068F4: .4byte gUnknown_03000756 -_081068F8: .4byte gUnknown_03000754 - thumb_func_end sub_810682C - - thumb_func_start sub_81068FC -sub_81068FC: @ 81068FC - push {r4,lr} - ldr r4, _08106914 - adds r0, r4, 0 - bl InitMenuWindow - adds r0, r4, 0 - bl SetUpWindowConfig - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08106914: .4byte gWindowConfig_81E7160 - thumb_func_end sub_81068FC - - thumb_func_start sub_8106918 -sub_8106918: @ 8106918 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _081069BE - ldr r2, _08106974 - ldr r6, _08106978 - ldr r0, [r6] - ldrb r0, [r0, 0xA] - cmp r3, 0x7 - bhi _08106988 - ldr r1, _0810697C - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - ldr r1, _08106980 - bl StringCopy - adds r2, r0, 0 - ldr r1, [r6] - adds r1, 0x16 - bl StringCopy - adds r2, r0, 0 - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x16 - strb r0, [r2, 0x1] - adds r2, 0x2 - ldr r1, _08106984 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - ldr r1, [r6] - adds r1, 0xB - bl StringCopy10 - movs r1, 0x6 - b _081069AE - .align 2, 0 -_08106974: .4byte gUnknown_03005E40 -_08106978: .4byte gUnknown_03005E8C -_0810697C: .4byte gUnknown_083F60AC -_08106980: .4byte gContestText_ContestWinner -_08106984: .4byte gOtherText_Unknown1 -_08106988: - ldr r4, _081069C4 - lsls r5, r0, 3 - adds r0, r5, r4 - ldr r1, [r0] - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - ldr r1, [r6] - adds r1, 0xB - bl StringCopy10 - adds r2, r0, 0 - adds r4, 0x4 - adds r5, r4 - ldr r1, [r5] - bl StringCopy - movs r1, 0x3 -_081069AE: - movs r2, 0xE - ldr r0, _081069C8 - lsls r1, 3 - adds r1, 0x1 - lsls r2, 3 - movs r3, 0x1 - bl sub_80729D8 -_081069BE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081069C4: .4byte gUnknown_083F60C0 -_081069C8: .4byte gUnknown_03005E40 - thumb_func_end sub_8106918 - - thumb_func_start sub_81069CC -sub_81069CC: @ 81069CC - movs r0, 0x80 - lsls r0, 19 - movs r3, 0 - strh r3, [r0] - ldr r2, _081069FC - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - ldr r1, _08106A00 - ldr r2, _08106A04 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _08106A08 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08106A0C - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - bx lr - .align 2, 0 -_081069FC: .4byte 0x04000200 -_08106A00: .4byte REG_BG0CNT -_08106A04: .4byte 0x00000c42 -_08106A08: .4byte 0x00000a45 -_08106A0C: .4byte REG_BLDCNT - thumb_func_end sub_81069CC - - thumb_func_start sub_8106A10 -sub_8106A10: @ 8106A10 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08106A34 - ldr r0, _08106A28 - strb r1, [r0] - ldr r0, _08106A2C - strh r1, [r0] - ldr r0, _08106A30 - strh r1, [r0] - b _08106A46 - .align 2, 0 -_08106A28: .4byte gUnknown_03000756 -_08106A2C: .4byte gUnknown_03000752 -_08106A30: .4byte gUnknown_03000754 -_08106A34: - ldr r1, _08106A4C - movs r0, 0x1 - strb r0, [r1] - ldr r1, _08106A50 - movs r0, 0xF - strh r0, [r1] - ldr r1, _08106A54 - movs r0, 0x1E - strh r0, [r1] -_08106A46: - pop {r0} - bx r0 - .align 2, 0 -_08106A4C: .4byte gUnknown_03000756 -_08106A50: .4byte gUnknown_03000752 -_08106A54: .4byte gUnknown_03000754 - thumb_func_end sub_8106A10 - - thumb_func_start sub_8106A58 -sub_8106A58: @ 8106A58 - push {lr} - ldr r0, _08106A68 - ldrb r1, [r0] - cmp r1, 0 - bne _08106A70 - ldr r0, _08106A6C - strh r1, [r0] - b _08106A92 - .align 2, 0 -_08106A68: .4byte gUnknown_03000756 -_08106A6C: .4byte REG_MOSAIC -_08106A70: - ldr r1, _08106A98 - ldr r2, _08106A9C - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _08106AA0 - ldr r0, _08106AA4 - ldrh r1, [r0] - lsrs r1, 1 - strh r1, [r2] - ldr r3, _08106AA8 - lsls r0, r1, 12 - lsls r2, r1, 8 - orrs r0, r2 - lsls r2, r1, 4 - orrs r0, r2 - orrs r0, r1 - strh r0, [r3] -_08106A92: - pop {r0} - bx r0 - .align 2, 0 -_08106A98: .4byte REG_BG1CNT -_08106A9C: .4byte 0x00000a45 -_08106AA0: .4byte gUnknown_03000752 -_08106AA4: .4byte gUnknown_03000754 -_08106AA8: .4byte REG_MOSAIC - thumb_func_end sub_8106A58 - - thumb_func_start sub_8106AAC -sub_8106AAC: @ 8106AAC - push {lr} - bl sub_8106A58 - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8106AAC - - thumb_func_start sub_8106AC4 -sub_8106AC4: @ 8106AC4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r4, r1, 0 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r7, _08106B28 - ldr r0, [r7] - ldr r1, [r0, 0x4] - ldr r2, [r0] - adds r0, r6, 0 - bl species_and_otid_get_pal - ldr r1, _08106B2C - mov r8, r1 - ldr r1, [r1] - bl LZDecompressVram - cmp r4, 0 - bne _08106B40 - lsls r0, r6, 3 - ldr r1, _08106B30 - adds r0, r1 - ldr r1, _08106B34 - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08106B38 - ldr r5, [r4, 0x4] - str r5, [sp] - str r6, [sp, 0x4] - ldr r4, [r7] - ldr r4, [r4] - str r4, [sp, 0x8] - bl sub_800D334 - mov r2, r8 - ldr r1, [r2] - ldr r0, _08106B3C - ldr r2, [r0] - adds r0, r5, 0 - bl sub_8106B90 - b _08106B74 - .align 2, 0 -_08106B28: .4byte gUnknown_03005E8C -_08106B2C: .4byte gUnknown_03005E90 -_08106B30: .4byte gMonFrontPicTable -_08106B34: .4byte gMonFrontPicCoords -_08106B38: .4byte gUnknown_081FAF4C -_08106B3C: .4byte gUnknown_03005E10 -_08106B40: - lsls r0, r6, 3 - ldr r1, _08106B80 - adds r0, r1 - ldr r1, _08106B84 - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08106B88 - ldr r5, [r4] - str r5, [sp] - str r6, [sp, 0x4] - ldr r4, [r7] - ldr r4, [r4] - str r4, [sp, 0x8] - bl sub_800D334 - mov r0, r8 - ldr r1, [r0] - ldr r0, _08106B8C - ldr r2, [r0] - adds r0, r5, 0 - bl sub_8106B90 -_08106B74: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08106B80: .4byte gMonBackPicTable -_08106B84: .4byte gMonBackPicCoords -_08106B88: .4byte gUnknown_081FAF4C -_08106B8C: .4byte gUnknown_03005E10 - thumb_func_end sub_8106AC4 - - thumb_func_start sub_8106B90 -sub_8106B90: @ 8106B90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r10, r0 - mov r9, r1 - str r2, [sp] - movs r0, 0 -_08106BA4: - movs r3, 0 - adds r1, r0, 0x1 - str r1, [sp, 0x4] - lsls r0, 3 - str r0, [sp, 0x8] -_08106BAE: - movs r1, 0 - adds r2, r3, 0x1 - mov r8, r2 - ldr r7, [sp, 0x8] - adds r0, r7, r3 - lsls r0, 5 - mov r12, r0 - lsls r4, r3, 3 -_08106BBE: - movs r3, 0 - lsls r0, r1, 2 - adds r6, r1, 0x1 - mov r2, r12 - adds r5, r2, r0 - ldr r7, [sp, 0x8] - adds r0, r7, r1 - lsls r0, 7 - ldr r1, [sp] - adds r2, r0, r1 -_08106BD2: - lsrs r0, r3, 1 - adds r0, r5, r0 - add r0, r10 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _08106BE6 - lsrs r1, 4 - b _08106BEA -_08106BE6: - movs r0, 0xF - ands r1, r0 -_08106BEA: - cmp r1, 0 - bne _08106BFC - adds r0, r4, r3 - lsls r0, 1 - adds r0, r2 - movs r7, 0x80 - lsls r7, 8 - adds r1, r7, 0 - b _08106C08 -_08106BFC: - adds r0, r4, r3 - lsls r0, 1 - adds r0, r2 - lsls r1, 1 - add r1, r9 - ldrh r1, [r1] -_08106C08: - strh r1, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x7 - bls _08106BD2 - lsls r0, r6, 16 - lsrs r1, r0, 16 - cmp r1, 0x7 - bls _08106BBE - mov r1, r8 - lsls r0, r1, 16 - lsrs r3, r0, 16 - cmp r3, 0x7 - bls _08106BAE - ldr r2, [sp, 0x4] - lsls r0, r2, 16 - lsrs r0, 16 - cmp r0, 0x7 - bls _08106BA4 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8106B90 - - thumb_func_start sub_8106C40 -sub_8106C40: @ 8106C40 - push {r4-r7,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08106C7C - movs r2, 0x80 - lsls r2, 1 - movs r1, 0 - bl LoadPalette - cmp r4, 0x1 - beq _08106C5E - b _08106DB4 -_08106C5E: - ldr r0, _08106C80 - ldr r0, [r0] - ldrb r0, [r0, 0xA] - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _08106D1C - lsls r0, 2 - ldr r1, _08106C84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106C7C: .4byte gPictureFramePalettes -_08106C80: .4byte gUnknown_03005E8C -_08106C84: .4byte _08106C88 - .align 2, 0 -_08106C88: - .4byte _08106C9C - .4byte _08106CB4 - .4byte _08106CCC - .4byte _08106CE4 - .4byte _08106D08 -_08106C9C: - ldr r0, _08106CAC - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106CB0 - b _08106CF0 - .align 2, 0 -_08106CAC: .4byte gPictureFrameTiles_0 -_08106CB0: .4byte gPictureFrameTilemap_0 -_08106CB4: - ldr r0, _08106CC4 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106CC8 - b _08106CF0 - .align 2, 0 -_08106CC4: .4byte gPictureFrameTiles_1 -_08106CC8: .4byte gPictureFrameTilemap_1 -_08106CCC: - ldr r0, _08106CDC - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106CE0 - b _08106CF0 - .align 2, 0 -_08106CDC: .4byte gPictureFrameTiles_2 -_08106CE0: .4byte gPictureFrameTilemap_2 -_08106CE4: - ldr r0, _08106CFC - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106D00 -_08106CF0: - ldr r1, _08106D04 - ldr r1, [r1] - bl RLUnCompWram - b _08106D1C - .align 2, 0 -_08106CFC: .4byte gPictureFrameTiles_3 -_08106D00: .4byte gPictureFrameTilemap_3 -_08106D04: .4byte gUnknown_03005E10 -_08106D08: - ldr r0, _08106D98 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106D9C - ldr r1, _08106DA0 - ldr r1, [r1] - bl RLUnCompWram -_08106D1C: - movs r1, 0 - ldr r5, _08106DA4 - ldr r0, _08106DA8 - adds r4, r0, 0 -_08106D24: - movs r3, 0 - lsls r2, r1, 5 -_08106D28: - adds r0, r2, r3 - lsls r0, 1 - adds r0, r5 - strh r4, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1F - bls _08106D28 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x13 - bls _08106D24 - movs r1, 0 - ldr r0, _08106DAC - mov r12, r0 - ldr r7, _08106DA0 -_08106D4C: - movs r3, 0 - adds r6, r1, 0x1 - lsls r5, r1, 5 - lsls r4, r1, 6 -_08106D54: - adds r2, r5, r3 - lsls r2, 1 - add r2, r12 - ldr r0, [r7] - adds r0, r4, r0 - lsls r1, r3, 1 - adds r0, r1 - adds r0, 0x8C - ldrh r0, [r0] - strh r0, [r2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x11 - bls _08106D54 - lsls r0, r6, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - bls _08106D4C - movs r3, 0 - ldr r4, _08106DB0 - ldr r2, _08106DA0 -_08106D80: - lsls r1, r3, 1 - adds r1, r4 - ldr r0, [r2] - adds r0, 0x8E - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bls _08106D80 - b _08106E86 - .align 2, 0 -_08106D98: .4byte gPictureFrameTiles_4 -_08106D9C: .4byte gPictureFrameTilemap_4 -_08106DA0: .4byte gUnknown_03005E10 -_08106DA4: .4byte 0x06006000 -_08106DA8: .4byte 0x00001015 -_08106DAC: .4byte 0x0600608c -_08106DB0: .4byte 0x0600608e -_08106DB4: - cmp r5, 0x7 - bhi _08106DD0 - ldr r0, _08106DC8 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106DCC - b _08106E60 - .align 2, 0 -_08106DC8: .4byte gPictureFrameTiles_5 -_08106DCC: .4byte gPictureFrameTilemap_5 -_08106DD0: - ldr r0, _08106DF0 - ldr r0, [r0] - ldrb r0, [r0, 0xA] - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _08106E86 - lsls r0, 2 - ldr r1, _08106DF4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106DF0: .4byte gUnknown_03005E8C -_08106DF4: .4byte _08106DF8 - .align 2, 0 -_08106DF8: - .4byte _08106E0C - .4byte _08106E24 - .4byte _08106E3C - .4byte _08106E54 - .4byte _08106E74 -_08106E0C: - ldr r0, _08106E1C - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106E20 - b _08106E60 - .align 2, 0 -_08106E1C: .4byte gPictureFrameTiles_0 -_08106E20: .4byte gPictureFrameTilemap_0 -_08106E24: - ldr r0, _08106E34 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106E38 - b _08106E60 - .align 2, 0 -_08106E34: .4byte gPictureFrameTiles_1 -_08106E38: .4byte gPictureFrameTilemap_1 -_08106E3C: - ldr r0, _08106E4C - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106E50 - b _08106E60 - .align 2, 0 -_08106E4C: .4byte gPictureFrameTiles_2 -_08106E50: .4byte gPictureFrameTilemap_2 -_08106E54: - ldr r0, _08106E68 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106E6C -_08106E60: - ldr r1, _08106E70 - bl RLUnCompVram - b _08106E86 - .align 2, 0 -_08106E68: .4byte gPictureFrameTiles_3 -_08106E6C: .4byte gPictureFrameTilemap_3 -_08106E70: .4byte 0x06006000 -_08106E74: - ldr r0, _08106E8C - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106E90 - ldr r1, _08106E94 - bl RLUnCompVram -_08106E86: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08106E8C: .4byte gPictureFrameTiles_4 -_08106E90: .4byte gPictureFrameTilemap_4 -_08106E94: .4byte 0x06006000 - thumb_func_end sub_8106C40 - - thumb_func_start sub_8106E98 -sub_8106E98: @ 8106E98 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08106ED0 - ldr r1, _08106ED4 - ldr r2, [r1, 0x4] - ldr r1, [r1] - str r1, [r4, 0x3C] - str r2, [r4, 0x40] - adds r3, r4, 0 - adds r3, 0x40 - ldrh r2, [r3] - ldr r1, _08106ED8 - ands r1, r2 - strh r1, [r3] - ldrh r1, [r4, 0x3E] - ldr r0, _08106EDC - ands r0, r1 - movs r1, 0x58 - orrs r0, r1 - strh r0, [r4, 0x3E] - adds r1, r4, 0 - adds r1, 0x3C - movs r0, 0x18 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08106ED0: .4byte gMain -_08106ED4: .4byte gOamData_83F6138 -_08106ED8: .4byte 0xfffffc00 -_08106EDC: .4byte 0xfffffe00 - thumb_func_end sub_8106E98 - - thumb_func_start sub_8106EE0 -sub_8106EE0: @ 8106EE0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x7 - bhi _08106EF8 - ldr r0, _08106EF4 - ldr r0, [r0] - ldrb r0, [r0, 0xA] - b _08106F08 - .align 2, 0 -_08106EF4: .4byte gUnknown_03005E8C -_08106EF8: - ldr r0, _08106F18 - ldr r0, [r0] - ldrb r0, [r0, 0xA] - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 -_08106F08: - cmp r0, 0x4 - bhi _08106F46 - lsls r0, 2 - ldr r1, _08106F1C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106F18: .4byte gUnknown_03005E8C -_08106F1C: .4byte _08106F20 - .align 2, 0 -_08106F20: - .4byte _08106F34 - .4byte _08106F38 - .4byte _08106F3C - .4byte _08106F40 - .4byte _08106F44 -_08106F34: - movs r0, 0x9 - b _08106F46 -_08106F38: - movs r0, 0xD - b _08106F46 -_08106F3C: - movs r0, 0x2 - b _08106F46 -_08106F40: - movs r0, 0x24 - b _08106F46 -_08106F44: - movs r0, 0x6 -_08106F46: - pop {r1} - bx r1 - thumb_func_end sub_8106EE0 - - thumb_func_start sub_8106F4C -sub_8106F4C: @ 8106F4C - ldr r0, _08106F5C - ldr r1, _08106F60 - str r1, [r0] - ldr r0, _08106F64 - ldr r2, _08106F68 - adds r1, r2 - str r1, [r0] - bx lr - .align 2, 0 -_08106F5C: .4byte gUnknown_03005E90 -_08106F60: .4byte 0x02017e00 -_08106F64: .4byte gUnknown_03005E10 -_08106F68: .4byte 0xffffe000 - thumb_func_end sub_8106F4C - - thumb_func_start sub_8106F6C -sub_8106F6C: @ 8106F6C - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _08106FAC - ldr r0, _08106FB0 - ldr r0, [r0] - str r0, [r1, 0x4] - ldr r0, _08106FB4 - ldr r0, [r0] - str r0, [r1, 0x8] - movs r2, 0 - strb r2, [r1, 0x18] - ldr r0, _08106FB8 - ldr r0, [r0] - ldrb r0, [r0] - strb r0, [r1, 0x1F] - strb r2, [r1, 0x19] - strb r2, [r1, 0x1A] - movs r0, 0x40 - strb r0, [r1, 0x1B] - strb r0, [r1, 0x1C] - strb r0, [r1, 0x1D] - strb r0, [r1, 0x1E] - subs r0, r3, 0x2 - adds r4, r1, 0 - cmp r0, 0x22 - bhi _08107050 - lsls r0, 2 - ldr r1, _08106FBC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106FAC: .4byte gUnknown_03005E20 -_08106FB0: .4byte gUnknown_03005E10 -_08106FB4: .4byte gUnknown_03005E90 -_08106FB8: .4byte gUnknown_03005E8C -_08106FBC: .4byte _08106FC0 - .align 2, 0 -_08106FC0: - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _0810704C - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _0810704C -_0810704C: - movs r0, 0x3 - b _08107052 -_08107050: - movs r0, 0x1 -_08107052: - strh r0, [r4, 0x14] - movs r0, 0x2 - strh r0, [r4, 0x16] - strb r3, [r4] - ldr r0, _08107088 - str r0, [r4, 0x10] - adds r0, r4, 0 - bl sub_80FC7A0 - adds r0, r4, 0 - bl sub_80FDA18 - adds r0, r4, 0 - bl sub_80FD8CC - ldr r0, _0810708C - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 1 - movs r2, 0x80 - lsls r2, 2 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08107088: .4byte 0x06010000 -_0810708C: .4byte gUnknown_03005E90 - thumb_func_end sub_8106F6C - - thumb_func_start sub_8107090 -sub_8107090: @ 8107090 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - bl sub_8106F4C - ldr r0, _081070D0 - ldr r0, [r0] - ldrh r0, [r0, 0x8] - movs r1, 0 - bl sub_8106AC4 - adds r0, r4, 0 - bl sub_8106EE0 - lsls r0, 24 - lsrs r0, 24 - bl sub_8106F6C - adds r0, r4, 0 - bl sub_8106E98 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8106C40 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081070D0: .4byte gUnknown_03005E8C - thumb_func_end sub_8107090 - - thumb_func_start sub_81070D4 -sub_81070D4: @ 81070D4 - push {r4-r7,lr} - ldr r2, _08107144 - movs r3, 0 - ldr r4, _08107148 - movs r1, 0 -_081070DE: - adds r0, r2, r3 - strb r1, [r0] - adds r3, 0x1 - cmp r3, 0x2F - bls _081070DE - ldrh r2, [r4] - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _08107138 - ldr r5, _0810714C - ldrh r1, [r5] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - beq _08107138 - ldr r0, _08107150 - ands r0, r2 - cmp r0, 0 - bne _08107138 - movs r3, 0 - ldr r7, _08107154 - ldr r4, _08107158 - adds r6, r4, 0 - subs r6, 0x8 -_08107110: - lsls r2, r3, 1 - ldrh r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r2, r0 - adds r2, r7 - ldrh r2, [r2] - cmp r2, 0 - beq _08107132 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r6 - strh r2, [r0] - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_08107132: - adds r3, 0x1 - cmp r3, 0x3 - ble _08107110 -_08107138: - bl sub_810715C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08107144: .4byte 0x02016a00 -_08107148: .4byte gUnknown_020239F8 -_0810714C: .4byte word_202FF5E -_08107150: .4byte 0x00000982 -_08107154: .4byte gTrainers + 0x10 -_08107158: .4byte 0x02016a2c - thumb_func_end sub_81070D4 - - thumb_func_start sub_810715C -sub_810715C: @ 810715C - push {r4-r7,lr} - ldr r2, _08107204 - movs r4, 0 - ldr r3, _08107208 - movs r1, 0 -_08107166: - adds r0, r2, r4 - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x1B - bls _08107166 - ldr r0, _08107204 - movs r1, 0x64 - movs r4, 0x3 - adds r0, 0x7 -_08107178: - strb r1, [r0] - subs r0, 0x1 - subs r4, 0x1 - cmp r4, 0 - bge _08107178 - ldrb r0, [r3] - movs r1, 0 - movs r2, 0xFF - bl sub_8015A98 - lsls r0, 24 - lsrs r7, r0, 24 - movs r4, 0 - ldr r0, _08107204 - adds r5, r0, 0x4 - ldr r6, _0810720C -_08107198: - ldr r0, [r6] - ands r0, r7 - cmp r0, 0 - beq _081071A4 - movs r0, 0 - strb r0, [r5] -_081071A4: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - ands r0, r1 - movs r1, 0x64 - subs r1, r0 - strb r1, [r5, 0x14] - adds r5, 0x1 - adds r6, 0x4 - adds r4, 0x1 - cmp r4, 0x3 - ble _08107198 - ldr r0, _08107210 - adds r0, 0x20 - movs r1, 0 - strb r1, [r0] - ldr r1, _08107214 - ldr r0, _08107208 - ldrb r2, [r0] - strb r2, [r1] - ldr r0, _08107218 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08107224 - ldr r4, _0810721C - bl Random - movs r5, 0x2 - ands r0, r5 - strb r0, [r4] - ldr r0, _08107220 - ldrb r1, [r0] - ldr r2, _0810720C - ldrb r3, [r4] - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0810722C - eors r3, r5 - strb r3, [r4] - b _0810722C - .align 2, 0 -_08107204: .4byte 0x02016800 -_08107208: .4byte gUnknown_02024A60 -_0810720C: .4byte gBitTable -_08107210: .4byte 0x02016c00 -_08107214: .4byte gUnknown_02024C07 -_08107218: .4byte gUnknown_020239F8 -_0810721C: .4byte gUnknown_02024C08 -_08107220: .4byte gUnknown_02024C0C -_08107224: - ldr r0, _08107244 - movs r1, 0x1 - eors r1, r2 - strb r1, [r0] -_0810722C: - ldr r0, _08107248 - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08107250 - ldr r1, _0810724C - movs r0, 0x80 - lsls r0, 23 - str r0, [r1, 0xC] - b _08107296 - .align 2, 0 -_08107244: .4byte gUnknown_02024C08 -_08107248: .4byte gUnknown_020239F8 -_0810724C: .4byte 0x02016800 -_08107250: - movs r0, 0x80 - lsls r0, 3 - ands r0, r1 - cmp r0, 0 - beq _08107268 - ldr r1, _08107264 - movs r0, 0x80 - lsls r0, 22 - str r0, [r1, 0xC] - b _08107296 - .align 2, 0 -_08107264: .4byte 0x02016800 -_08107268: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08107280 - ldr r1, _0810727C - movs r0, 0x80 - lsls r0, 24 - str r0, [r1, 0xC] - b _08107296 - .align 2, 0 -_0810727C: .4byte 0x02016800 -_08107280: - ldr r3, _0810729C - ldr r2, _081072A0 - ldr r0, _081072A4 - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r2, 0x1C - adds r0, r2 - ldr r0, [r0] - str r0, [r3, 0xC] -_08107296: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810729C: .4byte 0x02016800 -_081072A0: .4byte gTrainers -_081072A4: .4byte word_202FF5E - thumb_func_end sub_810715C - - thumb_func_start sub_81072A8 -sub_81072A8: @ 81072A8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - bl sub_810745C - ldr r1, _081072F4 - ldr r0, [r1, 0xC] - cmp r0, 0 - beq _081072E2 - adds r4, r1, 0 - movs r5, 0 -_081072C0: - ldr r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081072D0 - strb r5, [r4] - bl sub_8107374 -_081072D0: - ldr r1, [r4, 0xC] - lsrs r1, 1 - str r1, [r4, 0xC] - ldrb r0, [r4, 0x11] - adds r0, 0x1 - strb r0, [r4, 0x11] - strb r5, [r4, 0x1] - cmp r1, 0 - bne _081072C0 -_081072E2: - ldr r7, _081072F4 - ldrb r1, [r7, 0x10] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081072F8 - movs r0, 0x4 - b _08107368 - .align 2, 0 -_081072F4: .4byte 0x02016800 -_081072F8: - movs r0, 0x4 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _08107308 - movs r0, 0x5 - b _08107368 -_08107308: - movs r5, 0x1 - mov r0, sp - ldrb r1, [r7, 0x4] - strb r1, [r0] - add r0, sp, 0x4 - strb r2, [r0] - movs r3, 0x1 - mov r8, r0 - mov r4, sp - mov r6, r8 - adds r2, r7, 0x5 -_0810731E: - ldrb r1, [r4] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - bge _08107330 - movs r5, 0x1 - ldrb r0, [r2] - strb r0, [r4] - strb r3, [r6] -_08107330: - ldrb r1, [r4] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _0810734E - mov r0, sp - adds r1, r0, r5 - ldrb r0, [r2] - strb r0, [r1] - adds r1, r5, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r1, r6, r1 - strb r3, [r1] -_0810734E: - adds r2, 0x1 - adds r3, 0x1 - cmp r3, 0x3 - ble _0810731E - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl __modsi3 - add r0, r8 - ldrb r0, [r0] -_08107368: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81072A8 - - thumb_func_start sub_8107374 -sub_8107374: @ 8107374 - push {r4-r7,lr} - ldr r1, _081073D0 - ldrb r0, [r1] - adds r6, r1, 0 - cmp r0, 0x2 - beq _08107456 - adds r4, r1, 0 - ldr r7, _081073D4 -_08107384: - ldrb r0, [r4] - cmp r0, 0x1 - beq _081073E4 - cmp r0, 0x1 - bgt _0810744E - cmp r0, 0 - bne _0810744E - ldr r1, _081073D8 - ldrb r0, [r4, 0x11] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r7] - ldr r5, _081073DC - ldrb r3, [r4, 0x1] - ldr r0, _081073E0 - ldrb r1, [r0] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - adds r0, r3, r2 - adds r1, r5, 0 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081073C6 - lsls r0, r3, 1 - adds r0, r2 - adds r1, r5, 0 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] -_081073C6: - strh r0, [r4, 0x2] - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _0810744E - .align 2, 0 -_081073D0: .4byte 0x02016800 -_081073D4: .4byte gUnknown_02039238 -_081073D8: .4byte BattleAIs -_081073DC: .4byte gBattleMons -_081073E0: .4byte gUnknown_02024C07 -_081073E4: - ldrh r1, [r1, 0x2] - cmp r1, 0 - beq _08107400 - ldr r1, _081073FC - ldr r0, [r7] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - b _08107410 - .align 2, 0 -_081073FC: .4byte gUnknown_083F6144 -_08107400: - adds r0, r4, 0x4 - ldrb r2, [r4, 0x1] - adds r0, r2 - strb r1, [r0] - ldrb r1, [r4, 0x10] - movs r0, 0x1 - orrs r0, r1 - strb r0, [r4, 0x10] -_08107410: - ldr r1, _0810743C - ldrb r2, [r1, 0x10] - movs r0, 0x1 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _0810744E - ldrb r0, [r6, 0x1] - adds r0, 0x1 - strb r0, [r6, 0x1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bhi _08107440 - movs r0, 0x8 - ands r0, r2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08107440 - strb r0, [r6] - b _08107446 - .align 2, 0 -_0810743C: .4byte 0x02016800 -_08107440: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_08107446: - ldrb r1, [r4, 0x10] - movs r0, 0xFE - ands r0, r1 - strb r0, [r4, 0x10] -_0810744E: - adds r1, r6, 0 - ldrb r0, [r1] - cmp r0, 0x2 - bne _08107384 -_08107456: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8107374 - - thumb_func_start sub_810745C -sub_810745C: @ 810745C - push {r4-r6,lr} - movs r2, 0 - ldr r3, _08107488 - ldr r5, _0810748C - ldr r6, _08107490 - adds r4, r3, 0 -_08107468: - lsls r0, r2, 1 - ldrb r1, [r4] - lsrs r1, 1 - lsls r1, 4 - adds r0, r1 - adds r1, r0, r5 - ldrh r0, [r1] - cmp r0, 0 - bne _08107494 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r1] - b _0810749A - .align 2, 0 -_08107488: .4byte gUnknown_02024C08 -_0810748C: .4byte 0x02016a00 -_08107490: .4byte gUnknown_02024C34 -_08107494: - adds r2, 0x1 - cmp r2, 0x7 - ble _08107468 -_0810749A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_810745C - - thumb_func_start unref_sub_81074A0 -unref_sub_81074A0: @ 81074A0 - push {lr} - lsls r0, 24 - ldr r1, _081074C0 - lsrs r0, 25 - movs r2, 0x7 - lsls r0, 4 - adds r0, r1 - adds r0, 0xE - movs r1, 0 -_081074B2: - strh r1, [r0] - subs r0, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _081074B2 - pop {r0} - bx r0 - .align 2, 0 -_081074C0: .4byte 0x02016a00 - thumb_func_end unref_sub_81074A0 - - thumb_func_start sub_81074C4 -sub_81074C4: @ 81074C4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _081074EC - adds r0, r4, 0 - bl battle_get_per_side_status - ldr r2, _081074F4 - movs r1, 0x1 - ands r1, r0 - adds r2, 0x20 - adds r1, r2 - strb r5, [r1] -_081074EC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081074F4: .4byte 0x02016a00 - thumb_func_end sub_81074C4 - - thumb_func_start sub_81074F8 -sub_81074F8: @ 81074F8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08107520 - adds r0, r4, 0 - bl battle_get_per_side_status - ldr r2, _08107528 - movs r1, 0x1 - ands r1, r0 - adds r2, 0x22 - adds r1, r2 - strb r5, [r1] -_08107520: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08107528: .4byte 0x02016a00 - thumb_func_end sub_81074F8 - - thumb_func_start sub_810752C -sub_810752C: @ 810752C - push {lr} - bl Random - lsls r0, 16 - movs r1, 0xFF - lsls r1, 16 - ldr r3, _08107560 - ldr r2, [r3] - ands r1, r0 - lsrs r1, 16 - ldrb r0, [r2, 0x1] - cmp r1, r0 - bcs _08107564 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107568 - .align 2, 0 -_08107560: .4byte gUnknown_02039238 -_08107564: - adds r0, r2, 0x6 - str r0, [r3] -_08107568: - pop {r0} - bx r0 - thumb_func_end sub_810752C - - thumb_func_start sub_810756C -sub_810756C: @ 810756C - push {lr} - bl Random - lsls r0, 16 - movs r1, 0xFF - lsls r1, 16 - ldr r3, _081075A0 - ldr r2, [r3] - ands r1, r0 - lsrs r1, 16 - ldrb r0, [r2, 0x1] - cmp r1, r0 - bls _081075A4 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081075A8 - .align 2, 0 -_081075A0: .4byte gUnknown_02039238 -_081075A4: - adds r0, r2, 0x6 - str r0, [r3] -_081075A8: - pop {r0} - bx r0 - thumb_func_end sub_810756C - - thumb_func_start sub_81075AC -sub_81075AC: @ 81075AC - push {lr} - bl Random - lsls r0, 16 - movs r1, 0xFF - lsls r1, 16 - ldr r3, _081075E0 - ldr r2, [r3] - ands r1, r0 - lsrs r1, 16 - ldrb r0, [r2, 0x1] - cmp r1, r0 - bne _081075E4 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081075E8 - .align 2, 0 -_081075E0: .4byte gUnknown_02039238 -_081075E4: - adds r0, r2, 0x6 - str r0, [r3] -_081075E8: - pop {r0} - bx r0 - thumb_func_end sub_81075AC - - thumb_func_start sub_81075EC -sub_81075EC: @ 81075EC - push {lr} - bl Random - lsls r0, 16 - movs r1, 0xFF - lsls r1, 16 - ldr r3, _08107620 - ldr r2, [r3] - ands r1, r0 - lsrs r1, 16 - ldrb r0, [r2, 0x1] - cmp r1, r0 - beq _08107624 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107628 - .align 2, 0 -_08107620: .4byte gUnknown_02039238 -_08107624: - adds r0, r2, 0x6 - str r0, [r3] -_08107628: - pop {r0} - bx r0 - thumb_func_end sub_81075EC - - thumb_func_start sub_810762C -sub_810762C: @ 810762C - push {r4,r5,lr} - ldr r2, _08107660 - ldrb r1, [r2, 0x1] - adds r3, r2, 0x4 - adds r1, r3 - ldr r4, _08107664 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - ldrb r5, [r1] - adds r0, r5 - strb r0, [r1] - ldrb r0, [r2, 0x1] - adds r1, r0, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bge _08107652 - movs r0, 0 - strb r0, [r1] -_08107652: - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08107660: .4byte 0x02016800 -_08107664: .4byte gUnknown_02039238 - thumb_func_end sub_810762C - - thumb_func_start sub_8107668 -sub_8107668: @ 8107668 - push {r4,lr} - ldr r0, _0810767C - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0x1 - bne _08107684 - ldr r0, _08107680 - b _08107686 - .align 2, 0 -_0810767C: .4byte gUnknown_02039238 -_08107680: .4byte gUnknown_02024C07 -_08107684: - ldr r0, _081076BC -_08107686: - ldrb r1, [r0] - ldr r2, _081076C0 - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r2, [r1, 0x28] - movs r0, 0x64 - muls r0, r2 - ldrh r1, [r1, 0x2C] - bl __divsi3 - ldr r2, [r4] - ldrb r1, [r2, 0x2] - cmp r0, r1 - bcs _081076C4 - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _081076C8 - .align 2, 0 -_081076BC: .4byte gUnknown_02024C08 -_081076C0: .4byte gBattleMons -_081076C4: - adds r0, r2, 0x7 - str r0, [r4] -_081076C8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8107668 - - thumb_func_start sub_81076D0 -sub_81076D0: @ 81076D0 - push {r4,lr} - ldr r0, _081076E4 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0x1 - bne _081076EC - ldr r0, _081076E8 - b _081076EE - .align 2, 0 -_081076E4: .4byte gUnknown_02039238 -_081076E8: .4byte gUnknown_02024C07 -_081076EC: - ldr r0, _08107724 -_081076EE: - ldrb r1, [r0] - ldr r2, _08107728 - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r2, [r1, 0x28] - movs r0, 0x64 - muls r0, r2 - ldrh r1, [r1, 0x2C] - bl __divsi3 - ldr r2, [r4] - ldrb r1, [r2, 0x2] - cmp r0, r1 - bls _0810772C - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08107730 - .align 2, 0 -_08107724: .4byte gUnknown_02024C08 -_08107728: .4byte gBattleMons -_0810772C: - adds r0, r2, 0x7 - str r0, [r4] -_08107730: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81076D0 - - thumb_func_start sub_8107738 -sub_8107738: @ 8107738 - push {r4,lr} - ldr r0, _0810774C - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0x1 - bne _08107754 - ldr r0, _08107750 - b _08107756 - .align 2, 0 -_0810774C: .4byte gUnknown_02039238 -_08107750: .4byte gUnknown_02024C07 -_08107754: - ldr r0, _0810778C -_08107756: - ldrb r1, [r0] - ldr r2, _08107790 - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r2, [r1, 0x28] - movs r0, 0x64 - muls r0, r2 - ldrh r1, [r1, 0x2C] - bl __divsi3 - ldr r2, [r4] - ldrb r1, [r2, 0x2] - cmp r0, r1 - bne _08107794 - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08107798 - .align 2, 0 -_0810778C: .4byte gUnknown_02024C08 -_08107790: .4byte gBattleMons -_08107794: - adds r0, r2, 0x7 - str r0, [r4] -_08107798: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8107738 - - thumb_func_start sub_81077A0 -sub_81077A0: @ 81077A0 - push {r4,lr} - ldr r0, _081077B4 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0x1 - bne _081077BC - ldr r0, _081077B8 - b _081077BE - .align 2, 0 -_081077B4: .4byte gUnknown_02039238 -_081077B8: .4byte gUnknown_02024C07 -_081077BC: - ldr r0, _081077F4 -_081077BE: - ldrb r1, [r0] - ldr r2, _081077F8 - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r2, [r1, 0x28] - movs r0, 0x64 - muls r0, r2 - ldrh r1, [r1, 0x2C] - bl __divsi3 - ldr r2, [r4] - ldrb r1, [r2, 0x2] - cmp r0, r1 - beq _081077FC - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08107800 - .align 2, 0 -_081077F4: .4byte gUnknown_02024C08 -_081077F8: .4byte gBattleMons -_081077FC: - adds r0, r2, 0x7 - str r0, [r4] -_08107800: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81077A0 - - thumb_func_start sub_8107808 -sub_8107808: @ 8107808 - push {r4,r5,lr} - ldr r0, _0810781C - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r5, r0, 0 - cmp r1, 0x1 - bne _08107824 - ldr r0, _08107820 - b _08107826 - .align 2, 0 -_0810781C: .4byte gUnknown_02039238 -_08107820: .4byte gUnknown_02024C07 -_08107824: - ldr r0, _08107868 -_08107826: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r2, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r2, r0 - ldr r1, _0810786C - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - ands r0, r2 - cmp r0, 0 - beq _08107870 - ldrb r1, [r3, 0x6] - ldrb r0, [r3, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r5] - b _08107876 - .align 2, 0 -_08107868: .4byte gUnknown_02024C08 -_0810786C: .4byte gBattleMons -_08107870: - adds r0, r3, 0 - adds r0, 0xA - str r0, [r5] -_08107876: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8107808 - - thumb_func_start sub_810787C -sub_810787C: @ 810787C - push {r4,r5,lr} - ldr r0, _08107890 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r5, r0, 0 - cmp r1, 0x1 - bne _08107898 - ldr r0, _08107894 - b _0810789A - .align 2, 0 -_08107890: .4byte gUnknown_02039238 -_08107894: .4byte gUnknown_02024C07 -_08107898: - ldr r0, _081078DC -_0810789A: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r2, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r2, r0 - ldr r1, _081078E0 - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - ands r0, r2 - cmp r0, 0 - bne _081078E4 - ldrb r1, [r3, 0x6] - ldrb r0, [r3, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r5] - b _081078EA - .align 2, 0 -_081078DC: .4byte gUnknown_02024C08 -_081078E0: .4byte gBattleMons -_081078E4: - adds r0, r3, 0 - adds r0, 0xA - str r0, [r5] -_081078EA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_810787C - - thumb_func_start sub_81078F0 -sub_81078F0: @ 81078F0 - push {r4,r5,lr} - ldr r0, _08107904 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r5, r0, 0 - cmp r1, 0x1 - bne _0810790C - ldr r0, _08107908 - b _0810790E - .align 2, 0 -_08107904: .4byte gUnknown_02039238 -_08107908: .4byte gUnknown_02024C07 -_0810790C: - ldr r0, _08107950 -_0810790E: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r2, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r2, r0 - ldr r1, _08107954 - movs r0, 0x58 - muls r0, r4 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ands r0, r2 - cmp r0, 0 - beq _08107958 - ldrb r1, [r3, 0x6] - ldrb r0, [r3, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r5] - b _0810795E - .align 2, 0 -_08107950: .4byte gUnknown_02024C08 -_08107954: .4byte gBattleMons -_08107958: - adds r0, r3, 0 - adds r0, 0xA - str r0, [r5] -_0810795E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81078F0 - - thumb_func_start sub_8107964 -sub_8107964: @ 8107964 - push {r4,r5,lr} - ldr r0, _08107978 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r5, r0, 0 - cmp r1, 0x1 - bne _08107980 - ldr r0, _0810797C - b _08107982 - .align 2, 0 -_08107978: .4byte gUnknown_02039238 -_0810797C: .4byte gUnknown_02024C07 -_08107980: - ldr r0, _081079C4 -_08107982: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r2, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r2, r0 - ldr r1, _081079C8 - movs r0, 0x58 - muls r0, r4 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ands r0, r2 - cmp r0, 0 - bne _081079CC - ldrb r1, [r3, 0x6] - ldrb r0, [r3, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r5] - b _081079D2 - .align 2, 0 -_081079C4: .4byte gUnknown_02024C08 -_081079C8: .4byte gBattleMons -_081079CC: - adds r0, r3, 0 - adds r0, 0xA - str r0, [r5] -_081079D2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8107964 - - thumb_func_start sub_81079D8 -sub_81079D8: @ 81079D8 - push {r4,r5,lr} - ldr r0, _081079EC - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r5, r0, 0 - cmp r1, 0x1 - bne _081079F4 - ldr r0, _081079F0 - b _081079F6 - .align 2, 0 -_081079EC: .4byte gUnknown_02039238 -_081079F0: .4byte gUnknown_02024C07 -_081079F4: - ldr r0, _08107A34 -_081079F6: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - ldr r2, _08107A38 - lsls r0, r4, 2 - adds r0, r2 - ldr r0, [r0] - ands r0, r1 - cmp r0, 0 - beq _08107A3C - ldrb r1, [r3, 0x6] - ldrb r0, [r3, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r5] - b _08107A42 - .align 2, 0 -_08107A34: .4byte gUnknown_02024C08 -_08107A38: .4byte gUnknown_02024C98 -_08107A3C: - adds r0, r3, 0 - adds r0, 0xA - str r0, [r5] -_08107A42: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81079D8 - - thumb_func_start sub_8107A48 -sub_8107A48: @ 8107A48 - push {r4,r5,lr} - ldr r0, _08107A5C - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r5, r0, 0 - cmp r1, 0x1 - bne _08107A64 - ldr r0, _08107A60 - b _08107A66 - .align 2, 0 -_08107A5C: .4byte gUnknown_02039238 -_08107A60: .4byte gUnknown_02024C07 -_08107A64: - ldr r0, _08107AA4 -_08107A66: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - ldr r2, _08107AA8 - lsls r0, r4, 2 - adds r0, r2 - ldr r0, [r0] - ands r0, r1 - cmp r0, 0 - bne _08107AAC - ldrb r1, [r3, 0x6] - ldrb r0, [r3, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r5] - b _08107AB2 - .align 2, 0 -_08107AA4: .4byte gUnknown_02024C08 -_08107AA8: .4byte gUnknown_02024C98 -_08107AAC: - adds r0, r3, 0 - adds r0, 0xA - str r0, [r5] -_08107AB2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8107A48 - - thumb_func_start sub_8107AB8 -sub_8107AB8: @ 8107AB8 - push {r4,lr} - ldr r0, _08107AC8 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - bne _08107AD0 - ldr r0, _08107ACC - b _08107AD2 - .align 2, 0 -_08107AC8: .4byte gUnknown_02039238 -_08107ACC: .4byte gUnknown_02024C07 -_08107AD0: - ldr r0, _08107B1C -_08107AD2: - ldrb r0, [r0] - bl battle_get_per_side_status - movs r2, 0x1 - ands r2, r0 - ldr r4, _08107B20 - ldr r3, [r4] - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - ldr r0, _08107B24 - lsls r2, 1 - adds r2, r0 - ldrh r0, [r2] - ands r0, r1 - cmp r0, 0 - beq _08107B28 - ldrb r1, [r3, 0x6] - ldrb r0, [r3, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08107B2E - .align 2, 0 -_08107B1C: .4byte gUnknown_02024C08 -_08107B20: .4byte gUnknown_02039238 -_08107B24: .4byte gUnknown_02024C7A -_08107B28: - adds r0, r3, 0 - adds r0, 0xA - str r0, [r4] -_08107B2E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8107AB8 - - thumb_func_start sub_8107B34 -sub_8107B34: @ 8107B34 - push {r4,lr} - ldr r0, _08107B44 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - bne _08107B4C - ldr r0, _08107B48 - b _08107B4E - .align 2, 0 -_08107B44: .4byte gUnknown_02039238 -_08107B48: .4byte gUnknown_02024C07 -_08107B4C: - ldr r0, _08107B98 -_08107B4E: - ldrb r0, [r0] - bl battle_get_per_side_status - movs r2, 0x1 - ands r2, r0 - ldr r4, _08107B9C - ldr r3, [r4] - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - ldr r0, _08107BA0 - lsls r2, 1 - adds r2, r0 - ldrh r0, [r2] - ands r0, r1 - cmp r0, 0 - bne _08107BA4 - ldrb r1, [r3, 0x6] - ldrb r0, [r3, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08107BAA - .align 2, 0 -_08107B98: .4byte gUnknown_02024C08 -_08107B9C: .4byte gUnknown_02039238 -_08107BA0: .4byte gUnknown_02024C7A -_08107BA4: - adds r0, r3, 0 - adds r0, 0xA - str r0, [r4] -_08107BAA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8107B34 - - thumb_func_start sub_8107BB0 -sub_8107BB0: @ 8107BB0 - push {lr} - ldr r0, _08107BD8 - ldr r3, _08107BDC - ldr r2, [r3] - ldr r0, [r0, 0x8] - ldrb r1, [r2, 0x1] - cmp r0, r1 - bcs _08107BE0 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107BE4 - .align 2, 0 -_08107BD8: .4byte 0x02016800 -_08107BDC: .4byte gUnknown_02039238 -_08107BE0: - adds r0, r2, 0x6 - str r0, [r3] -_08107BE4: - pop {r0} - bx r0 - thumb_func_end sub_8107BB0 - - thumb_func_start sub_8107BE8 -sub_8107BE8: @ 8107BE8 - push {lr} - ldr r0, _08107C10 - ldr r3, _08107C14 - ldr r2, [r3] - ldr r0, [r0, 0x8] - ldrb r1, [r2, 0x1] - cmp r0, r1 - bls _08107C18 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107C1C - .align 2, 0 -_08107C10: .4byte 0x02016800 -_08107C14: .4byte gUnknown_02039238 -_08107C18: - adds r0, r2, 0x6 - str r0, [r3] -_08107C1C: - pop {r0} - bx r0 - thumb_func_end sub_8107BE8 - - thumb_func_start sub_8107C20 -sub_8107C20: @ 8107C20 - push {lr} - ldr r0, _08107C48 - ldr r3, _08107C4C - ldr r2, [r3] - ldr r0, [r0, 0x8] - ldrb r1, [r2, 0x1] - cmp r0, r1 - bne _08107C50 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107C54 - .align 2, 0 -_08107C48: .4byte 0x02016800 -_08107C4C: .4byte gUnknown_02039238 -_08107C50: - adds r0, r2, 0x6 - str r0, [r3] -_08107C54: - pop {r0} - bx r0 - thumb_func_end sub_8107C20 - - thumb_func_start sub_8107C58 -sub_8107C58: @ 8107C58 - push {lr} - ldr r0, _08107C80 - ldr r3, _08107C84 - ldr r2, [r3] - ldr r0, [r0, 0x8] - ldrb r1, [r2, 0x1] - cmp r0, r1 - beq _08107C88 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107C8C - .align 2, 0 -_08107C80: .4byte 0x02016800 -_08107C84: .4byte gUnknown_02039238 -_08107C88: - adds r0, r2, 0x6 - str r0, [r3] -_08107C8C: - pop {r0} - bx r0 - thumb_func_end sub_8107C58 - - thumb_func_start sub_8107C90 -sub_8107C90: @ 8107C90 - push {lr} - ldr r3, _08107CCC - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - ldr r0, _08107CD0 - ldr r0, [r0, 0x8] - ldrb r1, [r1] - cmp r0, r1 - bcs _08107CD4 - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107CDA - .align 2, 0 -_08107CCC: .4byte gUnknown_02039238 -_08107CD0: .4byte 0x02016800 -_08107CD4: - adds r0, r2, 0 - adds r0, 0x9 - str r0, [r3] -_08107CDA: - pop {r0} - bx r0 - thumb_func_end sub_8107C90 - - thumb_func_start sub_8107CE0 -sub_8107CE0: @ 8107CE0 - push {lr} - ldr r3, _08107D1C - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - ldr r0, _08107D20 - ldr r0, [r0, 0x8] - ldrb r1, [r1] - cmp r0, r1 - bls _08107D24 - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107D2A - .align 2, 0 -_08107D1C: .4byte gUnknown_02039238 -_08107D20: .4byte 0x02016800 -_08107D24: - adds r0, r2, 0 - adds r0, 0x9 - str r0, [r3] -_08107D2A: - pop {r0} - bx r0 - thumb_func_end sub_8107CE0 - - thumb_func_start sub_8107D30 -sub_8107D30: @ 8107D30 - push {lr} - ldr r3, _08107D6C - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - ldr r0, _08107D70 - ldr r0, [r0, 0x8] - ldrb r1, [r1] - cmp r0, r1 - bne _08107D74 - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107D7A - .align 2, 0 -_08107D6C: .4byte gUnknown_02039238 -_08107D70: .4byte 0x02016800 -_08107D74: - adds r0, r2, 0 - adds r0, 0x9 - str r0, [r3] -_08107D7A: - pop {r0} - bx r0 - thumb_func_end sub_8107D30 - - thumb_func_start sub_8107D80 -sub_8107D80: @ 8107D80 - push {lr} - ldr r3, _08107DBC - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - ldr r0, _08107DC0 - ldr r0, [r0, 0x8] - ldrb r1, [r1] - cmp r0, r1 - beq _08107DC4 - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107DCA - .align 2, 0 -_08107DBC: .4byte gUnknown_02039238 -_08107DC0: .4byte 0x02016800 -_08107DC4: - adds r0, r2, 0 - adds r0, 0x9 - str r0, [r3] -_08107DCA: - pop {r0} - bx r0 - thumb_func_end sub_8107D80 - - thumb_func_start sub_8107DD0 -sub_8107DD0: @ 8107DD0 - push {lr} - ldr r3, _08107E00 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldr r0, _08107E04 - ldrh r0, [r0, 0x2] - cmp r0, r1 - bne _08107E08 - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107E0C - .align 2, 0 -_08107E00: .4byte gUnknown_02039238 -_08107E04: .4byte 0x02016800 -_08107E08: - adds r0, r2, 0x7 - str r0, [r3] -_08107E0C: - pop {r0} - bx r0 - thumb_func_end sub_8107DD0 - - thumb_func_start sub_8107E10 -sub_8107E10: @ 8107E10 - push {lr} - ldr r3, _08107E40 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldr r0, _08107E44 - ldrh r0, [r0, 0x2] - cmp r0, r1 - beq _08107E48 - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107E4C - .align 2, 0 -_08107E40: .4byte gUnknown_02039238 -_08107E44: .4byte 0x02016800 -_08107E48: - adds r0, r2, 0x7 - str r0, [r3] -_08107E4C: - pop {r0} - bx r0 - thumb_func_end sub_8107E10 - - thumb_func_start sub_8107E50 -sub_8107E50: @ 8107E50 - push {r4,lr} - ldr r2, _08107E98 - ldr r1, [r2] - ldrb r3, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r3, r0 - ldrb r0, [r3] - cmp r0, 0xFF - beq _08107EA8 - ldr r0, _08107E9C - ldr r1, [r0, 0x8] - adds r4, r2, 0 -_08107E76: - ldrb r0, [r3] - cmp r1, r0 - bne _08107EA0 - ldr r2, [r4] - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08107EAE - .align 2, 0 -_08107E98: .4byte gUnknown_02039238 -_08107E9C: .4byte 0x02016800 -_08107EA0: - adds r3, 0x1 - ldrb r0, [r3] - cmp r0, 0xFF - bne _08107E76 -_08107EA8: - ldr r0, [r2] - adds r0, 0x9 - str r0, [r2] -_08107EAE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8107E50 - - thumb_func_start sub_8107EB4 -sub_8107EB4: @ 8107EB4 - push {r4,lr} - ldr r2, _08107EEC - ldr r1, [r2] - ldrb r3, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r3, r0 - ldrb r0, [r3] - adds r4, r2, 0 - cmp r0, 0xFF - beq _08107EFC - ldr r0, _08107EF0 - ldr r2, [r0, 0x8] - adds r1, r4, 0 -_08107EDC: - ldrb r0, [r3] - cmp r2, r0 - bne _08107EF4 - ldr r0, [r1] - adds r0, 0x9 - str r0, [r1] - b _08107F14 - .align 2, 0 -_08107EEC: .4byte gUnknown_02039238 -_08107EF0: .4byte 0x02016800 -_08107EF4: - adds r3, 0x1 - ldrb r0, [r3] - cmp r0, 0xFF - bne _08107EDC -_08107EFC: - ldr r2, [r4] - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] -_08107F14: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8107EB4 - - thumb_func_start sub_8107F1C -sub_8107F1C: @ 8107F1C - push {r4,r5,lr} - ldr r2, _08107F64 - ldr r1, [r2] - ldrb r3, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r3, r0 - ldrh r0, [r3] - ldr r5, _08107F68 - cmp r0, r5 - beq _08107F78 - ldr r0, _08107F6C - ldr r1, [r0, 0x8] - adds r4, r2, 0 -_08107F44: - ldrh r0, [r3] - cmp r1, r0 - bne _08107F70 - ldr r2, [r4] - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08107F7E - .align 2, 0 -_08107F64: .4byte gUnknown_02039238 -_08107F68: .4byte 0x0000ffff -_08107F6C: .4byte 0x02016800 -_08107F70: - adds r3, 0x2 - ldrh r0, [r3] - cmp r0, r5 - bne _08107F44 -_08107F78: - ldr r0, [r2] - adds r0, 0x9 - str r0, [r2] -_08107F7E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8107F1C - - thumb_func_start sub_8107F84 -sub_8107F84: @ 8107F84 - push {r4,r5,lr} - ldr r2, _08107FBC - ldr r1, [r2] - ldrb r3, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r3, r0 - ldrh r0, [r3] - ldr r4, _08107FC0 - adds r5, r2, 0 - cmp r0, r4 - beq _08107FD0 - ldr r0, _08107FC4 - ldr r2, [r0, 0x8] - adds r1, r5, 0 -_08107FAE: - ldrh r0, [r3] - cmp r2, r0 - bne _08107FC8 - ldr r0, [r1] - adds r0, 0x9 - str r0, [r1] - b _08107FE8 - .align 2, 0 -_08107FBC: .4byte gUnknown_02039238 -_08107FC0: .4byte 0x0000ffff -_08107FC4: .4byte 0x02016800 -_08107FC8: - adds r3, 0x2 - ldrh r0, [r3] - cmp r0, r4 - bne _08107FAE -_08107FD0: - ldr r2, [r5] - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r1, r0 - str r1, [r5] -_08107FE8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8107F84 - - thumb_func_start sub_8107FF0 -sub_8107FF0: @ 8107FF0 - push {r4,r5,lr} - movs r3, 0 - ldr r4, _08108030 - ldr r1, _08108034 - ldr r0, _08108038 - ldrb r2, [r0] - ldr r5, _0810803C - movs r0, 0x58 - muls r0, r2 - adds r1, 0xC - adds r2, r0, r1 -_08108006: - ldrh r0, [r2] - cmp r0, 0 - beq _0810801A - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _08108022 -_0810801A: - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x3 - ble _08108006 -_08108022: - cmp r3, 0x4 - bne _08108040 - ldr r0, [r4] - adds r0, 0x5 - str r0, [r4] - b _08108058 - .align 2, 0 -_08108030: .4byte gUnknown_02039238 -_08108034: .4byte gBattleMons -_08108038: .4byte gUnknown_02024C07 -_0810803C: .4byte gBattleMoves -_08108040: - ldr r2, [r4] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] -_08108058: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8107FF0 - - thumb_func_start sub_8108060 -sub_8108060: @ 8108060 - push {r4,r5,lr} - movs r3, 0 - ldr r4, _081080A0 - ldr r1, _081080A4 - ldr r0, _081080A8 - ldrb r2, [r0] - ldr r5, _081080AC - movs r0, 0x58 - muls r0, r2 - adds r1, 0xC - adds r2, r0, r1 -_08108076: - ldrh r0, [r2] - cmp r0, 0 - beq _0810808A - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _08108092 -_0810808A: - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x3 - ble _08108076 -_08108092: - cmp r3, 0x4 - beq _081080B0 - ldr r0, [r4] - adds r0, 0x5 - str r0, [r4] - b _081080C8 - .align 2, 0 -_081080A0: .4byte gUnknown_02039238 -_081080A4: .4byte gBattleMons -_081080A8: .4byte gUnknown_02024C07 -_081080AC: .4byte gBattleMoves -_081080B0: - ldr r2, [r4] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] -_081080C8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8108060 - - thumb_func_start sub_81080D0 -sub_81080D0: @ 81080D0 - ldr r1, _081080E4 - ldr r0, _081080E8 - ldrb r0, [r0, 0x13] - str r0, [r1, 0x8] - ldr r1, _081080EC - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_081080E4: .4byte 0x02016800 -_081080E8: .4byte gUnknown_030042E0 -_081080EC: .4byte gUnknown_02039238 - thumb_func_end sub_81080D0 - - thumb_func_start sub_81080F0 -sub_81080F0: @ 81080F0 - push {r4,lr} - ldr r1, _08108108 - ldr r0, [r1] - ldrb r0, [r0, 0x1] - adds r4, r1, 0 - cmp r0, 0x4 - bhi _081081B6 - lsls r0, 2 - ldr r1, _0810810C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08108108: .4byte gUnknown_02039238 -_0810810C: .4byte _08108110 - .align 2, 0 -_08108110: - .4byte _08108144 - .4byte _08108124 - .4byte _08108184 - .4byte _08108164 - .4byte _081081A4 -_08108124: - ldr r3, _08108138 - ldr r2, _0810813C - ldr r0, _08108140 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x21 - ldrb r0, [r0] - b _081081B4 - .align 2, 0 -_08108138: .4byte 0x02016800 -_0810813C: .4byte gBattleMons -_08108140: .4byte gUnknown_02024C07 -_08108144: - ldr r3, _08108158 - ldr r2, _0810815C - ldr r0, _08108160 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x21 - ldrb r0, [r0] - b _081081B4 - .align 2, 0 -_08108158: .4byte 0x02016800 -_0810815C: .4byte gBattleMons -_08108160: .4byte gUnknown_02024C08 -_08108164: - ldr r3, _08108178 - ldr r2, _0810817C - ldr r0, _08108180 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x22 - ldrb r0, [r0] - b _081081B4 - .align 2, 0 -_08108178: .4byte 0x02016800 -_0810817C: .4byte gBattleMons -_08108180: .4byte gUnknown_02024C07 -_08108184: - ldr r3, _08108198 - ldr r2, _0810819C - ldr r0, _081081A0 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x22 - ldrb r0, [r0] - b _081081B4 - .align 2, 0 -_08108198: .4byte 0x02016800 -_0810819C: .4byte gBattleMons -_081081A0: .4byte gUnknown_02024C08 -_081081A4: - ldr r3, _081081C4 - ldr r2, _081081C8 - ldrh r1, [r3, 0x2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] -_081081B4: - str r0, [r3, 0x8] -_081081B6: - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081081C4: .4byte 0x02016800 -_081081C8: .4byte gBattleMoves - thumb_func_end sub_81080F0 - - thumb_func_start sub_81081CC -sub_81081CC: @ 81081CC - ldr r3, _081081E8 - ldr r2, _081081EC - ldrh r1, [r3, 0x2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - str r0, [r3, 0x8] - ldr r1, _081081F0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_081081E8: .4byte 0x02016800 -_081081EC: .4byte gBattleMoves -_081081F0: .4byte gUnknown_02039238 - thumb_func_end sub_81081CC - - thumb_func_start sub_81081F4 -sub_81081F4: @ 81081F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - movs r3, 0 - ldr r0, _08108328 - ldrh r1, [r0] - ldr r4, _0810832C - ldr r6, _08108330 - ldr r5, _08108334 - cmp r1, r4 - beq _0810822E - ldrh r1, [r5, 0x2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r2, [r0] - ldr r1, _08108328 -_0810821E: - ldrh r0, [r1] - cmp r2, r0 - beq _0810822E - adds r1, 0x2 - adds r3, 0x1 - ldrh r0, [r1] - cmp r0, r4 - bne _0810821E -_0810822E: - ldrh r0, [r5, 0x2] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x1] - cmp r0, 0x1 - bhi _08108240 - b _081083B2 -_08108240: - lsls r0, r3, 1 - ldr r1, _08108328 - adds r0, r1 - ldrh r3, [r0] - ldr r0, _0810832C - cmp r3, r0 - beq _08108250 - b _081083B2 -_08108250: - ldr r0, _08108338 - movs r1, 0 - strh r1, [r0] - ldr r2, _0810833C - adds r0, r5, r2 - strb r1, [r0] - adds r2, 0x3 - adds r0, r5, r2 - movs r2, 0x1 - strb r2, [r0] - ldr r0, _08108340 - strb r1, [r0] - ldr r0, _08108344 - strb r2, [r0] - movs r6, 0 - mov r9, r3 - ldr r0, _08108328 - ldrh r0, [r0] - str r0, [sp, 0x10] -_08108276: - movs r3, 0 - ldr r5, _08108348 - lsls r4, r6, 1 - ldr r7, _0810834C - lsls r1, r6, 2 - mov r8, r1 - adds r2, r6, 0x1 - mov r10, r2 - ldr r0, [sp, 0x10] - cmp r0, r9 - beq _081082BA - ldr r2, _08108330 - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - adds r0, r4, r0 - adds r1, r5, 0 - adds r1, 0xC - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0] - ldr r1, _08108328 -_081082AA: - ldrh r0, [r1] - cmp r2, r0 - beq _081082BA - adds r1, 0x2 - adds r3, 0x1 - ldrh r0, [r1] - cmp r0, r9 - bne _081082AA -_081082BA: - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - adds r0, r4, r0 - adds r1, r5, 0 - adds r1, 0xC - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, 0 - beq _0810835C - lsls r0, r3, 1 - ldr r2, _08108328 - adds r0, r2 - ldrh r0, [r0] - cmp r0, r9 - bne _0810835C - ldr r0, _08108330 - ldrh r2, [r1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0x1 - bls _0810835C - ldr r5, _08108350 - strh r2, [r5] - ldrb r0, [r7] - ldr r4, _08108354 - ldrb r1, [r4] - bl sub_801CAF8 - ldrh r0, [r5] - ldrb r1, [r7] - ldrb r2, [r4] - bl move_effectiveness_something - mov r4, sp - add r4, r8 - ldr r2, _08108358 - ldr r0, _08108334 - adds r0, 0x18 - adds r0, r6, r0 - ldrb r1, [r0] - ldr r0, [r2] - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _08108364 - movs r0, 0x1 - str r0, [r4] - b _08108364 - .align 2, 0 -_08108328: .4byte gUnknown_083F62BC -_0810832C: .4byte 0x0000ffff -_08108330: .4byte gBattleMoves -_08108334: .4byte 0x02016800 -_08108338: .4byte gUnknown_02024DEC -_0810833C: .4byte 0xfffff81c -_08108340: .4byte gUnknown_02024C68 -_08108344: .4byte gCritMultiplier -_08108348: .4byte gBattleMons -_0810834C: .4byte gUnknown_02024C07 -_08108350: .4byte gUnknown_02024BE6 -_08108354: .4byte gUnknown_02024C08 -_08108358: .4byte gUnknown_02024BEC -_0810835C: - mov r1, sp - add r1, r8 - movs r0, 0 - str r0, [r1] -_08108364: - mov r6, r10 - cmp r6, 0x3 - ble _08108276 - movs r6, 0 - ldr r1, _081083A4 - ldrb r0, [r1, 0x1] - lsls r0, 2 - add r0, sp - ldr r2, [sp] - ldr r0, [r0] - adds r5, r1, 0 - ldr r4, _081083A8 - cmp r2, r0 - bgt _0810839A - adds r3, r5, 0 - mov r2, sp -_08108384: - adds r2, 0x4 - adds r6, 0x1 - cmp r6, 0x3 - bgt _0810839A - ldrb r0, [r3, 0x1] - lsls r0, 2 - add r0, sp - ldr r1, [r2] - ldr r0, [r0] - cmp r1, r0 - ble _08108384 -_0810839A: - cmp r6, 0x4 - bne _081083AC - movs r0, 0x2 - str r0, [r5, 0x8] - b _081083B8 - .align 2, 0 -_081083A4: .4byte 0x02016800 -_081083A8: .4byte gUnknown_02039238 -_081083AC: - movs r0, 0x1 - str r0, [r5, 0x8] - b _081083B8 -_081083B2: - movs r0, 0 - str r0, [r5, 0x8] - ldr r4, _081083D0 -_081083B8: - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081083D0: .4byte gUnknown_02039238 - thumb_func_end sub_81081F4 - - thumb_func_start sub_81083D4 -sub_81083D4: @ 81083D4 - push {lr} - ldr r0, _081083EC - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r3, r0, 0 - cmp r1, 0x1 - bne _081083FC - ldr r2, _081083F0 - ldr r1, _081083F4 - ldr r0, _081083F8 - b _08108402 - .align 2, 0 -_081083EC: .4byte gUnknown_02039238 -_081083F0: .4byte 0x02016800 -_081083F4: .4byte gUnknown_02024C34 -_081083F8: .4byte gUnknown_02024C07 -_081083FC: - ldr r2, _08108418 - ldr r1, _0810841C - ldr r0, _08108420 -_08108402: - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - str r0, [r2, 0x8] - ldr r0, [r3] - adds r0, 0x2 - str r0, [r3] - pop {r0} - bx r0 - .align 2, 0 -_08108418: .4byte 0x02016800 -_0810841C: .4byte gUnknown_02024C34 -_08108420: .4byte gUnknown_02024C08 - thumb_func_end sub_81083D4 - - thumb_func_start sub_8108424 -sub_8108424: @ 8108424 - push {lr} - ldr r3, _0810844C - ldr r2, [r3] - ldrb r0, [r2, 0x1] - ldr r1, _08108450 - ldr r1, [r1, 0x8] - cmp r0, r1 - bne _08108454 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08108458 - .align 2, 0 -_0810844C: .4byte gUnknown_02039238 -_08108450: .4byte 0x02016800 -_08108454: - adds r0, r2, 0x6 - str r0, [r3] -_08108458: - pop {r0} - bx r0 - thumb_func_end sub_8108424 - - thumb_func_start sub_810845C -sub_810845C: @ 810845C - push {lr} - ldr r3, _08108484 - ldr r2, [r3] - ldrb r0, [r2, 0x1] - ldr r1, _08108488 - ldr r1, [r1, 0x8] - cmp r0, r1 - beq _0810848C - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08108490 - .align 2, 0 -_08108484: .4byte gUnknown_02039238 -_08108488: .4byte 0x02016800 -_0810848C: - adds r0, r2, 0x6 - str r0, [r3] -_08108490: - pop {r0} - bx r0 - thumb_func_end sub_810845C - - thumb_func_start tai28_unk -tai28_unk: @ 8108494 - push {lr} - ldr r0, _081084CC - ldrb r0, [r0] - ldr r1, _081084D0 - ldrb r1, [r1] - movs r2, 0x1 - bl b_first_side - ldr r3, _081084D4 - ldr r2, [r3] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r2, 0x1] - cmp r0, r1 - bne _081084D8 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081084DC - .align 2, 0 -_081084CC: .4byte gUnknown_02024C07 -_081084D0: .4byte gUnknown_02024C08 -_081084D4: .4byte gUnknown_02039238 -_081084D8: - adds r0, r2, 0x6 - str r0, [r3] -_081084DC: - pop {r0} - bx r0 - thumb_func_end tai28_unk - - thumb_func_start tai29_unk -tai29_unk: @ 81084E0 - push {lr} - ldr r0, _08108518 - ldrb r0, [r0] - ldr r1, _0810851C - ldrb r1, [r1] - movs r2, 0x1 - bl b_first_side - ldr r3, _08108520 - ldr r2, [r3] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r2, 0x1] - cmp r0, r1 - beq _08108524 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08108528 - .align 2, 0 -_08108518: .4byte gUnknown_02024C07 -_0810851C: .4byte gUnknown_02024C08 -_08108520: .4byte gUnknown_02039238 -_08108524: - adds r0, r2, 0x6 - str r0, [r3] -_08108528: - pop {r0} - bx r0 - thumb_func_end tai29_unk - - thumb_func_start nullsub_25 -nullsub_25: @ 810852C - bx lr - thumb_func_end nullsub_25 - - thumb_func_start nullsub_26 -nullsub_26: @ 8108530 - bx lr - thumb_func_end nullsub_26 - - thumb_func_start tai2C_unk -tai2C_unk: @ 8108534 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r1, _08108550 - movs r0, 0 - str r0, [r1, 0x8] - ldr r0, _08108554 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - bne _0810855C - ldr r0, _08108558 - b _0810855E - .align 2, 0 -_08108550: .4byte 0x02016800 -_08108554: .4byte gUnknown_02039238 -_08108558: .4byte gUnknown_02024C07 -_0810855C: - ldr r0, _081085A8 -_0810855E: - ldrb r5, [r0] - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - ldr r1, _081085AC - mov r9, r1 - cmp r0, 0 - bne _08108574 - ldr r0, _081085B0 - mov r9, r0 -_08108574: - ldr r0, _081085B4 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081085BC - ldr r4, _081085B8 - lsls r0, r5, 1 - adds r0, r4 - ldrb r0, [r0] - mov r8, r0 - adds r0, r5, 0 - bl battle_get_per_side_status - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrb r6, [r0] - b _081085C6 - .align 2, 0 -_081085A8: .4byte gUnknown_02024C08 -_081085AC: .4byte gEnemyParty -_081085B0: .4byte gPlayerParty -_081085B4: .4byte gUnknown_020239F8 -_081085B8: .4byte gUnknown_02024A6A -_081085BC: - ldr r1, _08108624 - lsls r0, r5, 1 - adds r0, r1 - ldrb r6, [r0] - mov r8, r6 -_081085C6: - movs r5, 0 - ldr r7, _08108628 -_081085CA: - cmp r5, r8 - beq _08108608 - cmp r5, r6 - beq _08108608 - movs r0, 0x64 - muls r0, r5 - mov r1, r9 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08108608 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08108608 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08108608 - ldr r0, [r7, 0x8] - adds r0, 0x1 - str r0, [r7, 0x8] -_08108608: - adds r5, 0x1 - cmp r5, 0x5 - ble _081085CA - ldr r1, _0810862C - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08108624: .4byte gUnknown_02024A6A -_08108628: .4byte 0x02016800 -_0810862C: .4byte gUnknown_02039238 - thumb_func_end tai2C_unk - - thumb_func_start sub_8108630 -sub_8108630: @ 8108630 - ldr r1, _08108640 - ldrh r0, [r1, 0x2] - str r0, [r1, 0x8] - ldr r1, _08108644 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08108640: .4byte 0x02016800 -_08108644: .4byte gUnknown_02039238 - thumb_func_end sub_8108630 - - thumb_func_start sub_8108648 -sub_8108648: @ 8108648 - ldr r3, _08108664 - ldr r2, _08108668 - ldrh r1, [r3, 0x2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - str r0, [r3, 0x8] - ldr r1, _0810866C - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08108664: .4byte 0x02016800 -_08108668: .4byte gBattleMoves -_0810866C: .4byte gUnknown_02039238 - thumb_func_end sub_8108648 - - thumb_func_start sub_8108670 -sub_8108670: @ 8108670 - push {r4-r7,lr} - ldr r0, _08108680 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - bne _08108688 - ldr r0, _08108684 - b _0810868A - .align 2, 0 -_08108680: .4byte gUnknown_02039238 -_08108684: .4byte gUnknown_02024C07 -_08108688: - ldr r0, _081086BC -_0810868A: - ldrb r4, [r0] - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08108774 - adds r0, r4, 0 - bl battle_get_per_side_status - movs r7, 0x1 - adds r1, r7, 0 - ands r1, r0 - ldr r6, _081086C0 - adds r0, r6, 0 - adds r0, 0x20 - adds r3, r1, r0 - ldrb r0, [r3] - cmp r0, 0 - beq _081086C8 - ldr r0, _081086C4 - adds r1, r6, r0 - ldrb r0, [r3] - str r0, [r1, 0x8] - b _08108784 - .align 2, 0 -_081086BC: .4byte gUnknown_02024C08 -_081086C0: .4byte 0x02016a00 -_081086C4: .4byte 0xfffffe00 -_081086C8: - ldr r1, _081086F4 - movs r0, 0x58 - muls r0, r4 - adds r5, r0, r1 - adds r0, r5, 0 - adds r0, 0x20 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0x17 - beq _081086E4 - cmp r0, 0x2A - beq _081086E4 - cmp r0, 0x47 - bne _081086FC -_081086E4: - ldr r1, _081086F8 - movs r0, 0x58 - muls r0, r4 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - str r0, [r1, 0x8] - b _08108784 - .align 2, 0 -_081086F4: .4byte gBattleMons -_081086F8: .4byte 0x02016800 -_081086FC: - ldr r4, _08108734 - ldrh r0, [r5] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r3, r1, r4 - ldrb r0, [r3, 0x16] - cmp r0, 0 - beq _08108764 - ldrb r0, [r3, 0x17] - cmp r0, 0 - beq _08108754 - bl Random - adds r1, r7, 0 - ands r1, r0 - cmp r1, 0 - beq _0810873C - ldr r0, _08108738 - adds r2, r6, r0 - ldrh r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x16] - b _08108782 - .align 2, 0 -_08108734: .4byte gBaseStats -_08108738: .4byte 0xfffffe00 -_0810873C: - ldr r0, _08108750 - adds r2, r6, r0 - ldrh r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x17] - b _08108782 - .align 2, 0 -_08108750: .4byte 0xfffffe00 -_08108754: - ldr r0, _08108760 - adds r1, r6, r0 - ldrb r0, [r3, 0x16] - str r0, [r1, 0x8] - b _08108784 - .align 2, 0 -_08108760: .4byte 0xfffffe00 -_08108764: - ldr r0, _08108770 - adds r1, r6, r0 - ldrb r0, [r3, 0x17] - str r0, [r1, 0x8] - b _08108784 - .align 2, 0 -_08108770: .4byte 0xfffffe00 -_08108774: - ldr r2, _08108794 - ldr r1, _08108798 - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] -_08108782: - str r0, [r2, 0x8] -_08108784: - ldr r1, _0810879C - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08108794: .4byte 0x02016800 -_08108798: .4byte gBattleMons -_0810879C: .4byte gUnknown_02039238 - thumb_func_end sub_8108670 - - thumb_func_start tai30_unk -tai30_unk: @ 81087A0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _0810885C - movs r2, 0 - strh r2, [r0] - ldr r1, _08108860 - ldr r3, _08108864 - adds r0, r1, r3 - movs r4, 0 - strb r2, [r0] - adds r3, 0x3 - adds r0, r1, r3 - movs r3, 0x1 - strb r3, [r0] - ldr r0, _08108868 - strb r2, [r0] - ldr r0, _0810886C - strb r3, [r0] - movs r0, 0xB4 - lsls r0, 9 - adds r1, r0 - str r4, [r1, 0x8] - movs r5, 0 - ldr r4, _08108870 - ldr r7, _08108874 - ldr r3, _08108878 - mov r8, r3 - ldr r6, _0810887C -_081087DA: - movs r0, 0x28 - str r0, [r4] - lsls r1, r5, 1 - ldrb r2, [r6] - movs r0, 0x58 - muls r0, r2 - adds r1, r0 - add r1, r8 - ldrh r0, [r1] - strh r0, [r7] - lsls r0, 16 - cmp r0, 0 - beq _08108844 - ldrh r0, [r7] - ldrb r1, [r6] - ldr r2, _08108880 - ldrb r2, [r2] - bl move_effectiveness_something - ldr r0, [r4] - cmp r0, 0x78 - bne _0810880A - movs r0, 0x50 - str r0, [r4] -_0810880A: - ldr r0, [r4] - cmp r0, 0xF0 - bne _08108814 - movs r0, 0xA0 - str r0, [r4] -_08108814: - ldr r0, [r4] - cmp r0, 0x1E - bne _0810881E - movs r0, 0x14 - str r0, [r4] -_0810881E: - ldr r0, [r4] - cmp r0, 0xF - bne _08108828 - movs r0, 0xA - str r0, [r4] -_08108828: - ldr r0, _08108868 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08108838 - movs r0, 0 - str r0, [r4] -_08108838: - ldr r2, _08108884 - ldr r0, [r2, 0x8] - ldr r1, [r4] - cmp r0, r1 - bcs _08108844 - str r1, [r2, 0x8] -_08108844: - adds r5, 0x1 - cmp r5, 0x3 - ble _081087DA - ldr r1, _08108888 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810885C: .4byte gUnknown_02024DEC -_08108860: .4byte 0x02000000 -_08108864: .4byte 0x0001601c -_08108868: .4byte gUnknown_02024C68 -_0810886C: .4byte gCritMultiplier -_08108870: .4byte gUnknown_02024BEC -_08108874: .4byte gUnknown_02024BE6 -_08108878: .4byte gUnknown_02024A8C -_0810887C: .4byte gUnknown_02024C07 -_08108880: .4byte gUnknown_02024C08 -_08108884: .4byte 0x02016800 -_08108888: .4byte gUnknown_02039238 - thumb_func_end tai30_unk - - thumb_func_start dp15_simulate_damage_bonus_jump_if_eq -dp15_simulate_damage_bonus_jump_if_eq: @ 810888C - push {r4,r5,lr} - ldr r0, _08108928 - movs r1, 0 - strh r1, [r0] - ldr r2, _0810892C - ldr r3, _08108930 - adds r0, r2, r3 - strb r1, [r0] - adds r3, 0x3 - adds r0, r2, r3 - movs r3, 0x1 - strb r3, [r0] - ldr r5, _08108934 - strb r1, [r5] - ldr r0, _08108938 - strb r3, [r0] - ldr r4, _0810893C - movs r0, 0x28 - str r0, [r4] - ldr r1, _08108940 - movs r0, 0xB4 - lsls r0, 9 - adds r2, r0 - ldrh r0, [r2, 0x2] - strh r0, [r1] - ldrh r0, [r1] - ldr r1, _08108944 - ldrb r1, [r1] - ldr r2, _08108948 - ldrb r2, [r2] - bl move_effectiveness_something - ldr r0, [r4] - cmp r0, 0x78 - bne _081088D6 - movs r0, 0x50 - str r0, [r4] -_081088D6: - ldr r0, [r4] - cmp r0, 0xF0 - bne _081088E0 - movs r0, 0xA0 - str r0, [r4] -_081088E0: - ldr r0, [r4] - cmp r0, 0x1E - bne _081088EA - movs r0, 0x14 - str r0, [r4] -_081088EA: - ldr r0, [r4] - cmp r0, 0xF - bne _081088F4 - movs r0, 0xA - str r0, [r4] -_081088F4: - ldrb r1, [r5] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08108902 - movs r0, 0 - str r0, [r4] -_08108902: - ldrb r0, [r4] - ldr r3, _0810894C - ldr r2, [r3] - ldrb r1, [r2, 0x1] - cmp r0, r1 - bne _08108950 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08108954 - .align 2, 0 -_08108928: .4byte gUnknown_02024DEC -_0810892C: .4byte 0x02000000 -_08108930: .4byte 0x0001601c -_08108934: .4byte gUnknown_02024C68 -_08108938: .4byte gCritMultiplier -_0810893C: .4byte gUnknown_02024BEC -_08108940: .4byte gUnknown_02024BE6 -_08108944: .4byte gUnknown_02024C07 -_08108948: .4byte gUnknown_02024C08 -_0810894C: .4byte gUnknown_02039238 -_08108950: - adds r0, r2, 0x6 - str r0, [r3] -_08108954: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end dp15_simulate_damage_bonus_jump_if_eq - - thumb_func_start nullsub_71 -nullsub_71: @ 810895C - bx lr - thumb_func_end nullsub_71 - - thumb_func_start nullsub_90 -nullsub_90: @ 8108960 - bx lr - thumb_func_end nullsub_90 - - thumb_func_start sub_8108964 -sub_8108964: @ 8108964 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _0810897C - ldr r1, [r0] - ldrb r1, [r1, 0x1] - cmp r1, 0x1 - bne _081089A4 - ldr r1, _08108980 - b _081089A6 - .align 2, 0 -_0810897C: .4byte gUnknown_02039238 -_08108980: .4byte gEnemyParty -_08108984: - ldr r3, _081089A0 - ldr r2, [r3] - ldrb r1, [r2, 0x6] - ldrb r0, [r2, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08108A12 - .align 2, 0 -_081089A0: .4byte gUnknown_02039238 -_081089A4: - ldr r1, _08108A20 -_081089A6: - mov r9, r1 - ldr r1, [r0] - ldrb r7, [r1, 0x2] - ldrb r0, [r1, 0x3] - lsls r0, 8 - orrs r7, r0 - ldrb r0, [r1, 0x4] - lsls r0, 16 - orrs r7, r0 - ldrb r0, [r1, 0x5] - lsls r0, 24 - orrs r7, r0 - movs r0, 0 - mov r8, r0 - movs r1, 0xCE - lsls r1, 1 - mov r10, r1 -_081089C8: - movs r0, 0x64 - mov r4, r8 - muls r4, r0 - add r4, r9 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - cmp r5, 0 - beq _08108A00 - cmp r5, r10 - beq _08108A00 - cmp r6, 0 - beq _08108A00 - cmp r0, r7 - beq _08108984 -_08108A00: - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0x5 - ble _081089C8 - ldr r1, _08108A24 - ldr r0, [r1] - adds r0, 0xA - str r0, [r1] -_08108A12: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08108A20: .4byte gPlayerParty -_08108A24: .4byte gUnknown_02039238 - thumb_func_end sub_8108964 - - thumb_func_start sub_8108A28 -sub_8108A28: @ 8108A28 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _08108A44 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r2, r0, 0 - cmp r1, 0x1 - bne _08108A4C - ldr r0, _08108A48 - mov r10, r0 - b _08108A50 - .align 2, 0 -_08108A44: .4byte gUnknown_02039238 -_08108A48: .4byte gEnemyParty -_08108A4C: - ldr r1, _08108AE4 - mov r10, r1 -_08108A50: - ldr r1, [r2] - ldrb r7, [r1, 0x2] - ldrb r0, [r1, 0x3] - lsls r0, 8 - orrs r7, r0 - ldrb r0, [r1, 0x4] - lsls r0, 16 - orrs r7, r0 - ldrb r0, [r1, 0x5] - lsls r0, 24 - orrs r7, r0 - movs r0, 0 - mov r8, r0 - mov r9, r2 -_08108A6C: - movs r0, 0x64 - mov r4, r8 - muls r4, r0 - add r4, r10 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - cmp r5, 0 - beq _08108AB0 - movs r1, 0xCE - lsls r1, 1 - cmp r5, r1 - beq _08108AB0 - cmp r6, 0 - beq _08108AB0 - cmp r0, r7 - bne _08108AB0 - mov r1, r9 - ldr r0, [r1] - adds r0, 0xA - str r0, [r1] -_08108AB0: - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0x5 - ble _08108A6C - ldr r3, _08108AE8 - ldr r2, [r3] - ldrb r1, [r2, 0x6] - ldrb r0, [r2, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08108AE4: .4byte gPlayerParty -_08108AE8: .4byte gUnknown_02039238 - thumb_func_end sub_8108A28 - - thumb_func_start sub_8108AEC -sub_8108AEC: @ 8108AEC - push {lr} - ldr r2, _08108B3C - ldrh r1, [r2] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08108B00 - ldr r1, _08108B40 - movs r0, 0x1 - str r0, [r1, 0x8] -_08108B00: - ldrh r2, [r2] - movs r0, 0x18 - ands r0, r2 - adds r3, r2, 0 - cmp r0, 0 - beq _08108B12 - ldr r1, _08108B40 - movs r0, 0x2 - str r0, [r1, 0x8] -_08108B12: - movs r0, 0x60 - ands r0, r3 - cmp r0, 0 - beq _08108B20 - ldr r1, _08108B40 - movs r0, 0 - str r0, [r1, 0x8] -_08108B20: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _08108B2E - ldr r1, _08108B40 - movs r0, 0x3 - str r0, [r1, 0x8] -_08108B2E: - ldr r1, _08108B44 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08108B3C: .4byte word_2024DB8 -_08108B40: .4byte 0x02016800 -_08108B44: .4byte gUnknown_02039238 - thumb_func_end sub_8108AEC - - thumb_func_start sub_8108B48 -sub_8108B48: @ 8108B48 - push {lr} - ldr r2, _08108B7C - ldr r0, _08108B80 - ldrh r1, [r0, 0x2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r3, _08108B84 - ldr r2, [r3] - ldrb r0, [r0] - ldrb r1, [r2, 0x1] - cmp r0, r1 - bne _08108B88 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08108B8C - .align 2, 0 -_08108B7C: .4byte gBattleMoves -_08108B80: .4byte 0x02016800 -_08108B84: .4byte gUnknown_02039238 -_08108B88: - adds r0, r2, 0x6 - str r0, [r3] -_08108B8C: - pop {r0} - bx r0 - thumb_func_end sub_8108B48 - - thumb_func_start sub_8108B90 -sub_8108B90: @ 8108B90 - push {lr} - ldr r2, _08108BC4 - ldr r0, _08108BC8 - ldrh r1, [r0, 0x2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r3, _08108BCC - ldr r2, [r3] - ldrb r0, [r0] - ldrb r1, [r2, 0x1] - cmp r0, r1 - beq _08108BD0 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08108BD4 - .align 2, 0 -_08108BC4: .4byte gBattleMoves -_08108BC8: .4byte 0x02016800 -_08108BCC: .4byte gUnknown_02039238 -_08108BD0: - adds r0, r2, 0x6 - str r0, [r3] -_08108BD4: - pop {r0} - bx r0 - thumb_func_end sub_8108B90 - - thumb_func_start sub_8108BD8 -sub_8108BD8: @ 8108BD8 - push {r4,lr} - ldr r0, _08108BEC - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0x1 - bne _08108BF4 - ldr r0, _08108BF0 - b _08108BF6 - .align 2, 0 -_08108BEC: .4byte gUnknown_02039238 -_08108BF0: .4byte gUnknown_02024C07 -_08108BF4: - ldr r0, _08108C2C -_08108BF6: - ldrb r3, [r0] - ldr r1, _08108C30 - ldr r2, [r4] - movs r0, 0x58 - muls r0, r3 - ldrb r3, [r2, 0x2] - adds r0, r3 - adds r1, 0x18 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrb r1, [r2, 0x3] - cmp r0, r1 - bge _08108C34 - ldrb r1, [r2, 0x4] - ldrb r0, [r2, 0x5] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08108C3A - .align 2, 0 -_08108C2C: .4byte gUnknown_02024C08 -_08108C30: .4byte gBattleMons -_08108C34: - adds r0, r2, 0 - adds r0, 0x8 - str r0, [r4] -_08108C3A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8108BD8 - - thumb_func_start sub_8108C40 -sub_8108C40: @ 8108C40 - push {r4,lr} - ldr r0, _08108C54 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0x1 - bne _08108C5C - ldr r0, _08108C58 - b _08108C5E - .align 2, 0 -_08108C54: .4byte gUnknown_02039238 -_08108C58: .4byte gUnknown_02024C07 -_08108C5C: - ldr r0, _08108C94 -_08108C5E: - ldrb r3, [r0] - ldr r1, _08108C98 - ldr r2, [r4] - movs r0, 0x58 - muls r0, r3 - ldrb r3, [r2, 0x2] - adds r0, r3 - adds r1, 0x18 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrb r1, [r2, 0x3] - cmp r0, r1 - ble _08108C9C - ldrb r1, [r2, 0x4] - ldrb r0, [r2, 0x5] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08108CA2 - .align 2, 0 -_08108C94: .4byte gUnknown_02024C08 -_08108C98: .4byte gBattleMons -_08108C9C: - adds r0, r2, 0 - adds r0, 0x8 - str r0, [r4] -_08108CA2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8108C40 - - thumb_func_start sub_8108CA8 -sub_8108CA8: @ 8108CA8 - push {r4,lr} - ldr r0, _08108CBC - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0x1 - bne _08108CC4 - ldr r0, _08108CC0 - b _08108CC6 - .align 2, 0 -_08108CBC: .4byte gUnknown_02039238 -_08108CC0: .4byte gUnknown_02024C07 -_08108CC4: - ldr r0, _08108CFC -_08108CC6: - ldrb r3, [r0] - ldr r1, _08108D00 - ldr r2, [r4] - movs r0, 0x58 - muls r0, r3 - ldrb r3, [r2, 0x2] - adds r0, r3 - adds r1, 0x18 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrb r1, [r2, 0x3] - cmp r0, r1 - bne _08108D04 - ldrb r1, [r2, 0x4] - ldrb r0, [r2, 0x5] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08108D0A - .align 2, 0 -_08108CFC: .4byte gUnknown_02024C08 -_08108D00: .4byte gBattleMons -_08108D04: - adds r0, r2, 0 - adds r0, 0x8 - str r0, [r4] -_08108D0A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8108CA8 - - thumb_func_start sub_8108D10 -sub_8108D10: @ 8108D10 - push {r4,lr} - ldr r0, _08108D24 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0x1 - bne _08108D2C - ldr r0, _08108D28 - b _08108D2E - .align 2, 0 -_08108D24: .4byte gUnknown_02039238 -_08108D28: .4byte gUnknown_02024C07 -_08108D2C: - ldr r0, _08108D64 -_08108D2E: - ldrb r3, [r0] - ldr r1, _08108D68 - ldr r2, [r4] - movs r0, 0x58 - muls r0, r3 - ldrb r3, [r2, 0x2] - adds r0, r3 - adds r1, 0x18 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrb r1, [r2, 0x3] - cmp r0, r1 - beq _08108D6C - ldrb r1, [r2, 0x4] - ldrb r0, [r2, 0x5] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08108D72 - .align 2, 0 -_08108D64: .4byte gUnknown_02024C08 -_08108D68: .4byte gBattleMons -_08108D6C: - adds r0, r2, 0 - adds r0, 0x8 - str r0, [r4] -_08108D72: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8108D10 - - thumb_func_start tai3D_unk -tai3D_unk: @ 8108D78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r2, _08108E1C - ldr r6, _08108E20 - ldrh r1, [r6, 0x2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - bls _08108E4C - ldr r0, _08108E24 - movs r1, 0 - strh r1, [r0] - ldr r2, _08108E28 - adds r0, r6, r2 - strb r1, [r0] - adds r2, 0x3 - adds r0, r6, r2 - movs r2, 0x1 - mov r8, r2 - mov r2, r8 - strb r2, [r0] - ldr r0, _08108E2C - strb r1, [r0] - ldr r0, _08108E30 - strb r2, [r0] - ldr r5, _08108E34 - ldrh r0, [r6, 0x2] - strh r0, [r5] - ldr r4, _08108E38 - ldrb r0, [r4] - ldr r7, _08108E3C - ldrb r1, [r7] - bl sub_801CAF8 - ldrh r0, [r5] - ldrb r1, [r4] - ldrb r2, [r7] - bl move_effectiveness_something - ldr r4, _08108E40 - adds r0, r6, 0 - adds r0, 0x18 - ldrb r6, [r6, 0x1] - adds r0, r6 - ldrb r1, [r0] - ldr r0, [r4] - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _08108DEE - mov r0, r8 - str r0, [r4] -_08108DEE: - ldr r2, _08108E44 - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r1, [r0, 0x28] - ldr r0, [r4] - cmp r1, r0 - bgt _08108E4C - ldr r3, _08108E48 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08108E54 - .align 2, 0 -_08108E1C: .4byte gBattleMoves -_08108E20: .4byte 0x02016800 -_08108E24: .4byte gUnknown_02024DEC -_08108E28: .4byte 0xfffff81c -_08108E2C: .4byte gUnknown_02024C68 -_08108E30: .4byte gCritMultiplier -_08108E34: .4byte gUnknown_02024BE6 -_08108E38: .4byte gUnknown_02024C07 -_08108E3C: .4byte gUnknown_02024C08 -_08108E40: .4byte gUnknown_02024BEC -_08108E44: .4byte gBattleMons -_08108E48: .4byte gUnknown_02039238 -_08108E4C: - ldr r1, _08108E60 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08108E54: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08108E60: .4byte gUnknown_02039238 - thumb_func_end tai3D_unk - - thumb_func_start dp15_determine_move_damage_jump_if_not_fatal -dp15_determine_move_damage_jump_if_not_fatal: @ 8108E64 - push {r4-r7,lr} - ldr r2, _08108EF8 - ldr r7, _08108EFC - ldrh r1, [r7, 0x2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - bls _08108F28 - ldr r0, _08108F00 - movs r1, 0 - strh r1, [r0] - ldr r2, _08108F04 - adds r0, r7, r2 - strb r1, [r0] - adds r2, 0x3 - adds r0, r7, r2 - movs r2, 0x1 - strb r2, [r0] - ldr r0, _08108F08 - strb r1, [r0] - ldr r0, _08108F0C - strb r2, [r0] - ldr r6, _08108F10 - ldrh r0, [r7, 0x2] - strh r0, [r6] - ldr r4, _08108F14 - ldrb r0, [r4] - ldr r5, _08108F18 - ldrb r1, [r5] - bl sub_801CAF8 - ldrh r0, [r6] - ldrb r1, [r4] - ldrb r2, [r5] - bl move_effectiveness_something - ldr r4, _08108F1C - adds r0, r7, 0 - adds r0, 0x18 - ldrb r7, [r7, 0x1] - adds r0, r7 - ldrb r1, [r0] - ldr r0, [r4] - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - ldr r3, _08108F20 - ldrb r2, [r5] - movs r1, 0x58 - muls r1, r2 - adds r1, r3 - ldrh r1, [r1, 0x28] - cmp r1, r0 - ble _08108F28 - ldr r3, _08108F24 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08108F30 - .align 2, 0 -_08108EF8: .4byte gBattleMoves -_08108EFC: .4byte 0x02016800 -_08108F00: .4byte gUnknown_02024DEC -_08108F04: .4byte 0xfffff81c -_08108F08: .4byte gUnknown_02024C68 -_08108F0C: .4byte gCritMultiplier -_08108F10: .4byte gUnknown_02024BE6 -_08108F14: .4byte gUnknown_02024C07 -_08108F18: .4byte gUnknown_02024C08 -_08108F1C: .4byte gUnknown_02024BEC -_08108F20: .4byte gBattleMons -_08108F24: .4byte gUnknown_02039238 -_08108F28: - ldr r1, _08108F38 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08108F30: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08108F38: .4byte gUnknown_02039238 - thumb_func_end dp15_determine_move_damage_jump_if_not_fatal - - thumb_func_start tai40_unk -tai40_unk: @ 8108F3C - push {r4-r7,lr} - ldr r1, _08108F58 - ldr r0, [r1] - adds r6, r0, 0x2 - ldrb r0, [r0, 0x1] - adds r4, r1, 0 - cmp r0, 0x1 - beq _08108F64 - cmp r0, 0x1 - bgt _08108F5C - cmp r0, 0 - beq _08108FA8 - b _08109008 - .align 2, 0 -_08108F58: .4byte gUnknown_02039238 -_08108F5C: - cmp r0, 0x2 - beq _08108FA8 - cmp r0, 0x3 - bne _08109008 -_08108F64: - movs r3, 0 - ldr r2, _08108FA0 - ldr r5, _08108FA4 - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r2, 0xC - adds r0, r2 - ldrh r0, [r0] - ldrh r1, [r6] - cmp r0, r1 - beq _08108F9A - adds r7, r5, 0 - movs r6, 0x58 - adds r5, r2, 0 - adds r2, r1, 0 -_08108F84: - adds r3, 0x1 - cmp r3, 0x3 - bgt _08108F9A - lsls r1, r3, 1 - ldrb r0, [r7] - muls r0, r6 - adds r1, r0 - adds r1, r5 - ldrh r0, [r1] - cmp r0, r2 - bne _08108F84 -_08108F9A: - cmp r3, 0x4 - beq _08108FDE - b _08108FF0 - .align 2, 0 -_08108FA0: .4byte gBattleMons -_08108FA4: .4byte gUnknown_02024C07 -_08108FA8: - movs r3, 0 - ldr r5, _08108FE8 - ldr r1, _08108FEC - ldrb r0, [r1] - lsrs r0, 1 - lsls r0, 4 - adds r0, r5 - ldrh r0, [r0] - ldrh r2, [r6] - cmp r0, r2 - beq _08108FDA - adds r6, r5, 0 - adds r5, r1, 0 -_08108FC2: - adds r3, 0x1 - cmp r3, 0x7 - bgt _08108FDA - lsls r0, r3, 1 - ldrb r1, [r5] - lsrs r1, 1 - lsls r1, 4 - adds r0, r1 - adds r0, r6 - ldrh r0, [r0] - cmp r0, r2 - bne _08108FC2 -_08108FDA: - cmp r3, 0x8 - bne _08108FF0 -_08108FDE: - ldr r0, [r4] - adds r0, 0x8 - str r0, [r4] - b _08109008 - .align 2, 0 -_08108FE8: .4byte 0x02016a00 -_08108FEC: .4byte gUnknown_02024C08 -_08108FF0: - ldr r2, [r4] - ldrb r1, [r2, 0x4] - ldrb r0, [r2, 0x5] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] -_08109008: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end tai40_unk - - thumb_func_start sub_8109010 -sub_8109010: @ 8109010 - push {r4-r7,lr} - ldr r1, _0810902C - ldr r0, [r1] - adds r6, r0, 0x2 - ldrb r0, [r0, 0x1] - adds r4, r1, 0 - cmp r0, 0x1 - beq _08109038 - cmp r0, 0x1 - bgt _08109030 - cmp r0, 0 - beq _0810907C - b _081090DC - .align 2, 0 -_0810902C: .4byte gUnknown_02039238 -_08109030: - cmp r0, 0x2 - beq _0810907C - cmp r0, 0x3 - bne _081090DC -_08109038: - movs r3, 0 - ldr r2, _08109074 - ldr r5, _08109078 - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r2, 0xC - adds r0, r2 - ldrh r0, [r0] - ldrh r1, [r6] - cmp r0, r1 - beq _0810906E - adds r7, r5, 0 - movs r6, 0x58 - adds r5, r2, 0 - adds r2, r1, 0 -_08109058: - adds r3, 0x1 - cmp r3, 0x3 - bgt _0810906E - lsls r1, r3, 1 - ldrb r0, [r7] - muls r0, r6 - adds r1, r0 - adds r1, r5 - ldrh r0, [r1] - cmp r0, r2 - bne _08109058 -_0810906E: - cmp r3, 0x4 - bne _081090B2 - b _081090C4 - .align 2, 0 -_08109074: .4byte gBattleMons -_08109078: .4byte gUnknown_02024C07 -_0810907C: - movs r3, 0 - ldr r5, _081090BC - ldr r1, _081090C0 - ldrb r0, [r1] - lsrs r0, 1 - lsls r0, 4 - adds r0, r5 - ldrh r0, [r0] - ldrh r2, [r6] - cmp r0, r2 - beq _081090AE - adds r6, r5, 0 - adds r5, r1, 0 -_08109096: - adds r3, 0x1 - cmp r3, 0x7 - bgt _081090AE - lsls r0, r3, 1 - ldrb r1, [r5] - lsrs r1, 1 - lsls r1, 4 - adds r0, r1 - adds r0, r6 - ldrh r0, [r0] - cmp r0, r2 - bne _08109096 -_081090AE: - cmp r3, 0x8 - beq _081090C4 -_081090B2: - ldr r0, [r4] - adds r0, 0x8 - str r0, [r4] - b _081090DC - .align 2, 0 -_081090BC: .4byte 0x02016a00 -_081090C0: .4byte gUnknown_02024C08 -_081090C4: - ldr r2, [r4] - ldrb r1, [r2, 0x4] - ldrb r0, [r2, 0x5] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] -_081090DC: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8109010 - - thumb_func_start sub_81090E4 -sub_81090E4: @ 81090E4 - push {r4-r7,lr} - ldr r1, _081090FC - ldr r0, [r1] - ldrb r0, [r0, 0x1] - adds r4, r1, 0 - cmp r0, 0x1 - beq _08109108 - cmp r0, 0x1 - bgt _08109100 - cmp r0, 0 - beq _0810915C - b _081091B8 - .align 2, 0 -_081090FC: .4byte gUnknown_02039238 -_08109100: - cmp r0, 0x2 - beq _0810915C - cmp r0, 0x3 - bne _081091B8 -_08109108: - movs r3, 0 - ldr r1, _0810914C - ldr r0, _08109150 - ldrb r2, [r0] - ldr r6, _08109154 - movs r0, 0x58 - muls r0, r2 - adds r1, 0xC - adds r2, r0, r1 - ldr r5, _08109158 -_0810911C: - ldrh r0, [r2] - cmp r0, 0 - beq _08109136 - adds r1, r0, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldr r1, [r5] - ldrb r0, [r0] - ldrb r1, [r1, 0x2] - cmp r0, r1 - beq _0810913E -_08109136: - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x3 - ble _0810911C -_0810913E: - cmp r3, 0x4 - bne _081091A0 - ldr r0, [r4] - adds r0, 0x7 - str r0, [r4] - b _081091B8 - .align 2, 0 -_0810914C: .4byte gBattleMons -_08109150: .4byte gUnknown_02024C07 -_08109154: .4byte gBattleMoves -_08109158: .4byte gUnknown_02039238 -_0810915C: - movs r3, 0 - ldr r1, _081091C0 - ldr r0, _081091C4 - ldrb r2, [r0] - ldr r7, _081091C8 - ldr r6, _081091CC - ldr r5, _081091D0 - movs r0, 0x58 - muls r0, r2 - adds r1, 0xC - adds r2, r0, r1 -_08109172: - lsls r1, r3, 1 - ldrh r0, [r2] - cmp r0, 0 - beq _08109198 - ldrb r0, [r5] - lsrs r0, 1 - lsls r0, 4 - adds r0, r1, r0 - adds r0, r6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, [r4] - ldrb r0, [r0] - ldrb r1, [r1, 0x2] - cmp r0, r1 - beq _081091A0 -_08109198: - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x7 - ble _08109172 -_081091A0: - ldr r2, [r4] - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] -_081091B8: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081091C0: .4byte gBattleMons -_081091C4: .4byte gUnknown_02024C07 -_081091C8: .4byte gBattleMoves -_081091CC: .4byte 0x02016a00 -_081091D0: .4byte gUnknown_02024C08 - thumb_func_end sub_81090E4 - - thumb_func_start sub_81091D4 -sub_81091D4: @ 81091D4 - push {r4-r6,lr} - ldr r1, _081091EC - ldr r0, [r1] - ldrb r0, [r0, 0x1] - adds r4, r1, 0 - cmp r0, 0x1 - beq _081091F8 - cmp r0, 0x1 - bgt _081091F0 - cmp r0, 0 - beq _0810925C - b _08109294 - .align 2, 0 -_081091EC: .4byte gUnknown_02039238 -_081091F0: - cmp r0, 0x2 - beq _0810925C - cmp r0, 0x3 - bne _08109294 -_081091F8: - movs r3, 0 - ldr r1, _0810924C - ldr r0, _08109250 - ldrb r2, [r0] - ldr r6, _08109254 - movs r0, 0x58 - muls r0, r2 - adds r1, 0xC - adds r2, r0, r1 - ldr r5, _08109258 -_0810920C: - ldrh r0, [r2] - cmp r0, 0 - beq _08109226 - adds r1, r0, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldr r1, [r5] - ldrb r0, [r0] - ldrb r1, [r1, 0x2] - cmp r0, r1 - beq _0810922E -_08109226: - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x3 - ble _0810920C -_0810922E: - cmp r3, 0x4 - bne _0810928E - ldr r2, [r4] - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08109294 - .align 2, 0 -_0810924C: .4byte gBattleMons -_08109250: .4byte gUnknown_02024C07 -_08109254: .4byte gBattleMoves -_08109258: .4byte gUnknown_02039238 -_0810925C: - movs r3, 0 - ldr r1, _0810929C - ldr r0, _081092A0 - ldrb r0, [r0] - lsrs r0, 1 - lsls r0, 4 - adds r2, r0, r1 - ldr r5, _081092A4 -_0810926C: - ldrh r0, [r2] - cmp r0, 0 - beq _08109286 - adds r1, r0, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, [r4] - ldrb r0, [r0] - ldrb r1, [r1, 0x2] - cmp r0, r1 - beq _0810928E -_08109286: - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x7 - ble _0810926C -_0810928E: - ldr r0, [r4] - adds r0, 0x7 - str r0, [r4] -_08109294: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810929C: .4byte 0x02016a00 -_081092A0: .4byte gUnknown_02024C08 -_081092A4: .4byte gBattleMoves - thumb_func_end sub_81091D4 - - thumb_func_start tai43_unk -tai43_unk: @ 81092A8 - push {r4,r5,lr} - ldr r0, _081092BC - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r5, r0, 0 - cmp r1, 0x1 - bne _081092C4 - ldr r0, _081092C0 - b _081092C6 - .align 2, 0 -_081092BC: .4byte gUnknown_02039238 -_081092C0: .4byte gUnknown_02024C07 -_081092C4: - ldr r0, _081092E4 -_081092C6: - ldrb r3, [r0] - adds r4, r5, 0 - ldr r2, [r4] - ldrb r0, [r2, 0x2] - cmp r0, 0 - bne _081092EC - ldr r0, _081092E8 - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x4] - cmp r0, 0 - beq _081092F0 - b _08109306 - .align 2, 0 -_081092E4: .4byte gUnknown_02024C08 -_081092E8: .4byte gUnknown_02024CA8 -_081092EC: - cmp r0, 0x1 - beq _081092F6 -_081092F0: - adds r0, r2, 0x7 - str r0, [r4] - b _08109328 -_081092F6: - ldr r0, _08109320 - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x6] - cmp r0, 0 - beq _08109324 -_08109306: - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08109328 - .align 2, 0 -_08109320: .4byte gUnknown_02024CA8 -_08109324: - adds r0, r2, 0x7 - str r0, [r5] -_08109328: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end tai43_unk - - thumb_func_start sub_8109330 -sub_8109330: @ 8109330 - push {r4,lr} - ldr r4, _08109344 - ldr r3, [r4] - ldrb r0, [r3, 0x1] - cmp r0, 0 - beq _08109348 - cmp r0, 0x1 - beq _08109370 - b _081093AC - .align 2, 0 -_08109344: .4byte gUnknown_02039238 -_08109348: - ldr r2, _08109364 - ldr r0, _08109368 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _0810936C - ldrh r0, [r0, 0x4] - ldrh r1, [r1, 0x2] - cmp r0, r1 - beq _08109388 - b _081093AC - .align 2, 0 -_08109364: .4byte gUnknown_02024CA8 -_08109368: .4byte gUnknown_02024A60 -_0810936C: .4byte 0x02016800 -_08109370: - ldr r2, _081093A0 - ldr r0, _081093A4 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _081093A8 - ldrh r0, [r0, 0x6] - ldrh r1, [r1, 0x2] - cmp r0, r1 - bne _081093AC -_08109388: - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _081093B0 - .align 2, 0 -_081093A0: .4byte gUnknown_02024CA8 -_081093A4: .4byte gUnknown_02024A60 -_081093A8: .4byte 0x02016800 -_081093AC: - adds r0, r3, 0x6 - str r0, [r4] -_081093B0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8109330 - - thumb_func_start sub_81093B8 -sub_81093B8: @ 81093B8 - ldr r2, _081093C4 - ldrb r1, [r2, 0x10] - movs r0, 0xB - orrs r0, r1 - strb r0, [r2, 0x10] - bx lr - .align 2, 0 -_081093C4: .4byte 0x02016800 - thumb_func_end sub_81093B8 - - thumb_func_start sub_81093C8 -sub_81093C8: @ 81093C8 - push {r4,lr} - ldr r0, _0810940C - ldr r1, _08109410 - adds r0, r1 - ldrb r0, [r0] - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r4 - bcs _08109418 - ldr r3, _08109414 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08109420 - .align 2, 0 -_0810940C: .4byte 0x02000000 -_08109410: .4byte 0x00016088 -_08109414: .4byte gUnknown_02039238 -_08109418: - ldr r1, _08109428 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08109420: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109428: .4byte gUnknown_02039238 - thumb_func_end sub_81093C8 - - thumb_func_start sub_810942C -sub_810942C: @ 810942C - ldr r2, _08109438 - ldrb r1, [r2, 0x10] - movs r0, 0xD - orrs r0, r1 - strb r0, [r2, 0x10] - bx lr - .align 2, 0 -_08109438: .4byte 0x02016800 - thumb_func_end sub_810942C - - thumb_func_start dp15_get_held_item_x12__8 -dp15_get_held_item_x12__8: @ 810943C - push {r4,lr} - ldr r0, _0810944C - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - bne _08109454 - ldr r0, _08109450 - b _08109456 - .align 2, 0 -_0810944C: .4byte gUnknown_02039238 -_08109450: .4byte gUnknown_02024C07 -_08109454: - ldr r0, _0810947C -_08109456: - ldrb r4, [r0] - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08109488 - adds r0, r4, 0 - bl battle_get_per_side_status - movs r1, 0x1 - ands r1, r0 - ldr r2, _08109480 - ldr r3, _08109484 - adds r0, r2, r3 - adds r1, r0 - ldrb r0, [r1] - str r0, [r2, 0x8] - b _0810949E - .align 2, 0 -_0810947C: .4byte gUnknown_02024C08 -_08109480: .4byte 0x02016800 -_08109484: .4byte 0x00000222 -_08109488: - ldr r1, _081094AC - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - ldrh r0, [r0, 0x2E] - bl itemid_get_x12 - ldr r1, _081094B0 - lsls r0, 24 - lsrs r0, 24 - str r0, [r1, 0x8] -_0810949E: - ldr r1, _081094B4 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081094AC: .4byte gBattleMons -_081094B0: .4byte 0x02016800 -_081094B4: .4byte gUnknown_02039238 - thumb_func_end dp15_get_held_item_x12__8 - - thumb_func_start tai49_unk -tai49_unk: @ 81094B8 - push {lr} - ldr r0, _081094C8 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - bne _081094D0 - ldr r0, _081094CC - b _081094D2 - .align 2, 0 -_081094C8: .4byte gUnknown_02039238 -_081094CC: .4byte gUnknown_02024C07 -_081094D0: - ldr r0, _081094FC -_081094D2: - ldrb r1, [r0] - ldr r2, _08109500 - movs r0, 0x58 - muls r1, r0 - adds r0, r1, r2 - ldrh r0, [r0] - adds r2, 0x48 - adds r1, r2 - ldr r1, [r1] - bl GetGenderFromSpeciesAndPersonality - ldr r1, _08109504 - lsls r0, 24 - lsrs r0, 24 - str r0, [r1, 0x8] - ldr r1, _08109508 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081094FC: .4byte gUnknown_02024C08 -_08109500: .4byte gBattleMons -_08109504: .4byte 0x02016800 -_08109508: .4byte gUnknown_02039238 - thumb_func_end tai49_unk - - thumb_func_start sub_810950C -sub_810950C: @ 810950C - push {r4,lr} - ldr r0, _08109520 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0x1 - bne _08109528 - ldr r0, _08109524 - b _0810952A - .align 2, 0 -_08109520: .4byte gUnknown_02039238 -_08109524: .4byte gUnknown_02024C07 -_08109528: - ldr r0, _08109548 -_0810952A: - ldrb r3, [r0] - ldr r2, _0810954C - ldr r1, _08109550 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x16] - str r0, [r2, 0x8] - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109548: .4byte gUnknown_02024C08 -_0810954C: .4byte 0x02016800 -_08109550: .4byte gUnknown_02024CA8 - thumb_func_end sub_810950C - - thumb_func_start sub_8109554 -sub_8109554: @ 8109554 - push {r4,lr} - ldr r0, _08109568 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0x1 - bne _08109570 - ldr r0, _0810956C - b _08109572 - .align 2, 0 -_08109568: .4byte gUnknown_02039238 -_0810956C: .4byte gUnknown_02024C07 -_08109570: - ldr r0, _08109590 -_08109572: - ldrb r3, [r0] - ldr r2, _08109594 - ldr r1, _08109598 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x9] - str r0, [r2, 0x8] - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109590: .4byte gUnknown_02024C08 -_08109594: .4byte 0x02016800 -_08109598: .4byte gUnknown_02024CA8 - thumb_func_end sub_8109554 - - thumb_func_start sub_810959C -sub_810959C: @ 810959C - ldr r2, _081095B4 - ldr r0, _081095B8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - str r0, [r2, 0x8] - ldr r1, _081095BC - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_081095B4: .4byte 0x02016800 -_081095B8: .4byte gUnknown_020239F8 -_081095BC: .4byte gUnknown_02039238 - thumb_func_end sub_810959C - - thumb_func_start sub_81095C0 -sub_81095C0: @ 81095C0 - push {lr} - ldr r0, _081095D4 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r2, r0, 0 - cmp r1, 0x1 - bne _081095DC - ldr r0, _081095D8 - b _081095DE - .align 2, 0 -_081095D4: .4byte gUnknown_02039238 -_081095D8: .4byte gUnknown_02024C07 -_081095DC: - ldr r0, _081095F8 -_081095DE: - ldrb r0, [r0] - ldr r1, _081095FC - lsls r0, 1 - adds r0, r1 - ldr r3, _08109600 - adds r0, r3 - ldrb r0, [r0] - str r0, [r1, 0x8] - ldr r0, [r2] - adds r0, 0x2 - str r0, [r2] - pop {r0} - bx r0 - .align 2, 0 -_081095F8: .4byte gUnknown_02024C08 -_081095FC: .4byte 0x02016800 -_08109600: .4byte 0xfffff8cc - thumb_func_end sub_81095C0 - - thumb_func_start sub_8109604 -sub_8109604: @ 8109604 - ldr r3, _08109620 - ldr r2, _08109624 - ldr r1, [r3, 0x8] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - str r0, [r3, 0x8] - ldr r1, _08109628 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08109620: .4byte 0x02016800 -_08109624: .4byte gBattleMoves -_08109628: .4byte gUnknown_02039238 - thumb_func_end sub_8109604 - - thumb_func_start sub_810962C -sub_810962C: @ 810962C - ldr r3, _08109648 - ldr r2, _0810964C - ldr r1, [r3, 0x8] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - str r0, [r3, 0x8] - ldr r1, _08109650 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08109648: .4byte 0x02016800 -_0810964C: .4byte gBattleMoves -_08109650: .4byte gUnknown_02039238 - thumb_func_end sub_810962C - - thumb_func_start sub_8109654 -sub_8109654: @ 8109654 - ldr r3, _08109670 - ldr r2, _08109674 - ldr r1, [r3, 0x8] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - str r0, [r3, 0x8] - ldr r1, _08109678 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08109670: .4byte 0x02016800 -_08109674: .4byte gBattleMoves -_08109678: .4byte gUnknown_02039238 - thumb_func_end sub_8109654 - - thumb_func_start sub_810967C -sub_810967C: @ 810967C - push {r4,lr} - ldr r0, _08109690 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0x1 - bne _08109698 - ldr r0, _08109694 - b _0810969A - .align 2, 0 -_08109690: .4byte gUnknown_02039238 -_08109694: .4byte gUnknown_02024C07 -_08109698: - ldr r0, _081096B8 -_0810969A: - ldrb r3, [r0] - ldr r2, _081096BC - ldr r1, _081096C0 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x8] - str r0, [r2, 0x8] - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081096B8: .4byte gUnknown_02024C08 -_081096BC: .4byte 0x02016800 -_081096C0: .4byte gUnknown_02024CA8 - thumb_func_end sub_810967C - - thumb_func_start nullsub_27 -nullsub_27: @ 81096C4 - bx lr - thumb_func_end nullsub_27 - - thumb_func_start nullsub_28 -nullsub_28: @ 81096C8 - bx lr - thumb_func_end nullsub_28 - - thumb_func_start nullsub_29 -nullsub_29: @ 81096CC - bx lr - thumb_func_end nullsub_29 - - thumb_func_start nullsub_30 -nullsub_30: @ 81096D0 - bx lr - thumb_func_end nullsub_30 - - thumb_func_start nullsub_31 -nullsub_31: @ 81096D4 - bx lr - thumb_func_end nullsub_31 - - thumb_func_start nullsub_32 -nullsub_32: @ 81096D8 - bx lr - thumb_func_end nullsub_32 - - thumb_func_start sub_81096DC -sub_81096DC: @ 81096DC - push {r4,lr} - ldr r4, _08109708 - ldr r0, [r4] - adds r0, 0x5 - bl sub_81098C4 - ldr r2, [r4] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109708: .4byte gUnknown_02039238 - thumb_func_end sub_81096DC - - thumb_func_start sub_810970C -sub_810970C: @ 810970C - ldr r3, _08109728 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - bx lr - .align 2, 0 -_08109728: .4byte gUnknown_02039238 - thumb_func_end sub_810970C - - thumb_func_start sub_810972C -sub_810972C: @ 810972C - push {lr} - bl sub_8109908 - lsls r0, 24 - cmp r0, 0 - bne _08109742 - ldr r2, _08109748 - ldrb r1, [r2, 0x10] - movs r0, 0x1 - orrs r0, r1 - strb r0, [r2, 0x10] -_08109742: - pop {r0} - bx r0 - .align 2, 0 -_08109748: .4byte 0x02016800 - thumb_func_end sub_810972C - - thumb_func_start dp15_compare_attacker_defender_levels -dp15_compare_attacker_defender_levels: @ 810974C - push {r4,r5,lr} - ldr r5, _08109764 - ldr r4, [r5] - ldrb r0, [r4, 0x1] - cmp r0, 0x1 - beq _081097A0 - cmp r0, 0x1 - bgt _08109768 - cmp r0, 0 - beq _0810976E - b _0810981C - .align 2, 0 -_08109764: .4byte gUnknown_02039238 -_08109768: - cmp r0, 0x2 - beq _081097D0 - b _0810981C -_0810976E: - ldr r3, _08109794 - ldr r0, _08109798 - ldrb r0, [r0] - movs r2, 0x58 - adds r1, r0, 0 - muls r1, r2 - adds r1, r3 - adds r1, 0x2A - ldr r0, _0810979C - ldrb r0, [r0] - muls r0, r2 - adds r0, r3 - adds r0, 0x2A - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bhi _081097F2 - b _08109818 - .align 2, 0 -_08109794: .4byte gBattleMons -_08109798: .4byte gUnknown_02024C07 -_0810979C: .4byte gUnknown_02024C08 -_081097A0: - ldr r3, _081097C4 - ldr r0, _081097C8 - ldrb r0, [r0] - movs r2, 0x58 - adds r1, r0, 0 - muls r1, r2 - adds r1, r3 - adds r1, 0x2A - ldr r0, _081097CC - ldrb r0, [r0] - muls r0, r2 - adds r0, r3 - adds r0, 0x2A - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bcc _081097F2 - b _08109818 - .align 2, 0 -_081097C4: .4byte gBattleMons -_081097C8: .4byte gUnknown_02024C07 -_081097CC: .4byte gUnknown_02024C08 -_081097D0: - ldr r3, _0810980C - ldr r0, _08109810 - ldrb r0, [r0] - movs r2, 0x58 - adds r1, r0, 0 - muls r1, r2 - adds r1, r3 - adds r1, 0x2A - ldr r0, _08109814 - ldrb r0, [r0] - muls r0, r2 - adds r0, r3 - adds r0, 0x2A - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bne _08109818 -_081097F2: - ldrb r1, [r4, 0x2] - ldrb r0, [r4, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r4, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r4, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r5] - b _0810981C - .align 2, 0 -_0810980C: .4byte gBattleMons -_08109810: .4byte gUnknown_02024C07 -_08109814: .4byte gUnknown_02024C08 -_08109818: - adds r0, r4, 0x6 - str r0, [r5] -_0810981C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end dp15_compare_attacker_defender_levels - - thumb_func_start sub_8109824 -sub_8109824: @ 8109824 - push {lr} - ldr r2, _08109858 - ldr r0, _0810985C - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x13] - lsls r0, 28 - cmp r0, 0 - beq _08109864 - ldr r3, _08109860 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0810986C - .align 2, 0 -_08109858: .4byte gUnknown_02024CA8 -_0810985C: .4byte gUnknown_02024C08 -_08109860: .4byte gUnknown_02039238 -_08109864: - ldr r1, _08109870 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0810986C: - pop {r0} - bx r0 - .align 2, 0 -_08109870: .4byte gUnknown_02039238 - thumb_func_end sub_8109824 - - thumb_func_start sub_8109874 -sub_8109874: @ 8109874 - push {lr} - ldr r2, _081098A8 - ldr r0, _081098AC - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x13] - lsls r0, 28 - cmp r0, 0 - bne _081098B4 - ldr r3, _081098B0 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081098BC - .align 2, 0 -_081098A8: .4byte gUnknown_02024CA8 -_081098AC: .4byte gUnknown_02024C08 -_081098B0: .4byte gUnknown_02039238 -_081098B4: - ldr r1, _081098C0 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_081098BC: - pop {r0} - bx r0 - .align 2, 0 -_081098C0: .4byte gUnknown_02039238 - thumb_func_end sub_8109874 - - thumb_func_start sub_81098C4 -sub_81098C4: @ 81098C4 - push {r4,lr} - ldr r4, _081098E0 - adds r3, r4, 0 - adds r3, 0x20 - ldrb r1, [r3] - adds r2, r1, 0x1 - strb r2, [r3] - lsls r1, 24 - lsrs r1, 22 - adds r1, r4 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081098E0: .4byte 0x02016c00 - thumb_func_end sub_81098C4 - - thumb_func_start unref_sub_81098E4 -unref_sub_81098E4: @ 81098E4 - ldr r3, _08109900 - adds r2, r3, 0 - adds r2, 0x20 - ldrb r0, [r2] - adds r1, r0, 0x1 - strb r1, [r2] - lsls r0, 24 - lsrs r0, 22 - adds r0, r3 - ldr r1, _08109904 - ldr r1, [r1] - str r1, [r0] - bx lr - .align 2, 0 -_08109900: .4byte 0x02016c00 -_08109904: .4byte gUnknown_02039238 - thumb_func_end unref_sub_81098E4 - - thumb_func_start sub_8109908 -sub_8109908: @ 8109908 - push {lr} - ldr r3, _0810991C - adds r2, r3, 0 - adds r2, 0x20 - ldrb r0, [r2] - cmp r0, 0 - bne _08109920 - movs r0, 0 - b _08109932 - .align 2, 0 -_0810991C: .4byte 0x02016c00 -_08109920: - subs r0, 0x1 - strb r0, [r2] - ldr r1, _08109938 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - str r0, [r1] - movs r0, 0x1 -_08109932: - pop {r1} - bx r1 - .align 2, 0 -_08109938: .4byte gUnknown_02039238 - thumb_func_end sub_8109908 - - thumb_func_start sub_810993C -sub_810993C: @ 810993C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - ldr r0, _081099C8 - mov r9, r0 - movs r2, 0 -_0810994E: - adds r1, r2, 0x1 - lsls r0, r1, 24 - lsrs r5, r0, 24 - str r1, [sp, 0xC] - cmp r5, 0x3 - bhi _081099AC - movs r1, 0x1 - add r1, r9 - mov r8, r1 - adds r6, r1, r2 - movs r0, 0xB - mov r10, r0 - mov r0, r10 - muls r0, r2 - adds r0, 0x5 - mov r1, r9 - adds r7, r1, r0 -_08109970: - ldrb r0, [r6] - cmp r0, 0 - bne _081099A2 - adds r2, r0, 0 - mov r0, r8 - adds r1, r0, r5 - ldrb r0, [r1] - strb r0, [r6] - strb r2, [r1] - mov r0, sp - adds r1, r7, 0 - bl StringCopy - mov r4, r10 - muls r4, r5 - adds r4, 0x5 - add r4, r9 - adds r0, r7, 0 - adds r1, r4, 0 - bl StringCopy - adds r0, r4, 0 - mov r1, sp - bl StringCopy -_081099A2: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _08109970 -_081099AC: - ldr r1, [sp, 0xC] - lsls r0, r1, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _0810994E - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081099C8: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_810993C - - thumb_func_start sub_81099CC -sub_81099CC: @ 81099CC - push {r4-r6,lr} - ldr r5, _08109A14 - movs r1, 0 - movs r0, 0x2 - strb r0, [r5] - adds r0, r5, 0 - adds r0, 0x31 - strb r1, [r0] - movs r4, 0 - ldr r6, _08109A18 -_081099E0: - movs r0, 0xB - muls r0, r4 - adds r0, 0x5 - adds r0, r5, r0 - lsls r1, r4, 2 - adds r1, r6 - ldr r1, [r1] - bl StringCopy - adds r1, r5, 0x1 - adds r1, r4 - ldr r0, _08109A1C - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081099E0 - bl sub_810993C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08109A14: .4byte gSaveBlock1 + 0x2D94 -_08109A18: .4byte gUnknown_083F62D8 -_08109A1C: .4byte gTraderDecorations - thumb_func_end sub_81099CC - - thumb_func_start sub_8109A20 -sub_8109A20: @ 8109A20 - ldr r0, _08109A2C - adds r0, 0x31 - movs r1, 0 - strb r1, [r0] - bx lr - .align 2, 0 -_08109A2C: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_8109A20 - - thumb_func_start sub_8109A30 -sub_8109A30: @ 8109A30 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08109A44 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_08109A44: .4byte 0x00004020 - thumb_func_end sub_8109A30 - - thumb_func_start sub_8109A48 -sub_8109A48: @ 8109A48 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r6, 0x1 - movs r5, 0 - ldr r0, _08109AB8 - movs r4, 0 - adds r7, r0, 0x1 - adds r1, r7, 0 -_08109A64: - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _08109A72 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_08109A72: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08109A64 - lsls r3, r6, 25 - movs r0, 0x80 - lsls r0, 18 - adds r3, r0 - lsrs r3, 24 - movs r0, 0 - movs r1, 0x1 - movs r2, 0xC - bl MenuDrawTextWindow - movs r4, 0 - mov r1, r9 - lsls r1, 2 - mov r8, r1 -_08109A98: - adds r1, r7, r4 - ldrb r0, [r1] - cmp r0, 0 - beq _08109ADE - cmp r0, 0x78 - bls _08109AC0 - lsls r2, r5, 25 - movs r0, 0x80 - lsls r0, 18 - adds r2, r0 - lsrs r2, 24 - ldr r0, _08109ABC - movs r1, 0x1 - bl MenuPrint - b _08109AD8 - .align 2, 0 -_08109AB8: .4byte gSaveBlock1 + 0x2D94 -_08109ABC: .4byte gOtherText_FiveQuestionsAndSlash -_08109AC0: - ldrb r0, [r1] - lsls r0, 5 - ldr r1, _08109B28 - adds r0, r1 - lsls r2, r5, 25 - movs r1, 0x80 - lsls r1, 18 - adds r2, r1 - lsrs r2, 24 - movs r1, 0x1 - bl MenuPrint -_08109AD8: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_08109ADE: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08109A98 - ldr r0, _08109B2C - lsls r2, r5, 25 - movs r1, 0x80 - lsls r1, 18 - adds r2, r1 - lsrs r2, 24 - movs r1, 0x1 - bl MenuPrint - movs r0, 0 - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x2 - adds r3, r6, 0 - bl InitMenu - ldr r1, _08109B30 - mov r0, r8 - add r0, r9 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0xA] - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08109B28: .4byte gDecorations + 0x1 -_08109B2C: .4byte gOtherText_CancelNoTerminator -_08109B30: .4byte gTasks - thumb_func_end sub_8109A48 - - thumb_func_start sub_8109B34 -sub_8109B34: @ 8109B34 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x78 - bls _08109B54 - ldr r1, _08109B4C - ldr r2, _08109B50 - adds r0, r2, 0 - strh r0, [r1] - b _08109B58 - .align 2, 0 -_08109B4C: .4byte gUnknown_0202E8CC -_08109B50: .4byte 0x0000ffff -_08109B54: - ldr r0, _08109B78 - strh r1, [r0] -_08109B58: - bl sub_8072DEC - movs r0, 0 - movs r1, 0x1 - movs r2, 0xC - movs r3, 0xC - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109B78: .4byte gUnknown_0202E8CC - thumb_func_end sub_8109B34 - - thumb_func_start sub_8109B7C -sub_8109B7C: @ 8109B7C - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r6, _08109BA4 - ldr r0, _08109BA8 - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08109BAC - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _08109C3E - .align 2, 0 -_08109BA4: .4byte gSaveBlock1 + 0x2D94 -_08109BA8: .4byte gMain -_08109BAC: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08109BC2 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _08109C3E -_08109BC2: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08109C28 - movs r0, 0x5 - bl PlaySE - ldr r5, _08109BFC - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - ldr r1, _08109C00 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0xA - ldrsh r0, [r0, r1] - ldrh r2, [r5] - cmp r0, r2 - bne _08109C04 - adds r0, r4, 0 - movs r1, 0 - bl sub_8109B34 - b _08109C3E - .align 2, 0 -_08109BFC: .4byte gUnknown_0202E8CE -_08109C00: .4byte gTasks -_08109C04: - ldr r0, _08109C24 - movs r1, 0xB - muls r1, r2 - adds r1, 0x5 - adds r1, r6 - bl StringCopy - adds r0, r6, 0x1 - ldrh r5, [r5] - adds r0, r5 - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_8109B34 - b _08109C3E - .align 2, 0 -_08109C24: .4byte gStringVar1 -_08109C28: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08109C3E - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - movs r1, 0 - bl sub_8109B34 -_08109C3E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8109B7C - - thumb_func_start sub_8109C44 -sub_8109C44: @ 8109C44 - ldr r0, _08109C50 - ldr r1, _08109C54 - adds r0, 0x31 - ldrb r0, [r0] - strh r0, [r1] - bx lr - .align 2, 0 -_08109C50: .4byte gSaveBlock1 + 0x2D94 -_08109C54: .4byte gScriptResult - thumb_func_end sub_8109C44 - - thumb_func_start sub_8109C58 -sub_8109C58: @ 8109C58 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _08109C70 -_08109C5E: - adds r0, r4, 0 - bl sub_8134194 - lsls r0, 24 - cmp r0, 0 - beq _08109C74 - movs r0, 0 - strh r0, [r5] - b _08109C84 - .align 2, 0 -_08109C70: .4byte gScriptResult -_08109C74: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _08109C5E - ldr r1, _08109C8C - movs r0, 0x1 - strh r0, [r1] -_08109C84: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08109C8C: .4byte gScriptResult - thumb_func_end sub_8109C58 - - thumb_func_start sub_8109C90 -sub_8109C90: @ 8109C90 - push {r4-r6,lr} - ldr r6, _08109CDC - movs r0, 0 - strh r0, [r6] - ldr r4, _08109CE0 - ldr r5, _08109CE4 - ldrh r0, [r5] - lsls r0, 5 - adds r2, r0, r4 - ldr r0, _08109CE8 - ldrh r0, [r0] - lsls r0, 5 - adds r0, r4 - ldrb r1, [r2, 0x13] - ldrb r0, [r0, 0x13] - cmp r1, r0 - beq _08109CD6 - adds r0, r1, 0 - bl sub_8133F9C - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _08109CD6 - ldr r0, _08109CEC - ldrh r1, [r5] - lsls r1, 5 - adds r1, r4 - ldrb r1, [r1, 0x13] - bl sub_80FE7D4 - movs r0, 0x1 - strh r0, [r6] -_08109CD6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08109CDC: .4byte gScriptResult -_08109CE0: .4byte gDecorations -_08109CE4: .4byte gUnknown_0202E8CC -_08109CE8: .4byte gUnknown_0202E8D0 -_08109CEC: .4byte gStringVar2 - thumb_func_end sub_8109C90 - - thumb_func_start sub_8109CF0 -sub_8109CF0: @ 8109CF0 - push {lr} - ldr r0, _08109D00 - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08109D00: .4byte sub_80FE7A8 - thumb_func_end sub_8109CF0 - - thumb_func_start sub_8109D04 -sub_8109D04: @ 8109D04 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r0, _08109D6C - movs r1, 0x8 - bl sub_80F9520 - bl BuyMenuFreeMemory - bl sub_80FEFA4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08109D8C - ldr r5, _08109D70 - ldr r0, _08109D74 - ldrb r1, [r0] - ldr r0, _08109D78 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r5] - ldr r0, _08109D7C - ldr r1, _08109D80 - ldrh r1, [r1] - lsls r1, 5 - ldr r4, _08109D84 - adds r1, r4 - bl StringCopy - ldr r0, _08109D88 - ldrh r1, [r5] - lsls r1, 5 - adds r1, r4 - bl StringCopy - b _08109D94 - .align 2, 0 -_08109D6C: .4byte gUnknown_020388F7 -_08109D70: .4byte gUnknown_0202E8D0 -_08109D74: .4byte gUnknown_020388F5 -_08109D78: .4byte gUnknown_020388D0 -_08109D7C: .4byte gStringVar3 -_08109D80: .4byte gUnknown_0202E8CC -_08109D84: .4byte gDecorations + 0x1 -_08109D88: .4byte gStringVar2 -_08109D8C: - ldr r1, _08109DA4 - ldr r2, _08109DA8 - adds r0, r2, 0 - strh r0, [r1] -_08109D94: - adds r0, r6, 0 - bl DestroyTask - bl EnableBothScriptContexts - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08109DA4: .4byte gUnknown_0202E8D0 -_08109DA8: .4byte 0x0000ffff - thumb_func_end sub_8109D04 - - thumb_func_start sub_8109DAC -sub_8109DAC: @ 8109DAC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _08109DDC - movs r0, 0 - strh r0, [r1] - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109DDC: .4byte gUnknown_0202E8D0 - thumb_func_end sub_8109DAC - - thumb_func_start sub_8109DE0 -sub_8109DE0: @ 8109DE0 - push {r4-r6,lr} - ldr r4, _08109E20 - ldr r6, _08109E24 - ldrb r0, [r6] - bl sub_81340A8 - ldr r0, _08109E28 - ldrb r0, [r0] - bl IsThereStorageSpaceForDecoration - ldr r5, _08109E2C - ldrh r1, [r5] - movs r0, 0xB - muls r0, r1 - adds r0, 0x5 - adds r0, r4 - ldr r1, _08109E30 - bl StringCopy - adds r0, r4, 0x1 - ldrh r5, [r5] - adds r0, r5 - ldrh r1, [r6] - strb r1, [r0] - bl sub_810993C - adds r4, 0x31 - movs r0, 0x1 - strb r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08109E20: .4byte gSaveBlock1 + 0x2D94 -_08109E24: .4byte gUnknown_0202E8D0 -_08109E28: .4byte gUnknown_0202E8CC -_08109E2C: .4byte gUnknown_0202E8CE -_08109E30: .4byte gSaveBlock2 - thumb_func_end sub_8109DE0 - - thumb_func_start sub_8109E34 -sub_8109E34: @ 8109E34 - push {lr} - ldr r0, _08109E4C - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl sub_8109A48 - pop {r0} - bx r0 - .align 2, 0 -_08109E4C: .4byte sub_8109B7C - thumb_func_end sub_8109E34 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_80B5054.s b/asm/rom_80B5054.s new file mode 100644 index 000000000..7d7033b98 --- /dev/null +++ b/asm/rom_80B5054.s @@ -0,0 +1,175695 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_80B5054 +sub_80B5054: @ 80B5054 + push {r4-r7,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r4, r2, 24 + lsls r3, 24 + lsrs r5, r3, 24 + ldr r0, _080B5098 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080B50A4 + ldr r1, _080B509C + movs r0, 0xFF + strh r0, [r1] + ldr r1, _080B50A0 + lsls r0, r4, 3 + adds r0, r1 + ldrb r2, [r0, 0x4] + ldr r3, [r0] + str r5, [sp] + movs r0, 0 + str r0, [sp, 0x4] + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_80B5138 + movs r0, 0x1 + b _080B50A6 + .align 2, 0 +_080B5098: .4byte sub_80B52B4 +_080B509C: .4byte gScriptResult +_080B50A0: .4byte gMultichoiceLists +_080B50A4: + movs r0, 0 +_080B50A6: + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80B5054 + + thumb_func_start sub_80B50B0 +sub_80B50B0: @ 80B50B0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + ldr r4, [sp, 0x20] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r5, r2, 24 + lsls r3, 24 + lsrs r6, r3, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080B5100 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080B510C + ldr r1, _080B5104 + movs r0, 0xFF + strh r0, [r1] + ldr r1, _080B5108 + lsls r0, r5, 3 + adds r0, r1 + ldrb r2, [r0, 0x4] + ldr r3, [r0] + str r6, [sp] + str r4, [sp, 0x4] + mov r0, r8 + adds r1, r7, 0 + bl sub_80B5138 + movs r0, 0x1 + b _080B510E + .align 2, 0 +_080B5100: .4byte sub_80B52B4 +_080B5104: .4byte gScriptResult +_080B5108: .4byte gMultichoiceLists +_080B510C: + movs r0, 0 +_080B510E: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80B50B0 + + thumb_func_start GetStringWidthInTilesForScriptMenu +GetStringWidthInTilesForScriptMenu: @ 80B511C + push {lr} + adds r1, r0, 0 + ldr r0, _080B5134 + bl GetStringWidthGivenWindowConfig + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0x7 + lsrs r0, r1, 3 + pop {r1} + bx r1 + .align 2, 0 +_080B5134: .4byte gWindowConfig_81E6CE4 + thumb_func_end GetStringWidthInTilesForScriptMenu + + thumb_func_start sub_80B5138 +sub_80B5138: @ 80B5138 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + mov r10, r3 + ldr r3, [sp, 0x34] + ldr r4, [sp, 0x38] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x8] + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0xC] + lsls r4, 24 + lsrs r4, 24 + str r4, [sp, 0x10] + mov r1, r10 + ldr r0, [r1] + bl GetStringWidthInTilesForScriptMenu + lsls r0, 16 + lsrs r5, r0, 16 + movs r4, 0x1 + cmp r4, r8 + bcs _080B5198 +_080B517A: + lsls r0, r4, 3 + add r0, r10 + ldr r0, [r0] + bl GetStringWidthInTilesForScriptMenu + lsls r0, 16 + lsrs r0, 16 + cmp r5, r0 + bcs _080B518E + adds r5, r0, 0 +_080B518E: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r8 + bcc _080B517A +_080B5198: + lsls r0, r5, 24 + lsrs r7, r0, 24 + mov r1, r9 + adds r0, r7, r1 + adds r0, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x1D + bls _080B51B8 + mov r0, r9 + adds r0, 0x1D + subs r0, r7 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r7, 0x1D +_080B51B8: + mov r1, r8 + lsls r0, r1, 1 + adds r0, 0x1 + ldr r1, [sp, 0x8] + lsls r4, r1, 24 + asrs r4, 24 + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + mov r0, r9 + adds r2, r7, 0 + adds r3, r4, 0 + bl MenuDrawTextWindow + mov r6, r9 + adds r6, 0x1 + lsls r6, 24 + lsrs r6, 24 + ldr r5, [sp, 0x8] + adds r5, 0x1 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + adds r1, r5, 0 + mov r2, r8 + mov r3, r10 + bl PrintMenuItems + ldr r0, [sp, 0x10] + str r0, [sp] + mov r1, r9 + subs r0, r7, r1 + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r0, 0 + adds r1, r6, 0 + adds r2, r5, 0 + mov r3, r8 + bl InitMenu + ldr r0, [sp, 0xC] + str r0, [sp] + mov r1, r8 + str r1, [sp, 0x4] + mov r0, r9 + ldr r1, [sp, 0x8] + adds r2, r7, 0 + adds r3, r4, 0 + bl sub_80B5230 + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B5138 + + thumb_func_start sub_80B5230 +sub_80B5230: @ 80B5230 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + ldr r0, [sp, 0x1C] + mov r8, r0 + ldr r0, [sp, 0x20] + mov r9, r0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r3, 24 + lsrs r3, 24 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, _080B5298 + movs r1, 0x50 + str r3, [sp] + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B529C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + strh r5, [r1, 0xA] + strh r6, [r1, 0xC] + ldr r3, [sp] + strh r3, [r1, 0xE] + mov r0, r8 + strh r0, [r1, 0x10] + mov r0, r9 + cmp r0, 0x3 + bls _080B52A0 + movs r0, 0x1 + b _080B52A2 + .align 2, 0 +_080B5298: .4byte sub_80B52B4 +_080B529C: .4byte gTasks +_080B52A0: + movs r0, 0 +_080B52A2: + strh r0, [r1, 0x12] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B5230 + + thumb_func_start sub_80B52B4 +sub_80B52B4: @ 80B52B4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080B52E0 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B534E + ldr r2, _080B52E4 + lsls r1, r4, 2 + adds r0, r1, r4 + lsls r0, 3 + adds r0, r2 + movs r2, 0x12 + ldrsh r0, [r0, r2] + adds r5, r1, 0 + cmp r0, 0 + bne _080B52E8 + bl ProcessMenuInputNoWrap + b _080B52EC + .align 2, 0 +_080B52E0: .4byte gPaletteFade +_080B52E4: .4byte gTasks +_080B52E8: + bl ProcessMenuInput +_080B52EC: + lsls r0, 24 + lsrs r0, 24 + lsls r0, 24 + asrs r1, r0, 24 + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + beq _080B534E + adds r0, 0x1 + cmp r1, r0 + bne _080B5328 + ldr r0, _080B5320 + adds r1, r5, r4 + lsls r1, 3 + adds r1, r0 + movs r2, 0x10 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080B534E + movs r0, 0x5 + bl PlaySE + ldr r1, _080B5324 + movs r0, 0x7F + strh r0, [r1] + b _080B532C + .align 2, 0 +_080B5320: .4byte gTasks +_080B5324: .4byte gScriptResult +_080B5328: + ldr r0, _080B5354 + strh r1, [r0] +_080B532C: + bl sub_8072DEC + ldr r0, _080B5358 + adds r3, r5, r4 + lsls r3, 3 + adds r3, r0 + ldrb r0, [r3, 0x8] + ldrb r1, [r3, 0xA] + ldrb r2, [r3, 0xC] + ldrb r3, [r3, 0xE] + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl DestroyTask + bl EnableBothScriptContexts +_080B534E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B5354: .4byte gScriptResult +_080B5358: .4byte gTasks + thumb_func_end sub_80B52B4 + + thumb_func_start Multichoice +Multichoice: @ 80B535C + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r4, r2, 24 + lsls r3, 24 + lsrs r5, r3, 24 + ldr r0, _080B539C + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080B53A8 + ldr r1, _080B53A0 + movs r0, 0xFF + strh r0, [r1] + ldr r1, _080B53A4 + lsls r0, r4, 3 + adds r0, r1 + ldrb r2, [r0, 0x4] + ldr r3, [r0] + str r5, [sp] + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_80B53B4 + movs r0, 0x1 + b _080B53AA + .align 2, 0 +_080B539C: .4byte sub_80B52B4 +_080B53A0: .4byte gScriptResult +_080B53A4: .4byte gMultichoiceLists +_080B53A8: + movs r0, 0 +_080B53AA: + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end Multichoice + + thumb_func_start sub_80B53B4 +sub_80B53B4: @ 80B53B4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r7, r3, 0 + ldr r3, [sp, 0x28] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r6, r2, 24 + lsls r3, 24 + lsrs r3, 24 + mov r10, r3 + ldr r0, [r7] + bl GetStringWidthInTilesForScriptMenu + lsls r0, 16 + lsrs r4, r0, 16 + movs r5, 0x1 + cmp r5, r6 + bcs _080B5408 +_080B53EA: + lsls r0, r5, 3 + adds r0, r7 + ldr r0, [r0] + bl GetStringWidthInTilesForScriptMenu + lsls r0, 16 + lsrs r0, 16 + cmp r4, r0 + bcs _080B53FE + adds r4, r0, 0 +_080B53FE: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r6 + bcc _080B53EA +_080B5408: + lsls r4, 24 + lsrs r4, 24 + add r4, r8 + adds r4, 0x2 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r6, 1 + adds r0, 0x1 + mov r1, r9 + lsls r5, r1, 24 + asrs r5, 24 + adds r5, r0 + lsls r5, 24 + lsrs r5, 24 + mov r0, r8 + adds r2, r6, 0 + adds r3, r7, 0 + bl PrintMenuItems + movs r0, 0 + str r0, [sp] + mov r1, r8 + subs r0, r4, r1 + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r0, 0 + mov r2, r9 + adds r3, r6, 0 + bl InitMenu + mov r0, r10 + str r0, [sp] + str r6, [sp, 0x4] + mov r0, r8 + mov r1, r9 + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_80B5230 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B53B4 + + thumb_func_start yes_no_box +yes_no_box: @ 80B546C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r6, _080B54B4 + adds r0, r6, 0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080B54C0 + ldr r1, _080B54B8 + movs r0, 0xFF + strh r0, [r1] + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x1 + bl DisplayYesNoMenu + adds r0, r6, 0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B54BC + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + strh r4, [r1, 0xA] + movs r0, 0x1 + b _080B54C2 + .align 2, 0 +_080B54B4: .4byte task_yes_no_maybe +_080B54B8: .4byte gScriptResult +_080B54BC: .4byte gTasks +_080B54C0: + movs r0, 0 +_080B54C2: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end yes_no_box + + thumb_func_start unref_sub_80B54C8 +unref_sub_80B54C8: @ 80B54C8 + push {lr} + ldr r0, _080B54D8 + ldrh r0, [r0] + cmp r0, 0xFF + beq _080B54DC + movs r0, 0x1 + b _080B54DE + .align 2, 0 +_080B54D8: .4byte gScriptResult +_080B54DC: + movs r0, 0 +_080B54DE: + pop {r1} + bx r1 + thumb_func_end unref_sub_80B54C8 + + thumb_func_start task_yes_no_maybe +task_yes_no_maybe: @ 80B54E4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080B5504 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0x4 + bgt _080B5508 + adds r0, r2, 0x1 + strh r0, [r1, 0xC] + b _080B556A + .align 2, 0 +_080B5504: .4byte gTasks +_080B5508: + bl ProcessMenuInputNoWrap + lsls r0, 24 + asrs r1, r0, 24 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080B552C + cmp r1, r0 + bgt _080B5524 + subs r0, 0x1 + cmp r1, r0 + beq _080B556A + b _080B5542 +_080B5524: + cmp r1, 0 + beq _080B553C + cmp r1, 0x1 + bne _080B5542 +_080B552C: + movs r0, 0x5 + bl PlaySE + ldr r1, _080B5538 + movs r0, 0 + b _080B5540 + .align 2, 0 +_080B5538: .4byte gScriptResult +_080B553C: + ldr r1, _080B5570 + movs r0, 0x1 +_080B5540: + strh r0, [r1] +_080B5542: + ldr r0, _080B5574 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrb r0, [r1, 0x8] + ldrb r1, [r1, 0xA] + adds r2, r0, 0x6 + lsls r2, 24 + lsrs r2, 24 + adds r3, r1, 0x5 + lsls r3, 24 + lsrs r3, 24 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl DestroyTask + bl EnableBothScriptContexts +_080B556A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B5570: .4byte gScriptResult +_080B5574: .4byte gTasks + thumb_func_end task_yes_no_maybe + + thumb_func_start sub_80B5578 +sub_80B5578: @ 80B5578 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + ldr r4, [sp, 0x30] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r2, 24 + lsrs r6, r2, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0xC] + lsls r4, 24 + lsrs r5, r4, 24 + movs r7, 0 + ldr r0, _080B55B8 + mov r10, r0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B55BC + movs r0, 0 + b _080B5670 + .align 2, 0 +_080B55B8: .4byte sub_80B5684 +_080B55BC: + ldr r1, _080B5620 + movs r0, 0xFF + strh r0, [r1] + ldr r0, _080B5624 + lsls r4, r6, 3 + adds r0, r4, r0 + ldrb r6, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r5, [sp, 0x4] + str r7, [sp, 0x8] + mov r0, r9 + mov r1, r8 + adds r2, r6, 0 + movs r3, 0 + bl sub_807274C + mov r0, r10 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r0, r6, 24 + lsrs r1, r0, 24 + lsrs r0, 25 + cmp r0, r5 + bcc _080B55FE + movs r0, 0x1 + ands r0, r6 + cmp r0, 0 + beq _080B5606 +_080B55FE: + cmp r5, 0x1 + beq _080B5606 + cmp r1, r5 + bne _080B5628 +_080B5606: + ldr r0, _080B5624 + adds r0, r4, r0 + ldrb r0, [r0, 0x4] + adds r1, r5, 0 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 23 + adds r0, 0x1 + mov r2, r8 + lsls r1, r2, 24 + b _080B563A + .align 2, 0 +_080B5620: .4byte gScriptResult +_080B5624: .4byte gMultichoiceLists +_080B5628: + adds r0, r6, 0 + adds r1, r5, 0 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 23 + adds r0, 0x3 + mov r3, r8 + lsls r1, r3, 24 +_080B563A: + asrs r1, 24 + adds r1, r0 + lsls r1, 24 + lsrs r7, r1, 24 + adds r0, r5, 0 + bl sub_807288C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B5680 + mov r3, r10 + lsls r1, r3, 2 + add r1, r10 + lsls r1, 3 + adds r1, r2 + mov r2, r9 + strh r2, [r1, 0x8] + mov r3, r8 + strh r3, [r1, 0xA] + add r0, r9 + adds r0, 0x2 + strh r0, [r1, 0xC] + strh r7, [r1, 0xE] + mov r0, sp + ldrh r0, [r0, 0xC] + strh r0, [r1, 0x10] + movs r0, 0x1 +_080B5670: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080B5680: .4byte gTasks + thumb_func_end sub_80B5578 + + thumb_func_start sub_80B5684 +sub_80B5684: @ 80B5684 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_80727CC + lsls r0, 24 + asrs r1, r0, 24 + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + beq _080B56F4 + adds r0, 0x1 + cmp r1, r0 + bne _080B56CC + ldr r2, _080B56C4 + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + adds r0, r2 + movs r2, 0x10 + ldrsh r0, [r0, r2] + adds r4, r1, 0 + cmp r0, 0 + bne _080B56F4 + movs r0, 0x5 + bl PlaySE + ldr r1, _080B56C8 + movs r0, 0x7F + strh r0, [r1] + b _080B56D2 + .align 2, 0 +_080B56C4: .4byte gTasks +_080B56C8: .4byte gScriptResult +_080B56CC: + ldr r0, _080B56FC + strh r1, [r0] + lsls r4, r5, 2 +_080B56D2: + bl sub_8072DEC + ldr r0, _080B5700 + adds r3, r4, r5 + lsls r3, 3 + adds r3, r0 + ldrb r0, [r3, 0x8] + ldrb r1, [r3, 0xA] + ldrb r2, [r3, 0xC] + ldrb r3, [r3, 0xE] + bl MenuZeroFillWindowRect + adds r0, r5, 0 + bl DestroyTask + bl EnableBothScriptContexts +_080B56F4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B56FC: .4byte gScriptResult +_080B5700: .4byte gTasks + thumb_func_end sub_80B5684 + + thumb_func_start sp109_CreatePCMenu +sp109_CreatePCMenu: @ 80B5704 + push {lr} + ldr r0, _080B5724 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080B572C + ldr r1, _080B5728 + movs r0, 0xFF + strh r0, [r1] + bl CreatePCMenu + movs r0, 0x1 + b _080B572E + .align 2, 0 +_080B5724: .4byte sub_80B52B4 +_080B5728: .4byte gScriptResult +_080B572C: + movs r0, 0 +_080B572E: + pop {r1} + bx r1 + thumb_func_end sp109_CreatePCMenu + + thumb_func_start CreatePCMenu +CreatePCMenu: @ 80B5734 + push {r4-r7,lr} + sub sp, 0x8 + ldr r0, _080B5758 + bl GetStringWidthInTilesForScriptMenu + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _080B575C + bl GetStringWidthInTilesForScriptMenu + lsls r0, 16 + lsrs r0, 16 + cmp r4, r0 + bls _080B5760 + lsls r0, r4, 24 + lsrs r5, r0, 24 + b _080B5762 + .align 2, 0 +_080B5758: .4byte gPCText_PlayersPC +_080B575C: .4byte gPCText_SomeonesPC +_080B5760: + movs r5, 0x8 +_080B5762: + ldr r0, _080B5798 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080B57A4 + movs r7, 0x4 + adds r4, r5, 0x2 + lsls r2, r4, 24 + lsrs r2, 24 + movs r0, 0 + movs r1, 0 + movs r3, 0x9 + bl MenuDrawTextWindow + ldr r0, _080B579C + movs r1, 0x1 + movs r2, 0x5 + bl MenuPrint + ldr r0, _080B57A0 + movs r1, 0x1 + movs r2, 0x7 + bl MenuPrint + b _080B57C0 + .align 2, 0 +_080B5798: .4byte 0x00000804 +_080B579C: .4byte gPCText_HallOfFame +_080B57A0: .4byte gPCText_LogOff +_080B57A4: + movs r7, 0x3 + adds r4, r5, 0x2 + lsls r2, r4, 24 + lsrs r2, 24 + movs r0, 0 + movs r1, 0 + movs r3, 0x7 + bl MenuDrawTextWindow + ldr r0, _080B57DC + movs r1, 0x1 + movs r2, 0x5 + bl MenuPrint +_080B57C0: + adds r6, r4, 0 + ldr r0, _080B57E0 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080B57E8 + ldr r0, _080B57E4 + movs r1, 0x1 + movs r2, 0x1 + bl MenuPrint + b _080B57F2 + .align 2, 0 +_080B57DC: .4byte gPCText_LogOff +_080B57E0: .4byte 0x0000084b +_080B57E4: .4byte gPCText_LanettesPC +_080B57E8: + ldr r0, _080B5830 + movs r1, 0x1 + movs r2, 0x1 + bl MenuPrint +_080B57F2: + ldr r0, _080B5834 + movs r1, 0x1 + movs r2, 0x3 + bl MenuPrint + movs r4, 0 + str r4, [sp] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + adds r3, r7, 0 + bl InitMenu + lsls r2, r6, 24 + lsrs r2, 24 + lsls r3, r7, 1 + adds r3, 0x1 + str r4, [sp] + str r7, [sp, 0x4] + movs r0, 0 + movs r1, 0 + bl sub_80B5230 + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B5830: .4byte gPCText_SomeonesPC +_080B5834: .4byte gPCText_PlayersPC + thumb_func_end CreatePCMenu + + thumb_func_start sub_80B5838 +sub_80B5838: @ 80B5838 + push {lr} + bl MenuDisplayMessageBox + ldr r0, _080B584C + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + pop {r0} + bx r0 + .align 2, 0 +_080B584C: .4byte gUnknown_081A0A01 + thumb_func_end sub_80B5838 + + thumb_func_start task_picbox +task_picbox: @ 80B5850 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B5874 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080B58BE + cmp r0, 0x1 + bgt _080B5878 + cmp r0, 0 + beq _080B5894 + b _080B58BE + .align 2, 0 +_080B5874: .4byte gTasks +_080B5878: + cmp r0, 0x2 + beq _080B5882 + cmp r0, 0x3 + beq _080B58A0 + b _080B58BE +_080B5882: + movs r0, 0xC + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B589C + adds r0, r1 + bl sub_8085C44 +_080B5894: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B58BE + .align 2, 0 +_080B589C: .4byte gSprites +_080B58A0: + ldrb r2, [r4, 0xE] + adds r0, r2, 0 + ldrb r3, [r4, 0x10] + adds r1, r3, 0 + adds r2, 0x9 + lsls r2, 24 + lsrs r2, 24 + adds r3, 0xA + lsls r3, 24 + lsrs r3, 24 + bl MenuZeroFillWindowRect + adds r0, r5, 0 + bl DestroyTask +_080B58BE: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end task_picbox + + thumb_func_start sub_80B58C4 +sub_80B58C4: @ 80B58C4 + push {r4-r7,lr} + lsls r0, 16 + lsrs r7, r0, 16 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r5, r2, 24 + ldr r4, _080B595C + adds r0, r4, 0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _080B596C + adds r2, r6, 0 + adds r2, 0x9 + lsls r2, 24 + lsrs r2, 24 + adds r3, r5, 0 + adds r3, 0xA + lsls r3, 24 + lsrs r3, 24 + adds r0, r6, 0 + adds r1, r5, 0 + bl MenuDrawTextWindow + adds r0, r4, 0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B5960 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + movs r0, 0 + strh r0, [r4, 0x8] + strh r7, [r4, 0xA] + lsls r1, r6, 19 + movs r0, 0xA0 + lsls r0, 14 + adds r1, r0 + asrs r1, 16 + lsls r2, r5, 19 + adds r2, r0 + asrs r2, 16 + adds r0, r7, 0 + movs r3, 0 + bl sub_8085AD4 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xC] + strh r6, [r4, 0xE] + strh r5, [r4, 0x10] + ldr r3, _080B5964 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x1C + adds r0, r1, r0 + ldr r2, _080B5968 + str r2, [r0] + adds r1, r3 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x5] + movs r0, 0x1 + b _080B596E + .align 2, 0 +_080B595C: .4byte task_picbox +_080B5960: .4byte gTasks +_080B5964: .4byte gSprites +_080B5968: .4byte SpriteCallbackDummy +_080B596C: + movs r0, 0 +_080B596E: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80B58C4 + + thumb_func_start picbox_close +picbox_close: @ 80B5974 + push {lr} + ldr r0, _080B5998 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080B59A4 + ldr r0, _080B599C + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + ldr r0, _080B59A0 + b _080B59A6 + .align 2, 0 +_080B5998: .4byte task_picbox +_080B599C: .4byte gTasks +_080B59A0: .4byte sub_80B59AC +_080B59A4: + movs r0, 0 +_080B59A6: + pop {r1} + bx r1 + thumb_func_end picbox_close + + thumb_func_start sub_80B59AC +sub_80B59AC: @ 80B59AC + push {lr} + ldr r0, _080B59C0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080B59C4 + movs r0, 0 + b _080B59C6 + .align 2, 0 +_080B59C0: .4byte task_picbox +_080B59C4: + movs r0, 0x1 +_080B59C6: + pop {r1} + bx r1 + thumb_func_end sub_80B59AC + + thumb_func_start DoNamingScreen +DoNamingScreen: @ 80B59CC + push {r4,r5,lr} + sub sp, 0x8 + ldr r4, [sp, 0x14] + ldr r5, [sp, 0x18] + lsls r0, 24 + lsrs r0, 24 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 16 + lsrs r3, 16 + str r4, [sp] + str r5, [sp, 0x4] + bl AddNamingScreenTask + ldr r0, _080B59F8 + bl SetMainCallback2 + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B59F8: .4byte C2_NamingScreen + thumb_func_end DoNamingScreen + + thumb_func_start C2_NamingScreen +C2_NamingScreen: @ 80B59FC + push {lr} + ldr r0, _080B5A14 + ldr r1, _080B5A18 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x7 + bhi _080B5A96 + lsls r0, 2 + ldr r1, _080B5A1C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B5A14: .4byte gMain +_080B5A18: .4byte 0x0000043c +_080B5A1C: .4byte _080B5A20 + .align 2, 0 +_080B5A20: + .4byte _080B5A40 + .4byte _080B5A4A + .4byte _080B5A50 + .4byte _080B5A56 + .4byte _080B5A5C + .4byte _080B5A62 + .4byte _080B5A68 + .4byte _080B5A84 +_080B5A40: + bl NamingScreen_TurnOffScreen + bl NamingScreen_Init + b _080B5A6C +_080B5A4A: + bl NamingScreen_ClearVram + b _080B5A6C +_080B5A50: + bl NamingScreen_ClearOam + b _080B5A6C +_080B5A56: + bl NamingScreen_SetUpVideoRegs + b _080B5A6C +_080B5A5C: + bl sub_80B5DC8 + b _080B5A6C +_080B5A62: + bl NamingScreen_ResetObjects + b _080B5A6C +_080B5A68: + bl sub_80B5DFC +_080B5A6C: + ldr r1, _080B5A7C + ldr r0, _080B5A80 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080B5A96 + .align 2, 0 +_080B5A7C: .4byte gMain +_080B5A80: .4byte 0x0000043c +_080B5A84: + bl sub_80B5E20 + bl sub_80B5E3C + bl sub_80B5C04 + ldr r0, _080B5A9C + bl SetMainCallback2 +_080B5A96: + pop {r0} + bx r0 + .align 2, 0 +_080B5A9C: .4byte sub_80B5AA0 + thumb_func_end C2_NamingScreen + + thumb_func_start sub_80B5AA0 +sub_80B5AA0: @ 80B5AA0 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_80B5AA0 + + thumb_func_start sub_80B5AB8 +sub_80B5AB8: @ 80B5AB8 + push {r4,lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r1, _080B5B00 + ldr r4, _080B5B04 + ldrh r0, [r4, 0x4] + strh r0, [r1] + adds r1, 0x4 + ldrh r0, [r4, 0x6] + strh r0, [r1] + ldr r2, _080B5B08 + ldrh r1, [r2] + ldr r3, _080B5B0C + adds r0, r3, 0 + ands r0, r1 + strh r0, [r2] + ldrh r0, [r2] + ldrh r1, [r4, 0x8] + orrs r0, r1 + strh r0, [r2] + adds r2, 0x2 + ldrh r0, [r2] + ands r3, r0 + strh r3, [r2] + ldrh r0, [r2] + ldrh r1, [r4, 0xA] + orrs r0, r1 + strh r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B5B00: .4byte REG_BG1VOFS +_080B5B04: .4byte 0x02000000 +_080B5B08: .4byte REG_BG1CNT +_080B5B0C: .4byte 0x0000fffc + thumb_func_end sub_80B5AB8 + + thumb_func_start AddNamingScreenTask +AddNamingScreenTask: @ 80B5B10 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r8, r0 + mov r9, r1 + adds r5, r2, 0 + adds r6, r3, 0 + ldr r7, [sp, 0x1C] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 16 + lsrs r6, 16 + ldr r0, _080B5B74 + movs r1, 0xFF + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080B5B78 + adds r4, r0 + mov r0, r8 + strh r0, [r4, 0x8] + strh r5, [r4, 0xA] + strh r6, [r4, 0xC] + lsrs r0, r7, 16 + strh r0, [r4, 0xE] + strh r7, [r4, 0x10] + adds r0, r4, 0 + adds r0, 0x12 + mov r1, r9 + bl StoreWordInTwoHalfwords + adds r4, 0x16 + adds r0, r4, 0 + ldr r1, [sp, 0x20] + bl StoreWordInTwoHalfwords + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B5B74: .4byte NamingScreenDummyTask +_080B5B78: .4byte gTasks + thumb_func_end AddNamingScreenTask + + thumb_func_start GetNamingScreenParameters +GetNamingScreenParameters: @ 80B5B7C + push {r4-r6,lr} + ldr r0, _080B5BD8 + bl FindTaskIdByFunc + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, _080B5BDC + adds r4, r0 + ldr r6, _080B5BE0 + ldrh r0, [r4, 0x8] + strb r0, [r6, 0x1] + ldrh r0, [r4, 0xA] + strh r0, [r6, 0x3E] + ldrh r1, [r4, 0xC] + adds r0, r6, 0 + adds r0, 0x40 + strh r1, [r0] + movs r1, 0xE + ldrsh r0, [r4, r1] + lsls r0, 16 + ldrh r1, [r4, 0x10] + orrs r0, r1 + str r0, [r6, 0x44] + adds r0, r4, 0 + adds r0, 0x12 + adds r1, r6, 0 + adds r1, 0x38 + bl LoadWordFromTwoHalfwords + adds r4, 0x16 + adds r1, r6, 0 + adds r1, 0x48 + adds r0, r4, 0 + bl LoadWordFromTwoHalfwords + adds r0, r5, 0 + bl DestroyTask + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B5BD8: .4byte NamingScreenDummyTask +_080B5BDC: .4byte gTasks +_080B5BE0: .4byte 0x02000000 + thumb_func_end GetNamingScreenParameters + + thumb_func_start NamingScreenDummyTask +NamingScreenDummyTask: @ 80B5BE4 + bx lr + thumb_func_end NamingScreenDummyTask + + thumb_func_start NamingScreen_TurnOffScreen +NamingScreen_TurnOffScreen: @ 80B5BE8 + push {lr} + movs r0, 0 + bl SetVBlankCallback + movs r0, 0 + bl SetHBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + pop {r0} + bx r0 + thumb_func_end NamingScreen_TurnOffScreen + + thumb_func_start sub_80B5C04 +sub_80B5C04: @ 80B5C04 + push {r4,lr} + ldr r0, _080B5C3C + bl SetVBlankCallback + ldr r3, _080B5C40 + ldrh r2, [r3] + movs r0, 0 + strh r0, [r3] + ldr r4, _080B5C44 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _080B5C48 + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B5C3C: .4byte sub_80B5AB8 +_080B5C40: .4byte 0x04000208 +_080B5C44: .4byte 0x04000200 +_080B5C48: .4byte REG_DISPSTAT + thumb_func_end sub_80B5C04 + + thumb_func_start NamingScreen_ClearVram +NamingScreen_ClearVram: @ 80B5C4C + push {r4-r7,lr} + sub sp, 0x4 + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0x80 + lsls r3, 9 + mov r4, sp + movs r6, 0 + ldr r1, _080B5C98 + movs r5, 0x80 + lsls r5, 5 + ldr r7, _080B5C9C + movs r0, 0x81 + lsls r0, 24 + mov r12, r0 +_080B5C6A: + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r5 + subs r3, r5 + cmp r3, r5 + bhi _080B5C6A + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 1 + mov r2, r12 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B5C98: .4byte 0x040000d4 +_080B5C9C: .4byte 0x81000800 + thumb_func_end NamingScreen_ClearVram + + thumb_func_start NamingScreen_ClearOam +NamingScreen_ClearOam: @ 80B5CA0 + sub sp, 0x4 + movs r2, 0xE0 + lsls r2, 19 + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r0, _080B5CBC + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080B5CC0 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + add sp, 0x4 + bx lr + .align 2, 0 +_080B5CBC: .4byte 0x040000d4 +_080B5CC0: .4byte 0x81000200 + thumb_func_end NamingScreen_ClearOam + + thumb_func_start NamingScreen_SetUpVideoRegs +NamingScreen_SetUpVideoRegs: @ 80B5CC4 + push {r4,r5,lr} + ldr r5, _080B5D2C + movs r1, 0 + strh r1, [r5] + ldr r2, _080B5D30 + strh r1, [r2] + ldr r3, _080B5D34 + strh r1, [r3] + ldr r4, _080B5D38 + strh r1, [r4] + ldr r0, _080B5D3C + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + movs r1, 0xF8 + lsls r1, 5 + adds r0, r1, 0 + strh r0, [r5] + ldr r1, _080B5D40 + adds r0, r1, 0 + strh r0, [r2] + ldr r2, _080B5D44 + adds r0, r2, 0 + strh r0, [r3] + ldr r1, _080B5D48 + adds r0, r1, 0 + strh r0, [r4] + ldr r1, _080B5D4C + movs r2, 0xC8 + lsls r2, 3 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080B5D50 + adds r0, r2, 0 + strh r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B5D2C: .4byte REG_BG0CNT +_080B5D30: .4byte REG_BG1CNT +_080B5D34: .4byte REG_BG2CNT +_080B5D38: .4byte REG_BG3CNT +_080B5D3C: .4byte REG_BG0HOFS +_080B5D40: .4byte 0x00001c01 +_080B5D44: .4byte 0x00001d0a +_080B5D48: .4byte 0x00001e03 +_080B5D4C: .4byte REG_BLDCNT +_080B5D50: .4byte 0x0000080c + thumb_func_end NamingScreen_SetUpVideoRegs + + thumb_func_start NamingScreen_Init +NamingScreen_Init: @ 80B5D54 + push {r4-r6,lr} + bl GetNamingScreenParameters + ldr r4, _080B5DBC + movs r0, 0 + strb r0, [r4] + movs r2, 0 + strh r0, [r4, 0x4] + strh r0, [r4, 0x6] + movs r1, 0x1 + movs r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x2 + strh r0, [r4, 0xA] + strb r2, [r4, 0xC] + strb r1, [r4, 0xD] + ldr r1, _080B5DC0 + ldrb r0, [r4, 0x1] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [r4, 0x34] + ldrb r1, [r0, 0x4] + strb r1, [r4, 0xE] + ldrb r1, [r0, 0x1] + lsrs r1, 1 + movs r0, 0xE + subs r0, r1 + strh r0, [r4, 0x2] + ldr r6, _080B5DC4 + ldrh r0, [r6] + strh r0, [r4, 0x3C] + adds r5, r4, 0 + adds r5, 0x11 + adds r0, r5, 0 + movs r1, 0xFF + movs r2, 0x10 + bl memset + ldr r0, [r4, 0x34] + ldrb r0, [r0] + cmp r0, 0 + beq _080B5DB2 + ldr r1, [r4, 0x38] + adds r0, r5, 0 + bl StringCopy +_080B5DB2: + movs r0, 0x10 + strh r0, [r6] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B5DBC: .4byte 0x02000000 +_080B5DC0: .4byte gUnknown_083CE398 +_080B5DC4: .4byte gKeyRepeatStartDelay + thumb_func_end NamingScreen_Init + + thumb_func_start sub_80B5DC8 +sub_80B5DC8: @ 80B5DC8 + push {r4,lr} + ldr r4, _080B5DE0 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B5DE0: .4byte gWindowConfig_81E6E88 + thumb_func_end sub_80B5DC8 + + thumb_func_start NamingScreen_ResetObjects +NamingScreen_ResetObjects: @ 80B5DE4 + push {lr} + bl ResetPaletteFade + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + pop {r0} + bx r0 + thumb_func_end NamingScreen_ResetObjects + + thumb_func_start sub_80B5DFC +sub_80B5DFC: @ 80B5DFC + push {lr} + bl sub_80B7558 + bl sub_80B753C + bl sub_80B7680 + bl sub_80B75C4 + bl sub_80B7794 + bl sub_80B78A8 + bl sub_80B7960 + pop {r0} + bx r0 + thumb_func_end sub_80B5DFC + + thumb_func_start sub_80B5E20 +sub_80B5E20: @ 80B5E20 + push {lr} + bl sub_80B6774 + bl sub_80B6A80 + bl sub_80B6CA8 + bl sub_80B6D04 + bl sub_80B6E44 + pop {r0} + bx r0 + thumb_func_end sub_80B5E20 + + thumb_func_start sub_80B5E3C +sub_80B5E3C: @ 80B5E3C + push {lr} + bl sub_80B61D8 + bl sub_80B6438 + bl sub_80B5E50 + pop {r0} + bx r0 + thumb_func_end sub_80B5E3C + + thumb_func_start sub_80B5E50 +sub_80B5E50: @ 80B5E50 + push {r4,lr} + ldr r4, _080B5E6C + adds r0, r4, 0 + movs r1, 0x2 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B5E6C: .4byte sub_80B5E70 + thumb_func_end sub_80B5E50 + + thumb_func_start sub_80B5E70 +sub_80B5E70: @ 80B5E70 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r7, _080B5E9C + lsls r1, r0, 2 + adds r1, r0 + lsls r4, r1, 3 + ldr r6, _080B5EA0 + ldr r5, _080B5EA4 +_080B5E82: + ldrb r0, [r6] + lsls r0, 2 + adds r0, r7 + ldr r1, [r0] + adds r0, r4, r5 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080B5E82 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B5E9C: .4byte gUnknown_083CE218 +_080B5EA0: .4byte 0x02000000 +_080B5EA4: .4byte gTasks + thumb_func_end sub_80B5E70 + + thumb_func_start sub_80B5EA8 +sub_80B5EA8: @ 80B5EA8 + push {lr} + sub sp, 0x4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r1, _080B5ECC + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0 + add sp, 0x4 + pop {r1} + bx r1 + .align 2, 0 +_080B5ECC: .4byte 0x02000000 + thumb_func_end sub_80B5EA8 + + thumb_func_start sub_80B5ED0 +sub_80B5ED0: @ 80B5ED0 + push {lr} + ldr r0, _080B5EF8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B5EF2 + movs r0, 0x1 + bl sub_80B6210 + movs r0, 0x1 + bl sub_80B68D8 + ldr r1, _080B5EFC + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080B5EF2: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080B5EF8: .4byte gPaletteFade +_080B5EFC: .4byte 0x02000000 + thumb_func_end sub_80B5ED0 + + thumb_func_start sub_80B5F00 +sub_80B5F00: @ 80B5F00 + push {lr} + bl sub_80B60B8 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80B5F00 + + thumb_func_start sub_80B5F10 +sub_80B5F10: @ 80B5F10 + push {lr} + bl sub_80B6938 + lsls r0, 24 + cmp r0, 0 + beq _080B5F2C + movs r0, 0x1 + bl sub_80B6210 + bl sub_80B6878 + ldr r1, _080B5F34 + movs r0, 0x2 + strb r0, [r1] +_080B5F2C: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080B5F34: .4byte 0x02000000 + thumb_func_end sub_80B5F10 + + thumb_func_start sub_80B5F38 +sub_80B5F38: @ 80B5F38 + push {lr} + movs r0, 0 + bl sub_80B6210 + bl sub_80B6B14 + bl sub_80B65F0 + movs r0, 0x1 + bl sub_80B6888 + movs r0, 0 + movs r1, 0 + movs r2, 0x1 + bl sub_80B6460 + movs r0, 0x6 + bl PlaySE + ldr r1, _080B5F6C + movs r0, 0x5 + strb r0, [r1] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080B5F6C: .4byte 0x02000000 + thumb_func_end sub_80B5F38 + + thumb_func_start sub_80B5F70 +sub_80B5F70: @ 80B5F70 + push {r4,r5,lr} + sub sp, 0x4 + bl sub_80B6610 + lsls r0, 24 + cmp r0, 0 + beq _080B5FDC + ldr r4, _080B5FE8 + movs r0, 0x2 + strb r0, [r4] + ldrb r0, [r4, 0xE] + adds r0, 0x1 + strb r0, [r4, 0xE] + ldrb r0, [r4, 0xE] + movs r1, 0x3 + bl __umodsi3 + strb r0, [r4, 0xE] + bl sub_80B7614 + bl sub_80B77F8 + movs r0, 0x1 + bl sub_80B6210 + mov r5, sp + adds r5, 0x2 + mov r0, sp + adds r1, r5, 0 + bl sub_80B6858 + ldrb r0, [r4, 0xE] + cmp r0, 0x2 + bne _080B5FC8 + mov r0, sp + ldrh r0, [r0] + subs r0, 0x6 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080B5FC8 + mov r1, sp + movs r0, 0x5 + strh r0, [r1] +_080B5FC8: + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r5, r2] + bl sub_80B680C + movs r0, 0 + bl sub_80B6888 +_080B5FDC: + movs r0, 0 + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080B5FE8: .4byte 0x02000000 + thumb_func_end sub_80B5F70 + + thumb_func_start pokemon_store +pokemon_store: @ 80B5FEC + push {r4,lr} + bl sub_80B74B0 + movs r0, 0 + bl sub_80B6210 + movs r0, 0 + bl sub_80B68D8 + movs r0, 0x3 + movs r1, 0 + movs r2, 0x1 + bl sub_80B6460 + ldr r0, _080B6030 + ldr r4, _080B6034 + ldrh r1, [r4, 0x3C] + strh r1, [r0] + ldrb r0, [r4, 0x1] + cmp r0, 0x2 + bne _080B6038 + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bls _080B6038 + bl sub_80B74FC + movs r0, 0x7 + strb r0, [r4] + movs r0, 0 + b _080B6040 + .align 2, 0 +_080B6030: .4byte gKeyRepeatStartDelay +_080B6034: .4byte 0x02000000 +_080B6038: + ldr r1, _080B6048 + movs r0, 0x8 + strb r0, [r1] + movs r0, 0x1 +_080B6040: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B6048: .4byte 0x02000000 + thumb_func_end pokemon_store + + thumb_func_start sub_80B604C +sub_80B604C: @ 80B604C + push {lr} + bl MenuUpdateWindowText + lsls r0, 24 + cmp r0, 0 + beq _080B6060 + ldr r1, _080B6068 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080B6060: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080B6068: .4byte 0x02000000 + thumb_func_end sub_80B604C + + thumb_func_start sub_80B606C +sub_80B606C: @ 80B606C + push {lr} + sub sp, 0x4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _080B6090 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0 + add sp, 0x4 + pop {r1} + bx r1 + .align 2, 0 +_080B6090: .4byte 0x02000000 + thumb_func_end sub_80B606C + + thumb_func_start sub_80B6094 +sub_80B6094: @ 80B6094 + push {lr} + ldr r0, _080B60B0 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B60AA + ldr r0, _080B60B4 + ldr r0, [r0, 0x48] + bl SetMainCallback2 +_080B60AA: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080B60B0: .4byte gPaletteFade +_080B60B4: .4byte 0x02000000 + thumb_func_end sub_80B6094 + + thumb_func_start sub_80B60B8 +sub_80B60B8: @ 80B60B8 + push {r4,r5,lr} + bl sub_80B61EC + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_80B6958 + lsls r0, 24 + lsrs r0, 24 + cmp r4, 0x8 + bne _080B60D6 + bl sub_80B61C8 + b _080B60F2 +_080B60D6: + cmp r4, 0x6 + bne _080B60E0 + bl sub_80B6FBC + b _080B6100 +_080B60E0: + cmp r5, 0x7 + beq _080B60FC + ldr r1, _080B60F8 + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r5, 0 + bl _call_via_r1 +_080B60F2: + lsls r0, 24 + lsrs r0, 24 + b _080B6102 + .align 2, 0 +_080B60F8: .4byte gUnknown_083CE240 +_080B60FC: + bl sub_80B7090 +_080B6100: + movs r0, 0 +_080B6102: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80B60B8 + + thumb_func_start sub_80B6108 +sub_80B6108: @ 80B6108 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl sub_80B6460 + cmp r4, 0x5 + bne _080B613C + bl sub_80B7004 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80B6914 + cmp r4, 0 + beq _080B613C + movs r0, 0 + bl sub_80B6210 + ldr r1, _080B6144 + movs r0, 0x3 + strb r0, [r1] +_080B613C: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B6144: .4byte 0x02000000 + thumb_func_end sub_80B6108 + + thumb_func_start sub_80B6148 +sub_80B6148: @ 80B6148 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_80B6460 + cmp r4, 0x5 + beq _080B6162 + movs r0, 0 + b _080B616A +_080B6162: + bl sub_80B61C8 + lsls r0, 24 + lsrs r0, 24 +_080B616A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80B6148 + + thumb_func_start sub_80B6170 +sub_80B6170: @ 80B6170 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl sub_80B6460 + cmp r4, 0x5 + bne _080B618A + bl sub_80B6FBC +_080B618A: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80B6170 + + thumb_func_start sub_80B6194 +sub_80B6194: @ 80B6194 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0 + bl sub_80B6460 + cmp r4, 0x5 + beq _080B61AE + movs r0, 0 + b _080B61BC +_080B61AE: + movs r0, 0x5 + bl PlaySE + ldr r1, _080B61C4 + movs r0, 0x6 + strb r0, [r1] + movs r0, 0x1 +_080B61BC: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B61C4: .4byte 0x02000000 + thumb_func_end sub_80B6194 + + thumb_func_start sub_80B61C8 +sub_80B61C8: @ 80B61C8 + ldr r1, _080B61D4 + movs r0, 0x4 + strb r0, [r1] + movs r0, 0x1 + bx lr + .align 2, 0 +_080B61D4: .4byte 0x02000000 + thumb_func_end sub_80B61C8 + + thumb_func_start sub_80B61D8 +sub_80B61D8: @ 80B61D8 + push {lr} + ldr r0, _080B61E8 + movs r1, 0x1 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080B61E8: .4byte sub_80B623C + thumb_func_end sub_80B61D8 + + thumb_func_start sub_80B61EC +sub_80B61EC: @ 80B61EC + push {lr} + ldr r0, _080B6208 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B620C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0xA] + pop {r1} + bx r1 + .align 2, 0 +_080B6208: .4byte sub_80B623C +_080B620C: .4byte gTasks + thumb_func_end sub_80B61EC + + thumb_func_start sub_80B6210 +sub_80B6210: @ 80B6210 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080B6234 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B6238 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B6234: .4byte sub_80B623C +_080B6238: .4byte gTasks + thumb_func_end sub_80B6210 + + thumb_func_start sub_80B623C +sub_80B623C: @ 80B623C + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _080B6264 + ldr r2, _080B6268 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r1, [r0, r2] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B6264: .4byte gUnknown_083CE250 +_080B6268: .4byte gTasks + thumb_func_end sub_80B623C + + thumb_func_start sub_80B626C +sub_80B626C: @ 80B626C + movs r1, 0 + strh r1, [r0, 0xA] + bx lr + thumb_func_end sub_80B626C + + thumb_func_start sub_80B6274 +sub_80B6274: @ 80B6274 + push {lr} + adds r2, r0, 0 + movs r0, 0 + strh r0, [r2, 0xA] + ldr r0, _080B6290 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B6294 + movs r0, 0x5 + strh r0, [r2, 0xA] + b _080B62C8 + .align 2, 0 +_080B6290: .4byte gMain +_080B6294: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080B62A2 + movs r0, 0x6 + strh r0, [r2, 0xA] + b _080B62C8 +_080B62A2: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080B62B0 + movs r0, 0x8 + strh r0, [r2, 0xA] + b _080B62C8 +_080B62B0: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080B62C2 + movs r0, 0x9 + strh r0, [r2, 0xA] + bl sub_80B6878 + b _080B62C8 +_080B62C2: + adds r0, r2, 0 + bl sub_80B62CC +_080B62C8: + pop {r0} + bx r0 + thumb_func_end sub_80B6274 + + thumb_func_start sub_80B62CC +sub_80B62CC: @ 80B62CC + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl sub_80B6858 + ldr r0, _080B6374 + ldrh r2, [r0, 0x30] + movs r0, 0x40 + ands r0, r2 + lsls r0, 16 + lsrs r0, 16 + negs r0, r0 + lsrs r1, r0, 31 + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _080B62F8 + movs r1, 0x2 +_080B62F8: + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _080B6302 + movs r1, 0x3 +_080B6302: + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + beq _080B630C + movs r1, 0x4 +_080B630C: + mov r0, sp + ldrh r6, [r0] + mov r2, sp + ldr r0, _080B6378 + lsls r1, 1 + adds r0, r1, r0 + ldrh r3, [r0] + adds r0, r6, r3 + strh r0, [r2] + ldr r0, _080B637C + adds r1, r0 + ldrh r0, [r1] + ldrh r1, [r4] + adds r0, r1 + strh r0, [r4] + mov r0, sp + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bge _080B633A + mov r1, sp + movs r0, 0x8 + strh r0, [r1] +_080B633A: + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x8 + ble _080B634A + mov r1, sp + movs r0, 0 + strh r0, [r1] +_080B634A: + lsls r0, r3, 16 + asrs r1, r0, 16 + cmp r1, 0 + beq _080B63CA + ldr r0, _080B6380 + ldrb r0, [r0, 0xE] + cmp r0, 0x2 + bne _080B638A + mov r0, sp + ldrh r0, [r0] + subs r0, 0x6 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080B638A + cmp r1, 0 + ble _080B6384 + mov r1, sp + movs r0, 0x8 + b _080B6388 + .align 2, 0 +_080B6374: .4byte gMain +_080B6378: .4byte gUnknown_083CE258 +_080B637C: .4byte gUnknown_083CE262 +_080B6380: .4byte 0x02000000 +_080B6384: + mov r1, sp + movs r0, 0x5 +_080B6388: + strh r0, [r1] +_080B638A: + mov r0, sp + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0x8 + bne _080B63AC + ldrh r0, [r4] + strh r0, [r5, 0xC] + ldr r1, _080B63A8 + movs r2, 0 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + b _080B63C8 + .align 2, 0 +_080B63A8: .4byte gUnknown_083CE26C +_080B63AC: + cmp r6, 0x8 + bne _080B63CA + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080B63BC + ldrh r0, [r5, 0xC] + b _080B63C8 +_080B63BC: + ldr r0, _080B63FC + movs r2, 0 + ldrsh r1, [r4, r2] + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] +_080B63C8: + strh r0, [r4] +_080B63CA: + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x8 + bne _080B6408 + movs r2, 0 + ldrsh r0, [r4, r2] + cmp r0, 0 + bge _080B63E0 + movs r0, 0x2 + strh r0, [r4] +_080B63E0: + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x2 + ble _080B63EC + movs r0, 0 + strh r0, [r4] +_080B63EC: + movs r2, 0 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080B6400 + movs r0, 0x1 + strh r0, [r5, 0xC] + b _080B6420 + .align 2, 0 +_080B63FC: .4byte gUnknown_083CE274 +_080B6400: + cmp r0, 0x2 + bne _080B6420 + strh r0, [r5, 0xC] + b _080B6420 +_080B6408: + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _080B6414 + movs r0, 0x3 + strh r0, [r4] +_080B6414: + movs r2, 0 + ldrsh r0, [r4, r2] + cmp r0, 0x3 + ble _080B6420 + movs r0, 0 + strh r0, [r4] +_080B6420: + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl sub_80B680C + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B62CC + + thumb_func_start sub_80B6438 +sub_80B6438: @ 80B6438 + push {lr} + ldr r0, _080B6458 + movs r1, 0x3 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B645C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0x3 + strh r0, [r1, 0x8] + pop {r0} + bx r0 + .align 2, 0 +_080B6458: .4byte sub_80B64D4 +_080B645C: .4byte gTasks + thumb_func_end sub_80B6438 + + thumb_func_start sub_80B6460 +sub_80B6460: @ 80B6460 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + ldr r0, _080B6498 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B649C + adds r4, r1, r0 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r5, r0 + bne _080B64A0 + cmp r6, 0 + bne _080B64A0 + strh r7, [r4, 0xA] + movs r0, 0x1 + strh r0, [r4, 0xC] + b _080B64CC + .align 2, 0 +_080B6498: .4byte sub_80B64D4 +_080B649C: .4byte gTasks +_080B64A0: + cmp r5, 0x3 + bne _080B64B0 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080B64B0 + cmp r6, 0 + beq _080B64CC +_080B64B0: + ldrh r1, [r4, 0x8] + movs r2, 0x8 + ldrsh r0, [r4, r2] + cmp r0, 0x3 + beq _080B64C2 + lsls r0, r1, 24 + lsrs r0, 24 + bl sub_80B65AC +_080B64C2: + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r7, 0 + bl sub_80B65D4 +_080B64CC: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B6460 + + thumb_func_start sub_80B64D4 +sub_80B64D4: @ 80B64D4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B6548 + adds r4, r1, r0 + ldrh r1, [r4, 0x8] + movs r2, 0x8 + ldrsh r0, [r4, r2] + cmp r0, 0x3 + beq _080B6540 + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B6540 + lsls r0, r1, 24 + lsrs r0, 24 + bl sub_80B654C + lsls r0, 16 + lsrs r0, 16 + ldrb r3, [r4, 0xE] + adds r1, r3, 0 + adds r2, r3, 0 + bl sub_8085C7C + ldrh r1, [r4, 0x12] + movs r2, 0x12 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B6520 + subs r0, r1, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + cmp r0, 0 + bne _080B6540 +_080B6520: + movs r0, 0x2 + strh r0, [r4, 0x12] + ldrh r1, [r4, 0x10] + ldrh r2, [r4, 0xE] + adds r0, r1, r2 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + beq _080B653C + cmp r0, 0 + bne _080B6540 + ldrh r0, [r4, 0xA] + strh r0, [r4, 0xC] +_080B653C: + negs r0, r1 + strh r0, [r4, 0x10] +_080B6540: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B6548: .4byte gTasks + thumb_func_end sub_80B64D4 + + thumb_func_start sub_80B654C +sub_80B654C: @ 80B654C + push {r4-r6,lr} + sub sp, 0x10 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x4 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x87 + lsls r1, 1 + adds r5, r1, 0 + adds r0, r5 + add r6, sp, 0x8 + strh r0, [r6] + movs r0, 0x6 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x86 + lsls r1, 1 + adds r0, r1 + mov r1, sp + adds r1, 0xA + strh r0, [r1] + movs r0, 0x6 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + adds r0, r5 + add r1, sp, 0xC + strh r0, [r1] + mov r0, sp + adds r1, r6, 0 + movs r2, 0x6 + bl memcpy + lsls r4, 1 + mov r1, sp + adds r0, r1, r4 + ldrh r0, [r0] + add sp, 0x10 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80B654C + + thumb_func_start sub_80B65AC +sub_80B65AC: @ 80B65AC + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80B654C + lsls r0, 16 + ldr r2, _080B65CC + lsrs r0, 15 + adds r2, r0, r2 + ldr r1, _080B65D0 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + pop {r0} + bx r0 + .align 2, 0 +_080B65CC: .4byte gPlttBufferFaded +_080B65D0: .4byte gPlttBufferUnfaded + thumb_func_end sub_80B65AC + + thumb_func_start sub_80B65D4 +sub_80B65D4: @ 80B65D4 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + movs r3, 0 + strh r1, [r0, 0x8] + strh r2, [r0, 0xA] + movs r2, 0x1 + strh r2, [r0, 0xC] + movs r1, 0xF + strh r1, [r0, 0xE] + strh r2, [r0, 0x10] + strh r3, [r0, 0x12] + bx lr + thumb_func_end sub_80B65D4 + + thumb_func_start sub_80B65F0 +sub_80B65F0: @ 80B65F0 + push {r4,lr} + ldr r4, _080B660C + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B660C: .4byte sub_80B6630 + thumb_func_end sub_80B65F0 + + thumb_func_start sub_80B6610 +sub_80B6610: @ 80B6610 + push {lr} + ldr r0, _080B6624 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080B6628 + movs r0, 0 + b _080B662A + .align 2, 0 +_080B6624: .4byte sub_80B6630 +_080B6628: + movs r0, 0x1 +_080B662A: + pop {r1} + bx r1 + thumb_func_end sub_80B6610 + + thumb_func_start sub_80B6630 +sub_80B6630: @ 80B6630 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080B6660 + ldr r2, _080B6664 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080B6642: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080B6642 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B6660: .4byte gUnknown_083CE27C +_080B6664: .4byte gTasks + thumb_func_end sub_80B6630 + + thumb_func_start sub_80B6668 +sub_80B6668: @ 80B6668 + ldr r2, _080B667C + movs r1, 0 + strh r1, [r2, 0x4] + strh r1, [r2, 0x6] + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + movs r0, 0 + bx lr + .align 2, 0 +_080B667C: .4byte 0x02000000 + thumb_func_end sub_80B6668 + + thumb_func_start sub_80B6680 +sub_80B6680: @ 80B6680 + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldr r0, _080B66E4 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + ldrh r0, [r4, 0xA] + adds r0, 0x4 + strh r0, [r4, 0xA] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r1, 0x28 + bl Sin + ldr r5, _080B66E8 + ldrb r1, [r5, 0xC] + lsls r1, 2 + add r1, sp + ldr r1, [r1] + strh r0, [r1] + ldrh r0, [r4, 0xA] + adds r0, 0x80 + movs r1, 0xFF + ands r0, r1 + movs r1, 0x28 + bl Sin + ldrb r1, [r5, 0xD] + lsls r1, 2 + add r1, sp + ldr r1, [r1] + strh r0, [r1] + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x3F + ble _080B66DA + ldrb r1, [r5, 0x8] + ldrh r0, [r5, 0xA] + strh r0, [r5, 0x8] + strh r1, [r5, 0xA] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B66DA: + movs r0, 0 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080B66E4: .4byte gUnknown_083CE28C +_080B66E8: .4byte 0x02000000 + thumb_func_end sub_80B6680 + + thumb_func_start sub_80B66EC +sub_80B66EC: @ 80B66EC + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldr r0, _080B6750 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + ldrh r0, [r4, 0xA] + adds r0, 0x4 + strh r0, [r4, 0xA] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r1, 0x28 + bl Sin + ldr r5, _080B6754 + ldrb r1, [r5, 0xC] + lsls r1, 2 + add r1, sp + ldr r1, [r1] + strh r0, [r1] + ldrh r0, [r4, 0xA] + adds r0, 0x80 + movs r1, 0xFF + ands r0, r1 + movs r1, 0x28 + bl Sin + ldrb r1, [r5, 0xD] + lsls r1, 2 + add r1, sp + ldr r1, [r1] + strh r0, [r1] + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x7F + ble _080B6746 + ldrb r1, [r5, 0xC] + ldrb r0, [r5, 0xD] + strb r0, [r5, 0xC] + strb r1, [r5, 0xD] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B6746: + movs r0, 0 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080B6750: .4byte gUnknown_083CE28C +_080B6754: .4byte 0x02000000 + thumb_func_end sub_80B66EC + + thumb_func_start sub_80B6758 +sub_80B6758: @ 80B6758 + push {lr} + ldr r0, _080B6770 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080B6770: .4byte sub_80B6630 + thumb_func_end sub_80B6758 + + thumb_func_start sub_80B6774 +sub_80B6774: @ 80B6774 + push {r4,r5,lr} + ldr r0, _080B67E0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + ldr r4, _080B67E4 + strb r0, [r4, 0xF] + ldr r5, _080B67E8 + ldrb r0, [r4, 0xF] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r3, [r1, 0x5] + movs r2, 0xD + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + movs r3, 0x4 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r4, 0xF] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0, 0x1] + ands r2, r1 + orrs r2, r3 + strb r2, [r0, 0x1] + ldrb r1, [r4, 0xF] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x1 + strh r1, [r0, 0x3A] + ldrb r1, [r4, 0xF] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x2 + strh r1, [r0, 0x3A] + movs r0, 0 + movs r1, 0 + bl sub_80B680C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B67E0: .4byte gSpriteTemplate_83CE640 +_080B67E4: .4byte 0x02000000 +_080B67E8: .4byte gSprites + thumb_func_end sub_80B6774 + + thumb_func_start sub_80B67EC +sub_80B67EC: @ 80B67EC + ldr r3, _080B6804 + lsls r0, 16 + asrs r0, 16 + ldr r1, _080B6808 + ldrb r2, [r1, 0xE] + lsls r1, r2, 3 + adds r1, r2 + adds r0, r1 + adds r0, r3 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080B6804: .4byte gUnknown_083CE294 +_080B6808: .4byte 0x02000000 + thumb_func_end sub_80B67EC + + thumb_func_start sub_80B680C +sub_80B680C: @ 80B680C + push {r4-r6,lr} + adds r5, r1, 0 + lsls r0, 16 + lsls r5, 16 + lsrs r5, 16 + ldr r1, _080B6850 + ldrb r1, [r1, 0xF] + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + ldr r1, _080B6854 + adds r4, r1 + lsrs r6, r0, 16 + asrs r0, 16 + bl sub_80B67EC + lsls r0, 24 + lsrs r0, 21 + adds r0, 0x1B + strh r0, [r4, 0x20] + lsls r0, r5, 16 + asrs r0, 12 + adds r0, 0x50 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0x2E] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x30] + strh r0, [r4, 0x34] + strh r6, [r4, 0x2E] + strh r5, [r4, 0x30] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B6850: .4byte 0x02000000 +_080B6854: .4byte gSprites + thumb_func_end sub_80B680C + + thumb_func_start sub_80B6858 +sub_80B6858: @ 80B6858 + ldr r2, _080B6870 + ldrb r3, [r2, 0xF] + lsls r2, r3, 4 + adds r2, r3 + lsls r2, 2 + ldr r3, _080B6874 + adds r2, r3 + ldrh r3, [r2, 0x2E] + strh r3, [r0] + ldrh r0, [r2, 0x30] + strh r0, [r1] + bx lr + .align 2, 0 +_080B6870: .4byte 0x02000000 +_080B6874: .4byte gSprites + thumb_func_end sub_80B6858 + + thumb_func_start sub_80B6878 +sub_80B6878: @ 80B6878 + push {lr} + movs r0, 0x8 + movs r1, 0x2 + bl sub_80B680C + pop {r0} + bx r0 + thumb_func_end sub_80B6878 + + thumb_func_start sub_80B6888 +sub_80B6888: @ 80B6888 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080B68CC + ldr r4, _080B68D0 + ldrb r1, [r4, 0xF] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r5 + ldrh r3, [r2, 0x36] + ldr r1, _080B68D4 + ands r1, r3 + strh r1, [r2, 0x36] + ldrb r2, [r4, 0xF] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + ldrh r2, [r1, 0x36] + orrs r0, r2 + strh r0, [r1, 0x36] + ldrb r1, [r4, 0xF] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0 + bl StartSpriteAnim + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B68CC: .4byte gSprites +_080B68D0: .4byte 0x02000000 +_080B68D4: .4byte 0xffffff00 + thumb_func_end sub_80B6888 + + thumb_func_start sub_80B68D8 +sub_80B68D8: @ 80B68D8 + push {r4,r5,lr} + lsls r0, 24 + ldr r5, _080B690C + ldr r4, _080B6910 + ldrb r1, [r4, 0xF] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r5 + ldrh r3, [r2, 0x36] + movs r1, 0xFF + ands r1, r3 + strh r1, [r2, 0x36] + ldrb r2, [r4, 0xF] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + lsrs r0, 16 + ldrh r2, [r1, 0x36] + orrs r0, r2 + strh r0, [r1, 0x36] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B690C: .4byte gSprites +_080B6910: .4byte 0x02000000 + thumb_func_end sub_80B68D8 + + thumb_func_start sub_80B6914 +sub_80B6914: @ 80B6914 + push {lr} + ldr r0, _080B6930 + ldrb r1, [r0, 0xF] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B6934 + adds r0, r1 + movs r1, 0x1 + bl StartSpriteAnim + pop {r0} + bx r0 + .align 2, 0 +_080B6930: .4byte 0x02000000 +_080B6934: .4byte gSprites + thumb_func_end sub_80B6914 + + thumb_func_start sub_80B6938 +sub_80B6938: @ 80B6938 + ldr r2, _080B6950 + ldr r0, _080B6954 + ldrb r1, [r0, 0xF] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 27 + lsrs r0, 31 + bx lr + .align 2, 0 +_080B6950: .4byte gSprites +_080B6954: .4byte 0x02000000 + thumb_func_end sub_80B6938 + + thumb_func_start sub_80B6958 +sub_80B6958: @ 80B6958 + push {r4,r5,lr} + sub sp, 0x8 + ldr r1, _080B6988 + mov r0, sp + movs r2, 0x3 + bl memcpy + add r4, sp, 0x4 + mov r5, sp + adds r5, 0x6 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80B6858 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x7 + ble _080B698C + movs r1, 0 + ldrsh r0, [r5, r1] + add r0, sp + ldrb r0, [r0] + b _080B698E + .align 2, 0 +_080B6988: .4byte gUnknown_083CE2AF +_080B698C: + movs r0, 0 +_080B698E: + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80B6958 + + thumb_func_start sub_80B6998 +sub_80B6998: @ 80B6998 + push {r4,r5,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B69B0 + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnim +_080B69B0: + ldrh r1, [r4, 0x36] + movs r0, 0xFF + ands r0, r1 + adds r3, r4, 0 + adds r3, 0x3E + movs r1, 0x1 + ands r0, r1 + lsls r0, 2 + ldrb r1, [r3] + movs r2, 0x5 + negs r2, r2 + ands r2, r1 + orrs r2, r0 + strb r2, [r3] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x8 + bne _080B69DA + movs r0, 0x4 + orrs r2, r0 + strb r2, [r3] +_080B69DA: + ldrb r1, [r3] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080B6A0A + movs r2, 0x36 + ldrsh r0, [r4, r2] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080B6A0A + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080B6A0A + movs r0, 0x30 + ldrsh r1, [r4, r0] + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r1, r0 + beq _080B6A16 +_080B6A0A: + movs r0, 0 + strh r0, [r4, 0x38] + movs r0, 0x1 + strh r0, [r4, 0x3A] + movs r0, 0x2 + strh r0, [r4, 0x3C] +_080B6A16: + ldrh r0, [r4, 0x3C] + subs r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + cmp r0, 0 + bne _080B6A3E + ldrh r1, [r4, 0x3A] + ldrh r2, [r4, 0x38] + adds r0, r1, r2 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + beq _080B6A36 + cmp r0, 0 + bne _080B6A3A +_080B6A36: + negs r0, r1 + strh r0, [r4, 0x3A] +_080B6A3A: + movs r0, 0x2 + strh r0, [r4, 0x3C] +_080B6A3E: + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080B6A74 + ldrh r4, [r4, 0x38] + lsls r5, r4, 24 + lsrs r5, 24 + lsls r4, 16 + asrs r4, 17 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 4 + ldr r2, _080B6A7C + adds r0, r2 + lsrs r0, 16 + adds r1, r4, 0 + adds r2, r5, 0 + adds r3, r5, 0 + bl sub_8085C7C +_080B6A74: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B6A7C: .4byte 0x01010000 + thumb_func_end sub_80B6998 + + thumb_func_start sub_80B6A80 +sub_80B6A80: @ 80B6A80 + push {r4,r5,lr} + ldr r0, _080B6AF8 + movs r1, 0xCC + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B6AFC + strb r0, [r1, 0x10] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r5, _080B6B00 + adds r4, r5 + ldr r1, _080B6B04 + adds r0, r4, 0 + bl SetSubspriteTables + ldr r0, _080B6B08 + movs r1, 0xCC + movs r2, 0x4C + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x3A] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r5 + ldr r1, _080B6B0C + adds r0, r2, 0 + bl SetSubspriteTables + ldr r0, _080B6B10 + movs r1, 0xCC + movs r2, 0x4B + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r3, [r1, 0x5] + movs r2, 0xD + negs r2, r2 + ands r2, r3 + movs r3, 0x4 + orrs r2, r3 + strb r2, [r1, 0x5] + strh r0, [r4, 0x3C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B6AF8: .4byte gSpriteTemplate_83CE5C8 +_080B6AFC: .4byte 0x02000000 +_080B6B00: .4byte gSprites +_080B6B04: .4byte gUnknown_083CE558 +_080B6B08: .4byte gSpriteTemplate_83CE5F8 +_080B6B0C: .4byte gUnknown_083CE560 +_080B6B10: .4byte gSpriteTemplate_83CE5E0 + thumb_func_end sub_80B6A80 + + thumb_func_start sub_80B6B14 +sub_80B6B14: @ 80B6B14 + ldr r2, _080B6B2C + ldrb r1, [r2, 0x10] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B6B30 + adds r0, r1 + movs r1, 0x2 + strh r1, [r0, 0x2E] + ldrb r1, [r2, 0xE] + strh r1, [r0, 0x30] + bx lr + .align 2, 0 +_080B6B2C: .4byte 0x02000000 +_080B6B30: .4byte gSprites + thumb_func_end sub_80B6B14 + + thumb_func_start sub_80B6B34 +sub_80B6B34: @ 80B6B34 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080B6B58 +_080B6B3A: + movs r1, 0x2E + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080B6B3A + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B6B58: .4byte gUnknown_083CE2B4 + thumb_func_end sub_80B6B34 + + thumb_func_start sub_80B6B5C +sub_80B6B5C: @ 80B6B5C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x3A + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r3, _080B6B90 + adds r1, r3 + movs r2, 0x3C + ldrsh r0, [r4, r2] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldr r0, _080B6B94 + ldrb r0, [r0, 0xE] + bl sub_80B6C48 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B6B90: .4byte gSprites +_080B6B94: .4byte 0x02000000 + thumb_func_end sub_80B6B5C + + thumb_func_start sub_80B6B98 +sub_80B6B98: @ 80B6B98 + movs r0, 0 + bx lr + thumb_func_end sub_80B6B98 + + thumb_func_start sub_80B6B9C +sub_80B6B9C: @ 80B6B9C + push {r4,r5,lr} + adds r3, r0, 0 + movs r0, 0x3A + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r2, _080B6C00 + adds r4, r0, r2 + movs r0, 0x3C + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r5, r0, r2 + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080B6BF8 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + ldr r0, _080B6C04 + strh r0, [r4, 0x26] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r3, 0x30] + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + bl __modsi3 + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_80B6C48 +_080B6BF8: + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080B6C00: .4byte gSprites +_080B6C04: .4byte 0x0000fffc + thumb_func_end sub_80B6B9C + + thumb_func_start sub_80B6C08 +sub_80B6C08: @ 80B6C08 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x3A + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B6C44 + adds r2, r0, r1 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + ldrh r0, [r2, 0x26] + adds r0, 0x1 + strh r0, [r2, 0x26] + lsls r0, 16 + cmp r0, 0 + blt _080B6C3C + movs r0, 0 + strh r0, [r2, 0x26] + movs r0, 0x1 + strh r0, [r4, 0x2E] +_080B6C3C: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080B6C44: .4byte gSprites + thumb_func_end sub_80B6C08 + + thumb_func_start sub_80B6C48 +sub_80B6C48: @ 80B6C48 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r5, r0, 0 + adds r6, r1, 0 + mov r8, r2 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _080B6CA0 + lsls r4, r5, 1 + adds r0, r4, r0 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 4 + mov r1, r8 + ldrb r2, [r1, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + mov r0, r8 + strb r1, [r0, 0x5] + ldr r0, _080B6CA4 + adds r4, r0 + ldrh r0, [r4] + bl GetSpriteTileStartByTag + adds r1, r6, 0 + adds r1, 0x40 + strh r0, [r1] + adds r6, 0x42 + movs r1, 0x3F + ands r1, r5 + ldrb r2, [r6] + movs r0, 0x40 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r6] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B6CA0: .4byte gUnknown_083CE2C4 +_080B6CA4: .4byte gUnknown_083CE2CA + thumb_func_end sub_80B6C48 + + thumb_func_start sub_80B6CA8 +sub_80B6CA8: @ 80B6CA8 + push {r4,r5,lr} + ldr r0, _080B6CF4 + movs r1, 0xCC + movs r2, 0x6C + movs r3, 0 + bl CreateSprite + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080B6CF8 + adds r0, r4 + ldr r5, _080B6CFC + adds r1, r5, 0 + bl SetSubspriteTables + ldr r0, _080B6D00 + movs r1, 0xCC + movs r2, 0x84 + movs r3, 0 + bl CreateSprite + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r1, r5, 0 + bl SetSubspriteTables + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B6CF4: .4byte gSpriteTemplate_83CE610 +_080B6CF8: .4byte gSprites +_080B6CFC: .4byte gUnknown_083CE578 +_080B6D00: .4byte gSpriteTemplate_83CE628 + thumb_func_end sub_80B6CA8 + + thumb_func_start sub_80B6D04 +sub_80B6D04: @ 80B6D04 + push {r4-r6,lr} + ldr r4, _080B6D8C + ldrh r1, [r4, 0x2] + subs r1, 0x1 + lsls r1, 3 + adds r1, 0x4 + ldr r0, _080B6D90 + lsls r1, 16 + asrs r1, 16 + movs r2, 0x28 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, _080B6D94 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + ldrh r0, [r4, 0x2] + lsls r0, 3 + adds r0, 0x4 + lsls r0, 16 + lsrs r1, r0, 16 + movs r5, 0 + ldr r0, [r4, 0x34] + ldrb r0, [r0, 0x1] + cmp r5, r0 + bcs _080B6D86 + adds r6, r3, 0 +_080B6D4A: + lsls r4, r1, 16 + asrs r4, 16 + ldr r0, _080B6D98 + adds r1, r4, 0 + movs r2, 0x2C + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + strh r5, [r0, 0x2E] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x8 + lsls r4, 16 + lsrs r1, r4, 16 + ldr r0, _080B6D8C + ldr r0, [r0, 0x34] + ldrb r0, [r0, 0x1] + cmp r5, r0 + bcc _080B6D4A +_080B6D86: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B6D8C: .4byte 0x02000000 +_080B6D90: .4byte gSpriteTemplate_83CE658 +_080B6D94: .4byte gSprites +_080B6D98: .4byte gSpriteTemplate_83CE670 + thumb_func_end sub_80B6D04 + + thumb_func_start sub_80B6D9C +sub_80B6D9C: @ 80B6D9C + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldr r1, _080B6DE4 + mov r0, sp + movs r2, 0x8 + bl memcpy + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B6DC0 + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080B6DCE +_080B6DC0: + movs r0, 0x8 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + strh r0, [r4, 0x30] +_080B6DCE: + movs r1, 0x30 + ldrsh r0, [r4, r1] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4, 0x24] + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B6DE4: .4byte gUnknown_083CE2D0 + thumb_func_end sub_80B6D9C + + thumb_func_start sub_80B6DE8 +sub_80B6DE8: @ 80B6DE8 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldr r1, _080B6E10 + mov r0, sp + movs r2, 0x8 + bl memcpy + bl sub_80B6F44 + lsls r0, 24 + ldrh r1, [r4, 0x2E] + lsls r1, 24 + cmp r0, r1 + beq _080B6E14 + movs r0, 0 + strh r0, [r4, 0x26] + strh r0, [r4, 0x30] + b _080B6E3A + .align 2, 0 +_080B6E10: .4byte gUnknown_083CE2D8 +_080B6E14: + movs r1, 0x30 + ldrsh r0, [r4, r1] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080B6E3C + ldrh r0, [r4, 0x30] + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + strh r0, [r4, 0x30] + movs r0, 0 +_080B6E3A: + strh r0, [r4, 0x32] +_080B6E3C: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B6DE8 + + thumb_func_start sub_80B6E44 +sub_80B6E44: @ 80B6E44 + push {lr} + ldr r1, _080B6E5C + ldr r0, _080B6E60 + ldr r0, [r0, 0x34] + ldrb r0, [r0, 0x2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .align 2, 0 +_080B6E5C: .4byte gUnknown_083CE2E0 +_080B6E60: .4byte 0x02000000 + thumb_func_end sub_80B6E44 + + thumb_func_start nullsub_40 +nullsub_40: @ 80B6E64 + bx lr + thumb_func_end nullsub_40 + + thumb_func_start sub_80B6E68 +sub_80B6E68: @ 80B6E68 + push {lr} + sub sp, 0x4 + ldr r0, _080B6EB0 + ldrh r1, [r0, 0x3E] + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_805983C + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B6EB4 + movs r2, 0 + str r2, [sp] + movs r2, 0x38 + movs r3, 0x18 + bl AddPseudoFieldObject + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080B6EB8 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + movs r1, 0x4 + bl StartSpriteAnim + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080B6EB0: .4byte 0x02000000 +_080B6EB4: .4byte SpriteCallbackDummy +_080B6EB8: .4byte gSprites + thumb_func_end sub_80B6E68 + + thumb_func_start sub_80B6EBC +sub_80B6EBC: @ 80B6EBC + push {r4,lr} + ldr r0, _080B6EF0 + movs r1, 0x34 + movs r2, 0x18 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _080B6EF4 + adds r4, r0 + ldr r1, _080B6EF8 + adds r0, r4, 0 + bl SetSubspriteTables + ldrb r0, [r4, 0x5] + movs r1, 0xC + orrs r0, r1 + strb r0, [r4, 0x5] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B6EF0: .4byte gSpriteTemplate_83CE688 +_080B6EF4: .4byte gSprites +_080B6EF8: .4byte gUnknown_083CE580 + thumb_func_end sub_80B6EBC + + thumb_func_start sub_80B6EFC +sub_80B6EFC: @ 80B6EFC + push {lr} + sub sp, 0x8 + bl sub_809D51C + ldr r3, _080B6F38 + ldrh r0, [r3, 0x3E] + ldr r1, _080B6F3C + movs r2, 0 + str r2, [sp] + ldr r2, [r3, 0x44] + str r2, [sp, 0x4] + movs r2, 0x34 + movs r3, 0x18 + bl sub_809D2FC + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B6F40 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x5] + movs r2, 0xC + orrs r0, r2 + strb r0, [r1, 0x5] + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080B6F38: .4byte 0x02000000 +_080B6F3C: .4byte SpriteCallbackDummy +_080B6F40: .4byte gSprites + thumb_func_end sub_80B6EFC + + thumb_func_start sub_80B6F44 +sub_80B6F44: @ 80B6F44 + push {r4,lr} + movs r2, 0 + ldr r1, _080B6F64 + ldr r0, [r1, 0x34] + ldrb r0, [r0, 0x1] + adds r4, r1, 0 + cmp r2, r0 + bcs _080B6F72 + adds r1, 0x11 + adds r3, r0, 0 +_080B6F58: + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080B6F68 + adds r0, r2, 0 + b _080B6F7C + .align 2, 0 +_080B6F64: .4byte 0x02000000 +_080B6F68: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, r3 + bcc _080B6F58 +_080B6F72: + ldr r0, [r4, 0x34] + ldrb r0, [r0, 0x1] + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 +_080B6F7C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80B6F44 + + thumb_func_start sub_80B6F84 +sub_80B6F84: @ 80B6F84 + push {lr} + ldr r2, _080B6FA8 + ldr r0, [r2, 0x34] + ldrb r0, [r0, 0x1] + subs r0, 0x1 + lsls r1, r0, 24 + cmp r1, 0 + ble _080B6FB4 + adds r3, r2, 0 + adds r3, 0x11 +_080B6F98: + asrs r2, r1, 24 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, 0xFF + beq _080B6FAC + lsrs r0, r1, 24 + b _080B6FB6 + .align 2, 0 +_080B6FA8: .4byte 0x02000000 +_080B6FAC: + subs r0, r2, 0x1 + lsls r1, r0, 24 + cmp r1, 0 + bgt _080B6F98 +_080B6FB4: + movs r0, 0 +_080B6FB6: + pop {r1} + bx r1 + thumb_func_end sub_80B6F84 + + thumb_func_start sub_80B6FBC +sub_80B6FBC: @ 80B6FBC + push {r4,lr} + bl sub_80B6F84 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080B7000 + adds r0, 0x11 + adds r4, r0 + movs r0, 0 + strb r0, [r4] + bl sub_80B7960 + movs r0, 0xFF + strb r0, [r4] + bl sub_80B6958 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080B6FEA + cmp r0, 0x2 + bne _080B6FF4 +_080B6FEA: + movs r0, 0x1 + movs r1, 0 + movs r2, 0x1 + bl sub_80B6460 +_080B6FF4: + movs r0, 0x17 + bl PlaySE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7000: .4byte 0x02000000 + thumb_func_end sub_80B6FBC + + thumb_func_start sub_80B7004 +sub_80B7004: @ 80B7004 + push {r4,r5,lr} + sub sp, 0x4 + mov r5, sp + adds r5, 0x2 + mov r0, sp + adds r1, r5, 0 + bl sub_80B6858 + mov r4, sp + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + bl sub_80B67EC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + mov r0, sp + movs r2, 0 + ldrsh r0, [r0, r2] + movs r2, 0 + ldrsh r1, [r5, r2] + bl sub_80B7768 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + movs r4, 0x1 + cmp r0, 0xFF + bne _080B7046 + bl sub_80B7104 + b _080B704E +_080B7046: + cmp r0, 0xFE + bne _080B7054 + bl sub_80B713C +_080B704E: + lsls r0, 24 + lsrs r4, r0, 24 + b _080B705A +_080B7054: + adds r0, r1, 0 + bl sub_80B7174 +_080B705A: + bl sub_80B7960 + movs r0, 0x5 + bl PlaySE + cmp r4, 0 + beq _080B7084 + bl sub_80B6F84 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B7080 + ldr r1, [r1, 0x34] + ldrb r1, [r1, 0x1] + subs r1, 0x1 + cmp r0, r1 + bne _080B7084 + movs r0, 0x1 + b _080B7086 + .align 2, 0 +_080B7080: .4byte 0x02000000 +_080B7084: + movs r0, 0 +_080B7086: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80B7004 + + thumb_func_start sub_80B7090 +sub_80B7090: @ 80B7090 + push {r4-r7,lr} + bl sub_80B6F84 + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, r5, 0 + ldr r0, _080B70C8 + adds r0, 0x11 + adds r0, r5, r0 + ldrb r4, [r0] + adds r6, r4, 0 + adds r0, r4, 0 + bl sub_80B7198 + lsls r0, 24 + cmp r0, 0 + beq _080B70D6 + adds r0, r4, 0 + bl sub_80B7264 + lsls r0, 24 + cmp r0, 0 + beq _080B70CC + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80B7370 + b _080B70F4 + .align 2, 0 +_080B70C8: .4byte 0x02000000 +_080B70CC: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80B73CC + b _080B70F4 +_080B70D6: + adds r0, r4, 0 + bl sub_80B71E4 + lsls r0, 24 + cmp r0, 0 + beq _080B70EC + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80B7474 + b _080B70F4 +_080B70EC: + adds r0, r6, 0 + adds r1, r7, 0 + bl sub_80B72A4 +_080B70F4: + bl sub_80B7960 + movs r0, 0x5 + bl PlaySE + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B7090 + + thumb_func_start sub_80B7104 +sub_80B7104: @ 80B7104 + push {r4,r5,lr} + bl sub_80B6F84 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080B7128 + adds r0, 0x11 + adds r0, r5, r0 + ldrb r4, [r0] + adds r0, r4, 0 + bl sub_80B720C + lsls r0, 24 + cmp r0, 0 + bne _080B712C + movs r0, 0 + b _080B7136 + .align 2, 0 +_080B7128: .4byte 0x02000000 +_080B712C: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80B72A4 + movs r0, 0x1 +_080B7136: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80B7104 + + thumb_func_start sub_80B713C +sub_80B713C: @ 80B713C + push {r4,r5,lr} + bl sub_80B6F84 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080B7160 + adds r0, 0x11 + adds r0, r5, r0 + ldrb r4, [r0] + adds r0, r4, 0 + bl sub_80B7264 + lsls r0, 24 + cmp r0, 0 + bne _080B7164 + movs r0, 0 + b _080B716E + .align 2, 0 +_080B7160: .4byte 0x02000000 +_080B7164: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80B7370 + movs r0, 0x1 +_080B716E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80B713C + + thumb_func_start sub_80B7174 +sub_80B7174: @ 80B7174 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80B6F44 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B7194 + adds r1, 0x11 + adds r0, r1 + strb r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7194: .4byte 0x02000000 + thumb_func_end sub_80B7174 + + thumb_func_start sub_80B7198 +sub_80B7198: @ 80B7198 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xC9 + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0x13 + bls _080B71DA + adds r0, r1, 0 + adds r0, 0x79 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _080B71DA + adds r0, r1, 0 + adds r0, 0x74 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _080B71DA + adds r0, r1, 0 + adds r0, 0x6F + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _080B71DA + adds r0, r1, 0 + adds r0, 0x6A + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B71DE +_080B71DA: + movs r0, 0x1 + b _080B71E0 +_080B71DE: + movs r0, 0 +_080B71E0: + pop {r1} + bx r1 + thumb_func_end sub_80B7198 + + thumb_func_start sub_80B71E4 +sub_80B71E4: @ 80B71E4 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xB5 + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0x4 + bls _080B7202 + adds r0, r1, 0 + adds r0, 0x65 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B7206 +_080B7202: + movs r0, 0x1 + b _080B7208 +_080B7206: + movs r0, 0 +_080B7208: + pop {r1} + bx r1 + thumb_func_end sub_80B71E4 + + thumb_func_start sub_80B720C +sub_80B720C: @ 80B720C + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xFA + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0xE + bls _080B725A + adds r0, r1, 0 + subs r0, 0x1A + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _080B725A + adds r0, r1, 0 + subs r0, 0x4B + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _080B725A + adds r0, r1, 0 + subs r0, 0x56 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xE + bls _080B725A + adds r0, r1, 0 + subs r0, 0x6A + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _080B725A + adds r0, r1, 0 + adds r0, 0x65 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B725E +_080B725A: + movs r0, 0x1 + b _080B7260 +_080B725E: + movs r0, 0 +_080B7260: + pop {r1} + bx r1 + thumb_func_end sub_80B720C + + thumb_func_start sub_80B7264 +sub_80B7264: @ 80B7264 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xE6 + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0x4 + bls _080B729A + adds r0, r1, 0 + subs r0, 0x46 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _080B729A + adds r0, r1, 0 + subs r0, 0x6A + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _080B729A + adds r0, r1, 0 + adds r0, 0x6A + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B729E +_080B729A: + movs r0, 0x1 + b _080B72A0 +_080B729E: + movs r0, 0 +_080B72A0: + pop {r1} + bx r1 + thumb_func_end sub_80B7264 + + thumb_func_start sub_80B72A4 +sub_80B72A4: @ 80B72A4 + push {lr} + lsls r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsrs r2, r0, 24 + movs r3, 0xFA + lsls r3, 24 + adds r0, r3 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B72C0 + adds r0, r2, 0 + adds r0, 0x31 + b _080B735A +_080B72C0: + adds r0, r2, 0 + subs r0, 0xB + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B72D2 + adds r0, r2, 0 + adds r0, 0x31 + b _080B735A +_080B72D2: + adds r0, r2, 0 + subs r0, 0x10 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B72E4 + adds r0, r2, 0 + adds r0, 0x31 + b _080B735A +_080B72E4: + adds r0, r2, 0 + subs r0, 0x1A + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B72F6 + adds r0, r2, 0 + adds r0, 0x2C + b _080B735A +_080B72F6: + adds r0, r2, 0 + subs r0, 0x4B + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _080B7356 + adds r0, r2, 0 + subs r0, 0x56 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B7314 + adds r0, r2, 0 + adds r0, 0x31 + b _080B735A +_080B7314: + adds r0, r2, 0 + subs r0, 0x5B + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B7326 + adds r0, r2, 0 + adds r0, 0x31 + b _080B735A +_080B7326: + adds r0, r2, 0 + subs r0, 0x60 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B7338 + adds r0, r2, 0 + adds r0, 0x31 + b _080B735A +_080B7338: + adds r0, r2, 0 + subs r0, 0x6A + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B734A + adds r0, r2, 0 + adds r0, 0x2C + b _080B735A +_080B734A: + adds r0, r2, 0 + adds r0, 0x65 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B735E +_080B7356: + adds r0, r2, 0 + adds r0, 0xFB +_080B735A: + lsls r0, 24 + lsrs r2, r0, 24 +_080B735E: + ldr r0, _080B736C + adds r0, 0x11 + adds r0, r1, r0 + strb r2, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080B736C: .4byte 0x02000000 + thumb_func_end sub_80B72A4 + + thumb_func_start sub_80B7370 +sub_80B7370: @ 80B7370 + push {lr} + lsls r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsrs r2, r0, 24 + movs r3, 0xE6 + lsls r3, 24 + adds r0, r3 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B738C + adds r0, r2, 0 + adds r0, 0x31 + b _080B73B8 +_080B738C: + adds r0, r2, 0 + subs r0, 0x46 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _080B73B6 + adds r0, r2, 0 + subs r0, 0x6A + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B73AA + adds r0, r2, 0 + adds r0, 0x31 + b _080B73B8 +_080B73AA: + adds r0, r2, 0 + adds r0, 0x6A + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B73BC +_080B73B6: + adds r0, r2, 0x5 +_080B73B8: + lsls r0, 24 + lsrs r2, r0, 24 +_080B73BC: + ldr r0, _080B73C8 + adds r0, 0x11 + adds r0, r1, r0 + strb r2, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080B73C8: .4byte 0x02000000 + thumb_func_end sub_80B7370 + + thumb_func_start sub_80B73CC +sub_80B73CC: @ 80B73CC + push {lr} + lsls r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsrs r2, r0, 24 + movs r3, 0xC9 + lsls r3, 24 + adds r0, r3 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B73E8 + adds r0, r2, 0 + adds r0, 0xCF + b _080B745E +_080B73E8: + adds r0, r2, 0 + subs r0, 0x3C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B73FA + adds r0, r2, 0 + adds r0, 0xCF + b _080B745E +_080B73FA: + adds r0, r2, 0 + subs r0, 0x41 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B740C + adds r0, r2, 0 + adds r0, 0xCF + b _080B745E +_080B740C: + adds r0, r2, 0 + subs r0, 0x46 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _080B745A + adds r0, r2, 0 + adds r0, 0x79 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B742A + adds r0, r2, 0 + adds r0, 0xCF + b _080B745E +_080B742A: + adds r0, r2, 0 + adds r0, 0x74 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B743C + adds r0, r2, 0 + adds r0, 0xCF + b _080B745E +_080B743C: + adds r0, r2, 0 + adds r0, 0x6F + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B744E + adds r0, r2, 0 + adds r0, 0xCF + b _080B745E +_080B744E: + adds r0, r2, 0 + adds r0, 0x6A + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B7462 +_080B745A: + adds r0, r2, 0 + adds r0, 0xD4 +_080B745E: + lsls r0, 24 + lsrs r2, r0, 24 +_080B7462: + ldr r0, _080B7470 + adds r0, 0x11 + adds r0, r1, r0 + strb r2, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080B7470: .4byte 0x02000000 + thumb_func_end sub_80B73CC + + thumb_func_start sub_80B7474 +sub_80B7474: @ 80B7474 + push {lr} + lsls r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsrs r2, r0, 24 + movs r3, 0xB5 + lsls r3, 24 + adds r0, r3 + lsrs r0, 24 + cmp r0, 0x4 + bls _080B7496 + adds r0, r2, 0 + adds r0, 0x65 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080B749E +_080B7496: + adds r0, r2, 0 + adds r0, 0xCF + lsls r0, 24 + lsrs r2, r0, 24 +_080B749E: + ldr r0, _080B74AC + adds r0, 0x11 + adds r0, r1, r0 + strb r2, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080B74AC: .4byte 0x02000000 + thumb_func_end sub_80B7474 + + thumb_func_start sub_80B74B0 +sub_80B74B0: @ 80B74B0 + push {r4,lr} + movs r1, 0 + ldr r3, _080B74E4 + ldr r0, [r3, 0x34] + ldrb r0, [r0, 0x1] + cmp r1, r0 + bcs _080B74F6 + adds r2, r3, 0 + adds r4, r3, 0 + adds r4, 0x11 +_080B74C4: + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _080B74E8 + cmp r0, 0xFF + beq _080B74E8 + ldr r0, [r2, 0x38] + ldr r1, [r2, 0x34] + ldrb r2, [r1, 0x1] + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r1, r4, 0 + bl StringCopyN + b _080B74F6 + .align 2, 0 +_080B74E4: .4byte 0x02000000 +_080B74E8: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, [r3, 0x34] + ldrb r0, [r0, 0x1] + cmp r1, r0 + bcc _080B74C4 +_080B74F6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B74B0 + + thumb_func_start sub_80B74FC +sub_80B74FC: @ 80B74FC + push {r4,lr} + ldr r0, _080B7528 + ldr r1, _080B752C + ldr r1, [r1, 0x38] + bl StringCopy + ldr r4, _080B7530 + ldr r1, _080B7534 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080B7538 + bl BasicInitMenuWindow + bl MenuDisplayMessageBox + adds r0, r4, 0 + bl sub_8072044 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7528: .4byte gStringVar1 +_080B752C: .4byte 0x02000000 +_080B7530: .4byte gStringVar4 +_080B7534: .4byte gOtherText_SentToPC +_080B7538: .4byte gWindowConfig_81E6E88 + thumb_func_end sub_80B74FC + + thumb_func_start sub_80B753C +sub_80B753C: @ 80B753C + push {lr} + ldr r0, _080B7550 + bl LoadSpriteSheets + ldr r0, _080B7554 + bl LoadSpritePalettes + pop {r0} + bx r0 + .align 2, 0 +_080B7550: .4byte gUnknown_083CE6A0 +_080B7554: .4byte gUnknown_083CE708 + thumb_func_end sub_80B753C + + thumb_func_start sub_80B7558 +sub_80B7558: @ 80B7558 + push {lr} + bl sub_80B7568 + bl sub_80B75B0 + pop {r0} + bx r0 + thumb_func_end sub_80B7558 + + thumb_func_start sub_80B7568 +sub_80B7568: @ 80B7568 + push {r4,lr} + ldr r4, _080B759C + ldr r3, _080B75A0 + ldrh r0, [r3] + lsls r0, 5 + movs r1, 0xC0 + lsls r1, 19 + adds r0, r1 + ldr r1, _080B75A4 + str r4, [r1] + str r0, [r1, 0x4] + ldr r2, _080B75A8 + str r2, [r1, 0x8] + ldr r0, [r1, 0x8] + ldrh r0, [r3] + lsls r0, 5 + ldr r3, _080B75AC + adds r0, r3 + str r4, [r1] + str r0, [r1, 0x4] + str r2, [r1, 0x8] + ldr r0, [r1, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B759C: .4byte gNamingScreenMenu_Gfx +_080B75A0: .4byte gMenuMessageBoxContentTileOffset +_080B75A4: .4byte 0x040000d4 +_080B75A8: .4byte 0x80000400 +_080B75AC: .4byte 0x06008000 + thumb_func_end sub_80B7568 + + thumb_func_start sub_80B75B0 +sub_80B75B0: @ 80B75B0 + push {lr} + ldr r0, _080B75C0 + movs r1, 0 + movs r2, 0x80 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_080B75C0: .4byte gNamingScreenPalettes + thumb_func_end sub_80B75B0 + + thumb_func_start sub_80B75C4 +sub_80B75C4: @ 80B75C4 + push {r4,r5,lr} + sub sp, 0x8 + ldr r0, _080B7608 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + ldr r4, _080B760C + ldr r5, _080B7610 + ldrb r1, [r5, 0xE] + lsls r1, 3 + adds r1, r4 + ldrb r0, [r5, 0xC] + lsls r0, 2 + add r0, sp + ldr r0, [r0] + ldr r1, [r1] + bl _call_via_r1 + ldrb r1, [r5, 0xE] + lsls r1, 3 + adds r4, 0x4 + adds r1, r4 + ldrb r0, [r5, 0xD] + lsls r0, 2 + add r0, sp + ldr r0, [r0] + ldr r1, [r1] + bl _call_via_r1 + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B7608: .4byte gUnknown_083CE308 +_080B760C: .4byte gUnknown_083CE2F0 +_080B7610: .4byte 0x02000000 + thumb_func_end sub_80B75C4 + + thumb_func_start sub_80B7614 +sub_80B7614: @ 80B7614 + push {lr} + sub sp, 0x8 + ldr r0, _080B7644 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + ldr r0, _080B7648 + ldr r2, _080B764C + ldrb r1, [r2, 0xE] + lsls r1, 3 + adds r0, 0x4 + adds r1, r0 + ldrb r0, [r2, 0xD] + lsls r0, 2 + add r0, sp + ldr r0, [r0] + ldr r1, [r1] + bl _call_via_r1 + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080B7644: .4byte gUnknown_083CE308 +_080B7648: .4byte gUnknown_083CE2F0 +_080B764C: .4byte 0x02000000 + thumb_func_end sub_80B7614 + + thumb_func_start sub_80B7650 +sub_80B7650: @ 80B7650 + push {lr} + ldr r1, _080B765C + bl sub_80B7698 + pop {r0} + bx r0 + .align 2, 0 +_080B765C: .4byte gUnknown_083CE748 + thumb_func_end sub_80B7650 + + thumb_func_start sub_80B7660 +sub_80B7660: @ 80B7660 + push {lr} + ldr r1, _080B766C + bl sub_80B7698 + pop {r0} + bx r0 + .align 2, 0 +_080B766C: .4byte gUnknown_083CEBF8 + thumb_func_end sub_80B7660 + + thumb_func_start sub_80B7670 +sub_80B7670: @ 80B7670 + push {lr} + ldr r1, _080B767C + bl sub_80B7698 + pop {r0} + bx r0 + .align 2, 0 +_080B767C: .4byte gUnknown_083CF0A8 + thumb_func_end sub_80B7670 + + thumb_func_start sub_80B7680 +sub_80B7680: @ 80B7680 + push {lr} + ldr r0, _080B7690 + ldr r1, _080B7694 + bl sub_80B76E0 + pop {r0} + bx r0 + .align 2, 0 +_080B7690: .4byte 0x0600f000 +_080B7694: .4byte gUnknown_08E86258 + thumb_func_end sub_80B7680 + + thumb_func_start sub_80B7698 +sub_80B7698: @ 80B7698 + push {r4-r7,lr} + mov r12, r0 + adds r3, r1, 0 + movs r4, 0 + ldr r0, _080B76DC + ldrh r6, [r0] +_080B76A4: + movs r1, 0 + lsls r4, 16 + asrs r5, r4, 11 +_080B76AA: + lsls r0, r1, 16 + asrs r0, 16 + adds r1, r5, r0 + lsls r1, 1 + add r1, r12 + ldrh r7, [r3] + adds r2, r6, r7 + strh r2, [r1] + adds r0, 0x1 + lsls r0, 16 + adds r3, 0x2 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0x1D + ble _080B76AA + movs r1, 0x80 + lsls r1, 9 + adds r0, r4, r1 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080B76A4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B76DC: .4byte gMenuMessageBoxContentTileOffset + thumb_func_end sub_80B7698 + + thumb_func_start sub_80B76E0 +sub_80B76E0: @ 80B76E0 + push {r4-r7,lr} + mov r12, r0 + adds r3, r1, 0 + movs r4, 0 + ldr r0, _080B7728 + ldrh r6, [r0] +_080B76EC: + movs r1, 0 + lsls r5, r4, 16 + asrs r4, r5, 11 +_080B76F2: + lsls r0, r1, 16 + asrs r0, 16 + adds r1, r4, r0 + lsls r1, 1 + add r1, r12 + ldrh r7, [r3] + adds r2, r6, r7 + strh r2, [r1] + adds r0, 0x1 + lsls r0, 16 + adds r3, 0x2 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0x1D + ble _080B76F2 + adds r3, 0x4 + movs r1, 0x80 + lsls r1, 9 + adds r0, r5, r1 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080B76EC + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B7728: .4byte gMenuMessageBoxContentTileOffset + thumb_func_end sub_80B76E0 + + thumb_func_start sub_80B772C +sub_80B772C: @ 80B772C + push {lr} + ldr r1, _080B773C + ldrb r0, [r1, 0xE] + ldrb r1, [r1, 0xC] + bl nullsub_20 + pop {r0} + bx r0 + .align 2, 0 +_080B773C: .4byte 0x02000000 + thumb_func_end sub_80B772C + + thumb_func_start sub_80B7740 +sub_80B7740: @ 80B7740 + push {r4,lr} + ldr r4, _080B7760 + ldrb r0, [r4, 0xE] + adds r0, 0x1 + movs r1, 0x3 + bl __modsi3 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r4, 0xD] + bl nullsub_20 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7760: .4byte 0x02000000 + thumb_func_end sub_80B7740 + + thumb_func_start nullsub_20 +nullsub_20: @ 80B7764 + bx lr + thumb_func_end nullsub_20 + + thumb_func_start sub_80B7768 +sub_80B7768: @ 80B7768 + ldr r3, _080B778C + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + lsls r2, r1, 2 + adds r2, r1 + lsls r2, 2 + adds r0, r2 + ldr r1, _080B7790 + ldrb r2, [r1, 0xE] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + adds r0, r1 + adds r0, r3 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080B778C: .4byte gUnknown_083CE3A8 +_080B7790: .4byte 0x02000000 + thumb_func_end sub_80B7768 + + thumb_func_start sub_80B7794 +sub_80B7794: @ 80B7794 + push {r4-r6,lr} + ldr r6, _080B77EC + ldr r4, _080B77F0 + ldrb r0, [r4, 0xC] + lsls r0, 2 + ldrb r1, [r4, 0xE] + lsls r1, 4 + adds r0, r1 + adds r0, r6 + ldr r0, [r0] + bl BasicInitMenuWindow + ldr r5, _080B77F4 + ldrb r0, [r4, 0xE] + lsls r0, 3 + adds r0, r5 + ldr r0, [r0] + bl _call_via_r0 + ldrb r1, [r4, 0xD] + lsls r1, 2 + ldrb r0, [r4, 0xE] + lsls r0, 4 + adds r1, r0 + adds r6, 0x8 + adds r1, r6 + ldr r0, [r1] + bl BasicInitMenuWindow + ldrb r0, [r4, 0xE] + lsls r0, 3 + adds r5, 0x4 + adds r0, r5 + ldr r0, [r0] + bl _call_via_r0 + bl sub_80B772C + bl sub_80B7740 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B77EC: .4byte gUnknown_083CE328 +_080B77F0: .4byte 0x02000000 +_080B77F4: .4byte gUnknown_083CE310 + thumb_func_end sub_80B7794 + + thumb_func_start sub_80B77F8 +sub_80B77F8: @ 80B77F8 + push {r4,lr} + ldr r2, _080B782C + ldr r4, _080B7830 + ldrb r1, [r4, 0xD] + lsls r1, 2 + ldrb r0, [r4, 0xE] + lsls r0, 4 + adds r1, r0 + adds r2, 0x8 + adds r1, r2 + ldr r0, [r1] + bl BasicInitMenuWindow + ldr r1, _080B7834 + ldrb r0, [r4, 0xE] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_80B7740 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B782C: .4byte gUnknown_083CE328 +_080B7830: .4byte 0x02000000 +_080B7834: .4byte gUnknown_083CE310 + thumb_func_end sub_80B77F8 + + thumb_func_start sub_80B7838 +sub_80B7838: @ 80B7838 + push {lr} + movs r0, 0x1 + bl sub_80B785C + pop {r0} + bx r0 + thumb_func_end sub_80B7838 + + thumb_func_start sub_80B7844 +sub_80B7844: @ 80B7844 + push {lr} + movs r0, 0 + bl sub_80B785C + pop {r0} + bx r0 + thumb_func_end sub_80B7844 + + thumb_func_start sub_80B7850 +sub_80B7850: @ 80B7850 + push {lr} + movs r0, 0x2 + bl sub_80B785C + pop {r0} + bx r0 + thumb_func_end sub_80B7850 + + thumb_func_start sub_80B785C +sub_80B785C: @ 80B785C + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + movs r5, 0x9 + lsls r1, r0, 2 + adds r1, r0 + lsls r6, r1, 4 +_080B786C: + lsls r4, r2, 16 + asrs r4, 16 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 2 + ldr r1, _080B78A4 + adds r0, r1 + adds r0, r6, r0 + lsls r2, r5, 24 + lsrs r2, 24 + movs r1, 0x3 + bl MenuPrint + adds r4, 0x1 + lsls r4, 16 + lsls r0, r5, 16 + movs r1, 0x80 + lsls r1, 10 + adds r0, r1 + lsrs r5, r0, 16 + lsrs r2, r4, 16 + asrs r4, 16 + cmp r4, 0x3 + ble _080B786C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B78A4: .4byte gUnknown_083CE3A8 + thumb_func_end sub_80B785C + + thumb_func_start sub_80B78A8 +sub_80B78A8: @ 80B78A8 + push {r4,lr} + ldr r0, _080B78E4 + bl BasicInitMenuWindow + ldr r1, _080B78E8 + ldr r4, _080B78EC + ldrb r0, [r4, 0x1] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r1, _080B78F0 + ldr r0, [r4, 0x34] + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, [r4, 0x34] + ldr r0, [r0, 0x8] + movs r1, 0x9 + movs r2, 0x2 + bl MenuPrint + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B78E4: .4byte gWindowConfig_81E6F4C +_080B78E8: .4byte gUnknown_083CE358 +_080B78EC: .4byte 0x02000000 +_080B78F0: .4byte gUnknown_083CE368 + thumb_func_end sub_80B78A8 + + thumb_func_start nullsub_61 +nullsub_61: @ 80B78F4 + bx lr + thumb_func_end nullsub_61 + + thumb_func_start sub_80B78F8 +sub_80B78F8: @ 80B78F8 + push {lr} + ldr r0, _080B7914 + ldr r1, _080B7918 + movs r3, 0x3E + ldrsh r2, [r1, r3] + movs r1, 0xB + muls r1, r2 + ldr r2, _080B791C + adds r1, r2 + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_080B7914: .4byte gStringVar1 +_080B7918: .4byte 0x02000000 +_080B791C: .4byte gSpeciesNames + thumb_func_end sub_80B78F8 + + thumb_func_start nullsub_62 +nullsub_62: @ 80B7920 + bx lr + thumb_func_end nullsub_62 + + thumb_func_start sub_80B7924 +sub_80B7924: @ 80B7924 + push {lr} + sub sp, 0x4 + ldr r1, _080B7958 + mov r0, sp + movs r2, 0x2 + bl memcpy + ldr r0, _080B795C + adds r0, 0x40 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0xFF + beq _080B7952 + cmp r0, 0xFE + bne _080B7948 + mov r1, sp + movs r0, 0xB6 + strb r0, [r1] +_080B7948: + mov r0, sp + movs r1, 0x14 + movs r2, 0x4 + bl MenuPrint +_080B7952: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080B7958: .4byte gUnknown_083CE370 +_080B795C: .4byte 0x02000000 + thumb_func_end sub_80B7924 + + thumb_func_start sub_80B7960 +sub_80B7960: @ 80B7960 + push {r4,lr} + ldr r0, _080B799C + movs r2, 0xFC + strb r2, [r0] + movs r1, 0x14 + strb r1, [r0, 0x1] + movs r1, 0x8 + strb r1, [r0, 0x2] + strb r2, [r0, 0x3] + movs r1, 0x11 + strb r1, [r0, 0x4] + movs r1, 0x1 + strb r1, [r0, 0x5] + adds r0, 0x6 + ldr r4, _080B79A0 + adds r1, r4, 0 + bl StringCopy + ldr r0, _080B79A4 + bl BasicInitMenuWindow + ldr r0, _080B799C + subs r4, 0x11 + ldrb r1, [r4, 0x2] + movs r2, 0x4 + bl MenuPrint + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B799C: .4byte gStringVar1 +_080B79A0: .4byte 0x02000011 +_080B79A4: .4byte gWindowConfig_81E6F4C + thumb_func_end sub_80B7960 + + thumb_func_start IsEnoughMoney +IsEnoughMoney: @ 80B79A8 + push {lr} + cmp r0, r1 + bcs _080B79B2 + movs r0, 0 + b _080B79B4 +_080B79B2: + movs r0, 0x1 +_080B79B4: + pop {r1} + bx r1 + thumb_func_end IsEnoughMoney + + thumb_func_start sub_80B79B8 +sub_80B79B8: @ 80B79B8 + push {lr} + adds r2, r0, 0 + ldr r0, [r2] + adds r1, r0, r1 + cmp r0, r1 + bls _080B79CC + ldr r0, _080B79C8 + b _080B79D4 + .align 2, 0 +_080B79C8: .4byte 0x000f423f +_080B79CC: + str r1, [r2] + ldr r0, _080B79DC + cmp r1, r0 + bls _080B79D6 +_080B79D4: + str r0, [r2] +_080B79D6: + pop {r0} + bx r0 + .align 2, 0 +_080B79DC: .4byte 0x000f423f + thumb_func_end sub_80B79B8 + + thumb_func_start sub_80B79E0 +sub_80B79E0: @ 80B79E0 + push {lr} + adds r2, r0, 0 + ldr r0, [r2] + cmp r0, r1 + bcs _080B79EE + movs r0, 0 + b _080B79F0 +_080B79EE: + subs r0, r1 +_080B79F0: + str r0, [r2] + pop {r0} + bx r0 + thumb_func_end sub_80B79E0 + + thumb_func_start sub_80B79F8 +sub_80B79F8: @ 80B79F8 + push {r4,lr} + adds r3, r0, 0 + lsls r2, 24 + lsrs r4, r2, 24 + ldr r0, _080B7A0C + cmp r1, r0 + bls _080B7A10 + movs r2, 0x7 + b _080B7A46 + .align 2, 0 +_080B7A0C: .4byte 0x000f423f +_080B7A10: + ldr r0, _080B7A1C + cmp r1, r0 + bls _080B7A20 + movs r2, 0x6 + b _080B7A46 + .align 2, 0 +_080B7A1C: .4byte 0x0001869f +_080B7A20: + ldr r0, _080B7A2C + cmp r1, r0 + bls _080B7A30 + movs r2, 0x5 + b _080B7A46 + .align 2, 0 +_080B7A2C: .4byte 0x00002710 +_080B7A30: + ldr r0, _080B7A90 + movs r2, 0x4 + cmp r1, r0 + bhi _080B7A46 + movs r2, 0x3 + cmp r1, 0x63 + bhi _080B7A46 + movs r2, 0x1 + cmp r1, 0x9 + bls _080B7A46 + movs r2, 0x2 +_080B7A46: + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x14 + strb r0, [r3, 0x1] + movs r0, 0x6 + strb r0, [r3, 0x2] + adds r3, 0x3 + movs r0, 0 + subs r2, r4, r2 + cmp r0, r2 + bge _080B7A6C + movs r4, 0 +_080B7A5E: + strb r4, [r3] + adds r3, 0x1 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, r2 + blt _080B7A5E +_080B7A6C: + movs r0, 0xB7 + strb r0, [r3] + adds r3, 0x1 + adds r0, r3, 0 + bl ConvertIntToDecimalString + adds r3, r0, 0 + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x14 + strb r0, [r3, 0x1] + movs r0, 0 + strb r0, [r3, 0x2] + movs r0, 0xFF + strb r0, [r3, 0x3] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7A90: .4byte 0x000003e7 + thumb_func_end sub_80B79F8 + + thumb_func_start sub_80B7A94 +sub_80B7A94: @ 80B7A94 + push {r4-r7,lr} + sub sp, 0x10 + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + lsls r3, 24 + lsrs r7, r3, 24 + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_80B79F8 + mov r0, sp + bl sub_8072CA4 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r5, 0x1 + lsls r0, 3 + cmp r2, r0 + blt _080B7ACE + mov r0, sp + adds r1, r6, 0 + adds r2, r7, 0 + bl MenuPrint + b _080B7AE4 +_080B7ACE: + adds r1, r6, 0x1 + adds r1, r5 + lsls r1, 3 + subs r1, r2 + lsls r1, 24 + lsrs r1, 24 + lsls r2, r7, 3 + mov r0, sp + movs r3, 0x1 + bl sub_80729D8 +_080B7AE4: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B7A94 + + thumb_func_start sub_80B7AEC +sub_80B7AEC: @ 80B7AEC + push {r4-r6,lr} + sub sp, 0x20 + adds r3, r0, 0 + adds r4, r1, 0 + adds r5, r2, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + mov r6, sp + movs r0, 0xB7 + strb r0, [r6] + adds r6, 0x1 + adds r0, r6, 0 + adds r1, r3, 0 + bl ConvertIntToDecimalString + adds r6, r0, 0 + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_8072B4C + movs r0, 0xFC + strb r0, [r6] + movs r0, 0x14 + strb r0, [r6, 0x1] + movs r0, 0 + strb r0, [r6, 0x2] + movs r0, 0xFF + strb r0, [r6, 0x3] + add sp, 0x20 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B7AEC + + thumb_func_start sub_80B7B34 +sub_80B7B34: @ 80B7B34 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + mov r8, r0 + adds r5, r1, 0 + mov r9, r2 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r5, 24 + lsrs r5, 24 + mov r1, r9 + lsls r1, 8 + mov r9, r1 + ldr r4, _080B7BD8 + adds r0, r1, r4 + lsls r6, r5, 4 + subs r6, r5 + lsls r1, r6, 6 + mov r3, r8 + adds r3, 0x1 + lsls r3, 5 + ldr r2, _080B7BDC + adds r3, r2 + adds r1, r3 + movs r2, 0x20 + str r3, [sp] + bl CpuFastSet + adds r4, 0x80 + add r9, r4 + adds r0, r5, 0x1 + lsls r4, r0, 4 + subs r4, r0 + lsls r1, r4, 6 + ldr r3, [sp] + adds r1, r3 + mov r0, r9 + movs r2, 0x20 + bl CpuFastSet + movs r3, 0 + lsls r5, 5 + mov r0, r8 + adds r7, r5, r0 + lsls r6, 1 + adds r6, 0x1 + add r6, r8 + ldr r1, _080B7BE0 + adds r5, r1, 0 + ldr r0, _080B7BE4 + mov r12, r0 + ldr r1, _080B7BE8 + mov r9, r1 + lsls r4, 1 + adds r4, 0x1 + add r4, r8 +_080B7BAA: + adds r1, r7, r3 + lsls r1, 1 + mov r0, r12 + adds r2, r1, r0 + adds r0, r3, r6 + adds r0, r5 + strh r0, [r2] + add r1, r9 + adds r0, r3, r4 + adds r0, r5 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080B7BAA + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B7BD8: .4byte gDecoration10000_Gfx +_080B7BDC: .4byte 0x06008000 +_080B7BE0: .4byte 0xfffff000 +_080B7BE4: .4byte 0x0600f800 +_080B7BE8: .4byte 0x0600f840 + thumb_func_end sub_80B7B34 + + thumb_func_start sub_80B7BEC +sub_80B7BEC: @ 80B7BEC + push {r4,lr} + adds r4, r1, 0 + adds r3, r2, 0 + lsls r4, 24 + lsls r3, 24 + movs r1, 0xC0 + lsls r1, 19 + adds r4, r1 + lsrs r4, 24 + movs r1, 0x80 + lsls r1, 17 + adds r3, r1 + lsrs r3, 24 + movs r1, 0x6 + adds r2, r4, 0 + bl sub_80B7A94 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B7BEC + + thumb_func_start sub_80B7C14 +sub_80B7C14: @ 80B7C14 + push {r4-r6,lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r4, r1, 0 + adds r3, r2, 0 + lsls r4, 24 + lsls r3, 24 + lsrs r6, r4, 24 + movs r0, 0xD0 + lsls r0, 20 + adds r4, r0 + lsrs r4, 24 + lsrs r5, r3, 24 + movs r1, 0xC0 + lsls r1, 18 + adds r3, r1 + lsrs r3, 24 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl MenuDrawTextWindow + mov r0, r8 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80B7BEC + ldr r0, _080B7C88 + bl LoadCompressedObjectPic + ldr r0, _080B7C8C + bl LoadCompressedObjectPalette + ldr r0, _080B7C90 + lsls r6, 19 + movs r1, 0x98 + lsls r1, 13 + adds r6, r1 + asrs r6, 16 + lsls r5, 19 + movs r1, 0xB0 + lsls r1, 12 + adds r5, r1 + asrs r5, 16 + adds r1, r6, 0 + adds r2, r5, 0 + movs r3, 0 + bl CreateSprite + ldr r1, _080B7C94 + strb r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B7C88: .4byte gUnknown_083CF584 +_080B7C8C: .4byte gUnknown_083CF58C +_080B7C90: .4byte gSpriteTemplate_83CF56C +_080B7C94: .4byte gUnknown_02038734 + thumb_func_end sub_80B7C14 + + thumb_func_start RemoveMoneyLabelObject +RemoveMoneyLabelObject: @ 80B7C98 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _080B7CDC + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B7CE0 + adds r0, r1 + bl DestroySpriteAndFreeResources + ldr r0, _080B7CE4 + bl FreeSpritePaletteByTag + adds r2, r4, 0 + adds r2, 0xD + lsls r2, 24 + lsrs r2, 24 + adds r3, r5, 0x3 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + adds r1, r5, 0 + bl MenuZeroFillWindowRect + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B7CDC: .4byte gUnknown_02038734 +_080B7CE0: .4byte gSprites +_080B7CE4: .4byte 0x00002722 + thumb_func_end RemoveMoneyLabelObject + + thumb_func_start sub_80B7CE8 +sub_80B7CE8: @ 80B7CE8 + push {lr} + ldr r0, _080B7D04 + movs r1, 0x92 + lsls r1, 3 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080B7D08 + ldrh r1, [r1] + bl IsEnoughMoney + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080B7D04: .4byte gSaveBlock1 +_080B7D08: .4byte gUnknown_0202E8CE + thumb_func_end sub_80B7CE8 + + thumb_func_start sub_80B7D0C +sub_80B7D0C: @ 80B7D0C + push {lr} + ldr r0, _080B7D1C + ldr r1, _080B7D20 + ldrh r1, [r1] + bl sub_80B79E0 + pop {r0} + bx r0 + .align 2, 0 +_080B7D1C: .4byte gSaveBlock1 + 0x490 +_080B7D20: .4byte gUnknown_0202E8CE + thumb_func_end sub_80B7D0C + + thumb_func_start AreMovesContestCombo +AreMovesContestCombo: @ 80B7D24 + push {r4,lr} + sub sp, 0x4 + lsls r0, 16 + lsls r1, 16 + ldr r2, _080B7D78 + lsrs r0, 13 + adds r0, r2 + ldrb r4, [r0, 0x2] + mov r3, sp + lsrs r1, 13 + adds r1, r2 + ldrb r0, [r1, 0x3] + strb r0, [r3] + mov r2, sp + ldrb r0, [r1, 0x4] + strb r0, [r2, 0x1] + ldrb r0, [r1, 0x5] + strb r0, [r2, 0x2] + mov r0, sp + ldrb r1, [r1, 0x6] + strb r1, [r0, 0x3] + cmp r4, 0 + beq _080B7D80 + mov r0, sp + ldrb r0, [r0] + cmp r4, r0 + beq _080B7D6E + mov r0, sp + ldrb r0, [r0, 0x1] + cmp r4, r0 + beq _080B7D6E + mov r0, sp + ldrb r0, [r0, 0x2] + cmp r4, r0 + beq _080B7D6E + cmp r4, r1 + bne _080B7D80 +_080B7D6E: + ldr r0, _080B7D7C + adds r0, r4, r0 + ldrb r0, [r0] + b _080B7D82 + .align 2, 0 +_080B7D78: .4byte gContestMoves +_080B7D7C: .4byte gComboStarterLookupTable +_080B7D80: + movs r0, 0 +_080B7D82: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end AreMovesContestCombo + + thumb_func_start ContestEffect_00 +ContestEffect_00: @ 80B7D8C + bx lr + thumb_func_end ContestEffect_00 + + thumb_func_start ContestEffect_01 +ContestEffect_01: @ 80B7D90 + push {lr} + ldr r3, _080B7DB8 + ldrb r1, [r3, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r3, 0 + subs r1, 0x70 + adds r0, r1 + ldrb r1, [r0, 0x10] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x10] + ldrb r0, [r3, 0x11] + movs r1, 0 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B7DB8: .4byte 0x020192d0 + thumb_func_end ContestEffect_01 + + thumb_func_start ContestEffect_02 +ContestEffect_02: @ 80B7DBC + push {lr} + ldr r3, _080B7DE4 + ldrb r1, [r3, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r3, 0 + subs r1, 0x70 + adds r0, r1 + ldrb r1, [r0, 0x11] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0, 0x11] + ldrb r0, [r3, 0x11] + movs r1, 0x1 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B7DE4: .4byte 0x020192d0 + thumb_func_end ContestEffect_02 + + thumb_func_start ContestEffect_03 +ContestEffect_03: @ 80B7DE8 + push {r4,lr} + ldr r3, _080B7E30 + ldrb r1, [r3, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r4, r3, 0 + subs r4, 0x70 + adds r0, r4 + ldrb r1, [r0, 0x10] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0, 0x10] + ldrb r0, [r3, 0x11] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0x15] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x15] + ldrb r0, [r3, 0x11] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0xB] + movs r0, 0x71 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0xB] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7E30: .4byte 0x020192d0 + thumb_func_end ContestEffect_03 + + thumb_func_start ContestEffect_04 +ContestEffect_04: @ 80B7E34 + push {lr} + ldr r2, _080B7E58 + ldrb r1, [r2, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r2, 0 + subs r1, 0x70 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0, 0x12] + ldrb r0, [r2, 0x11] + movs r1, 0x2 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B7E58: .4byte 0x020192d0 + thumb_func_end ContestEffect_04 + + thumb_func_start ContestEffect_05 +ContestEffect_05: @ 80B7E5C + push {lr} + ldr r3, _080B7E84 + ldrb r1, [r3, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r3, 0 + subs r1, 0x70 + adds r0, r1 + ldrb r1, [r0, 0x10] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0, 0x10] + ldrb r0, [r3, 0x11] + movs r1, 0x3 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B7E84: .4byte 0x020192d0 + thumb_func_end ContestEffect_05 + + thumb_func_start ContestEffect_06 +ContestEffect_06: @ 80B7E88 + push {lr} + ldr r2, _080B7EAC + ldrb r1, [r2, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r2, 0 + subs r1, 0x70 + adds r0, r1 + movs r1, 0x14 + strb r1, [r0, 0xF] + ldrb r0, [r2, 0x11] + movs r1, 0x4 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B7EAC: .4byte 0x020192d0 + thumb_func_end ContestEffect_06 + + thumb_func_start ContestEffect_07 +ContestEffect_07: @ 80B7EB0 + push {lr} + ldr r3, _080B7ED8 + ldrb r1, [r3, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r3, 0 + subs r1, 0x70 + adds r0, r1 + ldrb r1, [r0, 0x10] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0, 0x10] + ldrb r0, [r3, 0x11] + movs r1, 0x5 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B7ED8: .4byte 0x020192d0 + thumb_func_end ContestEffect_07 + + thumb_func_start ContestEffect_08 +ContestEffect_08: @ 80B7EDC + push {r4,lr} + movs r2, 0 + ldr r3, _080B7F38 + ldrb r0, [r3, 0x11] + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, 0 + beq _080B7F1A + subs r0, 0x1 + ldrb r4, [r3] + cmp r0, r4 + beq _080B7F0A + adds r4, r3, 0 + adds r3, r1, 0 +_080B7EF8: + adds r2, 0x1 + cmp r2, 0x3 + bgt _080B7F0A + ldrb r0, [r3] + subs r0, 0x1 + adds r1, r2, r4 + ldrb r1, [r1] + cmp r0, r1 + bne _080B7EF8 +_080B7F0A: + ldr r1, _080B7F38 + strb r2, [r1, 0x8] + movs r0, 0xFF + strb r0, [r1, 0x9] + bl sub_80B9120 + lsls r0, 24 + lsrs r2, r0, 24 +_080B7F1A: + cmp r2, 0 + bne _080B7F28 + ldr r0, _080B7F38 + ldrb r0, [r0, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B7F28: + ldr r0, _080B7F38 + ldrb r0, [r0, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7F38: .4byte 0x020192d0 + thumb_func_end ContestEffect_08 + + thumb_func_start ContestEffect_09 +ContestEffect_09: @ 80B7F3C + push {r4-r6,lr} + movs r2, 0 + ldr r1, _080B7F9C + ldrb r0, [r1, 0x11] + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + beq _080B7F7C + movs r3, 0 + adds r5, r1, 0 + adds r6, r5, 0 + adds r6, 0x8 +_080B7F54: + adds r1, r2, r5 + ldrb r0, [r4] + ldrb r1, [r1] + cmp r0, r1 + bls _080B7F64 + adds r0, r3, r6 + strb r2, [r0] + adds r3, 0x1 +_080B7F64: + adds r2, 0x1 + cmp r2, 0x3 + ble _080B7F54 + ldr r0, _080B7F9C + adds r0, 0x8 + adds r0, r3, r0 + movs r1, 0xFF + strb r1, [r0] + bl sub_80B9120 + lsls r0, 24 + lsrs r2, r0, 24 +_080B7F7C: + cmp r2, 0 + bne _080B7F8A + ldr r0, _080B7F9C + ldrb r0, [r0, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B7F8A: + ldr r0, _080B7F9C + ldrb r0, [r0, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B7F9C: .4byte 0x020192d0 + thumb_func_end ContestEffect_09 + + thumb_func_start ContestEffect_14 +ContestEffect_14: @ 80B7FA0 + push {lr} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x14 + cmp r0, 0x1 + bls _080B7FC2 + movs r1, 0x3C + cmp r0, 0x7 + bhi _080B7FC2 + movs r1, 0x28 +_080B7FC2: + ldr r0, _080B7FD0 + strh r1, [r0, 0x4] + bl ContestEffect_08 + pop {r0} + bx r0 + .align 2, 0 +_080B7FD0: .4byte 0x020192d0 + thumb_func_end ContestEffect_14 + + thumb_func_start ContestEffect_15 +ContestEffect_15: @ 80B7FD4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r7, 0 + ldr r0, _080B806C + ldrb r6, [r0, 0x11] + adds r1, r6, r0 + ldrb r1, [r1] + mov r8, r0 + cmp r1, 0 + beq _080B804A + movs r5, 0 + mov r4, r8 +_080B7FEE: + adds r0, r6, r4 + adds r1, r5, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080B8044 + strb r5, [r4, 0x8] + movs r0, 0xFF + strb r0, [r4, 0x9] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + cmp r0, 0 + beq _080B8032 + movs r1, 0xA + cmp r0, 0x2 + bls _080B8032 + movs r1, 0x14 + cmp r0, 0x4 + bls _080B8032 + movs r1, 0x1E + cmp r0, 0x6 + bls _080B8032 + movs r1, 0x3C + cmp r0, 0x8 + bhi _080B8032 + movs r1, 0x28 +_080B8032: + strh r1, [r4, 0x4] + bl sub_80B9120 + lsls r0, 24 + cmp r0, 0 + beq _080B8044 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_080B8044: + adds r5, 0x1 + cmp r5, 0x3 + ble _080B7FEE +_080B804A: + mov r1, r8 + ldrb r0, [r1, 0x11] + movs r1, 0x30 + bl sub_80B13EC + cmp r7, 0 + bne _080B8062 + mov r1, r8 + ldrb r0, [r1, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B8062: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B806C: .4byte 0x020192d0 + thumb_func_end ContestEffect_15 + + thumb_func_start ContestEffect_16 +ContestEffect_16: @ 80B8070 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r0, 0 + mov r9, r0 + ldr r0, _080B8108 + ldrb r7, [r0, 0x11] + adds r1, r7, r0 + ldrb r1, [r1] + mov r10, r0 + cmp r1, 0 + beq _080B80E0 + movs r6, 0 + mov r8, r10 + mov r5, r10 + subs r5, 0x5B +_080B8094: + mov r1, r8 + adds r0, r7, r1 + adds r1, r6, r1 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080B80D8 + ldrb r1, [r5] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B80D8 + lsls r0, r6, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80B90C0 + lsls r0, 24 + cmp r0, 0 + beq _080B80D8 + ldrb r0, [r5] + movs r2, 0x11 + negs r2, r2 + adds r1, r2, 0 + ands r0, r1 + movs r1, 0x20 + orrs r0, r1 + strb r0, [r5] + adds r0, r4, 0 + movs r1, 0x8 + bl sub_80B13EC + movs r0, 0x1 + mov r9, r0 +_080B80D8: + adds r5, 0x1C + adds r6, 0x1 + cmp r6, 0x3 + ble _080B8094 +_080B80E0: + mov r1, r10 + ldrb r0, [r1, 0x11] + movs r1, 0x7 + bl sub_80B13EC + mov r2, r9 + cmp r2, 0 + bne _080B80FA + mov r1, r10 + ldrb r0, [r1, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B80FA: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B8108: .4byte 0x020192d0 + thumb_func_end ContestEffect_16 + + thumb_func_start ContestEffect_17 +ContestEffect_17: @ 80B810C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r0, 0 + mov r9, r0 + ldr r0, _080B8150 + ldrb r1, [r0, 0x11] + mov r8, r1 + adds r1, r0 + ldrb r1, [r1] + adds r6, r0, 0 + cmp r1, 0 + beq _080B817C + movs r5, 0 + adds r4, r6, 0 + movs r7, 0 +_080B812E: + mov r2, r8 + adds r0, r2, r4 + adds r1, r5, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080B8172 + adds r0, r6, 0 + subs r0, 0x70 + adds r0, r7, r0 + ldrb r1, [r0, 0x15] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B8154 + movs r0, 0x32 + b _080B8156 + .align 2, 0 +_080B8150: .4byte 0x020192d0 +_080B8154: + movs r0, 0xA +_080B8156: + strh r0, [r4, 0x4] + strb r5, [r4, 0x8] + movs r0, 0xFF + strb r0, [r4, 0x9] + bl sub_80B9120 + lsls r0, 24 + cmp r0, 0 + beq _080B8172 + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_080B8172: + adds r7, 0x1C + adds r5, 0x1 + ldr r6, _080B81A0 + cmp r5, 0x3 + ble _080B812E +_080B817C: + ldrb r0, [r6, 0x11] + movs r1, 0x30 + bl sub_80B13EC + mov r0, r9 + cmp r0, 0 + bne _080B8192 + ldrb r0, [r6, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B8192: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B81A0: .4byte 0x020192d0 + thumb_func_end ContestEffect_17 + + thumb_func_start ContestEffect_18 +ContestEffect_18: @ 80B81A4 + push {r4,lr} + ldr r4, _080B81D0 + ldrb r1, [r4, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r4, 0 + subs r1, 0x70 + adds r0, r1 + ldrb r1, [r0, 0x11] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x11] + bl ContestEffect_09 + ldrb r0, [r4, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B81D0: .4byte 0x020192d0 + thumb_func_end ContestEffect_18 + + thumb_func_start ContestEffect_19 +ContestEffect_19: @ 80B81D4 + push {r4,lr} + ldr r4, _080B8208 + ldrb r1, [r4, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r4, 0 + subs r1, 0x70 + adds r0, r1 + ldrh r0, [r0, 0x6] + ldr r1, _080B820C + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 29 + lsrs r0, 29 + bl sub_80B9038 + ldrb r0, [r4, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8208: .4byte 0x020192d0 +_080B820C: .4byte gContestMoves + thumb_func_end ContestEffect_19 + + thumb_func_start ContestEffect_20 +ContestEffect_20: @ 80B8210 + push {lr} + movs r0, 0 + bl sub_80B9038 + ldr r0, _080B8228 + ldrb r0, [r0, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B8228: .4byte 0x020192d0 + thumb_func_end ContestEffect_20 + + thumb_func_start ContestEffect_21 +ContestEffect_21: @ 80B822C + push {lr} + movs r0, 0x1 + bl sub_80B9038 + ldr r0, _080B8244 + ldrb r0, [r0, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B8244: .4byte 0x020192d0 + thumb_func_end ContestEffect_21 + + thumb_func_start ContestEffect_22 +ContestEffect_22: @ 80B8248 + push {lr} + movs r0, 0x2 + bl sub_80B9038 + ldr r0, _080B8260 + ldrb r0, [r0, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B8260: .4byte 0x020192d0 + thumb_func_end ContestEffect_22 + + thumb_func_start ContestEffect_23 +ContestEffect_23: @ 80B8264 + push {lr} + movs r0, 0x3 + bl sub_80B9038 + ldr r0, _080B827C + ldrb r0, [r0, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B827C: .4byte 0x020192d0 + thumb_func_end ContestEffect_23 + + thumb_func_start ContestEffect_24 +ContestEffect_24: @ 80B8280 + push {lr} + movs r0, 0x4 + bl sub_80B9038 + ldr r0, _080B8298 + ldrb r0, [r0, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B8298: .4byte 0x020192d0 + thumb_func_end ContestEffect_24 + + thumb_func_start ContestEffect_25 +ContestEffect_25: @ 80B829C + push {r4-r7,lr} + movs r4, 0 + ldr r0, _080B82E0 + ldrb r1, [r0, 0x11] + adds r1, r0 + ldrb r1, [r1] + adds r7, r0, 0 + cmp r1, 0x3 + beq _080B82F4 + movs r5, 0 + adds r6, r7, 0 +_080B82B2: + ldrb r0, [r6, 0x11] + adds r0, r6 + ldrb r0, [r0] + adds r0, 0x1 + adds r1, r5, r6 + ldrb r1, [r1] + cmp r0, r1 + bne _080B82EE + lsls r0, r5, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80B90C0 + lsls r0, 24 + cmp r0, 0 + beq _080B82E4 + adds r0, r4, 0 + bl sub_80B157C + adds r0, r4, 0 + movs r1, 0xA + b _080B82E8 + .align 2, 0 +_080B82E0: .4byte 0x020192d0 +_080B82E4: + adds r0, r4, 0 + movs r1, 0x3C +_080B82E8: + bl sub_80B13EC + movs r4, 0x1 +_080B82EE: + adds r5, 0x1 + cmp r5, 0x3 + ble _080B82B2 +_080B82F4: + ldrb r0, [r7, 0x11] + movs r1, 0x9 + bl sub_80B13EC + cmp r4, 0 + bne _080B8308 + ldrb r0, [r7, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B8308: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_25 + + thumb_func_start ContestEffect_26 +ContestEffect_26: @ 80B8310 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + movs r0, 0 + mov r9, r0 + movs r1, 0 + str r1, [sp, 0x18] + mov r0, sp + movs r1, 0xFF + movs r2, 0x5 + bl memset + movs r6, 0 + movs r4, 0 + add r2, sp, 0x10 + mov r8, r2 + add r3, sp, 0x8 + mov r10, r3 + ldr r5, _080B8384 + adds r7, r5, 0 + subs r7, 0x70 +_080B8340: + ldrb r0, [r5, 0x11] + adds r0, r5 + adds r1, r6, r5 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bcs _080B836E + ldrb r1, [r7, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080B836E + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + bne _080B836E + mov r1, sp + adds r0, r1, r4 + strb r6, [r0] + adds r4, 0x1 +_080B836E: + adds r7, 0x1C + adds r6, 0x1 + cmp r6, 0x3 + ble _080B8340 + cmp r4, 0x1 + bne _080B8388 + movs r0, 0x3C + mov r2, r8 + strh r0, [r2] + b _080B83B6 + .align 2, 0 +_080B8384: .4byte 0x020192d0 +_080B8388: + cmp r4, 0x2 + bne _080B8396 + movs r0, 0x1E + mov r3, r8 + strh r0, [r3] + strh r0, [r3, 0x2] + b _080B83B6 +_080B8396: + cmp r4, 0x3 + bne _080B83A6 + movs r0, 0x14 + mov r7, r8 + strh r0, [r7] + strh r0, [r7, 0x2] + strh r0, [r7, 0x4] + b _080B83B6 +_080B83A6: + mov r1, r8 + movs r2, 0 + mov r0, r8 + adds r0, 0x6 +_080B83AE: + strh r2, [r0] + subs r0, 0x2 + cmp r0, r1 + bge _080B83AE +_080B83B6: + movs r6, 0 + movs r7, 0 + mov r4, r10 +_080B83BC: + ldr r0, _080B83F0 + adds r5, r7, r0 + ldrb r1, [r5, 0x15] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B83FC + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_80B214C + lsls r0, 24 + cmp r0, 0 + beq _080B83FC + ldr r1, _080B83F4 + ldrh r0, [r5, 0x8] + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x2] + ldr r1, _080B83F8 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + b _080B83FE + .align 2, 0 +_080B83F0: .4byte 0x02019260 +_080B83F4: .4byte gContestMoves +_080B83F8: .4byte gComboStarterLookupTable +_080B83FC: + movs r0, 0 +_080B83FE: + strh r0, [r4] + ldr r5, _080B8494 + adds r0, r7, r5 + ldrb r0, [r0, 0xD] + lsls r0, 24 + asrs r0, 24 + movs r1, 0xA + bl __divsi3 + lsls r0, 24 + asrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 1 + ldrh r0, [r4] + subs r0, r1 + strh r0, [r4] + adds r7, 0x1C + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _080B83BC + mov r2, r8 + movs r3, 0 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _080B84CA + movs r6, 0 + mov r0, sp + ldrb r0, [r0] + cmp r0, 0xFF + beq _080B84CA + adds r5, 0x7D + mov r4, sp +_080B8442: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + lsls r1, r6, 1 + add r1, r8 + movs r7, 0 + ldrsh r2, [r1, r7] + ldrb r3, [r4] + lsls r1, r3, 1 + add r1, r10 + movs r7, 0 + ldrsh r1, [r1, r7] + adds r2, r1 + cmp r0, r2 + bge _080B8498 + adds r0, r3, 0 + bl sub_80B90C0 + lsls r0, 24 + cmp r0, 0 + beq _080B84A2 + ldrb r0, [r4] + bl sub_80B157C + ldrb r0, [r4] + movs r1, 0xA + bl sub_80B13EC + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + b _080B849C + .align 2, 0 +_080B8494: .4byte 0x02019260 +_080B8498: + movs r0, 0x1 + str r0, [sp, 0x18] +_080B849C: + ldr r1, [sp, 0x18] + cmp r1, 0 + beq _080B84B8 +_080B84A2: + movs r2, 0 + str r2, [sp, 0x18] + ldrb r0, [r4] + movs r1, 0x3C + bl sub_80B13EC + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_080B84B8: + ldrb r0, [r4] + adds r0, r5 + movs r1, 0x1 + strb r1, [r0] + adds r4, 0x1 + adds r6, 0x1 + ldrb r0, [r4] + cmp r0, 0xFF + bne _080B8442 +_080B84CA: + ldr r4, _080B84F4 + ldrb r0, [r4, 0x11] + movs r1, 0xB + bl sub_80B13EC + mov r3, r9 + cmp r3, 0 + bne _080B84E2 + ldrb r0, [r4, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B84E2: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B84F4: .4byte 0x020192d0 + thumb_func_end ContestEffect_26 + + thumb_func_start ContestEffect_27 +ContestEffect_27: @ 80B84F8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0 + mov r8, r0 + movs r6, 0 + ldr r7, _080B8580 + adds r5, r7, 0 + subs r5, 0x63 +_080B850A: + ldrb r0, [r7, 0x11] + adds r0, r7 + adds r1, r6, r7 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080B8556 + movs r0, 0 + ldrsb r0, [r5, r0] + cmp r0, 0 + ble _080B8556 + lsls r0, r6, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80B90C0 + lsls r0, 24 + cmp r0, 0 + beq _080B8556 + movs r0, 0 + strb r0, [r5] + ldrb r1, [r5, 0x3] + movs r2, 0x31 + negs r2, r2 + adds r0, r2, 0 + ands r1, r0 + movs r0, 0x20 + orrs r1, r0 + strb r1, [r5, 0x3] + adds r0, r4, 0 + movs r1, 0xD + bl sub_80B13EC + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 +_080B8556: + adds r5, 0x1C + adds r6, 0x1 + cmp r6, 0x3 + ble _080B850A + ldr r4, _080B8580 + ldrb r0, [r4, 0x11] + movs r1, 0xC + bl sub_80B13EC + mov r0, r8 + cmp r0, 0 + bne _080B8576 + ldrb r0, [r4, 0x11] + movs r1, 0x39 + bl sub_80B1404 +_080B8576: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B8580: .4byte 0x020192d0 + thumb_func_end ContestEffect_27 + + thumb_func_start ContestEffect_28 +ContestEffect_28: @ 80B8584 + push {r4-r7,lr} + movs r7, 0 + movs r5, 0 + ldr r4, _080B85B0 + movs r6, 0 +_080B858E: + ldrb r0, [r4, 0x11] + adds r0, r4 + adds r1, r5, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080B85CE + adds r0, r4, 0 + subs r0, 0x70 + adds r0, r6, r0 + ldrb r0, [r0, 0xD] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + ble _080B85B4 + movs r0, 0x28 + b _080B85B6 + .align 2, 0 +_080B85B0: .4byte 0x020192d0 +_080B85B4: + movs r0, 0xA +_080B85B6: + strh r0, [r4, 0x4] + strb r5, [r4, 0x8] + movs r0, 0xFF + strb r0, [r4, 0x9] + bl sub_80B9120 + lsls r0, 24 + cmp r0, 0 + beq _080B85CE + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_080B85CE: + adds r6, 0x1C + adds r5, 0x1 + cmp r5, 0x3 + ble _080B858E + ldr r4, _080B85F4 + ldrb r0, [r4, 0x11] + movs r1, 0xE + bl sub_80B13EC + cmp r7, 0 + bne _080B85EC + ldrb r0, [r4, 0x11] + movs r1, 0x39 + bl sub_80B1404 +_080B85EC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B85F4: .4byte 0x020192d0 + thumb_func_end ContestEffect_28 + + thumb_func_start ContestEffect_29 +ContestEffect_29: @ 80B85F8 + push {r4,lr} + ldr r0, _080B863C + ldr r4, _080B8640 + ldrb r2, [r4, 0x11] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _080B8636 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r0, r4, 0 + subs r0, 0x70 + adds r1, r0 + ldrh r0, [r1, 0x6] + ldr r3, _080B8644 + ldr r2, _080B8648 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x1] + lsls r0, 1 + ldrh r2, [r1, 0x2] + adds r0, r2 + strh r0, [r1, 0x2] + ldrb r0, [r4, 0x11] + movs r1, 0xF + bl sub_80B13EC +_080B8636: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B863C: .4byte gUnknown_02038696 +_080B8640: .4byte 0x020192d0 +_080B8644: .4byte gContestEffects +_080B8648: .4byte gContestMoves + thumb_func_end ContestEffect_29 + + thumb_func_start ContestEffect_30 +ContestEffect_30: @ 80B864C + push {r4,lr} + ldr r0, _080B8690 + ldr r4, _080B8694 + ldrb r2, [r4, 0x11] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0x3 + bne _080B868A + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r0, r4, 0 + subs r0, 0x70 + adds r1, r0 + ldrh r0, [r1, 0x6] + ldr r3, _080B8698 + ldr r2, _080B869C + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x1] + lsls r0, 1 + ldrh r2, [r1, 0x2] + adds r0, r2 + strh r0, [r1, 0x2] + ldrb r0, [r4, 0x11] + movs r1, 0x10 + bl sub_80B13EC +_080B868A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8690: .4byte gUnknown_02038696 +_080B8694: .4byte 0x020192d0 +_080B8698: .4byte gContestEffects +_080B869C: .4byte gContestMoves + thumb_func_end ContestEffect_30 + + thumb_func_start ContestEffect_31 +ContestEffect_31: @ 80B86A0 + push {r4-r7,lr} + movs r1, 0 + movs r3, 0 + ldr r4, _080B86EC + ldrb r0, [r4, 0x11] + adds r0, r4 + ldrb r5, [r0] + movs r2, 0 + adds r6, r4, 0 + subs r6, 0x70 +_080B86B4: + adds r0, r1, r4 + ldrb r0, [r0] + cmp r5, r0 + bls _080B86C4 + adds r0, r2, r6 + movs r7, 0x2 + ldrsh r0, [r0, r7] + adds r3, r0 +_080B86C4: + adds r2, 0x1C + adds r1, 0x1 + cmp r1, 0x3 + ble _080B86B4 + cmp r3, 0 + bge _080B86D2 + movs r3, 0 +_080B86D2: + ldr r4, _080B86EC + ldrb r2, [r4, 0x11] + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _080B86E2 + cmp r3, 0 + bne _080B86F0 +_080B86E2: + adds r0, r2, 0 + movs r1, 0x12 + bl sub_80B13EC + b _080B8710 + .align 2, 0 +_080B86EC: .4byte 0x020192d0 +_080B86F0: + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r0, r4, 0 + subs r0, 0x70 + adds r1, r0 + lsrs r0, r3, 31 + adds r0, r3, r0 + asrs r0, 1 + ldrh r2, [r1, 0x2] + adds r0, r2 + strh r0, [r1, 0x2] + ldrb r0, [r4, 0x11] + movs r1, 0x11 + bl sub_80B13EC +_080B8710: + ldr r4, _080B873C + ldrb r1, [r4, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r5, r4, 0 + subs r5, 0x70 + adds r0, r5 + movs r7, 0x2 + ldrsh r0, [r0, r7] + bl sub_80B9224 + ldrb r2, [r4, 0x11] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r5 + strh r0, [r1, 0x2] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B873C: .4byte 0x020192d0 + thumb_func_end ContestEffect_31 + + thumb_func_start ContestEffect_32 +ContestEffect_32: @ 80B8740 + push {r4-r7,lr} + movs r6, 0 + ldr r0, _080B8794 + ldrb r1, [r0, 0x11] + adds r3, r1, r0 + ldrb r1, [r3] + adds r4, r0, 0 + cmp r1, 0 + beq _080B8788 + movs r2, 0 + adds r7, r4, 0 + adds r0, r1, 0 + subs r1, r0, 0x1 + movs r3, 0 + adds r5, r4, 0 + subs r5, 0x70 +_080B8760: + adds r0, r2, r7 + ldrb r0, [r0] + cmp r1, r0 + bne _080B876C + adds r0, r3, r5 + ldrh r6, [r0, 0x2] +_080B876C: + adds r3, 0x1C + adds r2, 0x1 + cmp r2, 0x3 + ble _080B8760 + adds r0, r4, 0 + ldrb r2, [r0, 0x11] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0 + beq _080B8788 + lsls r0, r6, 16 + asrs r3, r0, 16 + cmp r3, 0 + bgt _080B8798 +_080B8788: + ldrb r0, [r4, 0x11] + movs r1, 0x14 + bl sub_80B13EC + b _080B87B2 + .align 2, 0 +_080B8794: .4byte 0x020192d0 +_080B8798: + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r0, r4, 0 + subs r0, 0x70 + adds r1, r0 + ldrh r0, [r1, 0x2] + adds r0, r3, r0 + strh r0, [r1, 0x2] + ldrb r0, [r4, 0x11] + movs r1, 0x13 + bl sub_80B13EC +_080B87B2: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_32 + + thumb_func_start ContestEffect_33 +ContestEffect_33: @ 80B87B8 + push {lr} + ldr r0, _080B87D8 + ldrb r2, [r0, 0x11] + adds r1, r2, r0 + ldrb r3, [r1] + mov r12, r0 + cmp r3, 0 + bne _080B87DC + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + mov r1, r12 + subs r1, 0x70 + adds r0, r1 + movs r1, 0xA + b _080B87EE + .align 2, 0 +_080B87D8: .4byte 0x020192d0 +_080B87DC: + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + mov r1, r12 + subs r1, 0x70 + adds r0, r1 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 +_080B87EE: + strh r1, [r0, 0x2] + cmp r3, 0 + bne _080B8800 + mov r1, r12 + ldrb r0, [r1, 0x11] + movs r1, 0x15 + bl sub_80B13EC + b _080B882A +_080B8800: + cmp r3, 0x1 + bne _080B8810 + mov r1, r12 + ldrb r0, [r1, 0x11] + movs r1, 0x16 + bl sub_80B13EC + b _080B882A +_080B8810: + cmp r3, 0x2 + bne _080B8820 + mov r1, r12 + ldrb r0, [r1, 0x11] + movs r1, 0x17 + bl sub_80B13EC + b _080B882A +_080B8820: + mov r1, r12 + ldrb r0, [r1, 0x11] + movs r1, 0x18 + bl sub_80B13EC +_080B882A: + pop {r0} + bx r0 + thumb_func_end ContestEffect_33 + + thumb_func_start ContestEffect_34 +ContestEffect_34: @ 80B8830 + push {r4,lr} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x2 + bhi _080B885C + movs r4, 0xA + ldr r0, _080B8858 + ldrb r0, [r0, 0x11] + movs r1, 0x1A + bl sub_80B13EC + b _080B88B0 + .align 2, 0 +_080B8858: .4byte 0x020192d0 +_080B885C: + cmp r0, 0x5 + bhi _080B8874 + movs r4, 0x14 + ldr r0, _080B8870 + ldrb r0, [r0, 0x11] + movs r1, 0x1B + bl sub_80B13EC + b _080B88B0 + .align 2, 0 +_080B8870: .4byte 0x020192d0 +_080B8874: + cmp r0, 0x7 + bhi _080B888C + movs r4, 0x28 + ldr r0, _080B8888 + ldrb r0, [r0, 0x11] + movs r1, 0x1C + bl sub_80B13EC + b _080B88B0 + .align 2, 0 +_080B8888: .4byte 0x020192d0 +_080B888C: + cmp r1, 0x8 + bhi _080B88A4 + movs r4, 0x3C + ldr r0, _080B88A0 + ldrb r0, [r0, 0x11] + movs r1, 0x1D + bl sub_80B13EC + b _080B88B0 + .align 2, 0 +_080B88A0: .4byte 0x020192d0 +_080B88A4: + movs r4, 0x50 + ldr r0, _080B88C8 + ldrb r0, [r0, 0x11] + movs r1, 0x1E + bl sub_80B13EC +_080B88B0: + ldr r0, _080B88C8 + ldrb r2, [r0, 0x11] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + subs r0, 0x70 + adds r1, r0 + strh r4, [r1, 0x2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B88C8: .4byte 0x020192d0 + thumb_func_end ContestEffect_34 + + thumb_func_start ContestEffect_35 +ContestEffect_35: @ 80B88CC + push {r4-r7,lr} + ldr r1, _080B8940 + ldrb r0, [r1, 0x11] + adds r0, r1 + movs r2, 0 + ldrsb r2, [r0, r2] + subs r0, r2, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + mov r12, r1 + cmp r2, 0 + beq _080B8994 + ldrb r5, [r1] + mov r6, r12 + subs r6, 0x70 +_080B88EA: + movs r2, 0 + lsls r0, r4, 24 + asrs r1, r0, 24 + adds r4, r0, 0 + cmp r5, r1 + beq _080B8910 + ldr r3, _080B8940 +_080B88F8: + lsls r0, r2, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r2, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + bgt _080B8910 + adds r0, r3 + ldrb r0, [r0] + cmp r0, r1 + bne _080B88F8 +_080B8910: + lsls r2, 24 + asrs r1, r2, 24 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r3, r0, r6 + ldrb r1, [r3, 0xB] + movs r0, 0x80 + ands r0, r1 + adds r7, r2, 0 + cmp r0, 0 + bne _080B8932 + ldrb r1, [r3, 0xC] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + beq _080B8944 +_080B8932: + movs r1, 0xFF + lsls r1, 24 + adds r0, r4, r1 + lsrs r4, r0, 24 + cmp r0, 0 + blt _080B8994 + b _080B88EA + .align 2, 0 +_080B8940: .4byte 0x020192d0 +_080B8944: + mov r2, r12 + ldrb r1, [r2, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + mov r3, r12 + subs r3, 0x70 + adds r5, r0, r3 + ldrh r0, [r5, 0x6] + ldr r4, _080B899C + lsls r0, 3 + adds r6, r0, r4 + ldrb r2, [r6, 0x1] + lsls r2, 29 + asrs r1, r7, 24 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x6] + lsls r0, 3 + adds r0, r4 + ldrb r0, [r0, 0x1] + lsls r0, 29 + cmp r2, r0 + bne _080B8994 + ldr r1, _080B89A0 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 1 + ldrh r1, [r5, 0x2] + adds r0, r1 + strh r0, [r5, 0x2] + mov r2, r12 + ldrb r0, [r2, 0x11] + movs r1, 0x1F + bl sub_80B13EC +_080B8994: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B899C: .4byte gContestMoves +_080B89A0: .4byte gContestEffects + thumb_func_end ContestEffect_35 + + thumb_func_start ContestEffect_36 +ContestEffect_36: @ 80B89A4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _080B8A28 + ldrb r2, [r0, 0x11] + adds r1, r2, r0 + ldrb r1, [r1] + mov r8, r0 + cmp r1, 0 + beq _080B8A3C + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + mov r1, r8 + subs r1, 0x70 + adds r0, r1 + ldrh r0, [r0, 0x6] + mov r9, r0 + movs r4, 0 + mov r6, r8 + ldr r0, _080B8A2C + mov r12, r0 + movs r7, 0 +_080B89D4: + ldrb r2, [r6, 0x11] + adds r0, r2, r6 + ldrb r0, [r0] + subs r0, 0x1 + adds r1, r4, r6 + ldrb r1, [r1] + cmp r0, r1 + bne _080B8A34 + mov r1, r9 + lsls r0, r1, 3 + mov r1, r12 + adds r3, r0, r1 + ldrb r1, [r3, 0x1] + lsls r1, 29 + mov r5, r8 + subs r5, 0x70 + adds r0, r7, r5 + ldrh r0, [r0, 0x6] + lsls r0, 3 + add r0, r12 + ldrb r0, [r0, 0x1] + lsls r0, 29 + cmp r1, r0 + beq _080B8A34 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r5 + ldr r2, _080B8A30 + ldrb r0, [r3] + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + lsls r0, 1 + ldrh r2, [r1, 0x2] + adds r0, r2 + strh r0, [r1, 0x2] + ldrb r0, [r6, 0x11] + movs r1, 0x20 + bl sub_80B13EC + b _080B8A3C + .align 2, 0 +_080B8A28: .4byte 0x020192d0 +_080B8A2C: .4byte gContestMoves +_080B8A30: .4byte gContestEffects +_080B8A34: + adds r7, 0x1C + adds r4, 0x1 + cmp r4, 0x3 + ble _080B89D4 +_080B8A3C: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_36 + + thumb_func_start ContestEffect_37 +ContestEffect_37: @ 80B8A48 + push {r4-r7,lr} + ldr r1, _080B8A94 + ldrb r0, [r1, 0x11] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080B8AB0 + movs r5, 0 + adds r4, r1, 0 + adds r6, r4, 0 + subs r6, 0x70 + adds r7, r6, 0 +_080B8A60: + ldrb r2, [r4, 0x11] + adds r0, r2, r4 + ldrb r0, [r0] + subs r0, 0x1 + adds r1, r5, r4 + ldrb r1, [r1] + cmp r0, r1 + bne _080B8AA8 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r2, r0, r7 + movs r0, 0x2 + ldrsh r1, [r2, r0] + movs r3, 0x2 + ldrsh r0, [r6, r3] + cmp r1, r0 + ble _080B8A98 + adds r0, r1, 0 + lsls r0, 1 + strh r0, [r2, 0x2] + ldrb r0, [r4, 0x11] + movs r1, 0x21 + bl sub_80B13EC + b _080B8AA8 + .align 2, 0 +_080B8A94: .4byte 0x020192d0 +_080B8A98: + cmp r1, r0 + bge _080B8AA8 + movs r0, 0 + strh r0, [r2, 0x2] + ldrb r0, [r4, 0x11] + movs r1, 0x22 + bl sub_80B13EC +_080B8AA8: + adds r6, 0x1C + adds r5, 0x1 + cmp r5, 0x3 + ble _080B8A60 +_080B8AB0: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_37 + + thumb_func_start ContestEffect_38 +ContestEffect_38: @ 80B8AB8 + push {r4,r5,lr} + ldr r4, _080B8AFC + ldrb r2, [r4, 0x11] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r5, r4, 0 + subs r5, 0x70 + adds r1, r0, r5 + ldrb r3, [r1, 0xD] + movs r0, 0xD + ldrsb r0, [r1, r0] + cmp r0, 0x1D + bgt _080B8B00 + adds r0, r3, 0 + adds r0, 0xA + strb r0, [r1, 0xD] + ldrb r1, [r4, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r2, [r0, 0x10] + movs r1, 0x31 + negs r1, r1 + ands r1, r2 + movs r2, 0x10 + orrs r1, r2 + strb r1, [r0, 0x10] + ldrb r0, [r4, 0x11] + movs r1, 0x23 + bl sub_80B13EC + b _080B8B08 + .align 2, 0 +_080B8AFC: .4byte 0x020192d0 +_080B8B00: + adds r0, r2, 0 + movs r1, 0x3A + bl sub_80B13EC +_080B8B08: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end ContestEffect_38 + + thumb_func_start ContestEffect_39 +ContestEffect_39: @ 80B8B10 + push {r4,lr} + ldr r3, _080B8B48 + ldrb r1, [r3, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r4, r3, 0 + subs r4, 0x70 + adds r0, r4 + ldrb r1, [r0, 0x11] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x11] + ldrb r1, [r3, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0xD] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080B8B4C + adds r0, r1, 0 + movs r1, 0x24 + bl sub_80B13EC + b _080B8B54 + .align 2, 0 +_080B8B48: .4byte 0x020192d0 +_080B8B4C: + adds r0, r1, 0 + movs r1, 0x3B + bl sub_80B13EC +_080B8B54: + pop {r4} + pop {r0} + bx r0 + thumb_func_end ContestEffect_39 + + thumb_func_start ContestEffect_40 +ContestEffect_40: @ 80B8B5C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r1, _080B8BE4 + ldrb r0, [r1, 0x1] + cmp r0, 0x4 + bne _080B8B6E + b _080B8C76 +_080B8B6E: + movs r6, 0 + adds r7, r1, 0 + adds r7, 0xCC + adds r3, r1, 0 + adds r3, 0x5C +_080B8B78: + lsls r1, r6, 24 + asrs r1, 24 + mov r0, sp + adds r2, r0, r1 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x19] + strb r0, [r2] + adds r1, 0x1 + lsls r1, 24 + lsrs r6, r1, 24 + asrs r1, 24 + cmp r1, 0x3 + ble _080B8B78 + ldrb r0, [r7, 0x11] + mov r2, sp + adds r1, r2, r0 + movs r0, 0xFF + strb r0, [r1] + movs r6, 0 + mov r12, r7 + movs r4, 0x70 + negs r4, r4 + adds r4, r7 + mov r8, r4 +_080B8BAE: + movs r5, 0 +_080B8BB0: + lsls r0, r5, 24 + asrs r2, r0, 24 + mov r0, r12 + ldrb r0, [r0, 0x11] + cmp r2, r0 + beq _080B8BE8 + lsls r0, r6, 24 + asrs r3, r0, 24 + mov r1, sp + adds r4, r1, r2 + ldrb r0, [r4] + cmp r3, r0 + bne _080B8BE8 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + add r1, r8 + lsls r0, r3, 24 + lsrs r0, 24 + ldrb r1, [r1, 0x19] + cmp r0, r1 + bne _080B8BE8 + adds r0, r3, 0x1 + strb r0, [r4] + b _080B8BF8 + .align 2, 0 +_080B8BE4: .4byte 0x02019204 +_080B8BE8: + lsls r0, r5, 24 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r5, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _080B8BB0 +_080B8BF8: + cmp r5, 0x4 + beq _080B8C0C + lsls r0, r6, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r6, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _080B8BAE +_080B8C0C: + ldrb r0, [r7, 0x11] + mov r4, sp + adds r1, r4, r0 + movs r0, 0 + strb r0, [r1] + ldrb r0, [r7, 0x11] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r3, r7, 0 + subs r3, 0x70 + adds r1, r3 + ldrb r2, [r1, 0x10] + movs r0, 0x3F + ands r0, r2 + movs r2, 0x40 + orrs r0, r2 + strb r0, [r1, 0x10] + movs r6, 0 +_080B8C32: + lsls r1, r6, 24 + asrs r1, 24 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + mov r4, sp + adds r2, r4, r1 + ldrb r2, [r2] + strb r2, [r0, 0x19] + adds r1, 0x1 + lsls r1, 24 + lsrs r6, r1, 24 + asrs r1, 24 + cmp r1, 0x3 + ble _080B8C32 + ldrb r0, [r7, 0x11] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r0, r7, 0 + subs r0, 0x70 + adds r1, r0 + ldrb r2, [r1, 0x11] + movs r0, 0x4 + negs r0, r0 + ands r0, r2 + movs r2, 0x1 + orrs r0, r2 + strb r0, [r1, 0x11] + ldrb r0, [r7, 0x11] + movs r1, 0x25 + bl sub_80B13EC +_080B8C76: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_40 + + thumb_func_start ContestEffect_41 +ContestEffect_41: @ 80B8C84 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + ldr r1, _080B8D14 + ldrb r0, [r1, 0x1] + cmp r0, 0x4 + bne _080B8C98 + b _080B8DA6 +_080B8C98: + movs r6, 0 + adds r7, r1, 0 + adds r7, 0xCC + adds r3, r1, 0 + adds r3, 0x5C +_080B8CA2: + lsls r1, r6, 24 + asrs r1, 24 + mov r0, sp + adds r2, r0, r1 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x19] + strb r0, [r2] + adds r1, 0x1 + lsls r1, 24 + lsrs r6, r1, 24 + asrs r1, 24 + cmp r1, 0x3 + ble _080B8CA2 + ldrb r0, [r7, 0x11] + mov r2, sp + adds r1, r2, r0 + movs r0, 0xFF + strb r0, [r1] + movs r6, 0x3 + mov r12, r7 + movs r4, 0x70 + negs r4, r4 + adds r4, r7 + mov r8, r4 + movs r0, 0x1 + negs r0, r0 + mov r9, r0 +_080B8CDE: + movs r5, 0 +_080B8CE0: + lsls r0, r5, 24 + asrs r2, r0, 24 + mov r1, r12 + ldrb r1, [r1, 0x11] + cmp r2, r1 + beq _080B8D18 + lsls r0, r6, 24 + asrs r3, r0, 24 + mov r0, sp + adds r4, r0, r2 + ldrb r1, [r4] + cmp r3, r1 + bne _080B8D18 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + add r1, r8 + lsls r0, r3, 24 + lsrs r0, 24 + ldrb r1, [r1, 0x19] + cmp r0, r1 + bne _080B8D18 + subs r0, r3, 0x1 + strb r0, [r4] + b _080B8D28 + .align 2, 0 +_080B8D14: .4byte 0x02019204 +_080B8D18: + lsls r0, r5, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r5, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _080B8CE0 +_080B8D28: + cmp r5, 0x4 + beq _080B8D3C + lsls r0, r6, 24 + movs r4, 0xFF + lsls r4, 24 + adds r0, r4 + lsrs r6, r0, 24 + asrs r0, 24 + cmp r0, r9 + bgt _080B8CDE +_080B8D3C: + ldrb r0, [r7, 0x11] + mov r2, sp + adds r1, r2, r0 + movs r0, 0x3 + strb r0, [r1] + ldrb r0, [r7, 0x11] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r3, r7, 0 + subs r3, 0x70 + adds r1, r3 + ldrb r2, [r1, 0x10] + movs r0, 0x3F + ands r0, r2 + movs r2, 0x40 + orrs r0, r2 + strb r0, [r1, 0x10] + movs r6, 0 +_080B8D62: + lsls r1, r6, 24 + asrs r1, 24 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + mov r4, sp + adds r2, r4, r1 + ldrb r2, [r2] + strb r2, [r0, 0x19] + adds r1, 0x1 + lsls r1, 24 + lsrs r6, r1, 24 + asrs r1, 24 + cmp r1, 0x3 + ble _080B8D62 + ldrb r0, [r7, 0x11] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r0, r7, 0 + subs r0, 0x70 + adds r1, r0 + ldrb r2, [r1, 0x11] + movs r0, 0x4 + negs r0, r0 + ands r0, r2 + movs r2, 0x2 + orrs r0, r2 + strb r0, [r1, 0x11] + ldrb r0, [r7, 0x11] + movs r1, 0x26 + bl sub_80B13EC +_080B8DA6: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_41 + + thumb_func_start ContestEffect_42 +ContestEffect_42: @ 80B8DB4 + bx lr + thumb_func_end ContestEffect_42 + + thumb_func_start ContestEffect_43 +ContestEffect_43: @ 80B8DB8 + push {r4-r7,lr} + sub sp, 0x8 + ldr r1, _080B8E30 + ldrb r0, [r1, 0x1] + cmp r0, 0x4 + beq _080B8EAE + movs r6, 0 + add r3, sp, 0x4 + adds r5, r1, 0 + adds r5, 0x5C + adds r4, r3, 0 +_080B8DCE: + lsls r1, r6, 24 + asrs r1, 24 + mov r0, sp + adds r2, r0, r1 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r0, [r0, 0x19] + strb r0, [r2] + adds r0, r4, r1 + strb r6, [r0] + adds r1, 0x1 + lsls r1, 24 + lsrs r6, r1, 24 + asrs r1, 24 + cmp r1, 0x3 + ble _080B8DCE + movs r6, 0 + adds r7, r3, 0 +_080B8DF6: + bl Random + lsls r0, 16 + lsrs r0, 16 + lsls r2, r6, 24 + asrs r2, 24 + movs r1, 0x4 + subs r1, r2 + bl __modsi3 + lsls r0, 24 + lsrs r4, r0, 24 + movs r1, 0 +_080B8E10: + lsls r0, r1, 24 + asrs r2, r0, 24 + adds r3, r7, r2 + ldrb r1, [r3] + adds r5, r0, 0 + cmp r1, 0xFF + beq _080B8E3A + cmp r4, 0 + bne _080B8E34 + mov r1, sp + adds r0, r1, r2 + strb r6, [r0] + movs r0, 0xFF + strb r0, [r3] + b _080B8E48 + .align 2, 0 +_080B8E30: .4byte 0x02019204 +_080B8E34: + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080B8E3A: + movs r3, 0x80 + lsls r3, 17 + adds r0, r5, r3 + lsrs r1, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _080B8E10 +_080B8E48: + lsls r0, r6, 24 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r6, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _080B8DF6 + movs r6, 0 + ldr r4, _080B8EB8 + adds r7, r4, 0 + subs r7, 0x70 + movs r3, 0x3F + mov r12, r3 + movs r5, 0x80 +_080B8E66: + lsls r2, r6, 24 + asrs r2, 24 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r7 + mov r3, sp + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1, 0x19] + ldrb r3, [r1, 0x10] + mov r0, r12 + ands r0, r3 + orrs r0, r5 + strb r0, [r1, 0x10] + adds r2, 0x1 + lsls r2, 24 + lsrs r6, r2, 24 + asrs r2, 24 + cmp r2, 0x3 + ble _080B8E66 + ldrb r1, [r4, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r4, 0 + subs r1, 0x70 + adds r0, r1 + ldrb r1, [r0, 0x11] + movs r2, 0x3 + orrs r1, r2 + strb r1, [r0, 0x11] + ldrb r0, [r4, 0x11] + movs r1, 0x27 + bl sub_80B13EC +_080B8EAE: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B8EB8: .4byte 0x020192d0 + thumb_func_end ContestEffect_43 + + thumb_func_start ContestEffect_44 +ContestEffect_44: @ 80B8EBC + push {lr} + ldr r3, _080B8EF0 + ldr r1, _080B8EF4 + ldrb r2, [r1, 0x11] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + subs r1, 0x70 + adds r2, r0, r1 + ldrh r0, [r2, 0x6] + lsls r0, 3 + adds r0, r3 + ldrb r0, [r0, 0x1] + lsls r0, 29 + ldr r1, _080B8EF8 + lsrs r0, 29 + ldrh r1, [r1] + cmp r0, r1 + beq _080B8EEA + ldrb r0, [r2, 0x11] + movs r1, 0x10 + orrs r0, r1 + strb r0, [r2, 0x11] +_080B8EEA: + pop {r0} + bx r0 + .align 2, 0 +_080B8EF0: .4byte gContestMoves +_080B8EF4: .4byte 0x020192d0 +_080B8EF8: .4byte gUnknown_0203869C + thumb_func_end ContestEffect_44 + + thumb_func_start ContestEffect_45 +ContestEffect_45: @ 80B8EFC + push {r4-r7,lr} + movs r7, 0 + movs r5, 0 + ldr r4, _080B8F34 + movs r6, 0 +_080B8F06: + ldrb r0, [r4, 0x11] + adds r0, r4 + adds r1, r5, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080B8F52 + adds r0, r4, 0 + subs r0, 0x70 + adds r1, r6, r0 + movs r2, 0x2 + ldrsh r0, [r1, r2] + cmp r0, 0 + ble _080B8F38 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x4] + movs r1, 0x4 + ldrsh r0, [r4, r1] + bl sub_80B9268 + b _080B8F3A + .align 2, 0 +_080B8F34: .4byte 0x020192d0 +_080B8F38: + movs r0, 0xA +_080B8F3A: + strh r0, [r4, 0x4] + strb r5, [r4, 0x8] + movs r0, 0xFF + strb r0, [r4, 0x9] + bl sub_80B9120 + lsls r0, 24 + cmp r0, 0 + beq _080B8F52 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_080B8F52: + adds r6, 0x1C + adds r5, 0x1 + cmp r5, 0x3 + ble _080B8F06 + cmp r7, 0 + bne _080B8F68 + ldr r0, _080B8F78 + ldrb r0, [r0, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B8F68: + ldr r0, _080B8F78 + ldrb r0, [r0, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B8F78: .4byte 0x020192d0 + thumb_func_end ContestEffect_45 + + thumb_func_start ContestEffect_46 +ContestEffect_46: @ 80B8F7C + push {r4,lr} + ldr r0, _080B8F98 + movs r1, 0x13 + ldrsb r1, [r0, r1] + cmp r1, 0 + bne _080B8F9C + movs r4, 0xA + adds r0, 0xCC + ldrb r0, [r0, 0x11] + movs r1, 0x1A + bl sub_80B13EC + b _080B8FDE + .align 2, 0 +_080B8F98: .4byte 0x02019204 +_080B8F9C: + cmp r1, 0x1 + bne _080B8FAE + movs r4, 0x14 + adds r0, 0xCC + ldrb r0, [r0, 0x11] + movs r1, 0x1B + bl sub_80B13EC + b _080B8FDE +_080B8FAE: + cmp r1, 0x2 + bne _080B8FC0 + movs r4, 0x1E + adds r0, 0xCC + ldrb r0, [r0, 0x11] + movs r1, 0x1C + bl sub_80B13EC + b _080B8FDE +_080B8FC0: + cmp r1, 0x3 + bne _080B8FD2 + movs r4, 0x32 + adds r0, 0xCC + ldrb r0, [r0, 0x11] + movs r1, 0x1D + bl sub_80B13EC + b _080B8FDE +_080B8FD2: + movs r4, 0x3C + adds r0, 0xCC + ldrb r0, [r0, 0x11] + movs r1, 0x1E + bl sub_80B13EC +_080B8FDE: + ldr r0, _080B8FF4 + ldrb r2, [r0, 0x11] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + subs r0, 0x70 + adds r1, r0 + strh r4, [r1, 0x2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8FF4: .4byte 0x020192d0 + thumb_func_end ContestEffect_46 + + thumb_func_start ContestEffect_47 +ContestEffect_47: @ 80B8FF8 + push {lr} + ldr r3, _080B9034 + ldrb r2, [r3, 0x1] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _080B902E + movs r0, 0x1 + orrs r2, r0 + movs r0, 0x58 + negs r0, r0 + adds r0, r3 + mov r12, r0 + ldrb r1, [r0, 0x11] + movs r0, 0x7 + ands r0, r1 + lsls r0, 1 + movs r1, 0xF + negs r1, r1 + ands r2, r1 + orrs r2, r0 + strb r2, [r3, 0x1] + mov r1, r12 + ldrb r0, [r1, 0x11] + movs r1, 0x3D + bl sub_80B13EC +_080B902E: + pop {r0} + bx r0 + .align 2, 0 +_080B9034: .4byte 0x02019328 + thumb_func_end ContestEffect_47 + + thumb_func_start sub_80B9038 +sub_80B9038: @ 80B9038 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r7, 0 + movs r5, 0 + ldr r4, _080B907C + ldr r0, _080B9080 + mov r9, r0 + movs r6, 0 +_080B9052: + ldrb r0, [r4, 0x11] + adds r0, r4 + adds r1, r5, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080B909A + adds r0, r4, 0 + subs r0, 0x70 + adds r0, r6, r0 + ldrh r0, [r0, 0x6] + lsls r0, 3 + add r0, r9 + ldrb r0, [r0, 0x1] + lsls r0, 29 + lsrs r0, 29 + cmp r8, r0 + bne _080B9084 + movs r0, 0x28 + b _080B9086 + .align 2, 0 +_080B907C: .4byte 0x020192d0 +_080B9080: .4byte gContestMoves +_080B9084: + movs r0, 0xA +_080B9086: + strh r0, [r4, 0x4] + strb r5, [r4, 0x8] + movs r0, 0xFF + strb r0, [r4, 0x9] + bl sub_80B9120 + lsls r0, 24 + cmp r0, 0 + beq _080B909A + adds r7, 0x1 +_080B909A: + adds r6, 0x1C + adds r5, 0x1 + cmp r5, 0x3 + ble _080B9052 + cmp r7, 0 + bne _080B90B0 + ldr r0, _080B90BC + ldrb r0, [r0, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B90B0: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B90BC: .4byte 0x020192d0 + thumb_func_end sub_80B9038 + + thumb_func_start sub_80B90C0 +sub_80B90C0: @ 80B90C0 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080B90EC + adds r0, r2, 0 + adds r0, 0xD + adds r0, r3, r0 + movs r1, 0x1 + strb r1, [r0] + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + subs r2, 0x70 + adds r2, r0, r2 + ldrb r1, [r2, 0x10] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080B90F0 + adds r0, r3, 0 + movs r1, 0x2D + b _080B9116 + .align 2, 0 +_080B90EC: .4byte 0x020192d0 +_080B90F0: + ldrb r0, [r2, 0x12] + cmp r0, 0 + bne _080B910E + ldrb r1, [r2, 0xB] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B911A + ldrb r1, [r2, 0xC] + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + bne _080B911A + movs r0, 0x1 + b _080B911C +_080B910E: + subs r0, 0x1 + strb r0, [r2, 0x12] + adds r0, r3, 0 + movs r1, 0x2C +_080B9116: + bl sub_80B13EC +_080B911A: + movs r0, 0 +_080B911C: + pop {r1} + bx r1 + thumb_func_end sub_80B90C0 + + thumb_func_start sub_80B9120 +sub_80B9120: @ 80B9120 + push {r4-r7,lr} + sub sp, 0xC + mov r0, sp + movs r1, 0 + movs r2, 0x8 + bl memset + movs r7, 0 + ldr r1, _080B918C + ldrb r0, [r1, 0x8] + cmp r0, 0xFF + beq _080B91D8 + adds r5, r1, 0 +_080B913A: + adds r0, r5, 0 + adds r0, 0x8 + adds r0, r7, r0 + ldrb r4, [r0] + adds r6, r4, 0 + adds r0, r4, 0 + str r1, [sp, 0x8] + bl sub_80B90C0 + lsls r0, 24 + ldr r1, [sp, 0x8] + cmp r0, 0 + beq _080B91C8 + ldrh r0, [r1, 0x4] + strh r0, [r1, 0x6] + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + subs r1, 0x70 + adds r2, r0, r1 + ldrb r1, [r2, 0x10] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080B9174 + movs r1, 0x6 + ldrsh r0, [r5, r1] + lsls r0, 1 + strh r0, [r5, 0x6] +_080B9174: + ldrb r0, [r2, 0x10] + movs r3, 0x1 + ands r3, r0 + cmp r3, 0 + beq _080B9190 + movs r0, 0xA + strh r0, [r5, 0x6] + adds r0, r4, 0 + movs r1, 0x2F + bl sub_80B13EC + b _080B91C8 + .align 2, 0 +_080B918C: .4byte 0x020192d0 +_080B9190: + ldrb r1, [r2, 0xF] + ldrh r0, [r5, 0x6] + subs r0, r1 + adds r1, r0, 0 + strh r0, [r5, 0x6] + lsls r0, 16 + cmp r0, 0 + bgt _080B91AC + strh r3, [r5, 0x6] + adds r0, r4, 0 + movs r1, 0x2E + bl sub_80B13EC + b _080B91C8 +_080B91AC: + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_80B9200 + ldrb r1, [r5, 0x6] + adds r0, r6, 0 + bl sub_80B141C + lsls r0, r6, 1 + mov r2, sp + adds r1, r2, r0 + ldrh r0, [r5, 0x6] + strh r0, [r1] +_080B91C8: + adds r7, 0x1 + ldr r1, _080B91E8 + adds r0, r1, 0 + adds r0, 0x8 + adds r0, r7, r0 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080B913A +_080B91D8: + movs r7, 0 + mov r1, sp +_080B91DC: + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080B91EC + movs r0, 0x1 + b _080B91F6 + .align 2, 0 +_080B91E8: .4byte 0x020192d0 +_080B91EC: + adds r1, 0x2 + adds r7, 0x1 + cmp r7, 0x3 + ble _080B91DC + movs r0, 0 +_080B91F6: + add sp, 0xC + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80B9120 + + thumb_func_start sub_80B9200 +sub_80B9200: @ 80B9200 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 2 + ldr r0, _080B9220 + adds r2, r0 + ldrh r0, [r2, 0x2] + subs r0, r1 + strh r0, [r2, 0x2] + ldrb r0, [r2, 0xE] + adds r1, r0 + strb r1, [r2, 0xE] + bx lr + .align 2, 0 +_080B9220: .4byte 0x02019260 + thumb_func_end sub_80B9200 + + thumb_func_start sub_80B9224 +sub_80B9224: @ 80B9224 + push {r4,r5,lr} + lsls r0, 16 + lsrs r5, r0, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + cmp r4, 0 + bge _080B9234 + negs r0, r4 +_080B9234: + movs r1, 0xA + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r4, 0 + bge _080B9252 + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + beq _080B925C + adds r0, r4, 0 + subs r0, 0xA + adds r0, r1, r0 + b _080B9258 +_080B9252: + lsls r0, 16 + asrs r0, 16 + subs r0, r4, r0 +_080B9258: + lsls r0, 16 + lsrs r5, r0, 16 +_080B925C: + lsls r0, r5, 16 + asrs r0, 16 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80B9224 + + thumb_func_start sub_80B9268 +sub_80B9268: @ 80B9268 + push {r4,r5,lr} + lsls r0, 16 + lsrs r5, r0, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + cmp r4, 0 + bge _080B9278 + negs r0, r4 +_080B9278: + movs r1, 0xA + bl __modsi3 + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + beq _080B9290 + adds r0, r4, 0 + adds r0, 0xA + subs r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 +_080B9290: + lsls r0, r5, 16 + asrs r0, 16 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80B9268 + + thumb_func_start sub_80B929C +sub_80B929C: @ 80B929C + push {lr} + ldr r0, _080B92A8 + bl sub_8083A84 + pop {r0} + bx r0 + .align 2, 0 +_080B92A8: .4byte sub_80B9484 + thumb_func_end sub_80B929C + + thumb_func_start sub_80B92AC +sub_80B92AC: @ 80B92AC + push {r4-r6,lr} + bl sub_80BC300 + bl sub_80C045C + ldr r6, _080B9364 + ldr r0, _080B9368 + ldr r1, [r0] + movs r2, 0xC8 + lsls r2, 4 + adds r0, r6, 0 + bl memcpy + movs r1, 0xC8 + lsls r1, 4 + adds r0, r6, r1 + ldr r1, _080B936C + ldr r1, [r1] + movs r2, 0xE1 + lsls r2, 2 + bl memcpy + ldr r2, _080B9370 + adds r0, r6, r2 + ldr r1, _080B9374 + ldr r1, [r1] + movs r2, 0x40 + bl memcpy + ldr r1, _080B9378 + adds r0, r6, r1 + ldr r1, _080B937C + ldr r1, [r1] + movs r2, 0x40 + bl memcpy + ldr r2, _080B9380 + adds r0, r6, r2 + ldr r1, _080B9384 + ldr r1, [r1] + movs r2, 0x28 + bl memcpy + ldr r5, _080B9388 + ldr r4, _080B938C + ldr r0, _080B9390 + adds r1, r4, r0 + adds r0, r5, 0 + movs r2, 0x38 + bl memcpy + ldr r2, _080B9394 + adds r1, r4, r2 + adds r0, r5, 0 + adds r0, 0x38 + movs r2, 0x38 + bl memcpy + ldr r0, _080B9398 + adds r4, r0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8041324 + ldr r1, _080B939C + adds r0, r6, r1 + ldr r1, _080B93A0 + ldr r1, [r1] + movs r2, 0x78 + bl memcpy + ldr r2, _080B93A4 + adds r0, r6, r2 + ldr r1, _080B93A8 + ldr r1, [r1] + movs r2, 0xA4 + bl memcpy + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080B935C + bl sub_8126338 + ldr r2, _080B93AC + adds r1, r6, r2 + strh r0, [r1] +_080B935C: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9364: .4byte 0x02018000 +_080B9368: .4byte gUnknown_083D026C +_080B936C: .4byte gUnknown_083D0270 +_080B9370: .4byte 0x00001004 +_080B9374: .4byte gUnknown_083D0274 +_080B9378: .4byte 0x00001044 +_080B937C: .4byte gUnknown_083D0278 +_080B9380: .4byte 0x00001084 +_080B9384: .4byte gUnknown_083D027C +_080B9388: .4byte gUnknown_02038738 +_080B938C: .4byte gSaveBlock1 +_080B9390: .4byte 0x0000303c +_080B9394: .4byte 0x00003074 +_080B9398: .4byte 0x00002f9c +_080B939C: .4byte 0x000010ac +_080B93A0: .4byte gUnknown_083D0280 +_080B93A4: .4byte 0x00001124 +_080B93A8: .4byte gUnknown_083D0284 +_080B93AC: .4byte 0x000011c8 + thumb_func_end sub_80B92AC + + thumb_func_start sub_80B93B0 +sub_80B93B0: @ 80B93B0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r0, 0 + ldr r5, _080B9430 + ldr r6, _080B9434 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80BD674 + movs r0, 0xC8 + lsls r0, 4 + adds r0, r5 + mov r8, r0 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80BFD44 + ldr r1, _080B9438 + adds r0, r5, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80C0514 + ldr r1, _080B943C + adds r0, r5, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80B9B1C + ldr r1, _080B9440 + adds r0, r5, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80FA4E4 + ldr r1, _080B9444 + adds r0, r5, r1 + adds r1, r6, 0 + adds r2, r4, 0 + mov r3, r8 + bl sub_80B9C6C + ldr r1, _080B9448 + adds r0, r5, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80B9B70 + ldr r0, _080B944C + adds r5, r0 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80B9F3C + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9430: .4byte 0x02008000 +_080B9434: .4byte 0x00001230 +_080B9438: .4byte 0x00001004 +_080B943C: .4byte 0x00001044 +_080B9440: .4byte 0x00001084 +_080B9444: .4byte 0x000010ac +_080B9448: .4byte 0x00001124 +_080B944C: .4byte 0x000011c8 + thumb_func_end sub_80B93B0 + + thumb_func_start sub_80B9450 +sub_80B9450: @ 80B9450 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B9480 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x32 + bne _080B9478 + movs r0, 0xE2 + bl PlaySE + movs r0, 0 + strh r0, [r4, 0x8] +_080B9478: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B9480: .4byte gTasks + thumb_func_end sub_80B9450 + + thumb_func_start sub_80B9484 +sub_80B9484: @ 80B9484 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B94A8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bls _080B949E + b _080B95E6 +_080B949E: + lsls r0, 2 + ldr r1, _080B94AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B94A8: .4byte gUnknown_03004B28 +_080B94AC: .4byte _080B94B0 + .align 2, 0 +_080B94B0: + .4byte _080B94C8 + .4byte _080B951C + .4byte _080B9550 + .4byte _080B9570 + .4byte _080B95AC + .4byte _080B95C0 +_080B94C8: + ldr r0, _080B950C + ldrb r0, [r0] + bl sub_8007270 + movs r0, 0x80 + lsls r0, 7 + movs r1, 0x1 + bl VarSet + ldr r1, _080B9510 + movs r0, 0 + strb r0, [r1] + bl sub_80B92AC + bl sub_80C71D8 + movs r0, 0x1 + strh r0, [r4] + ldr r0, _080B9514 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + ldr r0, _080B9518 + movs r1, 0x51 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1E] + b _080B95E6 + .align 2, 0 +_080B950C: .4byte gUnknown_0202E8CE +_080B9510: .4byte gUnknown_03000718 +_080B9514: .4byte sub_80B95F0 +_080B9518: .4byte sub_80B9450 +_080B951C: + ldr r2, _080B9548 + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _080B95E6 + movs r0, 0x2 + strh r0, [r4] + ldr r0, _080B954C + bl FlagSet + bl sub_80C7240 + ldrb r0, [r4, 0x1E] + bl DestroyTask + b _080B95E6 + .align 2, 0 +_080B9548: .4byte gTasks +_080B954C: .4byte 0x00000834 +_080B9550: + ldr r0, _080B956C + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + movs r0, 0x3 + strh r0, [r4] + movs r0, 0xE0 + bl PlaySE + b _080B95E6 + .align 2, 0 +_080B956C: .4byte sub_80BA00C +_080B9570: + ldr r2, _080B95A4 + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r5, [r0, 0x4] + cmp r5, 0 + bne _080B95E6 + movs r0, 0x4 + strh r0, [r4] + bl sub_8083664 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + bl sub_80720B0 + ldr r0, _080B95A8 + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + strh r5, [r4, 0x10] + b _080B95E6 + .align 2, 0 +_080B95A4: .4byte gTasks +_080B95A8: .4byte gOtherText_MixingComplete +_080B95AC: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080B95E6 + movs r0, 0x5 + strh r0, [r4] + b _080B95E6 +_080B95C0: + ldr r2, _080B95EC + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _080B95E6 + bl sub_8055588 + bl MenuZeroFillScreen + adds r0, r5, 0 + bl DestroyTask + bl EnableBothScriptContexts +_080B95E6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B95EC: .4byte gTasks + thumb_func_end sub_80B9484 + + thumb_func_start sub_80B95F0 +sub_80B95F0: @ 80B95F0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r7, _080B961C + adds r5, r0, r7 + movs r0, 0x8 + ldrsh r1, [r5, r0] + cmp r1, 0x64 + beq _080B9678 + cmp r1, 0x64 + bgt _080B962E + cmp r1, 0x1 + bne _080B9612 + b _080B9734 +_080B9612: + cmp r1, 0x1 + bgt _080B9620 + cmp r1, 0 + beq _080B9650 + b _080B97D6 + .align 2, 0 +_080B961C: .4byte gTasks +_080B9620: + cmp r1, 0x2 + bne _080B9626 + b _080B9760 +_080B9626: + cmp r1, 0x5 + bne _080B962C + b _080B97C0 +_080B962C: + b _080B97D6 +_080B962E: + cmp r1, 0xC9 + beq _080B96D0 + cmp r1, 0xC9 + bgt _080B963C + cmp r1, 0x65 + beq _080B9690 + b _080B97D6 +_080B963C: + ldr r0, _080B964C + cmp r1, r0 + beq _080B9706 + adds r0, 0x63 + cmp r1, r0 + beq _080B971C + b _080B97D6 + .align 2, 0 +_080B964C: .4byte 0x0000012d +_080B9650: + bl sub_80B9A78 + bl MenuDisplayMessageBox + ldr r0, _080B9674 + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + movs r0, 0xE1 + lsls r0, 3 + strh r0, [r5, 0x18] + movs r0, 0xC8 + lsls r0, 1 + strh r0, [r5, 0x8] + bl ClearLinkCallback_2 + b _080B97D6 + .align 2, 0 +_080B9674: .4byte gOtherText_MixingRecordsWithFriend +_080B9678: + ldrh r0, [r5, 0x20] + adds r0, 0x1 + strh r0, [r5, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bgt _080B9688 + b _080B97D6 +_080B9688: + movs r0, 0 + strh r0, [r5, 0x20] + movs r0, 0x65 + b _080B97D4 +_080B9690: + bl GetLinkPlayerCount_2 + lsls r0, 24 + lsrs r4, r0, 24 + bl IsLinkMaster + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B96C2 + bl sub_800820C + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + beq _080B96B2 + b _080B97D6 +_080B96B2: + movs r0, 0x15 + bl PlaySE + movs r1, 0 + movs r0, 0xC9 + strh r0, [r5, 0x8] + strh r1, [r5, 0x20] + b _080B97D6 +_080B96C2: + movs r0, 0x16 + bl PlaySE + ldr r0, _080B96CC + b _080B97D4 + .align 2, 0 +_080B96CC: .4byte 0x0000012d +_080B96D0: + bl sub_800820C + adds r4, r0, 0 + bl GetLinkPlayerCount_2 + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080B97D6 + ldrh r4, [r5, 0x20] + adds r4, 0x1 + strh r4, [r5, 0x20] + lsls r4, 16 + asrs r4, 16 + bl GetLinkPlayerCount_2 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 1 + cmp r4, r1 + ble _080B97D6 + bl sub_8007F4C + movs r0, 0x1 + b _080B97D4 +_080B9706: + bl sub_800820C + adds r4, r0, 0 + bl GetLinkPlayerCount_2 + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080B97D6 + movs r0, 0x1 + b _080B97D4 +_080B971C: + ldrh r0, [r5, 0x20] + adds r0, 0x1 + strh r0, [r5, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080B97D6 + movs r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + strh r0, [r5, 0x20] + b _080B97D6 +_080B9734: + ldr r0, _080B9758 + ldrb r0, [r0] + cmp r0, 0 + beq _080B97D6 + ldr r4, _080B975C + bl sub_80B9A58 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + movs r0, 0x5 + b _080B97D4 + .align 2, 0 +_080B9758: .4byte gReceivedRemoteLinkPlayers +_080B975C: .4byte gStringVar1 +_080B9760: + bl GetLinkPlayerCount_2 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + strh r0, [r5, 0x14] + strh r1, [r5, 0x8] + bl sub_80B9A58 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x12] + ldr r0, _080B97B0 + str r0, [r5] + ldr r4, _080B97B4 + adds r1, r5, 0 + adds r1, 0xC + adds r0, r4, 0 + bl sub_80B9A50 + ldr r0, _080B97B8 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x1C] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r0, r1, r7 + strh r6, [r0, 0x8] + ldr r0, _080B97BC + adds r4, r0 + adds r1, r7, r1 + adds r1, 0x12 + adds r0, r4, 0 + bl sub_80B9A50 + b _080B97D6 + .align 2, 0 +_080B97B0: .4byte sub_80B97DC +_080B97B4: .4byte 0x02018000 +_080B97B8: .4byte sub_80B9890 +_080B97BC: .4byte 0xffff0000 +_080B97C0: + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080B97D6 + movs r0, 0 + strh r0, [r5, 0x1C] + movs r0, 0x2 +_080B97D4: + strh r0, [r5, 0x8] +_080B97D6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B95F0 + + thumb_func_start sub_80B97DC +sub_80B97DC: @ 80B97DC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B9800 + adds r4, r1, r0 + movs r2, 0x8 + ldrsh r1, [r4, r2] + adds r2, r0, 0 + cmp r1, 0x4 + bhi _080B9884 + lsls r0, r1, 2 + ldr r1, _080B9804 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B9800: .4byte gTasks +_080B9804: .4byte _080B9808 + .align 2, 0 +_080B9808: + .4byte _080B981C + .4byte _080B9840 + .4byte _080B9884 + .4byte _080B9852 + .4byte _080B986E +_080B981C: + adds r0, r4, 0 + adds r0, 0xC + bl sub_80B9A44 + adds r1, r0, 0 + movs r0, 0x10 + ldrsh r2, [r4, r0] + movs r0, 0xC8 + muls r0, r2 + adds r1, r0 + ldr r0, _080B983C + movs r2, 0xC8 + bl memcpy + b _080B9860 + .align 2, 0 +_080B983C: .4byte gBlockSendBuffer +_080B9840: + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080B9860 + movs r0, 0x1 + bl sub_8007E9C + b _080B9860 +_080B9852: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x18 + bne _080B9868 +_080B9860: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B9884 +_080B9868: + movs r0, 0 + strh r0, [r4, 0x8] + b _080B9884 +_080B986E: + movs r1, 0x1C + ldrsh r0, [r4, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0 + bne _080B9884 + ldr r0, _080B988C + str r0, [r4] +_080B9884: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B988C: .4byte sub_80B9A1C + thumb_func_end sub_80B97DC + + thumb_func_start sub_80B9890 +sub_80B9890: @ 80B9890 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r0, 2 + ldr r1, [sp] + adds r0, r1 + lsls r0, 3 + ldr r1, _080B98D0 + adds r0, r1 + mov r10, r0 + bl GetBlockRecievedStatus + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r2, 0 + str r2, [sp, 0x8] + bl sub_8008198 + lsls r0, 24 + lsrs r0, 24 + ldr r3, [sp, 0x4] + cmp r3, r0 + bne _080B998A + movs r0, 0 + b _080B9966 + .align 2, 0 +_080B98D0: .4byte gTasks +_080B98D4: + ldr r1, [sp, 0x4] + mov r2, r9 + asrs r1, r2 + movs r0, 0x1 + ands r1, r0 + movs r3, 0x1 + add r3, r9 + mov r8, r3 + cmp r1, 0 + beq _080B9960 + mov r0, r10 + adds r0, 0x12 + bl sub_80B9A44 + mov r1, r8 + lsls r4, r1, 1 + mov r5, r10 + adds r5, 0x8 + adds r4, r5, r4 + movs r2, 0 + ldrsh r1, [r4, r2] + movs r3, 0xC8 + muls r1, r3 + adds r0, r1 + ldr r7, _080B9930 + mov r1, r9 + muls r1, r7 + adds r6, r0, r1 + mov r0, r9 + str r3, [sp, 0xC] + bl sub_80B9A68 + adds r1, r0, 0 + movs r0, 0 + ldrsh r2, [r4, r0] + adds r0, r2, 0x1 + ldr r3, [sp, 0xC] + muls r0, r3 + cmp r0, r7 + bls _080B9934 + muls r2, r3 + subs r2, r7, r2 + adds r0, r6, 0 + bl memcpy + b _080B993C + .align 2, 0 +_080B9930: .4byte 0x00001230 +_080B9934: + adds r0, r6, 0 + movs r2, 0xC8 + bl memcpy +_080B993C: + mov r0, r9 + bl ResetBlockReceivedFlag + mov r2, r8 + lsls r1, r2, 1 + adds r1, r5, r1 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x18 + bne _080B9960 + ldr r0, [sp, 0x8] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] +_080B9960: + mov r3, r8 + lsls r0, r3, 24 + lsrs r0, 24 +_080B9966: + mov r9, r0 + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r9, r0 + bcc _080B98D4 + ldr r2, _080B99B0 + mov r0, r10 + movs r3, 0x8 + ldrsh r1, [r0, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] +_080B998A: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + ldr r1, [sp, 0x8] + cmp r1, r0 + bne _080B999E + ldr r0, [sp] + bl DestroyTask +_080B999E: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B99B0: .4byte gTasks + thumb_func_end sub_80B9890 + + thumb_func_start sub_80B99B4 +sub_80B99B4: @ 80B99B4 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r2, _080B99E4 + adds r0, r2 + movs r4, 0x1C + ldrsh r1, [r0, r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _080B99DC + adds r0, r3, 0 + bl DestroyTask +_080B99DC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B99E4: .4byte gTasks + thumb_func_end sub_80B99B4 + + thumb_func_start sub_80B99E8 +sub_80B99E8: @ 80B99E8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B9A10 + adds r1, r0 + ldr r0, _080B9A14 + str r0, [r1] + ldr r0, _080B9A18 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080B9A0C + movs r2, 0x12 + ldrsh r0, [r1, r2] + bl sub_80B93B0 +_080B9A0C: + pop {r0} + bx r0 + .align 2, 0 +_080B9A10: .4byte gTasks +_080B9A14: .4byte sub_80B99B4 +_080B9A18: .4byte gUnknown_03000718 + thumb_func_end sub_80B99E8 + + thumb_func_start sub_80B9A1C +sub_80B9A1C: @ 80B9A1C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B9A38 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080B9A3C + str r0, [r1] + ldr r1, _080B9A40 + movs r0, 0x1 + strb r0, [r1] + bx lr + .align 2, 0 +_080B9A38: .4byte gTasks +_080B9A3C: .4byte sub_80B99E8 +_080B9A40: .4byte gUnknown_03000718 + thumb_func_end sub_80B9A1C + + thumb_func_start sub_80B9A44 +sub_80B9A44: @ 80B9A44 + adds r1, r0, 0 + ldrh r0, [r1] + ldrh r1, [r1, 0x2] + lsls r1, 16 + orrs r0, r1 + bx lr + thumb_func_end sub_80B9A44 + + thumb_func_start sub_80B9A50 +sub_80B9A50: @ 80B9A50 + strh r0, [r1] + lsrs r0, 16 + strh r0, [r1, 0x2] + bx lr + thumb_func_end sub_80B9A50 + + thumb_func_start sub_80B9A58 +sub_80B9A58: @ 80B9A58 + push {lr} + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80B9A58 + + thumb_func_start sub_80B9A68 +sub_80B9A68: @ 80B9A68 + lsls r0, 24 + lsrs r0, 16 + ldr r1, _080B9A74 + adds r0, r1 + bx lr + .align 2, 0 +_080B9A74: .4byte gBlockRecvBuffer + thumb_func_end sub_80B9A68 + + thumb_func_start sub_80B9A78 +sub_80B9A78: @ 80B9A78 + ldr r1, _080B9A80 + ldr r0, _080B9A84 + str r0, [r1] + bx lr + .align 2, 0 +_080B9A80: .4byte gUnknown_03005D2C +_080B9A84: .4byte 0x00001230 + thumb_func_end sub_80B9A78 + + thumb_func_start sub_80B9A88 +sub_80B9A88: @ 80B9A88 + push {r4,lr} + adds r4, r0, 0 + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080B9AC0 + cmp r0, 0x3 + bhi _080B9AA2 + cmp r0, 0x2 + beq _080B9AA8 + b _080B9B10 +_080B9AA2: + cmp r0, 0x4 + beq _080B9AEC + b _080B9B10 +_080B9AA8: + movs r2, 0 + ldr r3, _080B9ABC +_080B9AAC: + adds r0, r4, r2 + adds r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x1 + bls _080B9AAC + b _080B9B10 + .align 2, 0 +_080B9ABC: .4byte gUnknown_083D0288 +_080B9AC0: + movs r0, 0 + bl GetLinkPlayerTrainerId + adds r3, r0, 0 + movs r0, 0x1 + ands r3, r0 + movs r2, 0 + ldr r1, _080B9AE8 + lsls r0, r3, 1 + adds r0, r3 + adds r3, r0, r1 +_080B9AD6: + adds r1, r4, r2 + ldrb r0, [r3] + strb r0, [r1] + adds r3, 0x1 + adds r2, 0x1 + cmp r2, 0x2 + bls _080B9AD6 + b _080B9B10 + .align 2, 0 +_080B9AE8: .4byte gUnknown_083D028A +_080B9AEC: + movs r0, 0 + bl GetLinkPlayerTrainerId + movs r1, 0x9 + bl __umodsi3 + adds r3, r0, 0 + movs r2, 0 + ldr r1, _080B9B18 + lsls r0, r3, 2 + adds r3, r0, r1 +_080B9B02: + adds r1, r4, r2 + ldrb r0, [r3] + strb r0, [r1] + adds r3, 0x1 + adds r2, 0x1 + cmp r2, 0x3 + bls _080B9B02 +_080B9B10: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B9B18: .4byte gUnknown_083D0290 + thumb_func_end sub_80B9A88 + + thumb_func_start sub_80B9B1C +sub_80B9B1C: @ 80B9B1C + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + adds r5, r0, 0 + mov r8, r1 + lsls r4, r2, 24 + lsrs r4, 24 + mov r0, sp + bl sub_80B9A88 + mov r0, r8 + muls r0, r4 + adds r0, r5, r0 + ldr r1, _080B9B6C + ldr r6, [r1] + adds r1, r6, 0 + movs r2, 0x40 + bl memcpy + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r5, r0 + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x40 + bl memcpy + bl sub_80F7F30 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9B6C: .4byte gUnknown_083D0278 + thumb_func_end sub_80B9B1C + + thumb_func_start sub_80B9B70 +sub_80B9B70: @ 80B9B70 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + adds r6, r0, 0 + mov r9, r1 + lsls r4, r2, 24 + lsrs r4, 24 + ldr r0, _080B9BB8 + mov r8, r0 + bl sub_80B9A88 + mov r5, r9 + muls r5, r4 + adds r5, r6, r5 + add r4, r8 + ldrb r0, [r4] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + adds r6, r0 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0xA4 + bl memcpy + adds r0, r5, 0 + bl sub_8134AC0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9BB8: .4byte gUnknown_0300071C + thumb_func_end sub_80B9B70 + + thumb_func_start sub_80B9BBC +sub_80B9BBC: @ 80B9BBC + ldrh r0, [r0, 0x20] + lsls r0, 24 + lsrs r0, 24 + bx lr + thumb_func_end sub_80B9BBC + + thumb_func_start sub_80B9BC4 +sub_80B9BC4: @ 80B9BC4 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x38 + mov r8, r0 + mov r10, r1 + mov r9, r2 + adds r4, r3, 0 + ldr r5, [sp, 0x54] + lsls r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsrs r4, 23 + add r4, r9 + ldrb r0, [r4] + mov r6, r10 + muls r6, r0 + add r6, r8 + ldrb r0, [r4, 0x1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 3 + adds r1, r6, r1 + mov r0, sp + movs r2, 0x38 + bl memcpy + lsls r5, 1 + add r5, r9 + ldrb r0, [r5] + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + add r8, r0 + ldrb r1, [r4, 0x1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 3 + adds r6, r0 + ldrb r0, [r5, 0x1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 3 + add r1, r8 + adds r0, r6, 0 + movs r2, 0x38 + bl memcpy + ldrb r1, [r5, 0x1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 3 + add r8, r0 + mov r0, r8 + mov r1, sp + movs r2, 0x38 + bl memcpy + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B9BC4 + + thumb_func_start sub_80B9C4C +sub_80B9C4C: @ 80B9C4C + push {lr} + adds r3, r0, 0 + movs r2, 0 + movs r1, 0 +_080B9C54: + adds r0, r3, r1 + ldrb r0, [r0] + adds r0, r2, r0 + lsls r0, 24 + lsrs r2, r0, 24 + adds r1, 0x1 + cmp r1, 0xFF + ble _080B9C54 + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_80B9C4C + + thumb_func_start sub_80B9C6C +sub_80B9C6C: @ 80B9C6C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x58 + str r0, [sp, 0x2C] + str r1, [sp, 0x30] + str r3, [sp, 0x38] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x34] + bl Random + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x40] + ldr r0, _080B9DA8 + ldrh r0, [r0, 0x4] + bl SeedRng + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r3, 0 + add r0, sp, 0x1C + mov r9, r0 + movs r1, 0x1D + add r1, sp + mov r10, r1 + mov r2, sp + adds r2, 0xC + str r2, [sp, 0x4C] + movs r7, 0xFF + add r4, sp, 0x8 + movs r2, 0 + mov r6, r9 + mov r5, r10 +_080B9CBC: + mov r1, sp + adds r1, r3 + adds r1, 0x4 + ldrb r0, [r1] + orrs r0, r7 + strb r0, [r1] + adds r0, r4, r3 + strb r2, [r0] + lsls r1, r3, 1 + adds r0, r6, r1 + strb r2, [r0] + adds r1, r5, r1 + strb r2, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080B9CBC + movs r4, 0 + str r4, [sp, 0x3C] + movs r3, 0 + mov r1, r8 + lsls r0, r1, 16 + lsrs r1, r0, 16 + str r0, [sp, 0x50] + ldr r4, [sp, 0x30] + ldr r0, [sp, 0x34] + adds r2, r4, 0 + muls r2, r0 + str r2, [sp, 0x48] + ldr r2, [sp, 0x3C] + cmp r2, r1 + bcs _080B9D46 + mov r8, r1 +_080B9D00: + ldr r4, [sp, 0x30] + adds r0, r4, 0 + muls r0, r3 + ldr r1, [sp, 0x2C] + adds r6, r1, r0 + ldr r0, [r6, 0x70] + cmp r0, 0 + beq _080B9D3C + movs r7, 0 + cmp r7, r0 + bcs _080B9D3C + adds r4, r6, 0 + adds r4, 0x74 + mov r2, r9 + lsls r1, r3, 1 + movs r5, 0x1 +_080B9D20: + lsls r0, r7, 1 + adds r0, r4, r0 + ldrh r0, [r0] + cmp r0, 0 + bne _080B9D30 + adds r0, r7, r1 + adds r0, r2, r0 + strb r5, [r0] +_080B9D30: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, [r6, 0x70] + cmp r7, r0 + bcc _080B9D20 +_080B9D3C: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r8 + bcc _080B9D00 +_080B9D46: + movs r7, 0 + movs r3, 0 + ldr r2, [sp, 0x50] + cmp r2, 0 + beq _080B9E3E + mov r4, sp + adds r4, 0x24 + str r4, [sp, 0x44] + movs r0, 0x25 + add r0, sp + mov r8, r0 +_080B9D5C: + ldr r1, [sp, 0x30] + adds r0, r1, 0 + muls r0, r3 + ldr r2, [sp, 0x2C] + adds r6, r2, r0 + lsls r1, r3, 1 + mov r4, r9 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080B9D7C + mov r2, r10 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080B9D86 +_080B9D7C: + ldr r0, [sp, 0x3C] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x3C] +_080B9D86: + mov r4, r9 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080B9DAC + mov r2, r10 + adds r0, r2, r1 + ldrb r2, [r0] + cmp r2, 0 + bne _080B9DAC +_080B9D9A: + lsls r1, r7, 1 + ldr r4, [sp, 0x44] + adds r0, r4, r1 + strb r3, [r0] + add r1, r8 + strb r2, [r1] + b _080B9E2C + .align 2, 0 +_080B9DA8: .4byte gLinkPlayers +_080B9DAC: + mov r2, r9 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080B9DC0 + mov r4, r10 + adds r0, r4, r1 + ldrb r2, [r0] + cmp r2, 0x1 + beq _080B9D9A +_080B9DC0: + mov r2, r9 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080B9E32 + mov r4, r10 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080B9E32 + lsls r5, r7, 1 + ldr r1, [sp, 0x44] + adds r0, r1, r5 + strb r3, [r0] + adds r0, r6, 0 + str r3, [sp, 0x54] + bl sub_80B9BBC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + adds r0, 0x38 + bl sub_80B9BBC + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, [sp, 0x54] + cmp r4, 0 + bne _080B9E0A + cmp r1, 0 + beq _080B9E0E + mov r2, r8 + adds r1, r2, r5 + movs r0, 0x1 + strb r0, [r1] + b _080B9E2C +_080B9E0A: + cmp r1, 0 + beq _080B9E26 +_080B9E0E: + str r3, [sp, 0x54] + bl Random + mov r4, r8 + adds r2, r4, r5 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ands r0, r1 + strb r0, [r2] + ldr r3, [sp, 0x54] + b _080B9E2C +_080B9E26: + mov r2, r8 + adds r0, r2, r5 + strb r1, [r0] +_080B9E2C: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 +_080B9E32: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + ldr r4, [sp, 0x50] + cmp r0, r4 + bcc _080B9D5C +_080B9E3E: + movs r3, 0 + ldr r1, [sp, 0x48] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 3 + ldr r2, [sp, 0x2C] + adds r6, r2, r0 + ldr r1, [sp, 0x4C] +_080B9E4E: + lsls r0, r3, 2 + adds r0, r1, r0 + str r6, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080B9E4E + ldr r0, [sp, 0x38] + bl sub_80B9C4C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r1, r0, 24 + ldr r4, [sp, 0x3C] + cmp r4, 0x3 + beq _080B9E9C + cmp r4, 0x3 + bgt _080B9E82 + cmp r4, 0x2 + beq _080B9E8A + b _080B9EF0 +_080B9E82: + ldr r0, [sp, 0x3C] + cmp r0, 0x4 + beq _080B9EBC + b _080B9EF0 +_080B9E8A: + add r2, sp, 0x24 + movs r0, 0x1 + str r0, [sp] + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + movs r3, 0 + bl sub_80B9BC4 + b _080B9EF0 +_080B9E9C: + ldr r0, _080B9EB8 + lsls r1, 1 + adds r2, r1, r0 + ldrb r3, [r2] + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + add r2, sp, 0x24 + str r0, [sp] + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + bl sub_80B9BC4 + b _080B9EF0 + .align 2, 0 +_080B9EB8: .4byte gUnknown_083D02B4 +_080B9EBC: + add r6, sp, 0x24 + ldr r4, _080B9F2C + lsls r5, r1, 2 + adds r0, r5, r4 + ldrb r3, [r0] + adds r0, r4, 0x1 + adds r0, r5, r0 + ldrb r0, [r0] + str r0, [sp] + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + adds r2, r6, 0 + bl sub_80B9BC4 + adds r0, r4, 0x2 + adds r0, r5, r0 + ldrb r3, [r0] + adds r4, 0x3 + adds r5, r4 + ldrb r0, [r5] + str r0, [sp] + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + adds r2, r6, 0 + bl sub_80B9BC4 +_080B9EF0: + ldr r1, [sp, 0x2C] + ldr r2, [sp, 0x48] + adds r6, r1, r2 + ldr r4, _080B9F30 + ldr r1, _080B9F34 + adds r0, r4, r1 + adds r1, r6, 0 + movs r2, 0x38 + bl memcpy + ldr r2, _080B9F38 + adds r4, r2 + adds r1, r6, 0 + adds r1, 0x38 + adds r0, r4, 0 + movs r2, 0x38 + bl memcpy + ldr r0, [sp, 0x40] + bl SeedRng + add sp, 0x58 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B9F2C: .4byte gUnknown_083D02BA +_080B9F30: .4byte gSaveBlock1 +_080B9F34: .4byte 0x0000303c +_080B9F38: .4byte 0x00003074 + thumb_func_end sub_80B9C6C + + thumb_func_start sub_80B9F3C +sub_80B9F3C: @ 80B9F3C + push {r4,lr} + adds r4, r0, 0 + lsls r1, 24 + cmp r1, 0 + beq _080BA000 + ldrh r0, [r4] + cmp r0, 0 + beq _080BA000 + bl sub_80A9670 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bne _080B9FC8 + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A92D4 + lsls r0, 24 + cmp r0, 0 + bne _080B9FB8 + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A9718 + lsls r0, 24 + cmp r0, 0 + bne _080B9FB8 + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A9424 + lsls r0, 24 + cmp r0, 0 + beq _080B9FB8 + ldr r0, _080B9FA4 + ldrh r1, [r4] + bl VarSet + ldr r0, _080B9FA8 + ldr r1, _080B9FAC + bl StringCopy + ldrh r1, [r4] + ldr r0, _080B9FB0 + cmp r1, r0 + bne _080BA000 + ldr r0, _080B9FB4 + bl FlagSet + b _080BA000 + .align 2, 0 +_080B9FA4: .4byte 0x00004001 +_080B9FA8: .4byte gStringVar1 +_080B9FAC: .4byte gLinkPlayers + 0x8 +_080B9FB0: .4byte 0x00000113 +_080B9FB4: .4byte 0x00000853 +_080B9FB8: + ldr r0, _080B9FC4 + movs r1, 0 + bl VarSet + b _080BA000 + .align 2, 0 +_080B9FC4: .4byte 0x00004001 +_080B9FC8: + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A9424 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B9FF8 + ldr r0, _080B9FEC + ldrh r1, [r4] + bl VarSet + ldr r0, _080B9FF0 + ldr r1, _080B9FF4 + bl StringCopy + b _080BA000 + .align 2, 0 +_080B9FEC: .4byte 0x00004001 +_080B9FF0: .4byte gStringVar1 +_080B9FF4: .4byte gLinkPlayers + 0x8 +_080B9FF8: + ldr r0, _080BA008 + movs r1, 0 + bl VarSet +_080BA000: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA008: .4byte 0x00004001 + thumb_func_end sub_80B9F3C + + thumb_func_start sub_80BA00C +sub_80BA00C: @ 80BA00C + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080BA030 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bhi _080BA09C + lsls r0, 2 + ldr r1, _080BA034 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BA030: .4byte gTasks +_080BA034: .4byte _080BA038 + .align 2, 0 +_080BA038: + .4byte _080BA086 + .4byte _080BA086 + .4byte _080BA050 + .4byte _080BA05A + .4byte _080BA074 + .4byte _080BA08E +_080BA050: + bl sub_8047A1C + bl sub_8125E2C + b _080BA086 +_080BA05A: + bl sub_8125E6C + lsls r0, 24 + cmp r0, 0 + beq _080BA09C + bl sub_8047A34 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x8] + strh r1, [r4, 0xA] + b _080BA09C +_080BA074: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + ble _080BA09C + bl sub_800832C +_080BA086: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080BA09C +_080BA08E: + ldr r0, _080BA0A4 + ldrb r0, [r0] + cmp r0, 0 + bne _080BA09C + adds r0, r2, 0 + bl DestroyTask +_080BA09C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA0A4: .4byte gReceivedRemoteLinkPlayers + thumb_func_end sub_80BA00C + + thumb_func_start sub_80BA0A8 +sub_80BA0A8: @ 80BA0A8 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_80BA0A8 + + thumb_func_start sub_80BA0C0 +sub_80BA0C0: @ 80BA0C0 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r0, _080BA0E8 + ldrb r0, [r0] + cmp r0, 0 + beq _080BA0E2 + bl m4aSoundMain + bl m4aSoundMain + bl m4aSoundMain +_080BA0E2: + pop {r0} + bx r0 + .align 2, 0 +_080BA0E8: .4byte gUnknown_020387B0 + thumb_func_end sub_80BA0C0 + + thumb_func_start unref_sub_80BA0EC +unref_sub_80BA0EC: @ 80BA0EC + push {r4-r6,lr} + sub sp, 0xC + movs r0, 0 + bl SetVBlankCallback + movs r6, 0x80 + lsls r6, 19 + movs r5, 0 + strh r5, [r6] + ldr r0, _080BA20C + strh r5, [r0] + subs r0, 0x2 + strh r5, [r0] + subs r0, 0x2 + strh r5, [r0] + adds r0, 0x10 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + subs r0, 0x6 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + subs r0, 0x6 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + add r0, sp, 0x4 + strh r5, [r0] + ldr r1, _080BA210 + str r0, [r1] + movs r0, 0xC0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _080BA214 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r4, 0 + str r4, [sp, 0x8] + add r0, sp, 0x8 + str r0, [r1] + movs r0, 0xE0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _080BA218 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add r0, sp, 0x4 + strh r4, [r0] + str r0, [r1] + movs r0, 0xA0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _080BA21C + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl ResetPaletteFade + bl ResetTasks + bl ResetSpriteData + ldr r0, _080BA220 + bl SetUpWindowConfig + ldr r0, _080BA224 + bl InitMenuWindow + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080BA228 + strh r4, [r0] + adds r0, 0x4 + strh r4, [r0] + subs r0, 0x2 + strh r4, [r0] + adds r0, 0x4 + strh r4, [r0] + ldr r1, _080BA22C + ldr r2, _080BA230 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x31 + strh r0, [r1] + adds r1, 0x6 + movs r0, 0xE1 + strh r0, [r1] + ldr r0, _080BA234 + strh r4, [r0] + adds r1, 0x4 + movs r0, 0x7 + strh r0, [r1] + ldr r1, _080BA238 + movs r2, 0x1 + strh r2, [r1] + ldrh r0, [r1] + orrs r0, r2 + strh r0, [r1] + ldr r2, _080BA23C + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r0, _080BA240 + bl SetVBlankCallback + ldr r0, _080BA244 + bl SetMainCallback2 + ldr r1, _080BA248 + adds r0, r1, 0 + strh r0, [r6] + ldr r0, _080BA24C + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BA250 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + strh r4, [r1, 0xA] + strh r4, [r1, 0xC] + strh r4, [r1, 0xE] + ldr r0, _080BA254 + strb r5, [r0] + strh r4, [r1, 0xE] + bl m4aSoundInit + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BA20C: .4byte REG_BG2CNT +_080BA210: .4byte 0x040000d4 +_080BA214: .4byte 0x8100c000 +_080BA218: .4byte 0x85000100 +_080BA21C: .4byte 0x81000200 +_080BA220: .4byte gWindowConfig_81E6C3C +_080BA224: .4byte gWindowConfig_81E6CE4 +_080BA228: .4byte REG_WIN0H +_080BA22C: .4byte REG_WININ +_080BA230: .4byte 0x00001111 +_080BA234: .4byte REG_BLDALPHA +_080BA238: .4byte 0x04000200 +_080BA23C: .4byte REG_DISPSTAT +_080BA240: .4byte sub_80BA0C0 +_080BA244: .4byte sub_80BA0A8 +_080BA248: .4byte 0x00007140 +_080BA24C: .4byte sub_80BA258 +_080BA250: .4byte gTasks +_080BA254: .4byte gUnknown_020387B0 + thumb_func_end unref_sub_80BA0EC + + thumb_func_start sub_80BA258 +sub_80BA258: @ 80BA258 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x40 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r1, _080BA354 + mov r0, sp + movs r2, 0x9 + bl memcpy + add r7, sp, 0xC + ldr r1, _080BA358 + adds r0, r7, 0 + movs r2, 0x4 + bl memcpy + add r0, sp, 0x10 + mov r8, r0 + ldr r1, _080BA35C + movs r2, 0x4 + bl memcpy + add r5, sp, 0x14 + ldr r1, _080BA360 + adds r0, r5, 0 + movs r2, 0xD + bl memcpy + add r4, sp, 0x24 + ldr r1, _080BA364 + adds r0, r4, 0 + movs r2, 0xC + bl memcpy + add r6, sp, 0x30 + ldr r1, _080BA368 + adds r0, r6, 0 + movs r2, 0xE + bl memcpy + ldr r0, _080BA36C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BA344 + movs r0, 0x2 + movs r1, 0 + movs r2, 0x1B + movs r3, 0x3 + bl MenuDrawTextWindow + movs r0, 0x2 + movs r1, 0x5 + movs r2, 0x1B + movs r3, 0xA + bl MenuDrawTextWindow + movs r0, 0x2 + movs r1, 0xC + movs r2, 0x1B + movs r3, 0x11 + bl MenuDrawTextWindow + mov r0, sp + movs r1, 0x4 + movs r2, 0x1 + bl MenuPrint + adds r0, r5, 0 + movs r1, 0xE + movs r2, 0x1 + bl MenuPrint + adds r0, r7, 0 + movs r1, 0x4 + movs r2, 0x6 + bl MenuPrint + adds r0, r4, 0 + movs r1, 0xE + movs r2, 0x6 + bl MenuPrint + mov r0, r8 + movs r1, 0x4 + movs r2, 0xD + bl MenuPrint + adds r0, r4, 0 + movs r1, 0xE + movs r2, 0xD + bl MenuPrint + adds r0, r6, 0 + movs r1, 0xE + movs r2, 0x12 + bl MenuPrint + ldr r1, _080BA370 + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BA374 + str r1, [r0] + ldr r1, _080BA378 + ldr r2, _080BA37C + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080BA380 + adds r0, r2, 0 + strh r0, [r1] +_080BA344: + add sp, 0x40 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BA354: .4byte gDebugText_SoundCheckJap +_080BA358: .4byte gDebugText_BGM +_080BA35C: .4byte gDebugText_SE +_080BA360: .4byte gUnknown_083D02D9 +_080BA364: .4byte gDebugText_UpDown +_080BA368: .4byte gDebugText_DriverTest +_080BA36C: .4byte gPaletteFade +_080BA370: .4byte gTasks +_080BA374: .4byte sub_80BA384 +_080BA378: .4byte REG_WIN0H +_080BA37C: .4byte 0x000011df +_080BA380: .4byte 0x0000011f + thumb_func_end sub_80BA258 + + thumb_func_start sub_80BA384 +sub_80BA384: @ 80BA384 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080BA3EC + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldrb r0, [r4, 0x8] + bl sub_80BA6B8 + ldr r1, _080BA3F0 + adds r0, r1, 0 + ldrh r2, [r4, 0xA] + adds r0, r2 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x7 + movs r2, 0x8 + bl sub_80BA700 + ldr r1, _080BA3F4 + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0xB + movs r2, 0x8 + bl sub_80BA79C + ldrh r0, [r4, 0xC] + movs r1, 0x7 + movs r2, 0xF + bl sub_80BA700 + ldr r1, _080BA3F8 + movs r2, 0xC + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0xB + movs r2, 0xF + bl sub_80BA79C + ldr r0, _080BA3FC + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA3EC: .4byte gTasks +_080BA3F0: .4byte 0x0000015d +_080BA3F4: .4byte gBGMNames +_080BA3F8: .4byte gSENames +_080BA3FC: .4byte Task_HandleMainMenuInput + thumb_func_end sub_80BA384 + + thumb_func_start sub_80BA400 +sub_80BA400: @ 80BA400 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r2, _080BA428 + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080BA434 + ldr r0, _080BA42C + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080BA430 + str r0, [r1] + b _080BA64C + .align 2, 0 +_080BA428: .4byte gMain +_080BA42C: .4byte gTasks +_080BA430: .4byte sub_80BA800 +_080BA434: + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _080BA458 + ldr r0, _080BA450 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080BA454 + str r0, [r1] + b _080BA64C + .align 2, 0 +_080BA450: .4byte gTasks +_080BA454: .4byte sub_80BAF84 +_080BA458: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080BA478 + ldr r0, _080BA470 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080BA474 + str r0, [r1] + b _080BA64C + .align 2, 0 +_080BA470: .4byte gTasks +_080BA474: .4byte sub_80BB25C +_080BA478: + movs r6, 0x1 + movs r5, 0x1 + ands r5, r1 + cmp r5, 0 + beq _080BA538 + ldr r0, _080BA4AC + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r5, r1, r0 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080BA4D0 + movs r2, 0x10 + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080BA4BA + movs r3, 0xC + ldrsh r4, [r5, r3] + cmp r4, 0 + beq _080BA4B0 + ldrh r0, [r5, 0x10] + bl m4aSongNumStop + b _080BA4C4 + .align 2, 0 +_080BA4AC: .4byte gTasks +_080BA4B0: + ldrh r0, [r5, 0x10] + bl m4aSongNumStop + strh r4, [r5, 0x10] + b _080BA64C +_080BA4BA: + movs r4, 0xC + ldrsh r0, [r5, r4] + cmp r0, 0 + bne _080BA4C4 + b _080BA64C +_080BA4C4: + ldrh r0, [r5, 0xC] + bl m4aSongNumStart + ldrh r0, [r5, 0xC] + strh r0, [r5, 0x10] + b _080BA64C +_080BA4D0: + ldrh r1, [r5, 0xE] + movs r2, 0xE + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080BA514 + movs r3, 0xA + ldrsh r4, [r5, r3] + cmp r4, 0 + beq _080BA500 + ldr r0, _080BA4FC + adds r4, r0, 0 + adds r0, r1, r4 + lsls r0, 16 + lsrs r0, 16 + bl m4aSongNumStop + ldrh r1, [r5, 0xA] + adds r4, r1 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + b _080BA528 + .align 2, 0 +_080BA4FC: .4byte 0x0000015d +_080BA500: + ldr r2, _080BA510 + adds r0, r1, r2 + lsls r0, 16 + lsrs r0, 16 + bl m4aSongNumStop + strh r4, [r5, 0xE] + b _080BA64C + .align 2, 0 +_080BA510: .4byte 0x0000015d +_080BA514: + ldrh r1, [r5, 0xA] + movs r3, 0xA + ldrsh r0, [r5, r3] + cmp r0, 0 + bne _080BA520 + b _080BA64C +_080BA520: + ldr r4, _080BA534 + adds r0, r1, r4 + lsls r0, 16 + lsrs r0, 16 +_080BA528: + bl m4aSongNumStart + ldrh r0, [r5, 0xA] + strh r0, [r5, 0xE] + b _080BA64C + .align 2, 0 +_080BA534: .4byte 0x0000015d +_080BA538: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BA570 + movs r0, 0x5 + bl m4aSongNumStart + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _080BA568 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BA56C + str r1, [r0] + b _080BA64C + .align 2, 0 +_080BA568: .4byte gTasks +_080BA56C: .4byte sub_80BA68C +_080BA570: + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080BA582 + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BA59C +_080BA582: + ldr r0, _080BA598 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + eors r0, r6 + strh r0, [r1, 0x8] +_080BA592: + movs r0, 0x1 + b _080BA64E + .align 2, 0 +_080BA598: .4byte gTasks +_080BA59C: + movs r0, 0x10 + ands r0, r1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0 + beq _080BA5EA + ldr r0, _080BA5CC + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080BA5D6 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + ble _080BA5D0 + subs r0, r2, 0x1 + strh r0, [r1, 0xC] + b _080BA592 + .align 2, 0 +_080BA5CC: .4byte gTasks +_080BA5D0: + movs r0, 0xF7 + strh r0, [r1, 0xC] + b _080BA592 +_080BA5D6: + ldrh r2, [r1, 0xA] + movs r4, 0xA + ldrsh r0, [r1, r4] + cmp r0, 0 + ble _080BA5E4 + subs r0, r2, 0x1 + b _080BA5E6 +_080BA5E4: + movs r0, 0x75 +_080BA5E6: + strh r0, [r1, 0xA] + b _080BA592 +_080BA5EA: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080BA630 + ldr r1, _080BA614 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + movs r0, 0x8 + ldrsh r2, [r1, r0] + cmp r2, 0 + beq _080BA61C + ldrh r2, [r1, 0xC] + movs r4, 0xC + ldrsh r0, [r1, r4] + cmp r0, 0xF6 + bgt _080BA618 + adds r0, r2, 0x1 + strh r0, [r1, 0xC] + b _080BA592 + .align 2, 0 +_080BA614: .4byte gTasks +_080BA618: + strh r3, [r1, 0xC] + b _080BA592 +_080BA61C: + ldrh r3, [r1, 0xA] + movs r4, 0xA + ldrsh r0, [r1, r4] + cmp r0, 0x74 + bgt _080BA62C + adds r0, r3, 0x1 + strh r0, [r1, 0xA] + b _080BA592 +_080BA62C: + strh r2, [r1, 0xA] + b _080BA592 +_080BA630: + ldrh r1, [r2, 0x2C] + movs r0, 0x4 + ands r0, r1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _080BA648 + ldr r0, _080BA644 + strb r6, [r0] + b _080BA64C + .align 2, 0 +_080BA644: .4byte gUnknown_020387B0 +_080BA648: + ldr r0, _080BA658 + strb r1, [r0] +_080BA64C: + movs r0, 0 +_080BA64E: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080BA658: .4byte gUnknown_020387B0 + thumb_func_end sub_80BA400 + + thumb_func_start Task_HandleMainMenuInput +Task_HandleMainMenuInput: @ 80BA65C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80BA400 + lsls r0, 24 + cmp r0, 0 + beq _080BA67C + ldr r0, _080BA684 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080BA688 + str r0, [r1] +_080BA67C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA684: .4byte gTasks +_080BA688: .4byte sub_80BA384 + thumb_func_end Task_HandleMainMenuInput + + thumb_func_start sub_80BA68C +sub_80BA68C: @ 80BA68C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080BA6B0 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BA6AA + adds r0, r2, 0 + bl DestroyTask + ldr r0, _080BA6B4 + bl SetMainCallback2 +_080BA6AA: + pop {r0} + bx r0 + .align 2, 0 +_080BA6B0: .4byte gPaletteFade +_080BA6B4: .4byte CB2_InitTitleScreen + thumb_func_end sub_80BA68C + + thumb_func_start sub_80BA6B8 +sub_80BA6B8: @ 80BA6B8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080BA6C6 + cmp r0, 0x1 + beq _080BA6E0 +_080BA6C6: + ldr r1, _080BA6D4 + ldr r2, _080BA6D8 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080BA6DC + b _080BA6EC + .align 2, 0 +_080BA6D4: .4byte REG_WIN1H +_080BA6D8: .4byte 0x000011df +_080BA6DC: .4byte 0x00002957 +_080BA6E0: + ldr r1, _080BA6F4 + ldr r2, _080BA6F8 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080BA6FC +_080BA6EC: + adds r0, r2, 0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080BA6F4: .4byte REG_WIN1H +_080BA6F8: .4byte 0x000011df +_080BA6FC: .4byte 0x0000618f + thumb_func_end sub_80BA6B8 + + thumb_func_start sub_80BA700 +sub_80BA700: @ 80BA700 + push {r4-r7,lr} + sub sp, 0x8 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 16 + lsrs r7, r2, 16 + movs r1, 0 + movs r2, 0 +_080BA714: + mov r3, sp + adds r0, r3, r1 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x2 + bls _080BA714 + mov r1, sp + movs r0, 0xB0 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + movs r4, 0 + adds r0, r5, 0 + movs r1, 0x64 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080BA748 + mov r1, sp + adds r0, 0xA1 + strb r0, [r1] + movs r4, 0x1 +_080BA748: + adds r0, r5, 0 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080BA766 + cmp r4, 0 + beq _080BA76C +_080BA766: + mov r1, sp + adds r0, 0xA1 + strb r0, [r1, 0x1] +_080BA76C: + mov r4, sp + adds r0, r5, 0 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r0, 0xA1 + strb r0, [r4, 0x2] + lsls r1, r6, 24 + lsrs r1, 24 + lsls r2, r7, 24 + lsrs r2, 24 + mov r0, sp + bl MenuPrint + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BA700 + + thumb_func_start sub_80BA79C +sub_80BA79C: @ 80BA79C + push {r4-r6,lr} + sub sp, 0xC + adds r4, r0, 0 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 16 + lsrs r5, r2, 16 + movs r3, 0 + movs r1, 0 +_080BA7AE: + mov r2, sp + adds r0, r2, r3 + strb r1, [r0] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0xA + bls _080BA7AE + mov r0, sp + movs r1, 0xFF + strb r1, [r0, 0xA] + movs r3, 0 + ldrb r0, [r4] + lsls r2, r6, 24 + lsls r5, 24 + cmp r0, 0xFF + beq _080BA7EC +_080BA7D0: + mov r0, sp + adds r1, r0, r3 + adds r0, r4, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r4, r3 + ldrb r0, [r0] + cmp r0, 0xFF + beq _080BA7EC + cmp r3, 0x9 + bls _080BA7D0 +_080BA7EC: + lsrs r1, r2, 24 + lsrs r2, r5, 24 + mov r0, sp + bl MenuPrint + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BA79C + + thumb_func_start sub_80BA800 +sub_80BA800: @ 80BA800 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xCC + lsls r0, 24 + str r0, [sp, 0xB0] + lsrs r2, r0, 24 + str r2, [sp, 0xAC] + ldr r1, _080BA9E8 + mov r0, sp + movs r2, 0xA + bl memcpy + mov r0, sp + adds r0, 0xC + str r0, [sp, 0xB4] + ldr r1, _080BA9EC + movs r2, 0xB + bl memcpy + mov r2, sp + adds r2, 0x18 + str r2, [sp, 0xB8] + ldr r1, _080BA9F0 + adds r0, r2, 0 + movs r2, 0xA + bl memcpy + mov r0, sp + adds r0, 0x24 + str r0, [sp, 0xBC] + ldr r1, _080BA9F4 + movs r2, 0xA + bl memcpy + mov r2, sp + adds r2, 0x30 + str r2, [sp, 0xC0] + ldr r1, _080BA9F8 + adds r0, r2, 0 + movs r2, 0xA + bl memcpy + mov r0, sp + adds r0, 0x3C + str r0, [sp, 0xC4] + ldr r1, _080BA9FC + movs r2, 0xA + bl memcpy + mov r2, sp + adds r2, 0x48 + str r2, [sp, 0xC8] + ldr r1, _080BAA00 + adds r0, r2, 0 + movs r2, 0xA + bl memcpy + add r4, sp, 0x54 + ldr r1, _080BAA04 + adds r0, r4, 0 + movs r2, 0xA + bl memcpy + add r7, sp, 0x60 + ldr r1, _080BAA08 + adds r0, r7, 0 + movs r2, 0xA + bl memcpy + add r0, sp, 0x6C + mov r10, r0 + ldr r1, _080BAA0C + movs r2, 0xA + bl memcpy + add r2, sp, 0x78 + mov r9, r2 + ldr r1, _080BAA10 + mov r0, r9 + movs r2, 0xA + bl memcpy + add r0, sp, 0x84 + mov r8, r0 + ldr r1, _080BAA14 + movs r2, 0x9 + bl memcpy + add r6, sp, 0x90 + ldr r1, _080BAA18 + adds r0, r6, 0 + movs r2, 0x9 + bl memcpy + add r5, sp, 0x9C + ldr r1, _080BAA1C + adds r0, r5, 0 + movs r2, 0x9 + bl memcpy + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xC5 + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + mov r0, sp + movs r1, 0x13 + movs r2, 0x4 + bl MenuPrint + ldr r0, [sp, 0xB4] + movs r1, 0x13 + movs r2, 0x2 + bl MenuPrint + ldr r0, [sp, 0xB8] + movs r1, 0x2 + movs r2, 0x1 + bl MenuPrint + ldr r0, [sp, 0xBC] + movs r1, 0x2 + movs r2, 0x3 + bl MenuPrint + ldr r0, [sp, 0xC0] + movs r1, 0x2 + movs r2, 0x5 + bl MenuPrint + ldr r0, [sp, 0xC4] + movs r1, 0x2 + movs r2, 0x7 + bl MenuPrint + ldr r0, [sp, 0xC8] + movs r1, 0x2 + movs r2, 0x9 + bl MenuPrint + adds r0, r4, 0 + movs r1, 0x2 + movs r2, 0xB + bl MenuPrint + adds r0, r7, 0 + movs r1, 0x2 + movs r2, 0xD + bl MenuPrint + mov r0, r10 + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + mov r0, r9 + movs r1, 0x2 + movs r2, 0x11 + bl MenuPrint + mov r0, r8 + movs r1, 0x13 + movs r2, 0x10 + bl MenuPrint + adds r0, r6, 0 + movs r1, 0x13 + movs r2, 0xE + bl MenuPrint + adds r0, r5, 0 + movs r1, 0x13 + movs r2, 0xC + bl MenuPrint + ldr r1, _080BAA20 + movs r0, 0xF0 + strh r0, [r1] + adds r1, 0x4 + movs r0, 0xA0 + strh r0, [r1] + ldr r0, _080BAA24 + movs r1, 0 + strb r1, [r0] + ldr r0, _080BAA28 + strb r1, [r0] + ldr r0, _080BAA2C + strb r1, [r0] + ldr r0, _080BAA30 + movs r2, 0 + str r2, [r0] + ldr r0, _080BAA34 + strb r2, [r0] + ldr r1, _080BAA38 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080BAA3C + str r2, [r0] + movs r1, 0x78 + str r1, [r0, 0x4] + str r2, [r0, 0x8] + movs r1, 0xF0 + lsls r1, 6 + str r1, [r0, 0xC] + movs r1, 0xB4 + str r1, [r0, 0x10] + str r2, [r0, 0x18] + str r2, [r0, 0x14] + str r2, [r0, 0x1C] + movs r1, 0x2 + str r1, [r0, 0x20] + bl sub_80BAD5C + movs r0, 0 + movs r1, 0 + bl sub_80BAE10 + ldr r1, _080BAA40 + ldr r2, [sp, 0xAC] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BAA44 + str r1, [r0] + add sp, 0xCC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BA9E8: .4byte gUnknown_083D0312 +_080BA9EC: .4byte gUnknown_083D031C +_080BA9F0: .4byte gDebugText_Voice +_080BA9F4: .4byte gDebugText_Volume +_080BA9F8: .4byte gDebugText_Panpot +_080BA9FC: .4byte gDebugText_Pitch +_080BAA00: .4byte gDebugText_Length +_080BAA04: .4byte gDebugText_Release +_080BAA08: .4byte gDebugText_Progress +_080BAA0C: .4byte gDebugText_Chorus +_080BAA10: .4byte gDebugText_Priority +_080BAA14: .4byte gUnknown_083D0381 +_080BAA18: .4byte gUnknown_083D038A +_080BAA1C: .4byte gUnknown_083D0393 +_080BAA20: .4byte REG_WIN0H +_080BAA24: .4byte gUnknown_020387B3 +_080BAA28: .4byte gUnknown_020387B1 +_080BAA2C: .4byte gUnknown_020387B2 +_080BAA30: .4byte gUnknown_03005D30 +_080BAA34: .4byte gUnknown_020387D8 +_080BAA38: .4byte gUnknown_020387D9 +_080BAA3C: .4byte gUnknown_020387B4 +_080BAA40: .4byte gTasks +_080BAA44: .4byte sub_80BAA48 + thumb_func_end sub_80BA800 + + thumb_func_start sub_80BAA48 +sub_80BAA48: @ 80BAA48 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080BAA90 + ldrh r2, [r1, 0x2E] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _080BAAA8 + movs r1, 0x80 + lsls r1, 19 + ldr r2, _080BAA94 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x40 + ldr r2, _080BAA98 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080BAA9C + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _080BAAA0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BAAA4 + str r1, [r0] + b _080BACC6 + .align 2, 0 +_080BAA90: .4byte gMain +_080BAA94: .4byte 0x00007140 +_080BAA98: .4byte 0x000011df +_080BAA9C: .4byte 0x0000011f +_080BAAA0: .4byte gTasks +_080BAAA4: .4byte sub_80BA258 +_080BAAA8: + ldrh r1, [r1, 0x30] + movs r0, 0x40 + ands r0, r1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0 + beq _080BAAD0 + ldr r1, _080BAACC + ldrb r2, [r1] + subs r0, r2, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bge _080BAAEA + movs r0, 0x8 + strb r0, [r1] + b _080BAAEA + .align 2, 0 +_080BAACC: .4byte gUnknown_020387B3 +_080BAAD0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BAAF8 + ldr r1, _080BAAF4 + ldrb r2, [r1] + adds r0, r2, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x8 + ble _080BAAEA + strb r3, [r1] +_080BAAEA: + ldrb r1, [r1] + adds r0, r2, 0 + bl sub_80BAE10 + b _080BACC6 + .align 2, 0 +_080BAAF4: .4byte gUnknown_020387B3 +_080BAAF8: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080BAB14 + ldr r0, _080BAB10 + ldrb r1, [r0] + movs r2, 0x1 + eors r1, r2 + strb r1, [r0] + bl sub_80BAD5C + b _080BACC6 + .align 2, 0 +_080BAB10: .4byte gUnknown_020387D8 +_080BAB14: + movs r0, 0x4 + ands r0, r2 + cmp r0, 0 + beq _080BAB38 + ldr r4, _080BAB34 + ldrb r0, [r4] + movs r1, 0x1 + eors r0, r1 + strb r0, [r4] + bl sub_80BAD5C + ldrb r0, [r4] + bl SetPokemonCryStereo + b _080BACC6 + .align 2, 0 +_080BAB34: .4byte gUnknown_020387D9 +_080BAB38: + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080BAB46 + movs r0, 0xA + b _080BAB6E +_080BAB46: + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _080BAB56 + movs r0, 0xA + negs r0, r0 + b _080BAB6E +_080BAB56: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080BAB64 + movs r0, 0x1 + negs r0, r0 + b _080BAB6E +_080BAB64: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080BAB78 + movs r0, 0x1 +_080BAB6E: + bl sub_80BACDC + bl sub_80BAD5C + b _080BACC6 +_080BAB78: + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _080BAB82 + b _080BACA2 +_080BAB82: + ldr r4, _080BABE4 + ldrb r0, [r4, 0x4] + bl SetPokemonCryVolume + movs r0, 0x8 + ldrsb r0, [r4, r0] + bl SetPokemonCryPanpot + movs r1, 0xC + ldrsh r0, [r4, r1] + bl SetPokemonCryPitch + ldrh r0, [r4, 0x10] + bl SetPokemonCryLength + ldr r0, [r4, 0x18] + bl SetPokemonCryProgress + ldrb r0, [r4, 0x14] + bl SetPokemonCryRelease + movs r0, 0x1C + ldrsb r0, [r4, r0] + bl SetPokemonCryChorus + ldr r0, [r4, 0x20] + lsls r0, 24 + lsrs r0, 24 + bl SetPokemonCryPriority + ldr r4, [r4] + adds r0, r4, 0 + cmp r4, 0 + bge _080BABC8 + adds r0, 0x7F +_080BABC8: + asrs r2, r0, 7 + lsls r0, r2, 7 + subs r0, r4, r0 + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r2, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BAC1C + cmp r0, 0x1 + bgt _080BABE8 + cmp r0, 0 + beq _080BABF2 + b _080BACA2 + .align 2, 0 +_080BABE4: .4byte gUnknown_020387B4 +_080BABE8: + cmp r0, 0x2 + beq _080BAC48 + cmp r0, 0x3 + beq _080BAC74 + b _080BACA2 +_080BABF2: + ldr r0, _080BAC04 + ldrb r0, [r0] + cmp r0, 0 + beq _080BAC0C + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BAC08 + b _080BAC98 + .align 2, 0 +_080BAC04: .4byte gUnknown_020387D8 +_080BAC08: .4byte voicegroup_84537C0 +_080BAC0C: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BAC18 + b _080BAC98 + .align 2, 0 +_080BAC18: .4byte voicegroup_8452590 +_080BAC1C: + ldr r0, _080BAC30 + ldrb r0, [r0] + cmp r0, 0 + beq _080BAC38 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BAC34 + b _080BAC98 + .align 2, 0 +_080BAC30: .4byte gUnknown_020387D8 +_080BAC34: .4byte voicegroup_8453DC0 +_080BAC38: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BAC44 + b _080BAC98 + .align 2, 0 +_080BAC44: .4byte voicegroup_8452B90 +_080BAC48: + ldr r0, _080BAC5C + ldrb r0, [r0] + cmp r0, 0 + beq _080BAC64 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BAC60 + b _080BAC98 + .align 2, 0 +_080BAC5C: .4byte gUnknown_020387D8 +_080BAC60: .4byte voicegroup_84543C0 +_080BAC64: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BAC70 + b _080BAC98 + .align 2, 0 +_080BAC70: .4byte voicegroup_8453190 +_080BAC74: + ldr r0, _080BAC88 + ldrb r0, [r0] + cmp r0, 0 + beq _080BAC90 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BAC8C + b _080BAC98 + .align 2, 0 +_080BAC88: .4byte gUnknown_020387D8 +_080BAC8C: .4byte voicegroup_84549C0 +_080BAC90: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BACCC +_080BAC98: + adds r0, r1 + bl SetPokemonCryTone + ldr r1, _080BACD0 + str r0, [r1] +_080BACA2: + ldr r0, _080BACD0 + ldr r0, [r0] + cmp r0, 0 + beq _080BACC6 + ldr r5, _080BACD4 + bl IsPokemonCryPlaying + strb r0, [r5] + ldr r4, _080BACD8 + lsls r0, 24 + lsrs r0, 24 + ldrb r2, [r4] + cmp r0, r2 + beq _080BACC2 + bl sub_80BAD5C +_080BACC2: + ldrb r0, [r5] + strb r0, [r4] +_080BACC6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BACCC: .4byte voicegroup_8453790 +_080BACD0: .4byte gUnknown_03005D30 +_080BACD4: .4byte gUnknown_020387B1 +_080BACD8: .4byte gUnknown_020387B2 + thumb_func_end sub_80BAA48 + + thumb_func_start sub_80BACDC +sub_80BACDC: @ 80BACDC + push {r4-r6,lr} + sub sp, 0x40 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080BAD50 + mov r0, sp + movs r2, 0x40 + bl memcpy + ldr r6, _080BAD54 + ldr r5, _080BAD58 + movs r1, 0 + ldrsb r1, [r5, r1] + lsls r1, 2 + adds r1, r6 + lsls r4, 24 + asrs r4, 24 + ldr r0, [r1] + adds r0, r4 + str r0, [r1] + movs r2, 0 + ldrsb r2, [r5, r2] + lsls r0, r2, 2 + adds r3, r0, r6 + lsls r0, r2, 1 + adds r0, 0x1 + lsls r0, 2 + add r0, sp + ldr r1, [r3] + ldr r0, [r0] + cmp r1, r0 + ble _080BAD26 + lsls r0, r2, 3 + add r0, sp + ldr r0, [r0] + str r0, [r3] +_080BAD26: + movs r2, 0 + ldrsb r2, [r5, r2] + lsls r0, r2, 2 + adds r3, r0, r6 + lsls r0, r2, 3 + add r0, sp + ldr r1, [r3] + ldr r0, [r0] + cmp r1, r0 + bge _080BAD46 + lsls r0, r2, 1 + adds r0, 0x1 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + str r0, [r3] +_080BAD46: + add sp, 0x40 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BAD50: .4byte gUnknown_083D039C +_080BAD54: .4byte gUnknown_020387B4 +_080BAD58: .4byte gUnknown_020387B3 + thumb_func_end sub_80BACDC + + thumb_func_start sub_80BAD5C +sub_80BAD5C: @ 80BAD5C + push {r4,lr} + ldr r4, _080BAE00 + ldr r0, [r4] + adds r0, 0x1 + movs r1, 0xB + movs r2, 0x1 + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, [r4, 0x4] + movs r1, 0xB + movs r2, 0x3 + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, [r4, 0x8] + movs r1, 0xB + movs r2, 0x5 + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, [r4, 0xC] + movs r1, 0xB + movs r2, 0x7 + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, [r4, 0x10] + movs r1, 0xB + movs r2, 0x9 + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, [r4, 0x14] + movs r1, 0xB + movs r2, 0xB + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, [r4, 0x18] + movs r1, 0xB + movs r2, 0xD + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, [r4, 0x1C] + movs r1, 0xB + movs r2, 0xF + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, [r4, 0x20] + movs r1, 0xB + movs r2, 0x11 + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, _080BAE04 + ldrb r0, [r0] + movs r1, 0x1B + movs r2, 0x10 + movs r3, 0x1 + bl sub_80BAE78 + ldr r0, _080BAE08 + ldrb r0, [r0] + movs r1, 0x1B + movs r2, 0xE + movs r3, 0x1 + bl sub_80BAE78 + ldr r0, _080BAE0C + ldrb r0, [r0] + movs r1, 0x1B + movs r2, 0xC + movs r3, 0x1 + bl sub_80BAE78 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BAE00: .4byte gUnknown_020387B4 +_080BAE04: .4byte gUnknown_020387B1 +_080BAE08: .4byte gUnknown_020387D8 +_080BAE0C: .4byte gUnknown_020387D9 + thumb_func_end sub_80BAD5C + + thumb_func_start sub_80BAE10 +sub_80BAE10: @ 80BAE10 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x8 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r1, _080BAE6C + mov r0, sp + movs r2, 0x2 + bl memcpy + add r0, sp, 0x4 + mov r8, r0 + ldr r1, _080BAE70 + movs r2, 0x2 + bl memcpy + ldr r6, _080BAE74 + lsls r4, 1 + adds r0, r4, r6 + ldrb r1, [r0] + adds r4, 0x1 + adds r4, r6 + ldrb r2, [r4] + mov r0, r8 + bl MenuPrint + lsls r5, 1 + adds r0, r5, r6 + ldrb r1, [r0] + adds r5, 0x1 + adds r5, r6 + ldrb r2, [r5] + mov r0, sp + bl MenuPrint + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BAE6C: .4byte gUnknown_083D03DC +_080BAE70: .4byte gUnknown_083D03DE +_080BAE74: .4byte gUnknown_083D0300 + thumb_func_end sub_80BAE10 + + thumb_func_start sub_80BAE78 +sub_80BAE78: @ 80BAE78 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + mov r8, r0 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 24 + lsrs r7, r3, 24 + mov r1, sp + ldr r0, _080BAF80 + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + movs r5, 0 + add r0, sp, 0x18 + mov r9, r0 + cmp r5, r7 + bgt _080BAEC0 + mov r4, r9 + movs r3, 0 +_080BAEAC: + lsls r0, r5, 24 + asrs r0, 24 + adds r1, r4, r0 + strb r3, [r1] + adds r0, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + asrs r0, 24 + cmp r0, r7 + ble _080BAEAC +_080BAEC0: + adds r0, r7, 0x1 + add r0, r9 + movs r1, 0xFF + strb r1, [r0] + movs r1, 0 + mov r3, r8 + cmp r3, 0 + bge _080BAED6 + negs r3, r3 + mov r8, r3 + movs r1, 0x1 +_080BAED6: + movs r4, 0 + mov r10, r4 + cmp r7, 0x1 + bne _080BAEE2 + movs r5, 0x1 + mov r10, r5 +_080BAEE2: + subs r0, r7, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 24 + lsls r6, 24 + str r6, [sp, 0x24] + lsls r2, 24 + str r2, [sp, 0x28] + cmp r0, 0 + blt _080BAF62 + str r1, [sp, 0x20] +_080BAEF8: + asrs r6, r0, 24 + lsls r0, r6, 2 + add r0, sp + ldr r1, [r0] + mov r0, r8 + bl __divsi3 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r0, 0 + bne _080BAF1A + mov r0, r10 + cmp r0, 0 + bne _080BAF1A + lsls r4, r5, 24 + cmp r6, 0 + bne _080BAF46 +_080BAF1A: + lsls r4, r5, 24 + ldr r3, [sp, 0x20] + cmp r3, 0 + beq _080BAF34 + mov r5, r10 + cmp r5, 0 + bne _080BAF34 + asrs r0, r4, 24 + subs r0, r7, r0 + subs r0, 0x1 + add r0, r9 + movs r1, 0xAE + strb r1, [r0] +_080BAF34: + asrs r1, r4, 24 + subs r1, r7, r1 + add r1, r9 + lsls r0, r2, 24 + asrs r0, 24 + subs r0, 0x5F + strb r0, [r1] + movs r0, 0x1 + mov r10, r0 +_080BAF46: + asrs r4, 24 + lsls r0, r4, 2 + add r0, sp + ldr r1, [r0] + mov r0, r8 + bl __modsi3 + mov r8, r0 + subs r4, 0x1 + lsls r4, 24 + lsrs r5, r4, 24 + lsls r0, r5, 24 + cmp r0, 0 + bge _080BAEF8 +_080BAF62: + ldr r3, [sp, 0x24] + lsrs r1, r3, 24 + ldr r4, [sp, 0x28] + lsrs r2, r4, 24 + mov r0, r9 + bl MenuPrint + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BAF80: .4byte gUnknown_083D03E0 + thumb_func_end sub_80BAE78 + + thumb_func_start sub_80BAF84 +sub_80BAF84: @ 80BAF84 + push {r4-r6,lr} + sub sp, 0x14 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080BB01C + mov r0, sp + movs r2, 0x3 + bl memcpy + add r6, sp, 0x4 + ldr r1, _080BB020 + adds r0, r6, 0 + movs r2, 0x4 + bl memcpy + add r5, sp, 0x8 + ldr r1, _080BB024 + adds r0, r5, 0 + movs r2, 0x9 + bl memcpy + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xC5 + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + mov r0, sp + movs r1, 0x3 + movs r2, 0x2 + bl MenuPrint + adds r0, r6, 0 + movs r1, 0x3 + movs r2, 0x4 + bl MenuPrint + adds r0, r5, 0 + movs r1, 0x3 + movs r2, 0x8 + bl MenuPrint + ldr r1, _080BB028 + movs r0, 0xF0 + strh r0, [r1] + adds r1, 0x4 + movs r0, 0xA0 + strh r0, [r1] + ldr r1, _080BB02C + movs r0, 0x1 + str r0, [r1] + movs r0, 0 + str r0, [r1, 0x8] + str r0, [r1, 0x1C] + str r0, [r1, 0x18] + str r0, [r1, 0x14] + bl sub_80BB1D4 + ldr r1, _080BB030 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BB034 + str r1, [r0] + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB01C: .4byte gOtherText_SE +_080BB020: .4byte gOtherText_Pan +_080BB024: .4byte gUnknown_083D0381 +_080BB028: .4byte REG_WIN0H +_080BB02C: .4byte gUnknown_020387B4 +_080BB030: .4byte gTasks +_080BB034: .4byte sub_80BB038 + thumb_func_end sub_80BAF84 + + thumb_func_start sub_80BB038 +sub_80BB038: @ 80BB038 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_80BB1D4 + ldr r2, _080BB058 + ldr r0, [r2, 0x18] + cmp r0, 0 + beq _080BB0A2 + ldr r0, [r2, 0x14] + cmp r0, 0 + beq _080BB05C + subs r0, 0x1 + str r0, [r2, 0x14] + b _080BB0A2 + .align 2, 0 +_080BB058: .4byte gUnknown_020387B4 +_080BB05C: + ldr r0, _080BB088 + ldr r1, [r2, 0x8] + adds r1, r0 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + movs r0, 0x80 + negs r0, r0 + cmp r1, r0 + beq _080BB08C + cmp r1, 0x7F + bne _080BB0A2 + ldr r0, [r2, 0x1C] + adds r0, 0x2 + str r0, [r2, 0x1C] + cmp r0, 0x3E + bgt _080BB0A2 + lsls r0, 24 + asrs r0, 24 + bl SE12PanpotControl + b _080BB0A2 + .align 2, 0 +_080BB088: .4byte gUnknown_083D03F8 +_080BB08C: + ldr r0, [r2, 0x1C] + subs r1, r0, 0x2 + str r1, [r2, 0x1C] + movs r0, 0x40 + negs r0, r0 + cmp r1, r0 + ble _080BB0A2 + lsls r0, r1, 24 + asrs r0, 24 + bl SE12PanpotControl +_080BB0A2: + ldr r1, _080BB0EC + ldrh r3, [r1, 0x2E] + movs r0, 0x2 + ands r0, r3 + lsls r0, 16 + lsrs r4, r0, 16 + adds r7, r1, 0 + cmp r4, 0 + beq _080BB104 + movs r1, 0x80 + lsls r1, 19 + ldr r2, _080BB0F0 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x40 + ldr r2, _080BB0F4 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080BB0F8 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _080BB0FC + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BB100 + str r1, [r0] + b _080BB1C8 + .align 2, 0 +_080BB0EC: .4byte gMain +_080BB0F0: .4byte 0x00007140 +_080BB0F4: .4byte 0x000011df +_080BB0F8: .4byte 0x0000011f +_080BB0FC: .4byte gTasks +_080BB100: .4byte sub_80BA258 +_080BB104: + movs r6, 0x1 + adds r2, r6, 0 + ands r2, r3 + cmp r2, 0 + beq _080BB15E + ldr r0, _080BB138 + ldr r5, _080BB13C + ldr r1, [r5, 0x8] + adds r1, r0 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + movs r0, 0x80 + negs r0, r0 + cmp r1, r0 + beq _080BB140 + cmp r1, 0x7F + bne _080BB154 + ldrh r0, [r5] + movs r4, 0x40 + negs r4, r4 + adds r1, r4, 0 + bl PlaySE12WithPanning + str r4, [r5, 0x1C] + b _080BB14C + .align 2, 0 +_080BB138: .4byte gUnknown_083D03F8 +_080BB13C: .4byte gUnknown_020387B4 +_080BB140: + ldrh r0, [r5] + movs r1, 0x3F + bl PlaySE12WithPanning + movs r0, 0x3F + str r0, [r5, 0x1C] +_080BB14C: + str r6, [r5, 0x18] + movs r0, 0x1E + str r0, [r5, 0x14] + b _080BB1C8 +_080BB154: + ldrh r0, [r5] + bl PlaySE12WithPanning + str r4, [r5, 0x18] + b _080BB1C8 +_080BB15E: + movs r0, 0x80 + lsls r0, 2 + ands r0, r3 + cmp r0, 0 + beq _080BB176 + ldr r1, _080BB1AC + ldr r0, [r1, 0x8] + adds r0, 0x1 + str r0, [r1, 0x8] + cmp r0, 0x4 + ble _080BB176 + str r2, [r1, 0x8] +_080BB176: + ldrh r1, [r7, 0x2E] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080BB192 + ldr r1, _080BB1AC + ldr r0, [r1, 0x8] + subs r0, 0x1 + str r0, [r1, 0x8] + cmp r0, 0 + bge _080BB192 + movs r0, 0x4 + str r0, [r1, 0x8] +_080BB192: + ldrh r1, [r7, 0x30] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080BB1B0 + ldr r1, _080BB1AC + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0xF7 + ble _080BB1C8 + movs r0, 0 + b _080BB1C6 + .align 2, 0 +_080BB1AC: .4byte gUnknown_020387B4 +_080BB1B0: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080BB1C8 + ldr r1, _080BB1D0 + ldr r0, [r1] + subs r0, 0x1 + str r0, [r1] + cmp r0, 0 + bge _080BB1C8 + movs r0, 0xF7 +_080BB1C6: + str r0, [r1] +_080BB1C8: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BB1D0: .4byte gUnknown_020387B4 + thumb_func_end sub_80BB038 + + thumb_func_start sub_80BB1D4 +sub_80BB1D4: @ 80BB1D4 + push {r4,r5,lr} + sub sp, 0x10 + ldr r1, _080BB218 + mov r0, sp + movs r2, 0x5 + bl memcpy + add r5, sp, 0x8 + ldr r1, _080BB21C + adds r0, r5, 0 + movs r2, 0x5 + bl memcpy + ldr r4, _080BB220 + ldr r0, [r4] + movs r1, 0x7 + movs r2, 0x2 + movs r3, 0x3 + bl sub_80BAE78 + ldr r1, _080BB224 + ldr r0, [r4, 0x8] + adds r0, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x80 + negs r0, r0 + cmp r1, r0 + beq _080BB228 + cmp r1, 0x7F + bne _080BB234 + mov r0, sp + b _080BB22A + .align 2, 0 +_080BB218: .4byte gOtherText_LR +_080BB21C: .4byte gOtherText_RL +_080BB220: .4byte gUnknown_020387B4 +_080BB224: .4byte gUnknown_083D03F8 +_080BB228: + adds r0, r5, 0 +_080BB22A: + movs r1, 0x7 + movs r2, 0x4 + bl MenuPrint + b _080BB240 +_080BB234: + adds r0, r1, 0 + movs r1, 0x7 + movs r2, 0x4 + movs r3, 0x3 + bl sub_80BAE78 +_080BB240: + bl IsSEPlaying + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xC + movs r2, 0x8 + movs r3, 0x1 + bl sub_80BAE78 + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80BB1D4 + + thumb_func_start sub_80BB25C +sub_80BB25C: @ 80BB25C + push {r4-r6,lr} + sub sp, 0x14 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080BB374 + bl SetUpWindowConfig + ldr r0, _080BB378 + bl InitMenuWindow + ldr r1, _080BB37C + movs r0, 0x1 + strh r0, [r1] + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _080BB380 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0x80 + lsls r1, 6 + orrs r0, r1 + ldr r1, _080BB384 + ands r0, r1 + movs r1, 0xE8 + lsls r1, 13 + orrs r0, r1 + ldr r1, _080BB388 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 20 + orrs r0, r1 + str r0, [sp, 0x4] + ldr r1, _080BB38C + ldr r0, [sp, 0x8] + ands r0, r1 + movs r1, 0xF0 + lsls r1, 5 + orrs r0, r1 + ldr r1, _080BB390 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + str r0, [sp, 0x8] + movs r1, 0 + ldr r0, _080BB394 + strb r1, [r0] + add r4, sp, 0xC +_080BB2BE: + add r0, sp, 0x4 + movs r1, 0x3 + bl sub_8119E3C + lsls r0, 24 + cmp r0, 0 + beq _080BB2BE + ldr r1, _080BB380 + ldr r0, [sp, 0xC] + ands r0, r1 + ldr r1, _080BB384 + ands r0, r1 + movs r1, 0xF0 + lsls r1, 12 + orrs r0, r1 + ldr r1, _080BB388 + ands r0, r1 + movs r1, 0xD0 + lsls r1, 20 + orrs r0, r1 + str r0, [sp, 0xC] + ldr r1, _080BB390 + ldr r0, [r4, 0x4] + ands r0, r1 + movs r1, 0xC + orrs r0, r1 + ldr r1, _080BB38C + ands r0, r1 + movs r1, 0xC0 + lsls r1, 4 + orrs r0, r1 + str r0, [r4, 0x4] + movs r1, 0 + ldr r0, _080BB394 + strb r1, [r0] + lsls r5, r6, 2 +_080BB306: + adds r0, r4, 0 + movs r1, 0x2 + bl sub_811A3CC + lsls r0, 24 + cmp r0, 0 + beq _080BB306 + movs r0, 0 + movs r1, 0x10 + movs r2, 0x5 + movs r3, 0x13 + bl MenuDrawTextWindow + bl sub_80BB494 + movs r0, 0x1 + negs r0, r0 + movs r4, 0 + str r4, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080BB398 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + ldr r1, _080BB39C + ldr r2, _080BB3A0 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080BB3A4 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xE + adds r2, 0x3D + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080BB3A8 + movs r1, 0x2 + bl m4aMPlayFadeOutTemporarily + ldr r1, _080BB3AC + adds r0, r5, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BB3B0 + str r1, [r0] + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB374: .4byte gWindowConfig_81E6C3C +_080BB378: .4byte gWindowConfig_81E6CE4 +_080BB37C: .4byte gUnknown_03005D34 +_080BB380: .4byte 0xffff0000 +_080BB384: .4byte 0xff00ffff +_080BB388: .4byte 0x00ffffff +_080BB38C: .4byte 0xffff00ff +_080BB390: .4byte 0xffffff00 +_080BB394: .4byte gUnknown_03005E98 +_080BB398: .4byte REG_BG2HOFS +_080BB39C: .4byte REG_BG2CNT +_080BB3A0: .4byte 0x00000f01 +_080BB3A4: .4byte 0x00001d03 +_080BB3A8: .4byte gMPlay_BGM +_080BB3AC: .4byte gTasks +_080BB3B0: .4byte sub_80BB3B4 + thumb_func_end sub_80BB25C + + thumb_func_start sub_80BB3B4 +sub_80BB3B4: @ 80BB3B4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x3 + bl sub_8119F88 + ldr r4, _080BB478 + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080BB3D4 + ldr r0, _080BB47C + ldrh r0, [r0] + bl sub_811A050 +_080BB3D4: + ldrh r1, [r4, 0x2E] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080BB3E4 + bl StopCryAndClearCrySongs +_080BB3E4: + ldrh r1, [r4, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080BB408 + ldr r1, _080BB47C + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bne _080BB404 + movs r2, 0xC0 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] +_080BB404: + bl sub_80BB494 +_080BB408: + ldr r0, _080BB478 + ldrh r1, [r0, 0x30] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BB42E + ldr r2, _080BB47C + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 17 + cmp r0, r1 + bls _080BB42A + movs r0, 0x1 + strh r0, [r2] +_080BB42A: + bl sub_80BB494 +_080BB42E: + ldr r0, _080BB478 + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BB472 + movs r1, 0x80 + lsls r1, 19 + ldr r2, _080BB480 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x40 + ldr r2, _080BB484 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080BB488 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _080BB48C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BB490 + str r1, [r0] + bl sub_811A4F8 +_080BB472: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BB478: .4byte gMain +_080BB47C: .4byte gUnknown_03005D34 +_080BB480: .4byte 0x00007140 +_080BB484: .4byte 0x000011df +_080BB488: .4byte 0x0000011f +_080BB48C: .4byte gTasks +_080BB490: .4byte sub_80BA258 + thumb_func_end sub_80BB3B4 + + thumb_func_start sub_80BB494 +sub_80BB494: @ 80BB494 + push {lr} + ldr r0, _080BB4A8 + ldrh r0, [r0] + movs r1, 0x1 + movs r2, 0x11 + movs r3, 0x3 + bl sub_80BAE78 + pop {r0} + bx r0 + .align 2, 0 +_080BB4A8: .4byte gUnknown_03005D34 + thumb_func_end sub_80BB494 + + thumb_func_start sub_80BB4AC +sub_80BB4AC: @ 80BB4AC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r3, r0, 0 + movs r0, 0 + strb r0, [r3] + movs r2, 0 + adds r4, r3, 0x2 + movs r5, 0xFF +_080BB4C4: + adds r0, r4, r2 + ldrb r1, [r0] + orrs r1, r5 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x6 + bls _080BB4C4 + movs r2, 0 + adds r5, r3, 0 + adds r5, 0x12 + adds r6, r3, 0 + adds r6, 0x22 + adds r7, r3, 0 + adds r7, 0x4C + adds r0, r3, 0 + adds r0, 0x34 + str r0, [sp] + adds r1, r3, 0 + adds r1, 0x9A + str r1, [sp, 0x4] + movs r0, 0x7C + adds r0, r3 + mov r10, r0 + movs r1, 0x88 + adds r1, r3 + mov r9, r1 + movs r0, 0x94 + adds r0, r3 + mov r8, r0 + adds r1, r3, 0 + adds r1, 0x9 + movs r4, 0 +_080BB508: + adds r0, r1, r2 + strb r4, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x3 + bls _080BB508 + movs r0, 0 + movs r1, 0 + strh r1, [r3, 0xE] + strb r0, [r3, 0x10] + strb r0, [r3, 0x11] + movs r0, 0 + strb r0, [r3, 0x1] + movs r2, 0 + adds r4, r5, 0 + adds r3, r6, 0 +_080BB52A: + adds r0, r4, r2 + strb r1, [r0] + adds r0, r3, r2 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0xF + bls _080BB52A + movs r2, 0 + mov r12, r7 + movs r5, 0 +_080BB542: + movs r1, 0 + adds r7, r2, 0x1 + lsls r4, r2, 2 + lsls r6, r2, 1 + adds r3, r4, 0 +_080BB54C: + adds r0, r3, r1 + lsls r0, 1 + add r0, r12 + strh r5, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _080BB54C + ldr r1, [sp] + adds r0, r1, r4 + str r5, [r0] + ldr r1, [sp, 0x4] + adds r0, r1, r2 + strb r5, [r0] + mov r1, r10 + adds r0, r1, r6 + strh r5, [r0] + mov r1, r9 + adds r0, r1, r6 + strh r5, [r0] + mov r1, r8 + adds r0, r1, r2 + strb r5, [r0] + lsls r0, r7, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080BB542 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BB4AC + + thumb_func_start sub_80BB594 +sub_80BB594: @ 80BB594 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + ldr r1, _080BB5B0 + adds r0, r1 + bl sub_80BB4AC + pop {r0} + bx r0 + .align 2, 0 +_080BB5B0: .4byte gSaveBlock1 + 0x1A08 + thumb_func_end sub_80BB594 + + thumb_func_start sub_80BB5B4 +sub_80BB5B4: @ 80BB5B4 + push {r4,lr} + movs r4, 0 +_080BB5B8: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80BB594 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x13 + bls _080BB5B8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80BB5B4 + + thumb_func_start sub_80BB5D0 +sub_80BB5D0: @ 80BB5D0 + ldr r0, _080BB5DC + ldr r1, _080BB5E0 + ldrh r1, [r1] + strb r1, [r0] + bx lr + .align 2, 0 +_080BB5DC: .4byte gUnknown_020387DC +_080BB5E0: .4byte gUnknown_0202E8CC + thumb_func_end sub_80BB5D0 + + thumb_func_start sub_80BB5E4 +sub_80BB5E4: @ 80BB5E4 + push {r4,lr} + ldr r0, _080BB5F4 + movs r1, 0 + strh r1, [r0] + movs r3, 0 + adds r4, r0, 0 + b _080BB5FE + .align 2, 0 +_080BB5F4: .4byte gScriptResult +_080BB5F8: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 +_080BB5FE: + cmp r3, 0x13 + bhi _080BB626 + ldr r2, _080BB62C + ldr r1, _080BB630 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 5 + adds r0, r1 + ldr r1, _080BB634 + adds r0, r1 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _080BB5F8 + movs r0, 0x1 + strh r0, [r4] + ldr r0, _080BB638 + adds r1, r3, 0 + bl VarSet +_080BB626: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BB62C: .4byte gUnknown_020387DC +_080BB630: .4byte gSaveBlock1 +_080BB634: .4byte 0x00001a08 +_080BB638: .4byte 0x00004054 + thumb_func_end sub_80BB5E4 + + thumb_func_start sub_80BB63C +sub_80BB63C: @ 80BB63C + push {lr} + ldr r0, _080BB654 + ldr r1, _080BB658 + adds r0, r1 + ldrb r1, [r0] + cmp r1, 0 + beq _080BB660 + ldr r1, _080BB65C + movs r0, 0x1 + strh r0, [r1] + b _080BB664 + .align 2, 0 +_080BB654: .4byte gSaveBlock1 +_080BB658: .4byte 0x00001a08 +_080BB65C: .4byte gScriptResult +_080BB660: + ldr r0, _080BB668 + strh r1, [r0] +_080BB664: + pop {r0} + bx r0 + .align 2, 0 +_080BB668: .4byte gScriptResult + thumb_func_end sub_80BB63C + + thumb_func_start sub_80BB66C +sub_80BB66C: @ 80BB66C + push {r4,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + adds r1, r0, 0 + ldr r2, _080BB6A4 + adds r0, r2, 0 + ands r1, r0 + adds r0, r1, 0 + subs r0, 0x90 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080BB6A8 + movs r0, 0x1 + b _080BB702 + .align 2, 0 +_080BB6A4: .4byte 0x00000fff +_080BB6A8: + adds r0, r1, 0 + subs r0, 0x92 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080BB6B8 + movs r0, 0x2 + b _080BB702 +_080BB6B8: + adds r0, r1, 0 + subs r0, 0x9A + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080BB6C8 + movs r0, 0x3 + b _080BB702 +_080BB6C8: + adds r0, r1, 0 + subs r0, 0x94 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080BB6D8 + movs r0, 0x4 + b _080BB702 +_080BB6D8: + adds r0, r1, 0 + subs r0, 0x96 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080BB6EC + cmp r1, 0x9C + beq _080BB6EC + cmp r1, 0x9D + bne _080BB6F0 +_080BB6EC: + movs r0, 0x5 + b _080BB702 +_080BB6F0: + adds r0, r1, 0 + subs r0, 0x98 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080BB700 + movs r0, 0 + b _080BB702 +_080BB700: + movs r0, 0x6 +_080BB702: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BB66C + + thumb_func_start sub_80BB70C +sub_80BB70C: @ 80BB70C + push {r4,lr} + ldr r4, _080BB720 + bl sub_80BB66C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BB720: .4byte gUnknown_0202E8D2 + thumb_func_end sub_80BB70C + + thumb_func_start unref_sub_80BB724 +unref_sub_80BB724: @ 80BB724 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 24 + movs r2, 0 + ldr r6, _080BB748 + lsrs r3, r1, 24 + ldr r5, _080BB74C +_080BB732: + lsls r0, r2, 1 + adds r0, r4 + ldrh r1, [r0] + adds r0, r6, 0 + ands r0, r1 + cmp r0, r3 + bne _080BB750 + lsls r0, r2, 16 + asrs r0, 16 + b _080BB75E + .align 2, 0 +_080BB748: .4byte 0x00000fff +_080BB74C: .4byte 0x000001ff +_080BB750: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r5 + bls _080BB732 + movs r0, 0x1 + negs r0, r0 +_080BB75E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end unref_sub_80BB724 + + thumb_func_start sub_80BB764 +sub_80BB764: @ 80BB764 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + mov r9, r0 + mov r10, r1 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + movs r0, 0 + mov r12, r0 + ldr r1, _080BB7C8 + ldr r0, [r1] + ldr r3, [r0, 0x4] + cmp r12, r3 + bge _080BB7EE + ldr r0, [r0] + str r0, [sp, 0x4] + str r3, [sp] +_080BB78E: + movs r2, 0 + mov r1, r12 + lsls r7, r1, 16 + ldr r0, [sp, 0x4] + cmp r2, r0 + bge _080BB7DC + ldr r0, _080BB7C8 + ldr r1, [r0] + asrs r0, r7, 16 + ldr r4, [r1] + adds r6, r0, 0 + muls r6, r4 + ldr r5, [r1, 0xC] +_080BB7A8: + lsls r0, r2, 16 + asrs r3, r0, 16 + adds r0, r6, r3 + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + ldr r0, _080BB7CC + ands r0, r1 + cmp r0, r8 + bne _080BB7D0 + mov r1, r9 + strh r2, [r1] + mov r1, r12 + mov r0, r10 + strh r1, [r0] + b _080BB7EE + .align 2, 0 +_080BB7C8: .4byte gMapHeader +_080BB7CC: .4byte 0x000003ff +_080BB7D0: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, r4 + blt _080BB7A8 +_080BB7DC: + movs r1, 0x80 + lsls r1, 9 + adds r0, r7, r1 + lsrs r1, r0, 16 + mov r12, r1 + asrs r0, 16 + ldr r1, [sp] + cmp r0, r1 + blt _080BB78E +_080BB7EE: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BB764 + + thumb_func_start sub_80BB800 +sub_80BB800: @ 80BB800 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileIdAt + movs r5, 0 + mov r12, r4 + lsls r0, 16 + asrs r3, r0, 16 + ldr r1, _080BB84C + mov r8, r1 + adds r7, r0, 0 + mov r4, sp + mov r6, r12 +_080BB834: + ldr r0, _080BB84C + lsls r1, r5, 2 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, r3 + bne _080BB850 + movs r3, 0 + ldrsh r0, [r4, r3] + movs r5, 0 + ldrsh r1, [r6, r5] + ldrh r3, [r2, 0x2] + b _080BB878 + .align 2, 0 +_080BB84C: .4byte gUnknown_083D1358 +_080BB850: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x6 + bls _080BB834 + movs r5, 0 + mov r4, sp + mov r6, r12 +_080BB860: + lsls r0, r5, 2 + mov r1, r8 + adds r3, r0, r1 + ldrh r1, [r3, 0x2] + asrs r0, r7, 16 + cmp r1, r0 + bne _080BB892 + movs r2, 0 + ldrsh r0, [r4, r2] + movs r5, 0 + ldrsh r1, [r6, r5] + ldrh r3, [r3] +_080BB878: + movs r5, 0xC0 + lsls r5, 4 + adds r2, r5, 0 + orrs r2, r3 + bl MapGridSetMetatileIdAt + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0 + ldrsh r1, [r6, r2] + bl CurrentMapDrawMetatileAt + b _080BB89C +_080BB892: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x6 + bls _080BB860 +_080BB89C: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BB800 + + thumb_func_start sub_80BB8A8 +sub_80BB8A8: @ 80BB8A8 + push {lr} + adds r2, r0, 0 + movs r1, 0 +_080BB8AE: + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BB8BA + adds r0, r1, 0 + b _080BB8C6 +_080BB8BA: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x6 + bls _080BB8AE + movs r0, 0x7 +_080BB8C6: + pop {r1} + bx r1 + thumb_func_end sub_80BB8A8 + + thumb_func_start sub_80BB8CC +sub_80BB8CC: @ 80BB8CC + push {r4-r6,lr} + ldr r2, _080BB948 + ldr r0, _080BB94C + ldrb r1, [r0] + ldr r3, _080BB950 + adds r0, r2, r3 + strb r1, [r0] + movs r3, 0 + ldr r0, _080BB954 + adds r2, r0 + ldr r4, _080BB958 +_080BB8E2: + adds r1, r3, r2 + adds r0, r3, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080BB8E2 + ldr r0, _080BB95C + movs r1, 0 + bl VarSet + ldr r6, _080BB960 + adds r0, r6, 0 + bl sub_80BB8A8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _080BB964 + adds r0, r5, 0 + movs r1, 0xFF + movs r2, 0x7 + bl memset + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl StringCopyN + ldrb r0, [r6, 0x8] + subs r5, 0x1 + movs r1, 0x1 + ands r1, r0 + lsls r1, 4 + ldrb r2, [r5] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + ldr r0, _080BB968 + ldr r1, _080BB96C + ldrb r1, [r1, 0x14] + bl VarSet + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB948: .4byte gSaveBlock1 +_080BB94C: .4byte gUnknown_020387DC +_080BB950: .4byte 0x00001a08 +_080BB954: .4byte 0x00001a11 +_080BB958: .4byte gSaveBlock2 + 0xA +_080BB95C: .4byte 0x00004054 +_080BB960: .4byte gSaveBlock2 +_080BB964: .4byte gSaveBlock1 + 0x1A0A +_080BB968: .4byte 0x00004026 +_080BB96C: .4byte gMapHeader + thumb_func_end sub_80BB8CC + + thumb_func_start sub_80BB970 +sub_80BB970: @ 80BB970 + push {r4-r7,lr} + adds r5, r0, 0 + movs r2, 0 + b _080BBA06 +_080BB978: + ldr r0, [r5, 0x10] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r3, r1, r0 + ldrb r0, [r3, 0x5] + adds r7, r2, 0x1 + cmp r0, 0x8 + bne _080BBA02 + movs r2, 0 + ldr r4, _080BB9E0 + adds r6, r1, 0 +_080BB990: + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 5 + adds r0, r4 + ldr r1, _080BB9E4 + adds r0, r1 + ldrb r1, [r0] + ldr r0, [r3, 0x8] + cmp r1, r0 + bne _080BB9F8 + ldrh r0, [r3] + adds r0, 0x7 + ldrh r1, [r3, 0x2] + adds r1, 0x7 + bl MapGridGetMetatileIdAt + movs r3, 0 + lsls r0, 16 + asrs r4, r0, 16 +_080BB9B6: + ldr r0, _080BB9E8 + lsls r1, r3, 2 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, r4 + bne _080BB9EC + ldr r1, [r5, 0x10] + adds r1, r6, r1 + ldrh r0, [r1] + adds r0, 0x7 + ldrh r1, [r1, 0x2] + adds r1, 0x7 + ldrh r3, [r2, 0x2] + movs r4, 0xC0 + lsls r4, 4 + adds r2, r4, 0 + orrs r2, r3 + bl MapGridSetMetatileIdAt + b _080BBA02 + .align 2, 0 +_080BB9E0: .4byte gSaveBlock1 +_080BB9E4: .4byte 0x00001a08 +_080BB9E8: .4byte gUnknown_083D1358 +_080BB9EC: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x6 + bls _080BB9B6 + b _080BBA02 +_080BB9F8: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x13 + bls _080BB990 +_080BBA02: + lsls r0, r7, 16 + lsrs r2, r0, 16 +_080BBA06: + ldrb r0, [r5, 0x3] + cmp r2, r0 + bcc _080BB978 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BB970 + + thumb_func_start sub_80BBA14 +sub_80BBA14: @ 80BBA14 + push {lr} + ldr r0, _080BBA40 + ldrb r0, [r0] + movs r1, 0xA + bl __udivsi3 + ldr r2, _080BBA44 + lsls r0, 26 + asrs r0, 24 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + adds r0, 0x1 + adds r0, r2 + movs r2, 0 + ldrsb r2, [r0, r2] + movs r0, 0x19 + bl warp1_set_2 + pop {r0} + bx r0 + .align 2, 0 +_080BBA40: .4byte gUnknown_020387DC +_080BBA44: .4byte gUnknown_083D1374 + thumb_func_end sub_80BBA14 + + thumb_func_start sub_80BBA48 +sub_80BBA48: @ 80BBA48 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080BBA6C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + movs r1, 0x8 + ldrsh r0, [r2, r1] + cmp r0, 0x1 + beq _080BBA7C + cmp r0, 0x1 + bgt _080BBA70 + cmp r0, 0 + beq _080BBA76 + b _080BBAD0 + .align 2, 0 +_080BBA6C: .4byte gTasks +_080BBA70: + cmp r0, 0x2 + beq _080BBA94 + b _080BBAD0 +_080BBA76: + movs r0, 0x1 + strh r0, [r2, 0x8] + b _080BBAD0 +_080BBA7C: + ldr r0, _080BBA90 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BBAD0 + movs r0, 0x2 + strh r0, [r2, 0x8] + b _080BBAD0 + .align 2, 0 +_080BBA90: .4byte gPaletteFade +_080BBA94: + ldr r0, _080BBAD8 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + ldr r2, _080BBADC + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, r2 + ldr r0, _080BBAE0 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0xFE + bhi _080BBAB6 + adds r0, 0x1 + strb r0, [r1] +_080BBAB6: + bl sub_80BBA14 + bl warp_in + ldr r0, _080BBAE4 + ldr r1, _080BBAE8 + str r1, [r0] + ldr r0, _080BBAEC + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_080BBAD0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BBAD8: .4byte 0x00004054 +_080BBADC: .4byte gSaveBlock1 +_080BBAE0: .4byte 0x00001a18 +_080BBAE4: .4byte gUnknown_0300485C +_080BBAE8: .4byte sub_8080990 +_080BBAEC: .4byte CB2_LoadMap + thumb_func_end sub_80BBA48 + + thumb_func_start sub_80BBAF0 +sub_80BBAF0: @ 80BBAF0 + push {lr} + ldr r0, _080BBB1C + movs r1, 0 + bl CreateTask + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r0, _080BBB20 + movs r1, 0x4 + ldrsb r1, [r0, r1] + movs r2, 0x5 + ldrsb r2, [r0, r2] + movs r3, 0x1 + negs r3, r3 + movs r0, 0 + bl saved_warp2_set + pop {r0} + bx r0 + .align 2, 0 +_080BBB1C: .4byte sub_80BBA48 +_080BBB20: .4byte gSaveBlock1 + thumb_func_end sub_80BBAF0 + + thumb_func_start sub_80BBB24 +sub_80BBB24: @ 80BBB24 + push {lr} + ldr r0, _080BBB40 + ldrb r0, [r0, 0x17] + cmp r0, 0x9 + bne _080BBB48 + ldr r0, _080BBB44 + bl VarGet + lsls r0, 16 + cmp r0, 0 + bne _080BBB48 + movs r0, 0 + b _080BBB4A + .align 2, 0 +_080BBB40: .4byte gMapHeader +_080BBB44: .4byte 0x00004097 +_080BBB48: + movs r0, 0x1 +_080BBB4A: + pop {r1} + bx r1 + thumb_func_end sub_80BBB24 + + thumb_func_start sub_80BBB50 +sub_80BBB50: @ 80BBB50 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080BBB88 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BBB8C + adds r0, r1 + movs r1, 0x2 + bl FieldObjectTurn + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BBB80 + bl EnableBothScriptContexts + adds r0, r4, 0 + bl DestroyTask +_080BBB80: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BBB88: .4byte gPlayerAvatar +_080BBB8C: .4byte gMapObjects + thumb_func_end sub_80BBB50 + + thumb_func_start sub_80BBB90 +sub_80BBB90: @ 80BBB90 + push {r4,lr} + sub sp, 0x4 + bl ScriptContext2_Enable + bl HideMapNamePopUpWindow + mov r4, sp + adds r4, 0x2 + movs r2, 0x88 + lsls r2, 2 + mov r0, sp + adds r1, r4, 0 + bl sub_80BB764 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + adds r0, 0x7 + movs r2, 0 + ldrsh r1, [r4, r2] + adds r1, 0x7 + movs r2, 0xE2 + lsls r2, 4 + bl MapGridSetMetatileIdAt + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + adds r0, 0x7 + movs r2, 0 + ldrsh r1, [r4, r2] + adds r1, 0x7 + bl CurrentMapDrawMetatileAt + bl pal_fill_black + ldr r0, _080BBBE8 + movs r1, 0 + bl CreateTask + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BBBE8: .4byte sub_80BBB50 + thumb_func_end sub_80BBB90 + + thumb_func_start sub_80BBBEC +sub_80BBBEC: @ 80BBBEC + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080BBC5C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BBC52 + ldr r0, _080BBC60 + ldrb r0, [r0] + movs r1, 0xA + bl __udivsi3 + ldr r1, _080BBC64 + movs r5, 0x4 + ldrsb r5, [r1, r5] + ldrb r1, [r1, 0x5] + lsls r1, 24 + asrs r1, 24 + movs r2, 0x1 + negs r2, r2 + ldr r4, _080BBC68 + lsls r0, 26 + asrs r0, 24 + adds r3, r0, 0x2 + adds r3, r4 + ldrb r3, [r3] + lsls r3, 24 + asrs r3, 24 + adds r0, 0x3 + adds r0, r4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + str r0, [sp] + adds r0, r5, 0 + bl warp1_set + bl warp_in + ldr r1, _080BBC6C + ldr r0, _080BBC70 + str r0, [r1] + ldr r0, _080BBC74 + bl SetMainCallback2 + adds r0, r6, 0 + bl DestroyTask +_080BBC52: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BBC5C: .4byte gPaletteFade +_080BBC60: .4byte gUnknown_020387DC +_080BBC64: .4byte gSaveBlock1 +_080BBC68: .4byte gUnknown_083D1374 +_080BBC6C: .4byte gUnknown_0300485C +_080BBC70: .4byte sub_80BBB90 +_080BBC74: .4byte CB2_LoadMap + thumb_func_end sub_80BBBEC + + thumb_func_start sub_80BBC78 +sub_80BBC78: @ 80BBC78 + push {lr} + ldr r0, _080BBCA0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BBCA4 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + movs r0, 0x1 + movs r1, 0 + bl fade_screen + pop {r0} + bx r0 + .align 2, 0 +_080BBCA0: .4byte sub_80BBBEC +_080BBCA4: .4byte gTasks + thumb_func_end sub_80BBC78 + + thumb_func_start CurrentMapIsSecretBase +CurrentMapIsSecretBase: @ 80BBCA8 + push {lr} + ldr r1, _080BBCC0 + movs r0, 0x4 + ldrsb r0, [r1, r0] + cmp r0, 0x19 + bne _080BBCC4 + ldrb r0, [r1, 0x5] + cmp r0, 0x17 + bhi _080BBCC4 + movs r0, 0x1 + b _080BBCC6 + .align 2, 0 +_080BBCC0: .4byte gSaveBlock1 +_080BBCC4: + movs r0, 0 +_080BBCC6: + pop {r1} + bx r1 + thumb_func_end CurrentMapIsSecretBase + + thumb_func_start sub_80BBCCC +sub_80BBCCC: @ 80BBCCC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + bl CurrentMapIsSecretBase + lsls r0, 24 + cmp r0, 0 + beq _080BBDBC + ldr r0, _080BBD70 + bl VarGet + lsls r0, 16 + lsrs r5, r0, 16 + movs r1, 0 + mov r0, sp + strh r1, [r0] + ldr r6, _080BBD74 + mov r4, sp + ldr r0, _080BBD78 + adds r7, r6, r0 +_080BBCFC: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 5 + ldrh r1, [r4] + adds r2, r0, r1 + ldr r1, _080BBD7C + adds r0, r6, r1 + adds r1, r2, r0 + ldrb r0, [r1] + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x77 + bhi _080BBD3A + ldr r0, _080BBD80 + ldrb r3, [r1] + lsls r1, r3, 5 + adds r1, r0 + ldrb r0, [r1, 0x11] + cmp r0, 0x4 + beq _080BBD3A + adds r0, r2, r7 + ldrb r2, [r0] + lsrs r0, r2, 4 + adds r0, 0x7 + movs r1, 0xF + ands r1, r2 + adds r1, 0x7 + adds r2, r3, 0 + bl sub_80FF394 +_080BBD3A: + ldrh r0, [r4] + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + strh r0, [r4] + cmp r0, 0xF + bls _080BBCFC + cmp r5, 0 + beq _080BBD88 + mov r4, sp + adds r4, 0x2 + movs r2, 0x88 + lsls r2, 2 + mov r0, sp + adds r1, r4, 0 + bl sub_80BB764 + mov r0, sp + ldrh r0, [r0] + adds r0, 0x7 + ldrh r1, [r4] + adds r1, 0x7 + ldr r2, _080BBD84 + bl MapGridSetMetatileIdAt + b _080BBDBC + .align 2, 0 +_080BBD70: .4byte 0x00004054 +_080BBD74: .4byte gSaveBlock1 +_080BBD78: .4byte 0x00001a2a +_080BBD7C: .4byte 0x00001a1a +_080BBD80: .4byte gDecorations +_080BBD84: .4byte 0x00000e21 +_080BBD88: + mov r0, r8 + cmp r0, 0x1 + bne _080BBDBC + ldr r0, _080BBDC8 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bne _080BBDBC + mov r4, sp + adds r4, 0x2 + movs r2, 0x88 + lsls r2, 2 + mov r0, sp + adds r1, r4, 0 + bl sub_80BB764 + mov r0, sp + ldrh r0, [r0] + adds r0, 0x7 + ldrh r1, [r4] + adds r1, 0x7 + ldr r2, _080BBDCC + bl MapGridSetMetatileIdAt +_080BBDBC: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BBDC8: .4byte 0x00004089 +_080BBDCC: .4byte 0x00000e0a + thumb_func_end sub_80BBCCC + + thumb_func_start sub_80BBDD0 +sub_80BBDD0: @ 80BBDD0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + ldr r0, _080BBE00 + bl VarGet + lsls r0, 16 + lsrs r4, r0, 16 + bl CurrentMapIsSecretBase + lsls r0, 24 + cmp r0, 0 + bne _080BBE08 + ldr r0, _080BBE04 + str r0, [sp, 0x4] + adds r0, 0xC + str r0, [sp, 0x8] + movs r1, 0xC + str r1, [sp, 0xC] + b _080BBE1E + .align 2, 0 +_080BBE00: .4byte 0x00004054 +_080BBE04: .4byte gSaveBlock1 + 0x2688 +_080BBE08: + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 5 + ldr r0, _080BBF7C + adds r2, r1, r0 + str r2, [sp, 0x4] + adds r0, 0x10 + adds r1, r0 + str r1, [sp, 0x8] + movs r3, 0x10 + str r3, [sp, 0xC] +_080BBE1E: + movs r6, 0 + ldr r4, [sp, 0xC] + cmp r6, r4 + bcc _080BBE28 + b _080BBF6C +_080BBE28: + ldr r5, _080BBF80 + mov r10, r5 +_080BBE2C: + ldr r1, [sp, 0x4] + adds r0, r1, r6 + ldrb r1, [r0] + mov r9, r0 + adds r2, r6, 0x1 + str r2, [sp, 0x10] + cmp r1, 0 + bne _080BBE3E + b _080BBF5E +_080BBE3E: + ldrb r0, [r0] + lsls r0, 5 + ldr r3, _080BBF84 + adds r0, r3 + ldrb r0, [r0, 0x11] + cmp r0, 0x4 + beq _080BBE4E + b _080BBF5E +_080BBE4E: + movs r5, 0 + ldr r0, _080BBF88 + ldr r2, [r0, 0x4] + ldrb r3, [r2] + mov r8, r0 + cmp r5, r3 + bcs _080BBE8E + ldr r0, [r2, 0x4] + ldrh r1, [r0, 0x14] + ldr r4, _080BBF8C + ldrh r0, [r4] + adds r0, 0xAE + adds r7, r4, 0 + cmp r1, r0 + beq _080BBE8E + adds r4, r2, 0 + adds r2, r3, 0 +_080BBE70: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r2 + bcs _080BBE8E + ldr r1, [r4, 0x4] + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x14] + ldrh r0, [r7] + adds r0, 0xAE + cmp r1, r0 + bne _080BBE70 +_080BBE8E: + mov r1, r8 + ldr r0, [r1, 0x4] + ldrb r0, [r0] + cmp r5, r0 + beq _080BBF5E + ldr r7, _080BBF90 + ldr r2, [sp, 0x8] + adds r1, r2, r6 + ldrb r0, [r1] + lsrs r0, 4 + strh r0, [r7] + ldr r6, _080BBF94 + ldrb r1, [r1] + movs r0, 0xF + ands r0, r1 + strh r0, [r6] + ldrh r0, [r7] + adds r0, 0x7 + ldrh r1, [r6] + adds r1, 0x7 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80572D8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BBEDA + adds r0, r4, 0 + bl sub_80572EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BBF5E +_080BBEDA: + mov r3, r8 + ldr r0, [r3, 0x4] + ldr r1, [r0, 0x4] + lsls r4, r5, 1 + adds r4, r5 + lsls r4, 3 + adds r1, r4, r1 + ldr r5, _080BBF98 + adds r0, r5, 0 + ldrb r1, [r1, 0x1] + adds r0, r1 + ldr r1, _080BBF9C + strh r0, [r1] + ldrh r0, [r1] + mov r2, r9 + ldrb r1, [r2] + lsls r1, 5 + ldr r3, _080BBFA0 + adds r1, r3 + ldr r1, [r1] + ldrh r1, [r1] + bl VarSet + mov r5, r8 + ldr r0, [r5, 0x4] + ldr r0, [r0, 0x4] + adds r4, r0 + ldrb r0, [r4] + ldr r1, _080BBF9C + strh r0, [r1] + ldr r2, _080BBF8C + ldrh r0, [r2] + adds r0, 0xAE + lsls r0, 16 + lsrs r0, 16 + bl FlagReset + ldr r3, _080BBF9C + ldrb r0, [r3] + mov r4, r10 + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + bl show_sprite + ldr r5, _080BBF9C + ldrb r0, [r5] + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + movs r4, 0 + ldrsh r3, [r7, r4] + movs r5, 0 + ldrsh r4, [r6, r5] + str r4, [sp] + bl sub_805C0F8 + ldr r1, _080BBF9C + ldrb r0, [r1] + mov r2, r10 + ldrb r1, [r2, 0x5] + ldrb r2, [r2, 0x4] + bl sub_805C78C + ldr r3, _080BBF8C + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] +_080BBF5E: + ldr r4, [sp, 0x10] + lsls r0, r4, 24 + lsrs r6, r0, 24 + ldr r5, [sp, 0xC] + cmp r6, r5 + bcs _080BBF6C + b _080BBE2C +_080BBF6C: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BBF7C: .4byte gSaveBlock1 + 0x1A1A +_080BBF80: .4byte gSaveBlock1 +_080BBF84: .4byte gDecorations +_080BBF88: .4byte gMapHeader +_080BBF8C: .4byte gUnknown_0202E8CC +_080BBF90: .4byte gUnknown_0202E8D0 +_080BBF94: .4byte gUnknown_0202E8D2 +_080BBF98: .4byte 0x00003f20 +_080BBF9C: .4byte gScriptResult +_080BBFA0: .4byte gDecorations + 0x1C + thumb_func_end sub_80BBDD0 + + thumb_func_start sub_80BBFA4 +sub_80BBFA4: @ 80BBFA4 + push {r4,r5,lr} + ldr r0, _080BBFCC + bl VarGet + ldr r5, _080BBFD0 + ldr r4, _080BBFD4 + lsls r0, 24 + lsrs r0, 24 + bl sub_80BCCA4 + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + ldrb r1, [r0] + adds r0, r5, 0 + bl VarSet + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BBFCC: .4byte 0x00004054 +_080BBFD0: .4byte 0x0000401f +_080BBFD4: .4byte gUnknown_083D13EC + thumb_func_end sub_80BBFA4 + + thumb_func_start sub_80BBFD8 +sub_80BBFD8: @ 80BBFD8 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r3, 0 + ldrb r0, [r4, 0x3] + cmp r3, r0 + bge _080BC030 + ldr r6, _080BC01C +_080BBFE8: + lsls r3, 16 + asrs r1, r3, 16 + ldr r2, [r4, 0x10] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r2 + ldrb r0, [r2, 0x5] + cmp r0, 0x8 + bne _080BC020 + movs r0, 0 + ldrsh r1, [r5, r0] + ldrh r0, [r2] + adds r0, 0x7 + cmp r1, r0 + bne _080BC020 + movs r0, 0x2 + ldrsh r1, [r5, r0] + ldrh r0, [r2, 0x2] + adds r0, 0x7 + cmp r1, r0 + bne _080BC020 + ldr r0, [r2, 0x8] + strb r0, [r6] + b _080BC030 + .align 2, 0 +_080BC01C: .4byte gUnknown_020387DC +_080BC020: + movs r1, 0x80 + lsls r1, 9 + adds r0, r3, r1 + lsrs r3, r0, 16 + asrs r0, 16 + ldrb r1, [r4, 0x3] + cmp r0, r1 + blt _080BBFE8 +_080BC030: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BBFD8 + + thumb_func_start sub_80BC038 +sub_80BC038: @ 80BC038 + push {lr} + bl sub_80BBFD8 + bl sub_80BB5E4 + ldr r0, _080BC04C + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080BC04C: .4byte gUnknown_081A2E14 + thumb_func_end sub_80BC038 + + thumb_func_start sub_80BC050 +sub_80BC050: @ 80BC050 + push {lr} + bl sub_80BB5D0 + bl sub_80BB5E4 + ldr r0, _080BC068 + ldrh r0, [r0] + cmp r0, 0x1 + beq _080BC06C + movs r0, 0x1 + b _080BC06E + .align 2, 0 +_080BC068: .4byte gScriptResult +_080BC06C: + movs r0, 0 +_080BC06E: + pop {r1} + bx r1 + thumb_func_end sub_80BC050 + + thumb_func_start sub_80BC074 +sub_80BC074: @ 80BC074 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080BC098 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080BC0AC + cmp r0, 0x1 + bgt _080BC09C + cmp r0, 0 + beq _080BC0A2 + b _080BC0E4 + .align 2, 0 +_080BC098: .4byte gTasks +_080BC09C: + cmp r0, 0x2 + beq _080BC0C4 + b _080BC0E4 +_080BC0A2: + bl ScriptContext2_Enable + movs r0, 0x1 + strh r0, [r4, 0x8] + b _080BC0E4 +_080BC0AC: + ldr r0, _080BC0C0 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BC0E4 + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080BC0E4 + .align 2, 0 +_080BC0C0: .4byte gPaletteFade +_080BC0C4: + movs r0, 0x7E + bl copy_saved_warp2_bank_and_enter_x_to_warp1 + bl warp_in + ldr r0, _080BC0EC + ldr r1, _080BC0F0 + str r1, [r0] + ldr r0, _080BC0F4 + bl SetMainCallback2 + bl ScriptContext2_Disable + adds r0, r5, 0 + bl DestroyTask +_080BC0E4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC0EC: .4byte gUnknown_0300485C +_080BC0F0: .4byte mapldr_default +_080BC0F4: .4byte CB2_LoadMap + thumb_func_end sub_80BC074 + + thumb_func_start sub_80BC0F8 +sub_80BC0F8: @ 80BC0F8 + push {lr} + ldr r0, _080BC110 + movs r1, 0 + bl CreateTask + movs r0, 0x1 + movs r1, 0 + bl fade_screen + pop {r0} + bx r0 + .align 2, 0 +_080BC110: .4byte sub_80BC074 + thumb_func_end sub_80BC0F8 + + thumb_func_start sub_80BC114 +sub_80BC114: @ 80BC114 + push {lr} + ldr r0, _080BC12C + ldr r1, _080BC130 + adds r0, r1 + ldr r1, _080BC134 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080BC13C + ldr r1, _080BC138 + movs r0, 0x1 + b _080BC140 + .align 2, 0 +_080BC12C: .4byte gSaveBlock1 +_080BC130: .4byte 0x00001a08 +_080BC134: .4byte gUnknown_020387DC +_080BC138: .4byte gScriptResult +_080BC13C: + ldr r1, _080BC148 + movs r0, 0 +_080BC140: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080BC148: .4byte gScriptResult + thumb_func_end sub_80BC114 + + thumb_func_start sub_80BC14C +sub_80BC14C: @ 80BC14C + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + movs r2, 0 + ldr r5, _080BC174 + ldr r4, _080BC178 +_080BC158: + lsls r0, r2, 16 + asrs r1, r0, 16 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + adds r0, r5 + adds r0, r4 + ldrb r0, [r0] + cmp r0, r3 + bne _080BC17C + lsls r0, r2, 24 + lsrs r0, 24 + b _080BC18A + .align 2, 0 +_080BC174: .4byte gSaveBlock1 +_080BC178: .4byte 0x00001a08 +_080BC17C: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080BC158 + movs r0, 0 +_080BC18A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BC14C + + thumb_func_start sub_80BC190 +sub_80BC190: @ 80BC190 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r4, r1, 2 + adds r4, r1 + lsls r4, 5 + ldr r0, _080BC1C8 + adds r4, r0 + adds r0, r4, 0 + bl sub_80BB8A8 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl StringCopyN + movs r1, 0xFF + strb r1, [r0] + ldr r1, _080BC1CC + adds r0, r5, 0 + bl StringAppend + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080BC1C8: .4byte gSaveBlock1 + 0x1A0A +_080BC1CC: .4byte gOtherText_PlayersBase + thumb_func_end sub_80BC190 + + thumb_func_start GetSecretBaseMapName +GetSecretBaseMapName: @ 80BC1D0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + mov r8, r0 + ldr r6, _080BC214 + ldr r5, _080BC218 + ldr r4, _080BC21C + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, r5 + ldr r0, _080BC220 + adds r1, r0 + ldrb r0, [r1] + strb r0, [r6] + adds r0, r4, 0 + bl VarGet + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_80BC190 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080BC214: .4byte gUnknown_020387DC +_080BC218: .4byte gSaveBlock1 +_080BC21C: .4byte 0x00004054 +_080BC220: .4byte 0x00001a08 + thumb_func_end GetSecretBaseMapName + + thumb_func_start sub_80BC224 +sub_80BC224: @ 80BC224 + push {r4,r5,lr} + ldr r0, _080BC25C + bl VarGet + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 5 + ldr r0, _080BC260 + adds r4, r0 + ldr r5, _080BC264 + adds r0, r4, 0 + bl sub_80BB8A8 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl StringCopyN + movs r1, 0xFF + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC25C: .4byte 0x00004054 +_080BC260: .4byte gSaveBlock1 + 0x1A0A +_080BC264: .4byte gStringVar1 + thumb_func_end sub_80BC224 + + thumb_func_start sub_80BC268 +sub_80BC268: @ 80BC268 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BC288 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, r2 + ldr r0, _080BC28C + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 6 + cmp r0, 0 + bne _080BC290 + movs r0, 0 + b _080BC292 + .align 2, 0 +_080BC288: .4byte gSaveBlock1 +_080BC28C: .4byte 0x00001a09 +_080BC290: + movs r0, 0x1 +_080BC292: + pop {r1} + bx r1 + thumb_func_end sub_80BC268 + + thumb_func_start sub_80BC298 +sub_80BC298: @ 80BC298 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x1A + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1B + bl GetMonData + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1C + bl GetMonData + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1D + bl GetMonData + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1E + bl GetMonData + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1F + bl GetMonData + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + movs r1, 0x6 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BC298 + + thumb_func_start sub_80BC300 +sub_80BC300: @ 80BC300 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + movs r0, 0 + mov r10, r0 + movs r6, 0 + mov r9, r6 +_080BC314: + movs r4, 0 + lsls r3, r6, 2 + lsls r2, r6, 1 + ldr r7, _080BC424 + adds r1, r6, 0x1 + str r1, [sp] + adds r1, r3, 0 +_080BC322: + adds r0, r1, r4 + lsls r0, 1 + ldr r5, _080BC428 + adds r0, r5, r0 + mov r5, r9 + strh r5, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080BC322 + ldr r1, _080BC42C + adds r0, r1, r2 + strh r5, [r0] + ldr r5, _080BC430 + adds r0, r5, r2 + mov r1, r9 + strh r1, [r0] + ldr r2, _080BC434 + adds r0, r2, r6 + mov r5, r9 + strb r5, [r0] + ldr r1, _080BC438 + adds r0, r1, r3 + mov r2, r9 + str r2, [r0] + ldr r3, _080BC43C + adds r0, r3, r6 + strb r2, [r0] + movs r0, 0x64 + adds r5, r6, 0 + muls r5, r0 + adds r4, r5, r7 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _080BC408 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _080BC408 + movs r4, 0 + mov r0, r10 + lsls r0, 2 + mov r8, r0 + mov r1, r10 + lsls r7, r1, 1 + adds r1, 0x1 + str r1, [sp, 0x4] + ldr r2, _080BC424 +_080BC38E: + adds r1, r4, 0 + adds r1, 0xD + adds r0, r5, r2 + str r2, [sp, 0x8] + bl GetMonData + mov r3, r8 + adds r1, r3, r4 + lsls r1, 1 + ldr r3, _080BC428 + adds r1, r3, r1 + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r2, [sp, 0x8] + cmp r4, 0x3 + bls _080BC38E + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, _080BC424 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + ldr r5, _080BC42C + adds r1, r5, r7 + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + ldr r2, _080BC430 + adds r1, r2, r7 + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + ldr r1, _080BC434 + add r1, r10 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + ldr r1, _080BC438 + add r1, r8 + str r0, [r1] + adds r0, r4, 0 + bl sub_80BC298 + ldr r1, _080BC43C + add r1, r10 + strb r0, [r1] + ldr r3, [sp, 0x4] + lsls r0, r3, 16 + lsrs r0, 16 + mov r10, r0 +_080BC408: + ldr r5, [sp] + lsls r0, r5, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _080BC314 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BC424: .4byte gPlayerParty +_080BC428: .4byte gSaveBlock1 + 0x1A54 +_080BC42C: .4byte gSaveBlock1 + 0x1A84 +_080BC430: .4byte gSaveBlock1 + 0x1A90 +_080BC434: .4byte gSaveBlock1 + 0x1A9C +_080BC438: .4byte gSaveBlock1 + 0x1A3C +_080BC43C: .4byte gSaveBlock1 + 0x1AA2 + thumb_func_end sub_80BC300 + + thumb_func_start sub_80BC440 +sub_80BC440: @ 80BC440 + push {r4,r5,lr} + ldr r4, _080BC45C + ldr r0, _080BC460 + adds r4, r0 + ldrh r5, [r4] + movs r0, 0 + bl sub_80BB594 + strh r5, [r4] + bl sub_80BC0F8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC45C: .4byte gSaveBlock1 +_080BC460: .4byte 0x00001a16 + thumb_func_end sub_80BC440 + + thumb_func_start sub_80BC464 +sub_80BC464: @ 80BC464 + push {lr} + movs r0, 0x14 + bl sav12_xor_increment + bl sub_80BC440 + pop {r0} + bx r0 + thumb_func_end sub_80BC464 + + thumb_func_start sub_80BC474 +sub_80BC474: @ 80BC474 + push {r4-r7,lr} + ldr r0, _080BC4CC + ldr r4, [r0, 0x4] + movs r6, 0 + ldrb r0, [r4, 0x3] + cmp r6, r0 + bcs _080BC504 + ldr r3, _080BC4D0 +_080BC484: + ldr r2, [r4, 0x10] + lsls r1, r6, 1 + adds r0, r1, r6 + lsls r0, 2 + adds r2, r0, r2 + ldrb r0, [r2, 0x5] + adds r7, r1, 0 + cmp r0, 0x8 + bne _080BC4F8 + ldrb r1, [r3] + ldr r0, [r2, 0x8] + cmp r1, r0 + bne _080BC4F8 + ldrh r0, [r2] + adds r0, 0x7 + ldrh r1, [r2, 0x2] + adds r1, 0x7 + bl MapGridGetMetatileIdAt + movs r1, 0 + ldr r5, _080BC4D4 + lsls r0, 16 + asrs r2, r0, 16 +_080BC4B2: + lsls r0, r1, 2 + adds r3, r0, r5 + ldrh r0, [r3, 0x2] + cmp r0, r2 + beq _080BC4D8 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x6 + bls _080BC4B2 +_080BC4C6: + bl DrawWholeMapView + b _080BC504 + .align 2, 0 +_080BC4CC: .4byte gMapHeader +_080BC4D0: .4byte gSaveBlock1 + 0x1A08 +_080BC4D4: .4byte gUnknown_083D1358 +_080BC4D8: + ldr r0, [r4, 0x10] + adds r1, r7, r6 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x7 + ldrh r1, [r1, 0x2] + adds r1, 0x7 + ldrh r3, [r3] + movs r4, 0xC0 + lsls r4, 4 + adds r2, r4, 0 + orrs r2, r3 + bl MapGridSetMetatileIdAt + b _080BC4C6 +_080BC4F8: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldrb r0, [r4, 0x3] + cmp r6, r0 + bcc _080BC484 +_080BC504: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BC474 + + thumb_func_start sub_80BC50C +sub_80BC50C: @ 80BC50C + push {r4,r5,lr} + bl sub_80BC474 + movs r0, 0x14 + bl sav12_xor_increment + ldr r4, _080BC530 + ldr r0, _080BC534 + adds r4, r0 + ldrh r5, [r4] + movs r0, 0 + bl sub_80BB594 + strh r5, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC530: .4byte gSaveBlock1 +_080BC534: .4byte 0x00001a16 + thumb_func_end sub_80BC50C + + thumb_func_start sub_80BC538 +sub_80BC538: @ 80BC538 + push {r4,r5,lr} + movs r5, 0 + movs r4, 0x1 +_080BC53E: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80BC268 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BC554 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_080BC554: + lsls r0, r4, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080BC53E + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BC538 + + thumb_func_start sub_80BC56C +sub_80BC56C: @ 80BC56C + push {lr} + ldr r0, _080BC58C + ldrb r0, [r0] + bl sub_80BC14C + lsls r0, 24 + lsrs r0, 24 + bl sub_80BC268 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + bne _080BC594 + ldr r0, _080BC590 + strh r1, [r0] + b _080BC5B2 + .align 2, 0 +_080BC58C: .4byte gUnknown_020387DC +_080BC590: .4byte gScriptResult +_080BC594: + bl sub_80BC538 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x9 + bls _080BC5AC + ldr r1, _080BC5A8 + movs r0, 0x2 + b _080BC5B0 + .align 2, 0 +_080BC5A8: .4byte gScriptResult +_080BC5AC: + ldr r1, _080BC5B8 + movs r0, 0 +_080BC5B0: + strh r0, [r1] +_080BC5B2: + pop {r0} + bx r0 + .align 2, 0 +_080BC5B8: .4byte gScriptResult + thumb_func_end sub_80BC56C + + thumb_func_start sub_80BC5BC +sub_80BC5BC: @ 80BC5BC + push {lr} + ldr r0, _080BC5F8 + ldrb r0, [r0] + bl sub_80BC14C + ldr r2, _080BC5FC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, r2 + ldr r0, _080BC600 + adds r1, r0 + ldrb r3, [r1] + lsrs r2, r3, 6 + movs r0, 0x1 + eors r2, r0 + lsls r2, 6 + movs r0, 0x3F + ands r0, r3 + orrs r0, r2 + strb r0, [r1] + movs r0, 0x86 + lsls r0, 1 + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_080BC5F8: .4byte gUnknown_020387DC +_080BC5FC: .4byte gSaveBlock1 +_080BC600: .4byte 0x00001a09 + thumb_func_end sub_80BC5BC + + thumb_func_start sub_80BC604 +sub_80BC604: @ 80BC604 + push {lr} + ldr r0, _080BC614 + movs r1, 0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080BC614: .4byte sub_80FE264 + thumb_func_end sub_80BC604 + + thumb_func_start sub_80BC618 +sub_80BC618: @ 80BC618 + push {lr} + ldr r0, _080BC628 + movs r1, 0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080BC628: .4byte sub_80BC62C + thumb_func_end sub_80BC618 + + thumb_func_start sub_80BC62C +sub_80BC62C: @ 80BC62C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl ScriptContext2_Enable + bl sub_80F944C + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080BC688 + adds r4, r0, r1 + bl sub_80BC538 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + adds r1, r0, 0 + cmp r1, 0 + beq _080BC694 + cmp r1, 0x7 + ble _080BC65E + movs r0, 0x7 +_080BC65E: + strh r0, [r4, 0x6] + movs r0, 0 + strh r0, [r4, 0x2] + strh r0, [r4, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r5, 0 + bl sub_80BC7D8 + ldr r1, _080BC68C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BC690 + str r1, [r0] + b _080BC6A0 + .align 2, 0 +_080BC688: .4byte gUnknown_03004B28 +_080BC68C: .4byte gTasks +_080BC690: .4byte sub_80BC824 +_080BC694: + ldr r1, _080BC6A8 + ldr r2, _080BC6AC + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080BC6A0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC6A8: .4byte gSecretBaseText_NoRegistry +_080BC6AC: .4byte sub_80BCC54 + thumb_func_end sub_80BC62C + + thumb_func_start sub_80BC6B0 +sub_80BC6B0: @ 80BC6B0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080BC6D8 + adds r1, r0 + mov r8, r1 + movs r4, 0 + movs r6, 0 + movs r5, 0x1 + movs r2, 0x4 + ldrsh r0, [r1, r2] + cmp r6, r0 + bne _080BC6DC + movs r4, 0x1 + b _080BC706 + .align 2, 0 +_080BC6D8: .4byte gUnknown_03004B28 +_080BC6DC: + adds r0, r5, 0 + bl sub_80BC268 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BC6F0 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080BC6F0: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bhi _080BC706 + mov r1, r8 + movs r2, 0x4 + ldrsh r0, [r1, r2] + cmp r4, r0 + bne _080BC6DC + adds r4, r5, 0 +_080BC706: + adds r5, r4, 0 + cmp r5, 0x13 + bhi _080BC75A + ldr r7, _080BC7A0 +_080BC70E: + adds r0, r5, 0 + bl sub_80BC268 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BC750 + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_80BC190 + lsls r3, r6, 1 + adds r4, r3, 0x2 + lsls r4, 24 + lsrs r4, 24 + adds r3, 0x3 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x12 + adds r1, r4, 0 + movs r2, 0x1C + bl MenuFillWindowRectWithBlankTile + adds r0, r7, 0 + movs r1, 0x12 + adds r2, r4, 0 + bl MenuPrint + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x8 + beq _080BC75A +_080BC750: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BC70E +_080BC75A: + cmp r6, 0x7 + bhi _080BC7A8 + lsls r3, r6, 1 + adds r4, r3, 0x2 + lsls r4, 24 + lsrs r4, 24 + adds r3, 0x3 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x12 + adds r1, r4, 0 + movs r2, 0x1C + bl MenuFillWindowRectWithBlankTile + ldr r0, _080BC7A4 + movs r1, 0x12 + adds r2, r4, 0 + bl MenuPrint + movs r0, 0x1 + bl SetBgTilemapBuffer + cmp r6, 0x7 + beq _080BC7B2 + lsls r1, r6, 25 + movs r0, 0x80 + lsls r0, 19 + adds r1, r0 + lsrs r1, 24 + movs r0, 0x12 + movs r2, 0x1C + movs r3, 0x12 + bl MenuFillWindowRectWithBlankTile + b _080BC7B2 + .align 2, 0 +_080BC7A0: .4byte gStringVar1 +_080BC7A4: .4byte gUnknownText_Exit +_080BC7A8: + movs r0, 0x1 + movs r1, 0xBC + movs r2, 0x98 + bl sub_80F953C +_080BC7B2: + mov r1, r8 + movs r2, 0x4 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080BC7C4 + movs r0, 0 + bl SetBgTilemapBuffer + b _080BC7CE +_080BC7C4: + movs r0, 0 + movs r1, 0xBC + movs r2, 0x8 + bl sub_80F953C +_080BC7CE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BC6B0 + + thumb_func_start sub_80BC7D8 +sub_80BC7D8: @ 80BC7D8 + push {r4,r5,lr} + sub sp, 0x8 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, _080BC820 + adds r4, r0 + movs r0, 0x11 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldrb r3, [r4, 0x6] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r4, 0x2] + str r0, [sp] + movs r0, 0xB + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x12 + movs r2, 0x2 + bl InitMenu + adds r0, r5, 0 + bl sub_80BC6B0 + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC820: .4byte gUnknown_03004B28 + thumb_func_end sub_80BC7D8 + + thumb_func_start sub_80BC824 +sub_80BC824: @ 80BC824 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080BC858 + adds r4, r0, r1 + ldr r2, _080BC85C + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080BC874 + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080BC860 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + b _080BC8B6 + .align 2, 0 +_080BC858: .4byte gUnknown_03004B28 +_080BC85C: .4byte gMain +_080BC860: + movs r2, 0x4 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080BC940 + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4, 0x4] + subs r0, 0x1 + b _080BC8A4 +_080BC874: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BC8C2 + movs r0, 0x2 + ldrsh r1, [r4, r0] + movs r2, 0x6 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080BC8AE + movs r1, 0x4 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r2, 0 + ldrsh r1, [r4, r2] + cmp r0, r1 + beq _080BC940 + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4, 0x4] + adds r0, 0x1 +_080BC8A4: + strh r0, [r4, 0x4] + adds r0, r5, 0 + bl sub_80BC6B0 + b _080BC940 +_080BC8AE: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 +_080BC8B6: + bl MoveMenuCursor + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2] + b _080BC940 +_080BC8C2: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080BC91C + movs r0, 0x5 + bl PlaySE + movs r1, 0x2 + ldrsh r0, [r4, r1] + movs r2, 0x4 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r2, 0 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080BC8FC + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r5, 0 + bl sub_80BCC54 + b _080BC940 +_080BC8FC: + bl sub_8072DEC + ldrb r0, [r4, 0x4] + ldrb r1, [r4, 0x2] + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_80BC948 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x8] + adds r0, r5, 0 + bl sub_80BC980 + b _080BC940 +_080BC91C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BC940 + movs r0, 0x5 + bl PlaySE + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r6, 0 + bl sub_80BCC54 +_080BC940: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BC824 + + thumb_func_start sub_80BC948 +sub_80BC948: @ 80BC948 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + movs r4, 0x1 +_080BC952: + adds r0, r4, 0 + bl sub_80BC268 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BC96E + cmp r6, r5 + bne _080BC968 + adds r0, r4, 0 + b _080BC97A +_080BC968: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_080BC96E: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x13 + bls _080BC952 + movs r0, 0 +_080BC97A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80BC948 + + thumb_func_start sub_80BC980 +sub_80BC980: @ 80BC980 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl sub_80F996C + movs r0, 0x1 + bl sub_80F996C + movs r0, 0x1 + movs r1, 0 + movs r2, 0xC + movs r3, 0x5 + bl MenuDrawTextWindow + ldr r3, _080BC9D8 + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0x2 + bl PrintMenuItems + movs r0, 0 + str r0, [sp] + movs r0, 0xA + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x2 + movs r2, 0x1 + movs r3, 0x2 + bl InitMenu + ldr r1, _080BC9DC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BC9E0 + str r1, [r0] + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BC9D8: .4byte gUnknown_083D13D4 +_080BC9DC: .4byte gTasks +_080BC9E0: .4byte sub_80BC9E4 + thumb_func_end sub_80BC980 + + thumb_func_start sub_80BC9E4 +sub_80BC9E4: @ 80BC9E4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, r5, 0 + ldr r2, _080BCA14 + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080BCA18 + bl GetMenuCursorPos + lsls r0, 24 + cmp r0, 0 + beq _080BCA7C + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _080BCA7C + .align 2, 0 +_080BCA14: .4byte gMain +_080BCA18: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BCA3A + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BCA7C + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _080BCA7C +_080BCA3A: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080BCA68 + movs r0, 0x5 + bl PlaySE + ldr r4, _080BCA64 + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 21 + adds r4, 0x4 + adds r0, r4 + ldr r1, [r0] + adds r0, r5, 0 + bl _call_via_r1 + b _080BCA7C + .align 2, 0 +_080BCA64: .4byte gUnknown_083D13D4 +_080BCA68: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BCA7C + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_80BCBF8 +_080BCA7C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80BC9E4 + + thumb_func_start sub_80BCA84 +sub_80BCA84: @ 80BCA84 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, _080BCAD8 + adds r4, r0 + movs r0, 0 + bl SetBgTilemapBuffer + movs r0, 0x1 + bl SetBgTilemapBuffer + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r0, _080BCADC + ldrb r1, [r4, 0x8] + bl sub_80BC190 + ldr r4, _080BCAE0 + ldr r1, _080BCAE4 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080BCAE8 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BCAD8: .4byte gUnknown_03004B28 +_080BCADC: .4byte gStringVar1 +_080BCAE0: .4byte gStringVar4 +_080BCAE4: .4byte gOtherText_OkayToDeleteFromRegistry +_080BCAE8: .4byte sub_80BCAEC + thumb_func_end sub_80BCA84 + + thumb_func_start sub_80BCAEC +sub_80BCAEC: @ 80BCAEC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r1, _080BCB0C + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BCB0C: .4byte gUnknown_083D13E4 + thumb_func_end sub_80BCAEC + + thumb_func_start sub_80BCB10 +sub_80BCB10: @ 80BCB10 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r6, r0, 3 + ldr r7, _080BCB80 + adds r4, r6, r7 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r2, _080BCB84 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + adds r0, r2 + ldr r1, _080BCB88 + adds r0, r1 + ldrb r2, [r0] + movs r1, 0x3F + ands r1, r2 + strb r1, [r0] + ldrh r0, [r4] + subs r0, 0x1 + strh r0, [r4] + ldrh r1, [r4, 0x4] + movs r2, 0x4 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080BCB5C + subs r0, r1, 0x1 + strh r0, [r4, 0x4] +_080BCB5C: + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x7 + bgt _080BCB6A + ldrh r0, [r4, 0x6] + subs r0, 0x1 + strh r0, [r4, 0x6] +_080BCB6A: + adds r0, r5, 0 + bl sub_80BC7D8 + adds r0, r7, 0 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, _080BCB8C + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BCB80: .4byte gUnknown_03004B28 +_080BCB84: .4byte gSaveBlock1 +_080BCB88: .4byte 0x00001a09 +_080BCB8C: .4byte sub_80BC824 + thumb_func_end sub_80BCB10 + + thumb_func_start sub_80BCB90 +sub_80BCB90: @ 80BCB90 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1A + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r1, _080BCBB8 + ldr r2, _080BCBBC + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BCBB8: .4byte gOtherText_RegisteredDataDeleted +_080BCBBC: .4byte sub_80BCB10 + thumb_func_end sub_80BCB90 + + thumb_func_start sub_80BCBC0 +sub_80BCBC0: @ 80BCBC0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl sub_80BC7D8 + ldr r1, _080BCBF0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BCBF4 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BCBF0: .4byte gTasks +_080BCBF4: .4byte sub_80BC824 + thumb_func_end sub_80BCBC0 + + thumb_func_start sub_80BCBF8 +sub_80BCBF8: @ 80BCBF8 + push {r4,r5,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r5, _080BCC4C + adds r0, r4, r5 + ldrb r3, [r0, 0x6] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r0, 0x2] + str r0, [sp] + movs r0, 0xB + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x12 + movs r2, 0x2 + bl InitMenu + movs r0, 0x1 + movs r1, 0 + movs r2, 0xC + movs r3, 0x5 + bl MenuZeroFillWindowRect + movs r0, 0 + bl sub_80F98DC + movs r0, 0x1 + bl sub_80F98DC + subs r5, 0x8 + adds r4, r5 + ldr r0, _080BCC50 + str r0, [r4] + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BCC4C: .4byte gUnknown_03004B28 +_080BCC50: .4byte sub_80BC824 + thumb_func_end sub_80BCBF8 + + thumb_func_start sub_80BCC54 +sub_80BCC54: @ 80BCC54 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080BCC84 + bl VarGet + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl BuyMenuFreeMemory + movs r0, 0 + bl SetBgTilemapBuffer + movs r0, 0x1 + bl SetBgTilemapBuffer + cmp r4, 0 + bne _080BCC8C + ldr r0, _080BCC88 + bl ScriptContext1_SetupScript + b _080BCC92 + .align 2, 0 +_080BCC84: .4byte 0x00004054 +_080BCC88: .4byte gUnknown_0815F399 +_080BCC8C: + ldr r0, _080BCCA0 + bl ScriptContext1_SetupScript +_080BCC92: + adds r0, r5, 0 + bl DestroyTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BCCA0: .4byte gUnknown_0815F49A + thumb_func_end sub_80BCC54 + + thumb_func_start sub_80BCCA4 +sub_80BCCA4: @ 80BCCA4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080BCCDC + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 5 + adds r4, r1 + ldr r1, _080BCCE0 + adds r0, r4, r1 + ldrb r0, [r0] + movs r1, 0x5 + bl __umodsi3 + ldr r1, _080BCCE4 + adds r4, r1 + ldrb r2, [r4] + lsls r2, 27 + lsrs r2, 31 + lsls r1, r2, 2 + adds r1, r2 + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080BCCDC: .4byte gSaveBlock1 +_080BCCE0: .4byte 0x00001a11 +_080BCCE4: .4byte 0x00001a09 + thumb_func_end sub_80BCCA4 + + thumb_func_start sub_80BCCE8 +sub_80BCCE8: @ 80BCCE8 + push {lr} + ldr r0, _080BCD08 + bl VarGet + lsls r0, 24 + lsrs r0, 24 + bl sub_80BCCA4 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0 + bne _080BCD10 + ldr r0, _080BCD0C + b _080BCD72 + .align 2, 0 +_080BCD08: .4byte 0x00004054 +_080BCD0C: .4byte UnknownString_81A1BB2 +_080BCD10: + cmp r0, 0x1 + bne _080BCD1C + ldr r0, _080BCD18 + b _080BCD72 + .align 2, 0 +_080BCD18: .4byte UnknownString_81A1F67 +_080BCD1C: + cmp r0, 0x2 + bne _080BCD28 + ldr r0, _080BCD24 + b _080BCD72 + .align 2, 0 +_080BCD24: .4byte UnknownString_81A2254 +_080BCD28: + cmp r0, 0x3 + bne _080BCD34 + ldr r0, _080BCD30 + b _080BCD72 + .align 2, 0 +_080BCD30: .4byte UnknownString_81A25C3 +_080BCD34: + cmp r0, 0x4 + bne _080BCD40 + ldr r0, _080BCD3C + b _080BCD72 + .align 2, 0 +_080BCD3C: .4byte UnknownString_81A2925 +_080BCD40: + cmp r0, 0x5 + bne _080BCD4C + ldr r0, _080BCD48 + b _080BCD72 + .align 2, 0 +_080BCD48: .4byte UnknownString_81A1D74 +_080BCD4C: + cmp r0, 0x6 + bne _080BCD58 + ldr r0, _080BCD54 + b _080BCD72 + .align 2, 0 +_080BCD54: .4byte UnknownString_81A20C9 +_080BCD58: + cmp r0, 0x7 + bne _080BCD64 + ldr r0, _080BCD60 + b _080BCD72 + .align 2, 0 +_080BCD60: .4byte UnknownString_81A2439 +_080BCD64: + cmp r1, 0x8 + beq _080BCD70 + ldr r0, _080BCD6C + b _080BCD72 + .align 2, 0 +_080BCD6C: .4byte UnknownString_81A2B2A +_080BCD70: + ldr r0, _080BCD78 +_080BCD72: + pop {r1} + bx r1 + .align 2, 0 +_080BCD78: .4byte UnknownString_81A2754 + thumb_func_end sub_80BCCE8 + + thumb_func_start unref_sub_80BCD7C +unref_sub_80BCD7C: @ 80BCD7C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + ldr r7, _080BCDFC + lsls r1, r0, 2 + adds r1, r0 + lsls r6, r1, 5 + ldr r0, _080BCE00 + adds r0, r7 + mov r10, r0 + ldr r1, _080BCE04 + adds r1, r7 + mov r9, r1 + ldr r2, _080BCE08 + adds r2, r7 + mov r8, r2 + ldr r0, _080BCE0C + mov r12, r0 +_080BCDAA: + lsls r4, r5, 2 + adds r0, r4, r6 + add r0, r10 + adds r3, r5, 0x1 + str r3, [r0] + lsls r0, r5, 3 + adds r0, r6 + add r0, r9 + strh r3, [r0] + lsls r1, r5, 1 + adds r1, r6 + mov r2, r8 + adds r0, r1, r2 + mov r2, r12 + strh r2, [r0] + ldr r2, _080BCE10 + adds r0, r7, r2 + adds r1, r0 + strh r3, [r1] + adds r2, r5, r6 + ldr r1, _080BCE14 + adds r0, r7, r1 + adds r0, r2, r0 + adds r1, r5, 0x5 + strb r1, [r0] + ldr r1, _080BCE18 + adds r0, r7, r1 + adds r2, r0 + adds r4, r5 + strb r4, [r2] + lsls r3, 16 + lsrs r5, r3, 16 + cmp r5, 0 + beq _080BCDAA + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BCDFC: .4byte gSaveBlock1 +_080BCE00: .4byte 0x00001a3c +_080BCE04: .4byte 0x00001a54 +_080BCE08: .4byte 0x00001a84 +_080BCE0C: .4byte 0x00000115 +_080BCE10: .4byte 0x00001a90 +_080BCE14: .4byte 0x00001a9c +_080BCE18: .4byte 0x00001aa2 + thumb_func_end unref_sub_80BCD7C + + thumb_func_start sub_80BCE1C +sub_80BCE1C: @ 80BCE1C + push {r4,lr} + ldr r0, _080BCE44 + bl VarGet + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + movs r0, 0x1 + bl sub_810FB10 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 5 + ldr r1, _080BCE48 + adds r0, r1 + bl CreateSecretBaseEnemyParty + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BCE44: .4byte 0x00004054 +_080BCE48: .4byte gSaveBlock1 + 0x1A08 + thumb_func_end sub_80BCE1C + + thumb_func_start sub_80BCE4C +sub_80BCE4C: @ 80BCE4C + push {lr} + ldr r0, _080BCE80 + bl VarGet + ldr r2, _080BCE84 + lsls r0, 16 + lsrs r0, 16 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, r2 + ldr r0, _080BCE88 + ldrb r0, [r0] + ldr r2, _080BCE8C + adds r1, r2 + movs r2, 0x1 + ands r2, r0 + lsls r2, 5 + ldrb r3, [r1] + movs r0, 0x21 + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080BCE80: .4byte 0x00004054 +_080BCE84: .4byte gSaveBlock1 +_080BCE88: .4byte gScriptResult +_080BCE8C: .4byte 0x00001a09 + thumb_func_end sub_80BCE4C + + thumb_func_start sub_80BCE90 +sub_80BCE90: @ 80BCE90 + push {r4-r7,lr} + ldr r0, _080BCF04 + bl VarGet + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080BCF08 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _080BCED4 + movs r3, 0 + ldr r7, _080BCF0C + ldr r4, _080BCF10 + movs r6, 0x21 + negs r6, r6 +_080BCEB2: + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 5 + adds r1, r7 + adds r1, r4 + ldrb r2, [r1] + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x13 + bls _080BCEB2 + ldr r0, _080BCF08 + bl FlagSet +_080BCED4: + ldr r4, _080BCF14 + lsls r0, r5, 24 + lsrs r0, 24 + bl sub_80BCCA4 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + ldr r2, _080BCF18 + ldr r1, _080BCF0C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 5 + adds r0, r1 + ldr r1, _080BCF10 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 31 + strh r0, [r2] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BCF04: .4byte 0x00004054 +_080BCF08: .4byte 0x000008c2 +_080BCF0C: .4byte gSaveBlock1 +_080BCF10: .4byte 0x00001a09 +_080BCF14: .4byte gUnknown_0202E8CC +_080BCF18: .4byte gScriptResult + thumb_func_end sub_80BCE90 + + thumb_func_start sub_80BCF1C +sub_80BCF1C: @ 80BCF1C + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080BCF40 + adds r4, r1, r0 + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080BCF54 + cmp r0, 0x1 + bgt _080BCF44 + cmp r0, 0 + beq _080BCF4A + b _080BD02C + .align 2, 0 +_080BCF40: .4byte gUnknown_03004B28 +_080BCF44: + cmp r0, 0x2 + beq _080BD01C + b _080BD02C +_080BCF4A: + adds r0, r4, 0x4 + adds r1, r4, 0x6 + bl PlayerGetDestCoords + b _080BD028 +_080BCF54: + mov r5, sp + adds r5, 0x2 + mov r0, sp + adds r1, r5, 0 + bl PlayerGetDestCoords + mov r0, sp + ldrh r2, [r0] + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x4 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _080BCF7C + movs r0, 0 + ldrsh r1, [r5, r0] + movs r3, 0x6 + ldrsh r0, [r4, r3] + cmp r1, r0 + beq _080BD02C +_080BCF7C: + strh r2, [r4, 0x4] + ldrh r0, [r5] + strh r0, [r4, 0x6] + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_8057350 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BCFA8 + bl sub_80C6C90 + b _080BD02C +_080BCFA8: + adds r0, r4, 0 + bl sub_8057314 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BCFD8 + mov r0, sp + movs r3, 0 + ldrsh r0, [r0, r3] + movs r2, 0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileIdAt + lsls r0, 16 + asrs r0, 16 + mov r1, sp + movs r3, 0 + ldrsh r1, [r1, r3] + movs r3, 0 + ldrsh r2, [r5, r3] + bl sub_80C68A4 + b _080BD02C +_080BCFD8: + adds r0, r4, 0 + bl sub_8057328 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BCFF6 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r5, r2] + bl sub_80C6A54 + b _080BD02C +_080BCFF6: + adds r0, r4, 0 + bl sub_805733C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BD02C + mov r0, sp + movs r3, 0 + ldrsh r0, [r0, r3] + movs r2, 0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileIdAt + lsls r0, 16 + asrs r0, 16 + bl sub_80C6C30 + b _080BD02C +_080BD01C: + ldrb r0, [r4, 0x8] + bl FieldEffectActiveListContains + lsls r0, 24 + cmp r0, 0 + bne _080BD02C +_080BD028: + movs r0, 0x1 + strh r0, [r4, 0x2] +_080BD02C: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80BCF1C + + thumb_func_start sub_80BD034 +sub_80BD034: @ 80BD034 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BD064 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 5 + adds r4, r2 + ldr r2, _080BD068 + adds r0, r4, r2 + movs r2, 0xA0 + bl memcpy + ldr r0, _080BD06C + adds r4, r0 + ldrb r1, [r4] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BD064: .4byte gSaveBlock1 +_080BD068: .4byte 0x00001a08 +_080BD06C: .4byte 0x00001a09 + thumb_func_end sub_80BD034 + + thumb_func_start sub_80BD070 +sub_80BD070: @ 80BD070 + push {r4,lr} + movs r2, 0 + adds r4, r0, 0 + adds r4, 0x9 + adds r3, r1, 0 + adds r3, 0x9 +_080BD07C: + adds r0, r4, r2 + adds r1, r3, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080BD08C + movs r0, 0 + b _080BD098 +_080BD08C: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080BD07C + movs r0, 0x1 +_080BD098: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BD070 + + thumb_func_start sub_80BD0A0 +sub_80BD0A0: @ 80BD0A0 + push {r4-r6,lr} + adds r6, r0, 0 + adds r5, r1, 0 + movs r3, 0 + ldrb r0, [r6, 0x2] + cmp r0, 0xFF + bne _080BD0B4 + ldrb r0, [r5, 0x2] + cmp r0, 0xFF + beq _080BD0E2 +_080BD0B4: + adds r2, r6, 0x2 + adds r0, r2, r3 + adds r4, r5, 0x2 + adds r1, r4, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080BD0C8 + movs r0, 0 + b _080BD0E4 +_080BD0C8: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x6 + bhi _080BD0E2 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BD0B4 + adds r0, r4, r3 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BD0B4 +_080BD0E2: + movs r0, 0x1 +_080BD0E4: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80BD0A0 + + thumb_func_start sub_80BD0EC +sub_80BD0EC: @ 80BD0EC + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldrb r2, [r4, 0x1] + movs r0, 0x10 + adds r1, r0, 0 + ands r1, r2 + ldrb r2, [r5, 0x1] + ands r0, r2 + cmp r1, r0 + bne _080BD122 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80BD070 + lsls r0, 24 + cmp r0, 0 + beq _080BD122 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80BD0A0 + lsls r0, 24 + cmp r0, 0 + beq _080BD122 + movs r0, 0x1 + b _080BD124 +_080BD122: + movs r0, 0 +_080BD124: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BD0EC + + thumb_func_start sub_80BD12C +sub_80BD12C: @ 80BD12C + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + ldr r4, _080BD150 + ldr r3, _080BD154 +_080BD138: + lsls r0, r1, 16 + asrs r1, r0, 16 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + adds r0, r4 + adds r0, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _080BD158 + adds r0, r1, 0 + b _080BD168 + .align 2, 0 +_080BD150: .4byte gSaveBlock1 +_080BD154: .4byte 0x00001a08 +_080BD158: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080BD138 + movs r0, 0x1 + negs r0, r0 +_080BD168: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BD12C + + thumb_func_start sub_80BD170 +sub_80BD170: @ 80BD170 + push {r4,lr} + movs r2, 0x1 + ldr r4, _080BD194 + ldr r3, _080BD198 +_080BD178: + lsls r0, r2, 16 + asrs r1, r0, 16 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + adds r0, r4 + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _080BD19C + lsls r0, r2, 24 + lsrs r0, 24 + b _080BD1AA + .align 2, 0 +_080BD194: .4byte gSaveBlock1 +_080BD198: .4byte 0x00001a08 +_080BD19C: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080BD178 + movs r0, 0 +_080BD1AA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BD170 + + thumb_func_start sub_80BD1B0 +sub_80BD1B0: @ 80BD1B0 + push {r4,lr} + movs r3, 0x1 + ldr r4, _080BD1DC +_080BD1B6: + lsls r2, r3, 16 + asrs r1, r2, 16 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + adds r0, r4 + ldr r1, _080BD1E0 + adds r0, r1 + ldrb r1, [r0] + lsrs r0, r1, 6 + cmp r0, 0 + bne _080BD1E4 + lsls r0, r1, 28 + cmp r0, 0 + bne _080BD1E4 + lsls r0, r3, 24 + lsrs r0, 24 + b _080BD1F4 + .align 2, 0 +_080BD1DC: .4byte gSaveBlock1 +_080BD1E0: .4byte 0x00001a09 +_080BD1E4: + movs r1, 0x80 + lsls r1, 9 + adds r0, r2, r1 + lsrs r3, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080BD1B6 + movs r0, 0 +_080BD1F4: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BD1B0 + + thumb_func_start sub_80BD1FC +sub_80BD1FC: @ 80BD1FC + push {r4,r5,lr} + adds r5, r0, 0 + ldrb r0, [r5] + cmp r0, 0 + beq _080BD278 + ldrb r0, [r5] + bl sub_80BD12C + lsls r0, 16 + lsrs r4, r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + beq _080BD278 + movs r0, 0x1 + negs r0, r0 + cmp r2, r0 + beq _080BD254 + ldr r0, _080BD24C + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 5 + adds r1, r0 + ldr r0, _080BD250 + adds r1, r0 + ldrb r1, [r1] + lsls r0, r1, 28 + lsrs r0, 28 + cmp r0, 0x1 + beq _080BD278 + lsrs r0, r1, 6 + cmp r0, 0x2 + bne _080BD246 + ldrb r1, [r5, 0x1] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x1 + bne _080BD278 +_080BD246: + lsls r4, 24 + lsrs r4, 24 + b _080BD26C + .align 2, 0 +_080BD24C: .4byte gSaveBlock1 +_080BD250: .4byte 0x00001a09 +_080BD254: + bl sub_80BD170 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080BD26C + bl sub_80BD1B0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080BD278 +_080BD26C: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80BD034 + adds r0, r4, 0 + b _080BD27A +_080BD278: + movs r0, 0 +_080BD27A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BD1FC + + thumb_func_start sub_80BD280 +sub_80BD280: @ 80BD280 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xA0 + ldr r0, _080BD324 + mov r8, r0 + movs r2, 0x1 +_080BD290: + adds r1, r2, 0x1 + lsls r0, r1, 24 + lsrs r5, r0, 24 + mov r9, r1 + cmp r5, 0x13 + bhi _080BD30C + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 5 + mov r1, r8 + adds r6, r0, r1 + movs r7, 0xC0 +_080BD2A8: + ldrb r0, [r6, 0x1] + adds r3, r7, 0 + ands r3, r0 + cmp r3, 0 + bne _080BD2C6 + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 5 + add r0, r8 + ldrb r1, [r0, 0x1] + adds r0, r7, 0 + ands r0, r1 + adds r4, r2, 0 + cmp r0, 0x40 + beq _080BD2DE +_080BD2C6: + cmp r3, 0x80 + bne _080BD302 + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 5 + add r0, r8 + ldrb r1, [r0, 0x1] + adds r0, r7, 0 + ands r0, r1 + adds r4, r2, 0 + cmp r0, 0x80 + beq _080BD302 +_080BD2DE: + mov r0, sp + adds r1, r6, 0 + movs r2, 0xA0 + bl memcpy + adds r4, r5 + lsls r4, 5 + add r4, r8 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0xA0 + bl memcpy + adds r0, r4, 0 + mov r1, sp + movs r2, 0xA0 + bl memcpy +_080BD302: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BD2A8 +_080BD30C: + mov r1, r9 + lsls r0, r1, 24 + lsrs r2, r0, 24 + cmp r2, 0x12 + bls _080BD290 + add sp, 0xA0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BD324: .4byte gSaveBlock1 + 0x1A08 + thumb_func_end sub_80BD280 + + thumb_func_start sub_80BD328 +sub_80BD328: @ 80BD328 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + movs r4, 0x1 +_080BD332: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 5 + adds r1, r0, r6 + ldrb r0, [r1, 0x1] + lsrs r0, 6 + cmp r0, r5 + bne _080BD348 + adds r0, r1, 0 + bl sub_80BD1FC +_080BD348: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x13 + bls _080BD332 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BD328 + + thumb_func_start sub_80BD358 +sub_80BD358: @ 80BD358 + push {r4-r6,lr} + adds r5, r0, 0 + ldrb r0, [r5] + cmp r0, 0 + beq _080BD372 + ldrb r0, [r5, 0x1] + lsls r0, 27 + ldr r1, _080BD378 + lsrs r0, 31 + adds r4, r1, 0 + ldrb r1, [r4, 0x8] + cmp r0, r1 + beq _080BD37C +_080BD372: + movs r0, 0 + b _080BD3D4 + .align 2, 0 +_080BD378: .4byte gSaveBlock2 +_080BD37C: + movs r2, 0 + adds r3, r5, 0 + adds r3, 0x9 + adds r6, r4, 0 + adds r6, 0xA +_080BD386: + adds r0, r3, r2 + adds r1, r2, r6 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _080BD372 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080BD386 + movs r2, 0 + ldrb r0, [r5, 0x2] + cmp r0, 0xFF + bne _080BD3AA + ldrb r0, [r4] + cmp r0, 0xFF + beq _080BD3D2 +_080BD3AA: + adds r3, r5, 0x2 + adds r0, r3, r2 + adds r1, r2, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _080BD372 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x6 + bhi _080BD3D2 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BD3AA + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BD3AA +_080BD3D2: + movs r0, 0x1 +_080BD3D4: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80BD358 + + thumb_func_start sub_80BD3DC +sub_80BD3DC: @ 80BD3DC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r10, r0 + mov r9, r1 + mov r8, r2 + movs r5, 0 + movs r6, 0 +_080BD3F0: + movs r0, 0x1 + ands r0, r5 + cmp r0, 0 + bne _080BD41A + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 5 + mov r1, r10 + adds r4, r1, r0 + adds r0, r4, 0 + bl sub_80BD358 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BD41A + adds r0, r4, 0 + bl sub_80BB4AC + movs r0, 0x1 + orrs r5, r0 +_080BD41A: + movs r7, 0x2 + movs r0, 0x2 + ands r0, r5 + cmp r0, 0 + bne _080BD448 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 5 + mov r1, r9 + adds r4, r1, r0 + adds r0, r4, 0 + bl sub_80BD358 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BD448 + adds r0, r4, 0 + bl sub_80BB4AC + orrs r5, r7 + lsls r0, r5, 24 + lsrs r5, r0, 24 +_080BD448: + movs r7, 0x4 + movs r0, 0x4 + ands r0, r5 + cmp r0, 0 + bne _080BD476 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 5 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + bl sub_80BD358 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BD476 + adds r0, r4, 0 + bl sub_80BB4AC + orrs r5, r7 + lsls r0, r5, 24 + lsrs r5, r0, 24 +_080BD476: + cmp r5, 0x7 + beq _080BD484 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x13 + bls _080BD3F0 +_080BD484: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BD3DC + + thumb_func_start sub_80BD494 +sub_80BD494: @ 80BD494 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + mov r8, r1 + lsls r2, 24 + lsrs r7, r2, 24 + movs r5, 0 +_080BD4A4: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 5 + mov r1, r8 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + beq _080BD4FE + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_80BD0EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BD4FE + cmp r7, 0 + bne _080BD4D0 + adds r0, r4, 0 + bl sub_80BB4AC + b _080BD508 +_080BD4D0: + ldrh r0, [r6, 0xE] + ldrh r3, [r4, 0xE] + cmp r0, r3 + bls _080BD4E0 + adds r0, r4, 0 + bl sub_80BB4AC + b _080BD508 +_080BD4E0: + ldrb r0, [r6, 0x1] + lsls r0, 28 + lsrs r0, 28 + ldrb r1, [r4, 0x1] + movs r3, 0x10 + negs r3, r3 + adds r2, r3, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x1] + adds r0, r6, 0 + bl sub_80BB4AC + movs r0, 0x1 + b _080BD50A +_080BD4FE: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BD4A4 +_080BD508: + movs r0, 0 +_080BD50A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80BD494 + + thumb_func_start sub_80BD514 +sub_80BD514: @ 80BD514 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r9, r0 + adds r7, r1, 0 + mov r8, r2 + adds r6, r3, 0 + movs r5, 0x1 +_080BD526: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 5 + mov r1, r9 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + beq _080BD578 + ldrb r1, [r4, 0x1] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0x40 + bne _080BD54E + movs r2, 0x10 + negs r2, r2 + adds r0, r2, 0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] +_080BD54E: + adds r0, r4, 0 + adds r1, r7, 0 + adds r2, r5, 0 + bl sub_80BD494 + lsls r0, 24 + cmp r0, 0 + bne _080BD578 + adds r0, r4, 0 + mov r1, r8 + adds r2, r5, 0 + bl sub_80BD494 + lsls r0, 24 + cmp r0, 0 + bne _080BD578 + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80BD494 +_080BD578: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BD526 + movs r5, 0 +_080BD584: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 5 + adds r4, r0, r7 + ldrb r0, [r4] + cmp r0, 0 + beq _080BD5B8 + ldrb r0, [r4, 0x1] + movs r2, 0x21 + negs r2, r2 + adds r1, r2, 0 + ands r0, r1 + strb r0, [r4, 0x1] + adds r0, r4, 0 + mov r1, r8 + adds r2, r5, 0 + bl sub_80BD494 + lsls r0, 24 + cmp r0, 0 + bne _080BD5B8 + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80BD494 +_080BD5B8: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BD584 + movs r5, 0 + movs r0, 0x21 + negs r0, r0 + adds r7, r0, 0 +_080BD5CA: + lsls r0, r5, 2 + adds r0, r5 + lsls r4, r0, 5 + mov r2, r8 + adds r1, r4, r2 + ldrb r0, [r1] + cmp r0, 0 + beq _080BD5EA + ldrb r0, [r1, 0x1] + ands r0, r7 + strb r0, [r1, 0x1] + adds r0, r1, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80BD494 +_080BD5EA: + adds r1, r4, r6 + ldrb r0, [r1] + cmp r0, 0 + beq _080BD5F8 + ldrb r0, [r1, 0x1] + ands r0, r7 + strb r0, [r1, 0x1] +_080BD5F8: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BD5CA + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BD514 + + thumb_func_start sub_80BD610 +sub_80BD610: @ 80BD610 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + bl sub_80BD3DC + ldr r0, _080BD670 + adds r1, r4, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_80BD514 + adds r0, r4, 0 + bl sub_80BD1FC + adds r0, r5, 0 + bl sub_80BD1FC + adds r0, r6, 0 + bl sub_80BD1FC + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80BD328 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80BD328 + adds r0, r6, 0 + movs r1, 0x1 + bl sub_80BD328 + adds r0, r4, 0 + movs r1, 0 + bl sub_80BD328 + adds r0, r5, 0 + movs r1, 0 + bl sub_80BD328 + adds r0, r6, 0 + movs r1, 0 + bl sub_80BD328 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BD670: .4byte gSaveBlock1 + 0x1A08 + thumb_func_end sub_80BD610 + + thumb_func_start sub_80BD674 +sub_80BD674: @ 80BD674 + push {r4-r7,lr} + adds r6, r0, 0 + adds r5, r1, 0 + lsls r2, 24 + lsrs r7, r2, 24 + movs r0, 0x60 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _080BD68C + b _080BD790 +_080BD68C: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _080BD69E + cmp r0, 0x3 + beq _080BD6BA + b _080BD6C8 +_080BD69E: + lsls r4, r5, 1 + adds r0, r6, r4 + movs r1, 0 + adds r2, r5, 0 + bl memset + adds r4, r5 + adds r4, r6, r4 + adds r0, r4, 0 + movs r1, 0 + adds r2, r5, 0 + bl memset + b _080BD6C8 +_080BD6BA: + lsls r0, r5, 1 + adds r0, r5 + adds r0, r6, r0 + movs r1, 0 + adds r2, r5, 0 + bl memset +_080BD6C8: + cmp r7, 0x1 + beq _080BD6F0 + cmp r7, 0x1 + bgt _080BD6D6 + cmp r7, 0 + beq _080BD6E0 + b _080BD71C +_080BD6D6: + cmp r7, 0x2 + beq _080BD700 + cmp r7, 0x3 + beq _080BD710 + b _080BD71C +_080BD6E0: + adds r0, r6, r5 + lsls r2, r5, 1 + adds r1, r6, r2 + adds r2, r5 + adds r2, r6, r2 + bl sub_80BD610 + b _080BD71C +_080BD6F0: + lsls r1, r5, 1 + adds r0, r6, r1 + adds r1, r5 + adds r1, r6, r1 + adds r2, r6, 0 + bl sub_80BD610 + b _080BD71C +_080BD700: + lsls r0, r5, 1 + adds r0, r5 + adds r0, r6, r0 + adds r2, r6, r5 + adds r1, r6, 0 + bl sub_80BD610 + b _080BD71C +_080BD710: + adds r1, r6, r5 + lsls r2, r5, 1 + adds r2, r6, r2 + adds r0, r6, 0 + bl sub_80BD610 +_080BD71C: + movs r3, 0x1 + ldr r6, _080BD798 + movs r5, 0x10 + negs r5, r5 + ldr r4, _080BD79C +_080BD726: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 5 + adds r0, r6 + adds r2, r0, r4 + ldrb r1, [r2] + lsls r0, r1, 28 + lsrs r0, 28 + cmp r0, 0x1 + bne _080BD746 + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + ands r0, r5 + strb r0, [r2] +_080BD746: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x13 + bls _080BD726 + bl sub_80BD280 + movs r3, 0x1 + ldr r4, _080BD798 + ldr r6, _080BD79C + adds r7, r4, 0 + movs r5, 0x3F +_080BD75E: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 5 + adds r0, r4 + adds r2, r0, r6 + ldrb r1, [r2] + lsrs r0, r1, 6 + cmp r0, 0x2 + bne _080BD776 + adds r0, r5, 0 + ands r0, r1 + strb r0, [r2] +_080BD776: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x13 + bls _080BD75E + ldr r0, _080BD7A0 + adds r2, r7, r0 + ldrh r1, [r2] + ldr r0, _080BD7A4 + cmp r1, r0 + beq _080BD790 + adds r0, r1, 0x1 + strh r0, [r2] +_080BD790: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BD798: .4byte gSaveBlock1 +_080BD79C: .4byte 0x00001a09 +_080BD7A0: .4byte 0x00001a16 +_080BD7A4: .4byte 0x0000ffff + thumb_func_end sub_80BD674 + + thumb_func_start sub_80BD7A8 +sub_80BD7A8: @ 80BD7A8 + push {r4-r7,lr} + movs r3, 0 + ldr r6, _080BD7F0 + movs r4, 0 + ldr r0, _080BD7F4 + adds r5, r6, r0 +_080BD7B4: + lsls r2, r3, 3 + adds r2, r3 + lsls r2, 2 + adds r1, r2, r6 + ldr r7, _080BD7F8 + adds r0, r1, r7 + strb r4, [r0] + ldr r0, _080BD7FC + adds r1, r0 + strb r4, [r1] + movs r1, 0 + adds r3, 0x1 +_080BD7CC: + adds r0, r1, r2 + adds r0, r5 + strb r4, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x21 + bls _080BD7CC + lsls r0, r3, 24 + lsrs r3, r0, 24 + cmp r3, 0x18 + bls _080BD7B4 + bl sub_80BEBF4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BD7F0: .4byte gSaveBlock1 +_080BD7F4: .4byte 0x0000273a +_080BD7F8: .4byte 0x00002738 +_080BD7FC: .4byte 0x00002739 + thumb_func_end sub_80BD7A8 + + thumb_func_start special_0x44 +special_0x44: @ 80BD800 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r4, 0x5 + ldr r1, _080BD874 + ldr r2, _080BD878 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080BD834 + adds r2, r1, 0 + ldr r1, _080BD87C +_080BD81A: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x17 + bhi _080BD834 + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 2 + adds r0, r2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080BD81A +_080BD834: + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 24 + lsrs r4, r0, 24 + mov r8, r4 + ldr r7, _080BD874 + ldr r0, _080BD87C + adds r0, r7 + mov r9, r0 +_080BD850: + lsls r0, r4, 3 + adds r0, r4 + lsls r6, r0, 2 + adds r5, r6, r7 + ldr r1, _080BD87C + adds r0, r5, r1 + ldrb r0, [r0] + bl sub_80BFB54 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + beq _080BD884 + ldr r2, _080BD880 + adds r0, r5, r2 + ldrb r0, [r0] + b _080BD890 + .align 2, 0 +_080BD874: .4byte gSaveBlock1 +_080BD878: .4byte 0x000027ec +_080BD87C: .4byte 0x00002738 +_080BD880: .4byte 0x00002739 +_080BD884: + mov r0, r9 + adds r1, r6, r0 + ldrh r0, [r1, 0x16] + cmp r0, 0 + bne _080BD898 + ldrb r0, [r1, 0x1] +_080BD890: + cmp r0, 0x1 + bne _080BD898 + adds r0, r4, 0 + b _080BD8AC +_080BD898: + cmp r4, 0 + bne _080BD8A0 + movs r4, 0x17 + b _080BD8A6 +_080BD8A0: + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080BD8A6: + cmp r4, r8 + bne _080BD850 + movs r0, 0xFF +_080BD8AC: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end special_0x44 + + thumb_func_start sub_80BD8B8 +sub_80BD8B8: @ 80BD8B8 + push {lr} + bl special_0x44 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xFF + bne _080BD8CA + movs r0, 0xFF + b _080BD902 +_080BD8CA: + ldr r2, _080BD8F4 + ldr r3, _080BD8F8 + adds r0, r2, r3 + ldrh r0, [r0] + cmp r0, 0 + beq _080BD900 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r2, _080BD8FC + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x29 + bne _080BD900 + bl sub_80BDA30 + lsls r0, 24 + lsrs r0, 24 + b _080BD902 + .align 2, 0 +_080BD8F4: .4byte gSaveBlock1 +_080BD8F8: .4byte 0x00002afc +_080BD8FC: .4byte 0x00002738 +_080BD900: + adds r0, r1, 0 +_080BD902: + pop {r1} + bx r1 + thumb_func_end sub_80BD8B8 + + thumb_func_start UpdateTVScreensOnMap +UpdateTVScreensOnMap: @ 80BD908 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldr r0, _080BD938 + bl FlagSet + bl CheckForBigMovieOrEmergencyNewsOnTV + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BD92C + cmp r0, 0x2 + beq _080BD97E + ldr r0, _080BD93C + ldrh r0, [r0, 0x4] + cmp r0, 0xD + bne _080BD940 +_080BD92C: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x3 + bl SetTVMetatilesOnMap + b _080BD97E + .align 2, 0 +_080BD938: .4byte 0x00000831 +_080BD93C: .4byte gSaveBlock1 +_080BD940: + ldr r0, _080BD984 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080BD97E + bl sub_80BD8B8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _080BD96E + bl sub_80BECA0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _080BD96E + bl IsTVShowInSearchOfTrainersAiring + lsls r0, 24 + cmp r0, 0 + beq _080BD97E +_080BD96E: + ldr r0, _080BD988 + bl FlagReset + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x3 + bl SetTVMetatilesOnMap +_080BD97E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BD984: .4byte 0x00000832 +_080BD988: .4byte 0x00000831 + thumb_func_end UpdateTVScreensOnMap + + thumb_func_start SetTVMetatilesOnMap +SetTVMetatilesOnMap: @ 80BD98C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r9, r0 + mov r10, r1 + lsls r2, 16 + lsrs r2, 16 + movs r5, 0 + cmp r5, r10 + bge _080BD9E0 + movs r1, 0xC0 + lsls r1, 4 + adds r0, r1, 0 + mov r8, r2 + mov r1, r8 + orrs r1, r0 + mov r8, r1 +_080BD9B2: + movs r4, 0 + adds r7, r5, 0x1 + cmp r4, r9 + bge _080BD9DA + mov r0, r8 + lsls r6, r0, 16 +_080BD9BE: + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetMetatileBehaviorAt + cmp r0, 0x86 + bne _080BD9D4 + adds r0, r4, 0 + adds r1, r5, 0 + lsrs r2, r6, 16 + bl MapGridSetMetatileIdAt +_080BD9D4: + adds r4, 0x1 + cmp r4, r9 + blt _080BD9BE +_080BD9DA: + adds r5, r7, 0 + cmp r5, r10 + blt _080BD9B2 +_080BD9E0: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end SetTVMetatilesOnMap + + thumb_func_start TurnOffTVScreen +TurnOffTVScreen: @ 80BD9F0 + push {lr} + ldr r1, _080BDA08 + ldr r0, [r1] + ldr r1, [r1, 0x4] + movs r2, 0x2 + bl SetTVMetatilesOnMap + bl DrawWholeMapView + pop {r0} + bx r0 + .align 2, 0 +_080BDA08: .4byte gUnknown_03004870 + thumb_func_end TurnOffTVScreen + + thumb_func_start sub_80BDA0C +sub_80BDA0C: @ 80BDA0C + ldr r2, _080BDA24 + ldr r0, _080BDA28 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _080BDA2C + adds r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080BDA24: .4byte gSaveBlock1 +_080BDA28: .4byte gUnknown_0202E8CC +_080BDA2C: .4byte 0x00002738 + thumb_func_end sub_80BDA0C + + thumb_func_start sub_80BDA30 +sub_80BDA30: @ 80BDA30 + push {r4,lr} + movs r2, 0 + ldr r3, _080BDA5C +_080BDA36: + lsls r0, r2, 3 + adds r0, r2 + lsls r0, 2 + adds r1, r0, r3 + ldr r4, _080BDA60 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _080BDA64 + cmp r0, 0x29 + beq _080BDA64 + adds r4, 0x1 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080BDA64 + adds r0, r2, 0 + b _080BDA70 + .align 2, 0 +_080BDA5C: .4byte gSaveBlock1 +_080BDA60: .4byte 0x00002738 +_080BDA64: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x17 + bls _080BDA36 + movs r0, 0xFF +_080BDA70: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BDA30 + + thumb_func_start special_0x4a +special_0x4a: @ 80BDA78 + push {lr} + ldr r2, _080BDAA4 + ldrh r1, [r2] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BDAA8 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x29 + bne _080BDAAC + movs r3, 0xF1 + lsls r3, 2 + adds r0, r1, r3 + ldrh r0, [r0] + cmp r0, 0 + beq _080BDAAC + bl sub_80BDA30 + lsls r0, 24 + lsrs r0, 24 + b _080BDAAE + .align 2, 0 +_080BDAA4: .4byte gUnknown_0202E8CC +_080BDAA8: .4byte gSaveBlock1 + 0x2738 +_080BDAAC: + ldrb r0, [r2] +_080BDAAE: + pop {r1} + bx r1 + thumb_func_end special_0x4a + + thumb_func_start sub_80BDAB4 +sub_80BDAB4: @ 80BDAB4 + push {r4,lr} + ldr r2, _080BDAF8 + ldr r1, _080BDAFC + adds r0, r2, r1 + movs r3, 0 + movs r1, 0 + strh r1, [r0] + ldr r4, _080BDB00 + adds r0, r2, r4 + strh r1, [r0] + adds r4, 0x2 + adds r0, r2, r4 + strh r1, [r0] + ldr r0, _080BDB04 + adds r1, r2, r0 + ldr r0, _080BDB08 + strh r0, [r1] + adds r4, 0x6 + adds r1, r2, r4 + movs r0, 0 + strb r0, [r1] + ldr r0, _080BDB0C + adds r1, r2, r0 + movs r0, 0 + strb r0, [r1] + ldr r1, _080BDB10 + adds r0, r2, r1 + strb r3, [r0] + subs r4, 0x1 + adds r2, r4 + strb r3, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BDAF8: .4byte gSaveBlock1 +_080BDAFC: .4byte 0x00002b10 +_080BDB00: .4byte 0x00002b12 +_080BDB04: .4byte 0x00002b16 +_080BDB08: .4byte 0x0000ffff +_080BDB0C: .4byte 0x00002b1b +_080BDB10: .4byte 0x00002b18 + thumb_func_end sub_80BDAB4 + + thumb_func_start GabbyAndTyBeforeInterview +GabbyAndTyBeforeInterview: @ 80BDB14 + push {r4,r5,lr} + ldr r2, _080BDB68 + ldr r3, _080BDB6C + ldrh r1, [r3, 0x6] + ldr r4, _080BDB70 + adds r0, r2, r4 + strh r1, [r0] + ldrh r1, [r3, 0x26] + adds r4, 0x2 + adds r0, r2, r4 + strh r1, [r0] + ldrh r1, [r3, 0x22] + adds r4, 0x2 + adds r0, r2, r4 + strh r1, [r0] + ldr r0, _080BDB74 + adds r4, r2, r0 + ldrb r1, [r4] + adds r0, r1, 0 + adds r5, r2, 0 + cmp r0, 0xFF + beq _080BDB44 + adds r0, r1, 0x1 + strb r0, [r4] +_080BDB44: + ldrb r0, [r3, 0x5] + lsls r0, 31 + ldr r1, _080BDB78 + adds r4, r5, r1 + lsrs r0, 31 + ldrb r1, [r4] + movs r2, 0x2 + negs r2, r2 + ands r2, r1 + orrs r2, r0 + strb r2, [r4] + ldrb r0, [r3] + cmp r0, 0 + beq _080BDB7C + movs r0, 0x2 + orrs r2, r0 + b _080BDB82 + .align 2, 0 +_080BDB68: .4byte gSaveBlock1 +_080BDB6C: .4byte gUnknown_030042E0 +_080BDB70: .4byte 0x00002b10 +_080BDB74: .4byte 0x00002b19 +_080BDB78: .4byte 0x00002b1a +_080BDB7C: + movs r0, 0x3 + negs r0, r0 + ands r2, r0 +_080BDB82: + strb r2, [r4] + ldrb r0, [r3, 0x3] + cmp r0, 0 + beq _080BDB9C + ldr r4, _080BDB98 + adds r0, r5, r4 + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _080BDBAA + .align 2, 0 +_080BDB98: .4byte 0x00002b1a +_080BDB9C: + ldr r0, _080BDBDC + adds r2, r5, r0 + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080BDBAA: + ldrb r1, [r3, 0x5] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _080BDBE0 + movs r1, 0 + adds r0, r3, 0 + adds r0, 0x36 + ldrb r0, [r0] + cmp r0, 0 + bne _080BDBE0 +_080BDBC0: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xA + bhi _080BDBEC + adds r0, r3, 0 + adds r0, 0x36 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0 + beq _080BDBC0 + ldr r4, _080BDBDC + adds r0, r5, r4 + b _080BDBE4 + .align 2, 0 +_080BDBDC: .4byte 0x00002b1a +_080BDBE0: + ldr r1, _080BDC08 + adds r0, r5, r1 +_080BDBE4: + ldrb r1, [r0] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0] +_080BDBEC: + bl TakeTVShowInSearchOfTrainersOffTheAir + ldr r0, _080BDC0C + ldr r4, _080BDC10 + adds r0, r4 + ldrh r0, [r0] + cmp r0, 0 + bne _080BDC02 + movs r0, 0x1 + bl FlagSet +_080BDC02: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BDC08: .4byte 0x00002b1a +_080BDC0C: .4byte gSaveBlock1 +_080BDC10: .4byte 0x00002b14 + thumb_func_end GabbyAndTyBeforeInterview + + thumb_func_start sub_80BDC14 +sub_80BDC14: @ 80BDC14 + push {r4-r6,lr} + ldr r4, _080BDC70 + ldr r0, _080BDC74 + adds r6, r4, r0 + ldrb r3, [r6] + lsls r1, r3, 31 + adds r0, 0x1 + adds r5, r4, r0 + lsrs r1, 31 + ldrb r2, [r5] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + movs r1, 0x2 + ands r1, r3 + movs r2, 0x3 + negs r2, r2 + ands r0, r2 + orrs r0, r1 + movs r1, 0x4 + ands r1, r3 + subs r2, 0x2 + ands r0, r2 + orrs r0, r1 + movs r1, 0x8 + ands r1, r3 + subs r2, 0x4 + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + movs r0, 0x10 + orrs r3, r0 + strb r3, [r6] + ldr r0, _080BDC78 + ldrb r0, [r0, 0x14] + ldr r1, _080BDC7C + adds r4, r1 + strb r0, [r4] + movs r0, 0x6 + bl sav12_xor_increment + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BDC70: .4byte gSaveBlock1 +_080BDC74: .4byte 0x00002b1a +_080BDC78: .4byte gMapHeader +_080BDC7C: .4byte 0x00002b18 + thumb_func_end sub_80BDC14 + + thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir +TakeTVShowInSearchOfTrainersOffTheAir: @ 80BDC80 + ldr r0, _080BDC94 + ldr r1, _080BDC98 + adds r0, r1 + ldrb r2, [r0] + movs r1, 0x11 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 +_080BDC94: .4byte gSaveBlock1 +_080BDC98: .4byte 0x00002b1a + thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir + + thumb_func_start GabbyAndTyGetBattleNum +GabbyAndTyGetBattleNum: @ 80BDC9C + push {lr} + ldr r0, _080BDCBC + ldr r2, _080BDCC0 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0x5 + bls _080BDCB8 + ldrb r0, [r1] + movs r1, 0x3 + bl __umodsi3 + adds r0, 0x6 + lsls r0, 24 + lsrs r0, 24 +_080BDCB8: + pop {r1} + bx r1 + .align 2, 0 +_080BDCBC: .4byte gSaveBlock1 +_080BDCC0: .4byte 0x00002b19 + thumb_func_end GabbyAndTyGetBattleNum + + thumb_func_start IsTVShowInSearchOfTrainersAiring +IsTVShowInSearchOfTrainersAiring: @ 80BDCC4 + ldr r0, _080BDCD4 + ldr r1, _080BDCD8 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 27 + lsrs r0, 31 + bx lr + .align 2, 0 +_080BDCD4: .4byte gSaveBlock1 +_080BDCD8: .4byte 0x00002b1a + thumb_func_end IsTVShowInSearchOfTrainersAiring + + thumb_func_start GabbyAndTyGetLastQuote +GabbyAndTyGetLastQuote: @ 80BDCDC + push {r4,r5,lr} + ldr r0, _080BDD00 + ldr r1, _080BDD04 + adds r4, r0, r1 + ldrh r0, [r4] + ldr r5, _080BDD08 + cmp r0, r5 + beq _080BDD10 + ldr r0, _080BDD0C + ldrh r1, [r4] + bl sub_80EB3FC + ldrh r1, [r4] + adds r0, r5, 0 + orrs r0, r1 + strh r0, [r4] + movs r0, 0x1 + b _080BDD12 + .align 2, 0 +_080BDD00: .4byte gSaveBlock1 +_080BDD04: .4byte 0x00002b16 +_080BDD08: .4byte 0x0000ffff +_080BDD0C: .4byte gStringVar1 +_080BDD10: + movs r0, 0 +_080BDD12: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end GabbyAndTyGetLastQuote + + thumb_func_start sub_80BDD18 +sub_80BDD18: @ 80BDD18 + push {lr} + ldr r0, _080BDD30 + ldr r1, _080BDD34 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080BDD38 + movs r0, 0x1 + b _080BDD5E + .align 2, 0 +_080BDD30: .4byte gSaveBlock1 +_080BDD34: .4byte 0x00002b1b +_080BDD38: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080BDD44 + movs r0, 0x2 + b _080BDD5E +_080BDD44: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080BDD50 + movs r0, 0x3 + b _080BDD5E +_080BDD50: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _080BDD5C + movs r0, 0 + b _080BDD5E +_080BDD5C: + movs r0, 0x4 +_080BDD5E: + pop {r1} + bx r1 + thumb_func_end sub_80BDD18 + + thumb_func_start GabbyAndTySetScriptVarsToFieldObjectLocalIds +GabbyAndTySetScriptVarsToFieldObjectLocalIds: @ 80BDD64 + push {lr} + bl GabbyAndTyGetBattleNum + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + cmp r0, 0x7 + bhi _080BDE3C + lsls r0, 2 + ldr r1, _080BDD80 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BDD80: .4byte _080BDD84 + .align 2, 0 +_080BDD84: + .4byte _080BDDA4 + .4byte _080BDDB8 + .4byte _080BDDCC + .4byte _080BDDE0 + .4byte _080BDDF4 + .4byte _080BDE08 + .4byte _080BDE1C + .4byte _080BDE30 +_080BDDA4: + ldr r1, _080BDDB0 + movs r0, 0xE + strh r0, [r1] + ldr r1, _080BDDB4 + movs r0, 0xD + b _080BDE3A + .align 2, 0 +_080BDDB0: .4byte gUnknown_0202E8CC +_080BDDB4: .4byte gUnknown_0202E8CE +_080BDDB8: + ldr r1, _080BDDC4 + movs r0, 0x5 + strh r0, [r1] + ldr r1, _080BDDC8 + movs r0, 0x6 + b _080BDE3A + .align 2, 0 +_080BDDC4: .4byte gUnknown_0202E8CC +_080BDDC8: .4byte gUnknown_0202E8CE +_080BDDCC: + ldr r1, _080BDDD8 + movs r0, 0x12 + strh r0, [r1] + ldr r1, _080BDDDC + movs r0, 0x11 + b _080BDE3A + .align 2, 0 +_080BDDD8: .4byte gUnknown_0202E8CC +_080BDDDC: .4byte gUnknown_0202E8CE +_080BDDE0: + ldr r1, _080BDDEC + movs r0, 0x15 + strh r0, [r1] + ldr r1, _080BDDF0 + movs r0, 0x16 + b _080BDE3A + .align 2, 0 +_080BDDEC: .4byte gUnknown_0202E8CC +_080BDDF0: .4byte gUnknown_0202E8CE +_080BDDF4: + ldr r1, _080BDE00 + movs r0, 0x8 + strh r0, [r1] + ldr r1, _080BDE04 + movs r0, 0x9 + b _080BDE3A + .align 2, 0 +_080BDE00: .4byte gUnknown_0202E8CC +_080BDE04: .4byte gUnknown_0202E8CE +_080BDE08: + ldr r1, _080BDE14 + movs r0, 0x13 + strh r0, [r1] + ldr r1, _080BDE18 + movs r0, 0x14 + b _080BDE3A + .align 2, 0 +_080BDE14: .4byte gUnknown_0202E8CC +_080BDE18: .4byte gUnknown_0202E8CE +_080BDE1C: + ldr r1, _080BDE28 + movs r0, 0x17 + strh r0, [r1] + ldr r1, _080BDE2C + movs r0, 0x18 + b _080BDE3A + .align 2, 0 +_080BDE28: .4byte gUnknown_0202E8CC +_080BDE2C: .4byte gUnknown_0202E8CE +_080BDE30: + ldr r1, _080BDE40 + movs r0, 0xA + strh r0, [r1] + ldr r1, _080BDE44 + movs r0, 0xB +_080BDE3A: + strh r0, [r1] +_080BDE3C: + pop {r0} + bx r0 + .align 2, 0 +_080BDE40: .4byte gUnknown_0202E8CC +_080BDE44: .4byte gUnknown_0202E8CE + thumb_func_end GabbyAndTySetScriptVarsToFieldObjectLocalIds + + thumb_func_start sub_80BDE48 +sub_80BDE48: @ 80BDE48 + push {lr} + ldr r0, _080BDE60 + ldrh r0, [r0] + subs r0, 0x1 + cmp r0, 0x6 + bhi _080BDEA6 + lsls r0, 2 + ldr r1, _080BDE64 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BDE60: .4byte gUnknown_0202E8CE +_080BDE64: .4byte _080BDE68 + .align 2, 0 +_080BDE68: + .4byte _080BDE84 + .4byte _080BDE8A + .4byte _080BDE90 + .4byte _080BDE96 + .4byte _080BDEA6 + .4byte _080BDE9C + .4byte _080BDEA2 +_080BDE84: + bl sub_80BE5FC + b _080BDEA6 +_080BDE8A: + bl sub_80BE65C + b _080BDEA6 +_080BDE90: + bl sub_80BE6A0 + b _080BDEA6 +_080BDE96: + bl nullsub_21 + b _080BDEA6 +_080BDE9C: + bl sub_80BE188 + b _080BDEA6 +_080BDEA2: + bl sub_80BE320 +_080BDEA6: + pop {r0} + bx r0 + thumb_func_end sub_80BDE48 + + thumb_func_start sub_80BDEAC +sub_80BDEAC: @ 80BDEAC + push {lr} + adds r1, r0, 0 + movs r2, 0x2 + ldrb r0, [r1] + cmp r0, 0xFC + bne _080BDEC0 + ldrb r0, [r1, 0x1] + cmp r0, 0x15 + bne _080BDEC0 + movs r2, 0x1 +_080BDEC0: + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_80BDEAC + + thumb_func_start sub_80BDEC8 +sub_80BDEC8: @ 80BDEC8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r4, 0 + bl sub_80BEB20 + bl sub_80BE778 + ldr r5, _080BDEE8 + ldrh r0, [r5, 0x28] + cmp r0, 0 + bne _080BDEEC + bl sub_80BE074 + b _080BE012 + .align 2, 0 +_080BDEE8: .4byte gUnknown_030042E0 +_080BDEEC: + bl sub_80BE028 + ldr r0, _080BDF98 + bl sub_80BF77C + lsls r0, 24 + cmp r0, 0 + beq _080BDEFE + b _080BE012 +_080BDEFE: + ldrh r1, [r5, 0x28] + movs r0, 0xB + muls r0, r1 + ldr r1, _080BDF9C + adds r0, r1 + adds r1, r5, 0 + adds r1, 0x2A + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + bne _080BDF16 + b _080BE012 +_080BDF16: + ldr r0, _080BDFA0 + bl sub_80BF74C + ldr r1, _080BDFA4 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BE012 + movs r0, 0x15 + bl sub_80BF1B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BE012 + movs r2, 0 + adds r7, r5, 0 + adds r1, r7, 0 + adds r1, 0x36 +_080BDF42: + adds r0, r2, r1 + ldrb r0, [r0] + adds r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xA + bls _080BDF42 + cmp r4, 0 + bne _080BDF64 + ldrb r1, [r7, 0x5] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BE012 +_080BDF64: + movs r4, 0 + ldr r0, _080BDFA4 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BDFA0 + adds r5, r0, r1 + movs r0, 0x15 + strb r0, [r5] + strb r4, [r5, 0x1] + ldrb r1, [r7, 0x5] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BDFAC + movs r4, 0x1 + movs r0, 0x1 + adds r3, r5, 0 + adds r3, 0x13 + ldr r1, _080BDFA8 + mov r8, r1 + adds r6, r5, 0x4 + b _080BDFDE + .align 2, 0 +_080BDF98: .4byte 0x0000ffff +_080BDF9C: .4byte gSpeciesNames +_080BDFA0: .4byte gSaveBlock1 + 0x2738 +_080BDFA4: .4byte gUnknown_03005D38 +_080BDFA8: .4byte gSaveBlock2 +_080BDFAC: + movs r2, 0 + ldr r0, _080BE01C + mov r12, r0 + adds r3, r5, 0 + adds r3, 0x13 + ldr r1, _080BE020 + mov r8, r1 + adds r6, r5, 0x4 + adds r1, r7, 0 + adds r1, 0x36 +_080BDFC0: + adds r0, r2, r1 + ldrb r0, [r0] + adds r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xA + bls _080BDFC0 + cmp r4, 0xFF + bls _080BDFDA + movs r4, 0xFF +_080BDFDA: + mov r1, r12 + ldrh r0, [r1] +_080BDFDE: + strb r4, [r5, 0x12] + strb r0, [r5, 0xF] + adds r0, r3, 0 + mov r1, r8 + bl StringCopy + ldr r4, _080BE024 + adds r0, r6, 0 + adds r1, r4, 0 + bl StringCopy + subs r4, 0x2A + ldrh r0, [r4, 0x28] + strh r0, [r5, 0x10] + adds r0, r5, 0 + bl sub_80BE138 + movs r0, 0x2 + strb r0, [r5, 0x2] + adds r0, r6, 0 + bl sub_80BDEAC + strb r0, [r5, 0x3] + adds r0, r6, 0 + bl SkipExtCtrlCodes +_080BE012: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BE01C: .4byte gUnknown_02024C04 +_080BE020: .4byte gSaveBlock2 +_080BE024: .4byte gUnknown_0300430A + thumb_func_end sub_80BDEC8 + + thumb_func_start sub_80BE028 +sub_80BE028: @ 80BE028 + push {r4,lr} + ldr r4, _080BE064 + ldrb r0, [r4] + cmp r0, 0x19 + beq _080BE048 + ldr r1, _080BE068 + adds r0, r4, r1 + movs r1, 0x18 + bl sub_80BF55C + movs r0, 0x5 + bl sub_8053108 + strh r0, [r4, 0x6] + movs r0, 0x19 + strb r0, [r4] +_080BE048: + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + ldr r1, _080BE06C + ldrh r0, [r1, 0x28] + strh r0, [r4, 0x4] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x8] + ldr r0, _080BE070 + ldrb r0, [r0, 0x14] + strb r0, [r4, 0xA] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BE064: .4byte gSaveBlock1 + 0x2A98 +_080BE068: .4byte 0xfffffca0 +_080BE06C: .4byte gUnknown_030042E0 +_080BE070: .4byte gMapHeader + thumb_func_end sub_80BE028 + + thumb_func_start sub_80BE074 +sub_80BE074: @ 80BE074 + push {r4-r7,lr} + ldr r0, _080BE118 + bl sub_80BF77C + lsls r0, 24 + cmp r0, 0 + bne _080BE112 + movs r1, 0 + movs r5, 0 + ldr r2, _080BE11C +_080BE088: + adds r0, r1, r2 + ldrb r0, [r0] + adds r0, r5, r0 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xA + bls _080BE088 + cmp r5, 0xFF + bls _080BE0A2 + movs r5, 0xFF +_080BE0A2: + cmp r5, 0x2 + bls _080BE112 + ldr r7, _080BE120 + ldrb r0, [r7] + cmp r0, 0x1 + bne _080BE112 + ldr r6, _080BE124 + adds r0, r6, 0 + bl sub_80BF74C + ldr r4, _080BE128 + strb r0, [r4] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BE112 + movs r0, 0x17 + bl sub_80BF1B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BE112 + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + adds r4, r6 + movs r1, 0 + movs r0, 0x17 + strb r0, [r4] + strb r1, [r4, 0x1] + ldr r1, _080BE12C + ldrh r0, [r1, 0x6] + strh r0, [r4, 0xC] + ldrh r0, [r1, 0x20] + strh r0, [r4, 0xE] + strb r5, [r4, 0x10] + ldrb r0, [r7] + strb r0, [r4, 0x11] + ldr r0, _080BE130 + ldrb r0, [r0, 0x14] + strb r0, [r4, 0x12] + adds r0, r4, 0 + adds r0, 0x13 + ldr r1, _080BE134 + bl StringCopy + adds r0, r4, 0 + bl sub_80BE138 + movs r0, 0x2 + strb r0, [r4, 0x2] +_080BE112: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BE118: .4byte 0x0000ffff +_080BE11C: .4byte gUnknown_03004316 +_080BE120: .4byte gUnknown_02024D26 +_080BE124: .4byte gSaveBlock1 + 0x2738 +_080BE128: .4byte gUnknown_03005D38 +_080BE12C: .4byte gUnknown_030042E0 +_080BE130: .4byte gMapHeader +_080BE134: .4byte gSaveBlock2 + thumb_func_end sub_80BE074 + + thumb_func_start sub_80BE138 +sub_80BE138: @ 80BE138 + push {r4,lr} + adds r4, r0, 0 + bl sub_80BFB94 + strb r0, [r4, 0x1E] + lsrs r2, r0, 8 + strb r2, [r4, 0x1F] + adds r1, r4, 0 + adds r1, 0x20 + strb r0, [r1] + adds r1, 0x1 + strb r2, [r1] + adds r1, 0x1 + strb r0, [r1] + adds r0, r4, 0 + adds r0, 0x23 + strb r2, [r0] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80BE138 + + thumb_func_start sub_80BE160 +sub_80BE160: @ 80BE160 + push {r4,lr} + adds r4, r0, 0 + bl sub_80BFB94 + adds r1, r4, 0 + adds r1, 0x20 + strb r0, [r1] + lsrs r1, r0, 8 + adds r2, r4, 0 + adds r2, 0x21 + strb r1, [r2] + adds r2, 0x1 + strb r0, [r2] + adds r0, r4, 0 + adds r0, 0x23 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80BE160 + + thumb_func_start sub_80BE188 +sub_80BE188: @ 80BE188 + push {r4-r6,lr} + ldr r6, _080BE22C + ldrb r1, [r6] + cmp r1, 0x6 + bne _080BE224 + ldr r0, _080BE230 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r2, _080BE234 + adds r0, r6, r2 + adds r4, r0 + strb r1, [r4] + movs r0, 0x1 + strb r0, [r4, 0x1] + ldrh r0, [r6, 0x2] + strh r0, [r4, 0x2] + adds r0, r4, 0 + adds r0, 0x16 + ldr r1, _080BE238 + bl StringCopy + adds r5, r4, 0 + adds r5, 0x8 + adds r1, r6, 0 + adds r1, 0x8 + adds r0, r5, 0 + bl StringCopy + ldrb r0, [r6, 0x13] + lsls r0, 29 + lsrs r0, 29 + ldrb r2, [r4, 0x13] + movs r3, 0x8 + negs r3, r3 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x13] + ldrb r2, [r6, 0x13] + movs r0, 0x18 + ands r0, r2 + movs r2, 0x19 + negs r2, r2 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, 0x13] + ldrh r0, [r6, 0x14] + strh r0, [r4, 0x14] + ldrb r0, [r6, 0x13] + movs r1, 0x60 + ands r1, r0 + movs r0, 0x61 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x13] + ldrb r1, [r6, 0x13] + lsls r1, 29 + lsrs r1, 29 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, 0x13] + adds r0, r4, 0 + bl sub_80BE160 + movs r0, 0x2 + strb r0, [r4, 0x1E] + adds r0, r5, 0 + bl sub_80BDEAC + strb r0, [r4, 0x1F] + adds r0, r5, 0 + bl SkipExtCtrlCodes +_080BE224: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BE22C: .4byte gSaveBlock1 + 0x2A98 +_080BE230: .4byte gUnknown_03005D38 +_080BE234: .4byte 0xfffffca0 +_080BE238: .4byte gSaveBlock2 + thumb_func_end sub_80BE188 + + thumb_func_start sub_80BE23C +sub_80BE23C: @ 80BE23C + push {r4-r6,lr} + lsls r0, 16 + lsrs r6, r0, 16 + ldr r4, _080BE278 + bl sub_80BF484 + ldr r0, _080BE27C + adds r5, r4, r0 + adds r0, r5, 0 + bl sub_80BF720 + ldr r1, _080BE280 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BE270 + adds r0, r5, 0 + movs r1, 0x18 + bl sub_80BF55C + strh r6, [r4, 0x14] + movs r0, 0x6 + strb r0, [r4] +_080BE270: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BE278: .4byte gSaveBlock1 + 0x2A98 +_080BE27C: .4byte 0xfffffca0 +_080BE280: .4byte gUnknown_03005D38 + thumb_func_end sub_80BE23C + + thumb_func_start sub_80BE284 +sub_80BE284: @ 80BE284 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r7, _080BE304 + ldr r1, _080BE308 + adds r0, r7, r1 + bl sub_80BF720 + ldr r1, _080BE30C + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BE2FE + movs r3, 0x3 + adds r1, r4, 0 + ands r1, r3 + lsls r1, 5 + ldrb r2, [r7, 0x13] + movs r0, 0x61 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + ldr r1, _080BE310 + ldrb r2, [r1] + movs r1, 0x7 + ands r1, r2 + movs r2, 0x8 + negs r2, r2 + ands r0, r2 + orrs r0, r1 + ldr r1, _080BE314 + ldrb r1, [r1] + ands r3, r1 + lsls r3, 3 + movs r1, 0x19 + negs r1, r1 + ands r0, r1 + orrs r0, r3 + strb r0, [r7, 0x13] + ldr r6, _080BE318 + ldrb r0, [r6] + movs r5, 0x64 + muls r0, r5 + ldr r4, _080BE31C + adds r0, r4 + movs r1, 0xB + movs r2, 0 + bl GetMonData + strh r0, [r7, 0x2] + ldrb r0, [r6] + muls r0, r5 + adds r0, r4 + adds r2, r7, 0 + adds r2, 0x8 + movs r1, 0x2 + bl GetMonData +_080BE2FE: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BE304: .4byte gSaveBlock1 + 0x2A98 +_080BE308: .4byte 0xfffffca0 +_080BE30C: .4byte gUnknown_03005D38 +_080BE310: .4byte gUnknown_0203869C +_080BE314: .4byte gUnknown_0203869E +_080BE318: .4byte gUnknown_02038694 +_080BE31C: .4byte gPlayerParty + thumb_func_end sub_80BE284 + + thumb_func_start sub_80BE320 +sub_80BE320: @ 80BE320 + push {r4-r6,lr} + ldr r0, _080BE384 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BE388 + adds r6, r0, r1 + movs r0, 0x7 + strb r0, [r6] + movs r0, 0x1 + strb r0, [r6, 0x1] + adds r0, r6, 0x2 + ldr r4, _080BE38C + adds r1, r4, 0 + bl StringCopy + adds r0, r6, 0 + adds r0, 0xC + ldr r2, _080BE390 + adds r1, r4, r2 + bl StringCopy + movs r1, 0x90 + lsls r1, 3 + adds r0, r4, r1 + ldrh r0, [r0] + strh r0, [r6, 0xA] + ldr r2, _080BE394 + adds r0, r4, r2 + ldrh r0, [r0] + strh r0, [r6, 0x14] + movs r0, 0xAF + lsls r0, 3 + adds r5, r4, r0 + ldrb r0, [r5] + bl sub_8135D3C + strh r0, [r6, 0x16] + ldr r1, _080BE398 + adds r4, r1 + ldrb r0, [r4] + strb r0, [r6, 0x1C] + ldrb r0, [r5] + cmp r0, 0 + bne _080BE39C + movs r0, 0x32 + b _080BE39E + .align 2, 0 +_080BE384: .4byte gUnknown_03005D38 +_080BE388: .4byte gSaveBlock1 + 0x2738 +_080BE38C: .4byte gSaveBlock2 +_080BE390: .4byte 0x00000484 +_080BE394: .4byte 0x00000482 +_080BE398: .4byte 0x00000555 +_080BE39C: + movs r0, 0x64 +_080BE39E: + strb r0, [r6, 0x1A] + ldr r0, _080BE3B8 + ldrh r0, [r0] + strb r0, [r6, 0x1B] + adds r0, r6, 0 + bl sub_80BE160 + movs r0, 0x2 + strb r0, [r6, 0x1D] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BE3B8: .4byte gUnknown_0202E8CC + thumb_func_end sub_80BE320 + + thumb_func_start sub_80BE3BC +sub_80BE3BC: @ 80BE3BC + push {r4-r7,lr} + ldr r0, _080BE460 + bl sub_80BF77C + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080BE458 + ldr r6, _080BE464 + adds r0, r6, 0 + bl sub_80BF74C + ldr r5, _080BE468 + strb r0, [r5] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BE458 + movs r0, 0x16 + bl sub_80BF1B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BE458 + bl sub_80BF20C + ldr r2, _080BE46C + ldrh r0, [r2, 0x2] + cmp r0, 0x13 + bls _080BE458 + movs r1, 0 + ldrsb r1, [r5, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r5, r0, r6 + movs r0, 0x16 + strb r0, [r5] + strb r4, [r5, 0x1] + ldr r0, _080BE470 + ldrb r0, [r0, 0x14] + strb r0, [r5, 0x12] + movs r4, 0 + adds r7, r5, 0x6 + mov r12, r2 + adds r6, r5, 0 + adds r6, 0xC +_080BE420: + lsls r2, r4, 1 + adds r3, r7, r2 + lsls r1, r4, 2 + add r1, r12 + ldrh r0, [r1] + strh r0, [r3] + adds r2, r6, r2 + ldrh r0, [r1, 0x2] + strh r0, [r2] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _080BE420 + movs r0, 0x1 + bl GetPriceReduction + strb r0, [r5, 0x2] + adds r0, r5, 0 + adds r0, 0x13 + ldr r1, _080BE474 + bl StringCopy + adds r0, r5, 0 + bl sub_80BE138 + movs r0, 0x2 + strb r0, [r5, 0x3] +_080BE458: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BE460: .4byte 0x00005555 +_080BE464: .4byte gSaveBlock1 + 0x2738 +_080BE468: .4byte gUnknown_03005D38 +_080BE46C: .4byte gUnknown_02038724 +_080BE470: .4byte gMapHeader +_080BE474: .4byte gSaveBlock2 + thumb_func_end sub_80BE3BC + + thumb_func_start sub_80BE478 +sub_80BE478: @ 80BE478 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + bl sub_80BF478 + ldr r0, _080BE554 + ldrh r0, [r0] + cmp r0, 0x1 + beq _080BE548 + ldr r0, _080BE558 + mov r8, r0 + ldrh r0, [r0] + movs r7, 0x64 + muls r0, r7 + ldr r6, _080BE55C + adds r0, r6 + ldr r4, _080BE560 + movs r1, 0x2 + adds r2, r4, 0 + bl GetMonData + ldr r1, _080BE564 + mov r9, r1 + mov r0, r9 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080BE548 + adds r0, r4, 0 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080BE548 + ldr r0, _080BE568 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, _080BE56C + adds r4, r0 + movs r0, 0x5 + strb r0, [r4] + movs r5, 0x1 + strb r5, [r4, 0x1] + mov r1, r8 + ldrh r0, [r1] + muls r0, r7 + adds r0, r6 + movs r1, 0xB + movs r2, 0 + bl GetMonData + strh r0, [r4, 0x2] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + strb r0, [r4, 0x1A] + bl Random + lsls r0, 16 + lsrs r0, 16 + ands r0, r5 + strb r0, [r4, 0x1B] + ldrh r0, [r4, 0x2] + bl sub_80BF674 + strh r0, [r4, 0x1C] + adds r0, r4, 0 + adds r0, 0xF + mov r1, r9 + bl StringCopy + mov r1, r8 + ldrh r0, [r1] + muls r0, r7 + adds r0, r6 + adds r5, r4, 0x4 + movs r1, 0x2 + adds r2, r5, 0 + bl GetMonData + adds r0, r4, 0 + bl sub_80BE160 + movs r0, 0x2 + strb r0, [r4, 0x1E] + adds r0, r5, 0 + bl sub_80BDEAC + strb r0, [r4, 0x1F] + adds r0, r5, 0 + bl SkipExtCtrlCodes +_080BE548: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BE554: .4byte gScriptResult +_080BE558: .4byte gUnknown_0202E8CC +_080BE55C: .4byte gPlayerParty +_080BE560: .4byte gStringVar1 +_080BE564: .4byte gSaveBlock2 +_080BE568: .4byte gUnknown_03005D38 +_080BE56C: .4byte gSaveBlock1 + 0x2738 + thumb_func_end sub_80BE478 + + thumb_func_start StartMassOutbreak +StartMassOutbreak: @ 80BE570 + push {r4,lr} + ldr r0, _080BE5F0 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r2, _080BE5F4 + adds r0, r2 + ldrh r3, [r0, 0xC] + movs r4, 0xF1 + lsls r4, 2 + adds r1, r2, r4 + strh r3, [r1] + ldrb r3, [r0, 0x10] + adds r4, 0x2 + adds r1, r2, r4 + strb r3, [r1] + ldrb r3, [r0, 0x11] + adds r4, 0x1 + adds r1, r2, r4 + strb r3, [r1] + ldrb r3, [r0, 0x14] + adds r4, 0x1 + adds r1, r2, r4 + strb r3, [r1] + ldrb r3, [r0, 0x2] + adds r4, 0x1 + adds r1, r2, r4 + strb r3, [r1] + ldrh r3, [r0, 0xE] + adds r4, 0x1 + adds r1, r2, r4 + strh r3, [r1] + ldrh r3, [r0, 0x4] + adds r4, 0x2 + adds r1, r2, r4 + strh r3, [r1] + ldrh r3, [r0, 0x6] + adds r4, 0x2 + adds r1, r2, r4 + strh r3, [r1] + ldrh r3, [r0, 0x8] + adds r4, 0x2 + adds r1, r2, r4 + strh r3, [r1] + ldrh r3, [r0, 0xA] + adds r4, 0x2 + adds r1, r2, r4 + strh r3, [r1] + ldrb r3, [r0, 0x3] + adds r4, 0x2 + adds r1, r2, r4 + strb r3, [r1] + ldrb r1, [r0, 0x13] + ldr r3, _080BE5F8 + adds r0, r2, r3 + strb r1, [r0] + adds r4, 0x2 + adds r2, r4 + movs r0, 0x2 + strh r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BE5F0: .4byte gUnknown_0202E8CC +_080BE5F4: .4byte gSaveBlock1 + 0x2738 +_080BE5F8: .4byte 0x000003d5 + thumb_func_end StartMassOutbreak + + thumb_func_start sub_80BE5FC +sub_80BE5FC: @ 80BE5FC + push {r4,lr} + ldr r0, _080BE64C + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, _080BE650 + adds r4, r0 + movs r0, 0x1 + strb r0, [r4] + strb r0, [r4, 0x1] + adds r0, r4, 0 + adds r0, 0x10 + ldr r1, _080BE654 + bl StringCopy + bl sub_810F87C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _080BE658 + adds r0, r1 + movs r1, 0xB + movs r2, 0 + bl GetMonData + strh r0, [r4, 0x2] + adds r0, r4, 0 + bl sub_80BE160 + movs r0, 0x2 + strb r0, [r4, 0x18] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BE64C: .4byte gUnknown_03005D38 +_080BE650: .4byte gSaveBlock1 + 0x2738 +_080BE654: .4byte gSaveBlock2 +_080BE658: .4byte gPlayerParty + thumb_func_end sub_80BE5FC + + thumb_func_start sub_80BE65C +sub_80BE65C: @ 80BE65C + push {r4-r6,lr} + ldr r0, _080BE694 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, _080BE698 + adds r4, r0 + movs r6, 0 + movs r5, 0x2 + strb r5, [r4] + movs r0, 0x1 + strb r0, [r4, 0x1] + adds r0, r4, 0 + adds r0, 0x10 + ldr r1, _080BE69C + bl StringCopy + strh r6, [r4, 0x2] + adds r0, r4, 0 + bl sub_80BE160 + strb r5, [r4, 0x18] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BE694: .4byte gUnknown_03005D38 +_080BE698: .4byte gSaveBlock1 + 0x2738 +_080BE69C: .4byte gSaveBlock2 + thumb_func_end sub_80BE65C + + thumb_func_start sub_80BE6A0 +sub_80BE6A0: @ 80BE6A0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, _080BE760 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, _080BE764 + adds r4, r0 + movs r0, 0x3 + strb r0, [r4] + movs r0, 0x1 + strb r0, [r4, 0x1] + bl sub_810F87C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + ldr r6, _080BE768 + adds r0, r6 + movs r1, 0x20 + movs r2, 0 + bl GetMonData + lsrs r0, 4 + movs r1, 0xF + ands r0, r1 + ldrb r2, [r4, 0x4] + movs r1, 0x10 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x4] + ldr r0, _080BE76C + ldrb r0, [r0] + lsls r0, 4 + movs r2, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x4] + adds r0, r4, 0x5 + ldr r1, _080BE770 + bl StringCopy + bl sub_810F87C + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + adds r5, r4, 0 + adds r5, 0x10 + movs r1, 0x2 + adds r2, r5, 0 + bl GetMonData + bl sub_810F87C + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + movs r1, 0xB + movs r2, 0 + bl GetMonData + strh r0, [r4, 0x2] + adds r0, r4, 0 + bl sub_80BE160 + movs r0, 0x2 + strb r0, [r4, 0xD] + adds r0, r5, 0 + bl sub_80BDEAC + strb r0, [r4, 0xE] + adds r0, r5, 0 + bl SkipExtCtrlCodes + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BE760: .4byte gUnknown_03005D38 +_080BE764: .4byte gSaveBlock1 + 0x2738 +_080BE768: .4byte gPlayerParty +_080BE76C: .4byte gUnknown_0202E8D2 +_080BE770: .4byte gSaveBlock2 + thumb_func_end sub_80BE6A0 + + thumb_func_start nullsub_21 +nullsub_21: @ 80BE774 + bx lr + thumb_func_end nullsub_21 + + thumb_func_start sub_80BE778 +sub_80BE778: @ 80BE778 + push {r4-r6,lr} + ldr r0, _080BE83C + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080BE836 + movs r1, 0 + ldr r3, _080BE840 + ldr r2, _080BE844 +_080BE78C: + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x29 + beq _080BE836 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x17 + bls _080BE78C + ldr r0, _080BE848 + bl sub_80BF77C + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080BE836 + ldr r6, _080BE84C + adds r0, r6, 0 + bl sub_80BF720 + ldr r4, _080BE850 + strb r0, [r4] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BE836 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x5 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + ldrsb r1, [r4, r1] + lsls r4, r1, 3 + adds r4, r1 + lsls r4, 2 + adds r4, r6 + movs r1, 0x29 + strb r1, [r4] + movs r3, 0x1 + strb r3, [r4, 0x1] + ldr r2, _080BE854 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0xA] + strb r0, [r4, 0x14] + strb r5, [r4, 0x2] + strb r5, [r4, 0x3] + ldrh r0, [r1] + movs r2, 0 + strh r0, [r4, 0xC] + strh r5, [r4, 0xE] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x4] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x6] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x8] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0xA] + ldrb r0, [r1, 0xB] + strb r0, [r4, 0x10] + strb r2, [r4, 0x11] + strb r2, [r4, 0x12] + movs r0, 0x32 + strb r0, [r4, 0x13] + strb r2, [r4, 0x15] + strh r3, [r4, 0x16] + adds r0, r4, 0 + bl sub_80BE160 + movs r0, 0x2 + strb r0, [r4, 0x18] +_080BE836: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BE83C: .4byte 0x00000804 +_080BE840: .4byte gSaveBlock1 +_080BE844: .4byte 0x00002738 +_080BE848: .4byte 0x00000147 +_080BE84C: .4byte gSaveBlock1 + 0x2738 +_080BE850: .4byte gUnknown_03005D38 +_080BE854: .4byte gUnknown_083D13F8 + thumb_func_end sub_80BE778 + + thumb_func_start EndMassOutbreak +EndMassOutbreak: @ 80BE858 + push {r4,lr} + ldr r0, _080BE8B4 + ldr r2, _080BE8B8 + adds r1, r0, r2 + movs r3, 0 + movs r2, 0 + strh r2, [r1] + ldr r4, _080BE8BC + adds r1, r0, r4 + strb r3, [r1] + adds r4, 0x1 + adds r1, r0, r4 + strb r3, [r1] + adds r4, 0x1 + adds r1, r0, r4 + strb r3, [r1] + adds r4, 0x1 + adds r1, r0, r4 + strb r3, [r1] + adds r4, 0x1 + adds r1, r0, r4 + strh r2, [r1] + adds r4, 0x2 + adds r1, r0, r4 + strh r2, [r1] + adds r4, 0x2 + adds r1, r0, r4 + strh r2, [r1] + adds r4, 0x2 + adds r1, r0, r4 + strh r2, [r1] + adds r4, 0x2 + adds r1, r0, r4 + strh r2, [r1] + adds r4, 0x2 + adds r1, r0, r4 + strb r3, [r1] + adds r4, 0x1 + adds r1, r0, r4 + strb r3, [r1] + ldr r1, _080BE8C0 + adds r0, r1 + strh r2, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BE8B4: .4byte gSaveBlock1 +_080BE8B8: .4byte 0x00002afc +_080BE8BC: .4byte 0x00002afe +_080BE8C0: .4byte 0x00002b0e + thumb_func_end EndMassOutbreak + + thumb_func_start sub_80BE8C4 +sub_80BE8C4: @ 80BE8C4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + bl sub_80BE8EC + adds r0, r4, 0 + bl UpdateMassOutbreakTimeLeft + adds r0, r4, 0 + bl sub_80BEE84 + adds r0, r4, 0 + bl sub_80BEA5C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80BE8C4 + + thumb_func_start sub_80BE8EC +sub_80BE8EC: @ 80BE8EC + push {r4-r7,lr} + lsls r0, 16 + lsrs r4, r0, 16 + ldr r1, _080BE930 + ldr r2, _080BE934 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, 0 + bne _080BE94C + movs r3, 0 + adds r5, r1, 0 + ldr r7, _080BE938 + adds r6, r5, r7 +_080BE906: + lsls r0, r3, 3 + adds r0, r3 + lsls r2, r0, 2 + adds r1, r2, r5 + ldr r7, _080BE938 + adds r0, r1, r7 + ldrb r0, [r0] + cmp r0, 0x29 + bne _080BE942 + adds r7, 0x1 + adds r0, r1, r7 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080BE942 + adds r1, r2, r6 + ldrh r0, [r1, 0x16] + cmp r0, r4 + bcs _080BE93C + movs r0, 0 + strh r0, [r1, 0x16] + b _080BE94C + .align 2, 0 +_080BE930: .4byte gSaveBlock1 +_080BE934: .4byte 0x00002afc +_080BE938: .4byte 0x00002738 +_080BE93C: + subs r0, r4 + strh r0, [r1, 0x16] + b _080BE94C +_080BE942: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x17 + bls _080BE906 +_080BE94C: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BE8EC + + thumb_func_start UpdateMassOutbreakTimeLeft +UpdateMassOutbreakTimeLeft: @ 80BE954 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _080BE96C + ldr r3, _080BE970 + adds r2, r0, r3 + ldrh r0, [r2] + cmp r0, r1 + bhi _080BE974 + bl EndMassOutbreak + b _080BE978 + .align 2, 0 +_080BE96C: .4byte gSaveBlock1 +_080BE970: .4byte 0x00002b0e +_080BE974: + subs r0, r1 + strh r0, [r2] +_080BE978: + pop {r0} + bx r0 + thumb_func_end UpdateMassOutbreakTimeLeft + + thumb_func_start sub_80BE97C +sub_80BE97C: @ 80BE97C + push {r4,lr} + lsls r0, 24 + cmp r0, 0 + beq _080BE9A4 + ldr r4, _080BE9A0 + ldrh r0, [r4] + lsrs r0, 8 + cmp r0, 0x4 + bls _080BE992 + bl sub_80BE9D4 +_080BE992: + ldrb r0, [r4] + strh r0, [r4] + cmp r0, 0xFF + beq _080BE9C8 + adds r0, 0x1 + b _080BE9C6 + .align 2, 0 +_080BE9A0: .4byte gUnknown_020387E2 +_080BE9A4: + ldr r4, _080BE9D0 + ldrb r0, [r4] + cmp r0, 0x4 + bls _080BE9B0 + bl sub_80BE9D4 +_080BE9B0: + ldrh r0, [r4] + movs r1, 0xFF + lsls r1, 8 + ands r1, r0 + strh r1, [r4] + lsrs r0, r1, 8 + cmp r0, 0xFF + beq _080BE9C8 + movs r2, 0x80 + lsls r2, 1 + adds r0, r1, r2 +_080BE9C6: + strh r0, [r4] +_080BE9C8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BE9D0: .4byte gUnknown_020387E2 + thumb_func_end sub_80BE97C + + thumb_func_start sub_80BE9D4 +sub_80BE9D4: @ 80BE9D4 + push {r4,r5,lr} + ldr r5, _080BEA3C + adds r0, r5, 0 + bl sub_80BF74C + ldr r4, _080BEA40 + strb r0, [r4] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BEA36 + movs r0, 0x18 + bl sub_80BF1B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BEA36 + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + adds r4, r5 + movs r1, 0 + movs r0, 0x18 + strb r0, [r4] + strb r1, [r4, 0x1] + ldr r1, _080BEA44 + ldrh r0, [r1] + strb r0, [r4, 0x2] + ldrh r0, [r1] + lsrs r0, 8 + strb r0, [r4, 0x3] + ldr r0, _080BEA48 + ldrh r0, [r0] + strh r0, [r4, 0x4] + adds r0, r4, 0 + adds r0, 0x13 + ldr r1, _080BEA4C + bl StringCopy + adds r0, r4, 0 + bl sub_80BE138 + movs r0, 0x2 + strb r0, [r4, 0x6] +_080BEA36: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BEA3C: .4byte gSaveBlock1 + 0x2738 +_080BEA40: .4byte gUnknown_03005D38 +_080BEA44: .4byte gUnknown_020387E2 +_080BEA48: .4byte gUnknown_020387E0 +_080BEA4C: .4byte gSaveBlock2 + thumb_func_end sub_80BE9D4 + + thumb_func_start sub_80BEA50 +sub_80BEA50: @ 80BEA50 + ldr r1, _080BEA58 + strh r0, [r1] + bx lr + .align 2, 0 +_080BEA58: .4byte gUnknown_020387E0 + thumb_func_end sub_80BEA50 + + thumb_func_start sub_80BEA5C +sub_80BEA5C: @ 80BEA5C + push {lr} + ldr r1, _080BEA78 + ldrb r0, [r1] + cmp r0, 0x19 + bne _080BEA84 + ldrh r0, [r1, 0x2] + cmp r0, 0x13 + bhi _080BEA80 + ldr r2, _080BEA7C + adds r0, r1, r2 + movs r1, 0x18 + bl sub_80BF55C + b _080BEA84 + .align 2, 0 +_080BEA78: .4byte gSaveBlock1 + 0x2A98 +_080BEA7C: .4byte 0xfffffca0 +_080BEA80: + bl sub_80BEA88 +_080BEA84: + pop {r0} + bx r0 + thumb_func_end sub_80BEA5C + + thumb_func_start sub_80BEA88 +sub_80BEA88: @ 80BEA88 + push {r4-r7,lr} + ldr r5, _080BEB0C + ldr r0, _080BEB10 + bl sub_80BF77C + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + bne _080BEB04 + ldr r0, _080BEB14 + adds r7, r5, r0 + adds r0, r7, 0 + bl sub_80BF74C + ldr r4, _080BEB18 + strb r0, [r4] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BEB04 + movs r0, 0x19 + bl sub_80BF1B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BEB04 + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + adds r4, r7 + movs r0, 0x19 + strb r0, [r4] + strb r6, [r4, 0x1] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x2] + movs r0, 0x5 + bl sub_8053108 + ldrh r1, [r5, 0x6] + subs r0, r1 + strh r0, [r4, 0x6] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x4] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x8] + ldrb r0, [r5, 0xA] + strb r0, [r4, 0xA] + adds r0, r4, 0 + adds r0, 0x13 + ldr r1, _080BEB1C + bl StringCopy + adds r0, r4, 0 + bl sub_80BE138 + movs r0, 0x2 + strb r0, [r4, 0xB] +_080BEB04: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BEB0C: .4byte gSaveBlock1 + 0x2A98 +_080BEB10: .4byte 0x0000ffff +_080BEB14: .4byte 0xfffffca0 +_080BEB18: .4byte gUnknown_03005D38 +_080BEB1C: .4byte gSaveBlock2 + thumb_func_end sub_80BEA88 + + thumb_func_start sub_80BEB20 +sub_80BEB20: @ 80BEB20 + push {r4-r6,lr} + ldr r0, _080BEBAC + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080BEBA6 + ldr r6, _080BEBB0 + adds r0, r6, 0 + bl sub_80BEBC8 + ldr r5, _080BEBB4 + strb r0, [r5] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BEBA6 + ldr r0, _080BEBB8 + bl sub_80BF77C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BEBA6 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + adds r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80BEE48 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BEBA6 + movs r0, 0 + ldrsb r0, [r5, r0] + lsls r0, 2 + ldr r1, _080BEBBC + adds r2, r6, r1 + adds r0, r6, r0 + strb r4, [r0] + movs r0, 0 + ldrsb r0, [r5, r0] + lsls r0, 2 + adds r0, r2 + ldr r1, _080BEBC0 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0] + movs r0, 0 + ldrsb r0, [r5, r0] + lsls r0, 2 + adds r0, r2 + ldr r1, _080BEBC4 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] +_080BEBA6: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BEBAC: .4byte 0x00000804 +_080BEBB0: .4byte gSaveBlock1 + 0x2ABC +_080BEBB4: .4byte gUnknown_03005D38 +_080BEBB8: .4byte 0x0000028f +_080BEBBC: .4byte 0xffffd544 +_080BEBC0: .4byte 0x00002abe +_080BEBC4: .4byte 0x00002abd + thumb_func_end sub_80BEB20 + + thumb_func_start sub_80BEBC8 +sub_80BEBC8: @ 80BEBC8 + push {lr} + adds r2, r0, 0 + movs r1, 0 +_080BEBCE: + lsls r0, r1, 24 + asrs r1, r0, 24 + lsls r0, r1, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080BEBE0 + adds r0, r1, 0 + b _080BEBF0 +_080BEBE0: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + asrs r0, 24 + cmp r0, 0xF + ble _080BEBCE + movs r0, 0x1 + negs r0, r0 +_080BEBF0: + pop {r1} + bx r1 + thumb_func_end sub_80BEBC8 + + thumb_func_start sub_80BEBF4 +sub_80BEBF4: @ 80BEBF4 + push {r4,lr} + movs r4, 0 +_080BEBF8: + adds r0, r4, 0 + bl sub_80BEC10 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bls _080BEBF8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80BEBF4 + + thumb_func_start sub_80BEC10 +sub_80BEC10: @ 80BEC10 + lsls r0, 24 + ldr r1, _080BEC30 + lsrs r0, 22 + adds r0, r1 + ldr r2, _080BEC34 + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r3, _080BEC38 + adds r1, r0, r3 + strb r2, [r1] + ldr r1, _080BEC3C + adds r0, r1 + strh r2, [r0] + bx lr + .align 2, 0 +_080BEC30: .4byte gSaveBlock1 +_080BEC34: .4byte 0x00002abc +_080BEC38: .4byte 0x00002abd +_080BEC3C: .4byte 0x00002abe + thumb_func_end sub_80BEC10 + + thumb_func_start sub_80BEC40 +sub_80BEC40: @ 80BEC40 + push {r4-r7,lr} + movs r1, 0 + ldr r6, _080BEC80 +_080BEC46: + ldr r3, _080BEC80 + lsls r2, r1, 2 + adds r0, r2, r3 + ldr r4, _080BEC84 + adds r0, r4 + ldrb r0, [r0] + adds r5, r1, 0x1 + cmp r0, 0 + bne _080BEC92 + lsls r0, r5, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bhi _080BEC92 + adds r4, r3, r4 + adds r3, r2, r4 +_080BEC64: + lsls r2, r1, 2 + adds r0, r2, r6 + ldr r7, _080BEC84 + adds r0, r7 + ldrb r0, [r0] + cmp r0, 0 + beq _080BEC88 + adds r0, r2, r4 + ldr r0, [r0] + str r0, [r3] + adds r0, r1, 0 + bl sub_80BEC10 + b _080BEC92 + .align 2, 0 +_080BEC80: .4byte gSaveBlock1 +_080BEC84: .4byte 0x00002abc +_080BEC88: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _080BEC64 +_080BEC92: + lsls r0, r5, 24 + lsrs r1, r0, 24 + cmp r1, 0xE + bls _080BEC46 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BEC40 + + thumb_func_start sub_80BECA0 +sub_80BECA0: @ 80BECA0 + push {r4,lr} + movs r2, 0 + ldr r3, _080BECCC +_080BECA6: + lsls r0, r2, 2 + adds r1, r0, r3 + ldr r4, _080BECD0 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _080BECD4 + adds r4, 0x1 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080BECD4 + adds r4, 0x1 + adds r0, r1, r4 + ldrh r0, [r0] + cmp r0, 0x2 + bhi _080BECD4 + adds r0, r2, 0 + b _080BECE0 + .align 2, 0 +_080BECCC: .4byte gSaveBlock1 +_080BECD0: .4byte 0x00002abc +_080BECD4: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xF + bls _080BECA6 + movs r0, 0xFF +_080BECE0: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BECA0 + + thumb_func_start sub_80BECE8 +sub_80BECE8: @ 80BECE8 + push {r4,lr} + bl sub_80BECA0 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xFF + bne _080BED00 + ldr r1, _080BECFC + movs r0, 0 + b _080BED86 + .align 2, 0 +_080BECFC: .4byte gScriptResult +_080BED00: + ldr r0, _080BED2C + lsls r1, 2 + adds r4, r1, r0 + ldr r0, _080BED30 + adds r1, r4, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _080BED5C + ldr r2, _080BED34 + adds r1, r4, r2 + movs r0, 0x2 + strb r0, [r1] + ldr r0, _080BED38 + ldrb r0, [r0, 0x2] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x13 + bgt _080BED40 + ldr r1, _080BED3C + subs r2, 0x1 + b _080BED44 + .align 2, 0 +_080BED2C: .4byte gSaveBlock1 +_080BED30: .4byte 0x00002abe +_080BED34: .4byte 0x00002abd +_080BED38: .4byte gLocalTime +_080BED3C: .4byte gUnknown_083D1444 +_080BED40: + ldr r1, _080BED54 + ldr r2, _080BED58 +_080BED44: + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl ShowFieldMessage + b _080BED82 + .align 2, 0 +_080BED54: .4byte gUnknown_083D1454 +_080BED58: .4byte 0x00002abc +_080BED5C: + ldrh r1, [r1] + ldr r0, _080BED90 + movs r2, 0 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + ldr r0, _080BED94 + adds r1, r4, r0 + movs r0, 0 + strb r0, [r1] + ldr r1, _080BED98 + ldr r2, _080BED9C + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl ShowFieldMessage +_080BED82: + ldr r1, _080BEDA0 + movs r0, 0x1 +_080BED86: + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BED90: .4byte gStringVar1 +_080BED94: .4byte 0x00002abd +_080BED98: .4byte gUnknown_083D1434 +_080BED9C: .4byte 0x00002abc +_080BEDA0: .4byte gScriptResult + thumb_func_end sub_80BECE8 + + thumb_func_start GetPriceReduction +GetPriceReduction: @ 80BEDA4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _080BEDB4 + b _080BEDF6 +_080BEDB0: + movs r0, 0x1 + b _080BEDF8 +_080BEDB4: + movs r2, 0 + ldr r4, _080BEDE0 +_080BEDB8: + lsls r0, r2, 2 + adds r1, r0, r4 + ldr r5, _080BEDE4 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, r3 + bne _080BEDEC + ldr r2, _080BEDE8 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x2 + bne _080BEDF6 + adds r0, r3, 0 + bl IsPriceDiscounted + lsls r0, 24 + cmp r0, 0 + bne _080BEDB0 + b _080BEDF6 + .align 2, 0 +_080BEDE0: .4byte gSaveBlock1 +_080BEDE4: .4byte 0x00002abc +_080BEDE8: .4byte 0x00002abd +_080BEDEC: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xF + bls _080BEDB8 +_080BEDF6: + movs r0, 0 +_080BEDF8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end GetPriceReduction + + thumb_func_start IsPriceDiscounted +IsPriceDiscounted: @ 80BEE00 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BEE12 + cmp r0, 0x3 + beq _080BEE30 +_080BEE0E: + movs r0, 0x1 + b _080BEE3C +_080BEE12: + ldr r0, _080BEE28 + ldrh r1, [r0, 0x4] + movs r0, 0x80 + lsls r0, 1 + cmp r1, r0 + bne _080BEE3A + ldr r0, _080BEE2C + ldrh r0, [r0] + cmp r0, 0x1A + beq _080BEE0E + b _080BEE3A + .align 2, 0 +_080BEE28: .4byte gSaveBlock1 +_080BEE2C: .4byte gUnknown_0202E8DE +_080BEE30: + ldr r0, _080BEE40 + ldrh r1, [r0, 0x4] + ldr r0, _080BEE44 + cmp r1, r0 + beq _080BEE0E +_080BEE3A: + movs r0, 0 +_080BEE3C: + pop {r1} + bx r1 + .align 2, 0 +_080BEE40: .4byte gSaveBlock1 +_080BEE44: .4byte 0x0000160d + thumb_func_end IsPriceDiscounted + + thumb_func_start sub_80BEE48 +sub_80BEE48: @ 80BEE48 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080BEE56 +_080BEE52: + movs r0, 0x1 + b _080BEE74 +_080BEE56: + movs r1, 0 + ldr r4, _080BEE7C + ldr r3, _080BEE80 +_080BEE5C: + lsls r0, r1, 2 + adds r0, r4 + adds r0, r3 + ldrb r0, [r0] + cmp r0, r2 + beq _080BEE52 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _080BEE5C + movs r0, 0 +_080BEE74: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080BEE7C: .4byte gSaveBlock1 +_080BEE80: .4byte 0x00002abc + thumb_func_end sub_80BEE48 + + thumb_func_start sub_80BEE84 +sub_80BEE84: @ 80BEE84 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r7, r0, 16 + movs r5, 0 + ldr r0, _080BEEB8 + mov r8, r0 +_080BEE94: + lsls r0, r5, 2 + mov r1, r8 + adds r2, r0, r1 + ldr r3, _080BEEBC + adds r1, r2, r3 + ldrb r1, [r1] + adds r6, r0, 0 + cmp r1, 0 + beq _080BEEEC + ldr r1, _080BEEC0 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, r7 + bcs _080BEEC4 + adds r0, r5, 0 + bl sub_80BEC10 + b _080BEEEC + .align 2, 0 +_080BEEB8: .4byte gSaveBlock1 +_080BEEBC: .4byte 0x00002abc +_080BEEC0: .4byte 0x00002abe +_080BEEC4: + ldr r3, _080BEF04 + adds r4, r2, r3 + ldrb r0, [r4] + cmp r0, 0 + bne _080BEEDE + ldr r0, _080BEF08 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BEEDE + strb r0, [r4] +_080BEEDE: + mov r0, r8 + adds r1, r6, r0 + ldr r3, _080BEF0C + adds r1, r3 + ldrh r0, [r1] + subs r0, r7 + strh r0, [r1] +_080BEEEC: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xF + bls _080BEE94 + bl sub_80BEC40 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BEF04: .4byte 0x00002abd +_080BEF08: .4byte 0x00000804 +_080BEF0C: .4byte 0x00002abe + thumb_func_end sub_80BEE84 + + thumb_func_start sub_80BEF10 +sub_80BEF10: @ 80BEF10 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + adds r2, r1, 0 + cmp r1, 0x1 + beq _080BEF50 + cmp r1, 0x1 + bgt _080BEF2A + cmp r1, 0 + beq _080BEF34 + b _080BEF98 +_080BEF2A: + cmp r2, 0x2 + beq _080BEF6C + cmp r2, 0x3 + beq _080BEF88 + b _080BEF98 +_080BEF34: + ldr r1, _080BEF48 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BEF4C + ldr r1, [r1, 0x14] + bl StringCopy + b _080BEF98 + .align 2, 0 +_080BEF48: .4byte gUnknown_083D1464 +_080BEF4C: .4byte gUnknown_083CE048 +_080BEF50: + ldr r1, _080BEF64 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BEF68 + ldr r1, [r1, 0x18] + bl StringCopy + b _080BEF98 + .align 2, 0 +_080BEF64: .4byte gUnknown_083D1464 +_080BEF68: .4byte gUnknown_083CE048 +_080BEF6C: + ldr r1, _080BEF80 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BEF84 + ldr r1, [r1, 0x1C] + bl StringCopy + b _080BEF98 + .align 2, 0 +_080BEF80: .4byte gUnknown_083D1464 +_080BEF84: .4byte gUnknown_083CE048 +_080BEF88: + ldr r1, _080BEF9C + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BEFA0 + ldr r1, [r1, 0x20] + bl StringCopy +_080BEF98: + pop {r0} + bx r0 + .align 2, 0 +_080BEF9C: .4byte gUnknown_083D1464 +_080BEFA0: .4byte gUnknown_083CE048 + thumb_func_end sub_80BEF10 + + thumb_func_start CopyContestCategoryToStringVar +CopyContestCategoryToStringVar: @ 80BEFA4 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r0, r1, 24 + cmp r0, 0x4 + bhi _080BF054 + lsls r0, 2 + ldr r1, _080BEFBC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BEFBC: .4byte _080BEFC0 + .align 2, 0 +_080BEFC0: + .4byte _080BEFD4 + .4byte _080BEFF0 + .4byte _080BF00C + .4byte _080BF028 + .4byte _080BF044 +_080BEFD4: + ldr r1, _080BEFE8 + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BEFEC + ldr r1, [r1] + bl StringCopy + b _080BF054 + .align 2, 0 +_080BEFE8: .4byte gUnknown_083D1464 +_080BEFEC: .4byte gUnknown_083CE048 +_080BEFF0: + ldr r1, _080BF004 + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BF008 + ldr r1, [r1, 0x4] + bl StringCopy + b _080BF054 + .align 2, 0 +_080BF004: .4byte gUnknown_083D1464 +_080BF008: .4byte gUnknown_083CE048 +_080BF00C: + ldr r1, _080BF020 + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BF024 + ldr r1, [r1, 0x8] + bl StringCopy + b _080BF054 + .align 2, 0 +_080BF020: .4byte gUnknown_083D1464 +_080BF024: .4byte gUnknown_083CE048 +_080BF028: + ldr r1, _080BF03C + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BF040 + ldr r1, [r1, 0xC] + bl StringCopy + b _080BF054 + .align 2, 0 +_080BF03C: .4byte gUnknown_083D1464 +_080BF040: .4byte gUnknown_083CE048 +_080BF044: + ldr r1, _080BF058 + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BF05C + ldr r1, [r1, 0x10] + bl StringCopy +_080BF054: + pop {r0} + bx r0 + .align 2, 0 +_080BF058: .4byte gUnknown_083D1464 +_080BF05C: .4byte gUnknown_083CE048 + thumb_func_end CopyContestCategoryToStringVar + + thumb_func_start SetContestCategoryStringVarForInterview +SetContestCategoryStringVarForInterview: @ 80BF060 + push {lr} + ldr r0, _080BF080 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BF084 + adds r0, r1 + ldrb r1, [r0, 0x13] + lsls r1, 29 + lsrs r1, 29 + movs r0, 0x1 + bl CopyContestCategoryToStringVar + pop {r0} + bx r0 + .align 2, 0 +_080BF080: .4byte gUnknown_0202E8CC +_080BF084: .4byte gSaveBlock1 + 0x2738 + thumb_func_end SetContestCategoryStringVarForInterview + + thumb_func_start sub_80BF088 +sub_80BF088: @ 80BF088 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + bl sub_80BF0B8 + adds r3, r0, 0 + ldr r0, _080BF0B4 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + lsls r3, 24 + lsrs r3, 24 + adds r1, r5, 0 + movs r2, 0 + bl ConvertIntToDecimalStringN + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BF0B4: .4byte gUnknown_083D1464 + thumb_func_end sub_80BF088 + + thumb_func_start sub_80BF0B8 +sub_80BF0B8: @ 80BF0B8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0xA + bl __divsi3 + cmp r0, 0 + beq _080BF144 + adds r0, r4, 0 + movs r1, 0x64 + bl __divsi3 + cmp r0, 0 + bne _080BF0D6 + movs r0, 0x2 + b _080BF14E +_080BF0D6: + movs r1, 0xFA + lsls r1, 2 + adds r0, r4, 0 + bl __divsi3 + cmp r0, 0 + bne _080BF0E8 + movs r0, 0x3 + b _080BF14E +_080BF0E8: + ldr r1, _080BF0F8 + adds r0, r4, 0 + bl __divsi3 + cmp r0, 0 + bne _080BF0FC + movs r0, 0x4 + b _080BF14E + .align 2, 0 +_080BF0F8: .4byte 0x00002710 +_080BF0FC: + ldr r1, _080BF10C + adds r0, r4, 0 + bl __divsi3 + cmp r0, 0 + bne _080BF110 + movs r0, 0x5 + b _080BF14E + .align 2, 0 +_080BF10C: .4byte 0x000186a0 +_080BF110: + ldr r1, _080BF120 + adds r0, r4, 0 + bl __divsi3 + cmp r0, 0 + bne _080BF124 + movs r0, 0x6 + b _080BF14E + .align 2, 0 +_080BF120: .4byte 0x000f4240 +_080BF124: + ldr r1, _080BF134 + adds r0, r4, 0 + bl __divsi3 + cmp r0, 0 + bne _080BF138 + movs r0, 0x7 + b _080BF14E + .align 2, 0 +_080BF134: .4byte 0x00989680 +_080BF138: + ldr r1, _080BF148 + adds r0, r4, 0 + bl __divsi3 + cmp r0, 0 + beq _080BF14C +_080BF144: + movs r0, 0x1 + b _080BF14E + .align 2, 0 +_080BF148: .4byte 0x05f5e100 +_080BF14C: + movs r0, 0x8 +_080BF14E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BF0B8 + + thumb_func_start sub_80BF154 +sub_80BF154: @ 80BF154 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r1, 0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r7, 0 + movs r5, 0 +_080BF166: + lsls r4, r5, 1 + adds r0, r6, 0x6 + adds r1, r0, r4 + ldrh r0, [r1] + cmp r0, 0 + beq _080BF186 + bl itemid_get_market_price + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + adds r1, 0xC + adds r1, r4 + ldrh r1, [r1] + muls r0, r1 + adds r7, r0 +_080BF186: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _080BF166 + ldrb r0, [r6, 0x2] + cmp r0, 0x1 + bne _080BF1A0 + asrs r1, r7, 1 + mov r0, r8 + bl sub_80BF088 + b _080BF1A8 +_080BF1A0: + mov r0, r8 + adds r1, r7, 0 + bl sub_80BF088 +_080BF1A8: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BF154 + + thumb_func_start sub_80BF1B4 +sub_80BF1B4: @ 80BF1B4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r7, _080BF1F4 + bl sub_80BFB94 + adds r5, r0, 0 + movs r4, 0x5 +_080BF1C4: + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 2 + adds r1, r0, r7 + ldrb r0, [r1] + cmp r0, r6 + bne _080BF1F8 + movs r3, 0xFF + adds r0, r5, 0 + ands r0, r3 + adds r2, r1, 0 + adds r2, 0x22 + ldrb r2, [r2] + cmp r0, r2 + bne _080BF1F8 + lsrs r0, r5, 8 + ands r0, r3 + adds r1, 0x23 + ldrb r1, [r1] + cmp r0, r1 + bne _080BF1F8 + movs r0, 0x1 + b _080BF204 + .align 2, 0 +_080BF1F4: .4byte gSaveBlock1 + 0x2738 +_080BF1F8: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x17 + bls _080BF1C4 + movs r0, 0 +_080BF204: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80BF1B4 + + thumb_func_start sub_80BF20C +sub_80BF20C: @ 80BF20C + push {r4-r7,lr} + movs r2, 0 +_080BF210: + adds r1, r2, 0x1 + lsls r0, r1, 24 + lsrs r5, r0, 24 + adds r7, r1, 0 + cmp r5, 0x2 + bhi _080BF248 + ldr r6, _080BF258 + lsls r0, r2, 2 + adds r4, r0, r6 +_080BF222: + lsls r0, r5, 2 + adds r3, r0, r6 + ldrh r0, [r4, 0x2] + ldrh r1, [r3, 0x2] + cmp r0, r1 + bcs _080BF23E + ldrh r1, [r4] + adds r2, r0, 0 + ldrh r0, [r3] + strh r0, [r4] + ldrh r0, [r3, 0x2] + strh r0, [r4, 0x2] + strh r1, [r3] + strh r2, [r3, 0x2] +_080BF23E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _080BF222 +_080BF248: + lsls r0, r7, 24 + lsrs r2, r0, 24 + cmp r2, 0x1 + bls _080BF210 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BF258: .4byte gUnknown_02038724 + thumb_func_end sub_80BF20C + + thumb_func_start sub_80BF25C +sub_80BF25C: @ 80BF25C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r1, 0 + ldr r3, _080BF28C + ldr r0, _080BF290 + adds r4, r3, r0 +_080BF26A: + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r3 + ldr r6, _080BF290 + adds r0, r2, r6 + ldrb r0, [r0] + cmp r0, r5 + bne _080BF2AE + ldr r3, _080BF294 + adds r0, r2, r3 + ldrb r2, [r0] + cmp r2, 0x1 + bne _080BF29C + ldr r0, _080BF298 + strh r2, [r0] + b _080BF2BC + .align 2, 0 +_080BF28C: .4byte gSaveBlock1 +_080BF290: .4byte 0x00002738 +_080BF294: .4byte 0x00002739 +_080BF298: .4byte gScriptResult +_080BF29C: + adds r0, r4, 0 + bl sub_80BF55C + adds r0, r4, 0 + bl sub_80BF588 + bl sub_80BF6D8 + b _080BF2BC +_080BF2AE: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x4 + bls _080BF26A + bl sub_80BF6D8 +_080BF2BC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BF25C + + thumb_func_start sub_80BF2C4 +sub_80BF2C4: @ 80BF2C4 + push {lr} + ldr r1, _080BF2E0 + movs r0, 0 + strh r0, [r1] + ldr r0, _080BF2E4 + ldrh r0, [r0] + subs r0, 0x1 + cmp r0, 0x6 + bhi _080BF330 + lsls r0, 2 + ldr r1, _080BF2E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BF2E0: .4byte gScriptResult +_080BF2E4: .4byte gUnknown_0202E8CE +_080BF2E8: .4byte _080BF2EC + .align 2, 0 +_080BF2EC: + .4byte _080BF308 + .4byte _080BF30E + .4byte _080BF314 + .4byte _080BF31A + .4byte _080BF320 + .4byte _080BF326 + .4byte _080BF32C +_080BF308: + bl sub_80BF334 + b _080BF330 +_080BF30E: + bl sub_80BF3A4 + b _080BF330 +_080BF314: + bl sub_80BF3DC + b _080BF330 +_080BF31A: + bl sub_80BF46C + b _080BF330 +_080BF320: + bl sub_80BF478 + b _080BF330 +_080BF326: + bl sub_80BF484 + b _080BF330 +_080BF32C: + bl sub_80BF4BC +_080BF330: + pop {r0} + bx r0 + thumb_func_end sub_80BF2C4 + + thumb_func_start sub_80BF334 +sub_80BF334: @ 80BF334 + push {r4,lr} + movs r0, 0x1 + bl sub_80BF25C + ldr r0, _080BF38C + ldrh r0, [r0] + cmp r0, 0 + bne _080BF384 + ldr r4, _080BF390 + bl sub_810F87C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _080BF394 + adds r0, r1 + movs r1, 0xB + movs r2, 0 + bl GetMonData + movs r1, 0xB + muls r1, r0 + ldr r0, _080BF398 + adds r1, r0 + adds r0, r4, 0 + bl StringCopy + ldr r0, _080BF39C + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BF3A0 + adds r0, r1 + adds r0, 0x4 + movs r1, 0x6 + bl sub_80EB6FC +_080BF384: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BF38C: .4byte gScriptResult +_080BF390: .4byte gStringVar1 +_080BF394: .4byte gPlayerParty +_080BF398: .4byte gSpeciesNames +_080BF39C: .4byte gUnknown_03005D38 +_080BF3A0: .4byte gSaveBlock1 + 0x2738 + thumb_func_end sub_80BF334 + + thumb_func_start sub_80BF3A4 +sub_80BF3A4: @ 80BF3A4 + push {lr} + movs r0, 0x2 + bl sub_80BF25C + ldr r0, _080BF3D0 + ldrh r0, [r0] + cmp r0, 0 + bne _080BF3CC + ldr r0, _080BF3D4 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BF3D8 + adds r0, r1 + adds r0, 0x4 + movs r1, 0x6 + bl sub_80EB6FC +_080BF3CC: + pop {r0} + bx r0 + .align 2, 0 +_080BF3D0: .4byte gScriptResult +_080BF3D4: .4byte gUnknown_03005D38 +_080BF3D8: .4byte gSaveBlock1 + 0x2738 + thumb_func_end sub_80BF3A4 + + thumb_func_start sub_80BF3DC +sub_80BF3DC: @ 80BF3DC + push {r4-r6,lr} + movs r0, 0x3 + bl sub_80BF25C + ldr r0, _080BF450 + ldrh r0, [r0] + cmp r0, 0 + bne _080BF448 + ldr r6, _080BF454 + bl sub_810F87C + lsls r0, 24 + lsrs r0, 24 + movs r5, 0x64 + muls r0, r5 + ldr r4, _080BF458 + adds r0, r4 + movs r1, 0xB + movs r2, 0 + bl GetMonData + movs r1, 0xB + muls r1, r0 + ldr r0, _080BF45C + adds r1, r0 + adds r0, r6, 0 + bl StringCopy + bl sub_810F87C + lsls r0, 24 + lsrs r0, 24 + muls r0, r5 + adds r0, r4 + ldr r4, _080BF460 + movs r1, 0x2 + adds r2, r4, 0 + bl GetMonData + adds r0, r4, 0 + bl StringGetEnd10 + ldr r0, _080BF464 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BF468 + adds r0, r1 + adds r0, 0x1C + movs r1, 0x2 + bl sub_80EB6FC +_080BF448: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BF450: .4byte gScriptResult +_080BF454: .4byte gStringVar1 +_080BF458: .4byte gPlayerParty +_080BF45C: .4byte gSpeciesNames +_080BF460: .4byte gStringVar2 +_080BF464: .4byte gUnknown_03005D38 +_080BF468: .4byte gSaveBlock1 + 0x2738 + thumb_func_end sub_80BF3DC + + thumb_func_start sub_80BF46C +sub_80BF46C: @ 80BF46C + ldr r1, _080BF474 + movs r0, 0x1 + strh r0, [r1] + bx lr + .align 2, 0 +_080BF474: .4byte gScriptResult + thumb_func_end sub_80BF46C + + thumb_func_start sub_80BF478 +sub_80BF478: @ 80BF478 + push {lr} + movs r0, 0x5 + bl sub_80BF25C + pop {r0} + bx r0 + thumb_func_end sub_80BF478 + + thumb_func_start sub_80BF484 +sub_80BF484: @ 80BF484 + push {lr} + movs r0, 0x6 + bl sub_80BF25C + ldr r0, _080BF4B0 + ldrh r0, [r0] + cmp r0, 0 + bne _080BF4AC + ldr r0, _080BF4B4 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BF4B8 + adds r0, r1 + adds r0, 0x4 + movs r1, 0x2 + bl sub_80EB6FC +_080BF4AC: + pop {r0} + bx r0 + .align 2, 0 +_080BF4B0: .4byte gScriptResult +_080BF4B4: .4byte gUnknown_03005D38 +_080BF4B8: .4byte gSaveBlock1 + 0x2738 + thumb_func_end sub_80BF484 + + thumb_func_start sub_80BF4BC +sub_80BF4BC: @ 80BF4BC + push {lr} + movs r0, 0x7 + bl sub_80BF25C + ldr r0, _080BF4E8 + ldrh r0, [r0] + cmp r0, 0 + bne _080BF4E4 + ldr r0, _080BF4EC + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BF4F0 + adds r0, r1 + adds r0, 0x18 + movs r1, 0x1 + bl sub_80EB6FC +_080BF4E4: + pop {r0} + bx r0 + .align 2, 0 +_080BF4E8: .4byte gScriptResult +_080BF4EC: .4byte gUnknown_03005D38 +_080BF4F0: .4byte gSaveBlock1 + 0x2738 + thumb_func_end sub_80BF4BC + + thumb_func_start sub_80BF4F4 +sub_80BF4F4: @ 80BF4F4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + adds r4, r0, 0 + muls r4, r1 + ldr r0, _080BF530 + adds r4, r0 + ldr r5, _080BF534 + adds r0, r4, 0 + movs r1, 0x2 + adds r2, r5, 0 + bl GetMonData + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + movs r1, 0xB + muls r0, r1 + ldr r1, _080BF538 + adds r0, r1 + adds r1, r5, 0 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + beq _080BF53C + movs r0, 0x1 + b _080BF53E + .align 2, 0 +_080BF530: .4byte gPlayerParty +_080BF534: .4byte gStringVar1 +_080BF538: .4byte gSpeciesNames +_080BF53C: + movs r0, 0 +_080BF53E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BF4F4 + + thumb_func_start sub_80BF544 +sub_80BF544: @ 80BF544 + push {lr} + bl sub_810F87C + lsls r0, 24 + lsrs r0, 24 + bl sub_80BF4F4 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80BF544 + + thumb_func_start sub_80BF55C +sub_80BF55C: @ 80BF55C + push {lr} + lsls r1, 24 + lsrs r1, 24 + lsls r2, r1, 3 + adds r2, r1 + lsls r2, 2 + adds r2, r0 + movs r0, 0 + strb r0, [r2] + strb r0, [r2, 0x1] + movs r1, 0 + adds r2, 0x2 + movs r3, 0 +_080BF576: + adds r0, r2, r1 + strb r3, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x21 + bls _080BF576 + pop {r0} + bx r0 + thumb_func_end sub_80BF55C + + thumb_func_start sub_80BF588 +sub_80BF588: @ 80BF588 + push {r4-r7,lr} + adds r4, r0, 0 + movs r5, 0 +_080BF58E: + lsls r0, r5, 3 + adds r0, r5 + lsls r1, r0, 2 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _080BF5D2 + adds r0, r5, 0x1 + b _080BF5CA +_080BF5A0: + lsls r0, r2, 3 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r4 + ldrb r0, [r3] + cmp r0, 0 + beq _080BF5C8 + adds r1, r4 + adds r0, r3, 0 + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80BF55C + b _080BF5D2 +_080BF5C8: + adds r0, r2, 0x1 +_080BF5CA: + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x4 + bls _080BF5A0 +_080BF5D2: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _080BF58E + movs r5, 0x5 +_080BF5DE: + lsls r0, r5, 3 + adds r0, r5 + lsls r1, r0, 2 + adds r0, r1, r4 + ldrb r0, [r0] + adds r5, 0x1 + cmp r0, 0 + bne _080BF62A + lsls r0, r5, 24 + b _080BF624 +_080BF5F2: + lsls r0, r2, 3 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r4 + ldrb r0, [r3] + cmp r0, 0 + beq _080BF620 + adds r1, r4 + adds r0, r3, 0 + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + ldr r0, _080BF61C + adds r1, r2, 0 + bl sub_80BF55C + b _080BF62A + .align 2, 0 +_080BF61C: .4byte gSaveBlock1 + 0x2738 +_080BF620: + adds r0, r2, 0x1 + lsls r0, 24 +_080BF624: + lsrs r2, r0, 24 + cmp r2, 0x17 + bls _080BF5F2 +_080BF62A: + lsls r0, r5, 24 + lsrs r5, r0, 24 + cmp r5, 0x17 + bls _080BF5DE + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BF588 + + thumb_func_start sub_80BF638 +sub_80BF638: @ 80BF638 + push {r4,r5,lr} + adds r4, r0, 0 + adds r0, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, 16 + lsrs r0, 16 + bl sub_80BF674 + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + ldr r0, _080BF66C + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0xB + muls r1, r5 + ldr r2, _080BF670 + adds r1, r2 + bl StringCopy + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080BF66C: .4byte gUnknown_083D1464 +_080BF670: .4byte gSpeciesNames + thumb_func_end sub_80BF638 + + thumb_func_start sub_80BF674 +sub_80BF674: @ 80BF674 + push {r4-r6,lr} + lsls r0, 16 + lsrs r5, r0, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, _080BF694 + bl __umodsi3 + adds r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r6, r4, 0 + b _080BF6B2 + .align 2, 0 +_080BF694: .4byte 0x0000019b +_080BF698: + cmp r4, 0x1 + bne _080BF6A4 + ldr r4, _080BF6A0 + b _080BF6AA + .align 2, 0 +_080BF6A0: .4byte 0x0000019b +_080BF6A4: + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080BF6AA: + cmp r4, r6 + bne _080BF6B2 + adds r4, r5, 0 + b _080BF6CE +_080BF6B2: + adds r0, r4, 0 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl sub_8090D90 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _080BF698 + cmp r4, r5 + beq _080BF698 +_080BF6CE: + adds r0, r4, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80BF674 + + thumb_func_start sub_80BF6D8 +sub_80BF6D8: @ 80BF6D8 + push {lr} + ldr r0, _080BF700 + bl sub_80BF720 + ldr r1, _080BF704 + strb r0, [r1] + ldr r2, _080BF708 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + strh r1, [r2] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080BF710 + ldr r1, _080BF70C + movs r0, 0x1 + b _080BF714 + .align 2, 0 +_080BF700: .4byte gSaveBlock1 + 0x2738 +_080BF704: .4byte gUnknown_03005D38 +_080BF708: .4byte gUnknown_0202E8D0 +_080BF70C: .4byte gScriptResult +_080BF710: + ldr r1, _080BF71C + movs r0, 0 +_080BF714: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080BF71C: .4byte gScriptResult + thumb_func_end sub_80BF6D8 + + thumb_func_start sub_80BF720 +sub_80BF720: @ 80BF720 + push {lr} + adds r2, r0, 0 + movs r1, 0 +_080BF726: + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080BF73A + lsls r0, r1, 24 + asrs r0, 24 + b _080BF748 +_080BF73A: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x4 + bls _080BF726 + movs r0, 0x1 + negs r0, r0 +_080BF748: + pop {r1} + bx r1 + thumb_func_end sub_80BF720 + + thumb_func_start sub_80BF74C +sub_80BF74C: @ 80BF74C + push {lr} + adds r2, r0, 0 + movs r1, 0x5 +_080BF752: + lsls r0, r1, 24 + asrs r1, r0, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080BF768 + adds r0, r1, 0 + b _080BF778 +_080BF768: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + asrs r0, 24 + cmp r0, 0x17 + ble _080BF752 + movs r0, 0x1 + negs r0, r0 +_080BF778: + pop {r1} + bx r1 + thumb_func_end sub_80BF74C + + thumb_func_start sub_80BF77C +sub_80BF77C: @ 80BF77C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + cmp r0, r4 + bls _080BF794 + movs r0, 0x1 + b _080BF796 +_080BF794: + movs r0, 0 +_080BF796: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BF77C + + thumb_func_start sub_80BF79C +sub_80BF79C: @ 80BF79C + push {r4-r6,lr} + adds r4, r0, 0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x6 + bl __umodsi3 + lsls r0, 24 + lsrs r2, r0, 24 + adds r5, r4, 0x4 + ldr r6, _080BF7B8 + b _080BF7C2 + .align 2, 0 +_080BF7B8: .4byte 0x0000ffff +_080BF7BC: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 +_080BF7C2: + cmp r2, 0x6 + bne _080BF7C8 + movs r2, 0 +_080BF7C8: + lsls r1, r2, 1 + adds r0, r5, r1 + ldrh r0, [r0] + adds r3, r4, 0x4 + cmp r0, r6 + beq _080BF7BC + ldr r0, _080BF7E4 + adds r1, r3, r1 + ldrh r1, [r1] + bl sub_80EB3FC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BF7E4: .4byte gStringVar3 + thumb_func_end sub_80BF79C + + thumb_func_start sub_80BF7E8 +sub_80BF7E8: @ 80BF7E8 + push {lr} + adds r2, r0, 0 + movs r3, 0 + movs r1, 0 + ldrb r0, [r2, 0x4] + cmp r0, 0xFF + beq _080BF814 + adds r2, 0x4 +_080BF7F8: + adds r0, r2, r1 + ldrb r0, [r0] + adds r0, r3, r0 + lsls r0, 16 + lsrs r3, r0, 16 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xA + bhi _080BF814 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BF7F8 +_080BF814: + movs r0, 0x7 + ands r3, r0 + adds r0, r3, 0 + pop {r1} + bx r1 + thumb_func_end sub_80BF7E8 + + thumb_func_start sub_80BF820 +sub_80BF820: @ 80BF820 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r4, [sp, 0x1C] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + lsls r3, 16 + lsrs r3, 16 + lsls r4, 16 + lsrs r4, 16 + movs r2, 0 + movs r7, 0xFF +_080BF844: + mov r1, sp + adds r0, r1, r2 + ldrb r1, [r0] + orrs r1, r7 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _080BF844 + cmp r3, 0 + bne _080BF8A6 + ldr r4, [sp, 0x20] + adds r4, 0xF + adds r0, r4, 0 + bl StringLength + lsls r0, 16 + lsrs r2, r0, 16 + cmp r6, 0 + bne _080BF874 + mov r0, sp + adds r1, r4, r5 + b _080BF920 +_080BF874: + cmp r6, 0x1 + bne _080BF880 + mov r0, sp + subs r1, r2, r5 + adds r1, r4, r1 + b _080BF920 +_080BF880: + cmp r6, 0x2 + bne _080BF892 + mov r1, sp + adds r0, r4, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, 0x1 + adds r0, r4, r0 + b _080BF950 +_080BF892: + mov r1, sp + subs r0, r2, 0x2 + subs r0, r5 + adds r0, r4, r0 + ldrb r0, [r0] + strb r0, [r1] + subs r0, r2, 0x1 + subs r0, r5 + adds r0, r4, r0 + b _080BF950 +_080BF8A6: + cmp r3, 0x1 + bne _080BF8F4 + ldr r4, [sp, 0x20] + adds r4, 0x4 + adds r0, r4, 0 + bl StringLength + lsls r0, 16 + lsrs r2, r0, 16 + cmp r6, 0 + bne _080BF8C2 + mov r0, sp + adds r1, r4, r5 + b _080BF920 +_080BF8C2: + cmp r6, 0x1 + bne _080BF8CE + mov r0, sp + subs r1, r2, r5 + adds r1, r4, r1 + b _080BF920 +_080BF8CE: + cmp r6, 0x2 + bne _080BF8E0 + mov r1, sp + adds r0, r4, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, 0x1 + adds r0, r4, r0 + b _080BF950 +_080BF8E0: + mov r1, sp + subs r0, r2, 0x2 + subs r0, r5 + adds r0, r4, r0 + ldrb r0, [r0] + strb r0, [r1] + subs r0, r2, 0x1 + subs r0, r5 + adds r0, r4, r0 + b _080BF950 +_080BF8F4: + movs r0, 0xB + muls r4, r0 + ldr r7, _080BF910 + adds r0, r4, r7 + bl StringLength + lsls r0, 16 + lsrs r2, r0, 16 + cmp r6, 0 + bne _080BF914 + mov r0, sp + adds r1, r5, r4 + b _080BF91E + .align 2, 0 +_080BF910: .4byte gSpeciesNames +_080BF914: + cmp r6, 0x1 + bne _080BF926 + mov r0, sp + subs r1, r2, r5 + adds r1, r4 +_080BF91E: + adds r1, r7 +_080BF920: + ldrb r1, [r1] + strb r1, [r0] + b _080BF954 +_080BF926: + cmp r6, 0x2 + bne _080BF93A + mov r1, sp + adds r0, r5, r4 + adds r0, r7 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r4, 0x1 + adds r0, r5, r0 + b _080BF94E +_080BF93A: + mov r1, sp + subs r0, r2, 0x2 + subs r0, r5 + adds r0, r4 + adds r0, r7 + ldrb r0, [r0] + strb r0, [r1] + subs r0, r2, 0x1 + subs r0, r5 + adds r0, r4 +_080BF94E: + adds r0, r7 +_080BF950: + ldrb r0, [r0] + strb r0, [r1, 0x1] +_080BF954: + ldr r0, _080BF970 + mov r2, r8 + lsls r1, r2, 2 + adds r1, r0 + ldr r0, [r1] + mov r1, sp + bl StringCopy + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BF970: .4byte gUnknown_083D1464 + thumb_func_end sub_80BF820 + + thumb_func_start sub_80BF974 +sub_80BF974: @ 80BF974 + push {r4,lr} + movs r1, 0 + ldr r4, _080BF994 + ldr r0, _080BF998 + ldrh r2, [r0] + ldr r3, _080BF99C +_080BF980: + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _080BF9A0 + movs r0, 0x1 + b _080BF9AC + .align 2, 0 +_080BF994: .4byte gSaveBlock1 +_080BF998: .4byte gUnknown_0202E8CC +_080BF99C: .4byte 0x00002738 +_080BF9A0: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x4 + bls _080BF980 + movs r0, 0 +_080BF9AC: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BF974 + + thumb_func_start sub_80BF9B4 +sub_80BF9B4: @ 80BF9B4 + push {r4,lr} + ldr r0, _080BF9E0 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BF9E4 + adds r0, r1 + ldr r4, _080BF9E8 + movs r1, 0x2 + adds r2, r4, 0 + bl GetMonData + ldr r0, _080BF9EC + adds r1, r4, 0 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + beq _080BF9F0 + bl sub_80BE478 + movs r0, 0x1 + b _080BF9F2 + .align 2, 0 +_080BF9E0: .4byte gUnknown_0202E8CC +_080BF9E4: .4byte gPlayerParty +_080BF9E8: .4byte gStringVar1 +_080BF9EC: .4byte gStringVar3 +_080BF9F0: + movs r0, 0 +_080BF9F2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BF9B4 + + thumb_func_start sub_80BF9F8 +sub_80BF9F8: @ 80BF9F8 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x8 + ldr r0, _080BFAA0 + mov r9, r0 + ldrh r0, [r0] + movs r1, 0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + ldr r6, _080BFAA4 + adds r0, r6 + ldr r2, _080BFAA8 + movs r1, 0x2 + bl GetMonData + mov r1, r9 + ldrh r0, [r1] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + ldr r1, _080BFAAC + mov r10, r1 + movs r1, 0x2 + mov r2, r10 + bl GetMonData + mov r1, r9 + ldrh r0, [r1] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + mov r1, r9 + ldrh r0, [r1] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + bl GetMonGender + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r1, r9 + ldrh r0, [r1] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + movs r1, 0 + movs r2, 0 + bl GetMonData + str r0, [sp] + ldr r0, _080BFAB0 + str r0, [sp, 0x4] + movs r0, 0x3 + mov r1, r10 + adds r2, r5, 0 + adds r3, r4, 0 + bl DoNamingScreen + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BFAA0: .4byte gUnknown_0202E8CC +_080BFAA4: .4byte gPlayerParty +_080BFAA8: .4byte gStringVar3 +_080BFAAC: .4byte gStringVar2 +_080BFAB0: .4byte c2_080CC144 + thumb_func_end sub_80BF9F8 + + thumb_func_start c2_080CC144 +c2_080CC144: @ 80BFAB4 + push {lr} + ldr r0, _080BFAD4 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BFAD8 + adds r0, r1 + ldr r2, _080BFADC + movs r1, 0x2 + bl SetMonData + bl c2_exit_to_overworld_1_continue_scripts_restart_music + pop {r0} + bx r0 + .align 2, 0 +_080BFAD4: .4byte gUnknown_0202E8CC +_080BFAD8: .4byte gPlayerParty +_080BFADC: .4byte gStringVar2 + thumb_func_end c2_080CC144 + + thumb_func_start sub_80BFAE0 +sub_80BFAE0: @ 80BFAE0 + push {r4,lr} + ldr r0, _080BFB04 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BFB08 + adds r0, r1 + ldr r4, _080BFB0C + movs r1, 0x2 + adds r2, r4, 0 + bl GetMonData + adds r0, r4, 0 + bl StringGetEnd10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BFB04: .4byte gUnknown_0202E8CC +_080BFB08: .4byte gPlayerParty +_080BFB0C: .4byte gStringVar1 + thumb_func_end sub_80BFAE0 + + thumb_func_start sub_80BFB10 +sub_80BFB10: @ 80BFB10 + push {r4,lr} + bl sub_80BFB94 + adds r4, r0, 0 + ldr r0, _080BFB38 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BFB3C + adds r0, r1 + movs r1, 0x1 + movs r2, 0 + bl GetMonData + cmp r4, r0 + bne _080BFB44 + ldr r1, _080BFB40 + movs r0, 0 + b _080BFB48 + .align 2, 0 +_080BFB38: .4byte gUnknown_0202E8CC +_080BFB3C: .4byte gPlayerParty +_080BFB40: .4byte gScriptResult +_080BFB44: + ldr r1, _080BFB50 + movs r0, 0x1 +_080BFB48: + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BFB50: .4byte gScriptResult + thumb_func_end sub_80BFB10 + + thumb_func_start sub_80BFB54 +sub_80BFB54: @ 80BFB54 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + adds r2, r1, 0 + cmp r1, 0 + beq _080BFB8A + subs r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bhi _080BFB6E + movs r0, 0x2 + b _080BFB90 +_080BFB6E: + adds r0, r1, 0 + subs r0, 0x15 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bhi _080BFB7E + movs r0, 0x3 + b _080BFB90 +_080BFB7E: + adds r0, r2, 0 + subs r0, 0x29 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bls _080BFB8E +_080BFB8A: + movs r0, 0 + b _080BFB90 +_080BFB8E: + movs r0, 0x4 +_080BFB90: + pop {r1} + bx r1 + thumb_func_end sub_80BFB54 + + thumb_func_start sub_80BFB94 +sub_80BFB94: @ 80BFB94 + ldr r2, _080BFBAC + ldrb r0, [r2, 0xD] + lsls r0, 24 + ldrb r1, [r2, 0xC] + lsls r1, 16 + orrs r0, r1 + ldrb r1, [r2, 0xB] + lsls r1, 8 + orrs r0, r1 + ldrb r1, [r2, 0xA] + orrs r0, r1 + bx lr + .align 2, 0 +_080BFBAC: .4byte gSaveBlock2 + thumb_func_end sub_80BFB94 + + thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV +CheckForBigMovieOrEmergencyNewsOnTV: @ 80BFBB0 + push {lr} + ldr r1, _080BFBD0 + movs r0, 0x4 + ldrsb r0, [r1, r0] + cmp r0, 0x1 + bne _080BFBCC + ldr r0, _080BFBD4 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _080BFBD8 + movs r0, 0x5 + ldrsb r0, [r1, r0] + cmp r0, 0 + beq _080BFBE0 +_080BFBCC: + movs r0, 0 + b _080BFC0A + .align 2, 0 +_080BFBD0: .4byte gSaveBlock1 +_080BFBD4: .4byte gSaveBlock2 +_080BFBD8: + movs r0, 0x5 + ldrsb r0, [r1, r0] + cmp r0, 0x2 + bne _080BFBCC +_080BFBE0: + ldr r0, _080BFC04 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BFBFE + movs r0, 0x83 + lsls r0, 4 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BFC08 +_080BFBFE: + movs r0, 0x1 + b _080BFC0A + .align 2, 0 +_080BFC04: .4byte 0x0000085d +_080BFC08: + movs r0, 0x2 +_080BFC0A: + pop {r1} + bx r1 + thumb_func_end CheckForBigMovieOrEmergencyNewsOnTV + + thumb_func_start GetMomOrDadStringForTVMessage +GetMomOrDadStringForTVMessage: @ 80BFC10 + push {r4,lr} + ldr r1, _080BFC40 + movs r0, 0x4 + ldrsb r0, [r1, r0] + cmp r0, 0x1 + bne _080BFC6C + ldr r0, _080BFC44 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _080BFC54 + movs r0, 0x5 + ldrsb r0, [r1, r0] + cmp r0, 0 + bne _080BFC6C + ldr r0, _080BFC48 + ldr r1, _080BFC4C + bl StringCopy + ldr r0, _080BFC50 + movs r1, 0x1 + bl VarSet + b _080BFC6C + .align 2, 0 +_080BFC40: .4byte gSaveBlock1 +_080BFC44: .4byte gSaveBlock2 +_080BFC48: .4byte gStringVar1 +_080BFC4C: .4byte gOtherText_Mom +_080BFC50: .4byte 0x00004003 +_080BFC54: + movs r0, 0x5 + ldrsb r0, [r1, r0] + cmp r0, 0x2 + bne _080BFC6C + ldr r0, _080BFCB4 + ldr r1, _080BFCB8 + bl StringCopy + ldr r0, _080BFCBC + movs r1, 0x1 + bl VarSet +_080BFC6C: + ldr r4, _080BFCBC + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + beq _080BFCAA + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + beq _080BFCC0 + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bls _080BFCD4 + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080BFCC0 +_080BFCAA: + ldr r0, _080BFCB4 + ldr r1, _080BFCB8 + bl StringCopy + b _080BFD10 + .align 2, 0 +_080BFCB4: .4byte gStringVar1 +_080BFCB8: .4byte gOtherText_Mom +_080BFCBC: .4byte 0x00004003 +_080BFCC0: + ldr r0, _080BFCCC + ldr r1, _080BFCD0 + bl StringCopy + b _080BFD10 + .align 2, 0 +_080BFCCC: .4byte gStringVar1 +_080BFCD0: .4byte gOtherText_Dad +_080BFCD4: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080BFD00 + ldr r0, _080BFCF8 + ldr r1, _080BFCFC + bl StringCopy + adds r0, r4, 0 + movs r1, 0x1 + bl VarSet + b _080BFD10 + .align 2, 0 +_080BFCF8: .4byte gStringVar1 +_080BFCFC: .4byte gOtherText_Mom +_080BFD00: + ldr r0, _080BFD18 + ldr r1, _080BFD1C + bl StringCopy + adds r0, r4, 0 + movs r1, 0x2 + bl VarSet +_080BFD10: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BFD18: .4byte gStringVar1 +_080BFD1C: .4byte gOtherText_Dad + thumb_func_end GetMomOrDadStringForTVMessage + + thumb_func_start sub_80BFD20 +sub_80BFD20: @ 80BFD20 + push {lr} + ldr r0, _080BFD3C + movs r1, 0 + bl VarSet + ldr r0, _080BFD40 + ldrb r1, [r0, 0x5] + ldrb r2, [r0, 0x4] + movs r0, 0x5 + bl RemoveFieldObjectByLocalIdAndMap + pop {r0} + bx r0 + .align 2, 0 +_080BFD3C: .4byte 0x000040bc +_080BFD40: .4byte gSaveBlock1 + thumb_func_end sub_80BFD20 + + thumb_func_start sub_80BFD44 +sub_80BFD44: @ 80BFD44 + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r7, r1, 0 + lsls r2, 24 + lsrs r6, r2, 24 + movs r4, 0 +_080BFD54: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 5 + adds r0, r4 + lsls r0, 2 + ldr r5, _080BFD8C + adds r0, r5 + adds r1, r4, 0 + muls r1, r7 + add r1, r8 + movs r2, 0xE1 + lsls r2, 2 + bl memcpy + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080BFD54 + adds r4, r5, 0 + cmp r6, 0x1 + beq _080BFDBC + cmp r6, 0x1 + bgt _080BFD90 + cmp r6, 0 + beq _080BFD9A + b _080BFDFC + .align 2, 0 +_080BFD8C: .4byte 0x02007000 +_080BFD90: + cmp r6, 0x2 + beq _080BFDCC + cmp r6, 0x3 + beq _080BFDE8 + b _080BFDFC +_080BFD9A: + ldr r0, _080BFDB4 + movs r2, 0xE1 + lsls r2, 2 + adds r1, r4, r2 + movs r3, 0xE1 + lsls r3, 3 + adds r2, r4, r3 + ldr r5, _080BFDB8 + adds r3, r4, r5 + bl sub_80BFE24 + b _080BFDFC + .align 2, 0 +_080BFDB4: .4byte gSaveBlock1 + 0x2738 +_080BFDB8: .4byte 0x00000a8c +_080BFDBC: + ldr r1, _080BFDC8 + movs r0, 0xE1 + lsls r0, 3 + adds r2, r4, r0 + b _080BFDD4 + .align 2, 0 +_080BFDC8: .4byte gSaveBlock1 + 0x2738 +_080BFDCC: + movs r0, 0xE1 + lsls r0, 2 + adds r1, r4, r0 + ldr r2, _080BFDE0 +_080BFDD4: + ldr r5, _080BFDE4 + adds r3, r4, r5 + adds r0, r4, 0 + bl sub_80BFE24 + b _080BFDFC + .align 2, 0 +_080BFDE0: .4byte gSaveBlock1 + 0x2738 +_080BFDE4: .4byte 0x00000a8c +_080BFDE8: + movs r0, 0xE1 + lsls r0, 2 + adds r1, r5, r0 + movs r3, 0xE1 + lsls r3, 3 + adds r2, r5, r3 + ldr r3, _080BFE20 + adds r0, r5, 0 + bl sub_80BFE24 +_080BFDFC: + ldr r4, _080BFE20 + adds r0, r4, 0 + bl sub_80BF588 + bl sub_80C04A0 + adds r0, r4, 0 + bl sub_80BF588 + bl sub_80C01D4 + bl sub_80C0408 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BFE20: .4byte gSaveBlock1 + 0x2738 + thumb_func_end sub_80BFD44 + + thumb_func_start sub_80BFE24 +sub_80BFE24: @ 80BFE24 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + str r0, [sp, 0x10] + str r1, [sp, 0x14] + str r2, [sp, 0x18] + str r3, [sp, 0x1C] + add r0, sp, 0x10 + str r0, [sp] + add r0, sp, 0x14 + str r0, [sp, 0x4] + add r0, sp, 0x18 + str r0, [sp, 0x8] + add r0, sp, 0x1C + str r0, [sp, 0xC] + bl GetLinkPlayerCount + ldr r1, _080BFEA0 + strb r0, [r1] +_080BFE50: + movs r6, 0 + ldr r0, _080BFEA0 + ldrb r1, [r0] + cmp r6, r1 + bcs _080BFE50 + mov r10, r0 +_080BFE5C: + cmp r6, 0 + bne _080BFE64 + ldr r2, _080BFEA4 + strb r6, [r2] +_080BFE64: + lsls r4, r6, 2 + mov r3, sp + adds r0, r3, r4 + ldr r0, [r0] + ldr r0, [r0] + bl sub_80C019C + ldr r1, _080BFEA8 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + adds r7, r4, 0 + cmp r0, r1 + bne _080BFEAC + ldr r1, _080BFEA4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + mov r2, r10 + ldrb r2, [r2] + cmp r0, r2 + beq _080BFF58 + adds r6, 0x1 + mov r9, r6 + b _080BFF3C + .align 2, 0 +_080BFEA0: .4byte gUnknown_03000720 +_080BFEA4: .4byte gUnknown_020387E4 +_080BFEA8: .4byte gUnknown_03000722 +_080BFEAC: + movs r5, 0 + mov r3, r10 + ldrb r0, [r3] + subs r0, 0x1 + adds r2, r6, 0x1 + mov r9, r2 + cmp r5, r0 + bge _080BFF22 + ldr r3, _080BFF4C + mov r8, r3 +_080BFEC0: + adds r0, r6, r5 + adds r4, r0, 0x1 + mov r0, r8 + ldrb r1, [r0] + adds r0, r4, 0 + bl __modsi3 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + ldr r0, [r0] + bl sub_80BF74C + ldr r1, _080BFF50 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BFF12 + mov r2, r8 + ldrb r1, [r2] + adds r0, r4, 0 + bl __modsi3 + adds r2, r0, 0 + lsls r0, r2, 2 + add r0, sp + ldr r0, [r0] + mov r3, sp + adds r1, r3, r7 + ldr r1, [r1] + lsls r2, 24 + lsrs r2, 24 + bl sub_80BFF68 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BFF22 +_080BFF12: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + mov r1, r8 + ldrb r0, [r1] + subs r0, 0x1 + cmp r5, r0 + blt _080BFEC0 +_080BFF22: + mov r2, r10 + ldrb r0, [r2] + subs r0, 0x1 + cmp r5, r0 + bne _080BFF3C + mov r3, sp + adds r0, r3, r7 + ldr r0, [r0] + ldr r0, [r0] + ldr r1, _080BFF54 + ldrb r1, [r1] + bl sub_80BF55C +_080BFF3C: + mov r1, r9 + lsls r0, r1, 24 + lsrs r6, r0, 24 + mov r2, r10 + ldrb r2, [r2] + cmp r6, r2 + bcc _080BFE5C + b _080BFE50 + .align 2, 0 +_080BFF4C: .4byte gUnknown_03000720 +_080BFF50: .4byte gUnknown_03005D38 +_080BFF54: .4byte gUnknown_03000722 +_080BFF58: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BFE24 + + thumb_func_start sub_80BFF68 +sub_80BFF68: @ 80BFF68 + push {r4-r7,lr} + sub sp, 0x4 + lsls r2, 24 + lsrs r7, r2, 24 + ldr r4, [r0] + ldr r6, [r1] + movs r5, 0 + ldr r2, _080BFFA4 + movs r1, 0 + ldrsb r1, [r2, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0] + str r2, [sp] + bl sub_80BFB54 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + ldr r2, [sp] + cmp r0, 0x3 + beq _080BFFD8 + cmp r0, 0x3 + bgt _080BFFA8 + cmp r0, 0x2 + beq _080BFFAE + b _080C0026 + .align 2, 0 +_080BFFA4: .4byte gUnknown_03000722 +_080BFFA8: + cmp r1, 0x4 + beq _080C0000 + b _080C0026 +_080BFFAE: + ldr r0, _080BFFD4 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r4, r0 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + lsls r1, r2, 3 + adds r1, r2 + lsls r1, 2 + adds r1, r6, r1 + adds r2, r7, 0 + bl sub_80C004C + b _080C0022 + .align 2, 0 +_080BFFD4: .4byte gUnknown_03005D38 +_080BFFD8: + ldr r0, _080BFFFC + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r4, r0 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + lsls r1, r2, 3 + adds r1, r2 + lsls r1, 2 + adds r1, r6, r1 + adds r2, r7, 0 + bl sub_80C00B4 + b _080C0022 + .align 2, 0 +_080BFFFC: .4byte gUnknown_03005D38 +_080C0000: + ldr r0, _080C0030 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r4, r0 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + lsls r1, r2, 3 + adds r1, r2 + lsls r1, 2 + adds r1, r6, r1 + adds r2, r7, 0 + bl sub_80C0134 +_080C0022: + lsls r0, 24 + lsrs r5, r0, 24 +_080C0026: + cmp r5, 0x1 + beq _080C0034 + movs r0, 0 + b _080C0040 + .align 2, 0 +_080C0030: .4byte gUnknown_03005D38 +_080C0034: + ldr r0, _080C0048 + ldrb r1, [r0] + adds r0, r6, 0 + bl sub_80BF55C + movs r0, 0x1 +_080C0040: + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080C0048: .4byte gUnknown_03000722 + thumb_func_end sub_80BFF68 + + thumb_func_start sub_80C004C +sub_80C004C: @ 80C004C + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + lsls r0, r2, 24 + lsrs r0, 24 + bl GetLinkPlayerTrainerId + adds r5, r0, 0 + movs r2, 0xFF + ands r0, r2 + adds r1, r4, 0 + adds r1, 0x22 + ldrb r1, [r1] + cmp r0, r1 + bne _080C007C + lsrs r0, r5, 8 + ands r0, r2 + adds r1, r4, 0 + adds r1, 0x23 + ldrb r1, [r1] + cmp r0, r1 + bne _080C007C + movs r0, 0 + b _080C00AC +_080C007C: + adds r1, r4, 0 + adds r1, 0x20 + ldrb r0, [r1] + adds r2, r4, 0 + adds r2, 0x22 + strb r0, [r2] + adds r3, r4, 0 + adds r3, 0x21 + ldrb r0, [r3] + adds r2, 0x1 + strb r0, [r2] + strb r5, [r1] + lsrs r0, r5, 8 + strb r0, [r3] + adds r1, r6, 0 + adds r0, r4, 0 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + movs r0, 0x1 + strb r0, [r6, 0x1] +_080C00AC: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C004C + + thumb_func_start sub_80C00B4 +sub_80C00B4: @ 80C00B4 + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + lsls r0, r2, 24 + lsrs r0, 24 + bl GetLinkPlayerTrainerId + adds r2, r0, 0 + movs r3, 0xFF + ands r0, r3 + adds r1, r4, 0 + adds r1, 0x20 + ldrb r1, [r1] + cmp r0, r1 + bne _080C00E0 + lsrs r0, r2, 8 + ands r0, r3 + adds r1, r4, 0 + adds r1, 0x21 + ldrb r1, [r1] + cmp r0, r1 + beq _080C0100 +_080C00E0: + movs r3, 0xFF + adds r0, r2, 0 + ands r0, r3 + adds r1, r4, 0 + adds r1, 0x22 + lsrs r5, r2, 8 + ldrb r1, [r1] + cmp r0, r1 + bne _080C0104 + adds r0, r5, 0 + ands r0, r3 + adds r1, r4, 0 + adds r1, 0x23 + ldrb r1, [r1] + cmp r0, r1 + bne _080C0104 +_080C0100: + movs r0, 0 + b _080C012C +_080C0104: + ldrb r1, [r4, 0x1E] + adds r0, r4, 0 + adds r0, 0x20 + strb r1, [r0] + ldrb r0, [r4, 0x1F] + adds r1, r4, 0 + adds r1, 0x21 + strb r0, [r1] + strb r2, [r4, 0x1E] + strb r5, [r4, 0x1F] + adds r1, r6, 0 + adds r0, r4, 0 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + movs r0, 0x1 + strb r0, [r6, 0x1] +_080C012C: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C00B4 + + thumb_func_start sub_80C0134 +sub_80C0134: @ 80C0134 + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + lsls r0, r2, 24 + lsrs r0, 24 + bl GetLinkPlayerTrainerId + adds r5, r0, 0 + movs r2, 0xFF + ands r0, r2 + adds r1, r4, 0 + adds r1, 0x22 + ldrb r1, [r1] + cmp r0, r1 + bne _080C0164 + lsrs r0, r5, 8 + ands r0, r2 + adds r1, r4, 0 + adds r1, 0x23 + ldrb r1, [r1] + cmp r0, r1 + bne _080C0164 + movs r0, 0 + b _080C0196 +_080C0164: + adds r1, r4, 0 + adds r1, 0x20 + ldrb r0, [r1] + adds r2, r4, 0 + adds r2, 0x22 + strb r0, [r2] + adds r3, r4, 0 + adds r3, 0x21 + ldrb r0, [r3] + adds r2, 0x1 + strb r0, [r2] + strb r5, [r1] + lsrs r0, r5, 8 + strb r0, [r3] + adds r1, r6, 0 + adds r0, r4, 0 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + movs r0, 0x1 + strb r0, [r6, 0x1] + strh r0, [r6, 0x16] +_080C0196: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C0134 + + thumb_func_start sub_80C019C +sub_80C019C: @ 80C019C + push {lr} + adds r3, r0, 0 + movs r2, 0 +_080C01A2: + lsls r0, r2, 3 + adds r0, r2 + lsls r0, 2 + adds r1, r0, r3 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _080C01C2 + ldrb r0, [r1] + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3B + bhi _080C01C2 + lsls r0, r2, 24 + asrs r0, 24 + b _080C01D0 +_080C01C2: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x17 + bls _080C01A2 + movs r0, 0x1 + negs r0, r0 +_080C01D0: + pop {r1} + bx r1 + thumb_func_end sub_80C019C + + thumb_func_start sub_80C01D4 +sub_80C01D4: @ 80C01D4 + push {r4-r6,lr} + movs r6, 0 +_080C01D8: + ldr r0, _080C01F8 + lsls r2, r6, 3 + adds r1, r2, r6 + lsls r1, 2 + adds r1, r0 + ldr r0, _080C01FC + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x29 + bls _080C01EE + b _080C038C +_080C01EE: + lsls r0, 2 + ldr r1, _080C0200 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C01F8: .4byte gSaveBlock1 +_080C01FC: .4byte 0x00002738 +_080C0200: .4byte _080C0204 + .align 2, 0 +_080C0204: + .4byte _080C0394 + .4byte _080C02AC + .4byte _080C0394 + .4byte _080C02BC + .4byte _080C02CC + .4byte _080C02DC + .4byte _080C02F8 + .4byte _080C0308 + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C0324 + .4byte _080C0394 + .4byte _080C0334 + .4byte _080C0350 + .4byte _080C0368 + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C0394 +_080C02AC: + adds r0, r2, r6 + lsls r0, 2 + ldr r1, _080C02B8 + adds r0, r1 + ldrh r0, [r0, 0x2] + b _080C035A + .align 2, 0 +_080C02B8: .4byte gSaveBlock1 + 0x2738 +_080C02BC: + adds r0, r2, r6 + lsls r0, 2 + ldr r1, _080C02C8 + adds r0, r1 + ldrh r0, [r0, 0x2] + b _080C035A + .align 2, 0 +_080C02C8: .4byte gSaveBlock1 + 0x2738 +_080C02CC: + adds r0, r2, r6 + lsls r0, 2 + ldr r1, _080C02D8 + adds r0, r1 + ldrh r0, [r0, 0x6] + b _080C035A + .align 2, 0 +_080C02D8: .4byte gSaveBlock1 + 0x2738 +_080C02DC: + adds r4, r2, r6 + lsls r4, 2 + ldr r0, _080C02F4 + adds r4, r0 + ldrh r0, [r4, 0x2] + lsls r5, r6, 24 + lsrs r5, 24 + adds r1, r5, 0 + bl sub_80C03C8 + ldrh r0, [r4, 0x1C] + b _080C037E + .align 2, 0 +_080C02F4: .4byte gSaveBlock1 + 0x2738 +_080C02F8: + adds r0, r2, r6 + lsls r0, 2 + ldr r1, _080C0304 + adds r0, r1 + ldrh r0, [r0, 0x2] + b _080C035A + .align 2, 0 +_080C0304: .4byte gSaveBlock1 + 0x2738 +_080C0308: + adds r4, r2, r6 + lsls r4, 2 + ldr r0, _080C0320 + adds r4, r0 + ldrh r0, [r4, 0xA] + lsls r5, r6, 24 + lsrs r5, 24 + adds r1, r5, 0 + bl sub_80C03C8 + ldrh r0, [r4, 0x14] + b _080C037E + .align 2, 0 +_080C0320: .4byte gSaveBlock1 + 0x2738 +_080C0324: + adds r0, r2, r6 + lsls r0, 2 + ldr r1, _080C0330 + adds r0, r1 + ldrh r0, [r0, 0x10] + b _080C035A + .align 2, 0 +_080C0330: .4byte gSaveBlock1 + 0x2738 +_080C0334: + adds r4, r2, r6 + lsls r4, 2 + ldr r0, _080C034C + adds r4, r0 + ldrh r0, [r4, 0xC] + lsls r5, r6, 24 + lsrs r5, 24 + adds r1, r5, 0 + bl sub_80C03C8 + ldrh r0, [r4, 0xE] + b _080C037E + .align 2, 0 +_080C034C: .4byte gSaveBlock1 + 0x2738 +_080C0350: + adds r0, r2, r6 + lsls r0, 2 + ldr r1, _080C0364 + adds r0, r1 + ldrh r0, [r0, 0x4] +_080C035A: + lsls r1, r6, 24 + lsrs r1, 24 + bl sub_80C03C8 + b _080C0394 + .align 2, 0 +_080C0364: .4byte gSaveBlock1 + 0x2738 +_080C0368: + adds r4, r2, r6 + lsls r4, 2 + ldr r0, _080C0388 + adds r4, r0 + ldrh r0, [r4, 0x8] + lsls r5, r6, 24 + lsrs r5, 24 + adds r1, r5, 0 + bl sub_80C03C8 + ldrh r0, [r4, 0x4] +_080C037E: + adds r1, r5, 0 + bl sub_80C03C8 + b _080C0394 + .align 2, 0 +_080C0388: .4byte gSaveBlock1 + 0x2738 +_080C038C: + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_80C03A8 +_080C0394: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x17 + bhi _080C03A0 + b _080C01D8 +_080C03A0: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80C01D4 + + thumb_func_start sub_80C03A8 +sub_80C03A8: @ 80C03A8 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C03C0 + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldr r0, _080C03C4 + adds r1, r0 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_080C03C0: .4byte gSaveBlock1 +_080C03C4: .4byte 0x00002739 + thumb_func_end sub_80C03A8 + + thumb_func_start sub_80C03C8 +sub_80C03C8: @ 80C03C8 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 24 + lsrs r4, r1, 24 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl sub_8090D90 + lsls r0, 24 + asrs r2, r0, 24 + cmp r2, 0 + bne _080C03F8 + ldr r1, _080C0400 + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldr r1, _080C0404 + adds r0, r1 + strb r2, [r0] +_080C03F8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C0400: .4byte gSaveBlock1 +_080C0404: .4byte 0x00002739 + thumb_func_end sub_80C03C8 + + thumb_func_start sub_80C0408 +sub_80C0408: @ 80C0408 + push {r4-r6,lr} + ldr r0, _080C044C + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C0444 + movs r2, 0 + ldr r6, _080C0450 + ldr r4, _080C0454 + movs r3, 0 + ldr r5, _080C0458 +_080C0422: + lsls r0, r2, 3 + adds r0, r2 + lsls r0, 2 + adds r1, r0, r6 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, 0x7 + beq _080C0436 + cmp r0, 0x29 + bne _080C043A +_080C0436: + adds r0, r1, r4 + strb r3, [r0] +_080C043A: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x17 + bls _080C0422 +_080C0444: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C044C: .4byte 0x00000804 +_080C0450: .4byte gSaveBlock1 +_080C0454: .4byte 0x00002739 +_080C0458: .4byte 0x00002738 + thumb_func_end sub_80C0408 + + thumb_func_start sub_80C045C +sub_80C045C: @ 80C045C + push {r4-r6,lr} + movs r5, 0 + ldr r6, _080C0494 +_080C0462: + lsls r0, r5, 3 + adds r0, r5 + lsls r0, 2 + adds r4, r0, r6 + ldr r1, _080C0498 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80BFB54 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _080C0484 + ldr r0, _080C049C + adds r1, r4, r0 + movs r0, 0 + strb r0, [r1] +_080C0484: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bls _080C0462 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C0494: .4byte gSaveBlock1 +_080C0498: .4byte 0x00002738 +_080C049C: .4byte 0x00002739 + thumb_func_end sub_80C045C + + thumb_func_start sub_80C04A0 +sub_80C04A0: @ 80C04A0 + push {r4,r5,lr} + movs r3, 0 + movs r2, 0x5 + ldr r5, _080C0508 + ldr r4, _080C050C +_080C04AA: + lsls r0, r2, 24 + asrs r1, r0, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _080C04C8 + lsls r0, r3, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r3, r0, 24 +_080C04C8: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + asrs r0, 24 + cmp r0, 0x17 + ble _080C04AA + movs r2, 0 + lsls r0, r3, 24 + asrs r0, 24 + movs r1, 0x5 + subs r0, r1, r0 + cmp r2, r0 + bge _080C0502 + adds r5, r0, 0 +_080C04E4: + lsls r1, r2, 24 + asrs r4, r1, 24 + movs r0, 0xA0 + lsls r0, 19 + adds r1, r0 + lsrs r1, 24 + ldr r0, _080C0510 + bl sub_80BF55C + adds r4, 0x1 + lsls r4, 24 + lsrs r2, r4, 24 + asrs r4, 24 + cmp r4, r5 + blt _080C04E4 +_080C0502: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C0508: .4byte gSaveBlock1 +_080C050C: .4byte 0x00002738 +_080C0510: .4byte gSaveBlock1 + 0x2738 + thumb_func_end sub_80C04A0 + + thumb_func_start sub_80C0514 +sub_80C0514: @ 80C0514 + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r7, r1, 0 + lsls r2, 24 + lsrs r5, r2, 24 + movs r4, 0 +_080C0524: + lsls r0, r4, 6 + ldr r6, _080C0550 + adds r0, r6 + adds r1, r4, 0 + muls r1, r7 + add r1, r8 + movs r2, 0x40 + bl memcpy + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080C0524 + adds r4, r6, 0 + cmp r5, 0x1 + beq _080C0578 + cmp r5, 0x1 + bgt _080C0554 + cmp r5, 0 + beq _080C055E + b _080C05AC + .align 2, 0 +_080C0550: .4byte 0x02007000 +_080C0554: + cmp r5, 0x2 + beq _080C0584 + cmp r5, 0x3 + beq _080C059C + b _080C05AC +_080C055E: + ldr r0, _080C0574 + adds r1, r4, 0 + adds r1, 0x40 + adds r2, r4, 0 + adds r2, 0x80 + adds r3, r4, 0 + adds r3, 0xC0 + bl sub_80C05C4 + b _080C05AC + .align 2, 0 +_080C0574: .4byte gSaveBlock1 + 0x2ABC +_080C0578: + ldr r1, _080C0580 + adds r2, r4, 0 + adds r2, 0x80 + b _080C058A + .align 2, 0 +_080C0580: .4byte gSaveBlock1 + 0x2ABC +_080C0584: + adds r1, r4, 0 + adds r1, 0x40 + ldr r2, _080C0598 +_080C058A: + adds r3, r4, 0 + adds r3, 0xC0 + adds r0, r4, 0 + bl sub_80C05C4 + b _080C05AC + .align 2, 0 +_080C0598: .4byte gSaveBlock1 + 0x2ABC +_080C059C: + adds r1, r6, 0 + adds r1, 0x40 + adds r2, r6, 0 + adds r2, 0x80 + ldr r3, _080C05C0 + adds r0, r6, 0 + bl sub_80C05C4 +_080C05AC: + bl sub_80C0750 + bl sub_80C0788 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C05C0: .4byte gSaveBlock1 + 0x2ABC + thumb_func_end sub_80C0514 + + thumb_func_start sub_80C05C4 +sub_80C05C4: @ 80C05C4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + str r0, [sp, 0x10] + str r1, [sp, 0x14] + str r2, [sp, 0x18] + str r3, [sp, 0x1C] + add r0, sp, 0x10 + str r0, [sp] + add r0, sp, 0x14 + str r0, [sp, 0x4] + add r0, sp, 0x18 + str r0, [sp, 0x8] + add r0, sp, 0x1C + str r0, [sp, 0xC] + bl GetLinkPlayerCount + ldr r1, _080C0600 + strb r0, [r1] + movs r0, 0 + mov r10, r0 +_080C05F4: + movs r7, 0 + mov r1, r10 + adds r1, 0x1 + str r1, [sp, 0x20] + b _080C068C + .align 2, 0 +_080C0600: .4byte gUnknown_03000721 +_080C0604: + lsls r4, r7, 2 + mov r1, sp + adds r0, r1, r4 + ldr r0, [r0] + ldr r0, [r0] + mov r1, r10 + bl sub_80C0730 + ldr r1, _080C06B0 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + mov r8, r4 + adds r1, r7, 0x1 + mov r9, r1 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080C0686 + movs r5, 0 + ldr r1, _080C06B4 + ldrb r0, [r1] + subs r0, 0x1 + cmp r5, r0 + bge _080C0686 + adds r6, r1, 0 +_080C0638: + adds r0, r7, r5 + adds r4, r0, 0x1 + ldrb r1, [r6] + adds r0, r4, 0 + bl __modsi3 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + ldr r0, [r0] + bl sub_80BEBC8 + ldr r1, _080C06B8 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080C0678 + ldrb r1, [r6] + adds r0, r4, 0 + bl __modsi3 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + mov r1, sp + add r1, r8 + ldr r1, [r1] + bl sub_80C06BC +_080C0678: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r0, [r6] + subs r0, 0x1 + cmp r5, r0 + blt _080C0638 +_080C0686: + mov r1, r9 + lsls r0, r1, 24 + lsrs r7, r0, 24 +_080C068C: + ldr r0, _080C06B4 + ldrb r0, [r0] + cmp r7, r0 + bcc _080C0604 + ldr r1, [sp, 0x20] + lsls r0, r1, 24 + lsrs r0, 24 + mov r10, r0 + cmp r0, 0xF + bls _080C05F4 + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C06B0: .4byte gUnknown_03000722 +_080C06B4: .4byte gUnknown_03000721 +_080C06B8: .4byte gUnknown_03005D38 + thumb_func_end sub_80C05C4 + + thumb_func_start sub_80C06BC +sub_80C06BC: @ 80C06BC + push {lr} + ldr r0, [r0] + ldr r1, [r1] + ldr r2, _080C06E0 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + lsls r2, 2 + adds r1, r2 + ldr r2, _080C06E4 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + bl sub_80C06E8 + pop {r0} + bx r0 + .align 2, 0 +_080C06E0: .4byte gUnknown_03000722 +_080C06E4: .4byte gUnknown_03005D38 + thumb_func_end sub_80C06BC + + thumb_func_start sub_80C06E8 +sub_80C06E8: @ 80C06E8 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r2, 24 + lsrs r6, r2, 24 + ldrb r3, [r5] + adds r0, r3, 0 + cmp r0, 0 + bne _080C06FE +_080C06FA: + movs r0, 0 + b _080C072A +_080C06FE: + movs r1, 0 + adds r2, r3, 0 + adds r3, r0, 0 +_080C0704: + lsls r0, r1, 2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, r3 + beq _080C06FA + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _080C0704 + lsls r0, r6, 24 + asrs r0, 22 + adds r0, r4 + strb r2, [r0] + movs r1, 0x1 + strb r1, [r0, 0x1] + ldrh r1, [r5, 0x2] + strh r1, [r0, 0x2] + movs r0, 0x1 +_080C072A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C06E8 + + thumb_func_start sub_80C0730 +sub_80C0730: @ 80C0730 + push {lr} + lsls r1, 24 + lsrs r2, r1, 24 + lsls r1, r2, 2 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080C0746 + lsls r0, r2, 24 + asrs r0, 24 + b _080C074A +_080C0746: + movs r0, 0x1 + negs r0, r0 +_080C074A: + pop {r1} + bx r1 + thumb_func_end sub_80C0730 + + thumb_func_start sub_80C0750 +sub_80C0750: @ 80C0750 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _080C0780 +_080C0756: + lsls r0, r4, 2 + adds r0, r5 + ldr r1, _080C0784 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3 + bls _080C076A + adds r0, r4, 0 + bl sub_80BEC10 +_080C076A: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bls _080C0756 + bl sub_80BEC40 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C0780: .4byte gSaveBlock1 +_080C0784: .4byte 0x00002abc + thumb_func_end sub_80C0750 + + thumb_func_start sub_80C0788 +sub_80C0788: @ 80C0788 + push {r4,lr} + ldr r0, _080C07B8 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C07B2 + movs r1, 0 + ldr r4, _080C07BC + ldr r3, _080C07C0 + movs r2, 0 +_080C07A0: + lsls r0, r1, 2 + adds r0, r4 + adds r0, r3 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _080C07A0 +_080C07B2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C07B8: .4byte 0x00000804 +_080C07BC: .4byte gSaveBlock1 +_080C07C0: .4byte 0x00002abd + thumb_func_end sub_80C0788 + + thumb_func_start sub_80C07C4 +sub_80C07C4: @ 80C07C4 + push {lr} + ldr r2, _080C07F8 + ldr r0, _080C07FC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + ldr r2, _080C0800 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080C07E0 + b _080C08F8 +_080C07E0: + subs r2, 0x1 + adds r0, r1, r2 + ldrb r0, [r0] + subs r0, 0x1 + cmp r0, 0x28 + bls _080C07EE + b _080C08F8 +_080C07EE: + lsls r0, 2 + ldr r1, _080C0804 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C07F8: .4byte gSaveBlock1 +_080C07FC: .4byte gUnknown_0202E8CC +_080C0800: .4byte 0x00002739 +_080C0804: .4byte _080C0808 + .align 2, 0 +_080C0808: + .4byte _080C08AC + .4byte _080C08B2 + .4byte _080C08B8 + .4byte _080C08BE + .4byte _080C08E2 + .4byte _080C08CA + .4byte _080C08D0 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08D6 + .4byte _080C08DC + .4byte _080C08E8 + .4byte _080C08EE + .4byte _080C08F4 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08C4 +_080C08AC: + bl DoTVShowPokemonFanClubLetter + b _080C08F8 +_080C08B2: + bl DoTVShowRecentHappenings + b _080C08F8 +_080C08B8: + bl DoTVShowPokemonFanClubOpinions + b _080C08F8 +_080C08BE: + bl nullsub_22 + b _080C08F8 +_080C08C4: + bl DoTVShowPokemonNewsMassOutbreak + b _080C08F8 +_080C08CA: + bl DoTVShowBravoTrainerPokemonProfile + b _080C08F8 +_080C08D0: + bl sub_80C0B9C + b _080C08F8 +_080C08D6: + bl DoTVShowPokemonTodaySuccessfulCapture + b _080C08F8 +_080C08DC: + bl DoTVShowTodaysSmartShopper + b _080C08F8 +_080C08E2: + bl DoTVShowTheNameRaterShow + b _080C08F8 +_080C08E8: + bl DoTVShowPokemonTodayFailedCapture + b _080C08F8 +_080C08EE: + bl DoTVShowPokemonAngler + b _080C08F8 +_080C08F4: + bl DoTVShowTheWorldOfMasters +_080C08F8: + pop {r0} + bx r0 + thumb_func_end sub_80C07C4 + + thumb_func_start sub_80C08FC +sub_80C08FC: @ 80C08FC + push {r4,r5,lr} + adds r5, r0, 0 + lsls r4, r2, 24 + lsrs r4, 24 + bl StringCopy + cmp r4, 0x1 + bhi _080C0914 + adds r0, r5, 0 + movs r1, 0x1 + bl ConvertInternationalString +_080C0914: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C08FC + + thumb_func_start DoTVShowBravoTrainerPokemonProfile +DoTVShowBravoTrainerPokemonProfile: @ 80C091C + push {r4,r5,lr} + ldr r0, _080C0948 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C094C + adds r4, r0, r1 + ldr r1, _080C0950 + movs r0, 0 + strh r0, [r1] + ldr r0, _080C0954 + ldrb r5, [r0] + cmp r5, 0x8 + bls _080C093C + b _080C0B7A +_080C093C: + lsls r0, r5, 2 + ldr r1, _080C0958 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C0948: .4byte gUnknown_0202E8CC +_080C094C: .4byte gSaveBlock1 + 0x2738 +_080C0950: .4byte gScriptResult +_080C0954: .4byte gUnknown_020387E8 +_080C0958: .4byte _080C095C + .align 2, 0 +_080C095C: + .4byte _080C0980 + .4byte _080C09D8 + .4byte _080C0A10 + .4byte _080C0A40 + .4byte _080C0A74 + .4byte _080C0AA8 + .4byte _080C0AEC + .4byte _080C0B34 + .4byte _080C0B64 +_080C0980: + ldr r0, _080C09C0 + adds r1, r4, 0 + adds r1, 0x16 + ldrb r2, [r4, 0x1E] + bl sub_80C08FC + ldrb r1, [r4, 0x13] + lsls r1, 29 + lsrs r1, 29 + movs r0, 0x1 + bl CopyContestCategoryToStringVar + ldrb r1, [r4, 0x13] + lsls r1, 27 + lsrs r1, 30 + movs r0, 0x2 + bl sub_80BEF10 + ldrh r1, [r4, 0x2] + movs r0, 0xB + muls r0, r1 + ldr r1, _080C09C4 + adds r0, r1 + adds r1, r4, 0 + adds r1, 0x8 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + bne _080C09CC + ldr r1, _080C09C8 + movs r0, 0x8 + b _080C0B78 + .align 2, 0 +_080C09C0: .4byte gStringVar1 +_080C09C4: .4byte gSpeciesNames +_080C09C8: .4byte gUnknown_020387E8 +_080C09CC: + ldr r1, _080C09D4 + movs r0, 0x1 + b _080C0B78 + .align 2, 0 +_080C09D4: .4byte gUnknown_020387E8 +_080C09D8: + ldr r0, _080C0A04 + ldrh r2, [r4, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C0A08 + adds r1, r2 + bl StringCopy + ldr r0, _080C0A0C + adds r1, r4, 0 + adds r1, 0x8 + ldrb r2, [r4, 0x1F] + bl sub_80C08FC + ldrb r1, [r4, 0x13] + lsls r1, 29 + lsrs r1, 29 + movs r0, 0x2 + bl CopyContestCategoryToStringVar + b _080C0B74 + .align 2, 0 +_080C0A04: .4byte gStringVar1 +_080C0A08: .4byte gSpeciesNames +_080C0A0C: .4byte gStringVar2 +_080C0A10: + ldr r0, _080C0A2C + adds r1, r4, 0 + adds r1, 0x16 + ldrb r2, [r4, 0x1E] + bl sub_80C08FC + ldrb r1, [r4, 0x13] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + bne _080C0A34 + ldr r1, _080C0A30 + movs r0, 0x3 + b _080C0B78 + .align 2, 0 +_080C0A2C: .4byte gStringVar1 +_080C0A30: .4byte gUnknown_020387E8 +_080C0A34: + ldr r1, _080C0A3C + movs r0, 0x4 + b _080C0B78 + .align 2, 0 +_080C0A3C: .4byte gUnknown_020387E8 +_080C0A40: + ldr r0, _080C0A68 + adds r1, r4, 0 + adds r1, 0x16 + ldrb r2, [r4, 0x1E] + bl sub_80C08FC + ldr r0, _080C0A6C + ldrh r1, [r4, 0x4] + bl sub_80EB3FC + ldrb r1, [r4, 0x13] + lsls r1, 25 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x2 + bl sub_80BF088 + ldr r1, _080C0A70 + movs r0, 0x5 + b _080C0B78 + .align 2, 0 +_080C0A68: .4byte gStringVar1 +_080C0A6C: .4byte gStringVar2 +_080C0A70: .4byte gUnknown_020387E8 +_080C0A74: + ldr r0, _080C0A9C + adds r1, r4, 0 + adds r1, 0x16 + ldrb r2, [r4, 0x1E] + bl sub_80C08FC + ldr r0, _080C0AA0 + ldrh r1, [r4, 0x4] + bl sub_80EB3FC + ldrb r1, [r4, 0x13] + lsls r1, 25 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x2 + bl sub_80BF088 + ldr r1, _080C0AA4 + movs r0, 0x5 + b _080C0B78 + .align 2, 0 +_080C0A9C: .4byte gStringVar1 +_080C0AA0: .4byte gStringVar2 +_080C0AA4: .4byte gUnknown_020387E8 +_080C0AA8: + ldr r0, _080C0AD4 + adds r1, r4, 0 + adds r1, 0x16 + ldrb r2, [r4, 0x1E] + bl sub_80C08FC + ldrb r1, [r4, 0x13] + lsls r1, 29 + lsrs r1, 29 + movs r0, 0x1 + bl CopyContestCategoryToStringVar + ldr r0, _080C0AD8 + ldrh r1, [r4, 0x6] + bl sub_80EB3FC + ldrh r0, [r4, 0x14] + cmp r0, 0 + beq _080C0AE0 + ldr r1, _080C0ADC + movs r0, 0x6 + b _080C0B78 + .align 2, 0 +_080C0AD4: .4byte gStringVar1 +_080C0AD8: .4byte gStringVar3 +_080C0ADC: .4byte gUnknown_020387E8 +_080C0AE0: + ldr r1, _080C0AE8 + movs r0, 0x7 + b _080C0B78 + .align 2, 0 +_080C0AE8: .4byte gUnknown_020387E8 +_080C0AEC: + ldr r0, _080C0B1C + ldrh r2, [r4, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C0B20 + adds r1, r2 + bl StringCopy + ldr r0, _080C0B24 + ldrh r2, [r4, 0x14] + movs r1, 0xD + muls r1, r2 + ldr r2, _080C0B28 + adds r1, r2 + bl StringCopy + ldr r0, _080C0B2C + ldrh r1, [r4, 0x6] + bl sub_80EB3FC + ldr r1, _080C0B30 + movs r0, 0x7 + b _080C0B78 + .align 2, 0 +_080C0B1C: .4byte gStringVar1 +_080C0B20: .4byte gSpeciesNames +_080C0B24: .4byte gStringVar2 +_080C0B28: .4byte gMoveNames +_080C0B2C: .4byte gStringVar3 +_080C0B30: .4byte gUnknown_020387E8 +_080C0B34: + ldr r0, _080C0B58 + adds r1, r4, 0 + adds r1, 0x16 + ldrb r2, [r4, 0x1E] + bl sub_80C08FC + ldr r0, _080C0B5C + ldrh r2, [r4, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C0B60 + adds r1, r2 + bl StringCopy + bl TVShowDone + b _080C0B7A + .align 2, 0 +_080C0B58: .4byte gStringVar1 +_080C0B5C: .4byte gStringVar2 +_080C0B60: .4byte gSpeciesNames +_080C0B64: + ldr r0, _080C0B8C + ldrh r2, [r4, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C0B90 + adds r1, r2 + bl StringCopy +_080C0B74: + ldr r1, _080C0B94 + movs r0, 0x2 +_080C0B78: + strb r0, [r1] +_080C0B7A: + ldr r0, _080C0B98 + lsls r1, r5, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C0B8C: .4byte gStringVar1 +_080C0B90: .4byte gSpeciesNames +_080C0B94: .4byte gUnknown_020387E8 +_080C0B98: .4byte gUnknown_083D1524 + thumb_func_end DoTVShowBravoTrainerPokemonProfile + + thumb_func_start sub_80C0B9C +sub_80C0B9C: @ 80C0B9C + push {r4,r5,lr} + ldr r0, _080C0BC8 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C0BCC + adds r4, r0, r1 + ldr r1, _080C0BD0 + movs r0, 0 + strh r0, [r1] + ldr r0, _080C0BD4 + ldrb r5, [r0] + adds r2, r0, 0 + cmp r5, 0xE + bls _080C0BBE + b _080C0DDE +_080C0BBE: + lsls r0, r5, 2 + ldr r1, _080C0BD8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C0BC8: .4byte gUnknown_0202E8CC +_080C0BCC: .4byte gSaveBlock1 + 0x2738 +_080C0BD0: .4byte gScriptResult +_080C0BD4: .4byte gUnknown_020387E8 +_080C0BD8: .4byte _080C0BDC + .align 2, 0 +_080C0BDC: + .4byte _080C0C18 + .4byte _080C0C5C + .4byte _080C0C8C + .4byte _080C0CB0 + .4byte _080C0CDC + .4byte _080C0D24 + .4byte _080C0D30 + .4byte _080C0D3C + .4byte _080C0D42 + .4byte _080C0D42 + .4byte _080C0D42 + .4byte _080C0D5C + .4byte _080C0D88 + .4byte _080C0D88 + .4byte _080C0DC0 +_080C0C18: + ldr r0, _080C0C40 + adds r1, r4, 0x2 + ldrb r2, [r4, 0x1D] + bl sub_80C08FC + ldr r0, _080C0C44 + ldrh r2, [r4, 0xA] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C0C48 + adds r1, r2 + bl StringCopy + ldrh r0, [r4, 0x16] + cmp r0, 0x6 + bls _080C0C50 + ldr r1, _080C0C4C + movs r0, 0x1 + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0C40: .4byte gStringVar1 +_080C0C44: .4byte gStringVar2 +_080C0C48: .4byte gSpeciesNames +_080C0C4C: .4byte gUnknown_020387E8 +_080C0C50: + ldr r1, _080C0C58 + movs r0, 0x2 + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0C58: .4byte gUnknown_020387E8 +_080C0C5C: + ldrb r1, [r4, 0x1A] + movs r0, 0 + bl sub_80BF088 + ldrh r1, [r4, 0x16] + movs r0, 0x1 + bl sub_80BF088 + ldrb r0, [r4, 0x1C] + cmp r0, 0x1 + bne _080C0C80 + ldr r1, _080C0C7C + movs r0, 0x3 + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0C7C: .4byte gUnknown_020387E8 +_080C0C80: + ldr r1, _080C0C88 + movs r0, 0x4 + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0C88: .4byte gUnknown_020387E8 +_080C0C8C: + ldr r0, _080C0CAC + adds r1, r4, 0 + adds r1, 0xC + ldrb r2, [r4, 0x1D] + bl sub_80C08FC + ldrh r1, [r4, 0x16] + adds r1, 0x1 + movs r0, 0x1 + bl sub_80BF088 +_080C0CA2: + ldrb r0, [r4, 0x1B] + cmp r0, 0 + beq _080C0CFE + b _080C0D18 + .align 2, 0 +_080C0CAC: .4byte gStringVar1 +_080C0CB0: + ldr r0, _080C0CD0 + adds r1, r4, 0 + adds r1, 0xC + ldrb r2, [r4, 0x1D] + bl sub_80C08FC + ldr r0, _080C0CD4 + ldrh r2, [r4, 0x14] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C0CD8 + adds r1, r2 + bl StringCopy + b _080C0CA2 + .align 2, 0 +_080C0CD0: .4byte gStringVar1 +_080C0CD4: .4byte gStringVar2 +_080C0CD8: .4byte gSpeciesNames +_080C0CDC: + ldr r0, _080C0D08 + adds r1, r4, 0 + adds r1, 0xC + ldrb r2, [r4, 0x1D] + bl sub_80C08FC + ldr r0, _080C0D0C + ldrh r2, [r4, 0x14] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C0D10 + adds r1, r2 + bl StringCopy + ldrb r0, [r4, 0x1B] + cmp r0, 0 + bne _080C0D18 +_080C0CFE: + ldr r1, _080C0D14 + movs r0, 0x5 + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0D08: .4byte gStringVar1 +_080C0D0C: .4byte gStringVar2 +_080C0D10: .4byte gSpeciesNames +_080C0D14: .4byte gUnknown_020387E8 +_080C0D18: + ldr r1, _080C0D20 + movs r0, 0x6 + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0D20: .4byte gUnknown_020387E8 +_080C0D24: + ldr r0, _080C0D2C + adds r1, r4, 0 + adds r1, 0xC + b _080C0D46 + .align 2, 0 +_080C0D2C: .4byte gStringVar1 +_080C0D30: + ldr r0, _080C0D38 + adds r1, r4, 0 + adds r1, 0xC + b _080C0D46 + .align 2, 0 +_080C0D38: .4byte gStringVar1 +_080C0D3C: + movs r0, 0xB + strb r0, [r2] + b _080C0DDE +_080C0D42: + ldr r0, _080C0D54 + adds r1, r4, 0x2 +_080C0D46: + ldrb r2, [r4, 0x1D] + bl sub_80C08FC + ldr r1, _080C0D58 + movs r0, 0xB + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0D54: .4byte gStringVar1 +_080C0D58: .4byte gUnknown_020387E8 +_080C0D5C: + ldr r0, _080C0D74 + ldrh r1, [r4, 0x18] + bl sub_80EB3FC + ldrb r0, [r4, 0x1B] + cmp r0, 0 + bne _080C0D7C + ldr r1, _080C0D78 + movs r0, 0xC + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0D74: .4byte gStringVar1 +_080C0D78: .4byte gUnknown_020387E8 +_080C0D7C: + ldr r1, _080C0D84 + movs r0, 0xD + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0D84: .4byte gUnknown_020387E8 +_080C0D88: + ldr r0, _080C0DB0 + ldrh r1, [r4, 0x18] + bl sub_80EB3FC + ldr r0, _080C0DB4 + adds r1, r4, 0x2 + ldrb r2, [r4, 0x1D] + bl sub_80C08FC + ldr r0, _080C0DB8 + adds r1, r4, 0 + adds r1, 0xC + ldrb r2, [r4, 0x1D] + bl sub_80C08FC + ldr r1, _080C0DBC + movs r0, 0xE + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0DB0: .4byte gStringVar1 +_080C0DB4: .4byte gStringVar2 +_080C0DB8: .4byte gStringVar3 +_080C0DBC: .4byte gUnknown_020387E8 +_080C0DC0: + ldr r0, _080C0DF0 + adds r1, r4, 0x2 + ldrb r2, [r4, 0x1D] + bl sub_80C08FC + ldr r0, _080C0DF4 + ldrh r2, [r4, 0xA] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C0DF8 + adds r1, r2 + bl StringCopy + bl TVShowDone +_080C0DDE: + ldr r0, _080C0DFC + lsls r1, r5, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C0DF0: .4byte gStringVar1 +_080C0DF4: .4byte gStringVar2 +_080C0DF8: .4byte gSpeciesNames +_080C0DFC: .4byte gUnknown_083D1548 + thumb_func_end sub_80C0B9C + + thumb_func_start DoTVShowTodaysSmartShopper +DoTVShowTodaysSmartShopper: @ 80C0E00 + push {r4-r6,lr} + ldr r0, _080C0E2C + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C0E30 + adds r5, r0, r1 + ldr r1, _080C0E34 + movs r0, 0 + strh r0, [r1] + ldr r0, _080C0E38 + ldrb r6, [r0] + adds r2, r0, 0 + cmp r6, 0xC + bls _080C0E22 + b _080C1014 +_080C0E22: + lsls r0, r6, 2 + ldr r1, _080C0E3C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C0E2C: .4byte gUnknown_0202E8CC +_080C0E30: .4byte gSaveBlock1 + 0x2738 +_080C0E34: .4byte gScriptResult +_080C0E38: .4byte gUnknown_020387E8 +_080C0E3C: .4byte _080C0E40 + .align 2, 0 +_080C0E40: + .4byte _080C0E74 + .4byte _080C0EB0 + .4byte _080C0EF8 + .4byte _080C0F0A + .4byte _080C0EF8 + .4byte _080C0EF8 + .4byte _080C0F34 + .4byte _080C0F64 + .4byte _080C0F94 + .4byte _080C0FA0 + .4byte _080C0FAE + .4byte _080C0FC0 + .4byte _080C1004 +_080C0E74: + ldr r0, _080C0E98 + adds r1, r5, 0 + adds r1, 0x13 + ldrb r2, [r5, 0x3] + bl sub_80C08FC + ldr r0, _080C0E9C + ldrb r1, [r5, 0x12] + movs r2, 0 + bl sub_80FBFB4 + ldrh r0, [r5, 0xC] + cmp r0, 0xFE + bls _080C0EA4 + ldr r1, _080C0EA0 + movs r0, 0xB + strb r0, [r1] + b _080C1014 + .align 2, 0 +_080C0E98: .4byte gStringVar1 +_080C0E9C: .4byte gStringVar2 +_080C0EA0: .4byte gUnknown_020387E8 +_080C0EA4: + ldr r1, _080C0EAC + movs r0, 0x1 + strb r0, [r1] + b _080C1014 + .align 2, 0 +_080C0EAC: .4byte gUnknown_020387E8 +_080C0EB0: + ldr r0, _080C0EEC + adds r1, r5, 0 + adds r1, 0x13 + ldrb r2, [r5, 0x3] + bl sub_80C08FC + ldr r4, _080C0EF0 + ldrh r0, [r5, 0x6] + bl itemid_get_item + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldrh r1, [r5, 0xC] + movs r0, 0x2 + bl sub_80BF088 + ldr r4, _080C0EF4 + bl Random + ldrb r2, [r4] + adds r2, 0x1 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + ands r0, r1 + adds r0, r2 + strb r0, [r4] + b _080C1014 + .align 2, 0 +_080C0EEC: .4byte gStringVar1 +_080C0EF0: .4byte gStringVar2 +_080C0EF4: .4byte gUnknown_020387E8 +_080C0EF8: + ldrh r0, [r5, 0x8] + cmp r0, 0 + beq _080C0F04 + movs r0, 0x6 + strb r0, [r2] + b _080C1014 +_080C0F04: + movs r0, 0xA + strb r0, [r2] + b _080C1014 +_080C0F0A: + ldrh r1, [r5, 0xC] + adds r1, 0x1 + movs r0, 0x2 + bl sub_80BF088 + ldrh r0, [r5, 0x8] + cmp r0, 0 + beq _080C0F28 + ldr r1, _080C0F24 + movs r0, 0x6 + strb r0, [r1] + b _080C1014 + .align 2, 0 +_080C0F24: .4byte gUnknown_020387E8 +_080C0F28: + ldr r1, _080C0F30 + movs r0, 0xA + strb r0, [r1] + b _080C1014 + .align 2, 0 +_080C0F30: .4byte gUnknown_020387E8 +_080C0F34: + ldr r4, _080C0F5C + ldrh r0, [r5, 0x8] + bl itemid_get_item + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldrh r1, [r5, 0xE] + movs r0, 0x2 + bl sub_80BF088 + ldrh r0, [r5, 0xA] + cmp r0, 0 + beq _080C0F7C + ldr r1, _080C0F60 + movs r0, 0x7 + strb r0, [r1] + b _080C1014 + .align 2, 0 +_080C0F5C: .4byte gStringVar2 +_080C0F60: .4byte gUnknown_020387E8 +_080C0F64: + ldr r4, _080C0F8C + ldrh r0, [r5, 0xA] + bl itemid_get_item + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldrh r1, [r5, 0x10] + movs r0, 0x2 + bl sub_80BF088 +_080C0F7C: + ldrb r0, [r5, 0x2] + cmp r0, 0x1 + beq _080C0FE2 + ldr r1, _080C0F90 + movs r0, 0x9 + strb r0, [r1] + b _080C1014 + .align 2, 0 +_080C0F8C: .4byte gStringVar2 +_080C0F90: .4byte gUnknown_020387E8 +_080C0F94: + ldrh r0, [r5, 0xC] + cmp r0, 0xFE + bls _080C0FBA + movs r0, 0xC + strb r0, [r2] + b _080C1014 +_080C0FA0: + movs r0, 0x1 + adds r1, r5, 0 + bl sub_80BF154 + bl TVShowDone + b _080C1014 +_080C0FAE: + ldrb r0, [r5, 0x2] + cmp r0, 0x1 + bne _080C0FBA + movs r0, 0x8 + strb r0, [r2] + b _080C1014 +_080C0FBA: + movs r0, 0x9 + strb r0, [r2] + b _080C1014 +_080C0FC0: + ldr r0, _080C0FEC + adds r1, r5, 0 + adds r1, 0x13 + ldrb r2, [r5, 0x3] + bl sub_80C08FC + ldr r4, _080C0FF0 + ldrh r0, [r5, 0x6] + bl itemid_get_item + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldrb r0, [r5, 0x2] + cmp r0, 0x1 + bne _080C0FF8 +_080C0FE2: + ldr r1, _080C0FF4 + movs r0, 0x8 + strb r0, [r1] + b _080C1014 + .align 2, 0 +_080C0FEC: .4byte gStringVar1 +_080C0FF0: .4byte gStringVar2 +_080C0FF4: .4byte gUnknown_020387E8 +_080C0FF8: + ldr r1, _080C1000 + movs r0, 0xC + strb r0, [r1] + b _080C1014 + .align 2, 0 +_080C1000: .4byte gUnknown_020387E8 +_080C1004: + ldr r0, _080C1028 + adds r1, r5, 0 + adds r1, 0x13 + ldrb r2, [r5, 0x3] + bl sub_80C08FC + bl TVShowDone +_080C1014: + ldr r0, _080C102C + lsls r1, r6, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C1028: .4byte gStringVar1 +_080C102C: .4byte gUnknown_083D14F0 + thumb_func_end DoTVShowTodaysSmartShopper + + thumb_func_start DoTVShowTheNameRaterShow +DoTVShowTheNameRaterShow: @ 80C1030 + push {r4-r7,lr} + sub sp, 0x8 + ldr r0, _080C1060 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C1064 + adds r6, r0, r1 + ldr r1, _080C1068 + movs r0, 0 + strh r0, [r1] + ldr r0, _080C106C + ldrb r7, [r0] + adds r2, r0, 0 + cmp r7, 0x12 + bls _080C1054 + b _080C138A +_080C1054: + lsls r0, r7, 2 + ldr r1, _080C1070 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C1060: .4byte gUnknown_0202E8CC +_080C1064: .4byte gSaveBlock1 + 0x2738 +_080C1068: .4byte gScriptResult +_080C106C: .4byte gUnknown_020387E8 +_080C1070: .4byte _080C1074 + .align 2, 0 +_080C1074: + .4byte _080C10C0 + .4byte _080C1108 + .4byte _080C112A + .4byte _080C1108 + .4byte _080C1108 + .4byte _080C1108 + .4byte _080C1108 + .4byte _080C1108 + .4byte _080C1108 + .4byte _080C1170 + .4byte _080C1170 + .4byte _080C1170 + .4byte _080C136C + .4byte _080C11CC + .4byte _080C1228 + .4byte _080C127C + .4byte _080C12D4 + .4byte _080C1314 + .4byte _080C1370 +_080C10C0: + ldr r0, _080C10F4 + adds r1, r6, 0 + adds r1, 0xF + ldrb r2, [r6, 0x1E] + bl sub_80C08FC + ldr r0, _080C10F8 + ldrh r2, [r6, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C10FC + adds r1, r2 + bl StringCopy + ldr r0, _080C1100 + adds r1, r6, 0x4 + ldrb r2, [r6, 0x1F] + bl sub_80C08FC + ldr r4, _080C1104 + adds r0, r6, 0 + bl sub_80BF7E8 + adds r0, 0x1 + strb r0, [r4] + b _080C138A + .align 2, 0 +_080C10F4: .4byte gStringVar1 +_080C10F8: .4byte gStringVar2 +_080C10FC: .4byte gSpeciesNames +_080C1100: .4byte gStringVar3 +_080C1104: .4byte gUnknown_020387E8 +_080C1108: + ldrb r0, [r6, 0x1A] + cmp r0, 0 + bne _080C1114 + movs r0, 0x9 + strb r0, [r2] + b _080C138A +_080C1114: + cmp r0, 0x1 + bne _080C111E + movs r0, 0xA + strb r0, [r2] + b _080C138A +_080C111E: + cmp r0, 0x2 + beq _080C1124 + b _080C138A +_080C1124: + movs r0, 0xB + strb r0, [r2] + b _080C138A +_080C112A: + ldr r0, _080C1144 + adds r1, r6, 0 + adds r1, 0xF + ldrb r2, [r6, 0x1E] + bl sub_80C08FC + ldrb r0, [r6, 0x1A] + cmp r0, 0 + bne _080C114C + ldr r1, _080C1148 + movs r0, 0x9 + strb r0, [r1] + b _080C138A + .align 2, 0 +_080C1144: .4byte gStringVar1 +_080C1148: .4byte gUnknown_020387E8 +_080C114C: + cmp r0, 0x1 + bne _080C115C + ldr r1, _080C1158 + movs r0, 0xA + strb r0, [r1] + b _080C138A + .align 2, 0 +_080C1158: .4byte gUnknown_020387E8 +_080C115C: + cmp r0, 0x2 + beq _080C1162 + b _080C138A +_080C1162: + ldr r1, _080C116C + movs r0, 0xB + strb r0, [r1] + b _080C138A + .align 2, 0 +_080C116C: .4byte gUnknown_020387E8 +_080C1170: + movs r5, 0 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0 + movs r3, 0x1 + bl sub_80BF820 + ldr r0, _080C11BC + ldr r4, _080C11C0 + ldrb r2, [r6, 0x1F] + adds r1, r4, 0 + bl sub_80C08FC + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_80BF820 + ldr r0, _080C11C4 + ldrb r2, [r6, 0x1F] + adds r1, r4, 0 + bl sub_80C08FC + adds r1, r6, 0x4 + ldrb r2, [r6, 0x1F] + adds r0, r4, 0 + bl sub_80C08FC + ldr r1, _080C11C8 + movs r0, 0xC + strb r0, [r1] + b _080C138A + .align 2, 0 +_080C11BC: .4byte gStringVar3 +_080C11C0: .4byte gStringVar1 +_080C11C4: .4byte gStringVar2 +_080C11C8: .4byte gUnknown_020387E8 +_080C11CC: + movs r5, 0 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0x3 + movs r3, 0x1 + bl sub_80BF820 + ldr r0, _080C1218 + ldr r4, _080C121C + ldrb r2, [r6, 0x1F] + adds r1, r4, 0 + bl sub_80C08FC + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0x2 + movs r3, 0 + bl sub_80BF820 + ldr r0, _080C1220 + ldrb r2, [r6, 0x1E] + adds r1, r4, 0 + bl sub_80C08FC + adds r1, r6, 0 + adds r1, 0xF + ldrb r2, [r6, 0x1E] + adds r0, r4, 0 + bl sub_80C08FC + ldr r1, _080C1224 + movs r0, 0xE + strb r0, [r1] + b _080C138A + .align 2, 0 +_080C1218: .4byte gStringVar3 +_080C121C: .4byte gStringVar1 +_080C1220: .4byte gStringVar2 +_080C1224: .4byte gUnknown_020387E8 +_080C1228: + movs r5, 0 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0x3 + movs r3, 0 + bl sub_80BF820 + ldr r0, _080C1270 + ldr r4, _080C1274 + ldrb r2, [r6, 0x1E] + adds r1, r4, 0 + bl sub_80C08FC + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0x2 + movs r3, 0x1 + bl sub_80BF820 + ldr r0, _080C1278 + ldrb r2, [r6, 0x1F] + adds r1, r4, 0 + bl sub_80C08FC + adds r1, r6, 0 + adds r1, 0xF + ldrb r2, [r6, 0x1E] + adds r0, r4, 0 + bl sub_80C08FC + b _080C1354 + .align 2, 0 +_080C1270: .4byte gStringVar3 +_080C1274: .4byte gStringVar1 +_080C1278: .4byte gStringVar2 +_080C127C: + movs r0, 0 + str r0, [sp] + str r6, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0x2 + movs r3, 0x1 + bl sub_80BF820 + ldr r0, _080C12C4 + ldr r4, _080C12C8 + ldrb r2, [r6, 0x1F] + adds r1, r4, 0 + bl sub_80C08FC + ldrh r1, [r6, 0x2] + movs r0, 0xB + muls r1, r0 + ldr r0, _080C12CC + adds r1, r0 + adds r0, r4, 0 + bl StringCopy + ldrh r0, [r6, 0x2] + str r0, [sp] + str r6, [sp, 0x4] + movs r0, 0x2 + movs r1, 0 + movs r2, 0x3 + movs r3, 0x2 + bl sub_80BF820 + ldr r1, _080C12D0 + movs r0, 0x10 + strb r0, [r1] + b _080C138A + .align 2, 0 +_080C12C4: .4byte gStringVar1 +_080C12C8: .4byte gStringVar2 +_080C12CC: .4byte gSpeciesNames +_080C12D0: .4byte gUnknown_020387E8 +_080C12D4: + movs r0, 0 + str r0, [sp] + str r6, [sp, 0x4] + movs r1, 0 + movs r2, 0x3 + movs r3, 0x1 + bl sub_80BF820 + ldr r0, _080C1308 + ldr r1, _080C130C + ldrb r2, [r6, 0x1F] + bl sub_80C08FC + ldrh r0, [r6, 0x2] + str r0, [sp] + str r6, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0x2 + movs r3, 0x2 + bl sub_80BF820 + ldr r1, _080C1310 + movs r0, 0x11 + strb r0, [r1] + b _080C138A + .align 2, 0 +_080C1308: .4byte gStringVar3 +_080C130C: .4byte gStringVar1 +_080C1310: .4byte gUnknown_020387E8 +_080C1314: + movs r0, 0 + str r0, [sp] + str r6, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0x2 + movs r3, 0x1 + bl sub_80BF820 + ldr r0, _080C135C + ldr r4, _080C1360 + ldrb r2, [r6, 0x1F] + adds r1, r4, 0 + bl sub_80C08FC + ldrh r0, [r6, 0x1C] + str r0, [sp] + str r6, [sp, 0x4] + movs r0, 0x2 + movs r1, 0 + movs r2, 0x3 + movs r3, 0x2 + bl sub_80BF820 + ldrh r1, [r6, 0x1C] + movs r0, 0xB + muls r1, r0 + ldr r0, _080C1364 + adds r1, r0 + adds r0, r4, 0 + bl StringCopy +_080C1354: + ldr r1, _080C1368 + movs r0, 0x12 + strb r0, [r1] + b _080C138A + .align 2, 0 +_080C135C: .4byte gStringVar1 +_080C1360: .4byte gStringVar2 +_080C1364: .4byte gSpeciesNames +_080C1368: .4byte gUnknown_020387E8 +_080C136C: + movs r7, 0x12 + strb r7, [r2] +_080C1370: + ldr r0, _080C13A0 + adds r1, r6, 0x4 + ldrb r2, [r6, 0x1F] + bl sub_80C08FC + ldr r0, _080C13A4 + adds r1, r6, 0 + adds r1, 0xF + ldrb r2, [r6, 0x1E] + bl sub_80C08FC + bl TVShowDone +_080C138A: + ldr r0, _080C13A8 + lsls r1, r7, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C13A0: .4byte gStringVar1 +_080C13A4: .4byte gStringVar2 +_080C13A8: .4byte gUnknown_083D1584 + thumb_func_end DoTVShowTheNameRaterShow + + thumb_func_start DoTVShowPokemonTodaySuccessfulCapture +DoTVShowPokemonTodaySuccessfulCapture: @ 80C13AC + push {r4-r6,lr} + ldr r0, _080C13D8 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C13DC + adds r5, r0, r1 + ldr r1, _080C13E0 + movs r0, 0 + strh r0, [r1] + ldr r0, _080C13E4 + ldrb r6, [r0] + adds r2, r0, 0 + cmp r6, 0xB + bls _080C13CE + b _080C15DC +_080C13CE: + lsls r0, r6, 2 + ldr r1, _080C13E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C13D8: .4byte gUnknown_0202E8CC +_080C13DC: .4byte gSaveBlock1 + 0x2738 +_080C13E0: .4byte gScriptResult +_080C13E4: .4byte gUnknown_020387E8 +_080C13E8: .4byte _080C13EC + .align 2, 0 +_080C13EC: + .4byte _080C141C + .4byte _080C1470 + .4byte _080C1476 + .4byte _080C14B0 + .4byte _080C14E8 + .4byte _080C14EE + .4byte _080C1524 + .4byte _080C1578 + .4byte _080C1578 + .4byte _080C15A8 + .4byte _080C15A8 + .4byte _080C15D8 +_080C141C: + ldr r0, _080C1450 + adds r1, r5, 0 + adds r1, 0x13 + ldrb r2, [r5, 0x2] + bl sub_80C08FC + ldr r0, _080C1454 + ldrh r2, [r5, 0x10] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1458 + adds r1, r2 + bl StringCopy + ldr r0, _080C145C + adds r1, r5, 0x4 + ldrb r2, [r5, 0x3] + bl sub_80C08FC + ldrb r0, [r5, 0xF] + cmp r0, 0x1 + bne _080C1464 + ldr r1, _080C1460 + movs r0, 0x5 + strb r0, [r1] + b _080C15DC + .align 2, 0 +_080C1450: .4byte gStringVar1 +_080C1454: .4byte gStringVar2 +_080C1458: .4byte gSpeciesNames +_080C145C: .4byte gStringVar3 +_080C1460: .4byte gUnknown_020387E8 +_080C1464: + ldr r1, _080C146C + movs r0, 0x1 + strb r0, [r1] + b _080C15DC + .align 2, 0 +_080C146C: .4byte gUnknown_020387E8 +_080C1470: + movs r0, 0x2 + strb r0, [r2] + b _080C15DC +_080C1476: + ldr r4, _080C149C + ldrb r0, [r5, 0xF] + bl itemid_get_item + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldrb r1, [r5, 0x12] + movs r0, 0x2 + bl sub_80BF088 + ldrb r0, [r5, 0x12] + cmp r0, 0x3 + bhi _080C14A4 + ldr r1, _080C14A0 + movs r0, 0x3 + strb r0, [r1] + b _080C15DC + .align 2, 0 +_080C149C: .4byte gStringVar2 +_080C14A0: .4byte gUnknown_020387E8 +_080C14A4: + ldr r1, _080C14AC + movs r0, 0x4 + strb r0, [r1] + b _080C15DC + .align 2, 0 +_080C14AC: .4byte gUnknown_020387E8 +_080C14B0: + ldr r0, _080C14D8 + adds r1, r5, 0 + adds r1, 0x13 + ldrb r2, [r5, 0x2] + bl sub_80C08FC + ldr r0, _080C14DC + ldrh r2, [r5, 0x10] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C14E0 + adds r1, r2 + bl StringCopy + ldr r0, _080C14E4 + adds r1, r5, 0x4 + ldrb r2, [r5, 0x3] + bl sub_80C08FC + b _080C150A + .align 2, 0 +_080C14D8: .4byte gStringVar1 +_080C14DC: .4byte gStringVar2 +_080C14E0: .4byte gSpeciesNames +_080C14E4: .4byte gStringVar3 +_080C14E8: + movs r0, 0x6 + strb r0, [r2] + b _080C15DC +_080C14EE: + ldr r0, _080C1514 + adds r1, r5, 0 + adds r1, 0x13 + ldrb r2, [r5, 0x2] + bl sub_80C08FC + ldr r0, _080C1518 + ldrh r2, [r5, 0x10] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C151C + adds r1, r2 + bl StringCopy +_080C150A: + ldr r1, _080C1520 + movs r0, 0x6 + strb r0, [r1] + b _080C15DC + .align 2, 0 +_080C1514: .4byte gStringVar1 +_080C1518: .4byte gStringVar2 +_080C151C: .4byte gSpeciesNames +_080C1520: .4byte gUnknown_020387E8 +_080C1524: + ldr r0, _080C1564 + adds r1, r5, 0 + adds r1, 0x13 + ldrb r2, [r5, 0x2] + bl sub_80C08FC + ldr r0, _080C1568 + ldrh r2, [r5, 0x10] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C156C + adds r1, r2 + bl StringCopy + ldr r0, _080C1570 + adds r1, r5, 0x4 + ldrb r2, [r5, 0x3] + bl sub_80C08FC + ldr r4, _080C1574 + bl Random + ldrb r2, [r4] + adds r2, 0x1 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + ands r0, r1 + adds r0, r2 + strb r0, [r4] + b _080C15DC + .align 2, 0 +_080C1564: .4byte gStringVar1 +_080C1568: .4byte gStringVar2 +_080C156C: .4byte gSpeciesNames +_080C1570: .4byte gStringVar3 +_080C1574: .4byte gUnknown_020387E8 +_080C1578: + ldr r0, _080C159C + ldrh r1, [r5, 0x10] + movs r4, 0xB + muls r1, r4 + ldr r2, _080C15A0 + adds r1, r2 + bl StringCopy + ldr r0, _080C15A4 + adds r1, r5, 0x4 + ldrb r2, [r5, 0x3] + bl sub_80C08FC + ldrh r1, [r5, 0x10] + movs r0, 0x2 + bl sub_80BF638 + b _080C15C2 + .align 2, 0 +_080C159C: .4byte gStringVar1 +_080C15A0: .4byte gSpeciesNames +_080C15A4: .4byte gStringVar2 +_080C15A8: + ldr r0, _080C15C8 + ldrh r1, [r5, 0x10] + movs r4, 0xB + muls r1, r4 + ldr r2, _080C15CC + adds r1, r2 + bl StringCopy + ldr r0, _080C15D0 + adds r1, r5, 0x4 + ldrb r2, [r5, 0x3] + bl sub_80C08FC +_080C15C2: + ldr r0, _080C15D4 + strb r4, [r0] + b _080C15DC + .align 2, 0 +_080C15C8: .4byte gStringVar1 +_080C15CC: .4byte gSpeciesNames +_080C15D0: .4byte gStringVar2 +_080C15D4: .4byte gUnknown_020387E8 +_080C15D8: + bl TVShowDone +_080C15DC: + ldr r0, _080C15F0 + lsls r1, r6, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C15F0: .4byte gUnknown_083D14C0 + thumb_func_end DoTVShowPokemonTodaySuccessfulCapture + + thumb_func_start DoTVShowPokemonTodayFailedCapture +DoTVShowPokemonTodayFailedCapture: @ 80C15F4 + push {r4,r5,lr} + ldr r0, _080C1620 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C1624 + adds r4, r0, r1 + ldr r1, _080C1628 + movs r0, 0 + strh r0, [r1] + ldr r0, _080C162C + ldrb r5, [r0] + cmp r5, 0x6 + bls _080C1614 + b _080C173C +_080C1614: + lsls r0, r5, 2 + ldr r1, _080C1630 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C1620: .4byte gUnknown_0202E8CC +_080C1624: .4byte gSaveBlock1 + 0x2738 +_080C1628: .4byte gScriptResult +_080C162C: .4byte gUnknown_020387E8 +_080C1630: .4byte _080C1634 + .align 2, 0 +_080C1634: + .4byte _080C1650 + .4byte _080C1684 + .4byte _080C16D8 + .4byte _080C16D8 + .4byte _080C171C + .4byte _080C171C + .4byte _080C1738 +_080C1650: + ldr r0, _080C1674 + adds r1, r4, 0 + adds r1, 0x13 + ldrb r2, [r4, 0x2] + bl sub_80C08FC + ldr r0, _080C1678 + ldrh r2, [r4, 0xC] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C167C + adds r1, r2 + bl StringCopy + ldr r1, _080C1680 + movs r0, 0x1 + strb r0, [r1] + b _080C173C + .align 2, 0 +_080C1674: .4byte gStringVar1 +_080C1678: .4byte gStringVar2 +_080C167C: .4byte gSpeciesNames +_080C1680: .4byte gUnknown_020387E8 +_080C1684: + ldr r0, _080C16B8 + adds r1, r4, 0 + adds r1, 0x13 + ldrb r2, [r4, 0x2] + bl sub_80C08FC + ldr r0, _080C16BC + ldrb r1, [r4, 0x12] + movs r2, 0 + bl sub_80FBFB4 + ldr r0, _080C16C0 + ldrh r2, [r4, 0xE] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C16C4 + adds r1, r2 + bl StringCopy + ldrb r0, [r4, 0x11] + cmp r0, 0x1 + bne _080C16CC + ldr r1, _080C16C8 + movs r0, 0x3 + strb r0, [r1] + b _080C173C + .align 2, 0 +_080C16B8: .4byte gStringVar1 +_080C16BC: .4byte gStringVar2 +_080C16C0: .4byte gStringVar3 +_080C16C4: .4byte gSpeciesNames +_080C16C8: .4byte gUnknown_020387E8 +_080C16CC: + ldr r1, _080C16D4 + movs r0, 0x2 + strb r0, [r1] + b _080C173C + .align 2, 0 +_080C16D4: .4byte gUnknown_020387E8 +_080C16D8: + ldr r0, _080C1708 + adds r1, r4, 0 + adds r1, 0x13 + ldrb r2, [r4, 0x2] + bl sub_80C08FC + ldrb r1, [r4, 0x10] + movs r0, 0x1 + bl sub_80BF088 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _080C1710 + ldr r1, _080C170C + movs r0, 0x5 + strb r0, [r1] + b _080C173C + .align 2, 0 +_080C1708: .4byte gStringVar1 +_080C170C: .4byte gUnknown_020387E8 +_080C1710: + ldr r1, _080C1718 + movs r0, 0x4 + strb r0, [r1] + b _080C173C + .align 2, 0 +_080C1718: .4byte gUnknown_020387E8 +_080C171C: + ldr r0, _080C1730 + adds r1, r4, 0 + adds r1, 0x13 + ldrb r2, [r4, 0x2] + bl sub_80C08FC + ldr r1, _080C1734 + movs r0, 0x6 + strb r0, [r1] + b _080C173C + .align 2, 0 +_080C1730: .4byte gStringVar1 +_080C1734: .4byte gUnknown_020387E8 +_080C1738: + bl TVShowDone +_080C173C: + ldr r0, _080C1750 + lsls r1, r5, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C1750: .4byte gUnknown_083D15D0 + thumb_func_end DoTVShowPokemonTodayFailedCapture + + thumb_func_start DoTVShowPokemonFanClubLetter +DoTVShowPokemonFanClubLetter: @ 80C1754 + push {r4-r7,lr} + ldr r0, _080C1780 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C1784 + adds r5, r0, r1 + ldr r1, _080C1788 + movs r0, 0 + strh r0, [r1] + ldr r0, _080C178C + ldrb r7, [r0] + adds r6, r0, 0 + cmp r7, 0x33 + bls _080C1776 + b _080C1960 +_080C1776: + lsls r0, r7, 2 + ldr r1, _080C1790 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C1780: .4byte gUnknown_0202E8CC +_080C1784: .4byte gSaveBlock1 + 0x2738 +_080C1788: .4byte gScriptResult +_080C178C: .4byte gUnknown_020387E8 +_080C1790: .4byte _080C1794 + .align 2, 0 +_080C1794: + .4byte _080C1864 + .4byte _080C1898 + .4byte _080C18C4 + .4byte _080C18CA + .4byte _080C18E2 + .4byte _080C18E2 + .4byte _080C18E2 + .4byte _080C18F4 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1916 + .4byte _080C193C +_080C1864: + ldr r0, _080C1888 + adds r1, r5, 0 + adds r1, 0x10 + ldrb r2, [r5, 0x18] + bl sub_80C08FC + ldr r0, _080C188C + ldrh r2, [r5, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1890 + adds r1, r2 + bl StringCopy + ldr r1, _080C1894 + movs r0, 0x32 + strb r0, [r1] + b _080C1960 + .align 2, 0 +_080C1888: .4byte gStringVar1 +_080C188C: .4byte gStringVar2 +_080C1890: .4byte gSpeciesNames +_080C1894: .4byte gUnknown_020387E8 +_080C1898: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + ands r0, r1 + adds r2, r0, 0x1 + cmp r2, 0x1 + bne _080C18B8 + ldr r1, _080C18B4 + movs r0, 0x2 + strb r0, [r1] + b _080C1960 + .align 2, 0 +_080C18B4: .4byte gUnknown_020387E8 +_080C18B8: + ldr r1, _080C18C0 + adds r0, r2, 0x2 + strb r0, [r1] + b _080C1960 + .align 2, 0 +_080C18C0: .4byte gUnknown_020387E8 +_080C18C4: + movs r0, 0x33 + strb r0, [r6] + b _080C1960 +_080C18CA: + bl Random + ldrb r4, [r6] + adds r4, 0x1 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + adds r0, r4 + strb r0, [r6] + b _080C1960 +_080C18E2: + adds r0, r5, 0 + bl sub_80BF79C + ldr r1, _080C18F0 + movs r0, 0x7 + strb r0, [r1] + b _080C1960 + .align 2, 0 +_080C18F0: .4byte gUnknown_020387E8 +_080C18F4: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1F + bl __umodsi3 + adds r0, 0x46 + lsls r0, 16 + lsrs r2, r0, 16 + movs r0, 0x2 + adds r1, r2, 0 + bl sub_80BF088 + bl TVShowDone + b _080C1960 +_080C1916: + ldr r4, _080C1934 + adds r1, r5, 0x4 + adds r0, r4, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertEasyChatWordsToString + adds r0, r4, 0 + bl ShowFieldMessage + ldr r1, _080C1938 + movs r0, 0x1 + strb r0, [r1] + b _080C196C + .align 2, 0 +_080C1934: .4byte gStringVar4 +_080C1938: .4byte gUnknown_020387E8 +_080C193C: + ldr r4, _080C1958 + adds r1, r5, 0x4 + adds r0, r4, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertEasyChatWordsToString + adds r0, r4, 0 + bl ShowFieldMessage + ldr r1, _080C195C + movs r0, 0x3 + strb r0, [r1] + b _080C196C + .align 2, 0 +_080C1958: .4byte gStringVar4 +_080C195C: .4byte gUnknown_020387E8 +_080C1960: + ldr r0, _080C1974 + lsls r1, r7, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage +_080C196C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C1974: .4byte gUnknown_083D1470 + thumb_func_end DoTVShowPokemonFanClubLetter + + thumb_func_start DoTVShowRecentHappenings +DoTVShowRecentHappenings: @ 80C1978 + push {r4-r7,lr} + ldr r0, _080C19A4 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C19A8 + adds r5, r0, r1 + ldr r1, _080C19AC + movs r0, 0 + strh r0, [r1] + ldr r0, _080C19B0 + ldrb r6, [r0] + adds r7, r0, 0 + cmp r6, 0x32 + bls _080C199A + b _080C1AF0 +_080C199A: + lsls r0, r6, 2 + ldr r1, _080C19B4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C19A4: .4byte gUnknown_0202E8CC +_080C19A8: .4byte gSaveBlock1 + 0x2738 +_080C19AC: .4byte gScriptResult +_080C19B0: .4byte gUnknown_020387E8 +_080C19B4: .4byte _080C19B8 + .align 2, 0 +_080C19B8: + .4byte _080C1A84 + .4byte _080C1AA8 + .4byte _080C1AC0 + .4byte _080C1AC0 + .4byte _080C1AC0 + .4byte _080C1AC6 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1ACC +_080C1A84: + ldr r0, _080C1AA0 + adds r1, r5, 0 + adds r1, 0x10 + ldrb r2, [r5, 0x18] + bl sub_80C08FC + adds r0, r5, 0 + bl sub_80BF79C + ldr r1, _080C1AA4 + movs r0, 0x32 + strb r0, [r1] + b _080C1AF0 + .align 2, 0 +_080C1AA0: .4byte gStringVar1 +_080C1AA4: .4byte gUnknown_020387E8 +_080C1AA8: + bl Random + ldrb r4, [r7] + adds r4, 0x1 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + adds r0, r4 + strb r0, [r7] + b _080C1AF0 +_080C1AC0: + movs r0, 0x5 + strb r0, [r7] + b _080C1AF0 +_080C1AC6: + bl TVShowDone + b _080C1AF0 +_080C1ACC: + ldr r4, _080C1AE8 + adds r1, r5, 0x4 + adds r0, r4, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertEasyChatWordsToString + adds r0, r4, 0 + bl ShowFieldMessage + ldr r1, _080C1AEC + movs r0, 0x1 + strb r0, [r1] + b _080C1AFC + .align 2, 0 +_080C1AE8: .4byte gStringVar4 +_080C1AEC: .4byte gUnknown_020387E8 +_080C1AF0: + ldr r0, _080C1B04 + lsls r1, r6, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage +_080C1AFC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C1B04: .4byte gUnknown_083D1490 + thumb_func_end DoTVShowRecentHappenings + + thumb_func_start DoTVShowPokemonFanClubOpinions +DoTVShowPokemonFanClubOpinions: @ 80C1B08 + push {r4-r6,lr} + ldr r0, _080C1B30 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C1B34 + adds r4, r0, r1 + ldr r1, _080C1B38 + movs r0, 0 + strh r0, [r1] + ldr r6, _080C1B3C + ldrb r5, [r6] + cmp r5, 0x3 + bgt _080C1B40 + cmp r5, 0x1 + bge _080C1B88 + cmp r5, 0 + beq _080C1B46 + b _080C1BD6 + .align 2, 0 +_080C1B30: .4byte gUnknown_0202E8CC +_080C1B34: .4byte gSaveBlock1 + 0x2738 +_080C1B38: .4byte gScriptResult +_080C1B3C: .4byte gUnknown_020387E8 +_080C1B40: + cmp r5, 0x4 + beq _080C1BC0 + b _080C1BD6 +_080C1B46: + ldr r0, _080C1B78 + adds r1, r4, 0x5 + ldrb r2, [r4, 0xD] + bl sub_80C08FC + ldr r0, _080C1B7C + ldrh r2, [r4, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1B80 + adds r1, r2 + bl StringCopy + ldr r0, _080C1B84 + adds r1, r4, 0 + adds r1, 0x10 + ldrb r2, [r4, 0xE] + bl sub_80C08FC + ldrb r0, [r4, 0x4] + lsrs r0, 4 + adds r0, 0x1 + strb r0, [r6] + b _080C1BD6 + .align 2, 0 +_080C1B78: .4byte gStringVar1 +_080C1B7C: .4byte gStringVar2 +_080C1B80: .4byte gSpeciesNames +_080C1B84: .4byte gStringVar3 +_080C1B88: + ldr r0, _080C1BB0 + adds r1, r4, 0x5 + ldrb r2, [r4, 0xD] + bl sub_80C08FC + ldr r0, _080C1BB4 + ldrh r2, [r4, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1BB8 + adds r1, r2 + bl StringCopy + ldr r0, _080C1BBC + ldrh r1, [r4, 0x1C] + bl sub_80EB3FC + movs r0, 0x4 + strb r0, [r6] + b _080C1BD6 + .align 2, 0 +_080C1BB0: .4byte gStringVar1 +_080C1BB4: .4byte gStringVar2 +_080C1BB8: .4byte gSpeciesNames +_080C1BBC: .4byte gStringVar3 +_080C1BC0: + ldr r0, _080C1BE8 + adds r1, r4, 0x5 + ldrb r2, [r4, 0xD] + bl sub_80C08FC + ldr r0, _080C1BEC + ldrh r1, [r4, 0x1E] + bl sub_80EB3FC + bl TVShowDone +_080C1BD6: + ldr r0, _080C1BF0 + lsls r1, r5, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C1BE8: .4byte gStringVar1 +_080C1BEC: .4byte gStringVar3 +_080C1BF0: .4byte gUnknown_083D14A8 + thumb_func_end DoTVShowPokemonFanClubOpinions + + thumb_func_start nullsub_22 +nullsub_22: @ 80C1BF4 + bx lr + thumb_func_end nullsub_22 + + thumb_func_start DoTVShowPokemonNewsMassOutbreak +DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8 + push {r4,lr} + ldr r0, _080C1C40 + ldrh r0, [r0] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, _080C1C44 + adds r4, r0 + ldr r0, _080C1C48 + ldrb r1, [r4, 0x10] + movs r2, 0 + bl sub_80FBFB4 + ldr r0, _080C1C4C + ldrh r2, [r4, 0xC] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1C50 + adds r1, r2 + bl StringCopy + bl TVShowDone + bl StartMassOutbreak + ldr r1, _080C1C54 + ldr r0, _080C1C58 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl ShowFieldMessage + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C1C40: .4byte gUnknown_0202E8CC +_080C1C44: .4byte gSaveBlock1 + 0x2738 +_080C1C48: .4byte gStringVar1 +_080C1C4C: .4byte gStringVar2 +_080C1C50: .4byte gSpeciesNames +_080C1C54: .4byte gUnknown_083D14BC +_080C1C58: .4byte gUnknown_020387E8 + thumb_func_end DoTVShowPokemonNewsMassOutbreak + + thumb_func_start DoTVShowInSearchOfTrainers +DoTVShowInSearchOfTrainers: @ 80C1C5C + push {r4-r7,lr} + ldr r0, _080C1C7C + movs r1, 0 + strh r1, [r0] + ldr r0, _080C1C80 + ldrb r7, [r0] + adds r2, r0, 0 + cmp r7, 0x8 + bls _080C1C70 + b _080C1DF8 +_080C1C70: + lsls r0, r7, 2 + ldr r1, _080C1C84 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C1C7C: .4byte gScriptResult +_080C1C80: .4byte gUnknown_020387E8 +_080C1C84: .4byte _080C1C88 + .align 2, 0 +_080C1C88: + .4byte _080C1CAC + .4byte _080C1CF0 + .4byte _080C1CF6 + .4byte _080C1D44 + .4byte _080C1DB0 + .4byte _080C1DB0 + .4byte _080C1DB0 + .4byte _080C1DB0 + .4byte _080C1DB6 +_080C1CAC: + ldr r0, _080C1CD0 + ldr r4, _080C1CD4 + ldr r2, _080C1CD8 + adds r1, r4, r2 + ldrb r1, [r1] + movs r2, 0 + bl sub_80FBFB4 + ldr r0, _080C1CDC + adds r4, r0 + ldrb r0, [r4] + cmp r0, 0x1 + bls _080C1CE4 + ldr r1, _080C1CE0 + movs r0, 0x1 + strb r0, [r1] + b _080C1DF8 + .align 2, 0 +_080C1CD0: .4byte gStringVar1 +_080C1CD4: .4byte gSaveBlock1 +_080C1CD8: .4byte 0x00002b18 +_080C1CDC: .4byte 0x00002b19 +_080C1CE0: .4byte gUnknown_020387E8 +_080C1CE4: + ldr r1, _080C1CEC + movs r0, 0x2 + strb r0, [r1] + b _080C1DF8 + .align 2, 0 +_080C1CEC: .4byte gUnknown_020387E8 +_080C1CF0: + movs r0, 0x2 + strb r0, [r2] + b _080C1DF8 +_080C1CF6: + ldr r0, _080C1D0C + ldr r1, _080C1D10 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080C1D14 + movs r0, 0x4 + strb r0, [r2] + b _080C1DF8 + .align 2, 0 +_080C1D0C: .4byte gSaveBlock1 +_080C1D10: .4byte 0x00002b1a +_080C1D14: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080C1D22 + movs r0, 0x5 + strb r0, [r2] + b _080C1DF8 +_080C1D22: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080C1D30 + movs r0, 0x6 + strb r0, [r2] + b _080C1DF8 +_080C1D30: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080C1D3E + movs r0, 0x7 + strb r0, [r2] + b _080C1DF8 +_080C1D3E: + movs r0, 0x3 + strb r0, [r2] + b _080C1DF8 +_080C1D44: + ldr r0, _080C1D88 + ldr r4, _080C1D8C + ldr r2, _080C1D90 + adds r1, r4, r2 + ldrh r1, [r1] + movs r6, 0xB + muls r1, r6 + ldr r5, _080C1D94 + adds r1, r5 + bl StringCopy + ldr r0, _080C1D98 + ldr r2, _080C1D9C + adds r1, r4, r2 + ldrh r2, [r1] + movs r1, 0xD + muls r1, r2 + ldr r2, _080C1DA0 + adds r1, r2 + bl StringCopy + ldr r0, _080C1DA4 + ldr r1, _080C1DA8 + adds r4, r1 + ldrh r1, [r4] + muls r1, r6 + adds r1, r5 + bl StringCopy + ldr r1, _080C1DAC + movs r0, 0x8 + strb r0, [r1] + b _080C1DF8 + .align 2, 0 +_080C1D88: .4byte gStringVar1 +_080C1D8C: .4byte gSaveBlock1 +_080C1D90: .4byte 0x00002b10 +_080C1D94: .4byte gSpeciesNames +_080C1D98: .4byte gStringVar2 +_080C1D9C: .4byte 0x00002b14 +_080C1DA0: .4byte gMoveNames +_080C1DA4: .4byte gStringVar3 +_080C1DA8: .4byte 0x00002b12 +_080C1DAC: .4byte gUnknown_020387E8 +_080C1DB0: + movs r0, 0x8 + strb r0, [r2] + b _080C1DF8 +_080C1DB6: + ldr r0, _080C1E0C + ldr r4, _080C1E10 + ldr r2, _080C1E14 + adds r1, r4, r2 + ldrh r1, [r1] + bl sub_80EB3FC + ldr r0, _080C1E18 + ldr r2, _080C1E1C + adds r1, r4, r2 + ldrh r1, [r1] + movs r6, 0xB + muls r1, r6 + ldr r5, _080C1E20 + adds r1, r5 + bl StringCopy + ldr r0, _080C1E24 + ldr r1, _080C1E28 + adds r4, r1 + ldrh r1, [r4] + muls r1, r6 + adds r1, r5 + bl StringCopy + ldr r1, _080C1E2C + movs r0, 0x1 + strh r0, [r1] + ldr r1, _080C1E30 + movs r0, 0 + strb r0, [r1] + bl TakeTVShowInSearchOfTrainersOffTheAir +_080C1DF8: + ldr r0, _080C1E34 + lsls r1, r7, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C1E0C: .4byte gStringVar1 +_080C1E10: .4byte gSaveBlock1 +_080C1E14: .4byte 0x00002b16 +_080C1E18: .4byte gStringVar2 +_080C1E1C: .4byte 0x00002b10 +_080C1E20: .4byte gSpeciesNames +_080C1E24: .4byte gStringVar3 +_080C1E28: .4byte 0x00002b12 +_080C1E2C: .4byte gScriptResult +_080C1E30: .4byte gUnknown_020387E8 +_080C1E34: .4byte gUnknown_083D1600 + thumb_func_end DoTVShowInSearchOfTrainers + + thumb_func_start DoTVShowPokemonAngler +DoTVShowPokemonAngler: @ 80C1E38 + push {r4,r5,lr} + ldr r0, _080C1E5C + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C1E60 + adds r4, r0, r1 + ldr r0, _080C1E64 + movs r1, 0 + strh r1, [r0] + ldrb r0, [r4, 0x2] + ldrb r2, [r4, 0x3] + cmp r0, r2 + bcs _080C1E6C + ldr r0, _080C1E68 + strb r1, [r0] + b _080C1E74 + .align 2, 0 +_080C1E5C: .4byte gUnknown_0202E8CC +_080C1E60: .4byte gSaveBlock1 + 0x2738 +_080C1E64: .4byte gScriptResult +_080C1E68: .4byte gUnknown_020387E8 +_080C1E6C: + ldr r1, _080C1E80 + movs r0, 0x1 + strb r0, [r1] + adds r0, r1, 0 +_080C1E74: + ldrb r5, [r0] + cmp r5, 0 + beq _080C1E84 + cmp r5, 0x1 + beq _080C1EBC + b _080C1EE4 + .align 2, 0 +_080C1E80: .4byte gUnknown_020387E8 +_080C1E84: + ldr r0, _080C1EB0 + adds r1, r4, 0 + adds r1, 0x13 + ldrb r2, [r4, 0x6] + bl sub_80C08FC + ldr r0, _080C1EB4 + ldrh r2, [r4, 0x4] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1EB8 + adds r1, r2 + bl StringCopy + ldrb r1, [r4, 0x3] + movs r0, 0x2 + bl sub_80BF088 + bl TVShowDone + b _080C1EE4 + .align 2, 0 +_080C1EB0: .4byte gStringVar1 +_080C1EB4: .4byte gStringVar2 +_080C1EB8: .4byte gSpeciesNames +_080C1EBC: + ldr r0, _080C1EF8 + adds r1, r4, 0 + adds r1, 0x13 + ldrb r2, [r4, 0x6] + bl sub_80C08FC + ldr r0, _080C1EFC + ldrh r2, [r4, 0x4] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1F00 + adds r1, r2 + bl StringCopy + ldrb r1, [r4, 0x2] + movs r0, 0x2 + bl sub_80BF088 + bl TVShowDone +_080C1EE4: + ldr r0, _080C1F04 + lsls r1, r5, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C1EF8: .4byte gStringVar1 +_080C1EFC: .4byte gStringVar2 +_080C1F00: .4byte gSpeciesNames +_080C1F04: .4byte gUnknown_083D15EC + thumb_func_end DoTVShowPokemonAngler + + thumb_func_start DoTVShowTheWorldOfMasters +DoTVShowTheWorldOfMasters: @ 80C1F08 + push {r4-r6,lr} + ldr r0, _080C1F30 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C1F34 + adds r4, r0, r1 + ldr r1, _080C1F38 + movs r0, 0 + strh r0, [r1] + ldr r6, _080C1F3C + ldrb r5, [r6] + cmp r5, 0x1 + beq _080C1F6C + cmp r5, 0x1 + bgt _080C1F40 + cmp r5, 0 + beq _080C1F46 + b _080C1FB6 + .align 2, 0 +_080C1F30: .4byte gUnknown_0202E8CC +_080C1F34: .4byte gSaveBlock1 + 0x2738 +_080C1F38: .4byte gScriptResult +_080C1F3C: .4byte gUnknown_020387E8 +_080C1F40: + cmp r5, 0x2 + beq _080C1F8C + b _080C1FB6 +_080C1F46: + ldr r0, _080C1F68 + adds r1, r4, 0 + adds r1, 0x13 + ldrb r2, [r4, 0xB] + bl sub_80C08FC + ldrh r1, [r4, 0x6] + movs r0, 0x1 + bl sub_80BF088 + ldrh r1, [r4, 0x2] + movs r0, 0x2 + bl sub_80BF088 + movs r0, 0x1 + strb r0, [r6] + b _080C1FB6 + .align 2, 0 +_080C1F68: .4byte gStringVar1 +_080C1F6C: + ldr r0, _080C1F84 + ldrh r2, [r4, 0x8] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1F88 + adds r1, r2 + bl StringCopy + movs r0, 0x2 + strb r0, [r6] + b _080C1FB6 + .align 2, 0 +_080C1F84: .4byte gStringVar1 +_080C1F88: .4byte gSpeciesNames +_080C1F8C: + ldr r0, _080C1FC8 + adds r1, r4, 0 + adds r1, 0x13 + ldrb r2, [r4, 0xB] + bl sub_80C08FC + ldr r0, _080C1FCC + ldrb r1, [r4, 0xA] + movs r2, 0 + bl sub_80FBFB4 + ldr r0, _080C1FD0 + ldrh r2, [r4, 0x4] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1FD4 + adds r1, r2 + bl StringCopy + bl TVShowDone +_080C1FB6: + ldr r0, _080C1FD8 + lsls r1, r5, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C1FC8: .4byte gStringVar1 +_080C1FCC: .4byte gStringVar2 +_080C1FD0: .4byte gStringVar3 +_080C1FD4: .4byte gSpeciesNames +_080C1FD8: .4byte gUnknown_083D15F4 + thumb_func_end DoTVShowTheWorldOfMasters + + thumb_func_start TVShowDone +TVShowDone: @ 80C1FDC + ldr r1, _080C2000 + movs r0, 0x1 + strh r0, [r1] + ldr r1, _080C2004 + movs r0, 0 + strb r0, [r1] + ldr r2, _080C2008 + ldr r0, _080C200C + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _080C2010 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + bx lr + .align 2, 0 +_080C2000: .4byte gScriptResult +_080C2004: .4byte gUnknown_020387E8 +_080C2008: .4byte gSaveBlock1 +_080C200C: .4byte gUnknown_0202E8CC +_080C2010: .4byte 0x00002739 + thumb_func_end TVShowDone + + thumb_func_start sub_80C2014 +sub_80C2014: @ 80C2014 + ldr r1, _080C201C + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_080C201C: .4byte gUnknown_020387E8 + thumb_func_end sub_80C2014 + + thumb_func_start sub_80C2020 +sub_80C2020: @ 80C2020 + push {r4,r5,lr} + movs r5, 0x80 + lsls r5, 19 + movs r0, 0x40 + strh r0, [r5] + ldr r4, _080C20F0 + adds r0, r4, 0 + bl SetUpWindowConfig + ldr r0, _080C20F4 + adds r1, r4, 0 + bl InitWindowFromConfig + ldr r1, _080C20F8 + movs r2, 0xF8 + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080C20FC + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080C2100 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080C2104 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _080C2108 + movs r2, 0 + strh r2, [r0] + adds r1, 0x3A + ldr r3, _080C210C + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + subs r3, 0x11 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _080C2110 + strh r2, [r0] + adds r0, 0x4 + strh r2, [r0] + subs r0, 0x2 + strh r2, [r0] + adds r0, 0x4 + strh r2, [r0] + adds r0, 0xA + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + subs r0, 0x44 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + ldrh r0, [r5] + movs r3, 0xFE + lsls r3, 7 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r5] + ldr r0, _080C2114 + strh r2, [r0] + ldr r0, _080C2118 + strh r2, [r0] + ldr r0, _080C211C + strh r2, [r0] + ldr r0, _080C2120 + strh r2, [r0] + ldr r0, _080C2124 + strh r2, [r0] + ldr r0, _080C2128 + strh r2, [r0] + ldr r0, _080C212C + strh r2, [r0] + ldr r0, _080C2130 + strh r2, [r0] + ldr r0, _080C2134 + strh r2, [r0] + ldr r0, _080C2138 + strh r2, [r0] + ldr r0, _080C213C + strh r2, [r0] + ldr r0, _080C2140 + strh r2, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C20F0: .4byte gWindowConfig_81E6FA0 +_080C20F4: .4byte gMenuWindow +_080C20F8: .4byte REG_BG0CNT +_080C20FC: .4byte 0x00001803 +_080C2100: .4byte 0x00001c03 +_080C2104: .4byte 0x00003a03 +_080C2108: .4byte REG_MOSAIC +_080C210C: .4byte 0x00003f3f +_080C2110: .4byte REG_WIN0H +_080C2114: .4byte gUnknown_030042A4 +_080C2118: .4byte gUnknown_030042A0 +_080C211C: .4byte gUnknown_030042C0 +_080C2120: .4byte gUnknown_030041B4 +_080C2124: .4byte gUnknown_03004288 +_080C2128: .4byte gUnknown_03004280 +_080C212C: .4byte gUnknown_030041B0 +_080C2130: .4byte gUnknown_030041B8 +_080C2134: .4byte gUnknown_030042C4 +_080C2138: .4byte gUnknown_03004240 +_080C213C: .4byte gUnknown_03004200 +_080C2140: .4byte gUnknown_03004244 + thumb_func_end sub_80C2020 + + thumb_func_start sub_80C2144 +sub_80C2144: @ 80C2144 + push {r4-r7,lr} + sub sp, 0x4 + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0xC0 + lsls r3, 9 + ldr r0, _080C220C + mov r12, r0 + movs r5, 0 + ldr r1, _080C2210 + movs r4, 0x80 + lsls r4, 5 + ldr r6, _080C2214 + movs r7, 0x85 + lsls r7, 24 +_080C2162: + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080C2162 + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r1, 0xC0 + lsls r1, 19 + mov r0, r12 + bl LZDecompressVram + ldr r0, _080C2218 + ldr r1, _080C221C + bl LZDecompressVram + ldr r0, _080C2220 + ldr r1, _080C2224 + bl LZDecompressVram + ldr r0, _080C2228 + ldr r1, _080C222C + bl LZDecompressVram + bl sub_80C37E4 + ldr r0, _080C2230 + movs r2, 0x80 + lsls r2, 2 + movs r1, 0 + bl LoadCompressedPalette + ldr r0, _080C2234 + bl LoadFontDefaultPalette + movs r6, 0 +_080C21C0: + lsls r5, r6, 24 + lsrs r5, 24 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80C3990 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80C39E4 + movs r5, 0 + lsls r1, r6, 1 + adds r2, r6, 0x1 + mov r12, r2 + lsls r4, 24 + asrs r7, r4, 24 + adds r1, r6 + lsls r1, 6 + lsls r4, r0, 24 +_080C21EC: + ldr r6, _080C2238 + cmp r5, r7 + bge _080C21F4 + adds r6, 0x2 +_080C21F4: + asrs r2, r4, 24 + adds r0, r2, 0 + cmp r2, 0 + bge _080C21FE + negs r0, r2 +_080C21FE: + cmp r5, r0 + bge _080C2240 + ldr r3, _080C223C + cmp r2, 0 + bge _080C2242 + adds r3, 0x2 + b _080C2242 + .align 2, 0 +_080C220C: .4byte gUnknown_08D1977C +_080C2210: .4byte 0x040000d4 +_080C2214: .4byte 0x85000400 +_080C2218: .4byte gUnknown_08D1A490 +_080C221C: .4byte 0x0600d000 +_080C2220: .4byte gUnknown_08D1A364 +_080C2224: .4byte 0x0600e000 +_080C2228: .4byte gUnknown_08D1A250 +_080C222C: .4byte 0x0600f000 +_080C2230: .4byte gUnknown_08D1A618 +_080C2234: .4byte gWindowConfig_81E6FA0 +_080C2238: .4byte 0x000060b2 +_080C223C: .4byte 0x000060a4 +_080C2240: + ldr r3, _080C2264 +_080C2242: + ldr r2, _080C2268 + adds r0, r1, r2 + strh r6, [r0] + adds r2, 0x40 + adds r0, r1, r2 + strh r3, [r0] + adds r1, 0x2 + adds r5, 0x1 + cmp r5, 0x9 + ble _080C21EC + mov r6, r12 + cmp r6, 0x3 + ble _080C21C0 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2264: .4byte 0x000060a2 +_080C2268: .4byte 0x0600c166 + thumb_func_end sub_80C2144 + + thumb_func_start sub_80C226C +sub_80C226C: @ 80C226C + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080C2288 + ldrb r0, [r0] + cmp r5, r0 + bne _080C2294 + ldr r0, _080C228C + ldr r1, _080C2290 + bl StringCopy + adds r2, r0, 0 + b _080C2296 + .align 2, 0 +_080C2288: .4byte gUnknown_02038695 +_080C228C: .4byte gUnknown_020238CC +_080C2290: .4byte gUnknown_083D17DC +_080C2294: + ldr r2, _080C22E8 +_080C2296: + movs r4, 0xFC + strb r4, [r2] + movs r0, 0x6 + strb r0, [r2, 0x1] + movs r0, 0x4 + strb r0, [r2, 0x2] + adds r2, 0x3 + lsls r6, r5, 6 + ldr r7, _080C22EC + adds r1, r6, r7 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + strb r4, [r2] + movs r0, 0x13 + strb r0, [r2, 0x1] + movs r0, 0x32 + strb r0, [r2, 0x2] + adds r2, 0x3 + ldr r1, _080C22F0 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + ldr r0, _080C22F4 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C22FC + lsls r4, r5, 3 + subs r1, r4, r5 + lsls r1, 2 + ldr r0, _080C22F8 + adds r1, r0 + adds r0, r2, 0 + bl StringCopy + b _080C230A + .align 2, 0 +_080C22E8: .4byte gUnknown_020238CC +_080C22EC: .4byte gUnknown_02038572 +_080C22F0: .4byte gUnknown_083D17E0 +_080C22F4: .4byte gUnknown_0203869A +_080C22F8: .4byte gLinkPlayers + 0x8 +_080C22FC: + adds r1, r7, 0 + adds r1, 0xB + adds r1, r6, r1 + adds r0, r2, 0 + bl StringCopy + lsls r4, r5, 3 +_080C230A: + ldr r0, _080C2334 + ldr r1, _080C2338 + adds r2, r4, r5 + lsls r2, 18 + ldr r3, _080C233C + adds r2, r3 + lsrs r2, 16 + lsls r3, r5, 1 + adds r3, r5 + adds r3, 0x4 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp] + movs r3, 0x7 + bl sub_8003460 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2334: .4byte gMenuWindow +_080C2338: .4byte gUnknown_020238CC +_080C233C: .4byte 0x03020000 + thumb_func_end sub_80C226C + + thumb_func_start sub_80C2340 +sub_80C2340: @ 80C2340 + push {r4,lr} + movs r4, 0 +_080C2344: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80C226C + adds r4, 0x1 + cmp r4, 0x3 + ble _080C2344 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C2340 + + thumb_func_start sub_80C2358 +sub_80C2358: @ 80C2358 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _080C240C + ldrb r0, [r5, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r5, 0x8] + movs r0, 0 + bl SetVBlankCallback + bl sub_80C2020 + bl dp12_8087EA4 + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + bl FreeAllSpritePalettes + bl sub_80C2144 + bl sub_80C310C + movs r0, 0 + movs r1, 0x1 + bl sub_80C30D4 + bl sub_80C2340 + ldr r4, _080C2410 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x18 + bl memset + adds r0, r4, 0 + adds r0, 0x18 + movs r1, 0 + movs r2, 0x50 + bl memset + bl sub_80C33DC + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldrb r1, [r5, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r5, 0x8] + ldr r0, _080C2414 + movs r1, 0x5 + bl CreateTask + strb r0, [r4, 0x2] + ldr r0, _080C2418 + bl SetMainCallback2 + ldr r1, _080C241C + movs r0, 0xF0 + strh r0, [r1] + ldr r1, _080C2420 + ldr r2, _080C2424 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080C2428 + movs r1, 0x14 + bl CreateTask + bl sub_80C3F00 + movs r0, 0xDF + lsls r0, 1 + bl PlayBGM + ldr r0, _080C242C + bl SetVBlankCallback + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C240C: .4byte gPaletteFade +_080C2410: .4byte 0x02018000 +_080C2414: .4byte sub_80C24F4 +_080C2418: .4byte sub_80C2430 +_080C241C: .4byte gUnknown_03004200 +_080C2420: .4byte gUnknown_03004244 +_080C2424: .4byte 0x000080a0 +_080C2428: .4byte sub_80C2F28 +_080C242C: .4byte sub_80C2448 + thumb_func_end sub_80C2358 + + thumb_func_start sub_80C2430 +sub_80C2430: @ 80C2430 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_80C2430 + + thumb_func_start sub_80C2448 +sub_80C2448: @ 80C2448 + push {lr} + ldr r1, _080C24C0 + ldr r0, _080C24C4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24C8 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24CC + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24D0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24D4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24D8 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24DC + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24E0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x22 + ldr r0, _080C24E4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + ldr r0, _080C24E8 + ldrh r0, [r0] + strh r0, [r1] + subs r1, 0x2 + ldr r0, _080C24EC + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + ldr r0, _080C24F0 + ldrh r0, [r0] + strh r0, [r1] + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_8089668 + pop {r0} + bx r0 + .align 2, 0 +_080C24C0: .4byte REG_BG0HOFS +_080C24C4: .4byte gUnknown_030042A4 +_080C24C8: .4byte gUnknown_030042A0 +_080C24CC: .4byte gUnknown_030042C0 +_080C24D0: .4byte gUnknown_030041B4 +_080C24D4: .4byte gUnknown_03004288 +_080C24D8: .4byte gUnknown_03004280 +_080C24DC: .4byte gUnknown_030041B0 +_080C24E0: .4byte gUnknown_030041B8 +_080C24E4: .4byte gUnknown_030042C4 +_080C24E8: .4byte gUnknown_03004240 +_080C24EC: .4byte gUnknown_03004200 +_080C24F0: .4byte gUnknown_03004244 + thumb_func_end sub_80C2448 + + thumb_func_start sub_80C24F4 +sub_80C24F4: @ 80C24F4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r2, r4, 0 + ldr r0, _080C252C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080C254E + ldr r0, _080C2530 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C2540 + ldr r0, _080C2534 + bl sub_80C3698 + ldr r1, _080C2538 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C253C + str r1, [r0] + b _080C254E + .align 2, 0 +_080C252C: .4byte gPaletteFade +_080C2530: .4byte gUnknown_0203869A +_080C2534: .4byte gOtherText_LinkStandby +_080C2538: .4byte gTasks +_080C253C: .4byte sub_80C255C +_080C2540: + ldr r0, _080C2554 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C2558 + str r0, [r1] +_080C254E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C2554: .4byte gTasks +_080C2558: .4byte sub_80C2600 + thumb_func_end sub_80C24F4 + + thumb_func_start sub_80C255C +sub_80C255C: @ 80C255C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C2594 + ldrb r0, [r0] + cmp r0, 0 + beq _080C258C + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _080C258C + ldr r0, _080C2598 + movs r1, 0 + bl CreateTask + ldr r1, _080C259C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C25A0 + str r1, [r0] +_080C258C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C2594: .4byte gReceivedRemoteLinkPlayers +_080C2598: .4byte sub_80C25A4 +_080C259C: .4byte gTasks +_080C25A0: .4byte TaskDummy + thumb_func_end sub_80C255C + + thumb_func_start sub_80C25A4 +sub_80C25A4: @ 80C25A4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C25B8 + ldr r2, _080C25BC + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080C25B8: .4byte sub_80C89DC +_080C25BC: .4byte sub_80C25C0 + thumb_func_end sub_80C25A4 + + thumb_func_start sub_80C25C0 +sub_80C25C0: @ 80C25C0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C25EC + adds r0, r4, 0 + bl DestroyTask + ldr r2, _080C25F4 + ldr r0, _080C25F8 + ldrb r1, [r0, 0x2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _080C25FC + str r1, [r0] + bl sub_80C3764 +_080C25EC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C25F4: .4byte gTasks +_080C25F8: .4byte 0x02018000 +_080C25FC: .4byte sub_80C2600 + thumb_func_end sub_80C25C0 + + thumb_func_start sub_80C2600 +sub_80C2600: @ 80C2600 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C2644 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r5, r1, r2 + ldrh r1, [r5, 0x8] + movs r2, 0x8 + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _080C2654 + ldr r0, _080C2648 + movs r1, 0x14 + bl CreateTask + ldr r4, _080C264C + ldr r0, _080C2650 + ldrb r1, [r0] + adds r0, r4, 0 + bl sub_80C3158 + adds r0, r4, 0 + bl sub_80C34AC + lsls r0, 16 + asrs r0, 16 + movs r3, 0x88 + lsls r3, 3 + movs r1, 0x90 + movs r2, 0x78 + b _080C26A6 + .align 2, 0 +_080C2644: .4byte gTasks +_080C2648: .4byte sub_80C2F64 +_080C264C: .4byte gContestText_AnnounceResults +_080C2650: .4byte 0x02018000 +_080C2654: + cmp r0, 0x1 + bne _080C2668 + ldr r0, _080C2664 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _080C26D4 + b _080C267C + .align 2, 0 +_080C2664: .4byte 0x02018000 +_080C2668: + cmp r0, 0x2 + bne _080C2684 + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080C26D4 + movs r0, 0 +_080C267C: + strh r0, [r5, 0xA] + adds r0, r1, 0x1 + strh r0, [r5, 0x8] + b _080C26D4 +_080C2684: + cmp r0, 0x3 + bne _080C26C0 + ldr r4, _080C26B4 + ldr r0, _080C26B8 + ldrb r1, [r0] + adds r0, r4, 0 + bl sub_80C3158 + adds r0, r4, 0 + bl sub_80C34AC + lsls r0, 16 + asrs r0, 16 + ldr r2, _080C26BC + movs r3, 0x88 + lsls r3, 3 + movs r1, 0x90 +_080C26A6: + bl sub_80C34CC + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080C26D4 + .align 2, 0 +_080C26B4: .4byte gContestText_PreliminaryResults +_080C26B8: .4byte 0x02018000 +_080C26BC: .4byte 0x0000ffff +_080C26C0: + cmp r0, 0x4 + bne _080C26D4 + ldr r0, _080C26DC + ldrb r0, [r0, 0x4] + cmp r0, 0x2 + bne _080C26D4 + movs r0, 0 + strh r0, [r5, 0x8] + ldr r0, _080C26E0 + str r0, [r5] +_080C26D4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C26DC: .4byte 0x02018000 +_080C26E0: .4byte sub_80C26E4 + thumb_func_end sub_80C2600 + + thumb_func_start sub_80C26E4 +sub_80C26E4: @ 80C26E4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C2708 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080C2744 + cmp r0, 0x1 + bgt _080C270C + cmp r0, 0 + beq _080C2712 + b _080C2766 + .align 2, 0 +_080C2708: .4byte gTasks +_080C270C: + cmp r0, 0x2 + beq _080C2754 + b _080C2766 +_080C2712: + ldr r5, _080C2738 + ldrb r0, [r5, 0xA] + cmp r0, 0 + bne _080C2766 + ldrh r1, [r4, 0xC] + adds r0, r1, 0x1 + strh r0, [r4, 0xC] + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_80C40D4 + ldrb r0, [r5, 0x14] + cmp r0, 0 + bne _080C273C + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080C2766 + .align 2, 0 +_080C2738: .4byte 0x02018000 +_080C273C: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C2766 +_080C2744: + ldr r0, _080C2750 + ldrb r0, [r0, 0x14] + cmp r0, 0 + bne _080C2766 + strh r0, [r4, 0x8] + b _080C2766 + .align 2, 0 +_080C2750: .4byte 0x02018000 +_080C2754: + movs r0, 0x88 + lsls r0, 3 + bl sub_80C3520 + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0xC] + ldr r0, _080C276C + str r0, [r4] +_080C2766: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C276C: .4byte sub_80C2770 + thumb_func_end sub_80C26E4 + + thumb_func_start sub_80C2770 +sub_80C2770: @ 80C2770 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + adds r4, r2, 0 + ldr r5, _080C27BC + ldrb r3, [r5, 0x4] + cmp r3, 0 + bne _080C27CC + ldr r1, _080C27C0 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080C27DE + strh r3, [r1, 0xA] + ldr r4, _080C27C4 + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_80C3158 + adds r0, r4, 0 + bl sub_80C34AC + lsls r0, 16 + asrs r0, 16 + ldr r2, _080C27C8 + movs r3, 0x88 + lsls r3, 3 + movs r1, 0x90 + bl sub_80C34CC + b _080C27DE + .align 2, 0 +_080C27BC: .4byte 0x02018000 +_080C27C0: .4byte gTasks +_080C27C4: .4byte gContestText_Round2Results +_080C27C8: .4byte 0x0000ffff +_080C27CC: + cmp r3, 0x2 + bne _080C27DE + ldr r0, _080C27E4 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C27E8 + str r0, [r1] +_080C27DE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C27E4: .4byte gTasks +_080C27E8: .4byte sub_80C27EC + thumb_func_end sub_80C2770 + + thumb_func_start sub_80C27EC +sub_80C27EC: @ 80C27EC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C2810 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080C284C + cmp r0, 0x1 + bgt _080C2814 + cmp r0, 0 + beq _080C281A + b _080C286C + .align 2, 0 +_080C2810: .4byte gTasks +_080C2814: + cmp r0, 0x2 + beq _080C285C + b _080C286C +_080C281A: + ldr r5, _080C2840 + ldrb r0, [r5, 0xA] + cmp r0, 0 + bne _080C286C + ldrh r1, [r4, 0xC] + adds r0, r1, 0x1 + strh r0, [r4, 0xC] + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x1 + bl sub_80C40D4 + ldrb r0, [r5, 0x14] + cmp r0, 0 + bne _080C2844 + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080C286C + .align 2, 0 +_080C2840: .4byte 0x02018000 +_080C2844: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C286C +_080C284C: + ldr r0, _080C2858 + ldrb r0, [r0, 0x14] + cmp r0, 0 + bne _080C286C + strh r0, [r4, 0x8] + b _080C286C + .align 2, 0 +_080C2858: .4byte 0x02018000 +_080C285C: + movs r0, 0x88 + lsls r0, 3 + bl sub_80C3520 + movs r0, 0 + strh r0, [r4, 0x8] + ldr r0, _080C2874 + str r0, [r4] +_080C286C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C2874: .4byte sub_80C2878 + thumb_func_end sub_80C27EC + + thumb_func_start sub_80C2878 +sub_80C2878: @ 80C2878 + push {r4-r7,lr} + sub sp, 0x64 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080C28A0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x5 + bls _080C2896 + b _080C2A80 +_080C2896: + lsls r0, 2 + ldr r1, _080C28A4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C28A0: .4byte gTasks +_080C28A4: .4byte _080C28A8 + .align 2, 0 +_080C28A8: + .4byte _080C28C0 + .4byte _080C28E0 + .4byte _080C28FE + .4byte _080C2938 + .4byte _080C299C + .4byte _080C2A70 +_080C28C0: + ldr r0, _080C28DC + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _080C28CA + b _080C2A80 +_080C28CA: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080C2A80 + .align 2, 0 +_080C28DC: .4byte 0x02018000 +_080C28E0: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + beq _080C28F8 + b _080C2A80 +_080C28F8: + movs r0, 0 + strh r0, [r1, 0xA] + b _080C2A4A +_080C28FE: + movs r4, 0 + lsls r6, r5, 2 + ldr r7, _080C292C +_080C2904: + ldr r0, _080C2930 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r7 + ldr r0, _080C2934 + adds r0, r4, r0 + ldrb r0, [r0] + strh r0, [r1, 0x8] + strh r4, [r1, 0xA] + adds r4, 0x1 + cmp r4, 0x3 + ble _080C2904 + b _080C2A42 + .align 2, 0 +_080C292C: .4byte gTasks +_080C2930: .4byte sub_80C3A5C +_080C2934: .4byte gUnknown_02038690 +_080C2938: + ldr r0, _080C2990 + ldrb r0, [r0, 0x5] + cmp r0, 0x4 + beq _080C2942 + b _080C2A80 +_080C2942: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + beq _080C295A + b _080C2A80 +_080C295A: + movs r0, 0 + strh r0, [r4, 0xA] + ldr r0, _080C2994 + movs r1, 0xA + bl CreateTask + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r4, 0 + ldr r1, _080C2998 + ldrb r0, [r1] + cmp r0, 0 + beq _080C2984 +_080C2976: + adds r4, 0x1 + cmp r4, 0x3 + bgt _080C2984 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080C2976 +_080C2984: + lsls r0, r4, 24 + lsrs r0, 24 + movs r1, 0xE + bl sub_80C3E60 + b _080C2A80 + .align 2, 0 +_080C2990: .4byte 0x02018000 +_080C2994: .4byte sub_80C3B30 +_080C2998: .4byte gUnknown_02038690 +_080C299C: + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + adds r2, r0, r2 + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + adds r6, r1, 0 + cmp r0, 0x15 + bne _080C2A80 + movs r0, 0 + strh r0, [r2, 0xA] + movs r4, 0 + ldr r2, _080C29F4 + ldrb r0, [r2] + ldr r1, _080C29F8 + ldr r3, _080C29FC + cmp r0, 0 + beq _080C29D4 +_080C29C6: + adds r4, 0x1 + cmp r4, 0x3 + bgt _080C29D4 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080C29C6 +_080C29D4: + ldrb r1, [r1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C2A04 + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 2 + ldr r0, _080C2A00 + adds r1, r0 + adds r0, r3, 0 + bl StringCopy + lsls r4, 6 + b _080C2A10 + .align 2, 0 +_080C29F4: .4byte gUnknown_02038690 +_080C29F8: .4byte gUnknown_0203869A +_080C29FC: .4byte gStringVar1 +_080C2A00: .4byte gLinkPlayers + 0x8 +_080C2A04: + lsls r4, 6 + ldr r1, _080C2A54 + adds r1, r4, r1 + adds r0, r3, 0 + bl StringCopy +_080C2A10: + ldr r0, _080C2A58 + ldr r1, _080C2A5C + adds r1, r4, r1 + bl StringCopy + ldr r1, _080C2A60 + mov r0, sp + bl StringExpandPlaceholders + ldr r0, _080C2A64 + ldrb r1, [r0] + mov r0, sp + bl sub_80C3158 + mov r0, sp + bl sub_80C34AC + lsls r0, 16 + asrs r0, 16 + ldr r2, _080C2A68 + movs r3, 0x88 + lsls r3, 3 + movs r1, 0x90 + bl sub_80C34CC +_080C2A42: + ldr r0, _080C2A6C + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 +_080C2A4A: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080C2A80 + .align 2, 0 +_080C2A54: .4byte gUnknown_0203857D +_080C2A58: .4byte gStringVar2 +_080C2A5C: .4byte gUnknown_02038572 +_080C2A60: .4byte gContestText_PokeWon +_080C2A64: .4byte 0x02018000 +_080C2A68: .4byte 0x0000ffff +_080C2A6C: .4byte gTasks +_080C2A70: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, _080C2A88 + str r1, [r0] +_080C2A80: + add sp, 0x64 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2A88: .4byte sub_80C2A8C + thumb_func_end sub_80C2878 + + thumb_func_start sub_80C2A8C +sub_80C2A8C: @ 80C2A8C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080C2ABC + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r4, r1, 0 + cmp r0, 0x5 + bls _080C2AB2 + b _080C2D04 +_080C2AB2: + lsls r0, 2 + ldr r1, _080C2AC0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C2ABC: .4byte gTasks +_080C2AC0: .4byte _080C2AC4 + .align 2, 0 +_080C2AC4: + .4byte _080C2ADC + .4byte _080C2C04 + .4byte _080C2C54 + .4byte _080C2C64 + .4byte _080C2CA8 + .4byte _080C2CE8 +_080C2ADC: + ldr r1, _080C2BC4 + movs r0, 0xF0 + strh r0, [r1] + ldr r1, _080C2BC8 + ldr r3, _080C2BCC + adds r0, r3, 0 + strh r0, [r1] + movs r1, 0 + ldr r3, _080C2BD0 + ldrb r0, [r3] + lsls r4, r7, 2 + mov r10, r4 + ldr r2, _080C2BD4 + ldr r5, _080C2BD8 + mov r12, r5 + ldr r4, _080C2BDC + mov r8, r4 + ldr r5, _080C2BE0 + mov r9, r5 + cmp r0, 0 + beq _080C2B14 +_080C2B06: + adds r1, 0x1 + cmp r1, 0x3 + bgt _080C2B14 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _080C2B06 +_080C2B14: + lsls r1, 6 + adds r0, r1, r2 + ldrh r6, [r0] + adds r0, r2, 0 + adds r0, 0x38 + adds r0, r1, r0 + ldr r4, [r0] + adds r0, r2, 0 + adds r0, 0x3C + adds r1, r0 + ldr r1, [r1] + str r1, [sp, 0xC] + lsls r0, r6, 3 + add r0, r12 + lsls r2, r6, 2 + add r2, r8 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + mov r5, r9 + ldr r3, [r5, 0x4] + str r3, [sp] + str r6, [sp, 0x4] + str r4, [sp, 0x8] + ldr r3, _080C2BE4 + bl sub_800D334 + adds r0, r6, 0 + ldr r1, [sp, 0xC] + adds r2, r4, 0 + bl sub_80409C8 + adds r4, r0, 0 + bl LoadCompressedObjectPalette + adds r0, r6, 0 + movs r1, 0x1 + bl GetMonSpriteTemplate_803C56C + ldr r0, _080C2BE8 + ldrh r1, [r4, 0x4] + strh r1, [r0, 0x2] + movs r1, 0x88 + lsls r1, 1 + movs r2, 0x50 + movs r3, 0xA + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080C2BEC + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r3, r2, r5 + strh r6, [r3, 0x30] + ldrb r4, [r3, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r4 + strb r1, [r3, 0x5] + adds r5, 0x1C + adds r2, r5 + ldr r1, _080C2BF0 + str r1, [r2] + ldr r2, _080C2BE4 + movs r3, 0xC0 + lsls r3, 9 + adds r1, r2, r3 + strb r0, [r1, 0x8] + ldr r0, _080C2BF4 + bl LoadCompressedObjectPic + ldr r0, _080C2BF8 + bl LoadCompressedObjectPalette + ldr r0, _080C2BFC + movs r1, 0xA + bl CreateTask + ldr r0, _080C2C00 + mov r4, r10 + adds r1, r4, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080C2D04 + .align 2, 0 +_080C2BC4: .4byte gUnknown_030042C4 +_080C2BC8: .4byte gUnknown_03004240 +_080C2BCC: .4byte 0x00005050 +_080C2BD0: .4byte gUnknown_02038690 +_080C2BD4: .4byte gUnknown_02038570 +_080C2BD8: .4byte gMonFrontPicTable +_080C2BDC: .4byte gMonFrontPicCoords +_080C2BE0: .4byte gUnknown_081FAF4C +_080C2BE4: .4byte 0x02000000 +_080C2BE8: .4byte gUnknown_02024E8C +_080C2BEC: .4byte gSprites +_080C2BF0: .4byte sub_80C3C44 +_080C2BF4: .4byte gUnknown_083D17CC +_080C2BF8: .4byte gUnknown_083D17D4 +_080C2BFC: .4byte sub_80C3D04 +_080C2C00: .4byte gTasks +_080C2C04: + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r4, r0, r4 + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080C2D04 + movs r0, 0 + strh r0, [r4, 0xE] + ldrh r0, [r4, 0xC] + adds r0, 0x2 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x20 + ble _080C2C30 + movs r0, 0x20 + strh r0, [r4, 0xC] +_080C2C30: + ldrb r2, [r4, 0xC] + ldr r3, _080C2C50 + movs r0, 0x50 + subs r0, r2 + lsls r0, 8 + adds r1, r2, 0 + adds r1, 0x50 + orrs r0, r1 + strh r0, [r3] + cmp r2, 0x20 + bne _080C2D04 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C2D04 + .align 2, 0 +_080C2C50: .4byte gUnknown_03004240 +_080C2C54: + ldr r0, _080C2C60 + ldrb r0, [r0, 0x6] + cmp r0, 0x1 + bne _080C2D04 + b _080C2CD0 + .align 2, 0 +_080C2C60: .4byte 0x02018000 +_080C2C64: + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r3, r0, r4 + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x79 + bne _080C2D04 + movs r0, 0 + strh r0, [r3, 0xA] + ldr r2, _080C2C9C + ldr r0, _080C2CA0 + ldrb r1, [r0, 0x8] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _080C2CA4 + str r1, [r0] + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + b _080C2D04 + .align 2, 0 +_080C2C9C: .4byte gSprites +_080C2CA0: .4byte 0x02018000 +_080C2CA4: .4byte sub_80C3CB8 +_080C2CA8: + ldr r0, _080C2CE0 + ldrb r0, [r0, 0x6] + cmp r0, 0x2 + bne _080C2D04 + ldr r3, _080C2CE4 + ldrh r0, [r3] + lsrs r2, r0, 8 + adds r0, r2, 0x2 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x50 + bls _080C2CC2 + movs r2, 0x50 +_080C2CC2: + lsls r1, r2, 8 + movs r0, 0xA0 + subs r0, r2 + orrs r1, r0 + strh r1, [r3] + cmp r2, 0x50 + bne _080C2D04 +_080C2CD0: + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r4 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080C2D04 + .align 2, 0 +_080C2CE0: .4byte 0x02018000 +_080C2CE4: .4byte gUnknown_03004240 +_080C2CE8: + ldr r2, _080C2D14 + ldrb r0, [r2, 0x6] + cmp r0, 0x2 + bne _080C2D04 + movs r1, 0 + movs r0, 0x1 + strb r0, [r2, 0x9] + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r4 + strh r1, [r0, 0x8] + ldr r1, _080C2D18 + str r1, [r0] +_080C2D04: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2D14: .4byte 0x02018000 +_080C2D18: .4byte sub_80C2D1C + thumb_func_end sub_80C2A8C + + thumb_func_start sub_80C2D1C +sub_80C2D1C: @ 80C2D1C + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _080C2D6C + ldrh r1, [r0, 0x2E] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080C2D66 + ldr r0, _080C2D70 + ldrb r1, [r0] + adds r0, r2, 0 + ands r0, r1 + lsls r6, r7, 2 + cmp r0, 0 + bne _080C2D5A + ldr r5, _080C2D74 + movs r4, 0x3 +_080C2D42: + ldrh r0, [r5] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2 + bl sub_8090D90 + adds r5, 0x40 + subs r4, 0x1 + cmp r4, 0 + bge _080C2D42 +_080C2D5A: + ldr r0, _080C2D78 + adds r1, r6, r7 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C2D7C + str r0, [r1] +_080C2D66: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2D6C: .4byte gMain +_080C2D70: .4byte gUnknown_0203869A +_080C2D74: .4byte gUnknown_02038570 +_080C2D78: .4byte gTasks +_080C2D7C: .4byte sub_80C2D80 + thumb_func_end sub_80C2D1C + + thumb_func_start sub_80C2D80 +sub_80C2D80: @ 80C2D80 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C2DAC + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C2DBC + ldr r0, _080C2DB0 + bl sub_80C3698 + bl sub_800832C + ldr r1, _080C2DB4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C2DB8 + str r1, [r0] + b _080C2DCA + .align 2, 0 +_080C2DAC: .4byte gUnknown_0203869A +_080C2DB0: .4byte gOtherText_LinkStandby +_080C2DB4: .4byte gTasks +_080C2DB8: .4byte sub_80C2DD8 +_080C2DBC: + ldr r0, _080C2DD0 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C2DD4 + str r0, [r1] +_080C2DCA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C2DD0: .4byte gTasks +_080C2DD4: .4byte sub_80C2E14 + thumb_func_end sub_80C2D80 + + thumb_func_start sub_80C2DD8 +sub_80C2DD8: @ 80C2DD8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C2E04 + ldrb r1, [r0] + cmp r1, 0 + bne _080C2DFC + ldr r0, _080C2E08 + strb r1, [r0] + bl sub_80C3764 + ldr r1, _080C2E0C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C2E10 + str r1, [r0] +_080C2DFC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C2E04: .4byte gReceivedRemoteLinkPlayers +_080C2E08: .4byte gUnknown_0203869A +_080C2E0C: .4byte gTasks +_080C2E10: .4byte sub_80C2E14 + thumb_func_end sub_80C2DD8 + + thumb_func_start sub_80C2E14 +sub_80C2E14: @ 80C2E14 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r1, _080C2E80 + ldr r0, _080C2E84 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + bl sub_80BE284 + movs r0, 0x2 + bl sub_810FB10 + ldr r0, _080C2E88 + ldrb r0, [r0] + bl sub_80B2A7C + movs r0, 0xFE + bl sub_80B2A7C + ldr r4, _080C2E8C + ldr r0, _080C2E90 + adds r1, r4, r0 + movs r6, 0 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0xFE + movs r1, 0 + bl sub_80B2C4C + ldr r1, _080C2E94 + adds r4, r1 + strb r0, [r4] + str r6, [sp] + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginHardwarePaletteFade + ldr r1, _080C2E98 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C2E9C + str r1, [r0] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C2E80: .4byte gUnknown_02038690 +_080C2E84: .4byte gUnknown_02038695 +_080C2E88: .4byte gUnknown_0203869E +_080C2E8C: .4byte 0x02000000 +_080C2E90: .4byte 0x00015ddf +_080C2E94: .4byte 0x00015dde +_080C2E98: .4byte gTasks +_080C2E9C: .4byte sub_80C2EA0 + thumb_func_end sub_80C2E14 + + thumb_func_start sub_80C2EA0 +sub_80C2EA0: @ 80C2EA0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + adds r5, r2, 0 + ldr r0, _080C2ED8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _080C2F18 + ldr r1, _080C2EDC + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C2EE8 + ldr r0, _080C2EE0 + ldrb r0, [r0, 0x3] + bl DestroyTask + ldr r0, _080C2EE4 + b _080C2EEE + .align 2, 0 +_080C2ED8: .4byte gPaletteFade +_080C2EDC: .4byte gTasks +_080C2EE0: .4byte 0x02018000 +_080C2EE4: .4byte 0x0000ffff +_080C2EE8: + cmp r0, 0x1 + bne _080C2F04 + ldr r0, _080C2F00 +_080C2EEE: + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _080C2F18 + .align 2, 0 +_080C2F00: .4byte 0xffff0000 +_080C2F04: + ldr r0, _080C2F20 + strh r3, [r0] + adds r0, 0x4 + strh r3, [r0] + adds r0, r5, 0 + bl DestroyTask + ldr r0, _080C2F24 + bl SetMainCallback2 +_080C2F18: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C2F20: .4byte REG_BLDCNT +_080C2F24: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_80C2EA0 + + thumb_func_start sub_80C2F28 +sub_80C2F28: @ 80C2F28 + push {r4,r5,lr} + ldr r2, _080C2F5C + ldrh r3, [r2] + adds r0, r3, 0x2 + strh r0, [r2] + ldr r4, _080C2F60 + ldrh r5, [r4] + adds r1, r5, 0x1 + strh r1, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xFF + bls _080C2F48 + adds r0, r3, 0 + subs r0, 0xFD + strh r0, [r2] +_080C2F48: + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, 0xFF + bls _080C2F56 + adds r0, r5, 0 + subs r0, 0xFE + strh r0, [r4] +_080C2F56: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C2F5C: .4byte gUnknown_030041B0 +_080C2F60: .4byte gUnknown_030041B8 + thumb_func_end sub_80C2F28 + + thumb_func_start sub_80C2F64 +sub_80C2F64: @ 80C2F64 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080C2F94 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080C2FE6 + movs r0, 0 + strh r0, [r2, 0x8] + movs r3, 0xC + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080C2F98 + ldrh r0, [r2, 0xA] + adds r0, 0x1 + b _080C2F9C + .align 2, 0 +_080C2F94: .4byte gTasks +_080C2F98: + ldrh r0, [r2, 0xA] + subs r0, 0x1 +_080C2F9C: + strh r0, [r2, 0xA] + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0x10 + bne _080C2FB2 + movs r0, 0x1 + b _080C2FB6 +_080C2FB2: + cmp r0, 0 + bne _080C2FB8 +_080C2FB6: + strh r0, [r1, 0xC] +_080C2FB8: + ldr r0, _080C3000 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + ldrb r2, [r4, 0xA] + ldr r3, _080C3004 + movs r0, 0x6B + movs r1, 0x1 + bl BlendPalette + ldrb r2, [r4, 0xA] + ldr r3, _080C3008 + movs r0, 0x68 + movs r1, 0x1 + bl BlendPalette + ldrb r2, [r4, 0xA] + ldr r3, _080C300C + movs r0, 0x6E + movs r1, 0x1 + bl BlendPalette +_080C2FE6: + ldr r1, _080C3000 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r3, 0xA + ldrsh r4, [r0, r3] + cmp r4, 0 + bne _080C3014 + ldr r0, _080C3010 + strb r4, [r0, 0xA] + b _080C301A + .align 2, 0 +_080C3000: .4byte gTasks +_080C3004: .4byte 0x00002ede +_080C3008: .4byte 0x00007fff +_080C300C: .4byte 0x000077be +_080C3010: .4byte 0x02018000 +_080C3014: + ldr r1, _080C3020 + movs r0, 0x1 + strb r0, [r1, 0xA] +_080C301A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3020: .4byte 0x02018000 + thumb_func_end sub_80C2F64 + + thumb_func_start sub_80C3024 +sub_80C3024: @ 80C3024 + push {r4-r6,lr} + ldr r6, [sp, 0x10] + lsls r0, 16 + lsrs r0, 16 + lsls r1, 24 + lsrs r4, r1, 24 + lsls r2, 24 + lsrs r5, r2, 24 + lsls r3, 24 + cmp r3, 0 + beq _080C30B0 + adds r1, r6, 0 + bl sub_809D4F4 + lsls r1, r5, 9 + adds r0, r1 + adds r0, 0x80 + lsls r1, r4, 9 + ldr r2, _080C30A0 + adds r1, r2 + ldr r2, _080C30A4 + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _080C30A8 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r1, r4, 0 + adds r1, 0xA + lsls r1, 28 + lsls r0, r4, 20 + movs r2, 0x80 + lsls r2, 18 + adds r0, r2 + orrs r0, r1 + lsrs r1, r0, 16 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 21 + movs r2, 0x83 + lsls r2, 16 + adds r0, r2 + lsrs r5, r0, 16 + movs r2, 0 + ldr r6, _080C30AC +_080C307C: + lsls r0, r2, 5 + adds r4, r2, 0x1 + adds r0, r5 + movs r3, 0x3 + lsls r0, 1 + adds r2, r0, r6 +_080C3088: + strh r1, [r2] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C3088 + adds r2, r4, 0 + cmp r2, 0x2 + ble _080C307C + b _080C30CA + .align 2, 0 +_080C30A0: .4byte 0x06004000 +_080C30A4: .4byte 0x040000d4 +_080C30A8: .4byte 0x84000060 +_080C30AC: .4byte 0x0600c000 +_080C30B0: + adds r1, r6, 0 + bl sub_809D4F4 + lsls r1, r5, 9 + adds r0, r1 + adds r0, 0x80 + lsls r1, r4, 9 + ldr r2, _080C30D0 + adds r1, r2 + movs r2, 0xC0 + lsls r2, 1 + bl RequestSpriteCopy +_080C30CA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C30D0: .4byte 0x06004000 + thumb_func_end sub_80C3024 + + thumb_func_start sub_80C30D4 +sub_80C30D4: @ 80C30D4 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + movs r5, 0 + ldr r4, _080C3108 +_080C30E4: + ldrh r0, [r4] + lsls r1, r5, 24 + lsrs r1, 24 + ldr r2, [r4, 0x38] + str r2, [sp] + adds r2, r7, 0 + adds r3, r6, 0 + bl sub_80C3024 + adds r4, 0x40 + adds r5, 0x1 + cmp r5, 0x3 + ble _080C30E4 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C3108: .4byte gUnknown_02038570 + thumb_func_end sub_80C30D4 + + thumb_func_start sub_80C310C +sub_80C310C: @ 80C310C + push {r4-r6,lr} + movs r4, 0 + ldr r6, _080C314C + movs r5, 0xA0 + lsls r5, 16 +_080C3116: + ldr r1, _080C3150 + lsls r0, r4, 6 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0 + bl mon_icon_convert_unown_species_id + lsls r0, 16 + lsrs r0, 16 + adds r0, r6 + ldrb r0, [r0] + lsls r0, 5 + ldr r1, _080C3154 + adds r0, r1 + lsrs r1, r5, 16 + movs r2, 0x20 + bl LoadPalette + movs r0, 0x80 + lsls r0, 13 + adds r5, r0 + adds r4, 0x1 + cmp r4, 0x3 + ble _080C3116 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C314C: .4byte gMonIconPaletteIndices +_080C3150: .4byte gUnknown_02038570 +_080C3154: .4byte gMonIconPalettes + thumb_func_end sub_80C310C + + thumb_func_start sub_80C3158 +sub_80C3158: @ 80C3158 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + mov r9, r0 + lsls r1, 24 + lsrs r1, 24 + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + ldr r3, _080C32C0 + adds r2, r3 + mov r1, sp + ldrh r0, [r2, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r1] + mov r4, sp + movs r0, 0x2E + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r4, 0x2] + movs r0, 0x30 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r4, 0x4] + movs r0, 0x32 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r4, 0x6] + ldr r1, _080C32C4 + mov r8, r1 + ldr r7, _080C32C8 + ldr r2, _080C32CC + ldr r6, _080C32D0 + mov r1, sp + movs r5, 0 + add r3, sp, 0x8 + movs r4, 0x3 +_080C31CE: + ldrh r0, [r1] + lsls r0, 5 + adds r0, r7 + str r5, [sp, 0x8] + str r3, [r2] + str r0, [r2, 0x4] + str r6, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080C31CE + mov r0, r8 + mov r1, r9 + bl GetStringWidthGivenWindowConfig + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _080C32D4 + ldr r1, _080C32D8 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + mvns r0, r5 + adds r1, r0, 0x1 + movs r0, 0x7 + ands r1, r0 + cmp r1, 0 + beq _080C3218 + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x11 + strb r0, [r2, 0x1] + lsrs r0, r1, 1 + strb r0, [r2, 0x2] + adds r2, 0x3 +_080C3218: + adds r6, r5, 0x7 + movs r1, 0x8 + negs r1, r1 + adds r0, r1, 0 + ands r6, r0 + lsls r6, 24 + lsrs r5, r6, 24 + adds r0, r2, 0 + mov r1, r9 + bl StringCopy + adds r2, r0, 0 + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x13 + strb r0, [r2, 0x1] + strb r5, [r2, 0x2] + movs r0, 0xFF + strb r0, [r2, 0x3] + ldr r0, _080C32DC + mov r10, r0 + ldr r1, _080C32D4 + bl sub_80034D4 + mov r0, sp + ldrh r4, [r0] + lsls r4, 5 + ldr r1, _080C32C8 + adds r7, r4, r1 + ldr r0, _080C32E0 + mov r9, r0 + ldr r1, _080C32E4 + mov r8, r1 + adds r1, r7, 0 + mov r2, r8 + bl CpuSet + mov r5, r9 + adds r5, 0x80 + ldr r0, _080C32E8 + adds r1, r4, r0 + adds r0, r5, 0 + mov r2, r8 + bl CpuSet + ldr r0, _080C32EC + adds r1, r4, r0 + adds r0, r5, 0 + mov r2, r8 + bl CpuSet + mov r0, r9 + adds r0, 0x40 + ldr r1, _080C32F0 + adds r4, r1 + adds r1, r4, 0 + mov r2, r8 + bl CpuSet + lsrs r5, r6, 27 + movs r4, 0 + cmp r4, r5 + bgt _080C3382 + mov r6, sp + mov r0, r10 + adds r0, 0x20 + str r0, [sp, 0xC] + mov r1, r10 + str r1, [sp, 0x10] + ldr r0, _080C32F4 + str r0, [sp, 0x14] + ldr r1, _080C32F8 + str r1, [sp, 0x18] + ldr r0, _080C32FC + mov r10, r0 + ldr r1, _080C3300 + mov r9, r1 +_080C32B2: + cmp r4, 0x6 + bgt _080C3304 + ldrh r0, [r6] + lsls r0, 5 + mov r1, r9 + b _080C3322 + .align 2, 0 +_080C32C0: .4byte gSprites +_080C32C4: .4byte gWindowConfig_81E7278 +_080C32C8: .4byte 0x06010000 +_080C32CC: .4byte 0x040000d4 +_080C32D0: .4byte 0x85000100 +_080C32D4: .4byte gUnknown_020238CC +_080C32D8: .4byte gUnknown_083D17E2 +_080C32DC: .4byte 0x02018068 +_080C32E0: .4byte gUnknown_083D1624 +_080C32E4: .4byte REG_BG0CNT +_080C32E8: .4byte 0x06010100 +_080C32EC: .4byte 0x06010200 +_080C32F0: .4byte 0x06010300 +_080C32F4: .4byte 0x0600fd20 +_080C32F8: .4byte 0x0600fe20 +_080C32FC: .4byte 0x0600ff20 +_080C3300: .4byte 0x06010020 +_080C3304: + cmp r4, 0xE + bgt _080C3310 + ldrh r0, [r6, 0x2] + lsls r0, 5 + mov r1, r10 + b _080C3322 +_080C3310: + cmp r4, 0x16 + bgt _080C331C + ldrh r0, [r6, 0x4] + lsls r0, 5 + ldr r1, [sp, 0x18] + b _080C3322 +_080C331C: + ldrh r0, [r6, 0x6] + lsls r0, 5 + ldr r1, [sp, 0x14] +_080C3322: + adds r7, r0, r1 + cmp r4, r5 + beq _080C3382 + ldr r0, _080C33D0 + adds r1, r7, 0 + mov r2, r8 + bl CpuSet + movs r0, 0xC0 + lsls r0, 2 + adds r1, r7, r0 + ldr r0, _080C33D0 + adds r0, 0x20 + mov r2, r8 + bl CpuSet + movs r0, 0x80 + lsls r0, 1 + adds r1, r7, r0 + ldr r0, [sp, 0x10] + mov r2, r8 + bl CpuSet + movs r0, 0x80 + lsls r0, 2 + adds r1, r7, r0 + ldr r0, [sp, 0xC] + mov r2, r8 + bl CpuSet + ldr r1, [sp, 0xC] + adds r1, 0x40 + str r1, [sp, 0xC] + ldr r0, [sp, 0x10] + adds r0, 0x40 + str r0, [sp, 0x10] + ldr r1, [sp, 0x14] + adds r1, 0x20 + str r1, [sp, 0x14] + ldr r0, [sp, 0x18] + adds r0, 0x20 + str r0, [sp, 0x18] + movs r1, 0x20 + add r10, r1 + add r9, r1 + adds r4, 0x1 + cmp r4, r5 + ble _080C32B2 +_080C3382: + ldr r4, _080C33D4 + ldr r5, _080C33D8 + adds r0, r4, 0 + adds r1, r7, 0 + adds r2, r5, 0 + bl CpuSet + adds r6, r4, 0 + adds r6, 0x80 + movs r0, 0x80 + lsls r0, 1 + adds r1, r7, r0 + adds r0, r6, 0 + adds r2, r5, 0 + bl CpuSet + movs r0, 0x80 + lsls r0, 2 + adds r1, r7, r0 + adds r0, r6, 0 + adds r2, r5, 0 + bl CpuSet + adds r4, 0x40 + movs r0, 0xC0 + lsls r0, 2 + adds r1, r7, r0 + adds r0, r4, 0 + adds r2, r5, 0 + bl CpuSet + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C33D0: .4byte gUnknown_083D16E4 +_080C33D4: .4byte gUnknown_083D1644 +_080C33D8: .4byte REG_BG0CNT + thumb_func_end sub_80C3158 + + thumb_func_start sub_80C33DC +sub_80C33DC: @ 80C33DC + push {r4-r6,lr} + sub sp, 0x20 + mov r1, sp + ldr r0, _080C3498 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + add r5, sp, 0x18 + ldr r6, _080C349C + movs r4, 0x7 +_080C33F2: + adds r0, r6, 0 + bl LoadSpriteSheet + adds r6, 0x8 + subs r4, 0x1 + cmp r4, 0 + bge _080C33F2 + ldr r0, _080C34A0 + bl LoadSpritePalette + movs r4, 0 + mov r6, sp +_080C340A: + mov r0, sp + movs r1, 0x88 + lsls r1, 1 + movs r2, 0x90 + movs r3, 0xA + bl CreateSprite + adds r1, r5, r4 + strb r0, [r1] + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + adds r4, 0x1 + cmp r4, 0x7 + ble _080C340A + ldr r2, _080C34A4 + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x1] + movs r3, 0 + strh r1, [r0, 0x2E] + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x2] + strh r1, [r0, 0x30] + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x3] + strh r1, [r0, 0x32] + ldrb r1, [r5, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x5] + strh r1, [r0, 0x2E] + ldrb r1, [r5, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x6] + strh r1, [r0, 0x30] + ldrb r1, [r5, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x7] + strh r1, [r0, 0x32] + ldr r1, _080C34A8 + ldrb r0, [r5] + strb r0, [r1] + strb r3, [r1, 0x4] + ldrb r0, [r5, 0x4] + strb r0, [r1, 0x1] + bl sub_80C3764 + add sp, 0x20 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C3498: .4byte gSpriteTemplate_83D174C +_080C349C: .4byte gUnknown_083D1764 +_080C34A0: .4byte gUnknown_083D17A4 +_080C34A4: .4byte gSprites +_080C34A8: .4byte 0x02018000 + thumb_func_end sub_80C33DC + + thumb_func_start sub_80C34AC +sub_80C34AC: @ 80C34AC + push {lr} + bl StringLength + lsls r0, 16 + lsrs r0, 16 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 25 + lsrs r1, 25 + movs r0, 0x70 + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80C34AC + + thumb_func_start sub_80C34CC +sub_80C34CC: @ 80C34CC + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r4, _080C3514 + mov r8, r4 + ldrb r5, [r4] + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + ldr r5, _080C3518 + adds r4, r5 + movs r6, 0 + movs r5, 0x88 + lsls r5, 1 + strh r5, [r4, 0x20] + strh r1, [r4, 0x22] + strh r6, [r4, 0x24] + strh r6, [r4, 0x26] + lsls r0, 16 + asrs r0, 16 + adds r0, 0x20 + strh r0, [r4, 0x36] + strh r2, [r4, 0x38] + strh r3, [r4, 0x3A] + strh r6, [r4, 0x3C] + ldr r0, _080C351C + str r0, [r4, 0x1C] + movs r0, 0x1 + mov r1, r8 + strb r0, [r1, 0x4] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C3514: .4byte 0x02018000 +_080C3518: .4byte gSprites +_080C351C: .4byte sub_80C3588 + thumb_func_end sub_80C34CC + + thumb_func_start sub_80C3520 +sub_80C3520: @ 80C3520 + push {r4,r5,lr} + ldr r4, _080C3558 + ldrb r2, [r4] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r2, _080C355C + adds r1, r2 + ldrh r2, [r1, 0x24] + ldrh r3, [r1, 0x20] + adds r2, r3 + movs r3, 0 + strh r2, [r1, 0x20] + ldrh r2, [r1, 0x26] + ldrh r5, [r1, 0x22] + adds r2, r5 + strh r2, [r1, 0x22] + strh r3, [r1, 0x26] + strh r3, [r1, 0x24] + strh r0, [r1, 0x3A] + strh r3, [r1, 0x3C] + ldr r0, _080C3560 + str r0, [r1, 0x1C] + movs r0, 0x3 + strb r0, [r4, 0x4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3558: .4byte 0x02018000 +_080C355C: .4byte gSprites +_080C3560: .4byte sub_80C3630 + thumb_func_end sub_80C3520 + + thumb_func_start sub_80C3564 +sub_80C3564: @ 80C3564 + movs r3, 0 + movs r2, 0 + movs r1, 0x88 + lsls r1, 1 + strh r1, [r0, 0x20] + movs r1, 0x90 + strh r1, [r0, 0x22] + strh r2, [r0, 0x26] + strh r2, [r0, 0x24] + ldr r1, _080C3580 + str r1, [r0, 0x1C] + ldr r0, _080C3584 + strb r3, [r0, 0x4] + bx lr + .align 2, 0 +_080C3580: .4byte SpriteCallbackDummy +_080C3584: .4byte 0x02018000 + thumb_func_end sub_80C3564 + + thumb_func_start sub_80C3588 +sub_80C3588: @ 80C3588 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r2, [r3, 0x3A] + ldrh r0, [r3, 0x3C] + adds r2, r0 + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r3, 0x20] + subs r0, r1 + strh r0, [r3, 0x20] + movs r1, 0xFF + ands r2, r1 + strh r2, [r3, 0x3C] + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r3, 0x36] + movs r4, 0x36 + ldrsh r1, [r3, r4] + cmp r0, r1 + bge _080C35B2 + strh r2, [r3, 0x20] +_080C35B2: + movs r4, 0 + ldr r6, _080C35F4 + movs r5, 0x40 + adds r2, r3, 0 + adds r2, 0x2E +_080C35BC: + movs r7, 0 + ldrsh r0, [r2, r7] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r3, 0x24] + ldrh r7, [r3, 0x20] + adds r0, r7 + adds r0, r5 + strh r0, [r1, 0x20] + adds r5, 0x40 + adds r2, 0x2 + adds r4, 0x1 + cmp r4, 0x2 + ble _080C35BC + movs r0, 0x20 + ldrsh r1, [r3, r0] + movs r2, 0x36 + ldrsh r0, [r3, r2] + cmp r1, r0 + bne _080C35EC + ldr r0, _080C35F8 + str r0, [r3, 0x1C] +_080C35EC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C35F4: .4byte gSprites +_080C35F8: .4byte sub_80C35FC + thumb_func_end sub_80C3588 + + thumb_func_start sub_80C35FC +sub_80C35FC: @ 80C35FC + push {lr} + adds r2, r0, 0 + ldr r0, _080C3628 + movs r1, 0x2 + strb r1, [r0, 0x4] + ldrh r3, [r2, 0x38] + ldr r1, _080C362C + lsrs r0, r1, 16 + cmp r3, r0 + beq _080C3624 + subs r0, r3, 0x1 + strh r0, [r2, 0x38] + lsls r0, 16 + asrs r0, 16 + asrs r1, 16 + cmp r0, r1 + bne _080C3624 + ldrh r0, [r2, 0x3A] + bl sub_80C3520 +_080C3624: + pop {r0} + bx r0 + .align 2, 0 +_080C3628: .4byte 0x02018000 +_080C362C: .4byte 0xffff0000 + thumb_func_end sub_80C35FC + + thumb_func_start sub_80C3630 +sub_80C3630: @ 80C3630 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r2, [r3, 0x3A] + ldrh r0, [r3, 0x3C] + adds r2, r0 + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r3, 0x20] + subs r0, r1 + strh r0, [r3, 0x20] + movs r0, 0xFF + ands r2, r0 + strh r2, [r3, 0x3C] + movs r4, 0 + ldr r6, _080C3694 + movs r5, 0x40 + adds r2, r3, 0 + adds r2, 0x2E +_080C3654: + movs r1, 0 + ldrsh r0, [r2, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r3, 0x24] + ldrh r7, [r3, 0x20] + adds r0, r7 + adds r0, r5 + strh r0, [r1, 0x20] + adds r5, 0x40 + adds r2, 0x2 + adds r4, 0x1 + cmp r4, 0x2 + ble _080C3654 + movs r1, 0x20 + ldrsh r0, [r3, r1] + movs r2, 0x24 + ldrsh r1, [r3, r2] + adds r0, r1 + movs r1, 0xE0 + negs r1, r1 + cmp r0, r1 + bge _080C368C + adds r0, r3, 0 + bl sub_80C3564 +_080C368C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C3694: .4byte gSprites + thumb_func_end sub_80C3630 + + thumb_func_start sub_80C3698 +sub_80C3698: @ 80C3698 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r5, _080C374C + ldrb r1, [r5, 0x1] + bl sub_80C3158 + adds r0, r4, 0 + bl sub_80C34AC + lsls r0, 16 + lsrs r0, 16 + ldrb r2, [r5, 0x1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r3, _080C3750 + adds r4, r1, r3 + adds r0, 0x20 + strh r0, [r4, 0x20] + movs r0, 0x50 + strh r0, [r4, 0x22] + adds r5, r4, 0 + adds r5, 0x3E + ldrb r1, [r5] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r1 + strb r0, [r5] + movs r5, 0 + adds r6, r3, 0 + mov r12, r2 + movs r3, 0x40 +_080C36DA: + lsls r0, r5, 1 + adds r2, r4, 0 + adds r2, 0x2E + adds r2, r0 + movs r1, 0 + ldrsh r0, [r2, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r4, 0x24] + ldrh r7, [r4, 0x20] + adds r0, r7 + adds r0, r3 + strh r0, [r1, 0x20] + movs r0, 0 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r4, 0x22] + strh r1, [r0, 0x22] + movs r1, 0 + ldrsh r0, [r2, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r1, 0x3E + ldrb r2, [r1] + mov r0, r12 + ands r0, r2 + strb r0, [r1] + adds r3, 0x40 + adds r5, 0x1 + cmp r5, 0x2 + ble _080C36DA + ldr r1, _080C3754 + movs r0, 0xF0 + strh r0, [r1] + ldr r2, _080C3758 + ldrh r1, [r4, 0x22] + adds r0, r1, 0 + subs r0, 0x10 + lsls r0, 8 + adds r1, 0x10 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080C375C + ldr r2, _080C3760 + adds r0, r2, 0 + strh r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C374C: .4byte 0x02018000 +_080C3750: .4byte gSprites +_080C3754: .4byte gUnknown_030042C4 +_080C3758: .4byte gUnknown_03004240 +_080C375C: .4byte REG_WININ +_080C3760: .4byte 0x00003f3e + thumb_func_end sub_80C3698 + + thumb_func_start sub_80C3764 +sub_80C3764: @ 80C3764 + push {r4-r7,lr} + ldr r0, _080C37C8 + ldrb r0, [r0, 0x1] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r3, _080C37CC + adds r2, r3 + movs r0, 0x3E + adds r0, r2 + mov r12, r0 + ldrb r0, [r0] + movs r1, 0x4 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldr r7, _080C37D0 + ldr r6, _080C37D4 + adds r5, r3, 0 + movs r4, 0x4 + adds r2, 0x2E + movs r3, 0x2 +_080C3790: + movs r1, 0 + ldrsh r0, [r2, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C3790 + movs r1, 0 + strh r1, [r7] + strh r1, [r6] + ldr r0, _080C37D8 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + ldr r1, _080C37DC + ldr r2, _080C37E0 + adds r0, r2, 0 + strh r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C37C8: .4byte 0x02018000 +_080C37CC: .4byte gSprites +_080C37D0: .4byte gUnknown_030042C4 +_080C37D4: .4byte gUnknown_03004240 +_080C37D8: .4byte REG_WIN0H +_080C37DC: .4byte REG_WININ +_080C37E0: .4byte 0x00003f3f + thumb_func_end sub_80C3764 + + thumb_func_start sub_80C37E4 +sub_80C37E4: @ 80C37E4 + push {r4-r6,lr} + sub sp, 0x10 + movs r5, 0x1 + movs r4, 0 + ldr r0, _080C3808 + ldrb r0, [r0] + adds r1, r5, 0 + ands r1, r0 + cmp r1, 0 + beq _080C3814 + ldr r0, _080C380C + ldr r3, _080C3810 + movs r1, 0x9 + str r1, [sp] + movs r2, 0x2 + str r2, [sp, 0x4] + b _080C386A + .align 2, 0 +_080C3808: .4byte gUnknown_0203869A +_080C380C: .4byte 0x0600e000 +_080C3810: .4byte gUnknown_08E964B8 +_080C3814: + ldr r0, _080C3830 + ldrh r2, [r0] + cmp r2, 0 + bne _080C383C + movs r4, 0x1 + ldr r0, _080C3834 + ldr r3, _080C3838 + str r2, [sp] + str r2, [sp, 0x4] + movs r1, 0x9 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + b _080C3870 + .align 2, 0 +_080C3830: .4byte gUnknown_0203869E +_080C3834: .4byte 0x0600e000 +_080C3838: .4byte gUnknown_08E964B8 +_080C383C: + cmp r2, 0x1 + bne _080C385C + ldr r0, _080C3854 + ldr r3, _080C3858 + movs r1, 0x9 + str r1, [sp] + str r4, [sp, 0x4] + movs r1, 0x8 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + b _080C3870 + .align 2, 0 +_080C3854: .4byte 0x0600e000 +_080C3858: .4byte gUnknown_08E964B8 +_080C385C: + cmp r2, 0x2 + bne _080C3884 + ldr r0, _080C387C + ldr r3, _080C3880 + movs r1, 0x11 + str r1, [sp] + str r4, [sp, 0x4] +_080C386A: + movs r1, 0x8 + str r1, [sp, 0x8] + str r2, [sp, 0xC] +_080C3870: + movs r1, 0x5 + movs r2, 0x1 + bl sub_809D104 + b _080C389E + .align 2, 0 +_080C387C: .4byte 0x0600e000 +_080C3880: .4byte gUnknown_08E964B8 +_080C3884: + movs r4, 0x1 + ldr r0, _080C38C0 + ldr r3, _080C38C4 + str r1, [sp] + movs r2, 0x2 + str r2, [sp, 0x4] + movs r1, 0x9 + str r1, [sp, 0x8] + str r2, [sp, 0xC] + movs r1, 0x5 + movs r2, 0x1 + bl sub_809D104 +_080C389E: + adds r4, 0xD + ldr r0, _080C38C8 + ldrh r0, [r0] + cmp r0, 0 + bne _080C38CC + movs r6, 0 + ldr r0, _080C38C0 + ldr r3, _080C38C4 + movs r1, 0x11 + str r1, [sp] + movs r2, 0x2 + str r2, [sp, 0x4] + movs r1, 0xA + str r1, [sp, 0x8] + str r2, [sp, 0xC] + b _080C392A + .align 2, 0 +_080C38C0: .4byte 0x0600e000 +_080C38C4: .4byte gUnknown_08E964B8 +_080C38C8: .4byte gUnknown_0203869C +_080C38CC: + cmp r0, 0x1 + bne _080C38EC + movs r6, 0x1 + ldr r0, _080C38E4 + ldr r3, _080C38E8 + movs r1, 0 + str r1, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + movs r1, 0xB + b _080C3924 + .align 2, 0 +_080C38E4: .4byte 0x0600e000 +_080C38E8: .4byte gUnknown_08E964B8 +_080C38EC: + cmp r0, 0x2 + bne _080C3910 + movs r6, 0x2 + ldr r0, _080C3908 + ldr r3, _080C390C + movs r1, 0xB + str r1, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + movs r1, 0xA + str r1, [sp, 0x8] + str r6, [sp, 0xC] + b _080C392A + .align 2, 0 +_080C3908: .4byte 0x0600e000 +_080C390C: .4byte gUnknown_08E964B8 +_080C3910: + cmp r0, 0x3 + bne _080C393C + movs r6, 0x3 + ldr r0, _080C3934 + ldr r3, _080C3938 + movs r1, 0x15 + str r1, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + movs r1, 0xA +_080C3924: + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] +_080C392A: + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_809D104 + b _080C395A + .align 2, 0 +_080C3934: .4byte 0x0600e000 +_080C3938: .4byte gUnknown_08E964B8 +_080C393C: + movs r6, 0x4 + ldr r0, _080C3984 + ldr r3, _080C3988 + movs r1, 0 + str r1, [sp] + movs r1, 0x6 + str r1, [sp, 0x4] + movs r1, 0xA + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_809D104 +_080C395A: + ldr r5, _080C398C + lsls r4, r6, 12 + ldr r2, _080C3984 + movs r3, 0x7F +_080C3962: + ldrh r1, [r2] + adds r0, r5, 0 + ands r0, r1 + strh r0, [r2] + ldrh r1, [r2] + adds r0, r4, 0 + orrs r0, r1 + strh r0, [r2] + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C3962 + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C3984: .4byte 0x0600e000 +_080C3988: .4byte gUnknown_08E964B8 +_080C398C: .4byte 0x00000fff + thumb_func_end sub_80C37E4 + + thumb_func_start sub_80C3990 +sub_80C3990: @ 80C3990 + push {r4,r5,lr} + lsls r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r1, _080C39DC + lsrs r0, 23 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + lsls r4, r0, 16 + adds r0, r4, 0 + movs r1, 0x3F + bl __udivsi3 + adds r1, r0, 0 + ldr r0, _080C39E0 + ands r0, r1 + cmp r0, 0 + beq _080C39BC + movs r0, 0x80 + lsls r0, 9 + adds r1, r0 +_080C39BC: + lsrs r1, 16 + cmp r1, 0 + bne _080C39C8 + cmp r4, 0 + beq _080C39C8 + movs r1, 0x1 +_080C39C8: + cmp r5, 0 + beq _080C39D2 + cmp r1, 0xA + bls _080C39D2 + movs r1, 0xA +_080C39D2: + lsls r0, r1, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080C39DC: .4byte gUnknown_02038670 +_080C39E0: .4byte 0x0000ffff + thumb_func_end sub_80C3990 + + thumb_func_start sub_80C39E4 +sub_80C39E4: @ 80C39E4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r1, _080C3A44 + lsls r0, r5, 1 + adds r0, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r7, r1, 0 + cmp r0, 0 + bge _080C3A00 + negs r0, r0 +_080C3A00: + lsls r4, r0, 16 + adds r0, r4, 0 + movs r1, 0x50 + bl __udivsi3 + adds r2, r0, 0 + ldr r0, _080C3A48 + ands r0, r2 + cmp r0, 0 + beq _080C3A1A + movs r0, 0x80 + lsls r0, 9 + adds r2, r0 +_080C3A1A: + lsrs r2, 16 + cmp r2, 0 + bne _080C3A26 + cmp r4, 0 + beq _080C3A26 + movs r2, 0x1 +_080C3A26: + cmp r6, 0 + beq _080C3A30 + cmp r2, 0xA + bls _080C3A30 + movs r2, 0xA +_080C3A30: + lsls r0, r5, 1 + adds r0, r7 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _080C3A4C + negs r0, r2 + lsls r0, 24 + b _080C3A4E + .align 2, 0 +_080C3A44: .4byte gUnknown_02038688 +_080C3A48: .4byte 0x0000ffff +_080C3A4C: + lsls r0, r2, 24 +_080C3A4E: + lsrs r0, 24 + lsls r0, 24 + asrs r0, 24 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80C39E4 + + thumb_func_start sub_80C3A5C +sub_80C3A5C: @ 80C3A5C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r1, _080C3A90 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r3, r0, r1 + ldrh r2, [r3, 0x1C] + movs r1, 0x1C + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080C3A94 + movs r1, 0x8 + ldrsh r0, [r3, r1] + movs r1, 0x3 + subs r1, r0 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + strh r0, [r3, 0x1E] + adds r0, r2, 0x1 + strh r0, [r3, 0x1C] + b _080C3B12 + .align 2, 0 +_080C3A90: .4byte gTasks +_080C3A94: + cmp r0, 0x1 + bne _080C3B12 + ldrh r0, [r3, 0x1E] + subs r0, 0x1 + strh r0, [r3, 0x1E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080C3B12 + movs r0, 0x8 + ldrsh r2, [r3, r0] + lsls r2, 17 + ldr r1, _080C3B18 + adds r2, r1 + lsrs r2, 16 + movs r0, 0xA + ldrsh r1, [r3, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 6 + ldr r1, _080C3B1C + adds r0, r1 + strh r2, [r0] + movs r0, 0xA + ldrsh r1, [r3, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 6 + ldr r1, _080C3B20 + adds r0, r1 + adds r1, r2, 0x1 + strh r1, [r0] + movs r0, 0xA + ldrsh r1, [r3, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 6 + ldr r1, _080C3B24 + adds r0, r1 + adds r1, r2, 0 + adds r1, 0x10 + strh r1, [r0] + movs r0, 0xA + ldrsh r1, [r3, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 6 + ldr r1, _080C3B28 + adds r0, r1 + adds r2, 0x11 + strh r2, [r0] + ldr r1, _080C3B2C + ldrb r0, [r1, 0x5] + adds r0, 0x1 + strb r0, [r1, 0x5] + adds r0, r4, 0 + bl DestroyTask + movs r0, 0x18 + bl PlaySE +_080C3B12: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C3B18: .4byte 0x50430000 +_080C3B1C: .4byte 0x0600e142 +_080C3B20: .4byte 0x0600e144 +_080C3B24: .4byte 0x0600e182 +_080C3B28: .4byte 0x0600e184 +_080C3B2C: .4byte 0x02018000 + thumb_func_end sub_80C3A5C + + thumb_func_start sub_80C3B30 +sub_80C3B30: @ 80C3B30 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + movs r5, 0 + ldr r1, _080C3BC0 + ldrb r0, [r1] + ldr r2, _080C3BC4 + mov r10, r2 + cmp r0, 0 + beq _080C3B5C +_080C3B4E: + adds r5, 0x1 + cmp r5, 0x3 + bgt _080C3B5C + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080C3B4E +_080C3B5C: + movs r1, 0 + lsls r0, r5, 1 + mov r2, r12 + lsls r2, 2 + mov r9, r2 + adds r0, r5 + lsls r0, 5 + mov r8, r0 + ldr r7, _080C3BC8 + movs r0, 0x90 + lsls r0, 8 + adds r6, r0, 0 +_080C3B74: + lsls r0, r1, 5 + adds r4, r1, 0x1 + add r0, r8 + movs r3, 0x1D + lsls r0, 1 + ldr r1, _080C3BCC + adds r2, r0, r1 +_080C3B82: + ldrh r1, [r2] + adds r0, r7, 0 + ands r0, r1 + orrs r0, r6 + strh r0, [r2] + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C3B82 + adds r1, r4, 0 + cmp r1, 0x2 + ble _080C3B74 + mov r0, r9 + add r0, r12 + lsls r0, 3 + add r0, r10 + strh r5, [r0, 0x1C] + movs r1, 0x1 + strh r1, [r0, 0x20] + ldr r2, _080C3BD0 + str r2, [r0] + mov r1, r12 + ldr r0, _080C3BD4 + strb r1, [r0, 0x3] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C3BC0: .4byte gUnknown_02038690 +_080C3BC4: .4byte gTasks +_080C3BC8: .4byte 0x00000fff +_080C3BCC: .4byte 0x0600e100 +_080C3BD0: .4byte sub_80C3BD8 +_080C3BD4: .4byte 0x02018000 + thumb_func_end sub_80C3B30 + + thumb_func_start sub_80C3BD8 +sub_80C3BD8: @ 80C3BD8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C3C24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] + lsls r0, 16 + asrs r5, r0, 16 + cmp r5, 0x1 + bne _080C3C3C + movs r0, 0 + strh r0, [r4, 0x1E] + ldrh r2, [r4, 0x20] + lsls r2, 24 + lsrs r2, 24 + ldr r3, _080C3C28 + movs r0, 0x91 + movs r1, 0x1 + bl BlendPalette + movs r1, 0x22 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C3C2C + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + bne _080C3C3C + strh r5, [r4, 0x22] + b _080C3C3C + .align 2, 0 +_080C3C24: .4byte gTasks +_080C3C28: .4byte 0x00006f8d +_080C3C2C: + ldrh r0, [r4, 0x20] + subs r0, 0x1 + strh r0, [r4, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080C3C3C + strh r0, [r4, 0x22] +_080C3C3C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C3BD8 + + thumb_func_start sub_80C3C44 +sub_80C3C44: @ 80C3C44 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0x9 + bgt _080C3C6C + adds r0, r1, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080C3CA8 + ldrh r0, [r4, 0x30] + movs r1, 0 + bl PlayCry1 + movs r0, 0 + strh r0, [r4, 0x30] + b _080C3CA8 +_080C3C6C: + movs r0, 0xC0 + lsls r0, 3 + adds r2, r0, 0 + ldrh r1, [r4, 0x30] + adds r2, r1 + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r4, 0x20] + subs r0, r1 + strh r0, [r4, 0x20] + movs r1, 0xFF + ands r2, r1 + strh r2, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x77 + bgt _080C3C92 + movs r0, 0x78 + strh r0, [r4, 0x20] +_080C3C92: + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x78 + bne _080C3CA8 + ldr r0, _080C3CB0 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x30] + ldr r1, _080C3CB4 + movs r0, 0x1 + strb r0, [r1, 0x6] +_080C3CA8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C3CB0: .4byte SpriteCallbackDummy +_080C3CB4: .4byte 0x02018000 + thumb_func_end sub_80C3C44 + + thumb_func_start sub_80C3CB8 +sub_80C3CB8: @ 80C3CB8 + push {lr} + adds r3, r0, 0 + movs r0, 0xC0 + lsls r0, 3 + adds r2, r0, 0 + ldrh r0, [r3, 0x30] + adds r2, r0 + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r3, 0x20] + subs r0, r1 + strh r0, [r3, 0x20] + movs r1, 0xFF + ands r2, r1 + strh r2, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080C3CF8 + ldr r0, _080C3CFC + str r0, [r3, 0x1C] + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080C3D00 + movs r0, 0x2 + strb r0, [r1, 0x6] +_080C3CF8: + pop {r0} + bx r0 + .align 2, 0 +_080C3CFC: .4byte SpriteCallbackDummy +_080C3D00: .4byte 0x02018000 + thumb_func_end sub_80C3CB8 + + thumb_func_start sub_80C3D04 +sub_80C3D04: @ 80C3D04 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080C3DD8 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080C3DBE + movs r0, 0 + strh r0, [r1, 0x8] + ldr r0, _080C3DDC + mov r8, r0 + ldrb r0, [r0, 0x7] + cmp r0, 0x27 + bhi _080C3DBE + ldr r4, _080C3DE0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF0 + bl __umodsi3 + adds r1, r0, 0 + subs r1, 0x14 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + movs r2, 0x2C + movs r3, 0x5 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl Random + ldr r1, _080C3DE4 + lsls r5, r4, 4 + adds r5, r4 + lsls r5, 2 + adds r5, r1 + lsls r0, 23 + lsrs r0, 23 + strh r0, [r5, 0x2E] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x18 + bl __umodsi3 + adds r0, 0x10 + strh r0, [r5, 0x30] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xFF + ands r0, r1 + adds r0, 0x30 + strh r0, [r5, 0x32] + bl Random + ldrh r6, [r5, 0x4] + lsls r4, r6, 22 + lsrs r4, 22 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x11 + bl __umodsi3 + adds r4, r0 + ldr r1, _080C3DE8 + adds r0, r1, 0 + ands r4, r0 + ldr r0, _080C3DEC + ands r0, r6 + orrs r0, r4 + strh r0, [r5, 0x4] + mov r1, r8 + ldrb r0, [r1, 0x7] + adds r0, 0x1 + strb r0, [r1, 0x7] +_080C3DBE: + ldr r0, _080C3DDC + ldrb r0, [r0, 0x9] + cmp r0, 0 + beq _080C3DCC + adds r0, r7, 0 + bl DestroyTask +_080C3DCC: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C3DD8: .4byte gTasks +_080C3DDC: .4byte 0x02018000 +_080C3DE0: .4byte gSpriteTemplate_83D17B4 +_080C3DE4: .4byte gSprites +_080C3DE8: .4byte 0x000003ff +_080C3DEC: .4byte 0xfffffc00 + thumb_func_end sub_80C3D04 + + thumb_func_start sub_80C3DF0 +sub_80C3DF0: @ 80C3DF0 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 24 + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r1, [r4, 0x32] + ldrh r0, [r4, 0x36] + adds r1, r0 + lsls r0, r1, 16 + asrs r0, 24 + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + movs r0, 0xFF + ands r1, r0 + strh r1, [r4, 0x36] + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] + ldr r5, _080C3E5C + ldrb r0, [r5, 0x9] + cmp r0, 0 + beq _080C3E3A + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080C3E3A: + movs r1, 0x20 + ldrsh r0, [r4, r1] + cmp r0, 0xF8 + bgt _080C3E4A + movs r2, 0x22 + ldrsh r0, [r4, r2] + cmp r0, 0x74 + ble _080C3E56 +_080C3E4A: + adds r0, r4, 0 + bl DestroySprite + ldrb r0, [r5, 0x7] + subs r0, 0x1 + strb r0, [r5, 0x7] +_080C3E56: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3E5C: .4byte 0x02018000 + thumb_func_end sub_80C3DF0 + + thumb_func_start sub_80C3E60 +sub_80C3E60: @ 80C3E60 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _080C3E98 + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C3E9C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + strh r5, [r1, 0xA] + ldr r0, _080C3EA0 + lsls r4, 6 + adds r4, r0 + ldrh r0, [r4] + strh r0, [r1, 0xC] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3E98: .4byte sub_80C3EA4 +_080C3E9C: .4byte gTasks +_080C3EA0: .4byte gUnknown_02038570 + thumb_func_end sub_80C3E60 + + thumb_func_start sub_80C3EA4 +sub_80C3EA4: @ 80C3EA4 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C3EF8 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrb r5, [r4, 0x8] + ldrh r0, [r4, 0x1C] + adds r1, r0, 0x1 + strh r1, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xA + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080C3EEE + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r0, [r4, 0xC] + ldrb r2, [r4, 0x1E] + ldr r1, _080C3EFC + lsls r3, r5, 6 + adds r1, 0x38 + adds r3, r1 + ldr r1, [r3] + str r1, [sp] + adds r1, r5, 0 + movs r3, 0 + bl sub_80C3024 + ldrh r0, [r4, 0x1E] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x1E] +_080C3EEE: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3EF8: .4byte gTasks +_080C3EFC: .4byte gUnknown_02038570 + thumb_func_end sub_80C3EA4 + + thumb_func_start sub_80C3F00 +sub_80C3F00: @ 80C3F00 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _080C4098 + ldrh r2, [r0] + adds r4, r0, 0 + adds r3, r4, 0x2 + movs r0, 0x2 + mov r8, r0 +_080C3F16: + lsls r0, r2, 16 + asrs r0, 16 + movs r5, 0 + ldrsh r1, [r3, r5] + cmp r0, r1 + bge _080C3F24 + ldrh r2, [r3] +_080C3F24: + adds r3, 0x2 + movs r0, 0x1 + negs r0, r0 + add r8, r0 + mov r1, r8 + cmp r1, 0 + bge _080C3F16 + lsls r0, r2, 16 + mov r9, r0 + cmp r0, 0 + bge _080C3F62 + ldrh r2, [r4] + adds r3, r4, 0x2 + movs r4, 0x2 + mov r8, r4 +_080C3F42: + lsls r0, r2, 16 + asrs r0, 16 + movs r5, 0 + ldrsh r1, [r3, r5] + cmp r0, r1 + ble _080C3F50 + ldrh r2, [r3] +_080C3F50: + adds r3, 0x2 + movs r0, 0x1 + negs r0, r0 + add r8, r0 + lsls r1, r2, 16 + mov r9, r1 + mov r4, r8 + cmp r4, 0 + bge _080C3F42 +_080C3F62: + movs r5, 0 + mov r8, r5 + mov r10, r5 +_080C3F68: + ldr r0, _080C409C + mov r1, r8 + lsls r7, r1, 1 + adds r0, r7, r0 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 5 + subs r0, r1 + lsls r0, 2 + adds r0, r1 + lsls r0, 3 + mov r4, r9 + asrs r6, r4, 16 + adds r1, r6, 0 + cmp r6, 0 + bge _080C3F8A + negs r1, r6 +_080C3F8A: + bl __divsi3 + adds r4, r0, 0 + movs r1, 0xA + bl __modsi3 + cmp r0, 0x4 + ble _080C3F9C + adds r4, 0xA +_080C3F9C: + ldr r0, _080C40A0 + mov r1, r10 + adds r5, r1, r0 + adds r0, r4, 0 + movs r1, 0xA + bl __divsi3 + str r0, [r5] + ldr r0, _080C40A4 + adds r7, r0 + movs r2, 0 + ldrsh r1, [r7, r2] + cmp r1, 0 + bge _080C3FBA + negs r1, r1 +_080C3FBA: + lsls r0, r1, 5 + subs r0, r1 + lsls r0, 2 + adds r0, r1 + lsls r0, 3 + adds r1, r6, 0 + cmp r1, 0 + bge _080C3FCC + negs r1, r1 +_080C3FCC: + bl __divsi3 + adds r4, r0, 0 + movs r1, 0xA + bl __modsi3 + cmp r0, 0x4 + ble _080C3FDE + adds r4, 0xA +_080C3FDE: + adds r0, r4, 0 + movs r1, 0xA + bl __divsi3 + str r0, [r5, 0x4] + movs r4, 0 + ldrsh r0, [r7, r4] + cmp r0, 0 + bge _080C3FF4 + movs r0, 0x1 + strb r0, [r5, 0x10] +_080C3FF4: + ldr r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + subs r0, r1 + lsls r0, 11 + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + movs r4, 0xFF + ands r0, r4 + cmp r0, 0x7F + bls _080C4016 + movs r0, 0x80 + lsls r0, 1 + adds r1, r0 +_080C4016: + lsrs r0, r1, 8 + str r0, [r5, 0x8] + ldr r1, [r5, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + subs r0, r1 + lsls r0, 11 + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + ands r0, r4 + cmp r0, 0x7F + bls _080C403A + movs r2, 0x80 + lsls r2, 1 + adds r1, r2 +_080C403A: + lsrs r0, r1, 8 + str r0, [r5, 0xC] + mov r0, r8 + lsls r4, r0, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80C3990 + strb r0, [r5, 0x11] + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80C39E4 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bge _080C4060 + negs r0, r0 +_080C4060: + strb r0, [r5, 0x12] + ldr r0, _080C40A8 + add r0, r8 + ldrb r0, [r0] + cmp r0, 0 + beq _080C40B4 + ldr r4, [r5, 0x8] + ldrh r2, [r5, 0x8] + ldr r3, [r5, 0xC] + ldrh r1, [r5, 0xC] + ldrb r0, [r5, 0x10] + cmp r0, 0 + beq _080C4080 + lsls r0, r1, 16 + negs r0, r0 + lsrs r1, r0, 16 +_080C4080: + lsls r0, r2, 16 + asrs r2, r0, 16 + lsls r0, r1, 16 + asrs r1, r0, 16 + adds r0, r2, r1 + cmp r0, 0x58 + bne _080C40B4 + cmp r1, 0 + ble _080C40AC + subs r0, r3, 0x1 + str r0, [r5, 0xC] + b _080C40B4 + .align 2, 0 +_080C4098: .4byte gUnknown_02038678 +_080C409C: .4byte gUnknown_02038670 +_080C40A0: .4byte 0x02018018 +_080C40A4: .4byte gUnknown_02038688 +_080C40A8: .4byte gUnknown_02038690 +_080C40AC: + cmp r2, 0 + ble _080C40B4 + subs r0, r4, 0x1 + str r0, [r5, 0x8] +_080C40B4: + movs r1, 0x14 + add r10, r1 + movs r2, 0x1 + add r8, r2 + mov r4, r8 + cmp r4, 0x3 + bgt _080C40C4 + b _080C3F68 +_080C40C4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C3F00 + + thumb_func_start sub_80C40D4 +sub_80C40D4: @ 80C40D4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + movs r1, 0 + mov r10, r1 + movs r2, 0 + str r2, [sp] + cmp r0, 0 + bne _080C4198 + mov r8, r2 + ldr r0, _080C417C + subs r1, 0x18 + adds r1, r0 + mov r9, r1 + adds r4, r0, 0 + adds r4, 0x8 + movs r6, 0xA0 +_080C4102: + ldrb r0, [r4, 0x9] + cmp r7, r0 + bcs _080C416A + adds r0, 0x13 + adds r0, r6, r0 + subs r0, r7 + lsls r0, 1 + ldr r2, _080C4180 + adds r0, r2 + ldr r2, _080C4184 + adds r1, r2, 0 + strh r1, [r0] + ldr r0, _080C4188 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, [r4] + lsls r0, 16 + ldrb r1, [r4, 0x9] + bl __udivsi3 + adds r1, r7, 0x1 + adds r3, r0, 0 + muls r3, r1 + ldr r0, _080C418C + ands r0, r3 + ldr r1, _080C4190 + cmp r0, r1 + bls _080C4146 + movs r0, 0x80 + lsls r0, 9 + adds r3, r0 +_080C4146: + ldr r1, _080C4194 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + mov r1, r8 + strh r1, [r0, 0x8] + lsrs r1, r3, 16 + strh r1, [r0, 0xA] + mov r2, r9 + ldrb r0, [r2, 0x14] + adds r0, 0x1 + strb r0, [r2, 0x14] + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 +_080C416A: + adds r4, 0x14 + adds r6, 0x60 + movs r0, 0x1 + add r8, r0 + mov r1, r8 + cmp r1, 0x3 + ble _080C4102 + b _080C4292 + .align 2, 0 +_080C417C: .4byte 0x02018018 +_080C4180: .4byte 0x0600bffe +_080C4184: .4byte 0x000060b3 +_080C4188: .4byte sub_80C42C0 +_080C418C: .4byte 0x0000ffff +_080C4190: .4byte 0x00007fff +_080C4194: .4byte gTasks +_080C4198: + movs r2, 0 + mov r8, r2 + ldr r0, _080C4220 + mov r12, r0 + mov r9, r2 + movs r1, 0xC0 + str r1, [sp, 0x4] +_080C41A6: + mov r6, r9 + add r6, r12 + ldrb r1, [r6, 0x12] + ldrb r0, [r6, 0x10] + ldr r2, _080C4224 + cmp r0, 0 + beq _080C41B6 + adds r2, 0x2 +_080C41B6: + lsls r0, r1, 24 + asrs r0, 24 + cmp r7, r0 + bge _080C427E + adds r0, 0x13 + ldr r1, [sp, 0x4] + adds r0, r1, r0 + subs r0, r7 + lsls r0, 1 + ldr r1, _080C4228 + adds r0, r1 + strh r2, [r0] + ldr r0, _080C422C + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, [r6, 0xC] + lsls r0, 16 + ldrb r1, [r6, 0x12] + bl __udivsi3 + adds r1, r7, 0x1 + adds r3, r0, 0 + muls r3, r1 + ldr r0, _080C4230 + ands r0, r3 + ldr r1, _080C4234 + cmp r0, r1 + bls _080C41FA + movs r2, 0x80 + lsls r2, 9 + adds r3, r2 +_080C41FA: + ldr r1, _080C4238 + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 3 + adds r4, r0, r1 + mov r0, r8 + strh r0, [r4, 0x8] + ldrb r0, [r6, 0x10] + adds r6, r1, 0 + cmp r0, 0 + beq _080C423C + movs r0, 0x1 + strh r0, [r4, 0xC] + ldr r0, [sp] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + b _080C4246 + .align 2, 0 +_080C4220: .4byte 0x02018018 +_080C4224: .4byte 0x000060a3 +_080C4228: .4byte 0x0600bffe +_080C422C: .4byte sub_80C42C0 +_080C4230: .4byte 0x0000ffff +_080C4234: .4byte 0x00007fff +_080C4238: .4byte gTasks +_080C423C: + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 +_080C4246: + ldr r0, _080C4264 + mov r1, r9 + adds r4, r1, r0 + ldrb r1, [r4, 0x10] + mov r12, r0 + cmp r1, 0 + beq _080C4268 + adds r0, r2, r5 + lsls r0, 3 + adds r0, r6 + lsrs r2, r3, 16 + ldr r1, [r4, 0x8] + subs r1, r2 + b _080C4274 + .align 2, 0 +_080C4264: .4byte 0x02018018 +_080C4268: + adds r0, r2, r5 + lsls r0, 3 + adds r0, r6 + lsrs r2, r3, 16 + ldr r1, [r4, 0x8] + adds r1, r2 +_080C4274: + strh r1, [r0, 0xA] + ldr r1, _080C42BC + ldrb r0, [r1, 0x14] + adds r0, 0x1 + strb r0, [r1, 0x14] +_080C427E: + movs r2, 0x14 + add r9, r2 + ldr r0, [sp, 0x4] + adds r0, 0x60 + str r0, [sp, 0x4] + movs r1, 0x1 + add r8, r1 + mov r2, r8 + cmp r2, 0x3 + ble _080C41A6 +_080C4292: + ldr r0, [sp] + cmp r0, 0 + beq _080C429E + movs r0, 0x16 + bl PlaySE +_080C429E: + mov r1, r10 + cmp r1, 0 + beq _080C42AA + movs r0, 0x15 + bl PlaySE +_080C42AA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C42BC: .4byte 0x02018000 + thumb_func_end sub_80C40D4 + + thumb_func_start sub_80C42C0 +sub_80C42C0: @ 80C42C0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + movs r6, 0 + mov r9, r6 + ldr r1, _080C4308 + lsls r0, 2 + add r0, r12 + lsls r0, 3 + adds r0, r1 + ldrb r5, [r0, 0x8] + ldrh r7, [r0, 0xA] + ldrh r1, [r0, 0xC] + mov r8, r1 + movs r2, 0xC + ldrsh r0, [r0, r2] + cmp r0, 0 + beq _080C4310 + ldr r1, _080C430C + lsls r2, r5, 1 + adds r0, r1, 0 + adds r0, 0xC + adds r0, r2, r0 + movs r3, 0 + ldrsh r0, [r0, r3] + mov r10, r1 + adds r4, r2, 0 + cmp r0, 0 + bgt _080C4328 + b _080C4326 + .align 2, 0 +_080C4308: .4byte gTasks +_080C430C: .4byte 0x02018000 +_080C4310: + ldr r1, _080C4350 + lsls r2, r5, 1 + adds r0, r1, 0 + adds r0, 0xC + adds r0, r2, r0 + movs r3, 0 + ldrsh r0, [r0, r3] + mov r10, r1 + adds r4, r2, 0 + cmp r0, 0x57 + ble _080C4328 +_080C4326: + movs r6, 0x1 +_080C4328: + mov r0, r10 + adds r0, 0xC + adds r3, r4, r0 + ldrh r2, [r3] + movs r0, 0 + ldrsh r1, [r3, r0] + lsls r0, r7, 16 + asrs r0, 16 + cmp r1, r0 + bne _080C4340 + movs r1, 0x1 + mov r9, r1 +_080C4340: + mov r0, r9 + cmp r0, 0 + bne _080C4362 + cmp r6, 0 + beq _080C4354 + strh r7, [r3] + b _080C4362 + .align 2, 0 +_080C4350: .4byte 0x02018000 +_080C4354: + mov r1, r8 + cmp r1, 0 + beq _080C435E + subs r0, r2, 0x1 + b _080C4360 +_080C435E: + adds r0, r2, 0x1 +_080C4360: + strh r0, [r3] +_080C4362: + cmp r6, 0 + bne _080C43C8 + mov r2, r9 + cmp r2, 0 + bne _080C43CE + movs r2, 0 + ldr r0, _080C4388 + adds r6, r4, r0 + adds r0, r4, r5 + lsls r5, r0, 5 +_080C4376: + movs r0, 0 + ldrsh r3, [r6, r0] + adds r0, r2, 0x1 + lsls r1, r0, 3 + adds r4, r0, 0 + cmp r3, r1 + blt _080C438C + movs r0, 0x8 + b _080C43A8 + .align 2, 0 +_080C4388: .4byte 0x0201800c +_080C438C: + lsls r0, r2, 3 + cmp r3, r0 + blt _080C43A6 + adds r0, r3, 0 + cmp r3, 0 + bge _080C439A + adds r0, r3, 0x7 +_080C439A: + asrs r0, 3 + lsls r0, 3 + subs r0, r3, r0 + lsls r0, 24 + lsrs r0, 24 + b _080C43A8 +_080C43A6: + movs r0, 0 +_080C43A8: + cmp r0, 0x3 + bhi _080C43B4 + ldr r3, _080C43B0 + b _080C43B6 + .align 2, 0 +_080C43B0: .4byte 0x0000504c +_080C43B4: + ldr r3, _080C43EC +_080C43B6: + adds r1, r0, r3 + adds r0, r5, r2 + lsls r0, 1 + ldr r2, _080C43F0 + adds r0, r2 + strh r1, [r0] + adds r2, r4, 0 + cmp r2, 0xA + ble _080C4376 +_080C43C8: + mov r3, r9 + cmp r3, 0 + beq _080C43DC +_080C43CE: + mov r1, r10 + ldrb r0, [r1, 0x14] + subs r0, 0x1 + strb r0, [r1, 0x14] + mov r0, r12 + bl DestroyTask +_080C43DC: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C43EC: .4byte 0x00005057 +_080C43F0: .4byte 0x0600e18e + thumb_func_end sub_80C42C0 + + thumb_func_start sub_80C43F4 +sub_80C43F4: @ 80C43F4 + push {r4,r5,lr} + ldr r0, _080C442C + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080C4430 + adds r0, r1 + bl sub_80AE47C + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + cmp r5, 0 + beq _080C4422 + ldr r4, _080C4434 + ldrb r0, [r4] + ldr r1, _080C4438 + ldrb r1, [r1] + bl sub_80AE398 + ldrb r0, [r4] + bl sub_80AE82C +_080C4422: + ldr r0, _080C443C + strh r5, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C442C: .4byte gUnknown_02038694 +_080C4430: .4byte gPlayerParty +_080C4434: .4byte gUnknown_0203869C +_080C4438: .4byte gUnknown_0203869E +_080C443C: .4byte gScriptResult + thumb_func_end sub_80C43F4 + + thumb_func_start sub_80C4440 +sub_80C4440: @ 80C4440 + push {r4,lr} + movs r4, 0 + ldr r0, _080C4464 + ldrb r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080C4468 + adds r2, r1, r0 + ldr r0, _080C446C + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080C44B2 + lsls r0, 2 + ldr r1, _080C4470 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C4464: .4byte gUnknown_02038694 +_080C4468: .4byte gPlayerParty +_080C446C: .4byte gUnknown_0203869C +_080C4470: .4byte _080C4474 + .align 2, 0 +_080C4474: + .4byte _080C4488 + .4byte _080C448E + .4byte _080C4494 + .4byte _080C449A + .4byte _080C44A0 +_080C4488: + adds r0, r2, 0 + movs r1, 0x32 + b _080C44A4 +_080C448E: + adds r0, r2, 0 + movs r1, 0x33 + b _080C44A4 +_080C4494: + adds r0, r2, 0 + movs r1, 0x34 + b _080C44A4 +_080C449A: + adds r0, r2, 0 + movs r1, 0x35 + b _080C44A4 +_080C44A0: + adds r0, r2, 0 + movs r1, 0x36 +_080C44A4: + bl GetMonData + ldr r1, _080C44BC + ldrh r1, [r1] + cmp r0, r1 + bls _080C44B2 + movs r4, 0x1 +_080C44B2: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C44BC: .4byte gUnknown_0203869E + thumb_func_end sub_80C4440 + + thumb_func_start sub_80C44C0 +sub_80C44C0: @ 80C44C0 + push {r4-r7,lr} + sub sp, 0x4 + ldr r1, _080C44E8 + ldr r0, _080C44EC + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080C44D4 + b _080C465E +_080C44D4: + ldr r0, _080C44F0 + ldrh r0, [r0] + cmp r0, 0x4 + bls _080C44DE + b _080C465E +_080C44DE: + lsls r0, 2 + ldr r1, _080C44F4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C44E8: .4byte gUnknown_02038690 +_080C44EC: .4byte gUnknown_02038695 +_080C44F0: .4byte gUnknown_0203869C +_080C44F4: .4byte _080C44F8 + .align 2, 0 +_080C44F8: + .4byte _080C450C + .4byte _080C4554 + .4byte _080C4598 + .4byte _080C45DC + .4byte _080C4624 +_080C450C: + ldr r6, _080C4548 + ldrb r0, [r6] + movs r5, 0x64 + muls r0, r5 + ldr r4, _080C454C + adds r0, r4 + movs r1, 0x32 + bl GetMonData + lsls r0, 24 + lsrs r1, r0, 24 + mov r0, sp + strb r1, [r0] + ldr r0, _080C4550 + ldrh r0, [r0] + cmp r1, r0 + bls _080C4530 + b _080C465E +_080C4530: + adds r0, r1, 0 + cmp r0, 0x3 + bls _080C4538 + b _080C465E +_080C4538: + adds r1, r0, 0x1 + mov r0, sp + strb r1, [r0] + ldrb r0, [r6] + muls r0, r5 + adds r0, r4 + movs r1, 0x32 + b _080C4610 + .align 2, 0 +_080C4548: .4byte gUnknown_02038694 +_080C454C: .4byte gPlayerParty +_080C4550: .4byte gUnknown_0203869E +_080C4554: + mov r4, sp + ldr r7, _080C458C + ldrb r0, [r7] + movs r6, 0x64 + muls r0, r6 + ldr r5, _080C4590 + adds r0, r5 + movs r1, 0x33 + bl GetMonData + strb r0, [r4] + mov r0, sp + ldrb r2, [r0] + ldr r0, _080C4594 + ldrh r0, [r0] + cmp r2, r0 + bhi _080C465E + cmp r2, 0x3 + bhi _080C465E + mov r1, sp + adds r0, r2, 0x1 + strb r0, [r1] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x33 + b _080C4610 + .align 2, 0 +_080C458C: .4byte gUnknown_02038694 +_080C4590: .4byte gPlayerParty +_080C4594: .4byte gUnknown_0203869E +_080C4598: + mov r4, sp + ldr r7, _080C45D0 + ldrb r0, [r7] + movs r6, 0x64 + muls r0, r6 + ldr r5, _080C45D4 + adds r0, r5 + movs r1, 0x34 + bl GetMonData + strb r0, [r4] + mov r0, sp + ldrb r2, [r0] + ldr r0, _080C45D8 + ldrh r0, [r0] + cmp r2, r0 + bhi _080C465E + cmp r2, 0x3 + bhi _080C465E + mov r1, sp + adds r0, r2, 0x1 + strb r0, [r1] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x34 + b _080C4610 + .align 2, 0 +_080C45D0: .4byte gUnknown_02038694 +_080C45D4: .4byte gPlayerParty +_080C45D8: .4byte gUnknown_0203869E +_080C45DC: + mov r4, sp + ldr r7, _080C4618 + ldrb r0, [r7] + movs r6, 0x64 + muls r0, r6 + ldr r5, _080C461C + adds r0, r5 + movs r1, 0x35 + bl GetMonData + strb r0, [r4] + mov r0, sp + ldrb r2, [r0] + ldr r0, _080C4620 + ldrh r0, [r0] + cmp r2, r0 + bhi _080C465E + cmp r2, 0x3 + bhi _080C465E + mov r1, sp + adds r0, r2, 0x1 + strb r0, [r1] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x35 +_080C4610: + mov r2, sp + bl SetMonData + b _080C465E + .align 2, 0 +_080C4618: .4byte gUnknown_02038694 +_080C461C: .4byte gPlayerParty +_080C4620: .4byte gUnknown_0203869E +_080C4624: + mov r4, sp + ldr r7, _080C4668 + ldrb r0, [r7] + movs r6, 0x64 + muls r0, r6 + ldr r5, _080C466C + adds r0, r5 + movs r1, 0x36 + bl GetMonData + strb r0, [r4] + mov r0, sp + ldrb r2, [r0] + ldr r0, _080C4670 + ldrh r0, [r0] + cmp r2, r0 + bhi _080C465E + cmp r2, 0x3 + bhi _080C465E + mov r1, sp + adds r0, r2, 0x1 + strb r0, [r1] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x36 + mov r2, sp + bl SetMonData +_080C465E: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C4668: .4byte gUnknown_02038694 +_080C466C: .4byte gPlayerParty +_080C4670: .4byte gUnknown_0203869E + thumb_func_end sub_80C44C0 + + thumb_func_start sub_80C4674 +sub_80C4674: @ 80C4674 + push {r4,lr} + adds r4, r0, 0 + bl StringCopy + ldrb r0, [r4] + cmp r0, 0xFC + bne _080C4690 + ldrb r0, [r4, 0x1] + cmp r0, 0x15 + bne _080C4690 + adds r0, r4, 0 + movs r1, 0x1 + bl ConvertInternationalString +_080C4690: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C4674 + + thumb_func_start sub_80C4698 +sub_80C4698: @ 80C4698 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + lsls r1, r4, 6 + ldr r0, _080C46E0 + adds r1, r0 + adds r0, r5, 0 + bl StringCopy + ldr r0, _080C46E4 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C46DA + ldr r0, _080C46E8 + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x1A] + cmp r0, 0x1 + bne _080C46DA + adds r0, r5, 0 + bl sub_80C86A0 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl ConvertInternationalString +_080C46DA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C46E0: .4byte gUnknown_02038572 +_080C46E4: .4byte gUnknown_0203869A +_080C46E8: .4byte gLinkPlayers + thumb_func_end sub_80C4698 + + thumb_func_start sub_80C46EC +sub_80C46EC: @ 80C46EC + push {lr} + ldr r0, _080C4710 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C4720 + ldr r0, _080C4714 + ldr r1, _080C4718 + ldrh r2, [r1] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + ldr r2, _080C471C + adds r1, r2 + bl sub_80C4674 + b _080C4730 + .align 2, 0 +_080C4710: .4byte gUnknown_0203869A +_080C4714: .4byte gStringVar1 +_080C4718: .4byte gUnknown_0202E8D0 +_080C471C: .4byte gLinkPlayers + 0x8 +_080C4720: + ldr r0, _080C4734 + ldr r1, _080C4738 + ldrh r1, [r1] + lsls r1, 6 + ldr r2, _080C473C + adds r1, r2 + bl sub_80C4674 +_080C4730: + pop {r0} + bx r0 + .align 2, 0 +_080C4734: .4byte gStringVar1 +_080C4738: .4byte gUnknown_0202E8D0 +_080C473C: .4byte gUnknown_0203857D + thumb_func_end sub_80C46EC + + thumb_func_start sub_80C4740 +sub_80C4740: @ 80C4740 + push {lr} + ldr r0, _080C4750 + ldr r1, _080C4754 + ldrb r1, [r1] + bl sub_80C4698 + pop {r0} + bx r0 + .align 2, 0 +_080C4750: .4byte gStringVar3 +_080C4754: .4byte gUnknown_0202E8D0 + thumb_func_end sub_80C4740 + + thumb_func_start sub_80C4758 +sub_80C4758: @ 80C4758 + push {r4-r6,lr} + movs r1, 0 + movs r2, 0 + ldr r5, _080C4794 + ldr r4, _080C4798 + ldr r0, _080C479C + ldrh r0, [r0] + lsls r0, 1 + adds r0, r4 + movs r6, 0 + ldrsh r3, [r0, r6] +_080C476E: + lsls r0, r1, 1 + adds r0, r4 + movs r6, 0 + ldrsh r0, [r0, r6] + cmp r3, r0 + bge _080C4780 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 +_080C4780: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _080C476E + strh r2, [r5] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C4794: .4byte gUnknown_0202E8CC +_080C4798: .4byte gUnknown_02038670 +_080C479C: .4byte gUnknown_0202E8D0 + thumb_func_end sub_80C4758 + + thumb_func_start sub_80C47A0 +sub_80C47A0: @ 80C47A0 + ldr r2, _080C47B4 + ldr r1, _080C47B8 + ldr r0, _080C47BC + ldrh r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + bx lr + .align 2, 0 +_080C47B4: .4byte gUnknown_0202E8CC +_080C47B8: .4byte gUnknown_02038670 +_080C47BC: .4byte gUnknown_0202E8D0 + thumb_func_end sub_80C47A0 + + thumb_func_start sub_80C47C0 +sub_80C47C0: @ 80C47C0 + push {lr} + movs r1, 0 + ldr r2, _080C47E8 + ldrb r0, [r2] + ldr r3, _080C47EC + cmp r0, 0 + beq _080C47E0 +_080C47CE: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bhi _080C47E0 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080C47CE +_080C47E0: + strh r1, [r3] + pop {r0} + bx r0 + .align 2, 0 +_080C47E8: .4byte gUnknown_02038690 +_080C47EC: .4byte gUnknown_0202E8CE + thumb_func_end sub_80C47C0 + + thumb_func_start sub_80C47F0 +sub_80C47F0: @ 80C47F0 + push {r4,lr} + movs r2, 0 + ldr r3, _080C4830 + ldrb r0, [r3] + ldr r1, _080C4834 + ldr r4, _080C4838 + cmp r0, 0 + beq _080C4812 +_080C4800: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bhi _080C4812 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _080C4800 +_080C4812: + ldrb r1, [r1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C4840 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + ldr r0, _080C483C + adds r1, r0 + adds r0, r4, 0 + bl sub_80C4674 + b _080C484C + .align 2, 0 +_080C4830: .4byte gUnknown_02038690 +_080C4834: .4byte gUnknown_0203869A +_080C4838: .4byte gStringVar3 +_080C483C: .4byte gLinkPlayers + 0x8 +_080C4840: + lsls r1, r2, 6 + ldr r0, _080C4854 + adds r1, r0 + adds r0, r4, 0 + bl sub_80C4674 +_080C484C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C4854: .4byte gUnknown_0203857D + thumb_func_end sub_80C47F0 + + thumb_func_start sub_80C4858 +sub_80C4858: @ 80C4858 + push {lr} + movs r1, 0 + ldr r2, _080C4884 + ldrb r0, [r2] + ldr r3, _080C4888 + cmp r0, 0 + beq _080C4878 +_080C4866: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bhi _080C4878 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080C4866 +_080C4878: + adds r0, r3, 0 + bl sub_80C4698 + pop {r0} + bx r0 + .align 2, 0 +_080C4884: .4byte gUnknown_02038690 +_080C4888: .4byte gStringVar1 + thumb_func_end sub_80C4858 + + thumb_func_start sub_80C488C +sub_80C488C: @ 80C488C + push {lr} + ldr r0, _080C4898 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080C4898: .4byte sub_80AB47C + thumb_func_end sub_80C488C + + thumb_func_start sub_80C489C +sub_80C489C: @ 80C489C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080C48C0 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080C48BA + adds r0, r2, 0 + bl DestroyTask + ldr r0, _080C48C4 + bl SetMainCallback2 +_080C48BA: + pop {r0} + bx r0 + .align 2, 0 +_080C48C0: .4byte gPaletteFade +_080C48C4: .4byte sub_80C488C + thumb_func_end sub_80C489C + + thumb_func_start sub_80C48C8 +sub_80C48C8: @ 80C48C8 + push {lr} + sub sp, 0x4 + bl ScriptContext2_Enable + ldr r0, _080C48F0 + movs r1, 0xA + bl CreateTask + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080C48F0: .4byte sub_80C489C + thumb_func_end sub_80C48C8 + + thumb_func_start sub_80C48F4 +sub_80C48F4: @ 80C48F4 + ldr r2, _080C4908 + ldr r1, _080C490C + ldr r0, _080C4910 + ldrh r0, [r0] + lsls r0, 6 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + bx lr + .align 2, 0 +_080C4908: .4byte gUnknown_0202E8CC +_080C490C: .4byte gUnknown_02038570 +_080C4910: .4byte gUnknown_0202E8D0 + thumb_func_end sub_80C48F4 + + thumb_func_start sub_80C4914 +sub_80C4914: @ 80C4914 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080C4938 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080C4932 + adds r0, r2, 0 + bl DestroyTask + ldr r0, _080C493C + bl SetMainCallback2 +_080C4932: + pop {r0} + bx r0 + .align 2, 0 +_080C4938: .4byte gPaletteFade +_080C493C: .4byte sub_80C2358 + thumb_func_end sub_80C4914 + + thumb_func_start sub_80C4940 +sub_80C4940: @ 80C4940 + push {lr} + sub sp, 0x4 + bl ScriptContext2_Enable + ldr r0, _080C4968 + movs r1, 0xA + bl CreateTask + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080C4968: .4byte sub_80C4914 + thumb_func_end sub_80C4940 + + thumb_func_start sub_80C496C +sub_80C496C: @ 80C496C + ldr r0, _080C4978 + ldr r1, _080C497C + ldrb r1, [r1] + strh r1, [r0] + bx lr + .align 2, 0 +_080C4978: .4byte gUnknown_0202E8CC +_080C497C: .4byte gUnknown_02038695 + thumb_func_end sub_80C496C + + thumb_func_start sub_80C4980 +sub_80C4980: @ 80C4980 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + bl ScriptContext2_Enable + ldr r6, _080C49B8 + adds r0, r6, 0 + movs r1, 0 + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r2, _080C49BC + adds r0, r4, 0 + adds r1, r6, 0 + bl SetTaskFuncWithFollowupFunc + ldr r1, _080C49C0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x1A] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C49B8: .4byte sub_80C8604 +_080C49BC: .4byte sub_80C49C4 +_080C49C0: .4byte gTasks + thumb_func_end sub_80C4980 + + thumb_func_start sub_80C49C4 +sub_80C49C4: @ 80C49C4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080C49E4 + ldrb r0, [r0] + bl sub_80AE098 + ldr r1, _080C49E8 + ldr r2, _080C49EC + adds r0, r4, 0 + bl SetTaskFuncWithFollowupFunc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C49E4: .4byte gUnknown_02038694 +_080C49E8: .4byte sub_80C8734 +_080C49EC: .4byte sub_80C49F0 + thumb_func_end sub_80C49C4 + + thumb_func_start sub_80C49F0 +sub_80C49F0: @ 80C49F0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C4A04 + ldr r2, _080C4A08 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080C4A04: .4byte sub_80C88AC +_080C4A08: .4byte sub_80C4A0C + thumb_func_end sub_80C49F0 + + thumb_func_start sub_80C4A0C +sub_80C4A0C: @ 80C4A0C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C4A20 + ldr r2, _080C4A24 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080C4A20: .4byte sub_80C8E1C +_080C4A24: .4byte sub_80C4A28 + thumb_func_end sub_80C4A0C + + thumb_func_start sub_80C4A28 +sub_80C4A28: @ 80C4A28 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C4A3C + ldr r2, _080C4A40 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080C4A3C: .4byte sub_80C8938 +_080C4A40: .4byte sub_80C4A44 + thumb_func_end sub_80C4A28 + + thumb_func_start sub_80C4A44 +sub_80C4A44: @ 80C4A44 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0 + ldr r0, _080C4AA0 + mov r8, r0 + add r1, sp, 0x4 + mov r12, r1 + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r4, r0, 3 + ldr r6, _080C4AA4 + adds r7, r1, 0 +_080C4A64: + mov r0, sp + adds r2, r0, r3 + adds r1, r3, 0x1 + lsls r0, r1, 1 + adds r0, r4 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r2] + lsls r1, 24 + lsrs r3, r1, 24 + cmp r3, 0x3 + bls _080C4A64 + movs r3, 0 + mov r2, sp +_080C4A80: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bhi _080C4A96 + mov r0, sp + adds r1, r0, r3 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + beq _080C4A80 +_080C4A96: + cmp r3, 0x4 + bne _080C4AA8 + movs r0, 0 + b _080C4AAA + .align 2, 0 +_080C4AA0: .4byte gUnknown_0202E8CC +_080C4AA4: .4byte gUnknown_03004B28 +_080C4AA8: + movs r0, 0x1 +_080C4AAA: + mov r1, r8 + strh r0, [r1] + movs r3, 0 + mov r4, r12 + adds r0, r7, r5 + lsls r2, r0, 3 + ldr r6, _080C4AF8 +_080C4AB8: + adds r1, r4, r3 + adds r0, r3, 0x5 + lsls r0, 1 + adds r0, r2 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _080C4AB8 + mov r0, r12 + bl sub_80C4B34 + ldr r1, _080C4AFC + strb r0, [r1] + ldr r0, _080C4B00 + ldrb r0, [r0] + bl sub_80AE82C + ldr r1, _080C4B04 + ldr r2, _080C4B08 + adds r0, r5, 0 + bl SetTaskFuncWithFollowupFunc + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C4AF8: .4byte gUnknown_03004B28 +_080C4AFC: .4byte gUnknown_0203869B +_080C4B00: .4byte gUnknown_0203869C +_080C4B04: .4byte sub_80C8EBC +_080C4B08: .4byte sub_80C4B0C + thumb_func_end sub_80C4A44 + + thumb_func_start sub_80C4B0C +sub_80C4B0C: @ 80C4B0C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl sub_80B0F28 + ldr r1, _080C4B2C + ldr r2, _080C4B30 + adds r0, r4, 0 + bl SetTaskFuncWithFollowupFunc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C4B2C: .4byte sub_80C8F34 +_080C4B30: .4byte sub_80C4B5C + thumb_func_end sub_80C4B0C + + thumb_func_start sub_80C4B34 +sub_80C4B34: @ 80C4B34 + push {r4,lr} + adds r3, r0, 0 + movs r4, 0 + movs r2, 0x1 +_080C4B3C: + adds r0, r3, r4 + adds r1, r3, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bcs _080C4B4C + lsls r0, r2, 24 + lsrs r4, r0, 24 +_080C4B4C: + adds r2, 0x1 + cmp r2, 0x3 + ble _080C4B3C + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C4B34 + + thumb_func_start sub_80C4B5C +sub_80C4B5C: @ 80C4B5C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C4B84 + ldrh r0, [r0] + cmp r0, 0x1 + bne _080C4B90 + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C4B9E + ldr r0, _080C4B88 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C4B8C + str r0, [r1] + b _080C4B9E + .align 2, 0 +_080C4B84: .4byte gUnknown_0202E8CC +_080C4B88: .4byte gTasks +_080C4B8C: .4byte sub_80C4BA4 +_080C4B90: + adds r0, r4, 0 + bl DestroyTask + bl ScriptContext2_Disable + bl EnableBothScriptContexts +_080C4B9E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C4B5C + + thumb_func_start sub_80C4BA4 +sub_80C4BA4: @ 80C4BA4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_800832C + ldr r1, _080C4BC4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C4BC8 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C4BC4: .4byte gTasks +_080C4BC8: .4byte sub_80C4BCC + thumb_func_end sub_80C4BA4 + + thumb_func_start sub_80C4BCC +sub_80C4BCC: @ 80C4BCC + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080C4BEC + ldrb r0, [r0] + cmp r0, 0 + bne _080C4BE8 + adds r0, r1, 0 + bl DestroyTask + bl ScriptContext2_Disable + bl EnableBothScriptContexts +_080C4BE8: + pop {r0} + bx r0 + .align 2, 0 +_080C4BEC: .4byte gReceivedRemoteLinkPlayers + thumb_func_end sub_80C4BCC + + thumb_func_start sub_80C4BF0 +sub_80C4BF0: @ 80C4BF0 + push {r4,lr} + ldr r2, _080C4C1C + ldr r1, _080C4C20 + ldrb r3, [r1, 0x15] + movs r4, 0x9B + lsls r4, 5 + adds r0, r2, r4 + strh r3, [r0] + adds r0, r1, 0 + adds r0, 0x55 + ldrb r3, [r0] + adds r4, 0x2 + adds r0, r2, r4 + strh r3, [r0] + adds r1, 0x95 + ldrb r0, [r1] + ldr r1, _080C4C24 + adds r2, r1 + strh r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C4C1C: .4byte gSaveBlock1 +_080C4C20: .4byte gUnknown_02038570 +_080C4C24: .4byte 0x00001364 + thumb_func_end sub_80C4BF0 + + thumb_func_start sub_80C4C28 +sub_80C4C28: @ 80C4C28 + push {lr} + ldr r0, _080C4C40 + ldrb r0, [r0] + adds r1, r0, 0 + cmp r0, 0x1 + beq _080C4C4E + cmp r0, 0x1 + bgt _080C4C44 + cmp r0, 0 + beq _080C4C4A + b _080C4C56 + .align 2, 0 +_080C4C40: .4byte gUnknown_0202E8CE +_080C4C44: + cmp r1, 0x2 + beq _080C4C52 + b _080C4C56 +_080C4C4A: + movs r1, 0x3 + b _080C4C58 +_080C4C4E: + movs r1, 0x4 + b _080C4C58 +_080C4C52: + movs r1, 0x5 + b _080C4C58 +_080C4C56: + movs r1, 0x64 +_080C4C58: + ldr r0, _080C4C60 + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080C4C60: .4byte gUnknown_0202E8CC + thumb_func_end sub_80C4C28 + + thumb_func_start sub_80C4C64 +sub_80C4C64: @ 80C4C64 + push {lr} + bl sub_80C46EC + bl sub_80C4740 + bl sub_80C48F4 + pop {r0} + bx r0 + thumb_func_end sub_80C4C64 + + thumb_func_start sub_80C4C78 +sub_80C4C78: @ 80C4C78 + push {lr} + ldr r0, _080C4C8C + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080C4CB8 + lsls r0, 2 + ldr r1, _080C4C90 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C4C8C: .4byte gUnknown_0203869C +_080C4C90: .4byte _080C4C94 + .align 2, 0 +_080C4C94: + .4byte _080C4CA8 + .4byte _080C4CAC + .4byte _080C4CB0 + .4byte _080C4CB4 + .4byte _080C4CB8 +_080C4CA8: + movs r0, 0x8 + b _080C4CBA +_080C4CAC: + movs r0, 0x9 + b _080C4CBA +_080C4CB0: + movs r0, 0xA + b _080C4CBA +_080C4CB4: + movs r0, 0xB + b _080C4CBA +_080C4CB8: + movs r0, 0xC +_080C4CBA: + ldr r1, _080C4CD0 + lsls r0, 5 + adds r0, r1 + ldr r1, _080C4CD4 + adds r0, r1 + ldrh r1, [r0] + cmp r1, 0 + bne _080C4CDC + ldr r0, _080C4CD8 + strh r1, [r0] + b _080C4CE2 + .align 2, 0 +_080C4CD0: .4byte gSaveBlock1 +_080C4CD4: .4byte 0x00002e04 +_080C4CD8: .4byte gUnknown_0202E8CC +_080C4CDC: + ldr r1, _080C4CE8 + movs r0, 0x1 + strh r0, [r1] +_080C4CE2: + pop {r0} + bx r0 + .align 2, 0 +_080C4CE8: .4byte gUnknown_0202E8CC + thumb_func_end sub_80C4C78 + + thumb_func_start sub_80C4CEC +sub_80C4CEC: @ 80C4CEC + push {lr} + movs r0, 0xFF + bl sub_80B2A7C + pop {r0} + bx r0 + thumb_func_end sub_80C4CEC + + thumb_func_start sub_80C4CF8 +sub_80C4CF8: @ 80C4CF8 + push {lr} + ldr r0, _080C4D28 + ldr r1, _080C4D2C + ldrb r2, [r1] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _080C4D40 + ldr r0, _080C4D30 + ldrh r0, [r0] + cmp r0, 0x3 + bne _080C4D40 + ldr r1, _080C4D34 + lsls r0, r2, 1 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + ldr r0, _080C4D38 + cmp r1, r0 + ble _080C4D40 + ldr r1, _080C4D3C + movs r0, 0x1 + b _080C4D44 + .align 2, 0 +_080C4D28: .4byte gUnknown_02038690 +_080C4D2C: .4byte gUnknown_02038695 +_080C4D30: .4byte gUnknown_0203869E +_080C4D34: .4byte gUnknown_02038678 +_080C4D38: .4byte 0x0000031f +_080C4D3C: .4byte gUnknown_0202E8CC +_080C4D40: + ldr r1, _080C4D4C + movs r0, 0 +_080C4D44: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080C4D4C: .4byte gUnknown_0202E8CC + thumb_func_end sub_80C4CF8 + + thumb_func_start sub_80C4D50 +sub_80C4D50: @ 80C4D50 + push {lr} + movs r3, 0 + ldr r0, _080C4D78 + ldr r1, _080C4D7C + adds r2, r0, r1 + movs r1, 0x4 +_080C4D5C: + ldrh r0, [r2] + cmp r0, 0 + beq _080C4D68 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 +_080C4D68: + adds r2, 0x20 + subs r1, 0x1 + cmp r1, 0 + bge _080C4D5C + adds r0, r3, 0 + pop {r1} + bx r1 + .align 2, 0 +_080C4D78: .4byte gSaveBlock1 +_080C4D7C: .4byte 0x00002f04 + thumb_func_end sub_80C4D50 + + thumb_func_start sub_80C4D80 +sub_80C4D80: @ 80C4D80 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r0, _080C4EA0 + mov r12, r0 + ldr r1, _080C4EA4 + mov r8, r1 + ldr r2, _080C4EA8 + mov r9, r2 + mov r2, r12 + mov r1, sp + movs r6, 0x3 +_080C4D9E: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _080C4D9E + movs r6, 0 +_080C4DAE: + movs r1, 0x3 + cmp r1, r6 + ble _080C4DD8 +_080C4DB4: + subs r4, r1, 0x1 + lsls r0, r4, 1 + mov r5, sp + adds r3, r5, r0 + lsls r0, r1, 1 + adds r2, r5, r0 + ldrh r5, [r3] + movs r7, 0 + ldrsh r1, [r3, r7] + movs r7, 0 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _080C4DD2 + strh r5, [r2] + strh r0, [r3] +_080C4DD2: + adds r1, r4, 0 + cmp r1, r6 + bgt _080C4DB4 +_080C4DD8: + adds r6, 0x1 + cmp r6, 0x2 + ble _080C4DAE + mov r2, r8 + ldrh r0, [r2] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + movs r2, 0 + movs r7, 0 + movs r6, 0 + lsls r0, 16 + asrs r4, r0, 16 + adds r3, r0, 0 + mov r1, sp +_080C4DF6: + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r0, r4 + bne _080C4E12 + lsls r0, r2, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r2, r0, 24 + mov r5, r8 + ldrh r5, [r5] + cmp r6, r5 + bne _080C4E12 + adds r7, r2, 0 +_080C4E12: + adds r1, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _080C4DF6 + movs r6, 0 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + asrs r1, r3, 16 + lsls r2, 24 + mov r10, r2 + cmp r0, r1 + beq _080C4E40 + adds r2, r1, 0 + mov r1, sp +_080C4E30: + adds r1, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + bgt _080C4E40 + movs r4, 0 + ldrsh r0, [r1, r4] + cmp r0, r2 + bne _080C4E30 +_080C4E40: + lsls r0, r6, 24 + lsrs r4, r0, 24 + adds r2, r7, 0 + movs r6, 0 + asrs r5, r3, 16 + mov r8, r5 + mov r1, r12 + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r8, r0 + bne _080C4E60 + cmp r7, 0x1 + beq _080C4E78 +_080C4E5A: + subs r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 +_080C4E60: + adds r6, 0x1 + cmp r6, 0x3 + bgt _080C4E78 + lsls r0, r6, 1 + add r0, r12 + asrs r1, r3, 16 + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r1, r0 + bne _080C4E60 + cmp r2, 0x1 + bne _080C4E5A +_080C4E78: + lsls r1, r6, 24 + lsrs r1, 24 + mov r0, r9 + bl sub_80C4698 + ldr r0, _080C4EAC + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C4EB8 + ldr r0, _080C4EB0 + lsls r1, r6, 3 + subs r1, r6 + lsls r1, 2 + ldr r2, _080C4EB4 + adds r1, r2 + bl sub_80C4674 + b _080C4EC4 + .align 2, 0 +_080C4EA0: .4byte gUnknown_02038670 +_080C4EA4: .4byte gUnknown_0202E8D0 +_080C4EA8: .4byte gStringVar1 +_080C4EAC: .4byte gUnknown_0203869A +_080C4EB0: .4byte gStringVar2 +_080C4EB4: .4byte gLinkPlayers + 0x8 +_080C4EB8: + ldr r0, _080C4ED8 + lsls r1, r6, 6 + ldr r2, _080C4EDC + adds r1, r2 + bl sub_80C4674 +_080C4EC4: + mov r1, r10 + asrs r0, r1, 24 + cmp r0, 0x1 + beq _080C4ED0 + cmp r7, r0 + bne _080C4EE4 +_080C4ED0: + ldr r0, _080C4EE0 + strh r4, [r0] + b _080C4EEA + .align 2, 0 +_080C4ED8: .4byte gStringVar2 +_080C4EDC: .4byte gUnknown_0203857D +_080C4EE0: .4byte gUnknown_0202E8D0 +_080C4EE4: + ldr r1, _080C4EFC + adds r0, r4, 0x4 + strh r0, [r1] +_080C4EEA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C4EFC: .4byte gUnknown_0202E8D0 + thumb_func_end sub_80C4D80 + + thumb_func_start sub_80C4F00 +sub_80C4F00: @ 80C4F00 + push {lr} + ldr r0, _080C4F0C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080C4F0C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_80C4F00 + + thumb_func_start sub_80C4F10 +sub_80C4F10: @ 80C4F10 + push {r4-r6,lr} + ldr r6, _080C4F54 + ldrb r0, [r6] + cmp r0, 0 + beq _080C4F40 + bl sub_80AAF30 + ldr r4, _080C4F58 + ldr r0, _080C4F5C + adds r1, r4, r0 + movs r5, 0 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0xFE + movs r1, 0 + bl sub_80B2C4C + ldr r1, _080C4F60 + adds r4, r1 + strb r0, [r4] + movs r0, 0x3 + bl sub_80B2A7C + strb r5, [r6] +_080C4F40: + ldr r0, _080C4F64 + bl SetMainCallback2 + ldr r1, _080C4F68 + ldr r0, _080C4F6C + str r0, [r1, 0x8] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C4F54: .4byte gUnknown_0203856C +_080C4F58: .4byte 0x02000000 +_080C4F5C: .4byte 0x00015ddf +_080C4F60: .4byte 0x00015dde +_080C4F64: .4byte sub_8106668 +_080C4F68: .4byte gMain +_080C4F6C: .4byte sub_80C4F00 + thumb_func_end sub_80C4F10 + + thumb_func_start sub_80C4F70 +sub_80C4F70: @ 80C4F70 + push {r4,lr} + ldr r0, _080C4FA8 + ldr r4, _080C4FAC + ldrb r1, [r4, 0x15] + bl VarSet + ldr r0, _080C4FB0 + adds r1, r4, 0 + adds r1, 0x55 + ldrb r1, [r1] + bl VarSet + ldr r0, _080C4FB4 + adds r1, r4, 0 + adds r1, 0x95 + ldrb r1, [r1] + bl VarSet + ldr r0, _080C4FB8 + adds r1, r4, 0 + adds r1, 0xD5 + ldrb r1, [r1] + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C4FA8: .4byte 0x00004010 +_080C4FAC: .4byte gUnknown_02038570 +_080C4FB0: .4byte 0x00004011 +_080C4FB4: .4byte 0x00004012 +_080C4FB8: .4byte 0x00004013 + thumb_func_end sub_80C4F70 + + thumb_func_start sub_80C4FBC +sub_80C4FBC: @ 80C4FBC + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, _080C501C + ldrb r0, [r6] + movs r5, 0x64 + muls r0, r5 + ldr r4, _080C5020 + adds r0, r4 + movs r1, 0x46 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + strb r0, [r1] + cmp r0, 0 + bne _080C5038 + ldr r0, _080C5024 + ldr r1, _080C5028 + ldrb r2, [r1] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _080C5038 + ldr r0, _080C502C + ldrh r0, [r0] + cmp r0, 0x3 + bne _080C5038 + ldr r1, _080C5030 + lsls r0, r2, 1 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + ldr r0, _080C5034 + cmp r1, r0 + ble _080C5038 + movs r1, 0x1 + mov r0, sp + strb r1, [r0] + ldrb r0, [r6] + muls r0, r5 + adds r0, r4 + movs r1, 0x46 + mov r2, sp + bl SetMonData + movs r0, 0x1 + b _080C503A + .align 2, 0 +_080C501C: .4byte gUnknown_02038694 +_080C5020: .4byte gPlayerParty +_080C5024: .4byte gUnknown_02038690 +_080C5028: .4byte gUnknown_02038695 +_080C502C: .4byte gUnknown_0203869E +_080C5030: .4byte gUnknown_02038678 +_080C5034: .4byte 0x0000031f +_080C5038: + movs r0, 0 +_080C503A: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C4FBC + + thumb_func_start sub_80C5044 +sub_80C5044: @ 80C5044 + ldr r0, _080C504C + ldrb r0, [r0] + bx lr + .align 2, 0 +_080C504C: .4byte gUnknown_0203856C + thumb_func_end sub_80C5044 + + thumb_func_start sub_80C5050 +sub_80C5050: @ 80C5050 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + ldr r4, _080C513C + adds r0, r4, 0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _080C512A + movs r0, 0xA + mov r10, r0 + movs r7, 0x3 + movs r1, 0x3 + movs r2, 0x13 + movs r3, 0xD + bl MenuDrawTextWindow + ldr r2, _080C5140 + ldr r0, _080C5144 + ldrh r1, [r0] + lsls r1, 6 + adds r0, r1, r2 + ldrh r6, [r0] + adds r0, r2, 0 + adds r0, 0x38 + adds r0, r1, r0 + ldr r0, [r0] + mov r8, r0 + adds r2, 0x3C + adds r1, r2 + ldr r1, [r1] + mov r9, r1 + adds r0, r4, 0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C5148 + lsls r5, r0, 2 + adds r5, r0 + lsls r5, 3 + adds r5, r1 + movs r0, 0 + strh r0, [r5, 0x8] + strh r6, [r5, 0xA] + lsls r0, r6, 3 + ldr r1, _080C514C + adds r0, r1 + ldr r1, _080C5150 + lsls r2, r6, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + ldr r4, _080C5154 + ldr r3, [r4] + ldr r4, [r4, 0x4] + str r4, [sp] + str r6, [sp, 0x4] + mov r4, r8 + str r4, [sp, 0x8] + bl sub_800D334 + adds r0, r6, 0 + mov r1, r9 + mov r2, r8 + bl sub_80409C8 + adds r4, r0, 0 + bl LoadCompressedObjectPalette + adds r0, r6, 0 + movs r1, 0x1 + bl GetMonSpriteTemplate_803C56C + ldr r0, _080C5158 + ldrh r1, [r4, 0x4] + strh r1, [r0, 0x2] + movs r1, 0x78 + movs r2, 0x40 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xC] + mov r1, r10 + strh r1, [r5, 0xE] + strh r7, [r5, 0x10] + ldr r3, _080C515C + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x1C + adds r0, r1, r0 + ldr r2, _080C5160 + str r2, [r0] + adds r1, r3 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x5] +_080C512A: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C513C: .4byte sub_80C5190 +_080C5140: .4byte gUnknown_02038570 +_080C5144: .4byte gUnknown_0202E8D0 +_080C5148: .4byte gTasks +_080C514C: .4byte gMonFrontPicTable +_080C5150: .4byte gMonFrontPicCoords +_080C5154: .4byte gUnknown_081FAF4C +_080C5158: .4byte gUnknown_02024E8C +_080C515C: .4byte gSprites +_080C5160: .4byte SpriteCallbackDummy + thumb_func_end sub_80C5050 + + thumb_func_start sub_80C5164 +sub_80C5164: @ 80C5164 + push {lr} + ldr r0, _080C5188 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080C5184 + ldr r0, _080C518C + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C5184: + pop {r0} + bx r0 + .align 2, 0 +_080C5188: .4byte sub_80C5190 +_080C518C: .4byte gTasks + thumb_func_end sub_80C5164 + + thumb_func_start sub_80C5190 +sub_80C5190: @ 80C5190 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C51B4 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080C5222 + cmp r0, 0x1 + bgt _080C51B8 + cmp r0, 0 + beq _080C51F8 + b _080C5222 + .align 2, 0 +_080C51B4: .4byte gTasks +_080C51B8: + cmp r0, 0x2 + beq _080C51C2 + cmp r0, 0x3 + beq _080C5204 + b _080C5222 +_080C51C2: + movs r0, 0xC + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C5200 + adds r5, r0, r1 + ldrb r0, [r5, 0x5] + lsrs r0, 4 + bl GetSpritePaletteTagByPaletteNum + lsls r0, 16 + lsrs r0, 16 + bl FreeSpritePaletteByTag + ldrb r0, [r5, 0x1] + lsls r0, 30 + cmp r0, 0 + beq _080C51F2 + ldrb r0, [r5, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix +_080C51F2: + adds r0, r5, 0 + bl DestroySprite +_080C51F8: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C5222 + .align 2, 0 +_080C5200: .4byte gSprites +_080C5204: + ldrb r2, [r4, 0xE] + adds r0, r2, 0 + ldrb r3, [r4, 0x10] + adds r1, r3, 0 + adds r2, 0x9 + lsls r2, 24 + lsrs r2, 24 + adds r3, 0xA + lsls r3, 24 + lsrs r3, 24 + bl MenuZeroFillWindowRect + adds r0, r5, 0 + bl DestroyTask +_080C5222: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C5190 + + thumb_func_start sub_80C5228 +sub_80C5228: @ 80C5228 + push {r4,lr} + ldr r0, _080C5244 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C524C + ldr r4, _080C5248 + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + b _080C5252 + .align 2, 0 +_080C5244: .4byte gUnknown_0203869A +_080C5248: .4byte gScriptResult +_080C524C: + ldr r1, _080C5258 + movs r0, 0x4 + strh r0, [r1] +_080C5252: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C5258: .4byte gScriptResult + thumb_func_end sub_80C5228 + + thumb_func_start sub_80C525C +sub_80C525C: @ 80C525C + push {r4,lr} + ldr r0, _080C5280 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C5294 + ldr r2, _080C5284 + ldr r1, [r2] + ldr r0, _080C5288 + muls r0, r1 + ldr r1, _080C528C + adds r0, r1 + str r0, [r2] + lsrs r0, 16 + ldr r4, _080C5290 + b _080C529E + .align 2, 0 +_080C5280: .4byte gUnknown_0203869A +_080C5284: .4byte gUnknown_03005D28 +_080C5288: .4byte 0x41c64e6d +_080C528C: .4byte 0x00006073 +_080C5290: .4byte gScriptResult +_080C5294: + ldr r4, _080C52AC + bl Random + lsls r0, 16 + lsrs r0, 16 +_080C529E: + ldrh r1, [r4] + bl __umodsi3 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C52AC: .4byte gScriptResult + thumb_func_end sub_80C525C + + thumb_func_start sp000_heal_pokemon +sp000_heal_pokemon: @ 80C52B0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r0, 0 + mov r8, r0 + ldr r0, _080C536C + ldrb r0, [r0] + cmp r8, r0 + bcs _080C535C + ldr r1, _080C5370 + mov r10, r1 + mov r6, sp +_080C52CE: + movs r0, 0x64 + mov r4, r8 + muls r4, r0 + add r4, r10 + adds r0, r4, 0 + movs r1, 0x3A + bl GetMonData + lsls r1, r0, 16 + strb r0, [r6] + lsrs r1, 24 + strb r1, [r6, 0x1] + adds r0, r4, 0 + movs r1, 0x39 + mov r2, sp + bl SetMonData + adds r0, r4, 0 + movs r1, 0x15 + bl GetMonData + lsls r0, 24 + lsrs r7, r0, 24 + movs r5, 0 + movs r1, 0x1 + add r1, r8 + mov r9, r1 +_080C5304: + adds r1, r5, 0 + adds r1, 0xD + adds r0, r4, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + adds r1, r7, 0 + adds r2, r5, 0 + bl CalculatePPWithBonus + strb r0, [r6] + adds r1, r5, 0 + adds r1, 0x11 + adds r0, r4, 0 + mov r2, sp + bl SetMonData + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _080C5304 + movs r0, 0 + strb r0, [r6] + strb r0, [r6, 0x1] + strb r0, [r6, 0x2] + strb r0, [r6, 0x3] + movs r1, 0x64 + mov r0, r8 + muls r0, r1 + add r0, r10 + movs r1, 0x37 + mov r2, sp + bl SetMonData + mov r1, r9 + lsls r0, r1, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _080C536C + ldrb r0, [r0] + cmp r8, r0 + bcc _080C52CE +_080C535C: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C536C: .4byte gPlayerPartyCount +_080C5370: .4byte gPlayerParty + thumb_func_end sp000_heal_pokemon + + thumb_func_start sub_80C5374 +sub_80C5374: @ 80C5374 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x78 + adds r5, r0, 0 + adds r3, r1, 0 + adds r4, r2, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 16 + lsrs r0, r4, 16 + mov r8, r0 + add r6, sp, 0x14 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r3, 0 + movs r3, 0x20 + bl CreateMon + add r0, sp, 0x10 + mov r1, r8 + strb r1, [r0] + lsrs r4, 24 + strb r4, [r0, 0x1] + adds r0, r6, 0 + movs r1, 0xC + add r2, sp, 0x10 + bl SetMonData + adds r0, r6, 0 + bl GiveMonToPlayer + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r5, 0 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r5, r0, 16 + cmp r4, 0x1 + bgt _080C53E8 + cmp r4, 0 + blt _080C53E8 + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8090D90 + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8090D90 +_080C53E8: + adds r0, r4, 0 + add sp, 0x78 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C5374 + + thumb_func_start sub_80C53F8 +sub_80C53F8: @ 80C53F8 + push {lr} + sub sp, 0x68 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r0, sp + movs r2, 0x1 + bl sub_8042044 + add r2, sp, 0x64 + movs r0, 0x1 + strb r0, [r2] + mov r0, sp + movs r1, 0x2D + bl SetMonData + mov r0, sp + bl GiveMonToPlayer + lsls r0, 24 + lsrs r0, 24 + add sp, 0x68 + pop {r1} + bx r1 + thumb_func_end sub_80C53F8 + + thumb_func_start sub_80C5428 +sub_80C5428: @ 80C5428 + push {lr} + bl sub_803DAA0 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + beq _080C5444 + cmp r1, 0x1 + bgt _080C5440 + cmp r1, 0 + beq _080C5444 + b _080C5448 +_080C5440: + cmp r1, 0x2 + bne _080C5448 +_080C5444: + ldr r0, _080C544C + strh r1, [r0] +_080C5448: + pop {r0} + bx r0 + .align 2, 0 +_080C544C: .4byte gScriptResult + thumb_func_end sub_80C5428 + + thumb_func_start sub_80C5450 +sub_80C5450: @ 80C5450 + push {r4-r7,lr} + lsls r0, 16 + lsrs r6, r0, 16 + movs r5, 0 + movs r7, 0xCE + lsls r7, 1 +_080C545C: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _080C548C + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + beq _080C5490 + cmp r0, r7 + beq _080C5490 + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + cmp r0, r6 + bne _080C5490 + movs r0, 0x1 + b _080C5498 + .align 2, 0 +_080C548C: .4byte gPlayerParty +_080C5490: + adds r5, 0x1 + cmp r5, 0x5 + ble _080C545C + movs r0, 0 +_080C5498: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80C5450 + + thumb_func_start sub_80C54A0 +sub_80C54A0: @ 80C54A0 + push {r4,lr} + movs r0, 0xAF + bl sub_80C5450 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + cmp r4, 0x1 + bne _080C54C2 + movs r0, 0xAF + bl ItemIdToBerryType + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C54CC + bl GetBerryNameByBerryType +_080C54C2: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C54CC: .4byte gStringVar1 + thumb_func_end sub_80C54A0 + + thumb_func_start sub_80C54D0 +sub_80C54D0: @ 80C54D0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + lsls r7, r2, 16 + lsrs r6, r7, 16 + bl ZeroEnemyPartyMons + ldr r0, _080C552C + mov r8, r0 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + mov r0, r8 + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x20 + bl CreateMon + cmp r6, 0 + beq _080C551E + add r0, sp, 0x10 + strb r6, [r0] + adds r1, r0, 0 + lsrs r0, r7, 24 + strb r0, [r1, 0x1] + mov r0, r8 + movs r1, 0xC + add r2, sp, 0x10 + bl SetMonData +_080C551E: + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C552C: .4byte gEnemyParty + thumb_func_end sub_80C54D0 + + thumb_func_start sub_80C5530 +sub_80C5530: @ 80C5530 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 24 + lsrs r2, 24 + cmp r3, 0x6 + bls _080C554C + ldr r0, _080C5560 + ldrb r0, [r0] + subs r0, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 +_080C554C: + movs r0, 0x64 + muls r0, r3 + ldr r1, _080C5564 + adds r0, r1 + adds r1, r4, 0 + bl SetMonMoveSlot + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C5560: .4byte gPlayerPartyCount +_080C5564: .4byte gPlayerParty + thumb_func_end sub_80C5530 + + thumb_func_start sub_80C5568 +sub_80C5568: @ 80C5568 + push {lr} + ldr r1, _080C5578 + ldr r0, _080C557C + str r0, [r1, 0x8] + bl sub_8121E10 + pop {r0} + bx r0 + .align 2, 0 +_080C5578: .4byte gMain +_080C557C: .4byte sub_80C5580 + thumb_func_end sub_80C5568 + + thumb_func_start sub_80C5580 +sub_80C5580: @ 80C5580 + push {lr} + ldr r0, _080C5590 + ldrb r1, [r0] + cmp r1, 0 + bne _080C5598 + ldr r0, _080C5594 + strh r1, [r0] + b _080C559E + .align 2, 0 +_080C5590: .4byte gUnknown_02039270 +_080C5594: .4byte gScriptResult +_080C5598: + ldr r1, _080C55A8 + movs r0, 0x1 + strh r0, [r1] +_080C559E: + ldr r0, _080C55AC + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080C55A8: .4byte gScriptResult +_080C55AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_80C5580 + + thumb_func_start sub_80C55B0 +sub_80C55B0: @ 80C55B0 + push {lr} + ldr r1, _080C55C0 + ldr r0, _080C55C4 + str r0, [r1, 0x8] + bl sub_8121E34 + pop {r0} + bx r0 + .align 2, 0 +_080C55C0: .4byte gMain +_080C55C4: .4byte sub_80C55C8 + thumb_func_end sub_80C55B0 + + thumb_func_start sub_80C55C8 +sub_80C55C8: @ 80C55C8 + push {r4,lr} + ldr r0, _080C55DC + ldrb r4, [r0] + cmp r4, 0 + bne _080C55E4 + bl copy_player_party_from_sav1 + ldr r0, _080C55E0 + strh r4, [r0] + b _080C55EE + .align 2, 0 +_080C55DC: .4byte gUnknown_02039270 +_080C55E0: .4byte gScriptResult +_080C55E4: + bl sub_80C5604 + ldr r1, _080C55FC + movs r0, 0x1 + strh r0, [r1] +_080C55EE: + ldr r0, _080C5600 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C55FC: .4byte gScriptResult +_080C5600: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_80C55C8 + + thumb_func_start sub_80C5604 +sub_80C5604: @ 80C5604 + push {r4-r7,lr} + sub sp, 0x134 + add r0, sp, 0x12C + movs r1, 0 + str r1, [r0] + ldr r2, _080C5674 + mov r1, sp + bl CpuSet + movs r5, 0 + movs r7, 0x64 + ldr r6, _080C5678 + mov r4, sp +_080C561E: + ldr r0, _080C567C + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080C5638 + subs r0, 0x1 + adds r1, r0, 0 + muls r1, r7 + adds r1, r6 + adds r0, r4, 0 + movs r2, 0x64 + bl memcpy +_080C5638: + adds r4, 0x64 + adds r5, 0x1 + cmp r5, 0x2 + ble _080C561E + add r0, sp, 0x130 + movs r1, 0 + str r1, [r0] + ldr r4, _080C5678 + ldr r2, _080C5680 + adds r1, r4, 0 + bl CpuSet + mov r5, sp + add r6, sp, 0xC8 +_080C5654: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x64 + bl memcpy + adds r5, 0x64 + adds r4, 0x64 + cmp r5, r6 + ble _080C5654 + bl CalculatePlayerPartyCount + add sp, 0x134 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C5674: .4byte 0x0500004b +_080C5678: .4byte gPlayerParty +_080C567C: .4byte gUnknown_02039270 +_080C5680: .4byte 0x05000096 + thumb_func_end sub_80C5604 + + thumb_func_start sub_80C5684 +sub_80C5684: @ 80C5684 + push {lr} + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _080C569C + movs r0, 0xCE + lsls r0, 1 + cmp r1, r0 + bne _080C56A0 +_080C569C: + movs r0, 0 + b _080C56A2 +_080C56A0: + movs r0, 0x1 +_080C56A2: + pop {r1} + bx r1 + thumb_func_end sub_80C5684 + + thumb_func_start sub_80C56A8 +sub_80C56A8: @ 80C56A8 + push {r4,r5,lr} + ldr r4, _080C56C8 + movs r5, 0 +_080C56AE: + adds r0, r4, 0 + bl sub_80C5684 + cmp r0, 0 + beq _080C56CC + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _080C56CC + movs r0, 0 + b _080C56D6 + .align 2, 0 +_080C56C8: .4byte gPlayerParty +_080C56CC: + adds r5, 0x1 + adds r4, 0x64 + cmp r5, 0x5 + ble _080C56AE + movs r0, 0x1 +_080C56D6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80C56A8 + + thumb_func_start sub_80C56DC +sub_80C56DC: @ 80C56DC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + adds r4, r0, 0 + muls r4, r1 + ldr r0, _080C5720 + adds r4, r0 + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0x7 + bl sub_803FCD4 + adds r0, r4, 0 + movs r1, 0x37 + mov r2, sp + bl SetMonData + ldr r5, _080C5724 + adds r0, r4, 0 + movs r1, 0x2 + adds r2, r5, 0 + bl GetMonData + adds r0, r5, 0 + bl StringGetEnd10 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C5720: .4byte gPlayerParty +_080C5724: .4byte gStringVar1 + thumb_func_end sub_80C56DC + + thumb_func_start sub_80C5728 +sub_80C5728: @ 80C5728 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r1, r0 + ldr r0, _080C5764 + adds r4, r1, r0 + adds r0, r4, 0 + bl sub_80C5684 + cmp r0, 0 + beq _080C5768 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _080C5768 + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C5768 + movs r0, 0x1 + b _080C576A + .align 2, 0 +_080C5764: .4byte gPlayerParty +_080C5768: + movs r0, 0 +_080C576A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C5728 + + thumb_func_start sub_80C5770 +sub_80C5770: @ 80C5770 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C5794 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080C57CA + cmp r0, 0x1 + bgt _080C5798 + cmp r0, 0 + beq _080C579E + b _080C581A + .align 2, 0 +_080C5794: .4byte gUnknown_03004B28 +_080C5798: + cmp r0, 0x2 + beq _080C57DC + b _080C581A +_080C579E: + ldrh r1, [r4, 0x2] + movs r2, 0x2 + ldrsh r0, [r4, r2] + cmp r0, 0x5 + bgt _080C57C4 +_080C57A8: + lsls r0, r1, 24 + lsrs r0, 24 + bl sub_80C5728 + cmp r0, 0 + bne _080C57F4 + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + adds r1, r0, 0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080C57A8 +_080C57C4: + movs r0, 0x2 + strh r0, [r4] + b _080C581A +_080C57CA: + bl IsFieldMessageBoxHidden + lsls r0, 24 + cmp r0, 0 + beq _080C581A + ldrh r0, [r4] + subs r0, 0x1 + strh r0, [r4] + b _080C581A +_080C57DC: + bl sub_80C56A8 + adds r1, r0, 0 + cmp r1, 0 + beq _080C580C + ldr r1, _080C57F0 + movs r0, 0x1 + strh r0, [r1] + b _080C5810 + .align 2, 0 +_080C57F0: .4byte gScriptResult +_080C57F4: + ldrb r0, [r4, 0x2] + bl sub_80C56DC + ldr r0, _080C5808 + bl ShowFieldMessage + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080C581A + .align 2, 0 +_080C5808: .4byte UnknownString_81A1132 +_080C580C: + ldr r0, _080C5820 + strh r1, [r0] +_080C5810: + bl EnableBothScriptContexts + adds r0, r5, 0 + bl DestroyTask +_080C581A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C5820: .4byte gScriptResult + thumb_func_end sub_80C5770 + + thumb_func_start sub_80C5824 +sub_80C5824: @ 80C5824 + push {lr} + ldr r0, _080C5838 + movs r1, 0x50 + bl CreateTask + bl ScriptContext1_Stop + pop {r0} + bx r0 + .align 2, 0 +_080C5838: .4byte sub_80C5770 + thumb_func_end sub_80C5824 + + thumb_func_start overworld_poison +overworld_poison: @ 80C583C + push {r4-r7,lr} + sub sp, 0x4 + ldr r4, _080C58A8 + movs r7, 0 + movs r6, 0 + movs r5, 0x5 +_080C5848: + adds r0, r4, 0 + movs r1, 0x5 + bl GetMonData + cmp r0, 0 + beq _080C588C + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C588C + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + str r0, [sp] + cmp r0, 0 + beq _080C587E + subs r0, 0x1 + str r0, [sp] + cmp r0, 0 + bne _080C5880 +_080C587E: + adds r6, 0x1 +_080C5880: + adds r0, r4, 0 + movs r1, 0x39 + mov r2, sp + bl SetMonData + adds r7, 0x1 +_080C588C: + adds r4, 0x64 + subs r5, 0x1 + cmp r5, 0 + bge _080C5848 + cmp r6, 0 + bne _080C589C + cmp r7, 0 + beq _080C58A0 +_080C589C: + bl overworld_posion_effect +_080C58A0: + cmp r6, 0 + beq _080C58AC + movs r0, 0x2 + b _080C58B6 + .align 2, 0 +_080C58A8: .4byte gPlayerParty +_080C58AC: + cmp r7, 0 + bne _080C58B4 + movs r0, 0 + b _080C58B6 +_080C58B4: + movs r0, 0x1 +_080C58B6: + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end overworld_poison + + thumb_func_start sub_80C58C0 +sub_80C58C0: @ 80C58C0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r5, r0, 0 + movs r1, 0 + bl GetMonData + lsls r0, 16 + str r0, [sp, 0x4] + lsrs r0, 16 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0x27 + bl GetMonData + adds r7, r0, 0 + movs r6, 0xF + ands r7, r6 + adds r0, r5, 0 + movs r1, 0x28 + bl GetMonData + mov r8, r0 + mov r1, r8 + ands r1, r6 + mov r8, r1 + adds r0, r5, 0 + movs r1, 0x29 + bl GetMonData + mov r9, r0 + mov r3, r9 + ands r3, r6 + mov r9, r3 + adds r0, r5, 0 + movs r1, 0x2A + bl GetMonData + mov r10, r0 + ands r0, r6 + mov r10, r0 + adds r0, r5, 0 + movs r1, 0x2B + bl GetMonData + adds r4, r0, 0 + ands r4, r6 + adds r0, r5, 0 + movs r1, 0x2C + bl GetMonData + adds r2, r0, 0 + ands r2, r6 + mov r1, r8 + mov r3, r9 + eors r1, r3 + mov r8, r1 + mov r0, r8 + muls r0, r7 + movs r1, 0xFF + ldr r3, [sp] + ands r3, r1 + eors r0, r3 + eors r4, r2 + mov r1, r10 + muls r1, r4 + ldr r3, [sp, 0x4] + lsrs r2, r3, 24 + eors r1, r2 + lsls r0, 8 + adds r0, r1 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80C58C0 + + thumb_func_start sub_80C5964 +sub_80C5964: @ 80C5964 + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0x1 + ldr r3, _080C5980 +_080C596E: + lsls r0, r1, 3 + adds r0, r3 + ldrh r0, [r0, 0x4] + cmp r2, r0 + bcs _080C5984 + subs r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + b _080C5990 + .align 2, 0 +_080C5980: .4byte gUnknown_083D180C +_080C5984: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xE + bls _080C596E + adds r0, r1, 0 +_080C5990: + pop {r1} + bx r1 + thumb_func_end sub_80C5964 + + thumb_func_start sub_80C5994 +sub_80C5994: @ 80C5994 + push {r4-r7,lr} + sub sp, 0x8 + adds r6, r1, 0 + lsls r0, 16 + lsrs r0, 16 + lsls r6, 16 + lsrs r6, 16 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl sub_8090D54 + lsls r0, 16 + lsrs r7, r0, 16 + adds r0, r6, 0 + bl sub_80C5964 + lsls r0, 24 + ldr r1, _080C5A04 + lsrs r0, 21 + adds r0, r1 + ldrh r1, [r0] + str r1, [sp] + movs r2, 0 + str r2, [sp, 0x4] + ldrb r2, [r0, 0x2] + movs r3, 0 + ldrh r4, [r0, 0x4] + movs r5, 0 + adds r0, r6, 0 + movs r1, 0 + subs r0, r4 + sbcs r1, r5 + bl __udivdi3 + ldr r2, [sp] + ldr r3, [sp, 0x4] + adds r2, r0 + adcs r3, r1 + str r2, [sp] + str r3, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0 + bl __muldi3 + movs r2, 0xA + movs r3, 0 + bl __udivdi3 + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080C5A04: .4byte gUnknown_083D180C + thumb_func_end sub_80C5994 + + thumb_func_start sub_80C5A08 +sub_80C5A08: @ 80C5A08 + push {r4-r6,lr} + sub sp, 0x4 + adds r6, r0, 0 + adds r5, r1, 0 + ldr r1, _080C5A78 + mov r0, sp + movs r2, 0x2 + bl memcpy + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 1 + adds r0, r4, 0 + bl __floatsidf + cmp r4, 0 + bge _080C5A32 + ldr r2, _080C5A7C + ldr r3, _080C5A80 + bl __adddf3 +_080C5A32: + ldr r2, _080C5A84 + ldr r3, _080C5A88 + bl __divdf3 + bl __fixunsdfsi + adds r5, r0, 0 + movs r1, 0xA + bl __udivsi3 + adds r1, r0, 0 + adds r0, r6, 0 + movs r2, 0 + movs r3, 0x8 + bl ConvertIntToDecimalStringN + adds r6, r0, 0 + mov r1, sp + bl StringAppend + adds r6, r0, 0 + adds r0, r5, 0 + movs r1, 0xA + bl __umodsi3 + adds r1, r0, 0 + adds r0, r6, 0 + movs r2, 0 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C5A78: .4byte gUnknown_083D188C +_080C5A7C: .4byte 0x41f00000 +_080C5A80: .4byte 0x00000000 +_080C5A84: .4byte 0x40396666 +_080C5A88: .4byte 0x66666666 + thumb_func_end sub_80C5A08 + + thumb_func_start sub_80C5A8C +sub_80C5A8C: @ 80C5A8C + push {r4-r7,lr} + sub sp, 0x4 + adds r7, r1, 0 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, _080C5AA4 + ldrh r0, [r1] + cmp r0, 0xFF + bne _080C5AA8 + movs r0, 0 + b _080C5B12 + .align 2, 0 +_080C5AA4: .4byte gScriptResult +_080C5AA8: + ldrh r1, [r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080C5AD0 + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0x1 + beq _080C5ACA + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + cmp r0, r6 + beq _080C5AD4 +_080C5ACA: + movs r0, 0x1 + b _080C5B12 + .align 2, 0 +_080C5AD0: .4byte gPlayerParty +_080C5AD4: + mov r4, sp + adds r0, r5, 0 + bl sub_80C58C0 + strh r0, [r4] + mov r0, sp + ldrh r1, [r0] + adds r0, r6, 0 + bl sub_80C5994 + adds r5, r0, 0 + ldrh r1, [r7] + adds r0, r6, 0 + bl sub_80C5994 + adds r4, r0, 0 + ldr r0, _080C5B0C + adds r1, r5, 0 + bl sub_80C5A08 + cmp r5, r4 + bls _080C5B10 + mov r0, sp + ldrh r0, [r0] + strh r0, [r7] + movs r0, 0x3 + b _080C5B12 + .align 2, 0 +_080C5B0C: .4byte gStringVar2 +_080C5B10: + movs r0, 0x2 +_080C5B12: + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80C5A8C + + thumb_func_start sub_80C5B1C +sub_80C5B1C: @ 80C5B1C + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 16 + lsrs r4, 16 + ldrh r1, [r5] + adds r0, r4, 0 + bl sub_80C5994 + adds r1, r0, 0 + ldr r0, _080C5B58 + bl sub_80C5A08 + ldr r0, _080C5B5C + movs r1, 0xB + muls r1, r4 + ldr r2, _080C5B60 + adds r1, r2 + bl StringCopy + ldrh r1, [r5] + movs r0, 0x81 + lsls r0, 8 + cmp r1, r0 + bne _080C5B6C + ldr r0, _080C5B64 + ldr r1, _080C5B68 + bl StringCopy + b _080C5B74 + .align 2, 0 +_080C5B58: .4byte gStringVar3 +_080C5B5C: .4byte gStringVar1 +_080C5B60: .4byte gSpeciesNames +_080C5B64: .4byte gStringVar2 +_080C5B68: .4byte gOtherText_Marco +_080C5B6C: + ldr r0, _080C5B7C + ldr r1, _080C5B80 + bl StringCopy +_080C5B74: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C5B7C: .4byte gStringVar2 +_080C5B80: .4byte gSaveBlock2 + thumb_func_end sub_80C5B1C + + thumb_func_start sub_80C5B84 +sub_80C5B84: @ 80C5B84 + push {lr} + ldr r0, _080C5B94 + movs r1, 0x81 + lsls r1, 8 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_080C5B94: .4byte 0x00004047 + thumb_func_end sub_80C5B84 + + thumb_func_start sub_80C5B98 +sub_80C5B98: @ 80C5B98 + push {lr} + ldr r0, _080C5BB0 + bl GetVarPointer + adds r1, r0, 0 + movs r0, 0x99 + lsls r0, 1 + bl sub_80C5B1C + pop {r0} + bx r0 + .align 2, 0 +_080C5BB0: .4byte 0x00004047 + thumb_func_end sub_80C5B98 + + thumb_func_start sub_80C5BB4 +sub_80C5BB4: @ 80C5BB4 + push {r4,lr} + ldr r0, _080C5BD4 + bl GetVarPointer + adds r1, r0, 0 + ldr r4, _080C5BD8 + movs r0, 0x99 + lsls r0, 1 + bl sub_80C5A8C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C5BD4: .4byte 0x00004047 +_080C5BD8: .4byte gScriptResult + thumb_func_end sub_80C5BB4 + + thumb_func_start sub_80C5BDC +sub_80C5BDC: @ 80C5BDC + push {lr} + ldr r0, _080C5BEC + movs r1, 0x81 + lsls r1, 8 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_080C5BEC: .4byte 0x0000404f + thumb_func_end sub_80C5BDC + + thumb_func_start sub_80C5BF0 +sub_80C5BF0: @ 80C5BF0 + push {lr} + ldr r0, _080C5C04 + bl GetVarPointer + adds r1, r0, 0 + ldr r0, _080C5C08 + bl sub_80C5B1C + pop {r0} + bx r0 + .align 2, 0 +_080C5C04: .4byte 0x0000404f +_080C5C08: .4byte 0x00000143 + thumb_func_end sub_80C5BF0 + + thumb_func_start sub_80C5C0C +sub_80C5C0C: @ 80C5C0C + push {r4,lr} + ldr r0, _080C5C2C + bl GetVarPointer + adds r1, r0, 0 + ldr r4, _080C5C30 + ldr r0, _080C5C34 + bl sub_80C5A8C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C5C2C: .4byte 0x0000404f +_080C5C30: .4byte gScriptResult +_080C5C34: .4byte 0x00000143 + thumb_func_end sub_80C5C0C + + thumb_func_start sub_80C5C38 +sub_80C5C38: @ 80C5C38 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + movs r7, 0 + add r4, sp, 0x8 + movs r0, 0x1 + strb r0, [r4] + ldr r1, _080C5CC0 + mov r0, sp + movs r2, 0x7 + bl memcpy + mov r8, r4 + cmp r6, 0xA + bhi _080C5CB2 + cmp r5, 0x40 + bhi _080C5CB2 + ldr r0, _080C5CC4 + ldr r1, _080C5CC8 + adds r0, r1 + adds r0, r6, r0 + strb r5, [r0] + movs r5, 0 +_080C5C70: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _080C5CCC + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _080C5CA2 + adds r0, r4, 0 + movs r1, 0x6 + bl GetMonData + cmp r0, 0 + bne _080C5CA2 + mov r1, sp + adds r0, r1, r6 + ldrb r1, [r0] + adds r0, r4, 0 + mov r2, r8 + bl SetMonData + movs r7, 0x1 +_080C5CA2: + adds r5, 0x1 + cmp r5, 0x5 + ble _080C5C70 + cmp r7, 0 + beq _080C5CB2 + ldr r0, _080C5CD0 + bl FlagSet +_080C5CB2: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C5CC0: .4byte gUnknown_083D188E +_080C5CC4: .4byte gSaveBlock1 +_080C5CC8: .4byte 0x00003110 +_080C5CCC: .4byte gPlayerParty +_080C5CD0: .4byte 0x0000083b + thumb_func_end sub_80C5C38 + + thumb_func_start sub_80C5CD4 +sub_80C5CD4: @ 80C5CD4 + push {r4-r7,lr} + sub sp, 0x28 + adds r7, r0, 0 + ldr r0, _080C5D64 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + ldr r0, _080C5D68 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x20] + str r1, [sp, 0x24] + mov r1, sp + ldr r0, _080C5D6C + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldrh r3, [r7] + lsls r2, r3, 16 + add r0, sp, 0x18 + ldrh r1, [r0, 0x4] + orrs r1, r2 + str r1, [r0, 0x4] + mov r1, sp + movs r6, 0 + strh r3, [r1] + ldrh r2, [r7, 0x2] + ldr r5, _080C5D70 + add r4, sp, 0x20 + ldr r1, [r4, 0x4] + ands r1, r5 + orrs r1, r2 + str r1, [r4, 0x4] + mov r1, sp + strh r2, [r1, 0x2] + bl LoadSpriteSheet + adds r0, r4, 0 + bl LoadSpritePalette + movs r0, 0x1 + strh r0, [r7, 0xC] + strh r6, [r7, 0xA] + strh r6, [r7, 0x8] + ldrh r0, [r7, 0x2] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x80 + lsls r1, 9 + lsls r1, r0 + bics r5, r1 + str r5, [r7, 0x10] + ldrh r0, [r7, 0x4] + cmp r0, 0 + bne _080C5D4E + movs r0, 0x10 + strh r0, [r7, 0x4] +_080C5D4E: + ldrh r0, [r7, 0x6] + cmp r0, 0 + bne _080C5D58 + movs r0, 0x14 + strh r0, [r7, 0x6] +_080C5D58: + ldr r0, _080C5D74 + str r7, [r0] + movs r4, 0 + ldr r5, _080C5D78 + b _080C5D94 + .align 2, 0 +_080C5D64: .4byte gUnknown_083D1898 +_080C5D68: .4byte gUnknown_083D18A0 +_080C5D6C: .4byte gSpriteTemplate_83D18A8 +_080C5D70: .4byte 0xffff0000 +_080C5D74: .4byte gUnknown_020387EC +_080C5D78: .4byte gSprites +_080C5D7C: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r7, 0x4] + cmp r4, 0x3 + bhi _080C5D8C + negs r1, r1 +_080C5D8C: + strh r1, [r0, 0x2E] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080C5D94: + cmp r4, 0x7 + bhi _080C5DB2 + lsls r1, r4, 5 + adds r1, 0x8 + lsls r1, 16 + asrs r1, 16 + mov r0, sp + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _080C5D7C +_080C5DB2: + ldr r1, _080C5DC8 + movs r0, 0xBF + strh r0, [r1] + adds r1, 0x4 + movs r0, 0x10 + strh r0, [r1] + add sp, 0x28 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C5DC8: .4byte REG_BLDCNT + thumb_func_end sub_80C5CD4 + + thumb_func_start sub_80C5DCC +sub_80C5DCC: @ 80C5DCC + push {r4,lr} + ldr r4, _080C5E10 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + cmp r0, 0 + bne _080C5DF0 + ldr r0, [r1, 0x10] + ldr r2, _080C5E14 + movs r1, 0x10 + bl BlendPalettes + ldr r0, _080C5E18 + bl sub_80C61B0 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C5DF0: + ldr r1, [r4] + ldrh r0, [r1, 0xA] + cmp r0, 0x7 + bls _080C5E0A + ldrh r0, [r1, 0x6] + ldrh r2, [r1, 0xC] + adds r0, r2 + movs r2, 0 + strh r0, [r1, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4F + bgt _080C5E1C +_080C5E0A: + movs r0, 0 + b _080C5E2E + .align 2, 0 +_080C5E10: .4byte gUnknown_020387EC +_080C5E14: .4byte 0x0000ffff +_080C5E18: .4byte sub_80C603C +_080C5E1C: + movs r0, 0x50 + strh r0, [r1, 0xC] + ldr r0, _080C5E34 + strh r2, [r0] + adds r0, 0x4 + strh r2, [r0] + bl ClearGpuRegBits + movs r0, 0x1 +_080C5E2E: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C5E34: .4byte REG_BLDCNT + thumb_func_end sub_80C5DCC + + thumb_func_start sub_80C5E38 +sub_80C5E38: @ 80C5E38 + push {r4-r7,lr} + sub sp, 0x28 + adds r7, r0, 0 + ldr r0, _080C5EC8 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + ldr r0, _080C5ECC + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x20] + str r1, [sp, 0x24] + mov r1, sp + ldr r0, _080C5ED0 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldrh r3, [r7] + lsls r2, r3, 16 + add r0, sp, 0x18 + ldrh r1, [r0, 0x4] + orrs r1, r2 + str r1, [r0, 0x4] + mov r1, sp + movs r6, 0 + strh r3, [r1] + ldrh r2, [r7, 0x2] + ldr r5, _080C5ED4 + add r4, sp, 0x20 + ldr r1, [r4, 0x4] + ands r1, r5 + orrs r1, r2 + str r1, [r4, 0x4] + mov r1, sp + strh r2, [r1, 0x2] + bl LoadSpriteSheet + adds r0, r4, 0 + bl LoadSpritePalette + movs r0, 0x50 + strh r0, [r7, 0xC] + strh r6, [r7, 0x8] + strh r6, [r7, 0xA] + ldrh r0, [r7, 0x2] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x80 + lsls r1, 9 + lsls r1, r0 + bics r5, r1 + str r5, [r7, 0x10] + ldrh r0, [r7, 0x4] + cmp r0, 0 + bne _080C5EB2 + movs r0, 0x10 + strh r0, [r7, 0x4] +_080C5EB2: + ldrh r0, [r7, 0x6] + cmp r0, 0 + bne _080C5EBC + movs r0, 0x14 + strh r0, [r7, 0x6] +_080C5EBC: + ldr r0, _080C5ED8 + str r7, [r0] + movs r5, 0 + ldr r6, _080C5EDC + b _080C5F4A + .align 2, 0 +_080C5EC8: .4byte gUnknown_083D1898 +_080C5ECC: .4byte gUnknown_083D18A0 +_080C5ED0: .4byte gSpriteTemplate_83D18C0 +_080C5ED4: .4byte 0xffff0000 +_080C5ED8: .4byte gUnknown_020387EC +_080C5EDC: .4byte gSprites +_080C5EE0: + lsls r2, r3, 4 + adds r1, r2, r3 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r7, 0x4] + strh r0, [r1, 0x2E] + movs r0, 0x1 + strh r0, [r1, 0x30] + ldr r1, _080C5EF4 + b _080C5F2A + .align 2, 0 +_080C5EF4: .4byte gSprites +_080C5EF8: + lsls r1, r5, 21 + movs r0, 0x80 + lsls r0, 16 + adds r1, r0 + asrs r1, 16 + mov r0, sp + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080C5F6E + lsls r2, r3, 4 + adds r1, r2, r3 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r7, 0x4] + negs r0, r0 + strh r0, [r1, 0x2E] + ldr r0, _080C5F88 + strh r0, [r1, 0x30] + ldr r1, _080C5F8C + lsls r4, r5, 5 +_080C5F2A: + adds r0, r2, r3 + lsls r0, 2 + adds r0, r1 + adds r1, r4, 0 + adds r1, 0x8 + movs r2, 0 + strh r1, [r0, 0x32] + strh r2, [r0, 0x36] + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080C5F4A: + cmp r5, 0x7 + bhi _080C5F6E + cmp r5, 0x3 + bhi _080C5EF8 + lsls r4, r5, 5 + adds r1, r4, 0 + subs r1, 0x70 + lsls r1, 16 + asrs r1, 16 + mov r0, sp + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + bne _080C5EE0 +_080C5F6E: + ldr r1, _080C5F90 + movs r0, 0xFF + strh r0, [r1] + adds r1, 0x4 + movs r0, 0x10 + strh r0, [r1] + ldr r0, _080C5F94 + bl sub_80C61B0 + add sp, 0x28 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C5F88: .4byte 0x0000ffff +_080C5F8C: .4byte gSprites +_080C5F90: .4byte REG_BLDCNT +_080C5F94: .4byte sub_80C6078 + thumb_func_end sub_80C5E38 + + thumb_func_start sub_80C5F98 +sub_80C5F98: @ 80C5F98 + push {r4,lr} + ldr r4, _080C5FB0 + ldr r2, [r4] + ldrh r0, [r2, 0x8] + cmp r0, 0x1 + beq _080C5FEC + cmp r0, 0x1 + bgt _080C5FB4 + cmp r0, 0 + beq _080C5FBA + b _080C602C + .align 2, 0 +_080C5FB0: .4byte gUnknown_020387EC +_080C5FB4: + cmp r0, 0x2 + beq _080C6008 + b _080C602C +_080C5FBA: + ldrh r0, [r2, 0xC] + ldrh r1, [r2, 0x6] + subs r0, r1 + strh r0, [r2, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bgt _080C6034 + ldr r0, [r2, 0x10] + ldr r2, _080C5FE4 + movs r1, 0x10 + bl BlendPalettes + ldr r0, _080C5FE8 + bl SetHBlankCallback + ldr r1, [r4] + movs r0, 0x1 + strh r0, [r1, 0xC] + b _080C6000 + .align 2, 0 +_080C5FE4: .4byte 0x0000ffff +_080C5FE8: .4byte sub_80C603C +_080C5FEC: + ldrh r0, [r2, 0xA] + cmp r0, 0x8 + bne _080C6034 + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldr r1, [r4] +_080C6000: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080C6034 +_080C6008: + ldr r0, _080C6030 + movs r1, 0 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + ldrh r0, [r2] + bl FreeSpriteTilesByTag + ldr r0, [r4] + ldrh r0, [r0, 0x2] + bl FreeSpritePaletteByTag + bl ClearGpuRegBits + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C602C: + movs r0, 0x1 + b _080C6036 + .align 2, 0 +_080C6030: .4byte REG_BLDCNT +_080C6034: + movs r0, 0 +_080C6036: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C5F98 + + thumb_func_start sub_80C603C +sub_80C603C: @ 80C603C + push {lr} + sub sp, 0x4 + mov r2, sp + ldr r0, _080C6060 + ldrh r1, [r0] + movs r3, 0xFF + adds r0, r3, 0 + ands r0, r1 + strh r0, [r2] + mov r0, sp + ldrh r0, [r0] + cmp r0, 0x50 + bne _080C6068 + ldr r1, _080C6064 + movs r0, 0x8F + strh r0, [r1] + b _080C606C + .align 2, 0 +_080C6060: .4byte REG_VCOUNT +_080C6064: .4byte REG_BLDCNT +_080C6068: + ldr r0, _080C6074 + strh r3, [r0] +_080C606C: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080C6074: .4byte REG_BLDCNT + thumb_func_end sub_80C603C + + thumb_func_start sub_80C6078 +sub_80C6078: @ 80C6078 + push {lr} + sub sp, 0x4 + mov r2, sp + ldr r0, _080C60B0 + ldrh r1, [r0] + movs r0, 0xFF + ands r0, r1 + strh r0, [r2] + mov r0, sp + ldrh r1, [r0] + ldr r0, _080C60B4 + ldr r0, [r0] + movs r3, 0xC + ldrsh r2, [r0, r3] + movs r0, 0x50 + subs r0, r2 + cmp r1, r0 + ble _080C60BC + mov r0, sp + ldrh r1, [r0] + adds r0, r2, 0 + adds r0, 0x50 + cmp r1, r0 + bge _080C60BC + ldr r1, _080C60B8 + movs r0, 0 + b _080C60C0 + .align 2, 0 +_080C60B0: .4byte REG_VCOUNT +_080C60B4: .4byte gUnknown_020387EC +_080C60B8: .4byte REG_BLDY +_080C60BC: + ldr r1, _080C60C8 + movs r0, 0x10 +_080C60C0: + strh r0, [r1] + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080C60C8: .4byte REG_BLDY + thumb_func_end sub_80C6078 + + thumb_func_start sub_80C60CC +sub_80C60CC: @ 80C60CC + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + adds r0, 0x8 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bls _080C611C + adds r0, r2, 0 + bl DestroySprite + ldr r4, _080C6124 + ldr r1, [r4] + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x8 + bne _080C611C + ldrh r0, [r1] + bl FreeSpriteTilesByTag + ldr r0, [r4] + ldrh r0, [r0, 0x2] + bl FreeSpritePaletteByTag + ldr r0, [r4] + ldr r0, [r0, 0x10] + ldr r2, _080C6128 + movs r1, 0 + bl BlendPalettes + ldr r0, _080C612C + bl SetHBlankCallback +_080C611C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C6124: .4byte gUnknown_020387EC +_080C6128: .4byte 0x0000ffff +_080C612C: .4byte sub_80C6078 + thumb_func_end sub_80C60CC + + thumb_func_start sub_80C6130 +sub_80C6130: @ 80C6130 + push {r4,r5,lr} + adds r2, r0, 0 + movs r1, 0x36 + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080C61AA + ldr r1, _080C6184 + ldr r0, [r1] + movs r3, 0xC + ldrsh r4, [r0, r3] + adds r5, r1, 0 + cmp r4, 0x1 + bne _080C61AA + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + adds r0, 0xF + lsls r0, 16 + movs r1, 0x87 + lsls r1, 17 + cmp r0, r1 + bhi _080C616C + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] +_080C616C: + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0 + ble _080C6188 + movs r0, 0x20 + ldrsh r1, [r2, r0] + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r1, r0 + blt _080C6196 + b _080C6194 + .align 2, 0 +_080C6184: .4byte gUnknown_020387EC +_080C6188: + movs r0, 0x20 + ldrsh r1, [r2, r0] + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r1, r0 + bgt _080C6196 +_080C6194: + strh r4, [r2, 0x36] +_080C6196: + movs r1, 0x36 + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _080C61AA + ldr r0, [r5] + ldrh r1, [r0, 0xA] + adds r1, 0x1 + strh r1, [r0, 0xA] + ldrh r0, [r2, 0x32] + strh r0, [r2, 0x20] +_080C61AA: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C6130 + + thumb_func_start sub_80C61B0 +sub_80C61B0: @ 80C61B0 + push {r4-r6,lr} + ldr r2, _080C61F0 + ldrh r1, [r2] + movs r5, 0x2 + orrs r1, r5 + strh r1, [r2] + ldr r3, _080C61F4 + ldrh r1, [r3] + movs r2, 0x10 + orrs r1, r2 + strh r1, [r3] + ldr r4, _080C61F8 + ldrh r2, [r4] + movs r6, 0 + strh r6, [r4] + ldr r3, _080C61FC + ldrh r1, [r3] + orrs r1, r5 + strh r1, [r3] + strh r2, [r4] + ldr r2, _080C6200 + ldrh r1, [r2, 0x1C] + orrs r1, r5 + ldrh r3, [r2, 0x1C] + orrs r1, r6 + strh r1, [r2, 0x1C] + bl SetHBlankCallback + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C61F0: .4byte INTR_CHECK +_080C61F4: .4byte REG_DISPSTAT +_080C61F8: .4byte 0x04000208 +_080C61FC: .4byte 0x04000200 +_080C6200: .4byte gMain + thumb_func_end sub_80C61B0 + + thumb_func_start ClearGpuRegBits +ClearGpuRegBits: @ 80C6204 + push {r4,r5,lr} + ldr r3, _080C6248 + ldrh r1, [r3] + ldr r2, _080C624C + adds r0, r2, 0 + ands r0, r1 + strh r0, [r3] + ldr r3, _080C6250 + ldrh r1, [r3] + ldr r0, _080C6254 + ands r0, r1 + strh r0, [r3] + ldr r4, _080C6258 + ldrh r3, [r4] + movs r0, 0 + strh r0, [r4] + ldr r5, _080C625C + ldrh r1, [r5] + adds r0, r2, 0 + ands r0, r1 + strh r0, [r5] + strh r3, [r4] + ldr r0, _080C6260 + ldrh r1, [r0, 0x1C] + ands r2, r1 + ldrh r1, [r0, 0x1C] + strh r2, [r0, 0x1C] + movs r0, 0 + bl SetHBlankCallback + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C6248: .4byte INTR_CHECK +_080C624C: .4byte 0x0000fffd +_080C6250: .4byte REG_DISPSTAT +_080C6254: .4byte 0x0000ffef +_080C6258: .4byte 0x04000208 +_080C625C: .4byte 0x04000200 +_080C6260: .4byte gMain + thumb_func_end ClearGpuRegBits + + thumb_func_start sub_80C6264 +sub_80C6264: @ 80C6264 + push {lr} + ldr r0, _080C6278 + ldr r1, _080C627C + ldr r1, [r1, 0x4] + bl sub_80BBFD8 + bl sub_80BB5E4 + pop {r0} + bx r0 + .align 2, 0 +_080C6278: .4byte gUnknown_0203923C +_080C627C: .4byte gMapHeader + thumb_func_end sub_80C6264 + + thumb_func_start sub_80C6280 +sub_80C6280: @ 80C6280 + push {lr} + ldr r1, _080C6294 + ldr r0, [r1, 0x4] + cmp r0, 0x2 + beq _080C62AA + cmp r0, 0x2 + bgt _080C6298 + cmp r0, 0x1 + beq _080C62A2 + b _080C62BE + .align 2, 0 +_080C6294: .4byte gUnknown_0202FF84 +_080C6298: + cmp r0, 0x3 + beq _080C62AE + cmp r0, 0x4 + beq _080C62B8 + b _080C62BE +_080C62A2: + movs r0, 0x8 + str r0, [r1, 0x14] + movs r0, 0x28 + b _080C62BC +_080C62AA: + movs r0, 0x8 + b _080C62BA +_080C62AE: + movs r0, 0x8 + negs r0, r0 + str r0, [r1, 0x14] + movs r0, 0x18 + b _080C62BC +_080C62B8: + movs r0, 0x18 +_080C62BA: + str r0, [r1, 0x14] +_080C62BC: + str r0, [r1, 0x18] +_080C62BE: + pop {r0} + bx r0 + thumb_func_end sub_80C6280 + + thumb_func_start sub_80C62C4 +sub_80C62C4: @ 80C62C4 + push {r4,lr} + bl sub_80BB63C + ldr r0, _080C6318 + ldrh r0, [r0] + cmp r0, 0x1 + beq _080C636E + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _080C636E + ldr r4, _080C631C + adds r1, r4, 0x2 + adds r0, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80571EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C6330 + bl sub_80C6264 + ldr r1, _080C6320 + ldr r0, _080C6324 + str r0, [r1] + ldr r1, _080C6328 + ldr r0, _080C632C + b _080C6380 + .align 2, 0 +_080C6318: .4byte gScriptResult +_080C631C: .4byte gUnknown_0203923C +_080C6320: .4byte gUnknown_0300485C +_080C6324: .4byte sub_808AB90 +_080C6328: .4byte gUnknown_03005CE4 +_080C632C: .4byte sub_80C639C +_080C6330: + adds r0, r4, 0 + bl sub_805720C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C6360 + bl sub_80C6264 + ldr r1, _080C6350 + ldr r0, _080C6354 + str r0, [r1] + ldr r1, _080C6358 + ldr r0, _080C635C + b _080C6380 + .align 2, 0 +_080C6350: .4byte gUnknown_0300485C +_080C6354: .4byte sub_808AB90 +_080C6358: .4byte gUnknown_03005CE4 +_080C635C: .4byte sub_80C64A8 +_080C6360: + adds r0, r4, 0 + bl is_tile_x98 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C6372 +_080C636E: + movs r0, 0 + b _080C6384 +_080C6372: + bl sub_80C6264 + ldr r1, _080C638C + ldr r0, _080C6390 + str r0, [r1] + ldr r1, _080C6394 + ldr r0, _080C6398 +_080C6380: + str r0, [r1] + movs r0, 0x1 +_080C6384: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C638C: .4byte gUnknown_0300485C +_080C6390: .4byte sub_808AB90 +_080C6394: .4byte gUnknown_03005CE4 +_080C6398: .4byte sub_80C660C + thumb_func_end sub_80C62C4 + + thumb_func_start sub_80C639C +sub_80C639C: @ 80C639C + push {lr} + ldr r1, _080C63B0 + ldr r0, _080C63B4 + ldrb r0, [r0] + str r0, [r1] + ldr r0, _080C63B8 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080C63B0: .4byte gUnknown_0202FF84 +_080C63B4: .4byte gUnknown_03005CE0 +_080C63B8: .4byte gUnknown_081A2CE6 + thumb_func_end sub_80C639C + + thumb_func_start sub_80C63BC +sub_80C63BC: @ 80C63BC + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C63E0 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080C63E4 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080C63E0: .4byte gTasks +_080C63E4: .4byte sub_80C63E8 + thumb_func_end sub_80C63BC + + thumb_func_start sub_80C63E8 +sub_80C63E8: @ 80C63E8 + push {lr} + movs r0, 0xB + bl FieldEffectActiveListRemove + movs r0, 0x37 + bl FieldEffectStart + pop {r0} + bx r0 + thumb_func_end sub_80C63E8 + + thumb_func_start sub_80C63FC +sub_80C63FC: @ 80C63FC + push {r4,lr} + bl sub_80C6280 + ldr r0, _080C643C + ldr r3, _080C6440 + ldr r1, _080C6444 + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 23 + ldr r4, _080C6448 + ldr r3, [r4, 0x14] + adds r1, r3 + lsls r1, 16 + asrs r1, 16 + ldrb r2, [r2] + ldr r3, [r4, 0x18] + adds r2, r3 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x94 + bl CreateSprite + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C643C: .4byte gSpriteTemplate_83D2614 +_080C6440: .4byte gSprites +_080C6444: .4byte gPlayerAvatar +_080C6448: .4byte gUnknown_0202FF84 + thumb_func_end sub_80C63FC + + thumb_func_start sub_80C644C +sub_80C644C: @ 80C644C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x83 + bl PlaySE + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080C6464 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C6464: .4byte sub_80C6468 + thumb_func_end sub_80C644C + + thumb_func_start sub_80C6468 +sub_80C6468: @ 80C6468 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x2E] + movs r3, 0x2E + ldrsh r0, [r1, r3] + cmp r0, 0x27 + bgt _080C6488 + adds r0, r2, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080C6490 + bl sub_80BB800 + b _080C6490 +_080C6488: + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, _080C6494 + str r0, [r1, 0x1C] +_080C6490: + pop {r0} + bx r0 + .align 2, 0 +_080C6494: .4byte sub_80C6498 + thumb_func_end sub_80C6468 + + thumb_func_start sub_80C6498 +sub_80C6498: @ 80C6498 + push {lr} + movs r1, 0x37 + bl FieldEffectStop + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_80C6498 + + thumb_func_start sub_80C64A8 +sub_80C64A8: @ 80C64A8 + push {lr} + ldr r1, _080C64BC + ldr r0, _080C64C0 + ldrb r0, [r0] + str r0, [r1] + ldr r0, _080C64C4 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080C64BC: .4byte gUnknown_0202FF84 +_080C64C0: .4byte gUnknown_03005CE0 +_080C64C4: .4byte gUnknown_081A2D3E + thumb_func_end sub_80C64A8 + + thumb_func_start sub_80C64C8 +sub_80C64C8: @ 80C64C8 + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C64EC + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080C64F0 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080C64EC: .4byte gTasks +_080C64F0: .4byte sub_80C64F4 + thumb_func_end sub_80C64C8 + + thumb_func_start sub_80C64F4 +sub_80C64F4: @ 80C64F4 + push {lr} + movs r0, 0x1A + bl FieldEffectActiveListRemove + movs r0, 0x38 + bl FieldEffectStart + pop {r0} + bx r0 + thumb_func_end sub_80C64F4 + + thumb_func_start sub_80C6508 +sub_80C6508: @ 80C6508 + push {r4,lr} + ldr r1, _080C6580 + movs r2, 0 + ldrsh r0, [r1, r2] + movs r2, 0x2 + ldrsh r1, [r1, r2] + bl MapGridGetMetatileBehaviorAt + adds r2, r0, 0 + ldr r1, _080C6584 + adds r0, r1, 0 + ands r2, r0 + cmp r2, 0x96 + bne _080C652A + ldr r1, _080C6588 + movs r0, 0 + str r0, [r1, 0x1C] +_080C652A: + cmp r2, 0x9C + bne _080C6534 + ldr r1, _080C6588 + movs r0, 0x2 + str r0, [r1, 0x1C] +_080C6534: + bl sub_80C6280 + ldr r0, _080C658C + ldr r3, _080C6590 + ldr r1, _080C6594 + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 23 + ldr r4, _080C6588 + ldr r3, [r4, 0x14] + adds r1, r3 + lsls r1, 16 + asrs r1, 16 + ldrb r2, [r2] + ldr r3, [r4, 0x18] + adds r2, r3 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x94 + bl CreateSprite + ldr r0, [r4, 0x1C] + cmp r0, 0x1 + beq _080C6572 + cmp r0, 0x3 + bne _080C6576 +_080C6572: + bl sub_80BB800 +_080C6576: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C6580: .4byte gUnknown_0203923C +_080C6584: .4byte 0x00000fff +_080C6588: .4byte gUnknown_0202FF84 +_080C658C: .4byte gSpriteTemplate_83D262C +_080C6590: .4byte gSprites +_080C6594: .4byte gPlayerAvatar + thumb_func_end sub_80C6508 + + thumb_func_start sub_80C6598 +sub_80C6598: @ 80C6598 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x9B + bl PlaySE + ldr r0, _080C65BC + ldr r1, [r0, 0x1C] + adds r2, r4, 0 + adds r2, 0x2A + movs r0, 0 + strb r1, [r2] + strh r0, [r4, 0x2E] + ldr r0, _080C65C0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C65BC: .4byte gUnknown_0202FF84 +_080C65C0: .4byte sub_80C65C4 + thumb_func_end sub_80C6598 + + thumb_func_start sub_80C65C4 +sub_80C65C4: @ 80C65C4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x27 + ble _080C65EE + ldr r0, _080C65F4 + ldr r0, [r0, 0x1C] + cmp r0, 0 + beq _080C65E2 + cmp r0, 0x2 + bne _080C65E6 +_080C65E2: + bl sub_80BB800 +_080C65E6: + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080C65F8 + str r0, [r4, 0x1C] +_080C65EE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C65F4: .4byte gUnknown_0202FF84 +_080C65F8: .4byte sub_80C65FC + thumb_func_end sub_80C65C4 + + thumb_func_start sub_80C65FC +sub_80C65FC: @ 80C65FC + push {lr} + movs r1, 0x38 + bl FieldEffectStop + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_80C65FC + + thumb_func_start sub_80C660C +sub_80C660C: @ 80C660C + push {lr} + ldr r1, _080C6620 + ldr r0, _080C6624 + ldrb r0, [r0] + str r0, [r1] + ldr r0, _080C6628 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080C6620: .4byte gUnknown_0202FF84 +_080C6624: .4byte gUnknown_03005CE0 +_080C6628: .4byte gUnknown_081A2D96 + thumb_func_end sub_80C660C + + thumb_func_start sub_80C662C +sub_80C662C: @ 80C662C + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C6650 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080C6654 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080C6650: .4byte gTasks +_080C6654: .4byte sub_80C6658 + thumb_func_end sub_80C662C + + thumb_func_start sub_80C6658 +sub_80C6658: @ 80C6658 + push {lr} + movs r0, 0x1B + bl FieldEffectActiveListRemove + movs r0, 0x39 + bl FieldEffectStart + pop {r0} + bx r0 + thumb_func_end sub_80C6658 + + thumb_func_start sub_80C666C +sub_80C666C: @ 80C666C + push {r4,lr} + bl sub_80C6280 + ldr r0, _080C66AC + ldr r3, _080C66B0 + ldr r1, _080C66B4 + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 23 + ldr r4, _080C66B8 + ldr r3, [r4, 0x14] + adds r1, r3 + lsls r1, 16 + asrs r1, 16 + ldrb r2, [r2] + ldr r3, [r4, 0x18] + adds r2, r3 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x94 + bl CreateSprite + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C66AC: .4byte gSpriteTemplate_83D2644 +_080C66B0: .4byte gSprites +_080C66B4: .4byte gPlayerAvatar +_080C66B8: .4byte gUnknown_0202FF84 + thumb_func_end sub_80C666C + + thumb_func_start sub_80C66BC +sub_80C66BC: @ 80C66BC + push {r4,lr} + adds r4, r0, 0 + movs r0, 0xA9 + bl PlaySE + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080C66D4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C66D4: .4byte sub_80C66D8 + thumb_func_end sub_80C66BC + + thumb_func_start sub_80C66D8 +sub_80C66D8: @ 80C66D8 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x2E] + movs r3, 0x2E + ldrsh r0, [r1, r3] + cmp r0, 0x27 + bgt _080C66F8 + adds r0, r2, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080C6700 + bl sub_80BB800 + b _080C6700 +_080C66F8: + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, _080C6704 + str r0, [r1, 0x1C] +_080C6700: + pop {r0} + bx r0 + .align 2, 0 +_080C6704: .4byte sub_80C6708 + thumb_func_end sub_80C66D8 + + thumb_func_start sub_80C6708 +sub_80C6708: @ 80C6708 + push {lr} + movs r1, 0x39 + bl FieldEffectStop + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_80C6708 + + thumb_func_start sub_80C6718 +sub_80C6718: @ 80C6718 + push {r4,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + ldr r0, _080C6758 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C675C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + mov r0, sp + ldrh r0, [r0] + movs r2, 0 + strh r0, [r1, 0x8] + ldrh r0, [r4] + strh r0, [r1, 0xA] + strh r2, [r1, 0xC] + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C6758: .4byte sub_80C6760 +_080C675C: .4byte gTasks + thumb_func_end sub_80C6718 + + thumb_func_start sub_80C6760 +sub_80C6760: @ 80C6760 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C6788 + adds r4, r0, r1 + ldrh r0, [r4, 0x4] + subs r0, 0x4 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + bhi _080C682E + lsls r0, 2 + ldr r1, _080C678C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C6788: .4byte gUnknown_03004B28 +_080C678C: .4byte _080C6790 + .align 2, 0 +_080C6790: + .4byte _080C67D4 + .4byte _080C682E + .4byte _080C682E + .4byte _080C682E + .4byte _080C67E2 + .4byte _080C682E + .4byte _080C682E + .4byte _080C682E + .4byte _080C67D4 + .4byte _080C682E + .4byte _080C682E + .4byte _080C682E + .4byte _080C67E2 + .4byte _080C682E + .4byte _080C682E + .4byte _080C682E + .4byte _080C6800 +_080C67D4: + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + movs r2, 0x89 + lsls r2, 2 + b _080C67EE +_080C67E2: + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + movs r2, 0x88 + lsls r2, 2 +_080C67EE: + bl MapGridSetMetatileIdAt + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + b _080C682E +_080C6800: + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + movs r2, 0x89 + lsls r2, 2 + bl MapGridSetMetatileIdAt + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + movs r0, 0x3D + bl FieldEffectActiveListRemove + bl EnableBothScriptContexts + adds r0, r5, 0 + bl DestroyTask + b _080C6834 +_080C682E: + ldrh r0, [r4, 0x4] + adds r0, 0x1 + strh r0, [r4, 0x4] +_080C6834: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C6760 + + thumb_func_start sub_80C683C +sub_80C683C: @ 80C683C + push {r4,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + movs r0, 0x3 + bl PlaySE + ldr r0, _080C6874 + bl VarGet + lsls r0, 16 + cmp r0, 0 + bne _080C6878 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + movs r2, 0xE2 + lsls r2, 4 + bl MapGridSetMetatileIdAt + b _080C6888 + .align 2, 0 +_080C6874: .4byte 0x00004054 +_080C6878: + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + ldr r2, _080C68A0 + bl MapGridSetMetatileIdAt +_080C6888: + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C68A0: .4byte 0x00000e21 + thumb_func_end sub_80C683C + + thumb_func_start sub_80C68A4 +sub_80C68A4: @ 80C68A4 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 16 + lsrs r6, 16 + ldr r0, _080C68E4 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C68E8 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r4, [r1, 0x8] + strh r5, [r1, 0xA] + strh r6, [r1, 0xC] + strh r0, [r1, 0xE] + movs r0, 0x1 + strh r0, [r1, 0x10] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C68E4: .4byte sub_80C68EC +_080C68E8: .4byte gTasks + thumb_func_end sub_80C68A4 + + thumb_func_start sub_80C68EC +sub_80C68EC: @ 80C68EC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C690C + adds r4, r0, r1 + ldrh r1, [r4, 0x6] + movs r2, 0x6 + ldrsh r0, [r4, r2] + cmp r0, 0x6 + bne _080C6910 + movs r0, 0 + b _080C6912 + .align 2, 0 +_080C690C: .4byte gUnknown_03004B28 +_080C6910: + adds r0, r1, 0x1 +_080C6912: + strh r0, [r4, 0x6] + movs r3, 0x6 + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080C6964 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x2 + bne _080C692C + movs r2, 0 + ldrsh r0, [r4, r2] + bl sub_80C696C +_080C692C: + movs r3, 0x2 + ldrsh r0, [r4, r3] + movs r2, 0x4 + ldrsh r1, [r4, r2] + ldrh r2, [r4, 0x8] + ldrh r3, [r4] + adds r2, r3 + lsls r2, 16 + lsrs r2, 16 + bl MapGridSetMetatileIdAt + movs r1, 0x2 + ldrsh r0, [r4, r1] + movs r2, 0x4 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + ldrh r1, [r4, 0x8] + movs r3, 0x8 + ldrsh r0, [r4, r3] + cmp r0, 0x3 + bne _080C6960 + adds r0, r5, 0 + bl DestroyTask + b _080C6964 +_080C6960: + adds r0, r1, 0x1 + strh r0, [r4, 0x8] +_080C6964: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C68EC + + thumb_func_start sub_80C696C +sub_80C696C: @ 80C696C + push {lr} + lsls r0, 16 + asrs r1, r0, 16 + movs r0, 0xCE + lsls r0, 2 + cmp r1, r0 + beq _080C6998 + cmp r1, r0 + bgt _080C6988 + movs r0, 0x8A + lsls r0, 2 + cmp r1, r0 + beq _080C69B0 + b _080C69B6 +_080C6988: + movs r0, 0xCF + lsls r0, 2 + cmp r1, r0 + beq _080C69A0 + adds r0, 0x4 + cmp r1, r0 + beq _080C69A8 + b _080C69B6 +_080C6998: + movs r0, 0x4A + bl PlaySE + b _080C69B6 +_080C69A0: + movs r0, 0x4B + bl PlaySE + b _080C69B6 +_080C69A8: + movs r0, 0x4C + bl PlaySE + b _080C69B6 +_080C69B0: + movs r0, 0x4E + bl PlaySE +_080C69B6: + pop {r0} + bx r0 + thumb_func_end sub_80C696C + + thumb_func_start sub_80C69BC +sub_80C69BC: @ 80C69BC + movs r0, 0 + bx lr + thumb_func_end sub_80C69BC + + thumb_func_start sub_80C69C0 +sub_80C69C0: @ 80C69C0 + movs r0, 0 + bx lr + thumb_func_end sub_80C69C0 + + thumb_func_start sub_80C69C4 +sub_80C69C4: @ 80C69C4 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 16 + lsrs r4, 16 + movs r0, 0x4D + bl PlaySE + lsls r5, 16 + asrs r5, 16 + lsls r4, 16 + asrs r4, 16 + ldr r2, _080C6A0C + adds r0, r5, 0 + adds r1, r4, 0 + bl MapGridSetMetatileIdAt + subs r6, r4, 0x1 + ldr r2, _080C6A10 + adds r0, r5, 0 + adds r1, r6, 0 + bl MapGridSetMetatileIdAt + adds r0, r5, 0 + adds r1, r4, 0 + bl CurrentMapDrawMetatileAt + adds r0, r5, 0 + adds r1, r6, 0 + bl CurrentMapDrawMetatileAt + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C6A0C: .4byte 0x00000276 +_080C6A10: .4byte 0x0000026e + thumb_func_end sub_80C69C4 + + thumb_func_start sub_80C6A14 +sub_80C6A14: @ 80C6A14 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080C6A44 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0x8] + movs r3, 0x8 + ldrsh r0, [r1, r3] + cmp r0, 0x7 + bne _080C6A48 + movs r2, 0xA + ldrsh r0, [r1, r2] + movs r3, 0xC + ldrsh r1, [r1, r3] + bl sub_80C69C4 + adds r0, r4, 0 + bl DestroyTask + b _080C6A4C + .align 2, 0 +_080C6A44: .4byte gTasks +_080C6A48: + adds r0, r2, 0x1 + strh r0, [r1, 0x8] +_080C6A4C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C6A14 + + thumb_func_start sub_80C6A54 +sub_80C6A54: @ 80C6A54 + push {r4-r7,lr} + lsls r0, 16 + lsrs r5, r0, 16 + adds r7, r5, 0 + lsls r1, 16 + lsrs r4, r1, 16 + adds r6, r4, 0 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C6A7C + lsls r0, r5, 16 + asrs r0, 16 + lsls r1, r4, 16 + asrs r1, 16 + bl sub_80C69C4 + b _080C6A9E +_080C6A7C: + cmp r0, 0x2 + bne _080C6A9E + ldr r0, _080C6AA4 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C6AA8 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + strh r7, [r1, 0xA] + strh r6, [r1, 0xC] +_080C6A9E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C6AA4: .4byte sub_80C6A14 +_080C6AA8: .4byte gTasks + thumb_func_end sub_80C6A54 + + thumb_func_start sub_80C6AAC +sub_80C6AAC: @ 80C6AAC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080C6AE4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0xA] + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0x7 + beq _080C6AC8 + b _080C6C26 +_080C6AC8: + ldr r2, _080C6AE8 + adds r0, r2, 0 + ldrh r1, [r1, 0x8] + adds r0, r1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3B + bls _080C6ADA + b _080C6C1E +_080C6ADA: + lsls r0, 2 + ldr r1, _080C6AEC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C6AE4: .4byte gTasks +_080C6AE8: .4byte 0xfffffd88 +_080C6AEC: .4byte _080C6AF0 + .align 2, 0 +_080C6AF0: + .4byte _080C6BE0 + .4byte _080C6BE8 + .4byte _080C6BF0 + .4byte _080C6BF8 + .4byte _080C6C00 + .4byte _080C6C08 + .4byte _080C6C10 + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C18 +_080C6BE0: + movs r0, 0x3E + bl PlaySE + b _080C6C1E +_080C6BE8: + movs r0, 0x3F + bl PlaySE + b _080C6C1E +_080C6BF0: + movs r0, 0x40 + bl PlaySE + b _080C6C1E +_080C6BF8: + movs r0, 0x41 + bl PlaySE + b _080C6C1E +_080C6C00: + movs r0, 0x42 + bl PlaySE + b _080C6C1E +_080C6C08: + movs r0, 0x43 + bl PlaySE + b _080C6C1E +_080C6C10: + movs r0, 0x44 + bl PlaySE + b _080C6C1E +_080C6C18: + movs r0, 0x45 + bl PlaySE +_080C6C1E: + adds r0, r4, 0 + bl DestroyTask + b _080C6C2A +_080C6C26: + adds r0, r2, 0x1 + strh r0, [r1, 0xA] +_080C6C2A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C6AAC + + thumb_func_start sub_80C6C30 +sub_80C6C30: @ 80C6C30 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _080C6C5C + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C6C60 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r4, [r1, 0x8] + strh r0, [r1, 0xA] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C6C5C: .4byte sub_80C6AAC +_080C6C60: .4byte gTasks + thumb_func_end sub_80C6C30 + + thumb_func_start sub_80C6C64 +sub_80C6C64: @ 80C6C64 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + bne _080C6C7C + movs r0, 0xC3 + bl PlaySE +_080C6C7C: + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1F + ble _080C6C8A + adds r0, r4, 0 + bl DestroySprite +_080C6C8A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C6C64 + + thumb_func_start sub_80C6C90 +sub_80C6C90: @ 80C6C90 + push {r4,lr} + sub sp, 0x4 + ldr r3, _080C6D28 + ldr r2, _080C6D2C + ldrb r1, [r2, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x10] + mov r0, sp + strh r1, [r0] + ldrb r1, [r2, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x12] + mov r4, sp + adds r4, 0x2 + strh r0, [r4] + mov r0, sp + adds r1, r4, 0 + movs r2, 0x8 + movs r3, 0x4 + bl sub_8060470 + ldr r0, _080C6D30 + ldr r0, [r0, 0x58] + mov r1, sp + movs r2, 0 + ldrsh r1, [r1, r2] + movs r3, 0 + ldrsh r2, [r4, r3] + movs r3, 0 + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080C6D1E + ldr r3, _080C6D34 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r4, r2, r3 + movs r0, 0x3E + adds r0, r4 + mov r12, r0 + ldrb r0, [r0] + movs r1, 0x2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrb r1, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + movs r1, 0xF + ands r0, r1 + movs r1, 0x50 + orrs r0, r1 + strb r0, [r4, 0x5] + adds r3, 0x1C + adds r2, r3 + ldr r0, _080C6D38 + str r0, [r2] + movs r0, 0 + strh r0, [r4, 0x2E] +_080C6D1E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C6D28: .4byte gMapObjects +_080C6D2C: .4byte gPlayerAvatar +_080C6D30: .4byte gFieldEffectObjectTemplatePointers +_080C6D34: .4byte gSprites +_080C6D38: .4byte sub_80C6C64 + thumb_func_end sub_80C6C90 + + thumb_func_start sub_80C6D3C +sub_80C6D3C: @ 80C6D3C + push {r4,lr} + sub sp, 0x4 + bl ScriptContext2_Enable + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + ldr r1, _080C6D78 + mov r0, sp + movs r2, 0 + ldrsh r0, [r0, r2] + str r0, [r1, 0x14] + movs r3, 0 + ldrsh r0, [r4, r3] + str r0, [r1, 0x18] + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _080C6DBC + cmp r0, 0x2 + bgt _080C6D7C + cmp r0, 0x1 + beq _080C6D86 + b _080C6E4C + .align 2, 0 +_080C6D78: .4byte gUnknown_0202FF84 +_080C6D7C: + cmp r0, 0x3 + beq _080C6DEC + cmp r0, 0x4 + beq _080C6E24 + b _080C6E4C +_080C6D86: + ldr r0, _080C6DB0 + ldr r3, _080C6DB4 + ldr r1, _080C6DB8 + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 7 + movs r3, 0x80 + lsls r3, 12 + adds r1, r3 + asrs r1, 16 + ldrb r2, [r2] + adds r2, 0x20 + movs r3, 0 + bl CreateSprite + b _080C6E4C + .align 2, 0 +_080C6DB0: .4byte gSpriteTemplate_83D26A0 +_080C6DB4: .4byte gSprites +_080C6DB8: .4byte gPlayerAvatar +_080C6DBC: + ldr r0, _080C6DE0 + ldr r3, _080C6DE4 + ldr r1, _080C6DE8 + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 7 + movs r3, 0x80 + lsls r3, 12 + adds r1, r3 + asrs r1, 16 + ldrb r2, [r2] + b _080C6E0C + .align 2, 0 +_080C6DE0: .4byte gSpriteTemplate_83D26A0 +_080C6DE4: .4byte gSprites +_080C6DE8: .4byte gPlayerAvatar +_080C6DEC: + ldr r0, _080C6E14 + ldr r3, _080C6E18 + ldr r1, _080C6E1C + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 7 + ldr r3, _080C6E20 + adds r1, r3 + asrs r1, 16 + ldrb r2, [r2] + adds r2, 0x10 +_080C6E0C: + movs r3, 0x94 + bl CreateSprite + b _080C6E4C + .align 2, 0 +_080C6E14: .4byte gSpriteTemplate_83D26A0 +_080C6E18: .4byte gSprites +_080C6E1C: .4byte gPlayerAvatar +_080C6E20: .4byte 0xfff80000 +_080C6E24: + ldr r0, _080C6E58 + ldr r3, _080C6E5C + ldr r1, _080C6E60 + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 7 + movs r3, 0xC0 + lsls r3, 13 + adds r1, r3 + asrs r1, 16 + ldrb r2, [r2] + adds r2, 0x10 + movs r3, 0x94 + bl CreateSprite +_080C6E4C: + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C6E58: .4byte gSpriteTemplate_83D26A0 +_080C6E5C: .4byte gSprites +_080C6E60: .4byte gPlayerAvatar + thumb_func_end sub_80C6D3C + + thumb_func_start door_restore_tilemap +door_restore_tilemap: @ 80C6E64 + push {r4,r5,lr} + adds r5, r0, 0 + movs r0, 0x83 + bl PlaySE + ldr r4, _080C6E90 + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + subs r1, 0x1 + bl MapGridGetMetatileIdAt + ldr r1, _080C6E94 + cmp r0, r1 + bne _080C6E9C + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + subs r1, 0x1 + ldr r2, _080C6E98 + bl MapGridSetMetatileIdAt + b _080C6EAA + .align 2, 0 +_080C6E90: .4byte gUnknown_0202FF84 +_080C6E94: .4byte 0x00000286 +_080C6E98: .4byte 0x00000e02 +_080C6E9C: + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + subs r1, 0x1 + movs r2, 0xA1 + lsls r2, 2 + bl MapGridSetMetatileIdAt +_080C6EAA: + ldr r4, _080C6ED8 + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + ldr r2, _080C6EDC + bl MapGridSetMetatileIdAt + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + subs r1, 0x1 + bl CurrentMapDrawMetatileAt + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + bl CurrentMapDrawMetatileAt + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080C6EE0 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C6ED8: .4byte gUnknown_0202FF84 +_080C6EDC: .4byte 0x0000020a +_080C6EE0: .4byte sub_80C6EE4 + thumb_func_end door_restore_tilemap + + thumb_func_start sub_80C6EE4 +sub_80C6EE4: @ 80C6EE4 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x2E] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0x11 + bgt _080C6EF8 + adds r0, r1, 0x1 + strh r0, [r5, 0x2E] + b _080C6F14 +_080C6EF8: + ldr r4, _080C6F1C + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + ldr r2, _080C6F20 + bl MapGridSetMetatileIdAt + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + bl CurrentMapDrawMetatileAt + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080C6F24 + str r0, [r5, 0x1C] +_080C6F14: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C6F1C: .4byte gUnknown_0202FF84 +_080C6F20: .4byte 0x00000e8c +_080C6F24: .4byte sub_80C6F28 + thumb_func_end sub_80C6EE4 + + thumb_func_start sub_80C6F28 +sub_80C6F28: @ 80C6F28 + push {lr} + movs r1, 0x34 + bl FieldEffectStop + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_80C6F28 + + thumb_func_start sub_80C6F38 +sub_80C6F38: @ 80C6F38 + push {r4,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileIdAt + adds r1, r0, 0 + ldr r0, _080C6F70 + cmp r1, r0 + beq _080C6FE8 + cmp r1, r0 + bgt _080C6F74 + subs r0, 0x17 + cmp r1, r0 + beq _080C6FB0 + adds r0, 0x16 + cmp r1, r0 + beq _080C6FDC + b _080C6FFA + .align 2, 0 +_080C6F70: .4byte 0x000002f5 +_080C6F74: + ldr r0, _080C6F9C + cmp r1, r0 + beq _080C6FF4 + adds r0, 0x40 + cmp r1, r0 + bne _080C6FFA + ldr r0, _080C6FA0 + movs r1, 0x64 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r0, _080C6FA4 + ldr r1, _080C6FA8 + bl StringCopy + ldr r1, _080C6FAC + movs r0, 0 + b _080C6FF8 + .align 2, 0 +_080C6F9C: .4byte 0x000002f6 +_080C6FA0: .4byte gStringVar1 +_080C6FA4: .4byte gStringVar2 +_080C6FA8: .4byte gSecretBaseText_GoldRank +_080C6FAC: .4byte gScriptResult +_080C6FB0: + ldr r0, _080C6FCC + movs r1, 0x32 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, _080C6FD0 + ldr r1, _080C6FD4 + bl StringCopy + ldr r1, _080C6FD8 + movs r0, 0 + b _080C6FF8 + .align 2, 0 +_080C6FCC: .4byte gStringVar1 +_080C6FD0: .4byte gStringVar2 +_080C6FD4: .4byte gSecretBaseText_SilverRank +_080C6FD8: .4byte gScriptResult +_080C6FDC: + ldr r1, _080C6FE4 + movs r0, 0x1 + b _080C6FF8 + .align 2, 0 +_080C6FE4: .4byte gScriptResult +_080C6FE8: + ldr r1, _080C6FF0 + movs r0, 0x2 + b _080C6FF8 + .align 2, 0 +_080C6FF0: .4byte gScriptResult +_080C6FF4: + ldr r1, _080C7004 + movs r0, 0x3 +_080C6FF8: + strh r0, [r1] +_080C6FFA: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C7004: .4byte gScriptResult + thumb_func_end sub_80C6F38 + + thumb_func_start task50_overworld_posion_effect +task50_overworld_posion_effect: @ 80C7008 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080C702C + adds r1, r0, r1 + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0x1 + beq _080C7046 + cmp r0, 0x1 + bgt _080C7030 + cmp r0, 0 + beq _080C7036 + b _080C7062 + .align 2, 0 +_080C702C: .4byte gUnknown_03004B28 +_080C7030: + cmp r0, 0x2 + beq _080C705A + b _080C7062 +_080C7036: + ldrh r0, [r1, 0x2] + adds r0, 0x2 + strh r0, [r1, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080C7062 + b _080C7052 +_080C7046: + ldrh r0, [r1, 0x2] + subs r0, 0x2 + strh r0, [r1, 0x2] + lsls r0, 16 + cmp r0, 0 + bne _080C7062 +_080C7052: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080C7062 +_080C705A: + adds r0, r2, 0 + bl DestroyTask + b _080C706C +_080C7062: + ldr r2, _080C7070 + ldrh r1, [r1, 0x2] + lsls r0, r1, 4 + orrs r0, r1 + strh r0, [r2] +_080C706C: + pop {r0} + bx r0 + .align 2, 0 +_080C7070: .4byte REG_MOSAIC + thumb_func_end task50_overworld_posion_effect + + thumb_func_start overworld_posion_effect +overworld_posion_effect: @ 80C7074 + push {lr} + movs r0, 0x4F + bl PlaySE + ldr r0, _080C7088 + movs r1, 0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080C7088: .4byte task50_overworld_posion_effect + thumb_func_end overworld_posion_effect + + thumb_func_start c3_80A0DD8_is_running +c3_80A0DD8_is_running: @ 80C708C + push {lr} + ldr r0, _080C709C + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080C709C: .4byte task50_overworld_posion_effect + thumb_func_end c3_80A0DD8_is_running + + thumb_func_start sub_80C70A0 +sub_80C70A0: @ 80C70A0 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C70B4 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080C70B8 + str r0, [r1] + bx lr + .align 2, 0 +_080C70B4: .4byte gTasks +_080C70B8: .4byte sub_80C70BC + thumb_func_end sub_80C70A0 + + thumb_func_start sub_80C70BC +sub_80C70BC: @ 80C70BC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080C7120 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C7124 + adds r4, r0, r1 + adds r0, r4, 0 + bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + lsls r0, 24 + cmp r0, 0 + beq _080C70E8 + adds r0, r4, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080C711A +_080C70E8: + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + bl sub_8059D08 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + bl GetStepInPlaceDelay16AnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetSpecialAnim + ldr r1, _080C7128 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C712C + str r1, [r0] +_080C711A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C7120: .4byte gPlayerAvatar +_080C7124: .4byte gMapObjects +_080C7128: .4byte gTasks +_080C712C: .4byte sub_80C7130 + thumb_func_end sub_80C70BC + + thumb_func_start sub_80C7130 +sub_80C7130: @ 80C7130 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C7184 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C7188 + adds r5, r0, r1 + adds r0, r5, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080C7194 + ldr r1, _080C718C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0xA] + adds r1, r0, 0x1 + strh r1, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + bgt _080C7190 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + bl GetStepInPlaceDelay16AnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl FieldObjectSetSpecialAnim + b _080C7194 + .align 2, 0 +_080C7184: .4byte gPlayerAvatar +_080C7188: .4byte gMapObjects +_080C718C: .4byte gTasks +_080C7190: + ldr r0, _080C719C + str r0, [r2] +_080C7194: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C719C: .4byte sub_80C71A0 + thumb_func_end sub_80C7130 + + thumb_func_start sub_80C71A0 +sub_80C71A0: @ 80C71A0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80597D0 + lsls r0, 24 + lsrs r0, 24 + bl SetPlayerAvatarTransitionFlags + adds r0, r4, 0 + bl DestroyTask + bl EnableBothScriptContexts + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C71A0 + + thumb_func_start sub_80C71C4 +sub_80C71C4: @ 80C71C4 + push {lr} + ldr r0, _080C71D4 + movs r1, 0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080C71D4: .4byte sub_80C70A0 + thumb_func_end sub_80C71C4 + + thumb_func_start sub_80C71D8 +sub_80C71D8: @ 80C71D8 + push {r4,r5,lr} + ldr r0, _080C722C + bl LoadSpritePalette + ldr r0, _080C7230 + movs r1, 0 + movs r2, 0 + movs r3, 0x52 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x40 + beq _080C7238 + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + ldr r1, _080C7234 + adds r4, r0, r1 + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r0, 0x10 + movs r1, 0xD + bl sub_8060388 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x20] + adds r0, 0x10 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x22] + adds r0, 0x2 + strh r0, [r4, 0x22] + adds r0, r5, 0 + b _080C723A + .align 2, 0 +_080C722C: .4byte gUnknown_083D2878 +_080C7230: .4byte gSpriteTemplate_83D2894 +_080C7234: .4byte gSprites +_080C7238: + movs r0, 0x40 +_080C723A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80C71D8 + + thumb_func_start sub_80C7240 +sub_80C7240: @ 80C7240 + push {r4-r7,lr} + ldr r4, _080C7274 + adds r7, r4, 0 + movs r6, 0 + movs r5, 0x3F +_080C724A: + adds r0, r7, 0 + adds r0, 0x14 + adds r0, r6, r0 + ldr r1, [r0] + ldr r0, _080C7278 + cmp r1, r0 + bne _080C7264 + adds r0, r4, 0 + bl FreeSpritePalette + adds r0, r4, 0 + bl DestroySprite +_080C7264: + adds r4, 0x44 + adds r6, 0x44 + subs r5, 0x1 + cmp r5, 0 + bge _080C724A + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C7274: .4byte gSprites +_080C7278: .4byte gSpriteTemplate_83D2894 + thumb_func_end sub_80C7240 + + thumb_func_start sub_80C727C +sub_80C727C: @ 80C727C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x78 + bl __modsi3 + cmp r0, 0 + bne _080C7290 + movs r0, 0x1 + negs r0, r0 + b _080C72A2 +_080C7290: + adds r0, r4, 0 + movs r1, 0xA + bl __modsi3 + cmp r0, 0x4 + ble _080C72A0 + movs r0, 0 + b _080C72A2 +_080C72A0: + movs r0, 0x1 +_080C72A2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C727C + + thumb_func_start sub_80C72A8 +sub_80C72A8: @ 80C72A8 + push {lr} + adds r0, 0x78 + movs r1, 0xB4 + bl __modsi3 + cmp r0, 0 + beq _080C72BA + movs r0, 0 + b _080C72BE +_080C72BA: + movs r0, 0x1 + negs r0, r0 +_080C72BE: + pop {r1} + bx r1 + thumb_func_end sub_80C72A8 + + thumb_func_start sub_80C72C4 +sub_80C72C4: @ 80C72C4 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080C7364 + adds r5, r1, r0 + movs r1, 0 + ldrsh r0, [r5, r1] + adds r0, 0x1E + bl sub_80C72A8 + ldr r4, _080C7368 + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + lsls r0, 18 + movs r3, 0xC0 + lsls r3, 10 + orrs r0, r3 + asrs r0, 16 + str r0, [sp] + movs r0, 0x1 + movs r3, 0x3 + bl sub_805BD90 + movs r3, 0 + ldrsh r0, [r5, r3] + bl sub_80C72A8 + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + lsls r0, 17 + ldr r3, _080C736C + adds r0, r3 + asrs r0, 16 + str r0, [sp] + movs r0, 0x2 + movs r3, 0 + bl sub_805BD90 + movs r1, 0 + ldrsh r0, [r5, r1] + bl sub_80C72A8 + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + movs r4, 0 + movs r3, 0x3 + negs r3, r3 + lsls r0, 18 + asrs r0, 16 + str r0, [sp] + movs r0, 0x3 + bl sub_805BD90 + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + lsls r0, 16 + ldr r1, _080C7370 + cmp r0, r1 + bne _080C7346 + strh r4, [r5] +_080C7346: + movs r3, 0 + ldrsh r0, [r5, r3] + bl sub_80C727C + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl SetCameraPanning + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C7364: .4byte gUnknown_03004B28 +_080C7368: .4byte gSaveBlock1 +_080C736C: .4byte 0xfffd0000 +_080C7370: .4byte 0x75300000 + thumb_func_end sub_80C72C4 + + thumb_func_start sub_80C7374 +sub_80C7374: @ 80C7374 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r3, r0, 3 + ldr r4, _080C73B4 + adds r7, r3, r4 + ldrh r1, [r7] + adds r1, 0x1 + strh r1, [r7] + ldrh r0, [r7, 0x4] + adds r0, 0x1 + strh r0, [r7, 0x4] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x5 + ble _080C73A4 + movs r0, 0 + strh r0, [r7] + ldrh r0, [r7, 0x2] + adds r0, 0x1 + strh r0, [r7, 0x2] +_080C73A4: + ldrh r0, [r7, 0x2] + cmp r0, 0x13 + bne _080C73B8 + adds r0, r2, 0 + bl DestroyTask + b _080C746A + .align 2, 0 +_080C73B4: .4byte gUnknown_03004B28 +_080C73B8: + ldr r2, _080C7474 + movs r1, 0x2 + ldrsh r0, [r7, r1] + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x2 + bne _080C73D4 + adds r0, r4, 0 + subs r0, 0x8 + adds r0, r3, r0 + ldr r1, _080C7478 + str r1, [r0] +_080C73D4: + movs r4, 0x2 + ldrsh r0, [r7, r4] + adds r0, r2 + movs r5, 0 + ldrsb r5, [r0, r5] + lsls r5, 16 + lsrs r5, 16 + movs r1, 0x4 + ldrsh r0, [r7, r1] + bl sub_80C727C + adds r1, r0, 0 + lsls r5, 16 + asrs r5, 16 + lsls r1, 16 + asrs r1, 16 + adds r0, r5, 0 + bl SetCameraPanning + movs r4, 0x4 + ldrsh r0, [r7, r4] + adds r0, 0x1E + bl sub_80C72A8 + ldr r6, _080C747C + ldrb r1, [r6, 0x5] + ldrb r2, [r6, 0x4] + movs r3, 0x3 + subs r3, r5 + lsls r3, 16 + asrs r3, 16 + lsls r0, 18 + movs r4, 0xC0 + lsls r4, 10 + orrs r0, r4 + asrs r0, 16 + str r0, [sp] + movs r0, 0x1 + bl sub_805BD90 + movs r1, 0x4 + ldrsh r0, [r7, r1] + bl sub_80C72A8 + ldrb r1, [r6, 0x5] + ldrb r2, [r6, 0x4] + negs r3, r5 + lsls r3, 16 + asrs r3, 16 + lsls r0, 17 + ldr r4, _080C7480 + adds r0, r4 + asrs r0, 16 + str r0, [sp] + movs r0, 0x2 + bl sub_805BD90 + movs r1, 0x4 + ldrsh r0, [r7, r1] + bl sub_80C72A8 + ldrb r1, [r6, 0x5] + ldrb r2, [r6, 0x4] + movs r4, 0x3 + negs r4, r4 + adds r3, r4, 0 + subs r3, r5 + lsls r3, 16 + asrs r3, 16 + lsls r0, 18 + asrs r0, 16 + str r0, [sp] + movs r0, 0x3 + bl sub_805BD90 +_080C746A: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C7474: .4byte gUnknown_083D294C +_080C7478: .4byte sub_80C7484 +_080C747C: .4byte gSaveBlock1 +_080C7480: .4byte 0xfffd0000 + thumb_func_end sub_80C7374 + + thumb_func_start sub_80C7484 +sub_80C7484: @ 80C7484 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080C74C4 + adds r2, r0, r1 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080C74B4 + movs r0, 0 + strh r0, [r2] + ldrh r0, [r2, 0x2] + adds r0, 0x1 + strh r0, [r2, 0x2] +_080C74B4: + ldrh r0, [r2, 0x2] + cmp r0, 0x13 + bne _080C74C8 + adds r0, r3, 0 + bl DestroyTask + b _080C7516 + .align 2, 0 +_080C74C4: .4byte gUnknown_03004B28 +_080C74C8: + ldr r1, _080C7524 + movs r3, 0x2 + ldrsh r0, [r2, r3] + adds r0, r1 + movs r1, 0 + mov r8, r1 + movs r6, 0 + ldrsb r6, [r0, r6] + adds r0, r6, 0 + bl SetCameraPanning + ldr r5, _080C7528 + ldrb r1, [r5, 0x5] + ldrb r2, [r5, 0x4] + movs r3, 0x3 + subs r3, r6 + movs r0, 0x3 + str r0, [sp] + movs r0, 0x1 + bl sub_805BD90 + ldrb r1, [r5, 0x5] + ldrb r2, [r5, 0x4] + negs r3, r6 + mov r4, r8 + subs r4, 0x3 + str r4, [sp] + movs r0, 0x2 + bl sub_805BD90 + ldrb r1, [r5, 0x5] + ldrb r2, [r5, 0x4] + subs r4, r6 + mov r3, r8 + str r3, [sp] + movs r0, 0x3 + adds r3, r4, 0 + bl sub_805BD90 +_080C7516: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C7524: .4byte gUnknown_083D294C +_080C7528: .4byte gSaveBlock1 + thumb_func_end sub_80C7484 + + thumb_func_start sub_80C752C +sub_80C752C: @ 80C752C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C7550 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bls _080C7546 + b _080C7698 +_080C7546: + lsls r0, 2 + ldr r1, _080C7554 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C7550: .4byte gUnknown_03004B28 +_080C7554: .4byte _080C7558 + .align 2, 0 +_080C7558: + .4byte _080C7570 + .4byte _080C75A8 + .4byte _080C75C4 + .4byte _080C7610 + .4byte _080C7634 + .4byte _080C7652 +_080C7570: + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5A + beq _080C7580 + b _080C7698 +_080C7580: + movs r0, 0 + bl SetCameraPanningCallback + movs r0, 0 + strh r0, [r4, 0x2] + ldr r0, _080C75A4 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x4] + movs r0, 0x1 + strh r0, [r4] + movs r0, 0x31 + bl PlaySE + b _080C7698 + .align 2, 0 +_080C75A4: .4byte sub_80C72C4 +_080C75A8: + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x96 + bne _080C7698 + bl pal_fill_black + movs r0, 0 + strh r0, [r4, 0x2] + movs r0, 0x2 + strh r0, [r4] + b _080C7698 +_080C75C4: + ldrh r0, [r4, 0x2] + adds r3, r0, 0x1 + strh r3, [r4, 0x2] + ldr r0, _080C7608 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080C7698 + lsls r1, r3, 16 + movs r0, 0x96 + lsls r0, 17 + cmp r1, r0 + ble _080C7698 + strh r2, [r4, 0x2] + ldrb r0, [r4, 0x4] + bl DestroyTask + ldr r0, _080C760C + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x6] + movs r0, 0x3 + strh r0, [r4] + movs r0, 0x32 + bl PlaySE + b _080C7698 + .align 2, 0 +_080C7608: .4byte gPaletteFade +_080C760C: .4byte sub_80C7374 +_080C7610: + ldr r2, _080C7630 + movs r0, 0x6 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r5, [r0, 0x4] + cmp r5, 0 + bne _080C7698 + bl InstallCameraPanAheadCallback + strh r5, [r4, 0x2] + movs r0, 0x4 + strh r0, [r4] + b _080C7698 + .align 2, 0 +_080C7630: .4byte gTasks +_080C7634: + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5A + bne _080C7698 + movs r0, 0x33 + bl PlaySE + movs r0, 0 + strh r0, [r4, 0x2] + movs r0, 0x5 + strh r0, [r4] + b _080C7698 +_080C7652: + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x78 + bne _080C7698 + movs r2, 0x82 + lsls r2, 2 + movs r0, 0xB + movs r1, 0x8 + bl MapGridSetMetatileIdAt + movs r2, 0x84 + lsls r2, 2 + movs r0, 0xB + movs r1, 0x9 + bl MapGridSetMetatileIdAt + movs r2, 0x86 + lsls r2, 2 + movs r0, 0xB + movs r1, 0xA + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + movs r0, 0x34 + bl PlaySE + adds r0, r5, 0 + bl DestroyTask + bl ScriptContext2_Disable +_080C7698: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C752C + + thumb_func_start sub_80C76A0 +sub_80C76A0: @ 80C76A0 + push {lr} + sub sp, 0x4 + ldr r2, _080C76E8 + movs r0, 0xB + movs r1, 0x8 + bl MapGridSetMetatileIdAt + ldr r2, _080C76EC + movs r0, 0xB + movs r1, 0x9 + bl MapGridSetMetatileIdAt + ldr r2, _080C76F0 + movs r0, 0xB + movs r1, 0xA + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + bl ScriptContext2_Enable + movs r0, 0 + str r0, [sp] + ldr r1, _080C76F4 + ldr r2, _080C76F8 + mov r0, sp + bl CpuFastSet + ldr r0, _080C76FC + movs r1, 0xA + bl CreateTask + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080C76E8: .4byte 0x0000020d +_080C76EC: .4byte 0x00000215 +_080C76F0: .4byte 0x0000021d +_080C76F4: .4byte gPlttBufferFaded +_080C76F8: .4byte 0x01000100 +_080C76FC: .4byte sub_80C752C + thumb_func_end sub_80C76A0 + + thumb_func_start sub_80C7700 +sub_80C7700: @ 80C7700 + push {r4-r6,lr} + sub sp, 0x4 + ldr r0, _080C774C + bl FuncIsActiveTask + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + bne _080C7744 + ldr r4, _080C7750 + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + movs r0, 0x3 + str r0, [sp] + movs r0, 0x1 + movs r3, 0x3 + bl sub_805BD90 + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + movs r5, 0x3 + negs r5, r5 + str r5, [sp] + movs r0, 0x2 + movs r3, 0 + bl sub_805BD90 + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + str r6, [sp] + movs r0, 0x3 + adds r3, r5, 0 + bl sub_805BD90 +_080C7744: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C774C: .4byte sub_80C752C +_080C7750: .4byte gSaveBlock1 + thumb_func_end sub_80C7700 + + thumb_func_start sub_80C7754 +sub_80C7754: @ 80C7754 + push {r4-r6,lr} + sub sp, 0xC + mov r4, sp + adds r4, 0x5 + mov r5, sp + adds r5, 0x6 + add r6, sp, 0x8 + add r0, sp, 0x4 + adds r1, r4, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_810D9EC + lsls r0, 24 + cmp r0, 0 + bne _080C7796 + add r0, sp, 0x4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r4, r1] + movs r2, 0x1 + negs r2, r2 + movs r3, 0 + ldrsb r3, [r5, r3] + movs r4, 0 + ldrsb r4, [r6, r4] + str r4, [sp] + bl warp1_set + movs r0, 0x1 + b _080C7798 +_080C7796: + movs r0, 0 +_080C7798: + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C7754 + + thumb_func_start sub_80C77A0 +sub_80C77A0: @ 80C77A0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C77CC + adds r4, r0, r1 + ldr r0, _080C77D0 + bl GetVarPointer + adds r6, r0, 0 + ldr r7, _080C77D4 + movs r0, 0 + ldrsh r2, [r4, r0] + cmp r2, 0x1 + beq _080C77FC + cmp r2, 0x1 + bgt _080C77D8 + cmp r2, 0 + beq _080C77E2 + b _080C7896 + .align 2, 0 +_080C77CC: .4byte gUnknown_03004B28 +_080C77D0: .4byte 0x000040b4 +_080C77D4: .4byte gSaveBlock1 + 0x4 +_080C77D8: + cmp r2, 0x2 + beq _080C783E + cmp r2, 0x3 + beq _080C7878 + b _080C7896 +_080C77E2: + ldr r0, _080C77F8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080C7896 + strh r2, [r4, 0x2] + movs r0, 0x2 + strh r0, [r4] + b _080C7896 + .align 2, 0 +_080C77F8: .4byte gPaletteFade +_080C77FC: + ldr r0, _080C7830 + ldrh r1, [r0, 0x2E] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080C780A + strh r2, [r4, 0x2] +_080C780A: + ldrb r1, [r7, 0x1] + ldrb r2, [r7] + movs r0, 0xFF + bl sub_80A212C + lsls r0, 24 + cmp r0, 0 + beq _080C7896 + movs r0, 0x1 + bl sub_810D9B0 + cmp r0, 0x1 + bne _080C783A + ldrh r0, [r6] + cmp r0, 0x2 + bne _080C7834 + movs r0, 0x9 + b _080C7836 + .align 2, 0 +_080C7830: .4byte gMain +_080C7834: + movs r0, 0xA +_080C7836: + strh r0, [r6] + b _080C7846 +_080C783A: + movs r0, 0x2 + strh r0, [r4] +_080C783E: + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C784C +_080C7846: + movs r0, 0x3 + strh r0, [r4] + b _080C7896 +_080C784C: + ldrh r0, [r6] + cmp r0, 0x2 + bne _080C7860 + ldrb r1, [r7, 0x1] + ldrb r2, [r7] + ldr r3, _080C785C + b _080C7866 + .align 2, 0 +_080C785C: .4byte gUnknown_083D295F +_080C7860: + ldrb r1, [r7, 0x1] + ldrb r2, [r7] + ldr r3, _080C7874 +_080C7866: + movs r0, 0xFF + bl exec_movement + movs r0, 0x1 + strh r0, [r4] + b _080C7896 + .align 2, 0 +_080C7874: .4byte gUnknown_083D2961 +_080C7878: + ldr r0, _080C789C + bl FlagReset + movs r0, 0x80 + lsls r0, 7 + bl FlagReset + movs r0, 0 + bl copy_saved_warp2_bank_and_enter_x_to_warp1 + bl sp13E_warp_to_last_warp + adds r0, r5, 0 + bl DestroyTask +_080C7896: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C789C: .4byte 0x00004001 + thumb_func_end sub_80C77A0 + + thumb_func_start sub_80C78A0 +sub_80C78A0: @ 80C78A0 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080C78F4 + movs r0, 0 + str r0, [sp] + movs r0, 0x8C + movs r2, 0x70 + movs r3, 0x50 + bl AddPseudoFieldObject + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C78F8 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r4, r1, r2 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r0, _080C78FC + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bne _080C7900 + movs r0, 0x4 + bl FieldObjectDirectionToImageAnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + b _080C7912 + .align 2, 0 +_080C78F4: .4byte SpriteCallbackDummy +_080C78F8: .4byte gSprites +_080C78FC: .4byte 0x000040b4 +_080C7900: + movs r0, 0x3 + bl FieldObjectDirectionToImageAnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim +_080C7912: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C78A0 + + thumb_func_start sub_80C791C +sub_80C791C: @ 80C791C + push {lr} + bl sub_80C78A0 + ldr r2, _080C794C + ldr r0, _080C7950 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x1] + bl pal_fill_black + ldr r0, _080C7954 + movs r1, 0x50 + bl CreateTask + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_080C794C: .4byte gMapObjects +_080C7950: .4byte gPlayerAvatar +_080C7954: .4byte sub_80C77A0 + thumb_func_end sub_80C791C + + thumb_func_start sub_80C7958 +sub_80C7958: @ 80C7958 + push {lr} + ldr r0, _080C7990 + bl FlagSet + ldr r0, _080C7994 + bl FlagSet + movs r0, 0x80 + lsls r0, 7 + bl FlagSet + ldr r0, _080C7998 + movs r1, 0x4 + ldrsb r1, [r0, r1] + movs r2, 0x5 + ldrsb r2, [r0, r2] + movs r3, 0x1 + negs r3, r3 + movs r0, 0 + bl saved_warp2_set + bl sub_80C7754 + bl sub_8080F9C + pop {r0} + bx r0 + .align 2, 0 +_080C7990: .4byte 0x0000082d +_080C7994: .4byte 0x00004001 +_080C7998: .4byte gSaveBlock1 + thumb_func_end sub_80C7958 + + thumb_func_start GetCurrentMapRotatingGatePuzzleType +GetCurrentMapRotatingGatePuzzleType: @ 80C799C + push {lr} + ldr r0, _080C79B0 + ldrh r1, [r0, 0x4] + movs r0, 0x86 + lsls r0, 1 + cmp r1, r0 + bne _080C79B4 + movs r0, 0x1 + b _080C79C6 + .align 2, 0 +_080C79B0: .4byte gSaveBlock1 +_080C79B4: + ldr r0, _080C79C0 + cmp r1, r0 + beq _080C79C4 + movs r0, 0 + b _080C79C6 + .align 2, 0 +_080C79C0: .4byte 0x0000081d +_080C79C4: + movs r0, 0x2 +_080C79C6: + pop {r1} + bx r1 + thumb_func_end GetCurrentMapRotatingGatePuzzleType + + thumb_func_start sub_80C79CC +sub_80C79CC: @ 80C79CC + push {r4-r6,lr} + movs r0, 0x80 + lsls r0, 7 + bl GetVarPointer + adds r5, r0, 0 + movs r3, 0 + ldr r4, _080C7A00 + ldrb r0, [r4] + cmp r3, r0 + bge _080C79F8 + ldr r6, _080C7A04 +_080C79E4: + adds r2, r5, r3 + ldr r1, [r6] + lsls r0, r3, 3 + adds r0, r1 + ldrb r0, [r0, 0x5] + strb r0, [r2] + adds r3, 0x1 + ldrb r0, [r4] + cmp r3, r0 + blt _080C79E4 +_080C79F8: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C7A00: .4byte gUnknown_02038804 +_080C7A04: .4byte gUnknown_02038800 + thumb_func_end sub_80C79CC + + thumb_func_start sub_80C7A08 +sub_80C7A08: @ 80C7A08 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x80 + lsls r0, 7 + bl GetVarPointer + adds r0, r4 + ldrb r0, [r0] + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C7A08 + + thumb_func_start sub_80C7A24 +sub_80C7A24: @ 80C7A24 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x80 + lsls r0, 7 + bl GetVarPointer + adds r0, r4 + strb r5, [r0] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C7A24 + + thumb_func_start sub_80C7A44 +sub_80C7A44: @ 80C7A44 + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl sub_80C7A08 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r4, 0x1 + bne _080C7A68 + cmp r1, 0 + beq _080C7A64 + subs r0, r1, 0x1 + lsls r0, 24 + b _080C7A72 +_080C7A64: + movs r1, 0x3 + b _080C7A74 +_080C7A68: + adds r1, 0x1 + lsls r1, 24 + movs r0, 0xC0 + lsls r0, 18 + ands r0, r1 +_080C7A72: + lsrs r1, r0, 24 +_080C7A74: + adds r0, r5, 0 + bl sub_80C7A24 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C7A44 + + thumb_func_start sub_80C7A80 +sub_80C7A80: @ 80C7A80 + push {lr} + bl GetCurrentMapRotatingGatePuzzleType + cmp r0, 0x1 + beq _080C7A94 + cmp r0, 0x1 + ble _080C7AC8 + cmp r0, 0x2 + beq _080C7AAC + b _080C7AC8 +_080C7A94: + ldr r1, _080C7AA0 + ldr r0, _080C7AA4 + str r0, [r1] + ldr r1, _080C7AA8 + movs r0, 0x7 + b _080C7AB6 + .align 2, 0 +_080C7AA0: .4byte gUnknown_02038800 +_080C7AA4: .4byte gUnknown_083D2964 +_080C7AA8: .4byte gUnknown_02038804 +_080C7AAC: + ldr r1, _080C7ACC + ldr r0, _080C7AD0 + str r0, [r1] + ldr r1, _080C7AD4 + movs r0, 0xE +_080C7AB6: + strb r0, [r1] + movs r1, 0 + ldr r3, _080C7AD8 + movs r2, 0x40 +_080C7ABE: + adds r0, r1, r3 + strb r2, [r0] + adds r1, 0x1 + cmp r1, 0xD + bls _080C7ABE +_080C7AC8: + pop {r0} + bx r0 + .align 2, 0 +_080C7ACC: .4byte gUnknown_02038800 +_080C7AD0: .4byte gUnknown_083D299C +_080C7AD4: .4byte gUnknown_02038804 +_080C7AD8: .4byte gUnknown_020387F0 + thumb_func_end sub_80C7A80 + + thumb_func_start sub_80C7ADC +sub_80C7ADC: @ 80C7ADC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp] + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + ldr r2, _080C7B9C + ldrh r1, [r2] + subs r0, r1, 0x2 + lsls r0, 16 + lsrs r3, r0, 16 + adds r1, 0x11 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + ldrh r1, [r2, 0x2] + subs r0, r1, 0x2 + lsls r0, 16 + lsrs r2, r0, 16 + adds r1, 0xE + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + movs r5, 0 + ldr r0, _080C7BA0 + ldrb r0, [r0] + cmp r5, r0 + bcs _080C7B8C + lsls r0, r2, 16 + asrs r7, r0, 16 + lsls r0, r3, 16 + asrs r6, r0, 16 +_080C7B28: + ldr r0, _080C7BA4 + ldr r0, [r0] + lsls r1, r5, 3 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x7 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r1, 0x2] + adds r0, 0x7 + lsls r0, 16 + asrs r1, r0, 16 + cmp r7, r1 + bgt _080C7B7E + mov r3, r8 + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, r1 + blt _080C7B7E + lsls r0, r2, 16 + asrs r1, r0, 16 + cmp r6, r1 + bgt _080C7B7E + mov r2, r9 + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, r1 + blt _080C7B7E + ldr r0, _080C7BA8 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0x40 + bne _080C7B7E + ldr r3, [sp] + lsls r1, r3, 16 + mov r0, r10 + lsls r2, r0, 16 + adds r0, r5, 0 + asrs r1, 16 + asrs r2, 16 + bl sub_80C7BAC + strb r0, [r4] +_080C7B7E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080C7BA0 + ldrb r0, [r0] + cmp r5, r0 + bcc _080C7B28 +_080C7B8C: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C7B9C: .4byte gSaveBlock1 +_080C7BA0: .4byte gUnknown_02038804 +_080C7BA4: .4byte gUnknown_02038800 +_080C7BA8: .4byte gUnknown_020387F0 + thumb_func_end sub_80C7ADC + + thumb_func_start sub_80C7BAC +sub_80C7BAC: @ 80C7BAC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x18 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + ldr r0, _080C7BDC + lsls r1, r6, 3 + ldr r0, [r0] + adds r4, r0, r1 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _080C7BD4 + cmp r0, 0x4 + bne _080C7BE4 +_080C7BD4: + mov r1, sp + ldr r0, _080C7BE0 + b _080C7BE8 + .align 2, 0 +_080C7BDC: .4byte gUnknown_02038800 +_080C7BE0: .4byte gSpriteTemplate_83D60A4 +_080C7BE4: + mov r1, sp + ldr r0, _080C7C7C +_080C7BE8: + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + mov r2, sp + ldrb r0, [r4, 0x4] + movs r3, 0x98 + lsls r3, 5 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r2] + mov r0, sp + movs r1, 0 + movs r2, 0 + movs r3, 0x94 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x40 + beq _080C7C84 + ldrh r0, [r4] + adds r0, 0x7 + ldrh r1, [r4, 0x2] + adds r1, 0x7 + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + ldr r2, _080C7C80 + adds r4, r2 + strh r6, [r4, 0x2E] + movs r2, 0x3E + adds r2, r4 + mov r12, r2 + ldrb r2, [r2] + movs r3, 0x2 + orrs r2, r3 + mov r3, r12 + strb r2, [r3] + lsls r0, 16 + asrs r0, 16 + lsls r2, r7, 16 + asrs r2, 16 + adds r0, r2 + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + mov r3, r8 + lsls r2, r3, 16 + asrs r2, 16 + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + bl sub_8060388 + adds r0, r4, 0 + bl sub_80C7D14 + adds r0, r6, 0 + bl sub_80C7A08 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAffineAnim + adds r0, r5, 0 + b _080C7C86 + .align 2, 0 +_080C7C7C: .4byte gSpriteTemplate_83D608C +_080C7C80: .4byte gSprites +_080C7C84: + movs r0, 0x40 +_080C7C86: + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80C7BAC + + thumb_func_start sub_80C7C94 +sub_80C7C94: @ 80C7C94 + push {r4-r7,lr} + adds r6, r0, 0 + ldrh r0, [r6, 0x30] + lsls r0, 24 + lsrs r5, r0, 24 + ldrh r0, [r6, 0x32] + lsls r0, 24 + lsrs r4, r0, 24 + adds r7, r4, 0 + adds r0, r6, 0 + bl sub_80C7D14 + cmp r5, 0x1 + bne _080C7CDA + adds r0, r4, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80E6034 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + beq _080C7CCA + adds r0, r4, 0 + adds r0, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 +_080C7CCA: + movs r0, 0x30 + bl PlaySE + adds r0, r6, 0 + adds r1, r4, 0 + bl StartSpriteAffineAnim + b _080C7D08 +_080C7CDA: + cmp r5, 0x2 + bne _080C7D08 + adds r0, r7, 0 + adds r0, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80E6034 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + beq _080C7CFA + adds r0, r4, 0 + adds r0, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 +_080C7CFA: + movs r0, 0x30 + bl PlaySE + adds r0, r6, 0 + adds r1, r4, 0 + bl StartSpriteAffineAnim +_080C7D08: + movs r0, 0 + strh r0, [r6, 0x30] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C7C94 + + thumb_func_start sub_80C7D14 +sub_80C7D14: @ 80C7D14 + push {r4-r6,lr} + mov r12, r0 + mov r4, r12 + adds r4, 0x3E + ldrb r0, [r4] + movs r5, 0x5 + negs r5, r5 + ands r5, r0 + strb r5, [r4] + mov r0, r12 + ldrh r1, [r0, 0x24] + ldrh r2, [r0, 0x20] + adds r1, r2 + adds r0, 0x28 + movs r2, 0 + ldrsb r2, [r0, r2] + ldr r0, _080C7DA8 + adds r2, r1 + ldrh r0, [r0] + adds r2, r0 + lsls r2, 16 + mov r3, r12 + ldrh r1, [r3, 0x26] + ldrh r0, [r3, 0x22] + adds r1, r0 + mov r0, r12 + adds r0, 0x29 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldr r3, _080C7DAC + adds r0, r1 + ldrh r3, [r3] + adds r0, r3 + lsls r0, 16 + movs r3, 0x80 + lsls r3, 15 + adds r1, r2, r3 + lsrs r1, 16 + lsrs r6, r0, 16 + adds r0, r3 + lsrs r3, r0, 16 + asrs r2, 16 + cmp r2, 0xFF + bgt _080C7D7A + lsls r0, r1, 16 + asrs r0, 16 + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bge _080C7D82 +_080C7D7A: + movs r1, 0x4 + adds r0, r5, 0 + orrs r0, r1 + strb r0, [r4] +_080C7D82: + lsls r0, r6, 16 + asrs r0, 16 + cmp r0, 0xAF + bgt _080C7D96 + lsls r0, r3, 16 + asrs r0, 16 + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bge _080C7DA2 +_080C7D96: + mov r0, r12 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080C7DA2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C7DA8: .4byte gSpriteCoordOffsetX +_080C7DAC: .4byte gSpriteCoordOffsetY + thumb_func_end sub_80C7D14 + + thumb_func_start LoadRotatingGatePics +LoadRotatingGatePics: @ 80C7DB0 + push {lr} + ldr r0, _080C7DBC + bl LoadSpriteSheets + pop {r0} + bx r0 + .align 2, 0 +_080C7DBC: .4byte gRotatingGatesGraphicsTable + thumb_func_end LoadRotatingGatePics + + thumb_func_start sub_80C7DC0 +sub_80C7DC0: @ 80C7DC0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r2, _080C7DF4 + ldrh r1, [r2] + subs r0, r1, 0x2 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + adds r1, 0x11 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + ldrh r1, [r2, 0x2] + subs r0, r1, 0x2 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + adds r1, 0xE + lsls r1, 16 + lsrs r7, r1, 16 + movs r6, 0 + b _080C7E66 + .align 2, 0 +_080C7DF4: .4byte gSaveBlock1 +_080C7DF8: + ldr r0, _080C7E7C + ldr r0, [r0] + lsls r1, r6, 3 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x7 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r1, 0x2] + adds r0, 0x7 + lsls r0, 16 + lsrs r3, r0, 16 + ldr r0, _080C7E80 + adds r0, r6, r0 + ldrb r0, [r0] + cmp r0, 0x40 + beq _080C7E64 + lsls r0, r2, 16 + mov r2, r10 + lsls r1, r2, 16 + asrs r2, r0, 16 + cmp r0, r1 + blt _080C7E44 + mov r1, r9 + lsls r0, r1, 16 + asrs r0, 16 + cmp r2, r0 + bgt _080C7E44 + lsls r0, r3, 16 + mov r2, r8 + lsls r1, r2, 16 + asrs r2, r0, 16 + cmp r0, r1 + blt _080C7E44 + lsls r0, r7, 16 + asrs r0, 16 + cmp r2, r0 + ble _080C7E64 +_080C7E44: + ldr r0, _080C7E80 + adds r5, r6, r0 + ldrb r0, [r5] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _080C7E84 + adds r4, r0 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + movs r0, 0x40 + strb r0, [r5] +_080C7E64: + adds r6, 0x1 +_080C7E66: + ldr r0, _080C7E88 + ldrb r0, [r0] + cmp r6, r0 + blt _080C7DF8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C7E7C: .4byte gUnknown_02038800 +_080C7E80: .4byte gUnknown_020387F0 +_080C7E84: .4byte gSprites +_080C7E88: .4byte gUnknown_02038804 + thumb_func_end sub_80C7DC0 + + thumb_func_start sub_80C7E8C +sub_80C7E8C: @ 80C7E8C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r4, r0, 24 + cmp r1, 0x1 + bne _080C7EAC + ldr r0, _080C7EA8 + mov r10, r0 + b _080C7EB8 + .align 2, 0 +_080C7EA8: .4byte gUnknown_083D611C +_080C7EAC: + cmp r1, 0x2 + beq _080C7EB4 +_080C7EB0: + movs r0, 0 + b _080C7F48 +_080C7EB4: + ldr r1, _080C7F58 + mov r10, r1 +_080C7EB8: + adds r0, r4, 0 + bl sub_80C7A08 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + ldr r0, _080C7F5C + ldr r1, [r0] + lsls r0, r4, 3 + adds r0, r1 + ldrb r2, [r0, 0x4] + ldrh r1, [r0] + adds r1, 0x7 + ldrh r0, [r0, 0x2] + adds r0, 0x7 + movs r3, 0 + lsls r2, 3 + str r2, [sp, 0x4] + lsls r1, 16 + asrs r1, 16 + mov r9, r1 + lsls r0, 16 + asrs r0, 16 + mov r8, r0 +_080C7EE8: + movs r6, 0 + ldr r2, [sp] + adds r7, r2, r3 + lsls r0, r3, 1 + adds r5, r7, 0 + ldr r1, [sp, 0x4] + adds r0, r1 + ldr r2, _080C7F60 + adds r4, r0, r2 +_080C7EFA: + adds r0, r5, 0 + cmp r5, 0 + bge _080C7F02 + adds r0, r7, 0x3 +_080C7F02: + asrs r0, 2 + lsls r0, 2 + subs r0, r5, r0 + lsls r0, 1 + adds r0, r6 + lsls r0, 24 + lsrs r1, r0, 24 + ldrb r0, [r4] + cmp r0, 0 + beq _080C7F38 + lsls r1, 2 + add r1, r10 + movs r0, 0 + ldrsb r0, [r1, r0] + add r0, r9 + ldrb r1, [r1, 0x1] + lsls r1, 24 + asrs r1, 24 + add r1, r8 + str r3, [sp, 0x8] + bl MapGridIsImpassableAt + lsls r0, 24 + lsrs r0, 24 + ldr r3, [sp, 0x8] + cmp r0, 0x1 + beq _080C7EB0 +_080C7F38: + adds r4, 0x1 + adds r6, 0x1 + cmp r6, 0x1 + ble _080C7EFA + adds r3, 0x1 + cmp r3, 0x3 + ble _080C7EE8 + movs r0, 0x1 +_080C7F48: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080C7F58: .4byte gUnknown_083D60FC +_080C7F5C: .4byte gUnknown_02038800 +_080C7F60: .4byte gUnknown_083D613C + thumb_func_end sub_80C7E8C + + thumb_func_start sub_80C7F64 +sub_80C7F64: @ 80C7F64 + push {r4-r6,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + lsls r4, 24 + lsrs r5, r4, 24 + lsrs r4, 25 + movs r0, 0x1 + ands r5, r0 + adds r0, r6, 0 + bl sub_80C7A08 + subs r4, r0 + adds r1, r4, 0x4 + adds r0, r1, 0 + cmp r1, 0 + bge _080C7F8A + adds r0, r4, 0x7 +_080C7F8A: + asrs r0, 2 + lsls r0, 2 + subs r0, r1, r0 + ldr r1, _080C7FB0 + ldr r2, [r1] + lsls r1, r6, 3 + adds r1, r2 + ldrb r1, [r1, 0x4] + ldr r2, _080C7FB4 + lsls r0, 24 + asrs r0, 23 + adds r0, r5 + lsls r1, 3 + adds r0, r1 + adds r0, r2 + ldrb r0, [r0] + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080C7FB0: .4byte gUnknown_02038800 +_080C7FB4: .4byte gUnknown_083D613C + thumb_func_end sub_80C7F64 + + thumb_func_start sub_80C7FB8 +sub_80C7FB8: @ 80C7FB8 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _080C7FE4 + adds r2, r3, r0 + ldrb r0, [r2] + cmp r0, 0x40 + beq _080C7FDC + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _080C7FE8 + adds r4, r0 + strh r1, [r4, 0x30] + adds r0, r3, 0 + bl sub_80C7A08 + strh r0, [r4, 0x32] +_080C7FDC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C7FE4: .4byte gUnknown_020387F0 +_080C7FE8: .4byte gSprites + thumb_func_end sub_80C7FB8 + + thumb_func_start sub_80C7FEC +sub_80C7FEC: @ 80C7FEC + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + cmp r0, 0x2 + bne _080C8008 + ldr r3, _080C8004 + b _080C802A + .align 2, 0 +_080C8004: .4byte gUnknown_083D60BC +_080C8008: + cmp r0, 0x1 + bne _080C8014 + ldr r3, _080C8010 + b _080C802A + .align 2, 0 +_080C8010: .4byte gUnknown_083D60CC +_080C8014: + cmp r0, 0x3 + bne _080C8020 + ldr r3, _080C801C + b _080C802A + .align 2, 0 +_080C801C: .4byte gUnknown_083D60DC +_080C8020: + cmp r3, 0x4 + beq _080C8028 + movs r0, 0xFF + b _080C8038 +_080C8028: + ldr r3, _080C803C +_080C802A: + lsls r0, r2, 16 + lsls r1, 16 + asrs r1, 16 + asrs r0, 14 + adds r0, r1 + adds r0, r3, r0 + ldrb r0, [r0] +_080C8038: + pop {r1} + bx r1 + .align 2, 0 +_080C803C: .4byte gUnknown_083D60EC + thumb_func_end sub_80C7FEC + + thumb_func_start sub_80C8040 +sub_80C8040: @ 80C8040 + push {lr} + bl GetCurrentMapRotatingGatePuzzleType + cmp r0, 0 + beq _080C8052 + bl sub_80C7A80 + bl sub_80C79CC +_080C8052: + pop {r0} + bx r0 + thumb_func_end sub_80C8040 + + thumb_func_start RotatingGatePuzzleCameraUpdate +RotatingGatePuzzleCameraUpdate: @ 80C8058 + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + lsls r1, 16 + lsrs r5, r1, 16 + bl GetCurrentMapRotatingGatePuzzleType + cmp r0, 0 + beq _080C807A + lsls r0, r4, 16 + asrs r0, 16 + lsls r1, r5, 16 + asrs r1, 16 + bl sub_80C7ADC + bl sub_80C7DC0 +_080C807A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end RotatingGatePuzzleCameraUpdate + + thumb_func_start sub_80C8080 +sub_80C8080: @ 80C8080 + push {lr} + bl GetCurrentMapRotatingGatePuzzleType + cmp r0, 0 + beq _080C809A + bl LoadRotatingGatePics + bl sub_80C7A80 + movs r0, 0 + movs r1, 0 + bl sub_80C7ADC +_080C809A: + pop {r0} + bx r0 + thumb_func_end sub_80C8080 + + thumb_func_start CheckForRotatingGatePuzzleCollision +CheckForRotatingGatePuzzleCollision: @ 80C80A0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + bl GetCurrentMapRotatingGatePuzzleType + cmp r0, 0 + bne _080C80D4 + b _080C8172 +_080C80C2: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80C7FB8 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80C7A44 + b _080C8172 +_080C80D4: + movs r6, 0 + ldr r0, _080C8160 + ldrb r0, [r0] + cmp r6, r0 + bge _080C8172 + lsls r0, r4, 16 + asrs r7, r0, 16 +_080C80E2: + ldr r0, _080C8164 + ldr r1, [r0] + lsls r0, r6, 3 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x7 + ldrh r0, [r0, 0x2] + adds r0, 0x7 + lsls r0, 16 + lsrs r2, r0, 16 + lsls r1, 16 + asrs r4, r1, 16 + subs r0, r4, 0x2 + cmp r0, r7 + bgt _080C8168 + adds r0, r4, 0x1 + cmp r7, r0 + bgt _080C8168 + lsls r0, r2, 16 + asrs r3, r0, 16 + subs r1, r3, 0x2 + mov r2, r8 + lsls r0, r2, 16 + asrs r2, r0, 16 + cmp r1, r2 + bgt _080C8168 + adds r0, r3, 0x1 + cmp r2, r0 + bgt _080C8168 + subs r1, r7, r4 + adds r1, 0x2 + subs r2, r3 + adds r2, 0x2 + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + mov r0, r9 + bl sub_80C7FEC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080C8168 + lsrs r5, r0, 4 + movs r1, 0xF + ands r1, r0 + lsls r0, r6, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80C7F64 + cmp r0, 0 + beq _080C8168 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80C7E8C + cmp r0, 0 + bne _080C80C2 + movs r0, 0x1 + b _080C8174 + .align 2, 0 +_080C8160: .4byte gUnknown_02038804 +_080C8164: .4byte gUnknown_02038800 +_080C8168: + adds r6, 0x1 + ldr r0, _080C8180 + ldrb r0, [r0] + cmp r6, r0 + blt _080C80E2 +_080C8172: + movs r0, 0 +_080C8174: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080C8180: .4byte gUnknown_02038804 + thumb_func_end CheckForRotatingGatePuzzleCollision + + thumb_func_start GetSafariZoneFlag +GetSafariZoneFlag: @ 80C8184 + push {lr} + ldr r0, _080C8194 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080C8194: .4byte 0x0000082c + thumb_func_end GetSafariZoneFlag + + thumb_func_start SetSafariZoneFlag +SetSafariZoneFlag: @ 80C8198 + push {lr} + ldr r0, _080C81A4 + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_080C81A4: .4byte 0x0000082c + thumb_func_end SetSafariZoneFlag + + thumb_func_start ResetSafariZoneFlag +ResetSafariZoneFlag: @ 80C81A8 + push {lr} + ldr r0, _080C81B4 + bl FlagReset + pop {r0} + bx r0 + .align 2, 0 +_080C81B4: .4byte 0x0000082c + thumb_func_end ResetSafariZoneFlag + + thumb_func_start sub_80C81B8 +sub_80C81B8: @ 80C81B8 + push {lr} + movs r0, 0x11 + bl sav12_xor_increment + bl SetSafariZoneFlag + bl sub_80C82D8 + ldr r1, _080C81DC + movs r0, 0x1E + strb r0, [r1] + ldr r1, _080C81E0 + movs r2, 0xFA + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080C81DC: .4byte gUnknown_02038808 +_080C81E0: .4byte gUnknown_0203880A + thumb_func_end sub_80C81B8 + + thumb_func_start sub_80C81E4 +sub_80C81E4: @ 80C81E4 + push {lr} + bl ResetSafariZoneFlag + bl sub_80C82D8 + ldr r1, _080C8200 + movs r0, 0 + strb r0, [r1] + ldr r1, _080C8204 + movs r0, 0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080C8200: .4byte gUnknown_02038808 +_080C8204: .4byte gUnknown_0203880A + thumb_func_end sub_80C81E4 + + thumb_func_start safari_step +safari_step: @ 80C8208 + push {lr} + bl GetSafariZoneFlag + cmp r0, 0 + beq _080C8224 + bl sub_80C8508 + ldr r1, _080C8228 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + beq _080C822C +_080C8224: + movs r0, 0 + b _080C8234 + .align 2, 0 +_080C8228: .4byte gUnknown_0203880A +_080C822C: + ldr r0, _080C8238 + bl ScriptContext1_SetupScript + movs r0, 0x1 +_080C8234: + pop {r1} + bx r1 + .align 2, 0 +_080C8238: .4byte gUnknown_081C3448 + thumb_func_end safari_step + + thumb_func_start sub_80C823C +sub_80C823C: @ 80C823C + push {lr} + ldr r0, _080C8248 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080C8248: .4byte gUnknown_081C342D + thumb_func_end sub_80C823C + + thumb_func_start sub_80C824C +sub_80C824C: @ 80C824C + push {lr} + ldr r0, _080C8260 + ldrb r0, [r0] + cmp r0, 0 + beq _080C8268 + ldr r0, _080C8264 + bl SetMainCallback2 + b _080C82B0 + .align 2, 0 +_080C8260: .4byte gUnknown_02038808 +_080C8264: .4byte c2_exit_to_overworld_2_switch +_080C8268: + ldr r0, _080C8288 + ldrb r0, [r0] + cmp r0, 0x8 + bne _080C829C + ldr r0, _080C828C + bl ScriptContext2_RunNewScript + bl warp_in + ldr r1, _080C8290 + ldr r0, _080C8294 + str r0, [r1] + ldr r0, _080C8298 + bl SetMainCallback2 + b _080C82B0 + .align 2, 0 +_080C8288: .4byte gUnknown_02024D26 +_080C828C: .4byte gUnknown_081C340A +_080C8290: .4byte gUnknown_0300485C +_080C8294: .4byte sub_8080E44 +_080C8298: .4byte CB2_LoadMap +_080C829C: + cmp r0, 0x7 + bne _080C82B0 + ldr r0, _080C82B4 + bl ScriptContext1_SetupScript + bl ScriptContext1_Stop + ldr r0, _080C82B8 + bl SetMainCallback2 +_080C82B0: + pop {r0} + bx r0 + .align 2, 0 +_080C82B4: .4byte gUnknown_081C3459 +_080C82B8: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_80C824C + + thumb_func_start sub_80C82BC +sub_80C82BC: @ 80C82BC + push {lr} + lsls r0, 24 + lsrs r0, 20 + ldr r1, _080C82D4 + adds r0, r1 + movs r1, 0 + movs r2, 0x10 + bl memset + pop {r0} + bx r0 + .align 2, 0 +_080C82D4: .4byte gUnknown_0203880C + thumb_func_end sub_80C82BC + + thumb_func_start sub_80C82D8 +sub_80C82D8: @ 80C82D8 + push {lr} + ldr r0, _080C82E8 + movs r1, 0 + movs r2, 0xA0 + bl memset + pop {r0} + bx r0 + .align 2, 0 +_080C82E8: .4byte gUnknown_0203880C + thumb_func_end sub_80C82D8 + + thumb_func_start sub_80C82EC +sub_80C82EC: @ 80C82EC + push {r4-r6,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + movs r3, 0 + adds r5, r4, 0 + ldr r4, _080C8344 +_080C8302: + ldr r1, _080C8348 + lsls r0, r3, 4 + adds r2, r0, r1 + movs r1, 0x5 + ldrsb r1, [r4, r1] + movs r0, 0x4 + ldrsb r0, [r2, r0] + cmp r1, r0 + bne _080C8358 + mov r0, sp + movs r6, 0 + ldrsh r1, [r2, r6] + movs r6, 0 + ldrsh r0, [r0, r6] + cmp r1, r0 + bne _080C8358 + movs r0, 0x2 + ldrsh r1, [r2, r0] + movs r6, 0 + ldrsh r0, [r5, r6] + cmp r1, r0 + bne _080C8358 + ldr r0, _080C834C + strh r3, [r0] + ldr r1, _080C8350 + ldrb r0, [r2, 0x8] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, _080C8354 + bl StringCopy + b _080C836A + .align 2, 0 +_080C8344: .4byte gSaveBlock1 +_080C8348: .4byte gUnknown_0203880C +_080C834C: .4byte gScriptResult +_080C8350: .4byte gUnknown_083F7EB8 +_080C8354: .4byte gStringVar1 +_080C8358: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x9 + bls _080C8302 + ldr r1, _080C8374 + ldr r2, _080C8378 + adds r0, r2, 0 + strh r0, [r1] +_080C836A: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C8374: .4byte gScriptResult +_080C8378: .4byte 0x0000ffff + thumb_func_end sub_80C82EC + + thumb_func_start sub_80C837C +sub_80C837C: @ 80C837C + push {r4-r7,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl PlayerGetDestCoords + movs r5, 0 + adds r6, r4, 0 + ldr r0, _080C83E8 + movs r7, 0x5 + ldrsb r7, [r0, r7] + mov r4, sp + ldr r0, _080C83EC + mov r12, r0 +_080C839C: + lsls r0, r5, 4 + mov r1, r12 + adds r2, r0, r1 + movs r0, 0x4 + ldrsb r0, [r2, r0] + cmp r7, r0 + bne _080C83F4 + ldrh r0, [r4] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4] + adds r3, r6, 0 + ldrh r0, [r3] + ldrh r1, [r2, 0x2] + subs r0, r1 + strh r0, [r3] + movs r2, 0 + ldrsh r0, [r4, r2] + cmp r0, 0 + bge _080C83C8 + negs r0, r0 + strh r0, [r4] +_080C83C8: + movs r2, 0 + ldrsh r0, [r3, r2] + cmp r0, 0 + bge _080C83D4 + negs r0, r0 + strh r0, [r3] +_080C83D4: + movs r2, 0 + ldrsh r0, [r4, r2] + movs r2, 0 + ldrsh r1, [r6, r2] + adds r0, r1 + cmp r0, 0x5 + bgt _080C83F4 + ldr r0, _080C83F0 + strh r5, [r0] + b _080C8406 + .align 2, 0 +_080C83E8: .4byte gSaveBlock1 +_080C83EC: .4byte gUnknown_0203880C +_080C83F0: .4byte gScriptResult +_080C83F4: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x9 + bls _080C839C + ldr r1, _080C8410 + ldr r2, _080C8414 + adds r0, r2, 0 + strh r0, [r1] +_080C8406: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C8410: .4byte gScriptResult +_080C8414: .4byte 0x0000ffff + thumb_func_end sub_80C837C + + thumb_func_start unref_sub_80C8418 +unref_sub_80C8418: @ 80C8418 + push {lr} + bl sub_80C82EC + ldr r2, _080C8434 + ldrh r1, [r2] + ldr r0, _080C8438 + cmp r1, r0 + beq _080C8440 + adds r0, r1, 0 + lsls r0, 4 + ldr r1, _080C843C + adds r0, r1 + b _080C8442 + .align 2, 0 +_080C8434: .4byte gScriptResult +_080C8438: .4byte 0x0000ffff +_080C843C: .4byte gUnknown_02038814 +_080C8440: + movs r0, 0 +_080C8442: + pop {r1} + bx r1 + thumb_func_end unref_sub_80C8418 + + thumb_func_start sub_80C8448 +sub_80C8448: @ 80C8448 + push {lr} + bl sub_80C837C + ldr r2, _080C8464 + ldrh r1, [r2] + ldr r0, _080C8468 + cmp r1, r0 + beq _080C8470 + adds r0, r1, 0 + lsls r0, 4 + ldr r1, _080C846C + adds r0, r1 + b _080C8472 + .align 2, 0 +_080C8464: .4byte gScriptResult +_080C8468: .4byte 0x0000ffff +_080C846C: .4byte gUnknown_02038814 +_080C8470: + movs r0, 0 +_080C8472: + pop {r1} + bx r1 + thumb_func_end sub_80C8448 + + thumb_func_start sub_80C8478 +sub_80C8478: @ 80C8478 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + movs r2, 0 + ldr r3, _080C84E8 + mov r6, sp + adds r6, 0x2 + ldr r7, _080C84EC + movs r1, 0x8 + adds r1, r3 + mov r9, r1 + movs r4, 0xFF + lsls r4, 3 + adds r1, r7, r4 + lsrs r0, 21 + adds r0, r1 + mov r8, r0 +_080C84A0: + lsls r5, r2, 4 + adds r4, r5, r3 + movs r0, 0x4 + ldrsb r0, [r4, r0] + cmp r0, 0 + bne _080C84F0 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C84F0 + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C84F0 + mov r0, sp + adds r1, r6, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + ldrb r0, [r7, 0x5] + strb r0, [r4, 0x4] + mov r3, r9 + adds r2, r5, r3 + mov r3, r8 + ldr r0, [r3] + ldr r1, [r3, 0x4] + str r0, [r2] + str r1, [r2, 0x4] + movs r0, 0x64 + strb r0, [r4, 0x5] + mov r0, sp + ldrh r0, [r0] + strh r0, [r4] + ldrh r0, [r6] + strh r0, [r4, 0x2] + b _080C84FA + .align 2, 0 +_080C84E8: .4byte gUnknown_0203880C +_080C84EC: .4byte gSaveBlock1 +_080C84F0: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x9 + bls _080C84A0 +_080C84FA: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C8478 + + thumb_func_start sub_80C8508 +sub_80C8508: @ 80C8508 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _080C8538 +_080C850E: + lsls r0, r4, 4 + adds r1, r0, r5 + ldrb r0, [r1, 0x5] + cmp r0, 0 + beq _080C8528 + subs r0, 0x1 + strb r0, [r1, 0x5] + lsls r0, 24 + cmp r0, 0 + bne _080C8528 + adds r0, r4, 0 + bl sub_80C82BC +_080C8528: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _080C850E + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C8538: .4byte gUnknown_0203880C + thumb_func_end sub_80C8508 + + thumb_func_start unref_sub_80C853C +unref_sub_80C853C: @ 80C853C + push {lr} + bl sub_80C82EC + ldr r3, _080C8564 + ldrh r1, [r3] + ldr r0, _080C8568 + cmp r1, r0 + beq _080C8574 + ldr r0, _080C856C + ldr r2, _080C8570 + lsls r1, 4 + adds r1, r2 + ldrb r1, [r1, 0x5] + movs r2, 0x2 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + movs r0, 0x1 + b _080C8576 + .align 2, 0 +_080C8564: .4byte gScriptResult +_080C8568: .4byte 0x0000ffff +_080C856C: .4byte gStringVar2 +_080C8570: .4byte gUnknown_0203880C +_080C8574: + movs r0, 0 +_080C8576: + pop {r1} + bx r1 + thumb_func_end unref_sub_80C853C + + thumb_func_start sub_80C857C +sub_80C857C: @ 80C857C + push {r4,r5,lr} + adds r2, r0, 0 + lsls r4, r1, 16 + lsrs r4, 16 + ldr r5, _080C85A8 + adds r0, r5, 0 + adds r1, r2, 0 + adds r2, r4, 0 + bl memcpy + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + adds r1, r5, 0 + adds r2, r4, 0 + bl SendBlock + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C85A8: .4byte 0x0201e000 + thumb_func_end sub_80C857C + + thumb_func_start sub_80C85AC +sub_80C85AC: @ 80C85AC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x80 + lsls r1, 17 + lsls r1, r0 + lsrs r4, r1, 24 + bl GetBlockRecievedStatus + adds r1, r4, 0 + ands r1, r0 + cmp r1, 0 + beq _080C85D0 + adds r0, r4, 0 + bl ResetBlockReceivedFlag + movs r0, 0x1 + b _080C85D2 +_080C85D0: + movs r0, 0 +_080C85D2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C85AC + + thumb_func_start sub_80C85D8 +sub_80C85D8: @ 80C85D8 + push {r4,lr} + movs r4, 0 +_080C85DC: + bl GetBlockRecievedStatus + lsls r0, 24 + lsrs r0, 24 + asrs r0, r4 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080C85F2 + movs r0, 0 + b _080C85FE +_080C85F2: + adds r4, 0x1 + cmp r4, 0x3 + ble _080C85DC + bl ResetBlockReceivedFlags + movs r0, 0x1 +_080C85FE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C85D8 + + thumb_func_start sub_80C8604 +sub_80C8604: @ 80C8604 + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + ldr r5, _080C8638 + ldr r6, _080C863C + ldr r4, _080C8640 + movs r3, 0xFF +_080C8614: + lsls r0, r1, 8 + adds r0, r4 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _080C8614 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r5 + movs r1, 0 + strh r1, [r0, 0x8] + str r6, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C8638: .4byte gTasks +_080C863C: .4byte sub_80C8644 +_080C8640: .4byte gBlockRecvBuffer + thumb_func_end sub_80C8604 + + thumb_func_start sub_80C8644 +sub_80C8644: @ 80C8644 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C8658 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080C865C + str r0, [r1] + bx lr + .align 2, 0 +_080C8658: .4byte gTasks +_080C865C: .4byte sub_80C8660 + thumb_func_end sub_80C8644 + + thumb_func_start sub_80C8660 +sub_80C8660: @ 80C8660 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C8694 + ldrb r0, [r0] + cmp r0, 0 + beq _080C868E + bl GetMultiplayerId + ldr r1, _080C8698 + strb r0, [r1] + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _080C868E + ldr r1, _080C869C + movs r0, 0x1 + strb r0, [r1] + adds r0, r4, 0 + bl SwitchTaskToFollowupFunc +_080C868E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8694: .4byte gReceivedRemoteLinkPlayers +_080C8698: .4byte gUnknown_02038695 +_080C869C: .4byte gUnknown_0203869A + thumb_func_end sub_80C8660 + + thumb_func_start sub_80C86A0 +sub_80C86A0: @ 80C86A0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r5, 0x2 + ldrb r0, [r4] + cmp r0, 0xFC + bne _080C86B6 + ldrb r0, [r4, 0x1] + cmp r0, 0x15 + bne _080C86B6 + movs r0, 0x2 + b _080C872C +_080C86B6: + adds r0, r4, 0 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5 + bhi _080C872A + ldrb r0, [r4] + cmp r0, 0xFF + beq _080C872A +_080C86CA: + ldrb r1, [r4] + adds r0, r1, 0 + adds r0, 0x45 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x33 + bls _080C871E + adds r0, r1, 0 + adds r0, 0x5F + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x9 + bls _080C871E + adds r0, r1, 0 + cmp r0, 0 + beq _080C871E + cmp r0, 0xAD + beq _080C871E + cmp r0, 0xB8 + beq _080C871E + cmp r0, 0xAB + beq _080C871E + cmp r0, 0xAC + beq _080C871E + cmp r0, 0xB5 + beq _080C871E + cmp r0, 0xB6 + beq _080C871E + cmp r0, 0xBA + beq _080C871E + cmp r0, 0xAE + beq _080C871E + cmp r0, 0xB0 + beq _080C871E + cmp r0, 0xB1 + beq _080C871E + cmp r0, 0xB2 + beq _080C871E + cmp r0, 0xB3 + beq _080C871E + cmp r0, 0xB1 + bne _080C8728 +_080C871E: + adds r4, 0x1 + ldrb r0, [r4] + cmp r0, 0xFF + bne _080C86CA + b _080C872A +_080C8728: + movs r5, 0x1 +_080C872A: + adds r0, r5, 0 +_080C872C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80C86A0 + + thumb_func_start sub_80C8734 +sub_80C8734: @ 80C8734 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r1, _080C8768 + lsls r5, r0, 2 + adds r0, r5, r0 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C876C + cmp r0, 0x1 + beq _080C87D0 + movs r0, 0 + strh r0, [r4, 0x8] + mov r0, r9 + bl SwitchTaskToFollowupFunc + b _080C8896 + .align 2, 0 +_080C8768: .4byte gTasks +_080C876C: + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080C87A8 + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _080C8782 + b _080C8896 +_080C8782: + ldr r0, _080C879C + ldr r1, _080C87A0 + ldrb r1, [r1] + lsls r1, 6 + ldr r2, _080C87A4 + adds r1, r2 + movs r2, 0x40 + bl memcpy + movs r0, 0x2 + bl sub_8007E9C + b _080C87BA + .align 2, 0 +_080C879C: .4byte gBlockSendBuffer +_080C87A0: .4byte gUnknown_02038695 +_080C87A4: .4byte gUnknown_02038570 +_080C87A8: + ldr r0, _080C87C4 + ldr r1, _080C87C8 + ldrb r1, [r1] + lsls r1, 6 + ldr r2, _080C87CC + adds r1, r2 + movs r2, 0x40 + bl memcpy +_080C87BA: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C8896 + .align 2, 0 +_080C87C4: .4byte gBlockSendBuffer +_080C87C8: .4byte gUnknown_02038695 +_080C87CC: .4byte gUnknown_02038570 +_080C87D0: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8896 + movs r7, 0 + str r5, [sp] + ldr r0, _080C8818 + ldr r6, _080C881C + movs r5, 0 + mov r10, r0 + movs r2, 0xFF + mov r8, r2 +_080C87EA: + lsls r1, r7, 8 + ldr r0, _080C8820 + adds r1, r0 + mov r0, r10 + movs r2, 0x40 + bl memcpy + ldr r0, _080C8824 + adds r4, r5, r0 + ldrh r0, [r6, 0x1A] + cmp r0, 0x1 + bne _080C8828 + adds r0, r4, 0 + bl sub_80C86A0 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl ConvertInternationalString + b _080C883E + .align 2, 0 +_080C8818: .4byte gUnknown_02038570 +_080C881C: .4byte gLinkPlayers +_080C8820: .4byte gBlockRecvBuffer +_080C8824: .4byte gUnknown_02038572 +_080C8828: + ldrb r0, [r4, 0xA] + cmp r0, 0xFC + bne _080C8838 + adds r0, r4, 0 + movs r1, 0x1 + bl ConvertInternationalString + b _080C883E +_080C8838: + strb r0, [r4, 0x5] + mov r1, r8 + strb r1, [r4, 0xA] +_080C883E: + ldr r0, _080C886C + adds r4, r5, r0 + ldrh r0, [r6, 0x1A] + cmp r0, 0x1 + bne _080C8870 + mov r2, r8 + strb r2, [r4, 0x7] + ldrb r0, [r4, 0x4] + strb r0, [r4, 0x6] + ldrb r0, [r4, 0x3] + strb r0, [r4, 0x5] + ldrb r0, [r4, 0x2] + strb r0, [r4, 0x4] + ldrb r0, [r4, 0x1] + strb r0, [r4, 0x3] + ldrb r0, [r4] + strb r0, [r4, 0x2] + movs r0, 0x15 + strb r0, [r4, 0x1] + movs r0, 0xFC + strb r0, [r4] + b _080C8878 + .align 2, 0 +_080C886C: .4byte gUnknown_0203857D +_080C8870: + ldrb r0, [r4, 0x7] + strb r0, [r4, 0x5] + mov r0, r8 + strb r0, [r4, 0x7] +_080C8878: + adds r6, 0x1C + adds r5, 0x40 + movs r1, 0x40 + add r10, r1 + adds r7, 0x1 + cmp r7, 0x3 + ble _080C87EA + ldr r0, _080C88A8 + ldr r1, [sp] + add r1, r9 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C8896: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C88A8: .4byte gTasks + thumb_func_end sub_80C8734 + + thumb_func_start sub_80C88AC +sub_80C88AC: @ 80C88AC + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080C88D4 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080C88D8 + cmp r0, 0x1 + beq _080C88FC + movs r0, 0 + strh r0, [r5, 0x8] + adds r0, r2, 0 + bl SwitchTaskToFollowupFunc + b _080C8924 + .align 2, 0 +_080C88D4: .4byte gTasks +_080C88D8: + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080C891E + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8924 + ldr r0, _080C88F8 + movs r1, 0x4 + bl sub_80C857C + b _080C891E + .align 2, 0 +_080C88F8: .4byte gRngValue +_080C88FC: + movs r0, 0 + bl sub_80C85AC + lsls r0, 24 + cmp r0, 0 + beq _080C8924 + ldr r0, _080C892C + ldr r4, _080C8930 + adds r1, r4, 0 + movs r2, 0x4 + bl memcpy + ldr r0, _080C8934 + adds r1, r4, 0 + movs r2, 0x4 + bl memcpy +_080C891E: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] +_080C8924: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C892C: .4byte gRngValue +_080C8930: .4byte gBlockRecvBuffer +_080C8934: .4byte gUnknown_03005D28 + thumb_func_end sub_80C88AC + + thumb_func_start sub_80C8938 +sub_80C8938: @ 80C8938 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080C8968 + mov r8, r0 + lsls r6, r5, 2 + adds r0, r6, r5 + lsls r7, r0, 3 + mov r1, r8 + adds r4, r7, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C896C + cmp r0, 0x1 + beq _080C8998 + movs r0, 0 + strh r0, [r4, 0x8] + adds r0, r5, 0 + bl SwitchTaskToFollowupFunc + b _080C89CE + .align 2, 0 +_080C8968: .4byte gTasks +_080C896C: + ldr r1, _080C8994 + ldrh r0, [r4, 0x1A] + strb r0, [r1] + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080C898C + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C89CE + movs r0, 0x2 + bl sub_8007E9C +_080C898C: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C89CE + .align 2, 0 +_080C8994: .4byte gBlockSendBuffer +_080C8998: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C89CE + movs r3, 0 + mov r12, r8 + adds r1, r6, 0 + ldr r4, _080C89D8 + mov r0, r12 + adds r0, 0xA + adds r2, r7, r0 + movs r6, 0x80 + lsls r6, 1 +_080C89B4: + ldrh r0, [r4] + strh r0, [r2] + adds r4, r6 + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x3 + ble _080C89B4 + adds r1, r5 + lsls r1, 3 + add r1, r12 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C89CE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C89D8: .4byte gBlockRecvBuffer + thumb_func_end sub_80C8938 + + thumb_func_start sub_80C89DC +sub_80C89DC: @ 80C89DC + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080C8A04 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C8A08 + cmp r0, 0x1 + beq _080C8A20 + movs r0, 0 + strh r0, [r4, 0x8] + adds r0, r2, 0 + bl SwitchTaskToFollowupFunc + b _080C8A30 + .align 2, 0 +_080C8A04: .4byte gTasks +_080C8A08: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8A30 + ldr r0, _080C8A1C + movs r1, 0x1 + bl sub_80C857C + b _080C8A2A + .align 2, 0 +_080C8A1C: .4byte gUnknown_02038695 +_080C8A20: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8A30 +_080C8A2A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080C8A30: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C89DC + + thumb_func_start sub_80C8A38 +sub_80C8A38: @ 80C8A38 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r7, _080C8A60 + lsls r6, r5, 2 + adds r0, r6, r5 + lsls r0, 3 + adds r4, r0, r7 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C8A64 + cmp r0, 0x1 + beq _080C8A94 + movs r0, 0 + strh r0, [r4, 0x8] + adds r0, r5, 0 + bl SwitchTaskToFollowupFunc + b _080C8AC2 + .align 2, 0 +_080C8A60: .4byte gTasks +_080C8A64: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8AC2 + ldr r0, _080C8A8C + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r1, _080C8A90 + adds r0, r1 + movs r1, 0x2 + bl sub_80C857C + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C8AC2 + .align 2, 0 +_080C8A8C: .4byte gUnknown_02038695 +_080C8A90: .4byte 0x02019266 +_080C8A94: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8AC2 + ldr r1, _080C8AC8 + ldr r3, _080C8ACC + movs r4, 0x80 + lsls r4, 1 + movs r2, 0x3 +_080C8AA8: + ldrh r0, [r1] + strh r0, [r3] + adds r1, r4 + adds r3, 0x1C + subs r2, 0x1 + cmp r2, 0 + bge _080C8AA8 + adds r1, r6, r5 + lsls r1, 3 + adds r1, r7 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C8AC2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C8AC8: .4byte gBlockRecvBuffer +_080C8ACC: .4byte 0x02019266 + thumb_func_end sub_80C8A38 + + thumb_func_start sub_80C8AD0 +sub_80C8AD0: @ 80C8AD0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080C8AF8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x8 + ldrsh r0, [r2, r3] + adds r3, r1, 0 + cmp r0, 0xB + bls _080C8AEC + b _080C8C70 +_080C8AEC: + lsls r0, 2 + ldr r1, _080C8AFC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C8AF8: .4byte gTasks +_080C8AFC: .4byte _080C8B00 + .align 2, 0 +_080C8B00: + .4byte _080C8B30 + .4byte _080C8B4C + .4byte _080C8B74 + .4byte _080C8B98 + .4byte _080C8BB0 + .4byte _080C8B74 + .4byte _080C8BD8 + .4byte _080C8BF0 + .4byte _080C8B74 + .4byte _080C8C18 + .4byte _080C8C30 + .4byte _080C8B74 +_080C8B30: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _080C8B3C + b _080C8C7A +_080C8B3C: + ldr r0, _080C8B48 + movs r1, 0x8 + bl sub_80C857C + b _080C8C4C + .align 2, 0 +_080C8B48: .4byte gUnknown_02038678 +_080C8B4C: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + bne _080C8B58 + b _080C8C7A +_080C8B58: + ldr r0, _080C8B68 + ldr r1, _080C8B6C + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8B70 + adds r1, r2 + movs r2, 0x8 + b _080C8C48 + .align 2, 0 +_080C8B68: .4byte gUnknown_02038678 +_080C8B6C: .4byte gUnknown_0203869B +_080C8B70: .4byte gBlockRecvBuffer +_080C8B74: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r3 + ldrh r0, [r2, 0xA] + adds r1, r0, 0x1 + strh r1, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bgt _080C8B8C + b _080C8C7A +_080C8B8C: + movs r0, 0 + strh r0, [r2, 0xA] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080C8C7A +_080C8B98: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8BAC + movs r1, 0x8 + bl sub_80C857C + b _080C8C4C + .align 2, 0 +_080C8BAC: .4byte gUnknown_02038680 +_080C8BB0: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8BCC + ldr r1, _080C8BD0 + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8BD4 + adds r1, r2 + movs r2, 0x8 + b _080C8C48 + .align 2, 0 +_080C8BCC: .4byte gUnknown_02038680 +_080C8BD0: .4byte gUnknown_0203869B +_080C8BD4: .4byte gBlockRecvBuffer +_080C8BD8: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8BEC + movs r1, 0x8 + bl sub_80C857C + b _080C8C4C + .align 2, 0 +_080C8BEC: .4byte gUnknown_02038688 +_080C8BF0: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8C0C + ldr r1, _080C8C10 + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8C14 + adds r1, r2 + movs r2, 0x8 + b _080C8C48 + .align 2, 0 +_080C8C0C: .4byte gUnknown_02038688 +_080C8C10: .4byte gUnknown_0203869B +_080C8C14: .4byte gBlockRecvBuffer +_080C8C18: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8C2C + movs r1, 0x4 + bl sub_80C857C + b _080C8C4C + .align 2, 0 +_080C8C2C: .4byte gUnknown_02038690 +_080C8C30: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8C60 + ldr r1, _080C8C64 + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8C68 + adds r1, r2 + movs r2, 0x4 +_080C8C48: + bl memcpy +_080C8C4C: + ldr r1, _080C8C6C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080C8C7A + .align 2, 0 +_080C8C60: .4byte gUnknown_02038690 +_080C8C64: .4byte gUnknown_0203869B +_080C8C68: .4byte gBlockRecvBuffer +_080C8C6C: .4byte gTasks +_080C8C70: + movs r0, 0 + strh r0, [r2, 0x8] + adds r0, r4, 0 + bl SwitchTaskToFollowupFunc +_080C8C7A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C8AD0 + + thumb_func_start sub_80C8C80 +sub_80C8C80: @ 80C8C80 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080C8CA8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x8 + ldrsh r0, [r2, r3] + adds r3, r1, 0 + cmp r0, 0xB + bls _080C8C9C + b _080C8E0C +_080C8C9C: + lsls r0, 2 + ldr r1, _080C8CAC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C8CA8: .4byte gTasks +_080C8CAC: .4byte _080C8CB0 + .align 2, 0 +_080C8CB0: + .4byte _080C8CE0 + .4byte _080C8CFC + .4byte _080C8D24 + .4byte _080C8D46 + .4byte _080C8D60 + .4byte _080C8D24 + .4byte _080C8D88 + .4byte _080C8DA0 + .4byte _080C8D24 + .4byte _080C8DB4 + .4byte _080C8DCC + .4byte _080C8D24 +_080C8CE0: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _080C8CEC + b _080C8E16 +_080C8CEC: + ldr r0, _080C8CF8 + movs r1, 0x70 + bl sub_80C857C + b _080C8DE8 + .align 2, 0 +_080C8CF8: .4byte 0x02019260 +_080C8CFC: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + bne _080C8D08 + b _080C8E16 +_080C8D08: + ldr r0, _080C8D18 + ldr r1, _080C8D1C + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8D20 + adds r1, r2 + movs r2, 0x70 + b _080C8DE4 + .align 2, 0 +_080C8D18: .4byte 0x02019260 +_080C8D1C: .4byte gUnknown_0203869B +_080C8D20: .4byte gBlockRecvBuffer +_080C8D24: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r3 + ldrh r0, [r2, 0xA] + adds r1, r0, 0x1 + strh r1, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + ble _080C8E16 + movs r0, 0 + strh r0, [r2, 0xA] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080C8E16 +_080C8D46: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8D5C + movs r1, 0x14 + bl sub_80C857C + b _080C8DE8 + .align 2, 0 +_080C8D5C: .4byte 0x020192d0 +_080C8D60: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8D7C + ldr r1, _080C8D80 + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8D84 + adds r1, r2 + movs r2, 0x14 + b _080C8DE4 + .align 2, 0 +_080C8D7C: .4byte 0x020192d0 +_080C8D80: .4byte gUnknown_0203869B +_080C8D84: .4byte gBlockRecvBuffer +_080C8D88: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8D9C + movs r1, 0x4 + bl sub_80C857C + b _080C8DE8 + .align 2, 0 +_080C8D9C: .4byte 0x02019328 +_080C8DA0: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8DB0 + b _080C8DD8 + .align 2, 0 +_080C8DB0: .4byte 0x02019328 +_080C8DB4: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8DC8 + movs r1, 0x4 + bl sub_80C857C + b _080C8DE8 + .align 2, 0 +_080C8DC8: .4byte gUnknown_02038696 +_080C8DCC: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8DFC +_080C8DD8: + ldr r1, _080C8E00 + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8E04 + adds r1, r2 + movs r2, 0x4 +_080C8DE4: + bl memcpy +_080C8DE8: + ldr r1, _080C8E08 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080C8E16 + .align 2, 0 +_080C8DFC: .4byte gUnknown_02038696 +_080C8E00: .4byte gUnknown_0203869B +_080C8E04: .4byte gBlockRecvBuffer +_080C8E08: .4byte gTasks +_080C8E0C: + movs r0, 0 + strh r0, [r2, 0x8] + adds r0, r4, 0 + bl SwitchTaskToFollowupFunc +_080C8E16: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C8C80 + + thumb_func_start sub_80C8E1C +sub_80C8E1C: @ 80C8E1C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080C8E4C + mov r8, r0 + lsls r6, r5, 2 + adds r0, r6, r5 + lsls r7, r0, 3 + mov r1, r8 + adds r4, r7, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C8E50 + cmp r0, 0x1 + beq _080C8E7C + movs r0, 0 + strh r0, [r4, 0x8] + adds r0, r5, 0 + bl SwitchTaskToFollowupFunc + b _080C8EAE + .align 2, 0 +_080C8E4C: .4byte gTasks +_080C8E50: + ldr r1, _080C8E78 + movs r0, 0x64 + strb r0, [r1] + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080C8E70 + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8EAE + movs r0, 0x2 + bl sub_8007E9C +_080C8E70: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C8EAE + .align 2, 0 +_080C8E78: .4byte gBlockSendBuffer +_080C8E7C: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8EAE + ldr r1, _080C8EB8 + mov r0, r8 + adds r0, 0x12 + adds r2, r7, r0 + movs r4, 0x80 + lsls r4, 1 + movs r3, 0x3 +_080C8E94: + ldrh r0, [r1] + strh r0, [r2] + adds r1, r4 + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C8E94 + adds r1, r6, r5 + lsls r1, 3 + add r1, r8 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C8EAE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C8EB8: .4byte gBlockRecvBuffer + thumb_func_end sub_80C8E1C + + thumb_func_start sub_80C8EBC +sub_80C8EBC: @ 80C8EBC + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080C8EE4 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C8EE8 + cmp r0, 0x1 + beq _080C8F00 + movs r0, 0 + strh r0, [r4, 0x8] + adds r0, r2, 0 + bl SwitchTaskToFollowupFunc + b _080C8F22 + .align 2, 0 +_080C8EE4: .4byte gTasks +_080C8EE8: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8F22 + ldr r0, _080C8EFC + movs r1, 0x8 + bl sub_80C857C + b _080C8F1C + .align 2, 0 +_080C8EFC: .4byte gUnknown_02038670 +_080C8F00: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8F22 + ldr r0, _080C8F28 + ldr r1, _080C8F2C + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8F30 + adds r1, r2 + movs r2, 0x8 + bl memcpy +_080C8F1C: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080C8F22: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8F28: .4byte gUnknown_02038670 +_080C8F2C: .4byte gUnknown_0203869B +_080C8F30: .4byte gBlockRecvBuffer + thumb_func_end sub_80C8EBC + + thumb_func_start sub_80C8F34 +sub_80C8F34: @ 80C8F34 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080C8F5C + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C8F60 + cmp r0, 0x1 + beq _080C8F78 + movs r0, 0 + strh r0, [r4, 0x8] + adds r0, r2, 0 + bl SwitchTaskToFollowupFunc + b _080C8F9A + .align 2, 0 +_080C8F5C: .4byte gTasks +_080C8F60: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8F9A + ldr r0, _080C8F74 + movs r1, 0x4 + bl sub_80C857C + b _080C8F94 + .align 2, 0 +_080C8F74: .4byte gUnknown_02038696 +_080C8F78: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8F9A + ldr r0, _080C8FA0 + ldr r1, _080C8FA4 + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8FA8 + adds r1, r2 + movs r2, 0x4 + bl memcpy +_080C8F94: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080C8F9A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8FA0: .4byte gUnknown_02038696 +_080C8FA4: .4byte gUnknown_0203869B +_080C8FA8: .4byte gBlockRecvBuffer + thumb_func_end sub_80C8F34 + + thumb_func_start sub_80C8FAC +sub_80C8FAC: @ 80C8FAC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080C8FD0 + ldrh r0, [r1] + cmp r0, 0xAF + bne _080C8FD8 + ldr r1, _080C8FD4 + lsls r2, r4, 2 + adds r0, r2, r4 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x26] + subs r0, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + b _080C8FE6 + .align 2, 0 +_080C8FD0: .4byte word_203855E +_080C8FD4: .4byte gTasks +_080C8FD8: + ldrh r0, [r1] + bl itemid_get_type + subs r0, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + lsls r2, r4, 2 +_080C8FE6: + ldr r0, _080C9008 + adds r1, r2, r4 + lsls r1, 3 + adds r1, r0 + ldr r2, _080C900C + lsls r0, r3, 2 + adds r0, r2 + ldr r2, [r0] + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + ldr r0, _080C9010 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9008: .4byte gTasks +_080C900C: .4byte gUnknown_083D61E4 +_080C9010: .4byte sub_80A5B00 + thumb_func_end sub_80C8FAC + + thumb_func_start unknown_ItemMenu_Confirm +unknown_ItemMenu_Confirm: @ 80C9014 + push {lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + bl sub_80C8FAC + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end unknown_ItemMenu_Confirm + + thumb_func_start sub_80C9038 +sub_80C9038: @ 80C9038 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80C8FAC + movs r0, 0x1 + movs r1, 0 + bl fade_screen + pop {r0} + bx r0 + thumb_func_end sub_80C9038 + + thumb_func_start SetUpItemUseOnFieldCallback +SetUpItemUseOnFieldCallback: @ 80C9050 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080C9078 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0x1 + beq _080C9084 + ldr r1, _080C907C + ldr r0, _080C9080 + str r0, [r1] + adds r0, r2, 0 + bl unknown_ItemMenu_Confirm + b _080C908E + .align 2, 0 +_080C9078: .4byte gTasks +_080C907C: .4byte gUnknown_0300485C +_080C9080: .4byte sub_80A5CC4 +_080C9084: + ldr r0, _080C9094 + ldr r1, [r0] + adds r0, r2, 0 + bl _call_via_r1 +_080C908E: + pop {r0} + bx r0 + .align 2, 0 +_080C9094: .4byte gUnknown_03005D00 + thumb_func_end SetUpItemUseOnFieldCallback + + thumb_func_start sub_80C9098 +sub_80C9098: @ 80C9098 + push {r4-r6,lr} + adds r4, r1, 0 + adds r1, r2, 0 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _080C90CC + adds r0, r5, 0 + bl StringExpandPlaceholders + cmp r4, 0 + bne _080C90D4 + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + ldr r2, _080C90D0 + adds r0, r6, 0 + adds r1, r5, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField + b _080C90E0 + .align 2, 0 +_080C90CC: .4byte gStringVar4 +_080C90D0: .4byte sub_80A5C48 +_080C90D4: + ldr r2, _080C90E8 + adds r0, r6, 0 + adds r1, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080C90E0: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C90E8: .4byte sub_80A5C9C + thumb_func_end sub_80C9098 + + thumb_func_start DisplayDadsAdviceCannotUseItemMessage +DisplayDadsAdviceCannotUseItemMessage: @ 80C90EC + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080C9100 + bl sub_80C9098 + pop {r0} + bx r0 + .align 2, 0 +_080C9100: .4byte gOtherText_DadsAdvice + thumb_func_end DisplayDadsAdviceCannotUseItemMessage + + thumb_func_start sub_80C9104 +sub_80C9104: @ 80C9104 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080C9118 + bl sub_80C9098 + pop {r0} + bx r0 + .align 2, 0 +_080C9118: .4byte gOtherText_CantGetOffBike + thumb_func_end sub_80C9104 + + thumb_func_start CheckIfItemIsTMHMOrEvolutionStone +CheckIfItemIsTMHMOrEvolutionStone: @ 80C911C + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl itemid_get_overworld_function + ldr r1, _080C9134 + cmp r0, r1 + bne _080C9138 + movs r0, 0x1 + b _080C914E + .align 2, 0 +_080C9134: .4byte ItemUseOutOfBattle_TMHM +_080C9138: + adds r0, r4, 0 + bl itemid_get_overworld_function + ldr r1, _080C9148 + cmp r0, r1 + beq _080C914C + movs r0, 0 + b _080C914E + .align 2, 0 +_080C9148: .4byte ItemUseOutOfBattle_EvolutionStone +_080C914C: + movs r0, 0x2 +_080C914E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end CheckIfItemIsTMHMOrEvolutionStone + + thumb_func_start sub_80C9154 +sub_80C9154: @ 80C9154 + push {r4,lr} + sub sp, 0x24 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C9188 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080C9180 + mov r1, sp + ldr r0, _080C918C + ldrh r0, [r0] + strh r0, [r1, 0x20] + ldr r1, _080C9190 + mov r0, sp + movs r2, 0 + bl sub_80F890C + adds r0, r4, 0 + bl DestroyTask +_080C9180: + add sp, 0x24 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9188: .4byte gPaletteFade +_080C918C: .4byte word_203855E +_080C9190: .4byte sub_80A5D04 + thumb_func_end sub_80C9154 + + thumb_func_start ItemUseOutOfBattle_Mail +ItemUseOutOfBattle_Mail: @ 80C9194 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _080C91C4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C91C8 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C91C4: .4byte gTasks +_080C91C8: .4byte sub_80C9154 + thumb_func_end ItemUseOutOfBattle_Mail + + thumb_func_start ItemUseOutOfBattle_Bike +ItemUseOutOfBattle_Bike: @ 80C91CC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl PlayerGetDestCoords + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C924C + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C9238 + adds r0, r4, 0 + bl MetatileBehavior_IsVerticalRail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C9238 + adds r0, r4, 0 + bl MetatileBehavior_IsHorizontalRail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C9238 + adds r0, r4, 0 + bl MetatileBehavior_IsIsolatedVerticalRail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C9238 + adds r0, r4, 0 + bl MetatileBehavior_IsIsolatedHorizontalRail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C9254 +_080C9238: + ldr r0, _080C9250 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrb r1, [r1, 0xC] + adds r0, r5, 0 + bl sub_80C9104 + b _080C928E + .align 2, 0 +_080C924C: .4byte 0x0000082b +_080C9250: .4byte gTasks +_080C9254: + bl sub_8053C44 + cmp r0, 0x1 + bne _080C927C + bl sub_80E5EF4 + lsls r0, 24 + cmp r0, 0 + bne _080C927C + ldr r1, _080C9274 + ldr r0, _080C9278 + str r0, [r1] + adds r0, r5, 0 + bl SetUpItemUseOnFieldCallback + b _080C928E + .align 2, 0 +_080C9274: .4byte gUnknown_03005D00 +_080C9278: .4byte ItemUseOnFieldCB_Bike +_080C927C: + ldr r0, _080C9298 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrb r1, [r1, 0xC] + adds r0, r5, 0 + bl DisplayDadsAdviceCannotUseItemMessage +_080C928E: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C9298: .4byte gTasks + thumb_func_end ItemUseOutOfBattle_Bike + + thumb_func_start ItemUseOnFieldCB_Bike +ItemUseOnFieldCB_Bike: @ 80C929C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080C92E0 + ldrh r0, [r4] + bl itemid_get_x28 + lsls r0, 24 + cmp r0, 0 + bne _080C92B6 + movs r0, 0x2 + bl GetOnOffBike +_080C92B6: + ldrh r0, [r4] + bl itemid_get_x28 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C92CA + movs r0, 0x4 + bl GetOnOffBike +_080C92CA: + bl sub_8064E2C + bl ScriptContext2_Disable + adds r0, r5, 0 + bl DestroyTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C92E0: .4byte word_203855E + thumb_func_end ItemUseOnFieldCB_Bike + + thumb_func_start CanFish +CanFish: @ 80C92E4 + push {r4-r6,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 16 + lsrs r6, r0, 16 + lsls r0, r6, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl MetatileBehavior_IsWaterfall + lsls r0, 24 + cmp r0, 0 + bne _080C936C + movs r0, 0x10 + bl TestPlayerAvatarFlags + lsls r0, 24 + cmp r0, 0 + bne _080C936C + movs r0, 0x8 + bl TestPlayerAvatarFlags + lsls r0, 24 + cmp r0, 0 + bne _080C933C + bl IsPlayerFacingSurfableFishableWater + lsls r0, 24 + cmp r0, 0 + beq _080C936C +_080C9338: + movs r0, 0x1 + b _080C936E +_080C933C: + adds r0, r5, 0 + bl MetatileBehavior_IsSurfableWaterOrUnderwater + lsls r0, 24 + cmp r0, 0 + beq _080C935C + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridIsImpassableAt + lsls r0, 24 + cmp r0, 0 + beq _080C9338 +_080C935C: + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_8057434 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C9338 +_080C936C: + movs r0, 0 +_080C936E: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end CanFish + + thumb_func_start ItemUseOutOfBattle_Rod +ItemUseOutOfBattle_Rod: @ 80C9378 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl CanFish + cmp r0, 0x1 + bne _080C939C + ldr r1, _080C9394 + ldr r0, _080C9398 + str r0, [r1] + adds r0, r4, 0 + bl SetUpItemUseOnFieldCallback + b _080C93AE + .align 2, 0 +_080C9394: .4byte gUnknown_03005D00 +_080C9398: .4byte ItemUseOnFieldCB_Rod +_080C939C: + ldr r0, _080C93B4 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrb r1, [r1, 0xC] + adds r0, r4, 0 + bl DisplayDadsAdviceCannotUseItemMessage +_080C93AE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C93B4: .4byte gTasks + thumb_func_end ItemUseOutOfBattle_Rod + + thumb_func_start ItemUseOnFieldCB_Rod +ItemUseOnFieldCB_Rod: @ 80C93B8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080C93DC + ldrh r0, [r0] + bl itemid_get_x28 + lsls r0, 24 + lsrs r0, 24 + bl StartFishing + adds r0, r4, 0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C93DC: .4byte word_203855E + thumb_func_end ItemUseOnFieldCB_Rod + + thumb_func_start ItemUseOutOfBattle_Itemfinder +ItemUseOutOfBattle_Itemfinder: @ 80C93E0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x27 + bl sav12_xor_increment + ldr r1, _080C9400 + ldr r0, _080C9404 + str r0, [r1] + adds r0, r4, 0 + bl SetUpItemUseOnFieldCallback + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9400: .4byte gUnknown_03005D00 +_080C9404: .4byte ItemUseOnFieldCB_Itemfinder + thumb_func_end ItemUseOutOfBattle_Itemfinder + + thumb_func_start ItemUseOnFieldCB_Itemfinder +ItemUseOnFieldCB_Itemfinder: @ 80C9408 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C9430 + ldr r0, [r0, 0x4] + adds r1, r4, 0 + bl ItemfinderCheckForHiddenItems + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C943C + ldr r0, _080C9434 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C9438 + str r0, [r1] + b _080C9448 + .align 2, 0 +_080C9430: .4byte gMapHeader +_080C9434: .4byte gTasks +_080C9438: .4byte sub_80C9458 +_080C943C: + ldr r1, _080C9450 + ldr r2, _080C9454 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080C9448: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9450: .4byte gOtherText_NoResponse +_080C9454: .4byte sub_80C9520 + thumb_func_end ItemUseOnFieldCB_Itemfinder + + thumb_func_start sub_80C9458 +sub_80C9458: @ 80C9458 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r6, r5, 2 + adds r0, r6, r5 + lsls r7, r0, 3 + ldr r0, _080C94AC + mov r8, r0 + adds r4, r7, r0 + movs r1, 0x6 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C950C + movs r2, 0x8 + ldrsh r0, [r4, r2] + cmp r0, 0x4 + bne _080C9500 + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl sub_80C9908 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080C94B8 + ldr r1, _080C94B0 + subs r0, 0x1 + adds r0, r1 + ldrb r0, [r0] + bl sub_80C997C + mov r0, r8 + subs r0, 0x8 + adds r0, r7, r0 + ldr r1, _080C94B4 + str r1, [r0] + b _080C9516 + .align 2, 0 +_080C94AC: .4byte gUnknown_03004B28 +_080C94B0: .4byte gUnknown_083D61F0 +_080C94B4: .4byte sub_80C99EC +_080C94B8: + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + adds r3, r6, 0 + ldr r7, _080C94F4 + movs r6, 0x3 +_080C94C8: + adds r0, r1, r7 + adds r1, 0x1 + ldrb r0, [r0] + cmp r2, r0 + bne _080C94D8 + adds r0, r1, 0 + ands r0, r6 + strh r0, [r4, 0xA] +_080C94D8: + lsls r0, r1, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _080C94C8 + ldr r1, _080C94F8 + adds r0, r3, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C94FC + str r1, [r0] + movs r0, 0 + strh r0, [r4, 0x6] + strh r0, [r4, 0x4] + b _080C9516 + .align 2, 0 +_080C94F4: .4byte gUnknown_083D61F0 +_080C94F8: .4byte gTasks +_080C94FC: .4byte sub_80C9A38 +_080C9500: + movs r0, 0x48 + bl PlaySE + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080C950C: + ldrh r0, [r4, 0x6] + adds r0, 0x1 + movs r1, 0x1F + ands r0, r1 + strh r0, [r4, 0x6] +_080C9516: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C9458 + + thumb_func_start sub_80C9520 +sub_80C9520: @ 80C9520 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + bl sub_8064E2C + bl ScriptContext2_Disable + adds r0, r4, 0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C9520 + + thumb_func_start ItemfinderCheckForHiddenItems +ItemfinderCheckForHiddenItems: @ 80C9548 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + adds r5, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl PlayerGetDestCoords + ldr r1, _080C9618 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + movs r3, 0 + mov r9, r4 + ldrb r0, [r5, 0x3] + cmp r3, r0 + bge _080C95FC + subs r1, 0x5 + mov r8, r1 +_080C9580: + lsls r3, 16 + asrs r1, r3, 16 + ldr r2, [r5, 0x10] + lsls r0, r1, 1 + adds r0, r1 + lsls r4, r0, 2 + adds r1, r4, r2 + ldrb r0, [r1, 0x5] + adds r7, r3, 0 + cmp r0, 0x7 + bne _080C95EC + movs r2, 0x96 + lsls r2, 2 + adds r0, r2, 0 + ldrh r1, [r1, 0xA] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _080C95EC + ldr r1, [r5, 0x10] + adds r1, r4, r1 + ldrh r2, [r1] + adds r2, 0x7 + mov r0, sp + ldrh r0, [r0] + subs r2, r0 + ldrh r0, [r1, 0x2] + adds r0, 0x7 + mov r3, r9 + ldrh r1, [r3] + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + lsls r2, 16 + asrs r1, r2, 16 + movs r3, 0xE0 + lsls r3, 11 + adds r2, r3 + lsrs r2, 16 + cmp r2, 0xE + bhi _080C95EC + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, r8 + blt _080C95EC + cmp r2, 0x5 + bgt _080C95EC + adds r0, r6, 0 + bl sub_80C9838 +_080C95EC: + movs r1, 0x80 + lsls r1, 9 + adds r0, r7, r1 + lsrs r3, r0, 16 + asrs r0, 16 + ldrb r2, [r5, 0x3] + cmp r0, r2 + blt _080C9580 +_080C95FC: + adds r0, r6, 0 + bl sub_80C9720 + ldr r0, _080C9618 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0x1 + beq _080C961C + movs r0, 0 + b _080C961E + .align 2, 0 +_080C9618: .4byte gTasks +_080C961C: + movs r0, 0x1 +_080C961E: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end ItemfinderCheckForHiddenItems + + thumb_func_start sub_80C962C +sub_80C962C: @ 80C962C + push {r4-r6,lr} + lsls r1, 16 + lsrs r3, r1, 16 + lsls r2, 16 + lsrs r4, r2, 16 + ldrb r2, [r0, 0x3] + ldr r5, [r0, 0x10] + movs r1, 0 + cmp r1, r2 + bge _080C9680 + lsls r0, r3, 16 + asrs r6, r0, 16 + lsls r0, r4, 16 + asrs r4, r0, 16 + adds r3, r5, 0 +_080C964A: + ldrb r0, [r3, 0x5] + cmp r0, 0x7 + bne _080C9678 + ldrh r0, [r3] + cmp r6, r0 + bne _080C9678 + ldrh r0, [r3, 0x2] + cmp r4, r0 + bne _080C9678 + movs r1, 0x96 + lsls r1, 2 + adds r0, r1, 0 + ldrh r3, [r3, 0xA] + adds r0, r3 + lsls r0, 16 + lsrs r0, 16 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _080C9680 + movs r0, 0x1 + b _080C9682 +_080C9678: + adds r3, 0xC + adds r1, 0x1 + cmp r1, r2 + blt _080C964A +_080C9680: + movs r0, 0 +_080C9682: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C962C + + thumb_func_start sub_80C9688 +sub_80C9688: @ 80C9688 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + bl mapconnection_get_mapheader + adds r3, r0, 0 + ldrb r0, [r4] + cmp r0, 0x2 + beq _080C96B0 + cmp r0, 0x2 + bgt _080C96A6 + cmp r0, 0x1 + beq _080C96C4 + b _080C9704 +_080C96A6: + cmp r0, 0x3 + beq _080C96DC + cmp r0, 0x4 + beq _080C96E6 + b _080C9704 +_080C96B0: + ldr r0, [r4, 0x4] + adds r0, 0x7 + subs r0, r5, r0 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, [r3] + ldr r0, [r0, 0x4] + subs r0, 0x7 + adds r0, r6 + b _080C96FA +_080C96C4: + ldr r0, [r4, 0x4] + adds r0, 0x7 + subs r0, r5, r0 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _080C96D8 + ldr r0, [r0] + ldr r0, [r0, 0x4] + b _080C96F6 + .align 2, 0 +_080C96D8: .4byte gMapHeader +_080C96DC: + ldr r0, [r3] + ldr r0, [r0] + subs r0, 0x7 + adds r0, r5 + b _080C96F0 +_080C96E6: + ldr r0, _080C9700 + ldr r0, [r0] + ldr r0, [r0] + adds r0, 0x7 + subs r0, r5, r0 +_080C96F0: + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, [r4, 0x4] +_080C96F6: + adds r0, 0x7 + subs r0, r6, r0 +_080C96FA: + lsls r0, 16 + lsrs r2, r0, 16 + b _080C9708 + .align 2, 0 +_080C9700: .4byte gMapHeader +_080C9704: + movs r0, 0 + b _080C971A +_080C9708: + ldr r0, [r3, 0x4] + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + bl sub_80C962C + lsls r0, 24 + lsrs r0, 24 +_080C971A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C9688 + + thumb_func_start sub_80C9720 +sub_80C9720: @ 80C9720 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldr r0, _080C9834 + ldr r1, [r0] + ldr r0, [r1] + adds r0, 0x7 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + ldr r0, [r1, 0x4] + adds r0, 0x7 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0xC] + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl PlayerGetDestCoords + mov r0, sp + ldrh r0, [r0] + subs r0, 0x7 + lsls r0, 16 + lsrs r3, r0, 16 + asrs r0, 16 + mov r1, sp + movs r2, 0 + ldrsh r1, [r1, r2] + adds r1, 0x7 + cmp r0, r1 + bgt _080C9824 +_080C976E: + mov r5, sp + ldrh r0, [r5, 0x2] + subs r0, 0x5 + lsls r0, 16 + lsrs r4, r0, 16 + lsls r2, r4, 16 + asrs r1, r2, 16 + movs r6, 0x2 + ldrsh r0, [r5, r6] + adds r0, 0x5 + lsls r3, 16 + mov r8, r3 + cmp r1, r0 + bgt _080C980E + movs r0, 0x7 + str r0, [sp, 0x10] + mov r1, r8 + asrs r1, 16 + mov r9, r1 + mov r10, r0 +_080C9796: + ldr r3, [sp, 0x10] + cmp r3, r9 + bgt _080C97B8 + ldr r5, [sp, 0x8] + lsls r0, r5, 16 + asrs r0, 16 + cmp r9, r0 + bge _080C97B8 + asrs r1, r2, 16 + cmp r10, r1 + bgt _080C97B8 + ldr r6, [sp, 0xC] + lsls r0, r6, 16 + asrs r0, 16 + lsls r7, r4, 16 + cmp r1, r0 + blt _080C97F6 +_080C97B8: + mov r0, r8 + asrs r5, r0, 16 + lsls r4, 16 + asrs r6, r4, 16 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8056BA0 + adds r7, r4, 0 + cmp r0, 0 + beq _080C97F6 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_80C9688 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C97F6 + mov r0, sp + ldrh r1, [r0] + subs r1, r5, r1 + lsls r1, 16 + asrs r1, 16 + ldrh r2, [r0, 0x2] + subs r2, r6, r2 + lsls r2, 16 + asrs r2, 16 + ldr r0, [sp, 0x4] + bl sub_80C9838 +_080C97F6: + movs r1, 0x80 + lsls r1, 9 + adds r0, r7, r1 + lsrs r4, r0, 16 + lsls r2, r4, 16 + asrs r1, r2, 16 + mov r3, sp + movs r5, 0x2 + ldrsh r0, [r3, r5] + adds r0, 0x5 + cmp r1, r0 + ble _080C9796 +_080C980E: + movs r1, 0x80 + lsls r1, 9 + add r1, r8 + lsrs r3, r1, 16 + asrs r1, 16 + mov r0, sp + movs r6, 0 + ldrsh r0, [r0, r6] + adds r0, 0x7 + cmp r1, r0 + ble _080C976E +_080C9824: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C9834: .4byte gMapHeader + thumb_func_end sub_80C9720 + + thumb_func_start sub_80C9838 +sub_80C9838: @ 80C9838 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 16 + lsrs r2, 16 + mov r12, r2 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080C986C + adds r3, r1, r0 + movs r1, 0x4 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080C9870 + strh r7, [r3] + mov r0, r12 + strh r0, [r3, 0x2] + movs r0, 0x1 + strh r0, [r3, 0x4] + b _080C98FA + .align 2, 0 +_080C986C: .4byte gUnknown_03004B28 +_080C9870: + movs r1, 0 + ldrsh r0, [r3, r1] + cmp r0, 0 + bge _080C9880 + negs r0, r0 + lsls r0, 16 + lsrs r4, r0, 16 + b _080C9882 +_080C9880: + ldrh r4, [r3] +_080C9882: + movs r1, 0x2 + ldrsh r0, [r3, r1] + ldrh r1, [r3, 0x2] + mov r9, r1 + cmp r0, 0 + bge _080C9896 + negs r0, r0 + lsls r0, 16 + lsrs r2, r0, 16 + b _080C9898 +_080C9896: + ldrh r2, [r3, 0x2] +_080C9898: + lsls r1, r7, 16 + asrs r0, r1, 16 + cmp r0, 0 + bge _080C98A8 + negs r0, r0 + lsls r0, 16 + lsrs r6, r0, 16 + b _080C98AA +_080C98A8: + lsrs r6, r1, 16 +_080C98AA: + mov r1, r12 + lsls r0, r1, 16 + asrs r1, r0, 16 + mov r8, r0 + cmp r1, 0 + bge _080C98BC + negs r0, r1 + lsls r0, 16 + b _080C98BE +_080C98BC: + mov r0, r8 +_080C98BE: + lsrs r5, r0, 16 + lsls r0, r4, 16 + asrs r0, 16 + lsls r1, r2, 16 + asrs r2, r1, 16 + adds r4, r0, r2 + lsls r0, r6, 16 + asrs r0, 16 + lsls r1, r5, 16 + asrs r1, 16 + adds r0, r1 + cmp r4, r0 + ble _080C98E0 + strh r7, [r3] + mov r1, r12 + strh r1, [r3, 0x2] + b _080C98FA +_080C98E0: + cmp r4, r0 + bne _080C98FA + cmp r2, r1 + bgt _080C98F4 + cmp r2, r1 + bne _080C98FA + mov r1, r9 + lsls r0, r1, 16 + cmp r0, r8 + bge _080C98FA +_080C98F4: + strh r7, [r3] + mov r0, r12 + strh r0, [r3, 0x2] +_080C98FA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C9838 + + thumb_func_start sub_80C9908 +sub_80C9908: @ 80C9908 + push {r4,r5,lr} + lsls r0, 16 + lsls r1, 16 + lsrs r1, 16 + lsrs r2, r0, 16 + cmp r0, 0 + bne _080C991A + cmp r1, 0 + beq _080C9974 +_080C991A: + lsls r0, r2, 16 + asrs r2, r0, 16 + adds r5, r0, 0 + cmp r2, 0 + bge _080C992C + negs r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 + b _080C992E +_080C992C: + lsrs r4, r5, 16 +_080C992E: + lsls r0, r1, 16 + asrs r2, r0, 16 + adds r1, r0, 0 + cmp r2, 0 + bge _080C9940 + negs r0, r2 + lsls r0, 16 + lsrs r3, r0, 16 + b _080C9942 +_080C9940: + lsrs r3, r1, 16 +_080C9942: + lsls r0, r4, 16 + asrs r2, r0, 16 + lsls r0, r3, 16 + asrs r0, 16 + cmp r2, r0 + ble _080C995A + cmp r5, 0 + bge _080C9956 + movs r0, 0x4 + b _080C9976 +_080C9956: + movs r0, 0x2 + b _080C9976 +_080C995A: + cmp r2, r0 + bge _080C9964 + cmp r1, 0 + blt _080C996C + b _080C9970 +_080C9964: + cmp r2, r0 + bne _080C9974 + cmp r1, 0 + bge _080C9970 +_080C996C: + movs r0, 0x1 + b _080C9976 +_080C9970: + movs r0, 0x3 + b _080C9976 +_080C9974: + movs r0, 0 +_080C9976: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80C9908 + + thumb_func_start sub_80C997C +sub_80C997C: @ 80C997C + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r4, _080C99E8 + adds r0, r4 + bl FieldObjectClearAnimIfSpecialAnimFinished + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl FieldObjectClearAnim + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl npc_sync_anim_pause_bits + adds r0, r5, 0 + bl PlayerTurnInPlace + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C99E8: .4byte gMapObjects + thumb_func_end sub_80C997C + + thumb_func_start sub_80C99EC +sub_80C99EC: @ 80C99EC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C9A2C + adds r0, r1 + bl FieldObjectCheckIfSpecialAnimFinishedOrInactive + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C9A24 + ldr r1, _080C9A30 + ldr r2, _080C9A34 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080C9A24: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9A2C: .4byte gMapObjects +_080C9A30: .4byte gOtherText_ItemfinderResponding +_080C9A34: .4byte sub_80C9520 + thumb_func_end sub_80C99EC + + thumb_func_start sub_80C9A38 +sub_80C9A38: @ 80C9A38 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C9AB4 + adds r4, r0, r1 + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C9AB8 + adds r0, r1 + bl FieldObjectCheckIfSpecialAnimFinishedOrInactive + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C9A78 + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C9AAE +_080C9A78: + ldr r1, _080C9ABC + movs r2, 0xA + ldrsh r0, [r4, r2] + adds r0, r1 + ldrb r0, [r0] + bl sub_80C997C + movs r0, 0x1 + strh r0, [r4, 0x4] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0x6] + adds r0, 0x1 + strh r0, [r4, 0x6] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080C9AAE + ldr r1, _080C9AC0 + ldr r2, _080C9AC4 + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080C9AAE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C9AB4: .4byte gUnknown_03004B28 +_080C9AB8: .4byte gMapObjects +_080C9ABC: .4byte gUnknown_083D61F0 +_080C9AC0: .4byte gOtherText_ItemfinderFoundItem +_080C9AC4: .4byte sub_80C9520 + thumb_func_end sub_80C9A38 + + thumb_func_start ItemUseOutOfBattle_PokeblockCase +ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C9AF4 + ldr r0, _080C9AF0 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrb r1, [r1, 0xC] + adds r0, r4, 0 + bl DisplayDadsAdviceCannotUseItemMessage + b _080C9B2A + .align 2, 0 +_080C9AF0: .4byte gTasks +_080C9AF4: + ldr r0, _080C9B14 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r2, 0xC + ldrsh r0, [r1, r2] + cmp r0, 0x1 + beq _080C9B18 + movs r0, 0 + bl sub_810BA7C + adds r0, r4, 0 + bl unknown_ItemMenu_Confirm + b _080C9B2A + .align 2, 0 +_080C9B14: .4byte gTasks +_080C9B18: + ldr r1, _080C9B30 + ldr r0, _080C9B34 + str r0, [r1] + movs r0, 0x1 + bl sub_810BA7C + adds r0, r5, 0 + bl sub_80C9038 +_080C9B2A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C9B30: .4byte gUnknown_0300485C +_080C9B34: .4byte sub_8080E28 + thumb_func_end ItemUseOutOfBattle_PokeblockCase + + thumb_func_start ItemUseOutOfBattle_CoinCase +ItemUseOutOfBattle_CoinCase: @ 80C9B38 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080C9B8C + bl GetCoins + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + movs r2, 0 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r4, _080C9B90 + ldr r1, _080C9B94 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r1, _080C9B98 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080C9BA0 + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + ldr r2, _080C9B9C + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField + b _080C9BAC + .align 2, 0 +_080C9B8C: .4byte gStringVar1 +_080C9B90: .4byte gStringVar4 +_080C9B94: .4byte gOtherText_Coins3 +_080C9B98: .4byte gTasks +_080C9B9C: .4byte sub_80A5C48 +_080C9BA0: + ldr r2, _080C9BB4 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080C9BAC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C9BB4: .4byte sub_80A5C9C + thumb_func_end ItemUseOutOfBattle_CoinCase + + thumb_func_start sub_80C9BB8 +sub_80C9BB8: @ 80C9BB8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080C9BD4 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C9BD0 + adds r0, r2, 0 + bl sub_80A5C48 +_080C9BD0: + pop {r0} + bx r0 + .align 2, 0 +_080C9BD4: .4byte gMain + thumb_func_end sub_80C9BB8 + + thumb_func_start sub_80C9BD8 +sub_80C9BD8: @ 80C9BD8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080C9BF4 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C9BF0 + adds r0, r2, 0 + bl sub_80A5C9C +_080C9BF0: + pop {r0} + bx r0 + .align 2, 0 +_080C9BF4: .4byte gMain + thumb_func_end sub_80C9BD8 + + thumb_func_start unref_sub_80C9BF8 +unref_sub_80C9BF8: @ 80C9BF8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080C9C3C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080C9C4C + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + ldr r4, _080C9C40 + ldr r0, _080C9C44 + ldrh r0, [r0] + bl itemid_get_x28 + lsls r0, 24 + lsrs r0, 22 + adds r0, r4 + ldr r1, [r0] + ldr r2, _080C9C48 + adds r0, r5, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField + b _080C9C68 + .align 2, 0 +_080C9C3C: .4byte gTasks +_080C9C40: .4byte gUnknown_083D61DC +_080C9C44: .4byte word_203855E +_080C9C48: .4byte sub_80C9BB8 +_080C9C4C: + ldr r4, _080C9C70 + ldr r0, _080C9C74 + ldrh r0, [r0] + bl itemid_get_x28 + lsls r0, 24 + lsrs r0, 22 + adds r0, r4 + ldr r1, [r0] + ldr r2, _080C9C78 + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080C9C68: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C9C70: .4byte gUnknown_083D61DC +_080C9C74: .4byte word_203855E +_080C9C78: .4byte sub_80C9BD8 + thumb_func_end unref_sub_80C9BF8 + + thumb_func_start sub_80C9C7C +sub_80C9C7C: @ 80C9C7C + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + bl IsPlayerFacingPlantedBerryTree + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C9CE4 + ldr r1, _080C9CC8 + ldr r0, _080C9CCC + str r0, [r1] + ldr r1, _080C9CD0 + ldr r0, _080C9CD4 + str r0, [r1] + ldr r1, _080C9CD8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r2, _080C9CDC + lsrs r1, r2, 16 + movs r3, 0 + strh r1, [r0, 0x18] + strh r2, [r0, 0x1A] + ldr r1, _080C9CE0 + str r1, [r0] + movs r0, 0x1 + negs r0, r0 + str r3, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _080C9CF4 + .align 2, 0 +_080C9CC8: .4byte gUnknown_03005D00 +_080C9CCC: .4byte sub_80C9D00 +_080C9CD0: .4byte gUnknown_0300485C +_080C9CD4: .4byte sub_80A5CC4 +_080C9CD8: .4byte gTasks +_080C9CDC: .4byte c2_exit_to_overworld_2_switch +_080C9CE0: .4byte sub_80A5B00 +_080C9CE4: + ldr r0, _080C9CFC + ldrh r0, [r0] + bl itemid_get_overworld_function + adds r1, r0, 0 + adds r0, r4, 0 + bl _call_via_r1 +_080C9CF4: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9CFC: .4byte word_203855E + thumb_func_end sub_80C9C7C + + thumb_func_start sub_80C9D00 +sub_80C9D00: @ 80C9D00 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080C9D28 + ldrh r0, [r0] + movs r1, 0x1 + bl sub_80A9538 + bl ScriptContext2_Enable + ldr r0, _080C9D2C + bl ScriptContext1_SetupScript + adds r0, r4, 0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9D28: .4byte word_203855E +_080C9D2C: .4byte gUnknown_081A1654 + thumb_func_end sub_80C9D00 + + thumb_func_start ItemUseOutOfBattle_WailmerPail +ItemUseOutOfBattle_WailmerPail: @ 80C9D30 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl WaterBerryTree + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C9D58 + ldr r1, _080C9D50 + ldr r0, _080C9D54 + str r0, [r1] + adds r0, r4, 0 + bl SetUpItemUseOnFieldCallback + b _080C9D6A + .align 2, 0 +_080C9D50: .4byte gUnknown_03005D00 +_080C9D54: .4byte sub_80C9D74 +_080C9D58: + ldr r0, _080C9D70 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrb r1, [r1, 0xC] + adds r0, r4, 0 + bl DisplayDadsAdviceCannotUseItemMessage +_080C9D6A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9D70: .4byte gTasks + thumb_func_end ItemUseOutOfBattle_WailmerPail + + thumb_func_start sub_80C9D74 +sub_80C9D74: @ 80C9D74 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ScriptContext2_Enable + ldr r0, _080C9D94 + bl ScriptContext1_SetupScript + adds r0, r4, 0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9D94: .4byte gUnknown_081A168F + thumb_func_end sub_80C9D74 + + thumb_func_start sub_80C9D98 +sub_80C9D98: @ 80C9D98 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C9DAC + movs r1, 0 + strb r1, [r2] + bl unknown_ItemMenu_Confirm + pop {r0} + bx r0 + .align 2, 0 +_080C9DAC: .4byte gUnknown_02038561 + thumb_func_end sub_80C9D98 + + thumb_func_start ItemUseOutOfBattle_Medicine +ItemUseOutOfBattle_Medicine: @ 80C9DB0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C9DC4 + ldr r1, _080C9DC8 + str r1, [r2] + bl sub_80C9D98 + pop {r0} + bx r0 + .align 2, 0 +_080C9DC4: .4byte gUnknown_03004AE4 +_080C9DC8: .4byte sub_806FE2C + thumb_func_end ItemUseOutOfBattle_Medicine + + thumb_func_start ItemUseOutOfBattle_SacredAsh +ItemUseOutOfBattle_SacredAsh: @ 80C9DCC + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080C9DDC + movs r0, 0 + strb r0, [r1] + movs r5, 0 + b _080C9DE6 + .align 2, 0 +_080C9DDC: .4byte gUnknown_03005CE0 +_080C9DE0: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_080C9DE6: + cmp r5, 0x5 + bhi _080C9E10 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _080C9E28 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _080C9DE0 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _080C9DE0 + ldr r0, _080C9E2C + strb r5, [r0] +_080C9E10: + ldr r1, _080C9E30 + ldr r0, _080C9E34 + str r0, [r1] + ldr r1, _080C9E38 + movs r0, 0x4 + strb r0, [r1] + adds r0, r6, 0 + bl unknown_ItemMenu_Confirm + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C9E28: .4byte gPlayerParty +_080C9E2C: .4byte gUnknown_03005CE0 +_080C9E30: .4byte gUnknown_03004AE4 +_080C9E34: .4byte sub_8070048 +_080C9E38: .4byte gUnknown_02038561 + thumb_func_end ItemUseOutOfBattle_SacredAsh + + thumb_func_start ItemUseOutOfBattle_PPRecovery +ItemUseOutOfBattle_PPRecovery: @ 80C9E3C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C9E50 + ldr r1, _080C9E54 + str r1, [r2] + bl sub_80C9D98 + pop {r0} + bx r0 + .align 2, 0 +_080C9E50: .4byte gUnknown_03004AE4 +_080C9E54: .4byte dp05_ether + thumb_func_end ItemUseOutOfBattle_PPRecovery + + thumb_func_start ItemUseOutOfBattle_PPUp +ItemUseOutOfBattle_PPUp: @ 80C9E58 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C9E6C + ldr r1, _080C9E70 + str r1, [r2] + bl sub_80C9D98 + pop {r0} + bx r0 + .align 2, 0 +_080C9E6C: .4byte gUnknown_03004AE4 +_080C9E70: .4byte dp05_pp_up + thumb_func_end ItemUseOutOfBattle_PPUp + + thumb_func_start ItemUseOutOfBattle_RareCandy +ItemUseOutOfBattle_RareCandy: @ 80C9E74 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C9E88 + ldr r1, _080C9E8C + str r1, [r2] + bl sub_80C9D98 + pop {r0} + bx r0 + .align 2, 0 +_080C9E88: .4byte gUnknown_03004AE4 +_080C9E8C: .4byte sub_8070680 + thumb_func_end ItemUseOutOfBattle_RareCandy + + thumb_func_start ItemUseOutOfBattle_TMHM +ItemUseOutOfBattle_TMHM: @ 80C9E90 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + ldr r0, _080C9EBC + ldrh r1, [r0] + movs r0, 0xA9 + lsls r0, 1 + cmp r1, r0 + bls _080C9EC8 + ldr r1, _080C9EC0 + ldr r2, _080C9EC4 + adds r0, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField + b _080C9ED4 + .align 2, 0 +_080C9EBC: .4byte word_203855E +_080C9EC0: .4byte gOtherText_BootedHM +_080C9EC4: .4byte sub_80C9EE4 +_080C9EC8: + ldr r1, _080C9EDC + ldr r2, _080C9EE0 + adds r0, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField +_080C9ED4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9EDC: .4byte gOtherText_BootedTM +_080C9EE0: .4byte sub_80C9EE4 + thumb_func_end ItemUseOutOfBattle_TMHM + + thumb_func_start sub_80C9EE4 +sub_80C9EE4: @ 80C9EE4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x2 + bl PlaySE + ldr r1, _080C9F08 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C9F0C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9F08: .4byte gTasks +_080C9F0C: .4byte sub_80C9F10 + thumb_func_end sub_80C9EE4 + + thumb_func_start sub_80C9F10 +sub_80C9F10: @ 80C9F10 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080C9F64 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080C9F2A + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080C9F5C +_080C9F2A: + ldr r4, _080C9F68 + ldr r0, _080C9F6C + ldrh r0, [r0] + bl ItemIdToBattleMoveId + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xD + muls r1, r0 + ldr r0, _080C9F70 + adds r1, r0 + adds r0, r4, 0 + bl StringCopy + ldr r4, _080C9F74 + ldr r1, _080C9F78 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080C9F7C + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField +_080C9F5C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C9F64: .4byte gMain +_080C9F68: .4byte gStringVar1 +_080C9F6C: .4byte word_203855E +_080C9F70: .4byte gMoveNames +_080C9F74: .4byte gStringVar4 +_080C9F78: .4byte gOtherText_ContainsMove +_080C9F7C: .4byte sub_80C9F80 + thumb_func_end sub_80C9F10 + + thumb_func_start sub_80C9F80 +sub_80C9F80: @ 80C9F80 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x7 + movs r1, 0x7 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r0, _080C9FB8 + movs r1, 0x4 + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + movs r1, 0x8 + movs r2, 0x8 + movs r3, 0x5 + bl sub_80A3FA0 + ldr r1, _080C9FBC + adds r0, r4, 0 + bl sub_80F914C + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9FB8: .4byte gBG1TilemapBuffer +_080C9FBC: .4byte gUnknown_083D61F4 + thumb_func_end sub_80C9F80 + + thumb_func_start sub_80C9FC0 +sub_80C9FC0: @ 80C9FC0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C9FD4 + ldr r1, _080C9FD8 + str r1, [r2] + bl sub_80C9D98 + pop {r0} + bx r0 + .align 2, 0 +_080C9FD4: .4byte gUnknown_03004AE4 +_080C9FD8: .4byte sub_806F06C + thumb_func_end sub_80C9FC0 + + thumb_func_start sub_80C9FDC +sub_80C9FDC: @ 80C9FDC + push {r4,lr} + ldr r4, _080CA004 + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A9538 + bl sub_80A3E0C + ldrh r0, [r4] + ldr r1, _080CA008 + bl itemid_copy_name + ldr r0, _080CA00C + ldr r1, _080CA010 + bl StringExpandPlaceholders + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA004: .4byte word_203855E +_080CA008: .4byte gStringVar2 +_080CA00C: .4byte gStringVar4 +_080CA010: .4byte gOtherText_UsedItem + thumb_func_end sub_80C9FDC + + thumb_func_start ItemUseOutOfBattle_Repel +ItemUseOutOfBattle_Repel: @ 80CA014 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, _080CA050 + adds r0, r5, 0 + bl VarGet + lsls r0, 16 + cmp r0, 0 + bne _080CA060 + ldr r0, _080CA054 + ldrh r0, [r0] + bl itemid_get_quality + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl VarSet + bl sub_80C9FDC + ldr r1, _080CA058 + ldr r2, _080CA05C + adds r0, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField + b _080CA06C + .align 2, 0 +_080CA050: .4byte 0x00004021 +_080CA054: .4byte word_203855E +_080CA058: .4byte gStringVar4 +_080CA05C: .4byte sub_80A5C48 +_080CA060: + ldr r1, _080CA074 + ldr r2, _080CA078 + adds r0, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField +_080CA06C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CA074: .4byte gOtherText_RepelLingers +_080CA078: .4byte sub_80A5C48 + thumb_func_end ItemUseOutOfBattle_Repel + + thumb_func_start sub_80CA07C +sub_80CA07C: @ 80CA07C + push {lr} + bl sub_80A3E0C + ldr r0, _080CA090 + ldrh r0, [r0] + ldr r1, _080CA094 + bl itemid_copy_name + pop {r0} + bx r0 + .align 2, 0 +_080CA090: .4byte word_203855E +_080CA094: .4byte gStringVar2 + thumb_func_end sub_80CA07C + + thumb_func_start sub_80CA098 +sub_80CA098: @ 80CA098 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080CA0D0 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080CA0C8 + movs r0, 0x75 + bl PlaySE + ldr r1, _080CA0D4 + ldr r2, _080CA0D8 + adds r0, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField +_080CA0C8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA0D0: .4byte gTasks +_080CA0D4: .4byte gStringVar4 +_080CA0D8: .4byte sub_80A5C48 + thumb_func_end sub_80CA098 + + thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute +ItemUseOutOfBattle_BlackWhiteFlute: @ 80CA0DC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + ldr r0, _080CA10C + ldrh r0, [r0] + cmp r0, 0x2B + bne _080CA124 + ldr r0, _080CA110 + bl FlagSet + ldr r0, _080CA114 + bl FlagReset + bl sub_80CA07C + ldr r0, _080CA118 + ldr r1, _080CA11C + bl StringExpandPlaceholders + ldr r1, _080CA120 + lsls r0, r4, 2 + adds r0, r4 + b _080CA146 + .align 2, 0 +_080CA10C: .4byte word_203855E +_080CA110: .4byte 0x0000084d +_080CA114: .4byte 0x0000084e +_080CA118: .4byte gStringVar4 +_080CA11C: .4byte gOtherText_UsedFlute +_080CA120: .4byte gTasks +_080CA124: + cmp r0, 0x2A + bne _080CA152 + ldr r0, _080CA158 + bl FlagSet + ldr r0, _080CA15C + bl FlagReset + bl sub_80CA07C + ldr r0, _080CA160 + ldr r1, _080CA164 + bl StringExpandPlaceholders + ldr r1, _080CA168 + lsls r0, r5, 2 + adds r0, r5 +_080CA146: + lsls r0, 3 + adds r0, r1 + ldr r1, _080CA16C + str r1, [r0] + movs r1, 0 + strh r1, [r0, 0x26] +_080CA152: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CA158: .4byte 0x0000084e +_080CA15C: .4byte 0x0000084d +_080CA160: .4byte gStringVar4 +_080CA164: .4byte gOtherText_UsedRepel +_080CA168: .4byte gTasks +_080CA16C: .4byte sub_80CA098 + thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute + + thumb_func_start task08_080A1C44 +task08_080A1C44: @ 80CA170 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl player_avatar_init_params_reset + bl sub_80878A8 + adds r0, r4, 0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + thumb_func_end task08_080A1C44 + + thumb_func_start sub_80CA18C +sub_80CA18C: @ 80CA18C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8053014 + bl sub_80C9FDC + ldr r1, _080CA1BC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, _080CA1C0 + ldr r2, _080CA1C4 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA1BC: .4byte gTasks +_080CA1C0: .4byte gStringVar4 +_080CA1C4: .4byte task08_080A1C44 + thumb_func_end sub_80CA18C + + thumb_func_start sub_80CA1C8 +sub_80CA1C8: @ 80CA1C8 + push {lr} + ldr r0, _080CA1D8 + ldrb r0, [r0, 0x17] + cmp r0, 0x4 + beq _080CA1DC + movs r0, 0 + b _080CA1DE + .align 2, 0 +_080CA1D8: .4byte gMapHeader +_080CA1DC: + movs r0, 0x1 +_080CA1DE: + pop {r1} + bx r1 + thumb_func_end sub_80CA1C8 + + thumb_func_start ItemUseOutOfBattle_EscapeRope +ItemUseOutOfBattle_EscapeRope: @ 80CA1E4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80CA1C8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080CA20C + ldr r1, _080CA204 + ldr r0, _080CA208 + str r0, [r1] + adds r0, r4, 0 + bl SetUpItemUseOnFieldCallback + b _080CA21E + .align 2, 0 +_080CA204: .4byte gUnknown_03005D00 +_080CA208: .4byte sub_80CA18C +_080CA20C: + ldr r0, _080CA224 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrb r1, [r1, 0xC] + adds r0, r4, 0 + bl DisplayDadsAdviceCannotUseItemMessage +_080CA21E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA224: .4byte gTasks + thumb_func_end ItemUseOutOfBattle_EscapeRope + + thumb_func_start ItemUseOutOfBattle_EvolutionStone +ItemUseOutOfBattle_EvolutionStone: @ 80CA228 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080CA23C + ldr r1, _080CA240 + str r1, [r2] + bl sub_80C9D98 + pop {r0} + bx r0 + .align 2, 0 +_080CA23C: .4byte gUnknown_03004AE4 +_080CA240: .4byte sub_8070DBC + thumb_func_end ItemUseOutOfBattle_EvolutionStone + + thumb_func_start ItemUseInBattle_PokeBall +ItemUseInBattle_PokeBall: @ 80CA244 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl PlayerPartyAndPokemonStorageFull + lsls r0, 24 + cmp r0, 0 + bne _080CA26C + ldr r0, _080CA268 + ldrh r0, [r0] + movs r1, 0x1 + bl sub_80A9538 + adds r0, r4, 0 + bl sub_80A7094 + b _080CA284 + .align 2, 0 +_080CA268: .4byte word_203855E +_080CA26C: + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + ldr r1, _080CA28C + ldr r2, _080CA290 + adds r0, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField +_080CA284: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA28C: .4byte gOtherText_BoxIsFull +_080CA290: .4byte sub_80A5C48 + thumb_func_end ItemUseInBattle_PokeBall + + thumb_func_start sub_80CA294 +sub_80CA294: @ 80CA294 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080CA2B8 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080CA2AE + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080CA2B4 +_080CA2AE: + adds r0, r2, 0 + bl sub_80A7094 +_080CA2B4: + pop {r0} + bx r0 + .align 2, 0 +_080CA2B8: .4byte gMain + thumb_func_end sub_80CA294 + + thumb_func_start sub_80CA2BC +sub_80CA2BC: @ 80CA2BC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080CA304 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080CA2FC + movs r0, 0x1 + bl PlaySE + ldr r4, _080CA308 + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A9538 + ldrh r0, [r4] + bl sub_803F378 + adds r1, r0, 0 + ldr r2, _080CA30C + adds r0, r5, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField +_080CA2FC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CA304: .4byte gTasks +_080CA308: .4byte word_203855E +_080CA30C: .4byte sub_80CA294 + thumb_func_end sub_80CA2BC + + thumb_func_start ItemUseInBattle_StatIncrease +ItemUseInBattle_StatIncrease: @ 80CA310 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080CA35C + ldr r0, _080CA360 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r4, [r0] + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + movs r0, 0x64 + muls r0, r4 + ldr r1, _080CA364 + adds r0, r1 + ldr r1, _080CA368 + ldrh r1, [r1] + lsls r4, 24 + lsrs r4, 24 + adds r2, r4, 0 + movs r3, 0 + bl ExecuteTableBasedItemEffect_ + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080CA374 + ldr r1, _080CA36C + ldr r2, _080CA370 + adds r0, r5, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField + b _080CA384 + .align 2, 0 +_080CA35C: .4byte gUnknown_02024A6A +_080CA360: .4byte gUnknown_02024E6C +_080CA364: .4byte gPlayerParty +_080CA368: .4byte word_203855E +_080CA36C: .4byte gOtherText_WontHaveAnyEffect +_080CA370: .4byte sub_80A5C48 +_080CA374: + ldr r0, _080CA38C + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080CA390 + str r0, [r1] + strh r2, [r1, 0x26] +_080CA384: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CA38C: .4byte gTasks +_080CA390: .4byte sub_80CA2BC + thumb_func_end ItemUseInBattle_StatIncrease + + thumb_func_start sub_80CA394 +sub_80CA394: @ 80CA394 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080CA3BC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080CA3B4 + bl sub_8094E4C + bl gpu_pal_allocator_reset__manage_upper_four + adds r0, r4, 0 + bl DestroyTask +_080CA3B4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA3BC: .4byte gPaletteFade + thumb_func_end sub_80CA394 + + thumb_func_start sub_80CA3C0 +sub_80CA3C0: @ 80CA3C0 + push {lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080CA3EC + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080CA3F0 + str r0, [r1] + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080CA3EC: .4byte gTasks +_080CA3F0: .4byte sub_80CA394 + thumb_func_end sub_80CA3C0 + + thumb_func_start ItemUseInBattle_Medicine +ItemUseInBattle_Medicine: @ 80CA3F4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080CA408 + ldr r1, _080CA40C + str r1, [r2] + bl sub_80CA3C0 + pop {r0} + bx r0 + .align 2, 0 +_080CA408: .4byte gUnknown_03004AE4 +_080CA40C: .4byte sub_806FE2C + thumb_func_end ItemUseInBattle_Medicine + + thumb_func_start unref_sub_80CA410 +unref_sub_80CA410: @ 80CA410 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080CA424 + ldr r1, _080CA428 + str r1, [r2] + bl sub_80CA3C0 + pop {r0} + bx r0 + .align 2, 0 +_080CA424: .4byte gUnknown_03004AE4 +_080CA428: .4byte sub_8070048 + thumb_func_end unref_sub_80CA410 + + thumb_func_start ItemUseInBattle_PPRecovery +ItemUseInBattle_PPRecovery: @ 80CA42C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080CA440 + ldr r1, _080CA444 + str r1, [r2] + bl sub_80CA3C0 + pop {r0} + bx r0 + .align 2, 0 +_080CA440: .4byte gUnknown_03004AE4 +_080CA444: .4byte dp05_ether + thumb_func_end ItemUseInBattle_PPRecovery + + thumb_func_start unref_sub_80CA448 +unref_sub_80CA448: @ 80CA448 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + ldr r4, _080CA494 + ldrh r1, [r4] + movs r0, 0 + movs r2, 0 + bl ExecuteTableBasedItemEffect__ + lsls r0, 24 + cmp r0, 0 + bne _080CA4AC + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A9538 + ldr r0, _080CA498 + ldr r1, _080CA49C + bl GetMonNickname + ldr r4, _080CA4A0 + ldr r1, _080CA4A4 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080CA4A8 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField + b _080CA4B8 + .align 2, 0 +_080CA494: .4byte word_203855E +_080CA498: .4byte gPlayerParty +_080CA49C: .4byte gStringVar1 +_080CA4A0: .4byte gStringVar4 +_080CA4A4: .4byte gOtherText_SnapConfusion +_080CA4A8: .4byte sub_80A7094 +_080CA4AC: + ldr r1, _080CA4C0 + ldr r2, _080CA4C4 + adds r0, r5, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField +_080CA4B8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CA4C0: .4byte gOtherText_WontHaveAnyEffect +_080CA4C4: .4byte sub_80A5C48 + thumb_func_end unref_sub_80CA448 + + thumb_func_start ItemUseInBattle_Escape +ItemUseInBattle_Escape: @ 80CA4C8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + ldr r0, _080CA4F8 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _080CA504 + bl sub_80C9FDC + ldr r1, _080CA4FC + ldr r2, _080CA500 + adds r0, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField + b _080CA516 + .align 2, 0 +_080CA4F8: .4byte gUnknown_020239F8 +_080CA4FC: .4byte gStringVar4 +_080CA500: .4byte sub_80A7094 +_080CA504: + ldr r0, _080CA51C + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrb r1, [r1, 0xC] + adds r0, r4, 0 + bl DisplayDadsAdviceCannotUseItemMessage +_080CA516: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA51C: .4byte gTasks + thumb_func_end ItemUseInBattle_Escape + + thumb_func_start ItemUseOutOfBattle_EnigmaBerry +ItemUseOutOfBattle_EnigmaBerry: @ 80CA520 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080CA544 + ldrh r0, [r0] + bl sub_8070E48 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + cmp r0, 0x14 + bls _080CA53A + b _080CA62C +_080CA53A: + lsls r0, 2 + ldr r1, _080CA548 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080CA544: .4byte word_203855E +_080CA548: .4byte _080CA54C + .align 2, 0 +_080CA54C: + .4byte _080CA5D8 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA62C + .4byte _080CA62C + .4byte _080CA5BC + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA62C + .4byte _080CA5F4 + .4byte _080CA5F4 + .4byte _080CA610 +_080CA5A0: + ldr r0, _080CA5B8 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x26] + adds r0, r4, 0 + bl ItemUseOutOfBattle_Medicine + b _080CA640 + .align 2, 0 +_080CA5B8: .4byte gTasks +_080CA5BC: + ldr r0, _080CA5D4 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x26] + adds r0, r4, 0 + bl ItemUseOutOfBattle_SacredAsh + b _080CA640 + .align 2, 0 +_080CA5D4: .4byte gTasks +_080CA5D8: + ldr r0, _080CA5F0 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x26] + adds r0, r4, 0 + bl ItemUseOutOfBattle_RareCandy + b _080CA640 + .align 2, 0 +_080CA5F0: .4byte gTasks +_080CA5F4: + ldr r0, _080CA60C + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x26] + adds r0, r4, 0 + bl ItemUseOutOfBattle_PPUp + b _080CA640 + .align 2, 0 +_080CA60C: .4byte gTasks +_080CA610: + ldr r0, _080CA628 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x26] + adds r0, r4, 0 + bl ItemUseOutOfBattle_PPRecovery + b _080CA640 + .align 2, 0 +_080CA628: .4byte gTasks +_080CA62C: + ldr r0, _080CA648 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x4 + strh r0, [r1, 0x26] + adds r0, r4, 0 + bl ItemUseOutOfBattle_CannotUse +_080CA640: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA648: .4byte gTasks + thumb_func_end ItemUseOutOfBattle_EnigmaBerry + + thumb_func_start ItemUseInBattle_EnigmaBerry +ItemUseInBattle_EnigmaBerry: @ 80CA64C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080CA66C + ldrh r0, [r0] + bl sub_8070E48 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x15 + bhi _080CA6E4 + lsls r0, 2 + ldr r1, _080CA670 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080CA66C: .4byte word_203855E +_080CA670: .4byte _080CA674 + .align 2, 0 +_080CA674: + .4byte _080CA6CC + .4byte _080CA6E4 + .4byte _080CA6D4 + .4byte _080CA6D4 + .4byte _080CA6D4 + .4byte _080CA6D4 + .4byte _080CA6D4 + .4byte _080CA6D4 + .4byte _080CA6D4 + .4byte _080CA6D4 + .4byte _080CA6E4 + .4byte _080CA6D4 + .4byte _080CA6E4 + .4byte _080CA6E4 + .4byte _080CA6E4 + .4byte _080CA6E4 + .4byte _080CA6E4 + .4byte _080CA6E4 + .4byte _080CA6E4 + .4byte _080CA6E4 + .4byte _080CA6E4 + .4byte _080CA6DC +_080CA6CC: + adds r0, r4, 0 + bl ItemUseInBattle_StatIncrease + b _080CA6EA +_080CA6D4: + adds r0, r4, 0 + bl ItemUseInBattle_Medicine + b _080CA6EA +_080CA6DC: + adds r0, r4, 0 + bl ItemUseInBattle_PPRecovery + b _080CA6EA +_080CA6E4: + adds r0, r4, 0 + bl ItemUseOutOfBattle_CannotUse +_080CA6EA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end ItemUseInBattle_EnigmaBerry + + thumb_func_start ItemUseOutOfBattle_CannotUse +ItemUseOutOfBattle_CannotUse: @ 80CA6F0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080CA70C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r1, [r1, 0xC] + bl DisplayDadsAdviceCannotUseItemMessage + pop {r0} + bx r0 + .align 2, 0 +_080CA70C: .4byte gTasks + thumb_func_end ItemUseOutOfBattle_CannotUse + + thumb_func_start sub_80CA710 +sub_80CA710: @ 80CA710 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080CA744 + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + ldr r0, _080CA748 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CA74C + ldrh r0, [r5, 0x8] + negs r0, r0 + b _080CA74E + .align 2, 0 +_080CA744: .4byte gUnknown_03004B00 +_080CA748: .4byte gUnknown_0202F7C8 +_080CA74C: + ldrh r0, [r5, 0x8] +_080CA74E: + strh r0, [r4, 0x34] + ldr r0, _080CA760 + ldrh r0, [r0, 0xA] + strh r0, [r4, 0x36] + ldr r0, _080CA764 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CA760: .4byte gUnknown_03004B00 +_080CA764: .4byte sub_80CA768 + thumb_func_end sub_80CA710 + + thumb_func_start sub_80CA768 +sub_80CA768: @ 80CA768 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080CA7A4 + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + ldrh r1, [r4, 0x32] + lsls r0, r1, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r1, r0 + strh r1, [r4, 0x32] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x38] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080CA7AA +_080CA7A4: + adds r0, r4, 0 + bl move_anim_8072740 +_080CA7AA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CA768 + + thumb_func_start sub_80CA7B0 +sub_80CA7B0: @ 80CA7B0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080CA7F0 + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldr r5, _080CA7F4 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080CA7F8 + str r0, [r4, 0x1C] + ldr r1, _080CA7FC + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CA7F0: .4byte gUnknown_03004B00 +_080CA7F4: .4byte gUnknown_0202F7C8 +_080CA7F8: .4byte sub_8078B34 +_080CA7FC: .4byte move_anim_8074EE0 + thumb_func_end sub_80CA7B0 + + thumb_func_start sub_80CA800 +sub_80CA800: @ 80CA800 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r5, _080CA848 + ldrb r1, [r5, 0x6] + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldr r5, _080CA84C + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080CA850 + str r0, [r4, 0x1C] + ldr r1, _080CA854 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CA848: .4byte gUnknown_03004B00 +_080CA84C: .4byte gUnknown_0202F7C9 +_080CA850: .4byte sub_8078B34 +_080CA854: .4byte move_anim_8072740 + thumb_func_end sub_80CA800 + + thumb_func_start sub_80CA858 +sub_80CA858: @ 80CA858 + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r6, _080CA8A8 + ldrh r0, [r6, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldr r5, _080CA8AC + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r6, 0x6] + strh r0, [r4, 0x38] + ldr r1, _080CA8B0 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CA8A8: .4byte gUnknown_03004B00 +_080CA8AC: .4byte gUnknown_0202F7C9 +_080CA8B0: .4byte sub_80CA8B4 + thumb_func_end sub_80CA858 + + thumb_func_start sub_80CA8B4 +sub_80CA8B4: @ 80CA8B4 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080CA8CA + adds r0, r4, 0 + bl DestroySprite + b _080CA91E +_080CA8CA: + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x7F + ble _080CA8E4 + ldr r0, _080CA8E0 + ldrb r0, [r0] + bl sub_8079E90 + adds r0, 0x1 + b _080CA8EE + .align 2, 0 +_080CA8E0: .4byte gUnknown_0202F7C9 +_080CA8E4: + ldr r0, _080CA924 + ldrb r0, [r0] + bl sub_8079E90 + adds r0, 0x6 +_080CA8EE: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x5 + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xE + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0xF + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] +_080CA91E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA924: .4byte gUnknown_0202F7C9 + thumb_func_end sub_80CA8B4 + + thumb_func_start sub_80CA928 +sub_80CA928: @ 80CA928 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080CA998 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x8] + subs r0, 0x1 + movs r2, 0 + strh r0, [r5, 0x8] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080CA982 + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + movs r0, 0x6 + strh r0, [r5, 0x8] + ldr r1, _080CA99C + movs r0, 0xF + strh r0, [r1] + strh r2, [r1, 0x2] + movs r0, 0x50 + strh r0, [r1, 0x4] + strh r2, [r1, 0x6] + ldr r4, _080CA9A0 + ldr r0, _080CA9A4 + ldrb r0, [r0] + bl sub_8079E90 + adds r3, r0, 0 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + bl CreateSpriteAndAnimate +_080CA982: + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0xF + bne _080CA990 + adds r0, r6, 0 + bl move_anim_task_del +_080CA990: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CA998: .4byte gTasks +_080CA99C: .4byte gUnknown_03004B00 +_080CA9A0: .4byte gSpriteTemplate_83D631C +_080CA9A4: .4byte gUnknown_0202F7C9 + thumb_func_end sub_80CA928 + + thumb_func_start sub_80CA9A8 +sub_80CA9A8: @ 80CA9A8 + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r6, _080CA9EC + ldrh r0, [r6, 0x6] + strh r0, [r4, 0x2E] + ldr r5, _080CA9F0 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldrh r0, [r6, 0x4] + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80786EC + ldr r0, _080CA9F4 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CA9EC: .4byte gUnknown_03004B00 +_080CA9F0: .4byte gUnknown_0202F7C8 +_080CA9F4: .4byte sub_80CA9F8 + thumb_func_end sub_80CA9A8 + + thumb_func_start sub_80CA9F8 +sub_80CA9F8: @ 80CA9F8 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080CAA0C + adds r0, r4, 0 + bl move_anim_8072740 +_080CAA0C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CA9F8 + + thumb_func_start sub_80CAA14 +sub_80CAA14: @ 80CAA14 + push {r4,r5,lr} + adds r5, r0, 0 + bl Random + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x7 + ands r1, r0 + adds r0, r5, 0 + bl StartSpriteAnim + ldr r4, _080CAA5C + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CAA60 + ldrh r0, [r5, 0x20] + subs r0, 0x14 + b _080CAA64 + .align 2, 0 +_080CAA5C: .4byte gUnknown_0202F7C8 +_080CAA60: + ldrh r0, [r5, 0x20] + adds r0, 0x14 +_080CAA64: + strh r0, [r5, 0x20] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1F + ands r0, r1 + adds r0, 0x40 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080CAAC4 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8078D60 + bl Random + movs r1, 0xFF + ands r1, r0 + strh r1, [r5, 0x38] + adds r0, r5, 0 + adds r0, 0x43 + ldrb r0, [r0] + strh r0, [r5, 0x3A] + ldr r1, _080CAAC8 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CAAC4: .4byte gUnknown_0202F7C9 +_080CAAC8: .4byte sub_80CAACC + thumb_func_end sub_80CAA14 + + thumb_func_start sub_80CAACC +sub_80CAACC: @ 80CAACC + push {r4,lr} + adds r4, r0, 0 + bl sub_8078CE8 + lsls r0, 24 + cmp r0, 0 + beq _080CAAE2 + adds r0, r4, 0 + bl move_anim_8072740 + b _080CAB12 +_080CAAE2: + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xC + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x7E + bgt _080CAAFE + ldrh r0, [r4, 0x3A] + b _080CAB02 +_080CAAFE: + ldrh r0, [r4, 0x3A] + adds r0, 0x1 +_080CAB02: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrh r0, [r4, 0x38] + adds r0, 0x18 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] +_080CAB12: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CAACC + + thumb_func_start sub_80CAB18 +sub_80CAB18: @ 80CAB18 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080CAB78 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CAB38 + ldr r1, _080CAB7C + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080CAB38: + ldr r4, _080CAB7C + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldr r5, _080CAB80 + ldrb r0, [r5] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r6, 0x36] + ldrh r0, [r4, 0xA] + strh r0, [r6, 0x38] + adds r0, r6, 0 + bl sub_80786EC + ldr r0, _080CAB84 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CAB78: .4byte gUnknown_0202F7C8 +_080CAB7C: .4byte gUnknown_03004B00 +_080CAB80: .4byte gUnknown_0202F7C9 +_080CAB84: .4byte sub_80CAB88 + thumb_func_end sub_80CAB18 + + thumb_func_start sub_80CAB88 +sub_80CAB88: @ 80CAB88 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080CABB2 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0xA + strh r0, [r4, 0x2E] + ldr r0, _080CABB8 + str r0, [r4, 0x1C] + ldr r1, _080CABBC + adds r0, r4, 0 + bl oamt_set_x3A_32 +_080CABB2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CABB8: .4byte sub_80782D8 +_080CABBC: .4byte sub_80CABC0 + thumb_func_end sub_80CAB88 + + thumb_func_start sub_80CABC0 +sub_80CABC0: @ 80CABC0 + push {r4,lr} + adds r4, r0, 0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + movs r0, 0x3C + strh r0, [r4, 0x2E] + ldr r0, _080CABF0 + str r0, [r4, 0x1C] + ldr r1, _080CABF4 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CABF0: .4byte sub_80782D8 +_080CABF4: .4byte move_anim_8072740 + thumb_func_end sub_80CABC0 + + thumb_func_start sub_80CABF8 +sub_80CABF8: @ 80CABF8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r5, _080CAC3C + ldrb r1, [r5, 0x8] + adds r0, r4, 0 + bl StartSpriteAnim + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080CAC22 + ldrb r0, [r4, 0x1] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4, 0x1] +_080CAC22: + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x30] + ldr r1, _080CAC40 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CAC3C: .4byte gUnknown_03004B00 +_080CAC40: .4byte sub_80CAC44 + thumb_func_end sub_80CABF8 + + thumb_func_start sub_80CAC44 +sub_80CAC44: @ 80CAC44 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x3 + negs r1, r1 + bl Cos + ldrh r1, [r4, 0x32] + adds r1, 0x18 + strh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080CAC98 + ldr r0, _080CAC94 + ldrb r0, [r0] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + b _080CACBC + .align 2, 0 +_080CAC94: .4byte gUnknown_0202F7C9 +_080CAC98: + ldr r0, _080CACE8 + ldrb r0, [r0] + bl sub_8079ED4 + adds r0, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080CACAC + movs r2, 0x3 +_080CACAC: + movs r0, 0x3 + ands r2, r0 + lsls r2, 2 + ldrb r1, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + orrs r0, r2 +_080CACBC: + strb r0, [r4, 0x5] + ldrh r0, [r4, 0x30] + adds r0, 0x2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080CACE0 + adds r0, r4, 0 + bl move_anim_8072740 +_080CACE0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CACE8: .4byte gUnknown_0202F7C9 + thumb_func_end sub_80CAC44 + + thumb_func_start sub_80CACEC +sub_80CACEC: @ 80CACEC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080CAD06 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _080CAD0E +_080CAD06: + adds r0, r4, 0 + bl move_anim_task_del + b _080CAD4A +_080CAD0E: + ldr r0, _080CAD2C + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080CAD34 + ldr r0, _080CAD30 + ldrb r1, [r0] + movs r2, 0x3 + orrs r1, r2 + strb r1, [r0] + b _080CAD44 + .align 2, 0 +_080CAD2C: .4byte gUnknown_0202F7C9 +_080CAD30: .4byte REG_BG2CNT +_080CAD34: + ldr r2, _080CAD50 + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_080CAD44: + adds r0, r4, 0 + bl move_anim_task_del +_080CAD4A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CAD50: .4byte REG_BG1CNT + thumb_func_end sub_80CACEC + + thumb_func_start sub_80CAD54 +sub_80CAD54: @ 80CAD54 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_80787B0 + ldr r5, _080CAD9C + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldr r0, _080CADA0 + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x4] + adds r0, r5 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x40 + strh r0, [r4, 0x38] + ldr r1, _080CADA4 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CAD9C: .4byte gUnknown_03004B00 +_080CADA0: .4byte gUnknown_0202F7C8 +_080CADA4: .4byte sub_80CADA8 + thumb_func_end sub_80CAD54 + + thumb_func_start sub_80CADA8 +sub_80CADA8: @ 80CADA8 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _080CAE14 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x5 + negs r1, r1 + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080CADF4 + ldr r0, _080CADF0 + ldrb r0, [r0] + bl sub_8079E90 + subs r0, 0x1 + b _080CADFE + .align 2, 0 +_080CADF0: .4byte gUnknown_0202F7C8 +_080CADF4: + ldr r0, _080CAE10 + ldrb r0, [r0] + bl sub_8079E90 + adds r0, 0x1 +_080CADFE: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrh r0, [r4, 0x38] + adds r0, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080CAE1A + .align 2, 0 +_080CAE10: .4byte gUnknown_0202F7C8 +_080CAE14: + adds r0, r4, 0 + bl move_anim_8072740 +_080CAE1A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CADA8 + + thumb_func_start sub_80CAE20 +sub_80CAE20: @ 80CAE20 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r5, _080CAE68 + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldr r0, _080CAE6C + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x4] + adds r0, r5 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x40 + strh r0, [r4, 0x38] + ldr r1, _080CAE70 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CAE68: .4byte gUnknown_03004B00 +_080CAE6C: .4byte gUnknown_0202F7C8 +_080CAE70: .4byte sub_80CAE74 + thumb_func_end sub_80CAE20 + + thumb_func_start sub_80CAE74 +sub_80CAE74: @ 80CAE74 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _080CAECC + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + ldrh r1, [r4, 0x38] + adds r0, r1, 0 + subs r0, 0x3B + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4 + bls _080CAEAC + adds r0, r1, 0 + subs r0, 0xBB + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4 + bhi _080CAEC0 +_080CAEAC: + ldrb r2, [r4, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + movs r0, 0x8 + eors r1, r0 + lsls r1, 1 + subs r0, 0x47 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x3] +_080CAEC0: + ldrh r0, [r4, 0x38] + adds r0, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080CAED2 +_080CAECC: + adds r0, r4, 0 + bl move_anim_8072740 +_080CAED2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CAE74 + + thumb_func_start sub_80CAED8 +sub_80CAED8: @ 80CAED8 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080CAF14 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r1, _080CAF18 + ldrh r0, [r1] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x32] + ldr r0, _080CAF1C + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CAF14: .4byte gUnknown_0202F7C8 +_080CAF18: .4byte gUnknown_03004B00 +_080CAF1C: .4byte sub_80CAF20 + thumb_func_end sub_80CAED8 + + thumb_func_start sub_80CAF20 +sub_80CAF20: @ 80CAF20 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x32] + movs r2, 0x32 + ldrsh r3, [r1, r2] + cmp r3, 0 + bne _080CAF54 + ldrh r0, [r1, 0x30] + movs r2, 0x1 + ands r2, r0 + cmp r2, 0 + beq _080CAF42 + movs r0, 0x80 + strh r0, [r1, 0x2E] + strh r3, [r1, 0x30] + strh r3, [r1, 0x32] + b _080CAF48 +_080CAF42: + strh r2, [r1, 0x2E] + strh r2, [r1, 0x30] + strh r2, [r1, 0x32] +_080CAF48: + ldr r0, _080CAF50 + str r0, [r1, 0x1C] + b _080CAF68 + .align 2, 0 +_080CAF50: .4byte sub_80CAF6C +_080CAF54: + subs r0, 0x1 + strh r0, [r1, 0x32] + ldrh r0, [r1, 0x2E] + ldrh r2, [r1, 0x20] + adds r0, r2 + strh r0, [r1, 0x20] + ldrh r0, [r1, 0x30] + ldrh r2, [r1, 0x22] + adds r0, r2 + strh r0, [r1, 0x22] +_080CAF68: + pop {r0} + bx r0 + thumb_func_end sub_80CAF20 + + thumb_func_start sub_80CAF6C +sub_80CAF6C: @ 80CAF6C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080CAF8C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CAF90 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x19 + bl Sin + negs r0, r0 + b _080CAF9A + .align 2, 0 +_080CAF8C: .4byte gUnknown_0202F7C8 +_080CAF90: + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x19 + bl Sin +_080CAF9A: + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x2E] + adds r0, 0x2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080CAFBA + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] +_080CAFBA: + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x50 + ble _080CAFC8 + adds r0, r4, 0 + bl move_anim_8072740 +_080CAFC8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CAF6C + + thumb_func_start sub_80CAFD0 +sub_80CAFD0: @ 80CAFD0 + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080CB024 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CAFF0 + ldr r1, _080CB028 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080CAFF0: + ldr r6, _080CB028 + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + movs r1, 0xC + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080CB030 + ldr r4, _080CB02C + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x6] + adds r0, r6 + b _080CB050 + .align 2, 0 +_080CB024: .4byte gUnknown_0202F7C8 +_080CB028: .4byte gUnknown_03004B00 +_080CB02C: .4byte gUnknown_0202F7C9 +_080CB030: + ldr r0, _080CB07C + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_807A3FC + ldrh r0, [r6, 0x4] + ldrh r1, [r5, 0x32] + adds r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r6, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 +_080CB050: + strh r0, [r5, 0x36] + ldr r0, _080CB080 + ldrh r0, [r0, 0xA] + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_80786EC + ldr r0, _080CB084 + ldrb r0, [r0] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r0, _080CB07C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080CB088 + movs r0, 0x1 + b _080CB08A + .align 2, 0 +_080CB07C: .4byte gUnknown_0202F7C9 +_080CB080: .4byte gUnknown_03004B00 +_080CB084: .4byte gUnknown_0202F7C8 +_080CB088: + movs r0, 0 +_080CB08A: + strh r0, [r5, 0x2E] + ldr r0, _080CB098 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CB098: .4byte sub_80CB09C + thumb_func_end sub_80CAFD0 + + thumb_func_start sub_80CB09C +sub_80CB09C: @ 80CB09C + push {r4-r7,lr} + adds r6, r0, 0 + movs r7, 0 + ldrh r5, [r6, 0x2E] + ldrh r4, [r6, 0x3C] + movs r0, 0x1 + strh r0, [r6, 0x2E] + adds r0, r6, 0 + bl sub_8078718 + ldrh r0, [r6, 0x3C] + strh r5, [r6, 0x2E] + lsls r4, 16 + asrs r4, 16 + cmp r4, 0xC8 + ble _080CB0CE + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x37 + bgt _080CB0CE + ldrh r0, [r6, 0x6] + cmp r0, 0 + bne _080CB0D4 + adds r0, 0x1 + strh r0, [r6, 0x6] +_080CB0CE: + ldrh r0, [r6, 0x6] + cmp r0, 0 + beq _080CB106 +_080CB0D4: + movs r1, 0x2E + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _080CB106 + adds r3, r6, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r6, 0x6] + adds r0, 0x1 + strh r0, [r6, 0x6] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1E + bne _080CB106 + movs r7, 0x1 +_080CB106: + movs r2, 0x20 + ldrsh r0, [r6, r2] + movs r2, 0x24 + ldrsh r1, [r6, r2] + adds r0, r1 + adds r0, 0x10 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + bhi _080CB130 + movs r0, 0x22 + ldrsh r1, [r6, r0] + movs r2, 0x26 + ldrsh r0, [r6, r2] + adds r1, r0 + cmp r1, 0xA0 + bgt _080CB130 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080CB132 +_080CB130: + movs r7, 0x1 +_080CB132: + cmp r7, 0 + beq _080CB13C + adds r0, r6, 0 + bl move_anim_8072740 +_080CB13C: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80CB09C + + thumb_func_start sub_80CB144 +sub_80CB144: @ 80CB144 + push {r4,lr} + adds r4, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080CB170 + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080CB170 + ldr r0, _080CB198 + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0x1 + bl sub_807A3FC +_080CB170: + ldrh r0, [r4, 0x22] + adds r0, 0x20 + strh r0, [r4, 0x22] + ldr r1, _080CB19C + ldrh r0, [r1] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x36] + ldr r0, _080CB1A0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CB198: .4byte gUnknown_0202F7C9 +_080CB19C: .4byte gUnknown_03004B00 +_080CB1A0: .4byte sub_80CB1A4 + thumb_func_end sub_80CB144 + + thumb_func_start sub_80CB1A4 +sub_80CB1A4: @ 80CB1A4 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0xFF + bne _080CB1BA + ldrh r0, [r4, 0x22] + subs r0, 0x2 + strh r0, [r4, 0x22] + b _080CB1C8 +_080CB1BA: + cmp r0, 0 + ble _080CB1C8 + ldrh r0, [r4, 0x22] + subs r0, 0x2 + strh r0, [r4, 0x22] + subs r0, r1, 0x2 + strh r0, [r4, 0x30] +_080CB1C8: + ldrh r3, [r4, 0x32] + ldrh r5, [r4, 0x38] + adds r2, r3, r5 + strh r2, [r4, 0x38] + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r5, 0x36 + ldrsh r0, [r4, r5] + cmp r1, r0 + bge _080CB1E0 + adds r0, r2, r3 + strh r0, [r4, 0x38] +_080CB1E0: + ldrh r1, [r4, 0x38] + movs r0, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + movs r5, 0x38 + ldrsh r0, [r4, r5] + movs r1, 0x5 + bl Sin + strh r0, [r4, 0x26] + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x7F + bgt _080CB220 + ldr r0, _080CB21C + ldrb r0, [r0] + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + b _080CB22E + .align 2, 0 +_080CB21C: .4byte gUnknown_0202F7C9 +_080CB220: + ldr r0, _080CB258 + ldrb r0, [r0] + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 +_080CB22E: + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080CB252 + adds r0, r4, 0 + bl move_anim_8072740 +_080CB252: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CB258: .4byte gUnknown_0202F7C9 + thumb_func_end sub_80CB1A4 + + thumb_func_start sub_80CB25C +sub_80CB25C: @ 80CB25C + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0 + bl sub_8078764 + adds r2, r5, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r4, _080CB290 + ldrb r1, [r4, 0x4] + adds r0, r5, 0 + bl StartSpriteAffineAnim + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x3A] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x3C] + ldr r0, _080CB294 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CB290: .4byte gUnknown_03004B00 +_080CB294: .4byte sub_80CB298 + thumb_func_end sub_80CB25C + + thumb_func_start sub_80CB298 +sub_80CB298: @ 80CB298 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080CB2C8 + ldrh r1, [r0, 0xE] + ldr r0, _080CB2CC + cmp r1, r0 + bne _080CB2C2 + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + movs r0, 0x80 + lsls r0, 1 + strh r0, [r4, 0x2E] + ldr r0, _080CB2D0 + str r0, [r4, 0x1C] +_080CB2C2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CB2C8: .4byte gUnknown_03004B00 +_080CB2CC: .4byte 0x0000ffff +_080CB2D0: .4byte sub_80CB2D4 + thumb_func_end sub_80CB298 + + thumb_func_start sub_80CB2D4 +sub_80CB2D4: @ 80CB2D4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080CB2EC + ldrh r0, [r4, 0x2E] + adds r0, 0xB + b _080CB2F0 +_080CB2EC: + ldrh r0, [r4, 0x2E] + subs r0, 0xB +_080CB2F0: + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + bne _080CB30C + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x32] +_080CB30C: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080CB33A + ldrh r0, [r4, 0x3C] + subs r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + cmp r0, 0 + ble _080CB334 + ldrh r1, [r4, 0x3A] + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAffineAnim + b _080CB33A +_080CB334: + adds r0, r4, 0 + bl move_anim_8072740 +_080CB33A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CB2D4 + + thumb_func_start sub_80CB340 +sub_80CB340: @ 80CB340 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080CB36C + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _080CB370 + adds r0, r4, 0 + bl move_anim_task_del + b _080CB396 + .align 2, 0 +_080CB36C: .4byte gSprites +_080CB370: + adds r0, r2, 0 + movs r1, 0x1 + bl sub_8078E70 + ldr r1, _080CB39C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r2, _080CB3A0 + ldrh r1, [r2] + strh r1, [r0, 0x8] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0xA] + movs r1, 0x80 + lsls r1, 1 + strh r1, [r0, 0x1E] + ldr r1, _080CB3A4 + str r1, [r0] +_080CB396: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CB39C: .4byte gTasks +_080CB3A0: .4byte gUnknown_03004B00 +_080CB3A4: .4byte sub_80CB3A8 + thumb_func_end sub_80CB340 + + thumb_func_start sub_80CB3A8 +sub_80CB3A8: @ 80CB3A8 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080CB428 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0x8] + ldrh r0, [r4, 0x1C] + adds r1, r0 + strh r1, [r4, 0x1C] + ldr r2, _080CB42C + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r5, r0, r2 + lsls r1, 16 + asrs r1, 24 + strh r1, [r5, 0x24] + ldr r0, _080CB430 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CB3F2 + ldrh r0, [r5, 0x24] + negs r0, r0 + strh r0, [r5, 0x24] +_080CB3F2: + ldrh r0, [r4, 0x1E] + adds r0, 0x10 + strh r0, [r4, 0x1E] + movs r0, 0x1E + ldrsh r2, [r4, r0] + adds r0, r6, 0 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + adds r0, r6, 0 + bl sub_8079A64 + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080CB420 + strh r0, [r4, 0x8] + ldr r0, _080CB434 + str r0, [r4] +_080CB420: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CB428: .4byte gTasks +_080CB42C: .4byte gSprites +_080CB430: .4byte gUnknown_0202F7C9 +_080CB434: .4byte sub_80CB438 + thumb_func_end sub_80CB3A8 + + thumb_func_start sub_80CB438 +sub_80CB438: @ 80CB438 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _080CB484 + ldrh r1, [r0, 0xE] + ldr r0, _080CB488 + cmp r1, r0 + bne _080CB494 + ldr r0, _080CB48C + lsls r2, r3, 2 + adds r1, r2, r3 + lsls r1, 3 + adds r6, r1, r0 + movs r1, 0x8 + ldrsh r5, [r6, r1] + adds r4, r0, 0 + cmp r5, 0 + bne _080CB4A8 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_8078F40 + ldr r1, _080CB490 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + strh r5, [r0, 0x24] + strh r5, [r0, 0x26] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + b _080CB4C2 + .align 2, 0 +_080CB484: .4byte gUnknown_03004B00 +_080CB488: .4byte 0x0000ffff +_080CB48C: .4byte gTasks +_080CB490: .4byte gSprites +_080CB494: + ldr r1, _080CB4C8 + lsls r2, r3, 2 + adds r0, r2, r3 + lsls r0, 3 + adds r0, r1 + movs r4, 0x8 + ldrsh r0, [r0, r4] + adds r4, r1, 0 + cmp r0, 0 + beq _080CB4C2 +_080CB4A8: + adds r1, r2, r3 + lsls r1, 3 + adds r1, r4 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080CB4C2 + adds r0, r3, 0 + bl move_anim_task_del +_080CB4C2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CB4C8: .4byte gTasks + thumb_func_end sub_80CB438 + + thumb_func_start sub_80CB4CC +sub_80CB4CC: @ 80CB4CC + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080CB4DE + cmp r0, 0x1 + beq _080CB538 + b _080CB58A +_080CB4DE: + ldr r6, _080CB530 + ldrb r0, [r6] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CB4F6 + ldr r1, _080CB534 + movs r2, 0 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1] +_080CB4F6: + ldrb r0, [r6] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080CB534 + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 + strh r0, [r5, 0x22] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080CB58A + .align 2, 0 +_080CB530: .4byte gUnknown_0202F7C9 +_080CB534: .4byte gUnknown_03004B00 +_080CB538: + adds r2, r5, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080CB58A + adds r0, r5, 0 + movs r1, 0x1 + bl ChangeSpriteAffineAnim + movs r0, 0x19 + strh r0, [r5, 0x2E] + ldr r4, _080CB590 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080CB594 + str r0, [r5, 0x1C] + ldr r1, _080CB598 + adds r0, r5, 0 + bl oamt_set_x3A_32 +_080CB58A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CB590: .4byte gUnknown_0202F7C8 +_080CB594: .4byte sub_8078CC0 +_080CB598: .4byte move_anim_8072740 + thumb_func_end sub_80CB4CC + + thumb_func_start sub_80CB59C +sub_80CB59C: @ 80CB59C + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080CB608 + ldr r4, _080CB614 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _080CB618 + ldrh r0, [r4] + strh r0, [r5, 0x24] + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x26] + ldrb r0, [r4, 0x4] + adds r0, 0x1E + adds r1, r5, 0 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r4, 0x6] + adds r0, r5, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + movs r2, 0x22 + ldrsh r0, [r5, r2] + movs r2, 0x26 + ldrsh r1, [r5, r2] + adds r0, r1 + cmp r0, 0x78 + ble _080CB608 + ldrh r0, [r5, 0x22] + adds r1, r0, 0 + subs r1, 0x78 + ldrh r2, [r5, 0x26] + adds r0, r2 + adds r1, r0 + strh r1, [r5, 0x22] +_080CB608: + ldr r0, _080CB61C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CB614: .4byte gUnknown_0202F7C8 +_080CB618: .4byte gUnknown_03004B00 +_080CB61C: .4byte sub_80CB710 + thumb_func_end sub_80CB59C + + thumb_func_start sub_80CB620 +sub_80CB620: @ 80CB620 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x4 + mov r9, r0 + ldr r4, _080CB6FC + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + mov r8, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r6, _080CB700 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8077ABC + adds r2, r0, 0 + lsls r2, 24 + subs r4, r5 + lsls r4, 16 + lsrs r2, 24 + mov r1, r8 + subs r2, r1 + lsls r2, 16 + lsrs r2, 16 + lsrs r3, r4, 16 + mov r10, r3 + asrs r4, 16 + ldr r6, _080CB704 + movs r1, 0 + ldrsh r0, [r6, r1] + muls r0, r4 + movs r1, 0x64 + str r2, [sp] + bl __divsi3 + adds r5, r0 + mov r3, r9 + strh r5, [r3, 0x20] + ldr r2, [sp] + lsls r0, r2, 16 + asrs r0, 16 + movs r3, 0 + ldrsh r1, [r6, r3] + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + add r8, r0 + mov r1, r8 + mov r0, r9 + strh r1, [r0, 0x22] + ldrh r0, [r6, 0x2] + mov r3, r9 + strh r0, [r3, 0x24] + ldrh r0, [r6, 0x4] + strh r0, [r3, 0x26] + ldrb r0, [r6, 0x6] + adds r0, 0x1E + mov r1, r9 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r6, 0x8] + mov r0, r9 + bl StartSpriteAnim + ldrh r0, [r6, 0xA] + mov r1, r9 + strh r0, [r1, 0x32] + ldr r0, _080CB708 + str r0, [r1, 0x1C] + ldr r1, _080CB70C + mov r3, r9 + ldrh r0, [r3, 0x20] + strh r0, [r1] + ldrh r0, [r3, 0x22] + strh r0, [r1, 0x2] + mov r0, r10 + strh r0, [r1, 0x4] + ldr r2, [sp] + strh r2, [r1, 0x6] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CB6FC: .4byte gUnknown_0202F7C8 +_080CB700: .4byte gUnknown_0202F7C9 +_080CB704: .4byte gUnknown_03004B00 +_080CB708: .4byte sub_80CB710 +_080CB70C: .4byte gUnknown_03000728 + thumb_func_end sub_80CB620 + + thumb_func_start sub_80CB710 +sub_80CB710: @ 80CB710 + push {lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x2E] + adds r1, 0x1 + strh r1, [r3, 0x2E] + lsls r1, 16 + asrs r1, 16 + movs r2, 0x32 + ldrsh r0, [r3, r2] + subs r0, 0xA + cmp r1, r0 + ble _080CB750 + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + movs r2, 0x3E + adds r2, r3 + mov r12, r2 + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] +_080CB750: + movs r2, 0x2E + ldrsh r1, [r3, r2] + movs r2, 0x32 + ldrsh r0, [r3, r2] + cmp r1, r0 + ble _080CB762 + adds r0, r3, 0 + bl move_anim_8072740 +_080CB762: + pop {r0} + bx r0 + thumb_func_end sub_80CB710 + + thumb_func_start sub_80CB768 +sub_80CB768: @ 80CB768 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x2E + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080CB7A8 + ldr r5, _080CB7E4 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080CB7E8 + lsrs r0, 24 + ldrh r2, [r4] + adds r0, r2 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x22] + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x30] + ldrh r0, [r4, 0x6] + strh r0, [r6, 0x32] + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x34] +_080CB7A8: + ldrh r0, [r6, 0x2E] + adds r0, 0x1 + strh r0, [r6, 0x2E] + ldrh r1, [r6, 0x30] + muls r0, r1 + strh r0, [r6, 0x24] + movs r2, 0x2E + ldrsh r1, [r6, r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + movs r1, 0xFF + ands r0, r1 + movs r2, 0x32 + ldrsh r1, [r6, r2] + bl Sin + strh r0, [r6, 0x26] + movs r0, 0x2E + ldrsh r1, [r6, r0] + movs r2, 0x34 + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _080CB7DE + adds r0, r6, 0 + bl move_anim_8072740 +_080CB7DE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CB7E4: .4byte gUnknown_0202F7C8 +_080CB7E8: .4byte gUnknown_03004B00 + thumb_func_end sub_80CB768 + + thumb_func_start sub_80CB7EC +sub_80CB7EC: @ 80CB7EC + push {r4,r5,lr} + movs r2, 0x20 + ldrsh r4, [r0, r2] + lsls r4, 8 + movs r3, 0x22 + ldrsh r2, [r0, r3] + orrs r4, r2 + movs r5, 0x3A + ldrsh r2, [r0, r5] + lsls r2, 8 + movs r5, 0x3C + ldrsh r3, [r0, r5] + orrs r2, r3 + lsls r1, 8 + strh r4, [r0, 0x38] + strh r2, [r0, 0x3A] + strh r1, [r0, 0x3C] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80CB7EC + + thumb_func_start sub_80CB814 +sub_80CB814: @ 80CB814 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r0 + ldrh r0, [r0, 0x38] + lsrs r1, r0, 8 + mov r10, r1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + mov r1, r8 + ldrh r0, [r1, 0x3A] + lsrs r2, r0, 8 + lsls r0, 24 + lsrs r4, r0, 24 + ldrh r1, [r1, 0x3C] + lsls r0, r1, 16 + asrs r0, 24 + lsls r0, 16 + lsrs r6, r0, 16 + movs r3, 0xFF + ands r3, r1 + cmp r2, 0 + bne _080CB84E + movs r2, 0x20 + negs r2, r2 + b _080CB856 +_080CB84E: + cmp r2, 0xFF + bne _080CB856 + movs r2, 0x88 + lsls r2, 1 +_080CB856: + mov r0, r9 + subs r4, r0 + lsls r4, 16 + lsrs r4, 16 + mov r1, r10 + subs r0, r2, r1 + lsls r5, r3, 16 + asrs r5, 16 + muls r0, r5 + lsls r1, r6, 16 + asrs r7, r1, 16 + adds r1, r7, 0 + bl __divsi3 + adds r6, r0, 0 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + muls r0, r5 + adds r1, r7, 0 + bl __divsi3 + add r6, r10 + mov r1, r8 + strh r6, [r1, 0x20] + add r0, r9 + strh r0, [r1, 0x22] + adds r5, 0x1 + lsls r5, 16 + lsrs r3, r5, 16 + asrs r5, 16 + cmp r5, r7 + beq _080CB8A8 + lsls r1, r7, 8 + lsls r0, r3, 16 + asrs r0, 16 + orrs r0, r1 + mov r1, r8 + strh r0, [r1, 0x3C] + movs r0, 0 + b _080CB8AA +_080CB8A8: + movs r0, 0x1 +_080CB8AA: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80CB814 + + thumb_func_start sub_80CB8B8 +sub_80CB8B8: @ 80CB8B8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0xA + bne _080CB8CC + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080CB8CC: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x32 + ble _080CB8E0 + adds r0, r4, 0 + bl move_anim_8072740 +_080CB8E0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CB8B8 + + thumb_func_start sub_80CB8E8 +sub_80CB8E8: @ 80CB8E8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 7 + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + ldrh r1, [r4, 0x2E] + adds r1, r0 + movs r5, 0 + strh r1, [r4, 0x2E] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x7F + ble _080CB912 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + strh r5, [r4, 0x2E] +_080CB912: + ldrh r0, [r4, 0x2E] + adds r0, 0x80 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x30 + ldrsh r2, [r4, r1] + lsls r2, 3 + movs r1, 0x1E + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x26] + adds r0, r4, 0 + bl sub_80CB814 + lsls r0, 24 + cmp r0, 0 + beq _080CB942 + strh r5, [r4, 0x26] + strh r5, [r4, 0x2E] + ldr r0, _080CB948 + str r0, [r4, 0x1C] +_080CB942: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CB948: .4byte sub_80CB8B8 + thumb_func_end sub_80CB8E8 + + thumb_func_start sub_80CB94C +sub_80CB94C: @ 80CB94C + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0 + bl sub_80787B0 + ldr r4, _080CB994 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080CB998 + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + ldrb r4, [r4] + cmp r0, r4 + bne _080CB99C + strh r6, [r5, 0x3A] + adds r0, r2, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x3C + bl sub_80CB7EC + movs r0, 0x1 + b _080CB9AE + .align 2, 0 +_080CB994: .4byte gUnknown_0202F7C9 +_080CB998: .4byte gUnknown_0202F7C8 +_080CB99C: + strh r6, [r5, 0x3A] + adds r0, r2, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x3C + bl sub_80CB7EC + movs r0, 0x3 +_080CB9AE: + strh r0, [r5, 0x34] + movs r0, 0x3C + strh r0, [r5, 0x36] + ldr r0, _080CB9C0 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CB9C0: .4byte sub_80CB8E8 + thumb_func_end sub_80CB94C + + thumb_func_start sub_80CB9C4 +sub_80CB9C4: @ 80CB9C4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 7 + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + ldrh r1, [r4, 0x2E] + adds r1, r0 + movs r5, 0 + strh r1, [r4, 0x2E] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x7F + ble _080CB9EE + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + strh r5, [r4, 0x2E] +_080CB9EE: + ldrh r0, [r4, 0x2E] + adds r0, 0x80 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x30 + ldrsh r2, [r4, r1] + lsls r2, 3 + movs r1, 0x1E + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x26] + adds r0, r4, 0 + bl sub_80CB814 + lsls r0, 24 + cmp r0, 0 + beq _080CBA20 + strh r5, [r4, 0x26] + strh r5, [r4, 0x2E] + adds r0, r4, 0 + bl move_anim_8072740 +_080CBA20: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80CB9C4 + + thumb_func_start sub_80CBA28 +sub_80CBA28: @ 80CBA28 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _080CBA64 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080CBA6C + strh r0, [r5, 0x3A] + adds r0, r6, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x28 + bl sub_80CB7EC + movs r0, 0x3 + strh r0, [r5, 0x34] + movs r0, 0x3C + strh r0, [r5, 0x36] + ldr r0, _080CBA68 + b _080CBA96 + .align 2, 0 +_080CBA64: .4byte gUnknown_0202F7C9 +_080CBA68: .4byte sub_80CB8E8 +_080CBA6C: + movs r0, 0xFF + strh r0, [r5, 0x3A] + adds r0, r6, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CBA84 + movs r0, 0 + strh r0, [r5, 0x3A] +_080CBA84: + adds r0, r5, 0 + movs r1, 0x28 + bl sub_80CB7EC + movs r0, 0x3 + strh r0, [r5, 0x34] + movs r0, 0x3C + strh r0, [r5, 0x36] + ldr r0, _080CBAA0 +_080CBA96: + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CBAA0: .4byte sub_80CB9C4 + thumb_func_end sub_80CBA28 + + thumb_func_start sub_80CBAA4 +sub_80CBAA4: @ 80CBAA4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080CBABE + adds r0, r4, 0 + movs r1, 0 + bl sub_8078764 + ldr r0, _080CBAE4 + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x30] +_080CBABE: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + ldrh r1, [r4, 0x30] + muls r0, r1 + strh r0, [r4, 0x26] + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080CBADE + adds r0, r4, 0 + bl move_anim_8072740 +_080CBADE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CBAE4: .4byte gUnknown_03004B00 + thumb_func_end sub_80CBAA4 + + thumb_func_start sub_80CBAE8 +sub_80CBAE8: @ 80CBAE8 + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0 + bl sub_8078764 + ldr r4, _080CBB30 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080CBB34 + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + ldrb r4, [r4] + cmp r0, r4 + bne _080CBB38 + strh r6, [r5, 0x3A] + adds r0, r2, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x3C + bl sub_80CB7EC + movs r0, 0x1 + b _080CBB4A + .align 2, 0 +_080CBB30: .4byte gUnknown_0202F7C8 +_080CBB34: .4byte gUnknown_0202F7C9 +_080CBB38: + strh r6, [r5, 0x3A] + adds r0, r2, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x3C + bl sub_80CB7EC + movs r0, 0x3 +_080CBB4A: + strh r0, [r5, 0x34] + movs r0, 0x3C + strh r0, [r5, 0x36] + ldr r0, _080CBB5C + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CBB5C: .4byte sub_80CBB60 + thumb_func_end sub_80CBAE8 + + thumb_func_start sub_80CBB60 +sub_80CBB60: @ 80CBB60 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 7 + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + ldrh r1, [r4, 0x2E] + adds r1, r0 + movs r5, 0 + strh r1, [r4, 0x2E] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x7F + ble _080CBB8A + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + strh r5, [r4, 0x2E] +_080CBB8A: + ldrh r0, [r4, 0x2E] + adds r0, 0x80 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x30 + ldrsh r2, [r4, r1] + lsls r2, 3 + movs r1, 0x1E + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x26] + lsls r0, 16 + cmp r0, 0 + bne _080CBBBE + movs r0, 0x3F + bl sub_8076F98 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x7D + bl PlaySE12WithPanning +_080CBBBE: + adds r0, r4, 0 + bl sub_80CB814 + lsls r0, 24 + cmp r0, 0 + beq _080CBBE6 + strh r5, [r4, 0x26] + strh r5, [r4, 0x2E] + ldr r0, _080CBBEC + str r0, [r4, 0x1C] + movs r0, 0x40 + negs r0, r0 + bl sub_8076F98 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x7D + bl PlaySE12WithPanning +_080CBBE6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CBBEC: .4byte sub_80CB8B8 + thumb_func_end sub_80CBB60 + + thumb_func_start sub_80CBBF0 +sub_80CBBF0: @ 80CBBF0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080CBC84 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080CBC18 + ldr r0, _080CBC14 + ldrh r1, [r0, 0x2] + strh r1, [r4, 0x30] + movs r1, 0x78 + strh r1, [r4, 0x20] + adds r5, r0, 0 + b _080CBC3A + .align 2, 0 +_080CBC14: .4byte gUnknown_03004B00 +_080CBC18: + ldr r0, _080CBC74 + movs r1, 0x2 + ldrsh r3, [r0, r1] + adds r1, r3, 0 + subs r1, 0x20 + adds r2, r1, 0 + adds r5, r0, 0 + cmp r1, 0 + bge _080CBC2E + adds r2, r3, 0 + adds r2, 0xDF +_080CBC2E: + asrs r0, r2, 8 + lsls r0, 8 + subs r0, r1, r0 + strh r0, [r4, 0x30] + movs r0, 0x46 + strh r0, [r4, 0x20] +_080CBC3A: + ldrh r0, [r5] + strh r0, [r4, 0x22] + strh r0, [r4, 0x32] + movs r0, 0x14 + strh r0, [r4, 0x36] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x3C + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x14 + bl Sin + strh r0, [r4, 0x26] + ldr r0, _080CBC78 + str r0, [r4, 0x1C] + ldrh r0, [r4, 0x30] + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xBE + bhi _080CBC7C + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1F + b _080CBC82 + .align 2, 0 +_080CBC74: .4byte gUnknown_03004B00 +_080CBC78: .4byte sub_80CBC8C +_080CBC7C: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1D +_080CBC82: + strb r0, [r1] +_080CBC84: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80CBBF0 + + thumb_func_start sub_80CBC8C +sub_80CBC8C: @ 80CBC8C + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080CBC9E + cmp r0, 0x1 + beq _080CBCCE + b _080CBCEE +_080CBC9E: + ldrh r5, [r4, 0x32] + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x4E + ble _080CBCB6 + movs r0, 0x1 + strh r0, [r4, 0x34] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _080CBCEE +_080CBCB6: + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __divsi3 + adds r0, r5, r0 + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x36] + adds r1, 0x3 + strh r1, [r4, 0x36] + strh r0, [r4, 0x22] + b _080CBCEE +_080CBCCE: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080CBCEE + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080CBCEE + movs r0, 0 + strh r0, [r4, 0x2E] + strh r0, [r4, 0x32] + ldr r0, _080CBCF4 + str r0, [r4, 0x1C] +_080CBCEE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CBCF4: .4byte sub_80CBCF8 + thumb_func_end sub_80CBC8C + + thumb_func_start sub_80CBCF8 +sub_80CBCF8: @ 80CBCF8 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, _080CBD3C + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r3, r0, r1 + adds r0, r5, 0x1 + adds r0, r3, r0 + ldrh r2, [r4, 0x32] + movs r6, 0x32 + ldrsh r1, [r4, r6] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080CBD44 + adds r0, r5, 0x2 + adds r0, r3, r0 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x7F + bne _080CBD30 + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080CBD40 + str r0, [r4, 0x1C] +_080CBD30: + movs r0, 0 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080CBDAA + .align 2, 0 +_080CBD3C: .4byte gUnknown_083D680C +_080CBD40: .4byte sub_80CBDB0 +_080CBD44: + adds r0, r2, 0x1 + strh r0, [r4, 0x32] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + adds r1, r0, r5 + movs r2, 0 + ldrsb r2, [r1, r2] + adds r1, r5, 0x2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + muls r0, r2 + ldrh r1, [r4, 0x30] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080CBD92 + ldrh r0, [r4, 0x30] + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xBE + bhi _080CBD8A + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1F + b _080CBD90 +_080CBD8A: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1D +_080CBD90: + strb r0, [r1] +_080CBD92: + movs r6, 0x30 + ldrsh r0, [r4, r6] + movs r1, 0x3C + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x14 + bl Sin + strh r0, [r4, 0x26] +_080CBDAA: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80CBCF8 + + thumb_func_start sub_80CBDB0 +sub_80CBDB0: @ 80CBDB0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x14 + ble _080CBDC2 + adds r0, r4, 0 + bl move_anim_8072740 +_080CBDC2: + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CBDB0 + + thumb_func_start sub_80CBDF4 +sub_80CBDF4: @ 80CBDF4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080CBF48 + adds r5, r0, r1 + ldr r4, _080CBF4C + ldrb r0, [r4] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + strh r0, [r5, 0x10] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x14] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x16] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_807A100 + strh r0, [r5, 0x1C] + ldrb r0, [r4] + movs r1, 0 + bl sub_807A100 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0x1 + bne _080CBE5C + movs r1, 0x1 +_080CBE5C: + strh r1, [r5, 0x12] + movs r3, 0x12 + ldrsh r0, [r5, r3] + lsls r0, 6 + movs r1, 0x38 + subs r1, r0 + strh r1, [r5, 0x1A] + ldrh r0, [r5, 0x16] + subs r0, r1 + ldrh r1, [r5, 0x14] + adds r0, r1 + strh r0, [r5, 0x18] + ldr r0, _080CBF50 + movs r2, 0x18 + ldrsh r1, [r5, r2] + movs r3, 0x1A + ldrsh r2, [r5, r3] + ldrb r3, [r5, 0x10] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xC] + cmp r0, 0x40 + bne _080CBE94 + adds r0, r6, 0 + bl move_anim_task_del +_080CBE94: + ldr r4, _080CBF54 + movs r0, 0xC + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xA + strh r1, [r0, 0x2E] + movs r2, 0xC + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r5, 0x18] + strh r1, [r0, 0x30] + movs r3, 0xC + ldrsh r0, [r5, r3] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + movs r1, 0x1C + ldrsh r0, [r5, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r5, r3] + muls r1, r0 + ldrh r0, [r5, 0x14] + subs r0, r1 + strh r0, [r2, 0x32] + movs r0, 0xC + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r5, 0x1A] + strh r1, [r0, 0x34] + movs r1, 0xC + ldrsh r0, [r5, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r2, 0x1E + ldrsh r0, [r5, r2] + lsrs r2, r0, 31 + adds r0, r2 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r2, [r5, r3] + muls r0, r2 + ldrh r2, [r5, 0x16] + adds r0, r2 + strh r0, [r1, 0x36] + movs r3, 0xC + ldrsh r1, [r5, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_80CC338 + movs r1, 0xC + ldrsh r2, [r5, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r0, [r1, 0x38] + movs r2, 0xC + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_80786EC + ldr r0, _080CBF58 + str r0, [r5] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CBF48: .4byte gTasks +_080CBF4C: .4byte gUnknown_0202F7C9 +_080CBF50: .4byte gSpriteTemplate_83D6884 +_080CBF54: .4byte gSprites +_080CBF58: .4byte sub_80CBF5C + thumb_func_end sub_80CBDF4 + + thumb_func_start sub_80CBF5C +sub_80CBF5C: @ 80CBF5C + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080CBFA0 + adds r6, r0, r1 + movs r0, 0xC + ldrsh r1, [r6, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080CBFA4 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r5, [r6, r1] + cmp r5, 0x7 + bne _080CBF84 + b _080CC1B4 +_080CBF84: + cmp r5, 0x7 + bgt _080CBFD2 + cmp r5, 0x3 + bne _080CBF8E + b _080CC0A6 +_080CBF8E: + cmp r5, 0x3 + bgt _080CBFA8 + cmp r5, 0x1 + beq _080CC038 + cmp r5, 0x1 + bgt _080CC088 + cmp r5, 0 + beq _080CC01A + b _080CC330 + .align 2, 0 +_080CBFA0: .4byte gTasks +_080CBFA4: .4byte gSprites +_080CBFA8: + cmp r5, 0x5 + bne _080CBFAE + b _080CC11C +_080CBFAE: + cmp r5, 0x5 + ble _080CBFB4 + b _080CC196 +_080CBFB4: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80CC358 + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + bne _080CBFCA + b _080CC330 +_080CBFCA: + movs r0, 0x5 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080CC32E +_080CBFD2: + cmp r5, 0xB + bne _080CBFD8 + b _080CC298 +_080CBFD8: + cmp r5, 0xB + bgt _080CC006 + cmp r5, 0x9 + bne _080CBFE2 + b _080CC206 +_080CBFE2: + cmp r5, 0x9 + ble _080CBFE8 + b _080CC27C +_080CBFE8: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80CC358 + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + bne _080CBFFE + b _080CC330 +_080CBFFE: + movs r0, 0x9 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080CC32E +_080CC006: + cmp r5, 0xD + bne _080CC00C + b _080CC30A +_080CC00C: + cmp r5, 0xD + bge _080CC012 + b _080CC2EA +_080CC012: + cmp r5, 0xFF + bne _080CC018 + b _080CC31A +_080CC018: + b _080CC330 +_080CC01A: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80CC358 + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + bne _080CC030 + b _080CC330 +_080CC030: + movs r0, 0x1 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080CC32E +_080CC038: + ldrh r2, [r4, 0x24] + ldrh r3, [r4, 0x20] + adds r2, r3 + movs r0, 0 + strh r2, [r4, 0x20] + ldrh r1, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r1, r3 + strh r1, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r2, [r4, 0x30] + ldrh r0, [r6, 0x14] + strh r0, [r4, 0x32] + strh r1, [r4, 0x34] + ldrh r0, [r6, 0x16] + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80CC338 + strh r0, [r4, 0x38] + ldrh r0, [r6, 0x10] + adds r0, 0x2 + strh r0, [r6, 0x10] + strh r5, [r6, 0xE] + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_80786EC + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080CC32E +_080CC088: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80CC358 + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + bne _080CC09E + b _080CC330 +_080CC09E: + movs r0, 0x3 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080CC32E +_080CC0A6: + ldrh r1, [r4, 0x24] + ldrh r0, [r4, 0x20] + adds r1, r0 + movs r0, 0 + strh r1, [r4, 0x20] + ldrh r2, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r2, r3 + strh r2, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r1, 0x1C + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r6, r3] + muls r1, r0 + ldrh r0, [r6, 0x14] + subs r0, r1 + strh r0, [r4, 0x32] + strh r2, [r4, 0x34] + movs r1, 0x1E + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r2, 0x12 + ldrsh r1, [r6, r2] + muls r1, r0 + ldrh r0, [r6, 0x16] + subs r0, r1 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80CC338 + strh r0, [r4, 0x38] + movs r0, 0x2 + strh r0, [r6, 0xE] + ldrh r0, [r6, 0x10] + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_80786EC + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080CC32E +_080CC11C: + ldrh r1, [r4, 0x24] + ldrh r3, [r4, 0x20] + adds r1, r3 + movs r0, 0 + strh r1, [r4, 0x20] + ldrh r2, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r2, r3 + strh r2, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r1, 0x1C + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r6, r3] + muls r0, r1 + ldrh r1, [r6, 0x14] + adds r0, r1 + strh r0, [r4, 0x32] + strh r2, [r4, 0x34] + movs r2, 0x1E + ldrsh r0, [r6, r2] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r6, r3] + muls r0, r1 + ldrh r1, [r6, 0x16] + adds r0, r1 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80CC338 + strh r0, [r4, 0x38] + ldrh r1, [r6, 0x10] + subs r1, 0x2 + strh r1, [r6, 0x10] + movs r0, 0x3 + strh r0, [r6, 0xE] + adds r0, r4, 0 + adds r0, 0x43 + strb r1, [r0] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_80786EC + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080CC32E +_080CC196: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80CC358 + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + bne _080CC1AC + b _080CC330 +_080CC1AC: + movs r0, 0x7 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080CC32E +_080CC1B4: + ldrh r2, [r4, 0x24] + ldrh r3, [r4, 0x20] + adds r2, r3 + movs r0, 0 + strh r2, [r4, 0x20] + ldrh r1, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r1, r3 + strh r1, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r2, [r4, 0x30] + ldrh r0, [r6, 0x14] + strh r0, [r4, 0x32] + strh r1, [r4, 0x34] + ldrh r0, [r6, 0x16] + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80CC338 + strh r0, [r4, 0x38] + ldrh r1, [r6, 0x10] + adds r1, 0x2 + strh r1, [r6, 0x10] + movs r0, 0x4 + strh r0, [r6, 0xE] + adds r0, r4, 0 + adds r0, 0x43 + strb r1, [r0] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_80786EC + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080CC32E +_080CC206: + ldrh r1, [r4, 0x24] + ldrh r0, [r4, 0x20] + adds r1, r0 + movs r0, 0 + strh r1, [r4, 0x20] + ldrh r2, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r2, r3 + strh r2, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r1, 0x1C + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r6, r3] + muls r1, r0 + ldrh r0, [r6, 0x14] + subs r0, r1 + strh r0, [r4, 0x32] + strh r2, [r4, 0x34] + movs r1, 0x1E + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r2, 0x12 + ldrsh r1, [r6, r2] + muls r0, r1 + ldrh r3, [r6, 0x16] + adds r0, r3 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80CC338 + strh r0, [r4, 0x38] + movs r0, 0x5 + strh r0, [r6, 0xE] + ldrh r0, [r6, 0x10] + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_80786EC + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080CC32E +_080CC27C: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80CC358 + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080CC330 + movs r0, 0xB + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080CC32E +_080CC298: + ldrh r2, [r4, 0x24] + ldrh r0, [r4, 0x20] + adds r2, r0 + movs r0, 0 + strh r2, [r4, 0x20] + ldrh r1, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r1, r3 + strh r1, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r2, [r4, 0x30] + ldrh r0, [r6, 0x18] + strh r0, [r4, 0x32] + strh r1, [r4, 0x34] + ldrh r0, [r6, 0x1A] + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80CC338 + strh r0, [r4, 0x38] + ldrh r1, [r6, 0x10] + subs r1, 0x2 + strh r1, [r6, 0x10] + movs r0, 0x6 + strh r0, [r6, 0xE] + adds r0, r4, 0 + adds r0, 0x43 + strb r1, [r0] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_80786EC + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080CC32E +_080CC2EA: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80CC358 + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080CC330 + adds r0, r4, 0 + bl DestroySprite + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080CC32E +_080CC30A: + movs r1, 0x20 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080CC330 + adds r0, r2, 0 + bl move_anim_task_del + b _080CC330 +_080CC31A: + ldrh r0, [r6, 0xA] + adds r0, 0x1 + strh r0, [r6, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080CC330 + movs r0, 0 + strh r0, [r6, 0xA] + ldrh r0, [r6, 0x26] +_080CC32E: + strh r0, [r6, 0x8] +_080CC330: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80CBF5C + + thumb_func_start sub_80CC338 +sub_80CC338: @ 80CC338 + push {lr} + movs r2, 0x8 + movs r3, 0x36 + ldrsh r1, [r0, r3] + movs r3, 0x22 + ldrsh r0, [r0, r3] + cmp r1, r0 + bge _080CC34E + negs r0, r2 + lsls r0, 16 + lsrs r2, r0, 16 +_080CC34E: + lsls r0, r2, 16 + asrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80CC338 + + thumb_func_start sub_80CC358 +sub_80CC358: @ 80CC358 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + lsls r1, 24 + lsrs r7, r1, 24 + ldrh r0, [r6, 0x24] + adds r0, 0x1 + strh r0, [r6, 0x24] + lsls r0, 16 + cmp r0, 0 + ble _080CC3EE + movs r0, 0 + strh r0, [r6, 0x24] + ldr r0, _080CC3F8 + mov r8, r0 + movs r2, 0xC + ldrsh r1, [r6, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + ldrh r1, [r0, 0x24] + ldrh r2, [r0, 0x20] + adds r1, r2 + ldrh r2, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r2, r0 + ldr r0, _080CC3FC + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + ldrb r3, [r6, 0x10] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080CC3EE + lsls r5, r0, 4 + adds r5, r0 + lsls r5, 2 + mov r0, r8 + adds r4, r5, r0 + strh r7, [r4, 0x3A] + movs r0, 0xC + strh r0, [r4, 0x3C] + ldr r0, _080CC400 + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + ldrh r2, [r6, 0x22] + movs r0, 0x1 + ands r0, r2 + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x22] + adds r0, 0x1 + strh r0, [r1, 0x22] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r6, 0x10] + adds r4, 0x43 + strb r0, [r4] + mov r0, r8 + adds r0, 0x1C + adds r5, r0 + ldr r0, _080CC404 + str r0, [r5] +_080CC3EE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CC3F8: .4byte gSprites +_080CC3FC: .4byte gSpriteTemplate_83D6884 +_080CC400: .4byte gTasks +_080CC404: .4byte sub_80CC408 + thumb_func_end sub_80CC358 + + thumb_func_start sub_80CC408 +sub_80CC408: @ 80CC408 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080CC46A + movs r0, 0 + strh r0, [r4, 0x2E] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080CC46A + ldr r3, _080CC470 + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080CC46A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CC470: .4byte gTasks + thumb_func_end sub_80CC408 + + thumb_func_start sub_80CC474 +sub_80CC474: @ 80CC474 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r0, _080CC488 + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CC490 + ldr r0, _080CC48C + b _080CC492 + .align 2, 0 +_080CC488: .4byte gUnknown_03004B00 +_080CC48C: .4byte gUnknown_0202F7C8 +_080CC490: + ldr r0, _080CC4B0 +_080CC492: + ldrb r6, [r0] + adds r0, r6, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CC4BC + movs r0, 0 + strh r0, [r4, 0x36] + ldr r1, _080CC4B4 + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x32] + ldr r0, _080CC4B8 + b _080CC4CC + .align 2, 0 +_080CC4B0: .4byte gUnknown_0202F7C9 +_080CC4B4: .4byte gUnknown_03004B00 +_080CC4B8: .4byte 0x0000fff0 +_080CC4BC: + movs r0, 0x1 + strh r0, [r4, 0x36] + ldr r1, _080CC4F0 + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r4, 0x32] + movs r0, 0x80 + lsls r0, 1 +_080CC4CC: + strh r0, [r4, 0x20] + adds r7, r1, 0 + adds r5, r7, 0 + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x34] + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080CC502 + cmp r0, 0x1 + bgt _080CC4F4 + cmp r0, 0 + beq _080CC4FE + b _080CC56C + .align 2, 0 +_080CC4F0: .4byte gUnknown_03004B00 +_080CC4F4: + cmp r0, 0x2 + beq _080CC508 + cmp r0, 0x3 + beq _080CC534 + b _080CC56C +_080CC4FE: + ldrh r0, [r5] + b _080CC518 +_080CC502: + ldrh r0, [r5] + strh r0, [r4, 0x22] + b _080CC54E +_080CC508: + adds r0, r6, 0 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5] + adds r0, r5 +_080CC518: + strh r0, [r4, 0x22] + adds r0, r6, 0 + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + b _080CC56C +_080CC534: + ldr r0, _080CC578 + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r7, [r7] + adds r0, r7 + strh r0, [r4, 0x22] + movs r0, 0x1 + bl obj_id_for_side_relative_to_move +_080CC54E: + adds r0, r6, 0 + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] +_080CC56C: + ldr r0, _080CC57C + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CC578: .4byte gUnknown_0202F7C9 +_080CC57C: .4byte sub_80CC580 + thumb_func_end sub_80CC474 + + thumb_func_start sub_80CC580 +sub_80CC580: @ 80CC580 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x3C + ldrsh r3, [r4, r0] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + movs r1, 0x30 + ldrsh r2, [r4, r1] + ldr r1, _080CC5D4 + movs r5, 0x2E + ldrsh r0, [r4, r5] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + muls r0, r2 + asrs r0, 8 + strh r0, [r4, 0x26] + movs r2, 0x32 + ldrsh r0, [r4, r2] + muls r0, r3 + strh r0, [r4, 0x24] + movs r5, 0x34 + ldrsh r0, [r4, r5] + muls r0, r3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080CC5D8 + movs r2, 0x24 + ldrsh r0, [r4, r2] + movs r5, 0x20 + ldrsh r1, [r4, r5] + adds r0, r1 + cmp r0, 0xF7 + ble _080CC5F0 + b _080CC5EA + .align 2, 0 +_080CC5D4: .4byte gSineTable +_080CC5D8: + movs r1, 0x24 + ldrsh r0, [r4, r1] + movs r2, 0x20 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bgt _080CC5F0 +_080CC5EA: + adds r0, r4, 0 + bl move_anim_8074EE0 +_080CC5F0: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80CC580 + + thumb_func_start sub_80CC5F8 +sub_80CC5F8: @ 80CC5F8 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080CC618 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080CC61C + cmp r0, 0x1 + beq _080CC650 + b _080CC6AA + .align 2, 0 +_080CC618: .4byte gTasks +_080CC61C: + ldr r0, _080CC648 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r2, 0x80 + lsls r2, 1 + adds r4, r2, 0 + adds r0, r4 + strh r0, [r5, 0x18] + ldr r0, _080CC64C + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + adds r0, r4 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080CC6AA + .align 2, 0 +_080CC648: .4byte 0x0000274f +_080CC64C: .4byte 0x000027b0 +_080CC650: + ldrh r0, [r5, 0x1A] + adds r0, 0x1 + movs r7, 0 + strh r0, [r5, 0x1A] + lsls r0, 16 + cmp r0, 0 + blt _080CC6AA + strh r7, [r5, 0x1A] + ldrh r0, [r5, 0x18] + ldrb r2, [r5, 0x1C] + ldr r4, _080CC6C4 + movs r3, 0x1E + ldrsh r1, [r5, r3] + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + movs r1, 0x10 + bl BlendPalette + ldrh r0, [r5, 0x20] + ldrb r2, [r5, 0x1C] + movs r3, 0x1E + ldrsh r1, [r5, r3] + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + movs r1, 0x10 + bl BlendPalette + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x11 + bne _080CC6AA + strh r7, [r5, 0x1C] + ldrh r0, [r5, 0x1E] + adds r0, 0x1 + strh r0, [r5, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + bne _080CC6AA + strh r7, [r5, 0x1E] +_080CC6AA: + ldr r0, _080CC6C8 + movs r2, 0xE + ldrsh r1, [r0, r2] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080CC6BE + adds r0, r6, 0 + bl move_anim_task_del +_080CC6BE: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CC6C4: .4byte gUnknown_083D6984 +_080CC6C8: .4byte gUnknown_03004B00 + thumb_func_end sub_80CC5F8 + + thumb_func_start sub_80CC6CC +sub_80CC6CC: @ 80CC6CC + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + ldr r1, _080CC6E4 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080CC6E8 + adds r0, r6, 0 + bl move_anim_8072740 + b _080CC7C2 + .align 2, 0 +_080CC6E4: .4byte gUnknown_03004B00 +_080CC6E8: + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080CC6F8 + ldr r4, _080CC6F4 + b _080CC6FA + .align 2, 0 +_080CC6F4: .4byte gUnknown_0202F7C8 +_080CC6F8: + ldr r4, _080CC734 +_080CC6FA: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080CC738 + ldrh r1, [r0, 0x8] + strh r1, [r6, 0x2E] + movs r3, 0x2 + ldrsh r1, [r0, r3] + adds r7, r0, 0 + cmp r1, 0 + bne _080CC73C + ldrh r0, [r7, 0x4] + adds r0, r5 + strh r0, [r6, 0x20] + ldrh r0, [r7, 0x6] + adds r0, r2 + strh r0, [r6, 0x22] + strh r5, [r6, 0x38] + strh r2, [r6, 0x3A] + b _080CC74C + .align 2, 0 +_080CC734: .4byte gUnknown_0202F7C9 +_080CC738: .4byte gUnknown_03004B00 +_080CC73C: + strh r5, [r6, 0x20] + strh r2, [r6, 0x22] + ldrh r0, [r7, 0x4] + adds r0, r5 + strh r0, [r6, 0x38] + ldrh r0, [r7, 0x6] + adds r0, r2 + strh r0, [r6, 0x3A] +_080CC74C: + ldrh r4, [r6, 0x20] + lsls r0, r4, 4 + strh r0, [r6, 0x30] + ldrh r5, [r6, 0x22] + lsls r0, r5, 4 + strh r0, [r6, 0x32] + movs r1, 0x38 + ldrsh r0, [r6, r1] + movs r2, 0x20 + ldrsh r1, [r6, r2] + subs r0, r1 + lsls r0, 4 + movs r3, 0x8 + ldrsh r1, [r7, r3] + bl __divsi3 + strh r0, [r6, 0x34] + movs r1, 0x3A + ldrsh r0, [r6, r1] + movs r2, 0x22 + ldrsh r1, [r6, r2] + subs r0, r1 + lsls r0, 4 + movs r3, 0x8 + ldrsh r1, [r7, r3] + bl __divsi3 + strh r0, [r6, 0x36] + ldrh r0, [r6, 0x38] + subs r0, r4 + lsls r0, 16 + asrs r0, 16 + ldrh r1, [r6, 0x3A] + subs r1, r5 + lsls r1, 16 + asrs r1, 16 + bl sub_80790F0 + lsls r0, 16 + lsrs r4, r0, 16 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CC7AE + ldr r1, _080CC7CC + adds r0, r4, r1 + lsls r0, 16 + lsrs r4, r0, 16 +_080CC7AE: + movs r3, 0x80 + lsls r3, 1 + str r4, [sp] + adds r0, r6, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8078FDC + ldr r0, _080CC7D0 + str r0, [r6, 0x1C] +_080CC7C2: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CC7CC: .4byte 0xffff8000 +_080CC7D0: .4byte sub_80CC7D4 + thumb_func_end sub_80CC6CC + + thumb_func_start sub_80CC7D4 +sub_80CC7D4: @ 80CC7D4 + push {r4,lr} + adds r2, r0, 0 + ldrh r3, [r2, 0x2E] + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _080CC804 + ldrh r0, [r2, 0x34] + ldrh r4, [r2, 0x30] + adds r0, r4 + strh r0, [r2, 0x30] + ldrh r1, [r2, 0x36] + ldrh r4, [r2, 0x32] + adds r1, r4 + strh r1, [r2, 0x32] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r2, 0x22] + subs r0, r3, 0x1 + strh r0, [r2, 0x2E] + b _080CC80A +_080CC804: + adds r0, r2, 0 + bl move_anim_8074EE0 +_080CC80A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CC7D4 + + thumb_func_start sub_80CC810 +sub_80CC810: @ 80CC810 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080CC826 + adds r0, r2, 0 + bl move_anim_8072740 +_080CC826: + pop {r0} + bx r0 + thumb_func_end sub_80CC810 + + thumb_func_start sub_80CC82C +sub_80CC82C: @ 80CC82C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080CC84C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CC854 + ldr r2, _080CC850 + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + b _080CC860 + .align 2, 0 +_080CC84C: .4byte gUnknown_0202F7C8 +_080CC850: .4byte gUnknown_03004B00 +_080CC854: + ldr r0, _080CC878 + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] +_080CC860: + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _080CC87C + str r0, [r4, 0x1C] + ldr r1, _080CC880 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CC878: .4byte gUnknown_03004B00 +_080CC87C: .4byte sub_8078600 +_080CC880: .4byte move_anim_8072740 + thumb_func_end sub_80CC82C + + thumb_func_start sub_80CC884 +sub_80CC884: @ 80CC884 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080CC8BC + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CC89E + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080CC89E: + ldr r0, _080CC8C0 + str r0, [r5, 0x1C] + ldr r4, _080CC8C4 + movs r0, 0 + ldrsh r1, [r4, r0] + adds r0, r5, 0 + bl sub_807867C + ldrh r0, [r4, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CC8BC: .4byte gUnknown_0202F7C8 +_080CC8C0: .4byte sub_80CC810 +_080CC8C4: .4byte gUnknown_03004B00 + thumb_func_end sub_80CC884 + + thumb_func_start sub_80CC8C8 +sub_80CC8C8: @ 80CC8C8 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080CC908 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x38] + ldrb r1, [r1, 0xC] + adds r0, r4, 0 + bl StartSpriteAffineAnim + ldr r1, _080CC90C + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CC910 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CC908: .4byte gUnknown_03004B00 +_080CC90C: .4byte move_anim_8074EE0 +_080CC910: .4byte sub_8078504 + thumb_func_end sub_80CC8C8 + + thumb_func_start sub_80CC914 +sub_80CC914: @ 80CC914 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080CC964 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CC948 + ldrh r0, [r5, 0x22] + adds r0, 0x8 + strh r0, [r5, 0x22] +_080CC948: + ldr r0, _080CC968 + str r0, [r5, 0x1C] + ldr r0, _080CC96C + movs r2, 0x4 + ldrsh r1, [r0, r2] + adds r3, r0, 0 + cmp r1, 0 + bne _080CC970 + ldrh r0, [r3] + ldrh r1, [r5, 0x20] + adds r0, r1 + strh r0, [r5, 0x20] + b _080CC984 + .align 2, 0 +_080CC964: .4byte gUnknown_0202F7C9 +_080CC968: .4byte sub_80CCB00 +_080CC96C: .4byte gUnknown_03004B00 +_080CC970: + ldrh r0, [r5, 0x20] + ldrh r1, [r3] + subs r0, r1 + strh r0, [r5, 0x20] + adds r2, r5, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_080CC984: + ldrh r0, [r3, 0x2] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + ldr r1, _080CC9B8 + adds r0, r1, 0 + ldrh r2, [r5, 0x30] + adds r1, r0, r2 + strh r1, [r5, 0x30] + movs r2, 0x80 + lsls r2, 3 + adds r0, r2, 0 + ldrh r2, [r5, 0x32] + adds r0, r2 + strh r0, [r5, 0x32] + ldrh r0, [r3, 0x4] + strh r0, [r5, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080CC9B2 + negs r0, r1 + strh r0, [r5, 0x30] +_080CC9B2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CC9B8: .4byte 0xfffffc00 + thumb_func_end sub_80CC914 + + thumb_func_start sub_80CC9BC +sub_80CC9BC: @ 80CC9BC + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldr r0, _080CC9D8 + movs r1, 0x6 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + beq _080CC9DC + cmp r0, 0x1 + ble _080CCA58 + cmp r0, 0x2 + beq _080CC9FC + b _080CCA58 + .align 2, 0 +_080CC9D8: .4byte gUnknown_03004B00 +_080CC9DC: + ldr r5, _080CC9F8 + ldrb r0, [r5] + movs r4, 0x2 + eors r0, r4 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r5] + eors r4, r0 + adds r0, r4, 0 + b _080CCA68 + .align 2, 0 +_080CC9F8: .4byte gUnknown_0202F7C9 +_080CC9FC: + ldr r5, _080CCA54 + ldrb r0, [r5] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r5] + movs r2, 0x2 + mov r8, r2 + mov r1, r8 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080CCA72 + ldrb r0, [r5] + mov r2, r8 + eors r0, r2 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r7 + lsrs r7, r0, 1 + ldrb r0, [r5] + mov r1, r8 + eors r0, r1 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + lsrs r4, r0, 1 + b _080CCA72 + .align 2, 0 +_080CCA54: .4byte gUnknown_0202F7C9 +_080CCA58: + ldr r4, _080CCAA4 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r4] +_080CCA68: + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r4, r0, 24 +_080CCA72: + strh r7, [r6, 0x20] + strh r4, [r6, 0x22] + ldr r0, _080CCAA4 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CCA8A + ldrh r0, [r6, 0x22] + adds r0, 0x8 + strh r0, [r6, 0x22] +_080CCA8A: + ldr r0, _080CCAA8 + str r0, [r6, 0x1C] + ldr r0, _080CCAAC + movs r2, 0x4 + ldrsh r1, [r0, r2] + adds r3, r0, 0 + cmp r1, 0 + bne _080CCAB0 + ldrh r0, [r3] + ldrh r1, [r6, 0x20] + adds r0, r1 + strh r0, [r6, 0x20] + b _080CCAC4 + .align 2, 0 +_080CCAA4: .4byte gUnknown_0202F7C9 +_080CCAA8: .4byte sub_80CCB00 +_080CCAAC: .4byte gUnknown_03004B00 +_080CCAB0: + ldrh r0, [r6, 0x20] + ldrh r1, [r3] + subs r0, r1 + strh r0, [r6, 0x20] + adds r2, r6, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_080CCAC4: + ldrh r0, [r3, 0x2] + ldrh r2, [r6, 0x22] + adds r0, r2 + strh r0, [r6, 0x22] + ldr r1, _080CCAFC + adds r0, r1, 0 + ldrh r2, [r6, 0x30] + adds r1, r0, r2 + strh r1, [r6, 0x30] + movs r2, 0x80 + lsls r2, 3 + adds r0, r2, 0 + ldrh r2, [r6, 0x32] + adds r0, r2 + strh r0, [r6, 0x32] + ldrh r0, [r3, 0x4] + strh r0, [r6, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080CCAF2 + negs r0, r1 + strh r0, [r6, 0x30] +_080CCAF2: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CCAFC: .4byte 0xfffffc00 + thumb_func_end sub_80CC9BC + + thumb_func_start sub_80CCB00 +sub_80CCB00: @ 80CCB00 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + ldrh r2, [r4, 0x34] + adds r0, r1, r2 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080CCB22 + adds r0, r1, 0 + adds r0, 0x18 + b _080CCB26 +_080CCB22: + adds r0, r1, 0 + subs r0, 0x18 +_080CCB26: + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + subs r0, 0x18 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080CCB5C + ldr r1, _080CCB64 + adds r0, r4, 0 + bl oamt_set_x3A_32 + movs r0, 0x3 + strh r0, [r4, 0x2E] + ldr r0, _080CCB68 + str r0, [r4, 0x1C] +_080CCB5C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CCB64: .4byte move_anim_8072740 +_080CCB68: .4byte sub_80782D8 + thumb_func_end sub_80CCB00 + + thumb_func_start unref_sub_80CCB6C +unref_sub_80CCB6C: @ 80CCB6C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x32] + movs r2, 0x32 + ldrsh r0, [r5, r2] + cmp r0, 0x1 + ble _080CCC10 + ldrh r1, [r5, 0x34] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080CCBC8 + adds r3, r5, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r1 + strb r0, [r3] + ldr r4, _080CCBC4 + movs r0, 0x2E + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r3, [r0] + adds r1, r2, 0 + ands r1, r3 + strb r1, [r0] + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + b _080CCBFE + .align 2, 0 +_080CCBC4: .4byte gSprites +_080CCBC8: + adds r1, r5, 0 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + ldr r3, _080CCC0C + movs r0, 0x2E + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] +_080CCBFE: + movs r0, 0 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + b _080CCC14 + .align 2, 0 +_080CCC0C: .4byte gSprites +_080CCC10: + adds r0, r1, 0x1 + strh r0, [r5, 0x32] +_080CCC14: + movs r1, 0x34 + ldrsh r0, [r5, r1] + cmp r0, 0xA + bne _080CCC44 + movs r2, 0x2E + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080CCC4C + adds r0, r4 + bl DestroySprite + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + adds r0, r5, 0 + bl move_anim_8072740 +_080CCC44: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CCC4C: .4byte gSprites + thumb_func_end unref_sub_80CCB6C + + thumb_func_start sub_80CCC50 +sub_80CCC50: @ 80CCC50 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080CCC70 + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x2E] + ldr r0, _080CCC74 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CCC78 + ldrh r0, [r5, 0x20] + ldrh r1, [r4] + subs r0, r1 + b _080CCC7E + .align 2, 0 +_080CCC70: .4byte gUnknown_03004B00 +_080CCC74: .4byte gUnknown_0202F7C8 +_080CCC78: + ldrh r0, [r4] + ldrh r1, [r5, 0x20] + adds r0, r1 +_080CCC7E: + strh r0, [r5, 0x20] + ldr r4, _080CCCAC + ldrb r1, [r4, 0xA] + adds r0, r5, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x6] + negs r0, r0 + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x34] + ldr r1, _080CCCB0 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CCCAC: .4byte gUnknown_03004B00 +_080CCCB0: .4byte sub_80CCCB4 + thumb_func_end sub_80CCC50 + + thumb_func_start sub_80CCCB4 +sub_80CCCB4: @ 80CCCB4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x64 + bl Cos + strh r0, [r4, 0x24] + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r1, 0x14 + bl Sin + strh r0, [r4, 0x26] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x7F + bgt _080CCCE0 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0 + b _080CCCE6 +_080CCCE0: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0xE +_080CCCE6: + strb r0, [r1] + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x2E] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x38] + adds r0, 0x82 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x34 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080CCD1C + adds r0, r4, 0 + bl move_anim_8072740 +_080CCD1C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CCCB4 + + thumb_func_start sub_80CCD24 +sub_80CCD24: @ 80CCD24 + push {r4-r6,lr} + adds r5, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CCD3A + ldr r1, _080CCD98 + ldrh r0, [r1, 0x2] + adds r0, 0x8 + strh r0, [r1, 0x2] +_080CCD3A: + ldr r6, _080CCD9C + ldrb r0, [r6] + movs r1, 0 + bl sub_8077EE4 + lsls r0, 24 + ldr r4, _080CCD98 + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8077EE4 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 + strh r0, [r5, 0x22] + ldrb r0, [r6] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CCD78 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CCDA0 +_080CCD78: + ldrb r0, [r6] + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r5, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x5] + b _080CCDB8 + .align 2, 0 +_080CCD98: .4byte gUnknown_03004B00 +_080CCD9C: .4byte gUnknown_0202F7C8 +_080CCDA0: + ldrb r0, [r6] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] +_080CCDB8: + ldr r0, _080CCDF8 + ldrh r0, [r0, 0x4] + strh r0, [r5, 0x2E] + ldr r0, _080CCDFC + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r3, 0x80 + lsls r3, 1 + adds r0, r3 + strh r0, [r5, 0x32] + movs r2, 0x10 + movs r0, 0x10 + strh r0, [r5, 0x3C] + ldr r1, _080CCE00 + movs r3, 0xFD + lsls r3, 6 + adds r0, r3, 0 + strh r0, [r1] + ldr r3, _080CCE04 + ldrh r1, [r5, 0x3C] + lsls r0, r1, 8 + subs r2, r1 + orrs r0, r2 + strh r0, [r3] + ldr r0, _080CCE08 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CCDF8: .4byte gUnknown_03004B00 +_080CCDFC: .4byte 0x00002828 +_080CCE00: .4byte REG_BLDCNT +_080CCE04: .4byte REG_BLDALPHA +_080CCE08: .4byte sub_80CCE0C + thumb_func_end sub_80CCD24 + + thumb_func_start sub_80CCE0C +sub_80CCE0C: @ 80CCE0C + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + adds r0, 0x60 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080CCE6A + movs r0, 0 + strh r0, [r4, 0x30] + ldr r1, _080CCEB0 + movs r2, 0x32 + ldrsh r0, [r4, r2] + adds r0, 0x1 + lsls r0, 1 + adds r0, r1 + ldrh r5, [r0] + movs r2, 0 + adds r6, r1, 0 + adds r3, r6, 0 +_080CCE44: + movs r1, 0x32 + ldrsh r0, [r4, r1] + adds r2, 0x1 + adds r0, r2 + lsls r1, r0, 1 + adds r1, r3 + adds r0, 0x1 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r1] + cmp r2, 0x5 + ble _080CCE44 + movs r2, 0x32 + ldrsh r0, [r4, r2] + adds r0, 0x7 + lsls r0, 1 + adds r0, r6 + strh r5, [r0] +_080CCE6A: + ldrh r2, [r4, 0x3C] + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0x6 + ble _080CCE9E + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + ble _080CCEB8 + ldrh r0, [r4, 0x3A] + adds r0, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080CCE9E + movs r0, 0 + strh r0, [r4, 0x3A] + subs r2, 0x1 + strh r2, [r4, 0x3C] + ldr r3, _080CCEB4 + lsls r1, r2, 8 + movs r0, 0x10 + subs r0, r2 + orrs r1, r0 + strh r1, [r3] +_080CCE9E: + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080CCEB8 + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + b _080CCEF4 + .align 2, 0 +_080CCEB0: .4byte gPlttBufferFaded +_080CCEB4: .4byte REG_BLDALPHA +_080CCEB8: + ldrh r0, [r4, 0x3A] + adds r0, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080CCEF4 + movs r0, 0 + strh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + adds r1, 0x1 + strh r1, [r4, 0x3C] + ldr r3, _080CCEFC + lsls r2, r1, 8 + movs r0, 0x10 + subs r0, r1 + orrs r2, r0 + strh r2, [r3] + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080CCEF4 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080CCF00 + str r0, [r4, 0x1C] +_080CCEF4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CCEFC: .4byte REG_BLDALPHA +_080CCF00: .4byte sub_807861C + thumb_func_end sub_80CCE0C + + thumb_func_start sub_80CCF04 +sub_80CCF04: @ 80CCF04 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _080CCF5C + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x20] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080CCF60 + adds r0, r1 + strh r0, [r4, 0x22] + strh r5, [r4, 0x2E] + strh r5, [r4, 0x30] + strh r5, [r4, 0x32] + strh r5, [r4, 0x34] + strh r5, [r4, 0x36] + strh r5, [r4, 0x3A] + movs r0, 0x10 + strh r0, [r4, 0x3C] + ldr r1, _080CCF64 + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _080CCF68 + ldrh r0, [r4, 0x3C] + lsls r0, 8 + ldrh r1, [r4, 0x3A] + orrs r0, r1 + strh r0, [r2] + ldr r0, _080CCF6C + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CCF5C: .4byte gUnknown_0202F7C9 +_080CCF60: .4byte 0x0000ffe8 +_080CCF64: .4byte REG_BLDCNT +_080CCF68: .4byte REG_BLDALPHA +_080CCF6C: .4byte sub_80CCF70 + thumb_func_end sub_80CCF04 + + thumb_func_start sub_80CCF70 +sub_80CCF70: @ 80CCF70 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080CCF7E + b _080CD0C0 +_080CCF7E: + lsls r0, 2 + ldr r1, _080CCF88 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080CCF88: .4byte _080CCF8C + .align 2, 0 +_080CCF8C: + .4byte _080CCFA0 + .4byte _080CD004 + .4byte _080CD020 + .4byte _080CD09C + .4byte _080CD0B0 +_080CCFA0: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + cmp r0, 0 + bgt _080CCFAE + b _080CD0C0 +_080CCFAE: + movs r0, 0 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080CCFD0 + ldrh r1, [r4, 0x3A] + movs r2, 0x3A + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080CCFDE + adds r0, r1, 0x1 + strh r0, [r4, 0x3A] + b _080CCFDE +_080CCFD0: + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080CCFDE + subs r0, r1, 0x1 + strh r0, [r4, 0x3C] +_080CCFDE: + ldr r2, _080CD000 + ldrh r0, [r4, 0x3C] + lsls r0, 8 + ldrh r1, [r4, 0x3A] + orrs r0, r1 + strh r0, [r2] + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080CD0C0 + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080CD0C0 + strh r0, [r4, 0x30] + b _080CD0A8 + .align 2, 0 +_080CD000: .4byte REG_BLDALPHA +_080CD004: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080CD0C0 + movs r0, 0 + strh r0, [r4, 0x30] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _080CD0A8 +_080CD020: + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0x4 + bl sub_80CD0CC + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080CD042 + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] +_080CD042: + ldrh r0, [r4, 0x32] + adds r1, r0, 0x1 + strh r1, [r4, 0x32] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x1D + ble _080CD0C0 + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080CD068 + ldrh r1, [r4, 0x3A] + movs r2, 0x3A + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080CD076 + subs r0, r1, 0x1 + strh r0, [r4, 0x3A] + b _080CD076 +_080CD068: + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080CD076 + adds r0, r1, 0x1 + strh r0, [r4, 0x3C] +_080CD076: + ldr r0, _080CD098 + ldrh r1, [r4, 0x3C] + lsls r1, 8 + ldrh r2, [r4, 0x3A] + orrs r1, r2 + strh r1, [r0] + movs r0, 0x3A + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _080CD0C0 + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0x10 + bne _080CD0C0 + strh r1, [r4, 0x30] + strh r1, [r4, 0x32] + b _080CD0A8 + .align 2, 0 +_080CD098: .4byte REG_BLDALPHA +_080CD09C: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080CD0A8: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080CD0C0 +_080CD0B0: + ldr r0, _080CD0C8 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, r4, 0 + bl move_anim_8072740 +_080CD0C0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CD0C8: .4byte REG_BLDCNT + thumb_func_end sub_80CCF70 + + thumb_func_start sub_80CD0CC +sub_80CD0CC: @ 80CD0CC + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0xB + bgt _080CD0DE + ldrh r0, [r4, 0x36] + adds r0, 0x2 + strh r0, [r4, 0x36] +_080CD0DE: + ldrh r5, [r4, 0x34] + adds r0, r5, 0 + subs r0, 0x12 + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + cmp r0, 0x17 + bhi _080CD0F4 + ldrh r0, [r4, 0x36] + subs r0, 0x2 + strh r0, [r4, 0x36] +_080CD0F4: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x2F + ble _080CD102 + ldrh r0, [r4, 0x36] + adds r0, 0x2 + strh r0, [r4, 0x36] +_080CD102: + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0x9 + bl __divsi3 + strh r0, [r4, 0x24] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xE + bl __divsi3 + strh r0, [r4, 0x26] + lsls r0, 16 + cmp r0, 0 + bge _080CD128 + movs r1, 0x26 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4, 0x26] +_080CD128: + adds r0, r5, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3B + ble _080CD138 + movs r0, 0 + strh r0, [r4, 0x34] +_080CD138: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80CD0CC + + thumb_func_start sub_80CD140 +sub_80CD140: @ 80CD140 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080CD184 + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080CD154 + adds r0, r4, 0 + bl sub_8078650 +_080CD154: + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_807867C + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x32] + ldr r1, _080CD188 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CD18C + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CD184: .4byte gUnknown_03004B00 +_080CD188: .4byte move_anim_8072740 +_080CD18C: .4byte sub_8078394 + thumb_func_end sub_80CD140 + + thumb_func_start sub_80CD190 +sub_80CD190: @ 80CD190 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _080CD1A4 + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CD1AC + ldr r0, _080CD1A8 + b _080CD1AE + .align 2, 0 +_080CD1A4: .4byte gUnknown_03004B00 +_080CD1A8: .4byte gUnknown_0202F7C8 +_080CD1AC: + ldr r0, _080CD1F0 +_080CD1AE: + ldrb r6, [r0] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080CD1F8 + movs r1, 0x2 + adds r0, r6, 0 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080CD1F8 + ldr r4, _080CD1F4 + ldrb r1, [r4, 0xC] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + adds r0, r6, 0 + bl sub_807A3FC + movs r2, 0 + ldrsh r1, [r4, r2] + adds r0, r5, 0 + bl sub_807867C + ldrh r0, [r4, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + b _080CD248 + .align 2, 0 +_080CD1F0: .4byte gUnknown_0202F7C9 +_080CD1F4: .4byte gUnknown_03004B00 +_080CD1F8: + ldr r4, _080CD218 + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080CD21C + adds r0, r6, 0 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + adds r0, r6, 0 + movs r1, 0x1 + b _080CD22E + .align 2, 0 +_080CD218: .4byte gUnknown_03004B00 +_080CD21C: + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + adds r0, r6, 0 + movs r1, 0x3 +_080CD22E: + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 + strh r0, [r5, 0x22] + ldr r0, _080CD268 + movs r2, 0 + ldrsh r1, [r0, r2] + adds r0, r5, 0 + bl sub_807867C +_080CD248: + ldr r1, _080CD268 + ldrh r0, [r1, 0xA] + strh r0, [r5, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x32] + ldr r1, _080CD26C + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080CD270 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CD268: .4byte gUnknown_03004B00 +_080CD26C: .4byte move_anim_8072740 +_080CD270: .4byte sub_8078394 + thumb_func_end sub_80CD190 + + thumb_func_start sub_80CD274 +sub_80CD274: @ 80CD274 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078650 + ldr r0, _080CD2A0 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CD2A8 + ldr r0, _080CD2A4 + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + b _080CD2C2 + .align 2, 0 +_080CD2A0: .4byte gUnknown_0202F7C8 +_080CD2A4: .4byte gUnknown_03004B00 +_080CD2A8: + ldr r2, _080CD2CC + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080CD2C2: + ldr r0, _080CD2D0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CD2CC: .4byte gUnknown_03004B00 +_080CD2D0: .4byte sub_80CD2D4 + thumb_func_end sub_80CD274 + + thumb_func_start sub_80CD2D4 +sub_80CD2D4: @ 80CD2D4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _080CD30C + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r0, 0x1E + subs r0, r1 + movs r1, 0x3 + bl __divsi3 + strh r0, [r4, 0x26] + movs r1, 0x30 + ldrsh r0, [r4, r1] + lsls r0, 18 + asrs r0, 16 + movs r1, 0x3 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_080CD30C: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080CD320 + adds r0, r4, 0 + bl move_anim_8072740 +_080CD320: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CD2D4 + + thumb_func_start sub_80CD328 +sub_80CD328: @ 80CD328 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078650 + ldr r0, _080CD358 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CD360 + ldr r1, _080CD35C + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + movs r0, 0x1 + strh r0, [r4, 0x34] + b _080CD37E + .align 2, 0 +_080CD358: .4byte gUnknown_0202F7C8 +_080CD35C: .4byte gUnknown_03004B00 +_080CD360: + ldr r2, _080CD388 + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldr r0, _080CD38C + strh r0, [r4, 0x34] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080CD37E: + ldr r0, _080CD390 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CD388: .4byte gUnknown_03004B00 +_080CD38C: .4byte 0x0000ffff +_080CD390: .4byte sub_80CD394 + thumb_func_end sub_80CD328 + + thumb_func_start sub_80CD394 +sub_80CD394: @ 80CD394 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x28 + bl __divsi3 + negs r0, r0 + strh r0, [r4, 0x26] + movs r2, 0x36 + ldrsh r0, [r4, r2] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 1 + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x2E] + adds r1, r0, r2 + strh r1, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080CD3D8 + adds r0, r4, 0 + bl move_anim_8074EE0 +_080CD3D8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CD394 + + thumb_func_start sub_80CD3E0 +sub_80CD3E0: @ 80CD3E0 + push {lr} + ldrh r1, [r0, 0x20] + subs r1, 0x20 + strh r1, [r0, 0x20] + ldrh r1, [r0, 0x22] + subs r1, 0x20 + strh r1, [r0, 0x22] + movs r1, 0x14 + strh r1, [r0, 0x2E] + ldr r1, _080CD400 + str r1, [r0, 0x1C] + ldr r1, _080CD404 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080CD400: .4byte sub_80782D8 +_080CD404: .4byte sub_80CD408 + thumb_func_end sub_80CD3E0 + + thumb_func_start sub_80CD408 +sub_80CD408: @ 80CD408 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r6, [r5, 0x38] + movs r1, 0x1 + adds r0, r1, 0 + ands r0, r6 + cmp r0, 0 + beq _080CD41E + cmp r0, 0x1 + beq _080CD438 + b _080CD49E +_080CD41E: + strh r1, [r5, 0x2E] + ldr r0, _080CD430 + str r0, [r5, 0x1C] + ldr r1, _080CD434 + adds r0, r5, 0 + bl oamt_set_x3A_32 + b _080CD49E + .align 2, 0 +_080CD430: .4byte sub_80782D8 +_080CD434: .4byte sub_80CD408 +_080CD438: + ldrh r3, [r5, 0x24] + ldrh r0, [r5, 0x20] + adds r3, r0 + movs r0, 0 + strh r3, [r5, 0x20] + ldrh r4, [r5, 0x26] + ldrh r1, [r5, 0x22] + adds r4, r1 + strh r4, [r5, 0x22] + strh r0, [r5, 0x26] + strh r0, [r5, 0x24] + movs r0, 0x8 + strh r0, [r5, 0x2E] + ldr r2, _080CD4AC + lsls r0, r6, 16 + asrs r0, 24 + lsls r0, 1 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + adds r3, r1 + strh r3, [r5, 0x32] + adds r2, 0x1 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r4, r0 + strh r4, [r5, 0x36] + ldr r0, _080CD4B0 + str r0, [r5, 0x1C] + ldr r1, _080CD4B4 + adds r0, r5, 0 + bl oamt_set_x3A_32 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1, 0 + ldrh r1, [r5, 0x38] + adds r0, r1 + strh r0, [r5, 0x38] + movs r0, 0x3F + bl sub_8076F98 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xD2 + bl PlaySE12WithPanning +_080CD49E: + ldrh r0, [r5, 0x38] + movs r1, 0x1 + eors r0, r1 + strh r0, [r5, 0x38] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CD4AC: .4byte gUnknown_083D6DDC +_080CD4B0: .4byte sub_8078B34 +_080CD4B4: .4byte sub_80CD4B8 + thumb_func_end sub_80CD408 + + thumb_func_start sub_80CD4B8 +sub_80CD4B8: @ 80CD4B8 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x38] + lsls r0, 16 + asrs r0, 24 + cmp r0, 0x4 + bne _080CD4E0 + movs r0, 0xA + strh r0, [r2, 0x2E] + ldr r0, _080CD4D8 + str r0, [r2, 0x1C] + ldr r1, _080CD4DC + adds r0, r2, 0 + bl oamt_set_x3A_32 + b _080CD4E4 + .align 2, 0 +_080CD4D8: .4byte sub_80782D8 +_080CD4DC: .4byte sub_80CD4EC +_080CD4E0: + ldr r0, _080CD4E8 + str r0, [r2, 0x1C] +_080CD4E4: + pop {r0} + bx r0 + .align 2, 0 +_080CD4E8: .4byte sub_80CD408 + thumb_func_end sub_80CD4B8 + + thumb_func_start sub_80CD4EC +sub_80CD4EC: @ 80CD4EC + push {r4-r7,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x6] + cmp r1, 0 + bne _080CD514 + movs r0, 0x3 + strh r0, [r5, 0x2E] + strh r1, [r5, 0x30] + strh r1, [r5, 0x32] + ldr r0, _080CD50C + str r0, [r5, 0x1C] + ldr r1, _080CD510 + adds r0, r5, 0 + bl oamt_set_x3A_32 + b _080CD594 + .align 2, 0 +_080CD50C: .4byte sub_80782D8 +_080CD510: .4byte sub_80CD5A8 +_080CD514: + ldrh r0, [r5, 0x6] + cmp r0, 0x2 + beq _080CD534 + cmp r0, 0x2 + bgt _080CD524 + cmp r0, 0x1 + beq _080CD52A + b _080CD548 +_080CD524: + cmp r0, 0x3 + beq _080CD53C + b _080CD548 +_080CD52A: + ldr r6, _080CD530 + adds r7, r6, 0 + b _080CD54C + .align 2, 0 +_080CD530: .4byte 0x0000fff8 +_080CD534: + ldr r7, _080CD538 + b _080CD54A + .align 2, 0 +_080CD538: .4byte 0x0000fff8 +_080CD53C: + movs r7, 0x8 + ldr r6, _080CD544 + b _080CD54C + .align 2, 0 +_080CD544: .4byte 0x0000fff8 +_080CD548: + movs r7, 0x8 +_080CD54A: + movs r6, 0x8 +_080CD54C: + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + movs r0, 0x6 + strh r0, [r5, 0x2E] + ldr r4, _080CD59C + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r7 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x36] + ldr r0, _080CD5A0 + str r0, [r5, 0x1C] + ldr r1, _080CD5A4 + adds r0, r5, 0 + bl oamt_set_x3A_32 +_080CD594: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CD59C: .4byte gUnknown_0202F7C9 +_080CD5A0: .4byte sub_8078B34 +_080CD5A4: .4byte sub_80CD654 + thumb_func_end sub_80CD4EC + + thumb_func_start sub_80CD5A8 +sub_80CD5A8: @ 80CD5A8 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080CD5C8 + ldrh r0, [r4, 0x30] + adds r0, 0x3 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080CD5D8 + movs r0, 0x10 + b _080CD5D6 +_080CD5C8: + ldrh r0, [r4, 0x30] + subs r0, 0x3 + strh r0, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + bge _080CD5D8 + movs r0, 0 +_080CD5D6: + strh r0, [r4, 0x30] +_080CD5D8: + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x1 + bl sub_80791A8 + ldrh r1, [r4, 0x30] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080CD634 + bl BlendPalettes + movs r3, 0x30 + ldrsh r0, [r4, r3] + cmp r0, 0x10 + bne _080CD640 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + ldrb r1, [r4, 0x5] + lsrs r1, 4 + lsls r0, r1, 5 + ldr r2, _080CD638 + adds r0, r2 + lsls r1, 4 + ldr r3, _080CD63C + adds r2, r3, 0 + orrs r1, r2 + movs r2, 0x4 + bl LoadPalette + movs r0, 0x3F + bl sub_8076F98 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xC0 + bl PlaySE12WithPanning + b _080CD648 + .align 2, 0 +_080CD634: .4byte 0x00007fff +_080CD638: .4byte gPlttBufferUnfaded + 0x210 +_080CD63C: .4byte 0x00000101 +_080CD640: + cmp r0, 0 + bne _080CD648 + ldr r0, _080CD650 + str r0, [r4, 0x1C] +_080CD648: + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CD650: .4byte sub_80CD654 + thumb_func_end sub_80CD5A8 + + thumb_func_start sub_80CD654 +sub_80CD654: @ 80CD654 + push {lr} + adds r2, r0, 0 + ldr r0, _080CD670 + ldrh r1, [r0, 0xE] + ldr r0, _080CD674 + cmp r1, r0 + bne _080CD66C + movs r0, 0 + strh r0, [r2, 0x30] + strh r0, [r2, 0x2E] + ldr r0, _080CD678 + str r0, [r2, 0x1C] +_080CD66C: + pop {r0} + bx r0 + .align 2, 0 +_080CD670: .4byte gUnknown_03004B00 +_080CD674: .4byte 0x0000ffff +_080CD678: .4byte sub_80CD67C + thumb_func_end sub_80CD654 + + thumb_func_start sub_80CD67C +sub_80CD67C: @ 80CD67C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _080CD6B0 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080CD6B0: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x8 + bne _080CD6C4 + adds r0, r4, 0 + bl move_anim_8072740 +_080CD6C4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CD67C + + thumb_func_start sub_80CD6CC +sub_80CD6CC: @ 80CD6CC + push {r4,lr} + adds r3, r0, 0 + ldr r0, _080CD6EC + ldrh r0, [r0] + strh r0, [r3, 0x6] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080CD6F0 + ldrh r0, [r3, 0x20] + subs r0, 0x18 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x22] + subs r0, 0x18 + strh r0, [r3, 0x22] + b _080CD742 + .align 2, 0 +_080CD6EC: .4byte gUnknown_03004B00 +_080CD6F0: + cmp r0, 0x2 + bne _080CD70C + ldrh r0, [r3, 0x20] + subs r0, 0x18 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x22] + adds r0, 0x18 + strh r0, [r3, 0x22] + ldrb r1, [r3, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x20 + b _080CD73E +_080CD70C: + cmp r0, 0x3 + bne _080CD728 + ldrh r0, [r3, 0x20] + adds r0, 0x18 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x22] + subs r0, 0x18 + strh r0, [r3, 0x22] + ldrb r1, [r3, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x10 + b _080CD73E +_080CD728: + ldrh r0, [r3, 0x20] + adds r0, 0x18 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x22] + adds r0, 0x18 + strh r0, [r3, 0x22] + ldrb r1, [r3, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x30 +_080CD73E: + orrs r0, r1 + strb r0, [r3, 0x3] +_080CD742: + ldrh r2, [r3, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x10 + ldr r4, _080CD768 + adds r0, r4, 0 + ands r1, r0 + ldr r0, _080CD76C + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + ldr r1, _080CD770 + str r1, [r3, 0x1C] + adds r0, r3, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CD768: .4byte 0x000003ff +_080CD76C: .4byte 0xfffffc00 +_080CD770: .4byte sub_80CD3E0 + thumb_func_end sub_80CD6CC + + thumb_func_start sub_80CD774 +sub_80CD774: @ 80CD774 + push {lr} + adds r3, r0, 0 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0 + strh r0, [r3, 0x2E] + ldr r0, _080CD79C + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + beq _080CD7B0 + cmp r0, 0x1 + bgt _080CD7A0 + cmp r0, 0 + beq _080CD7A6 + b _080CD7C0 + .align 2, 0 +_080CD79C: .4byte gUnknown_03004B00 +_080CD7A0: + cmp r0, 0x2 + beq _080CD7B8 + b _080CD7C0 +_080CD7A6: + ldr r0, _080CD7AC + b _080CD7C2 + .align 2, 0 +_080CD7AC: .4byte sub_80CD7CC +_080CD7B0: + ldr r0, _080CD7B4 + b _080CD7C2 + .align 2, 0 +_080CD7B4: .4byte sub_80CD8A8 +_080CD7B8: + ldr r0, _080CD7BC + b _080CD7C2 + .align 2, 0 +_080CD7BC: .4byte sub_80CD8F8 +_080CD7C0: + ldr r0, _080CD7C8 +_080CD7C2: + str r0, [r3, 0x1C] + pop {r0} + bx r0 + .align 2, 0 +_080CD7C8: .4byte sub_80CD9B8 + thumb_func_end sub_80CD774 + + thumb_func_start sub_80CD7CC +sub_80CD7CC: @ 80CD7CC + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + strh r0, [r4, 0x2E] + ldr r5, _080CD80C + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + movs r2, 0x2 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + beq _080CD7EA + movs r1, 0x2 +_080CD7EA: + strh r1, [r4, 0x30] + movs r0, 0 + strh r0, [r4, 0x32] + ldr r1, _080CD810 + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r4, 0x34] + ldr r1, _080CD814 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CD818 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CD80C: .4byte gUnknown_0202F7C8 +_080CD810: .4byte gUnknown_02024BE0 +_080CD814: .4byte sub_80CD81C +_080CD818: .4byte sub_8078458 + thumb_func_end sub_80CD7CC + + thumb_func_start sub_80CD81C +sub_80CD81C: @ 80CD81C + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x2E + ldrsh r6, [r5, r0] + cmp r6, 0 + bne _080CD858 + ldr r1, _080CD898 + ldr r4, _080CD89C + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r5, 0x34] + movs r1, 0 + bl sub_8078E70 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x3A] + ldr r2, _080CD8A0 + adds r1, r2, 0 + cmp r0, 0 + beq _080CD854 + movs r0, 0xC0 + lsls r0, 2 + adds r1, r0, 0 +_080CD854: + strh r1, [r5, 0x36] + strh r6, [r5, 0x38] +_080CD858: + ldrh r0, [r5, 0x36] + ldrh r1, [r5, 0x38] + adds r0, r1 + strh r0, [r5, 0x38] + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r5, 0x38] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F9C + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080CD892 + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080CD8A4 + str r0, [r5, 0x1C] +_080CD892: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CD898: .4byte gUnknown_02024BE0 +_080CD89C: .4byte gUnknown_0202F7C8 +_080CD8A0: .4byte 0xfffffd00 +_080CD8A4: .4byte sub_80CD9B8 + thumb_func_end sub_80CD81C + + thumb_func_start sub_80CD8A8 +sub_80CD8A8: @ 80CD8A8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x4 + strh r0, [r4, 0x2E] + ldr r5, _080CD8E8 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + movs r1, 0x3 + cmp r0, 0 + beq _080CD8C6 + movs r0, 0x3 + negs r0, r0 + adds r1, r0, 0 +_080CD8C6: + strh r1, [r4, 0x30] + movs r0, 0 + strh r0, [r4, 0x32] + ldr r1, _080CD8EC + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r4, 0x34] + ldr r1, _080CD8F0 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CD8F4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CD8E8: .4byte gUnknown_0202F7C8 +_080CD8EC: .4byte gUnknown_02024BE0 +_080CD8F0: .4byte sub_80CD9B8 +_080CD8F4: .4byte sub_8078458 + thumb_func_end sub_80CD8A8 + + thumb_func_start sub_80CD8F8 +sub_80CD8F8: @ 80CD8F8 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080CD912 + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, _080CD918 + str r0, [r1, 0x1C] +_080CD912: + pop {r0} + bx r0 + .align 2, 0 +_080CD918: .4byte sub_80CD91C + thumb_func_end sub_80CD8F8 + + thumb_func_start sub_80CD91C +sub_80CD91C: @ 80CD91C + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080CD96C + ldr r1, _080CD958 + ldr r4, _080CD95C + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r5, 0x34] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x3A] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CD960 + movs r0, 0xFC + lsls r0, 8 + strh r0, [r5, 0x36] + movs r0, 0xC0 + lsls r0, 4 + b _080CD96A + .align 2, 0 +_080CD958: .4byte gUnknown_02024BE0 +_080CD95C: .4byte gUnknown_0202F7C8 +_080CD960: + movs r0, 0x80 + lsls r0, 3 + strh r0, [r5, 0x36] + movs r0, 0xF4 + lsls r0, 8 +_080CD96A: + strh r0, [r5, 0x38] +_080CD96C: + ldrh r0, [r5, 0x36] + ldrh r1, [r5, 0x38] + adds r0, r1 + strh r0, [r5, 0x38] + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r5, 0x38] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F9C + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080CD9AC + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F40 + ldr r0, _080CD9B4 + str r0, [r5, 0x1C] +_080CD9AC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CD9B4: .4byte sub_80CD9B8 + thumb_func_end sub_80CD91C + + thumb_func_start sub_80CD9B8 +sub_80CD9B8: @ 80CD9B8 + push {lr} + bl move_anim_8072740 + pop {r0} + bx r0 + thumb_func_end sub_80CD9B8 + + thumb_func_start sub_80CD9C4 +sub_80CD9C4: @ 80CD9C4 + movs r1, 0 + strh r1, [r0, 0x2E] + ldr r1, _080CD9D0 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080CD9D0: .4byte sub_80CD9D4 + thumb_func_end sub_80CD9C4 + + thumb_func_start sub_80CD9D4 +sub_80CD9D4: @ 80CD9D4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080CDA2E + cmp r5, 0x1 + bgt _080CD9EA + cmp r5, 0 + beq _080CD9F0 + b _080CDAC2 +_080CD9EA: + cmp r5, 0x2 + beq _080CDA80 + b _080CDAC2 +_080CD9F0: + strh r5, [r4, 0x30] + ldr r1, _080CDA74 + ldr r2, _080CDA78 + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r4, 0x32] + ldrb r0, [r2] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x34] + ldr r2, _080CDA7C + adds r1, r2, 0 + cmp r0, 0 + beq _080CDA18 + movs r0, 0x80 + lsls r0, 2 + adds r1, r0, 0 +_080CDA18: + strh r1, [r4, 0x36] + strh r5, [r4, 0x38] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8078E70 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_080CDA2E: + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x38] + adds r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x38] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F9C + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080CDAC2 + movs r0, 0 + strh r0, [r4, 0x30] + movs r2, 0x36 + ldrsh r0, [r4, r2] + negs r0, r0 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080CDAC2 + .align 2, 0 +_080CDA74: .4byte gUnknown_02024BE0 +_080CDA78: .4byte gUnknown_0202F7C8 +_080CDA7C: .4byte 0xfffffe00 +_080CDA80: + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x38] + adds r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x38] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F9C + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080CDAC2 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F40 + adds r0, r4, 0 + bl move_anim_8072740 +_080CDAC2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80CD9D4 + + thumb_func_start sub_80CDAC8 +sub_80CDAC8: @ 80CDAC8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080CDB0C + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldr r1, _080CDB10 + ldr r2, _080CDB14 + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + movs r4, 0 + strh r0, [r5, 0x8] + ldrb r0, [r2] + bl battle_side_get_owner + lsls r0, 24 + lsrs r2, r0, 24 + strh r2, [r5, 0xA] + strh r4, [r5, 0xC] + ldr r0, _080CDB18 + movs r3, 0 + ldrsh r1, [r0, r3] + cmp r1, 0 + beq _080CDB1C + cmp r1, 0x1 + beq _080CDB38 + adds r0, r6, 0 + bl move_anim_task_del + b _080CDB56 + .align 2, 0 +_080CDB0C: .4byte gTasks +_080CDB10: .4byte gUnknown_02024BE0 +_080CDB14: .4byte gUnknown_0202F7C8 +_080CDB18: .4byte gUnknown_03004B00 +_080CDB1C: + strh r1, [r5, 0xC] + movs r0, 0x8 + strh r0, [r5, 0xE] + strh r1, [r5, 0x10] + movs r0, 0x3 + strh r0, [r5, 0x12] + cmp r2, 0 + bne _080CDB30 + negs r0, r0 + strh r0, [r5, 0x12] +_080CDB30: + ldr r0, _080CDB34 + b _080CDB54 + .align 2, 0 +_080CDB34: .4byte sub_80CDB60 +_080CDB38: + movs r0, 0x8 + strh r0, [r5, 0xE] + movs r0, 0xC0 + lsls r0, 3 + strh r0, [r5, 0x10] + movs r1, 0xC0 + strh r1, [r5, 0x12] + cmp r2, 0 + bne _080CDB52 + negs r0, r0 + strh r0, [r5, 0x10] + negs r0, r1 + strh r0, [r5, 0x12] +_080CDB52: + ldr r0, _080CDB5C +_080CDB54: + str r0, [r5] +_080CDB56: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CDB5C: .4byte sub_80CDD20 + thumb_func_end sub_80CDAC8 + + thumb_func_start sub_80CDB60 +sub_80CDB60: @ 80CDB60 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080CDB84 + adds r4, r0, r1 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080CDB7A + b _080CDD1A +_080CDB7A: + lsls r0, 2 + ldr r1, _080CDB88 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080CDB84: .4byte gTasks +_080CDB88: .4byte _080CDB8C + .align 2, 0 +_080CDB8C: + .4byte _080CDBA0 + .4byte _080CDBD2 + .4byte _080CDC2C + .4byte _080CDCA4 + .4byte _080CDCE8 +_080CDBA0: + movs r2, 0xE + ldrsh r1, [r4, r2] + cmp r1, 0 + beq _080CDBB0 + ldrh r2, [r4, 0x12] + ldrh r3, [r4, 0x10] + adds r2, r3 + b _080CDCF6 +_080CDBB0: + movs r0, 0x8 + strh r0, [r4, 0xE] + strh r1, [r4, 0x10] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r1, 0xC0 + cmp r0, 0 + bne _080CDBC6 + movs r2, 0xC0 + negs r2, r2 + adds r1, r2, 0 +_080CDBC6: + strh r1, [r4, 0x12] + ldrb r0, [r4, 0x8] + movs r1, 0 + bl sub_8078E70 + b _080CDCDC +_080CDBD2: + movs r3, 0xE + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080CDBF8 + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x10] + adds r0, r1 + strh r0, [r4, 0x10] + ldrb r0, [r4, 0x8] + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x10] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_8078F9C + b _080CDD08 +_080CDBF8: + movs r0, 0x8 + strh r0, [r4, 0xE] + ldr r2, _080CDC28 + movs r3, 0x8 + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x24] + strh r0, [r4, 0x10] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r2, 0x2 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080CDC1E + movs r1, 0x2 +_080CDC1E: + strh r1, [r4, 0x12] + movs r0, 0x1 + strh r0, [r4, 0x14] + b _080CDCDC + .align 2, 0 +_080CDC28: .4byte gSprites +_080CDC2C: + ldrh r2, [r4, 0xE] + movs r3, 0xE + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080CDC88 + ldrh r1, [r4, 0x14] + movs r3, 0x14 + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080CDC46 + subs r0, r1, 0x1 + strh r0, [r4, 0x14] + b _080CDD1A +_080CDC46: + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _080CDC68 + ldr r2, _080CDC64 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x12] + ldrh r2, [r4, 0x10] + adds r1, r2 + b _080CDC7C + .align 2, 0 +_080CDC64: .4byte gSprites +_080CDC68: + ldr r2, _080CDC84 + movs r3, 0x8 + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x10] + ldrh r2, [r4, 0x12] + subs r1, r2 +_080CDC7C: + strh r1, [r0, 0x24] + movs r0, 0x1 + strh r0, [r4, 0x14] + b _080CDD08 + .align 2, 0 +_080CDC84: .4byte gSprites +_080CDC88: + ldr r2, _080CDCA0 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x10] + strh r1, [r0, 0x24] + movs r0, 0xC + strh r0, [r4, 0xE] + b _080CDCDC + .align 2, 0 +_080CDCA0: .4byte gSprites +_080CDCA4: + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080CDCB4 + subs r0, r1, 0x1 + strh r0, [r4, 0xE] + b _080CDD1A +_080CDCB4: + movs r0, 0x3 + strh r0, [r4, 0xE] + ldr r2, _080CDCE4 + movs r3, 0x8 + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x24] + strh r0, [r4, 0x10] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r2, 0x8 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080CDCDA + movs r1, 0x8 +_080CDCDA: + strh r1, [r4, 0x12] +_080CDCDC: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + b _080CDD1A + .align 2, 0 +_080CDCE4: .4byte gSprites +_080CDCE8: + movs r3, 0xE + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080CDD14 + ldrh r2, [r4, 0x12] + ldrh r0, [r4, 0x10] + adds r2, r0 +_080CDCF6: + strh r2, [r4, 0x10] + ldr r3, _080CDD10 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x24] +_080CDD08: + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + b _080CDD1A + .align 2, 0 +_080CDD10: .4byte gSprites +_080CDD14: + adds r0, r2, 0 + bl move_anim_task_del +_080CDD1A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CDB60 + + thumb_func_start sub_80CDD20 +sub_80CDD20: @ 80CDD20 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080CDD5C + adds r4, r0, r1 + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080CDD60 + ldrh r0, [r4, 0x10] + ldrh r1, [r4, 0x12] + subs r0, r1 + strh r0, [r4, 0x10] + ldrb r0, [r4, 0x8] + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x10] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_8078F9C + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + b _080CDD6C + .align 2, 0 +_080CDD5C: .4byte gTasks +_080CDD60: + ldrb r0, [r4, 0x8] + bl sub_8078F40 + adds r0, r5, 0 + bl move_anim_task_del +_080CDD6C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80CDD20 + + thumb_func_start sub_80CDD74 +sub_80CDD74: @ 80CDD74 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080CDD88 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080CDD90 + ldr r4, _080CDD8C + b _080CDD92 + .align 2, 0 +_080CDD88: .4byte gUnknown_03004B00 +_080CDD8C: .4byte gUnknown_0202F7C8 +_080CDD90: + ldr r4, _080CDDD0 +_080CDD92: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x2] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x4] + adds r0, r6 + strh r0, [r5, 0x22] + movs r0, 0 + strh r0, [r5, 0x2E] + strh r0, [r5, 0x30] + ldr r1, _080CDDD4 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080CDDD8 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CDDD0: .4byte gUnknown_0202F7C9 +_080CDDD4: .4byte sub_80CDEC0 +_080CDDD8: .4byte sub_8078600 + thumb_func_end sub_80CDD74 + + thumb_func_start sub_80CDDDC +sub_80CDDDC: @ 80CDDDC + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080CDE14 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080CDE18 + adds r0, r1 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r1, _080CDE1C + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CDE20 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CDE14: .4byte gUnknown_0202F7C9 +_080CDE18: .4byte 0x0000ffd0 +_080CDE1C: .4byte sub_80CDE78 +_080CDE20: .4byte sub_8078600 + thumb_func_end sub_80CDDDC + + thumb_func_start sub_80CDE24 +sub_80CDE24: @ 80CDE24 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, _080CDE68 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080CDE6C + ldr r2, _080CDE70 + adds r0, r2 + ldrh r1, [r1] + adds r0, r1 + movs r6, 0 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + strh r6, [r4, 0x2E] + strh r6, [r4, 0x30] + ldr r0, _080CDE74 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CDE68: .4byte gUnknown_0202F7C9 +_080CDE6C: .4byte gUnknown_03004B00 +_080CDE70: .4byte 0x0000ffd0 +_080CDE74: .4byte sub_80CDEC0 + thumb_func_end sub_80CDE24 + + thumb_func_start sub_80CDE78 +sub_80CDE78: @ 80CDE78 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080CDEA2 + movs r0, 0xC + strh r0, [r4, 0x2E] + movs r0, 0x8 + strh r0, [r4, 0x30] + movs r0, 0 + strh r0, [r4, 0x32] + ldr r1, _080CDEA8 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CDEAC + str r0, [r4, 0x1C] +_080CDEA2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CDEA8: .4byte sub_80CDEB0 +_080CDEAC: .4byte sub_8078364 + thumb_func_end sub_80CDE78 + + thumb_func_start sub_80CDEB0 +sub_80CDEB0: @ 80CDEB0 + movs r1, 0 + strh r1, [r0, 0x2E] + strh r1, [r0, 0x30] + ldr r1, _080CDEBC + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080CDEBC: .4byte sub_80CDEC0 + thumb_func_end sub_80CDEB0 + + thumb_func_start sub_80CDEC0 +sub_80CDEC0: @ 80CDEC0 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080CDF08 + movs r0, 0 + strh r0, [r3, 0x2E] + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080CDF08 + adds r0, r3, 0 + bl move_anim_8072740 +_080CDF08: + pop {r0} + bx r0 + thumb_func_end sub_80CDEC0 + + thumb_func_start sub_80CDF0C +sub_80CDF0C: @ 80CDF0C + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080CDF20 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080CDF28 + ldr r4, _080CDF24 + b _080CDF2A + .align 2, 0 +_080CDF20: .4byte gUnknown_03004B00 +_080CDF24: .4byte gUnknown_0202F7C8 +_080CDF28: + ldr r4, _080CDF64 +_080CDF2A: + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x2] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x4] + adds r0, r6 + strh r0, [r5, 0x22] + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080CDF68 + ldrh r0, [r0, 0x6] + strh r0, [r5, 0x30] + ldr r0, _080CDF6C + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CDF64: .4byte gUnknown_0202F7C9 +_080CDF68: .4byte gUnknown_03004B00 +_080CDF6C: .4byte sub_80CDF70 + thumb_func_end sub_80CDF0C + + thumb_func_start sub_80CDF70 +sub_80CDF70: @ 80CDF70 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x30 + ldrsh r1, [r2, r3] + cmp r0, r1 + ble _080CDF90 + movs r0, 0 + strh r0, [r2, 0x2E] + ldrh r0, [r2, 0x22] + subs r0, 0x1 + strh r0, [r2, 0x22] +_080CDF90: + ldrh r0, [r2, 0x22] + ldrh r1, [r2, 0x2E] + subs r0, r1 + strh r0, [r2, 0x22] + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080CDFAC + adds r0, r2, 0 + bl move_anim_8072740 +_080CDFAC: + pop {r0} + bx r0 + thumb_func_end sub_80CDF70 + + thumb_func_start sub_80CDFB0 +sub_80CDFB0: @ 80CDFB0 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _080CDFF8 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x20] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + subs r0, 0xC + strh r0, [r4, 0x22] + strh r5, [r4, 0x2E] + movs r0, 0x2 + strh r0, [r4, 0x30] + strh r5, [r4, 0x32] + strh r5, [r4, 0x34] + strh r5, [r4, 0x36] + subs r0, 0x42 + bl sub_8076F98 + lsls r0, 24 + asrs r0, 24 + strh r0, [r4, 0x38] + ldr r0, _080CDFFC + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CDFF8: .4byte gUnknown_0202F7C8 +_080CDFFC: .4byte sub_80CE000 + thumb_func_end sub_80CDFB0 + + thumb_func_start sub_80CE000 +sub_80CE000: @ 80CE000 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x30 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080CE06C + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r1, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080CE052 + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080CE052 + ldrh r1, [r4, 0x38] + lsls r1, 24 + asrs r1, 24 + movs r0, 0xC2 + bl PlaySE12WithPanning +_080CE052: + movs r1, 0 + strh r1, [r4, 0x2E] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080CE06C + strh r1, [r4, 0x32] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_080CE06C: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080CE096 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x10 + ble _080CE096 + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080CE096 + adds r0, r4, 0 + bl move_anim_8072740 +_080CE096: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CE000 + + thumb_func_start sub_80CE09C +sub_80CE09C: @ 80CE09C + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x2E + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080CE0E6 + ldr r4, _080CE0FC + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + ldr r5, _080CE100 + lsrs r0, 24 + ldrh r1, [r5] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x2] + adds r0, r5 + strh r0, [r6, 0x22] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CE0E0 + ldrh r0, [r6, 0x22] + adds r0, 0xA + strh r0, [r6, 0x22] +_080CE0E0: + ldrh r0, [r6, 0x2E] + adds r0, 0x1 + strh r0, [r6, 0x2E] +_080CE0E6: + ldr r0, _080CE100 + ldrh r1, [r0, 0xE] + ldr r0, _080CE104 + cmp r1, r0 + bne _080CE0F6 + adds r0, r6, 0 + bl move_anim_8072740 +_080CE0F6: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CE0FC: .4byte gUnknown_0202F7C8 +_080CE100: .4byte gUnknown_03004B00 +_080CE104: .4byte 0x0000ffff + thumb_func_end sub_80CE09C + + thumb_func_start sub_80CE108 +sub_80CE108: @ 80CE108 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080CE128 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080CE134 + ldr r1, _080CE12C + ldr r0, _080CE130 + strh r0, [r1, 0xE] + b _080CE16C + .align 2, 0 +_080CE128: .4byte gTasks +_080CE12C: .4byte gUnknown_03004B00 +_080CE130: .4byte 0x0000ffff +_080CE134: + cmp r0, 0x2 + bne _080CE140 + adds r0, r2, 0 + bl move_anim_task_del + b _080CE172 +_080CE140: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080CE172 + movs r0, 0 + strh r0, [r4, 0x8] + ldrh r1, [r4, 0xA] + adds r1, 0x1 + strh r1, [r4, 0xA] + ldr r3, _080CE178 + lsls r2, r1, 8 + movs r0, 0x10 + subs r0, r1 + orrs r2, r0 + strh r2, [r3] + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080CE172 +_080CE16C: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] +_080CE172: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CE178: .4byte REG_BLDALPHA + thumb_func_end sub_80CE108 + + thumb_func_start sub_80CE17C +sub_80CE17C: @ 80CE17C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8078764 + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080CE1A4 + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldr r0, _080CE1A8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CE1A4: .4byte gUnknown_03004B00 +_080CE1A8: .4byte sub_80CE1AC + thumb_func_end sub_80CE17C + + thumb_func_start sub_80CE1AC +sub_80CE1AC: @ 80CE1AC + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x2E] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080CE1C0 + subs r0, r1, 0x1 + strh r0, [r5, 0x2E] + b _080CE1FC +_080CE1C0: + adds r2, r5, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + movs r0, 0x1E + strh r0, [r5, 0x2E] + ldr r4, _080CE204 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080CE208 + str r0, [r5, 0x1C] + ldr r1, _080CE20C + adds r0, r5, 0 + bl oamt_set_x3A_32 +_080CE1FC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CE204: .4byte gUnknown_0202F7C8 +_080CE208: .4byte sub_8078B34 +_080CE20C: .4byte move_anim_8072740 + thumb_func_end sub_80CE1AC + + thumb_func_start sub_80CE210 +sub_80CE210: @ 80CE210 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080CE258 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r3, r0, r1 + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080CE252 + movs r0, 0 + strh r0, [r3, 0x8] + ldrh r1, [r3, 0xA] + adds r1, 0x1 + strh r1, [r3, 0xA] + ldr r2, _080CE25C + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0xA + ldrsh r0, [r3, r1] + cmp r0, 0x10 + bne _080CE252 + adds r0, r4, 0 + bl move_anim_task_del +_080CE252: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CE258: .4byte gTasks +_080CE25C: .4byte REG_BLDALPHA + thumb_func_end sub_80CE210 + + thumb_func_start unref_sub_80CE260 +unref_sub_80CE260: @ 80CE260 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + movs r4, 0 + ldr r0, _080CE2C8 + ldrb r0, [r0] + cmp r4, r0 + bcs _080CE2BC + ldr r6, _080CE2CC + ldr r5, _080CE2D0 +_080CE274: + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + bne _080CE290 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CE290 + adds r0, r4, r5 + ldrb r0, [r0] + bl sub_8043DB0 +_080CE290: + movs r1, 0x2 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + bne _080CE2AE + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080CE2AE + adds r0, r4, r5 + ldrb r0, [r0] + bl sub_8043DB0 +_080CE2AE: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080CE2C8 + ldrb r0, [r0] + cmp r4, r0 + bcc _080CE274 +_080CE2BC: + adds r0, r7, 0 + bl move_anim_task_del + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CE2C8: .4byte gUnknown_02024A68 +_080CE2CC: .4byte gUnknown_03004B00 +_080CE2D0: .4byte gUnknown_03004340 + thumb_func_end unref_sub_80CE260 + + thumb_func_start unref_sub_80CE2D4 +unref_sub_80CE2D4: @ 80CE2D4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + b _080CE2EE +_080CE2DE: + ldr r0, _080CE304 + adds r0, r4, r0 + ldrb r0, [r0] + bl sub_8043DFC + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080CE2EE: + ldr r0, _080CE308 + ldrb r0, [r0] + cmp r4, r0 + bcc _080CE2DE + adds r0, r5, 0 + bl move_anim_task_del + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CE304: .4byte gUnknown_03004340 +_080CE308: .4byte gUnknown_02024A68 + thumb_func_end unref_sub_80CE2D4 + + thumb_func_start sub_80CE30C +sub_80CE30C: @ 80CE30C + push {r4,lr} + adds r4, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CE322 + movs r0, 0x30 + strh r0, [r4, 0x20] + movs r0, 0x28 + b _080CE32A +_080CE322: + ldr r0, _080CE34C + ldrh r1, [r0] + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] +_080CE32A: + strh r0, [r4, 0x22] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x3] + movs r1, 0xC0 + orrs r0, r1 + strb r0, [r4, 0x3] + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080CE350 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CE34C: .4byte gUnknown_03004B00 +_080CE350: .4byte sub_80CE354 + thumb_func_end sub_80CE30C + + thumb_func_start sub_80CE354 +sub_80CE354: @ 80CE354 + push {lr} + adds r1, r0, 0 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080CE366 + adds r0, r1, 0 + bl move_anim_8072740 +_080CE366: + pop {r0} + bx r0 + thumb_func_end sub_80CE354 + + thumb_func_start sub_80CE36C +sub_80CE36C: @ 80CE36C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080CE3A4 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r2, _080CE3A8 + lsrs r0, 24 + ldrh r1, [r2] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + strh r0, [r4, 0x22] + strh r1, [r4, 0x2E] + strh r1, [r4, 0x30] + strh r1, [r4, 0x32] + strh r1, [r4, 0x34] + movs r0, 0x1 + strh r0, [r4, 0x36] + ldr r0, _080CE3AC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CE3A4: .4byte gUnknown_0202F7C8 +_080CE3A8: .4byte gUnknown_03004B00 +_080CE3AC: .4byte sub_80CE3B0 + thumb_func_end sub_80CE36C + + thumb_func_start sub_80CE3B0 +sub_80CE3B0: @ 80CE3B0 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080CE3DA + movs r0, 0 + strh r0, [r1, 0x30] + ldrh r2, [r1, 0x32] + movs r3, 0x32 + ldrsh r0, [r1, r3] + cmp r0, 0x77 + bgt _080CE3DA + ldrh r0, [r1, 0x22] + adds r0, 0x1 + strh r0, [r1, 0x22] + adds r0, r2, 0x1 + strh r0, [r1, 0x32] +_080CE3DA: + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080CE3E8 + adds r0, r1, 0 + bl move_anim_8072740 +_080CE3E8: + pop {r0} + bx r0 + thumb_func_end sub_80CE3B0 + + thumb_func_start sub_80CE3EC +sub_80CE3EC: @ 80CE3EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80791A8 + mov r8, r0 + ldr r0, _080CE4BC + mov r1, r8 + ands r1, r0 + mov r8, r1 + ldr r0, _080CE4C0 + mov r9, r0 + lsls r5, r7, 2 + adds r5, r7 + lsls r5, 3 + adds r6, r5, r0 + strh r4, [r6, 0x8] + strh r4, [r6, 0xA] + strh r4, [r6, 0xC] + strh r1, [r6, 0xE] + strh r4, [r6, 0x10] + strh r4, [r6, 0x12] + strh r4, [r6, 0x14] + movs r0, 0xD + strh r0, [r6, 0x16] + movs r0, 0xE + strh r0, [r6, 0x18] + movs r0, 0xF + strh r0, [r6, 0x1A] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x1 + bl sub_80792C0 + mov r10, r0 + mov r1, r8 + orrs r1, r0 + mov r8, r1 + movs r0, 0x8 + add r9, r0 + add r5, r9 + adds r0, r5, 0 + adds r0, 0x1C + adds r5, 0x1E + adds r1, r5, 0 + mov r2, r8 + bl sub_8079BF4 + ldr r0, _080CE4C4 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + movs r4, 0x80 + lsls r4, 9 + adds r1, r4, 0 + lsls r1, r0 + mov r0, r10 + orrs r0, r1 + mov r10, r0 + ldr r0, _080CE4C8 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0 + mov r1, r10 + orrs r4, r1 + ldr r0, _080CE4CC + str r0, [sp] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _080CE4D0 + str r1, [r6] + adds r0, r7, 0 + bl _call_via_r1 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CE4BC: .4byte 0x0000ffff +_080CE4C0: .4byte gTasks +_080CE4C4: .4byte 0x000027d2 +_080CE4C8: .4byte 0x000027d3 +_080CE4CC: .4byte 0x00007fbb +_080CE4D0: .4byte sub_80CE4D4 + thumb_func_end sub_80CE3EC + + thumb_func_start sub_80CE4D4 +sub_80CE4D4: @ 80CE4D4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080CE4FC + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080CE5C0 + cmp r1, 0x1 + bgt _080CE500 + cmp r1, 0 + beq _080CE50E + b _080CE65E + .align 2, 0 +_080CE4FC: .4byte gTasks +_080CE500: + cmp r1, 0x2 + bne _080CE506 + b _080CE618 +_080CE506: + cmp r1, 0x3 + bne _080CE50C + b _080CE64C +_080CE50C: + b _080CE65E +_080CE50E: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + bgt _080CE51C + b _080CE65E +_080CE51C: + strh r1, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + bgt _080CE568 + ldrh r0, [r4, 0x16] + ldrh r1, [r4, 0x10] + adds r0, r1 + strh r0, [r4, 0x10] + ldrh r2, [r4, 0x18] + ldrh r3, [r4, 0x12] + adds r2, r3 + strh r2, [r4, 0x12] + ldrh r1, [r4, 0x1A] + ldrh r5, [r4, 0x14] + adds r1, r5 + strh r1, [r4, 0x14] + lsls r0, 16 + asrs r0, 19 + lsls r0, 16 + lsrs r0, 16 + lsls r2, 16 + asrs r2, 19 + lsls r2, 16 + lsls r1, 16 + asrs r1, 19 + lsls r1, 16 + lsrs r2, 11 + orrs r0, r2 + lsrs r1, 6 + orrs r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + b _080CE572 +_080CE568: + ldr r7, _080CE5B8 + mov r12, r7 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080CE572: + movs r2, 0x1 + movs r3, 0 + movs r1, 0 +_080CE578: + movs r5, 0xE + ldrsh r0, [r4, r5] + ands r0, r2 + lsls r5, r2, 17 + adds r6, r3, 0 + adds r6, 0x10 + adds r1, 0x1 + mov r8, r1 + cmp r0, 0 + beq _080CE5A4 + movs r1, 0x1 + ldr r2, _080CE5BC +_080CE590: + adds r0, r3, r1 + lsls r0, 1 + adds r0, r2 + mov r7, r12 + strh r7, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xF + bls _080CE590 +_080CE5A4: + lsrs r2, r5, 16 + lsls r0, r6, 16 + lsrs r3, r0, 16 + mov r1, r8 + lsls r0, r1, 16 + lsrs r1, r0, 16 + cmp r1, 0xF + bls _080CE578 + b _080CE65E + .align 2, 0 +_080CE5B8: .4byte 0x00007fbb +_080CE5BC: .4byte gPlttBufferFaded +_080CE5C0: + ldr r0, _080CE608 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080CE65E + movs r2, 0 + ldr r3, _080CE60C + movs r5, 0x14 + adds r5, r3 + mov r12, r5 + ldr r7, _080CE610 + mov r8, r7 + ldr r6, _080CE614 + movs r5, 0x1 +_080CE5DE: + lsls r0, r2, 4 + adds r0, r2 + lsls r1, r0, 2 + mov r7, r12 + adds r0, r1, r7 + ldr r0, [r0] + cmp r0, r8 + beq _080CE5F2 + cmp r0, r6 + bne _080CE5F6 +_080CE5F2: + adds r0, r1, r3 + strh r5, [r0, 0x2E] +_080CE5F6: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3F + bls _080CE5DE + movs r0, 0 + strh r0, [r4, 0xA] + b _080CE640 + .align 2, 0 +_080CE608: .4byte gPaletteFade +_080CE60C: .4byte gSprites +_080CE610: .4byte gBattleAnimSpriteTemplate_83D6FC8 +_080CE614: .4byte gBattleAnimSpriteTemplate_83D6FF8 +_080CE618: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _080CE65E + movs r1, 0x24 + ldrsh r0, [r4, r1] + movs r2, 0x26 + ldrsh r1, [r4, r2] + bl sub_8079BFC + ldr r1, _080CE648 + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_080CE640: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080CE65E + .align 2, 0 +_080CE648: .4byte 0x00007fbb +_080CE64C: + ldr r0, _080CE66C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080CE65E + adds r0, r2, 0 + bl move_anim_task_del +_080CE65E: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CE66C: .4byte gPaletteFade + thumb_func_end sub_80CE4D4 + + thumb_func_start sub_80CE670 +sub_80CE670: @ 80CE670 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080CE6F4 + movs r1, 0x4 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + bgt _080CE682 + movs r0, 0x2 + strh r0, [r6, 0x4] +_080CE682: + movs r1, 0x4 + ldrsh r0, [r6, r1] + cmp r0, 0x7F + ble _080CE68E + movs r0, 0x7F + strh r0, [r6, 0x4] +_080CE68E: + movs r0, 0 + strh r0, [r5, 0x2E] + ldrh r0, [r6, 0x4] + strh r0, [r5, 0x30] + ldr r4, _080CE6F8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x2] + adds r0, r6 + strh r0, [r5, 0x22] + ldrh r1, [r5, 0x20] + strh r1, [r5, 0x3A] + strh r0, [r5, 0x3C] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CE700 + ldrb r1, [r5, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x10 + orrs r0, r1 + strb r0, [r5, 0x3] + ldrh r0, [r5, 0x20] + adds r0, 0x28 + strh r0, [r5, 0x20] + ldrh r4, [r5, 0x22] + adds r4, 0x14 + strh r4, [r5, 0x22] + lsls r0, 7 + strh r0, [r5, 0x32] + movs r0, 0x30 + ldrsh r1, [r5, r0] + ldr r0, _080CE6FC + b _080CE726 + .align 2, 0 +_080CE6F4: .4byte gUnknown_03004B00 +_080CE6F8: .4byte gUnknown_0202F7C9 +_080CE6FC: .4byte 0xffffec00 +_080CE700: + ldr r0, _080CE740 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CE748 + ldrh r0, [r5, 0x20] + subs r0, 0x28 + strh r0, [r5, 0x20] + ldrh r4, [r5, 0x22] + adds r4, 0x14 + strh r4, [r5, 0x22] + lsls r0, 7 + strh r0, [r5, 0x32] + movs r0, 0x30 + ldrsh r1, [r5, r0] + movs r0, 0xA0 + lsls r0, 5 +_080CE726: + bl __divsi3 + strh r0, [r5, 0x34] + lsls r4, 7 + strh r4, [r5, 0x36] + movs r0, 0x30 + ldrsh r1, [r5, r0] + ldr r0, _080CE744 + bl __divsi3 + strh r0, [r5, 0x38] + b _080CE784 + .align 2, 0 +_080CE740: .4byte gUnknown_0202F7C8 +_080CE744: .4byte 0xfffff600 +_080CE748: + ldrh r0, [r5, 0x20] + adds r0, 0x28 + strh r0, [r5, 0x20] + ldrh r4, [r5, 0x22] + subs r4, 0x14 + strh r4, [r5, 0x22] + lsls r0, 7 + strh r0, [r5, 0x32] + movs r0, 0x30 + ldrsh r1, [r5, r0] + ldr r0, _080CE790 + bl __divsi3 + strh r0, [r5, 0x34] + lsls r4, 7 + strh r4, [r5, 0x36] + movs r0, 0x30 + ldrsh r1, [r5, r0] + movs r0, 0xA0 + lsls r0, 4 + bl __divsi3 + strh r0, [r5, 0x38] + ldrb r1, [r5, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x30 + orrs r0, r1 + strb r0, [r5, 0x3] +_080CE784: + ldr r0, _080CE794 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CE790: .4byte 0xffffec00 +_080CE794: .4byte sub_80CE798 + thumb_func_end sub_80CE670 + + thumb_func_start sub_80CE798 +sub_80CE798: @ 80CE798 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x34] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + ldrh r1, [r2, 0x38] + ldrh r3, [r2, 0x36] + adds r1, r3 + strh r1, [r2, 0x36] + lsls r0, 16 + asrs r0, 23 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 23 + strh r1, [r2, 0x22] + ldrh r0, [r2, 0x30] + subs r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080CE7CE + ldrh r0, [r2, 0x3A] + strh r0, [r2, 0x20] + ldrh r0, [r2, 0x3C] + strh r0, [r2, 0x22] +_080CE7CE: + movs r1, 0x30 + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080CE7DC + adds r0, r2, 0 + bl move_anim_8072740 +_080CE7DC: + pop {r0} + bx r0 + thumb_func_end sub_80CE798 + + thumb_func_start sub_80CE7E0 +sub_80CE7E0: @ 80CE7E0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r0, 2 + add r0, r8 + lsls r0, 3 + ldr r1, _080CE870 + adds r6, r0, r1 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x8] + ldr r0, _080CE874 + bl AllocSpritePalette + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0xA] + movs r1, 0xA + ldrsh r0, [r6, r1] + lsls r0, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r3, r0, 16 + ldr r2, _080CE878 + movs r0, 0x8 + ldrsh r1, [r6, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + lsls r4, r0, 4 + movs r5, 0x1 + ldr r2, _080CE87C +_080CE838: + adds r1, r3, r5 + lsls r1, 1 + adds r1, r2 + adds r0, r4, r5 + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xF + bls _080CE838 + adds r0, r3, 0 + movs r1, 0x10 + movs r2, 0xB + movs r3, 0 + bl BlendPalette + movs r0, 0 + strh r0, [r6, 0xE] + movs r5, 0 + ldr r7, _080CE878 + movs r1, 0x1C + adds r1, r7 + mov r9, r1 + b _080CE8B4 + .align 2, 0 +_080CE870: .4byte gTasks +_080CE874: .4byte 0x00002771 +_080CE878: .4byte gSprites +_080CE87C: .4byte gPlttBufferUnfaded +_080CE880: + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r4, r2, r7 + ldrb r1, [r6, 0xA] + lsls r1, 4 + ldrb r3, [r4, 0x5] + movs r0, 0xF + ands r0, r3 + orrs r0, r1 + strb r0, [r4, 0x5] + movs r0, 0 + strh r0, [r4, 0x2E] + lsls r0, r5, 7 + strh r0, [r4, 0x30] + mov r0, r8 + strh r0, [r4, 0x32] + add r2, r9 + ldr r0, _080CE8E4 + str r0, [r2] + ldrh r0, [r6, 0xE] + adds r0, 0x1 + strh r0, [r6, 0xE] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080CE8B4: + cmp r5, 0x1 + bhi _080CE8C6 + movs r0, 0 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080CE880 +_080CE8C6: + ldr r0, _080CE8E8 + str r0, [r6] + ldr r0, _080CE8EC + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080CE8F4 + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080CE8F0 + b _080CE8FC + .align 2, 0 +_080CE8E4: .4byte sub_80CE974 +_080CE8E8: .4byte sub_80CE910 +_080CE8EC: .4byte gUnknown_0202F7C8 +_080CE8F0: .4byte 0x0000fdff +_080CE8F4: + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080CE90C +_080CE8FC: + ands r0, r1 + strh r0, [r2] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CE90C: .4byte 0x0000fbff + thumb_func_end sub_80CE7E0 + + thumb_func_start sub_80CE910 +sub_80CE910: @ 80CE910 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080CE944 + adds r0, r1 + movs r1, 0xE + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CE968 + ldr r0, _080CE948 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080CE94C + movs r0, 0x80 + lsls r0, 19 + ldrh r1, [r0] + movs r3, 0x80 + lsls r3, 2 + b _080CE956 + .align 2, 0 +_080CE944: .4byte gTasks +_080CE948: .4byte gUnknown_0202F7C8 +_080CE94C: + movs r0, 0x80 + lsls r0, 19 + ldrh r1, [r0] + movs r3, 0x80 + lsls r3, 3 +_080CE956: + adds r2, r3, 0 + orrs r1, r2 + strh r1, [r0] + ldr r0, _080CE970 + bl FreeSpritePaletteByTag + adds r0, r4, 0 + bl move_anim_task_del +_080CE968: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CE970: .4byte 0x00002771 + thumb_func_end sub_80CE910 + + thumb_func_start sub_80CE974 +sub_80CE974: @ 80CE974 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080CE990 + movs r0, 0 + strh r0, [r5, 0x34] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] +_080CE990: + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x40 + ble _080CE9B8 + ldr r2, _080CE9B4 + movs r0, 0x32 + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0xE] + subs r1, 0x1 + strh r1, [r0, 0xE] + adds r0, r5, 0 + bl obj_delete_but_dont_free_vram + b _080CE9FA + .align 2, 0 +_080CE9B4: .4byte gTasks +_080CE9B8: + ldr r4, _080CEA00 + movs r1, 0x2E + ldrsh r0, [r5, r1] + lsls r0, 1 + adds r0, r4 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0x6 + bl __divsi3 + strh r0, [r5, 0x36] + movs r1, 0x2E + ldrsh r0, [r5, r1] + lsls r0, 1 + adds r0, r4 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0xD + bl __divsi3 + strh r0, [r5, 0x38] + ldrh r1, [r5, 0x30] + adds r1, r0 + movs r0, 0xFF + ands r1, r0 + strh r1, [r5, 0x30] + movs r1, 0x30 + ldrsh r0, [r5, r1] + movs r2, 0x36 + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r5, 0x24] +_080CE9FA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CEA00: .4byte gSineTable + thumb_func_end sub_80CE974 + + thumb_func_start sub_80CEA04 +sub_80CEA04: @ 80CEA04 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080CEA18 + bl oamt_set_x3A_32 + ldr r0, _080CEA1C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CEA18: .4byte move_anim_8072740 +_080CEA1C: .4byte sub_8078600 + thumb_func_end sub_80CEA04 + + thumb_func_start sub_80CEA20 +sub_80CEA20: @ 80CEA20 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r4, _080CEAD0 + ldrh r0, [r4] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0xFF + beq _080CEA64 + lsls r0, r3, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r3, r0, 16 + movs r2, 0x1 + ldr r5, _080CEAD4 +_080CEA4C: + adds r1, r3, r2 + lsls r1, 1 + adds r1, r5 + lsls r0, r2, 1 + adds r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080CEA4C +_080CEA64: + movs r4, 0x1 + ldr r0, _080CEAD0 + mov r8, r0 +_080CEA6A: + lsls r0, r4, 1 + adds r0, r4 + lsls r5, r0, 2 + mov r1, r8 + adds r0, r5, r1 + ldrh r0, [r0] + bl AllocSpritePalette + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, 0x1 + mov r12, r4 + cmp r3, 0xFF + beq _080CEAB2 + lsls r0, r3, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r3, r0, 16 + movs r2, 0x1 + ldr r7, _080CEAD4 + ldr r6, _080CEAD0 + adds r4, r5, 0 +_080CEA98: + adds r1, r3, r2 + lsls r1, 1 + adds r1, r7 + lsls r0, r2, 1 + adds r0, r4 + adds r0, r6 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080CEA98 +_080CEAB2: + mov r1, r12 + lsls r0, r1, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080CEA6A + mov r0, r9 + bl move_anim_task_del + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CEAD0: .4byte gUnknown_083D712C +_080CEAD4: .4byte gPlttBufferFaded + thumb_func_end sub_80CEA20 + + thumb_func_start sub_80CEAD8 +sub_80CEAD8: @ 80CEAD8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0x1 + ldr r6, _080CEB08 +_080CEAE2: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r6 + ldrh r0, [r0] + bl FreeSpritePaletteByTag + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080CEAE2 + adds r0, r5, 0 + bl move_anim_task_del + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CEB08: .4byte gUnknown_083D712C + thumb_func_end sub_80CEAD8 + + thumb_func_start sub_80CEB0C +sub_80CEB0C: @ 80CEB0C + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + bl sub_8078650 + ldr r4, _080CEB64 + ldrb r1, [r4] + adds r0, r5, 0 + bl StartSpriteAnim + ldr r2, _080CEB68 + movs r0, 0x2 + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080CEB48 + lsls r2, r0, 4 + ldrb r1, [r5, 0x5] + movs r0, 0xF + ands r0, r1 + orrs r0, r2 + strb r0, [r5, 0x5] +_080CEB48: + ldrh r0, [r4, 0x2] + movs r1, 0 + strh r0, [r5, 0x30] + strh r1, [r5, 0x32] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x34] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CEB6C + movs r6, 0x30 + movs r3, 0x28 + b _080CEB86 + .align 2, 0 +_080CEB64: .4byte gUnknown_03004B00 +_080CEB68: .4byte gUnknown_083D712C +_080CEB6C: + ldr r4, _080CEBBC + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r3, r0, 24 +_080CEB86: + ldrh r0, [r5, 0x20] + lsls r1, r0, 4 + strh r1, [r5, 0x36] + ldrh r1, [r5, 0x22] + lsls r2, r1, 4 + strh r2, [r5, 0x38] + subs r0, r6, r0 + lsls r0, 16 + asrs r0, 16 + subs r1, r3, r1 + lsls r1, 16 + asrs r1, 16 + adds r2, r5, 0 + adds r2, 0x3A + adds r3, r5, 0 + adds r3, 0x3C + movs r4, 0x28 + str r4, [sp] + bl sub_80CEBC4 + ldr r0, _080CEBC0 + str r0, [r5, 0x1C] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CEBBC: .4byte gUnknown_0202F7C9 +_080CEBC0: .4byte sub_80CEC1C + thumb_func_end sub_80CEB0C + + thumb_func_start sub_80CEBC4 +sub_80CEBC4: @ 80CEBC4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r2, 0 + mov r8, r3 + ldr r2, [sp, 0x18] + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 24 + lsrs r1, r2, 24 + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + bge _080CEBE6 + lsls r0, r1, 24 + negs r0, r0 + lsrs r1, r0, 24 +_080CEBE6: + lsls r5, r2, 8 + lsls r1, 24 + asrs r1, 24 + adds r0, r5, 0 + bl __divsi3 + adds r4, r0, 0 + cmp r4, 0 + bne _080CEBFA + movs r4, 0x1 +_080CEBFA: + adds r0, r5, 0 + adds r1, r4, 0 + bl __divsi3 + strh r0, [r7] + lsls r0, r6, 16 + asrs r0, 8 + adds r1, r4, 0 + bl __divsi3 + mov r1, r8 + strh r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80CEBC4 + + thumb_func_start sub_80CEC1C +sub_80CEC1C: @ 80CEC1C + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x2E] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r1, r0, r1 + adds r0, r1, 0 + cmp r1, 0 + bge _080CEC38 + adds r0, 0xFF +_080CEC38: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + ldrh r1, [r4, 0x3A] + ldrh r2, [r4, 0x36] + adds r1, r2 + strh r1, [r4, 0x36] + ldrh r2, [r4, 0x3C] + ldrh r3, [r4, 0x38] + adds r2, r3 + strh r2, [r4, 0x38] + lsls r1, 16 + asrs r1, 20 + strh r1, [r4, 0x20] + lsls r2, 16 + asrs r2, 20 + strh r2, [r4, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r1, 0xF + bl Sin + strh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + ldrh r0, [r4, 0x20] + adds r0, 0x10 + lsls r0, 16 + movs r1, 0x88 + lsls r1, 17 + cmp r0, r1 + bhi _080CEC86 + lsls r0, r2, 16 + asrs r1, r0, 16 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + blt _080CEC86 + cmp r1, 0x80 + ble _080CEC8E +_080CEC86: + adds r0, r4, 0 + bl move_anim_8074EE0 + b _080CECDE +_080CEC8E: + movs r0, 0x34 + ldrsh r1, [r4, r0] + cmp r1, 0 + beq _080CECDE + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, r1 + ble _080CECDE + strh r5, [r4, 0x32] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080CECB6 + strh r5, [r4, 0x30] +_080CECB6: + ldr r2, _080CECE4 + movs r3, 0x30 + ldrsh r1, [r4, r3] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080CECDE + lsls r2, r0, 4 + ldrb r1, [r4, 0x5] + movs r0, 0xF + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] +_080CECDE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CECE4: .4byte gUnknown_083D712C + thumb_func_end sub_80CEC1C + + thumb_func_start sub_80CECE8 +sub_80CECE8: @ 80CECE8 + push {r4-r7,lr} + adds r6, r0, 0 + ldr r7, _080CED6C + ldrb r0, [r7] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080CED06 + ldr r1, _080CED70 + movs r2, 0x2 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x2] +_080CED06: + ldrb r0, [r7] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080CED70 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + movs r5, 0 + strh r0, [r6, 0x20] + ldrb r0, [r7] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r4, 0x4] + adds r0, r2 + strh r0, [r6, 0x22] + ldrb r1, [r4] + adds r0, r6, 0 + bl StartSpriteAnim + strh r5, [r6, 0x32] + strh r5, [r6, 0x34] + ldrh r0, [r6, 0x20] + lsls r0, 4 + strh r0, [r6, 0x36] + ldrh r0, [r6, 0x22] + lsls r0, 4 + strh r0, [r6, 0x38] + movs r1, 0x2 + ldrsh r0, [r4, r1] + lsls r0, 4 + movs r1, 0x5 + bl __divsi3 + strh r0, [r6, 0x3A] + movs r2, 0x4 + ldrsh r0, [r4, r2] + lsls r0, 7 + movs r1, 0x5 + bl __divsi3 + strh r0, [r6, 0x3C] + ldr r0, _080CED74 + str r0, [r6, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CED6C: .4byte gUnknown_0202F7C8 +_080CED70: .4byte gUnknown_03004B00 +_080CED74: .4byte sub_80CED78 + thumb_func_end sub_80CECE8 + + thumb_func_start sub_80CED78 +sub_80CED78: @ 80CED78 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x36] + adds r0, r1 + strh r0, [r4, 0x36] + ldrh r1, [r4, 0x3C] + ldrh r2, [r4, 0x38] + adds r1, r2 + strh r1, [r4, 0x38] + lsls r0, 16 + asrs r0, 20 + strh r0, [r4, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r4, 0x22] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x5 + ble _080CEDD6 + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080CEDD6 + ldrh r0, [r4, 0x32] + adds r0, 0x10 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x32] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r1, 0x12 + bl Cos + strh r0, [r4, 0x24] + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r1, 0x12 + bl Sin + strh r0, [r4, 0x26] + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080CEDD6 + movs r0, 0x1 + strh r0, [r4, 0x34] +_080CEDD6: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x30 + bne _080CEDEA + adds r0, r4, 0 + bl move_anim_8074EE0 +_080CEDEA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CED78 + + thumb_func_start sub_80CEDF0 +sub_80CEDF0: @ 80CEDF0 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _080CEE10 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _080CEE14 + ldrb r0, [r5, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + strb r1, [r5, 0x3] + movs r6, 0x10 + b _080CEE16 + .align 2, 0 +_080CEE10: .4byte gUnknown_03004B00 +_080CEE14: + ldr r6, _080CEE50 +_080CEE16: + ldr r4, _080CEE54 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x8 + strh r0, [r5, 0x22] + movs r0, 0x8 + strh r0, [r5, 0x2E] + ldr r0, _080CEE58 + str r0, [r5, 0x1C] + ldr r1, _080CEE5C + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CEE50: .4byte 0x0000fff0 +_080CEE54: .4byte gUnknown_0202F7C8 +_080CEE58: .4byte sub_80782D8 +_080CEE5C: .4byte move_anim_8072740 + thumb_func_end sub_80CEDF0 + + thumb_func_start sub_80CEE60 +sub_80CEE60: @ 80CEE60 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_8078650 + ldrh r0, [r4, 0x22] + adds r0, 0x8 + strh r0, [r4, 0x22] + ldr r5, _080CEED8 + ldrb r1, [r5, 0x2] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r2, _080CEEDC + movs r0, 0x4 + ldrsh r1, [r5, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080CEEA0 + lsls r2, r0, 4 + ldrb r1, [r4, 0x5] + movs r0, 0xF + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] +_080CEEA0: + movs r1, 0 + ldrsh r0, [r5, r1] + movs r2, 0x20 + cmp r0, 0 + bne _080CEEAC + ldr r2, _080CEEE0 +_080CEEAC: + movs r0, 0x28 + strh r0, [r4, 0x2E] + ldrh r1, [r4, 0x20] + strh r1, [r4, 0x30] + lsls r0, r2, 16 + asrs r0, 16 + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + subs r0, 0x28 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x38] + ldr r0, _080CEEE4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CEED8: .4byte gUnknown_03004B00 +_080CEEDC: .4byte gUnknown_083D712C +_080CEEE0: .4byte 0x0000ffe0 +_080CEEE4: .4byte sub_80CEEE8 + thumb_func_end sub_80CEE60 + + thumb_func_start sub_80CEEE8 +sub_80CEEE8: @ 80CEEE8 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _080CEF38 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + lsls r0, 16 + lsrs r1, r0, 16 + ldrh r2, [r4, 0x24] + movs r3, 0x24 + ldrsh r0, [r4, r3] + cmp r0, 0 + bge _080CEF14 + lsls r0, r1, 16 + negs r0, r0 + lsrs r1, r0, 16 +_080CEF14: + lsls r0, r1, 16 + asrs r0, 16 + adds r0, r2 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl Sin + ldrh r3, [r4, 0x26] + adds r0, r3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x8 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080CEF3E +_080CEF38: + adds r0, r4, 0 + bl move_anim_8072740 +_080CEF3E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CEEE8 + + thumb_func_start sub_80CEF44 +sub_80CEF44: @ 80CEF44 + push {r4-r6,lr} + adds r6, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CEF64 + adds r0, r5, 0 + movs r1, 0x5 + bl sub_807A100 + adds r0, 0x8 + b _080CEF6E +_080CEF64: + adds r0, r5, 0 + movs r1, 0x4 + bl sub_807A100 + subs r0, 0x8 +_080CEF6E: + strh r0, [r6, 0x20] + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8077ABC + adds r4, r0, 0 + adds r0, r5, 0 + movs r1, 0 + bl sub_807A100 + lsls r4, 24 + lsrs r4, 24 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080CEF90 + adds r0, 0x3 +_080CEF90: + asrs r0, 2 + subs r0, r4, r0 + strh r0, [r6, 0x22] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80CEF44 + + thumb_func_start sub_80CEF9C +sub_80CEF9C: @ 80CEF9C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080CEFB0 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CEFB8 + ldr r0, _080CEFB4 + b _080CEFBA + .align 2, 0 +_080CEFB0: .4byte gUnknown_03004B00 +_080CEFB4: .4byte gUnknown_0202F7C8 +_080CEFB8: + ldr r0, _080CEFF8 +_080CEFBA: + ldrb r4, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80CEF44 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + negs r1, r0 + orrs r1, r0 + lsrs r1, 31 + ldr r0, _080CEFFC + ldrh r0, [r0, 0x2] + strh r0, [r5, 0x2E] + adds r0, r1, 0x2 + strh r0, [r5, 0x30] + adds r0, r5, 0 + bl StartSpriteAnim + ldr r1, _080CF000 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080CF004 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CEFF8: .4byte gUnknown_0202F7C9 +_080CEFFC: .4byte gUnknown_03004B00 +_080CF000: .4byte sub_80CF008 +_080CF004: .4byte sub_8078600 + thumb_func_end sub_80CEF9C + + thumb_func_start sub_80CF008 +sub_80CF008: @ 80CF008 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080CF030 + ldr r1, _080CF038 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldrh r1, [r4, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _080CF03C + str r0, [r4, 0x1C] +_080CF030: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF038: .4byte move_anim_8072740 +_080CF03C: .4byte sub_8078600 + thumb_func_end sub_80CF008 + + thumb_func_start sub_80CF040 +sub_80CF040: @ 80CF040 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080CF054 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CF05C + ldr r0, _080CF058 + b _080CF05E + .align 2, 0 +_080CF054: .4byte gUnknown_03004B00 +_080CF058: .4byte gUnknown_0202F7C8 +_080CF05C: + ldr r0, _080CF07C +_080CF05E: + ldrb r0, [r0] + adds r1, r4, 0 + bl sub_80CEF44 + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r1, _080CF080 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CF084 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF07C: .4byte gUnknown_0202F7C9 +_080CF080: .4byte sub_80CF088 +_080CF084: .4byte sub_80785E4 + thumb_func_end sub_80CF040 + + thumb_func_start sub_80CF088 +sub_80CF088: @ 80CF088 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080CF0AE + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r1, _080CF0B4 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CF0B8 + str r0, [r4, 0x1C] +_080CF0AE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF0B4: .4byte move_anim_8074EE0 +_080CF0B8: .4byte sub_80785E4 + thumb_func_end sub_80CF088 + + thumb_func_start sub_80CF0BC +sub_80CF0BC: @ 80CF0BC + push {r4-r6,lr} + adds r4, r0, 0 + ldr r0, _080CF0D0 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CF0D8 + ldr r0, _080CF0D4 + b _080CF0DA + .align 2, 0 +_080CF0D0: .4byte gUnknown_03004B00 +_080CF0D4: .4byte gUnknown_0202F7C8 +_080CF0D8: + ldr r0, _080CF12C +_080CF0DA: + ldrb r5, [r0] + adds r0, r5, 0 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_807A100 + strh r0, [r4, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + bgt _080CF102 + movs r0, 0xA + strh r0, [r4, 0x22] +_080CF102: + movs r0, 0x1 + strh r0, [r4, 0x2E] + strh r6, [r4, 0x30] + adds r1, r4, 0 + adds r1, 0x43 + ldrb r0, [r1] + strh r0, [r4, 0x32] + ldrb r0, [r1] + adds r0, 0x4 + strh r0, [r4, 0x34] + strh r6, [r4, 0x36] + ldr r1, _080CF130 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CF134 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CF12C: .4byte gUnknown_0202F7C9 +_080CF130: .4byte sub_80CF138 +_080CF134: .4byte sub_80785E4 + thumb_func_end sub_80CF0BC + + thumb_func_start sub_80CF138 +sub_80CF138: @ 80CF138 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x36] + adds r0, 0x1 + strh r0, [r1, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080CF14E + ldr r0, _080CF154 + str r0, [r1, 0x1C] +_080CF14E: + pop {r0} + bx r0 + .align 2, 0 +_080CF154: .4byte sub_80CF158 + thumb_func_end sub_80CF138 + + thumb_func_start sub_80CF158 +sub_80CF158: @ 80CF158 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + adds r1, r0, 0x4 + strh r1, [r2, 0x30] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFE + ble _080CF18A + ldrh r0, [r2, 0x2E] + subs r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080CF184 + strh r0, [r2, 0x24] + ldr r0, _080CF180 + str r0, [r2, 0x1C] + b _080CF1C0 + .align 2, 0 +_080CF180: .4byte sub_80CF088 +_080CF184: + movs r0, 0xFF + ands r1, r0 + strh r1, [r2, 0x30] +_080CF18A: + movs r1, 0x30 + ldrsh r0, [r2, r1] + cmp r0, 0x4F + ble _080CF19A + ldrh r0, [r2, 0x34] + adds r1, r2, 0 + adds r1, 0x43 + strb r0, [r1] +_080CF19A: + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0x9F + ble _080CF1AA + ldrh r0, [r2, 0x32] + adds r1, r2, 0 + adds r1, 0x43 + strb r0, [r1] +_080CF1AA: + ldr r1, _080CF1C4 + movs r3, 0x30 + ldrsh r0, [r2, r3] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 19 + asrs r1, r0, 1 + adds r0, r1 + strh r0, [r2, 0x24] +_080CF1C0: + pop {r0} + bx r0 + .align 2, 0 +_080CF1C4: .4byte gSineTable + thumb_func_end sub_80CF158 + + thumb_func_start sub_80CF1C8 +sub_80CF1C8: @ 80CF1C8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080CF1DC + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CF1E4 + ldr r0, _080CF1E0 + b _080CF1E6 + .align 2, 0 +_080CF1DC: .4byte gUnknown_03004B00 +_080CF1E0: .4byte gUnknown_0202F7C8 +_080CF1E4: + ldr r0, _080CF208 +_080CF1E6: + ldrb r4, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80CEF44 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CF20C + adds r0, r5, 0 + movs r1, 0 + bl StartSpriteAnim + movs r0, 0x2 + b _080CF216 + .align 2, 0 +_080CF208: .4byte gUnknown_0202F7C9 +_080CF20C: + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim + movs r0, 0x3 +_080CF216: + strh r0, [r5, 0x2E] + ldr r0, _080CF224 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CF224: .4byte sub_80CF228 + thumb_func_end sub_80CF1C8 + + thumb_func_start sub_80CF228 +sub_80CF228: @ 80CF228 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + ble _080CF256 + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r1, [r4, 0x2E] + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r1, _080CF25C + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CF260 + str r0, [r4, 0x1C] +_080CF256: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF25C: .4byte sub_80CF264 +_080CF260: .4byte sub_8078600 + thumb_func_end sub_80CF228 + + thumb_func_start sub_80CF264 +sub_80CF264: @ 80CF264 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080CF27C + adds r0, r1, 0 + bl move_anim_8072740 +_080CF27C: + pop {r0} + bx r0 + thumb_func_end sub_80CF264 + + thumb_func_start sub_80CF280 +sub_80CF280: @ 80CF280 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_8078650 + ldr r5, _080CF2C4 + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_807867C + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x34] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x36] + ldr r1, _080CF2C8 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r1, _080CF2CC + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CF2C4: .4byte gUnknown_03004B00 +_080CF2C8: .4byte move_anim_8074EE0 +_080CF2CC: .4byte sub_8078278 + thumb_func_end sub_80CF280 + + thumb_func_start sub_80CF2D0 +sub_80CF2D0: @ 80CF2D0 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080CF2E4 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CF2EC + ldr r0, _080CF2E8 + b _080CF2EE + .align 2, 0 +_080CF2E4: .4byte gUnknown_03004B00 +_080CF2E8: .4byte gUnknown_0202F7C8 +_080CF2EC: + ldr r0, _080CF308 +_080CF2EE: + ldrb r0, [r0] + adds r1, r4, 0 + bl sub_80CEF44 + movs r0, 0 + strh r0, [r4, 0x2E] + strh r0, [r4, 0x30] + ldr r0, _080CF30C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF308: .4byte gUnknown_0202F7C9 +_080CF30C: .4byte sub_80CF310 + thumb_func_end sub_80CF2D0 + + thumb_func_start sub_80CF310 +sub_80CF310: @ 80CF310 + push {lr} + adds r1, r0, 0 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0x1 + beq _080CF342 + cmp r0, 0x1 + bgt _080CF326 + cmp r0, 0 + beq _080CF32C + b _080CF370 +_080CF326: + cmp r0, 0x2 + beq _080CF35C + b _080CF370 +_080CF32C: + ldrh r0, [r1, 0x26] + subs r0, 0x3 + strh r0, [r1, 0x26] + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + bne _080CF370 + b _080CF354 +_080CF342: + ldrh r0, [r1, 0x26] + adds r0, 0x3 + strh r0, [r1, 0x26] + ldrh r0, [r1, 0x30] + subs r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080CF370 +_080CF354: + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + b _080CF370 +_080CF35C: + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x40 + bne _080CF370 + adds r0, r1, 0 + bl move_anim_8072740 +_080CF370: + pop {r0} + bx r0 + thumb_func_end sub_80CF310 + + thumb_func_start sub_80CF374 +sub_80CF374: @ 80CF374 + push {r4,lr} + adds r4, r0, 0 + ldr r3, _080CF3C0 + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r4, 0x30] + ldrh r2, [r0, 0x24] + adds r1, r2 + strh r1, [r0, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4, 0x30] + movs r0, 0x2E + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _080CF3B2 + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x24] + adds r0, r4, 0 + bl move_anim_8074EE0 +_080CF3B2: + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF3C0: .4byte gSprites + thumb_func_end sub_80CF374 + + thumb_func_start sub_80CF3C4 +sub_80CF3C4: @ 80CF3C4 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _080CF40C + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080CF410 + ldr r0, _080CF414 + ldrb r0, [r0] + adds r0, r1 + ldrb r6, [r0] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CF41C + ldr r0, _080CF418 + ldrh r1, [r5, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r5, 0x20] + adds r1, r0, 0 + b _080CF426 + .align 2, 0 +_080CF40C: .4byte gUnknown_0202F7C8 +_080CF410: .4byte gUnknown_02024BE0 +_080CF414: .4byte gUnknown_0202F7C9 +_080CF418: .4byte gUnknown_03004B00 +_080CF41C: + ldr r1, _080CF450 + ldrh r0, [r1] + ldrh r2, [r5, 0x20] + adds r0, r2 + strh r0, [r5, 0x20] +_080CF426: + ldrh r0, [r1, 0x2] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + strh r6, [r5, 0x32] + ldr r0, _080CF454 + str r0, [r5, 0x1C] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CF450: .4byte gUnknown_03004B00 +_080CF454: .4byte sub_80CF374 + thumb_func_end sub_80CF3C4 + + thumb_func_start sub_80CF458 +sub_80CF458: @ 80CF458 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r1, _080CF484 + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x38] + ldr r0, _080CF488 + str r0, [r4, 0x1C] + ldr r1, _080CF48C + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF484: .4byte gUnknown_03004B00 +_080CF488: .4byte sub_80782D8 +_080CF48C: .4byte sub_80CF490 + thumb_func_end sub_80CF458 + + thumb_func_start sub_80CF490 +sub_80CF490: @ 80CF490 + push {lr} + ldrh r1, [r0, 0x30] + strh r1, [r0, 0x2E] + ldrh r1, [r0, 0x20] + strh r1, [r0, 0x32] + ldrh r1, [r0, 0x22] + adds r1, 0xF + strh r1, [r0, 0x36] + ldr r1, _080CF4B0 + str r1, [r0, 0x1C] + ldr r1, _080CF4B4 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080CF4B0: .4byte sub_8078B34 +_080CF4B4: .4byte sub_80CF4B8 + thumb_func_end sub_80CF490 + + thumb_func_start sub_80CF4B8 +sub_80CF4B8: @ 80CF4B8 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x38] + movs r3, 0x38 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080CF4CE + adds r0, r1, 0 + bl move_anim_8072740 + b _080CF4D2 +_080CF4CE: + subs r0, r2, 0x1 + strh r0, [r1, 0x38] +_080CF4D2: + pop {r0} + bx r0 + thumb_func_end sub_80CF4B8 + + thumb_func_start sub_80CF4D8 +sub_80CF4D8: @ 80CF4D8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080CF504 + ldr r0, _080CF508 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + movs r1, 0 + bl sub_8078E70 + ldr r1, _080CF50C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080CF510 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF504: .4byte gUnknown_02024BE0 +_080CF508: .4byte gUnknown_0202F7C8 +_080CF50C: .4byte gTasks +_080CF510: .4byte sub_80CF514 + thumb_func_end sub_80CF4D8 + + thumb_func_start sub_80CF514 +sub_80CF514: @ 80CF514 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080CF544 + ldr r0, _080CF548 + ldrb r0, [r0] + adds r1, r0, r1 + ldrb r4, [r1] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CF550 + ldr r1, _080CF54C + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x8] + negs r0, r0 + lsls r0, 16 + lsrs r3, r0, 16 + adds r6, r2, 0 + b _080CF55E + .align 2, 0 +_080CF544: .4byte gUnknown_02024BE0 +_080CF548: .4byte gUnknown_0202F7C8 +_080CF54C: .4byte gTasks +_080CF550: + ldr r2, _080CF590 + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + adds r0, r2 + ldrh r3, [r0, 0x8] + adds r6, r1, 0 +_080CF55E: + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + bl obj_id_set_rotscale + ldr r1, _080CF590 + adds r0, r6, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080CF598 + ldrh r0, [r1, 0x8] + adds r0, 0xB0 + strh r0, [r1, 0x8] + ldr r1, _080CF594 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x26] + adds r1, 0x1 + b _080CF5C2 + .align 2, 0 +_080CF590: .4byte gTasks +_080CF594: .4byte gSprites +_080CF598: + cmp r0, 0x1 + bne _080CF5AE + ldrh r0, [r1, 0xE] + adds r0, 0x1 + strh r0, [r1, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + bne _080CF608 + movs r0, 0x2 + b _080CF606 +_080CF5AE: + ldrh r0, [r1, 0x8] + subs r0, 0xB0 + strh r0, [r1, 0x8] + ldr r1, _080CF5FC + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x26] + subs r1, 0x1 +_080CF5C2: + strh r1, [r0, 0x26] + adds r0, r4, 0 + bl sub_8078F9C + ldr r0, _080CF600 + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + movs r3, 0x8 + ldrsh r2, [r1, r3] + movs r0, 0xF2 + lsls r0, 4 + cmp r2, r0 + beq _080CF5E2 + cmp r2, 0 + bne _080CF608 +_080CF5E2: + ldrh r2, [r1, 0xA] + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0x2 + bne _080CF604 + adds r0, r4, 0 + bl sub_8078F40 + adds r0, r5, 0 + bl move_anim_task_del + b _080CF608 + .align 2, 0 +_080CF5FC: .4byte gSprites +_080CF600: .4byte gTasks +_080CF604: + adds r0, r2, 0x1 +_080CF606: + strh r0, [r1, 0xA] +_080CF608: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80CF514 + + thumb_func_start sub_80CF610 +sub_80CF610: @ 80CF610 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_8078650 + ldr r5, _080CF658 + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_807867C + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _080CF65C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CF660 + adds r2, r4, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x1 + orrs r1, r0 + strb r1, [r2] + movs r3, 0x4 + ldrsh r0, [r5, r3] + cmp r0, 0 + beq _080CF674 + movs r0, 0x2 + orrs r1, r0 + strb r1, [r2] + b _080CF674 + .align 2, 0 +_080CF658: .4byte gUnknown_03004B00 +_080CF65C: .4byte gUnknown_0202F7C8 +_080CF660: + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080CF674 + adds r2, r4, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2] +_080CF674: + ldr r0, _080CF688 + str r0, [r4, 0x1C] + ldr r1, _080CF68C + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CF688: .4byte sub_8078600 +_080CF68C: .4byte move_anim_8072740 + thumb_func_end sub_80CF610 + + thumb_func_start sub_80CF690 +sub_80CF690: @ 80CF690 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_80787B0 + ldr r0, _080CF6AC + str r0, [r4, 0x1C] + ldr r1, _080CF6B0 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF6AC: .4byte sub_80785E4 +_080CF6B0: .4byte sub_80CF6B4 + thumb_func_end sub_80CF690 + + thumb_func_start sub_80CF6B4 +sub_80CF6B4: @ 80CF6B4 + push {lr} + movs r1, 0x6 + strh r1, [r0, 0x2E] + ldrh r1, [r0, 0x20] + strh r1, [r0, 0x32] + ldrh r1, [r0, 0x22] + subs r1, 0x20 + strh r1, [r0, 0x36] + ldr r1, _080CF6D4 + str r1, [r0, 0x1C] + ldr r1, _080CF6D8 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080CF6D4: .4byte sub_8078B34 +_080CF6D8: .4byte move_anim_8072740 + thumb_func_end sub_80CF6B4 + + thumb_func_start sub_80CF6DC +sub_80CF6DC: @ 80CF6DC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r5, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CF700 + ldr r1, _080CF6FC + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + b _080CF722 + .align 2, 0 +_080CF6FC: .4byte gUnknown_03004B00 +_080CF700: + ldr r0, _080CF7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CF722 + ldr r1, _080CF7CC + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r1, 0x6] +_080CF722: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r4, _080CF7D0 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r6, _080CF7CC + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r6, 0x6] + adds r0, r2 + lsls r0, 16 + lsrs r0, 16 + adds r7, r0, 0 + ldrh r1, [r5, 0x20] + mov r2, r8 + lsls r0, r2, 16 + asrs r0, 16 + subs r0, r1 + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r5, 0x22] + lsls r1, r7, 16 + asrs r1, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sub_80790F0 + lsls r0, 16 + movs r1, 0xF0 + lsls r1, 24 + adds r0, r1 + lsrs r4, r0, 16 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CF794 + ldr r2, _080CF7D4 + adds r0, r4, r2 + lsls r0, 16 + lsrs r4, r0, 16 +_080CF794: + movs r3, 0x80 + lsls r3, 1 + str r4, [sp] + adds r0, r5, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8078FDC + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + mov r0, r8 + strh r0, [r5, 0x32] + strh r7, [r5, 0x36] + ldr r0, _080CF7D8 + str r0, [r5, 0x1C] + ldr r1, _080CF7DC + adds r0, r5, 0 + bl oamt_set_x3A_32 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CF7C8: .4byte gUnknown_0202F7C8 +_080CF7CC: .4byte gUnknown_03004B00 +_080CF7D0: .4byte gUnknown_0202F7C9 +_080CF7D4: .4byte 0xffffa000 +_080CF7D8: .4byte sub_8078B34 +_080CF7DC: .4byte move_anim_8072740 + thumb_func_end sub_80CF6DC + + thumb_func_start sub_80CF7E0 +sub_80CF7E0: @ 80CF7E0 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + subs r1, r0, 0x1 + strh r1, [r3, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080CF80A + ldr r2, _080CF810 + movs r0, 0x3C + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0xA] + subs r1, 0x1 + strh r1, [r0, 0xA] + adds r0, r3, 0 + bl DestroySprite +_080CF80A: + pop {r0} + bx r0 + .align 2, 0 +_080CF810: .4byte gTasks + thumb_func_end sub_80CF7E0 + + thumb_func_start sub_80CF814 +sub_80CF814: @ 80CF814 + push {r4,lr} + adds r2, r0, 0 + movs r0, 0x3C + ldrsh r1, [r2, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _080CF844 + adds r4, r0, r1 + movs r3, 0x2E + ldrsh r1, [r2, r3] + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + ble _080CF848 + ldrh r0, [r2, 0x34] + ldrh r1, [r2, 0x38] + adds r0, r1 + strh r0, [r2, 0x38] + ldrh r0, [r2, 0x36] + ldrh r3, [r2, 0x3A] + adds r0, r3 + b _080CF856 + .align 2, 0 +_080CF844: .4byte gTasks +_080CF848: + ldrh r0, [r2, 0x38] + ldrh r1, [r2, 0x34] + subs r0, r1 + strh r0, [r2, 0x38] + ldrh r0, [r2, 0x3A] + ldrh r1, [r2, 0x36] + subs r0, r1 +_080CF856: + strh r0, [r2, 0x3A] + ldrh r0, [r2, 0x38] + ldrh r1, [r2, 0x30] + adds r3, r0, r1 + strh r3, [r2, 0x30] + ldrh r0, [r2, 0x3A] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + ldrh r1, [r4, 0x16] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080CF87A + lsls r0, r3, 16 + lsrs r0, 24 + negs r0, r0 + b _080CF87E +_080CF87A: + lsls r0, r3, 16 + lsrs r0, 24 +_080CF87E: + strh r0, [r2, 0x24] + ldrh r1, [r4, 0x18] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080CF892 + ldrh r0, [r2, 0x32] + lsrs r0, 8 + negs r0, r0 + b _080CF896 +_080CF892: + ldrh r0, [r2, 0x32] + lsrs r0, 8 +_080CF896: + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + subs r1, r0, 0x1 + strh r1, [r2, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080CF8AC + movs r0, 0x1E + strh r0, [r2, 0x2E] + ldr r0, _080CF8B4 + str r0, [r2, 0x1C] +_080CF8AC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF8B4: .4byte sub_80CF7E0 + thumb_func_end sub_80CF814 + + thumb_func_start sub_80CF8B8 +sub_80CF8B8: @ 80CF8B8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + movs r0, 0x3C + ldrsh r1, [r7, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _080CF8FC + adds r6, r0, r1 + ldrh r2, [r6, 0x16] + movs r1, 0x2 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + ldrh r3, [r7, 0x30] + adds r2, r0, r3 + strh r2, [r7, 0x30] + ldrh r0, [r6, 0x18] + ands r1, r0 + ldrh r0, [r7, 0x32] + adds r1, r0 + strh r1, [r7, 0x32] + ldrh r1, [r6, 0x16] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080CF900 + lsls r0, r2, 16 + lsrs r0, 24 + negs r0, r0 + b _080CF904 + .align 2, 0 +_080CF8FC: .4byte gTasks +_080CF900: + lsls r0, r2, 16 + lsrs r0, 24 +_080CF904: + strh r0, [r7, 0x24] + ldrh r1, [r6, 0x18] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080CF918 + ldrh r0, [r7, 0x32] + lsrs r0, 8 + negs r0, r0 + b _080CF91C +_080CF918: + ldrh r0, [r7, 0x32] + lsrs r0, 8 +_080CF91C: + strh r0, [r7, 0x26] + ldrh r0, [r7, 0x2E] + subs r1, r0, 0x1 + strh r1, [r7, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080CF9E8 + movs r4, 0 + movs r0, 0x8 + strh r0, [r7, 0x2E] + movs r0, 0x4 + strh r0, [r6, 0x12] + movs r0, 0x80 + lsls r0, 5 + bl sub_81174E0 + lsls r0, 16 + lsrs r5, r0, 16 + ldrh r0, [r7, 0x24] + ldrh r1, [r7, 0x20] + adds r2, r0, r1 + strh r2, [r7, 0x20] + ldrh r0, [r7, 0x26] + ldrh r3, [r7, 0x22] + adds r0, r3 + strh r0, [r7, 0x22] + strh r4, [r7, 0x26] + strh r4, [r7, 0x24] + ldrh r3, [r6, 0x1E] + movs r0, 0x1E + ldrsh r1, [r6, r0] + lsls r0, r2, 16 + asrs r0, 16 + cmp r1, r0 + blt _080CF966 + subs r0, r3, r2 + b _080CF968 +_080CF966: + subs r0, r2, r3 +_080CF968: + lsls r0, 24 + lsrs r4, r0, 16 + ldrh r3, [r6, 0x20] + movs r0, 0x20 + ldrsh r1, [r6, r0] + ldrh r2, [r7, 0x22] + movs r6, 0x22 + ldrsh r0, [r7, r6] + cmp r1, r0 + blt _080CF980 + subs r0, r3, r2 + b _080CF982 +_080CF980: + subs r0, r2, r3 +_080CF982: + lsls r0, 24 + lsrs r0, 16 + mov r8, r0 + movs r0, 0 + strh r0, [r7, 0x32] + strh r0, [r7, 0x30] + strh r0, [r7, 0x3A] + strh r0, [r7, 0x38] + lsls r0, r4, 16 + asrs r0, 16 + lsls r5, 16 + asrs r5, 16 + adds r1, r5, 0 + bl sub_81174C4 + adds r4, r0, 0 + lsls r4, 16 + asrs r4, 16 + movs r6, 0xE0 + lsls r6, 1 + adds r0, r6, 0 + bl sub_81174E0 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_81174C4 + strh r0, [r7, 0x34] + mov r1, r8 + lsls r0, r1, 16 + asrs r0, 16 + adds r1, r5, 0 + bl sub_81174C4 + adds r4, r0, 0 + lsls r4, 16 + asrs r4, 16 + adds r0, r6, 0 + bl sub_81174E0 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_81174C4 + strh r0, [r7, 0x36] + ldr r0, _080CF9F4 + str r0, [r7, 0x1C] +_080CF9E8: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CF9F4: .4byte sub_80CF814 + thumb_func_end sub_80CF8B8 + + thumb_func_start sub_80CF9F8 +sub_80CF9F8: @ 80CF9F8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080CFA1C + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + movs r1, 0xA + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CFA16 + adds r0, r2, 0 + bl move_anim_task_del +_080CFA16: + pop {r0} + bx r0 + .align 2, 0 +_080CFA1C: .4byte gTasks + thumb_func_end sub_80CF9F8 + + thumb_func_start sub_80CFA20 +sub_80CFA20: @ 80CFA20 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080CFA74 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x8] + subs r1, r0, 0x1 + strh r1, [r5, 0x8] + lsls r0, 16 + cmp r0, 0 + bgt _080CFAF4 + ldr r0, _080CFA78 + movs r2, 0x1A + ldrsh r1, [r5, r2] + movs r3, 0x1C + ldrsh r2, [r5, r3] + ldrb r3, [r5, 0xC] + ldrb r4, [r5, 0xA] + subs r3, r4 + lsls r3, 24 + lsrs r3, 24 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + lsls r0, 4 + add r0, r12 + lsls r0, 2 + ldr r1, _080CFA7C + adds r6, r0, r1 + movs r1, 0x10 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080CFA80 + cmp r0, 0x2 + beq _080CFA96 + b _080CFAA4 + .align 2, 0 +_080CFA74: .4byte gTasks +_080CFA78: .4byte gSpriteTemplate_83D74BC +_080CFA7C: .4byte gSprites +_080CFA80: + ldrb r2, [r6, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + movs r0, 0x18 + orrs r1, r0 + lsls r1, 1 + subs r0, 0x57 + ands r0, r2 + orrs r0, r1 + strb r0, [r6, 0x3] + b _080CFAA4 +_080CFA96: + ldrb r0, [r6, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + strb r1, [r6, 0x3] +_080CFAA4: + ldr r3, _080CFAFC + lsls r2, r7, 2 + adds r2, r7 + lsls r2, 3 + adds r4, r2, r3 + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x14] + subs r0, r1 + strh r0, [r6, 0x2E] + strh r7, [r6, 0x3C] + movs r1, 0xA + ldrsh r0, [r4, r1] + adds r0, 0xD + lsls r0, 1 + adds r0, r2 + adds r3, 0x8 + adds r0, r3 + mov r2, r12 + strh r2, [r0] + ldrh r0, [r4, 0xE] + strh r0, [r4, 0x8] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r0, 0x3F + negs r0, r0 + bl sub_8076F98 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x9A + bl PlaySE12WithPanning + movs r3, 0xA + ldrsh r0, [r4, r3] + cmp r0, 0x2 + ble _080CFAF4 + ldr r0, _080CFB00 + str r0, [r4] +_080CFAF4: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CFAFC: .4byte gTasks +_080CFB00: .4byte sub_80CF9F8 + thumb_func_end sub_80CFA20 + + thumb_func_start sub_80CFB04 +sub_80CFB04: @ 80CFB04 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0 + mov r9, r0 + movs r5, 0 + mov r0, sp + mov r1, r9 + strh r1, [r0] + mov r4, sp + adds r4, 0x2 + strh r1, [r4] + bl sub_8076BE0 + lsls r0, 24 + mov r10, r4 + cmp r0, 0 + beq _080CFB70 + ldr r1, _080CFB60 + lsls r2, r7, 2 + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 + movs r1, 0x2 + strh r1, [r0, 0x10] + ldr r3, _080CFB64 + ldrh r0, [r3] + negs r0, r0 + strh r0, [r3] + ldrh r1, [r3, 0x4] + movs r0, 0x1 + ands r0, r1 + mov r8, r2 + cmp r0, 0 + beq _080CFB68 + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strh r0, [r3, 0x4] + b _080CFBCA + .align 2, 0 +_080CFB60: .4byte gTasks +_080CFB64: .4byte gUnknown_03004B00 +_080CFB68: + movs r0, 0x1 + orrs r0, r1 + strh r0, [r3, 0x4] + b _080CFBCA +_080CFB70: + ldr r1, _080CFBB4 + ldr r0, _080CFBB8 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r1 + lsls r2, r7, 2 + mov r8, r2 + cmp r0, 0 + bne _080CFBCA + ldr r1, _080CFBBC + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 + strh r3, [r0, 0x10] + ldr r2, _080CFBC0 + ldrh r0, [r2] + negs r0, r0 + strh r0, [r2] + ldrh r0, [r2, 0x2] + negs r0, r0 + strh r0, [r2, 0x2] + ldrh r1, [r2, 0x4] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080CFBC4 + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + b _080CFBC8 + .align 2, 0 +_080CFBB4: .4byte gUnknown_02024A72 +_080CFBB8: .4byte gUnknown_0202F7C9 +_080CFBBC: .4byte gTasks +_080CFBC0: .4byte gUnknown_03004B00 +_080CFBC4: + movs r0, 0x1 + orrs r0, r1 +_080CFBC8: + strh r0, [r2, 0x4] +_080CFBCA: + ldr r5, _080CFC24 + ldrb r0, [r5] + movs r1, 0 + bl sub_8077ABC + ldr r1, _080CFC28 + mov r3, r8 + adds r4, r3, r7 + lsls r4, 3 + adds r4, r1 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1A] + adds r6, r0, 0 + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + mov r9, r0 + ldr r0, _080CFC2C + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080CFC34 + ldr r4, _080CFC30 + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080CFC34 + ldrb r0, [r4] + movs r1, 0 + mov r2, sp + mov r3, r10 + bl sub_807A3FC + b _080CFC56 + .align 2, 0 +_080CFC24: .4byte gUnknown_0202F7C8 +_080CFC28: .4byte gTasks +_080CFC2C: .4byte gUnknown_020239F8 +_080CFC30: .4byte gUnknown_0202F7C9 +_080CFC34: + mov r5, sp + ldr r4, _080CFC90 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r1, r10 + strh r0, [r1] +_080CFC56: + mov r4, sp + ldr r0, _080CFC94 + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + mov r2, sp + ldr r3, _080CFC98 + ldrh r0, [r3] + ldrh r2, [r2] + adds r0, r2 + strh r0, [r1, 0x1E] + strh r0, [r4] + ldrh r0, [r3, 0x2] + mov r3, r10 + ldrh r3, [r3] + adds r0, r3 + strh r0, [r1, 0x20] + mov r1, r10 + strh r0, [r1] + mov r0, sp + ldrh r2, [r0] + movs r3, 0 + ldrsh r0, [r0, r3] + adds r1, r6, 0 + cmp r0, r1 + blt _080CFC9C + subs r0, r2, r1 + b _080CFC9E + .align 2, 0 +_080CFC90: .4byte gUnknown_0202F7C9 +_080CFC94: .4byte gTasks +_080CFC98: .4byte gUnknown_03004B00 +_080CFC9C: + subs r0, r1, r2 +_080CFC9E: + lsls r0, 16 + lsrs r0, 16 + lsls r4, r0, 16 + asrs r4, 16 + ldr r5, _080CFD14 + ldrh r1, [r5, 0x4] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + lsls r0, 16 + asrs r0, 16 + bl sub_81174E0 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_81174C4 + ldr r2, _080CFD18 + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r6, r1, r2 + strh r0, [r6, 0x12] + movs r1, 0x12 + ldrsh r0, [r6, r1] + movs r1, 0x80 + bl sub_81174C4 + strh r0, [r6, 0x14] + ldrh r0, [r5, 0x4] + strh r0, [r6, 0x16] + mov r2, r10 + ldrh r1, [r2] + movs r3, 0 + ldrsh r0, [r2, r3] + mov r4, r9 + cmp r0, r4 + blt _080CFD1C + subs r4, r1, r4 + lsls r4, 16 + asrs r4, 16 + movs r1, 0x12 + ldrsh r0, [r6, r1] + bl sub_81174E0 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_81174C4 + movs r1, 0x2 + negs r1, r1 + ands r1, r0 + strh r1, [r6, 0x18] + b _080CFD3C + .align 2, 0 +_080CFD14: .4byte gUnknown_03004B00 +_080CFD18: .4byte gTasks +_080CFD1C: + subs r4, r1 + lsls r4, 16 + asrs r4, 16 + movs r2, 0x12 + ldrsh r0, [r6, r2] + bl sub_81174E0 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_81174C4 + movs r1, 0x1 + orrs r0, r1 + strh r0, [r6, 0x18] +_080CFD3C: + ldr r1, _080CFD7C + mov r3, r8 + adds r0, r3, r7 + lsls r0, 3 + adds r5, r0, r1 + ldr r4, _080CFD80 + ldrh r0, [r4, 0x6] + strh r0, [r5, 0xE] + ldrh r1, [r4, 0x8] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080CFD8C + movs r0, 0x80 + eors r0, r1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3F + ble _080CFDB4 + ldr r0, _080CFD84 + ldrb r0, [r0] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080CFD88 + adds r1, r2, 0 + ldrh r4, [r4, 0x8] + adds r1, r4 + adds r0, r1 + b _080CFDC4 + .align 2, 0 +_080CFD7C: .4byte gTasks +_080CFD80: .4byte gUnknown_03004B00 +_080CFD84: .4byte gUnknown_0202F7C9 +_080CFD88: .4byte 0x0000ffc0 +_080CFD8C: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x3F + ble _080CFDB4 + ldr r0, _080CFDAC + ldrb r0, [r0] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080CFDB0 + adds r1, r3, 0 + ldrh r4, [r4, 0x8] + adds r1, r4 + adds r0, r1 + b _080CFDC4 + .align 2, 0 +_080CFDAC: .4byte gUnknown_0202F7C9 +_080CFDB0: .4byte 0x0000ffc0 +_080CFDB4: + ldr r0, _080CFDF0 + ldrb r0, [r0] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x8] + subs r0, r1 +_080CFDC4: + strh r0, [r5, 0xC] + ldr r0, _080CFDF4 + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0x2 + bgt _080CFDDC + movs r0, 0x3 + strh r0, [r1, 0xC] +_080CFDDC: + ldr r0, _080CFDF8 + str r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CFDF0: .4byte gUnknown_0202F7C9 +_080CFDF4: .4byte gTasks +_080CFDF8: .4byte sub_80CFA20 + thumb_func_end sub_80CFB04 + + thumb_func_start sub_80CFDFC +sub_80CFDFC: @ 80CFDFC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_80787B0 + ldr r0, _080CFE24 + ldrh r0, [r0, 0x2] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r4, 0x2E] + ldr r0, _080CFE28 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CFE24: .4byte gSpriteTemplate_83D75AC +_080CFE28: .4byte sub_80CFE2C + thumb_func_end sub_80CFDFC + + thumb_func_start sub_80CFE2C +sub_80CFE2C: @ 80CFE2C + push {r4-r7,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080CFE90 + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r5, [r4, 0x2E] + ldr r1, _080CFE98 + adds r0, r5, 0 + adds r0, 0x8 + lsls r0, 1 + adds r0, r1 + ldrh r7, [r0] + adds r6, r1, 0 + adds r1, r5, 0 + adds r1, 0x9 + lsls r0, r5, 1 + adds r0, r6 + adds r2, r0, 0 + adds r2, 0x10 + movs r3, 0x7 + lsls r1, 1 + adds r1, r6 +_080CFE64: + ldrh r0, [r1] + strh r0, [r2] + adds r1, 0x2 + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080CFE64 + adds r0, r5, 0 + adds r0, 0xF + lsls r0, 1 + adds r0, r6 + strh r7, [r0] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x18 + bne _080CFE90 + adds r0, r4, 0 + bl move_anim_8072740 +_080CFE90: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CFE98: .4byte gPlttBufferFaded + thumb_func_end sub_80CFE2C + + thumb_func_start sub_80CFE9C +sub_80CFE9C: @ 80CFE9C + push {r4-r7,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r4, _080CFF3C + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080CFF40 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, _080CFF44 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CFEE0 + ldrh r0, [r4, 0x4] + negs r0, r0 + strh r0, [r4, 0x4] +_080CFEE0: + lsls r0, r6, 16 + asrs r0, 16 + ldrh r1, [r4, 0x4] + adds r0, r1 + lsls r0, 16 + ldrh r1, [r5, 0x20] + lsrs r6, r0, 16 + asrs r0, 16 + subs r0, r1 + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r5, 0x22] + lsls r1, r7, 16 + asrs r1, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sub_80790F0 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 24 + adds r0, r1 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 1 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8078FDC + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x2E] + strh r6, [r5, 0x32] + strh r7, [r5, 0x36] + ldr r0, _080CFF48 + str r0, [r5, 0x1C] + ldr r1, _080CFF4C + adds r0, r5, 0 + bl oamt_set_x3A_32 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CFF3C: .4byte gUnknown_0202F7C9 +_080CFF40: .4byte gUnknown_03004B00 +_080CFF44: .4byte gUnknown_0202F7C8 +_080CFF48: .4byte sub_8078C00 +_080CFF4C: .4byte move_anim_8072740 + thumb_func_end sub_80CFE9C + + thumb_func_start sub_80CFF50 +sub_80CFF50: @ 80CFF50 + ldr r1, _080CFF60 + strh r1, [r0, 0x32] + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + ldr r1, _080CFF64 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080CFF60: .4byte 0x0000fff0 +_080CFF64: .4byte sub_80CFF68 + thumb_func_end sub_80CFF50 + + thumb_func_start sub_80CFF68 +sub_80CFF68: @ 80CFF68 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x80 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + ldr r0, _080CFFD4 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CFF8C + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] +_080CFF8C: + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x5 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7E + ble _080CFFCC + movs r0, 0 + strh r0, [r4, 0x30] + movs r1, 0x32 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080CFFCC + adds r0, r4, 0 + bl move_anim_8072740 +_080CFFCC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CFFD4: .4byte gUnknown_0202F7C8 + thumb_func_end sub_80CFF68 + + thumb_func_start sub_80CFFD8 +sub_80CFFD8: @ 80CFFD8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + movs r0, 0x14 + strh r0, [r4, 0x2E] + ldr r5, _080D0024 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080D0028 + str r0, [r4, 0x1C] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080D002C + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D0024: .4byte gUnknown_0202F7C9 +_080D0028: .4byte sub_8078B34 +_080D002C: .4byte sub_80D0030 + thumb_func_end sub_80CFFD8 + + thumb_func_start sub_80D0030 +sub_80D0030: @ 80D0030 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x3F + bl sub_8076F98 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xA6 + bl PlaySE12WithPanning + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r1, [r4, 0x26] + strh r1, [r4, 0x24] + movs r2, 0 + movs r1, 0x7 + adds r0, r4, 0 + adds r0, 0x3C +_080D0064: + strh r2, [r0] + subs r0, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _080D0064 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x7 + ands r0, r1 + ldr r2, _080D00AC + adds r1, r2, 0 + subs r1, r0 + strh r1, [r4, 0x3A] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA0 + bl __umodsi3 + adds r0, 0xA0 + strh r0, [r4, 0x3C] + ldr r0, _080D00B0 + str r0, [r4, 0x1C] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D00AC: .4byte 0x0000fff4 +_080D00B0: .4byte sub_80D00B4 + thumb_func_end sub_80D0030 + + thumb_func_start sub_80D00B4 +sub_80D00B4: @ 80D00B4 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x3C] + ldrh r2, [r4, 0x2E] + adds r0, r1, r2 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r2, r0, 24 + strh r2, [r4, 0x24] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D00D2 + negs r0, r2 + strh r0, [r4, 0x24] +_080D00D2: + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x8 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7E + ble _080D0112 + movs r0, 0 + strh r0, [r4, 0x30] + movs r1, 0x32 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080D0112 + adds r0, r4, 0 + bl move_anim_8072740 +_080D0112: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D00B4 + + thumb_func_start sub_80D0118 +sub_80D0118: @ 80D0118 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_80787B0 + ldr r0, _080D0168 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D0136 + ldrh r0, [r4, 0x22] + adds r0, 0x10 + strh r0, [r4, 0x22] +_080D0136: + ldr r1, _080D016C + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0xC] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x36] + ldr r0, _080D0170 + str r0, [r4, 0x1C] + ldr r1, _080D0174 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D0168: .4byte gUnknown_0202F7C8 +_080D016C: .4byte gUnknown_03004B00 +_080D0170: .4byte sub_8078114 +_080D0174: .4byte move_anim_8072740 + thumb_func_end sub_80D0118 + + thumb_func_start sub_80D0178 +sub_80D0178: @ 80D0178 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + movs r7, 0x20 + ldr r4, _080D01F4 + movs r0, 0x10 + mov r8, r0 + ldr r6, _080D01F8 + ldr r0, _080D01FC + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080D01A4 + adds r7, r4, 0 + movs r4, 0x20 + mov r8, r6 + movs r6, 0x10 + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080D01A4: + lsls r0, r7, 16 + asrs r0, 16 + ldrh r1, [r5, 0x20] + adds r0, r1 + strh r0, [r5, 0x20] + lsls r0, r4, 16 + asrs r0, 16 + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + movs r0, 0x6 + strh r0, [r5, 0x2E] + ldr r4, _080D0200 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + add r0, r8 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x36] + ldr r0, _080D0204 + str r0, [r5, 0x1C] + ldr r1, _080D0208 + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D01F4: .4byte 0x0000ffe0 +_080D01F8: .4byte 0x0000fff0 +_080D01FC: .4byte gUnknown_03004B00 +_080D0200: .4byte gUnknown_0202F7C9 +_080D0204: .4byte sub_8078B34 +_080D0208: .4byte sub_80D020C + thumb_func_end sub_80D0178 + + thumb_func_start sub_80D020C +sub_80D020C: @ 80D020C + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D0222 + adds r0, r2, 0 + bl move_anim_8072740 +_080D0222: + pop {r0} + bx r0 + thumb_func_end sub_80D020C + + thumb_func_start sub_80D0228 +sub_80D0228: @ 80D0228 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + movs r0, 0x20 + mov r8, r0 + ldr r4, _080D02BC + movs r2, 0x10 + mov r9, r2 + ldr r6, _080D02C0 + ldr r7, _080D02C4 + ldrh r1, [r7] + movs r2, 0 + ldrsh r0, [r7, r2] + cmp r0, 0 + beq _080D025C + mov r8, r4 + movs r4, 0x20 + mov r9, r6 + movs r6, 0x10 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim +_080D025C: + mov r0, r8 + lsls r1, r0, 16 + asrs r1, 16 + ldrh r2, [r5, 0x20] + adds r1, r2 + strh r1, [r5, 0x20] + lsls r0, r4, 16 + asrs r0, 16 + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + movs r0, 0x6 + strh r0, [r5, 0x2E] + strh r1, [r5, 0x30] + ldr r4, _080D02C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + add r0, r9 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r7] + strh r0, [r5, 0x38] + ldrh r0, [r5, 0x2E] + strh r0, [r5, 0x3A] + ldr r0, _080D02CC + str r0, [r5, 0x1C] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D02BC: .4byte 0x0000ffe0 +_080D02C0: .4byte 0x0000fff0 +_080D02C4: .4byte gUnknown_03004B00 +_080D02C8: .4byte gUnknown_0202F7C9 +_080D02CC: .4byte sub_80D02D0 + thumb_func_end sub_80D0228 + + thumb_func_start sub_80D02D0 +sub_80D02D0: @ 80D02D0 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080D0334 + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D0334 + adds r0, r4, 0 + movs r1, 0 + bl SeekSpriteAnim + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + movs r2, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + movs r0, 0x2 + strh r0, [r4, 0x24] + ldr r0, _080D033C + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + eors r0, r1 + strh r0, [r4, 0x32] + strh r2, [r4, 0x36] + strh r2, [r4, 0x34] + ldr r0, _080D0340 + str r0, [r4, 0x1C] +_080D0334: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D033C: .4byte 0x0000fffe +_080D0340: .4byte sub_80D0344 + thumb_func_end sub_80D02D0 + + thumb_func_start sub_80D0344 +sub_80D0344: @ 80D0344 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D035C + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x26] + negs r0, r0 + strh r0, [r4, 0x26] +_080D035C: + ldrh r0, [r4, 0x34] + movs r1, 0x1 + eors r0, r1 + movs r1, 0 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _080D039E + strh r1, [r4, 0x26] + strh r1, [r4, 0x24] + strh r1, [r4, 0x36] + strh r1, [r4, 0x34] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x38] + movs r1, 0x1 + eors r1, r0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _080D03A4 + str r0, [r4, 0x1C] +_080D039E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D03A4: .4byte sub_80D03A8 + thumb_func_end sub_80D0344 + + thumb_func_start sub_80D03A8 +sub_80D03A8: @ 80D03A8 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080D03BC + adds r0, r4, 0 + bl move_anim_8072740 +_080D03BC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D03A8 + + thumb_func_start sub_80D03C4 +sub_80D03C4: @ 80D03C4 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078E70 + adds r0, r4, 0 + movs r1, 0xD0 + movs r2, 0xD0 + movs r3, 0 + bl obj_id_set_rotscale + ldr r1, _080D041C + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + movs r1, 0 + bl sub_8079108 + ldr r1, _080D0420 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x50 + strh r1, [r0, 0x8] + ldr r1, _080D0424 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D041C: .4byte gSprites +_080D0420: .4byte gTasks +_080D0424: .4byte sub_80D0428 + thumb_func_end sub_80D03C4 + + thumb_func_start sub_80D0428 +sub_80D0428: @ 80D0428 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080D0480 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + subs r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080D0478 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_8078F40 + ldr r1, _080D0484 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + movs r1, 0x1 + bl sub_8079108 + adds r0, r5, 0 + bl move_anim_task_del +_080D0478: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D0480: .4byte gTasks +_080D0484: .4byte gSprites + thumb_func_end sub_80D0428 + + thumb_func_start sub_80D0488 +sub_80D0488: @ 80D0488 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080D04D4 + adds r4, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x8] + movs r1, 0 + bl sub_8078E70 + strh r5, [r4, 0xA] + strh r5, [r4, 0xC] + strh r5, [r4, 0xE] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r4, 0x10] + strh r5, [r4, 0x12] + strh r5, [r4, 0x14] + ldr r0, _080D04D8 + ldrb r0, [r0] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x16] + ldr r0, _080D04DC + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D04D4: .4byte gTasks +_080D04D8: .4byte gUnknown_0202F7C8 +_080D04DC: .4byte sub_80D04E0 + thumb_func_end sub_80D0488 + + thumb_func_start sub_80D04E0 +sub_80D04E0: @ 80D04E0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080D0504 + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bls _080D04FA + b _080D060A +_080D04FA: + lsls r0, 2 + ldr r1, _080D0508 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D0504: .4byte gTasks +_080D0508: .4byte _080D050C + .align 2, 0 +_080D050C: + .4byte _080D0524 + .4byte _080D056C + .4byte _080D05A2 + .4byte _080D05A8 + .4byte _080D05B8 + .4byte _080D05EC +_080D0524: + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080D0534 + cmp r0, 0x3 + beq _080D0534 + cmp r0, 0x6 + bne _080D053C +_080D0534: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80D0614 +_080D053C: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x10] + adds r0, 0x28 + strh r0, [r4, 0x10] + ldrb r0, [r4, 0x8] + movs r1, 0x10 + ldrsh r2, [r4, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_8079A64 + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0x20 + bne _080D060A + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + b _080D05E4 +_080D056C: + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D060A + movs r2, 0x12 + ldrsh r1, [r4, r2] + cmp r1, 0x3 + bne _080D0582 + strh r0, [r4, 0xC] + strh r1, [r4, 0xA] + b _080D060A +_080D0582: + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + movs r2, 0x80 + lsls r2, 1 + strh r2, [r4, 0x10] + ldrb r0, [r4, 0x8] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_8079A64 + movs r0, 0x2 + strh r0, [r4, 0xA] + b _080D060A +_080D05A2: + movs r0, 0 + strh r0, [r4, 0xA] + b _080D060A +_080D05A8: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x20 + ble _080D060A + b _080D05E0 +_080D05B8: + ldrh r0, [r4, 0xC] + adds r0, 0x2 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x10] + subs r0, 0x50 + strh r0, [r4, 0x10] + ldrb r0, [r4, 0x8] + movs r1, 0x10 + ldrsh r2, [r4, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_8079A64 + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0x20 + bne _080D060A +_080D05E0: + movs r0, 0 + strh r0, [r4, 0xC] +_080D05E4: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _080D060A +_080D05EC: + ldrb r0, [r4, 0x8] + bl sub_8078F40 + ldr r2, _080D0610 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x26] + adds r0, r5, 0 + bl move_anim_task_del +_080D060A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D0610: .4byte gSprites + thumb_func_end sub_80D04E0 + + thumb_func_start sub_80D0614 +sub_80D0614: @ 80D0614 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + movs r0, 0 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r0, 16 + asrs r4, r0, 16 + cmp r4, 0 + blt _080D06EE + bl AllocOamMatrix + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xFF + bne _080D0658 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _080D0654 + adds r0, r1 + bl obj_delete_but_dont_free_vram + b _080D06EE + .align 2, 0 +_080D0654: .4byte gSprites +_080D0658: + ldr r5, _080D06FC + lsls r3, r4, 4 + adds r3, r4 + lsls r3, 2 + adds r4, r3, r5 + ldrb r1, [r4, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x1F + ands r6, r0 + lsls r2, r6, 1 + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x3] + ldrb r0, [r7, 0x16] + ldrb r1, [r7, 0xE] + subs r0, r1 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrh r0, [r7, 0xE] + adds r0, 0x1 + strh r0, [r7, 0xE] + ldrh r0, [r7, 0x14] + adds r0, 0x1 + strh r0, [r7, 0x14] + movs r0, 0x10 + strh r0, [r4, 0x2E] + mov r0, r9 + strh r0, [r4, 0x30] + movs r0, 0x6 + strh r0, [r4, 0x32] + adds r5, 0x1C + adds r3, r5 + ldr r0, _080D0700 + str r0, [r3] + mov r1, r8 + lsls r0, r1, 24 + lsrs r0, 24 + movs r1, 0x10 + ldrsh r2, [r7, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x1] + movs r3, 0x4 + negs r3, r3 + ands r3, r0 + movs r0, 0x1 + orrs r3, r0 + strb r3, [r4, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r4, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + adds r0, r4, 0 + bl CalcCenterToCornerVec +_080D06EE: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D06FC: .4byte gSprites +_080D0700: .4byte sub_80D0704 + thumb_func_end sub_80D0614 + + thumb_func_start sub_80D0704 +sub_80D0704: @ 80D0704 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080D0742 + ldr r3, _080D0748 + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x30 + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl obj_delete_but_dont_free_vram +_080D0742: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D0748: .4byte gTasks + thumb_func_end sub_80D0704 + + thumb_func_start sub_80D074C +sub_80D074C: @ 80D074C + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080D0770 + adds r4, r0, r1 + ldr r5, _080D0774 + movs r1, 0x2 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D0778 + adds r0, r2, 0 + bl move_anim_task_del + b _080D079E + .align 2, 0 +_080D0770: .4byte gTasks +_080D0774: .4byte gUnknown_03004B00 +_080D0778: + ldrb r0, [r5] + bl obj_id_for_side_relative_to_move + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + strh r1, [r4, 0x8] + strh r2, [r4, 0xA] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0xC] + strh r2, [r4, 0xE] + strh r2, [r4, 0x10] + ldr r2, _080D07A4 + adds r0, r4, 0 + bl sub_80798F4 + ldr r0, _080D07A8 + str r0, [r4] +_080D079E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D07A4: .4byte gUnknown_083D76F4 +_080D07A8: .4byte sub_80D07AC + thumb_func_end sub_80D074C + + thumb_func_start sub_80D07AC +sub_80D07AC: @ 80D07AC + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080D07D0 + adds r4, r0, r1 + movs r0, 0xA + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080D0814 + cmp r5, 0x1 + bgt _080D07D4 + cmp r5, 0 + beq _080D07DE + b _080D08BC + .align 2, 0 +_080D07D0: .4byte gTasks +_080D07D4: + cmp r5, 0x2 + beq _080D0848 + cmp r5, 0x3 + beq _080D0878 + b _080D08BC +_080D07DE: + adds r0, r4, 0 + bl sub_807992C + ldrh r2, [r4, 0x10] + adds r2, 0x3 + strh r2, [r4, 0x10] + ldr r3, _080D0810 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x26] + adds r1, r2 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080D08BC + strh r5, [r4, 0xE] + b _080D0870 + .align 2, 0 +_080D0810: .4byte gSprites +_080D0814: + adds r0, r4, 0 + bl sub_807992C + ldr r2, _080D0844 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x10] + ldrh r2, [r0, 0x26] + adds r1, r2 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080D08BC + movs r0, 0 + strh r0, [r4, 0xE] + b _080D0870 + .align 2, 0 +_080D0844: .4byte gSprites +_080D0848: + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D0870 + ldr r2, _080D086C + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x2 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0x10] + subs r0, 0x2 + strh r0, [r4, 0x10] + b _080D08BC + .align 2, 0 +_080D086C: .4byte gSprites +_080D0870: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _080D08BC +_080D0878: + adds r0, r4, 0 + bl sub_807992C + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080D08BC + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _080D08B0 + ldr r2, _080D08AC + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r5, [r0, 0x26] + adds r0, r6, 0 + bl move_anim_task_del + b _080D08BC + .align 2, 0 +_080D08AC: .4byte gSprites +_080D08B0: + ldrb r1, [r4, 0x8] + ldr r2, _080D08C4 + adds r0, r4, 0 + bl sub_80798F4 + strh r5, [r4, 0xA] +_080D08BC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D08C4: .4byte gUnknown_083D76F4 + thumb_func_end sub_80D07AC + + thumb_func_start sub_80D08C8 +sub_80D08C8: @ 80D08C8 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080D08F8 + adds r4, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080D08FC + adds r0, r4, 0 + bl sub_80798F4 + ldr r0, _080D0900 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D08F8: .4byte gTasks +_080D08FC: .4byte gUnknown_083D7714 +_080D0900: .4byte sub_80D0904 + thumb_func_end sub_80D08C8 + + thumb_func_start sub_80D0904 +sub_80D0904: @ 80D0904 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080D092C + adds r0, r1 + bl sub_807992C + lsls r0, 24 + cmp r0, 0 + bne _080D0924 + adds r0, r4, 0 + bl move_anim_task_del +_080D0924: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D092C: .4byte gTasks + thumb_func_end sub_80D0904 + + thumb_func_start sub_80D0930 +sub_80D0930: @ 80D0930 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D0960 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D0964 + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnim + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r4, 0x20] + movs r0, 0x40 + b _080D097E + .align 2, 0 +_080D0960: .4byte gUnknown_0202F7C8 +_080D0964: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x20 + strh r0, [r4, 0x20] + ldr r0, _080D09B0 +_080D097E: + strh r0, [r4, 0x30] + ldr r0, _080D09B4 + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + strh r0, [r4, 0x22] + movs r0, 0x34 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x32] + strh r1, [r4, 0x34] + strh r1, [r4, 0x36] + ldr r1, _080D09B8 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080D09BC + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D09B0: .4byte 0x0000ffc0 +_080D09B4: .4byte gUnknown_0202F7C8 +_080D09B8: .4byte move_anim_8072740 +_080D09BC: .4byte sub_8078394 + thumb_func_end sub_80D0930 + + thumb_func_start sub_80D09C0 +sub_80D09C0: @ 80D09C0 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _080D09D4 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D09DC + ldr r0, _080D09D8 + b _080D09DE + .align 2, 0 +_080D09D4: .4byte gUnknown_03004B00 +_080D09D8: .4byte gUnknown_0202F7C8 +_080D09DC: + ldr r0, _080D0A3C +_080D09DE: + ldrb r5, [r0] + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080D09F8 + ldr r1, _080D0A40 + movs r2, 0x2 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x2] +_080D09F8: + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080D0A40 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x20] + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x4] + adds r0, r4 + strh r0, [r6, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + bgt _080D0A2A + movs r0, 0x8 + strh r0, [r6, 0x22] +_080D0A2A: + ldr r1, _080D0A44 + adds r0, r6, 0 + bl oamt_set_x3A_32 + ldr r0, _080D0A48 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D0A3C: .4byte gUnknown_0202F7C9 +_080D0A40: .4byte gUnknown_03004B00 +_080D0A44: .4byte move_anim_8074EE0 +_080D0A48: .4byte sub_80785E4 + thumb_func_end sub_80D09C0 + + thumb_func_start sub_80D0A4C +sub_80D0A4C: @ 80D0A4C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080D0A80 + adds r4, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + strh r1, [r4, 0x8] + strh r0, [r4, 0xA] + ldr r2, _080D0A84 + adds r0, r4, 0 + bl sub_80798F4 + ldr r0, _080D0A88 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D0A80: .4byte gTasks +_080D0A84: .4byte gUnknown_083D77B0 +_080D0A88: .4byte sub_80D0A8C + thumb_func_end sub_80D0A4C + + thumb_func_start sub_80D0A8C +sub_80D0A8C: @ 80D0A8C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080D0AB4 + adds r0, r1 + bl sub_807992C + lsls r0, 24 + cmp r0, 0 + bne _080D0AAC + adds r0, r4, 0 + bl move_anim_task_del +_080D0AAC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D0AB4: .4byte gTasks + thumb_func_end sub_80D0A8C + + thumb_func_start sub_80D0AB8 +sub_80D0AB8: @ 80D0AB8 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080D0B2C + adds r4, r1, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + strh r0, [r4, 0x8] + strh r2, [r4, 0xA] + movs r0, 0x4 + strh r0, [r4, 0xC] + movs r0, 0x7 + strh r0, [r4, 0xE] + movs r0, 0x3 + strh r0, [r4, 0x10] + ldr r3, _080D0B30 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x20] + strh r0, [r4, 0x12] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x22] + strh r0, [r4, 0x14] + strh r2, [r4, 0x16] + strh r2, [r4, 0x18] + movs r0, 0x2 + strh r0, [r4, 0x1A] + ldr r0, _080D0B34 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080D0B22 + movs r1, 0xC + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4, 0xC] +_080D0B22: + ldr r0, _080D0B38 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D0B2C: .4byte gTasks +_080D0B30: .4byte gSprites +_080D0B34: .4byte gUnknown_0202F7C8 +_080D0B38: .4byte sub_80D0B3C + thumb_func_end sub_80D0AB8 + + thumb_func_start sub_80D0B3C +sub_80D0B3C: @ 80D0B3C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080D0B84 + adds r3, r0, r1 + ldrh r0, [r3, 0x16] + adds r0, 0x1 + strh r0, [r3, 0x16] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080D0BA2 + movs r0, 0 + strh r0, [r3, 0x16] + ldrh r0, [r3, 0x18] + adds r0, 0x1 + strh r0, [r3, 0x18] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D0B8C + ldr r2, _080D0B88 + movs r0, 0x8 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x1A] + ldrh r2, [r0, 0x22] + adds r1, r2 + b _080D0BA0 + .align 2, 0 +_080D0B84: .4byte gTasks +_080D0B88: .4byte gSprites +_080D0B8C: + ldr r2, _080D0BB4 + movs r5, 0x8 + ldrsh r1, [r3, r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + ldrh r2, [r3, 0x1A] + subs r1, r2 +_080D0BA0: + strh r1, [r0, 0x22] +_080D0BA2: + movs r1, 0xA + ldrsh r0, [r3, r1] + cmp r0, 0x1 + beq _080D0BF0 + cmp r0, 0x1 + bgt _080D0BB8 + cmp r0, 0 + beq _080D0BBE + b _080D0C80 + .align 2, 0 +_080D0BB4: .4byte gSprites +_080D0BB8: + cmp r0, 0x2 + beq _080D0C20 + b _080D0C80 +_080D0BBE: + ldr r2, _080D0BEC + movs r5, 0x8 + ldrsh r1, [r3, r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0xC] + ldrh r2, [r0, 0x20] + adds r1, r2 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0xE] + subs r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _080D0C80 + movs r0, 0xE + strh r0, [r3, 0xE] + movs r0, 0x1 + strh r0, [r3, 0xA] + b _080D0C80 + .align 2, 0 +_080D0BEC: .4byte gSprites +_080D0BF0: + ldr r2, _080D0C1C + movs r5, 0x8 + ldrsh r1, [r3, r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x20] + ldrh r2, [r3, 0xC] + subs r1, r2 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0xE] + subs r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _080D0C80 + movs r0, 0x7 + strh r0, [r3, 0xE] + movs r0, 0x2 + strh r0, [r3, 0xA] + b _080D0C80 + .align 2, 0 +_080D0C1C: .4byte gSprites +_080D0C20: + ldr r2, _080D0C58 + movs r0, 0x8 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0xC] + ldrh r5, [r0, 0x20] + adds r1, r5 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0xE] + subs r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + bne _080D0C80 + ldrh r0, [r3, 0x10] + subs r0, 0x1 + strh r0, [r3, 0x10] + lsls r0, 16 + cmp r0, 0 + beq _080D0C5C + movs r0, 0x7 + strh r0, [r3, 0xE] + strh r1, [r3, 0xA] + b _080D0C80 + .align 2, 0 +_080D0C58: .4byte gSprites +_080D0C5C: + ldrh r1, [r3, 0x18] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D0C7A + movs r0, 0x8 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + ldrh r2, [r3, 0x1A] + subs r1, r2 + strh r1, [r0, 0x22] +_080D0C7A: + adds r0, r4, 0 + bl move_anim_task_del +_080D0C80: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D0B3C + + thumb_func_start sub_80D0C88 +sub_80D0C88: @ 80D0C88 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080D0CD8 + adds r5, r1, r0 + ldr r4, _080D0CDC + ldrb r0, [r4] + bl sub_8077FC0 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + movs r1, 0 + strh r0, [r5, 0x8] + movs r0, 0x4 + strh r0, [r5, 0xA] + strh r1, [r5, 0xC] + strh r1, [r5, 0xE] + strh r1, [r5, 0x10] + strh r1, [r5, 0x12] + ldrb r0, [r4] + bl sub_807A100 + strh r0, [r5, 0x26] + ldrb r0, [r4] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080D0CE8 + ldr r0, _080D0CE0 + ldrh r0, [r0] + strh r0, [r5, 0x14] + ldr r0, _080D0CE4 + b _080D0CF0 + .align 2, 0 +_080D0CD8: .4byte gTasks +_080D0CDC: .4byte gUnknown_0202F7C9 +_080D0CE0: .4byte gUnknown_030042C0 +_080D0CE4: .4byte REG_BG1HOFS +_080D0CE8: + ldr r0, _080D0D54 + ldrh r0, [r0] + strh r0, [r5, 0x14] + ldr r0, _080D0D58 +_080D0CF0: + str r0, [sp] + ldrh r0, [r5, 0x8] + adds r1, r0, 0 + subs r1, 0x40 + lsls r2, r1, 16 + lsls r0, 16 + cmp r2, r0 + bgt _080D0D2E + ldr r4, _080D0D5C + movs r0, 0xF0 + lsls r0, 3 + adds r6, r4, r0 +_080D0D08: + asrs r3, r2, 16 + cmp r3, 0 + blt _080D0D20 + lsls r1, r3, 1 + adds r2, r1, r4 + ldrh r0, [r5, 0x14] + adds r0, 0xF0 + strh r0, [r2] + adds r1, r6 + ldrh r0, [r5, 0x14] + adds r0, 0xF0 + strh r0, [r1] +_080D0D20: + adds r0, r3, 0x1 + lsls r2, r0, 16 + asrs r1, r2, 16 + movs r3, 0x8 + ldrsh r0, [r5, r3] + cmp r1, r0 + ble _080D0D08 +_080D0D2E: + ldr r0, _080D0D60 + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80895F8 + ldr r0, _080D0D64 + str r0, [r5] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D0D54: .4byte gUnknown_03004288 +_080D0D58: .4byte REG_BG2HOFS +_080D0D5C: .4byte gUnknown_03004DE0 +_080D0D60: .4byte 0xa2600001 +_080D0D64: .4byte sub_80D0D68 + thumb_func_end sub_80D0C88 + + thumb_func_start sub_80D0D68 +sub_80D0D68: @ 80D0D68 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080D0D88 + adds r3, r0, r1 + movs r1, 0x10 + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _080D0D8C + cmp r0, 0x1 + beq _080D0DA2 + b _080D0E22 + .align 2, 0 +_080D0D88: .4byte gTasks +_080D0D8C: + ldrh r0, [r3, 0x12] + adds r0, 0x1 + strh r0, [r3, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080D0E22 + ldrh r0, [r3, 0x10] + adds r0, 0x1 + strh r0, [r3, 0x10] + b _080D0E22 +_080D0DA2: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080D0E22 + movs r0, 0 + strh r0, [r3, 0xA] + ldrh r1, [r3, 0xE] + movs r0, 0x3 + ands r0, r1 + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x8] + subs r0, r1 + strh r0, [r3, 0x12] + movs r2, 0xC + ldrsh r1, [r3, r2] + cmp r1, 0x1 + beq _080D0DD8 + cmp r1, 0x1 + ble _080D0DE0 + cmp r1, 0x2 + beq _080D0DDC + cmp r1, 0x3 + beq _080D0DDC + b _080D0DE0 +_080D0DD8: + subs r0, 0x2 + b _080D0DDE +_080D0DDC: + adds r0, 0x1 +_080D0DDE: + strh r0, [r3, 0x12] +_080D0DE0: + movs r1, 0x12 + ldrsh r0, [r3, r1] + cmp r0, 0 + blt _080D0E04 + ldr r2, _080D0E28 + lsls r0, 1 + adds r0, r2 + ldrh r1, [r3, 0x14] + strh r1, [r0] + movs r1, 0x12 + ldrsh r0, [r3, r1] + lsls r0, 1 + movs r1, 0xF0 + lsls r1, 3 + adds r2, r1 + adds r0, r2 + ldrh r1, [r3, 0x14] + strh r1, [r0] +_080D0E04: + ldrh r0, [r3, 0xE] + adds r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x26 + ldrsh r1, [r3, r2] + cmp r0, r1 + blt _080D0E22 + ldr r1, _080D0E2C + movs r0, 0x3 + strb r0, [r1, 0x15] + adds r0, r4, 0 + bl move_anim_task_del +_080D0E22: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D0E28: .4byte gUnknown_03004DE0 +_080D0E2C: .4byte gUnknown_03004DC0 + thumb_func_end sub_80D0D68 + + thumb_func_start sub_80D0E30 +sub_80D0E30: @ 80D0E30 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _080D0E84 + ldrb r0, [r6] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x10 + movs r5, 0 + strh r0, [r4, 0x20] + ldrb r0, [r6] + bl sub_8077FC0 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + strh r0, [r4, 0x22] + strh r5, [r4, 0x2E] + strh r5, [r4, 0x30] + strh r5, [r4, 0x32] + movs r0, 0x10 + strh r0, [r4, 0x34] + strh r5, [r4, 0x36] + ldrb r0, [r6] + movs r1, 0 + bl sub_807A100 + adds r0, 0x2 + strh r0, [r4, 0x38] + movs r0, 0x3F + bl sub_8076F98 + lsls r0, 24 + asrs r0, 24 + strh r0, [r4, 0x3A] + ldr r0, _080D0E88 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D0E84: .4byte gUnknown_0202F7C9 +_080D0E88: .4byte sub_80D0E8C + thumb_func_end sub_80D0E30 + + thumb_func_start sub_80D0E8C +sub_80D0E8C: @ 80D0E8C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080D0EF0 + cmp r1, 0x1 + bgt _080D0EA2 + cmp r1, 0 + beq _080D0EA8 + b _080D0FD0 +_080D0EA2: + cmp r1, 0x2 + beq _080D0F82 + b _080D0FD0 +_080D0EA8: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D0ED2 + strh r1, [r4, 0x32] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080D0ED2: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080D0FD0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r2] + b _080D0F7A +_080D0EF0: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080D0F36 + ldrh r2, [r4, 0x32] + movs r3, 0x32 + ldrsh r1, [r4, r3] + movs r3, 0x38 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080D0F36 + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + subs r0, 0x1 + strh r0, [r4, 0x22] + adds r0, r2, 0x1 + strh r0, [r4, 0x32] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _080D0F36 + ldrh r1, [r4, 0x3A] + lsls r1, 24 + asrs r1, 24 + movs r0, 0xCD + bl PlaySE12WithPanning +_080D0F36: + ldrh r0, [r4, 0x34] + ldrh r2, [r4, 0x36] + adds r1, r0, r2 + strh r1, [r4, 0x36] + lsls r0, r1, 16 + asrs r2, r0, 16 + cmp r2, 0x1F + ble _080D0F4A + movs r0, 0x40 + b _080D0F58 +_080D0F4A: + movs r0, 0x20 + negs r0, r0 + cmp r2, r0 + bgt _080D0F64 + movs r2, 0x40 + negs r2, r2 + adds r0, r2, 0 +_080D0F58: + subs r0, r1 + strh r0, [r4, 0x36] + movs r3, 0x34 + ldrsh r0, [r4, r3] + negs r0, r0 + strh r0, [r4, 0x34] +_080D0F64: + ldrh r0, [r4, 0x36] + movs r2, 0 + strh r0, [r4, 0x24] + movs r0, 0x38 + ldrsh r1, [r4, r0] + movs r3, 0x32 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _080D0FD0 + strh r2, [r4, 0x30] + strh r2, [r4, 0x32] +_080D0F7A: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080D0FD0 +_080D0F82: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D0FAE + movs r0, 0 + strh r0, [r4, 0x32] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080D0FAE: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080D0FD0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, 0 + bl move_anim_8072740 +_080D0FD0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D0E8C + + thumb_func_start sub_80D0FD8 +sub_80D0FD8: @ 80D0FD8 + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + movs r5, 0 + mov r0, sp + strh r5, [r0] + mov r1, sp + adds r1, 0x2 + strh r5, [r1] + ldr r0, _080D0FFC + movs r3, 0x4 + ldrsh r2, [r0, r3] + adds r7, r1, 0 + adds r1, r0, 0 + cmp r2, 0 + bne _080D1004 + ldr r0, _080D1000 + b _080D1006 + .align 2, 0 +_080D0FFC: .4byte gUnknown_03004B00 +_080D1000: .4byte gUnknown_0202F7C8 +_080D1004: + ldr r0, _080D1040 +_080D1006: + ldrb r5, [r0] + ldrb r1, [r1, 0x6] + movs r0, 0x1 + adds r4, r0, 0 + eors r4, r1 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080D107E + movs r1, 0x2 + adds r0, r5, 0 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080D107E + adds r0, r5, 0 + adds r1, r4, 0 + mov r2, sp + adds r3, r7, 0 + bl sub_807A3FC + cmp r4, 0 + bne _080D1044 + adds r0, r5, 0 + movs r1, 0 + b _080D1048 + .align 2, 0 +_080D1040: .4byte gUnknown_0202F7C9 +_080D1044: + adds r0, r5, 0 + movs r1, 0x2 +_080D1048: + bl sub_8077ABC + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D1074 + ldr r2, _080D1070 + mov r0, sp + ldrh r1, [r0] + subs r1, r4 + ldrh r0, [r2] + subs r1, r0 + subs r0, r1 + strh r0, [r2] + b _080D107E + .align 2, 0 +_080D1070: .4byte gUnknown_03004B00 +_080D1074: + ldr r1, _080D1090 + mov r0, sp + ldrh r0, [r0] + subs r0, r4 + strh r0, [r1] +_080D107E: + ldr r1, _080D1094 + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D1090: .4byte gUnknown_03004B00 +_080D1094: .4byte sub_80793C4 + thumb_func_end sub_80D0FD8 + + thumb_func_start sub_80D1098 +sub_80D1098: @ 80D1098 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080D10B2 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl move_anim_8072740 +_080D10B2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D1098 + + thumb_func_start sub_80D10B8 +sub_80D10B8: @ 80D10B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r5, r0, 0 + movs r6, 0 + mov r0, sp + strh r6, [r0] + mov r1, sp + adds r1, 0x2 + strh r6, [r1] + ldr r0, _080D10E4 + movs r2, 0xA + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _080D10F0 + ldr r0, _080D10E8 + ldrb r7, [r0] + ldr r0, _080D10EC + b _080D10F6 + .align 2, 0 +_080D10E4: .4byte gUnknown_03004B00 +_080D10E8: .4byte gUnknown_0202F7C8 +_080D10EC: .4byte gUnknown_0202F7C9 +_080D10F0: + ldr r0, _080D1110 + ldrb r7, [r0] + ldr r0, _080D1114 +_080D10F6: + ldrb r0, [r0] + mov r8, r0 + ldr r0, _080D1118 + movs r3, 0xC + ldrsh r0, [r0, r3] + cmp r0, 0 + bne _080D111C + movs r0, 0 + mov r10, r0 + movs r1, 0x1 + str r1, [sp, 0x4] + b _080D1124 + .align 2, 0 +_080D1110: .4byte gUnknown_0202F7C9 +_080D1114: .4byte gUnknown_0202F7C8 +_080D1118: .4byte gUnknown_03004B00 +_080D111C: + movs r2, 0x2 + mov r10, r2 + movs r3, 0x3 + str r3, [sp, 0x4] +_080D1124: + adds r0, r7, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D1180 + adds r0, r7, 0 + mov r1, r10 + bl sub_8077ABC + lsls r0, 24 + ldr r1, _080D1164 + lsrs r0, 24 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + movs r0, 0x2 + mov r4, r8 + eors r4, r0 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080D1170 + ldr r2, _080D1168 + ldr r0, _080D116C + adds r0, r4, r0 + b _080D120A + .align 2, 0 +_080D1164: .4byte gUnknown_03004B00 +_080D1168: .4byte gSprites +_080D116C: .4byte gUnknown_02024BE0 +_080D1170: + ldr r2, _080D1178 + ldr r0, _080D117C + add r0, r8 + b _080D120A + .align 2, 0 +_080D1178: .4byte gSprites +_080D117C: .4byte gUnknown_02024BE0 +_080D1180: + adds r0, r7, 0 + mov r1, r10 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080D11EC + ldrh r1, [r1] + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + ldr r0, _080D11F0 + ldr r1, _080D11F4 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080D1204 + adds r4, r7, 0 + movs r0, 0x2 + eors r4, r0 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080D1204 + ldr r3, _080D11F8 + ldr r2, _080D11FC + adds r0, r7, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r6, r0, r3 + adds r2, r4, r2 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r3 + movs r3, 0x20 + ldrsh r1, [r6, r3] + movs r3, 0x20 + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _080D1200 + adds r0, r2, 0 + adds r0, 0x43 + ldrb r0, [r0] + adds r0, 0x1 + b _080D121A + .align 2, 0 +_080D11EC: .4byte gUnknown_03004B00 +_080D11F0: .4byte gMain +_080D11F4: .4byte 0x0000043d +_080D11F8: .4byte gSprites +_080D11FC: .4byte gUnknown_02024BE0 +_080D1200: + adds r0, r6, 0 + b _080D1214 +_080D1204: + ldr r2, _080D1268 + ldr r0, _080D126C + adds r0, r7, r0 +_080D120A: + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 +_080D1214: + adds r0, 0x43 + ldrb r0, [r0] + subs r0, 0x1 +_080D121A: + adds r1, r5, 0 + adds r1, 0x43 + strb r0, [r1] + adds r0, r7, 0 + ldr r1, [sp, 0x4] + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080D1270 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _080D1274 + ldr r2, _080D1278 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080D127C + mov r0, r8 + movs r1, 0x2 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080D127C + ldrb r1, [r4, 0xC] + mov r0, r8 + mov r2, sp + mov r3, sp + adds r3, 0x2 + bl sub_807A3FC + b _080D129C + .align 2, 0 +_080D1268: .4byte gSprites +_080D126C: .4byte gUnknown_02024BE0 +_080D1270: .4byte gUnknown_03004B00 +_080D1274: .4byte gMain +_080D1278: .4byte 0x0000043d +_080D127C: + mov r4, sp + mov r0, r8 + mov r1, r10 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + mov r0, r8 + ldr r1, [sp, 0x4] + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r3, sp + strh r0, [r3, 0x2] +_080D129C: + mov r0, r8 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D12C0 + mov r3, sp + mov r2, sp + ldr r1, _080D12BC + ldrh r0, [r1, 0x6] + ldrh r2, [r2] + adds r0, r2 + strh r0, [r3] + adds r2, r1, 0 + b _080D12CE + .align 2, 0 +_080D12BC: .4byte gUnknown_03004B00 +_080D12C0: + mov r3, sp + mov r0, sp + ldr r2, _080D1310 + ldrh r0, [r0] + ldrh r1, [r2, 0x6] + subs r0, r1 + strh r0, [r3] +_080D12CE: + ldrh r1, [r2, 0x8] + mov r0, sp + ldrh r0, [r0, 0x2] + adds r1, r0 + mov r3, sp + strh r1, [r3, 0x2] + mov r0, r9 + strh r0, [r5, 0x30] + strh r0, [r5, 0x20] + strh r6, [r5, 0x34] + strh r6, [r5, 0x22] + mov r0, sp + ldrh r0, [r0] + strh r0, [r5, 0x32] + strh r1, [r5, 0x36] + ldrh r0, [r2] + strh r0, [r5, 0x2E] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _080D1314 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D1310: .4byte gUnknown_03004B00 +_080D1314: .4byte sub_80D1098 + thumb_func_end sub_80D10B8 + + thumb_func_start sub_80D1318 +sub_80D1318: @ 80D1318 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D1358 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080D133E + lsls r0, 20 + ldr r1, _080D135C + adds r0, r1 + lsrs r0, 16 + ldr r1, _080D1360 + ldrb r2, [r1, 0xA] + ldrh r3, [r1, 0x8] + movs r1, 0xF + bl BlendPalette +_080D133E: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r1, _080D1364 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1358: .4byte 0x000027db +_080D135C: .4byte 0x01010000 +_080D1360: .4byte gUnknown_03004B00 +_080D1364: .4byte sub_80793C4 + thumb_func_end sub_80D1318 + + thumb_func_start sub_80D1368 +sub_80D1368: @ 80D1368 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_80787B0 + ldr r0, _080D139C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + movs r1, 0xA0 + cmp r0, 0 + beq _080D1384 + ldr r1, _080D13A0 +_080D1384: + movs r0, 0xE0 + lsls r0, 2 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + ldr r0, _080D13A4 + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x3C] + ldr r0, _080D13A8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D139C: .4byte gUnknown_0202F7C8 +_080D13A0: .4byte 0x0000ff60 +_080D13A4: .4byte gUnknown_03004B00 +_080D13A8: .4byte sub_80D13AC + thumb_func_end sub_80D1368 + + thumb_func_start sub_80D13AC +sub_80D13AC: @ 80D13AC + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x2E] + lsls r0, r2, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + subs r1, r0 + movs r5, 0 + strh r1, [r4, 0x26] + ldrh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + subs r2, 0x20 + strh r2, [r4, 0x2E] + ldr r0, _080D1418 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + movs r1, 0xA0 + cmp r0, 0 + beq _080D13DC + ldr r1, _080D141C +_080D13DC: + lsls r0, r1, 16 + asrs r0, 16 + ldrh r1, [r4, 0x30] + adds r0, r1 + strh r0, [r4, 0x30] + ldrh r1, [r4, 0x26] + movs r2, 0x26 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080D1410 + ldrh r2, [r4, 0x22] + adds r0, r1, r2 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + strh r5, [r4, 0x26] + strh r5, [r4, 0x24] + strh r5, [r4, 0x2E] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r0, _080D1420 + str r0, [r4, 0x1C] +_080D1410: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1418: .4byte gUnknown_0202F7C8 +_080D141C: .4byte 0x0000ff60 +_080D1420: .4byte sub_80D1424 + thumb_func_end sub_80D13AC + + thumb_func_start sub_80D1424 +sub_80D1424: @ 80D1424 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r1, r0, 0x1 + strh r1, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080D1442 + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r0, _080D1448 + str r0, [r4, 0x1C] +_080D1442: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1448: .4byte sub_80D144C + thumb_func_end sub_80D1424 + + thumb_func_start sub_80D144C +sub_80D144C: @ 80D144C + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080D14B2 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + movs r0, 0 + strh r0, [r4, 0x2E] + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D1498 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x10 + ldr r3, _080D148C + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D1490 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + ldr r0, _080D1494 + b _080D14B0 + .align 2, 0 +_080D148C: .4byte 0x000003ff +_080D1490: .4byte 0xfffffc00 +_080D1494: .4byte sub_80D14C4 +_080D1498: + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x20 + ldr r3, _080D14B8 + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D14BC + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + ldr r0, _080D14C0 +_080D14B0: + str r0, [r4, 0x1C] +_080D14B2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D14B8: .4byte 0x000003ff +_080D14BC: .4byte 0xfffffc00 +_080D14C0: .4byte sub_80D154C + thumb_func_end sub_80D144C + + thumb_func_start sub_80D14C4 +sub_80D14C4: @ 80D14C4 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x26] + subs r0, 0x2 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + bne _080D14F8 + movs r0, 0x10 + strh r0, [r2, 0x2E] + movs r0, 0 + strh r0, [r2, 0x30] + ldr r1, _080D14FC + movs r3, 0xFD + lsls r3, 6 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r2, 0x2E] + strh r0, [r1] + ldr r0, _080D1500 + str r0, [r2, 0x1C] +_080D14F8: + pop {r0} + bx r0 + .align 2, 0 +_080D14FC: .4byte REG_BLDCNT +_080D1500: .4byte sub_80D1504 + thumb_func_end sub_80D14C4 + + thumb_func_start sub_80D1504 +sub_80D1504: @ 80D1504 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r1, r0, 0x1 + strh r1, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _080D153C + ldrh r1, [r4, 0x2E] + subs r1, 0x1 + strh r1, [r4, 0x2E] + ldr r2, _080D1544 + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D153C + ldr r0, _080D1548 + str r0, [r4, 0x1C] +_080D153C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1544: .4byte REG_BLDALPHA +_080D1548: .4byte sub_80D154C + thumb_func_end sub_80D1504 + + thumb_func_start sub_80D154C +sub_80D154C: @ 80D154C + push {lr} + adds r3, r0, 0 + ldr r0, _080D1574 + ldrh r1, [r0, 0xE] + ldr r0, _080D1578 + cmp r1, r0 + bne _080D1584 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r1, 0x3C + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080D1580 + ldr r0, _080D157C + b _080D1582 + .align 2, 0 +_080D1574: .4byte gUnknown_03004B00 +_080D1578: .4byte 0x0000ffff +_080D157C: .4byte sub_80D158C +_080D1580: + ldr r0, _080D1588 +_080D1582: + str r0, [r3, 0x1C] +_080D1584: + pop {r0} + bx r0 + .align 2, 0 +_080D1588: .4byte move_anim_8072740 + thumb_func_end sub_80D154C + + thumb_func_start sub_80D158C +sub_80D158C: @ 80D158C + push {lr} + ldr r1, _080D15A0 + movs r2, 0 + strh r2, [r1] + adds r1, 0x2 + strh r2, [r1] + bl move_anim_8072740 + pop {r0} + bx r0 + .align 2, 0 +_080D15A0: .4byte REG_BLDCNT + thumb_func_end sub_80D158C + + thumb_func_start sub_80D15A4 +sub_80D15A4: @ 80D15A4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080D15D4 + adds r4, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + strh r1, [r4, 0x8] + ldr r2, _080D15D8 + adds r0, r4, 0 + bl sub_80798F4 + ldr r0, _080D15DC + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D15D4: .4byte gTasks +_080D15D8: .4byte gUnknown_083D79BC +_080D15DC: .4byte sub_80D15E0 + thumb_func_end sub_80D15A4 + + thumb_func_start sub_80D15E0 +sub_80D15E0: @ 80D15E0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080D1630 + adds r4, r0, r1 + adds r0, r4, 0 + bl sub_807992C + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _080D162A + ldr r2, _080D1634 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x26] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r0, r5, 0 + bl move_anim_task_del +_080D162A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1630: .4byte gTasks +_080D1634: .4byte gSprites + thumb_func_end sub_80D15E0 + + thumb_func_start sub_80D1638 +sub_80D1638: @ 80D1638 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080D166C + adds r4, r1, r0 + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + movs r0, 0x3 + strh r0, [r4, 0x20] + ldr r0, _080D1670 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D1678 + ldr r0, _080D1674 + strh r0, [r4, 0x22] + movs r0, 0x8 + b _080D167E + .align 2, 0 +_080D166C: .4byte gTasks +_080D1670: .4byte gUnknown_0202F7C9 +_080D1674: .4byte 0x0000ffff +_080D1678: + movs r0, 0x1 + strh r0, [r4, 0x22] + ldr r0, _080D1698 +_080D167E: + strh r0, [r4, 0x24] + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r0, _080D169C + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1698: .4byte 0x0000fff8 +_080D169C: .4byte sub_80D16A0 + thumb_func_end sub_80D1638 + + thumb_func_start sub_80D16A0 +sub_80D16A0: @ 80D16A0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080D16C4 + adds r3, r0, r1 + movs r0, 0x8 + ldrsh r4, [r3, r0] + cmp r4, 0x1 + beq _080D16F4 + cmp r4, 0x1 + bgt _080D16C8 + cmp r4, 0 + beq _080D16D2 + b _080D17BA + .align 2, 0 +_080D16C4: .4byte gTasks +_080D16C8: + cmp r4, 0x2 + beq _080D1770 + cmp r4, 0x3 + beq _080D178A + b _080D17BA +_080D16D2: + ldr r2, _080D16F0 + movs r0, 0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x24] + ldrh r2, [r0, 0x24] + adds r1, r2 + strh r1, [r0, 0x24] + strh r4, [r3, 0xA] + strh r4, [r3, 0xC] + strh r4, [r3, 0xE] + b _080D1782 + .align 2, 0 +_080D16F0: .4byte gSprites +_080D16F4: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D17BA + movs r0, 0 + strh r0, [r3, 0xA] + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + ands r0, r4 + lsls r0, 16 + cmp r0, 0 + beq _080D172C + ldr r2, _080D1728 + movs r4, 0x26 + ldrsh r1, [r3, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x24] + adds r1, 0x6 + b _080D173E + .align 2, 0 +_080D1728: .4byte gSprites +_080D172C: + ldr r2, _080D176C + movs r0, 0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x24] + subs r1, 0x6 +_080D173E: + strh r1, [r0, 0x24] + ldrh r0, [r3, 0xE] + adds r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080D17BA + ldrh r1, [r3, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D1782 + movs r1, 0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x24] + subs r0, 0x6 + strh r0, [r1, 0x24] + b _080D1782 + .align 2, 0 +_080D176C: .4byte gSprites +_080D1770: + ldrh r0, [r3, 0x20] + subs r0, 0x1 + strh r0, [r3, 0x20] + lsls r0, 16 + cmp r0, 0 + beq _080D1782 + movs r0, 0 + strh r0, [r3, 0x8] + b _080D17BA +_080D1782: + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + b _080D17BA +_080D178A: + ldr r2, _080D17C0 + movs r4, 0x26 + ldrsh r1, [r3, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x22] + ldrh r4, [r0, 0x24] + adds r1, r4 + strh r1, [r0, 0x24] + movs r0, 0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x24 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D17BA + adds r0, r5, 0 + bl move_anim_task_del +_080D17BA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D17C0: .4byte gSprites + thumb_func_end sub_80D16A0 + + thumb_func_start sub_80D17C4 +sub_80D17C4: @ 80D17C4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080D1800 + adds r4, r0 + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + movs r0, 0x1 + strh r0, [r4, 0x10] + movs r0, 0xE + strh r0, [r4, 0x22] + movs r0, 0x2 + strh r0, [r4, 0x24] + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r0, _080D1804 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1800: .4byte gTasks +_080D1804: .4byte sub_80D1808 + thumb_func_end sub_80D17C4 + + thumb_func_start sub_80D1808 +sub_80D1808: @ 80D1808 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080D185C + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _080D18CE + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x10 + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _080D18CE + strh r2, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D1864 + ldr r3, _080D1860 + movs r6, 0x26 + ldrsh r1, [r4, r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + b _080D187A + .align 2, 0 +_080D185C: .4byte gTasks +_080D1860: .4byte gSprites +_080D1864: + ldr r3, _080D18AC + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 +_080D187A: + strb r1, [r0] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + movs r2, 0 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r6, 0x22 + ldrsh r1, [r4, r6] + cmp r0, r1 + blt _080D18CE + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + movs r6, 0x24 + ldrsh r1, [r4, r6] + cmp r0, r1 + bge _080D18B0 + strh r2, [r4, 0xA] + strh r2, [r4, 0xC] + strh r2, [r4, 0xE] + b _080D18CE + .align 2, 0 +_080D18AC: .4byte gSprites +_080D18B0: + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + adds r0, r5, 0 + bl move_anim_task_del +_080D18CE: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80D1808 + + thumb_func_start sub_80D18D4 +sub_80D18D4: @ 80D18D4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080D1924 + adds r4, r0 + movs r0, 0 + strh r0, [r4, 0x8] + movs r1, 0x4 + strh r1, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + strh r0, [r4, 0x10] + strh r0, [r4, 0x12] + strh r0, [r4, 0x14] + strh r0, [r4, 0x16] + strh r0, [r4, 0x18] + strh r0, [r4, 0x22] + ldr r5, _080D1928 + ldrb r0, [r5] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x24] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r0, _080D192C + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1924: .4byte gTasks +_080D1928: .4byte gUnknown_0202F7C8 +_080D192C: .4byte sub_80D1930 + thumb_func_end sub_80D18D4 + + thumb_func_start sub_80D1930 +sub_80D1930: @ 80D1930 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080D1954 + adds r4, r0, r1 + movs r0, 0x18 + ldrsh r2, [r4, r0] + cmp r2, 0x1 + beq _080D199C + cmp r2, 0x1 + bgt _080D1958 + cmp r2, 0 + beq _080D195E + b _080D19B8 + .align 2, 0 +_080D1954: .4byte gTasks +_080D1958: + cmp r2, 0x2 + beq _080D19B4 + b _080D19B8 +_080D195E: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D19B8 + strh r2, [r4, 0x10] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + movs r1, 0x1 + ands r0, r1 + strh r0, [r4, 0x12] + ldrh r0, [r4, 0x14] + adds r0, 0x1 + strh r0, [r4, 0x14] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080D19B8 + movs r1, 0x16 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D1996 + strh r2, [r4, 0x14] + movs r0, 0x1 + strh r0, [r4, 0x18] + b _080D19B8 +_080D1996: + movs r0, 0x2 + strh r0, [r4, 0x18] + b _080D19B8 +_080D199C: + movs r1, 0 + strh r1, [r4, 0x12] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080D19B8 + strh r2, [r4, 0x16] + strh r1, [r4, 0x18] + b _080D19B8 +_080D19B4: + movs r0, 0x1 + strh r0, [r4, 0x12] +_080D19B8: + movs r2, 0x8 + ldrsh r5, [r4, r2] + cmp r5, 0 + beq _080D19C6 + cmp r5, 0x1 + beq _080D1A5C + b _080D1A6A +_080D19C6: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080D1A6A + strh r5, [r4, 0xA] + ldr r0, _080D1A50 + movs r3, 0x24 + ldrsh r1, [r4, r3] + movs r3, 0x26 + ldrsh r2, [r4, r3] + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080D1A6A + ldr r0, _080D1A54 + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + strh r6, [r1, 0x2E] + movs r0, 0xD + strh r0, [r1, 0x30] + ldr r2, _080D1A58 + movs r3, 0xC + ldrsh r0, [r4, r3] + lsls r0, 1 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + strh r0, [r1, 0x24] + movs r3, 0xC + ldrsh r0, [r4, r3] + lsls r0, 1 + adds r2, 0x1 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + strh r0, [r1, 0x26] + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080D1A6A + strh r5, [r4, 0xC] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080D1A6A + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D1A6A + .align 2, 0 +_080D1A50: .4byte gSpriteTemplate_83D79E8 +_080D1A54: .4byte gSprites +_080D1A58: .4byte gUnknown_083D7A00 +_080D1A5C: + movs r1, 0x22 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D1A6A + adds r0, r6, 0 + bl move_anim_task_del +_080D1A6A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80D1930 + + thumb_func_start sub_80D1A70 +sub_80D1A70: @ 80D1A70 + push {r4,lr} + adds r3, r0, 0 + ldr r4, _080D1AD8 + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + movs r2, 0x1 + ldrb r1, [r0, 0x12] + ands r1, r2 + lsls r1, 2 + mov r0, r12 + ldrb r2, [r0] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + adds r0, r3, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D1AD2 + movs r0, 0x30 + ldrsh r1, [r3, r0] + lsls r1, 1 + movs r0, 0x2E + ldrsh r2, [r3, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r0, r4, 0 + adds r0, 0x8 + adds r1, r0 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r3, 0 + bl DestroySprite +_080D1AD2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1AD8: .4byte gTasks + thumb_func_end sub_80D1A70 + + thumb_func_start sub_80D1ADC +sub_80D1ADC: @ 80D1ADC + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080D1B34 + bl IndexOfSpritePaletteTag + mov r1, sp + strb r0, [r1] + movs r5, 0x1 + ldr r0, _080D1B38 + adds r4, r0, 0 +_080D1AF4: + subs r0, r4, r5 + lsls r0, 16 + lsrs r0, 16 + bl AllocSpritePalette + mov r2, sp + adds r1, r2, r5 + strb r0, [r1] + adds r5, 0x1 + cmp r5, 0x4 + ble _080D1AF4 + ldr r4, _080D1B3C + bl sub_8076BE0 + lsls r0, 24 + ldr r1, _080D1B40 + cmp r0, 0 + beq _080D1B1C + ldr r0, _080D1B44 + adds r1, r0 +_080D1B1C: + adds r0, r4, 0 + bl sub_800D238 + movs r5, 0 +_080D1B24: + lsls r4, r5, 5 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D1B4C + ldr r0, _080D1B48 + b _080D1B4E + .align 2, 0 +_080D1B34: .4byte 0x000027de +_080D1B38: .4byte 0x00002710 +_080D1B3C: .4byte gBattleAnimSpritePalette_206 +_080D1B40: .4byte 0x02018000 +_080D1B44: .4byte 0xffffc800 +_080D1B48: .4byte 0x02014800 +_080D1B4C: + ldr r0, _080D1B7C +_080D1B4E: + adds r2, r4, r0 + mov r1, sp + adds r0, r1, r5 + ldrb r1, [r0] + lsls r1, 20 + movs r0, 0x80 + lsls r0, 17 + adds r1, r0 + lsrs r1, 16 + adds r0, r2, 0 + movs r2, 0x20 + bl LoadPalette + adds r5, 0x1 + cmp r5, 0x4 + ble _080D1B24 + adds r0, r6, 0 + bl move_anim_task_del + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D1B7C: .4byte 0x02018000 + thumb_func_end sub_80D1ADC + + thumb_func_start sub_80D1B80 +sub_80D1B80: @ 80D1B80 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, _080D1BA4 + movs r4, 0x4 +_080D1B8A: + ldrh r0, [r5] + bl FreeSpritePaletteByTag + adds r5, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080D1B8A + adds r0, r6, 0 + bl move_anim_task_del + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D1BA4: .4byte gUnknown_083D7A5C + thumb_func_end sub_80D1B80 + + thumb_func_start sub_80D1BA8 +sub_80D1BA8: @ 80D1BA8 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + lsls r2, 24 + lsrs r3, r2, 24 + movs r0, 0x1 + ands r3, r0 + negs r0, r3 + orrs r0, r3 + asrs r0, 31 + movs r3, 0x20 + ands r0, r3 + ldrh r4, [r5, 0x4] + lsls r3, r4, 22 + lsrs r3, 22 + lsrs r1, 22 + adds r0, r1 + adds r3, r0 + ldr r1, _080D1BFC + adds r0, r1, 0 + ands r3, r0 + ldr r0, _080D1C00 + ands r0, r4 + orrs r0, r3 + strh r0, [r5, 0x4] + ldr r0, _080D1C04 + lsrs r2, 25 + lsls r2, 1 + adds r2, r0 + ldrh r0, [r2] + bl IndexOfSpritePaletteTag + lsls r0, 4 + ldrb r2, [r5, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1BFC: .4byte 0x000003ff +_080D1C00: .4byte 0xfffffc00 +_080D1C04: .4byte gUnknown_083D7A5C + thumb_func_end sub_80D1BA8 + + thumb_func_start sub_80D1C08 +sub_80D1C08: @ 80D1C08 + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0 + bl sub_80787B0 + ldr r6, _080D1C70 + ldrb r0, [r6] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D1C28 + ldr r1, _080D1C74 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080D1C28: + ldr r4, _080D1C74 + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x2E] + ldrb r0, [r6] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r5, 0x36] + ldr r0, _080D1C78 + str r0, [r5, 0x1C] + ldr r1, _080D1C7C + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldrb r1, [r4, 0xA] + ldrb r2, [r4, 0xC] + adds r0, r5, 0 + bl sub_80D1BA8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D1C70: .4byte gUnknown_0202F7C8 +_080D1C74: .4byte gUnknown_03004B00 +_080D1C78: .4byte sub_8078B34 +_080D1C7C: .4byte move_anim_8072740 + thumb_func_end sub_80D1C08 + + thumb_func_start sub_80D1C80 +sub_80D1C80: @ 80D1C80 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080D1C9A + adds r0, r4, 0 + movs r1, 0 + bl sub_80787B0 +_080D1C9A: + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + strh r0, [r4, 0x24] + ldrh r2, [r4, 0x32] + lsls r0, r2, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x7 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + subs r2, 0x80 + strh r2, [r4, 0x32] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x3C + bne _080D1CCA + adds r0, r4, 0 + bl move_anim_8072740 +_080D1CCA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D1C80 + + thumb_func_start sub_80D1CD0 +sub_80D1CD0: @ 80D1CD0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + movs r2, 0xF0 + cmp r0, 0 + beq _080D1CE4 + movs r2, 0x98 +_080D1CE4: + movs r3, 0 + ldr r0, _080D1D2C + strh r2, [r0] + ldr r0, _080D1D30 + movs r1, 0xA0 + strh r1, [r0] + ldr r0, _080D1D34 + strh r2, [r0] + adds r0, 0x4 + strh r1, [r0] + ldr r1, _080D1D38 + ldr r5, _080D1D3C + adds r0, r5, 0 + strh r0, [r1] + adds r1, 0x2 + adds r5, 0x20 + adds r0, r5, 0 + strh r0, [r1] + adds r1, 0x6 + movs r0, 0xC8 + strh r0, [r1] + adds r1, 0x4 + movs r0, 0x10 + strh r0, [r1] + ldr r1, _080D1D40 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r3, [r0, 0x8] + strh r2, [r0, 0xA] + ldr r1, _080D1D44 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1D2C: .4byte gUnknown_030042C4 +_080D1D30: .4byte gUnknown_03004240 +_080D1D34: .4byte REG_WIN0H +_080D1D38: .4byte REG_WININ +_080D1D3C: .4byte 0x00003f1f +_080D1D40: .4byte gTasks +_080D1D44: .4byte sub_80D1D48 + thumb_func_end sub_80D1CD0 + + thumb_func_start sub_80D1D48 +sub_80D1D48: @ 80D1D48 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080D1D7C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r3, r1, r2 + ldrh r0, [r3, 0x8] + adds r4, r0, 0 + adds r4, 0xD + strh r4, [r3, 0x8] + ldrh r0, [r3, 0xA] + adds r2, r0, 0 + subs r2, 0xD + strh r2, [r3, 0xA] + lsls r1, r4, 16 + lsls r0, r2, 16 + cmp r1, r0 + blt _080D1D88 + ldr r0, _080D1D80 + movs r1, 0 + strh r1, [r0] + ldr r0, _080D1D84 + str r0, [r3] + b _080D1D90 + .align 2, 0 +_080D1D7C: .4byte gTasks +_080D1D80: .4byte gUnknown_030042C4 +_080D1D84: .4byte sub_80D1D9C +_080D1D88: + ldr r1, _080D1D98 + lsls r0, r4, 8 + orrs r2, r0 + strh r2, [r1] +_080D1D90: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1D98: .4byte gUnknown_030042C4 + thumb_func_end sub_80D1D48 + + thumb_func_start sub_80D1D9C +sub_80D1D9C: @ 80D1D9C + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + ldr r5, _080D1DEC + lsls r0, r2, 2 + adds r0, r2 + lsls r3, r0, 3 + adds r1, r3, r5 + ldrh r0, [r1, 0x1C] + adds r0, 0x1 + movs r4, 0 + strh r0, [r1, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080D1DF8 + movs r0, 0x88 + strh r0, [r1, 0x1E] + adds r0, r5, r3 + adds r0, 0x1E + ldr r1, _080D1DF0 + movs r2, 0x2 + bl RequestSpriteCopy + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80791A8 + ldr r2, _080D1DF4 + movs r1, 0x10 + bl BlendPalettes + b _080D1E1E + .align 2, 0 +_080D1DEC: .4byte gTasks +_080D1DF0: .4byte REG_BLDCNT +_080D1DF4: .4byte 0x00007fff +_080D1DF8: + cmp r0, 0x4 + ble _080D1E1E + ldr r0, _080D1E28 + strh r4, [r0] + ldr r0, _080D1E2C + strh r4, [r0] + ldr r0, _080D1E30 + ldr r3, _080D1E34 + adds r1, r3, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x6 + strh r4, [r0] + adds r0, 0x4 + strh r4, [r0] + adds r0, r2, 0 + bl move_anim_task_del +_080D1E1E: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1E28: .4byte gUnknown_030042C4 +_080D1E2C: .4byte gUnknown_03004240 +_080D1E30: .4byte REG_WININ +_080D1E34: .4byte 0x00003f3f + thumb_func_end sub_80D1D9C + + thumb_func_start sub_80D1E38 +sub_80D1E38: @ 80D1E38 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080D1E88 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080D1E94 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080D1E8C + adds r0, r5, 0 + bl sub_80798F4 + ldr r1, _080D1E90 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x24] + b _080D1EBC + .align 2, 0 +_080D1E88: .4byte gTasks +_080D1E8C: .4byte gUnknown_083D7A98 +_080D1E90: .4byte gSprites +_080D1E94: + ldr r1, _080D1EC4 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r4, r0, r1 + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] + adds r0, r5, 0 + bl sub_807992C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080D1EBC + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + adds r0, r6, 0 + bl move_anim_task_del +_080D1EBC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D1EC4: .4byte gSprites + thumb_func_end sub_80D1E38 + + thumb_func_start sub_80D1EC8 +sub_80D1EC8: @ 80D1EC8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080D1F18 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080D1F24 + movs r0, 0 + bl obj_id_for_side_relative_to_move + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080D1F1C + adds r0, r5, 0 + bl sub_80798F4 + ldr r1, _080D1F20 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x24] + b _080D1F4C + .align 2, 0 +_080D1F18: .4byte gTasks +_080D1F1C: .4byte gUnknown_083D7A98 +_080D1F20: .4byte gSprites +_080D1F24: + ldr r1, _080D1F54 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r4, r0, r1 + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] + adds r0, r5, 0 + bl sub_807992C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080D1F4C + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + adds r0, r6, 0 + bl move_anim_task_del +_080D1F4C: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D1F54: .4byte gSprites + thumb_func_end sub_80D1EC8 + + thumb_func_start sub_80D1F58 +sub_80D1F58: @ 80D1F58 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + movs r0, 0x5F + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldr r5, _080D1F9C + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080D1FA0 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1F9C: .4byte gUnknown_0202F7C9 +_080D1FA0: .4byte sub_80D1FA4 + thumb_func_end sub_80D1F58 + + thumb_func_start sub_80D1FA4 +sub_80D1FA4: @ 80D1FA4 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _080D1FCE + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xE + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080D1FD4 +_080D1FCE: + adds r0, r4, 0 + bl move_anim_8072740 +_080D1FD4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D1FA4 + + thumb_func_start sub_80D1FDC +sub_80D1FDC: @ 80D1FDC + push {r4,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D2000 + ldr r1, _080D1FFC + ldrh r0, [r1] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x32] + adds r0, r2, 0x1 + strh r0, [r4, 0x2E] + b _080D205C + .align 2, 0 +_080D1FFC: .4byte gUnknown_03004B00 +_080D2000: + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + cmp r0, 0x64 + ble _080D204E + movs r0, 0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080D204E: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x78 + ble _080D205C + adds r0, r4, 0 + bl move_anim_8072740 +_080D205C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D1FDC + + thumb_func_start sub_80D2064 +sub_80D2064: @ 80D2064 + push {lr} + ldr r2, _080D2088 + ldrh r1, [r2] + strh r1, [r0, 0x20] + movs r1, 0xA0 + strh r1, [r0, 0x22] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0x2E] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0x30] + ldr r1, _080D208C + str r1, [r0, 0x1C] + ldr r1, _080D2090 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080D2088: .4byte gUnknown_03004B00 +_080D208C: .4byte sub_80782D8 +_080D2090: .4byte sub_80D2094 + thumb_func_end sub_80D2064 + + thumb_func_start sub_80D2094 +sub_80D2094: @ 80D2094 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + lsls r0, 16 + lsrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + lsls r0, 16 + asrs r5, r0, 16 + cmp r5, 0x48 + bgt _080D20FA + movs r0, 0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + cmp r5, 0x40 + bgt _080D20FA + adds r0, r4, 0 + bl move_anim_8072740 +_080D20FA: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D2094 + + thumb_func_start sub_80D2100 +sub_80D2100: @ 80D2100 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080D21BC + ldr r2, _080D21C0 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r4, _080D21C4 + ldrb r0, [r4] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D2144 + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080D2144: + ldr r0, _080D21C8 + movs r1, 0 + strh r1, [r0] + ldr r0, _080D21CC + strh r1, [r0] + ldr r0, _080D21D0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + mov r0, sp + bl sub_8078914 + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r2, _080D21D4 + add r0, sp, 0xC + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _080D21D8 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, _080D21DC + bl LZDecompressVram + ldr r0, _080D21E0 + ldr r1, [sp] + bl LZDecompressVram + ldr r0, _080D21E4 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D21A4 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80763FC +_080D21A4: + ldr r0, _080D21E8 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080D21EC + str r0, [r1] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D21BC: .4byte REG_BLDCNT +_080D21C0: .4byte 0x00003f42 +_080D21C4: .4byte REG_BG1CNT +_080D21C8: .4byte gUnknown_030042C0 +_080D21CC: .4byte gUnknown_030041B4 +_080D21D0: .4byte REG_BG1HOFS +_080D21D4: .4byte 0x040000d4 +_080D21D8: .4byte 0x85000400 +_080D21DC: .4byte gAttractTilemap +_080D21E0: .4byte gAttractGfx +_080D21E4: .4byte gAttractPal +_080D21E8: .4byte gTasks +_080D21EC: .4byte sub_80D21F0 + thumb_func_end sub_80D2100 + + thumb_func_start sub_80D21F0 +sub_80D21F0: @ 80D21F0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080D2220 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x20 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x4 + bls _080D2216 + b _080D238C +_080D2216: + lsls r0, 2 + ldr r1, _080D2224 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D2220: .4byte gTasks +_080D2224: .4byte _080D2228 + .align 2, 0 +_080D2228: + .4byte _080D223C + .4byte _080D2284 + .4byte _080D22A6 + .4byte _080D22E8 + .4byte _080D236C +_080D223C: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + movs r4, 0 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + beq _080D2256 + b _080D238C +_080D2256: + strh r4, [r3, 0x1C] + ldrh r1, [r3, 0x1E] + adds r1, 0x1 + strh r1, [r3, 0x1E] + ldr r2, _080D2280 + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0x1E + ldrsh r0, [r3, r1] + cmp r0, 0x10 + beq _080D2274 + b _080D238C +_080D2274: + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + strh r4, [r3, 0x1E] + b _080D238C + .align 2, 0 +_080D2280: .4byte REG_BLDALPHA +_080D2284: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8D + bne _080D238C + movs r0, 0x10 + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080D238C +_080D22A6: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080D238C + movs r0, 0 + strh r0, [r3, 0x1C] + ldrh r1, [r3, 0x1E] + subs r1, 0x1 + strh r1, [r3, 0x1E] + ldr r2, _080D22E4 + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r2, 0x1E + ldrsh r1, [r3, r2] + cmp r1, 0 + bne _080D238C + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + strh r1, [r3, 0x1E] + b _080D238C + .align 2, 0 +_080D22E4: .4byte REG_BLDALPHA +_080D22E8: + mov r0, sp + bl sub_8078914 + ldr r2, [sp] + movs r3, 0x80 + lsls r3, 6 + lsls r0, r5, 2 + mov r10, r0 + add r6, sp, 0xC + movs r7, 0 + ldr r1, _080D239C + movs r4, 0x80 + lsls r4, 5 + mov r8, r6 + ldr r0, _080D23A0 + mov r12, r0 + movs r0, 0x85 + lsls r0, 24 + mov r9, r0 +_080D230E: + str r7, [sp, 0xC] + mov r0, r8 + str r0, [r1] + str r2, [r1, 0x4] + mov r0, r12 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080D230E + str r7, [sp, 0xC] + str r6, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r9 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r0, _080D239C + str r6, [r0] + str r1, [r0, 0x4] + ldr r1, _080D23A4 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D235C + ldr r2, _080D23A8 + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080D235C: + ldr r0, _080D23AC + mov r2, r10 + adds r1, r2, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] +_080D236C: + ldr r0, _080D23B0 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r2, _080D23A8 + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, 0 + bl move_anim_task_del +_080D238C: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D239C: .4byte 0x040000d4 +_080D23A0: .4byte 0x85000400 +_080D23A4: .4byte 0x85000200 +_080D23A8: .4byte REG_BG1CNT +_080D23AC: .4byte gTasks +_080D23B0: .4byte REG_BLDCNT + thumb_func_end sub_80D21F0 + + thumb_func_start sub_80D23B4 +sub_80D23B4: @ 80D23B4 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080D2438 + ldr r2, _080D243C + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r4, _080D2440 + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D23FE + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080D23FE: + ldr r0, _080D2444 + movs r1, 0 + strh r1, [r0] + ldr r0, _080D2448 + strh r1, [r0] + ldr r0, _080D244C + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + mov r0, sp + bl sub_8078914 + ldr r2, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r1, _080D2450 + add r0, sp, 0xC + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _080D2454 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D245C + ldr r0, _080D2458 + b _080D246E + .align 2, 0 +_080D2438: .4byte REG_BLDCNT +_080D243C: .4byte 0x00003f42 +_080D2440: .4byte REG_BG1CNT +_080D2444: .4byte gUnknown_030042C0 +_080D2448: .4byte gUnknown_030041B4 +_080D244C: .4byte REG_BG1HOFS +_080D2450: .4byte 0x040000d4 +_080D2454: .4byte 0x85000400 +_080D2458: .4byte gBattleAnimBackgroundTilemap_ScaryFaceContest +_080D245C: + ldr r0, _080D2478 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080D2480 + ldr r0, _080D247C +_080D246E: + ldr r1, [sp, 0x4] + bl LZDecompressVram + b _080D2488 + .align 2, 0 +_080D2478: .4byte gUnknown_0202F7C9 +_080D247C: .4byte gBattleAnimBackgroundTilemap_ScaryFacePlayer +_080D2480: + ldr r0, _080D24CC + ldr r1, [sp, 0x4] + bl LZDecompressVram +_080D2488: + ldr r0, _080D24D0 + ldr r1, [sp] + bl LZDecompressVram + ldr r0, _080D24D4 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D24B6 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80763FC +_080D24B6: + ldr r0, _080D24D8 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080D24DC + str r0, [r1] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D24CC: .4byte gBattleAnimBackgroundTilemap_ScaryFaceOpponent +_080D24D0: .4byte gBattleAnimBackgroundImage_ScaryFace +_080D24D4: .4byte gBattleAnimBackgroundPalette_ScaryFace +_080D24D8: .4byte gTasks +_080D24DC: .4byte sub_80D24E0 + thumb_func_end sub_80D23B4 + + thumb_func_start sub_80D24E0 +sub_80D24E0: @ 80D24E0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080D2510 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x20 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x4 + bls _080D2506 + b _080D267C +_080D2506: + lsls r0, 2 + ldr r1, _080D2514 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D2510: .4byte gTasks +_080D2514: .4byte _080D2518 + .align 2, 0 +_080D2518: + .4byte _080D252C + .4byte _080D2574 + .4byte _080D2596 + .4byte _080D25D8 + .4byte _080D265C +_080D252C: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + movs r4, 0 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + beq _080D2546 + b _080D267C +_080D2546: + strh r4, [r3, 0x1C] + ldrh r1, [r3, 0x1E] + adds r1, 0x1 + strh r1, [r3, 0x1E] + ldr r2, _080D2570 + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0x1E + ldrsh r0, [r3, r1] + cmp r0, 0xE + beq _080D2564 + b _080D267C +_080D2564: + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + strh r4, [r3, 0x1E] + b _080D267C + .align 2, 0 +_080D2570: .4byte REG_BLDALPHA +_080D2574: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080D267C + movs r0, 0xE + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080D267C +_080D2596: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080D267C + movs r0, 0 + strh r0, [r3, 0x1C] + ldrh r1, [r3, 0x1E] + subs r1, 0x1 + strh r1, [r3, 0x1E] + ldr r2, _080D25D4 + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r2, 0x1E + ldrsh r1, [r3, r2] + cmp r1, 0 + bne _080D267C + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + strh r1, [r3, 0x1E] + b _080D267C + .align 2, 0 +_080D25D4: .4byte REG_BLDALPHA +_080D25D8: + mov r0, sp + bl sub_8078914 + ldr r2, [sp] + movs r3, 0x80 + lsls r3, 6 + lsls r0, r5, 2 + mov r10, r0 + add r6, sp, 0xC + movs r7, 0 + ldr r1, _080D268C + movs r4, 0x80 + lsls r4, 5 + mov r8, r6 + ldr r0, _080D2690 + mov r12, r0 + movs r0, 0x85 + lsls r0, 24 + mov r9, r0 +_080D25FE: + str r7, [sp, 0xC] + mov r0, r8 + str r0, [r1] + str r2, [r1, 0x4] + mov r0, r12 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080D25FE + str r7, [sp, 0xC] + str r6, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r9 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r0, _080D268C + str r6, [r0] + str r1, [r0, 0x4] + ldr r1, _080D2694 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D264C + ldr r2, _080D2698 + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080D264C: + ldr r0, _080D269C + mov r2, r10 + adds r1, r2, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] +_080D265C: + ldr r0, _080D26A0 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r2, _080D2698 + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, 0 + bl move_anim_task_del +_080D267C: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D268C: .4byte 0x040000d4 +_080D2690: .4byte 0x85000400 +_080D2694: .4byte 0x85000200 +_080D2698: .4byte REG_BG1CNT +_080D269C: .4byte gTasks +_080D26A0: .4byte REG_BLDCNT + thumb_func_end sub_80D24E0 + + thumb_func_start sub_80D26A4 +sub_80D26A4: @ 80D26A4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D26F8 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080D26FC + ldrh r0, [r1] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x30] + ldrb r0, [r5] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x3C] + ldr r1, _080D2700 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D26F8: .4byte gUnknown_0202F7C8 +_080D26FC: .4byte gUnknown_03004B00 +_080D2700: .4byte sub_80D2704 + thumb_func_end sub_80D26A4 + + thumb_func_start sub_80D2704 +sub_80D2704: @ 80D2704 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080D271A + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + b _080D271E +_080D271A: + ldrh r0, [r4, 0x3C] + subs r0, 0x1 +_080D271E: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + bl Sin + strh r0, [r4, 0x24] + movs r2, 0x30 + ldrsh r0, [r4, r2] + ldrh r1, [r4, 0x34] + lsls r1, 16 + asrs r1, 24 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x9 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + movs r3, 0x38 + ldrsh r2, [r4, r3] + cmp r2, 0 + beq _080D2790 + cmp r2, 0x1 + bne _080D27C0 + ldr r1, _080D2788 + adds r0, r1, 0 + ldrh r2, [r4, 0x32] + adds r0, r2 + strh r0, [r4, 0x32] + ldr r3, _080D278C + adds r0, r3, 0 + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x2E + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080D27C0 + movs r0, 0x2 + strh r0, [r4, 0x38] + b _080D27D0 + .align 2, 0 +_080D2788: .4byte 0xfffffc00 +_080D278C: .4byte 0xffffff00 +_080D2790: + movs r3, 0x80 + lsls r3, 3 + adds r0, r3, 0 + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + movs r3, 0x80 + lsls r3, 1 + adds r0, r3, 0 + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x2E + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _080D27C0 + strh r2, [r4, 0x36] + movs r0, 0x1 + strh r0, [r4, 0x38] +_080D27C0: + ldr r0, _080D27D8 + ldrh r1, [r0, 0xE] + ldr r0, _080D27DC + cmp r1, r0 + bne _080D27D0 + adds r0, r4, 0 + bl move_anim_8072740 +_080D27D0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D27D8: .4byte gUnknown_03004B00 +_080D27DC: .4byte 0x0000ffff + thumb_func_end sub_80D2704 + + thumb_func_start sub_80D27E0 +sub_80D27E0: @ 80D27E0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080D2828 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _080D282C + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + strh r0, [r5, 0x2E] + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x7 + bl Cos + strh r0, [r5, 0x30] + ldr r0, _080D2830 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D2828: .4byte gUnknown_0202F7C8 +_080D282C: .4byte gUnknown_03004B00 +_080D2830: .4byte sub_80D2834 + thumb_func_end sub_80D27E0 + + thumb_func_start sub_80D2834 +sub_80D2834: @ 80D2834 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x30] + ldrh r3, [r2, 0x26] + adds r0, r3 + strh r0, [r2, 0x26] + movs r1, 0x20 + ldrsh r0, [r2, r1] + movs r3, 0x24 + ldrsh r1, [r2, r3] + adds r0, r1 + adds r0, 0x10 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + bhi _080D2872 + movs r0, 0x22 + ldrsh r1, [r2, r0] + movs r3, 0x26 + ldrsh r0, [r2, r3] + adds r1, r0 + cmp r1, 0xA0 + bgt _080D2872 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080D2878 +_080D2872: + adds r0, r2, 0 + bl move_anim_8072740 +_080D2878: + pop {r0} + bx r0 + thumb_func_end sub_80D2834 + + thumb_func_start sub_80D287C +sub_80D287C: @ 80D287C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x30] + ldrh r3, [r2, 0x26] + adds r0, r3 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x34] + adds r1, r0, 0x1 + strh r1, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _080D28A8 + adds r0, r2, 0 + bl move_anim_8072740 +_080D28A8: + pop {r0} + bx r0 + thumb_func_end sub_80D287C + + thumb_func_start sub_80D28AC +sub_80D28AC: @ 80D28AC + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080D28F8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _080D28FC + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + strh r0, [r5, 0x2E] + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x7 + bl Cos + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x32] + ldr r0, _080D2900 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D28F8: .4byte gUnknown_0202F7C8 +_080D28FC: .4byte gUnknown_03004B00 +_080D2900: .4byte sub_80D287C + thumb_func_end sub_80D28AC + + thumb_func_start sub_80D2904 +sub_80D2904: @ 80D2904 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D291A + adds r0, r2, 0 + bl move_anim_8072740 +_080D291A: + pop {r0} + bx r0 + thumb_func_end sub_80D2904 + + thumb_func_start sub_80D2920 +sub_80D2920: @ 80D2920 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080D2934 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D2934: .4byte sub_80D2904 + thumb_func_end sub_80D2920 + + thumb_func_start sub_80D2938 +sub_80D2938: @ 80D2938 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D2956 + ldr r0, _080D29C8 + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_080D2956: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r2, 0x2E + ldrsh r1, [r4, r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r5, r0, 1 + movs r0, 0xFF + ands r5, r0 + adds r0, r5, 0 + movs r1, 0x50 + bl Sin + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x4F + bgt _080D299A + adds r0, r5, 0 + movs r1, 0x50 + bl Cos + movs r2, 0x2E + ldrsh r1, [r4, r2] + lsrs r2, r1, 31 + adds r1, r2 + asrs r1, 1 + lsls r0, 16 + asrs r0, 24 + adds r1, r0 + strh r1, [r4, 0x26] +_080D299A: + movs r0, 0x2E + ldrsh r2, [r4, r0] + cmp r2, 0x5A + ble _080D29B8 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + ldrh r0, [r4, 0x24] + subs r0, r1 + strh r0, [r4, 0x24] +_080D29B8: + cmp r2, 0x64 + ble _080D29C2 + adds r0, r4, 0 + bl move_anim_8072740 +_080D29C2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D29C8: .4byte gUnknown_03004B00 + thumb_func_end sub_80D2938 + + thumb_func_start sub_80D29CC +sub_80D29CC: @ 80D29CC + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r1, 0x5 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x14 + ble _080D2A22 + adds r1, r0, 0 + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080D2A22: + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x1E + ble _080D2A30 + adds r0, r4, 0 + bl move_anim_8072740 +_080D2A30: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D29CC + + thumb_func_start sub_80D2A38 +sub_80D2A38: @ 80D2A38 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D2A5C + ldr r1, _080D2A58 + ldrh r0, [r1] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x32] + adds r0, r2, 0x1 + strh r0, [r4, 0x2E] + b _080D2AB0 + .align 2, 0 +_080D2A58: .4byte gUnknown_03004B00 +_080D2A5C: + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x36] + adds r0, r2 + movs r5, 0 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + adds r2, r0, 0 + strh r2, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + cmp r0, 0x46 + ble _080D2AB0 + ldr r0, _080D2AB8 + str r0, [r4, 0x1C] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r1, [r4, 0x22] + adds r0, r2, r1 + strh r0, [r4, 0x22] + strh r5, [r4, 0x24] + strh r5, [r4, 0x26] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xB4 + bl __umodsi3 + strh r0, [r4, 0x34] +_080D2AB0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D2AB8: .4byte sub_80D29CC + thumb_func_end sub_80D2A38 + + thumb_func_start sub_80D2ABC +sub_80D2ABC: @ 80D2ABC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D2AF6 + ldr r1, _080D2BB8 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnim + ldr r0, _080D2BBC + ldrb r0, [r0] + bl sub_8079E90 + subs r0, 0x1 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + movs r0, 0x1 + strh r0, [r4, 0x32] +_080D2AF6: + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x2E] + adds r0, r2 + strh r0, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + lsls r1, r0, 2 + adds r0, r1, 0 + cmp r1, 0 + bge _080D2B0C + adds r0, 0xFF +_080D2B0C: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + strh r0, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + bge _080D2B1E + movs r0, 0 + strh r0, [r4, 0x30] +_080D2B1E: + movs r0, 0x30 + ldrsh r2, [r4, r0] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _080D2B2C + adds r0, 0x3 +_080D2B2C: + asrs r0, 2 + movs r1, 0x1E + subs r1, r0 + adds r0, r2, 0 + bl Cos + strh r0, [r4, 0x24] + movs r0, 0x30 + ldrsh r2, [r4, r0] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _080D2B48 + adds r0, 0x7 +_080D2B48: + asrs r0, 3 + movs r1, 0xA + subs r1, r0 + adds r0, r2, 0 + bl Sin + strh r0, [r4, 0x26] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0x80 + ble _080D2B6C + ldrh r1, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080D2B6C + ldr r0, _080D2BC0 + strh r0, [r4, 0x32] +_080D2B6C: + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D2B80 + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0 + bge _080D2B80 + movs r0, 0x1 + strh r0, [r4, 0x32] +_080D2B80: + ldrh r0, [r4, 0x34] + adds r1, r0, 0x1 + strh r1, [r4, 0x34] + subs r0, 0x9 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x46 + bls _080D2BC4 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080D2BD2 + .align 2, 0 +_080D2BB8: .4byte gUnknown_03004B00 +_080D2BBC: .4byte gUnknown_0202F7C9 +_080D2BC0: .4byte 0x0000ffff +_080D2BC4: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080D2BD2: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x5A + ble _080D2BE0 + adds r0, r4, 0 + bl move_anim_8072740 +_080D2BE0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D2ABC + + thumb_func_start sub_80D2BE8 +sub_80D2BE8: @ 80D2BE8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D2C1C + ldr r1, _080D2C18 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrb r1, [r1, 0x4] + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080D2C30 + .align 2, 0 +_080D2C18: .4byte gUnknown_03004B00 +_080D2C1C: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D2C30 + adds r0, r4, 0 + bl move_anim_8072740 +_080D2C30: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D2BE8 + + thumb_func_start sub_80D2C38 +sub_80D2C38: @ 80D2C38 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r1, _080D2C50 + movs r2, 0x4 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080D2C54 + adds r0, r5, 0 + bl move_anim_8072740 + b _080D2CB8 + .align 2, 0 +_080D2C50: .4byte gUnknown_03004B00 +_080D2C54: + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080D2C64 + ldr r4, _080D2C60 + b _080D2C66 + .align 2, 0 +_080D2C60: .4byte gUnknown_0202F7C8 +_080D2C64: + ldr r4, _080D2C94 +_080D2C66: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r0, _080D2C98 + movs r2, 0x2 + ldrsh r1, [r0, r2] + adds r2, r0, 0 + cmp r1, 0 + bne _080D2C9C + ldrh r0, [r5, 0x20] + adds r0, 0x20 + b _080D2CA0 + .align 2, 0 +_080D2C94: .4byte gUnknown_0202F7C9 +_080D2C98: .4byte gUnknown_03004B00 +_080D2C9C: + ldrh r0, [r5, 0x20] + subs r0, 0x20 +_080D2CA0: + strh r0, [r5, 0x20] + ldrh r0, [r2, 0x4] + strh r0, [r5, 0x2E] + ldrh r1, [r2, 0x2] + strh r1, [r5, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim + ldr r0, _080D2CC0 + str r0, [r5, 0x1C] +_080D2CB8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D2CC0: .4byte sub_80D2CC4 + thumb_func_end sub_80D2C38 + + thumb_func_start sub_80D2CC4 +sub_80D2CC4: @ 80D2CC4 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D2CF4 + ldrh r0, [r2, 0x2E] + subs r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + cmp r0, 0 + beq _080D2CEE + ldrh r1, [r2, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r2, 0 + bl StartSpriteAnim + b _080D2CF4 +_080D2CEE: + adds r0, r2, 0 + bl move_anim_8072740 +_080D2CF4: + pop {r0} + bx r0 + thumb_func_end sub_80D2CC4 + + thumb_func_start sub_80D2CF8 +sub_80D2CF8: @ 80D2CF8 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _080D2D2C + ldrb r0, [r0] + bl obj_id_for_side_relative_to_move + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, _080D2D30 + adds r4, r0 + ldr r2, _080D2D34 + adds r0, r4, 0 + bl sub_80798F4 + ldr r0, _080D2D38 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D2D2C: .4byte gUnknown_03004B00 +_080D2D30: .4byte gTasks +_080D2D34: .4byte gUnknown_083D7CA8 +_080D2D38: .4byte sub_80D2D3C + thumb_func_end sub_80D2CF8 + + thumb_func_start sub_80D2D3C +sub_80D2D3C: @ 80D2D3C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080D2D64 + adds r0, r1 + bl sub_807992C + lsls r0, 24 + cmp r0, 0 + bne _080D2D5C + adds r0, r4, 0 + bl move_anim_task_del +_080D2D5C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D2D64: .4byte gTasks + thumb_func_end sub_80D2D3C + + thumb_func_start sub_80D2D68 +sub_80D2D68: @ 80D2D68 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, _080D2D7C + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D2D84 + ldr r0, _080D2D80 + b _080D2D86 + .align 2, 0 +_080D2D7C: .4byte gUnknown_03004B00 +_080D2D80: .4byte gUnknown_0202F7C8 +_080D2D84: + ldr r0, _080D2E1C +_080D2D86: + ldrb r6, [r0] + adds r0, r6, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080D2DA0 + ldr r1, _080D2E20 + movs r2, 0x2 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x2] +_080D2DA0: + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r7, _080D2E20 + lsrs r0, 24 + ldrh r3, [r7, 0x2] + adds r0, r3 + movs r4, 0 + strh r0, [r5, 0x20] + adds r0, r6, 0 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r7, 0x4] + adds r0, r1 + strh r0, [r5, 0x22] + strh r4, [r5, 0x2E] + ldrh r1, [r5, 0x20] + lsls r1, 3 + strh r1, [r5, 0x30] + lsls r0, 3 + strh r0, [r5, 0x32] + movs r2, 0x2 + ldrsh r0, [r7, r2] + lsls r0, 3 + cmp r0, 0 + bge _080D2DE0 + adds r0, 0x7 +_080D2DE0: + asrs r0, 3 + strh r0, [r5, 0x34] + movs r3, 0x4 + ldrsh r0, [r7, r3] + lsls r0, 3 + cmp r0, 0 + bge _080D2DF0 + adds r0, 0x7 +_080D2DF0: + asrs r0, 3 + strh r0, [r5, 0x36] + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0x6 + ldrsh r0, [r7, r3] + lsls r0, 4 + adds r1, r0 + ldr r3, _080D2E24 + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D2E28 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r0, _080D2E2C + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D2E1C: .4byte gUnknown_0202F7C9 +_080D2E20: .4byte gUnknown_03004B00 +_080D2E24: .4byte 0x000003ff +_080D2E28: .4byte 0xfffffc00 +_080D2E2C: .4byte sub_80D2E30 + thumb_func_end sub_80D2D68 + + thumb_func_start sub_80D2E30 +sub_80D2E30: @ 80D2E30 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x34] + ldrh r1, [r2, 0x30] + adds r0, r1 + strh r0, [r2, 0x30] + ldrh r1, [r2, 0x36] + ldrh r3, [r2, 0x32] + adds r1, r3 + strh r1, [r2, 0x32] + lsls r0, 16 + asrs r0, 19 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 19 + strh r1, [r2, 0x22] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080D2E64 + adds r0, r2, 0 + bl move_anim_8072740 +_080D2E64: + pop {r0} + bx r0 + thumb_func_end sub_80D2E30 + + thumb_func_start sub_80D2E68 +sub_80D2E68: @ 80D2E68 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D2E8A + ldr r0, _080D2EC4 + ldrh r1, [r0] + movs r0, 0x78 + subs r0, r1 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080D2E8A: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x30 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080D2EA8 + ldrb r0, [r4, 0x5] + lsrs r0, 4 + adds r0, 0x10 + movs r1, 0 + bl sub_8079108 +_080D2EA8: + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r2, 0x30 + ldrsh r0, [r4, r2] + adds r0, 0x50 + cmp r1, r0 + bne _080D2EBC + adds r0, r4, 0 + bl move_anim_8072740 +_080D2EBC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D2EC4: .4byte gUnknown_03004B00 + thumb_func_end sub_80D2E68 + + thumb_func_start sub_80D2EC8 +sub_80D2EC8: @ 80D2EC8 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x2E + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080D2EF6 + movs r5, 0x78 + strh r5, [r6, 0x20] + ldr r4, _080D2F78 + movs r2, 0 + ldrsh r0, [r4, r2] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + subs r0, 0xF + strh r0, [r6, 0x22] + ldrb r1, [r4, 0x2] + adds r0, r6, 0 + bl StartSpriteAnim + strh r5, [r6, 0x38] + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x34] +_080D2EF6: + ldrh r0, [r6, 0x2E] + adds r0, 0x1 + movs r5, 0 + strh r0, [r6, 0x2E] + movs r1, 0x2E + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r6, 0x30] + movs r2, 0x2E + ldrsh r0, [r6, r2] + lsls r4, r0, 1 + adds r4, r0 + ldrh r0, [r6, 0x34] + adds r4, r0 + movs r2, 0xFF + ldrh r0, [r6, 0x3A] + adds r0, 0xA + movs r1, 0xFF + ands r0, r1 + strh r0, [r6, 0x3A] + ands r4, r2 + adds r0, r4, 0 + movs r1, 0x64 + bl Cos + strh r0, [r6, 0x24] + adds r0, r4, 0 + movs r1, 0xA + bl Sin + adds r4, r0, 0 + movs r1, 0x3A + ldrsh r0, [r6, r1] + movs r1, 0x4 + bl Cos + ldrh r2, [r6, 0x30] + adds r4, r2 + adds r0, r4 + strh r0, [r6, 0x26] + movs r0, 0x2E + ldrsh r1, [r6, r0] + movs r2, 0x38 + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _080D2F72 + ldr r0, _080D2F7C + str r0, [r6, 0x1C] + strh r5, [r6, 0x2E] + adds r0, r6, 0 + bl oamt_add_pos2_onto_pos1 + movs r0, 0x5 + strh r0, [r6, 0x32] + strh r5, [r6, 0x36] + strh r5, [r6, 0x34] + adds r0, r6, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080D2F72: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D2F78: .4byte gUnknown_03004B00 +_080D2F7C: .4byte sub_80D2F80 + thumb_func_end sub_80D2EC8 + + thumb_func_start sub_80D2F80 +sub_80D2F80: @ 80D2F80 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + ble _080D2F9A + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, _080D2FA0 + str r0, [r1, 0x1C] +_080D2F9A: + pop {r0} + bx r0 + .align 2, 0 +_080D2FA0: .4byte sub_80D2FA4 + thumb_func_end sub_80D2F80 + + thumb_func_start sub_80D2FA4 +sub_80D2FA4: @ 80D2FA4 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x32] + ldrh r2, [r4, 0x34] + adds r0, r1, r2 + strh r0, [r4, 0x34] + strh r0, [r4, 0x26] + adds r1, 0x1 + strh r1, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x30 + ble _080D2FCE + lsls r0, r1, 16 + cmp r0, 0 + ble _080D2FCE + ldrh r0, [r4, 0x36] + subs r1, r0, 0x5 + strh r1, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x36] +_080D2FCE: + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0x3 + ble _080D3000 + movs r2, 0x32 + ldrsh r1, [r4, r2] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, 0 + bl move_anim_8072740 +_080D3000: + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bne _080D300E + adds r0, r4, 0 + bl move_anim_8072740 +_080D300E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D2FA4 + + thumb_func_start sub_80D3014 +sub_80D3014: @ 80D3014 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080D3058 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D3060 + ldr r4, _080D305C + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080D3060 + ldrb r0, [r4] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_807A3FC + ldrh r0, [r5, 0x22] + adds r0, 0x28 + strh r0, [r5, 0x22] + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _080D3080 + .align 2, 0 +_080D3058: .4byte gUnknown_020239F8 +_080D305C: .4byte gUnknown_0202F7C8 +_080D3060: + ldr r4, _080D30A0 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x28 + strh r0, [r5, 0x22] +_080D3080: + movs r0, 0xD + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + subs r0, 0x48 + strh r0, [r5, 0x36] + ldr r0, _080D30A4 + str r0, [r5, 0x1C] + ldr r1, _080D30A8 + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D30A0: .4byte gUnknown_0202F7C8 +_080D30A4: .4byte sub_8078B34 +_080D30A8: .4byte move_anim_8072740 + thumb_func_end sub_80D3014 + + thumb_func_start sub_80D30AC +sub_80D30AC: @ 80D30AC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080D30C8 + ldr r1, _080D30CC + ldr r1, [r1] + ldrb r2, [r1, 0x10] + movs r1, 0x1 + ands r1, r2 + strh r1, [r3, 0xE] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080D30C8: .4byte gUnknown_03004B00 +_080D30CC: .4byte gUnknown_0202F7B4 + thumb_func_end sub_80D30AC + + thumb_func_start update_fury_cutter_counter_copy +update_fury_cutter_counter_copy: @ 80D30D0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080D30E8 + ldr r1, _080D30EC + ldr r1, [r1] + ldrb r1, [r1, 0x10] + strh r1, [r2, 0xE] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080D30E8: .4byte gUnknown_03004B00 +_080D30EC: .4byte gUnknown_0202F7B4 + thumb_func_end update_fury_cutter_counter_copy + + thumb_func_start sub_80D30F0 +sub_80D30F0: @ 80D30F0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080D3178 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D3118 + ldr r1, _080D317C + ldrh r0, [r1] + strh r0, [r5, 0xA] + ldrh r0, [r1, 0x2] + strh r0, [r5, 0xC] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0xE] +_080D3118: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r2, 0x8 + ldrsh r0, [r5, r2] + movs r2, 0xC + ldrsh r1, [r5, r2] + bl __modsi3 + cmp r0, 0x1 + bne _080D3160 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF0 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x50 + bl __umodsi3 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + ldr r0, _080D3180 + adds r1, r4, 0 + movs r3, 0x4 + bl CreateSprite +_080D3160: + movs r0, 0x8 + ldrsh r1, [r5, r0] + movs r2, 0xE + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _080D3172 + adds r0, r6, 0 + bl move_anim_task_del +_080D3172: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D3178: .4byte gTasks +_080D317C: .4byte gUnknown_03004B00 +_080D3180: .4byte gSpriteTemplate_83D9130 + thumb_func_end sub_80D30F0 + + thumb_func_start sub_80D3184 +sub_80D3184: @ 80D3184 + ldr r1, _080D318C + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080D318C: .4byte sub_80D3190 + thumb_func_end sub_80D3184 + + thumb_func_start sub_80D3190 +sub_80D3190: @ 80D3190 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xD + bgt _080D31AE + ldrh r0, [r2, 0x24] + adds r0, 0x1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x26] + adds r0, 0x4 + strh r0, [r2, 0x26] +_080D31AE: + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D31C2 + adds r0, r2, 0 + bl DestroySprite +_080D31C2: + pop {r0} + bx r0 + thumb_func_end sub_80D3190 + + thumb_func_start sub_80D31C8 +sub_80D31C8: @ 80D31C8 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r5, _080D31F0 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D31F8 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldr r4, _080D31F4 + ldrh r1, [r4] + subs r0, r1 + b _080D320A + .align 2, 0 +_080D31F0: .4byte gUnknown_0202F7C8 +_080D31F4: .4byte gUnknown_03004B00 +_080D31F8: + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080D32D0 + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 +_080D320A: + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 + strh r0, [r6, 0x22] + adds r2, r6, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080D32D4 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D3240 + ldr r1, _080D32D0 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080D3240: + ldr r5, _080D32D0 + ldrh r0, [r5, 0xC] + strh r0, [r6, 0x2E] + ldrh r0, [r6, 0x20] + strh r0, [r6, 0x30] + ldr r4, _080D32D8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x32] + ldrh r0, [r6, 0x22] + strh r0, [r6, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x36] + adds r0, r6, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080D32DC + bl object_new_hidden_with_callback + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + strh r4, [r6, 0x38] + ldrb r0, [r5, 0x8] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl Sin + ldrh r1, [r6, 0x20] + subs r1, r0 + strh r1, [r6, 0x20] + ldrb r0, [r5, 0x8] + movs r2, 0x6 + ldrsh r1, [r5, r2] + bl Cos + ldrh r1, [r6, 0x22] + subs r1, r0 + strh r1, [r6, 0x22] + ldr r0, _080D32E0 + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r5, 0x4] + strh r0, [r1, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r1, 0x30] + ldrh r0, [r5, 0xA] + strh r0, [r1, 0x32] + ldrb r0, [r5, 0x8] + lsls r0, 8 + strh r0, [r1, 0x34] + ldrh r0, [r5, 0xC] + strh r0, [r1, 0x36] + ldr r1, _080D32E4 + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D32D0: .4byte gUnknown_03004B00 +_080D32D4: .4byte gUnknown_0202F7C8 +_080D32D8: .4byte gUnknown_0202F7C9 +_080D32DC: .4byte SpriteCallbackDummy +_080D32E0: .4byte gSprites +_080D32E4: .4byte sub_80D32E8 + thumb_func_end sub_80D31C8 + + thumb_func_start sub_80D32E8 +sub_80D32E8: @ 80D32E8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r1, [r5, 0x38] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080D3350 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r7, r0, r2 + ldrh r4, [r7, 0x36] + lsls r4, 24 + lsrs r4, 24 + ldrh r0, [r7, 0x34] + mov r8, r0 + movs r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r5, 0 + bl sub_8078B5C + mov r1, r8 + lsrs r6, r1, 8 + movs r0, 0x2E + ldrsh r1, [r7, r0] + adds r0, r6, 0 + bl Sin + ldrh r1, [r5, 0x24] + adds r0, r1 + strh r0, [r5, 0x24] + movs r0, 0x30 + ldrsh r1, [r7, r0] + adds r0, r6, 0 + bl Cos + ldrh r1, [r5, 0x26] + adds r0, r1 + strh r0, [r5, 0x26] + ldrh r0, [r7, 0x32] + mov r1, r8 + adds r1, r0 + strh r1, [r7, 0x34] + subs r4, 0x1 + lsls r4, 24 + lsrs r4, 24 + cmp r4, 0 + beq _080D3354 + strh r4, [r7, 0x36] + b _080D335E + .align 2, 0 +_080D3350: .4byte gSprites +_080D3354: + ldr r0, _080D336C + str r0, [r5, 0x1C] + adds r0, r7, 0 + bl DestroySprite +_080D335E: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D336C: .4byte sub_80D3370 + thumb_func_end sub_80D32E8 + + thumb_func_start sub_80D3370 +sub_80D3370: @ 80D3370 + push {lr} + adds r3, r0, 0 + adds r3, 0x2C + ldrb r2, [r3] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + strb r1, [r3] + ldr r1, _080D3390 + str r1, [r0, 0x1C] + ldr r1, _080D3394 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080D3390: .4byte sub_8078600 +_080D3394: .4byte sub_80D3398 + thumb_func_end sub_80D3370 + + thumb_func_start sub_80D3398 +sub_80D3398: @ 80D3398 + push {lr} + movs r1, 0xA + strh r1, [r0, 0x2E] + ldr r1, _080D33AC + str r1, [r0, 0x1C] + ldr r1, _080D33B0 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080D33AC: .4byte sub_80782D8 +_080D33B0: .4byte move_anim_8074EE0 + thumb_func_end sub_80D3398 + + thumb_func_start sub_80D33B4 +sub_80D33B4: @ 80D33B4 + push {r4-r7,lr} + adds r5, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080D33DC + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D33E4 + ldr r1, _080D33E0 + ldrh r0, [r1, 0x4] + negs r0, r0 + lsls r0, 16 + lsrs r6, r0, 16 + adds r7, r1, 0 + b _080D33EA + .align 2, 0 +_080D33DC: .4byte gUnknown_0202F7C8 +_080D33E0: .4byte gUnknown_03004B00 +_080D33E4: + ldr r0, _080D3440 + ldrh r6, [r0, 0x4] + adds r7, r0, 0 +_080D33EA: + ldrh r0, [r7, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080D3444 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r7, [r7, 0x6] + adds r0, r7 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080D3448 + str r0, [r5, 0x1C] + adds r2, r5, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D3440: .4byte gUnknown_03004B00 +_080D3444: .4byte gUnknown_0202F7C9 +_080D3448: .4byte sub_80D344C + thumb_func_end sub_80D33B4 + + thumb_func_start sub_80D344C +sub_80D344C: @ 80D344C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D3488 + ldrh r1, [r0, 0xE] + ldr r0, _080D348C + cmp r1, r0 + bne _080D346E + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] +_080D346E: + adds r0, r4, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080D3480 + adds r0, r4, 0 + bl move_anim_8072740 +_080D3480: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D3488: .4byte gUnknown_03004B00 +_080D348C: .4byte 0x0000ffff + thumb_func_end sub_80D344C + + thumb_func_start sub_80D3490 +sub_80D3490: @ 80D3490 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080D34C4 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r0, _080D34C8 + ldrh r0, [r0] + strh r0, [r4, 0x8] + ldr r0, _080D34CC + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r4, 0xC] + ldr r0, _080D34D0 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D34C4: .4byte gTasks +_080D34C8: .4byte gUnknown_03004B00 +_080D34CC: .4byte 0x0000279c +_080D34D0: .4byte sub_80D34D4 + thumb_func_end sub_80D3490 + + thumb_func_start sub_80D34D4 +sub_80D34D4: @ 80D34D4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080D354C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x1C] + adds r0, 0x1 + strh r0, [r2, 0x1C] + lsls r0, 16 + asrs r0, 16 + mov r12, r1 + cmp r0, 0x3 + bne _080D3526 + movs r0, 0 + strh r0, [r2, 0x1C] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, _080D3550 + lsls r0, r5, 1 + adds r0, r1 + ldrh r6, [r0] + adds r7, r1, 0 + adds r3, r0, 0x2 + movs r1, 0x6 + adds r2, r0, 0 +_080D3510: + ldrh r0, [r3] + strh r0, [r2] + adds r3, 0x2 + adds r2, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _080D3510 + adds r0, r5, 0x7 + lsls r0, 1 + adds r0, r7 + strh r6, [r0] +_080D3526: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + add r0, r12 + ldrh r1, [r0, 0x1E] + adds r1, 0x1 + strh r1, [r0, 0x1E] + lsls r1, 16 + asrs r1, 16 + movs r2, 0x8 + ldrsh r0, [r0, r2] + cmp r1, r0 + bne _080D3546 + adds r0, r4, 0 + bl move_anim_task_del +_080D3546: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D354C: .4byte gTasks +_080D3550: .4byte gPlttBufferFaded + thumb_func_end sub_80D34D4 + + thumb_func_start sub_80D3554 +sub_80D3554: @ 80D3554 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + movs r0, 0x1E + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080D35BC + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x2E + ldrsh r1, [r5, r0] + movs r0, 0xD2 + lsls r0, 8 + bl __divsi3 + strh r0, [r5, 0x38] + ldr r0, _080D35C0 + ldrh r2, [r0, 0x6] + strh r2, [r5, 0x3C] + ldrh r1, [r0, 0xE] + movs r3, 0xE + ldrsh r0, [r0, r3] + cmp r0, 0x7F + ble _080D35C4 + adds r0, r1, 0 + subs r0, 0x7F + lsls r0, 8 + strh r0, [r5, 0x3A] + negs r0, r2 + strh r0, [r5, 0x3C] + b _080D35C8 + .align 2, 0 +_080D35BC: .4byte gUnknown_0202F7C9 +_080D35C0: .4byte gUnknown_03004B00 +_080D35C4: + lsls r0, r1, 8 + strh r0, [r5, 0x3A] +_080D35C8: + ldr r1, _080D35D8 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D35D8: .4byte sub_80D35DC + thumb_func_end sub_80D3554 + + thumb_func_start sub_80D35DC +sub_80D35DC: @ 80D35DC + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080D35F0 + adds r0, r4, 0 + bl move_anim_8072740 +_080D35F0: + ldrh r0, [r4, 0x3A] + lsls r0, 16 + asrs r0, 24 + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + movs r2, 0x3A + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + adds r0, r1 + asrs r0, 8 + cmp r0, 0x7F + ble _080D3620 + movs r0, 0 + strh r0, [r4, 0x3A] + ldrh r0, [r4, 0x3C] + negs r0, r0 + strh r0, [r4, 0x3C] + b _080D3628 +_080D3620: + ldrh r0, [r4, 0x38] + ldrh r1, [r4, 0x3A] + adds r0, r1 + strh r0, [r4, 0x3A] +_080D3628: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D35DC + + thumb_func_start sub_80D3630 +sub_80D3630: @ 80D3630 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080D3650 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080D3654 + ldrh r0, [r3] + movs r2, 0 + strh r0, [r1, 0x8] + strh r2, [r3, 0xE] + ldr r0, _080D3658 + str r0, [r1] + bx lr + .align 2, 0 +_080D3650: .4byte gTasks +_080D3654: .4byte gUnknown_03004B00 +_080D3658: .4byte sub_80D365C + thumb_func_end sub_80D3630 + + thumb_func_start sub_80D365C +sub_80D365C: @ 80D365C + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080D3690 + ldrh r0, [r2, 0xE] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r2, 0xE] + ldr r1, _080D3694 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + subs r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + cmp r1, 0 + bne _080D368A + adds r0, r3, 0 + bl move_anim_task_del +_080D368A: + pop {r0} + bx r0 + .align 2, 0 +_080D3690: .4byte gUnknown_03004B00 +_080D3694: .4byte gTasks + thumb_func_end sub_80D365C + + thumb_func_start sub_80D3698 +sub_80D3698: @ 80D3698 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r7, _080D36E4 + ldrb r0, [r7] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r7] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r6, _080D36E8 + strh r6, [r4, 0x26] + ldrb r0, [r7] + bl sub_8079E90 + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D36F2 + ldrb r0, [r7] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D36EC + movs r0, 0xA + strh r0, [r4, 0x24] + b _080D36F4 + .align 2, 0 +_080D36E4: .4byte gUnknown_0202F7C8 +_080D36E8: .4byte 0x0000fff6 +_080D36EC: + strh r6, [r4, 0x24] + subs r0, r5, 0x2 + b _080D36F6 +_080D36F2: + strh r6, [r4, 0x24] +_080D36F4: + adds r0, r5, 0x2 +_080D36F6: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldr r0, _080D3708 + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D3708: .4byte sub_80D370C + thumb_func_end sub_80D3698 + + thumb_func_start sub_80D370C +sub_80D370C: @ 80D370C + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080D3722 + adds r0, r2, 0 + bl move_anim_8072740 +_080D3722: + pop {r0} + bx r0 + thumb_func_end sub_80D370C + + thumb_func_start sub_80D3728 +sub_80D3728: @ 80D3728 + push {r4-r7,lr} + adds r6, r0, 0 + ldr r5, _080D37E8 + ldrb r0, [r5] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r0, _080D37EC + ldrb r0, [r0] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080D3772 + ldr r4, _080D37F0 + movs r1, 0 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4] + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + cmp r0, 0 + beq _080D376A + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080D3772 +_080D376A: + movs r1, 0 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4] +_080D3772: + ldr r5, _080D37F0 + movs r1, 0xA + ldrsh r0, [r5, r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0 + cmp r0, 0 + bne _080D3786 + movs r1, 0x1 +_080D3786: + ldrb r0, [r5, 0xA] + movs r7, 0x1 + cmp r0, 0 + bne _080D3790 + movs r7, 0x3 +_080D3790: + adds r0, r6, 0 + bl sub_80787B0 + ldr r0, _080D37E8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D37AA + ldrh r0, [r5, 0x4] + negs r0, r0 + strh r0, [r5, 0x4] +_080D37AA: + ldrh r0, [r5, 0x8] + strh r0, [r6, 0x2E] + ldr r4, _080D37EC + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r5, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r4] + adds r1, r7, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x6] + adds r0, r5 + strh r0, [r6, 0x36] + ldr r0, _080D37F4 + str r0, [r6, 0x1C] + ldr r1, _080D37F8 + adds r0, r6, 0 + bl oamt_set_x3A_32 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D37E8: .4byte gUnknown_0202F7C8 +_080D37EC: .4byte gUnknown_0202F7C9 +_080D37F0: .4byte gUnknown_03004B00 +_080D37F4: .4byte sub_8078B34 +_080D37F8: .4byte move_anim_8072740 + thumb_func_end sub_80D3728 + + thumb_func_start sub_80D37FC +sub_80D37FC: @ 80D37FC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r0, _080D382C + ldrh r1, [r0, 0x8] + strh r1, [r4, 0x2E] + ldrh r0, [r0, 0x4] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + adds r1, r0 + strh r1, [r4, 0x36] + ldr r0, _080D3830 + str r0, [r4, 0x1C] + ldr r1, _080D3834 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D382C: .4byte gUnknown_03004B00 +_080D3830: .4byte sub_8078B34 +_080D3834: .4byte move_anim_8072740 + thumb_func_end sub_80D37FC + + thumb_func_start sub_80D3838 +sub_80D3838: @ 80D3838 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D3850 + movs r1, 0x6 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080D3854 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078764 + b _080D385C + .align 2, 0 +_080D3850: .4byte gUnknown_03004B00 +_080D3854: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80787B0 +_080D385C: + ldr r0, _080D386C + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x3C] + ldr r0, _080D3870 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D386C: .4byte gUnknown_03004B00 +_080D3870: .4byte sub_80D3874 + thumb_func_end sub_80D3838 + + thumb_func_start sub_80D3874 +sub_80D3874: @ 80D3874 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0xB + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x30 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + subs r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080D38B4 + adds r0, r4, 0 + bl move_anim_8072740 +_080D38B4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D3874 + + thumb_func_start sub_80D38BC +sub_80D38BC: @ 80D38BC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r1, _080D398C + ldr r2, _080D3990 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0x80 + lsls r3, 5 + adds r0, r3, 0 + strh r0, [r1] + ldr r2, _080D3994 + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2, 0x1] + mov r0, sp + bl sub_8078914 + ldr r2, [sp] + movs r3, 0x80 + lsls r3, 6 + add r6, sp, 0x10 + add r0, sp, 0xC + mov r12, r0 + movs r5, 0 + ldr r1, _080D3998 + movs r4, 0x80 + lsls r4, 5 + mov r8, r6 + ldr r7, _080D399C + movs r0, 0x85 + lsls r0, 24 + mov r9, r0 +_080D3920: + str r5, [sp, 0x10] + mov r0, r8 + str r0, [r1] + str r2, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080D3920 + str r5, [sp, 0x10] + str r6, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r9 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0 + mov r3, r12 + strb r0, [r3] + strb r0, [r3] + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x10] + ldr r0, _080D3998 + str r6, [r0] + str r1, [r0, 0x4] + ldr r1, _080D399C + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D39B8 + ldr r2, _080D3994 + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080D39A0 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080D39A8 + ldr r0, _080D39A4 + b _080D39AA + .align 2, 0 +_080D398C: .4byte REG_BLDCNT +_080D3990: .4byte 0x00003f42 +_080D3994: .4byte REG_BG1CNT +_080D3998: .4byte 0x040000d4 +_080D399C: .4byte 0x85000400 +_080D39A0: .4byte gUnknown_0202F7C8 +_080D39A4: .4byte gUnknown_08E70968 +_080D39A8: + ldr r0, _080D39B4 +_080D39AA: + ldr r1, [sp, 0x4] + bl LZDecompressVram + b _080D39CE + .align 2, 0 +_080D39B4: .4byte gUnknown_08E70C38 +_080D39B8: + ldr r0, _080D39F0 + ldr r1, [sp, 0x4] + bl LZDecompressVram + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0x1 + bl sub_80763FC +_080D39CE: + ldr r0, _080D39F4 + ldr r1, [sp] + bl LZDecompressVram + ldr r0, _080D39F8 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D3A00 + ldr r0, _080D39FC + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + b _080D3A0E + .align 2, 0 +_080D39F0: .4byte gUnknown_08E70F0C +_080D39F4: .4byte gBattleAnimBackgroundImage_Surf +_080D39F8: .4byte gUnknown_03004B00 +_080D39FC: .4byte gBattleAnimBackgroundPalette_Surf +_080D3A00: + ldr r0, _080D3A78 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette +_080D3A0E: + ldr r0, _080D3A7C + ldr r4, _080D3A80 + mov r2, r10 + lsls r5, r2, 2 + adds r1, r5, r2 + lsls r1, 3 + adds r6, r1, r4 + ldrb r1, [r6, 0x7] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r3, 0 + mov r9, r3 + mov r0, r8 + strh r0, [r6, 0x26] + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + adds r7, r0, r4 + mov r2, r9 + strh r2, [r7, 0x8] + movs r0, 0x80 + lsls r0, 5 + strh r0, [r7, 0xA] + strh r0, [r7, 0xC] + bl sub_8076BE0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080D3A94 + ldr r3, _080D3A84 + adds r0, r3, 0 + ldr r1, _080D3A88 + strh r0, [r1] + ldr r2, _080D3A8C + adds r0, r2, 0 + ldr r3, _080D3A90 + strh r0, [r3] + movs r0, 0x2 + strh r0, [r6, 0x8] + movs r0, 0x1 + strh r0, [r6, 0xA] + mov r0, r9 + strh r0, [r7, 0xE] + b _080D3AEE + .align 2, 0 +_080D3A78: .4byte gBattleAnimBackgroundImageMuddyWater_Pal +_080D3A7C: .4byte sub_80D3D68 +_080D3A80: .4byte gTasks +_080D3A84: .4byte 0x0000ffb0 +_080D3A88: .4byte gUnknown_030042C0 +_080D3A8C: .4byte 0x0000ffd0 +_080D3A90: .4byte gUnknown_030041B4 +_080D3A94: + ldr r0, _080D3AC4 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + bne _080D3AD8 + ldr r2, _080D3AC8 + adds r0, r2, 0 + ldr r3, _080D3ACC + strh r0, [r3] + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + ldr r3, _080D3AD0 + strh r0, [r3] + movs r0, 0x2 + strh r0, [r6, 0x8] + ldr r0, _080D3AD4 + strh r0, [r6, 0xA] + strh r1, [r7, 0xE] + b _080D3AEE + .align 2, 0 +_080D3AC4: .4byte gUnknown_0202F7C8 +_080D3AC8: .4byte 0x0000ff20 +_080D3ACC: .4byte gUnknown_030042C0 +_080D3AD0: .4byte gUnknown_030041B4 +_080D3AD4: .4byte 0x0000ffff +_080D3AD8: + ldr r0, _080D3B1C + strh r4, [r0] + ldr r1, _080D3B20 + adds r0, r1, 0 + ldr r2, _080D3B24 + strh r0, [r2] + ldr r0, _080D3B28 + strh r0, [r6, 0x8] + movs r0, 0x1 + strh r0, [r6, 0xA] + strh r4, [r7, 0xE] +_080D3AEE: + ldr r1, _080D3B2C + ldr r3, _080D3B1C + ldrh r0, [r3] + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080D3B24 + ldrh r0, [r2] + strh r0, [r1] + ldr r1, _080D3B30 + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0xE + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080D3B34 + movs r0, 0x30 + strh r0, [r2, 0x10] + movs r0, 0x70 + b _080D3B38 + .align 2, 0 +_080D3B1C: .4byte gUnknown_030042C0 +_080D3B20: .4byte 0x0000ffd0 +_080D3B24: .4byte gUnknown_030041B4 +_080D3B28: .4byte 0x0000fffe +_080D3B2C: .4byte REG_BG1HOFS +_080D3B30: .4byte gTasks +_080D3B34: + movs r0, 0 + strh r0, [r2, 0x10] +_080D3B38: + strh r0, [r2, 0x12] + mov r2, r10 + adds r0, r5, r2 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0, 0x14] + ldr r1, _080D3B5C + str r1, [r0] + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D3B5C: .4byte sub_80D3B60 + thumb_func_end sub_80D38BC + + thumb_func_start sub_80D3B60 +sub_80D3B60: @ 80D3B60 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _080D3D44 + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r0 + ldrh r0, [r4, 0x8] + ldr r1, _080D3D48 + ldrh r1, [r1] + adds r0, r1 + ldr r2, _080D3D48 + strh r0, [r2] + ldrh r0, [r4, 0xA] + ldr r3, _080D3D4C + ldrh r3, [r3] + adds r0, r3 + ldr r1, _080D3D4C + strh r0, [r1] + add r5, sp, 0x4 + adds r0, r5, 0 + bl sub_8078914 + ldrh r0, [r4, 0xA] + ldrh r2, [r4, 0xC] + adds r0, r2 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + mov r10, r5 + cmp r0, 0x4 + bne _080D3C02 + ldr r1, _080D3D50 + ldrb r0, [r5, 0x8] + lsls r0, 4 + adds r0, 0x7 + lsls r0, 1 + adds r0, r1 + ldrh r6, [r0] + movs r2, 0x6 + adds r5, r1, 0 + adds r3, r5, 0 + mov r4, r10 +_080D3BC8: + ldrb r0, [r4, 0x8] + lsls r0, 4 + adds r1, r2, 0x1 + adds r0, r1 + lsls r1, r0, 1 + adds r1, r3 + subs r0, 0x1 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r1] + subs r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080D3BC8 + mov r3, r10 + ldrb r0, [r3, 0x8] + lsls r0, 4 + adds r0, 0x1 + lsls r0, 1 + adds r0, r5 + strh r6, [r0] + ldr r1, _080D3D44 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x12] +_080D3C02: + ldr r1, _080D3D44 + lsls r2, r7, 2 + adds r0, r2, r7 + lsls r0, 3 + adds r3, r0, r1 + ldrh r0, [r3, 0x14] + adds r0, 0x1 + strh r0, [r3, 0x14] + lsls r0, 16 + asrs r0, 16 + adds r4, r1, 0 + str r2, [sp, 0x14] + cmp r0, 0x1 + ble _080D3C70 + movs r0, 0 + strh r0, [r3, 0x14] + ldrh r0, [r3, 0xE] + adds r2, r0, 0x1 + strh r2, [r3, 0xE] + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0xD + bgt _080D3C4C + movs r1, 0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + movs r0, 0x10 + subs r0, r2 + lsls r0, 8 + orrs r2, r0 + strh r2, [r1, 0xA] + ldrh r0, [r3, 0x10] + adds r0, 0x1 + strh r0, [r3, 0x10] +_080D3C4C: + movs r2, 0xE + ldrsh r0, [r3, r2] + cmp r0, 0x36 + ble _080D3C70 + ldrh r2, [r3, 0x10] + subs r2, 0x1 + strh r2, [r3, 0x10] + movs r1, 0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + movs r0, 0x10 + subs r0, r2 + lsls r0, 8 + orrs r2, r0 + strh r2, [r1, 0xA] +_080D3C70: + ldr r2, [sp, 0x14] + adds r0, r2, r7 + lsls r0, 3 + adds r0, r4 + movs r3, 0x26 + ldrsh r1, [r0, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldrh r1, [r0, 0xA] + movs r0, 0x1F + ands r0, r1 + cmp r0, 0 + bne _080D3D32 + ldr r2, [sp, 0x4] + movs r3, 0x80 + lsls r3, 6 + add r6, sp, 0x10 + movs r5, 0 + ldr r1, _080D3D54 + movs r4, 0x80 + lsls r4, 5 + mov r8, r6 + ldr r0, _080D3D58 + mov r12, r0 + movs r0, 0x85 + lsls r0, 24 + mov r9, r0 +_080D3CAA: + str r5, [sp, 0x10] + mov r0, r8 + str r0, [r1] + str r2, [r1, 0x4] + mov r0, r12 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080D3CAA + str r5, [sp, 0x10] + str r6, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r9 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r0, sp + movs r1, 0 + strb r1, [r0] + strb r1, [r0] + mov r3, r10 + ldr r1, [r3, 0x4] + movs r4, 0 + str r4, [sp, 0x10] + ldr r0, _080D3D54 + str r6, [r0] + str r1, [r0, 0x4] + ldr r1, _080D3D58 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D3D02 + ldr r2, _080D3D5C + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080D3D02: + ldr r0, _080D3D48 + strh r4, [r0] + ldr r1, _080D3D4C + strh r4, [r1] + ldr r0, _080D3D60 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + ldr r2, _080D3D44 + ldr r3, [sp, 0x14] + adds r0, r3, r7 + lsls r0, 3 + adds r0, r2 + movs r3, 0x26 + ldrsh r1, [r0, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _080D3D64 + strh r1, [r0, 0x26] + adds r0, r7, 0 + bl move_anim_task_del +_080D3D32: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D3D44: .4byte gTasks +_080D3D48: .4byte gUnknown_030042C0 +_080D3D4C: .4byte gUnknown_030041B4 +_080D3D50: .4byte gPlttBufferFaded +_080D3D54: .4byte 0x040000d4 +_080D3D58: .4byte 0x85000400 +_080D3D5C: .4byte REG_BG1CNT +_080D3D60: .4byte REG_BLDCNT +_080D3D64: .4byte 0x0000ffff + thumb_func_end sub_80D3B60 + + thumb_func_start sub_80D3D68 +sub_80D3D68: @ 80D3D68 + push {r4-r7,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _080D3D90 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080D3D84 + b _080D3EBC +_080D3D84: + cmp r0, 0x1 + bgt _080D3D94 + cmp r0, 0 + beq _080D3D9C + b _080D4032 + .align 2, 0 +_080D3D90: .4byte gTasks +_080D3D94: + cmp r0, 0x2 + bne _080D3D9A + b _080D3F88 +_080D3D9A: + b _080D4032 +_080D3D9C: + movs r3, 0 + movs r2, 0x10 + ldrsh r0, [r4, r2] + ldr r1, _080D3E6C + mov r12, r1 + cmp r3, r0 + bge _080D3DDA + mov r7, r12 + movs r5, 0xF0 + lsls r5, 3 + add r5, r12 + ldr r6, _080D3E70 +_080D3DB4: + lsls r2, r3, 16 + asrs r2, 16 + lsls r1, r2, 1 + adds r3, r1, r7 + adds r1, r5 + ldrh r0, [r4, 0xC] + strh r0, [r1] + ldrh r1, [r4, 0xC] + adds r0, r6, 0 + ands r0, r1 + strh r0, [r3] + adds r2, 0x1 + lsls r2, 16 + lsrs r3, r2, 16 + asrs r2, 16 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r2, r0 + blt _080D3DB4 +_080D3DDA: + ldrh r3, [r4, 0x10] + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080D3E14 + ldr r5, _080D3E6C + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 + ldr r7, _080D3E70 +_080D3DF2: + asrs r2, 16 + lsls r1, r2, 1 + adds r3, r1, r5 + adds r1, r6 + ldrh r0, [r4, 0xA] + strh r0, [r1] + ldrh r1, [r4, 0xA] + adds r0, r7, 0 + ands r0, r1 + strh r0, [r3] + adds r2, 0x1 + lsls r2, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _080D3DF2 +_080D3E14: + ldrh r3, [r4, 0x12] + lsls r2, r3, 16 + asrs r0, r2, 16 + cmp r0, 0x9F + bgt _080D3E4A + ldr r5, _080D3E6C + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 + ldr r7, _080D3E70 +_080D3E28: + asrs r2, 16 + lsls r1, r2, 1 + adds r3, r1, r5 + adds r1, r6 + ldrh r0, [r4, 0xC] + strh r0, [r1] + ldrh r1, [r4, 0xC] + adds r0, r7, 0 + ands r0, r1 + strh r0, [r3] + adds r2, 0x1 + lsls r2, 16 + lsrs r3, r2, 16 + lsls r2, r3, 16 + asrs r0, r2, 16 + cmp r0, 0x9F + ble _080D3E28 +_080D3E4A: + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D3E74 + lsls r0, r3, 16 + asrs r0, 15 + mov r3, r12 + adds r2, r0, r3 + movs r1, 0xF0 + lsls r1, 3 + add r1, r12 + adds r0, r1 + ldrh r1, [r4, 0xA] + strh r1, [r0] + ldrh r0, [r4, 0xA] + b _080D3E8A + .align 2, 0 +_080D3E6C: .4byte gUnknown_03004DE0 +_080D3E70: .4byte 0x0000ffff +_080D3E74: + lsls r0, r3, 16 + asrs r0, 15 + mov r1, r12 + adds r2, r0, r1 + movs r1, 0xF0 + lsls r1, 3 + add r1, r12 + adds r0, r1 + ldrh r1, [r4, 0xC] + strh r1, [r0] + ldrh r0, [r4, 0xC] +_080D3E8A: + strh r0, [r2] + ldr r0, _080D3EB4 + str r0, [sp] + ldr r0, _080D3EB8 + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80895F8 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D4032 + .align 2, 0 +_080D3EB4: .4byte REG_BLDALPHA +_080D3EB8: .4byte 0xa2600001 +_080D3EBC: + movs r2, 0xE + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _080D3ED4 + ldrh r0, [r4, 0x10] + subs r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bgt _080D3EE8 + strh r1, [r4, 0x10] + b _080D3EE2 +_080D3ED4: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6F + ble _080D3EE8 +_080D3EE2: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080D3EE8: + movs r3, 0 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + bge _080D3F1C + ldr r6, _080D3F80 + ldr r5, _080D3F84 +_080D3EF6: + lsls r1, r3, 16 + asrs r1, 16 + lsls r3, r1, 1 + ldrb r2, [r5, 0x14] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 7 + adds r3, r0 + adds r3, r6 + ldrh r0, [r4, 0xC] + strh r0, [r3] + adds r1, 0x1 + lsls r1, 16 + lsrs r3, r1, 16 + asrs r1, 16 + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _080D3EF6 +_080D3F1C: + ldrh r3, [r4, 0x10] + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080D3F50 + ldr r6, _080D3F80 + ldr r5, _080D3F84 +_080D3F2E: + asrs r3, r2, 16 + lsls r2, r3, 1 + ldrb r1, [r5, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r6 + ldrh r0, [r4, 0xA] + strh r0, [r2] + adds r3, 0x1 + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _080D3F2E +_080D3F50: + ldrh r3, [r4, 0x12] + lsls r1, r3, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + bgt _080D4032 + ldr r6, _080D3F80 + ldr r5, _080D3F84 +_080D3F5E: + asrs r3, r1, 16 + lsls r2, r3, 1 + ldrb r1, [r5, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r6 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + lsls r1, r3, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + ble _080D3F5E + b _080D4032 + .align 2, 0 +_080D3F80: .4byte gUnknown_03004DE0 +_080D3F84: .4byte gUnknown_03004DC0 +_080D3F88: + movs r3, 0 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + bge _080D3FBC + ldr r6, _080D403C + ldr r5, _080D4040 +_080D3F96: + lsls r1, r3, 16 + asrs r1, 16 + lsls r3, r1, 1 + ldrb r2, [r5, 0x14] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 7 + adds r3, r0 + adds r3, r6 + ldrh r0, [r4, 0xC] + strh r0, [r3] + adds r1, 0x1 + lsls r1, 16 + lsrs r3, r1, 16 + asrs r1, 16 + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _080D3F96 +_080D3FBC: + ldrh r3, [r4, 0x10] + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080D3FF0 + ldr r6, _080D403C + ldr r5, _080D4040 +_080D3FCE: + asrs r3, r2, 16 + lsls r2, r3, 1 + ldrb r1, [r5, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r6 + ldrh r0, [r4, 0xA] + strh r0, [r2] + adds r3, 0x1 + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _080D3FCE +_080D3FF0: + ldrh r3, [r4, 0x12] + lsls r1, r3, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + bgt _080D401C + ldr r6, _080D403C + ldr r5, _080D4040 +_080D3FFE: + asrs r3, r1, 16 + lsls r2, r3, 1 + ldrb r1, [r5, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r6 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + lsls r1, r3, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + ble _080D3FFE +_080D401C: + movs r0, 0x26 + ldrsh r1, [r4, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080D4032 + bl remove_some_task + adds r0, r7, 0 + bl DestroyTask +_080D4032: + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D403C: .4byte gUnknown_03004DE0 +_080D4040: .4byte gUnknown_03004DC0 + thumb_func_end sub_80D3D68 + + thumb_func_start sub_80D4044 +sub_80D4044: @ 80D4044 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x8 + ldr r3, _080D4098 + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D409C + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078764 + bl Random + movs r5, 0xFF + ands r5, r0 + movs r0, 0x80 + lsls r0, 1 + adds r6, r0, 0 + orrs r5, r6 + bl Random + ldr r1, _080D40A0 + ands r1, r0 + adds r0, r1, 0 + cmp r0, 0xFF + ble _080D408A + subs r0, r6, r0 + lsls r0, 16 + lsrs r1, r0, 16 +_080D408A: + strh r5, [r4, 0x30] + strh r1, [r4, 0x32] + ldr r0, _080D40A4 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D4098: .4byte 0x000003ff +_080D409C: .4byte 0xfffffc00 +_080D40A0: .4byte 0x000001ff +_080D40A4: .4byte sub_80D40A8 + thumb_func_end sub_80D4044 + + thumb_func_start sub_80D40A8 +sub_80D40A8: @ 80D40A8 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x34] + adds r3, r0, r1 + strh r3, [r2, 0x34] + ldrh r1, [r2, 0x32] + ldrh r4, [r2, 0x36] + adds r1, r4 + strh r1, [r2, 0x36] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080D40CC + lsls r0, r3, 16 + asrs r0, 24 + negs r0, r0 + b _080D40D0 +_080D40CC: + lsls r0, r3, 16 + asrs r0, 24 +_080D40D0: + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080D40EE + adds r0, r2, 0 + bl move_anim_8072740 +_080D40EE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D40A8 + + thumb_func_start sub_80D40F4 +sub_80D40F4: @ 80D40F4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080D4144 + adds r4, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r2, _080D4148 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x22] + strh r0, [r4, 0x12] + bl sub_80D4394 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8078E70 + ldr r0, _080D414C + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D4144: .4byte gTasks +_080D4148: .4byte gSprites +_080D414C: .4byte sub_80D4150 + thumb_func_end sub_80D40F4 + + thumb_func_start sub_80D4150 +sub_80D4150: @ 80D4150 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080D4178 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x7 + bls _080D416C + b _080D438A +_080D416C: + lsls r0, 2 + ldr r1, _080D417C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D4178: .4byte gTasks +_080D417C: .4byte _080D4180 + .align 2, 0 +_080D4180: + .4byte _080D41A0 + .4byte _080D41C6 + .4byte _080D4258 + .4byte _080D428E + .4byte _080D42A2 + .4byte _080D42B0 + .4byte _080D4330 + .4byte _080D437C +_080D41A0: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 1 + movs r0, 0xE0 + str r0, [sp] + movs r0, 0x80 + lsls r0, 2 + str r0, [sp, 0x4] + movs r0, 0x20 + str r0, [sp, 0x8] + adds r0, r4, 0 + adds r2, r3, 0 + bl sub_8079C08 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080D41C6: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D4222 + movs r0, 0 + strh r0, [r4, 0xE] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D4210 + ldr r2, _080D420C + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strh r1, [r0, 0x24] + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x1 + strh r1, [r0, 0x22] + b _080D4222 + .align 2, 0 +_080D420C: .4byte gSprites +_080D4210: + ldr r2, _080D4250 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _080D4254 + strh r1, [r0, 0x24] +_080D4222: + adds r0, r4, 0 + bl sub_8079C74 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _080D4232 + b _080D438A +_080D4232: + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8079A64 + ldr r2, _080D4250 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r5, [r0, 0x24] + strh r5, [r4, 0xE] + b _080D436C + .align 2, 0 +_080D4250: .4byte gSprites +_080D4254: .4byte 0x0000fffd +_080D4258: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bgt _080D4268 + b _080D438A +_080D4268: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 2 + movs r0, 0xC0 + lsls r0, 1 + str r0, [sp] + movs r0, 0xE0 + str r0, [sp, 0x4] + movs r0, 0x8 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r2, 0xE0 + bl sub_8079C08 + movs r0, 0 + strh r0, [r4, 0xE] + b _080D436E +_080D428E: + adds r0, r4, 0 + bl sub_8079C74 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080D438A + strh r0, [r4, 0xE] + strh r0, [r4, 0x10] + b _080D436E +_080D42A2: + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80D4418 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080D42B0: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D438A + movs r0, 0 + strh r0, [r4, 0xE] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D42E8 + ldr r2, _080D42E4 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + adds r1, 0x2 + b _080D42FA + .align 2, 0 +_080D42E4: .4byte gSprites +_080D42E8: + ldr r2, _080D432C + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x2 +_080D42FA: + strh r1, [r0, 0x26] + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0xA + bne _080D438A + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r2, 0xC0 + lsls r2, 1 + movs r0, 0x80 + lsls r0, 1 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x8 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r3, 0xE0 + bl sub_8079C08 + movs r0, 0 + strh r0, [r4, 0xE] + strh r0, [r4, 0x10] + b _080D436E + .align 2, 0 +_080D432C: .4byte gSprites +_080D4330: + ldr r6, _080D4378 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r0, 0x22] + subs r1, 0x1 + strh r1, [r0, 0x22] + adds r0, r4, 0 + bl sub_8079C74 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080D438A + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F40 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r4, 0x12] + strh r1, [r0, 0x22] +_080D436C: + strh r5, [r4, 0x10] +_080D436E: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D438A + .align 2, 0 +_080D4378: .4byte gSprites +_080D437C: + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D438A + adds r0, r2, 0 + bl move_anim_task_del +_080D438A: + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80D4150 + + thumb_func_start sub_80D4394 +sub_80D4394: @ 80D4394 + push {r4,r5,lr} + ldr r4, _080D43B8 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D43C8 + ldr r1, _080D43BC + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080D43C0 + b _080D43D8 + .align 2, 0 +_080D43B8: .4byte gUnknown_0202F7C8 +_080D43BC: .4byte gUnknown_02024A6A +_080D43C0: .4byte gPlayerParty +_080D43C4: + adds r0, r2, 0 + b _080D440A +_080D43C8: + ldr r1, _080D4410 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080D4414 +_080D43D8: + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x3A + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + lsls r0, 16 + lsrs r3, r0, 16 + lsrs r4, 18 + movs r2, 0 +_080D43F6: + adds r1, r2, 0x1 + adds r0, r4, 0 + muls r0, r1 + cmp r3, r0 + blt _080D43C4 + lsls r0, r1, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _080D43F6 + movs r0, 0x3 +_080D440A: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080D4410: .4byte gUnknown_02024A6A +_080D4414: .4byte gEnemyParty + thumb_func_end sub_80D4394 + + thumb_func_start sub_80D4418 +sub_80D4418: @ 80D4418 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + adds r7, r0, 0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + ldr r4, _080D4520 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0xAC + ldrb r0, [r4] + bl sub_8079E90 + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + ldrh r1, [r7, 0xA] + movs r0, 0x4 + subs r0, r1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r0, 0 + bgt _080D4468 + movs r1, 0x1 +_080D4468: + movs r0, 0 + str r0, [sp, 0x4] + lsls r0, r1, 16 + mov r10, r8 + mov r9, r6 + mov r1, r10 + lsls r1, 4 + str r1, [sp, 0xC] + mov r1, r9 + lsls r1, 4 + str r1, [sp, 0x10] + asrs r0, 16 + mov r8, r0 +_080D4482: + ldr r0, _080D4524 + mov r1, r10 + mov r2, r9 + ldr r3, [sp, 0x8] + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + lsls r6, r5, 16 + cmp r2, 0x40 + beq _080D44EA + ldr r1, _080D4528 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r5, r0, r1 + mov r0, sp + ldrh r0, [r0, 0x4] + strh r0, [r5, 0x30] + mov r1, sp + ldrh r1, [r1, 0xC] + strh r1, [r5, 0x32] + mov r0, sp + ldrh r0, [r0, 0x10] + strh r0, [r5, 0x34] + asrs r4, r6, 16 + adds r0, r4, 0 + movs r1, 0x40 + bl Cos + strh r0, [r5, 0x36] + adds r0, r4, 0 + movs r1, 0x40 + bl Sin + strh r0, [r5, 0x38] + mov r1, sp + ldrh r1, [r1] + strh r1, [r5, 0x3A] + movs r0, 0x2 + strh r0, [r5, 0x3C] + ldrh r1, [r7, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D44E4 + adds r0, r5, 0 + bl sub_80D452C +_080D44E4: + ldrh r0, [r7, 0xC] + adds r0, 0x1 + strh r0, [r7, 0xC] +_080D44EA: + mov r1, r8 + lsls r0, r1, 1 + asrs r1, r6, 16 + adds r1, r0 + lsls r1, 16 + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r5, r0, 16 + ldr r1, [sp, 0x4] + lsls r0, r1, 16 + asrs r0, 16 + add r0, r8 + lsls r0, 16 + lsrs r1, r0, 16 + str r1, [sp, 0x4] + asrs r0, 16 + cmp r0, 0x13 + ble _080D4482 + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D4520: .4byte gUnknown_0202F7C8 +_080D4524: .4byte gSpriteTemplate_83D9378 +_080D4528: .4byte gSprites + thumb_func_end sub_80D4418 + + thumb_func_start sub_80D452C +sub_80D452C: @ 80D452C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D453E + cmp r0, 0x1 + beq _080D4574 + b _080D45CE +_080D453E: + movs r2, 0x30 + ldrsh r0, [r4, r2] + movs r1, 0x6 + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 1 + adds r1, r0 + ldrh r0, [r4, 0x36] + adds r1, r0 + strh r1, [r4, 0x36] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 1 + adds r1, r0 + ldrh r2, [r4, 0x38] + adds r1, r2 + strh r1, [r4, 0x38] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_080D4574: + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x38] + ldrh r2, [r4, 0x34] + adds r1, r2 + strh r1, [r4, 0x34] + lsls r0, 16 + asrs r0, 20 + strh r0, [r4, 0x20] + lsls r1, 16 + asrs r2, r1, 20 + strh r2, [r4, 0x22] + adds r0, 0x8 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bhi _080D45AA + adds r1, r2, 0 + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + blt _080D45AA + cmp r1, 0x78 + ble _080D45CE +_080D45AA: + ldr r3, _080D45D4 + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080D45CE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D45D4: .4byte gTasks + thumb_func_end sub_80D452C + + thumb_func_start sub_80D45D8 +sub_80D45D8: @ 80D45D8 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080D4608 + adds r4, r1, r0 + bl sub_80D4394 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] + ldr r0, _080D460C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D4610 + movs r0, 0x88 + strh r0, [r4, 0x10] + movs r0, 0x28 + b _080D4616 + .align 2, 0 +_080D4608: .4byte gTasks +_080D460C: .4byte gUnknown_0202F7C8 +_080D4610: + movs r0, 0x10 + strh r0, [r4, 0x10] + movs r0, 0x50 +_080D4616: + strh r0, [r4, 0x14] + movs r0, 0x62 + strh r0, [r4, 0x12] + ldrh r0, [r4, 0x10] + adds r0, 0x31 + strh r0, [r4, 0x16] + movs r0, 0xA + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + adds r0, 0x5 + strh r0, [r4, 0x20] + ldr r0, _080D4638 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D4638: .4byte sub_80D463C + thumb_func_end sub_80D45D8 + + thumb_func_start sub_80D463C +sub_80D463C: @ 80D463C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r7, _080D4660 + adds r4, r0, r7 + movs r0, 0x8 + ldrsh r2, [r4, r0] + cmp r2, 0 + beq _080D4664 + cmp r2, 0x1 + beq _080D4714 + b _080D4722 + .align 2, 0 +_080D4660: .4byte gTasks +_080D4664: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080D467A + strh r2, [r4, 0xC] + adds r0, r4, 0 + bl sub_80D472C +_080D467A: + movs r1, 0x1C + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D46F4 + movs r2, 0x22 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080D46F4 + ldr r5, _080D4708 + movs r1, 0x1 + mov r8, r1 + mov r2, r8 + strh r2, [r5] + strh r0, [r5, 0x2] + movs r0, 0xC + strh r0, [r5, 0x4] + ldr r6, _080D470C + adds r0, r6, 0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080D46C4 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r7 + ldr r1, [r0] + adds r0, r2, 0 + bl _call_via_r1 + ldr r1, _080D4710 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080D46C4: + movs r0, 0x3 + strh r0, [r5] + adds r0, r6, 0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080D46F0 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r7 + ldr r1, [r0] + adds r0, r2, 0 + bl _call_via_r1 + ldr r1, _080D4710 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080D46F0: + mov r0, r8 + strh r0, [r4, 0x22] +_080D46F4: + movs r2, 0x1E + ldrsh r1, [r4, r2] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _080D4722 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D4722 + .align 2, 0 +_080D4708: .4byte gUnknown_03004B00 +_080D470C: .4byte sub_80E1864 +_080D4710: .4byte gUnknown_0202F7B2 +_080D4714: + movs r2, 0x1A + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080D4722 + adds r0, r1, 0 + bl move_anim_task_del +_080D4722: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80D463C + + thumb_func_start sub_80D472C +sub_80D472C: @ 80D472C + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r1, _080D47B8 + movs r2, 0x18 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + adds r0, 0x3 + asrs r0, 4 + ldrh r2, [r4, 0x14] + adds r0, r2 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080D47BC + movs r2, 0x16 + ldrsh r1, [r4, r2] + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080D4786 + ldr r3, _080D47C0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r1, r0, r1 + ldr r2, _080D47C4 + str r2, [r1] + adds r0, r3 + strh r5, [r0, 0x38] + strh r6, [r0, 0x3A] + movs r1, 0x9 + strh r1, [r0, 0x3C] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] +_080D4786: + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] + ldrh r0, [r4, 0x18] + adds r0, 0x27 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x18] + movs r0, 0x16 + ldrsh r1, [r4, r0] + ldr r0, _080D47C8 + muls r0, r1 + ldr r1, _080D47CC + adds r0, r1 + movs r2, 0x12 + ldrsh r1, [r4, r2] + bl __modsi3 + ldrh r1, [r4, 0x10] + adds r1, r0 + strh r1, [r4, 0x16] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D47B8: .4byte gSineTable +_080D47BC: .4byte gSpriteTemplate_83D9378 +_080D47C0: .4byte gSprites +_080D47C4: .4byte sub_80D47D0 +_080D47C8: .4byte 0x41c64e6d +_080D47CC: .4byte 0x00003039 + thumb_func_end sub_80D472C + + thumb_func_start sub_80D47D0 +sub_80D47D0: @ 80D47D0 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D4866 + ldrh r0, [r5, 0x22] + adds r0, 0x8 + strh r0, [r5, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x38 + ldrsh r1, [r5, r2] + cmp r0, r1 + blt _080D4866 + ldr r2, _080D486C + movs r3, 0x3A + ldrsh r1, [r5, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x1 + strh r1, [r0, 0x1C] + ldr r0, _080D4870 + movs r2, 0x20 + ldrsh r1, [r5, r2] + movs r3, 0x22 + ldrsh r2, [r5, r3] + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x30] + cmp r0, 0x40 + beq _080D4860 + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080D4874 + adds r0, r4 + movs r1, 0x3 + bl StartSpriteAffineAnim + movs r2, 0x30 + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r5, 0x3A] + strh r1, [r0, 0x3A] + movs r3, 0x30 + ldrsh r1, [r5, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r5, 0x3C] + strh r1, [r0, 0x3C] + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _080D4878 + str r1, [r0] +_080D4860: + adds r0, r5, 0 + bl DestroySprite +_080D4866: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D486C: .4byte gTasks +_080D4870: .4byte gBattleAnimSpriteTemplate_83DB4D8 +_080D4874: .4byte gSprites +_080D4878: .4byte sub_80D487C + thumb_func_end sub_80D47D0 + + thumb_func_start sub_80D487C +sub_80D487C: @ 80D487C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D48E8 + movs r0, 0 + strh r0, [r4, 0x30] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bne _080D48E8 + ldr r3, _080D48F0 + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080D48E8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D48F0: .4byte gTasks + thumb_func_end sub_80D487C + + thumb_func_start sub_80D48F4 +sub_80D48F4: @ 80D48F4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080D4978 + adds r5, r1, r0 + ldr r4, _080D497C + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + strh r0, [r5, 0xE] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x10] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080D4938 + movs r1, 0x1 +_080D4938: + strh r1, [r5, 0x16] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D494C + movs r1, 0x16 + ldrsh r0, [r5, r1] + negs r0, r0 + strh r0, [r5, 0x16] +_080D494C: + movs r2, 0x16 + ldrsh r0, [r5, r2] + lsls r0, 3 + ldrh r1, [r5, 0xE] + adds r0, r1 + strh r0, [r5, 0x12] + movs r2, 0x16 + ldrsh r1, [r5, r2] + lsls r1, 3 + ldrh r0, [r5, 0x10] + subs r0, r1 + strh r0, [r5, 0x14] + ldr r0, _080D4980 + strh r0, [r5, 0x1A] + strh r6, [r5, 0xA] + strh r6, [r5, 0x8] + ldr r0, _080D4984 + str r0, [r5] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D4978: .4byte gTasks +_080D497C: .4byte gUnknown_0202F7C8 +_080D4980: .4byte 0x0000ffe0 +_080D4984: .4byte sub_80D4988 + thumb_func_end sub_80D48F4 + + thumb_func_start sub_80D4988 +sub_80D4988: @ 80D4988 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080D49AC + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x6 + bls _080D49A2 + b _080D4AC2 +_080D49A2: + lsls r0, 2 + ldr r1, _080D49B0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D49AC: .4byte gTasks +_080D49B0: .4byte _080D49B4 + .align 2, 0 +_080D49B4: + .4byte _080D49D0 + .4byte _080D49E0 + .4byte _080D49FA + .4byte _080D4A3C + .4byte _080D4A5E + .4byte _080D4A8C + .4byte _080D4AB2 +_080D49D0: + adds r0, r4, 0 + bl sub_80D4AD0 + movs r1, 0x1C + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D4AC8 + b _080D4ABA +_080D49E0: + adds r0, r4, 0 + bl sub_80D4AD0 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080D4AC8 + movs r0, 0 + strh r0, [r4, 0xA] + b _080D4ABA +_080D49FA: + adds r0, r4, 0 + bl sub_80D4AD0 + movs r1, 0x16 + ldrsh r0, [r4, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 1 + ldrh r0, [r4, 0x12] + adds r1, r0 + movs r2, 0 + strh r1, [r4, 0x12] + adds r1, 0x10 + lsls r1, 16 + movs r0, 0x88 + lsls r0, 17 + cmp r1, r0 + bls _080D4AC8 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080D4A38 + movs r0, 0x1 + strh r0, [r4, 0x22] + movs r0, 0x6 + strh r0, [r4, 0x8] + strh r2, [r4, 0xA] + b _080D4AC8 +_080D4A38: + strh r2, [r4, 0xA] + b _080D4ABA +_080D4A3C: + adds r0, r4, 0 + bl sub_80D4AD0 + movs r0, 0x16 + ldrsh r1, [r4, r0] + lsls r1, 1 + ldrh r0, [r4, 0x14] + subs r0, r1 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080D4AC8 + b _080D4ABA +_080D4A5E: + adds r0, r4, 0 + bl sub_80D4AD0 + movs r1, 0x16 + ldrsh r0, [r4, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 1 + ldrh r0, [r4, 0x12] + subs r0, r1 + strh r0, [r4, 0x12] + adds r0, 0x10 + lsls r0, 16 + movs r1, 0x88 + lsls r1, 17 + cmp r0, r1 + bls _080D4AC8 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + movs r0, 0 + strh r0, [r4, 0xA] + b _080D4ABA +_080D4A8C: + adds r0, r4, 0 + bl sub_80D4AD0 + movs r0, 0x16 + ldrsh r1, [r4, r0] + lsls r1, 1 + ldrh r0, [r4, 0x14] + subs r0, r1 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080D4AC8 + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080D4AC8 +_080D4AB2: + movs r1, 0x18 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D4AC8 +_080D4ABA: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D4AC8 +_080D4AC2: + adds r0, r2, 0 + bl move_anim_task_del +_080D4AC8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D4988 + + thumb_func_start sub_80D4AD0 +sub_80D4AD0: @ 80D4AD0 + push {r4-r6,lr} + adds r6, r0, 0 + ldrh r0, [r6, 0xC] + adds r0, 0x1 + strh r0, [r6, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D4B2A + movs r0, 0 + strh r0, [r6, 0xC] + ldr r0, _080D4B30 + movs r2, 0xE + ldrsh r1, [r6, r2] + movs r3, 0x10 + ldrsh r2, [r6, r3] + movs r3, 0xA + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080D4B2A + ldr r5, _080D4B34 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r0, r4, r5 + movs r1, 0x10 + strh r1, [r0, 0x2E] + ldrh r1, [r6, 0x12] + strh r1, [r0, 0x32] + ldrh r1, [r6, 0x14] + strh r1, [r0, 0x36] + ldrh r1, [r6, 0x1A] + strh r1, [r0, 0x38] + bl sub_80786EC + adds r5, 0x1C + adds r4, r5 + ldr r0, _080D4B38 + str r0, [r4] + ldrh r0, [r6, 0x18] + adds r0, 0x1 + strh r0, [r6, 0x18] +_080D4B2A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D4B30: .4byte gSpriteTemplate_83D9378 +_080D4B34: .4byte gSprites +_080D4B38: .4byte sub_80D4B3C + thumb_func_end sub_80D4AD0 + + thumb_func_start sub_80D4B3C +sub_80D4B3C: @ 80D4B3C + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080D4B96 + ldrh r0, [r6, 0x24] + ldrh r1, [r6, 0x20] + adds r0, r1 + strh r0, [r6, 0x20] + ldrh r0, [r6, 0x26] + ldrh r1, [r6, 0x22] + adds r0, r1 + strh r0, [r6, 0x22] + movs r0, 0x6 + strh r0, [r6, 0x2E] + bl Random + movs r4, 0x1F + adds r1, r4, 0 + ands r1, r0 + ldr r5, _080D4B9C + adds r1, r5 + ldrh r0, [r6, 0x20] + adds r1, r0 + strh r1, [r6, 0x32] + bl Random + ands r4, r0 + adds r4, r5 + ldrh r1, [r6, 0x22] + adds r4, r1 + strh r4, [r6, 0x36] + bl Random + movs r1, 0x7 + ands r1, r0 + mvns r1, r1 + strh r1, [r6, 0x38] + adds r0, r6, 0 + bl sub_80786EC + ldr r0, _080D4BA0 + str r0, [r6, 0x1C] +_080D4B96: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D4B9C: .4byte 0x0000fff0 +_080D4BA0: .4byte sub_80D4BA4 + thumb_func_end sub_80D4B3C + + thumb_func_start sub_80D4BA4 +sub_80D4BA4: @ 80D4BA4 + push {r4-r6,lr} + adds r5, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080D4BE0 + movs r4, 0 + ldr r6, _080D4BE8 +_080D4BB6: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r6 + ldr r1, [r2] + ldr r0, _080D4BEC + cmp r1, r0 + bne _080D4BD6 + movs r0, 0x1 + strh r0, [r2, 0x1C] + ldrh r0, [r2, 0x18] + subs r0, 0x1 + strh r0, [r2, 0x18] + adds r0, r5, 0 + bl DestroySprite +_080D4BD6: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xF + bls _080D4BB6 +_080D4BE0: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D4BE8: .4byte gTasks +_080D4BEC: .4byte sub_80D4988 + thumb_func_end sub_80D4BA4 + + thumb_func_start sub_80D4BF0 +sub_80D4BF0: @ 80D4BF0 + ldr r2, _080D4C10 + ldrh r1, [r2] + strh r1, [r0, 0x20] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0x22] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0x2E] + ldrh r1, [r2, 0x6] + strh r1, [r0, 0x30] + ldrh r1, [r2, 0x8] + strh r1, [r0, 0x32] + ldrh r1, [r2, 0xA] + strh r1, [r0, 0x34] + ldr r1, _080D4C14 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080D4C10: .4byte gUnknown_03004B00 +_080D4C14: .4byte sub_80D4C18 + thumb_func_end sub_80D4BF0 + + thumb_func_start sub_80D4C18 +sub_80D4C18: @ 80D4C18 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x2E] + subs r0, r1 + strh r0, [r4, 0x36] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x38] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + cmp r0, 0 + bne _080D4C5C + adds r0, r4, 0 + bl move_anim_8072740 +_080D4C5C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D4C18 + + thumb_func_start sub_80D4C64 +sub_80D4C64: @ 80D4C64 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r1, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r1, r2 + strh r1, [r4, 0x36] + lsls r0, 16 + asrs r0, 23 + strh r0, [r4, 0x24] + lsls r1, 16 + asrs r1, 23 + strh r1, [r4, 0x26] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080D4C9C + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080D4C9C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D4C64 + + thumb_func_start sub_80D4CA4 +sub_80D4CA4: @ 80D4CA4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r5, _080D4CE0 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x30] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldr r1, _080D4CE4 + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x36] + ldr r0, _080D4CE8 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D4CE0: .4byte gUnknown_0202F7C9 +_080D4CE4: .4byte gUnknown_03004B00 +_080D4CE8: .4byte sub_80D4CEC + thumb_func_end sub_80D4CA4 + + thumb_func_start sub_80D4CEC +sub_80D4CEC: @ 80D4CEC + push {r4-r6,lr} + adds r4, r0, 0 + movs r0, 0x30 + ldrsh r1, [r4, r0] + movs r2, 0x20 + ldrsh r0, [r4, r2] + subs r6, r1, r0 + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r2, 0x22 + ldrsh r0, [r4, r2] + subs r5, r1, r0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + muls r0, r6 + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + muls r0, r5 + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x36 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080D4D44 + movs r0, 0 + strh r0, [r4, 0x38] + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80D4D64 +_080D4D44: + movs r0, 0x34 + ldrsh r1, [r4, r0] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080D4D56 + adds r0, r4, 0 + bl move_anim_8072740 +_080D4D56: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80D4CEC + + thumb_func_start sub_80D4D64 +sub_80D4D64: @ 80D4D64 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + adds r4, r1, 0 + adds r5, r2, 0 + movs r2, 0x2E + ldrsh r1, [r0, r2] + lsrs r2, r1, 31 + adds r1, r2 + lsls r1, 15 + lsrs r1, 16 + str r1, [sp] + ldrh r1, [r0, 0x24] + ldrh r3, [r0, 0x20] + adds r1, r3 + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r0, r5, r0 + subs r0, 0x5 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + bl Random + negs r4, r4 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r4, r0 + subs r4, 0x5 + lsls r4, 16 + lsrs r7, r4, 16 + movs r6, 0 + mov r0, r8 + lsls r0, 16 + mov r8, r0 + mov r1, r10 + lsls r1, 16 + str r1, [sp, 0xC] + ldr r2, [sp] + lsls r2, 16 + str r2, [sp, 0x10] + asrs r1, 16 + lsls r0, r7, 16 + asrs r5, r0, 16 + str r0, [sp, 0x14] + negs r3, r5 + str r3, [sp, 0x4] + asrs r0, r2, 16 + adds r1, r0 + lsls r1, 16 + mov r10, r1 +_080D4DF2: + ldr r0, _080D4E34 + mov r2, r8 + asrs r1, r2, 16 + mov r3, r10 + asrs r2, r3, 16 + movs r3, 0x82 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080D4E38 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r1 + movs r0, 0x14 + strh r0, [r4, 0x2E] + mov r0, r9 + strh r0, [r4, 0x30] + ldr r0, _080D4E3C + ldrb r0, [r0] + bl sub_8079E90 + subs r0, 0x1 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + cmp r5, 0 + bge _080D4E40 + mov r1, sp + ldrh r1, [r1, 0x4] + strh r1, [r4, 0x32] + b _080D4E42 + .align 2, 0 +_080D4E34: .4byte gSpriteTemplate_83D9420 +_080D4E38: .4byte gSprites +_080D4E3C: .4byte gUnknown_0202F7C8 +_080D4E40: + strh r7, [r4, 0x32] +_080D4E42: + lsls r0, r6, 16 + movs r2, 0x80 + lsls r2, 9 + adds r0, r2 + lsrs r6, r0, 16 + cmp r0, 0 + ble _080D4DF2 + movs r6, 0 + ldr r3, [sp, 0xC] + asrs r1, r3, 16 + ldr r0, [sp, 0x14] + asrs r5, r0, 16 + negs r2, r5 + str r2, [sp, 0x8] + ldr r3, [sp, 0x10] + asrs r0, r3, 16 + subs r1, r0 + lsls r1, 16 + mov r10, r1 +_080D4E68: + ldr r0, _080D4EAC + mov r2, r8 + asrs r1, r2, 16 + mov r3, r10 + asrs r2, r3, 16 + movs r3, 0x82 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080D4EB0 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r1 + movs r0, 0x14 + strh r0, [r4, 0x2E] + mov r0, r9 + strh r0, [r4, 0x30] + ldr r0, _080D4EB4 + ldrb r0, [r0] + bl sub_8079E90 + subs r0, 0x1 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + cmp r5, 0 + ble _080D4EB8 + mov r1, sp + ldrh r1, [r1, 0x8] + strh r1, [r4, 0x32] + b _080D4EBA + .align 2, 0 +_080D4EAC: .4byte gSpriteTemplate_83D9420 +_080D4EB0: .4byte gSprites +_080D4EB4: .4byte gUnknown_0202F7C8 +_080D4EB8: + strh r7, [r4, 0x32] +_080D4EBA: + lsls r0, r6, 16 + movs r2, 0x80 + lsls r2, 9 + adds r0, r2 + lsrs r6, r0, 16 + cmp r0, 0 + ble _080D4E68 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80D4D64 + + thumb_func_start sub_80D4ED8 +sub_80D4ED8: @ 80D4ED8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D4F0C + ldrh r0, [r0] + strh r0, [r4, 0x2E] + movs r0, 0x3C + strh r0, [r4, 0x30] + movs r0, 0x9 + strh r0, [r4, 0x32] + movs r0, 0x1E + strh r0, [r4, 0x34] + movs r0, 0xFE + lsls r0, 8 + strh r0, [r4, 0x36] + ldr r1, _080D4F10 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r1, _080D4F14 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D4F0C: .4byte gUnknown_03004B00 +_080D4F10: .4byte move_anim_8072740 +_080D4F14: .4byte sub_8078174 + thumb_func_end sub_80D4ED8 + + thumb_func_start sub_80D4F18 +sub_80D4F18: @ 80D4F18 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D4F50 + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_807867C + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x32] + ldr r0, _080D4F54 + str r0, [r4, 0x1C] + ldr r1, _080D4F58 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D4F50: .4byte gUnknown_03004B00 +_080D4F54: .4byte sub_8078394 +_080D4F58: .4byte move_anim_8072740 + thumb_func_end sub_80D4F18 + + thumb_func_start sub_80D4F5C +sub_80D4F5C: @ 80D4F5C + push {r4,lr} + adds r4, r0, 0 + bl sub_8078650 + ldr r0, _080D4F90 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D4F98 + ldr r2, _080D4F94 + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r2, 0x8] + negs r0, r0 + strh r0, [r4, 0x32] + adds r1, r2, 0 + b _080D4FAE + .align 2, 0 +_080D4F90: .4byte gUnknown_0202F7C8 +_080D4F94: .4byte gUnknown_03004B00 +_080D4F98: + ldr r1, _080D4FC4 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x32] +_080D4FAE: + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x36] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x34] + ldr r0, _080D4FC8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D4FC4: .4byte gUnknown_03004B00 +_080D4FC8: .4byte sub_80D5038 + thumb_func_end sub_80D4F5C + + thumb_func_start sub_80D4FCC +sub_80D4FCC: @ 80D4FCC + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D4FF8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D5000 + ldr r2, _080D4FFC + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r2, 0x8] + strh r0, [r4, 0x32] + adds r1, r2, 0 + b _080D5018 + .align 2, 0 +_080D4FF8: .4byte gUnknown_0202F7C8 +_080D4FFC: .4byte gUnknown_03004B00 +_080D5000: + ldr r1, _080D5030 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x8] + negs r0, r0 + strh r0, [r4, 0x32] +_080D5018: + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x36] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x34] + ldr r0, _080D5034 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D5030: .4byte gUnknown_03004B00 +_080D5034: .4byte sub_80D5038 + thumb_func_end sub_80D4FCC + + thumb_func_start sub_80D5038 +sub_80D5038: @ 80D5038 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x36 + ldrsh r1, [r2, r3] + cmp r0, r1 + bge _080D505E + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x34] + ldrh r3, [r2, 0x26] + adds r0, r3 + strh r0, [r2, 0x26] +_080D505E: + movs r0, 0x2E + ldrsh r1, [r2, r0] + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r1, r0 + bne _080D5070 + adds r0, r2, 0 + bl move_anim_8074EE0 +_080D5070: + pop {r0} + bx r0 + thumb_func_end sub_80D5038 + + thumb_func_start sub_80D5074 +sub_80D5074: @ 80D5074 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078650 + ldr r0, _080D5098 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D50A0 + ldr r0, _080D509C + ldrh r1, [r4, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r4, 0x20] + b _080D50B2 + .align 2, 0 +_080D5098: .4byte gUnknown_0202F7C8 +_080D509C: .4byte gUnknown_03004B00 +_080D50A0: + ldr r0, _080D50E0 + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + adds r2, r4, 0 + adds r2, 0x43 + movs r1, 0x8 + strb r1, [r2] +_080D50B2: + adds r2, r0, 0 + ldrh r0, [r2, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x22] + ldrh r0, [r2, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r2, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r2, 0x8] + strh r0, [r4, 0x32] + ldrh r0, [r2, 0xA] + strh r0, [r4, 0x34] + ldrh r0, [r2, 0xC] + strh r0, [r4, 0x36] + strh r1, [r4, 0x38] + ldr r0, _080D50E4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D50E0: .4byte gUnknown_03004B00 +_080D50E4: .4byte sub_80D50E8 + thumb_func_end sub_80D5074 + + thumb_func_start sub_80D50E8 +sub_80D50E8: @ 80D50E8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D5170 + movs r2, 0x38 + ldrsh r1, [r4, r2] + ldr r0, _080D5154 + cmp r1, r0 + ble _080D5106 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1 + strb r0, [r1] +_080D5106: + movs r1, 0x2E + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x38] + lsls r1, 16 + asrs r1, 24 + ldrh r2, [r4, 0x30] + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x38] + lsls r1, 16 + asrs r1, 24 + ldrh r2, [r4, 0x30] + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x2E] + adds r1, r0, r2 + strh r1, [r4, 0x2E] + ldrh r0, [r4, 0x36] + ldrh r2, [r4, 0x38] + adds r0, r2 + strh r0, [r4, 0x38] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080D515C + ldr r2, _080D5158 + b _080D5164 + .align 2, 0 +_080D5154: .4byte 0x00002710 +_080D5158: .4byte 0xffffff00 +_080D515C: + cmp r0, 0 + bge _080D5168 + movs r2, 0x80 + lsls r2, 1 +_080D5164: + adds r0, r1, r2 + strh r0, [r4, 0x2E] +_080D5168: + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + b _080D5176 +_080D5170: + adds r0, r4, 0 + bl move_anim_8074EE0 +_080D5176: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D50E8 + + thumb_func_start sub_80D517C +sub_80D517C: @ 80D517C + push {lr} + movs r1, 0 + strh r1, [r0, 0x20] + strh r1, [r0, 0x22] + movs r1, 0x3C + strh r1, [r0, 0x2E] + movs r1, 0x8C + strh r1, [r0, 0x32] + movs r1, 0x50 + strh r1, [r0, 0x36] + ldr r1, _080D51A0 + str r1, [r0, 0x1C] + ldr r1, _080D51A4 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080D51A0: .4byte sub_8078B34 +_080D51A4: .4byte move_anim_8072740 + thumb_func_end sub_80D517C + + thumb_func_start sub_80D51A8 +sub_80D51A8: @ 80D51A8 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r5, _080D5200 + ldrb r0, [r5] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r0, _080D5204 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080D51EE + movs r0, 0x2 + bl battle_get_side_with_given_state + ldrb r1, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + beq _080D51E6 + movs r0, 0x3 + bl battle_get_side_with_given_state + ldrb r1, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + bne _080D51EE +_080D51E6: + ldr r1, _080D5208 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080D51EE: + ldr r1, _080D520C + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D5200: .4byte gUnknown_0202F7C8 +_080D5204: .4byte gUnknown_0202F7C9 +_080D5208: .4byte gUnknown_03004B00 +_080D520C: .4byte sub_8079534 + thumb_func_end sub_80D51A8 + + thumb_func_start sub_80D5210 +sub_80D5210: @ 80D5210 + ldr r2, _080D5224 + ldrh r1, [r2] + negs r1, r1 + strh r1, [r2] + ldrh r1, [r2, 0x4] + negs r1, r1 + strh r1, [r2, 0x4] + ldr r1, _080D5228 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080D5224: .4byte gUnknown_03004B00 +_080D5228: .4byte sub_8079534 + thumb_func_end sub_80D5210 + + thumb_func_start sub_80D522C +sub_80D522C: @ 80D522C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080D524C + ldrh r0, [r0, 0x4] + movs r1, 0 + strh r0, [r4, 0x3C] + strh r1, [r4, 0x2E] + ldr r0, _080D5250 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D524C: .4byte gUnknown_03004B00 +_080D5250: .4byte sub_80D5254 + thumb_func_end sub_80D522C + + thumb_func_start sub_80D5254 +sub_80D5254: @ 80D5254 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_80D5348 + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x12 + bne _080D529E + movs r0, 0x19 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080D52A4 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080D52A8 + str r0, [r5, 0x1C] +_080D529E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D52A4: .4byte gUnknown_0202F7C9 +_080D52A8: .4byte sub_80D52AC + thumb_func_end sub_80D5254 + + thumb_func_start sub_80D52AC +sub_80D52AC: @ 80D52AC + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080D52F4 + movs r4, 0 + strh r4, [r6, 0x2E] + ldr r5, _080D52EC + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x22] + strh r4, [r6, 0x26] + strh r4, [r6, 0x24] + ldr r1, _080D52F0 + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + b _080D531E + .align 2, 0 +_080D52EC: .4byte gUnknown_0202F7C9 +_080D52F0: .4byte sub_80D5324 +_080D52F4: + movs r1, 0x3C + ldrsh r0, [r6, r1] + movs r1, 0x1C + bl Sin + ldrh r1, [r6, 0x24] + adds r0, r1 + strh r0, [r6, 0x24] + movs r1, 0x3C + ldrsh r0, [r6, r1] + movs r1, 0x1C + bl Cos + ldrh r1, [r6, 0x26] + adds r0, r1 + strh r0, [r6, 0x26] + ldrh r0, [r6, 0x3C] + adds r0, 0x14 + movs r1, 0xFF + ands r0, r1 + strh r0, [r6, 0x3C] +_080D531E: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80D52AC + + thumb_func_start sub_80D5324 +sub_80D5324: @ 80D5324 + push {r4,lr} + adds r4, r0, 0 + bl sub_80D5348 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _080D5340 + adds r0, r4, 0 + bl move_anim_8072740 +_080D5340: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D5324 + + thumb_func_start sub_80D5348 +sub_80D5348: @ 80D5348 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x1C + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x1C + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + adds r0, 0x14 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D5348 + + thumb_func_start sub_80D5374 +sub_80D5374: @ 80D5374 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080D53A8 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x32] + ldr r1, _080D53AC + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080D53B0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D53A8: .4byte gUnknown_03004B00 +_080D53AC: .4byte move_anim_8072740 +_080D53B0: .4byte sub_8078364 + thumb_func_end sub_80D5374 + + thumb_func_start sub_80D53B4 +sub_80D53B4: @ 80D53B4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r1, _080D53E8 + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x2E] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080D53EC + str r0, [r4, 0x1C] + ldr r1, _080D53F0 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D53E8: .4byte gUnknown_03004B00 +_080D53EC: .4byte sub_80782D8 +_080D53F0: .4byte sub_80D53F4 + thumb_func_end sub_80D53B4 + + thumb_func_start sub_80D53F4 +sub_80D53F4: @ 80D53F4 + push {lr} + adds r3, r0, 0 + adds r3, 0x3E + ldrb r2, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r3] + ldrh r1, [r0, 0x30] + movs r2, 0 + strh r1, [r0, 0x2E] + strh r2, [r0, 0x30] + ldr r1, _080D5418 + str r1, [r0, 0x1C] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080D5418: .4byte sub_80D541C + thumb_func_end sub_80D53F4 + + thumb_func_start sub_80D541C +sub_80D541C: @ 80D541C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0xA + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + adds r0, 0xD0 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080D5468 + adds r0, r4, 0 + bl move_anim_8072740 +_080D5468: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D541C + + thumb_func_start sub_80D5470 +sub_80D5470: @ 80D5470 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080D54D0 + adds r4, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x26] + strh r5, [r4, 0x8] + strh r5, [r4, 0xA] + strh r5, [r4, 0xC] + strh r5, [r4, 0xE] + ldr r2, _080D54D4 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x22] + strh r0, [r4, 0x10] + ldr r0, _080D54D8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x12] + strh r5, [r4, 0x14] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8078E70 + ldr r0, _080D54DC + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D54D0: .4byte gTasks +_080D54D4: .4byte gSprites +_080D54D8: .4byte gUnknown_0202F7C8 +_080D54DC: .4byte sub_80D54E0 + thumb_func_end sub_80D5470 + + thumb_func_start sub_80D54E0 +sub_80D54E0: @ 80D54E0 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080D5508 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x6 + bls _080D54FC + b _080D57BA +_080D54FC: + lsls r0, 2 + ldr r1, _080D550C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D5508: .4byte gTasks +_080D550C: .4byte _080D5510 + .align 2, 0 +_080D5510: + .4byte _080D552C + .4byte _080D5552 + .4byte _080D5604 + .4byte _080D5664 + .4byte _080D5682 + .4byte _080D5758 + .4byte _080D57AC +_080D552C: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 1 + movs r0, 0xE0 + str r0, [sp] + movs r0, 0x80 + lsls r0, 2 + str r0, [sp, 0x4] + movs r0, 0x20 + str r0, [sp, 0x8] + adds r0, r4, 0 + adds r2, r3, 0 + bl sub_8079C08 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080D5552: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D559A + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D5588 + ldr r2, _080D5584 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + b _080D5598 + .align 2, 0 +_080D5584: .4byte gSprites +_080D5588: + ldr r2, _080D55FC + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _080D5600 +_080D5598: + strh r1, [r0, 0x24] +_080D559A: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D55C8 + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080D55C8 + movs r0, 0 + strh r0, [r4, 0xE] + ldr r2, _080D55FC + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x1 + strh r1, [r0, 0x22] +_080D55C8: + adds r0, r4, 0 + bl sub_8079C74 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _080D55D8 + b _080D57BA +_080D55D8: + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8079A64 + ldr r2, _080D55FC + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r5, [r0, 0x24] + strh r5, [r4, 0xA] + strh r5, [r4, 0xC] + strh r5, [r4, 0xE] + b _080D57A0 + .align 2, 0 +_080D55FC: .4byte gSprites +_080D5600: .4byte 0x0000fffd +_080D5604: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bgt _080D5614 + b _080D57BA +_080D5614: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D563E + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 2 + movs r0, 0xC0 + lsls r0, 1 + str r0, [sp] + movs r0, 0xF0 + str r0, [sp, 0x4] + movs r0, 0x6 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r2, 0xE0 + bl sub_8079C08 + b _080D565E +_080D563E: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 2 + movs r0, 0xC0 + lsls r0, 1 + str r0, [sp] + movs r0, 0xC0 + str r0, [sp, 0x4] + movs r0, 0x6 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r2, 0xE0 + bl sub_8079C08 +_080D565E: + movs r0, 0 + strh r0, [r4, 0xA] + b _080D57A0 +_080D5664: + adds r0, r4, 0 + bl sub_8079C74 + lsls r0, 24 + cmp r0, 0 + beq _080D5672 + b _080D57BA +_080D5672: + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + adds r1, r5, 0 + movs r2, 0x6 + bl sub_80D57C4 + b _080D57A0 +_080D5682: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D56D0 + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D56BC + ldr r2, _080D56B8 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + adds r1, 0x3 + b _080D56CE + .align 2, 0 +_080D56B8: .4byte gSprites +_080D56BC: + ldr r2, _080D5708 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x3 +_080D56CE: + strh r1, [r0, 0x26] +_080D56D0: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x18 + ble _080D57BA + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D570C + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r2, 0xC0 + lsls r2, 1 + movs r0, 0x80 + lsls r0, 1 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x8 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r3, 0xF0 + bl sub_8079C08 + b _080D572A + .align 2, 0 +_080D5708: .4byte gSprites +_080D570C: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r2, 0xC0 + lsls r2, 1 + movs r0, 0x80 + lsls r0, 1 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x8 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r3, 0xC0 + bl sub_8079C08 +_080D572A: + ldrh r1, [r4, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D5748 + ldr r2, _080D5754 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x3 + strh r1, [r0, 0x26] +_080D5748: + movs r0, 0 + strh r0, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + b _080D57A0 + .align 2, 0 +_080D5754: .4byte gSprites +_080D5758: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D5774 + ldr r2, _080D57A8 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + subs r1, 0x1 + strh r1, [r0, 0x22] +_080D5774: + adds r0, r4, 0 + bl sub_8079C74 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080D57BA + ldr r2, _080D57A8 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x10] + strh r1, [r0, 0x22] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F40 + strh r5, [r4, 0xC] +_080D57A0: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D57BA + .align 2, 0 +_080D57A8: .4byte gSprites +_080D57AC: + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D57BA + adds r0, r5, 0 + bl move_anim_task_del +_080D57BA: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D54E0 + + thumb_func_start sub_80D57C4 +sub_80D57C4: @ 80D57C4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + adds r0, r4, 0 + bl sub_80D5940 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + ldr r1, _080D5814 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r4, [r0, 0x20] + ldr r0, _080D5818 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D581C + adds r0, r4, 0 + subs r0, 0xC + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0x1 + b _080D5826 + .align 2, 0 +_080D5814: .4byte gSprites +_080D5818: .4byte gUnknown_0202F7C8 +_080D581C: + adds r0, r4, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0xFF +_080D5826: + movs r6, 0 + movs r5, 0 + lsls r4, 16 + str r4, [sp, 0x8] + mov r1, r9 + lsls r1, 16 + str r1, [sp, 0x4] + ldr r2, _080D58E0 + mov r9, r2 + lsls r0, 24 + asrs r0, 24 + str r0, [sp] + mov r3, r8 + lsls r3, 1 + mov r10, r3 +_080D5844: + ldr r0, _080D58E4 + ldr r2, [sp, 0x8] + asrs r1, r2, 16 + ldr r3, [sp, 0x4] + asrs r2, r3, 16 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080D58C6 + ldr r1, _080D58E8 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r1 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + lsls r0, r5, 2 + adds r0, 0x40 + adds r1, r0 + ldr r3, _080D58EC + adds r0, r3, 0 + ands r1, r0 + ldr r3, _080D58F0 + adds r0, r3, 0 + ands r2, r0 + orrs r2, r1 + strh r2, [r4, 0x4] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x4 + bls _080D588E + movs r5, 0 +_080D588E: + lsls r2, r6, 2 + mov r1, r9 + adds r0, r2, r1 + ldrh r0, [r0] + ldr r3, [sp] + adds r1, r0, 0 + muls r1, r3 + lsls r1, 16 + asrs r1, 16 + ldr r0, _080D58F4 + adds r2, r0 + movs r3, 0 + ldrsh r2, [r2, r3] + adds r0, r4, 0 + bl sub_80D5994 + strh r7, [r4, 0x3A] + mov r0, r8 + strh r0, [r4, 0x3C] + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + add r0, r10 + ldr r1, _080D58F8 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] +_080D58C6: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x6 + bls _080D5844 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D58E0: .4byte gUnknown_083D96DC +_080D58E4: .4byte gSpriteTemplate_83D96C4 +_080D58E8: .4byte gSprites +_080D58EC: .4byte 0x000003ff +_080D58F0: .4byte 0xfffffc00 +_080D58F4: .4byte gUnknown_083D96DC + 0x2 +_080D58F8: .4byte gUnknown_03004B28 + thumb_func_end sub_80D57C4 + + thumb_func_start sub_80D58FC +sub_80D58FC: @ 80D58FC + push {r4,lr} + adds r4, r0, 0 + bl sub_80D59B0 + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080D5936 + ldr r3, _080D593C + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080D5936: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D593C: .4byte gTasks + thumb_func_end sub_80D58FC + + thumb_func_start sub_80D5940 +sub_80D5940: @ 80D5940 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080D5978 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r2, [r1, 0x26] + ldrh r0, [r1, 0x22] + adds r2, r0 + adds r1, 0x29 + movs r0, 0 + ldrsb r0, [r1, r0] + adds r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _080D597C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D5980 + lsls r0, r4, 16 + movs r1, 0x94 + lsls r1, 15 + b _080D5986 + .align 2, 0 +_080D5978: .4byte gSprites +_080D597C: .4byte gUnknown_0202F7C8 +_080D5980: + lsls r0, r4, 16 + movs r1, 0xB0 + lsls r1, 14 +_080D5986: + adds r0, r1 + lsrs r4, r0, 16 + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80D5940 + + thumb_func_start sub_80D5994 +sub_80D5994: @ 80D5994 + movs r3, 0 + strh r3, [r0, 0x2E] + strh r3, [r0, 0x30] + ldrh r3, [r0, 0x20] + lsls r3, 3 + strh r3, [r0, 0x32] + ldrh r3, [r0, 0x22] + lsls r3, 3 + strh r3, [r0, 0x34] + lsls r1, 3 + strh r1, [r0, 0x36] + lsls r2, 3 + strh r2, [r0, 0x38] + bx lr + thumb_func_end sub_80D5994 + + thumb_func_start sub_80D59B0 +sub_80D59B0: @ 80D59B0 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080D59DA + movs r0, 0 + strh r0, [r2, 0x2E] + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x30] + adds r1, r0, 0 + muls r1, r0 + adds r0, r1, 0 + ldrh r3, [r2, 0x34] + adds r0, r3 + strh r0, [r2, 0x34] +_080D59DA: + ldrh r0, [r2, 0x36] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 19 + strh r0, [r2, 0x20] + ldrh r1, [r2, 0x38] + ldrh r3, [r2, 0x34] + adds r1, r3 + strh r1, [r2, 0x34] + lsls r1, 16 + asrs r3, r1, 19 + strh r3, [r2, 0x22] + adds r0, 0x8 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bhi _080D5A10 + adds r1, r3, 0 + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + blt _080D5A10 + cmp r1, 0x78 + ble _080D5A1C +_080D5A10: + adds r0, r2, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080D5A1C: + pop {r0} + bx r0 + thumb_func_end sub_80D59B0 + + thumb_func_start sub_80D5A20 +sub_80D5A20: @ 80D5A20 + push {r4,r5,lr} + ldr r3, _080D5A64 + ldrh r1, [r3] + movs r2, 0 + strh r1, [r0, 0x20] + ldrh r1, [r3, 0x2] + strh r1, [r0, 0x22] + strh r2, [r0, 0x2E] + strh r2, [r0, 0x30] + strh r2, [r0, 0x32] + ldrh r1, [r3, 0x4] + strh r1, [r0, 0x3A] + ldrh r1, [r3, 0x6] + strh r1, [r0, 0x3C] + ldrh r4, [r0, 0x4] + lsls r2, r4, 22 + lsrs r2, 22 + movs r5, 0x8 + ldrsh r1, [r3, r5] + lsls r1, 4 + adds r2, r1 + ldr r3, _080D5A68 + adds r1, r3, 0 + ands r2, r1 + ldr r1, _080D5A6C + ands r1, r4 + orrs r1, r2 + strh r1, [r0, 0x4] + ldr r1, _080D5A70 + str r1, [r0, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D5A64: .4byte gUnknown_03004B00 +_080D5A68: .4byte 0x000003ff +_080D5A6C: .4byte 0xfffffc00 +_080D5A70: .4byte sub_80D5A74 + thumb_func_end sub_80D5A20 + + thumb_func_start sub_80D5A74 +sub_80D5A74: @ 80D5A74 + push {r4,lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x1 + beq _080D5AA6 + cmp r0, 0x1 + bgt _080D5A8A + cmp r0, 0 + beq _080D5A90 + b _080D5B04 +_080D5A8A: + cmp r0, 0x2 + beq _080D5AC4 + b _080D5B04 +_080D5A90: + ldrh r1, [r2, 0x3A] + movs r3, 0x3A + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _080D5AA0 + subs r0, r1, 0x1 + strh r0, [r2, 0x3A] + b _080D5B04 +_080D5AA0: + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] +_080D5AA6: + ldrh r0, [r2, 0x22] + adds r0, 0x8 + strh r0, [r2, 0x22] + lsls r0, 16 + asrs r0, 16 + ldrh r3, [r2, 0x3C] + movs r4, 0x3C + ldrsh r1, [r2, r4] + cmp r0, r1 + blt _080D5B04 + strh r3, [r2, 0x22] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + b _080D5B04 +_080D5AC4: + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D5AF0 + movs r0, 0 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x32] + adds r0, 0x1 + strh r0, [r2, 0x32] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D5AEC + ldr r0, _080D5AE8 + b _080D5AEE + .align 2, 0 +_080D5AE8: .4byte 0x0000fffd +_080D5AEC: + movs r0, 0x3 +_080D5AEE: + strh r0, [r2, 0x26] +_080D5AF0: + ldrh r0, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080D5B04 + adds r0, r2, 0 + bl move_anim_8072740 +_080D5B04: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D5A74 + + thumb_func_start sub_80D5B0C +sub_80D5B0C: @ 80D5B0C + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080D5B80 + cmp r0, 0x1 + bgt _080D5B22 + cmp r0, 0 + beq _080D5B28 + b _080D5C4E +_080D5B22: + cmp r0, 0x2 + beq _080D5BDE + b _080D5C4E +_080D5B28: + adds r0, r5, 0 + movs r1, 0 + bl sub_80787B0 + ldr r4, _080D5B50 + ldrb r1, [r4, 0x4] + adds r0, r5, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x3C] + ldr r0, _080D5B54 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D5B58 + movs r0, 0x4 + b _080D5B5A + .align 2, 0 +_080D5B50: .4byte gUnknown_03004B00 +_080D5B54: .4byte gUnknown_0202F7C8 +_080D5B58: + ldr r0, _080D5B78 +_080D5B5A: + strh r0, [r5, 0x36] + ldr r0, _080D5B7C + ldrb r0, [r0] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080D5BD6 + .align 2, 0 +_080D5B78: .4byte 0x0000fffc +_080D5B7C: .4byte gUnknown_0202F7C9 +_080D5B80: + ldrh r0, [r5, 0x30] + adds r0, 0xC0 + strh r0, [r5, 0x30] + ldr r0, _080D5BA0 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D5BA4 + ldrh r0, [r5, 0x30] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + b _080D5BAA + .align 2, 0 +_080D5BA0: .4byte gUnknown_0202F7C8 +_080D5BA4: + ldrh r0, [r5, 0x30] + lsls r0, 16 + asrs r0, 24 +_080D5BAA: + strh r0, [r5, 0x26] + movs r2, 0x32 + ldrsh r0, [r5, r2] + movs r2, 0x36 + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r5, 0x24] + ldrh r0, [r5, 0x32] + adds r0, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080D5C4E + movs r0, 0 + strh r0, [r5, 0x34] +_080D5BD6: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080D5C4E +_080D5BDE: + movs r1, 0x32 + ldrsh r0, [r5, r1] + movs r2, 0x36 + ldrsh r1, [r5, r2] + bl Sin + adds r2, r0, 0 + movs r3, 0 + strh r2, [r5, 0x24] + ldrh r0, [r5, 0x32] + adds r0, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _080D5C4E + ldrh r0, [r5, 0x20] + adds r1, r2, r0 + strh r1, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r3, [r5, 0x26] + strh r3, [r5, 0x24] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r5, 0x2E] + strh r1, [r5, 0x30] + ldr r4, _080D5C54 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8078BD4 + ldr r0, _080D5C58 + str r0, [r5, 0x1C] +_080D5C4E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D5C54: .4byte gUnknown_0202F7C9 +_080D5C58: .4byte sub_80D5C5C + thumb_func_end sub_80D5B0C + + thumb_func_start sub_80D5C5C +sub_80D5C5C: @ 80D5C5C + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _080D5CB4 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x10 + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + ldrh r2, [r4, 0x38] + adds r0, r2, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x38] + lsls r2, 16 + asrs r2, 16 + cmp r2, 0 + beq _080D5C92 + cmp r2, 0xC4 + ble _080D5CBA +_080D5C92: + lsls r0, 16 + cmp r0, 0 + ble _080D5CBA + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D5CBA + ldr r0, _080D5CB0 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x90 + bl PlaySE12WithPanning + b _080D5CBA + .align 2, 0 +_080D5CB0: .4byte gUnknown_0202F7D2 +_080D5CB4: + adds r0, r4, 0 + bl move_anim_8072740 +_080D5CBA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D5C5C + + thumb_func_start sub_80D5CC0 +sub_80D5CC0: @ 80D5CC0 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080D5CD8 + ldr r0, _080D5D4C + ldrh r0, [r0] + strh r0, [r4, 0x30] + adds r0, r1, 0x1 + strh r0, [r4, 0x2E] +_080D5CD8: + movs r0, 0xC0 + lsls r0, 1 + adds r1, r0, 0 + ldrh r2, [r4, 0x34] + adds r1, r2 + strh r1, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r0, 0xA0 + strh r0, [r4, 0x36] + movs r2, 0x30 + ldrsh r0, [r4, r2] + lsls r1, 16 + asrs r1, 24 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x36] + lsls r1, 16 + asrs r1, 24 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r2, r0, 0x7 + movs r0, 0xFF + ands r2, r0 + strh r2, [r4, 0x30] + ldr r0, _080D5D50 + ldr r1, _080D5D54 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080D5D84 + adds r0, r2, 0 + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x83 + bls _080D5D5C + ldr r0, _080D5D58 + ldrb r0, [r0] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + b _080D5DA0 + .align 2, 0 +_080D5D4C: .4byte gUnknown_03004B00 +_080D5D50: .4byte gMain +_080D5D54: .4byte 0x0000043d +_080D5D58: .4byte gUnknown_0202F7C9 +_080D5D5C: + ldr r0, _080D5D80 + ldrb r0, [r0] + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] + b _080D5DA0 + .align 2, 0 +_080D5D80: .4byte gUnknown_0202F7C9 +_080D5D84: + adds r0, r2, 0 + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x83 + bls _080D5D98 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1D + b _080D5D9E +_080D5D98: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1F +_080D5D9E: + strb r0, [r1] +_080D5DA0: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080D5DC8 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080D5DC8: + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0x1E + bne _080D5DD6 + adds r0, r4, 0 + bl move_anim_8072740 +_080D5DD6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D5CC0 + + thumb_func_start sub_80D5DDC +sub_80D5DDC: @ 80D5DDC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080D5E3C + adds r4, r1, r0 + ldr r0, _080D5E40 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080D5E02 + movs r1, 0x1 +_080D5E02: + strh r1, [r4, 0x20] + ldr r0, _080D5E44 + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + strh r0, [r4, 0x22] + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x24] + movs r0, 0x3 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r0, _080D5E48 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D5E3C: .4byte gTasks +_080D5E40: .4byte gUnknown_0202F7C8 +_080D5E44: .4byte gUnknown_0202F7C9 +_080D5E48: .4byte sub_80D5E4C + thumb_func_end sub_80D5DDC + + thumb_func_start sub_80D5E4C +sub_80D5E4C: @ 80D5E4C + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080D5E70 + adds r2, r0, r1 + movs r0, 0x8 + ldrsh r3, [r2, r0] + cmp r3, 0x1 + beq _080D5F14 + cmp r3, 0x1 + bgt _080D5E74 + cmp r3, 0 + beq _080D5E82 + b _080D6074 + .align 2, 0 +_080D5E70: .4byte gTasks +_080D5E74: + cmp r3, 0x2 + bne _080D5E7A + b _080D5F9C +_080D5E7A: + cmp r3, 0x3 + bne _080D5E80 + b _080D6030 +_080D5E80: + b _080D6074 +_080D5E82: + movs r1, 0x20 + ldrsh r0, [r2, r1] + lsls r0, 1 + ldrh r5, [r2, 0x1C] + adds r0, r5 + strh r0, [r2, 0x1C] + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D5EB4 + strh r3, [r2, 0xA] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D5EB0 + movs r0, 0x2 + b _080D5EB2 +_080D5EB0: + ldr r0, _080D5F0C +_080D5EB2: + strh r0, [r2, 0x1E] +_080D5EB4: + movs r1, 0 + strh r1, [r2, 0xE] + movs r7, 0x22 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _080D5EF6 + ldr r4, _080D5F10 + adds r3, r2, 0 + adds r3, 0x8 +_080D5EC6: + movs r1, 0xE + ldrsh r0, [r2, r1] + adds r0, 0xE + lsls r0, 1 + adds r0, r3, r0 + movs r5, 0 + ldrsh r0, [r0, r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r2, 0x1E] + ldrh r7, [r2, 0x1C] + adds r0, r7 + strh r0, [r1, 0x24] + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r5, 0x22 + ldrsh r1, [r2, r5] + cmp r0, r1 + blt _080D5EC6 +_080D5EF6: + ldrh r0, [r2, 0x1A] + adds r0, 0x1 + strh r0, [r2, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + beq _080D5F06 + b _080D6074 +_080D5F06: + movs r0, 0 + strh r0, [r2, 0x1A] + b _080D6020 + .align 2, 0 +_080D5F0C: .4byte 0x0000fffe +_080D5F10: .4byte gSprites +_080D5F14: + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080D5F3C + movs r0, 0 + strh r0, [r2, 0xA] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + ands r0, r3 + lsls r0, 16 + cmp r0, 0 + beq _080D5F38 + movs r0, 0x2 + b _080D5F3A +_080D5F38: + ldr r0, _080D5F94 +_080D5F3A: + strh r0, [r2, 0x1E] +_080D5F3C: + movs r1, 0 + strh r1, [r2, 0xE] + movs r7, 0x22 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _080D5F7E + ldr r4, _080D5F98 + adds r3, r2, 0 + adds r3, 0x8 +_080D5F4E: + movs r1, 0xE + ldrsh r0, [r2, r1] + adds r0, 0xE + lsls r0, 1 + adds r0, r3, r0 + movs r5, 0 + ldrsh r0, [r0, r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r2, 0x1E] + ldrh r7, [r2, 0x1C] + adds r0, r7 + strh r0, [r1, 0x24] + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r5, 0x22 + ldrsh r1, [r2, r5] + cmp r0, r1 + blt _080D5F4E +_080D5F7E: + ldrh r0, [r2, 0x1A] + adds r0, 0x1 + strh r0, [r2, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x60 + bne _080D6074 + movs r0, 0 + strh r0, [r2, 0x1A] + b _080D6020 + .align 2, 0 +_080D5F94: .4byte 0x0000fffe +_080D5F98: .4byte gSprites +_080D5F9C: + movs r7, 0x20 + ldrsh r1, [r2, r7] + lsls r1, 1 + ldrh r0, [r2, 0x1C] + subs r0, r1 + strh r0, [r2, 0x1C] + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D5FD0 + movs r0, 0 + strh r0, [r2, 0xA] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D5FCC + strh r3, [r2, 0x1E] + b _080D5FD0 +_080D5FCC: + ldr r0, _080D6028 + strh r0, [r2, 0x1E] +_080D5FD0: + movs r1, 0 + strh r1, [r2, 0xE] + movs r3, 0x22 + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _080D6012 + ldr r4, _080D602C + adds r3, r2, 0 + adds r3, 0x8 +_080D5FE2: + movs r5, 0xE + ldrsh r0, [r2, r5] + adds r0, 0xE + lsls r0, 1 + adds r0, r3, r0 + movs r7, 0 + ldrsh r0, [r0, r7] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r2, 0x1E] + ldrh r5, [r2, 0x1C] + adds r0, r5 + strh r0, [r1, 0x24] + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r7, 0x22 + ldrsh r1, [r2, r7] + cmp r0, r1 + blt _080D5FE2 +_080D6012: + ldrh r0, [r2, 0x1A] + adds r0, 0x1 + strh r0, [r2, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + bne _080D6074 +_080D6020: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080D6074 + .align 2, 0 +_080D6028: .4byte 0x0000fffe +_080D602C: .4byte gSprites +_080D6030: + movs r1, 0 + strh r1, [r2, 0xE] + movs r3, 0x22 + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _080D606E + ldr r6, _080D607C + adds r3, r2, 0 + adds r3, 0x8 + movs r5, 0 +_080D6044: + movs r7, 0xE + ldrsh r0, [r2, r7] + adds r0, 0xE + lsls r0, 1 + adds r0, r3, r0 + movs r7, 0 + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r5, [r0, 0x24] + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r7, 0x22 + ldrsh r1, [r2, r7] + cmp r0, r1 + blt _080D6044 +_080D606E: + adds r0, r4, 0 + bl move_anim_task_del +_080D6074: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D607C: .4byte gSprites + thumb_func_end sub_80D5E4C + + thumb_func_start sub_80D6080 +sub_80D6080: @ 80D6080 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r0, sp + bl sub_8078914 + mov r0, sp + ldrb r0, [r0, 0x8] + lsls r0, 4 + ldr r1, _080D60B0 + ldrb r2, [r1] + ldrh r3, [r1, 0x2] + movs r1, 0x10 + bl BlendPalette + adds r0, r4, 0 + bl move_anim_task_del + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D60B0: .4byte gUnknown_03004B00 + thumb_func_end sub_80D6080 + + thumb_func_start sub_80D60B4 +sub_80D60B4: @ 80D60B4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080D610C + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x8 + ldrsh r0, [r2, r3] + mov r9, r1 + ldr r4, _080D6110 + mov r8, r4 + cmp r0, 0 + bne _080D60EA + ldrh r0, [r4] + strh r0, [r2, 0xA] + ldrh r0, [r4, 0x2] + strh r0, [r2, 0xC] + ldrh r0, [r4, 0x4] + strh r0, [r2, 0xE] + ldrh r0, [r4, 0x6] + strh r0, [r2, 0x10] +_080D60EA: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + ldr r1, _080D6114 + ldr r0, _080D6118 + ldrb r0, [r0] + adds r0, r1 + ldrb r6, [r0] + movs r5, 0x10 + ldrsh r0, [r2, r5] + cmp r0, 0 + bne _080D6120 + ldr r4, _080D611C + movs r1, 0x8 + ldrsh r0, [r2, r1] + b _080D6126 + .align 2, 0 +_080D610C: .4byte gTasks +_080D6110: .4byte gUnknown_03004B00 +_080D6114: .4byte gUnknown_02024BE0 +_080D6118: .4byte gUnknown_0202F7C9 +_080D611C: .4byte gUnknown_083D9794 +_080D6120: + ldr r4, _080D616C + movs r3, 0x8 + ldrsh r0, [r2, r3] +_080D6126: + movs r1, 0xA + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + adds r0, r4 + ldrb r5, [r0] + lsls r0, r7, 2 + adds r1, r0, r7 + lsls r1, 3 + add r1, r9 + movs r4, 0xE + ldrsh r1, [r1, r4] + mov r12, r0 + cmp r1, 0x1 + bne _080D6174 + ldr r2, _080D6170 + lsls r3, r6, 4 + adds r0, r3, r6 + lsls r0, 2 + adds r0, r2 + mov r10, r0 + mov r0, r8 + movs r4, 0x2 + ldrsh r1, [r0, r4] + lsls r0, r5, 24 + asrs r0, 24 + muls r0, r1 + cmp r0, 0 + bge _080D6164 + negs r0, r0 +_080D6164: + mov r5, r10 + strh r0, [r5, 0x26] + b _080D618E + .align 2, 0 +_080D616C: .4byte gUnknown_083D97A4 +_080D6170: .4byte gSprites +_080D6174: + ldr r3, _080D61C4 + lsls r4, r6, 4 + adds r2, r4, r6 + lsls r2, 2 + adds r2, r3 + lsls r0, r5, 24 + asrs r0, 24 + mov r5, r8 + ldrh r1, [r5, 0x2] + muls r0, r1 + strh r0, [r2, 0x24] + adds r2, r3, 0 + adds r3, r4, 0 +_080D618E: + mov r1, r12 + adds r0, r1, r7 + lsls r0, 3 + add r0, r9 + movs r4, 0x8 + ldrsh r1, [r0, r4] + movs r5, 0xA + ldrsh r0, [r0, r5] + cmp r1, r0 + bne _080D61B4 + adds r0, r3, r6 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x24] + strh r1, [r0, 0x26] + adds r0, r7, 0 + bl move_anim_task_del +_080D61B4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D61C4: .4byte gSprites + thumb_func_end sub_80D60B4 + + thumb_func_start sub_80D61C8 +sub_80D61C8: @ 80D61C8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D61E8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D61F0 + ldr r0, _080D61EC + ldrh r1, [r4, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r4, 0x20] + b _080D61FC + .align 2, 0 +_080D61E8: .4byte gUnknown_0202F7C8 +_080D61EC: .4byte gUnknown_03004B00 +_080D61F0: + ldr r1, _080D6210 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + adds r0, r1, 0 +_080D61FC: + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _080D6214 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D6210: .4byte gUnknown_03004B00 +_080D6214: .4byte sub_80D6218 + thumb_func_end sub_80D61C8 + + thumb_func_start sub_80D6218 +sub_80D6218: @ 80D6218 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D622E + adds r0, r2, 0 + bl move_anim_8072740 +_080D622E: + pop {r0} + bx r0 + thumb_func_end sub_80D6218 + + thumb_func_start sub_80D6234 +sub_80D6234: @ 80D6234 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D6254 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D625C + ldr r0, _080D6258 + ldrh r1, [r4, 0x20] + ldrh r0, [r0] + subs r1, r0 + strh r1, [r4, 0x20] + b _080D6266 + .align 2, 0 +_080D6254: .4byte gUnknown_0202F7C8 +_080D6258: .4byte gUnknown_03004B00 +_080D625C: + ldr r0, _080D6270 + ldrh r0, [r0] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] +_080D6266: + ldr r0, _080D6274 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D6270: .4byte gUnknown_03004B00 +_080D6274: .4byte sub_80D6278 + thumb_func_end sub_80D6234 + + thumb_func_start sub_80D6278 +sub_80D6278: @ 80D6278 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080D628E + adds r0, r2, 0 + bl move_anim_8074EE0 +_080D628E: + pop {r0} + bx r0 + thumb_func_end sub_80D6278 + + thumb_func_start sub_80D6294 +sub_80D6294: @ 80D6294 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080D62D8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r0, _080D62DC + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D62E4 + ldr r2, _080D62E0 + ldrh r0, [r5, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + ldrh r1, [r2, 0x2] + subs r0, r1 + strh r0, [r5, 0x22] + b _080D62F8 + .align 2, 0 +_080D62D8: .4byte gUnknown_0202F7C9 +_080D62DC: .4byte gUnknown_0202F7C8 +_080D62E0: .4byte gUnknown_03004B00 +_080D62E4: + ldr r0, _080D631C + ldrh r1, [r0] + ldrh r2, [r5, 0x20] + adds r1, r2 + strh r1, [r5, 0x20] + ldrh r1, [r0, 0x2] + ldrh r2, [r5, 0x22] + adds r1, r2 + strh r1, [r5, 0x22] + adds r2, r0, 0 +_080D62F8: + movs r0, 0 + strh r0, [r5, 0x2E] + ldrh r0, [r2, 0x4] + strh r0, [r5, 0x30] + ldrh r0, [r2, 0x6] + strh r0, [r5, 0x32] + ldrh r0, [r2, 0x8] + strh r0, [r5, 0x34] + ldr r1, _080D6320 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080D6324 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D631C: .4byte gUnknown_03004B00 +_080D6320: .4byte move_anim_8074EE0 +_080D6324: .4byte sub_8078114 + thumb_func_end sub_80D6294 + + thumb_func_start sub_80D6328 +sub_80D6328: @ 80D6328 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, _080D6340 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + beq _080D63A0 + cmp r0, 0x1 + bgt _080D6344 + cmp r0, 0 + beq _080D634E + b _080D63A0 + .align 2, 0 +_080D6340: .4byte gUnknown_03004B00 +_080D6344: + cmp r0, 0x2 + beq _080D6358 + cmp r0, 0x3 + beq _080D637C + b _080D63A0 +_080D634E: + ldr r0, _080D6354 + b _080D63A2 + .align 2, 0 +_080D6354: .4byte gUnknown_0202F7C8 +_080D6358: + ldr r4, _080D6370 + ldrb r0, [r4] + movs r6, 0x2 + eors r0, r6 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + bne _080D6374 + ldrb r4, [r4] + b _080D63A4 + .align 2, 0 +_080D6370: .4byte gUnknown_0202F7C8 +_080D6374: + ldrb r0, [r4] + adds r4, r6, 0 + eors r4, r0 + b _080D63A4 +_080D637C: + ldr r0, _080D6398 + ldrb r0, [r0] + movs r4, 0x2 + eors r0, r4 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080D63A0 + ldr r0, _080D639C + ldrb r0, [r0] + eors r4, r0 + b _080D63A4 + .align 2, 0 +_080D6398: .4byte gUnknown_0202F7C8 +_080D639C: .4byte gUnknown_0202F7C9 +_080D63A0: + ldr r0, _080D63C4 +_080D63A2: + ldrb r4, [r0] +_080D63A4: + ldr r0, _080D63C8 + movs r2, 0xA + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _080D63CC + adds r0, r4, 0 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + adds r0, r4, 0 + movs r1, 0x1 + b _080D63DE + .align 2, 0 +_080D63C4: .4byte gUnknown_0202F7C9 +_080D63C8: .4byte gUnknown_03004B00 +_080D63CC: + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + adds r0, r4, 0 + movs r1, 0x3 +_080D63DE: + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r7, _080D647C + ldr r6, _080D6480 + movs r1, 0 + ldrsh r0, [r6, r1] + lsls r0, 1 + adds r0, r7 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r2, 0x2 + ldrsh r0, [r6, r2] + muls r0, r1 + asrs r0, 8 + strh r0, [r5, 0x24] + movs r1, 0 + ldrsh r0, [r6, r1] + adds r0, 0x40 + lsls r0, 1 + adds r0, r7 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r2, 0x2 + ldrsh r0, [r6, r2] + muls r0, r1 + asrs r0, 8 + strh r0, [r5, 0x26] + ldrh r1, [r6, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D6442 + adds r0, r4, 0 + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r5, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x5] +_080D6442: + ldrb r2, [r5, 0x3] + lsls r2, 26 + lsrs r2, 27 + movs r0, 0x4 + ldrsh r1, [r6, r0] + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + ldr r3, _080D6484 + lsls r2, 3 + adds r2, r3 + adds r1, 0x40 + lsls r1, 1 + adds r1, r7 + ldrh r1, [r1] + strh r1, [r2, 0x6] + strh r1, [r2] + strh r0, [r2, 0x2] + lsls r0, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r2, 0x4] + ldrh r0, [r6, 0x6] + strh r0, [r5, 0x2E] + ldr r0, _080D6488 + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D647C: .4byte gSineTable +_080D6480: .4byte gUnknown_03004B00 +_080D6484: .4byte gOamMatrices +_080D6488: .4byte sub_80DA48C + thumb_func_end sub_80D6328 + + thumb_func_start sub_80D648C +sub_80D648C: @ 80D648C + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r5, _080D6500 + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldr r6, _080D6504 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x38] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x3A] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x3C] + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0xC + ldrsh r0, [r5, r3] + lsls r0, 2 + adds r1, r0 + ldr r3, _080D6508 + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D650C + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + ldr r1, _080D6510 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D6500: .4byte gUnknown_03004B00 +_080D6504: .4byte gUnknown_0202F7C9 +_080D6508: .4byte 0x000003ff +_080D650C: .4byte 0xfffffc00 +_080D6510: .4byte sub_80D6514 + thumb_func_end sub_80D648C + + thumb_func_start sub_80D6514 +sub_80D6514: @ 80D6514 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _080D657E + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + ldrh r2, [r4, 0x3C] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _080D6584 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080D6584 +_080D657E: + adds r0, r4, 0 + bl move_anim_8072740 +_080D6584: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D6514 + + thumb_func_start sub_80D658C +sub_80D658C: @ 80D658C + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x38] + subs r0, 0x1 + strh r0, [r3, 0x38] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080D65C4 + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x36] + strh r0, [r3, 0x38] +_080D65C4: + ldrh r0, [r3, 0x34] + subs r1, r0, 0x1 + strh r1, [r3, 0x34] + lsls r0, 16 + cmp r0, 0 + bgt _080D65D6 + adds r0, r3, 0 + bl move_anim_8072740 +_080D65D6: + pop {r0} + bx r0 + thumb_func_end sub_80D658C + + thumb_func_start sub_80D65DC +sub_80D65DC: @ 80D65DC + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _080D6644 + ldr r1, _080D6648 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080D65FE + ldr r0, _080D664C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D6606 +_080D65FE: + ldr r1, _080D6650 + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] +_080D6606: + ldr r5, _080D664C + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080D6650 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x22] + ldrh r0, [r4] + strh r0, [r6, 0x34] + ldrh r0, [r4, 0x6] + strh r0, [r6, 0x36] + strh r0, [r6, 0x38] + ldr r0, _080D6654 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D6644: .4byte gMain +_080D6648: .4byte 0x0000043d +_080D664C: .4byte gUnknown_0202F7C9 +_080D6650: .4byte gUnknown_03004B00 +_080D6654: .4byte sub_80D658C + thumb_func_end sub_80D65DC + + thumb_func_start sub_80D6658 +sub_80D6658: @ 80D6658 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r1, _080D6674 + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x2E] + movs r2, 0xE + ldrsh r0, [r1, r2] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080D667C + ldr r0, _080D6678 + b _080D667E + .align 2, 0 +_080D6674: .4byte gUnknown_03004B00 +_080D6678: .4byte gUnknown_0202F7C9 +_080D667C: + ldr r0, _080D670C +_080D667E: + ldrb r6, [r0] + ldr r0, _080D6710 + ldr r3, _080D6714 + adds r0, r3 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080D669C + adds r0, r6, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D66A4 +_080D669C: + ldr r1, _080D6718 + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080D66A4: + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080D6718 + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r5, 0x20] + adds r0, r6, 0 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r4, 0x2] + adds r0, r2 + strh r0, [r5, 0x22] + ldrh r1, [r4, 0xE] + ldr r0, _080D671C + ands r0, r1 + strh r0, [r5, 0x36] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x38] + ldrh r0, [r4, 0xA] + strh r0, [r5, 0x3A] + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x3C] + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0xC + ldrsh r0, [r4, r3] + lsls r0, 2 + adds r1, r0 + ldr r3, _080D6720 + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D6724 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r1, _080D6728 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D670C: .4byte gUnknown_0202F7C8 +_080D6710: .4byte gMain +_080D6714: .4byte 0x0000043d +_080D6718: .4byte gUnknown_03004B00 +_080D671C: .4byte 0x00007fff +_080D6720: .4byte 0x000003ff +_080D6724: .4byte 0xfffffc00 +_080D6728: .4byte sub_80D672C + thumb_func_end sub_80D6658 + + thumb_func_start sub_80D672C +sub_80D672C: @ 80D672C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + bne _080D6782 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080D6782: + ldrh r0, [r4, 0x2E] + subs r1, r0, 0x1 + strh r1, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080D6794 + adds r0, r4, 0 + bl move_anim_8072740 +_080D6794: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D672C + + thumb_func_start sub_80D679C +sub_80D679C: @ 80D679C + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8078764 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + ldr r3, _080D67D8 + movs r5, 0x6 + ldrsh r0, [r3, r5] + lsls r0, 2 + adds r1, r0 + ldr r5, _080D67DC + adds r0, r5, 0 + ands r1, r0 + ldr r0, _080D67E0 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + movs r1, 0x6 + ldrsh r0, [r3, r1] + cmp r0, 0x1 + bne _080D67E4 + ldrb r0, [r4, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + b _080D67F2 + .align 2, 0 +_080D67D8: .4byte gUnknown_03004B00 +_080D67DC: .4byte 0x000003ff +_080D67E0: .4byte 0xfffffc00 +_080D67E4: + cmp r0, 0x2 + bne _080D67F6 + ldrb r0, [r4, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x20 +_080D67F2: + orrs r1, r0 + strb r1, [r4, 0x3] +_080D67F6: + ldr r0, _080D6810 + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldr r0, _080D6814 + str r0, [r4, 0x1C] + ldr r1, _080D6818 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D6810: .4byte gUnknown_03004B00 +_080D6814: .4byte sub_80782D8 +_080D6818: .4byte move_anim_8072740 + thumb_func_end sub_80D679C + + thumb_func_start sub_80D681C +sub_80D681C: @ 80D681C + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r6, _080D6864 + ldrb r0, [r6] + movs r1, 0 + bl sub_8077ABC + ldr r1, _080D6868 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r1 + lsls r0, 24 + ldr r5, _080D686C + lsrs r0, 24 + ldrh r1, [r5] + adds r0, r1 + strh r0, [r4, 0x8] + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r5, 0x2] + adds r0, r1 + strh r0, [r4, 0xA] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0xC] + ldr r0, _080D6870 + str r0, [r4] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D6864: .4byte gUnknown_0202F7C9 +_080D6868: .4byte gTasks +_080D686C: .4byte gUnknown_03004B00 +_080D6870: .4byte sub_80D6874 + thumb_func_end sub_80D681C + + thumb_func_start sub_80D6874 +sub_80D6874: @ 80D6874 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r5, 0 + movs r7, 0 + ldr r1, _080D68B4 + lsls r0, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + ldrb r2, [r0, 0xC] + str r2, [sp] + ldrh r4, [r0, 0x8] + ldrh r6, [r0, 0xA] + movs r3, 0xC + ldrsh r0, [r0, r3] + mov r10, r1 + cmp r0, 0 + bne _080D68B8 + movs r0, 0 + mov r8, r0 + movs r2, 0x1 + movs r1, 0x10 + mov r12, r1 + b _080D68C2 + .align 2, 0 +_080D68B4: .4byte gTasks +_080D68B8: + movs r2, 0x10 + mov r12, r2 + movs r3, 0x8 + mov r8, r3 + movs r2, 0x4 +_080D68C2: + mov r0, r9 + lsls r1, r0, 2 + adds r0, r1, r0 + lsls r0, 3 + add r0, r10 + movs r3, 0x1C + ldrsh r0, [r0, r3] + mov r10, r1 + cmp r0, 0xA + bhi _080D69B8 + lsls r0, 2 + ldr r1, _080D68E0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D68E0: .4byte _080D68E4 + .align 2, 0 +_080D68E4: + .4byte _080D6910 + .4byte _080D69B8 + .4byte _080D6924 + .4byte _080D69B8 + .4byte _080D6944 + .4byte _080D69B8 + .4byte _080D695A + .4byte _080D69B8 + .4byte _080D697C + .4byte _080D69B8 + .4byte _080D69B0 +_080D6910: + ldr r0, _080D6920 + lsls r1, r4, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + mov r4, r12 + lsls r3, r4, 16 + b _080D6992 + .align 2, 0 +_080D6920: .4byte gSpriteTemplate_83D9938 +_080D6924: + mov r0, r12 + lsls r3, r0, 17 + mov r1, r8 + adds r0, r1, r2 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, _080D6940 + lsls r1, r4, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + b _080D6992 + .align 2, 0 +_080D6940: .4byte gSpriteTemplate_83D9938 +_080D6944: + mov r3, r12 + lsls r0, r3, 16 + asrs r0, 16 + lsls r3, r0, 1 + adds r3, r0 + lsls r0, r2, 1 + add r0, r8 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + b _080D6986 +_080D695A: + mov r0, r12 + lsls r3, r0, 18 + lsls r0, r2, 1 + adds r0, r2 + add r0, r8 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, _080D6978 + lsls r1, r4, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + b _080D6992 + .align 2, 0 +_080D6978: .4byte gSpriteTemplate_83D9938 +_080D697C: + mov r1, r12 + lsls r0, r1, 16 + asrs r0, 16 + lsls r3, r0, 2 + adds r3, r0 +_080D6986: + ldr r0, _080D69AC + lsls r1, r4, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + lsls r3, 16 +_080D6992: + asrs r3, 16 + adds r2, r3 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + b _080D69B8 + .align 2, 0 +_080D69AC: .4byte gSpriteTemplate_83D9938 +_080D69B0: + mov r0, r9 + bl move_anim_task_del + b _080D69FC +_080D69B8: + cmp r7, 0 + beq _080D69EC + ldr r4, _080D6A0C + lsls r3, r5, 4 + adds r3, r5 + lsls r3, 2 + adds r0, r3, r4 + ldrh r5, [r0, 0x4] + lsls r2, r5, 22 + lsrs r2, 22 + add r2, r8 + ldr r6, _080D6A10 + adds r1, r6, 0 + ands r2, r1 + ldr r1, _080D6A14 + ands r1, r5 + orrs r1, r2 + strh r1, [r0, 0x4] + mov r1, sp + ldrh r1, [r1] + strh r1, [r0, 0x2E] + adds r4, 0x1C + adds r3, r4 + ldr r1, [r3] + bl _call_via_r1 +_080D69EC: + ldr r0, _080D6A18 + mov r1, r10 + add r1, r9 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x1C] + adds r0, 0x1 + strh r0, [r1, 0x1C] +_080D69FC: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D6A0C: .4byte gSprites +_080D6A10: .4byte 0x000003ff +_080D6A14: .4byte 0xfffffc00 +_080D6A18: .4byte gTasks + thumb_func_end sub_80D6874 + + thumb_func_start sub_80D6A1C +sub_80D6A1C: @ 80D6A1C + push {lr} + adds r3, r0, 0 + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080D6A3E + ldrb r1, [r3, 0x1] + movs r2, 0x3F + adds r0, r2, 0 + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r3, 0x1] + ldrb r0, [r3, 0x3] + ands r2, r0 + strb r2, [r3, 0x3] + b _080D6A52 +_080D6A3E: + ldrb r2, [r3, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3, 0x1] + ldrb r0, [r3, 0x3] + ands r1, r0 + movs r0, 0x40 + orrs r1, r0 + strb r1, [r3, 0x3] +_080D6A52: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + bne _080D6A66 + adds r0, r3, 0 + bl DestroySprite +_080D6A66: + pop {r0} + bx r0 + thumb_func_end sub_80D6A1C + + thumb_func_start sub_80D6A6C +sub_80D6A6C: @ 80D6A6C + push {r4-r7,lr} + adds r4, r0, 0 + ldr r0, _080D6AD4 + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] + ldrh r3, [r4, 0x22] + adds r0, r3 + strh r0, [r4, 0x22] + ldr r0, _080D6AD8 + adds r1, 0x20 + lsls r1, 16 + asrs r1, 16 + movs r7, 0x22 + ldrsh r2, [r4, r7] + adds r3, r4, 0 + adds r3, 0x43 + ldrb r3, [r3] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080D6ADC + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r6, r2, r3 + ldrh r5, [r6, 0x4] + lsls r1, r5, 22 + lsrs r1, 22 + adds r1, 0x8 + ldr r7, _080D6AE0 + adds r0, r7, 0 + ands r1, r0 + ldr r0, _080D6AE4 + ands r0, r5 + orrs r0, r1 + strh r0, [r6, 0x4] + ldr r1, _080D6AE8 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + adds r3, 0x1C + adds r2, r3 + ldr r0, _080D6AEC + str r0, [r2] + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D6AD4: .4byte gUnknown_03004B00 +_080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950 +_080D6ADC: .4byte gSprites +_080D6AE0: .4byte 0x000003ff +_080D6AE4: .4byte 0xfffffc00 +_080D6AE8: .4byte gUnknown_0202F7B2 +_080D6AEC: .4byte sub_80D6AF0 + thumb_func_end sub_80D6A6C + + thumb_func_start sub_80D6AF0 +sub_80D6AF0: @ 80D6AF0 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080D6B24 + movs r0, 0 + strh r0, [r3, 0x2E] + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] +_080D6B24: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _080D6B38 + adds r0, r3, 0 + bl move_anim_8072740 +_080D6B38: + pop {r0} + bx r0 + thumb_func_end sub_80D6AF0 + + thumb_func_start sub_80D6B3C +sub_80D6B3C: @ 80D6B3C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080D6B5C + adds r5, r1, r0 + ldr r0, _080D6B60 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D6B68 + ldr r4, _080D6B64 + b _080D6B6A + .align 2, 0 +_080D6B5C: .4byte gTasks +_080D6B60: .4byte gUnknown_03004B00 +_080D6B64: .4byte gUnknown_0202F7C8 +_080D6B68: + ldr r4, _080D6BAC +_080D6B6A: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x24] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x26] + ldr r2, _080D6BB0 + ldrh r0, [r2, 0x2] + movs r1, 0 + strh r0, [r5, 0x14] + strh r1, [r5, 0x16] + strh r1, [r5, 0x18] + strh r1, [r5, 0x1A] + strh r1, [r5, 0x1C] + ldrh r0, [r2, 0x6] + strh r0, [r5, 0x1E] + strh r1, [r5, 0x20] + ldrh r0, [r2, 0x4] + strh r0, [r5, 0x22] + ldr r0, _080D6BB4 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D6BAC: .4byte gUnknown_0202F7C9 +_080D6BB0: .4byte gUnknown_03004B00 +_080D6BB4: .4byte sub_80D6BB8 + thumb_func_end sub_80D6B3C + + thumb_func_start sub_80D6BB8 +sub_80D6BB8: @ 80D6BB8 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + adds r2, r6, 0 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080D6CA0 + adds r5, r0, r1 + movs r1, 0x14 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080D6CB8 + ldrh r0, [r5, 0x20] + adds r0, 0x1 + movs r7, 0 + strh r0, [r5, 0x20] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x22 + ldrsh r1, [r5, r2] + cmp r0, r1 + ble _080D6CC6 + strh r7, [r5, 0x20] + ldr r0, _080D6CA4 + movs r3, 0x24 + ldrsh r1, [r5, r3] + movs r3, 0x26 + ldrsh r2, [r5, r3] + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080D6CC6 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _080D6CA8 + adds r4, r0 + ldr r1, _080D6CAC + movs r2, 0x1A + ldrsh r0, [r5, r2] + lsls r0, 1 + adds r0, r1 + movs r3, 0 + ldrsb r3, [r0, r3] + ldrh r0, [r4, 0x20] + adds r3, r0 + strh r3, [r4, 0x20] + movs r2, 0x1A + ldrsh r0, [r5, r2] + lsls r0, 1 + adds r1, 0x1 + adds r0, r1 + movs r2, 0 + ldrsb r2, [r0, r2] + ldrh r0, [r4, 0x22] + adds r2, r0 + strh r2, [r4, 0x22] + movs r1, 0x18 + ldrsh r0, [r5, r1] + lsls r1, r0, 2 + adds r1, r0 + movs r0, 0x28 + subs r0, r1 + strh r0, [r4, 0x2E] + strh r3, [r4, 0x30] + ldrh r0, [r5, 0x24] + strh r0, [r4, 0x32] + strh r2, [r4, 0x34] + ldrh r0, [r5, 0x26] + strh r0, [r4, 0x36] + strh r6, [r4, 0x38] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _080D6CB0 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080D6CB4 + str r0, [r4, 0x1C] + ldrh r0, [r5, 0x1A] + adds r0, 0x1 + strh r0, [r5, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _080D6C70 + strh r7, [r5, 0x1A] +_080D6C70: + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x1E + ldrsh r1, [r5, r2] + cmp r0, r1 + blt _080D6C92 + strh r7, [r5, 0x1C] + ldrh r1, [r5, 0x18] + movs r3, 0x18 + ldrsh r0, [r5, r3] + cmp r0, 0x5 + bgt _080D6C92 + adds r0, r1, 0x1 + strh r0, [r5, 0x18] +_080D6C92: + ldrh r0, [r5, 0x16] + adds r0, 0x1 + strh r0, [r5, 0x16] + ldrh r0, [r5, 0x14] + subs r0, 0x1 + strh r0, [r5, 0x14] + b _080D6CC6 + .align 2, 0 +_080D6CA0: .4byte gTasks +_080D6CA4: .4byte gSpriteTemplate_83D99B8 +_080D6CA8: .4byte gSprites +_080D6CAC: .4byte gUnknown_083D9968 +_080D6CB0: .4byte sub_80D6D00 +_080D6CB4: .4byte sub_8078600 +_080D6CB8: + movs r1, 0x16 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D6CC6 + adds r0, r2, 0 + bl move_anim_task_del +_080D6CC6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80D6BB8 + + thumb_func_start sub_80D6CCC +sub_80D6CCC: @ 80D6CCC + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080D6CF4 + ldr r2, _080D6CFC + movs r0, 0x38 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x16] + subs r1, 0x1 + strh r1, [r0, 0x16] + adds r0, r4, 0 + bl DestroySprite +_080D6CF4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D6CFC: .4byte gTasks + thumb_func_end sub_80D6CCC + + thumb_func_start sub_80D6D00 +sub_80D6D00: @ 80D6D00 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, _080D6D14 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D6D14: .4byte sub_80D6CCC + thumb_func_end sub_80D6D00 + + thumb_func_start sub_80D6D18 +sub_80D6D18: @ 80D6D18 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080D6D2C + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D6D34 + ldr r4, _080D6D30 + b _080D6D36 + .align 2, 0 +_080D6D2C: .4byte gUnknown_03004B00 +_080D6D30: .4byte gUnknown_0202F7C8 +_080D6D34: + ldr r4, _080D6D64 +_080D6D36: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080D6D68 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080D6D6C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D6D64: .4byte gUnknown_0202F7C9 +_080D6D68: .4byte move_anim_8074EE0 +_080D6D6C: .4byte sub_80785E4 + thumb_func_end sub_80D6D18 + + thumb_func_start sub_80D6D70 +sub_80D6D70: @ 80D6D70 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080D6D84 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D6D8C + ldr r4, _080D6D88 + b _080D6D8E + .align 2, 0 +_080D6D84: .4byte gUnknown_03004B00 +_080D6D88: .4byte gUnknown_0202F7C8 +_080D6D8C: + ldr r4, _080D6DC8 +_080D6D8E: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080D6DCC + ldrh r0, [r1, 0x2] + strh r0, [r5, 0x24] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x26] + ldr r1, _080D6DD0 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080D6DD4 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D6DC8: .4byte gUnknown_0202F7C9 +_080D6DCC: .4byte gUnknown_03004B00 +_080D6DD0: .4byte move_anim_8072740 +_080D6DD4: .4byte sub_8078600 + thumb_func_end sub_80D6D70 + + thumb_func_start sub_80D6DD8 +sub_80D6DD8: @ 80D6DD8 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r4, _080D6E30 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x3A] + movs r0, 0x10 + strh r0, [r5, 0x3C] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080D6E26 + movs r1, 0x3C + ldrsh r0, [r5, r1] + negs r0, r0 + strh r0, [r5, 0x3C] +_080D6E26: + ldr r0, _080D6E34 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D6E30: .4byte gUnknown_0202F7C8 +_080D6E34: .4byte sub_80D6E38 + thumb_func_end sub_80D6DD8 + + thumb_func_start sub_80D6E38 +sub_80D6E38: @ 80D6E38 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D6E4A + cmp r0, 0x1 + beq _080D6E60 + b _080D6E90 +_080D6E4A: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x28 + ble _080D6E90 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080D6E90 +_080D6E60: + ldrh r2, [r4, 0x3C] + ldrh r1, [r4, 0x20] + adds r0, r2, r1 + strh r0, [r4, 0x20] + ldr r3, _080D6E98 + movs r0, 0x3A + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x24] + adds r2, r1 + strh r2, [r0, 0x24] + ldrh r0, [r4, 0x20] + adds r0, 0x50 + lsls r0, 16 + movs r1, 0xC8 + lsls r1, 17 + cmp r0, r1 + bls _080D6E90 + adds r0, r4, 0 + bl move_anim_8074EE0 +_080D6E90: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D6E98: .4byte gSprites + thumb_func_end sub_80D6E38 + + thumb_func_start sub_80D6E9C +sub_80D6E9C: @ 80D6E9C + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080D6EC0 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080D6F30 + cmp r0, 0x1 + bgt _080D6EC4 + cmp r0, 0 + beq _080D6ED0 + b _080D7000 + .align 2, 0 +_080D6EC0: .4byte gTasks +_080D6EC4: + cmp r0, 0x2 + beq _080D6F8C + cmp r0, 0x3 + bne _080D6ECE + b _080D6FE0 +_080D6ECE: + b _080D7000 +_080D6ED0: + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + strh r0, [r5, 0x26] + ldr r4, _080D6F04 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x24] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D6F0C + ldr r0, _080D6F08 + strh r0, [r5, 0x24] + movs r0, 0x2 + b _080D6F12 + .align 2, 0 +_080D6F04: .4byte gUnknown_0202F7C8 +_080D6F08: .4byte 0x0000ffe0 +_080D6F0C: + movs r0, 0x20 + strh r0, [r5, 0x24] + ldr r0, _080D6F28 +_080D6F12: + strh r0, [r5, 0x22] + ldr r2, _080D6F2C + movs r0, 0x26 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r5, 0x24] + strh r1, [r0, 0x24] + b _080D6FD2 + .align 2, 0 +_080D6F28: .4byte 0x0000fffe +_080D6F2C: .4byte gSprites +_080D6F30: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D7000 + movs r0, 0 + strh r0, [r5, 0xA] + ldr r4, _080D6F88 + movs r1, 0x26 + ldrsh r0, [r5, r1] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + adds r2, 0x3E + ldrb r3, [r2] + lsls r0, r3, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrh r1, [r5, 0x24] + movs r2, 0x24 + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080D6FD2 + ldrh r2, [r5, 0x22] + adds r2, r1, r2 + strh r2, [r5, 0x24] + movs r0, 0x26 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r2, [r0, 0x24] + b _080D7000 + .align 2, 0 +_080D6F88: .4byte gSprites +_080D6F8C: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D7000 + movs r0, 0 + strh r0, [r5, 0xA] + ldr r1, _080D6FDC + movs r2, 0x26 + ldrsh r0, [r5, r2] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + adds r2, 0x3E + ldrb r3, [r2] + lsls r0, r3, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + bne _080D7000 +_080D6FD2: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080D7000 + .align 2, 0 +_080D6FDC: .4byte gSprites +_080D6FE0: + ldr r2, _080D7008 + movs r0, 0x26 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + adds r0, r3, 0 + bl move_anim_task_del +_080D7000: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D7008: .4byte gSprites + thumb_func_end sub_80D6E9C + + thumb_func_start sub_80D700C +sub_80D700C: @ 80D700C + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080D7030 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080D7026 + b _080D714C +_080D7026: + cmp r0, 0x1 + bgt _080D7034 + cmp r0, 0 + beq _080D703C + b _080D718E + .align 2, 0 +_080D7030: .4byte gTasks +_080D7034: + cmp r0, 0x2 + bne _080D703A + b _080D7180 +_080D703A: + b _080D718E +_080D703C: + ldr r4, _080D707C + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080D7052 + movs r1, 0x1 +_080D7052: + movs r6, 0 + strh r1, [r5, 0xA] + ldr r0, _080D7080 + movs r1, 0 + ldrsh r2, [r0, r1] + adds r3, r0, 0 + cmp r2, 0 + beq _080D7088 + cmp r2, 0x4 + beq _080D70B0 + ldrh r1, [r3] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D70E8 + movs r0, 0x80 + lsls r0, 1 + strh r0, [r5, 0xE] + ldr r0, _080D7084 + b _080D70F0 + .align 2, 0 +_080D707C: .4byte gUnknown_0202F7C8 +_080D7080: .4byte gUnknown_03004B00 +_080D7084: .4byte 0x0000fff0 +_080D7088: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xE] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x12] + movs r2, 0xA + ldrsh r0, [r5, r2] + lsls r0, 7 + adds r0, 0x78 + strh r0, [r5, 0x10] + b _080D7126 +_080D70B0: + movs r0, 0xA + ldrsh r1, [r5, r0] + lsls r1, 7 + movs r0, 0x78 + subs r0, r1 + strh r0, [r5, 0xE] + ldr r4, _080D70E4 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x12] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r2, 0xA + ldrsh r1, [r5, r2] + lsls r1, 5 + subs r0, r1 + strh r0, [r5, 0x10] + b _080D7126 + .align 2, 0 +_080D70E4: .4byte gUnknown_0202F7C9 +_080D70E8: + ldr r0, _080D710C + strh r0, [r5, 0xE] + movs r0, 0x80 + lsls r0, 1 +_080D70F0: + strh r0, [r5, 0x10] + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080D7110 + movs r2, 0 + ldrsh r0, [r3, r2] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 1 + movs r0, 0x50 + subs r0, r1 + strh r0, [r5, 0x12] + b _080D7126 + .align 2, 0 +_080D710C: .4byte 0x0000fff0 +_080D7110: + movs r0, 0 + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + adds r0, 0x28 + strh r0, [r5, 0x12] + ldrh r1, [r5, 0xE] + ldrh r0, [r5, 0x10] + strh r0, [r5, 0xE] + strh r1, [r5, 0x10] +_080D7126: + movs r2, 0xE + ldrsh r1, [r5, r2] + movs r2, 0x10 + ldrsh r0, [r5, r2] + cmp r1, r0 + bge _080D713C + movs r1, 0 + movs r0, 0x1 + strh r0, [r5, 0xA] + strh r1, [r5, 0x14] + b _080D7178 +_080D713C: + ldr r0, _080D7148 + strh r0, [r5, 0xA] + movs r0, 0x3 + strh r0, [r5, 0x14] + b _080D7178 + .align 2, 0 +_080D7148: .4byte 0x0000ffff +_080D714C: + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + ble _080D718E + movs r0, 0 + strh r0, [r5, 0xC] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80D7194 + lsls r0, 24 + cmp r0, 0 + bne _080D7178 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80D7194 + lsls r0, 24 + cmp r0, 0 + beq _080D718E +_080D7178: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080D718E +_080D7180: + movs r1, 0x16 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D718E + adds r0, r4, 0 + bl move_anim_task_del +_080D718E: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80D700C + + thumb_func_start sub_80D7194 +sub_80D7194: @ 80D7194 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _080D7220 + movs r2, 0xE + ldrsh r1, [r4, r2] + movs r3, 0x12 + ldrsh r2, [r4, r3] + movs r3, 0x23 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080D71CA + ldr r1, _080D7224 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + strh r5, [r0, 0x3A] + movs r1, 0x7 + strh r1, [r0, 0x3C] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] +_080D71CA: + ldrh r1, [r4, 0xA] + ldrh r5, [r4, 0x14] + adds r0, r1, r5 + strh r0, [r4, 0x14] + lsls r0, 16 + cmp r0, 0 + bge _080D71DC + movs r0, 0x3 + strh r0, [r4, 0x14] +_080D71DC: + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0x3 + ble _080D71E8 + movs r0, 0 + strh r0, [r4, 0x14] +_080D71E8: + movs r3, 0xA + ldrsh r0, [r4, r3] + lsls r0, 4 + ldrh r5, [r4, 0xE] + adds r2, r0, r5 + strh r2, [r4, 0xE] + lsls r0, r1, 16 + asrs r3, r0, 16 + cmp r3, 0x1 + bne _080D7208 + lsls r0, r2, 16 + asrs r0, 16 + movs r5, 0x10 + ldrsh r1, [r4, r5] + cmp r0, r1 + bge _080D721C +_080D7208: + movs r0, 0x1 + negs r0, r0 + cmp r3, r0 + bne _080D7228 + lsls r0, r2, 16 + asrs r0, 16 + movs r2, 0x10 + ldrsh r1, [r4, r2] + cmp r0, r1 + bgt _080D7228 +_080D721C: + movs r0, 0x1 + b _080D722A + .align 2, 0 +_080D7220: .4byte gSpriteTemplate_83D9B10 +_080D7224: .4byte gSprites +_080D7228: + movs r0, 0 +_080D722A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80D7194 + + thumb_func_start sub_80D7230 +sub_80D7230: @ 80D7230 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080D7270 + ldr r3, _080D7278 + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080D7270: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D7278: .4byte gTasks + thumb_func_end sub_80D7230 + + thumb_func_start sub_80D727C +sub_80D727C: @ 80D727C + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080D728E + cmp r0, 0x1 + beq _080D72C0 + b _080D72D4 +_080D728E: + ldr r4, _080D72BC + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + adds r0, r5, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080D72D4 + .align 2, 0 +_080D72BC: .4byte gUnknown_0202F7C8 +_080D72C0: + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080D72D4 + adds r0, r5, 0 + bl move_anim_8074EE0 +_080D72D4: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D727C + + thumb_func_start sub_80D72DC +sub_80D72DC: @ 80D72DC + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080D7300 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x4 + bls _080D72F6 + b _080D7468 +_080D72F6: + lsls r0, 2 + ldr r1, _080D7304 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D7300: .4byte gTasks +_080D7304: .4byte _080D7308 + .align 2, 0 +_080D7308: + .4byte _080D731C + .4byte _080D73AC + .4byte _080D73E8 + .4byte _080D7444 + .4byte _080D7454 +_080D731C: + ldr r4, _080D73A0 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x14] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x16] + movs r0, 0x4 + strh r0, [r5, 0x18] + ldr r0, _080D73A4 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x1C] + movs r2, 0x1C + ldrsh r0, [r5, r2] + movs r2, 0x14 + ldrsh r1, [r5, r2] + subs r0, r1 + movs r1, 0x5 + bl __divsi3 + strh r0, [r5, 0x1A] + movs r0, 0x7 + strh r0, [r5, 0x10] + ldr r0, _080D73A8 + strh r0, [r5, 0x12] + movs r0, 0xC + strh r0, [r5, 0x1E] + subs r0, 0x4C + bl sub_8076F98 + lsls r0, 24 + asrs r0, 24 + strh r0, [r5, 0x20] + movs r0, 0x3F + bl sub_8076F98 + lsls r0, 24 + asrs r0, 24 + strh r0, [r5, 0x22] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x24] + movs r1, 0x22 + ldrsh r0, [r5, r1] + movs r2, 0x20 + ldrsh r1, [r5, r2] + subs r0, r1 + movs r1, 0x3 + bl __divsi3 + strh r0, [r5, 0x26] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + b _080D7466 + .align 2, 0 +_080D73A0: .4byte gUnknown_0202F7C8 +_080D73A4: .4byte gUnknown_0202F7C9 +_080D73A8: .4byte 0x0000ffff +_080D73AC: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + cmp r0, 0 + ble _080D73DC + movs r0, 0 + strh r0, [r5, 0xA] + adds r0, r5, 0 + adds r1, r2, 0 + bl sub_80D7470 + lsls r0, 24 + cmp r0, 0 + beq _080D73DC + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r0, 0x5 + bne _080D73D6 + movs r0, 0x3 + b _080D73DA +_080D73D6: + ldrh r0, [r5, 0x8] + adds r0, 0x1 +_080D73DA: + strh r0, [r5, 0x8] +_080D73DC: + ldrh r1, [r5, 0x1E] + movs r2, 0x1E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080D7468 + b _080D745E +_080D73E8: + ldrh r1, [r5, 0x1E] + movs r2, 0x1E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080D73F6 + subs r0, r1, 0x1 + strh r0, [r5, 0x1E] +_080D73F6: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + movs r3, 0 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080D7468 + strh r3, [r5, 0xA] + ldrh r1, [r5, 0xC] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080D7422 + movs r0, 0x4 + strh r0, [r5, 0x16] + movs r0, 0x44 + strh r0, [r5, 0x18] + strh r3, [r5, 0x10] + strh r2, [r5, 0x12] + b _080D7432 +_080D7422: + movs r0, 0x44 + strh r0, [r5, 0x16] + movs r0, 0x4 + strh r0, [r5, 0x18] + movs r0, 0x7 + strh r0, [r5, 0x10] + ldr r0, _080D7440 + strh r0, [r5, 0x12] +_080D7432: + movs r1, 0x1E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080D7464 + movs r0, 0x4 + b _080D7466 + .align 2, 0 +_080D7440: .4byte 0x0000ffff +_080D7444: + movs r1, 0xE + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D7468 + adds r0, r2, 0 + bl move_anim_task_del + b _080D7468 +_080D7454: + ldrh r1, [r5, 0x1E] + movs r2, 0x1E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080D7464 +_080D745E: + subs r0, r1, 0x1 + strh r0, [r5, 0x1E] + b _080D7468 +_080D7464: + movs r0, 0x1 +_080D7466: + strh r0, [r5, 0x8] +_080D7468: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D72DC + + thumb_func_start sub_80D7470 +sub_80D7470: @ 80D7470 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _080D7538 + movs r2, 0x14 + ldrsh r1, [r4, r2] + movs r3, 0x16 + ldrsh r2, [r4, r3] + movs r3, 0x23 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080D74DC + ldr r1, _080D753C + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrh r2, [r3, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + ldrh r6, [r4, 0x10] + adds r1, r6 + ldr r6, _080D7540 + adds r0, r6, 0 + ands r1, r0 + ldr r0, _080D7544 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x10] + adds r0, r1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bge _080D74C4 + movs r0, 0x7 + strh r0, [r4, 0x10] +_080D74C4: + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r0, 0x7 + ble _080D74D0 + movs r0, 0 + strh r0, [r4, 0x10] +_080D74D0: + strh r5, [r3, 0x3A] + movs r0, 0x3 + strh r0, [r3, 0x3C] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] +_080D74DC: + movs r3, 0x10 + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080D74FE + movs r5, 0x12 + ldrsh r0, [r4, r5] + cmp r0, 0 + ble _080D74FE + ldrh r1, [r4, 0x26] + ldrh r6, [r4, 0x24] + adds r1, r6 + strh r1, [r4, 0x24] + lsls r1, 24 + asrs r1, 24 + movs r0, 0x76 + bl PlaySE12WithPanning +_080D74FE: + movs r0, 0x12 + ldrsh r3, [r4, r0] + ldrh r2, [r4, 0x16] + cmp r3, 0 + bge _080D7514 + lsls r0, r2, 16 + asrs r0, 16 + movs r5, 0x18 + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _080D7524 +_080D7514: + cmp r3, 0 + ble _080D7548 + lsls r0, r2, 16 + asrs r0, 16 + movs r6, 0x18 + ldrsh r1, [r4, r6] + cmp r0, r1 + blt _080D7548 +_080D7524: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x1A] + ldrh r1, [r4, 0x14] + adds r0, r1 + strh r0, [r4, 0x14] + movs r0, 0x1 + b _080D7554 + .align 2, 0 +_080D7538: .4byte gSpriteTemplate_83D9B40 +_080D753C: .4byte gSprites +_080D7540: .4byte 0x000003ff +_080D7544: .4byte 0xfffffc00 +_080D7548: + movs r3, 0x12 + ldrsh r0, [r4, r3] + lsls r0, 3 + adds r0, r2, r0 + strh r0, [r4, 0x16] + movs r0, 0 +_080D7554: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80D7470 + + thumb_func_start sub_80D755C +sub_80D755C: @ 80D755C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080D7592 + ldr r3, _080D7598 + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080D7592: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D7598: .4byte gTasks + thumb_func_end sub_80D755C + + thumb_func_start sub_80D759C +sub_80D759C: @ 80D759C + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080D75C0 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080D7618 + cmp r0, 0x1 + bgt _080D75C4 + cmp r0, 0 + beq _080D75CA + b _080D764E + .align 2, 0 +_080D75C0: .4byte gTasks +_080D75C4: + cmp r0, 0x2 + beq _080D7640 + b _080D764E +_080D75CA: + ldr r0, _080D7614 + ldrb r0, [r0] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r5, 0x26] + strh r0, [r5, 0x24] + cmp r0, 0x10 + ble _080D75F4 + adds r2, r0, 0 +_080D75E4: + adds r1, r2, 0 + subs r1, 0x20 + adds r2, r1, 0 + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x10 + bgt _080D75E4 + strh r1, [r5, 0x24] +_080D75F4: + ldr r4, _080D7614 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x2 + strh r0, [r5, 0x20] + b _080D7638 + .align 2, 0 +_080D7614: .4byte gUnknown_0202F7C9 +_080D7618: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D764E + movs r0, 0 + strh r0, [r5, 0xA] + adds r0, r5, 0 + adds r1, r2, 0 + bl sub_80D7654 + lsls r0, 24 + cmp r0, 0 + beq _080D764E +_080D7638: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080D764E +_080D7640: + movs r1, 0x1C + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D764E + adds r0, r2, 0 + bl move_anim_task_del +_080D764E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D759C + + thumb_func_start sub_80D7654 +sub_80D7654: @ 80D7654 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _080D76B0 + movs r2, 0x22 + ldrsh r1, [r4, r2] + movs r3, 0x24 + ldrsh r2, [r4, r3] + ldrh r3, [r4, 0x20] + lsls r3, 24 + lsrs r3, 24 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080D7698 + ldr r3, _080D76B4 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r1, r0, r1 + ldr r2, _080D76B8 + str r2, [r1] + adds r0, r3 + strh r5, [r0, 0x3A] + movs r1, 0xA + strh r1, [r0, 0x3C] + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] +_080D7698: + ldrh r2, [r4, 0x24] + movs r0, 0x24 + ldrsh r1, [r4, r0] + movs r3, 0x26 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080D76BC + adds r0, r2, 0 + adds r0, 0x20 + strh r0, [r4, 0x24] + movs r0, 0 + b _080D76BE + .align 2, 0 +_080D76B0: .4byte gBattleAnimSpriteTemplate_83D97D0 +_080D76B4: .4byte gSprites +_080D76B8: .4byte sub_80D76C4 +_080D76BC: + movs r0, 0x1 +_080D76BE: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80D7654 + + thumb_func_start sub_80D76C4 +sub_80D76C4: @ 80D76C4 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D76F8 + ldr r3, _080D7700 + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080D76F8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D7700: .4byte gTasks + thumb_func_end sub_80D76C4 + + thumb_func_start sub_80D7704 +sub_80D7704: @ 80D7704 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x7 + ldr r3, _080D780C + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D7810 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r4, _080D7814 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r4, _080D7818 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r4] + movs r1, 0x3 + str r3, [sp] + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080D781C + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r1] + ldr r3, [sp] + adds r0, r3 + strh r0, [r5, 0x30] + ldrh r0, [r1, 0x4] + mov r4, r9 + adds r0, r4, r0 + strh r0, [r5, 0x32] + ldrh r0, [r1, 0x2] + adds r0, r6 + strh r0, [r5, 0x34] + ldrh r0, [r1, 0x6] + mov r7, r8 + adds r0, r7, r0 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8078314 + adds r4, 0x20 + movs r0, 0x98 + lsls r0, 1 + mov r12, r0 + ldr r3, [sp] + cmp r4, r12 + bhi _080D77DE + adds r0, r7, 0 + adds r0, 0x20 + ldrh r1, [r5, 0x30] + ldrh r2, [r5, 0x32] + cmp r0, 0xE0 + bhi _080D77DE + adds r4, r1, 0 + mov r10, r12 +_080D77AA: + mov r7, r9 + lsls r1, r7, 16 + asrs r1, 16 + adds r1, r4 + lsls r1, 16 + mov r7, r8 + lsls r0, r7, 16 + asrs r0, 16 + adds r0, r2 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsrs r0, r1, 16 + mov r9, r0 + movs r7, 0x80 + lsls r7, 14 + adds r1, r7 + lsrs r1, 16 + cmp r1, r10 + bhi _080D77DE + mov r1, r8 + lsls r0, r1, 16 + adds r0, r7 + lsrs r0, 16 + cmp r0, 0xE0 + bls _080D77AA +_080D77DE: + ldrh r0, [r5, 0x30] + negs r7, r0 + strh r7, [r5, 0x30] + ldrh r0, [r5, 0x32] + negs r4, r0 + strh r4, [r5, 0x32] + lsls r0, r3, 16 + movs r1, 0x80 + lsls r1, 14 + adds r0, r1 + lsrs r0, 16 + movs r2, 0x98 + lsls r2, 1 + mov r12, r2 + ldr r1, _080D781C + mov r10, r1 + cmp r0, r12 + bhi _080D784A + lsls r1, r6, 16 + movs r2, 0x80 + lsls r2, 14 + adds r0, r1, r2 + b _080D7842 + .align 2, 0 +_080D780C: .4byte 0x000003ff +_080D7810: .4byte 0xfffffc00 +_080D7814: .4byte gUnknown_0202F7C9 +_080D7818: .4byte gUnknown_0202F7C8 +_080D781C: .4byte gUnknown_03004B00 +_080D7820: + lsls r1, r3, 16 + asrs r1, 16 + adds r1, r7 + lsls r1, 16 + asrs r0, r2, 16 + adds r0, r4 + lsls r0, 16 + lsrs r6, r0, 16 + lsrs r3, r1, 16 + movs r0, 0x80 + lsls r0, 14 + adds r1, r0 + lsrs r1, 16 + cmp r1, r12 + bhi _080D784A + lsls r1, r6, 16 + adds r0, r1, r0 +_080D7842: + lsrs r0, 16 + adds r2, r1, 0 + cmp r0, 0xE0 + bls _080D7820 +_080D784A: + strh r3, [r5, 0x20] + strh r6, [r5, 0x22] + mov r1, r10 + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x2E] + strh r3, [r5, 0x30] + mov r2, r9 + strh r2, [r5, 0x32] + strh r6, [r5, 0x34] + mov r3, r8 + strh r3, [r5, 0x36] + adds r0, r5, 0 + bl sub_8078314 + mov r7, r10 + ldrh r0, [r7, 0xA] + strh r0, [r5, 0x34] + ldrh r0, [r7, 0xC] + strh r0, [r5, 0x36] + ldr r0, _080D7884 + str r0, [r5, 0x1C] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D7884: .4byte sub_80D7888 + thumb_func_end sub_80D7704 + + thumb_func_start sub_80D7888 +sub_80D7888: @ 80D7888 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D78E0 + ldrh r1, [r4, 0x30] + ldrh r2, [r4, 0x38] + adds r1, r2 + strh r1, [r4, 0x38] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x3A] + adds r0, r2 + strh r0, [r4, 0x3A] + strh r1, [r4, 0x24] + strh r0, [r4, 0x26] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x36] + ldrh r2, [r4, 0x3C] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + b _080D78E6 +_080D78E0: + adds r0, r4, 0 + bl move_anim_8072740 +_080D78E6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D7888 + + thumb_func_start sub_80D78EC +sub_80D78EC: @ 80D78EC + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D7920 + ldrh r0, [r0] + strh r0, [r4, 0x2E] + movs r0, 0x3C + strh r0, [r4, 0x30] + movs r0, 0x9 + strh r0, [r4, 0x32] + movs r0, 0x1E + strh r0, [r4, 0x34] + movs r0, 0xFE + lsls r0, 8 + strh r0, [r4, 0x36] + ldr r1, _080D7924 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r1, _080D7928 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D7920: .4byte gUnknown_03004B00 +_080D7924: .4byte move_anim_8072740 +_080D7928: .4byte sub_8078174 + thumb_func_end sub_80D78EC + + thumb_func_start sub_80D792C +sub_80D792C: @ 80D792C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080D7960 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldr r0, _080D7964 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D796C + ldr r0, _080D7968 + ldrh r1, [r4, 0x32] + ldrh r0, [r0, 0x4] + subs r1, r0 + strh r1, [r4, 0x32] + b _080D7976 + .align 2, 0 +_080D7960: .4byte gUnknown_0202F7C9 +_080D7964: .4byte gUnknown_0202F7C8 +_080D7968: .4byte gUnknown_03004B00 +_080D796C: + ldr r0, _080D79A4 + ldrh r0, [r0, 0x4] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] +_080D7976: + ldr r0, _080D79A8 + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + ldr r1, _080D79A4 + lsrs r0, 24 + ldrh r2, [r1, 0x6] + adds r0, r2 + strh r0, [r4, 0x36] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x2E] + ldr r1, _080D79AC + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080D79B0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D79A4: .4byte gUnknown_03004B00 +_080D79A8: .4byte gUnknown_0202F7C9 +_080D79AC: .4byte move_anim_8072740 +_080D79B0: .4byte sub_8078B34 + thumb_func_end sub_80D792C + + thumb_func_start sub_80D79B4 +sub_80D79B4: @ 80D79B4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D79CC + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D79D0 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078764 + b _080D7A06 + .align 2, 0 +_080D79CC: .4byte gUnknown_03004B00 +_080D79D0: + ldr r0, _080D7A18 + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0x1 + bl sub_807A3FC + ldr r0, _080D7A1C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D79F6 + ldrh r0, [r5] + negs r0, r0 + strh r0, [r5] +_080D79F6: + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_080D7A06: + ldr r1, _080D7A20 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080D7A24 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D7A18: .4byte gUnknown_0202F7C9 +_080D7A1C: .4byte gUnknown_0202F7C8 +_080D7A20: .4byte sub_80D7A28 +_080D7A24: .4byte sub_80785E4 + thumb_func_end sub_80D79B4 + + thumb_func_start sub_80D7A28 +sub_80D7A28: @ 80D7A28 + push {lr} + adds r3, r0, 0 + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080D7A5E + adds r0, r3, 0 + bl move_anim_8074EE0 +_080D7A5E: + pop {r0} + bx r0 + thumb_func_end sub_80D7A28 + + thumb_func_start sub_80D7A64 +sub_80D7A64: @ 80D7A64 + push {r4-r7,lr} + sub sp, 0x10 + adds r5, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r6, _080D7AAC + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + movs r1, 0xA + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080D7AB4 + ldr r4, _080D7AB0 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x6] + adds r0, r6 + strh r0, [r5, 0x36] + b _080D7AC6 + .align 2, 0 +_080D7AAC: .4byte gUnknown_03004B00 +_080D7AB0: .4byte gUnknown_0202F7C9 +_080D7AB4: + ldr r0, _080D7AE0 + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_807A3FC +_080D7AC6: + ldr r0, _080D7AE4 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D7AEC + ldr r0, _080D7AE8 + ldrh r1, [r5, 0x32] + ldrh r0, [r0, 0x4] + subs r1, r0 + strh r1, [r5, 0x32] + b _080D7AF6 + .align 2, 0 +_080D7AE0: .4byte gUnknown_0202F7C9 +_080D7AE4: .4byte gUnknown_0202F7C8 +_080D7AE8: .4byte gUnknown_03004B00 +_080D7AEC: + ldr r0, _080D7B94 + ldrh r0, [r0, 0x4] + ldrh r2, [r5, 0x32] + adds r0, r2 + strh r0, [r5, 0x32] +_080D7AF6: + adds r7, r5, 0 + adds r7, 0x2E + adds r2, r7, 0 + mov r1, sp + movs r4, 0x7 +_080D7B00: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080D7B00 + adds r0, r5, 0 + bl sub_8078D60 + ldrh r0, [r5, 0x30] + movs r1, 0x1 + eors r0, r1 + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + eors r0, r1 + strh r0, [r5, 0x32] +_080D7B22: + movs r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r5, 0 + bl sub_8078CE8 + movs r0, 0x20 + ldrsh r1, [r5, r0] + movs r2, 0x24 + ldrsh r0, [r5, r2] + adds r1, r0 + adds r1, 0x10 + movs r0, 0x88 + lsls r0, 1 + cmp r1, r0 + bhi _080D7B56 + movs r0, 0x22 + ldrsh r1, [r5, r0] + movs r2, 0x26 + ldrsh r0, [r5, r2] + adds r1, r0 + cmp r1, 0xA0 + bgt _080D7B56 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080D7B22 +_080D7B56: + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + ldr r6, _080D7B98 + ldr r1, _080D7B9C + mov r3, sp + adds r2, r7, 0 + movs r4, 0x7 +_080D7B76: + ldrh r0, [r3] + strh r0, [r2] + adds r3, 0x2 + adds r2, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080D7B76 + str r6, [r5, 0x1C] + adds r0, r5, 0 + bl oamt_set_x3A_32 + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D7B94: .4byte gUnknown_03004B00 +_080D7B98: .4byte sub_8078D8C +_080D7B9C: .4byte sub_80D7BA0 + thumb_func_end sub_80D7A64 + + thumb_func_start sub_80D7BA0 +sub_80D7BA0: @ 80D7BA0 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + movs r5, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r5, [r4, 0x26] + strh r5, [r4, 0x24] + movs r0, 0x80 + strh r0, [r4, 0x2E] + ldr r0, _080D7BFC + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + ldr r1, _080D7C00 + cmp r0, 0 + beq _080D7BD0 + movs r1, 0x14 +_080D7BD0: + movs r2, 0x2E + ldrsh r0, [r4, r2] + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x34] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0xF + bl Cos + strh r0, [r4, 0x36] + strh r5, [r4, 0x38] + ldr r1, _080D7C04 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D7BFC: .4byte gUnknown_0202F7C8 +_080D7C00: .4byte 0x0000ffec +_080D7C04: .4byte sub_80D7C08 + thumb_func_end sub_80D7BA0 + + thumb_func_start sub_80D7C08 +sub_80D7C08: @ 80D7C08 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D7C5C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + ldr r1, _080D7C60 + cmp r0, 0 + beq _080D7C1E + movs r1, 0x14 +_080D7C1E: + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0x1F + bgt _080D7C64 + movs r2, 0x2E + ldrsh r0, [r4, r2] + lsls r1, 16 + asrs r1, 16 + bl Sin + ldrh r1, [r4, 0x34] + subs r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0xF + bl Cos + ldrh r1, [r4, 0x36] + subs r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x10 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + b _080D7C82 + .align 2, 0 +_080D7C5C: .4byte gUnknown_0202F7C8 +_080D7C60: .4byte 0x0000ffec +_080D7C64: + ldrh r0, [r4, 0x24] + ldrh r2, [r4, 0x20] + adds r0, r2 + movs r1, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r1, [r4, 0x26] + strh r1, [r4, 0x24] + strh r1, [r4, 0x36] + strh r1, [r4, 0x34] + ldr r0, _080D7C88 + str r0, [r4, 0x1C] +_080D7C82: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D7C88: .4byte sub_80D7C8C + thumb_func_end sub_80D7C08 + + thumb_func_start sub_80D7C8C +sub_80D7C8C: @ 80D7C8C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_8078CE8 + movs r1, 0x20 + ldrsh r0, [r4, r1] + movs r2, 0x24 + ldrsh r1, [r4, r2] + adds r0, r1 + adds r0, 0x10 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + bhi _080D7CC8 + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r1, r0, r1 + movs r0, 0x80 + lsls r0, 1 + cmp r1, r0 + bgt _080D7CC8 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080D7CCE +_080D7CC8: + adds r0, r4, 0 + bl move_anim_8072740 +_080D7CCE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D7C8C + + thumb_func_start sub_80D7CD4 +sub_80D7CD4: @ 80D7CD4 + push {r4-r7,lr} + sub sp, 0x10 + adds r5, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r1, _080D7D18 + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + movs r2, 0xE + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080D7D20 + ldr r4, _080D7D1C + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + b _080D7D32 + .align 2, 0 +_080D7D18: .4byte gUnknown_03004B00 +_080D7D1C: .4byte gUnknown_0202F7C9 +_080D7D20: + ldr r0, _080D7D50 + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_807A3FC +_080D7D32: + ldr r0, _080D7D54 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D7D5C + ldr r0, _080D7D58 + ldrh r1, [r5, 0x32] + ldrh r2, [r0, 0x4] + subs r1, r2 + strh r1, [r5, 0x32] + adds r1, r0, 0 + b _080D7D66 + .align 2, 0 +_080D7D50: .4byte gUnknown_0202F7C9 +_080D7D54: .4byte gUnknown_0202F7C8 +_080D7D58: .4byte gUnknown_03004B00 +_080D7D5C: + ldr r1, _080D7E10 + ldrh r0, [r1, 0x4] + ldrh r2, [r5, 0x32] + adds r0, r2 + strh r0, [r5, 0x32] +_080D7D66: + ldrh r0, [r1, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8078D60 + adds r7, r5, 0 + adds r7, 0x2E + adds r2, r7, 0 + mov r1, sp + movs r4, 0x7 +_080D7D7E: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080D7D7E + ldrh r0, [r5, 0x30] + movs r1, 0x1 + eors r0, r1 + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + eors r0, r1 + strh r0, [r5, 0x32] +_080D7D9A: + movs r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r5, 0 + bl sub_8078CE8 + movs r2, 0x20 + ldrsh r1, [r5, r2] + movs r2, 0x24 + ldrsh r0, [r5, r2] + adds r1, r0 + adds r1, 0x10 + movs r0, 0x88 + lsls r0, 1 + cmp r1, r0 + bhi _080D7DCE + movs r0, 0x22 + ldrsh r1, [r5, r0] + movs r2, 0x26 + ldrsh r0, [r5, r2] + adds r1, r0 + cmp r1, 0xA0 + bgt _080D7DCE + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080D7D9A +_080D7DCE: + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + ldr r1, _080D7E10 + ldr r6, _080D7E14 + mov r3, sp + adds r2, r7, 0 + movs r4, 0x7 +_080D7DEE: + ldrh r0, [r3] + strh r0, [r2] + adds r3, 0x2 + adds r2, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080D7DEE + ldrh r0, [r1, 0xA] + strh r0, [r5, 0x38] + ldrh r0, [r1, 0xC] + strh r0, [r5, 0x3A] + str r6, [r5, 0x1C] + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D7E10: .4byte gUnknown_03004B00 +_080D7E14: .4byte sub_80D7E18 + thumb_func_end sub_80D7CD4 + + thumb_func_start sub_80D7E18 +sub_80D7E18: @ 80D7E18 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078CE8 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D7E2C + movs r0, 0x1 + strh r0, [r4, 0x2E] +_080D7E2C: + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + ldrh r2, [r4, 0x3C] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080D7E82 + movs r2, 0x20 + ldrsh r0, [r4, r2] + movs r2, 0x24 + ldrsh r1, [r4, r2] + adds r0, r1 + adds r0, 0x10 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + bhi _080D7E7C + movs r0, 0x22 + ldrsh r1, [r4, r0] + movs r2, 0x26 + ldrsh r0, [r4, r2] + adds r1, r0 + cmp r1, 0xA0 + bgt _080D7E7C + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080D7E82 +_080D7E7C: + adds r0, r4, 0 + bl move_anim_8072740 +_080D7E82: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D7E18 + + thumb_func_start sub_80D7E88 +sub_80D7E88: @ 80D7E88 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D7EF4 + ldr r5, _080D7EA8 + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D7EAC + adds r0, r4, 0 + movs r1, 0 + bl sub_8078764 + b _080D7EE2 + .align 2, 0 +_080D7EA8: .4byte gUnknown_03004B00 +_080D7EAC: + ldr r0, _080D7EEC + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_807A3FC + ldr r0, _080D7EF0 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D7ED2 + ldrh r0, [r5] + negs r0, r0 + strh r0, [r5] +_080D7ED2: + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_080D7EE2: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080D7F08 + .align 2, 0 +_080D7EEC: .4byte gUnknown_0202F7C9 +_080D7EF0: .4byte gUnknown_0202F7C8 +_080D7EF4: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D7F08 + adds r0, r4, 0 + bl move_anim_8072740 +_080D7F08: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D7E88 + + thumb_func_start sub_80D7F10 +sub_80D7F10: @ 80D7F10 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080D7F30 + movs r1, 0x8 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080D7F80 + movs r1, 0xA + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080D7F34 + adds r0, r5, 0 + movs r1, 0 + bl sub_80787B0 + b _080D7F72 + .align 2, 0 +_080D7F30: .4byte gUnknown_03004B00 +_080D7F34: + ldr r4, _080D7F5C + ldrb r0, [r4] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_807A3FC + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D7F60 + ldrh r0, [r5, 0x20] + ldrh r1, [r6] + subs r0, r1 + b _080D7F66 + .align 2, 0 +_080D7F5C: .4byte gUnknown_0202F7C8 +_080D7F60: + ldrh r0, [r6] + ldrh r1, [r5, 0x20] + adds r0, r1 +_080D7F66: + strh r0, [r5, 0x20] + ldr r0, _080D7F78 + ldrh r0, [r0, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] +_080D7F72: + ldr r0, _080D7F7C + b _080D7FD0 + .align 2, 0 +_080D7F78: .4byte gUnknown_03004B00 +_080D7F7C: .4byte gUnknown_0202F7C8 +_080D7F80: + movs r1, 0xA + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080D7F92 + adds r0, r5, 0 + movs r1, 0 + bl sub_8078764 + b _080D7FCE +_080D7F92: + ldr r4, _080D7FB8 + ldrb r0, [r4] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_807A3FC + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D7FBC + ldrh r0, [r5, 0x20] + ldrh r1, [r6] + subs r0, r1 + b _080D7FC2 + .align 2, 0 +_080D7FB8: .4byte gUnknown_0202F7C9 +_080D7FBC: + ldrh r0, [r6] + ldrh r1, [r5, 0x20] + adds r0, r1 +_080D7FC2: + strh r0, [r5, 0x20] + ldr r0, _080D7FEC + ldrh r0, [r0, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] +_080D7FCE: + ldr r0, _080D7FF0 +_080D7FD0: + ldrb r0, [r0] + strh r0, [r5, 0x3C] + ldr r0, _080D7FEC + movs r1, 0xA + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080D7FE8 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _080D7FF4 +_080D7FE8: + movs r0, 0x20 + b _080D7FF6 + .align 2, 0 +_080D7FEC: .4byte gUnknown_03004B00 +_080D7FF0: .4byte gUnknown_0202F7C9 +_080D7FF4: + movs r0, 0x40 +_080D7FF6: + strh r0, [r5, 0x3A] + ldr r0, _080D803C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D800C + ldrh r0, [r5, 0x22] + adds r0, 0x8 + strh r0, [r5, 0x22] +_080D800C: + ldr r1, _080D8040 + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrh r1, [r1, 0x4] + adds r0, r1 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x40 + strh r0, [r5, 0x38] + ldr r1, _080D8044 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D803C: .4byte gUnknown_0202F7C9 +_080D8040: .4byte gUnknown_03004B00 +_080D8044: .4byte sub_80D8048 + thumb_func_end sub_80D7F10 + + thumb_func_start sub_80D8048 +sub_80D8048: @ 80D8048 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _080D80D2 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r1, 0x6 + negs r1, r1 + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080D80A4 + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r0, 24 + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + b _080D80C6 +_080D80A4: + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r0, 24 + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] +_080D80C6: + ldrh r0, [r4, 0x38] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080D80D8 +_080D80D2: + adds r0, r4, 0 + bl move_anim_8072740 +_080D80D8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D8048 + + thumb_func_start sub_80D80E0 +sub_80D80E0: @ 80D80E0 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080D81A8 + ldr r2, _080D81AC + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r4, _080D81B0 + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D812A + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080D812A: + ldr r0, _080D81B4 + movs r1, 0 + strh r1, [r0] + ldr r0, _080D81B8 + strh r1, [r0] + ldr r0, _080D81BC + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + mov r0, sp + bl sub_8078914 + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r0, _080D81C0 + add r2, sp, 0xC + str r2, [r0] + str r1, [r0, 0x4] + ldr r2, _080D81C4 + str r2, [r0, 0x8] + ldr r2, [r0, 0x8] + ldr r2, _080D81C8 + ldr r3, [sp] + str r2, [r0] + str r3, [r0, 0x4] + ldr r2, _080D81CC + str r2, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _080D81D0 + bl LZDecompressVram + ldr r0, _080D81D4 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadPalette + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D8190 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80763FC +_080D8190: + ldr r0, _080D81D8 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080D81DC + str r0, [r1] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D81A8: .4byte REG_BLDCNT +_080D81AC: .4byte 0x00003f42 +_080D81B0: .4byte REG_BG1CNT +_080D81B4: .4byte gUnknown_030042C0 +_080D81B8: .4byte gUnknown_030041B4 +_080D81BC: .4byte REG_BG1HOFS +_080D81C0: .4byte 0x040000d4 +_080D81C4: .4byte 0x85000400 +_080D81C8: .4byte gWeatherFog1Tiles +_080D81CC: .4byte 0x80000400 +_080D81D0: .4byte gWeatherFog1Tilemap +_080D81D4: .4byte gUnknown_083970E8 +_080D81D8: .4byte gTasks +_080D81DC: .4byte sub_80D81E0 + thumb_func_end sub_80D80E0 + + thumb_func_start sub_80D81E0 +sub_80D81E0: @ 80D81E0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, _080D8220 + ldr r1, _080D8224 + adds r0, r1, 0 + ldrh r4, [r2] + adds r0, r4 + strh r0, [r2] + ldr r1, _080D8228 + ldr r3, _080D822C + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r3 + movs r4, 0x20 + ldrsh r0, [r0, r4] + adds r4, r1, 0 + cmp r0, 0x4 + bls _080D8214 + b _080D83B0 +_080D8214: + lsls r0, 2 + ldr r1, _080D8230 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D8220: .4byte gUnknown_030042C0 +_080D8224: .4byte 0x0000ffff +_080D8228: .4byte gUnknown_030041B4 +_080D822C: .4byte gTasks +_080D8230: .4byte _080D8234 + .align 2, 0 +_080D8234: + .4byte _080D8248 + .4byte _080D82A0 + .4byte _080D82C2 + .4byte _080D8304 + .4byte _080D838C +_080D8248: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r3, r0, r3 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + movs r4, 0 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + beq _080D8262 + b _080D83B0 +_080D8262: + strh r4, [r3, 0x1C] + ldrh r0, [r3, 0x1A] + adds r0, 0x1 + strh r0, [r3, 0x1A] + ldr r1, _080D8298 + movs r2, 0x1A + ldrsh r0, [r3, r2] + adds r0, r1 + ldrb r1, [r0] + strh r1, [r3, 0x1E] + ldr r2, _080D829C + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0x1E + ldrsh r0, [r3, r1] + cmp r0, 0x9 + beq _080D828C + b _080D83B0 +_080D828C: + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + strh r4, [r3, 0x1E] + b _080D83B0 + .align 2, 0 +_080D8298: .4byte gUnknown_083D9D6C +_080D829C: .4byte REG_BLDALPHA +_080D82A0: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r3, r0, r3 + ldrh r0, [r3, 0x1E] + adds r0, 0x1 + strh r0, [r3, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x51 + bne _080D83B0 + movs r0, 0x9 + strh r0, [r3, 0x1E] + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + b _080D83B0 +_080D82C2: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r3, r0, r3 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080D83B0 + movs r0, 0 + strh r0, [r3, 0x1C] + ldrh r1, [r3, 0x1E] + subs r1, 0x1 + strh r1, [r3, 0x1E] + ldr r2, _080D8300 + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r2, 0x1E + ldrsh r1, [r3, r2] + cmp r1, 0 + bne _080D83B0 + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + strh r1, [r3, 0x1E] + b _080D83B0 + .align 2, 0 +_080D8300: .4byte REG_BLDALPHA +_080D8304: + mov r0, sp + bl sub_8078914 + ldr r2, [sp] + movs r3, 0x80 + lsls r3, 6 + lsls r4, r6, 2 + mov r10, r4 + add r5, sp, 0xC + movs r7, 0 + ldr r1, _080D83C0 + movs r4, 0x80 + lsls r4, 5 + mov r8, r5 + ldr r0, _080D83C4 + mov r12, r0 + movs r0, 0x85 + lsls r0, 24 + mov r9, r0 +_080D832A: + str r7, [sp, 0xC] + mov r0, r8 + str r0, [r1] + str r2, [r1, 0x4] + mov r0, r12 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080D832A + str r7, [sp, 0xC] + str r5, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r9 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r0, _080D83C0 + str r5, [r0] + str r1, [r0, 0x4] + ldr r1, _080D83C8 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D8378 + ldr r2, _080D83CC + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080D8378: + ldr r0, _080D83D0 + mov r4, r10 + adds r1, r4, r6 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + ldr r2, _080D83D4 + ldr r4, _080D83D8 +_080D838C: + movs r1, 0 + strh r1, [r2] + strh r1, [r4] + ldr r0, _080D83DC + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r2, _080D83CC + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + adds r0, r6, 0 + bl move_anim_task_del +_080D83B0: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D83C0: .4byte 0x040000d4 +_080D83C4: .4byte 0x85000400 +_080D83C8: .4byte 0x85000200 +_080D83CC: .4byte REG_BG1CNT +_080D83D0: .4byte gTasks +_080D83D4: .4byte gUnknown_030042C0 +_080D83D8: .4byte gUnknown_030041B4 +_080D83DC: .4byte REG_BLDCNT + thumb_func_end sub_80D81E0 + + thumb_func_start sub_80D83E0 +sub_80D83E0: @ 80D83E0 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D840C + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r0, _080D8410 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D840C: .4byte gUnknown_0202F7C8 +_080D8410: .4byte sub_807941C + thumb_func_end sub_80D83E0 + + thumb_func_start sub_80D8414 +sub_80D8414: @ 80D8414 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080D84E0 + ldr r2, _080D84E4 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r4, _080D84E8 + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D845E + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080D845E: + ldr r0, _080D84EC + movs r1, 0 + strh r1, [r0] + ldr r0, _080D84F0 + strh r1, [r0] + ldr r0, _080D84F4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + mov r0, sp + bl sub_8078914 + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r0, _080D84F8 + add r2, sp, 0xC + str r2, [r0] + str r1, [r0, 0x4] + ldr r2, _080D84FC + str r2, [r0, 0x8] + ldr r2, [r0, 0x8] + ldr r2, _080D8500 + ldr r3, [sp] + str r2, [r0] + str r3, [r0, 0x4] + ldr r2, _080D8504 + str r2, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _080D8508 + bl LZDecompressVram + ldr r0, _080D850C + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadPalette + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D84C4 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80763FC +_080D84C4: + ldr r1, _080D8510 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080D8514 + strh r1, [r0, 0x26] + ldr r1, _080D8518 + str r1, [r0] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D84E0: .4byte REG_BLDCNT +_080D84E4: .4byte 0x00003f42 +_080D84E8: .4byte REG_BG1CNT +_080D84EC: .4byte gUnknown_030042C0 +_080D84F0: .4byte gUnknown_030041B4 +_080D84F4: .4byte REG_BG1HOFS +_080D84F8: .4byte 0x040000d4 +_080D84FC: .4byte 0x85000400 +_080D8500: .4byte gWeatherFog1Tiles +_080D8504: .4byte 0x80000400 +_080D8508: .4byte gWeatherFog1Tilemap +_080D850C: .4byte gUnknown_083970E8 +_080D8510: .4byte gTasks +_080D8514: .4byte 0x0000ffff +_080D8518: .4byte sub_80D851C + thumb_func_end sub_80D8414 + + thumb_func_start sub_80D851C +sub_80D851C: @ 80D851C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r3, _080D8558 + ldr r4, _080D855C + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r4 + ldrh r0, [r1, 0x26] + ldrh r2, [r3] + adds r0, r2 + strh r0, [r3] + ldr r2, _080D8560 + movs r5, 0x20 + ldrsh r0, [r1, r5] + cmp r0, 0x4 + bls _080D854C + b _080D86D0 +_080D854C: + lsls r0, 2 + ldr r1, _080D8564 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D8558: .4byte gUnknown_030042C0 +_080D855C: .4byte gTasks +_080D8560: .4byte gUnknown_030041B4 +_080D8564: .4byte _080D8568 + .align 2, 0 +_080D8568: + .4byte _080D857C + .4byte _080D85C0 + .4byte _080D85E2 + .4byte _080D8624 + .4byte _080D86AC +_080D857C: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r4 + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + ldr r1, _080D85B8 + movs r2, 0x1A + ldrsh r0, [r4, r2] + adds r0, r1 + ldrb r1, [r0] + strh r1, [r4, 0x1E] + ldr r2, _080D85BC + movs r0, 0x11 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r5, 0x1E + ldrsh r0, [r4, r5] + cmp r0, 0x5 + beq _080D85AC + b _080D86D0 +_080D85AC: + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + movs r0, 0 + strh r0, [r4, 0x1E] + b _080D86D0 + .align 2, 0 +_080D85B8: .4byte gUnknown_083D9D98 +_080D85BC: .4byte REG_BLDALPHA +_080D85C0: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r1, r0, r4 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x51 + bne _080D86D0 + movs r0, 0x5 + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080D86D0 +_080D85E2: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r4 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080D86D0 + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + subs r1, 0x1 + strh r1, [r4, 0x1E] + ldr r2, _080D8620 + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r0, 0x1E + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _080D86D0 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r1, [r4, 0x1E] + b _080D86D0 + .align 2, 0 +_080D8620: .4byte REG_BLDALPHA +_080D8624: + mov r0, sp + bl sub_8078914 + ldr r2, [sp] + movs r3, 0x80 + lsls r3, 6 + lsls r1, r6, 2 + mov r10, r1 + add r5, sp, 0xC + movs r7, 0 + ldr r1, _080D86E0 + movs r4, 0x80 + lsls r4, 5 + mov r8, r5 + ldr r0, _080D86E4 + mov r12, r0 + movs r0, 0x85 + lsls r0, 24 + mov r9, r0 +_080D864A: + str r7, [sp, 0xC] + mov r0, r8 + str r0, [r1] + str r2, [r1, 0x4] + mov r0, r12 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080D864A + str r7, [sp, 0xC] + str r5, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r9 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r0, _080D86E0 + str r5, [r0] + str r1, [r0, 0x4] + ldr r1, _080D86E8 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D8698 + ldr r2, _080D86EC + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080D8698: + ldr r0, _080D86F0 + mov r5, r10 + adds r1, r5, r6 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + ldr r3, _080D86F4 + ldr r2, _080D86F8 +_080D86AC: + movs r1, 0 + strh r1, [r3] + strh r1, [r2] + ldr r0, _080D86FC + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r2, _080D86EC + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + adds r0, r6, 0 + bl move_anim_task_del +_080D86D0: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D86E0: .4byte 0x040000d4 +_080D86E4: .4byte 0x85000400 +_080D86E8: .4byte 0x85000200 +_080D86EC: .4byte REG_BG1CNT +_080D86F0: .4byte gTasks +_080D86F4: .4byte gUnknown_030042C0 +_080D86F8: .4byte gUnknown_030041B4 +_080D86FC: .4byte REG_BLDCNT + thumb_func_end sub_80D851C + + thumb_func_start sub_80D8700 +sub_80D8700: @ 80D8700 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + ldr r6, _080D87E8 + ldrh r0, [r6] + strh r0, [r5, 0x2E] + ldr r0, _080D87EC + mov r8, r0 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8077ABC + adds r4, r0, 0 + ldr r7, _080D87F0 + ldrb r0, [r7] + movs r1, 0x2 + bl sub_8077ABC + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bcs _080D8734 + movs r0, 0x80 + lsls r0, 8 + strh r0, [r5, 0x3C] +_080D8734: + ldr r3, _080D87F4 + ldrb r0, [r7] + adds r0, r3 + ldrb r1, [r0] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080D8794 + ldrh r0, [r6, 0x2] + negs r0, r0 + strh r0, [r6, 0x2] + ldrh r0, [r6, 0x6] + negs r0, r0 + strh r0, [r6, 0x6] + movs r1, 0x3C + ldrsh r0, [r5, r1] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080D8790 + mov r1, r8 + ldrb r0, [r1] + adds r0, r3 + ldrb r1, [r0] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080D8790 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + ldr r2, _080D87F8 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0x1 + adds r1, r5, 0 + adds r1, 0x43 + strb r0, [r1] +_080D8790: + movs r0, 0x1 + strh r0, [r5, 0x3A] +_080D8794: + ldr r4, _080D87EC + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r6, _080D87E8 + movs r1, 0xE + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _080D87FC + ldrh r0, [r6, 0x2] + ldrh r1, [r5, 0x20] + adds r0, r1 + strh r0, [r5, 0x30] + ldr r4, _080D87F0 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x6] + adds r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r6, 0x4] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + b _080D8824 + .align 2, 0 +_080D87E8: .4byte gUnknown_03004B00 +_080D87EC: .4byte gUnknown_0202F7C8 +_080D87F0: .4byte gUnknown_0202F7C9 +_080D87F4: .4byte gUnknown_02024A72 +_080D87F8: .4byte gSprites +_080D87FC: + ldrh r0, [r6, 0x2] + ldrh r1, [r5, 0x20] + adds r0, r1 + strh r0, [r5, 0x30] + ldr r4, _080D886C + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x6] + adds r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r6, 0x4] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x1 +_080D8824: + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x8] + adds r0, r6 + strh r0, [r5, 0x36] + ldrb r0, [r4] + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 16 + ldrh r1, [r5, 0x3C] + orrs r0, r1 + strh r0, [r5, 0x3C] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D8858 + movs r0, 0x1 + strh r0, [r5, 0x3A] + adds r1, r5, 0 + adds r1, 0x43 + movs r0, 0x80 + strb r0, [r1] +_080D8858: + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080D8870 + str r0, [r5, 0x1C] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D886C: .4byte gUnknown_0202F7C9 +_080D8870: .4byte sub_80D8874 + thumb_func_end sub_80D8700 + + thumb_func_start sub_80D8874 +sub_80D8874: @ 80D8874 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x3C] + movs r5, 0xFF + movs r1, 0xFF + ands r1, r0 + cmp r1, 0x1 + beq _080D8968 + cmp r1, 0x1 + bgt _080D888E + cmp r1, 0 + beq _080D8896 + b _080D8AD0 +_080D888E: + cmp r1, 0x2 + bne _080D8894 + b _080D8A94 +_080D8894: + b _080D8AD0 +_080D8896: + adds r0, r4, 0 + bl sub_8078B5C + ldr r1, _080D88C0 + movs r2, 0x38 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + asrs r0, 4 + ldrh r2, [r4, 0x24] + adds r0, r2 + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D88C4 + ldrh r0, [r4, 0x38] + subs r0, 0x8 + b _080D88C8 + .align 2, 0 +_080D88C0: .4byte gSineTable +_080D88C4: + ldrh r0, [r4, 0x38] + adds r0, 0x8 +_080D88C8: + ands r0, r5 + strh r0, [r4, 0x38] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080D88D6 + b _080D8AD0 +_080D88D6: + movs r5, 0x50 + strh r5, [r4, 0x2E] + ldr r6, _080D8928 + ldrb r0, [r6] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, 0x1D + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + ldr r0, _080D892C + ldr r2, _080D8930 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080D8938 + ldr r1, _080D8934 + ldrb r0, [r6] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D8938 + movs r0, 0xCC + strh r0, [r4, 0x38] + b _080D893A + .align 2, 0 +_080D8928: .4byte gUnknown_0202F7C9 +_080D892C: .4byte gMain +_080D8930: .4byte 0x0000043d +_080D8934: .4byte gUnknown_02024A72 +_080D8938: + strh r5, [r4, 0x38] +_080D893A: + movs r0, 0 + strh r0, [r4, 0x26] + ldr r1, _080D8964 + movs r2, 0x38 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + asrs r0, 3 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x38] + adds r0, 0x2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + b _080D8AD0 + .align 2, 0 +_080D8964: .4byte gSineTable +_080D8968: + adds r0, r4, 0 + bl sub_8078B5C + ldr r1, _080D89C8 + movs r2, 0x38 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + asrs r0, 3 + ldrh r2, [r4, 0x24] + adds r0, r2 + strh r0, [r4, 0x24] + movs r2, 0x38 + ldrsh r0, [r4, r2] + adds r0, 0x40 + lsls r0, 1 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 1 + adds r0, r1 + negs r0, r0 + asrs r0, 8 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldr r0, _080D89CC + ldr r2, _080D89D0 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080D89F2 + ldrh r1, [r4, 0x38] + adds r0, r1, 0 + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + adds r3, r1, 0 + cmp r0, 0x7F + bhi _080D89D4 + ldrh r1, [r4, 0x3C] + lsls r1, 16 + asrs r1, 24 + b _080D89DC + .align 2, 0 +_080D89C8: .4byte gSineTable +_080D89CC: .4byte gMain +_080D89D0: .4byte 0x0000043d +_080D89D4: + ldrh r1, [r4, 0x3C] + lsls r1, 16 + asrs r1, 24 + adds r1, 0x1 +_080D89DC: + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + adds r0, r3, 0x4 + b _080D8A12 +_080D89F2: + ldrh r0, [r4, 0x38] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080D8A06 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x80 + b _080D8A0C +_080D8A06: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x8C +_080D8A0C: + strb r0, [r1] + ldrh r0, [r4, 0x38] + subs r0, 0x4 +_080D8A12: + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bgt _080D8AD0 + movs r2, 0 + movs r0, 0xC0 + lsls r0, 2 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, 0x4 + strh r0, [r4, 0x36] + ldr r0, _080D8A68 + ldr r1, _080D8A6C + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080D8A78 + ldr r1, _080D8A70 + ldr r0, _080D8A74 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D8A78 + movs r0, 0x80 + lsls r0, 1 + b _080D8A7A + .align 2, 0 +_080D8A68: .4byte gMain +_080D8A6C: .4byte 0x0000043d +_080D8A70: .4byte gUnknown_02024A72 +_080D8A74: .4byte gUnknown_0202F7C9 +_080D8A78: + ldr r0, _080D8A90 +_080D8A7A: + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x3C] + strh r1, [r4, 0x26] + strh r1, [r4, 0x24] + adds r0, r4, 0 + bl sub_8078BD4 + b _080D8AD0 + .align 2, 0 +_080D8A90: .4byte 0x0000fff0 +_080D8A94: + adds r0, r4, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080D8AD0 + ldrb r0, [r4, 0x1] + lsls r0, 30 + lsrs r0, 30 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D8AC2 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] +_080D8AC2: + adds r0, r4, 0 + bl DestroySprite + ldr r1, _080D8AD8 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_080D8AD0: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D8AD8: .4byte gUnknown_0202F7B2 + thumb_func_end sub_80D8874 + + thumb_func_start sub_80D8ADC +sub_80D8ADC: @ 80D8ADC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080D8AF0 + adds r1, r0 + ldr r0, _080D8AF4 + str r0, [r1] + bx lr + .align 2, 0 +_080D8AF0: .4byte gTasks +_080D8AF4: .4byte sub_80D8AF8 + thumb_func_end sub_80D8ADC + + thumb_func_start sub_80D8AF8 +sub_80D8AF8: @ 80D8AF8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080D8B1C + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080D8B3C + cmp r5, 0x1 + bgt _080D8B20 + cmp r5, 0 + beq _080D8B26 + b _080D8BA0 + .align 2, 0 +_080D8B1C: .4byte gTasks +_080D8B20: + cmp r5, 0x2 + beq _080D8B92 + b _080D8BA0 +_080D8B26: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080D8BA0 + strh r5, [r4, 0x10] + strh r5, [r4, 0x12] + strh r5, [r4, 0xC] + b _080D8B78 +_080D8B3C: + ldrh r1, [r4, 0x12] + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080D8B8C + ldrb r0, [r4, 0xE] + ldrb r1, [r4, 0xC] + movs r3, 0x1 + bl sub_80D8BA8 + lsls r0, 24 + cmp r0, 0 + beq _080D8B5C + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] +_080D8B5C: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080D8B88 + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080D8B80 +_080D8B78: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D8BA0 +_080D8B80: + ldrh r0, [r4, 0x8] + subs r0, 0x1 + strh r0, [r4, 0x8] + b _080D8BA0 +_080D8B88: + strh r5, [r4, 0x12] + b _080D8BA0 +_080D8B8C: + subs r0, r1, 0x1 + strh r0, [r4, 0x12] + b _080D8BA0 +_080D8B92: + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D8BA0 + adds r0, r2, 0 + bl move_anim_task_del +_080D8BA0: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D8AF8 + + thumb_func_start sub_80D8BA8 +sub_80D8BA8: @ 80D8BA8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp] + lsls r3, 24 + lsrs r3, 24 + mov r10, r3 + movs r1, 0 + str r1, [sp, 0x4] + ldr r1, _080D8C20 + lsrs r0, 22 + adds r4, r0, r1 + ldrb r0, [r4, 0x3] + lsls r0, 24 + asrs r0, 28 + mov r8, r0 + cmp r0, 0x2 + beq _080D8C94 + ldrh r0, [r4, 0x2] + lsls r0, 20 + lsrs r0, 24 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080D8C94 + movs r0, 0x1 + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + mov r1, r8 + cmp r1, 0 + beq _080D8C24 + cmp r1, 0x1 + beq _080D8C5A + b _080D8CA6 + .align 2, 0 +_080D8C20: .4byte gUnknown_083D9DC4 +_080D8C24: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_807A100 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl __divsi3 + lsls r1, r7, 16 + asrs r1, 16 + subs r1, r0 + lsls r1, 16 + lsrs r7, r1, 16 + adds r0, r5, 0 + movs r1, 0 + bl sub_807A100 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl __divsi3 + lsls r1, r6, 16 + asrs r1, 16 + subs r1, r0 + b _080D8C8E +_080D8C5A: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_807A100 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl __divsi3 + lsls r1, r7, 16 + asrs r1, 16 + adds r1, r0 + lsls r1, 16 + lsrs r7, r1, 16 + adds r0, r5, 0 + movs r1, 0 + bl sub_807A100 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl __divsi3 + lsls r1, r6, 16 + asrs r1, 16 + adds r1, r0 +_080D8C8E: + lsls r1, 16 + lsrs r6, r1, 16 + b _080D8CA6 +_080D8C94: + ldrh r0, [r4] + lsls r0, 22 + asrs r0, 6 + lsrs r7, r0, 16 + ldr r0, [r4] + lsls r0, 12 + asrs r0, 22 + lsls r0, 16 + lsrs r6, r0, 16 +_080D8CA6: + lsls r0, r6, 16 + asrs r0, 16 + adds r0, 0x8 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + lsls r1, r7, 16 + asrs r1, 16 + subs r1, r0 + ldr r0, _080D8D00 + lsls r1, 16 + asrs r1, 16 + movs r2, 0x8 + negs r2, r2 + movs r3, 0x12 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x40 + beq _080D8D08 + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + ldr r0, _080D8D04 + adds r4, r0 + adds r0, r4, 0 + mov r1, r9 + bl StartSpriteAffineAnim + mov r0, sp + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + strh r7, [r4, 0x34] + strh r6, [r4, 0x36] + mov r1, r9 + strh r1, [r4, 0x38] + mov r0, sp + ldrh r0, [r0] + strh r0, [r4, 0x3A] + mov r1, r10 + strh r1, [r4, 0x3C] + movs r0, 0x1 + b _080D8D0A + .align 2, 0 +_080D8D00: .4byte gSpriteTemplate_83D9E3C +_080D8D04: .4byte gSprites +_080D8D08: + movs r0, 0 +_080D8D0A: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80D8BA8 + + thumb_func_start sub_80D8D1C +sub_80D8D1C: @ 80D8D1C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + adds r0, 0x4 + strh r0, [r4, 0x20] + ldrh r1, [r4, 0x22] + adds r2, r1, 0 + adds r2, 0x8 + strh r2, [r4, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x34 + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _080D8D46 + lsls r0, r2, 16 + asrs r0, 16 + movs r2, 0x36 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080D8DF6 +_080D8D46: + movs r3, 0x2E + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _080D8DC8 + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D8DC8 + ldr r0, _080D8DBC + movs r2, 0x34 + ldrsh r1, [r4, r2] + movs r3, 0x36 + ldrsh r2, [r4, r3] + adds r3, r4, 0 + adds r3, 0x43 + ldrb r3, [r3] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + cmp r0, 0x40 + beq _080D8DAA + ldr r2, _080D8DC0 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r2, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080D8DC4 + str r1, [r0] + movs r3, 0x2E + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x3A] + strh r1, [r0, 0x3A] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x3C] + strh r1, [r0, 0x3C] +_080D8DAA: + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite + b _080D8DF6 + .align 2, 0 +_080D8DBC: .4byte gBattleAnimSpriteTemplate_83D9C78 +_080D8DC0: .4byte gSprites +_080D8DC4: .4byte sub_80D8E00 +_080D8DC8: + ldr r3, _080D8DFC + movs r2, 0x3C + ldrsh r1, [r4, r2] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080D8DF6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D8DFC: .4byte gTasks + thumb_func_end sub_80D8D1C + + thumb_func_start sub_80D8E00 +sub_80D8E00: @ 80D8E00 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080D8E40 + ldr r3, _080D8E48 + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080D8E40: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D8E48: .4byte gTasks + thumb_func_end sub_80D8E00 + + thumb_func_start unc_080B06FC +unc_080B06FC: @ 80D8E4C + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _080D8ECC + ldr r0, [r0] + ldrb r1, [r0, 0x11] + lsrs r0, r1, 4 + lsls r1, 28 + lsrs r1, 28 + subs r0, r1 + subs r0, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x4 + bls _080D8E6A + movs r1, 0x4 +_080D8E6A: + adds r0, r5, 0 + bl StartSpriteAffineAnim + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r6, _080D8ED0 + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + ldr r0, _080D8ED4 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D8E92 + ldrh r0, [r6, 0x4] + negs r0, r0 + strh r0, [r6, 0x4] +_080D8E92: + ldr r4, _080D8ED8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x6] + adds r0, r1 + strh r0, [r5, 0x36] + ldrh r0, [r6, 0xA] + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_80786EC + ldr r0, _080D8EDC + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D8ECC: .4byte gUnknown_0202F7B4 +_080D8ED0: .4byte gUnknown_03004B00 +_080D8ED4: .4byte gUnknown_0202F7C8 +_080D8ED8: .4byte gUnknown_0202F7C9 +_080D8EDC: .4byte sub_80D8EE0 + thumb_func_end unc_080B06FC + + thumb_func_start sub_80D8EE0 +sub_80D8EE0: @ 80D8EE0 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080D8F02 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, _080D8F08 + str r0, [r4, 0x1C] + ldr r1, _080D8F0C + adds r0, r4, 0 + bl oamt_set_x3A_32 +_080D8F02: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D8F08: .4byte sub_8078600 +_080D8F0C: .4byte move_anim_8072740 + thumb_func_end sub_80D8EE0 + + thumb_func_start sub_80D8F10 +sub_80D8F10: @ 80D8F10 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x8 + ldr r3, _080D8F64 + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D8F68 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078764 + bl Random + movs r5, 0xFF + ands r5, r0 + movs r0, 0x80 + lsls r0, 1 + adds r6, r0, 0 + orrs r5, r6 + bl Random + ldr r1, _080D8F6C + ands r1, r0 + adds r0, r1, 0 + cmp r0, 0xFF + ble _080D8F56 + subs r0, r6, r0 + lsls r0, 16 + lsrs r1, r0, 16 +_080D8F56: + strh r5, [r4, 0x30] + strh r1, [r4, 0x32] + ldr r0, _080D8F70 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D8F64: .4byte 0x000003ff +_080D8F68: .4byte 0xfffffc00 +_080D8F6C: .4byte 0x000001ff +_080D8F70: .4byte sub_80D8F74 + thumb_func_end sub_80D8F10 + + thumb_func_start sub_80D8F74 +sub_80D8F74: @ 80D8F74 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x34] + adds r3, r0, r1 + strh r3, [r2, 0x34] + ldrh r1, [r2, 0x32] + ldrh r4, [r2, 0x36] + adds r1, r4 + strh r1, [r2, 0x36] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080D8F98 + lsls r0, r3, 16 + asrs r0, 24 + negs r0, r0 + b _080D8F9C +_080D8F98: + lsls r0, r3, 16 + asrs r0, 24 +_080D8F9C: + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080D8FBA + adds r0, r2, 0 + bl move_anim_8072740 +_080D8FBA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D8F74 + + thumb_func_start sub_80D8FC0 +sub_80D8FC0: @ 80D8FC0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080D8FE8 + ldrb r3, [r1] + lsls r3, 1 + adds r3, r1 + ldr r1, _080D8FEC + ldr r1, [r1] + ldrb r1, [r1, 0x11] + lsrs r2, r1, 4 + lsls r1, 28 + lsrs r1, 28 + subs r2, r1 + subs r2, 0x1 + strh r2, [r3] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080D8FE8: .4byte gUnknown_03004B00 +_080D8FEC: .4byte gUnknown_0202F7B4 + thumb_func_end sub_80D8FC0 + + thumb_func_start unc_080B08A0 +unc_080B08A0: @ 80D8FF0 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D9020 + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_807867C + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + movs r0, 0xF + strh r0, [r4, 0x2E] + ldr r0, _080D9024 + str r0, [r4, 0x1C] + ldr r1, _080D9028 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9020: .4byte gUnknown_03004B00 +_080D9024: .4byte sub_80782D8 +_080D9028: .4byte move_anim_8072740 + thumb_func_end unc_080B08A0 + + thumb_func_start sub_80D902C +sub_80D902C: @ 80D902C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080D9070 + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080D9054 + ldr r0, _080D9074 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D9054 + ldrh r0, [r4, 0x2] + negs r0, r0 + strh r0, [r4, 0x2] + ldrh r0, [r4, 0x6] + negs r0, r0 + strh r0, [r4, 0x6] +_080D9054: + ldr r4, _080D9070 + ldrb r1, [r4, 0xC] + adds r0, r5, 0 + bl StartSpriteAnim + movs r0, 0 + strh r0, [r4, 0xC] + adds r0, r5, 0 + bl sub_8079534 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9070: .4byte gUnknown_03004B00 +_080D9074: .4byte gUnknown_0202F7C8 + thumb_func_end sub_80D902C + + thumb_func_start sub_80D9078 +sub_80D9078: @ 80D9078 + push {r4,lr} + adds r4, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D9094 + ldr r0, _080D90A0 + ldrh r1, [r0, 0x2] + negs r1, r1 + strh r1, [r0, 0x2] + ldrh r1, [r0, 0x6] + negs r1, r1 + strh r1, [r0, 0x6] +_080D9094: + adds r0, r4, 0 + bl sub_80D902C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D90A0: .4byte gUnknown_03004B00 + thumb_func_end sub_80D9078 + + thumb_func_start sub_80D90A4 +sub_80D90A4: @ 80D90A4 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080D90C4 + ldrb r1, [r4, 0x8] + bl StartSpriteAnim + movs r1, 0x6 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D90C8 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80787B0 + b _080D90D0 + .align 2, 0 +_080D90C4: .4byte gUnknown_03004B00 +_080D90C8: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8078764 +_080D90D0: + ldr r0, _080D90E8 + ldrh r0, [r0, 0x4] + strh r0, [r5, 0x2E] + ldr r0, _080D90EC + str r0, [r5, 0x1C] + ldr r1, _080D90F0 + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D90E8: .4byte gUnknown_03004B00 +_080D90EC: .4byte sub_80782D8 +_080D90F0: .4byte move_anim_8072740 + thumb_func_end sub_80D90A4 + + thumb_func_start sub_80D90F4 +sub_80D90F4: @ 80D90F4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + ldr r0, _080D9110 + movs r2, 0 + ldrsh r1, [r0, r2] + mov r9, r0 + cmp r1, 0 + bne _080D9118 + ldr r0, _080D9114 + b _080D911A + .align 2, 0 +_080D9110: .4byte gUnknown_03004B00 +_080D9114: .4byte gUnknown_0202F7C8 +_080D9118: + ldr r0, _080D9260 +_080D911A: + ldrb r0, [r0] + mov r8, r0 + mov r4, r9 + movs r3, 0x4 + ldrsh r0, [r4, r3] + cmp r0, 0 + bge _080D9138 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x5 + bl __umodsi3 + strh r0, [r4, 0x4] +_080D9138: + ldrb r1, [r4, 0x4] + adds r0, r5, 0 + bl StartSpriteAnim + mov r0, r8 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + mov r0, r8 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + mov r0, r8 + movs r1, 0x1 + bl sub_807A100 + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + lsls r1, 15 + lsrs r6, r1, 16 + mov r0, r8 + movs r1, 0 + bl sub_807A100 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080D9182 + adds r0, 0x3 +_080D9182: + lsls r4, r0, 14 + lsrs r4, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + lsls r1, r6, 16 + asrs r1, 16 + bl __modsi3 + lsls r0, 16 + lsrs r6, r0, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + lsls r4, 16 + asrs r4, 16 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 16 + lsrs r4, r0, 16 + bl Random + movs r7, 0x1 + adds r1, r7, 0 + ands r1, r0 + cmp r1, 0 + beq _080D91C4 + lsls r0, r6, 16 + negs r0, r0 + lsrs r6, r0, 16 +_080D91C4: + bl Random + adds r1, r7, 0 + ands r1, r0 + cmp r1, 0 + beq _080D91D6 + lsls r0, r4, 16 + negs r0, r0 + lsrs r4, r0, 16 +_080D91D6: + ldr r0, _080D9264 + add r0, r8 + ldrb r1, [r0] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + bne _080D91EC + lsls r0, r4, 16 + ldr r1, _080D9268 + adds r0, r1 + lsrs r4, r0, 16 +_080D91EC: + lsls r0, r6, 16 + asrs r0, 16 + ldrh r2, [r5, 0x20] + adds r0, r2 + strh r0, [r5, 0x20] + lsls r0, r4, 16 + asrs r0, 16 + ldrh r3, [r5, 0x22] + adds r0, r3 + strh r0, [r5, 0x22] + mov r1, r9 + ldrh r0, [r1, 0x2] + strh r0, [r5, 0x2E] + ldr r0, _080D926C + movs r2, 0x20 + ldrsh r1, [r5, r2] + movs r3, 0x22 + ldrsh r2, [r5, r3] + adds r3, r5, 0 + adds r3, 0x43 + ldrb r3, [r3] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x3C] + cmp r0, 0x40 + beq _080D9250 + movs r0, 0x3C + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080D9270 + adds r0, r4 + movs r1, 0 + bl StartSpriteAffineAnim + movs r2, 0x3C + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _080D9274 + str r1, [r0] +_080D9250: + ldr r0, _080D9278 + str r0, [r5, 0x1C] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D9260: .4byte gUnknown_0202F7C9 +_080D9264: .4byte gUnknown_02024A72 +_080D9268: .4byte 0xfff00000 +_080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8 +_080D9270: .4byte gSprites +_080D9274: .4byte SpriteCallbackDummy +_080D9278: .4byte sub_80D927C + thumb_func_end sub_80D90F4 + + thumb_func_start sub_80D927C +sub_80D927C: @ 80D927C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x2E] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _080D92C4 + movs r1, 0x3C + ldrsh r0, [r5, r1] + cmp r0, 0x40 + beq _080D92B8 + ldr r4, _080D92C0 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + movs r0, 0x3C + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite +_080D92B8: + adds r0, r5, 0 + bl move_anim_8072740 + b _080D92C8 + .align 2, 0 +_080D92C0: .4byte gSprites +_080D92C4: + subs r0, r1, 0x1 + strh r0, [r5, 0x2E] +_080D92C8: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D927C + + thumb_func_start sub_80D92D0 +sub_80D92D0: @ 80D92D0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8078764 + movs r0, 0x1E + strh r0, [r4, 0x2E] + ldr r0, _080D92F0 + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D92F4 + ldrh r0, [r4, 0x20] + subs r0, 0x14 + strh r0, [r4, 0x32] + b _080D9306 + .align 2, 0 +_080D92F0: .4byte gUnknown_03004B00 +_080D92F4: + ldrh r0, [r4, 0x20] + adds r0, 0x14 + strh r0, [r4, 0x32] + adds r2, r4, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_080D9306: + ldrh r0, [r4, 0x22] + subs r0, 0x14 + strh r0, [r4, 0x36] + ldr r0, _080D9320 + str r0, [r4, 0x1C] + ldr r1, _080D9324 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D9320: .4byte sub_8078B34 +_080D9324: .4byte sub_80D9328 + thumb_func_end sub_80D92D0 + + thumb_func_start sub_80D9328 +sub_80D9328: @ 80D9328 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x38] + adds r0, 0x1 + movs r6, 0 + strh r0, [r5, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + bne _080D9368 + ldrh r2, [r5, 0x20] + ldrh r4, [r5, 0x24] + subs r0, r2, r4 + strh r0, [r5, 0x32] + ldrh r1, [r5, 0x22] + ldrh r3, [r5, 0x26] + subs r0, r1, r3 + strh r0, [r5, 0x36] + movs r0, 0x8 + strh r0, [r5, 0x2E] + adds r2, r4 + strh r2, [r5, 0x20] + adds r1, r3 + strh r1, [r5, 0x22] + strh r6, [r5, 0x26] + strh r6, [r5, 0x24] + ldr r0, _080D9370 + str r0, [r5, 0x1C] + ldr r1, _080D9374 + adds r0, r5, 0 + bl oamt_set_x3A_32 +_080D9368: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D9370: .4byte sub_8078B34 +_080D9374: .4byte move_anim_8072740 + thumb_func_end sub_80D9328 + + thumb_func_start sub_80D9378 +sub_80D9378: @ 80D9378 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _080D93F4 + ldrb r1, [r0] + movs r0, 0x2 + ldr r2, _080D93F8 + eors r0, r1 + ldrb r1, [r2] + cmp r0, r1 + bne _080D93A4 + ldrb r0, [r2] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _080D93A4 + ldr r1, _080D93FC + movs r2, 0 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1] +_080D93A4: + adds r0, r6, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r0, _080D93F4 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D93C2 + ldr r1, _080D93FC + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080D93C2: + ldr r4, _080D93FC + ldrh r0, [r4, 0x6] + movs r5, 0 + strh r0, [r6, 0x2E] + ldrh r0, [r6, 0x20] + strh r0, [r6, 0x30] + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrh r0, [r6, 0x22] + strh r0, [r6, 0x34] + strh r0, [r6, 0x36] + adds r0, r6, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r4, 0xA] + strh r0, [r6, 0x38] + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x3A] + strh r5, [r6, 0x3C] + ldr r0, _080D9400 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D93F4: .4byte gUnknown_0202F7C8 +_080D93F8: .4byte gUnknown_0202F7C9 +_080D93FC: .4byte gUnknown_03004B00 +_080D9400: .4byte sub_80D9404 + thumb_func_end sub_80D9378 + + thumb_func_start sub_80D9404 +sub_80D9404: @ 80D9404 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _080D9430 + ldrh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + ldrh r2, [r4, 0x3C] + adds r0, r2 + strh r0, [r4, 0x3C] + b _080D9436 +_080D9430: + adds r0, r4, 0 + bl move_anim_8072740 +_080D9436: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D9404 + + thumb_func_start sub_80D943C +sub_80D943C: @ 80D943C + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r5, _080D9468 + ldrb r1, [r5, 0x4] + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldr r0, _080D946C + str r0, [r4, 0x1C] + ldr r1, _080D9470 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9468: .4byte gUnknown_03004B00 +_080D946C: .4byte sub_80782D8 +_080D9470: .4byte sub_80D9474 + thumb_func_end sub_80D943C + + thumb_func_start sub_80D9474 +sub_80D9474: @ 80D9474 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl StartSpriteAffineAnim + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x14 + strh r0, [r4, 0x2E] + ldr r0, _080D94A0 + str r0, [r4, 0x1C] + ldr r1, _080D94A4 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D94A0: .4byte sub_80782D8 +_080D94A4: .4byte move_anim_8072740 + thumb_func_end sub_80D9474 + + thumb_func_start sub_80D94A8 +sub_80D94A8: @ 80D94A8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r0, _080D94C4 + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldr r0, _080D94C8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D94C4: .4byte gUnknown_03004B00 +_080D94C8: .4byte sub_80D94CC + thumb_func_end sub_80D94A8 + + thumb_func_start sub_80D94CC +sub_80D94CC: @ 80D94CC + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x2E] + subs r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080D9510 + movs r0, 0x6 + strh r0, [r5, 0x2E] + ldr r4, _080D9518 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080D951C + str r0, [r5, 0x1C] + ldr r1, _080D9520 + adds r0, r5, 0 + bl oamt_set_x3A_32 +_080D9510: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9518: .4byte gUnknown_0202F7C9 +_080D951C: .4byte sub_8078B34 +_080D9520: .4byte sub_80D9524 + thumb_func_end sub_80D94CC + + thumb_func_start sub_80D9524 +sub_80D9524: @ 80D9524 + push {lr} + movs r1, 0xF + strh r1, [r0, 0x2E] + ldr r1, _080D9538 + str r1, [r0, 0x1C] + ldr r1, _080D953C + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080D9538: .4byte sub_80782D8 +_080D953C: .4byte move_anim_8072740 + thumb_func_end sub_80D9524 + + thumb_func_start sub_80D9540 +sub_80D9540: @ 80D9540 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D956C + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r1, _080D9568 + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080D95C8 + .align 2, 0 +_080D9568: .4byte gUnknown_03004B00 +_080D956C: + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + cmp r0, 0x64 + ble _080D95BA + movs r0, 0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080D95BA: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x78 + ble _080D95C8 + adds r0, r4, 0 + bl move_anim_8072740 +_080D95C8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D9540 + + thumb_func_start sub_80D95D0 +sub_80D95D0: @ 80D95D0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080D95E4 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D95EC + ldr r4, _080D95E8 + b _080D95EE + .align 2, 0 +_080D95E4: .4byte gUnknown_03004B00 +_080D95E8: .4byte gUnknown_0202F7C8 +_080D95EC: + ldr r4, _080D9634 +_080D95EE: + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080D9638 + ldrh r0, [r1, 0x2] + ldrh r2, [r5, 0x20] + adds r0, r2 + movs r2, 0 + strh r0, [r5, 0x20] + ldrh r0, [r1, 0x4] + ldrh r3, [r5, 0x22] + adds r0, r3 + strh r0, [r5, 0x22] + strh r2, [r5, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x32] + strh r2, [r5, 0x34] + ldr r0, _080D963C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9634: .4byte gUnknown_0202F7C9 +_080D9638: .4byte gUnknown_03004B00 +_080D963C: .4byte sub_80D9640 + thumb_func_end sub_80D95D0 + + thumb_func_start sub_80D9640 +sub_80D9640: @ 80D9640 + push {lr} + adds r1, r0, 0 + movs r0, 0x2E + ldrsh r2, [r1, r0] + cmp r2, 0 + beq _080D9652 + cmp r2, 0x1 + beq _080D9676 + b _080D96B0 +_080D9652: + ldrh r0, [r1, 0x30] + subs r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080D96B0 + movs r2, 0x32 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080D966E + adds r0, r1, 0 + bl move_anim_8072740 + b _080D96B0 +_080D966E: + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + b _080D96B0 +_080D9676: + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D969E + movs r0, 0 + strh r0, [r1, 0x30] + ldrh r0, [r1, 0x34] + adds r0, 0x1 + strh r0, [r1, 0x34] + ands r0, r2 + lsls r0, 16 + cmp r0, 0 + beq _080D969A + movs r0, 0x2 + b _080D969C +_080D969A: + ldr r0, _080D96B4 +_080D969C: + strh r0, [r1, 0x24] +_080D969E: + ldrh r0, [r1, 0x32] + subs r0, 0x1 + strh r0, [r1, 0x32] + lsls r0, 16 + cmp r0, 0 + bne _080D96B0 + adds r0, r1, 0 + bl move_anim_8072740 +_080D96B0: + pop {r0} + bx r0 + .align 2, 0 +_080D96B4: .4byte 0x0000fffe + thumb_func_end sub_80D9640 + + thumb_func_start sub_80D96B8 +sub_80D96B8: @ 80D96B8 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080D96DC + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080D96E4 + ldr r4, _080D96E0 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r6, 0x4] + adds r0, r2 + b _080D96F6 + .align 2, 0 +_080D96DC: .4byte gUnknown_03004B00 +_080D96E0: .4byte gUnknown_0202F7C8 +_080D96E4: + ldr r4, _080D9740 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 +_080D96F6: + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x6] + adds r0, r6 + strh r0, [r5, 0x22] + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + ldr r3, _080D9744 + movs r4, 0x2 + ldrsh r0, [r3, r4] + lsls r0, 4 + adds r1, r0 + ldr r4, _080D9748 + adds r0, r4, 0 + ands r1, r0 + ldr r0, _080D974C + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + movs r1, 0 + movs r0, 0 + strh r0, [r5, 0x2E] + movs r2, 0x2 + ldrsh r0, [r3, r2] + cmp r0, 0x1 + beq _080D9764 + cmp r0, 0x1 + bgt _080D9750 + cmp r0, 0 + beq _080D975A + b _080D978A + .align 2, 0 +_080D9740: .4byte gUnknown_0202F7C9 +_080D9744: .4byte gUnknown_03004B00 +_080D9748: .4byte 0x000003ff +_080D974C: .4byte 0xfffffc00 +_080D9750: + cmp r0, 0x2 + beq _080D9774 + cmp r0, 0x3 + beq _080D9784 + b _080D978A +_080D975A: + ldr r0, _080D9760 + b _080D9784 + .align 2, 0 +_080D9760: .4byte 0x0000fffd +_080D9764: + movs r0, 0x3 + strh r0, [r5, 0x3A] + ldr r0, _080D9770 + strh r0, [r5, 0x3C] + b _080D9792 + .align 2, 0 +_080D9770: .4byte 0x0000fffd +_080D9774: + ldr r0, _080D9780 + strh r0, [r5, 0x3A] + movs r0, 0x3 + strh r0, [r5, 0x3C] + b _080D9792 + .align 2, 0 +_080D9780: .4byte 0x0000fffd +_080D9784: + strh r0, [r5, 0x3A] + strh r0, [r5, 0x3C] + b _080D9792 +_080D978A: + adds r0, r5, 0 + bl move_anim_8072740 + b _080D9796 +_080D9792: + ldr r0, _080D979C + str r0, [r5, 0x1C] +_080D9796: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D979C: .4byte sub_80D97A0 + thumb_func_end sub_80D96B8 + + thumb_func_start sub_80D97A0 +sub_80D97A0: @ 80D97A0 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x3A] + ldrh r2, [r1, 0x20] + adds r0, r2 + strh r0, [r1, 0x20] + ldrh r0, [r1, 0x3C] + ldrh r2, [r1, 0x22] + adds r0, r2 + strh r0, [r1, 0x22] + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x28 + ble _080D97C8 + adds r0, r1, 0 + bl move_anim_8072740 +_080D97C8: + pop {r0} + bx r0 + thumb_func_end sub_80D97A0 + + thumb_func_start sub_80D97CC +sub_80D97CC: @ 80D97CC + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080D9818 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D9828 + ldr r4, _080D981C + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r0, _080D9820 + ldrb r0, [r0] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + ldr r0, _080D9824 + b _080D9844 + .align 2, 0 +_080D9818: .4byte gUnknown_03004B00 +_080D981C: .4byte gUnknown_02024C07 +_080D9820: .4byte gUnknown_0202F7C8 +_080D9824: .4byte gUnknown_0202F7C9 +_080D9828: + ldr r0, _080D9860 + ldrb r0, [r0] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + ldr r0, _080D9864 +_080D9844: + ldrb r0, [r0] + strh r0, [r5, 0x3C] + movs r0, 0 + strh r0, [r5, 0x2E] + movs r0, 0xC + strh r0, [r5, 0x30] + movs r0, 0x8 + strh r0, [r5, 0x32] + ldr r0, _080D9868 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9860: .4byte gUnknown_0202F7C9 +_080D9864: .4byte gUnknown_0202F7C8 +_080D9868: .4byte sub_80D986C + thumb_func_end sub_80D97CC + + thumb_func_start sub_80D986C +sub_80D986C: @ 80D986C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB4 + bne _080D98C6 + ldr r1, _080D98CC + movs r0, 0 + strh r0, [r1] + movs r0, 0x10 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _080D98D0 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080D98D4 + str r0, [r4, 0x1C] +_080D98C6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D98CC: .4byte REG_BLDCNT +_080D98D0: .4byte move_anim_8074EE0 +_080D98D4: .4byte sub_8078BB8 + thumb_func_end sub_80D986C + + thumb_func_start sub_80D98D8 +sub_80D98D8: @ 80D98D8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080D9924 + ldrh r0, [r4] + strh r0, [r5, 0x20] + movs r2, 0x78 + strh r2, [r5, 0x22] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x2E] + adds r0, r5, 0 + adds r0, 0x36 + adds r1, r5, 0 + adds r1, 0x38 + lsls r2, 8 + bl sub_8079BF4 + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x3A] + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0x4 + ldrsh r0, [r4, r3] + lsls r0, 2 + adds r1, r0 + ldr r3, _080D9928 + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D992C + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r0, _080D9930 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9924: .4byte gUnknown_03004B00 +_080D9928: .4byte 0x000003ff +_080D992C: .4byte 0xfffffc00 +_080D9930: .4byte sub_80D9934 + thumb_func_end sub_80D98D8 + + thumb_func_start sub_80D9934 +sub_80D9934: @ 80D9934 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + movs r1, 0x2E + ldrsh r0, [r7, r1] + cmp r0, 0 + beq _080D9986 + movs r2, 0x36 + ldrsh r0, [r7, r2] + movs r2, 0x38 + ldrsh r1, [r7, r2] + bl sub_8079BFC + adds r4, r0, 0 + movs r1, 0x3A + ldrsh r0, [r7, r1] + subs r4, r0 + adds r0, r7, 0 + adds r0, 0x36 + adds r1, r7, 0 + adds r1, 0x38 + adds r2, r4, 0 + bl sub_8079BF4 + asrs r4, 8 + strh r4, [r7, 0x22] + lsls r4, 16 + asrs r4, 16 + movs r0, 0x8 + negs r0, r0 + cmp r4, r0 + bge _080D997E + adds r0, r7, 0 + bl move_anim_8072740 + b _080D99DC +_080D997E: + ldrh r0, [r7, 0x2E] + subs r0, 0x1 + strh r0, [r7, 0x2E] + b _080D99DC +_080D9986: + ldr r4, _080D99E8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r2, _080D99EC + mov r8, r2 + ldrb r0, [r2] + movs r1, 0x2 + bl sub_8077ABC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + subs r4, r6 + strh r4, [r7, 0x2E] + lsrs r0, 24 + subs r0, r5 + strh r0, [r7, 0x30] + ldrh r0, [r7, 0x20] + lsls r0, 4 + strh r0, [r7, 0x32] + ldrh r0, [r7, 0x22] + lsls r0, 4 + strh r0, [r7, 0x34] + ldr r0, _080D99F0 + str r0, [r7, 0x1C] +_080D99DC: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D99E8: .4byte gUnknown_0202F7C8 +_080D99EC: .4byte gUnknown_0202F7C9 +_080D99F0: .4byte sub_80D99F4 + thumb_func_end sub_80D9934 + + thumb_func_start sub_80D99F4 +sub_80D99F4: @ 80D99F4 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + ldrh r1, [r2, 0x30] + ldrh r3, [r2, 0x34] + adds r1, r3 + strh r1, [r2, 0x34] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r3, r1, 20 + strh r3, [r2, 0x22] + adds r0, 0x8 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bhi _080D9A2E + adds r1, r3, 0 + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + blt _080D9A2E + cmp r1, 0x78 + ble _080D9A34 +_080D9A2E: + adds r0, r2, 0 + bl move_anim_8072740 +_080D9A34: + pop {r0} + bx r0 + thumb_func_end sub_80D99F4 + + thumb_func_start sub_80D9A38 +sub_80D9A38: @ 80D9A38 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080D9A6C + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D9A7C + ldr r4, _080D9A70 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r0, _080D9A74 + ldrb r4, [r0] + ldr r0, _080D9A78 + b _080D9A82 + .align 2, 0 +_080D9A6C: .4byte gUnknown_03004B00 +_080D9A70: .4byte gUnknown_02024C07 +_080D9A74: .4byte gUnknown_0202F7C9 +_080D9A78: .4byte gUnknown_0202F7C8 +_080D9A7C: + ldr r0, _080D9AB4 + ldrb r4, [r0] + ldr r0, _080D9AB8 +_080D9A82: + ldrb r0, [r0] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D9ABC + ldrb r2, [r5, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + movs r0, 0x8 + orrs r1, r0 + lsls r1, 1 + subs r0, 0x47 + b _080D9AD6 + .align 2, 0 +_080D9AB4: .4byte gUnknown_0202F7C8 +_080D9AB8: .4byte gUnknown_0202F7C9 +_080D9ABC: + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D9ADC + ldrb r2, [r5, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + movs r0, 0x18 + orrs r1, r0 + lsls r1, 1 + subs r0, 0x57 +_080D9AD6: + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x3] +_080D9ADC: + movs r0, 0x10 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + adds r0, r4, 0 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _080D9B1C + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080D9B20 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9B1C: .4byte move_anim_8072740 +_080D9B20: .4byte sub_8078BB8 + thumb_func_end sub_80D9A38 + + thumb_func_start sub_80D9B24 +sub_80D9B24: @ 80D9B24 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r2, 0x36 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080D9B3A + adds r0, r4, 0 + bl move_anim_8072740 +_080D9B3A: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D9B24 + + thumb_func_start sub_80D9B48 +sub_80D9B48: @ 80D9B48 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _080D9BC4 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080D9BC8 + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + ldrh r0, [r1] + strh r0, [r5, 0x32] + ldrh r0, [r1, 0x2] + strh r0, [r5, 0x34] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x36] + ldr r0, _080D9BCC + ldrb r6, [r0] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D9B92 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_080D9B92: + movs r0, 0x1 + ands r6, r0 + cmp r6, 0 + beq _080D9BA6 + ldrh r0, [r5, 0x32] + negs r0, r0 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x30] + adds r0, 0x1 + strh r0, [r5, 0x30] +_080D9BA6: + ldrh r1, [r5, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim + ldrh r0, [r5, 0x32] + strh r0, [r5, 0x24] + ldrh r0, [r5, 0x34] + strh r0, [r5, 0x26] + ldr r0, _080D9BD0 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D9BC4: .4byte gUnknown_0202F7C9 +_080D9BC8: .4byte gUnknown_03004B00 +_080D9BCC: .4byte gUnknown_0202F7C4 +_080D9BD0: .4byte sub_80D9B24 + thumb_func_end sub_80D9B48 + + thumb_func_start sub_80D9BD4 +sub_80D9BD4: @ 80D9BD4 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D9BEC + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D9BF0 + adds r0, r4, 0 + movs r1, 0 + bl sub_80787B0 + b _080D9BF8 + .align 2, 0 +_080D9BEC: .4byte gUnknown_03004B00 +_080D9BF0: + adds r0, r4, 0 + movs r1, 0 + bl sub_8078764 +_080D9BF8: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D9C0C + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim + b _080D9C22 +_080D9C0C: + ldr r0, _080D9C34 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D9C22 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080D9C22: + ldr r0, _080D9C38 + str r0, [r4, 0x1C] + ldr r1, _080D9C3C + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D9C34: .4byte gUnknown_0202F7C8 +_080D9C38: .4byte sub_8078600 +_080D9C3C: .4byte move_anim_8072740 + thumb_func_end sub_80D9BD4 + + thumb_func_start sub_80D9C40 +sub_80D9C40: @ 80D9C40 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080D9C7A + ldrh r0, [r4, 0x30] + adds r0, 0x28 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x2 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x28 + ble _080D9C7A + adds r0, r4, 0 + bl move_anim_8072740 +_080D9C7A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D9C40 + + thumb_func_start sub_80D9C80 +sub_80D9C80: @ 80D9C80 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080D9CB0 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080D9CB8 + cmp r0, 0x1 + bgt _080D9CD2 + cmp r0, 0 + bne _080D9CD2 + movs r0, 0 + bl sub_80789D4 + ldr r0, _080D9CB4 + ldrh r0, [r0] + strh r0, [r4, 0x18] + b _080D9CCA + .align 2, 0 +_080D9CB0: .4byte gTasks +_080D9CB4: .4byte gUnknown_03004B00 +_080D9CB8: + ldrh r0, [r4, 0x18] + subs r0, 0x1 + strh r0, [r4, 0x18] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080D9CDE +_080D9CCA: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D9CDE +_080D9CD2: + movs r2, 0xA0 + lsls r2, 3 + adds r0, r2, 0 + ldrh r1, [r4, 0x1A] + adds r0, r1 + strh r0, [r4, 0x1A] +_080D9CDE: + movs r2, 0xB0 + lsls r2, 4 + adds r0, r2, 0 + ldrh r1, [r4, 0x1C] + adds r0, r1 + strh r0, [r4, 0x1C] + ldr r0, _080D9D0C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D9D14 + ldr r1, _080D9D10 + ldrh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 24 + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + adds r7, r1, 0 + b _080D9D24 + .align 2, 0 +_080D9D0C: .4byte gUnknown_0202F7C9 +_080D9D10: .4byte gUnknown_030041B0 +_080D9D14: + ldr r2, _080D9D64 + ldrh r1, [r4, 0x1A] + lsls r1, 16 + asrs r1, 24 + ldrh r0, [r2] + subs r0, r1 + strh r0, [r2] + adds r7, r2, 0 +_080D9D24: + ldr r3, _080D9D68 + ldrh r2, [r4, 0x1C] + lsls r0, r2, 16 + asrs r0, 24 + ldrh r1, [r3] + adds r0, r1 + strh r0, [r3] + movs r0, 0xFF + ldrb r1, [r4, 0x1A] + movs r5, 0 + strh r1, [r4, 0x1A] + ands r0, r2 + strh r0, [r4, 0x1C] + ldr r0, _080D9D6C + movs r2, 0xE + ldrsh r1, [r0, r2] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080D9D5C + strh r5, [r7] + strh r5, [r3] + movs r0, 0x1 + bl sub_80789D4 + adds r0, r6, 0 + bl move_anim_task_del +_080D9D5C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D9D64: .4byte gUnknown_030041B0 +_080D9D68: .4byte gUnknown_030041B8 +_080D9D6C: .4byte gUnknown_03004B00 + thumb_func_end sub_80D9C80 + + thumb_func_start sub_80D9D70 +sub_80D9D70: @ 80D9D70 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080D9DC4 + movs r1, 0x6 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D9D86 + adds r0, r5, 0 + movs r1, 0x2 + bl StartSpriteAnim +_080D9D86: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80787B0 + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x2E] + ldr r4, _080D9DC8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080D9DCC + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_80786EC + ldr r0, _080D9DD0 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9DC4: .4byte gUnknown_03004B00 +_080D9DC8: .4byte gUnknown_0202F7C9 +_080D9DCC: .4byte 0x0000ffe2 +_080D9DD0: .4byte sub_80D9DD4 + thumb_func_end sub_80D9D70 + + thumb_func_start sub_80D9DD4 +sub_80D9DD4: @ 80D9DD4 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080D9DE8 + adds r0, r4, 0 + bl move_anim_8072740 +_080D9DE8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D9DD4 + + thumb_func_start sub_80D9DF0 +sub_80D9DF0: @ 80D9DF0 + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r5, _080D9E64 + movs r1, 0x6 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D9E08 + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim +_080D9E08: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080D9E68 + ldrb r0, [r0] + mov r6, sp + adds r6, 0x2 + movs r1, 0x1 + mov r2, sp + adds r3, r6, 0 + bl sub_807A3FC + ldr r0, _080D9E6C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D9E36 + ldrh r0, [r5, 0x8] + negs r0, r0 + strh r0, [r5, 0x8] +_080D9E36: + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + mov r1, sp + ldrh r0, [r5, 0x8] + ldrh r1, [r1] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r5, 0xA] + ldrh r6, [r6] + adds r0, r6 + strh r0, [r4, 0x36] + ldr r0, _080D9E70 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80786EC + ldr r0, _080D9E74 + str r0, [r4, 0x1C] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D9E64: .4byte gUnknown_03004B00 +_080D9E68: .4byte gUnknown_0202F7C9 +_080D9E6C: .4byte gUnknown_0202F7C8 +_080D9E70: .4byte 0x0000ffe2 +_080D9E74: .4byte sub_80D9E78 + thumb_func_end sub_80D9DF0 + + thumb_func_start sub_80D9E78 +sub_80D9E78: @ 80D9E78 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080D9E8C + adds r0, r4, 0 + bl move_anim_8072740 +_080D9E8C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D9E78 + + thumb_func_start sub_80D9E94 +sub_80D9E94: @ 80D9E94 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D9EE0 + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r1, [r5] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrh r1, [r5, 0x2] + adds r0, r1 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_8078A5C + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r4, 0x38] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r4, 0x3A] + ldr r0, _080D9EE4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9EE0: .4byte gUnknown_03004B00 +_080D9EE4: .4byte sub_80D9EE8 + thumb_func_end sub_80D9E94 + + thumb_func_start sub_80D9EE8 +sub_80D9EE8: @ 80D9EE8 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078394 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x38] + subs r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + ldrh r1, [r4, 0x3A] + subs r0, r1 + strh r0, [r4, 0x32] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D9F0E + adds r0, r4, 0 + bl move_anim_8072740 +_080D9F0E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D9EE8 + + thumb_func_start sub_80D9F14 +sub_80D9F14: @ 80D9F14 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D9F74 + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0x1 + bl sub_807A3FC + ldr r0, _080D9F78 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D9F40 + ldr r1, _080D9F7C + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080D9F40: + ldr r0, _080D9F7C + ldrh r2, [r0] + ldrh r1, [r4, 0x20] + adds r2, r1 + strh r2, [r4, 0x20] + ldrh r1, [r0, 0x2] + ldrh r3, [r4, 0x22] + adds r1, r3 + strh r1, [r4, 0x22] + ldrh r3, [r0, 0x8] + strh r3, [r4, 0x2E] + ldrh r0, [r0, 0x4] + adds r2, r0 + strh r2, [r4, 0x32] + adds r1, r3 + strh r1, [r4, 0x36] + ldr r0, _080D9F80 + str r0, [r4, 0x1C] + ldr r1, _080D9F84 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D9F74: .4byte gUnknown_0202F7C9 +_080D9F78: .4byte gUnknown_0202F7C8 +_080D9F7C: .4byte gUnknown_03004B00 +_080D9F80: .4byte sub_8078B34 +_080D9F84: .4byte move_anim_8072740 + thumb_func_end sub_80D9F14 + + thumb_func_start sub_80D9F88 +sub_80D9F88: @ 80D9F88 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D9FA0 + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D9FA4 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078764 + b _080D9FDA + .align 2, 0 +_080D9FA0: .4byte gUnknown_03004B00 +_080D9FA4: + ldr r0, _080D9FE4 + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0x1 + bl sub_807A3FC + ldr r0, _080D9FE8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D9FCA + ldrh r0, [r5] + negs r0, r0 + strh r0, [r5] +_080D9FCA: + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_080D9FDA: + ldr r0, _080D9FEC + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9FE4: .4byte gUnknown_0202F7C9 +_080D9FE8: .4byte gUnknown_0202F7C8 +_080D9FEC: .4byte sub_80D9FF0 + thumb_func_end sub_80D9F88 + + thumb_func_start sub_80D9FF0 +sub_80D9FF0: @ 80D9FF0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0xB + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x30 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080DA02C + adds r0, r4, 0 + bl move_anim_8072740 +_080DA02C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D9FF0 + + thumb_func_start sub_80DA034 +sub_80DA034: @ 80DA034 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8078764 + ldrh r0, [r4, 0x22] + adds r0, 0x14 + strh r0, [r4, 0x22] + movs r0, 0xBF + strh r0, [r4, 0x30] + ldr r1, _080DA058 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DA058: .4byte sub_80DA05C + thumb_func_end sub_80DA034 + + thumb_func_start sub_80DA05C +sub_80DA05C: @ 80DA05C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x47 + bne _080DA096 + adds r0, r4, 0 + bl move_anim_8072740 +_080DA096: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DA05C + + thumb_func_start sub_80DA09C +sub_80DA09C: @ 80DA09C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080DA0CC + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r1, _080DA0D0 + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x8] + ldrh r0, [r1] + strh r0, [r4, 0xA] + ldr r0, _080DA0D4 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xC] + ldr r0, _080DA0D8 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DA0CC: .4byte gTasks +_080DA0D0: .4byte gUnknown_03004B00 +_080DA0D4: .4byte 0x00002719 +_080DA0D8: .4byte sub_80DA0DC + thumb_func_end sub_80DA09C + + thumb_func_start sub_80DA0DC +sub_80DA0DC: @ 80DA0DC + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _080DA15C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1C] + adds r1, r0, 0x1 + strh r1, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r4, 0xA + ldrsh r1, [r3, r4] + adds r7, r2, 0 + cmp r0, r1 + bne _080DA13A + movs r0, 0 + strh r0, [r3, 0x1C] + ldrb r0, [r3, 0xC] + ldr r2, _080DA160 + lsls r0, 4 + movs r3, 0x84 + lsls r3, 1 + adds r1, r0, r3 + lsls r1, 1 + adds r1, r2 + ldrh r6, [r1] + movs r4, 0x7 + mov r12, r0 + ldr r0, _080DA164 + add r0, r12 + lsls r0, 1 + adds r3, r0, r2 +_080DA122: + ldrh r0, [r3] + strh r0, [r1] + subs r3, 0x2 + subs r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bgt _080DA122 + ldr r0, _080DA168 + add r0, r12 + lsls r0, 1 + adds r0, r2 + strh r6, [r0] +_080DA13A: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r7 + ldrh r1, [r0, 0x8] + subs r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + cmp r1, 0 + bne _080DA154 + adds r0, r5, 0 + bl move_anim_task_del +_080DA154: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DA15C: .4byte gTasks +_080DA160: .4byte gPlttBufferFaded +_080DA164: .4byte 0x00000107 +_080DA168: .4byte 0x00000101 + thumb_func_end sub_80DA0DC + + thumb_func_start sub_80DA16C +sub_80DA16C: @ 80DA16C + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080DA1D8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DA18C + ldr r1, _080DA1DC + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080DA18C: + ldr r4, _080DA1DC + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldrh r0, [r6, 0x20] + strh r0, [r6, 0x30] + ldr r5, _080DA1E0 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrh r0, [r6, 0x22] + strh r0, [r6, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x6] + adds r0, r4 + strh r0, [r6, 0x36] + adds r0, r6, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080DA1E4 + str r0, [r6, 0x1C] + ldr r1, _080DA1E8 + adds r0, r6, 0 + bl oamt_set_x3A_32 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DA1D8: .4byte gUnknown_0202F7C8 +_080DA1DC: .4byte gUnknown_03004B00 +_080DA1E0: .4byte gUnknown_0202F7C9 +_080DA1E4: .4byte sub_80785E4 +_080DA1E8: .4byte sub_80DA1EC + thumb_func_end sub_80DA16C + + thumb_func_start sub_80DA1EC +sub_80DA1EC: @ 80DA1EC + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080DA200 + adds r0, r4, 0 + bl move_anim_8072740 +_080DA200: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DA1EC + + thumb_func_start sub_80DA208 +sub_80DA208: @ 80DA208 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080DA2A4 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DA234 + ldr r1, _080DA2A8 + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r1, 0x6] +_080DA234: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DA24C + ldr r0, _080DA2A8 + ldrh r1, [r0, 0x2] + negs r1, r1 + strh r1, [r0, 0x2] + ldrh r1, [r0, 0x6] + negs r1, r1 + strh r1, [r0, 0x6] +_080DA24C: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + ldr r2, _080DA2A8 + ldrh r1, [r2] + ldrh r3, [r5, 0x20] + adds r1, r3 + strh r1, [r5, 0x20] + lsrs r0, 24 + ldrh r1, [r2, 0x2] + adds r0, r1 + strh r0, [r5, 0x22] + ldrh r0, [r2, 0x8] + strh r0, [r5, 0x2E] + movs r3, 0xC + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080DA2B0 + ldr r4, _080DA2AC + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + b _080DA2C2 + .align 2, 0 +_080DA2A4: .4byte gUnknown_0202F7C8 +_080DA2A8: .4byte gUnknown_03004B00 +_080DA2AC: .4byte gUnknown_0202F7C9 +_080DA2B0: + ldr r0, _080DA2F0 + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_807A3FC +_080DA2C2: + ldr r4, _080DA2F4 + ldrh r0, [r4, 0x4] + ldrh r1, [r5, 0x32] + adds r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r4, 0x6] + ldrh r3, [r5, 0x36] + adds r0, r3 + strh r0, [r5, 0x36] + ldr r0, _080DA2F8 + str r0, [r5, 0x1C] + ldr r1, _080DA2FC + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldrb r1, [r4, 0xA] + adds r0, r5, 0 + bl SeekSpriteAnim + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DA2F0: .4byte gUnknown_0202F7C9 +_080DA2F4: .4byte gUnknown_03004B00 +_080DA2F8: .4byte sub_8078B34 +_080DA2FC: .4byte move_anim_8072740 + thumb_func_end sub_80DA208 + + thumb_func_start sub_80DA300 +sub_80DA300: @ 80DA300 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r1, _080DA33C + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldr r0, _080DA340 + str r0, [r4, 0x1C] + movs r0, 0 + bl obj_id_for_side_relative_to_move + ldr r2, _080DA344 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DA33C: .4byte gUnknown_03004B00 +_080DA340: .4byte sub_80DA348 +_080DA344: .4byte gSprites + thumb_func_end sub_80DA300 + + thumb_func_start sub_80DA348 +sub_80DA348: @ 80DA348 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x2E] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r0, 0 + ble _080DA35C + subs r0, r1, 0x1 + strh r0, [r2, 0x2E] + b _080DA36E +_080DA35C: + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r2, 0x26] + subs r1, r0 + strh r1, [r2, 0x26] +_080DA36E: + movs r3, 0x22 + ldrsh r0, [r2, r3] + movs r3, 0x26 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080DA386 + adds r0, r2, 0 + bl move_anim_8072740 +_080DA386: + pop {r0} + bx r0 + thumb_func_end sub_80DA348 + + thumb_func_start sub_80DA38C +sub_80DA38C: @ 80DA38C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080DA3B4 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DA3BC + movs r0, 0x88 + lsls r0, 1 + strh r0, [r5, 0x20] + ldr r0, _080DA3B8 + strh r0, [r5, 0x22] + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _080DA3C2 + .align 2, 0 +_080DA3B4: .4byte gUnknown_0202F7C8 +_080DA3B8: .4byte 0x0000ffe0 +_080DA3BC: + ldr r0, _080DA400 + strh r0, [r5, 0x20] + strh r0, [r5, 0x22] +_080DA3C2: + ldr r0, _080DA404 + ldrh r0, [r0] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080DA408 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080DA40C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DA400: .4byte 0x0000ffe0 +_080DA404: .4byte gUnknown_03004B00 +_080DA408: .4byte gUnknown_0202F7C9 +_080DA40C: .4byte sub_80DA410 + thumb_func_end sub_80DA38C + + thumb_func_start sub_80DA410 +sub_80DA410: @ 80DA410 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_8078B5C + ldrh r1, [r4, 0x34] + lsrs r0, r1, 8 + cmp r0, 0xC8 + bls _080DA438 + ldrh r0, [r4, 0x24] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + movs r0, 0 + strh r0, [r4, 0x24] + movs r0, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] +_080DA438: + movs r1, 0x20 + ldrsh r0, [r4, r1] + movs r2, 0x24 + ldrsh r1, [r4, r2] + adds r0, r1 + adds r0, 0x20 + movs r1, 0x98 + lsls r1, 1 + cmp r0, r1 + bhi _080DA45A + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r0, r1 + cmp r0, 0xA0 + ble _080DA480 +_080DA45A: + movs r0, 0 + bl obj_id_for_side_relative_to_move + ldr r2, _080DA488 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl move_anim_8072740 +_080DA480: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DA488: .4byte gSprites + thumb_func_end sub_80DA410 + + thumb_func_start sub_80DA48C +sub_80DA48C: @ 80DA48C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + subs r1, r0, 0x1 + strh r1, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080DA4CC + ldrb r0, [r4, 0x1] + lsls r0, 30 + lsrs r0, 30 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DA4BE + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] +_080DA4BE: + adds r0, r4, 0 + bl DestroySprite + ldr r1, _080DA4D4 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_080DA4CC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DA4D4: .4byte gUnknown_0202F7B2 + thumb_func_end sub_80DA48C + + thumb_func_start sub_80DA4D8 +sub_80DA4D8: @ 80DA4D8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + adds r5, r7, 0 + adds r5, 0x2E + ldr r0, _080DA4F8 + ldrh r1, [r0, 0xE] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080DA500 + ldr r0, _080DA4FC + b _080DA502 + .align 2, 0 +_080DA4F8: .4byte gUnknown_03004B00 +_080DA4FC: .4byte gUnknown_0202F7C8 +_080DA500: + ldr r0, _080DA5B0 +_080DA502: + ldrb r6, [r0] + adds r0, r6, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DA518 + ldr r1, _080DA5B4 + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080DA518: + adds r0, r6, 0 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080DA5B4 + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r7, 0x20] + adds r0, r6, 0 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + ldrh r1, [r4, 0x2] + lsrs r0, 24 + adds r1, r0, r1 + strh r1, [r7, 0x22] + lsls r1, 8 + strh r1, [r5, 0x8] + ldrh r1, [r4, 0xC] + adds r0, r1 + lsls r0, 1 + ldrh r2, [r5, 0xE] + movs r1, 0x1 + ands r1, r2 + orrs r1, r0 + strh r1, [r5, 0xE] + ldrb r0, [r5] + movs r2, 0x4 + mov r8, r2 + mov r1, r8 + orrs r0, r1 + strb r0, [r5] + ldrh r0, [r4, 0x4] + ldrb r1, [r4, 0x4] + strh r1, [r5, 0x2] + lsls r0, 16 + lsrs r0, 24 + strh r0, [r5, 0xA] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x4] + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x6] + ldrh r0, [r4, 0xA] + strh r0, [r5, 0xC] + subs r1, 0x40 + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0x7F + bhi _080DA618 + ldr r0, _080DA5B8 + ldr r2, _080DA5BC + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080DA5C0 + adds r0, r6, 0 + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r7, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r7, 0x5] + b _080DA5D8 + .align 2, 0 +_080DA5B0: .4byte gUnknown_0202F7C9 +_080DA5B4: .4byte gUnknown_03004B00 +_080DA5B8: .4byte gMain +_080DA5BC: .4byte 0x0000043d +_080DA5C0: + adds r0, r6, 0 + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r7, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7, 0x5] +_080DA5D8: + ldrb r1, [r5, 0xE] + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + ands r0, r1 + strb r0, [r5, 0xE] + movs r1, 0x4 + ldrsh r0, [r5, r1] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + bne _080DA678 + adds r3, r7, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r0, r2, 31 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + adds r0, r4, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r7, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + b _080DA66E +_080DA618: + adds r0, r6, 0 + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r7, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7, 0x5] + ldrb r0, [r5, 0xE] + movs r4, 0x1 + orrs r0, r4 + strb r0, [r5, 0xE] + movs r2, 0x4 + ldrsh r0, [r5, r2] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080DA678 + adds r3, r7, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + ands r1, r4 + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r7, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + mov r1, r8 +_080DA66E: + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] +_080DA678: + ldrh r1, [r5, 0x2] + lsrs r1, 6 + lsls r1, 4 + ldrb r2, [r5] + movs r0, 0xF + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + ldr r3, _080DA6E4 + ldrh r0, [r5, 0x2] + lsls r0, 1 + adds r0, r3 + movs r2, 0 + ldrsh r1, [r0, r2] + ldrb r0, [r5, 0xC] + muls r0, r1 + asrs r0, 8 + strh r0, [r7, 0x24] + ldrb r2, [r7, 0x3] + lsls r2, 26 + lsrs r2, 27 + movs r1, 0x24 + ldrsh r0, [r7, r1] + negs r0, r0 + asrs r0, 1 + ldrb r5, [r5, 0xA] + adds r0, r5 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r3 + ldrh r4, [r1] + ldr r1, _080DA6E8 + lsls r2, 3 + adds r2, r1 + adds r0, 0x40 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r2, 0x6] + strh r0, [r2] + strh r4, [r2, 0x2] + lsls r0, r4, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r2, 0x4] + ldr r0, _080DA6EC + str r0, [r7, 0x1C] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DA6E4: .4byte gSineTable +_080DA6E8: .4byte gOamMatrices +_080DA6EC: .4byte sub_80DA6F0 + thumb_func_end sub_80DA4D8 + + thumb_func_start sub_80DA6F0 +sub_80DA6F0: @ 80DA6F0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + movs r6, 0 + movs r0, 0x2E + adds r0, r5 + mov r12, r0 + ldrb r2, [r0] + movs r7, 0x1 + movs r1, 0x1 + mov r9, r1 + mov r0, r9 + ands r0, r2 + cmp r0, 0 + beq _080DA730 + mov r3, r12 + ldrb r0, [r3, 0x1] + adds r1, r0, 0 + adds r1, 0xFF + strb r1, [r3, 0x1] + lsls r0, 24 + cmp r0, 0 + beq _080DA724 + b _080DAD1A +_080DA724: + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r3] + strb r6, [r3, 0x1] + b _080DAD1A +_080DA730: + mov r4, r12 + ldrh r0, [r4, 0x2] + lsrs r4, r0, 6 + mov r8, r0 + cmp r4, 0x1 + bne _080DA73E + b _080DA896 +_080DA73E: + cmp r4, 0x1 + bgt _080DA748 + cmp r4, 0 + beq _080DA756 + b _080DAC52 +_080DA748: + cmp r4, 0x2 + bne _080DA74E + b _080DA9C8 +_080DA74E: + cmp r4, 0x3 + bne _080DA754 + b _080DAB0E +_080DA754: + b _080DAC52 +_080DA756: + lsls r1, r2, 24 + lsrs r0, r1, 28 + cmp r0, 0x1 + bne _080DA76C + movs r0, 0x8 + orrs r0, r2 + orrs r0, r7 + mov r1, r12 + strb r0, [r1] + strb r6, [r1, 0x1] + b _080DA88A +_080DA76C: + lsrs r0, r1, 28 + cmp r0, 0x3 + bne _080DA790 + lsls r0, r2, 30 + lsrs r0, 31 + movs r1, 0x1 + eors r0, r1 + ands r0, r7 + lsls r0, 1 + movs r1, 0x3 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + orrs r1, r7 + mov r2, r12 + strb r1, [r2] + strb r6, [r2, 0x1] + b _080DA88A +_080DA790: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080DA88A + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r4, 0x1 + eors r1, r4 + ands r1, r7 + movs r6, 0x2 + negs r6, r6 + adds r0, r6, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r5, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + mov r3, r12 + ldrb r1, [r3] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080DA87A + ldr r0, _080DA80C + ldr r1, _080DA810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080DA82E + ldrb r1, [r3, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080DA814 + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080DA868 + .align 2, 0 +_080DA80C: .4byte gMain +_080DA810: .4byte 0x0000043d +_080DA814: + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080DA866 +_080DA82E: + mov r0, r12 + ldrb r1, [r0, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080DA85C + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + subs r0, 0xC + strb r0, [r1] + mov r1, r12 + ldrb r2, [r1, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r4 + ands r0, r7 + adds r1, r6, 0 + ands r1, r2 + orrs r1, r0 + mov r2, r12 + strb r1, [r2, 0xE] + b _080DA87A +_080DA85C: + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0xC + strb r0, [r1] +_080DA866: + mov r3, r12 +_080DA868: + ldrb r2, [r3, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r4 + ands r0, r7 + adds r1, r6, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xE] +_080DA87A: + mov r4, r12 + ldrb r1, [r4] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrh r0, [r4, 0x2] + mov r8, r0 +_080DA88A: + mov r2, r12 + ldrb r1, [r2] + movs r0, 0xF + ands r0, r1 + strb r0, [r2] + b _080DAC52 +_080DA896: + lsls r1, r2, 24 + lsrs r0, r1, 28 + cmp r0, 0 + bne _080DA8AC + movs r0, 0x8 + orrs r0, r2 + orrs r0, r7 + mov r3, r12 + strb r0, [r3] + strb r6, [r3, 0x1] + b _080DA9BC +_080DA8AC: + lsrs r0, r1, 28 + cmp r0, 0x2 + bne _080DA8BE + adds r0, r2, 0 + orrs r0, r7 + mov r4, r12 + strb r0, [r4] + strb r6, [r4, 0x1] + b _080DA9BC +_080DA8BE: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080DA9BC + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r4, 0x1 + eors r1, r4 + ands r1, r7 + movs r6, 0x2 + negs r6, r6 + adds r0, r6, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r5, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + mov r0, r12 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080DA9AC + ldr r0, _080DA940 + ldr r1, _080DA944 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080DA962 + mov r2, r12 + ldrb r1, [r2, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080DA948 + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + mov r3, r12 + b _080DA978 + .align 2, 0 +_080DA940: .4byte gMain +_080DA944: .4byte 0x0000043d +_080DA948: + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080DA996 +_080DA962: + mov r3, r12 + ldrb r1, [r3, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080DA98C + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + subs r0, 0xC + strb r0, [r1] +_080DA978: + ldrb r2, [r3, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r4 + ands r0, r7 + adds r1, r6, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xE] + b _080DA9AC +_080DA98C: + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0xC + strb r0, [r1] +_080DA996: + mov r0, r12 + ldrb r2, [r0, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r4 + ands r0, r7 + adds r1, r6, 0 + ands r1, r2 + orrs r1, r0 + mov r2, r12 + strb r1, [r2, 0xE] +_080DA9AC: + mov r3, r12 + ldrb r1, [r3] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + ldrh r4, [r3, 0x2] + mov r8, r4 +_080DA9BC: + mov r1, r12 + ldrb r0, [r1] + movs r1, 0xF + ands r1, r0 + movs r0, 0x10 + b _080DAC4C +_080DA9C8: + lsls r1, r2, 24 + lsrs r0, r1, 28 + cmp r0, 0x3 + bne _080DA9DE + movs r0, 0x8 + orrs r0, r2 + orrs r0, r7 + mov r3, r12 + strb r0, [r3] + strb r6, [r3, 0x1] + b _080DAAFE +_080DA9DE: + lsrs r0, r1, 28 + cmp r0, 0x1 + bne _080DA9F0 + adds r0, r2, 0 + orrs r0, r7 + mov r4, r12 + strb r0, [r4] + strb r6, [r4, 0x1] + b _080DAAFE +_080DA9F0: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + bne _080DA9FA + b _080DAAFE +_080DA9FA: + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r6, 0x1 + eors r1, r6 + ands r1, r7 + movs r0, 0x2 + negs r0, r0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r5, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + mov r2, r12 + ldrb r1, [r2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080DAAEC + ldr r0, _080DAA6C + ldr r3, _080DAA70 + adds r0, r3 + ldrb r0, [r0] + ands r4, r0 + cmp r4, 0 + beq _080DAAA4 + ldrb r1, [r2, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080DAA74 + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080DAAD8 + .align 2, 0 +_080DAA6C: .4byte gMain +_080DAA70: .4byte 0x0000043d +_080DAA74: + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + mov r0, r12 + ldrb r2, [r0, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + mov r2, r12 + strb r1, [r2, 0xE] + b _080DAAEC +_080DAAA4: + mov r3, r12 + ldrb r1, [r3, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080DAACE + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + subs r0, 0xC + strb r0, [r1] + ldrb r2, [r3, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xE] + b _080DAAEC +_080DAACE: + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0xC + strb r0, [r1] +_080DAAD8: + mov r4, r12 + ldrb r2, [r4, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0xE] +_080DAAEC: + mov r0, r12 + ldrb r1, [r0] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r2, [r1, 0x2] + mov r8, r2 +_080DAAFE: + mov r3, r12 + ldrb r0, [r3] + movs r1, 0xF + ands r1, r0 + movs r0, 0x20 + orrs r1, r0 + strb r1, [r3] + b _080DAC52 +_080DAB0E: + lsls r1, r2, 24 + lsrs r0, r1, 28 + cmp r0, 0x2 + bne _080DAB20 + movs r0, 0x8 + orrs r0, r2 + mov r4, r12 + strb r0, [r4] + b _080DAC42 +_080DAB20: + lsrs r0, r1, 28 + cmp r0, 0 + bne _080DAB44 + lsls r0, r2, 30 + lsrs r0, 31 + movs r1, 0x1 + eors r0, r1 + ands r0, r7 + lsls r0, 1 + movs r1, 0x3 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + orrs r1, r7 + mov r0, r12 + strb r1, [r0] + strb r6, [r0, 0x1] + b _080DAC42 +_080DAB44: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080DAC42 + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r4, 0x1 + eors r1, r4 + ands r1, r7 + movs r6, 0x2 + negs r6, r6 + adds r0, r6, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r5, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + mov r2, r12 + ldrb r1, [r2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080DAC32 + ldr r0, _080DABC4 + ldr r3, _080DABC8 + adds r0, r3 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080DABE6 + ldrb r1, [r2, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080DABCC + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + mov r0, r12 + ldrb r2, [r0, 0xE] + b _080DAC00 + .align 2, 0 +_080DABC4: .4byte gMain +_080DABC8: .4byte 0x0000043d +_080DABCC: + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080DAC1E +_080DABE6: + mov r0, r12 + ldrb r1, [r0, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080DAC14 + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + subs r0, 0xC + strb r0, [r1] + mov r1, r12 + ldrb r2, [r1, 0xE] +_080DAC00: + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r4 + ands r0, r7 + adds r1, r6, 0 + ands r1, r2 + orrs r1, r0 + mov r2, r12 + strb r1, [r2, 0xE] + b _080DAC32 +_080DAC14: + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0xC + strb r0, [r1] +_080DAC1E: + mov r3, r12 + ldrb r2, [r3, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r4 + ands r0, r7 + adds r1, r6, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xE] +_080DAC32: + mov r4, r12 + ldrb r1, [r4] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrh r0, [r4, 0x2] + mov r8, r0 +_080DAC42: + mov r1, r12 + ldrb r0, [r1] + movs r1, 0xF + ands r1, r0 + movs r0, 0x30 +_080DAC4C: + orrs r1, r0 + mov r2, r12 + strb r1, [r2] +_080DAC52: + mov r3, r12 + ldrb r1, [r3] + lsls r1, 30 + lsrs r1, 31 + mov r0, r12 + adds r0, 0xC + adds r0, r1 + ldrb r1, [r0] + ldr r3, _080DACE0 + mov r4, r8 + lsls r0, r4, 1 + adds r0, r3 + movs r2, 0 + ldrsh r0, [r0, r2] + muls r0, r1 + asrs r0, 8 + strh r0, [r5, 0x24] + ldrb r2, [r5, 0x3] + lsls r2, 26 + lsrs r2, 27 + movs r4, 0x24 + ldrsh r0, [r5, r4] + negs r0, r0 + asrs r0, 1 + mov r1, r12 + ldrb r1, [r1, 0xA] + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r3 + ldrh r6, [r1] + ldr r1, _080DACE4 + lsls r2, 3 + adds r2, r1 + adds r0, 0x40 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r2, 0x6] + strh r0, [r2] + strh r6, [r2, 0x2] + lsls r0, r6, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r2, 0x4] + mov r2, r12 + ldrh r0, [r2, 0x6] + ldrh r3, [r2, 0x8] + adds r0, r3 + strh r0, [r2, 0x8] + lsls r0, 16 + lsrs r0, 24 + strh r0, [r5, 0x22] + movs r4, 0x4 + ldrsh r0, [r2, r4] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080DACE8 + ldrh r0, [r2, 0x4] + subs r1, 0x1 + ands r1, r0 + ldrh r0, [r2, 0x2] + subs r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r2, 0x2] + b _080DACFE + .align 2, 0 +_080DACE0: .4byte gSineTable +_080DACE4: .4byte gOamMatrices +_080DACE8: + mov r1, r12 + ldrh r0, [r1, 0x4] + ldr r1, _080DAD28 + ands r1, r0 + mov r2, r12 + ldrh r2, [r2, 0x2] + adds r1, r2 + movs r0, 0xFF + ands r1, r0 + mov r3, r12 + strh r1, [r3, 0x2] +_080DACFE: + movs r4, 0x22 + ldrsh r1, [r5, r4] + movs r2, 0x26 + ldrsh r0, [r5, r2] + adds r1, r0 + mov r3, r12 + ldrh r0, [r3, 0xE] + lsrs r0, 1 + cmp r1, r0 + blt _080DAD1A + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080DAD2C + str r0, [r5, 0x1C] +_080DAD1A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DAD28: .4byte 0x00007fff +_080DAD2C: .4byte sub_80DA48C + thumb_func_end sub_80DA6F0 + + thumb_func_start sub_80DAD30 +sub_80DAD30: @ 80DAD30 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, _080DAD78 + ldrb r0, [r0] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + ldr r5, _080DAD7C + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r0, _080DAD80 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DAD78: .4byte gUnknown_0202F7C9 +_080DAD7C: .4byte gUnknown_0202F7C8 +_080DAD80: .4byte sub_807941C + thumb_func_end sub_80DAD30 + + thumb_func_start sub_80DAD84 +sub_80DAD84: @ 80DAD84 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r5, _080DADCC + ldrh r0, [r5] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x34] + ldr r0, _080DADD0 + ldr r1, _080DADD4 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080DAE44 + ldr r0, _080DADD8 + ldr r1, _080DADDC + ldrb r2, [r1] + adds r0, r2, r0 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DADE0 + adds r0, r2, 0 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x6] + adds r0, r5 + b _080DADEE + .align 2, 0 +_080DADCC: .4byte gUnknown_03004B00 +_080DADD0: .4byte gMain +_080DADD4: .4byte 0x0000043d +_080DADD8: .4byte gUnknown_02024A72 +_080DADDC: .4byte gUnknown_0202F7C9 +_080DADE0: + adds r0, r2, 0 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x28 +_080DADEE: + strh r0, [r4, 0x3C] + ldr r0, _080DAE1C + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080DAE24 + ldr r0, _080DAE20 + ldrb r0, [r0] + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] + b _080DAE58 + .align 2, 0 +_080DAE1C: .4byte gUnknown_03004B00 +_080DAE20: .4byte gUnknown_0202F7C9 +_080DAE24: + ldr r0, _080DAE40 + ldrb r0, [r0] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + b _080DAE58 + .align 2, 0 +_080DAE40: .4byte gUnknown_0202F7C9 +_080DAE44: + ldr r0, _080DAEFC + ldrb r0, [r0] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x6] + adds r0, r5 + strh r0, [r4, 0x3C] +_080DAE58: + ldr r5, _080DAF00 + ldrh r3, [r4, 0x30] + movs r1, 0xFF + ands r1, r3 + lsls r0, r1, 1 + adds r0, r5 + ldrh r0, [r0] + movs r2, 0 + strh r0, [r4, 0x36] + adds r1, 0x40 + lsls r1, 1 + adds r1, r5 + ldrh r0, [r1] + negs r0, r0 + strh r0, [r4, 0x38] + strh r2, [r4, 0x3A] + strh r2, [r4, 0x26] + strh r2, [r4, 0x24] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r6, r0, 27 + lsls r3, 16 + lsrs r3, 24 + strh r3, [r4, 0x30] + bl Random + lsls r0, 16 + asrs r7, r0, 16 + movs r0, 0x80 + lsls r0, 8 + ands r0, r7 + cmp r0, 0 + beq _080DAEA2 + ldrh r1, [r4, 0x30] + movs r0, 0xFF + subs r0, r1 + strh r0, [r4, 0x30] +_080DAEA2: + movs r0, 0x30 + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r5 + ldrh r0, [r0] + ldr r3, _080DAF04 + lsls r2, r6, 3 + adds r2, r3 + adds r1, 0x40 + lsls r1, 1 + adds r1, r5 + ldrh r1, [r1] + strh r1, [r2, 0x6] + strh r1, [r2] + strh r0, [r2, 0x2] + lsls r0, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r2, 0x4] + adds r3, r4, 0 + adds r3, 0x3F + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + movs r0, 0x1 + ands r0, r7 + cmp r0, 0 + beq _080DAEF2 + adds r2, r4, 0 + adds r2, 0x2A + movs r1, 0x1 + movs r0, 0x1 + strb r0, [r2] + ldrb r0, [r3] + orrs r0, r1 + strb r0, [r3] +_080DAEF2: + ldr r0, _080DAF08 + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DAEFC: .4byte gUnknown_0202F7C9 +_080DAF00: .4byte gSineTable +_080DAF04: .4byte gOamMatrices +_080DAF08: .4byte sub_80DAF0C + thumb_func_end sub_80DAD84 + + thumb_func_start sub_80DAF0C +sub_80DAF0C: @ 80DAF0C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r4, r0, 0 + adds r5, r4, 0 + adds r5, 0x2E + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + movs r1, 0 + mov r8, r1 + movs r7, 0 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080DAFF0 + movs r2, 0x36 + ldrsh r1, [r4, r2] + movs r2, 0x3A + ldrsh r0, [r4, r2] + muls r0, r1 + asrs r6, r0, 8 + strh r6, [r4, 0x24] + movs r0, 0x38 + ldrsh r1, [r4, r0] + movs r2, 0x3A + ldrsh r0, [r4, r2] + muls r0, r1 + asrs r3, r0, 8 + strh r3, [r4, 0x26] + ldrh r2, [r4, 0x34] + movs r1, 0xFF + adds r0, r1, 0 + ands r0, r2 + ldrh r2, [r4, 0x3A] + adds r0, r2 + strh r0, [r4, 0x3A] + ldrh r2, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + ands r1, r2 + cmp r0, r1 + blt _080DAFF0 + ldrh r0, [r4, 0x20] + adds r0, r6 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x22] + adds r0, r3 + strh r0, [r4, 0x22] + strh r7, [r4, 0x24] + strh r7, [r4, 0x26] + mov r0, sp + adds r1, r5, 0 + movs r2, 0x10 + bl memcpy + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x10 + bl memset + ldrh r0, [r4, 0x22] + lsls r0, 8 + strh r0, [r5, 0x8] + mov r0, sp + ldrh r0, [r0, 0x6] + lsrs r1, r0, 8 + strh r1, [r5, 0x6] + strh r7, [r5, 0x2] + mov r0, sp + ldrh r0, [r0, 0x2] + strh r0, [r5, 0xA] + adds r0, r4, 0 + adds r0, 0x2A + ldrb r0, [r0] + cmp r0, 0 + beq _080DAFC0 + movs r0, 0x8 + ands r1, r0 + cmp r1, 0 + beq _080DAFB8 + ldr r0, _080DAFB4 + b _080DAFCE + .align 2, 0 +_080DAFB4: .4byte 0x00008001 +_080DAFB8: + ldr r0, _080DAFBC + b _080DAFCE + .align 2, 0 +_080DAFBC: .4byte 0x00008002 +_080DAFC0: + movs r0, 0x8 + ands r1, r0 + cmp r1, 0 + beq _080DAFCC + movs r0, 0x1 + b _080DAFCE +_080DAFCC: + movs r0, 0x2 +_080DAFCE: + strh r0, [r5, 0x4] + mov r0, sp + ldrh r0, [r0, 0x4] + lsrs r0, 8 + strb r0, [r5, 0xC] + subs r0, 0x2 + strb r0, [r5, 0xD] + mov r0, sp + ldrh r1, [r0, 0xE] + lsls r1, 1 + ldrh r2, [r5, 0xE] + movs r0, 0x1 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0xE] + ldr r0, _080DAFFC + str r0, [r4, 0x1C] +_080DAFF0: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DAFFC: .4byte sub_80DA6F0 + thumb_func_end sub_80DAF0C + + thumb_func_start sub_80DB000 +sub_80DB000: @ 80DB000 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080DB018 + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080DB01C + adds r0, r5, 0 + movs r1, 0 + bl sub_80787B0 + b _080DB024 + .align 2, 0 +_080DB018: .4byte gUnknown_03004B00 +_080DB01C: + adds r0, r5, 0 + movs r1, 0 + bl sub_8078764 +_080DB024: + ldr r4, _080DB08C + movs r2, 0x4 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080DB03C + ldr r0, _080DB090 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DB052 +_080DB03C: + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080DB058 + ldr r0, _080DB094 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DB058 +_080DB052: + ldrh r0, [r5, 0x20] + adds r0, 0x8 + strh r0, [r5, 0x20] +_080DB058: + ldr r4, _080DB08C + ldrb r1, [r4, 0x8] + adds r0, r5, 0 + bl SeekSpriteAnim + ldrh r0, [r5, 0x20] + subs r0, 0x20 + strh r0, [r5, 0x20] + ldr r0, _080DB098 + strh r0, [r5, 0x30] + ldrh r1, [r4, 0x8] + movs r0, 0xC + adds r2, r0, 0 + muls r2, r1 + adds r0, r2, 0 + ldrh r2, [r5, 0x24] + adds r0, r2 + strh r0, [r5, 0x24] + strh r1, [r5, 0x2E] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x3C] + ldr r0, _080DB09C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DB08C: .4byte gUnknown_03004B00 +_080DB090: .4byte gUnknown_0202F7C8 +_080DB094: .4byte gUnknown_0202F7C9 +_080DB098: .4byte 0x00000ccc +_080DB09C: .4byte sub_80DB0A0 + thumb_func_end sub_80DB000 + + thumb_func_start sub_80DB0A0 +sub_80DB0A0: @ 80DB0A0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r4, 0x24] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + bne _080DB0CA + strh r1, [r4, 0x2E] + strh r1, [r4, 0x24] + adds r0, r4, 0 + bl StartSpriteAnim +_080DB0CA: + ldrh r0, [r4, 0x3C] + subs r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080DB0E2 + adds r0, r4, 0 + bl move_anim_8072740 +_080DB0E2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DB0A0 + + thumb_func_start sub_80DB0E8 +sub_80DB0E8: @ 80DB0E8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080DB180 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r7, r0, r1 + ldrh r0, [r7, 0x8] + movs r1, 0x1F + ands r0, r1 + cmp r0, 0 + bne _080DB162 + ldr r1, _080DB184 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r1, 0x8 + ldrsh r0, [r7, r1] + movs r5, 0xD + negs r5, r5 + adds r1, r5, 0 + bl Sin + ldr r4, _080DB188 + strh r0, [r4] + movs r1, 0x8 + ldrsh r0, [r7, r1] + adds r1, r5, 0 + bl Cos + strh r0, [r4, 0x2] + movs r0, 0x1 + strh r0, [r4, 0x4] + movs r0, 0x3 + strh r0, [r4, 0x6] + ldr r0, _080DB18C + mov r8, r0 + ldr r5, _080DB190 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + mov r0, r8 + adds r1, r4, 0 + movs r3, 0x3 + bl CreateSpriteAndAnimate +_080DB162: + ldrh r0, [r7, 0x8] + adds r0, 0x8 + strh r0, [r7, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080DB176 + adds r0, r6, 0 + bl move_anim_task_del +_080DB176: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DB180: .4byte gTasks +_080DB184: .4byte gUnknown_0202F7B2 +_080DB188: .4byte gUnknown_03004B00 +_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538 +_080DB190: .4byte gUnknown_0202F7C9 + thumb_func_end sub_80DB0E8 + + thumb_func_start sub_80DB194 +sub_80DB194: @ 80DB194 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080DB1A6 + cmp r0, 0x1 + beq _080DB1D8 + b _080DB1EC +_080DB1A6: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80787B0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + ldr r2, _080DB1D4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080DB1EC + .align 2, 0 +_080DB1D4: .4byte gSprites +_080DB1D8: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080DB1EC + adds r0, r4, 0 + bl move_anim_8072740 +_080DB1EC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DB194 + + thumb_func_start sub_80DB1F4 +sub_80DB1F4: @ 80DB1F4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080DB22C + cmp r0, 0x1 + bgt _080DB20A + cmp r0, 0 + beq _080DB210 + b _080DB27E +_080DB20A: + cmp r0, 0x2 + beq _080DB240 + b _080DB27E +_080DB210: + ldr r0, _080DB228 + ldrb r0, [r0] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + negs r0, r0 + subs r0, 0x20 + strh r0, [r4, 0x26] + b _080DB238 + .align 2, 0 +_080DB228: .4byte gUnknown_0202F7C9 +_080DB22C: + ldrh r0, [r4, 0x26] + adds r0, 0xA + strh r0, [r4, 0x26] + lsls r0, 16 + cmp r0, 0 + blt _080DB27E +_080DB238: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080DB27E +_080DB240: + ldrh r0, [r4, 0x26] + subs r0, 0xA + strh r0, [r4, 0x26] + movs r2, 0x22 + ldrsh r0, [r4, r2] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080DB27E + movs r0, 0 + bl obj_id_for_side_relative_to_move + ldr r2, _080DB284 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl move_anim_8072740 +_080DB27E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DB284: .4byte gSprites + thumb_func_end sub_80DB1F4 + + thumb_func_start sub_80DB288 +sub_80DB288: @ 80DB288 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r1, _080DB2C4 + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldr r0, _080DB2C8 + str r0, [r4, 0x1C] + movs r0, 0 + bl obj_id_for_side_relative_to_move + ldr r2, _080DB2CC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DB2C4: .4byte gUnknown_03004B00 +_080DB2C8: .4byte sub_80DB2D0 +_080DB2CC: .4byte gSprites + thumb_func_end sub_80DB288 + + thumb_func_start sub_80DB2D0 +sub_80DB2D0: @ 80DB2D0 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x2E] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r0, 0 + ble _080DB2E4 + subs r0, r1, 0x1 + strh r0, [r2, 0x2E] + b _080DB328 +_080DB2E4: + movs r1, 0x22 + ldrsh r0, [r2, r1] + movs r3, 0x26 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + ble _080DB30A + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r2, 0x26] + subs r1, r0 + strh r1, [r2, 0x26] + b _080DB328 +_080DB30A: + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r2, 0x34] + adds r1, r0, 0x1 + strh r1, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080DB328 + ldr r0, _080DB32C + str r0, [r2, 0x1C] +_080DB328: + pop {r0} + bx r0 + .align 2, 0 +_080DB32C: .4byte sub_80DB330 + thumb_func_end sub_80DB2D0 + + thumb_func_start sub_80DB330 +sub_80DB330: @ 80DB330 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r2, 0x26] + adds r0, r1 + strh r0, [r2, 0x26] + movs r3, 0x22 + ldrsh r0, [r2, r3] + movs r3, 0x26 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + ble _080DB360 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] +_080DB360: + movs r1, 0x26 + ldrsh r0, [r2, r1] + cmp r0, 0 + ble _080DB36E + adds r0, r2, 0 + bl move_anim_8072740 +_080DB36E: + pop {r0} + bx r0 + thumb_func_end sub_80DB330 + + thumb_func_start sub_80DB374 +sub_80DB374: @ 80DB374 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080DB388 + cmp r0, 0x1 + beq _080DB3E0 + b _080DB44C +_080DB388: + ldr r0, _080DB398 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _080DB3A0 + ldr r4, _080DB39C + b _080DB3A2 + .align 2, 0 +_080DB398: .4byte gUnknown_03004B00 +_080DB39C: .4byte gUnknown_0202F7C8 +_080DB3A0: + ldr r4, _080DB3DC +_080DB3A2: + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + movs r0, 0 + movs r3, 0x80 + lsls r3, 2 + strh r3, [r5, 0x30] + movs r2, 0x80 + lsls r2, 1 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0 + bl sub_8078FDC + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080DB44C + .align 2, 0 +_080DB3DC: .4byte gUnknown_0202F7C9 +_080DB3E0: + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0xB + bgt _080DB3EE + ldrh r0, [r5, 0x30] + subs r0, 0x28 + b _080DB3F2 +_080DB3EE: + ldrh r0, [r5, 0x30] + adds r0, 0x28 +_080DB3F2: + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + adds r0, 0x1 + movs r1, 0 + strh r0, [r5, 0x32] + movs r2, 0x80 + lsls r2, 1 + movs r0, 0x30 + ldrsh r3, [r5, r0] + str r1, [sp] + adds r0, r5, 0 + bl sub_8078FDC + ldrb r1, [r5, 0x3] + lsls r1, 26 + lsrs r1, 27 + movs r0, 0xF4 + lsls r0, 6 + ldr r2, _080DB454 + lsls r1, 3 + adds r1, r2 + movs r2, 0x6 + ldrsh r1, [r1, r2] + bl __divsi3 + adds r1, r0, 0x1 + cmp r1, 0x80 + ble _080DB42C + movs r1, 0x80 +_080DB42C: + movs r0, 0x40 + subs r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r1, r0, 1 + strh r1, [r5, 0x26] + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0x18 + bne _080DB44C + adds r0, r5, 0 + bl sub_8079098 + adds r0, r5, 0 + bl move_anim_8072740 +_080DB44C: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DB454: .4byte gOamMatrices + thumb_func_end sub_80DB374 + + thumb_func_start sub_80DB458 +sub_80DB458: @ 80DB458 + push {r4,r5,lr} + adds r5, r0, 0 + bl Random + ldr r4, _080DB47C + ands r4, r0 + bl Random + movs r1, 0x7F + ands r1, r0 + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080DB480 + movs r2, 0xB8 + lsls r2, 2 + adds r0, r4, r2 + b _080DB488 + .align 2, 0 +_080DB47C: .4byte 0x000001ff +_080DB480: + movs r2, 0xB8 + lsls r2, 2 + adds r0, r2, 0 + subs r0, r4 +_080DB488: + strh r0, [r5, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DB49C + movs r2, 0xE0 + lsls r2, 2 + adds r0, r2, 0 + adds r0, r1, r0 + b _080DB4A4 +_080DB49C: + movs r2, 0xE0 + lsls r2, 2 + adds r0, r2, 0 + subs r0, r1 +_080DB4A4: + strh r0, [r5, 0x30] + ldr r2, _080DB4CC + ldrh r0, [r2] + strh r0, [r5, 0x32] + lsls r0, 16 + cmp r0, 0 + beq _080DB4C0 + ldrb r0, [r5, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + strb r1, [r5, 0x3] +_080DB4C0: + movs r1, 0x2 + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080DB4D4 + ldr r4, _080DB4D0 + b _080DB4D6 + .align 2, 0 +_080DB4CC: .4byte gUnknown_03004B00 +_080DB4D0: .4byte gUnknown_0202F7C8 +_080DB4D4: + ldr r4, _080DB500 +_080DB4D6: + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r5, 0x22] + ldr r0, _080DB504 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DB500: .4byte gUnknown_0202F7C9 +_080DB504: .4byte sub_80DB508 + thumb_func_end sub_80DB458 + + thumb_func_start sub_80DB508 +sub_80DB508: @ 80DB508 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080DB520 + ldrh r3, [r4, 0x2E] + lsls r0, r3, 16 + asrs r0, 24 + ldrh r1, [r4, 0x24] + adds r0, r1 + b _080DB52A +_080DB520: + ldrh r3, [r4, 0x2E] + lsls r1, r3, 16 + asrs r1, 24 + ldrh r0, [r4, 0x24] + subs r0, r1 +_080DB52A: + strh r0, [r4, 0x24] + ldrh r2, [r4, 0x30] + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r4, 0x26] + subs r0, r1 + strh r0, [r4, 0x26] + strh r3, [r4, 0x2E] + adds r0, r2, 0 + subs r0, 0x20 + strh r0, [r4, 0x30] + lsls r0, r3, 16 + cmp r0, 0 + bge _080DB54A + movs r0, 0 + strh r0, [r4, 0x2E] +_080DB54A: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _080DB55E + adds r0, r4, 0 + bl move_anim_8072740 +_080DB55E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DB508 + + thumb_func_start sub_80DB564 +sub_80DB564: @ 80DB564 + movs r1, 0 + strh r1, [r0, 0x3A] + movs r1, 0x40 + strh r1, [r0, 0x3C] + ldr r1, _080DB574 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080DB574: .4byte sub_80DB578 + thumb_func_end sub_80DB564 + + thumb_func_start sub_80DB578 +sub_80DB578: @ 80DB578 + push {lr} + adds r3, r0, 0 + movs r0, 0x2E + ldrsh r1, [r3, r0] + cmp r1, 0 + beq _080DB58A + cmp r1, 0x1 + beq _080DB5D8 + b _080DB5DE +_080DB58A: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080DB5DE + strh r1, [r3, 0x30] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + ldrb r2, [r1] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080DB5DE + ldrb r1, [r1] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080DB5DE + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + b _080DB5DE +_080DB5D8: + adds r0, r3, 0 + bl move_anim_8072740 +_080DB5DE: + pop {r0} + bx r0 + thumb_func_end sub_80DB578 + + thumb_func_start sub_80DB5E4 +sub_80DB5E4: @ 80DB5E4 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + mov r8, r0 + ldrh r4, [r0, 0x20] + ldrh r5, [r0, 0x22] + ldr r6, _080DB698 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + strh r0, [r1, 0x20] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8077ABC + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + mov r2, r8 + strh r6, [r2, 0x22] + ldrh r0, [r2, 0x20] + mov r9, r0 + mov r1, r9 + lsls r0, r1, 4 + strh r0, [r2, 0x36] + lsls r0, r6, 4 + strh r0, [r2, 0x38] + lsls r4, 16 + asrs r4, 16 + movs r1, 0x20 + ldrsh r0, [r2, r1] + subs r0, r4, r0 + lsls r0, 4 + movs r1, 0xC + bl __divsi3 + mov r2, r8 + strh r0, [r2, 0x3A] + lsls r5, 16 + asrs r5, 16 + movs r1, 0x22 + ldrsh r0, [r2, r1] + subs r0, r5, r0 + lsls r0, 4 + movs r1, 0xC + bl __divsi3 + mov r2, r8 + strh r0, [r2, 0x3C] + mov r0, r9 + subs r4, r0 + lsls r4, 16 + asrs r4, 16 + subs r5, r6 + lsls r5, 16 + asrs r5, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80790F0 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 24 + adds r0, r1 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 1 + str r0, [sp] + mov r0, r8 + movs r1, 0x1 + adds r2, r3, 0 + bl sub_8078FDC + ldr r0, _080DB69C + mov r2, r8 + str r0, [r2, 0x1C] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DB698: .4byte gUnknown_0202F7C8 +_080DB69C: .4byte sub_80DB6A0 + thumb_func_end sub_80DB5E4 + + thumb_func_start sub_80DB6A0 +sub_80DB6A0: @ 80DB6A0 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x3A] + ldrh r1, [r2, 0x36] + adds r0, r1 + strh r0, [r2, 0x36] + ldrh r1, [r2, 0x3C] + ldrh r3, [r2, 0x38] + adds r1, r3 + strh r1, [r2, 0x38] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r3, r1, 20 + strh r3, [r2, 0x22] + adds r0, 0x2D + lsls r0, 16 + movs r1, 0xA5 + lsls r1, 17 + cmp r0, r1 + bhi _080DB6DA + adds r1, r3, 0 + cmp r1, 0x9D + bgt _080DB6DA + movs r0, 0x2D + negs r0, r0 + cmp r1, r0 + bge _080DB6E0 +_080DB6DA: + adds r0, r2, 0 + bl move_anim_8074EE0 +_080DB6E0: + pop {r0} + bx r0 + thumb_func_end sub_80DB6A0 + + thumb_func_start unref_sub_80DB6E4 +unref_sub_80DB6E4: @ 80DB6E4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080DB714 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080DB71C + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080DB718 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + b _080DB73A + .align 2, 0 +_080DB714: .4byte gUnknown_03004B00 +_080DB718: .4byte gSprites +_080DB71C: + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080DB748 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 +_080DB73A: + strb r0, [r1] + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DB748: .4byte gSprites + thumb_func_end unref_sub_80DB6E4 + + thumb_func_start sub_80DB74C +sub_80DB74C: @ 80DB74C + push {r4-r7,lr} + adds r6, r0, 0 + ldr r0, _080DB804 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DB768 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DB77E +_080DB768: + ldrb r1, [r6, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r6, 0x5] + adds r1, r6, 0 + adds r1, 0x43 + movs r0, 0xC8 + strb r0, [r1] +_080DB77E: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080DB7DA + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r4, r0, 24 + adds r7, r4, 0 + adds r0, r4, 0 + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r5, r1, 31 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080DB7BC + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8076034 +_080DB7BC: + movs r0, 0x2 + adds r4, r0, 0 + eors r4, r7 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080DB7DA + movs r0, 0x1 + eors r5, r0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8076034 +_080DB7DA: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080DB810 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080DB810 + ldr r0, _080DB804 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DB808 + movs r0, 0x48 + strh r0, [r6, 0x20] + movs r0, 0x50 + b _080DB84A + .align 2, 0 +_080DB804: .4byte gUnknown_0202F7C8 +_080DB808: + movs r0, 0xB0 + strh r0, [r6, 0x20] + movs r0, 0x28 + b _080DB84A +_080DB810: + ldr r5, _080DB880 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DB826 + ldr r1, _080DB884 + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080DB826: + ldrb r0, [r5] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080DB884 + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 +_080DB84A: + strh r0, [r6, 0x22] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DB85C + ldrh r0, [r6, 0x22] + adds r0, 0x9 + strh r0, [r6, 0x22] +_080DB85C: + ldr r0, _080DB884 + ldrh r0, [r0, 0x4] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r6, 0x2E] + ldr r1, _080DB888 + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DB880: .4byte gUnknown_0202F7C8 +_080DB884: .4byte gUnknown_03004B00 +_080DB888: .4byte sub_80DB88C + thumb_func_end sub_80DB74C + + thumb_func_start sub_80DB88C +sub_80DB88C: @ 80DB88C + push {lr} + adds r3, r0, 0 + ldr r2, _080DB8B0 + ldrh r1, [r3, 0x34] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r0, r1 + strh r0, [r2] + ldrh r1, [r3, 0x34] + movs r2, 0x34 + ldrsh r0, [r3, r2] + cmp r0, 0xD + bne _080DB8B8 + ldr r0, _080DB8B4 + str r0, [r3, 0x1C] + b _080DB8BC + .align 2, 0 +_080DB8B0: .4byte REG_BLDALPHA +_080DB8B4: .4byte sub_80DB8C0 +_080DB8B8: + adds r0, r1, 0x1 + strh r0, [r3, 0x34] +_080DB8BC: + pop {r0} + bx r0 + thumb_func_end sub_80DB88C + + thumb_func_start sub_80DB8C0 +sub_80DB8C0: @ 80DB8C0 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080DB91E + movs r0, 0 + strh r0, [r3, 0x30] + ldrh r4, [r3, 0x2E] + ldr r1, _080DB924 + adds r0, r4, 0 + adds r0, 0x8 + lsls r0, 1 + adds r0, r1 + ldrh r7, [r0] + movs r5, 0x8 + adds r6, r1, 0 + adds r1, r4, 0x7 + lsls r0, r4, 1 + adds r0, r6 + adds r2, r0, 0 + adds r2, 0x10 + lsls r1, 1 + adds r1, r6 +_080DB8F6: + ldrh r0, [r1] + strh r0, [r2] + subs r1, 0x2 + subs r2, 0x2 + subs r5, 0x1 + cmp r5, 0 + bgt _080DB8F6 + adds r0, r4, 0x1 + lsls r0, 1 + adds r0, r6 + strh r7, [r0] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + bne _080DB91E + ldr r0, _080DB928 + str r0, [r3, 0x1C] +_080DB91E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DB924: .4byte gPlttBufferFaded +_080DB928: .4byte sub_80DB92C + thumb_func_end sub_80DB8C0 + + thumb_func_start sub_80DB92C +sub_80DB92C: @ 80DB92C + push {r4-r6,lr} + adds r5, r0, 0 + ldr r2, _080DB9D4 + ldrh r1, [r5, 0x34] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r5, 0x34] + subs r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080DB9CC + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080DB9BC + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080DB98E + ldr r2, _080DB9D8 + ldr r0, _080DB9DC + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_080DB98E: + movs r0, 0x2 + adds r4, r0, 0 + eors r4, r6 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080DB9BC + ldr r2, _080DB9D8 + ldr r0, _080DB9DC + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_080DB9BC: + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080DB9E0 + str r0, [r5, 0x1C] +_080DB9CC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DB9D4: .4byte REG_BLDALPHA +_080DB9D8: .4byte gSprites +_080DB9DC: .4byte gUnknown_02024BE0 +_080DB9E0: .4byte sub_80DB9E4 + thumb_func_end sub_80DB92C + + thumb_func_start sub_80DB9E4 +sub_80DB9E4: @ 80DB9E4 + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080DBA3C + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r5, r1, 31 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080DBA22 + adds r0, r5, 0 + bl sub_8076464 +_080DBA22: + movs r0, 0x2 + eors r4, r0 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080DBA3C + movs r0, 0x1 + eors r5, r0 + adds r0, r5, 0 + bl sub_8076464 +_080DBA3C: + ldr r0, _080DBA48 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DBA48: .4byte move_anim_8072740 + thumb_func_end sub_80DB9E4 + + thumb_func_start sub_80DBA4C +sub_80DBA4C: @ 80DBA4C + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080DBAD8 + ldr r5, _080DBA98 + movs r1, 0x6 + ldrsh r0, [r5, r1] + movs r6, 0 + cmp r0, 0 + bne _080DBA66 + movs r6, 0x1 +_080DBA66: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080DBAAE + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080DBAAE + ldr r0, _080DBA9C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DBAA0 + ldrh r0, [r5] + movs r1, 0x48 + subs r1, r0 + strh r1, [r4, 0x20] + ldrh r0, [r5, 0x2] + adds r0, 0x50 + strh r0, [r4, 0x22] + b _080DBAD0 + .align 2, 0 +_080DBA98: .4byte gUnknown_03004B00 +_080DBA9C: .4byte gUnknown_0202F7C8 +_080DBAA0: + ldrh r0, [r5] + adds r0, 0xB0 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + adds r0, 0x28 + strh r0, [r4, 0x22] + b _080DBAD0 +_080DBAAE: + ldr r0, _080DBAC4 + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080DBAC8 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_80787B0 + b _080DBAD0 + .align 2, 0 +_080DBAC4: .4byte gUnknown_03004B00 +_080DBAC8: + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_8078764 +_080DBAD0: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080DBAEC +_080DBAD8: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x30 + ands r0, r1 + cmp r0, 0 + beq _080DBAEC + adds r0, r4, 0 + bl move_anim_8074EE0 +_080DBAEC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80DBA4C + + thumb_func_start sub_80DBAF4 +sub_80DBAF4: @ 80DBAF4 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080DBB3C + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DBB44 + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldrh r0, [r5, 0x20] + subs r0, 0x28 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + adds r0, 0xA + strh r0, [r5, 0x22] + ldr r0, _080DBB40 + b _080DBB52 + .align 2, 0 +_080DBB3C: .4byte gUnknown_0202F7C8 +_080DBB40: .4byte 0x0000ffff +_080DBB44: + ldrh r0, [r5, 0x20] + adds r0, 0x28 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + subs r0, 0xA + strh r0, [r5, 0x22] + movs r0, 0x1 +_080DBB52: + strh r0, [r5, 0x30] + ldr r1, _080DBB68 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080DBB6C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DBB68: .4byte move_anim_8072740 +_080DBB6C: .4byte sub_8078600 + thumb_func_end sub_80DBAF4 + + thumb_func_start sub_80DBB70 +sub_80DBB70: @ 80DBB70 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r6, _080DBBF4 + ldrb r0, [r6] + movs r1, 0x1 + bl sub_807A100 + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + lsls r1, 15 + lsrs r4, r1, 16 + ldrb r0, [r6] + movs r1, 0 + bl sub_807A100 + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + asrs r1, 1 + negs r1, r1 + lsls r1, 16 + lsrs r7, r1, 16 + ldrb r0, [r6] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080DBBB6 + lsls r0, r4, 16 + negs r0, r0 + lsrs r4, r0, 16 +_080DBBB6: + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + strh r0, [r5, 0x20] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r7 + strh r0, [r5, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + bgt _080DBBE2 + movs r0, 0x10 + strh r0, [r5, 0x22] +_080DBBE2: + ldr r1, _080DBBF8 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080DBBFC + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DBBF4: .4byte gUnknown_0202F7C8 +_080DBBF8: .4byte sub_80DBC00 +_080DBBFC: .4byte sub_8078600 + thumb_func_end sub_80DBB70 + + thumb_func_start sub_80DBC00 +sub_80DBC00: @ 80DBC00 + push {r4,lr} + adds r4, r0, 0 + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r0, _080DBC2C + str r0, [r4, 0x10] + movs r0, 0 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl InitSpriteAffineAnim + ldr r0, _080DBC30 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DBC2C: .4byte gUnknown_083DA888 +_080DBC30: .4byte sub_80DBC34 + thumb_func_end sub_80DBC00 + + thumb_func_start sub_80DBC34 +sub_80DBC34: @ 80DBC34 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080DBC46 + cmp r0, 0x1 + beq _080DBC74 + b _080DBC8C +_080DBC46: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080DBC8C + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] + movs r0, 0x12 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080DBC8C +_080DBC74: + ldrh r0, [r4, 0x30] + subs r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080DBC8C + adds r0, r4, 0 + bl move_anim_8072740 +_080DBC8C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DBC34 + + thumb_func_start sub_80DBC94 +sub_80DBC94: @ 80DBC94 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080DBCC4 + adds r4, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + strh r1, [r4, 0x8] + ldr r2, _080DBCC8 + adds r0, r4, 0 + bl sub_80798F4 + ldr r0, _080DBCCC + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DBCC4: .4byte gTasks +_080DBCC8: .4byte gUnknown_083DA8A4 +_080DBCCC: .4byte sub_80DBCD0 + thumb_func_end sub_80DBC94 + + thumb_func_start sub_80DBCD0 +sub_80DBCD0: @ 80DBCD0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080DBCF8 + adds r0, r1 + bl sub_807992C + lsls r0, 24 + cmp r0, 0 + bne _080DBCF0 + adds r0, r4, 0 + bl move_anim_task_del +_080DBCF0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DBCF8: .4byte gTasks + thumb_func_end sub_80DBCD0 + + thumb_func_start sub_80DBCFC +sub_80DBCFC: @ 80DBCFC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080DBD48 + adds r4, r1, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + strh r0, [r4, 0x8] + strh r1, [r4, 0xA] + strh r1, [r4, 0xC] + ldr r0, _080DBD4C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + movs r1, 0x8 + cmp r0, 0 + beq _080DBD30 + movs r1, 0x4 +_080DBD30: + strh r1, [r4, 0xE] + ldrb r1, [r4, 0x8] + ldr r2, _080DBD50 + adds r0, r4, 0 + bl sub_80798F4 + ldr r0, _080DBD54 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DBD48: .4byte gTasks +_080DBD4C: .4byte gUnknown_0202F7C8 +_080DBD50: .4byte gUnknown_083DA8C4 +_080DBD54: .4byte sub_80DBD58 + thumb_func_end sub_80DBCFC + + thumb_func_start sub_80DBD58 +sub_80DBD58: @ 80DBD58 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080DBD78 + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080DBD7C + cmp r0, 0x1 + beq _080DBD98 + b _080DBDF6 + .align 2, 0 +_080DBD78: .4byte gTasks +_080DBD7C: + adds r0, r4, 0 + bl sub_807992C + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080DBDF6 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _080DBDF6 +_080DBD98: + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080DBDC0 + ldr r2, _080DBDBC + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x8 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + b _080DBDF6 + .align 2, 0 +_080DBDBC: .4byte gSprites +_080DBDC0: + ldr r3, _080DBDFC + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x88 + lsls r1, 1 + strh r1, [r0, 0x20] + ldrb r0, [r4, 0x8] + bl sub_8078F40 + adds r0, r5, 0 + bl move_anim_task_del +_080DBDF6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DBDFC: .4byte gSprites + thumb_func_end sub_80DBD58 + + thumb_func_start sub_80DBE00 +sub_80DBE00: @ 80DBE00 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080DBE84 + adds r5, r1, r0 + movs r0, 0 + movs r7, 0x10 + strh r7, [r5, 0xE] + strh r0, [r5, 0x10] + ldr r4, _080DBE88 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x24] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_807A100 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r6, r0, 16 + ldrb r0, [r4] + movs r1, 0 + bl sub_807A100 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r0, 16 + adds r1, r0, 0 + cmp r0, r6 + bcs _080DBE6A + adds r1, r6, 0 +_080DBE6A: + strh r1, [r5, 0x20] + ldr r1, _080DBE8C + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080DBE90 + strh r7, [r0] + ldr r0, _080DBE94 + str r0, [r5] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DBE84: .4byte gTasks +_080DBE88: .4byte gUnknown_0202F7C8 +_080DBE8C: .4byte REG_BLDCNT +_080DBE90: .4byte REG_BLDALPHA +_080DBE94: .4byte sub_80DBE98 + thumb_func_end sub_80DBE00 + + thumb_func_start sub_80DBE98 +sub_80DBE98: @ 80DBE98 + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080DBEBC + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080DBF98 + cmp r1, 0x1 + bgt _080DBEC0 + cmp r1, 0 + beq _080DBECE + b _080DC014 + .align 2, 0 +_080DBEBC: .4byte gTasks +_080DBEC0: + cmp r1, 0x2 + bne _080DBEC6 + b _080DBFF4 +_080DBEC6: + cmp r1, 0x3 + bne _080DBECC + b _080DC004 +_080DBECC: + b _080DC014 +_080DBECE: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + bgt _080DBEDE + b _080DC014 +_080DBEDE: + strh r1, [r4, 0xA] + ldr r0, _080DBF1C + movs r2, 0x22 + ldrsh r1, [r4, r2] + movs r3, 0x24 + ldrsh r2, [r4, r3] + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + movs r0, 0xC + ldrsh r1, [r4, r0] + adds r1, 0x8 + lsls r1, 1 + adds r0, r4, 0 + adds r0, 0x8 + adds r0, r1 + strh r2, [r0] + cmp r2, 0x40 + beq _080DBF82 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080DBF3C + cmp r0, 0x1 + bgt _080DBF20 + cmp r0, 0 + beq _080DBF2A + b _080DBF82 + .align 2, 0 +_080DBF1C: .4byte gSpriteTemplate_83DA8DC +_080DBF20: + cmp r0, 0x2 + beq _080DBF54 + cmp r0, 0x3 + beq _080DBF6C + b _080DBF82 +_080DBF2A: + ldr r0, _080DBF38 + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r4, 0x20] + b _080DBF7A + .align 2, 0 +_080DBF38: .4byte gSprites +_080DBF3C: + ldr r0, _080DBF50 + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r4, 0x20] + negs r0, r0 + strh r0, [r1, 0x24] + ldrh r0, [r4, 0x20] + b _080DBF80 + .align 2, 0 +_080DBF50: .4byte gSprites +_080DBF54: + ldr r1, _080DBF68 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r4, 0x20] + strh r1, [r0, 0x24] + ldrh r1, [r4, 0x20] + strh r1, [r0, 0x26] + b _080DBF82 + .align 2, 0 +_080DBF68: .4byte gSprites +_080DBF6C: + ldr r0, _080DBF94 + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r4, 0x20] + negs r0, r0 +_080DBF7A: + strh r0, [r1, 0x24] + ldrh r0, [r4, 0x20] + negs r0, r0 +_080DBF80: + strh r0, [r1, 0x26] +_080DBF82: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080DC014 + b _080DBFF4 + .align 2, 0 +_080DBF94: .4byte gSprites +_080DBF98: + ldrh r0, [r4, 0xA] + ands r1, r0 + cmp r1, 0 + beq _080DBFA8 + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + b _080DBFAE +_080DBFA8: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] +_080DBFAE: + ldr r2, _080DBFFC + ldrh r0, [r4, 0x10] + lsls r0, 8 + ldrh r1, [r4, 0xE] + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x20 + bne _080DC014 + movs r5, 0x8 + adds r6, r4, 0 + adds r6, 0x8 +_080DBFCE: + lsls r0, r5, 1 + adds r1, r6, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0x40 + beq _080DBFEA + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080DC000 + adds r0, r1 + bl DestroySprite +_080DBFEA: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xC + bls _080DBFCE +_080DBFF4: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080DC014 + .align 2, 0 +_080DBFFC: .4byte REG_BLDALPHA +_080DC000: .4byte gSprites +_080DC004: + ldr r0, _080DC01C + movs r1, 0 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, r2, 0 + bl move_anim_task_del +_080DC014: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DC01C: .4byte REG_BLDALPHA + thumb_func_end sub_80DBE98 + + thumb_func_start sub_80DC020 +sub_80DC020: @ 80DC020 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x30 + ldrsh r1, [r4, r0] + movs r2, 0x2E + ldrsh r0, [r4, r2] + subs r0, 0xA + cmp r1, r0 + ble _080DC04A + ldrh r0, [r4, 0x30] + movs r1, 0x1 + ands r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080DC04A: + movs r0, 0x30 + ldrsh r1, [r4, r0] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080DC05C + adds r0, r4, 0 + bl move_anim_8072740 +_080DC05C: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DC020 + + thumb_func_start sub_80DC068 +sub_80DC068: @ 80DC068 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080DC0A4 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080DC094 + ldr r4, _080DC0A8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] +_080DC094: + ldrh r0, [r6, 0x2] + strh r0, [r5, 0x2E] + ldr r0, _080DC0AC + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DC0A4: .4byte gUnknown_03004B00 +_080DC0A8: .4byte gUnknown_0202F7C8 +_080DC0AC: .4byte sub_80DC020 + thumb_func_end sub_80DC068 + + thumb_func_start sub_80DC0B0 +sub_80DC0B0: @ 80DC0B0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080DC10C + adds r5, r1, r0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DC154 + ldr r0, _080DC110 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _080DC120 + ldr r0, _080DC114 + strh r0, [r5, 0x1C] + ldr r4, _080DC118 + ldrb r0, [r4] + movs r1, 0x5 + bl sub_807A100 + subs r0, 0x8 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_807A100 + adds r0, 0x8 + strh r0, [r5, 0x20] + ldr r4, _080DC11C + ldrb r0, [r4] + movs r1, 0x5 + bl sub_807A100 + subs r0, 0x8 + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_807A100 + adds r0, 0x8 + b _080DC1DE + .align 2, 0 +_080DC10C: .4byte gTasks +_080DC110: .4byte gUnknown_03004B00 +_080DC114: .4byte 0x0000fff6 +_080DC118: .4byte gUnknown_0202F7C9 +_080DC11C: .4byte gUnknown_0202F7C8 +_080DC120: + movs r0, 0xA + strh r0, [r5, 0x1C] + ldr r4, _080DC14C + ldrb r0, [r4] + movs r1, 0x4 + bl sub_807A100 + adds r0, 0x8 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_807A100 + subs r0, 0x8 + strh r0, [r5, 0x20] + ldr r4, _080DC150 + ldrb r0, [r4] + movs r1, 0x4 + bl sub_807A100 + adds r0, 0x8 + b _080DC1D2 + .align 2, 0 +_080DC14C: .4byte gUnknown_0202F7C8 +_080DC150: .4byte gUnknown_0202F7C9 +_080DC154: + ldr r0, _080DC198 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _080DC1A8 + ldr r0, _080DC19C + strh r0, [r5, 0x1C] + ldr r4, _080DC1A0 + ldrb r0, [r4] + movs r1, 0x4 + bl sub_807A100 + adds r0, 0x8 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_807A100 + adds r0, 0x8 + strh r0, [r5, 0x20] + ldr r4, _080DC1A4 + ldrb r0, [r4] + movs r1, 0x4 + bl sub_807A100 + adds r0, 0x8 + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_807A100 + adds r0, 0x8 + b _080DC1DE + .align 2, 0 +_080DC198: .4byte gUnknown_03004B00 +_080DC19C: .4byte 0x0000fff6 +_080DC1A0: .4byte gUnknown_0202F7C9 +_080DC1A4: .4byte gUnknown_0202F7C8 +_080DC1A8: + movs r0, 0xA + strh r0, [r5, 0x1C] + ldr r4, _080DC1F0 + ldrb r0, [r4] + movs r1, 0x5 + bl sub_807A100 + subs r0, 0x8 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_807A100 + subs r0, 0x8 + strh r0, [r5, 0x20] + ldr r4, _080DC1F4 + ldrb r0, [r4] + movs r1, 0x5 + bl sub_807A100 + subs r0, 0x8 +_080DC1D2: + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_807A100 + subs r0, 0x8 +_080DC1DE: + strh r0, [r5, 0x24] + movs r0, 0x6 + strh r0, [r5, 0xA] + ldr r0, _080DC1F8 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DC1F0: .4byte gUnknown_0202F7C8 +_080DC1F4: .4byte gUnknown_0202F7C9 +_080DC1F8: .4byte sub_80DC1FC + thumb_func_end sub_80DC0B0 + + thumb_func_start sub_80DC1FC +sub_80DC1FC: @ 80DC1FC + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080DC21C + adds r5, r0, r1 + movs r0, 0x8 + ldrsh r1, [r5, r0] + cmp r1, 0 + beq _080DC220 + cmp r1, 0x1 + beq _080DC294 + b _080DC2A8 + .align 2, 0 +_080DC21C: .4byte gTasks +_080DC220: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + ble _080DC2A8 + strh r1, [r5, 0xA] + ldr r0, _080DC28C + movs r2, 0x1E + ldrsh r1, [r5, r2] + movs r3, 0x20 + ldrsh r2, [r5, r3] + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080DC274 + ldr r0, _080DC290 + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + adds r4, r0 + movs r0, 0x10 + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x22] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0x24] + strh r0, [r4, 0x36] + ldrh r0, [r5, 0x1C] + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80786EC + ldrb r0, [r5, 0xC] + movs r1, 0x3 + ands r1, r0 + adds r0, r4, 0 + bl StartSpriteAffineAnim +_080DC274: + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bne _080DC2A8 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080DC2A8 + .align 2, 0 +_080DC28C: .4byte gSpriteTemplate_83DA9AC +_080DC290: .4byte gSprites +_080DC294: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x11 + ble _080DC2A8 + adds r0, r2, 0 + bl move_anim_task_del +_080DC2A8: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80DC1FC + + thumb_func_start sub_80DC2B0 +sub_80DC2B0: @ 80DC2B0 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080DC2CE + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080DC2CE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DC2B0 + + thumb_func_start sub_80DC2D4 +sub_80DC2D4: @ 80DC2D4 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080DC30C + adds r4, r1, r0 + ldr r0, _080DC310 + ldrb r0, [r0] + bl sub_8077FC0 + lsls r0, 24 + lsrs r1, r0, 24 + adds r0, r1, 0 + subs r0, 0x20 + strh r0, [r4, 0x24] + ldr r0, _080DC314 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0x1 + beq _080DC32A + cmp r0, 0x1 + bgt _080DC318 + cmp r0, 0 + beq _080DC31E + b _080DC346 + .align 2, 0 +_080DC30C: .4byte gTasks +_080DC310: .4byte gUnknown_0202F7C9 +_080DC314: .4byte gUnknown_03004B00 +_080DC318: + cmp r0, 0x2 + beq _080DC336 + b _080DC346 +_080DC31E: + movs r0, 0x2 + strh r0, [r4, 0x1E] + movs r0, 0x5 + strh r0, [r4, 0x20] + movs r0, 0x40 + b _080DC33E +_080DC32A: + movs r0, 0x2 + strh r0, [r4, 0x1E] + movs r0, 0x5 + strh r0, [r4, 0x20] + movs r0, 0xC0 + b _080DC33E +_080DC336: + movs r0, 0x4 + strh r0, [r4, 0x1E] + strh r0, [r4, 0x20] + movs r0, 0 +_080DC33E: + strh r0, [r4, 0x22] + adds r0, r1, 0 + adds r0, 0x20 + strh r0, [r4, 0x26] +_080DC346: + movs r1, 0x24 + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _080DC352 + movs r0, 0 + strh r0, [r4, 0x24] +_080DC352: + ldr r0, _080DC36C + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080DC378 + ldr r0, _080DC370 + ldrh r0, [r0] + strh r0, [r4, 0x1C] + ldr r0, _080DC374 + b _080DC380 + .align 2, 0 +_080DC36C: .4byte gUnknown_0202F7C9 +_080DC370: .4byte gUnknown_030042C0 +_080DC374: .4byte REG_BG1HOFS +_080DC378: + ldr r0, _080DC3E0 + ldrh r0, [r0] + strh r0, [r4, 0x1C] + ldr r0, _080DC3E4 +_080DC380: + str r0, [sp] + ldrh r1, [r4, 0x24] + lsls r3, r1, 16 + asrs r1, r3, 16 + movs r2, 0x24 + ldrsh r0, [r4, r2] + adds r0, 0x40 + cmp r1, r0 + bgt _080DC3BA + ldr r5, _080DC3E8 + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 +_080DC39A: + asrs r3, 16 + lsls r1, r3, 1 + adds r2, r1, r5 + ldrh r0, [r4, 0x1C] + strh r0, [r2] + adds r1, r6 + ldrh r0, [r4, 0x1C] + strh r0, [r1] + adds r3, 0x1 + lsls r3, 16 + asrs r1, r3, 16 + movs r2, 0x24 + ldrsh r0, [r4, r2] + adds r0, 0x40 + cmp r1, r0 + ble _080DC39A +_080DC3BA: + ldr r0, _080DC3EC + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80895F8 + ldr r0, _080DC3F0 + str r0, [r4] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DC3E0: .4byte gUnknown_03004288 +_080DC3E4: .4byte REG_BG2HOFS +_080DC3E8: .4byte gUnknown_03004DE0 +_080DC3EC: .4byte 0xa2600001 +_080DC3F0: .4byte sub_80DC3F4 + thumb_func_end sub_80DC2D4 + + thumb_func_start sub_80DC3F4 +sub_80DC3F4: @ 80DC3F4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080DC41C + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080DC4CE + cmp r0, 0x1 + bgt _080DC420 + cmp r0, 0 + beq _080DC426 + b _080DC4E6 + .align 2, 0 +_080DC41C: .4byte gTasks +_080DC420: + cmp r0, 0x2 + beq _080DC4E0 + b _080DC4E6 +_080DC426: + ldrh r3, [r5, 0x22] + ldrh r4, [r5, 0x24] + movs r2, 0x24 + ldrsh r1, [r5, r2] + movs r2, 0x26 + ldrsh r0, [r5, r2] + cmp r1, r0 + bgt _080DC4BE + ldr r0, _080DC470 + mov r9, r0 + movs r7, 0x3 + ldr r1, _080DC474 + mov r12, r1 + movs r2, 0xF0 + lsls r2, 3 + add r2, r12 + mov r8, r2 +_080DC448: + lsls r2, r3, 16 + asrs r0, r2, 15 + add r0, r9 + movs r3, 0 + ldrsh r0, [r0, r3] + movs r3, 0x20 + ldrsh r1, [r5, r3] + asrs r0, r1 + lsls r0, 16 + lsrs r1, r0, 16 + asrs r3, r0, 16 + adds r6, r2, 0 + cmp r3, 0 + ble _080DC478 + ldrh r1, [r5, 0xA] + adds r0, r7, 0 + ands r0, r1 + adds r0, r3, r0 + b _080DC484 + .align 2, 0 +_080DC470: .4byte gSineTable +_080DC474: .4byte gUnknown_03004DE0 +_080DC478: + cmp r3, 0 + bge _080DC488 + ldrh r1, [r5, 0xA] + adds r0, r7, 0 + ands r0, r1 + subs r0, r3, r0 +_080DC484: + lsls r0, 16 + lsrs r1, r0, 16 +_080DC488: + lsls r2, r4, 16 + asrs r2, 16 + lsls r3, r2, 1 + mov r0, r12 + adds r4, r3, r0 + ldrh r0, [r5, 0x1C] + lsls r1, 16 + asrs r1, 16 + adds r0, r1, r0 + strh r0, [r4] + add r3, r8 + ldrh r0, [r5, 0x1C] + adds r1, r0 + strh r1, [r3] + asrs r0, r6, 16 + ldrh r1, [r5, 0x1E] + adds r0, r1 + lsls r0, 16 + lsrs r3, r0, 16 + adds r2, 0x1 + lsls r2, 16 + lsrs r4, r2, 16 + asrs r2, 16 + movs r1, 0x26 + ldrsh r0, [r5, r1] + cmp r2, r0 + ble _080DC448 +_080DC4BE: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x17 + ble _080DC4E6 + b _080DC4D4 +_080DC4CE: + ldr r1, _080DC4DC + movs r0, 0x3 + strb r0, [r1, 0x15] +_080DC4D4: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080DC4E6 + .align 2, 0 +_080DC4DC: .4byte gUnknown_03004DC0 +_080DC4E0: + adds r0, r2, 0 + bl move_anim_task_del +_080DC4E6: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80DC3F4 + + thumb_func_start sub_80DC4F4 +sub_80DC4F4: @ 80DC4F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r4, r0, 24 + mov r8, r4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080DC528 + adds r7, r0, r1 + bl AllocOamMatrix + lsls r0, 24 + lsrs r5, r0, 24 + mov r10, r5 + adds r6, r5, 0 + cmp r6, 0xFF + bne _080DC52C + adds r0, r4, 0 + bl move_anim_task_del + b _080DC5D6 + .align 2, 0 +_080DC528: .4byte gTasks +_080DC52C: + ldr r1, _080DC550 + ldrb r0, [r1] + bl duplicate_obj_of_side_rel2move_in_transparent_mode + lsls r0, 16 + lsrs r1, r0, 16 + mov r9, r1 + asrs r0, 16 + cmp r0, 0 + bge _080DC554 + adds r0, r5, 0 + bl FreeOamMatrix + mov r0, r8 + bl move_anim_task_del + b _080DC5D6 + .align 2, 0 +_080DC550: .4byte gUnknown_03004B00 +_080DC554: + ldr r2, _080DC5E4 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r0, r2, 0 + adds r0, 0x1C + adds r0, r4, r0 + ldr r1, _080DC5E8 + str r1, [r0] + adds r4, r2 + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + movs r0, 0x1F + ands r6, r0 + lsls r2, r6, 1 + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x3] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r1, r9 + lsls r0, r1, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r3, [r4, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r4, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + adds r0, r4, 0 + bl CalcCenterToCornerVec + ldr r1, _080DC5EC + ldrb r0, [r1] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r7, 0x22] + mov r0, r10 + strh r0, [r7, 0x24] + mov r1, r9 + strh r1, [r7, 0x26] + ldr r0, _080DC5F0 + str r0, [r7] +_080DC5D6: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DC5E4: .4byte gSprites +_080DC5E8: .4byte SpriteCallbackDummy +_080DC5EC: .4byte gUnknown_03004B00 +_080DC5F0: .4byte sub_80DC5F4 + thumb_func_end sub_80DC4F4 + + thumb_func_start sub_80DC5F4 +sub_80DC5F4: @ 80DC5F4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080DC618 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080DC678 + cmp r0, 0x1 + bgt _080DC61C + cmp r0, 0 + beq _080DC626 + b _080DC6F8 + .align 2, 0 +_080DC618: .4byte gTasks +_080DC61C: + cmp r0, 0x2 + beq _080DC6C8 + cmp r0, 0x3 + beq _080DC6E8 + b _080DC6F8 +_080DC626: + ldrh r0, [r4, 0xA] + adds r0, 0x4 + strh r0, [r4, 0xA] + ldr r1, _080DC674 + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 16 + asrs r1, 17 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + subs r0, r1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xC + ldrsh r2, [r4, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x22] + lsls r1, 24 + lsrs r1, 24 + bl sub_8079AB8 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0x30 + bne _080DC6F8 + b _080DC6DA + .align 2, 0 +_080DC674: .4byte gSineTable +_080DC678: + ldrh r0, [r4, 0xA] + subs r0, 0x4 + strh r0, [r4, 0xA] + ldr r1, _080DC6C4 + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 16 + asrs r1, 17 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + subs r0, r1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xC + ldrsh r2, [r4, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x22] + lsls r1, 24 + lsrs r1, 24 + bl sub_8079AB8 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080DC6F8 + b _080DC6DA + .align 2, 0 +_080DC6C4: .4byte gSineTable +_080DC6C8: + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080DC6E4 + adds r0, r1 + bl obj_delete_but_dont_free_vram +_080DC6DA: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080DC6F8 + .align 2, 0 +_080DC6E4: .4byte gSprites +_080DC6E8: + ldrh r0, [r4, 0x24] + lsls r0, 24 + lsrs r0, 24 + bl FreeOamMatrix + adds r0, r5, 0 + bl move_anim_task_del +_080DC6F8: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80DC5F4 + + thumb_func_start sub_80DC700 +sub_80DC700: @ 80DC700 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080DC778 + cmp r0, 0x1 + bgt _080DC716 + cmp r0, 0 + beq _080DC720 + b _080DC818 +_080DC716: + cmp r0, 0x2 + beq _080DC7AA + cmp r0, 0x3 + beq _080DC808 + b _080DC818 +_080DC720: + ldr r4, _080DC76C + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DC74E + ldrh r0, [r5, 0x22] + adds r0, 0xC + strh r0, [r5, 0x22] +_080DC74E: + movs r0, 0x8 + strh r0, [r5, 0x30] + ldr r1, _080DC770 + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _080DC774 + ldrh r1, [r5, 0x30] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r0, r1 + strh r0, [r2] + b _080DC7A2 + .align 2, 0 +_080DC76C: .4byte gUnknown_0202F7C8 +_080DC770: .4byte REG_BLDCNT +_080DC774: .4byte REG_BLDALPHA +_080DC778: + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080DC818 + movs r0, 0x40 + negs r0, r0 + bl sub_8076F98 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xCB + bl PlaySE12WithPanning + adds r0, r5, 0 + movs r1, 0x1 + bl ChangeSpriteAffineAnim +_080DC7A2: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080DC818 +_080DC7AA: + ldrh r0, [r5, 0x32] + adds r1, r0, 0x1 + strh r1, [r5, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080DC7E8 + movs r0, 0 + strh r0, [r5, 0x32] + ldrh r1, [r5, 0x30] + subs r1, 0x1 + strh r1, [r5, 0x30] + ldr r2, _080DC804 + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0x30 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080DC7E8 + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080DC7E8: + movs r0, 0xE0 + lsls r0, 2 + adds r2, r0, 0 + ldrh r1, [r5, 0x34] + adds r2, r1 + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r5, 0x26] + subs r0, r1 + strh r0, [r5, 0x26] + movs r0, 0xFF + ands r2, r0 + strh r2, [r5, 0x34] + b _080DC818 + .align 2, 0 +_080DC804: .4byte REG_BLDALPHA +_080DC808: + ldr r0, _080DC820 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, r5, 0 + bl move_anim_8072740 +_080DC818: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DC820: .4byte REG_BLDCNT + thumb_func_end sub_80DC700 + + thumb_func_start sub_80DC824 +sub_80DC824: @ 80DC824 + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DC850 + adds r0, r6, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r0, _080DC84C + ldrh r1, [r0, 0x4] + negs r1, r1 + strh r1, [r0, 0x4] + ldrh r1, [r0] + negs r1, r1 + strh r1, [r0] + b _080DC880 + .align 2, 0 +_080DC84C: .4byte gUnknown_03004B00 +_080DC850: + ldr r0, _080DC8E4 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DC880 + adds r0, r6, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r1, _080DC8E8 + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r1, 0x6] + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080DC880: + ldr r5, _080DC8E4 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077EE4 + lsls r0, 24 + ldr r4, _080DC8E8 + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077EE4 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x22] + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x6] + adds r0, r4 + strh r0, [r6, 0x36] + ldr r0, _080DC8EC + str r0, [r6, 0x1C] + ldr r1, _080DC8F0 + adds r0, r6, 0 + bl oamt_set_x3A_32 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DC8E4: .4byte gUnknown_0202F7C9 +_080DC8E8: .4byte gUnknown_03004B00 +_080DC8EC: .4byte sub_8078B34 +_080DC8F0: .4byte move_anim_8072740 + thumb_func_end sub_80DC824 + + thumb_func_start sub_80DC8F4 +sub_80DC8F4: @ 80DC8F4 + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DC918 + ldr r1, _080DC914 + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] + adds r0, r6, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + b _080DC934 + .align 2, 0 +_080DC914: .4byte gUnknown_03004B00 +_080DC918: + ldr r0, _080DC990 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DC934 + ldr r0, _080DC994 + ldrh r1, [r0, 0x2] + negs r1, r1 + strh r1, [r0, 0x2] + ldrh r1, [r0] + negs r1, r1 + strh r1, [r0] +_080DC934: + ldr r5, _080DC990 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077EE4 + lsls r0, 24 + ldr r4, _080DC994 + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077EE4 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x22] + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x2E] + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x36] + ldr r0, _080DC998 + str r0, [r6, 0x1C] + ldr r1, _080DC99C + adds r0, r6, 0 + bl oamt_set_x3A_32 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DC990: .4byte gUnknown_0202F7C9 +_080DC994: .4byte gUnknown_03004B00 +_080DC998: .4byte sub_8078B34 +_080DC99C: .4byte move_anim_8072740 + thumb_func_end sub_80DC8F4 + + thumb_func_start sub_80DC9A0 +sub_80DC9A0: @ 80DC9A0 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DC9BC + ldr r0, _080DC9FC + movs r2, 0x4 + ldrsh r1, [r0, r2] + lsrs r2, r1, 31 + adds r1, r2 + asrs r1, 1 + strh r1, [r0, 0x4] +_080DC9BC: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r1, _080DC9FC + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080DCA04 + ldr r4, _080DCA00 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + b _080DCA16 + .align 2, 0 +_080DC9FC: .4byte gUnknown_03004B00 +_080DCA00: .4byte gUnknown_0202F7C9 +_080DCA04: + ldr r0, _080DCA2C + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_807A3FC +_080DCA16: + adds r0, r5, 0 + bl sub_8078BD4 + ldr r0, _080DCA30 + ldrh r0, [r0, 0x6] + strh r0, [r5, 0x38] + ldr r0, _080DCA34 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DCA2C: .4byte gUnknown_0202F7C9 +_080DCA30: .4byte gUnknown_03004B00 +_080DCA34: .4byte sub_80DCA38 + thumb_func_end sub_80DC9A0 + + thumb_func_start sub_80DCA38 +sub_80DCA38: @ 80DCA38 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080DCA4E + adds r0, r4, 0 + bl move_anim_8072740 + b _080DCA6A +_080DCA4E: + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x3A] + adds r0, 0xD + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3A] +_080DCA6A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DCA38 + + thumb_func_start sub_80DCA70 +sub_80DCA70: @ 80DCA70 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080DCAA0 + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_807A3FC + ldr r0, _080DCAA4 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DCAAC + ldr r0, _080DCAA8 + ldrh r1, [r4, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r4, 0x20] + b _080DCAB8 + .align 2, 0 +_080DCAA0: .4byte gUnknown_0202F7C9 +_080DCAA4: .4byte gUnknown_0202F7C8 +_080DCAA8: .4byte gUnknown_03004B00 +_080DCAAC: + ldr r1, _080DCAE0 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + adds r0, r1, 0 +_080DCAB8: + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _080DCAE4 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DCAD4 + ldrh r0, [r4, 0x22] + adds r0, 0x8 + strh r0, [r4, 0x22] +_080DCAD4: + ldr r0, _080DCAE8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DCAE0: .4byte gUnknown_03004B00 +_080DCAE4: .4byte gUnknown_0202F7C9 +_080DCAE8: .4byte sub_80DCAEC + thumb_func_end sub_80DCA70 + + thumb_func_start sub_80DCAEC +sub_80DCAEC: @ 80DCAEC + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080DCB20 + movs r0, 0 + strh r0, [r3, 0x2E] + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] +_080DCB20: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _080DCB34 + adds r0, r3, 0 + bl move_anim_8072740 +_080DCB34: + pop {r0} + bx r0 + thumb_func_end sub_80DCAEC + + thumb_func_start sub_80DCB38 +sub_80DCB38: @ 80DCB38 + ldr r2, _080DCB54 + movs r3, 0xFD + lsls r3, 6 + adds r1, r3, 0 + strh r1, [r2] + adds r2, 0x2 + movs r1, 0x10 + strh r1, [r2] + movs r1, 0x10 + strh r1, [r0, 0x2E] + ldr r1, _080DCB58 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080DCB54: .4byte REG_BLDCNT +_080DCB58: .4byte sub_80DCB5C + thumb_func_end sub_80DCB38 + + thumb_func_start sub_80DCB5C +sub_80DCB5C: @ 80DCB5C + push {lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x32] + movs r2, 0x32 + ldrsh r0, [r3, r2] + cmp r0, 0x13 + bgt _080DCB70 + adds r0, r1, 0x1 + strh r0, [r3, 0x32] + b _080DCBA8 +_080DCB70: + ldrh r1, [r3, 0x30] + adds r0, r1, 0x1 + strh r0, [r3, 0x30] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DCBA8 + ldrh r1, [r3, 0x2E] + subs r1, 0x1 + strh r1, [r3, 0x2E] + ldr r2, _080DCBAC + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080DCBA8 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080DCBB0 + str r0, [r3, 0x1C] +_080DCBA8: + pop {r0} + bx r0 + .align 2, 0 +_080DCBAC: .4byte REG_BLDALPHA +_080DCBB0: .4byte sub_80DCBB4 + thumb_func_end sub_80DCB5C + + thumb_func_start sub_80DCBB4 +sub_80DCBB4: @ 80DCBB4 + push {lr} + ldr r1, _080DCBC8 + movs r2, 0 + strh r2, [r1] + adds r1, 0x2 + strh r2, [r1] + bl move_anim_8072740 + pop {r0} + bx r0 + .align 2, 0 +_080DCBC8: .4byte REG_BLDCNT + thumb_func_end sub_80DCBB4 + + thumb_func_start sub_80DCBCC +sub_80DCBCC: @ 80DCBCC + push {r4-r7,lr} + sub sp, 0x4 + adds r7, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DCBEC + ldr r1, _080DCBE8 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + b _080DCC0E + .align 2, 0 +_080DCBE8: .4byte gUnknown_03004B00 +_080DCBEC: + ldr r0, _080DCCE8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DCC0E + ldr r1, _080DCCEC + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r1, 0x6] +_080DCC0E: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080DCC5E + ldr r0, _080DCCE8 + ldrb r0, [r0] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r5, _080DCCF0 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080DCC5E + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + cmp r0, 0 + beq _080DCC4C + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080DCC5E +_080DCC4C: + ldr r0, _080DCCEC + movs r2, 0x4 + ldrsh r1, [r0, r2] + negs r1, r1 + strh r1, [r0, 0x4] + movs r2, 0 + ldrsh r1, [r0, r2] + negs r1, r1 + strh r1, [r0] +_080DCC5E: + adds r0, r7, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r5, _080DCCF0 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + adds r4, r0, 0 + lsls r4, 24 + ldr r6, _080DCCEC + lsrs r4, 24 + ldrh r0, [r6, 0x4] + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r6, 0x6] + adds r1, r2 + lsls r1, 16 + ldrh r2, [r7, 0x20] + lsls r0, r4, 16 + asrs r0, 16 + subs r0, r2 + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r7, 0x22] + lsrs r5, r1, 16 + asrs r1, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sub_80790F0 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 24 + adds r0, r1 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 1 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8078FDC + ldrh r0, [r6, 0x8] + strh r0, [r7, 0x2E] + strh r4, [r7, 0x32] + strh r5, [r7, 0x36] + ldr r0, _080DCCF4 + str r0, [r7, 0x1C] + ldr r1, _080DCCF8 + adds r0, r7, 0 + bl oamt_set_x3A_32 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DCCE8: .4byte gUnknown_0202F7C8 +_080DCCEC: .4byte gUnknown_03004B00 +_080DCCF0: .4byte gUnknown_0202F7C9 +_080DCCF4: .4byte sub_8078B34 +_080DCCF8: .4byte move_anim_8072740 + thumb_func_end sub_80DCBCC + + thumb_func_start sub_80DCCFC +sub_80DCCFC: @ 80DCCFC + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080DCD68 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DCD1C + ldr r1, _080DCD6C + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080DCD1C: + ldr r4, _080DCD6C + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldr r5, _080DCD70 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r6, 0x36] + ldrh r0, [r4, 0xA] + strh r0, [r6, 0x38] + adds r0, r6, 0 + bl sub_80786EC + ldr r0, _080DCD74 + str r0, [r6, 0x1C] + adds r2, r6, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DCD68: .4byte gUnknown_0202F7C8 +_080DCD6C: .4byte gUnknown_03004B00 +_080DCD70: .4byte gUnknown_0202F7C9 +_080DCD74: .4byte sub_80DCD78 + thumb_func_end sub_80DCCFC + + thumb_func_start sub_80DCD78 +sub_80DCD78: @ 80DCD78 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + adds r4, r0, 0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r2] + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080DCDA4 + adds r0, r4, 0 + bl move_anim_8072740 + b _080DCE34 +_080DCDA4: + movs r0, 0x2E + adds r0, r4 + mov r8, r0 + ldrh r7, [r4, 0x20] + ldrh r5, [r4, 0x24] + ldrh r1, [r4, 0x22] + mov r12, r1 + ldrh r6, [r4, 0x26] + mov r2, r8 + add r1, sp, 0x4 + movs r3, 0x7 +_080DCDBA: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080DCDBA + adds r0, r7, r5 + lsls r0, 16 + lsrs r5, r0, 16 + mov r2, r12 + adds r0, r2, r6 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + bne _080DCE34 + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + lsls r1, r5, 16 + asrs r1, 16 + subs r0, r1 + lsls r0, 16 + asrs r0, 16 + ldrh r1, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r1, r2 + lsls r2, r6, 16 + asrs r2, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sub_80790F0 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 24 + adds r0, r1 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 1 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8078FDC + add r2, sp, 0x4 + mov r1, r8 + movs r3, 0x7 +_080DCE26: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080DCE26 +_080DCE34: + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80DCD78 + + thumb_func_start sub_80DCE40 +sub_80DCE40: @ 80DCE40 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080DCE54 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080DCE5C + ldr r4, _080DCE58 + b _080DCE5E + .align 2, 0 +_080DCE54: .4byte gUnknown_03004B00 +_080DCE58: .4byte gUnknown_0202F7C8 +_080DCE5C: + ldr r4, _080DCE90 +_080DCE5E: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x12 + strh r0, [r5, 0x22] + ldr r1, _080DCE94 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080DCE98 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DCE90: .4byte gUnknown_0202F7C9 +_080DCE94: .4byte move_anim_8074EE0 +_080DCE98: .4byte sub_80785E4 + thumb_func_end sub_80DCE40 + + thumb_func_start sub_80DCE9C +sub_80DCE9C: @ 80DCE9C + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080DCF08 + movs r1, 0x6 + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _080DCEBC + ldr r0, _080DCF0C + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_807A3FC +_080DCEBC: + ldrh r0, [r6] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r4, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + adds r0, 0xE + strh r0, [r5, 0x22] + ldrb r1, [r6, 0x2] + adds r0, r5, 0 + bl StartSpriteAnim + adds r0, r5, 0 + bl AnimateSprite + strh r4, [r5, 0x2E] + strh r4, [r5, 0x30] + movs r0, 0x4 + strh r0, [r5, 0x32] + movs r0, 0x10 + strh r0, [r5, 0x34] + ldr r0, _080DCF10 + strh r0, [r5, 0x36] + ldrh r0, [r6, 0x4] + strh r0, [r5, 0x38] + ldr r1, _080DCF14 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r1, _080DCF18 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DCF08: .4byte gUnknown_03004B00 +_080DCF0C: .4byte gUnknown_0202F7C9 +_080DCF10: .4byte 0x0000ffba +_080DCF14: .4byte sub_80DCF1C +_080DCF18: .4byte sub_8078278 + thumb_func_end sub_80DCE9C + + thumb_func_start sub_80DCF1C +sub_80DCF1C: @ 80DCF1C + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x38] + ldrh r2, [r4, 0x20] + adds r0, r1, r2 + strh r0, [r4, 0x20] + movs r0, 0xC0 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r0, 0x4 + strh r0, [r4, 0x32] + movs r0, 0x20 + strh r0, [r4, 0x34] + ldr r0, _080DCF54 + strh r0, [r4, 0x36] + ldr r1, _080DCF58 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r1, _080DCF5C + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DCF54: .4byte 0x0000ffe8 +_080DCF58: .4byte move_anim_8074EE0 +_080DCF5C: .4byte sub_8078278 + thumb_func_end sub_80DCF1C + + thumb_func_start sub_80DCF60 +sub_80DCF60: @ 80DCF60 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080DCF88 + ldrb r1, [r4, 0xA] + bl StartSpriteAnim + adds r0, r5, 0 + bl AnimateSprite + ldr r0, _080DCF8C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DCF90 + ldrh r0, [r5, 0x20] + ldrh r1, [r4] + subs r0, r1 + b _080DCF96 + .align 2, 0 +_080DCF88: .4byte gUnknown_03004B00 +_080DCF8C: .4byte gUnknown_0202F7C8 +_080DCF90: + ldrh r0, [r4] + ldrh r1, [r5, 0x20] + adds r0, r1 +_080DCF96: + strh r0, [r5, 0x20] + ldr r3, _080DCFD8 + ldrh r2, [r3, 0x2] + ldrh r0, [r5, 0x22] + adds r2, r0 + movs r4, 0 + strh r2, [r5, 0x22] + ldrh r0, [r3, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r1, [r3, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + strh r2, [r5, 0x34] + ldrh r0, [r3, 0x6] + adds r2, r0 + strh r2, [r5, 0x36] + adds r0, r5, 0 + bl sub_8078A5C + strh r4, [r5, 0x34] + strh r4, [r5, 0x36] + ldr r0, _080DCFDC + str r0, [r5, 0x1C] + ldr r1, _080DCFE0 + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DCFD8: .4byte gUnknown_03004B00 +_080DCFDC: .4byte sub_8078394 +_080DCFE0: .4byte move_anim_8074EE0 + thumb_func_end sub_80DCF60 + + thumb_func_start sub_80DCFE4 +sub_80DCFE4: @ 80DCFE4 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080DCFFC + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080DD000 + adds r0, r4, 0 + movs r1, 0 + bl sub_80787B0 + b _080DD008 + .align 2, 0 +_080DCFFC: .4byte gUnknown_03004B00 +_080DD000: + adds r0, r4, 0 + movs r1, 0 + bl sub_8078764 +_080DD008: + ldr r1, _080DD024 + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x34] + ldr r0, _080DD028 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DD024: .4byte gUnknown_03004B00 +_080DD028: .4byte sub_80DD02C + thumb_func_end sub_80DCFE4 + + thumb_func_start sub_80DD02C +sub_80DD02C: @ 80DD02C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x36] + adds r0, r1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x32] + ldrh r1, [r4, 0x38] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080DD072 + adds r0, r4, 0 + bl move_anim_8072740 +_080DD072: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DD02C + + thumb_func_start do_boulder_dust +do_boulder_dust: @ 80DD078 + push {r4-r6,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + ldr r1, _080DD154 + ldr r2, _080DD158 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r4, _080DD15C + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080DD0C4 + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080DD0C4: + ldr r0, _080DD160 + strh r5, [r0] + ldr r0, _080DD164 + strh r5, [r0] + ldr r0, _080DD168 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + mov r0, sp + bl sub_8078914 + ldr r1, [sp, 0x4] + str r5, [sp, 0xC] + ldr r2, _080DD16C + add r0, sp, 0xC + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _080DD170 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, _080DD174 + bl LZDecompressVram + ldr r0, _080DD178 + ldr r1, [sp] + bl LZDecompressVram + ldr r0, _080DD17C + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DD120 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80763FC +_080DD120: + ldr r0, _080DD180 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080DD13A + ldr r0, _080DD184 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DD13A + movs r5, 0x1 +_080DD13A: + ldr r0, _080DD188 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + strh r5, [r1, 0x8] + ldr r0, _080DD18C + str r0, [r1] + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DD154: .4byte REG_BLDCNT +_080DD158: .4byte 0x00003f42 +_080DD15C: .4byte REG_BG1CNT +_080DD160: .4byte gUnknown_030042C0 +_080DD164: .4byte gUnknown_030041B4 +_080DD168: .4byte REG_BG1HOFS +_080DD16C: .4byte 0x040000d4 +_080DD170: .4byte 0x85000400 +_080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew +_080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew +_080DD17C: .4byte gBattleAnimSpritePalette_261 +_080DD180: .4byte gUnknown_03004B00 +_080DD184: .4byte gUnknown_0202F7C8 +_080DD188: .4byte gTasks +_080DD18C: .4byte sub_80DD190 + thumb_func_end do_boulder_dust + + thumb_func_start sub_80DD190 +sub_80DD190: @ 80DD190 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080DD1C0 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r3, r1, 0 + cmp r0, 0 + bne _080DD1CC + ldr r1, _080DD1C4 + ldr r5, _080DD1C8 + adds r0, r5, 0 + ldrh r2, [r1] + adds r0, r2 + b _080DD1D2 + .align 2, 0 +_080DD1C0: .4byte gTasks +_080DD1C4: .4byte gUnknown_030042C0 +_080DD1C8: .4byte 0x0000fffa +_080DD1CC: + ldr r1, _080DD204 + ldrh r0, [r1] + adds r0, 0x6 +_080DD1D2: + strh r0, [r1] + adds r4, r1, 0 + ldr r1, _080DD208 + ldr r5, _080DD20C + adds r0, r5, 0 + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + lsls r2, r7, 2 + adds r0, r2, r7 + lsls r0, 3 + adds r0, r3 + movs r5, 0x20 + ldrsh r0, [r0, r5] + mov r8, r2 + adds r2, r1, 0 + cmp r0, 0x4 + bls _080DD1F8 + b _080DD37C +_080DD1F8: + lsls r0, 2 + ldr r1, _080DD210 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DD204: .4byte gUnknown_030042C0 +_080DD208: .4byte gUnknown_030041B4 +_080DD20C: .4byte 0x0000ffff +_080DD210: .4byte _080DD214 + .align 2, 0 +_080DD214: + .4byte _080DD228 + .4byte _080DD270 + .4byte _080DD292 + .4byte _080DD2D4 + .4byte _080DD358 +_080DD228: + mov r1, r8 + adds r0, r1, r7 + lsls r0, 3 + adds r3, r0, r3 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + movs r4, 0 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + beq _080DD242 + b _080DD37C +_080DD242: + strh r4, [r3, 0x1C] + ldrh r1, [r3, 0x1E] + adds r1, 0x1 + strh r1, [r3, 0x1E] + ldr r2, _080DD26C + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r2, 0x1E + ldrsh r0, [r3, r2] + cmp r0, 0x7 + beq _080DD260 + b _080DD37C +_080DD260: + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + strh r4, [r3, 0x1E] + b _080DD37C + .align 2, 0 +_080DD26C: .4byte REG_BLDALPHA +_080DD270: + mov r5, r8 + adds r0, r5, r7 + lsls r0, 3 + adds r1, r0, r3 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x65 + bne _080DD37C + movs r0, 0x7 + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080DD37C +_080DD292: + mov r1, r8 + adds r0, r1, r7 + lsls r0, 3 + adds r3, r0, r3 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080DD37C + movs r0, 0 + strh r0, [r3, 0x1C] + ldrh r1, [r3, 0x1E] + subs r1, 0x1 + strh r1, [r3, 0x1E] + ldr r2, _080DD2D0 + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r2, 0x1E + ldrsh r1, [r3, r2] + cmp r1, 0 + bne _080DD37C + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + strh r1, [r3, 0x1E] + b _080DD37C + .align 2, 0 +_080DD2D0: .4byte REG_BLDALPHA +_080DD2D4: + mov r0, sp + bl sub_8078914 + ldr r2, [sp] + movs r3, 0x80 + lsls r3, 6 + add r5, sp, 0xC + movs r6, 0 + ldr r1, _080DD38C + movs r4, 0x80 + lsls r4, 5 + mov r9, r5 + ldr r0, _080DD390 + mov r12, r0 + movs r0, 0x85 + lsls r0, 24 + mov r10, r0 +_080DD2F6: + str r6, [sp, 0xC] + mov r0, r9 + str r0, [r1] + str r2, [r1, 0x4] + mov r0, r12 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080DD2F6 + str r6, [sp, 0xC] + str r5, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r10 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r0, _080DD38C + str r5, [r0] + str r1, [r0, 0x4] + ldr r1, _080DD394 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080DD344 + ldr r2, _080DD398 + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080DD344: + ldr r0, _080DD39C + mov r5, r8 + adds r1, r5, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + ldr r4, _080DD3A0 + ldr r2, _080DD3A4 +_080DD358: + movs r1, 0 + strh r1, [r4] + strh r1, [r2] + ldr r0, _080DD3A8 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r2, _080DD398 + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + adds r0, r7, 0 + bl move_anim_task_del +_080DD37C: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DD38C: .4byte 0x040000d4 +_080DD390: .4byte 0x85000400 +_080DD394: .4byte 0x85000200 +_080DD398: .4byte REG_BG1CNT +_080DD39C: .4byte gTasks +_080DD3A0: .4byte gUnknown_030042C0 +_080DD3A4: .4byte gUnknown_030041B4 +_080DD3A8: .4byte REG_BLDCNT + thumb_func_end sub_80DD190 + + thumb_func_start sub_80DD3AC +sub_80DD3AC: @ 80DD3AC + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080DD428 + ldr r4, _080DD3F0 + movs r2, 0x6 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080DD3F8 + ldr r0, _080DD3F4 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DD3F8 + movs r0, 0x98 + lsls r0, 1 + strh r0, [r5, 0x20] + ldrh r0, [r4, 0x2] + negs r0, r0 + strh r0, [r4, 0x2] + movs r0, 0x1 + strh r0, [r5, 0x38] + ldrb r1, [r5, 0x3] + subs r0, 0x40 + ands r0, r1 + movs r1, 0x10 + orrs r0, r1 + strb r0, [r5, 0x3] + b _080DD3FC + .align 2, 0 +_080DD3F0: .4byte gUnknown_03004B00 +_080DD3F4: .4byte gUnknown_0202F7C8 +_080DD3F8: + ldr r0, _080DD41C + strh r0, [r5, 0x20] +_080DD3FC: + ldr r4, _080DD420 + ldrh r0, [r4] + strh r0, [r5, 0x22] + ldr r1, _080DD424 + adds r0, r5, 0 + bl SetSubspriteTables + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080DD484 + .align 2, 0 +_080DD41C: .4byte 0x0000ffc0 +_080DD420: .4byte gUnknown_03004B00 +_080DD424: .4byte gUnknown_083DAD10 +_080DD428: + ldrh r1, [r5, 0x30] + ldrh r3, [r5, 0x34] + adds r1, r3 + ldrh r2, [r5, 0x32] + ldrh r0, [r5, 0x36] + adds r2, r0 + lsls r0, r1, 16 + asrs r0, 24 + ldrh r3, [r5, 0x24] + adds r0, r3 + strh r0, [r5, 0x24] + lsls r0, r2, 16 + asrs r0, 24 + ldrh r3, [r5, 0x26] + adds r0, r3 + strh r0, [r5, 0x26] + movs r0, 0xFF + ands r1, r0 + strh r1, [r5, 0x34] + ands r2, r0 + strh r2, [r5, 0x36] + movs r1, 0x38 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080DD46E + movs r2, 0x20 + ldrsh r0, [r5, r2] + movs r3, 0x24 + ldrsh r1, [r5, r3] + adds r0, r1 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + ble _080DD484 + b _080DD480 +_080DD46E: + movs r1, 0x20 + ldrsh r0, [r5, r1] + movs r2, 0x24 + ldrsh r1, [r5, r2] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080DD484 +_080DD480: + ldr r0, _080DD48C + str r0, [r5, 0x1C] +_080DD484: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DD48C: .4byte move_anim_8072740 + thumb_func_end sub_80DD3AC + + thumb_func_start sub_80DD490 +sub_80DD490: @ 80DD490 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080DD4C8 + ldrb r1, [r5, 0x8] + bl StartSpriteAnim + adds r0, r4, 0 + movs r1, 0 + bl sub_80787B0 + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0x4] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x36] + ldr r0, _080DD4CC + str r0, [r4, 0x1C] + ldr r1, _080DD4D0 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DD4C8: .4byte gUnknown_03004B00 +_080DD4CC: .4byte sub_8078B34 +_080DD4D0: .4byte move_anim_8072740 + thumb_func_end sub_80DD490 + + thumb_func_start sub_80DD4D4 +sub_80DD4D4: @ 80DD4D4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080DD554 + adds r6, r1, r0 + ldr r5, _080DD558 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 8 + movs r1, 0xC0 + lsls r1, 13 + adds r0, r1 + lsrs r7, r0, 16 + ldr r4, _080DD55C + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 8 + movs r2, 0xC0 + lsls r2, 13 + adds r0, r2 + lsrs r0, 16 + mov r8, r0 + ldrb r1, [r5] + movs r0, 0x2 + eors r0, r1 + ldrb r4, [r4] + cmp r0, r4 + bne _080DD544 + mov r8, r7 +_080DD544: + bl sub_80DD8BC + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bne _080DD560 + movs r0, 0x20 + b _080DD566 + .align 2, 0 +_080DD554: .4byte gTasks +_080DD558: .4byte gUnknown_0202F7C8 +_080DD55C: .4byte gUnknown_0202F7C9 +_080DD560: + lsls r1, r5, 3 + movs r0, 0x30 + subs r0, r1 +_080DD566: + strh r0, [r6, 0x18] + movs r4, 0 + strh r4, [r6, 0x8] + strh r4, [r6, 0x1E] + strh r4, [r6, 0x1A] + movs r0, 0x1 + strh r0, [r6, 0x20] + movs r1, 0x18 + ldrsh r0, [r6, r1] + cmp r0, 0 + bge _080DD57E + adds r0, 0x7 +_080DD57E: + asrs r0, 3 + subs r0, 0x1 + strh r0, [r6, 0x1C] + mov r2, r9 + lsls r0, r2, 3 + strh r0, [r6, 0xC] + lsls r0, r7, 3 + strh r0, [r6, 0xE] + mov r1, r10 + subs r0, r1, r2 + lsls r0, 3 + movs r2, 0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, 0x10] + mov r1, r8 + subs r0, r1, r7 + lsls r0, 3 + movs r2, 0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, 0x12] + strh r4, [r6, 0x14] + strh r4, [r6, 0x16] + movs r0, 0x40 + negs r0, r0 + bl sub_8076F98 + adds r4, r0, 0 + lsls r4, 24 + asrs r4, 8 + lsrs r4, 16 + movs r0, 0x3F + bl sub_8076F98 + lsls r0, 24 + strh r4, [r6, 0x22] + asrs r0, 24 + lsls r4, 16 + asrs r4, 16 + subs r0, r4 + movs r2, 0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, 0x24] + strh r5, [r6, 0xA] + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x26] + ldr r0, _080DD600 + str r0, [r6] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DD600: .4byte sub_80DD604 + thumb_func_end sub_80DD4D4 + + thumb_func_start sub_80DD604 +sub_80DD604: @ 80DD604 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080DD628 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080DD61E + b _080DD76C +_080DD61E: + lsls r0, 2 + ldr r1, _080DD62C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DD628: .4byte gTasks +_080DD62C: .4byte _080DD630 + .align 2, 0 +_080DD630: + .4byte _080DD644 + .4byte _080DD6A8 + .4byte _080DD6B0 + .4byte _080DD70C + .4byte _080DD75E +_080DD644: + ldrh r2, [r4, 0x14] + ldrh r0, [r4, 0x10] + subs r2, r0 + strh r2, [r4, 0x14] + ldrh r0, [r4, 0x16] + ldrh r1, [r4, 0x12] + subs r0, r1 + strh r0, [r4, 0x16] + ldr r3, _080DD6A4 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + lsls r2, 16 + asrs r2, 19 + strh r2, [r0, 0x24] + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r4, 0x16] + lsls r0, 16 + asrs r0, 19 + strh r0, [r1, 0x26] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080DD694 + movs r0, 0x14 + strh r0, [r4, 0x1E] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080DD694: + ldrh r1, [r4, 0x22] + lsls r1, 24 + asrs r1, 24 + movs r0, 0xA2 + bl PlaySE12WithPanning + b _080DD76C + .align 2, 0 +_080DD6A4: .4byte gSprites +_080DD6A8: + ldrh r0, [r4, 0x1E] + subs r0, 0x1 + strh r0, [r4, 0x1E] + b _080DD750 +_080DD6B0: + ldrh r0, [r4, 0x1A] + subs r0, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + beq _080DD6D0 + ldrh r0, [r4, 0x10] + ldrh r2, [r4, 0x14] + adds r0, r2 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x16] + adds r0, r1 + strh r0, [r4, 0x16] + b _080DD6DA +_080DD6D0: + strh r0, [r4, 0x14] + strh r0, [r4, 0x16] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080DD6DA: + ldr r2, _080DD708 + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r4, 0x14] + lsls r0, 16 + asrs r0, 19 + strh r0, [r1, 0x24] + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r4, 0x16] + lsls r0, 16 + asrs r0, 19 + strh r0, [r1, 0x26] + b _080DD76C + .align 2, 0 +_080DD708: .4byte gSprites +_080DD70C: + ldrh r0, [r4, 0x10] + ldrh r2, [r4, 0xC] + adds r0, r2 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0xE] + adds r0, r1 + strh r0, [r4, 0xE] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x1C + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080DD74A + movs r0, 0 + strh r0, [r4, 0x1A] + adds r0, r4, 0 + bl sub_80DD774 + ldrh r1, [r4, 0x24] + ldrh r0, [r4, 0x22] + adds r1, r0 + strh r1, [r4, 0x22] + lsls r1, 24 + asrs r1, 24 + movs r0, 0xAF + bl PlaySE12WithPanning +_080DD74A: + ldrh r0, [r4, 0x18] + subs r0, 0x1 + strh r0, [r4, 0x18] +_080DD750: + lsls r0, 16 + cmp r0, 0 + bne _080DD76C + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080DD76C +_080DD75E: + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080DD76C + adds r0, r2, 0 + bl move_anim_task_del +_080DD76C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DD604 + + thumb_func_start sub_80DD774 +sub_80DD774: @ 80DD774 + push {r4-r7,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0xA] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bhi _080DD864 + lsls r0, 2 + ldr r1, _080DD790 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DD790: .4byte _080DD794 + .align 2, 0 +_080DD794: + .4byte _080DD7A8 + .4byte _080DD7B4 + .4byte _080DD7B4 + .4byte _080DD7C0 + .4byte _080DD7CC +_080DD7A8: + ldr r3, _080DD7B0 + movs r5, 0 + b _080DD7D0 + .align 2, 0 +_080DD7B0: .4byte gSpriteTemplate_83DAD78 +_080DD7B4: + ldr r3, _080DD7BC + movs r5, 0x50 + b _080DD7D0 + .align 2, 0 +_080DD7BC: .4byte gSpriteTemplate_83DAD90 +_080DD7C0: + ldr r3, _080DD7C8 + movs r5, 0x40 + b _080DD7D0 + .align 2, 0 +_080DD7C8: .4byte gSpriteTemplate_83DAD90 +_080DD7CC: + ldr r3, _080DD86C + movs r5, 0x30 +_080DD7D0: + ldrh r1, [r4, 0xC] + lsls r1, 16 + asrs r1, 19 + lsls r1, 16 + lsrs r1, 16 + ldrh r2, [r4, 0xE] + lsls r2, 16 + asrs r2, 19 + lsls r2, 16 + movs r6, 0x20 + ldrsh r0, [r4, r6] + lsls r0, 2 + adds r1, r0 + lsls r1, 16 + lsrs r6, r1, 16 + asrs r1, 16 + lsrs r7, r2, 16 + asrs r2, 16 + adds r0, r3, 0 + movs r3, 0x23 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080DD85C + ldr r1, _080DD870 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x12 + strh r1, [r0, 0x2E] + movs r2, 0x20 + ldrsh r1, [r4, r2] + lsls r2, r1, 2 + adds r2, r1 + lsls r2, 2 + adds r2, r6, r2 + movs r6, 0xA + ldrsh r3, [r4, r6] + lsls r1, r3, 1 + adds r1, r3 + adds r2, r1 + strh r2, [r0, 0x32] + strh r7, [r0, 0x36] + movs r1, 0xA + ldrsh r2, [r4, r1] + lsls r2, 1 + movs r3, 0x10 + negs r3, r3 + adds r1, r3, 0 + subs r1, r2 + strh r1, [r0, 0x38] + ldrh r3, [r0, 0x4] + lsls r2, r3, 22 + lsrs r2, 22 + adds r2, r5 + ldr r5, _080DD874 + adds r1, r5, 0 + ands r2, r1 + ldr r1, _080DD878 + ands r1, r3 + orrs r1, r2 + strh r1, [r0, 0x4] + bl sub_80786EC + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] +_080DD85C: + movs r6, 0x20 + ldrsh r0, [r4, r6] + negs r0, r0 + strh r0, [r4, 0x20] +_080DD864: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DD86C: .4byte gSpriteTemplate_83DAD90 +_080DD870: .4byte gSprites +_080DD874: .4byte 0x000003ff +_080DD878: .4byte 0xfffffc00 + thumb_func_end sub_80DD774 + + thumb_func_start sub_80DD87C +sub_80DD87C: @ 80DD87C + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080DD8AE + ldr r0, _080DD8B4 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080DD8A8 + ldr r0, _080DD8B8 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x1E] + subs r0, 0x1 + strh r0, [r1, 0x1E] +_080DD8A8: + adds r0, r4, 0 + bl DestroySprite +_080DD8AE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DD8B4: .4byte sub_80DD604 +_080DD8B8: .4byte gTasks + thumb_func_end sub_80DD87C + + thumb_func_start sub_80DD8BC +sub_80DD8BC: @ 80DD8BC + push {lr} + ldr r0, _080DD8E4 + ldr r0, [r0] + ldrb r1, [r0, 0x11] + lsrs r0, r1, 4 + lsls r1, 28 + lsrs r1, 28 + subs r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0x4 + bls _080DD8DE + movs r1, 0x1 +_080DD8DE: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_080DD8E4: .4byte gUnknown_0202F7B4 + thumb_func_end sub_80DD8BC + + thumb_func_start sub_80DD8E8 +sub_80DD8E8: @ 80DD8E8 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080DD920 + ldrb r1, [r5, 0x8] + bl StartSpriteAnim + ldrh r0, [r5] + strh r0, [r4, 0x24] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + ldrh r1, [r5, 0x4] + subs r0, r1 + strh r0, [r4, 0x34] + movs r0, 0x3 + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + ldr r0, _080DD924 + str r0, [r4, 0x1C] + adds r4, 0x3E + ldrb r0, [r4] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DD920: .4byte gUnknown_03004B00 +_080DD924: .4byte sub_80DD928 + thumb_func_end sub_80DD8E8 + + thumb_func_start sub_80DD928 +sub_80DD928: @ 80DD928 + push {lr} + adds r2, r0, 0 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r3] + ldrh r1, [r2, 0x34] + movs r3, 0x34 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _080DD960 + ldrh r3, [r2, 0x32] + adds r0, r1, r3 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + adds r1, r0 + strh r1, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r1, 16 + cmp r1, 0 + ble _080DD972 + movs r0, 0 + strh r0, [r2, 0x34] + b _080DD972 +_080DD960: + ldrh r0, [r2, 0x30] + subs r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080DD972 + adds r0, r2, 0 + bl move_anim_8072740 +_080DD972: + pop {r0} + bx r0 + thumb_func_end sub_80DD928 + + thumb_func_start sub_80DD978 +sub_80DD978: @ 80DD978 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080DD9A0 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080DD994 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080DD994: + adds r0, r4, 0 + bl sub_807941C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DD9A0: .4byte gUnknown_0202F7C8 + thumb_func_end sub_80DD978 + + thumb_func_start sub_80DD9A4 +sub_80DD9A4: @ 80DD9A4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080DD9F0 + ldrb r0, [r5] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080DD9F4 + ldrh r3, [r2] + ldrh r5, [r4, 0x20] + adds r1, r3, r5 + strh r1, [r4, 0x20] + ldrh r1, [r2, 0x2] + adds r0, r1 + strh r0, [r4, 0x22] + strh r3, [r4, 0x30] + strh r1, [r4, 0x32] + ldrh r0, [r2, 0x4] + strh r0, [r4, 0x38] + ldrb r1, [r2, 0x6] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _080DD9F8 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DD9F0: .4byte gUnknown_0202F7C9 +_080DD9F4: .4byte gUnknown_03004B00 +_080DD9F8: .4byte sub_80DD9FC + thumb_func_end sub_80DD9A4 + + thumb_func_start sub_80DD9FC +sub_80DD9FC: @ 80DD9FC + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x8 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r1, 0x28 + bl __divsi3 + ldrh r1, [r4, 0x24] + adds r1, r0 + strh r1, [r4, 0x24] + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + subs r1, r0 + strh r1, [r4, 0x26] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x8C + ble _080DDA46 + adds r0, r4, 0 + bl move_anim_8072740 +_080DDA46: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DD9FC + + thumb_func_start sub_80DDA4C +sub_80DDA4C: @ 80DDA4C + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080DDA84 + ldr r0, [r2] + cmp r0, 0x20 + bgt _080DDA60 + ldr r1, _080DDA88 + movs r0, 0 + strh r0, [r1, 0xE] +_080DDA60: + ldr r2, [r2] + adds r0, r2, 0 + subs r0, 0x21 + cmp r0, 0x20 + bhi _080DDA70 + ldr r1, _080DDA88 + movs r0, 0x1 + strh r0, [r1, 0xE] +_080DDA70: + cmp r2, 0x41 + ble _080DDA7A + ldr r1, _080DDA88 + movs r0, 0x2 + strh r0, [r1, 0xE] +_080DDA7A: + adds r0, r3, 0 + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080DDA84: .4byte gUnknown_0202F7B8 +_080DDA88: .4byte gUnknown_03004B00 + thumb_func_end sub_80DDA4C + + thumb_func_start sub_80DDA8C +sub_80DDA8C: @ 80DDA8C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080DDAE8 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080DDAAE + movs r0, 0 + bl sub_80789D4 + movs r0, 0xC8 + strh r0, [r5, 0xA] +_080DDAAE: + ldr r4, _080DDAEC + movs r1, 0xA + ldrsh r0, [r5, r1] + movs r1, 0xA + bl __divsi3 + ldrh r1, [r4] + adds r1, r0 + strh r1, [r4] + ldrh r0, [r5, 0xA] + subs r0, 0x3 + strh r0, [r5, 0xA] + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x78 + bne _080DDADA + movs r0, 0x1 + bl sub_80789D4 + adds r0, r6, 0 + bl move_anim_task_del +_080DDADA: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DDAE8: .4byte gTasks +_080DDAEC: .4byte gUnknown_030041B8 + thumb_func_end sub_80DDA8C + + thumb_func_start sub_80DDAF0 +sub_80DDAF0: @ 80DDAF0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _080DDB5C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080DDB1C + movs r0, 0 + bl sub_80789D4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldr r0, _080DDB60 + ldrh r0, [r0] + strh r0, [r4, 0xC] +_080DDB1C: + ldrh r0, [r4, 0xA] + adds r0, 0x50 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0xA] + ldr r6, _080DDB60 + movs r2, 0xA + ldrsh r1, [r4, r2] + movs r0, 0x4 + bl Cos + ldrh r4, [r4, 0xC] + adds r0, r4 + strh r0, [r6] + ldr r0, _080DDB64 + movs r2, 0xE + ldrsh r1, [r0, r2] + ldr r0, _080DDB68 + cmp r1, r0 + bne _080DDB54 + movs r0, 0 + strh r0, [r6] + movs r0, 0x1 + bl sub_80789D4 + adds r0, r5, 0 + bl move_anim_task_del +_080DDB54: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DDB5C: .4byte gTasks +_080DDB60: .4byte gUnknown_030041B8 +_080DDB64: .4byte gUnknown_03004B00 +_080DDB68: .4byte 0x00000fff + thumb_func_end sub_80DDAF0 + + thumb_func_start sub_80DDB6C +sub_80DDB6C: @ 80DDB6C + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080DDBC8 + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldr r5, _080DDBCC + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_8078BD4 + ldr r0, _080DDBD0 + str r0, [r4, 0x1C] + movs r0, 0x10 + strh r0, [r4, 0x3A] + ldr r1, _080DDBD4 + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r4, 0x3A] + strh r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DDBC8: .4byte gUnknown_03004B00 +_080DDBCC: .4byte gUnknown_0202F7C9 +_080DDBD0: .4byte sub_80DDBD8 +_080DDBD4: .4byte REG_BLDCNT + thumb_func_end sub_80DDB6C + + thumb_func_start sub_80DDBD8 +sub_80DDBD8: @ 80DDBD8 + push {r4,lr} + adds r4, r0, 0 + bl sub_80DDCC8 + adds r0, r4, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080DDBF8 + ldr r0, _080DDBF4 + str r0, [r4, 0x1C] + b _080DDC42 + .align 2, 0 +_080DDBF4: .4byte sub_80DDC4C +_080DDBF8: + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xF + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r2, [r4, 0x38] + adds r0, r2, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x38] + lsls r2, 16 + asrs r2, 16 + cmp r2, 0 + beq _080DDC30 + cmp r2, 0xC4 + ble _080DDC42 +_080DDC30: + lsls r0, 16 + cmp r0, 0 + ble _080DDC42 + ldr r0, _080DDC48 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0xC4 + bl PlaySE12WithPanning +_080DDC42: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DDC48: .4byte gUnknown_0202F7D2 + thumb_func_end sub_80DDBD8 + + thumb_func_start sub_80DDC4C +sub_80DDC4C: @ 80DDC4C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_8078B5C + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xF + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r2, [r4, 0x38] + adds r0, r2, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x38] + lsls r2, 16 + asrs r2, 16 + cmp r2, 0 + beq _080DDC92 + cmp r2, 0xC4 + ble _080DDC9E +_080DDC92: + lsls r0, 16 + cmp r0, 0 + ble _080DDC9E + movs r0, 0xC4 + bl PlaySE +_080DDC9E: + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080DDCBC + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080DDCB8 + str r0, [r4, 0x1C] + b _080DDCC2 + .align 2, 0 +_080DDCB8: .4byte sub_807861C +_080DDCBC: + adds r0, r4, 0 + bl sub_80DDCC8 +_080DDCC2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DDC4C + + thumb_func_start sub_80DDCC8 +sub_80DDCC8: @ 80DDCC8 + push {r4,lr} + adds r3, r0, 0 + ldrh r2, [r3, 0x3A] + movs r1, 0x3A + ldrsh r0, [r3, r1] + cmp r0, 0xFF + ble _080DDCEC + adds r0, r2, 0x1 + strh r0, [r3, 0x3A] + lsls r0, 16 + ldr r1, _080DDCE8 + cmp r0, r1 + bne _080DDD4C + movs r0, 0 + b _080DDD4A + .align 2, 0 +_080DDCE8: .4byte 0x010d0000 +_080DDCEC: + ldrh r1, [r3, 0x3C] + adds r4, r1, 0x1 + strh r4, [r3, 0x3C] + movs r0, 0xFF + ands r0, r1 + cmp r0, 0 + bne _080DDD4C + ldr r1, _080DDD10 + ands r1, r4 + strh r1, [r3, 0x3C] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080DDD14 + adds r0, r2, 0x1 + b _080DDD16 + .align 2, 0 +_080DDD10: .4byte 0xffffff00 +_080DDD14: + subs r0, r2, 0x1 +_080DDD16: + strh r0, [r3, 0x3A] + ldr r2, _080DDD54 + ldrh r1, [r3, 0x3A] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r0, r1 + strh r0, [r2] + movs r2, 0x3A + ldrsh r0, [r3, r2] + cmp r0, 0 + beq _080DDD32 + cmp r0, 0x10 + bne _080DDD3E +_080DDD32: + ldrh r0, [r3, 0x3C] + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + eors r0, r1 + strh r0, [r3, 0x3C] +_080DDD3E: + movs r1, 0x3A + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080DDD4C + movs r0, 0x80 + lsls r0, 1 +_080DDD4A: + strh r0, [r3, 0x3A] +_080DDD4C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DDD54: .4byte REG_BLDALPHA + thumb_func_end sub_80DDCC8 + + thumb_func_start sub_80DDD58 +sub_80DDD58: @ 80DDD58 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r1, _080DDD74 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DDD74: .4byte sub_80DDD78 + thumb_func_end sub_80DDD58 + + thumb_func_start sub_80DDD78 +sub_80DDD78: @ 80DDD78 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + subs r0, 0x41 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x82 + bhi _080DDDAC + ldrb r0, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x8 + b _080DDDB6 +_080DDDAC: + ldrb r0, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 +_080DDDB6: + orrs r1, r0 + strb r1, [r4, 0x5] + ldrh r0, [r4, 0x2E] + adds r0, 0x13 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x32] + adds r0, 0x50 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3D + bne _080DDDE8 + adds r0, r4, 0 + bl move_anim_8072740 +_080DDDE8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DDD78 + + thumb_func_start sub_80DDDF0 +sub_80DDDF0: @ 80DDDF0 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r1, _080DDE68 + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + bl obj_id_for_side_relative_to_move + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078E70 + adds r0, r4, 0 + movs r1, 0x80 + movs r2, 0x80 + movs r3, 0 + bl obj_id_set_rotscale + ldr r1, _080DDE6C + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldr r1, _080DDE70 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + movs r1, 0x80 + strh r1, [r0, 0x8] + ldr r1, _080DDE74 + ldrh r1, [r1] + strh r1, [r0, 0xA] + strh r2, [r0, 0xC] + movs r1, 0x10 + strh r1, [r0, 0xE] + ldr r1, _080DDE78 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DDE68: .4byte REG_BLDCNT +_080DDE6C: .4byte gSprites +_080DDE70: .4byte gTasks +_080DDE74: .4byte gUnknown_03004B00 +_080DDE78: .4byte sub_80DDE7C + thumb_func_end sub_80DDDF0 + + thumb_func_start sub_80DDE7C +sub_80DDE7C: @ 80DDE7C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080DDEC4 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r3, r1, r2 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080DDEBE + movs r0, 0 + strh r0, [r3, 0x1C] + ldrh r1, [r3, 0xC] + adds r1, 0x1 + strh r1, [r3, 0xC] + ldrh r0, [r3, 0xE] + subs r0, 0x1 + strh r0, [r3, 0xE] + ldr r2, _080DDEC8 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0xC + ldrsh r0, [r3, r1] + cmp r0, 0x9 + bne _080DDEBE + ldr r0, _080DDECC + str r0, [r3] +_080DDEBE: + pop {r0} + bx r0 + .align 2, 0 +_080DDEC4: .4byte gTasks +_080DDEC8: .4byte REG_BLDALPHA +_080DDECC: .4byte sub_80DDED0 + thumb_func_end sub_80DDE7C + + thumb_func_start sub_80DDED0 +sub_80DDED0: @ 80DDED0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _080DDEF4 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080DDEF8 + subs r0, r1, 0x1 + strh r0, [r4, 0xA] + b _080DDF36 + .align 2, 0 +_080DDEF4: .4byte gTasks +_080DDEF8: + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r1, r0, 24 + ldrh r0, [r4, 0x8] + adds r0, 0x8 + movs r6, 0 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xFF + bgt _080DDF22 + movs r0, 0x8 + ldrsh r2, [r4, r0] + adds r0, r1, 0 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + b _080DDF36 +_080DDF22: + adds r0, r1, 0 + bl sub_8078F40 + adds r0, r5, 0 + bl move_anim_task_del + ldr r0, _080DDF3C + strh r6, [r0] + adds r0, 0x2 + strh r6, [r0] +_080DDF36: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DDF3C: .4byte REG_BLDCNT + thumb_func_end sub_80DDED0 + + thumb_func_start sub_80DDF40 +sub_80DDF40: @ 80DDF40 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + adds r4, r0, 0 + ldrh r5, [r4, 0x20] + ldrh r6, [r4, 0x22] + ldr r0, _080DDFDC + mov r8, r0 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + mov r9, r1 + strh r0, [r4, 0x20] + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + mov r1, r9 + strh r1, [r4, 0x2E] + ldr r2, _080DDFE0 + ldrh r1, [r2] + strh r1, [r4, 0x30] + ldrh r1, [r2, 0x2] + strh r1, [r4, 0x32] + ldrh r1, [r2, 0x4] + strh r1, [r4, 0x34] + ldrh r1, [r4, 0x20] + lsls r1, 4 + strh r1, [r4, 0x36] + lsls r0, 4 + strh r0, [r4, 0x38] + lsls r5, 16 + asrs r5, 16 + movs r1, 0x20 + ldrsh r0, [r4, r1] + subs r5, r0 + lsls r5, 4 + movs r0, 0 + ldrsh r1, [r2, r0] + lsls r1, 1 + adds r0, r5, 0 + str r2, [sp] + bl __divsi3 + strh r0, [r4, 0x3A] + lsls r6, 16 + asrs r6, 16 + movs r1, 0x22 + ldrsh r0, [r4, r1] + subs r6, r0 + lsls r6, 4 + ldr r2, [sp] + movs r0, 0 + ldrsh r1, [r2, r0] + lsls r1, 1 + adds r0, r6, 0 + bl __divsi3 + strh r0, [r4, 0x3C] + ldr r0, _080DDFE4 + str r0, [r4, 0x1C] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DDFDC: .4byte gUnknown_0202F7C8 +_080DDFE0: .4byte gUnknown_03004B00 +_080DDFE4: .4byte sub_80DDFE8 + thumb_func_end sub_80DDF40 + + thumb_func_start sub_80DDFE8 +sub_80DDFE8: @ 80DDFE8 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080DE032 + cmp r0, 0x1 + bgt _080DDFFE + cmp r0, 0 + beq _080DE008 + b _080DE0F6 +_080DDFFE: + cmp r0, 0x2 + beq _080DE09C + cmp r0, 0x3 + beq _080DE0F0 + b _080DE0F6 +_080DE008: + ldrh r0, [r5, 0x3A] + ldrh r2, [r5, 0x36] + adds r0, r2 + strh r0, [r5, 0x36] + ldrh r1, [r5, 0x3C] + ldrh r2, [r5, 0x38] + adds r1, r2 + strh r1, [r5, 0x38] + lsls r0, 16 + asrs r0, 20 + strh r0, [r5, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r5, 0x22] + ldrh r0, [r5, 0x30] + subs r0, 0x1 + strh r0, [r5, 0x30] + lsls r0, 16 + cmp r0, 0 + bgt _080DE0F6 + b _080DE0E2 +_080DE032: + ldrh r0, [r5, 0x32] + subs r0, 0x1 + strh r0, [r5, 0x32] + lsls r0, 16 + cmp r0, 0 + bgt _080DE0F6 + ldr r4, _080DE098 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x30] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x20] + lsls r0, 4 + strh r0, [r5, 0x36] + ldrh r0, [r5, 0x22] + lsls r0, 4 + strh r0, [r5, 0x38] + movs r1, 0x30 + ldrsh r0, [r5, r1] + movs r2, 0x20 + ldrsh r1, [r5, r2] + subs r0, r1 + lsls r0, 4 + movs r2, 0x34 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r5, 0x3A] + movs r1, 0x32 + ldrsh r0, [r5, r1] + movs r2, 0x22 + ldrsh r1, [r5, r2] + subs r0, r1 + lsls r0, 4 + movs r2, 0x34 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r5, 0x3C] + b _080DE0E2 + .align 2, 0 +_080DE098: .4byte gUnknown_0202F7C9 +_080DE09C: + ldrh r0, [r5, 0x3A] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] + ldrh r1, [r5, 0x3C] + ldrh r2, [r5, 0x38] + adds r1, r2 + strh r1, [r5, 0x38] + lsls r0, 16 + asrs r0, 20 + strh r0, [r5, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r5, 0x22] + ldrh r0, [r5, 0x34] + subs r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + cmp r0, 0 + bgt _080DE0F6 + ldr r4, _080DE0EC + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] +_080DE0E2: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080DE0F6 + .align 2, 0 +_080DE0EC: .4byte gUnknown_0202F7C9 +_080DE0F0: + adds r0, r5, 0 + bl move_anim_8074EE0 +_080DE0F6: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80DDFE8 + + thumb_func_start sub_80DE0FC +sub_80DE0FC: @ 80DE0FC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r0, _080DE110 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DE110: .4byte sub_80DE114 + thumb_func_end sub_80DE0FC + + thumb_func_start sub_80DE114 +sub_80DE114: @ 80DE114 + push {r4-r6,lr} + adds r3, r0, 0 + movs r5, 0 + movs r6, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080DE1AA + adds r1, r3, 0 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x4 + ands r0, r2 + adds r4, r1, 0 + cmp r0, 0 + bne _080DE13E + movs r0, 0x4 + orrs r0, r2 + strb r0, [r4] +_080DE13E: + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _080DE14E + cmp r0, 0x1 + beq _080DE158 + movs r6, 0x1 + b _080DE162 +_080DE14E: + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0x2 + bne _080DE162 + b _080DE166 +_080DE158: + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0x4 + bne _080DE162 + movs r5, 0x1 +_080DE162: + cmp r5, 0 + beq _080DE198 +_080DE166: + ldrb r2, [r4] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + movs r1, 0 + strh r0, [r3, 0x32] + strh r1, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080DE1AA + strh r1, [r3, 0x32] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + b _080DE1AA +_080DE198: + cmp r6, 0 + beq _080DE1A4 + adds r0, r3, 0 + bl move_anim_8072740 + b _080DE1AA +_080DE1A4: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] +_080DE1AA: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80DE114 + + thumb_func_start sub_80DE1B0 +sub_80DE1B0: @ 80DE1B0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080DE1DC + adds r5, r0, r1 + movs r0, 0x1 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + movs r6, 0 + movs r1, 0 + strh r0, [r5, 0x8] + lsls r0, 16 + cmp r0, 0 + bge _080DE1E0 + adds r0, r4, 0 + bl move_anim_task_del + b _080DE2C0 + .align 2, 0 +_080DE1DC: .4byte gTasks +_080DE1E0: + strh r1, [r5, 0xA] + movs r0, 0xF + strh r0, [r5, 0xC] + movs r0, 0x2 + strh r0, [r5, 0xE] + strh r1, [r5, 0x10] + ldr r1, _080DE244 + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _080DE248 + ldrh r0, [r5, 0xE] + lsls r0, 8 + ldrh r1, [r5, 0xC] + orrs r0, r1 + strh r0, [r2] + ldr r4, _080DE24C + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x50 + strh r1, [r0, 0x2E] + ldr r0, _080DE250 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DE258 + movs r2, 0x8 + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _080DE254 + strh r1, [r0, 0x30] + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x70 + b _080DE276 + .align 2, 0 +_080DE244: .4byte REG_BLDCNT +_080DE248: .4byte REG_BLDALPHA +_080DE24C: .4byte gSprites +_080DE250: .4byte gUnknown_0202F7C9 +_080DE254: .4byte 0x0000ff70 +_080DE258: + movs r2, 0x8 + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x90 + strh r1, [r0, 0x30] + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _080DE2C8 +_080DE276: + strh r1, [r0, 0x32] + ldr r4, _080DE2CC + movs r2, 0x8 + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r2, 0 + strh r2, [r0, 0x34] + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r2, [r0, 0x36] + movs r2, 0x8 + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _080DE2D0 + bl oamt_set_x3A_32 + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _080DE2D4 + str r1, [r0] + ldr r0, _080DE2D8 + str r0, [r5] +_080DE2C0: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DE2C8: .4byte 0x0000ff90 +_080DE2CC: .4byte gSprites +_080DE2D0: .4byte SpriteCallbackDummy +_080DE2D4: .4byte sub_8078394 +_080DE2D8: .4byte sub_80DE2DC + thumb_func_end sub_80DE1B0 + + thumb_func_start sub_80DE2DC +sub_80DE2DC: @ 80DE2DC + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080DE300 + adds r4, r0, r1 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080DE37C + cmp r0, 0x1 + bgt _080DE304 + cmp r0, 0 + beq _080DE30A + b _080DE3A6 + .align 2, 0 +_080DE300: .4byte gTasks +_080DE304: + cmp r0, 0x2 + beq _080DE3A0 + b _080DE3A6 +_080DE30A: + ldrh r1, [r4, 0xA] + adds r1, 0x1 + strh r1, [r4, 0xA] + movs r0, 0x3 + ands r0, r1 + strh r0, [r4, 0x12] + cmp r0, 0x1 + bne _080DE328 + ldrh r1, [r4, 0xC] + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080DE328 + subs r0, r1, 0x1 + strh r0, [r4, 0xC] +_080DE328: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0x3 + bne _080DE33E + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080DE33E + adds r0, r1, 0x1 + strh r0, [r4, 0xE] +_080DE33E: + ldr r2, _080DE374 + ldrh r0, [r4, 0xE] + lsls r0, 8 + ldrh r1, [r4, 0xC] + orrs r0, r1 + strh r0, [r2] + ldr r1, [r4, 0xC] + movs r0, 0x80 + lsls r0, 13 + cmp r1, r0 + bne _080DE3A6 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x50 + ble _080DE3A6 + movs r2, 0x8 + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080DE378 + adds r0, r1 + bl obj_delete_but_dont_free_vram + movs r0, 0x1 + strh r0, [r4, 0x10] + b _080DE3A6 + .align 2, 0 +_080DE374: .4byte REG_BLDALPHA +_080DE378: .4byte gSprites +_080DE37C: + ldrh r0, [r4, 0x14] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x14] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080DE3A6 + ldr r0, _080DE39C + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + b _080DE3A6 + .align 2, 0 +_080DE39C: .4byte REG_BLDCNT +_080DE3A0: + adds r0, r2, 0 + bl move_anim_task_del +_080DE3A6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DE2DC + + thumb_func_start sub_80DE3AC +sub_80DE3AC: @ 80DE3AC + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r2, _080DE3CC + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x26] + ldr r2, _080DE3D0 + str r2, [r1] + bl _call_via_r2 + pop {r0} + bx r0 + .align 2, 0 +_080DE3CC: .4byte gTasks +_080DE3D0: .4byte sub_80DE3D4 + thumb_func_end sub_80DE3AC + + thumb_func_start sub_80DE3D4 +sub_80DE3D4: @ 80DE3D4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080DE40C + adds r5, r0, r1 + ldr r0, _080DE410 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r6, r0, 24 + movs r1, 0x26 + ldrsh r0, [r5, r1] + cmp r0, 0x4 + bls _080DE400 + b _080DE604 +_080DE400: + lsls r0, 2 + ldr r1, _080DE414 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DE40C: .4byte gTasks +_080DE410: .4byte gUnknown_0202F7C9 +_080DE414: .4byte _080DE418 + .align 2, 0 +_080DE418: + .4byte _080DE42C + .4byte _080DE500 + .4byte _080DE544 + .4byte _080DE5AC + .4byte _080DE5E0 +_080DE42C: + ldr r7, _080DE460 + adds r0, r7, 0 + bl AllocSpritePalette + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + mov r8, r2 + strh r0, [r5, 0x24] + cmp r0, 0xFF + beq _080DE456 + movs r0, 0x1 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + strh r0, [r5, 0x8] + lsls r0, 16 + cmp r0, 0 + bge _080DE464 + adds r0, r7, 0 + bl FreeSpritePaletteByTag +_080DE456: + adds r0, r4, 0 + bl move_anim_task_del + b _080DE60A + .align 2, 0 +_080DE460: .4byte 0x00002771 +_080DE464: + ldr r4, _080DE4E4 + movs r3, 0x8 + ldrsh r0, [r5, r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r2, [r5, 0x24] + lsls r2, 4 + ldrb r3, [r1, 0x5] + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] + movs r1, 0x8 + ldrsh r0, [r5, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + movs r2, 0x8 + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + mov r3, r8 + strh r3, [r5, 0xA] + strh r3, [r5, 0xC] + movs r0, 0x10 + strh r0, [r5, 0xE] + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + movs r0, 0x22 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + lsls r0, 4 + strh r0, [r5, 0x10] + cmp r6, 0x1 + bne _080DE4EC + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080DE4E8 + b _080DE4F4 + .align 2, 0 +_080DE4E4: .4byte gSprites +_080DE4E8: .4byte 0x0000fdff +_080DE4EC: + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080DE4FC +_080DE4F4: + ands r0, r1 + strh r0, [r2] + b _080DE604 + .align 2, 0 +_080DE4FC: .4byte 0x0000fbff +_080DE500: + movs r1, 0x24 + ldrsh r0, [r5, r1] + adds r0, 0x10 + lsls r0, 4 + strh r0, [r5, 0x24] + movs r2, 0x10 + ldrsh r0, [r5, r2] + lsls r0, 1 + ldr r1, _080DE534 + adds r0, r1 + movs r3, 0x24 + ldrsh r1, [r5, r3] + lsls r1, 1 + ldr r2, _080DE538 + adds r1, r2 + ldr r2, _080DE53C + bl CpuSet + ldrh r0, [r5, 0x10] + ldr r3, _080DE540 + movs r1, 0x10 + movs r2, 0xA + bl BlendPalette + b _080DE604 + .align 2, 0 +_080DE534: .4byte gPlttBufferUnfaded +_080DE538: .4byte gPlttBufferFaded +_080DE53C: .4byte REG_BG0CNT +_080DE540: .4byte 0x00003c0d +_080DE544: + ldr r2, _080DE580 + movs r0, 0x22 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + subs r1, 0x20 + lsls r1, 16 + lsrs r2, r1, 16 + cmp r1, 0 + bge _080DE564 + movs r2, 0 +_080DE564: + cmp r6, 0x1 + bne _080DE584 + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, r2, 0 + adds r1, 0x40 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + str r2, [sp] + movs r2, 0x4 + str r2, [sp, 0x4] + str r6, [sp, 0x8] + b _080DE59C + .align 2, 0 +_080DE580: .4byte gSprites +_080DE584: + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, r2, 0 + adds r1, 0x40 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + str r2, [sp] + movs r2, 0x8 + str r2, [sp, 0x4] + movs r2, 0x1 + str r2, [sp, 0x8] +_080DE59C: + movs r2, 0x2 + movs r3, 0x6 + bl sub_8089944 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x1C] + b _080DE604 +_080DE5AC: + cmp r6, 0x1 + bne _080DE5C0 + ldr r1, _080DE5B8 + ldr r2, _080DE5BC + adds r0, r2, 0 + b _080DE5C6 + .align 2, 0 +_080DE5B8: .4byte REG_BLDCNT +_080DE5BC: .4byte 0x00003f42 +_080DE5C0: + ldr r1, _080DE5D4 + ldr r3, _080DE5D8 + adds r0, r3, 0 +_080DE5C6: + strh r0, [r1] + ldr r1, _080DE5DC + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + b _080DE604 + .align 2, 0 +_080DE5D4: .4byte REG_BLDCNT +_080DE5D8: .4byte 0x00003f44 +_080DE5DC: .4byte REG_BLDALPHA +_080DE5E0: + cmp r6, 0x1 + bne _080DE5F0 + movs r0, 0x80 + lsls r0, 19 + ldrh r1, [r0] + movs r3, 0x80 + lsls r3, 2 + b _080DE5FA +_080DE5F0: + movs r0, 0x80 + lsls r0, 19 + ldrh r1, [r0] + movs r3, 0x80 + lsls r3, 3 +_080DE5FA: + adds r2, r3, 0 + orrs r1, r2 + strh r1, [r0] + ldr r0, _080DE618 + str r0, [r5] +_080DE604: + ldrh r0, [r5, 0x26] + adds r0, 0x1 + strh r0, [r5, 0x26] +_080DE60A: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DE618: .4byte sub_80DE61C + thumb_func_end sub_80DE3D4 + + thumb_func_start sub_80DE61C +sub_80DE61C: @ 80DE61C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080DE6A0 + adds r4, r0, r1 + ldrh r1, [r4, 0xA] + adds r1, 0x1 + strh r1, [r4, 0xA] + movs r0, 0x1 + ands r0, r1 + strh r0, [r4, 0x12] + cmp r0, 0 + bne _080DE654 + ldr r1, _080DE6A4 + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x12 + bl __divsi3 + strh r0, [r4, 0xC] +_080DE654: + movs r2, 0x12 + ldrsh r0, [r4, r2] + cmp r0, 0x1 + bne _080DE676 + ldr r1, _080DE6A4 + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x12 + bl __divsi3 + movs r1, 0x10 + subs r1, r0 + strh r1, [r4, 0xE] +_080DE676: + ldr r2, _080DE6A8 + ldrh r0, [r4, 0xE] + lsls r0, 8 + ldrh r1, [r4, 0xC] + orrs r0, r1 + strh r0, [r2] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0x80 + bne _080DE698 + movs r0, 0 + strh r0, [r4, 0x26] + ldr r1, _080DE6AC + str r1, [r4] + adds r0, r5, 0 + bl _call_via_r1 +_080DE698: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DE6A0: .4byte gTasks +_080DE6A4: .4byte gSineTable +_080DE6A8: .4byte REG_BLDALPHA +_080DE6AC: .4byte sub_80DE6B0 + thumb_func_end sub_80DE61C + + thumb_func_start sub_80DE6B0 +sub_80DE6B0: @ 80DE6B0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080DE6E0 + adds r4, r0, r1 + ldr r0, _080DE6E4 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r6, r0, 24 + movs r1, 0x26 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080DE72C + cmp r0, 0x1 + bgt _080DE6E8 + cmp r0, 0 + beq _080DE6EE + b _080DE7AA + .align 2, 0 +_080DE6E0: .4byte gTasks +_080DE6E4: .4byte gUnknown_0202F7C9 +_080DE6E8: + cmp r0, 0x2 + beq _080DE740 + b _080DE7AA +_080DE6EE: + ldr r1, _080DE710 + movs r0, 0x3 + strb r0, [r1, 0x15] + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x24] + cmp r6, 0x1 + bne _080DE718 + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080DE714 + b _080DE720 + .align 2, 0 +_080DE710: .4byte gUnknown_03004DC0 +_080DE714: .4byte 0x0000fdff +_080DE718: + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080DE728 +_080DE720: + ands r0, r1 + strh r0, [r2] + b _080DE7AA + .align 2, 0 +_080DE728: .4byte 0x0000fbff +_080DE72C: + ldrh r0, [r4, 0x10] + ldr r3, _080DE73C + movs r1, 0x10 + movs r2, 0 + bl BlendPalette + b _080DE7AA + .align 2, 0 +_080DE73C: .4byte 0x00003c0d +_080DE740: + ldr r3, _080DE788 + movs r0, 0x24 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + bl obj_delete_but_dont_free_vram + ldr r0, _080DE78C + bl FreeSpritePaletteByTag + ldr r0, _080DE790 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + cmp r6, 0x1 + bne _080DE794 + subs r0, 0x52 + ldrh r1, [r0] + movs r3, 0x80 + lsls r3, 2 + b _080DE79E + .align 2, 0 +_080DE788: .4byte gSprites +_080DE78C: .4byte 0x00002771 +_080DE790: .4byte REG_BLDCNT +_080DE794: + movs r0, 0x80 + lsls r0, 19 + ldrh r1, [r0] + movs r3, 0x80 + lsls r3, 3 +_080DE79E: + adds r2, r3, 0 + orrs r1, r2 + strh r1, [r0] + adds r0, r5, 0 + bl move_anim_task_del +_080DE7AA: + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80DE6B0 + + thumb_func_start sub_80DE7B8 +sub_80DE7B8: @ 80DE7B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r7, r0, 0 + ldr r0, _080DE7F4 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080DE800 + ldr r4, _080DE7F8 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 8 + movs r2, 0xE0 + lsls r2, 13 + adds r0, r2 + lsrs r5, r0, 16 + ldr r4, _080DE7FC + b _080DE824 + .align 2, 0 +_080DE7F4: .4byte gUnknown_03004B00 +_080DE7F8: .4byte gUnknown_0202F7C8 +_080DE7FC: .4byte gUnknown_0202F7C9 +_080DE800: + ldr r4, _080DE8C8 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 8 + movs r2, 0xE0 + lsls r2, 13 + adds r0, r2 + lsrs r5, r0, 16 + ldr r4, _080DE8CC +_080DE824: + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 8 + movs r1, 0xE0 + lsls r1, 13 + adds r0, r1 + lsrs r0, 16 + mov r9, r0 + mov r8, r5 + mov r2, r9 + subs r4, r2, r5 + lsls r4, 16 + lsrs r4, 16 + lsls r0, r6, 4 + strh r0, [r7, 0x2E] + lsls r0, r5, 4 + strh r0, [r7, 0x30] + mov r1, r10 + subs r0, r1, r6 + lsls r0, 4 + ldr r5, _080DE8D0 + movs r2, 0x2 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r7, 0x32] + lsls r4, 16 + asrs r4, 12 + movs r0, 0x2 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl __divsi3 + strh r0, [r7, 0x34] + ldrh r0, [r5, 0x2] + strh r0, [r7, 0x36] + mov r1, r10 + strh r1, [r7, 0x38] + mov r2, r9 + strh r2, [r7, 0x3A] + movs r1, 0x36 + ldrsh r0, [r7, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r7, 0x3C] + ldrb r1, [r7, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r7, 0x5] + strh r6, [r7, 0x20] + mov r2, r8 + strh r2, [r7, 0x22] + ldr r0, _080DE8D4 + str r0, [r7, 0x1C] + adds r2, r7, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DE8C8: .4byte gUnknown_0202F7C9 +_080DE8CC: .4byte gUnknown_0202F7C8 +_080DE8D0: .4byte gUnknown_03004B00 +_080DE8D4: .4byte sub_80DE8D8 + thumb_func_end sub_80DE7B8 + + thumb_func_start sub_80DE8D8 +sub_80DE8D8: @ 80DE8D8 + push {r4,lr} + adds r2, r0, 0 + ldrh r3, [r2, 0x36] + movs r1, 0x36 + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _080DE910 + ldrh r0, [r2, 0x32] + ldrh r4, [r2, 0x2E] + adds r0, r4 + strh r0, [r2, 0x2E] + ldrh r1, [r2, 0x34] + ldrh r4, [r2, 0x30] + adds r1, r4 + strh r1, [r2, 0x30] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r2, 0x22] + subs r0, r3, 0x1 + strh r0, [r2, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080DE910 + strh r0, [r2, 0x2E] +_080DE910: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DE8D8 + + thumb_func_start sub_80DE918 +sub_80DE918: @ 80DE918 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080DEA68 + adds r1, r0 + str r1, [sp] + ldr r1, _080DEA6C + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0x80 + lsls r3, 5 + adds r0, r3, 0 + strh r0, [r1] + movs r0, 0 + ldr r1, [sp] + strh r0, [r1, 0x12] + strh r0, [r1, 0x14] + strh r0, [r1, 0x16] + strh r0, [r1, 0x18] + movs r0, 0x10 + strh r0, [r1, 0x1A] + ldr r2, _080DEA70 + ldrh r0, [r2] + strh r0, [r1, 0x1C] + ldr r4, _080DEA74 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_807A100 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DE988 + b _080DEA88 +_080DE988: + movs r4, 0 +_080DE98A: + lsls r1, r4, 16 + asrs r3, r1, 16 + ldr r0, _080DEA74 + ldrb r2, [r0] + str r1, [sp, 0x10] + cmp r3, r2 + beq _080DEA56 + movs r0, 0x2 + eors r2, r0 + cmp r3, r2 + beq _080DEA56 + lsls r0, r4, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080DEA56 + ldr r6, [sp, 0x4] + ldr r3, [sp, 0x8] + lsls r0, r3, 16 + asrs r7, r0, 16 + ldr r0, _080DEA78 + adds r1, r6, 0 + adds r2, r7, 0 + movs r3, 0x37 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x40 + beq _080DEA56 + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + adds r0, r4, 0 + movs r1, 0x3 + bl sub_807A100 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + mov r0, r8 + lsls r5, r0, 4 + add r5, r8 + lsls r5, 2 + ldr r1, _080DEA7C + adds r4, r5, r1 + lsls r0, r6, 4 + strh r0, [r4, 0x2E] + lsls r0, r7, 4 + strh r0, [r4, 0x30] + mov r2, r10 + subs r0, r2, r6 + lsls r0, 4 + ldr r3, _080DEA70 + movs r2, 0x2 + ldrsh r1, [r3, r2] + bl __divsi3 + strh r0, [r4, 0x32] + mov r3, r9 + lsls r0, r3, 16 + asrs r0, 16 + subs r0, r7 + lsls r0, 4 + ldr r2, _080DEA70 + movs r3, 0x2 + ldrsh r1, [r2, r3] + bl __divsi3 + strh r0, [r4, 0x34] + ldr r1, _080DEA70 + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x36] + mov r2, r10 + strh r2, [r4, 0x38] + mov r3, r9 + strh r3, [r4, 0x3A] + ldr r0, _080DEA80 + adds r5, r0 + ldr r0, _080DEA84 + str r0, [r5] + ldr r2, [sp] + movs r3, 0x20 + ldrsh r1, [r2, r3] + adds r1, 0xD + lsls r1, 1 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1 + mov r1, r8 + strh r1, [r0] + ldrh r0, [r2, 0x20] + adds r0, 0x1 + strh r0, [r2, 0x20] +_080DEA56: + ldr r2, [sp, 0x10] + movs r3, 0x80 + lsls r3, 9 + adds r0, r2, r3 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080DE98A + b _080DEB0C + .align 2, 0 +_080DEA68: .4byte gTasks +_080DEA6C: .4byte REG_BLDCNT +_080DEA70: .4byte gUnknown_03004B00 +_080DEA74: .4byte gUnknown_0202F7C8 +_080DEA78: .4byte gSpriteTemplate_83DAF08 +_080DEA7C: .4byte gSprites +_080DEA80: .4byte gSprites + 0x1C +_080DEA84: .4byte sub_80DE8D8 +_080DEA88: + ldr r0, _080DEB24 + ldr r7, [sp, 0x4] + ldr r2, [sp, 0x8] + lsls r1, r2, 16 + asrs r1, 16 + str r1, [sp, 0xC] + adds r1, r7, 0 + ldr r2, [sp, 0xC] + movs r3, 0x37 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x40 + beq _080DEB0C + movs r3, 0x30 + mov r10, r3 + movs r0, 0x28 + mov r9, r0 + ldr r6, _080DEB28 + mov r1, r8 + lsls r5, r1, 4 + add r5, r8 + lsls r5, 2 + adds r4, r5, r6 + lsls r0, r7, 4 + strh r0, [r4, 0x2E] + ldr r2, [sp, 0xC] + lsls r0, r2, 4 + strh r0, [r4, 0x30] + subs r0, r3, r7 + lsls r0, 4 + ldr r3, _080DEB2C + movs r2, 0x2 + ldrsh r1, [r3, r2] + bl __divsi3 + strh r0, [r4, 0x32] + mov r3, r9 + ldr r1, [sp, 0xC] + subs r0, r3, r1 + lsls r0, 4 + ldr r2, _080DEB2C + movs r3, 0x2 + ldrsh r1, [r2, r3] + bl __divsi3 + strh r0, [r4, 0x34] + ldr r1, _080DEB2C + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x36] + mov r2, r10 + strh r2, [r4, 0x38] + mov r3, r9 + strh r3, [r4, 0x3A] + adds r6, 0x1C + adds r5, r6 + ldr r0, _080DEB30 + str r0, [r5] + mov r1, r8 + ldr r0, [sp] + strh r1, [r0, 0x22] + movs r0, 0x1 + ldr r2, [sp] + strh r0, [r2, 0x20] +_080DEB0C: + ldr r0, _080DEB34 + ldr r3, [sp] + str r0, [r3] + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DEB24: .4byte gSpriteTemplate_83DAF08 +_080DEB28: .4byte gSprites +_080DEB2C: .4byte gUnknown_03004B00 +_080DEB30: .4byte sub_80DE8D8 +_080DEB34: .4byte sub_80DEB38 + thumb_func_end sub_80DE918 + + thumb_func_start sub_80DEB38 +sub_80DEB38: @ 80DEB38 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080DEB5C + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080DEBEE + cmp r1, 0x1 + bgt _080DEB60 + cmp r1, 0 + beq _080DEB6E + b _080DECA4 + .align 2, 0 +_080DEB5C: .4byte gTasks +_080DEB60: + cmp r1, 0x2 + bne _080DEB66 + b _080DEC80 +_080DEB66: + cmp r1, 0x3 + bne _080DEB6C + b _080DEC94 +_080DEB6C: + b _080DECA4 +_080DEB6E: + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080DEBCE + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080DEBCE + strh r1, [r4, 0x12] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DEBA4 + ldrh r1, [r4, 0x18] + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080DEBB2 + adds r0, r1, 0x1 + strh r0, [r4, 0x18] + b _080DEBB2 +_080DEBA4: + ldrh r1, [r4, 0x1A] + movs r2, 0x1A + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080DEBB2 + subs r0, r1, 0x1 + strh r0, [r4, 0x1A] +_080DEBB2: + ldr r2, _080DEBE0 + ldrh r0, [r4, 0x1A] + lsls r0, 8 + ldrh r1, [r4, 0x18] + orrs r0, r1 + strh r0, [r2] + movs r1, 0x16 + ldrsh r0, [r4, r1] + cmp r0, 0x17 + ble _080DEBCE + movs r0, 0 + strh r0, [r4, 0x16] + movs r0, 0x1 + strh r0, [r4, 0x14] +_080DEBCE: + ldrh r1, [r4, 0x1C] + movs r2, 0x1C + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080DEBE4 + subs r0, r1, 0x1 + strh r0, [r4, 0x1C] + b _080DECA4 + .align 2, 0 +_080DEBE0: .4byte REG_BLDALPHA +_080DEBE4: + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080DECA4 + b _080DEC8C +_080DEBEE: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080DECA4 + movs r0, 0 + strh r0, [r4, 0x12] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] + ands r0, r1 + lsls r0, 16 + cmp r0, 0 + beq _080DEC1E + ldrh r1, [r4, 0x18] + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080DEC2C + subs r0, r1, 0x1 + strh r0, [r4, 0x18] + b _080DEC2C +_080DEC1E: + ldrh r1, [r4, 0x1A] + movs r2, 0x1A + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080DEC2C + adds r0, r1, 0x1 + strh r0, [r4, 0x1A] +_080DEC2C: + ldr r2, _080DEC48 + ldrh r0, [r4, 0x1A] + lsls r0, 8 + ldrh r1, [r4, 0x18] + orrs r0, r1 + strh r0, [r2] + ldr r1, [r4, 0x18] + movs r0, 0x80 + lsls r0, 13 + cmp r1, r0 + bne _080DECA4 + movs r5, 0 + b _080DEC70 + .align 2, 0 +_080DEC48: .4byte REG_BLDALPHA +_080DEC4C: + adds r1, r5, 0 + adds r1, 0xD + lsls r1, 1 + adds r0, r4, 0 + adds r0, 0x8 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080DEC7C + adds r0, r1 + bl DestroySprite + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080DEC70: + movs r1, 0x20 + ldrsh r0, [r4, r1] + cmp r5, r0 + blt _080DEC4C + b _080DEC8C + .align 2, 0 +_080DEC7C: .4byte gSprites +_080DEC80: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + cmp r0, 0 + ble _080DECA4 +_080DEC8C: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080DECA4 +_080DEC94: + ldr r0, _080DECAC + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, r2, 0 + bl move_anim_task_del +_080DECA4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DECAC: .4byte REG_BLDCNT + thumb_func_end sub_80DEB38 + + thumb_func_start sub_80DECB0 +sub_80DECB0: @ 80DECB0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _080DECF8 + movs r1, 0 + strh r1, [r0] + ldr r0, _080DECFC + strh r1, [r0] + ldr r1, _080DED00 + ldr r2, _080DED04 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + subs r2, 0x20 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x6 + movs r0, 0xC8 + strh r0, [r1] + adds r1, 0x4 + movs r0, 0x10 + strh r0, [r1] + ldr r0, _080DED08 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DECF4 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DED0C +_080DECF4: + movs r6, 0x28 + b _080DED0E + .align 2, 0 +_080DECF8: .4byte gUnknown_030042C4 +_080DECFC: .4byte gUnknown_03004240 +_080DED00: .4byte REG_WININ +_080DED04: .4byte 0x00003f3f +_080DED08: .4byte gUnknown_0202F7C8 +_080DED0C: + movs r6, 0xC8 +_080DED0E: + ldr r1, _080DED4C + lsls r3, r6, 16 + asrs r2, r3, 16 + lsls r0, r2, 8 + orrs r0, r2 + strh r0, [r1] + ldr r1, _080DED50 + movs r5, 0x28 + ldr r0, _080DED54 + strh r0, [r1] + lsrs r3, 16 + movs r1, 0xF0 + subs r1, r2 + movs r4, 0x48 + ldr r2, _080DED58 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r2 + strh r3, [r0, 0xA] + strh r1, [r0, 0xC] + strh r5, [r0, 0xE] + strh r4, [r0, 0x10] + strh r6, [r0, 0x12] + strh r5, [r0, 0x14] + ldr r1, _080DED5C + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DED4C: .4byte gUnknown_030042C4 +_080DED50: .4byte gUnknown_03004240 +_080DED54: .4byte 0x00002828 +_080DED58: .4byte gTasks +_080DED5C: .4byte sub_80DED60 + thumb_func_end sub_80DECB0 + + thumb_func_start sub_80DED60 +sub_80DED60: @ 80DED60 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080DEE80 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r1, [r4, 0x8] + adds r0, r1, 0x1 + strh r0, [r4, 0x8] + ldrh r5, [r4, 0xA] + ldrh r7, [r4, 0xC] + ldrh r0, [r4, 0xE] + mov r10, r0 + ldrh r2, [r4, 0x10] + str r2, [sp, 0xC] + ldrh r0, [r4, 0x12] + ldrh r2, [r4, 0x14] + mov r8, r2 + lsls r1, 16 + asrs r6, r1, 16 + cmp r6, 0xF + ble _080DED9C + b _080DEE8C +_080DED9C: + lsls r0, 16 + asrs r0, 16 + bl __floatsidf + str r0, [sp, 0x10] + str r1, [sp, 0x14] + lsls r0, r5, 16 + asrs r0, 16 + bl __floatsidf + ldr r2, _080DEE84 + ldr r3, _080DEE88 + bl __muldf3 + adds r5, r1, 0 + adds r4, r0, 0 + adds r0, r6, 0 + bl __floatsidf + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + adds r1, r5, 0 + adds r0, r4, 0 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl __muldf3 + adds r3, r1, 0 + adds r2, r0, 0 + ldr r0, [sp, 0x10] + ldr r1, [sp, 0x14] + bl __subdf3 + bl __fixunsdfsi + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + lsls r0, r7, 16 + asrs r0, 16 + bl __floatsidf + ldr r2, _080DEE84 + ldr r3, _080DEE88 + bl __muldf3 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl __muldf3 + adds r3, r1, 0 + adds r2, r0, 0 + ldr r0, [sp, 0x10] + ldr r1, [sp, 0x14] + bl __adddf3 + bl __fixunsdfsi + lsls r0, 16 + lsrs r7, r0, 16 + mov r1, r8 + lsls r0, r1, 16 + asrs r0, 16 + bl __floatsidf + adds r5, r1, 0 + adds r4, r0, 0 + mov r2, r10 + lsls r0, r2, 16 + asrs r0, 16 + bl __floatsidf + ldr r2, _080DEE84 + ldr r3, _080DEE88 + bl __muldf3 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl __muldf3 + adds r3, r1, 0 + adds r2, r0, 0 + adds r1, r5, 0 + adds r0, r4, 0 + bl __subdf3 + bl __fixunsdfsi + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, [sp, 0xC] + lsls r0, r1, 16 + asrs r0, 16 + bl __floatsidf + ldr r2, _080DEE84 + ldr r3, _080DEE88 + bl __muldf3 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl __muldf3 + adds r3, r1, 0 + adds r2, r0, 0 + adds r1, r5, 0 + adds r0, r4, 0 + bl __adddf3 + bl __fixunsdfsi + lsls r0, 16 + lsrs r5, r0, 16 + b _080DEEBA + .align 2, 0 +_080DEE80: .4byte gTasks +_080DEE84: .4byte 0x3fb00000 +_080DEE88: .4byte 0x00000000 +_080DEE8C: + movs r2, 0 + mov r9, r2 + movs r7, 0xF0 + movs r6, 0 + movs r5, 0x70 + str r6, [sp] + str r6, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r3, 0 + bl sub_80791A8 + lsls r0, 16 + lsrs r0, 16 + str r6, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _080DEEDC + str r0, [r4] +_080DEEBA: + ldr r1, _080DEEE0 + mov r2, r9 + lsls r0, r2, 8 + orrs r7, r0 + strh r7, [r1] + ldr r1, _080DEEE4 + lsls r0, r6, 8 + orrs r5, r0 + strh r5, [r1] + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DEEDC: .4byte sub_80DEEE8 +_080DEEE0: .4byte gUnknown_030042C4 +_080DEEE4: .4byte gUnknown_03004240 + thumb_func_end sub_80DED60 + + thumb_func_start sub_80DEEE8 +sub_80DEEE8: @ 80DEEE8 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _080DEF28 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080DEF20 + ldr r0, _080DEF2C + strh r2, [r0] + ldr r0, _080DEF30 + strh r2, [r0] + ldr r0, _080DEF34 + ldr r4, _080DEF38 + adds r1, r4, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x6 + strh r2, [r0] + adds r0, 0x4 + strh r2, [r0] + adds r0, r3, 0 + bl move_anim_task_del +_080DEF20: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DEF28: .4byte gPaletteFade +_080DEF2C: .4byte gUnknown_030042C4 +_080DEF30: .4byte gUnknown_03004240 +_080DEF34: .4byte REG_WININ +_080DEF38: .4byte 0x00003f3f + thumb_func_end sub_80DEEE8 + + thumb_func_start sub_80DEF3C +sub_80DEF3C: @ 80DEF3C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080DEF68 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DEF70 + movs r2, 0x18 + ldr r3, _080DEF6C + ldrb r0, [r4, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + strb r1, [r4, 0x3] + b _080DEF74 + .align 2, 0 +_080DEF68: .4byte gUnknown_0202F7C8 +_080DEF6C: .4byte 0x0000fffe +_080DEF70: + ldr r2, _080DEF90 + movs r3, 0x2 +_080DEF74: + lsls r0, r2, 16 + asrs r0, 16 + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + strh r3, [r4, 0x30] + movs r0, 0x3C + strh r0, [r4, 0x2E] + ldr r0, _080DEF94 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DEF90: .4byte 0x0000ffe8 +_080DEF94: .4byte sub_80DEF98 + thumb_func_end sub_80DEF3C + + thumb_func_start sub_80DEF98 +sub_80DEF98: @ 80DEF98 + push {r4,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x2E] + movs r2, 0x2E + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _080DEFAA + subs r0, r1, 0x1 + b _080DF00E +_080DEFAA: + ldrh r0, [r3, 0x30] + ldrh r4, [r3, 0x24] + adds r1, r0, r4 + strh r1, [r3, 0x24] + adds r0, r1, 0x7 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xE + bls _080DF010 + ldrh r0, [r3, 0x20] + adds r0, r1 + strh r0, [r3, 0x20] + movs r0, 0 + strh r0, [r3, 0x24] + ldrh r2, [r3, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x8 + ldr r4, _080DEFFC + adds r0, r4, 0 + ands r1, r0 + ldr r0, _080DF000 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080DF00C + movs r0, 0x1E + strh r0, [r3, 0x2E] + ldr r0, _080DF004 + str r0, [r3, 0x1C] + ldr r1, _080DF008 + adds r0, r3, 0 + bl oamt_set_x3A_32 + b _080DF010 + .align 2, 0 +_080DEFFC: .4byte 0x000003ff +_080DF000: .4byte 0xfffffc00 +_080DF004: .4byte sub_80782D8 +_080DF008: .4byte sub_80DF018 +_080DF00C: + movs r0, 0x28 +_080DF00E: + strh r0, [r3, 0x2E] +_080DF010: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DEF98 + + thumb_func_start sub_80DF018 +sub_80DF018: @ 80DF018 + push {r4,lr} + adds r3, r0, 0 + movs r0, 0x2E + ldrsh r2, [r3, r0] + cmp r2, 0 + bne _080DF044 + ldr r1, _080DF040 + movs r4, 0xFD + lsls r4, 6 + adds r0, r4, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x10 + strh r0, [r1] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + strh r2, [r3, 0x30] + strh r2, [r3, 0x32] + b _080DF082 + .align 2, 0 +_080DF040: .4byte REG_BLDCNT +_080DF044: + ldrh r1, [r3, 0x30] + movs r2, 0x30 + ldrsh r0, [r3, r2] + cmp r0, 0x1 + bgt _080DF054 + adds r0, r1, 0x1 + strh r0, [r3, 0x30] + b _080DF082 +_080DF054: + movs r0, 0 + strh r0, [r3, 0x30] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + ldr r2, _080DF088 + movs r1, 0x10 + subs r1, r0 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r4, 0x32 + ldrsh r0, [r3, r4] + cmp r0, 0x10 + bne _080DF082 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080DF08C + str r0, [r3, 0x1C] +_080DF082: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DF088: .4byte REG_BLDALPHA +_080DF08C: .4byte sub_80DF090 + thumb_func_end sub_80DF018 + + thumb_func_start sub_80DF090 +sub_80DF090: @ 80DF090 + push {lr} + ldr r1, _080DF0AC + movs r2, 0 + strh r2, [r1] + adds r1, 0x2 + strh r2, [r1] + ldr r1, _080DF0B0 + strh r2, [r1] + ldr r1, _080DF0B4 + strh r2, [r1] + bl move_anim_8072740 + pop {r0} + bx r0 + .align 2, 0 +_080DF0AC: .4byte REG_BLDCNT +_080DF0B0: .4byte gUnknown_030042C4 +_080DF0B4: .4byte gUnknown_03004240 + thumb_func_end sub_80DF090 + + thumb_func_start sub_80DF0B8 +sub_80DF0B8: @ 80DF0B8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0xC + bl Sin + strh r0, [r4, 0x24] + ldr r0, _080DF120 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DF0DC + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] +_080DF0DC: + ldrh r0, [r4, 0x2E] + adds r0, 0x6 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + ldrh r1, [r4, 0x30] + adds r0, r1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080DF12C + ldr r0, _080DF124 + strh r0, [r4, 0x3A] + ldr r1, _080DF128 + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r4, 0x3A] + strh r0, [r1] + b _080DF17E + .align 2, 0 +_080DF120: .4byte gUnknown_0202F7C8 +_080DF124: .4byte 0x0000050b +_080DF128: .4byte REG_BLDCNT +_080DF12C: + cmp r0, 0x1E + ble _080DF17E + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x3A] + lsls r0, r1, 16 + asrs r0, 24 + lsls r0, 16 + movs r2, 0xFF + ands r2, r1 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r3, r0, 16 + cmp r3, 0x10 + bls _080DF150 + movs r3, 0x10 +_080DF150: + subs r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r0, 0 + bge _080DF15C + movs r2, 0 +_080DF15C: + ldr r1, _080DF184 + lsls r0, r3, 8 + orrs r0, r2 + strh r0, [r1] + strh r0, [r4, 0x3A] + cmp r3, 0x10 + bne _080DF17E + cmp r2, 0 + bne _080DF17E + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080DF188 + str r0, [r4, 0x1C] +_080DF17E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DF184: .4byte REG_BLDALPHA +_080DF188: .4byte sub_80DF18C + thumb_func_end sub_80DF0B8 + + thumb_func_start sub_80DF18C +sub_80DF18C: @ 80DF18C + push {lr} + ldr r1, _080DF1A0 + movs r2, 0 + strh r2, [r1] + adds r1, 0x2 + strh r2, [r1] + bl move_anim_8072740 + pop {r0} + bx r0 + .align 2, 0 +_080DF1A0: .4byte REG_BLDCNT + thumb_func_end sub_80DF18C + + thumb_func_start sub_80DF1A4 +sub_80DF1A4: @ 80DF1A4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080DF23C + adds r4, r0 + movs r6, 0 + strh r6, [r4, 0x8] + movs r0, 0x10 + mov r8, r0 + mov r2, r8 + strh r2, [r4, 0xA] + ldr r5, _080DF240 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1A] + ldrb r0, [r5] + bl sub_8077FC0 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_807A100 + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + asrs r1, 1 + adds r1, 0x8 + strh r1, [r4, 0x1E] + strh r6, [r4, 0x16] + ldrb r0, [r5] + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x12] + ldrb r0, [r5] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x2 + strh r0, [r4, 0x14] + strh r6, [r4, 0xE] + mov r0, r8 + strh r0, [r4, 0x10] + ldr r1, _080DF244 + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + strh r6, [r4, 0x18] + ldr r0, _080DF248 + str r0, [r4] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DF23C: .4byte gTasks +_080DF240: .4byte gUnknown_0202F7C8 +_080DF244: .4byte REG_BLDCNT +_080DF248: .4byte sub_80DF24C + thumb_func_end sub_80DF1A4 + + thumb_func_start sub_80DF24C +sub_80DF24C: @ 80DF24C + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _080DF270 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bls _080DF266 + b _080DF3CC +_080DF266: + lsls r0, 2 + ldr r1, _080DF274 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DF270: .4byte gTasks +_080DF274: .4byte _080DF278 + .align 2, 0 +_080DF278: + .4byte _080DF290 + .4byte _080DF300 + .4byte _080DF342 + .4byte _080DF356 + .4byte _080DF3AC + .4byte _080DF3BC +_080DF290: + movs r6, 0 +_080DF292: + movs r2, 0x1A + ldrsh r1, [r4, r2] + movs r0, 0x1C + ldrsh r2, [r4, r0] + ldrb r3, [r4, 0x14] + ldr r0, _080DF2F4 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080DF2E6 + ldr r1, _080DF2F8 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r5, r0, r1 + strh r7, [r5, 0x2E] + ldr r0, _080DF2FC + ldrb r0, [r0] + bl battle_side_get_owner + movs r1, 0 + lsls r0, 24 + cmp r0, 0 + bne _080DF2C8 + movs r1, 0x1 +_080DF2C8: + strh r1, [r5, 0x30] + movs r0, 0x2A + muls r0, r6 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r4, 0x1E] + strh r0, [r5, 0x34] + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 1 + strh r0, [r5, 0x38] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] +_080DF2E6: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _080DF292 + b _080DF3B4 + .align 2, 0 +_080DF2F4: .4byte gSpriteTemplate_83DAF80 +_080DF2F8: .4byte gSprites +_080DF2FC: .4byte gUnknown_0202F7C8 +_080DF300: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DF31E + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0xD + bgt _080DF32C + adds r0, r1, 0x1 + strh r0, [r4, 0xE] + b _080DF32C +_080DF31E: + ldrh r1, [r4, 0x10] + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r0, 0x4 + ble _080DF32C + subs r0, r1, 0x1 + strh r0, [r4, 0x10] +_080DF32C: + movs r1, 0xE + ldrsh r0, [r4, r1] + ldrh r3, [r4, 0xE] + ldrh r2, [r4, 0x10] + cmp r0, 0xE + bne _080DF39C + cmp r2, 0x4 + bne _080DF39C + movs r0, 0 + strh r0, [r4, 0xA] + b _080DF396 +_080DF342: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _080DF3CC + movs r0, 0 + strh r0, [r4, 0xA] + b _080DF3B4 +_080DF356: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DF374 + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080DF382 + subs r0, r1, 0x1 + strh r0, [r4, 0xE] + b _080DF382 +_080DF374: + ldrh r1, [r4, 0x10] + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080DF382 + adds r0, r1, 0x1 + strh r0, [r4, 0x10] +_080DF382: + movs r1, 0xE + ldrsh r0, [r4, r1] + ldrh r3, [r4, 0xE] + ldrh r2, [r4, 0x10] + cmp r0, 0 + bne _080DF39C + cmp r2, 0x10 + bne _080DF39C + movs r0, 0x1 + strh r0, [r4, 0x18] +_080DF396: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080DF39C: + ldr r1, _080DF3A8 + lsls r0, r2, 8 + orrs r0, r3 + strh r0, [r1] + b _080DF3CC + .align 2, 0 +_080DF3A8: .4byte REG_BLDALPHA +_080DF3AC: + movs r2, 0x16 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080DF3CC +_080DF3B4: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080DF3CC +_080DF3BC: + ldr r0, _080DF3D4 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, r7, 0 + bl move_anim_task_del +_080DF3CC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DF3D4: .4byte REG_BLDCNT + thumb_func_end sub_80DF24C + + thumb_func_start sub_80DF3D8 +sub_80DF3D8: @ 80DF3D8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080DF3EA + ldrh r0, [r4, 0x32] + adds r0, 0x2 + b _080DF3EE +_080DF3EA: + ldrh r0, [r4, 0x32] + subs r0, 0x2 +_080DF3EE: + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x32] + movs r0, 0xFF + ands r0, r1 + strh r0, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x32] + subs r0, 0x41 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7E + bhi _080DF430 + ldr r2, _080DF42C + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x12] + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + b _080DF444 + .align 2, 0 +_080DF42C: .4byte gTasks +_080DF430: + ldr r2, _080DF498 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x3 + ldrb r1, [r0, 0x12] + ands r1, r2 +_080DF444: + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + movs r1, 0x38 + ldrsh r0, [r4, r1] + lsls r0, 3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3A] + movs r2, 0x3A + ldrsh r0, [r4, r2] + movs r1, 0x7 + bl Sin + strh r0, [r4, 0x26] + ldr r2, _080DF498 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r1, r0, r2 + movs r2, 0x18 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080DF492 + ldrh r0, [r1, 0x16] + subs r0, 0x1 + strh r0, [r1, 0x16] + adds r0, r4, 0 + bl DestroySprite +_080DF492: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DF498: .4byte gTasks + thumb_func_end sub_80DF3D8 + + thumb_func_start sub_80DF49C +sub_80DF49C: @ 80DF49C + adds r3, r0, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r3] + ldr r2, _080DF4E0 + ldr r1, _080DF4E4 + ldrb r1, [r1] + adds r1, r2 + ldrb r1, [r1] + strh r1, [r0, 0x38] + movs r1, 0x80 + strh r1, [r0, 0x2E] + movs r1, 0xA + strh r1, [r0, 0x30] + ldr r2, _080DF4E8 + ldrh r1, [r2] + strh r1, [r0, 0x32] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0x34] + ldr r1, _080DF4EC + str r1, [r0, 0x1C] + ldr r2, _080DF4F0 + movs r3, 0x38 + ldrsh r1, [r0, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_080DF4E0: .4byte gUnknown_02024BE0 +_080DF4E4: .4byte gUnknown_0202F7C8 +_080DF4E8: .4byte gUnknown_03004B00 +_080DF4EC: .4byte sub_80DF4F4 +_080DF4F0: .4byte gSprites + thumb_func_end sub_80DF49C + + thumb_func_start sub_80DF4F4 +sub_80DF4F4: @ 80DF4F4 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x34] + movs r1, 0x34 + ldrsh r3, [r5, r1] + cmp r3, 0 + beq _080DF55C + subs r0, 0x1 + strh r0, [r5, 0x34] + movs r2, 0x2E + ldrsh r0, [r5, r2] + movs r2, 0x30 + ldrsh r1, [r5, r2] + bl Sin + ldr r4, _080DF554 + movs r1, 0x38 + ldrsh r2, [r5, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r0, [r1, 0x24] + movs r2, 0x2E + ldrsh r0, [r5, r2] + movs r2, 0x30 + ldrsh r1, [r5, r2] + bl Cos + movs r1, 0x38 + ldrsh r2, [r5, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r0, [r1, 0x26] + ldrh r0, [r5, 0x32] + ldrh r2, [r5, 0x2E] + adds r1, r0, r2 + strh r1, [r5, 0x2E] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080DF590 + ldr r2, _080DF558 + adds r0, r1, r2 + strh r0, [r5, 0x2E] + b _080DF590 + .align 2, 0 +_080DF554: .4byte gSprites +_080DF558: .4byte 0xffffff00 +_080DF55C: + ldr r2, _080DF598 + movs r0, 0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x24] + movs r0, 0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x26] + movs r0, 0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + subs r1, 0x8 + strh r1, [r0, 0x22] + ldr r0, _080DF59C + str r0, [r5, 0x1C] +_080DF590: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DF598: .4byte gSprites +_080DF59C: .4byte move_anim_8074EE0 + thumb_func_end sub_80DF4F4 + + thumb_func_start sub_80DF5A0 +sub_80DF5A0: @ 80DF5A0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080DF5E8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DF5F0 + ldr r2, _080DF5EC + ldrh r0, [r5, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r5, 0x20] + ldrh r0, [r2, 0x6] + negs r0, r0 + strh r0, [r2, 0x6] + ldrh r0, [r2, 0x8] + negs r0, r0 + strh r0, [r2, 0x8] + adds r1, r2, 0 + b _080DF5FA + .align 2, 0 +_080DF5E8: .4byte gUnknown_0202F7C8 +_080DF5EC: .4byte gUnknown_03004B00 +_080DF5F0: + ldr r1, _080DF630 + ldrh r0, [r1] + ldrh r2, [r5, 0x20] + adds r0, r2 + strh r0, [r5, 0x20] +_080DF5FA: + ldrh r0, [r1, 0x2] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x34] + ldrh r0, [r1, 0xA] + strh r0, [r5, 0x38] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080DF634 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080DF638 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DF630: .4byte gUnknown_03004B00 +_080DF634: .4byte move_anim_8074EE0 +_080DF638: .4byte sub_8078504 + thumb_func_end sub_80DF5A0 + + thumb_func_start sub_80DF63C +sub_80DF63C: @ 80DF63C + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_8078650 + ldr r4, _080DF694 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080DF698 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DF6A0 + ldr r2, _080DF69C + ldrh r0, [r5, 0x20] + ldrh r1, [r2, 0x2] + subs r0, r1 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + adds r1, r0 + strh r1, [r5, 0x22] + ldrh r0, [r5, 0x32] + ldrh r1, [r2, 0x4] + subs r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r2, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] + b _080DF6CA + .align 2, 0 +_080DF694: .4byte gUnknown_0202F7C9 +_080DF698: .4byte gUnknown_0202F7C8 +_080DF69C: .4byte gUnknown_03004B00 +_080DF6A0: + ldr r1, _080DF6E4 + ldrh r0, [r1] + ldrh r2, [r5, 0x20] + adds r0, r2 + strh r0, [r5, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + ldrh r0, [r1, 0x4] + ldrh r2, [r5, 0x32] + adds r0, r2 + strh r0, [r5, 0x32] + ldrh r0, [r1, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080DF6CA: + ldr r0, _080DF6E4 + ldrh r0, [r0, 0x8] + strh r0, [r5, 0x2E] + ldr r0, _080DF6E8 + str r0, [r5, 0x1C] + ldr r1, _080DF6EC + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DF6E4: .4byte gUnknown_03004B00 +_080DF6E8: .4byte sub_8078B34 +_080DF6EC: .4byte move_anim_8074EE0 + thumb_func_end sub_80DF63C + + thumb_func_start sub_80DF6F0 +sub_80DF6F0: @ 80DF6F0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080DF704 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080DF70C + ldr r4, _080DF708 + b _080DF70E + .align 2, 0 +_080DF704: .4byte gUnknown_03004B00 +_080DF708: .4byte gUnknown_0202F7C8 +_080DF70C: + ldr r4, _080DF750 +_080DF70E: + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _080DF754 + movs r0, 0x2 + ldrsh r1, [r4, r0] + adds r0, r5, 0 + bl sub_807867C + ldrh r0, [r4, 0x4] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + ldr r0, _080DF758 + str r0, [r5, 0x1C] + ldr r1, _080DF75C + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DF750: .4byte gUnknown_0202F7C9 +_080DF754: .4byte gUnknown_03004B00 +_080DF758: .4byte sub_8078600 +_080DF75C: .4byte move_anim_8074EE0 + thumb_func_end sub_80DF6F0 + + thumb_func_start sub_80DF760 +sub_80DF760: @ 80DF760 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080DF788 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DF77A + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080DF77A: + adds r0, r4, 0 + bl sub_80DF63C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DF788: .4byte gUnknown_0202F7C8 + thumb_func_end sub_80DF760 + + thumb_func_start sub_80DF78C +sub_80DF78C: @ 80DF78C + push {r4-r7,lr} + adds r6, r0, 0 + ldr r4, _080DF7E0 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r6, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x22] + strh r5, [r6, 0x36] + movs r0, 0x1 + strh r0, [r6, 0x38] + ldr r0, _080DF7E4 + ldrh r0, [r0] + strh r0, [r6, 0x3A] + ldr r4, _080DF7E8 + ldrb r0, [r4] + movs r1, 0 + bl sub_807A100 + lsls r7, r0, 16 + lsrs r5, r7, 16 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_807A100 + lsls r1, r0, 16 + lsrs r0, r1, 16 + cmp r5, r0 + bls _080DF7EC + lsrs r0, r7, 17 + b _080DF7EE + .align 2, 0 +_080DF7E0: .4byte gUnknown_0202F7C8 +_080DF7E4: .4byte gUnknown_03004B00 +_080DF7E8: .4byte gUnknown_02024C07 +_080DF7EC: + lsrs r0, r1, 17 +_080DF7EE: + strh r0, [r6, 0x3C] + movs r1, 0x3A + ldrsh r0, [r6, r1] + movs r2, 0x3C + ldrsh r1, [r6, r2] + bl Cos + strh r0, [r6, 0x24] + movs r1, 0x3A + ldrsh r0, [r6, r1] + movs r2, 0x3C + ldrsh r1, [r6, r2] + bl Sin + strh r0, [r6, 0x26] + ldr r0, _080DF818 + str r0, [r6, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DF818: .4byte sub_80DF81C + thumb_func_end sub_80DF78C + + thumb_func_start sub_80DF81C +sub_80DF81C: @ 80DF81C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _080DF82E + cmp r5, 0x1 + beq _080DF89A + b _080DF91E +_080DF82E: + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x38] + subs r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3A] + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080DF880 + strh r5, [r4, 0x36] + ldrh r1, [r4, 0x38] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080DF880 + adds r0, r1, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _080DF880 + movs r0, 0x10 + strh r0, [r4, 0x38] +_080DF880: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080DF91E + movs r0, 0 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080DF91E +_080DF89A: + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x38] + subs r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0x95 + bgt _080DF8C2 + adds r0, r1, 0 + adds r0, 0x8 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x95 + ble _080DF8C2 + movs r0, 0x96 + strh r0, [r4, 0x3C] +_080DF8C2: + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080DF90A + movs r0, 0 + strh r0, [r4, 0x36] + ldrh r1, [r4, 0x38] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080DF90A + adds r0, r1, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _080DF90A + movs r0, 0x10 + strh r0, [r4, 0x38] +_080DF90A: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080DF91E + adds r0, r4, 0 + bl move_anim_8072740 +_080DF91E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80DF81C + + thumb_func_start sub_80DF924 +sub_80DF924: @ 80DF924 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080DF950 + adds r4, r1, r0 + ldr r0, _080DF954 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080DF960 + ldr r0, _080DF958 + str r0, [sp] + ldr r0, _080DF95C + b _080DF966 + .align 2, 0 +_080DF950: .4byte gTasks +_080DF954: .4byte gUnknown_0202F7C8 +_080DF958: .4byte REG_BG1HOFS +_080DF95C: .4byte gUnknown_030042C0 +_080DF960: + ldr r0, _080DF9DC + str r0, [sp] + ldr r0, _080DF9E0 +_080DF966: + ldrh r0, [r0] + strh r0, [r4, 0xC] + ldr r0, _080DF9E4 + str r0, [sp, 0x4] + mov r1, sp + movs r5, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r5, [r0, 0x9] + ldr r0, _080DF9E8 + ldrb r0, [r0] + bl sub_8077FC0 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r4, 0xE] + adds r0, 0x20 + strh r0, [r4, 0x10] + cmp r1, 0 + bge _080DF996 + strh r5, [r4, 0xE] +_080DF996: + ldrh r3, [r4, 0xE] + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + bgt _080DF9C4 + ldr r5, _080DF9EC + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 +_080DF9A8: + lsls r1, r3, 1 + adds r2, r1, r5 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r1, r6 + ldrh r0, [r4, 0xC] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + ble _080DF9A8 +_080DF9C4: + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80895F8 + ldr r0, _080DF9F0 + str r0, [r4] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DF9DC: .4byte REG_BG2HOFS +_080DF9E0: .4byte gUnknown_03004288 +_080DF9E4: .4byte 0xa2600001 +_080DF9E8: .4byte gUnknown_0202F7C8 +_080DF9EC: .4byte gUnknown_03004DE0 +_080DF9F0: .4byte sub_80DF9F4 + thumb_func_end sub_80DF924 + + thumb_func_start sub_80DF9F4 +sub_80DF9F4: @ 80DF9F4 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080DFA18 + adds r2, r0, r1 + movs r1, 0x8 + ldrsh r0, [r2, r1] + cmp r0, 0x4 + bhi _080DFAAA + lsls r0, 2 + ldr r1, _080DFA1C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DFA18: .4byte gTasks +_080DFA1C: .4byte _080DFA20 + .align 2, 0 +_080DFA20: + .4byte _080DFA34 + .4byte _080DFA56 + .4byte _080DFA66 + .4byte _080DFA92 + .4byte _080DFAA4 +_080DFA34: + ldrh r0, [r2, 0x16] + adds r0, 0x1 + strh r0, [r2, 0x16] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080DFA8A + movs r0, 0 + strh r0, [r2, 0x16] + ldrh r0, [r2, 0x14] + adds r0, 0x1 + strh r0, [r2, 0x14] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080DFA8A + b _080DFA84 +_080DFA56: + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080DFA8A + b _080DFA84 +_080DFA66: + ldrh r0, [r2, 0x16] + adds r0, 0x1 + strh r0, [r2, 0x16] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080DFA8A + movs r0, 0 + strh r0, [r2, 0x16] + ldrh r0, [r2, 0x14] + subs r0, 0x1 + strh r0, [r2, 0x14] + lsls r0, 16 + cmp r0, 0 + bne _080DFA8A +_080DFA84: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] +_080DFA8A: + adds r0, r2, 0 + bl sub_80DFAB0 + b _080DFAAA +_080DFA92: + ldr r1, _080DFAA0 + movs r0, 0x3 + strb r0, [r1, 0x15] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080DFAAA + .align 2, 0 +_080DFAA0: .4byte gUnknown_03004DC0 +_080DFAA4: + adds r0, r3, 0 + bl move_anim_task_del +_080DFAAA: + pop {r0} + bx r0 + thumb_func_end sub_80DF9F4 + + thumb_func_start sub_80DFAB0 +sub_80DFAB0: @ 80DFAB0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + ldrh r3, [r5, 0x12] + ldrh r4, [r5, 0xE] + movs r1, 0x10 + ldrsh r0, [r5, r1] + cmp r4, r0 + bgt _080DFB06 + ldr r7, _080DFB1C + mov r12, r7 + ldr r0, _080DFB20 + mov r8, r0 + ldr r6, _080DFB24 +_080DFACE: + lsls r2, r4, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r12 + lsls r0, r3, 1 + add r0, r8 + movs r7, 0 + ldrsh r1, [r0, r7] + movs r7, 0x14 + ldrsh r0, [r5, r7] + muls r0, r1 + asrs r0, 7 + ldrh r1, [r5, 0xC] + adds r0, r1 + strh r0, [r2] + adds r3, 0x8 + movs r0, 0xFF + ands r3, r0 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + movs r7, 0x10 + ldrsh r0, [r5, r7] + cmp r4, r0 + ble _080DFACE +_080DFB06: + ldrh r0, [r5, 0x12] + adds r0, 0x9 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x12] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DFB1C: .4byte gUnknown_03004DE0 +_080DFB20: .4byte gSineTable +_080DFB24: .4byte gUnknown_03004DC0 + thumb_func_end sub_80DFAB0 + + thumb_func_start sub_80DFB28 +sub_80DFB28: @ 80DFB28 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r0, 0 + ldr r5, _080DFBC8 + movs r0, 0x4 + ldrsh r1, [r5, r0] + lsls r0, r1, 1 + adds r0, r1 + movs r1, 0x5 + bl __divsi3 + adds r6, r0, 0 + ldr r1, _080DFBCC + mov r8, r1 + ldrb r0, [r1] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + mov r2, r8 + ldrb r0, [r2] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r3, [r5, 0x8] + adds r0, r3 + strh r0, [r4, 0x22] + movs r1, 0x2 + ldrsh r0, [r5, r1] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl Cos + strh r0, [r4, 0x30] + movs r3, 0x2 + ldrsh r0, [r5, r3] + lsls r6, 16 + asrs r6, 16 + adds r1, r6, 0 + bl Sin + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x30] + ldrh r2, [r5] + adds r3, r2, 0 + muls r3, r1 + adds r1, r3, 0 + ldrh r3, [r4, 0x20] + adds r1, r3 + strh r1, [r4, 0x20] + adds r1, r2, 0 + muls r1, r0 + adds r0, r1, 0 + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x34] + ldr r0, _080DFBD0 + str r0, [r4, 0x1C] + adds r4, 0x2E + ldr r2, _080DFBD4 + movs r1, 0x6 +_080DFBB0: + ldrh r0, [r4] + strh r0, [r2] + adds r4, 0x2 + adds r2, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _080DFBB0 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DFBC8: .4byte gUnknown_03004B00 +_080DFBCC: .4byte gUnknown_0202F7C8 +_080DFBD0: .4byte sub_80DFBD8 +_080DFBD4: .4byte gUnknown_03000730 + thumb_func_end sub_80DFB28 + + thumb_func_start sub_80DFBD8 +sub_80DFBD8: @ 80DFBD8 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x36] + adds r0, r1 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x38] + adds r0, r2 + strh r0, [r4, 0x38] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x24] + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x34 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080DFC1C + adds r0, r4, 0 + bl move_anim_8072740 +_080DFC1C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DFBD8 + + thumb_func_start sub_80DFC24 +sub_80DFC24: @ 80DFC24 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080DFC58 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080DFC5C + ldrh r0, [r0] + strh r0, [r1, 0x8] + ldr r0, _080DFC60 + ldrb r0, [r0] + movs r2, 0x10 + strh r2, [r1, 0xA] + ldr r1, _080DFC64 + strh r2, [r1] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080DFC70 + ldr r1, _080DFC68 + ldr r2, _080DFC6C + b _080DFC74 + .align 2, 0 +_080DFC58: .4byte gTasks +_080DFC5C: .4byte gUnknown_03004B00 +_080DFC60: .4byte gUnknown_0202F7C8 +_080DFC64: .4byte REG_BLDALPHA +_080DFC68: .4byte REG_BLDCNT +_080DFC6C: .4byte 0x00003f42 +_080DFC70: + ldr r1, _080DFC8C + ldr r2, _080DFC90 +_080DFC74: + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080DFC94 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080DFC98 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DFC8C: .4byte REG_BLDCNT +_080DFC90: .4byte 0x00003f44 +_080DFC94: .4byte gTasks +_080DFC98: .4byte sub_80DFC9C + thumb_func_end sub_80DFC24 + + thumb_func_start sub_80DFC9C +sub_80DFC9C: @ 80DFC9C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080DFD04 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0xA] + lsrs r2, r0, 8 + lsls r0, 24 + lsrs r1, r0, 24 + movs r3, 0xC + ldrsh r0, [r4, r3] + ldrb r3, [r4, 0x8] + cmp r0, r3 + bne _080DFD18 + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + subs r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r2, 8 + orrs r1, r0 + movs r3, 0 + strh r1, [r4, 0xA] + ldr r0, _080DFD08 + strh r1, [r0] + strh r3, [r4, 0xC] + cmp r2, 0x10 + bne _080DFD1E + ldr r2, _080DFD0C + ldr r1, _080DFD10 + ldr r0, _080DFD14 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r0, r5, 0 + bl move_anim_task_del + b _080DFD1E + .align 2, 0 +_080DFD04: .4byte gTasks +_080DFD08: .4byte REG_BLDALPHA +_080DFD0C: .4byte gSprites +_080DFD10: .4byte gUnknown_02024BE0 +_080DFD14: .4byte gUnknown_0202F7C8 +_080DFD18: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] +_080DFD1E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80DFC9C + + thumb_func_start sub_80DFD24 +sub_80DFD24: @ 80DFD24 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080DFD48 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080DFD4C + ldrh r0, [r0] + strh r0, [r1, 0x8] + movs r2, 0x80 + lsls r2, 5 + strh r2, [r1, 0xA] + ldr r0, _080DFD50 + str r0, [r1] + ldr r0, _080DFD54 + strh r2, [r0] + bx lr + .align 2, 0 +_080DFD48: .4byte gTasks +_080DFD4C: .4byte gUnknown_03004B00 +_080DFD50: .4byte sub_80DFD58 +_080DFD54: .4byte REG_BLDALPHA + thumb_func_end sub_80DFD24 + + thumb_func_start sub_80DFD58 +sub_80DFD58: @ 80DFD58 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080DFDA8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0xA] + lsrs r1, r0, 8 + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0xC + ldrsh r0, [r2, r3] + ldrb r3, [r2, 0x8] + cmp r0, r3 + bne _080DFDB4 + subs r0, r1, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r3, 8 + orrs r1, r0 + movs r0, 0 + strh r1, [r2, 0xA] + ldr r5, _080DFDAC + strh r1, [r5] + strh r0, [r2, 0xC] + cmp r3, 0 + bne _080DFDBA + ldr r0, _080DFDB0 + strh r3, [r0] + strh r3, [r5] + adds r0, r4, 0 + bl move_anim_task_del + b _080DFDBA + .align 2, 0 +_080DFDA8: .4byte gTasks +_080DFDAC: .4byte REG_BLDALPHA +_080DFDB0: .4byte REG_BLDCNT +_080DFDB4: + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] +_080DFDBA: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80DFD58 + + thumb_func_start sub_80DFDC0 +sub_80DFDC0: @ 80DFDC0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080DFDE8 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080DFDEC + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080DFDF8 + ldr r1, _080DFDF0 + ldr r2, _080DFDF4 + b _080DFDFC + .align 2, 0 +_080DFDE8: .4byte REG_BLDALPHA +_080DFDEC: .4byte gUnknown_0202F7C8 +_080DFDF0: .4byte REG_BLDCNT +_080DFDF4: .4byte 0x00003f42 +_080DFDF8: + ldr r1, _080DFE0C + ldr r2, _080DFE10 +_080DFDFC: + adds r0, r2, 0 + strh r0, [r1] + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DFE0C: .4byte REG_BLDCNT +_080DFE10: .4byte 0x00003f44 + thumb_func_end sub_80DFDC0 + + thumb_func_start sub_80DFE14 +sub_80DFE14: @ 80DFE14 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _080DFE80 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x30] + ldr r5, _080DFE84 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + movs r0, 0x7E + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_8078A5C + ldrh r0, [r4, 0x30] + negs r0, r0 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x32] + negs r0, r0 + strh r0, [r4, 0x36] + ldr r0, _080DFE88 + strh r0, [r4, 0x3A] + ldr r1, _080DFE8C + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DFE80: .4byte gUnknown_0202F7C9 +_080DFE84: .4byte gUnknown_0202F7C8 +_080DFE88: .4byte 0x0000ffd8 +_080DFE8C: .4byte sub_80DFE90 + thumb_func_end sub_80DFE14 + + thumb_func_start sub_80DFE90 +sub_80DFE90: @ 80DFE90 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r5, [r4, 0x30] + ldrh r0, [r4, 0x34] + adds r2, r5, r0 + strh r2, [r4, 0x34] + ldrh r3, [r4, 0x32] + ldrh r6, [r4, 0x36] + adds r1, r3, r6 + strh r1, [r4, 0x36] + lsls r0, r2, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + lsls r0, r1, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + movs r6, 0x3C + ldrsh r0, [r4, r6] + cmp r0, 0 + bne _080DFED2 + adds r0, r2, r5 + strh r0, [r4, 0x34] + adds r1, r3 + strh r1, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + lsls r1, 16 + asrs r1, 24 + strh r1, [r4, 0x26] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] +_080DFED2: + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl Sin + ldrh r6, [r4, 0x26] + adds r0, r6 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + cmp r0, 0x7F + ble _080DFF02 + movs r0, 0 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x3A] + adds r0, 0x14 + strh r0, [r4, 0x3A] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] +_080DFF02: + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080DFF14 + adds r0, r4, 0 + bl move_anim_8072740 +_080DFF14: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80DFE90 + + thumb_func_start sub_80DFF1C +sub_80DFF1C: @ 80DFF1C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080DFF50 + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrb r1, [r5, 0x4] + adds r0, r4, 0 + bl StartSpriteAffineAnim + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x32] + ldr r0, _080DFF54 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DFF50: .4byte gUnknown_03004B00 +_080DFF54: .4byte sub_80DFF58 + thumb_func_end sub_80DFF1C + + thumb_func_start sub_80DFF58 +sub_80DFF58: @ 80DFF58 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x36] + adds r0, r1 + strh r0, [r2, 0x36] + ldrh r1, [r2, 0x30] + ldrh r3, [r2, 0x38] + adds r1, r3 + strh r1, [r2, 0x38] + lsls r0, 16 + asrs r0, 24 + strh r0, [r2, 0x24] + lsls r1, 16 + asrs r1, 24 + strh r1, [r2, 0x26] + ldrh r0, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + bne _080DFF8E + ldr r0, _080DFF94 + str r0, [r2, 0x1C] +_080DFF8E: + pop {r0} + bx r0 + .align 2, 0 +_080DFF94: .4byte sub_80DFF98 + thumb_func_end sub_80DFF58 + + thumb_func_start sub_80DFF98 +sub_80DFF98: @ 80DFF98 + push {lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x36] + ldrh r0, [r3, 0x2E] + subs r1, r0 + strh r1, [r3, 0x36] + ldrh r0, [r3, 0x38] + ldrh r2, [r3, 0x30] + subs r0, r2 + strh r0, [r3, 0x38] + lsls r1, 16 + asrs r1, 24 + strh r1, [r3, 0x24] + lsls r0, 16 + asrs r0, 24 + strh r0, [r3, 0x26] + ldrh r0, [r3, 0x34] + subs r0, 0x1 + strh r0, [r3, 0x34] + lsls r0, 16 + cmp r0, 0 + bne _080DFFCA + adds r0, r3, 0 + bl move_anim_8074EE0 +_080DFFCA: + pop {r0} + bx r0 + thumb_func_end sub_80DFF98 + + thumb_func_start sub_80DFFD0 +sub_80DFFD0: @ 80DFFD0 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r0, _080DFFE4 + movs r2, 0 + ldrsh r1, [r0, r2] + adds r3, r0, 0 + cmp r1, 0 + bne _080DFFEC + ldr r0, _080DFFE8 + b _080DFFEE + .align 2, 0 +_080DFFE4: .4byte gUnknown_03004B00 +_080DFFE8: .4byte gUnknown_0202F7C8 +_080DFFEC: + ldr r0, _080E001C +_080DFFEE: + ldrb r5, [r0] + movs r6, 0x14 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x4 + ldr r7, _080E0020 + adds r0, r7, 0 + ands r1, r0 + ldr r0, _080E0024 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + movs r1, 0x2 + ldrsh r0, [r3, r1] + cmp r0, 0x1 + beq _080E004C + cmp r0, 0x1 + bgt _080E0028 + cmp r0, 0 + beq _080E0032 + b _080E00A0 + .align 2, 0 +_080E001C: .4byte gUnknown_0202F7C9 +_080E0020: .4byte 0x000003ff +_080E0024: .4byte 0xfffffc00 +_080E0028: + cmp r0, 0x2 + beq _080E0066 + cmp r0, 0x3 + beq _080E007E + b _080E00A0 +_080E0032: + adds r0, r5, 0 + movs r1, 0x5 + bl sub_807A100 + subs r0, 0x8 + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_807A100 + adds r0, 0x8 + strh r0, [r4, 0x22] + b _080E00A0 +_080E004C: + adds r0, r5, 0 + movs r1, 0x5 + bl sub_807A100 + subs r0, 0xE + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_807A100 + adds r0, 0x10 + strh r0, [r4, 0x22] + b _080E00A0 +_080E0066: + adds r0, r5, 0 + movs r1, 0x4 + bl sub_807A100 + adds r0, 0x8 + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_807A100 + adds r0, 0x8 + b _080E0094 +_080E007E: + adds r0, r5, 0 + movs r1, 0x4 + bl sub_807A100 + adds r0, 0xE + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_807A100 + adds r0, 0x10 +_080E0094: + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + movs r6, 0xEC +_080E00A0: + movs r0, 0x20 + strh r0, [r4, 0x2E] + lsls r0, r6, 24 + asrs r0, 24 + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + adds r0, 0xC + strh r0, [r4, 0x36] + ldr r0, _080E00C8 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80786EC + ldr r0, _080E00CC + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E00C8: .4byte 0x0000fff4 +_080E00CC: .4byte sub_80E00D0 + thumb_func_end sub_80DFFD0 + + thumb_func_start sub_80E00D0 +sub_80E00D0: @ 80E00D0 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080E00E4 + adds r0, r4, 0 + bl move_anim_8074EE0 +_080E00E4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E00D0 + + thumb_func_start sub_80E00EC +sub_80E00EC: @ 80E00EC + push {r4-r7,lr} + sub sp, 0x18 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080E0150 + adds r5, r1, r0 + ldr r4, _080E0154 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1F + movs r6, 0 + strh r0, [r5, 0x16] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_807A100 + subs r0, 0x7 + strh r0, [r5, 0x14] + ldrh r1, [r5, 0x16] + strh r1, [r5, 0x12] + strh r0, [r5, 0x10] + subs r1, r0 + lsls r1, 8 + strh r1, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r5, 0x24] + adds r0, 0x20 + strh r0, [r5, 0x26] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080E015C + ldr r0, _080E0158 + b _080E015E + .align 2, 0 +_080E0150: .4byte gTasks +_080E0154: .4byte gUnknown_0202F7C8 +_080E0158: .4byte 0x0000fff4 +_080E015C: + ldr r0, _080E01A8 +_080E015E: + strh r0, [r5, 0x18] + ldr r0, _080E01AC + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xE] + cmp r0, 0x1 + bne _080E01C4 + add r4, sp, 0xC + adds r0, r4, 0 + bl sub_8078914 + ldr r0, _080E01B0 + ldrh r0, [r0] + strh r0, [r5, 0x1C] + ldr r1, _080E01B4 + ldr r2, _080E01B8 + adds r0, r2, 0 + strh r0, [r1] + ldrb r1, [r4, 0x8] + lsls r1, 4 + movs r0, 0 + movs r2, 0x20 + bl FillPalette + ldr r0, _080E01BC + str r0, [sp] + movs r7, 0x2 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E01F4 + ldr r1, _080E01C0 + b _080E01EE + .align 2, 0 +_080E01A8: .4byte 0x0000ffc0 +_080E01AC: .4byte gUnknown_0202F7C8 +_080E01B0: .4byte gUnknown_030041B4 +_080E01B4: .4byte REG_BLDCNT +_080E01B8: .4byte 0x00003f42 +_080E01BC: .4byte REG_BG1VOFS +_080E01C0: .4byte gUnknown_03004288 +_080E01C4: + ldr r0, _080E0278 + ldrh r0, [r0] + strh r0, [r5, 0x1C] + ldr r1, _080E027C + ldr r2, _080E0280 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + movs r1, 0x90 + movs r2, 0x20 + bl FillPalette + ldr r0, _080E0284 + str r0, [sp] + movs r7, 0x4 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E01F4 + ldr r1, _080E0288 +_080E01EE: + ldrh r0, [r1] + adds r0, 0xF0 + strh r0, [r1] +_080E01F4: + ldr r0, _080E028C + str r0, [sp, 0x4] + mov r2, sp + movs r1, 0 + movs r0, 0x1 + strb r0, [r2, 0x8] + mov r0, sp + strb r1, [r0, 0x9] + strh r1, [r5, 0x1E] + movs r0, 0x10 + strh r0, [r5, 0x20] + strh r1, [r5, 0x8] + strh r1, [r5, 0xA] + strh r1, [r5, 0xC] + movs r0, 0x3 + bl sub_80E08CC + movs r3, 0 + ldr r4, _080E0290 + movs r0, 0xF0 + lsls r0, 3 + adds r6, r4, r0 +_080E0220: + lsls r1, r3, 1 + adds r2, r1, r4 + ldrh r0, [r5, 0x1C] + strh r0, [r2] + adds r1, r6 + ldrh r0, [r5, 0x1C] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x6F + bls _080E0220 + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80895F8 + ldr r1, _080E0294 + movs r0, 0x3F + eors r7, r0 + movs r2, 0xFC + lsls r2, 6 + adds r0, r2, 0 + orrs r7, r0 + strh r7, [r1] + subs r1, 0x2 + adds r2, 0x3F + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _080E0298 + ldrh r0, [r5, 0x24] + lsls r0, 8 + ldrh r1, [r5, 0x26] + orrs r0, r1 + strh r0, [r2] + ldr r1, _080E029C + movs r0, 0xA0 + strh r0, [r1] + ldr r0, _080E02A0 + str r0, [r5] + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E0278: .4byte gUnknown_03004280 +_080E027C: .4byte REG_BLDCNT +_080E0280: .4byte 0x00003f44 +_080E0284: .4byte REG_BG2VOFS +_080E0288: .4byte gUnknown_030042C0 +_080E028C: .4byte 0xa2600001 +_080E0290: .4byte gUnknown_03004DE0 +_080E0294: .4byte REG_WINOUT +_080E0298: .4byte gUnknown_030042C4 +_080E029C: .4byte gUnknown_03004240 +_080E02A0: .4byte sub_80E02A4 + thumb_func_end sub_80E00EC + + thumb_func_start sub_80E02A4 +sub_80E02A4: @ 80E02A4 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E02C8 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080E02BE + b _080E03B6 +_080E02BE: + lsls r0, 2 + ldr r1, _080E02CC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E02C8: .4byte gTasks +_080E02CC: .4byte _080E02D0 + .align 2, 0 +_080E02D0: + .4byte _080E02E4 + .4byte _080E0344 + .4byte _080E035E + .4byte _080E039C + .4byte _080E03B0 +_080E02E4: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080E03B6 + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080E0314 + ldrh r1, [r4, 0x1E] + movs r2, 0x1E + ldrsh r0, [r4, r2] + cmp r0, 0xC + beq _080E0322 + adds r0, r1, 0x1 + strh r0, [r4, 0x1E] + b _080E0322 +_080E0314: + ldrh r1, [r4, 0x20] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x8 + beq _080E0322 + subs r0, r1, 0x1 + strh r0, [r4, 0x20] +_080E0322: + ldr r2, _080E0340 + ldrh r0, [r4, 0x20] + lsls r0, 8 + ldrh r1, [r4, 0x1E] + orrs r0, r1 + strh r0, [r2] + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0xC + bne _080E03B6 + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x8 + bne _080E03B6 + b _080E03A2 + .align 2, 0 +_080E0340: .4byte REG_BLDALPHA +_080E0344: + ldrh r0, [r4, 0x10] + subs r0, 0x8 + strh r0, [r4, 0x10] + adds r0, r4, 0 + bl sub_80E079C + movs r0, 0x10 + ldrsh r1, [r4, r0] + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r1, r0 + bge _080E03B6 + b _080E03A2 +_080E035E: + ldrh r0, [r4, 0x10] + subs r0, 0x8 + strh r0, [r4, 0x10] + adds r0, r4, 0 + bl sub_80E079C + ldrh r1, [r4, 0x24] + adds r1, 0x4 + strh r1, [r4, 0x24] + ldrh r0, [r4, 0x26] + subs r2, r0, 0x4 + strh r2, [r4, 0x26] + lsls r1, 16 + lsls r0, r2, 16 + cmp r1, r0 + blt _080E0380 + strh r2, [r4, 0x24] +_080E0380: + ldr r3, _080E0398 + ldrh r2, [r4, 0x24] + lsls r0, r2, 8 + ldrh r1, [r4, 0x26] + orrs r0, r1 + strh r0, [r3] + lsls r2, 16 + lsls r1, 16 + cmp r2, r1 + bne _080E03B6 + b _080E03A2 + .align 2, 0 +_080E0398: .4byte gUnknown_030042C4 +_080E039C: + ldr r1, _080E03AC + movs r0, 0x3 + strb r0, [r1, 0x15] +_080E03A2: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080E03B6 + .align 2, 0 +_080E03AC: .4byte gUnknown_03004DC0 +_080E03B0: + adds r0, r2, 0 + bl move_anim_task_del +_080E03B6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E02A4 + + thumb_func_start sub_80E03BC +sub_80E03BC: @ 80E03BC + push {r4-r7,lr} + sub sp, 0x18 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080E03E4 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x4 + bls _080E03D8 + b _080E05F2 +_080E03D8: + lsls r0, 2 + ldr r1, _080E03E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E03E4: .4byte gTasks +_080E03E8: .4byte _080E03EC + .align 2, 0 +_080E03EC: + .4byte _080E0400 + .4byte _080E048C + .4byte _080E04D0 + .4byte _080E053C + .4byte _080E05A4 +_080E0400: + bl sub_8076BE0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080E043C + ldr r0, _080E042C + movs r1, 0 + strh r1, [r0] + ldr r0, _080E0430 + strh r1, [r0] + ldr r0, _080E0434 + ldr r2, _080E0438 + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, r4, 0 + bl move_anim_task_del + b _080E05F2 + .align 2, 0 +_080E042C: .4byte gUnknown_030042C4 +_080E0430: .4byte gUnknown_03004240 +_080E0434: .4byte REG_WININ +_080E0438: .4byte 0x00003f3f +_080E043C: + ldr r0, _080E045C + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xE] + cmp r0, 0x1 + bne _080E046C + ldr r1, _080E0460 + ldr r2, _080E0464 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _080E0468 + b _080E0476 + .align 2, 0 +_080E045C: .4byte gUnknown_0202F7C9 +_080E0460: .4byte REG_BLDCNT +_080E0464: .4byte 0x00003f42 +_080E0468: .4byte gUnknown_03004288 +_080E046C: + ldr r1, _080E0480 + ldr r2, _080E0484 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _080E0488 +_080E0476: + ldrh r0, [r1] + adds r0, 0xF0 + strh r0, [r1] + b _080E0590 + .align 2, 0 +_080E0480: .4byte REG_BLDCNT +_080E0484: .4byte 0x00003f44 +_080E0488: .4byte gUnknown_030042C0 +_080E048C: + movs r1, 0xE + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080E04B4 + mov r0, sp + bl sub_8078914 + ldr r0, _080E04B0 + ldrh r0, [r0] + strh r0, [r5, 0x1C] + mov r0, sp + ldrb r1, [r0, 0x8] + lsls r1, 4 + movs r0, 0 + movs r2, 0x20 + bl FillPalette + b _080E04C4 + .align 2, 0 +_080E04B0: .4byte gUnknown_030041B4 +_080E04B4: + ldr r0, _080E04CC + ldrh r0, [r0] + strh r0, [r5, 0x1C] + movs r0, 0 + movs r1, 0x90 + movs r2, 0x20 + bl FillPalette +_080E04C4: + movs r0, 0x3 + bl sub_80E08CC + b _080E0590 + .align 2, 0 +_080E04CC: .4byte gUnknown_03004280 +_080E04D0: + ldr r4, _080E051C + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1F + movs r6, 0 + strh r0, [r5, 0x16] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_807A100 + subs r0, 0x7 + strh r0, [r5, 0x14] + ldrh r1, [r5, 0x16] + subs r1, r0 + lsls r1, 8 + strh r1, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + subs r1, r0, 0x4 + strh r1, [r5, 0x24] + adds r0, 0x4 + strh r0, [r5, 0x26] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080E0524 + ldr r0, _080E0520 + b _080E0526 + .align 2, 0 +_080E051C: .4byte gUnknown_0202F7C9 +_080E0520: .4byte 0x0000fff4 +_080E0524: + ldr r0, _080E0538 +_080E0526: + strh r0, [r5, 0x18] + ldrh r0, [r5, 0x18] + strh r0, [r5, 0x10] + strh r0, [r5, 0x12] + movs r0, 0xC + strh r0, [r5, 0x1E] + movs r0, 0x8 + strh r0, [r5, 0x20] + b _080E0590 + .align 2, 0 +_080E0538: .4byte 0x0000ffc0 +_080E053C: + movs r2, 0xE + ldrsh r0, [r5, r2] + cmp r0, 0x1 + bne _080E054C + ldr r0, _080E0548 + b _080E054E + .align 2, 0 +_080E0548: .4byte REG_BG1VOFS +_080E054C: + ldr r0, _080E0598 +_080E054E: + str r0, [sp, 0xC] + movs r3, 0 + add r4, sp, 0xC + ldr r6, _080E059C + movs r0, 0xF0 + lsls r0, 3 + adds r7, r6, r0 +_080E055C: + lsls r1, r3, 1 + adds r2, r1, r6 + ldrh r0, [r5, 0x1C] + adds r0, 0x9F + subs r0, r3 + strh r0, [r2] + adds r1, r7 + ldrh r0, [r5, 0x1C] + adds r0, 0x9F + subs r0, r3 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x6F + bls _080E055C + ldr r1, _080E05A0 + str r1, [r4, 0x4] + movs r2, 0 + movs r0, 0x1 + strb r0, [r4, 0x8] + strb r2, [r4, 0x9] + ldr r0, [sp, 0xC] + ldr r2, [r4, 0x8] + bl sub_80895F8 +_080E0590: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080E05F2 + .align 2, 0 +_080E0598: .4byte REG_BG2VOFS +_080E059C: .4byte gUnknown_03004DE0 +_080E05A0: .4byte 0xa2600001 +_080E05A4: + movs r1, 0xE + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080E05BC + ldr r1, _080E05B4 + ldr r2, _080E05B8 + b _080E05C0 + .align 2, 0 +_080E05B4: .4byte REG_WINOUT +_080E05B8: .4byte 0x00003f3d +_080E05BC: + ldr r1, _080E05FC + ldr r2, _080E0600 +_080E05C0: + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _080E0604 + ldr r2, _080E0608 + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _080E060C + ldrh r0, [r5, 0x24] + lsls r0, 8 + ldrh r1, [r5, 0x26] + orrs r0, r1 + strh r0, [r2] + ldr r1, _080E0610 + movs r0, 0xA0 + strh r0, [r1] + movs r0, 0 + strh r0, [r5, 0x8] + strh r0, [r5, 0xA] + strh r0, [r5, 0xC] + ldr r1, _080E0614 + ldr r2, _080E0618 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080E061C + str r0, [r5] +_080E05F2: + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E05FC: .4byte REG_WINOUT +_080E0600: .4byte 0x00003f3b +_080E0604: .4byte REG_WININ +_080E0608: .4byte 0x00003f3f +_080E060C: .4byte gUnknown_030042C4 +_080E0610: .4byte gUnknown_03004240 +_080E0614: .4byte REG_BLDALPHA +_080E0618: .4byte 0x0000080c +_080E061C: .4byte sub_80E0620 + thumb_func_end sub_80E03BC + + thumb_func_start sub_80E0620 +sub_80E0620: @ 80E0620 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E0644 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080E063A + b _080E0784 +_080E063A: + lsls r0, 2 + ldr r1, _080E0648 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E0644: .4byte gTasks +_080E0648: .4byte _080E064C + .align 2, 0 +_080E064C: + .4byte _080E0660 + .4byte _080E068C + .4byte _080E06F4 + .4byte _080E0754 + .4byte _080E0768 +_080E0660: + ldrh r0, [r4, 0x12] + adds r0, 0x8 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r4, 0x16] + movs r3, 0x16 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _080E0676 + strh r2, [r4, 0x12] +_080E0676: + adds r0, r4, 0 + bl sub_80E079C + movs r0, 0x12 + ldrsh r1, [r4, r0] + movs r2, 0x16 + ldrsh r0, [r4, r2] + cmp r1, r0 + beq _080E068A + b _080E0784 +_080E068A: + b _080E075A +_080E068C: + movs r3, 0x26 + ldrsh r0, [r4, r3] + movs r2, 0x24 + ldrsh r1, [r4, r2] + subs r0, r1 + cmp r0, 0x3F + bgt _080E06A8 + ldrh r0, [r4, 0x24] + subs r0, 0x4 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x26] + adds r0, 0x4 + strh r0, [r4, 0x26] + b _080E06AC +_080E06A8: + movs r0, 0x1 + strh r0, [r4, 0xA] +_080E06AC: + ldr r2, _080E06F0 + ldrh r0, [r4, 0x24] + lsls r0, 8 + ldrh r1, [r4, 0x26] + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r4, 0x10] + adds r0, 0x8 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r4, 0x14] + movs r3, 0x14 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _080E06CE + strh r2, [r4, 0x10] +_080E06CE: + adds r0, r4, 0 + bl sub_80E079C + movs r0, 0x10 + ldrsh r1, [r4, r0] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080E0784 + movs r3, 0xA + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080E0784 + movs r0, 0 + strh r0, [r4, 0xA] + b _080E075A + .align 2, 0 +_080E06F0: .4byte gUnknown_030042C4 +_080E06F4: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080E0784 + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080E0724 + ldrh r1, [r4, 0x1E] + movs r2, 0x1E + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080E0732 + subs r0, r1, 0x1 + strh r0, [r4, 0x1E] + b _080E0732 +_080E0724: + ldrh r1, [r4, 0x20] + movs r3, 0x20 + ldrsh r0, [r4, r3] + cmp r0, 0xF + bgt _080E0732 + adds r0, r1, 0x1 + strh r0, [r4, 0x20] +_080E0732: + ldr r2, _080E0750 + ldrh r0, [r4, 0x20] + lsls r0, 8 + ldrh r1, [r4, 0x1E] + orrs r0, r1 + strh r0, [r2] + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080E0784 + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x10 + bne _080E0784 + b _080E075A + .align 2, 0 +_080E0750: .4byte REG_BLDALPHA +_080E0754: + ldr r1, _080E0764 + movs r0, 0x3 + strb r0, [r1, 0x15] +_080E075A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080E0784 + .align 2, 0 +_080E0764: .4byte gUnknown_03004DC0 +_080E0768: + ldr r0, _080E078C + movs r1, 0 + strh r1, [r0] + ldr r0, _080E0790 + strh r1, [r0] + ldr r0, _080E0794 + ldr r3, _080E0798 + adds r1, r3, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, r2, 0 + bl move_anim_task_del +_080E0784: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E078C: .4byte gUnknown_030042C4 +_080E0790: .4byte gUnknown_03004240 +_080E0794: .4byte REG_WININ +_080E0798: .4byte 0x00003f3f + thumb_func_end sub_80E0620 + + thumb_func_start sub_80E079C +sub_80E079C: @ 80E079C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldrh r0, [r6, 0x12] + ldrh r4, [r6, 0x10] + subs r0, r4 + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + beq _080E0890 + movs r2, 0x22 + ldrsh r0, [r6, r2] + bl __divsi3 + mov r8, r0 + movs r3, 0x14 + ldrsh r0, [r6, r3] + lsls r5, r0, 8 + lsls r0, r4, 16 + movs r4, 0 + cmp r0, 0 + ble _080E07FC + ldr r0, _080E0888 + mov r12, r0 + ldr r7, _080E088C +_080E07D0: + lsls r2, r4, 16 + asrs r2, 16 + lsls r3, r2, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r3, r0 + add r3, r12 + adds r1, r2, 0 + subs r1, 0x9F + ldrh r0, [r6, 0x1C] + subs r0, r1 + strh r0, [r3] + adds r2, 0x1 + lsls r2, 16 + lsrs r4, r2, 16 + asrs r2, 16 + movs r1, 0x10 + ldrsh r0, [r6, r1] + cmp r2, r0 + blt _080E07D0 +_080E07FC: + ldrh r4, [r6, 0x10] + lsls r3, r4, 16 + asrs r1, r3, 16 + movs r2, 0x12 + ldrsh r0, [r6, r2] + cmp r1, r0 + bgt _080E0846 + ldr r0, _080E0888 + mov r12, r0 + ldr r7, _080E088C +_080E0810: + asrs r4, r3, 16 + cmp r4, 0 + blt _080E0832 + asrs r1, r5, 8 + subs r1, r4 + lsls r3, r4, 1 + ldrb r2, [r7, 0x14] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 7 + adds r3, r0 + add r3, r12 + lsls r1, 16 + asrs r1, 16 + ldrh r2, [r6, 0x1C] + adds r1, r2 + strh r1, [r3] +_080E0832: + add r5, r8 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + lsls r3, r4, 16 + asrs r1, r3, 16 + movs r2, 0x12 + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _080E0810 +_080E0846: + movs r3, 0x1C + ldrsh r0, [r6, r3] + adds r0, 0x9F + lsls r2, r4, 16 + asrs r1, r2, 16 + subs r5, r0, r1 + movs r3, 0x16 + ldrsh r0, [r6, r3] + cmp r1, r0 + bge _080E08BE + ldr r7, _080E0888 + ldr r4, _080E088C +_080E085E: + asrs r3, r2, 16 + cmp r3, 0 + blt _080E0876 + lsls r2, r3, 1 + ldrb r1, [r4, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + strh r5, [r2] + subs r5, 0x1 +_080E0876: + adds r0, r3, 0x1 + lsls r2, r0, 16 + asrs r1, r2, 16 + movs r3, 0x16 + ldrsh r0, [r6, r3] + cmp r1, r0 + blt _080E085E + b _080E08BE + .align 2, 0 +_080E0888: .4byte gUnknown_03004DE0 +_080E088C: .4byte gUnknown_03004DC0 +_080E0890: + movs r1, 0x1C + ldrsh r0, [r6, r1] + adds r5, r0, 0 + adds r5, 0x9F + movs r4, 0 + ldr r3, _080E08C8 + movs r2, 0xF0 + lsls r2, 3 + adds r6, r3, r2 +_080E08A2: + lsls r0, r4, 16 + asrs r0, 16 + lsls r2, r0, 1 + adds r1, r2, r3 + strh r5, [r1] + adds r2, r6 + strh r5, [r2] + subs r5, 0x1 + adds r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x6F + ble _080E08A2 +_080E08BE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E08C8: .4byte gUnknown_03004DE0 + thumb_func_end sub_80E079C + + thumb_func_start sub_80E08CC +sub_80E08CC: @ 80E08CC + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + movs r4, 0 + ldr r7, _080E0914 + movs r1, 0x3 + ands r0, r1 + lsls r5, r0, 2 + movs r0, 0xD + negs r0, r0 + adds r6, r0, 0 +_080E08E2: + lsls r0, r4, 24 + lsrs r0, 24 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080E0902 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + ldrb r0, [r1, 0x5] + ands r0, r6 + orrs r0, r5 + strb r0, [r1, 0x5] +_080E0902: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080E08E2 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E0914: .4byte gSprites + thumb_func_end sub_80E08CC + + thumb_func_start sub_80E0918 +sub_80E0918: @ 80E0918 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r6, _080E09B8 + ldrb r0, [r6] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r4, r1, 31 + ldrb r0, [r6] + adds r1, r4, 0 + bl sub_8076034 + ldr r0, _080E09BC + mov r9, r0 + ldr r0, _080E09C0 + mov r8, r0 + ldrb r0, [r6] + add r0, r8 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r9 + adds r1, 0x3E + ldrb r2, [r1] + movs r7, 0x5 + negs r7, r7 + adds r0, r7, 0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r6] + movs r5, 0x2 + eors r0, r5 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080E09A2 + ldrb r0, [r6] + eors r0, r5 + movs r1, 0x1 + eors r4, r1 + adds r1, r4, 0 + bl sub_8076034 + ldrb r0, [r6] + eors r0, r5 + add r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + adds r0, 0x3E + ldrb r2, [r0] + adds r1, r7, 0 + ands r1, r2 + strb r1, [r0] +_080E09A2: + mov r0, r10 + bl move_anim_task_del + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E09B8: .4byte gUnknown_0202F7C8 +_080E09BC: .4byte gSprites +_080E09C0: .4byte gUnknown_02024BE0 + thumb_func_end sub_80E0918 + + thumb_func_start sub_80E09C4 +sub_80E09C4: @ 80E09C4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r4, _080E0A0C + ldrb r0, [r4] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r5, r1, 31 + adds r0, r5, 0 + bl sub_8076464 + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080E0A00 + movs r0, 0x1 + eors r5, r0 + adds r0, r5, 0 + bl sub_8076464 +_080E0A00: + adds r0, r6, 0 + bl move_anim_task_del + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E0A0C: .4byte gUnknown_0202F7C8 + thumb_func_end sub_80E09C4 + + thumb_func_start sub_80E0A10 +sub_80E0A10: @ 80E0A10 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080E0A40 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrb r1, [r1, 0x4] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _080E0A44 + str r0, [r4, 0x1C] + ldr r1, _080E0A48 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E0A40: .4byte gUnknown_03004B00 +_080E0A44: .4byte sub_8078600 +_080E0A48: .4byte move_anim_8072740 + thumb_func_end sub_80E0A10 + + thumb_func_start sub_80E0A4C +sub_80E0A4C: @ 80E0A4C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r7, 0 + ldr r0, _080E0B50 + strh r7, [r0] + ldr r0, _080E0B54 + strh r7, [r0] + ldr r1, _080E0B58 + ldr r2, _080E0B5C + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080E0B60 + adds r0, r3, 0 + strh r0, [r1] + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080E0B64 + ldr r2, _080E0B68 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080E0B6C + adds r0, r3, 0 + strh r0, [r1] + ldr r5, _080E0B70 + ldrb r1, [r5] + movs r0, 0x4 + negs r0, r0 + mov r8, r0 + ands r0, r1 + strb r0, [r5] + ldrb r1, [r5, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r5, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E0AC4 + ldrb r0, [r5] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r5] +_080E0AC4: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080E0B40 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E0B40 + ldr r4, _080E0B74 + ldrb r0, [r4] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080E0AF4 + ldrb r0, [r4] + bl battle_get_per_side_status + lsls r0, 24 + cmp r0, 0 + bne _080E0B40 +_080E0AF4: + ldrb r0, [r4] + movs r6, 0x2 + eors r0, r6 + bl b_side_obj__get_some_boolean + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080E0B40 + ldr r3, _080E0B78 + ldr r1, _080E0B7C + ldrb r0, [r4] + eors r0, r6 + adds r0, r1 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] + ldrb r1, [r5] + mov r0, r8 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r5] + movs r7, 0x1 +_080E0B40: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E0B84 + ldr r0, _080E0B80 + ldrh r5, [r0] + b _080E0BCC + .align 2, 0 +_080E0B50: .4byte gUnknown_030042C4 +_080E0B54: .4byte gUnknown_03004240 +_080E0B58: .4byte REG_WININ +_080E0B5C: .4byte 0x00003f3f +_080E0B60: .4byte 0x00003f3d +_080E0B64: .4byte REG_BLDCNT +_080E0B68: .4byte 0x00003f42 +_080E0B6C: .4byte 0x00000c08 +_080E0B70: .4byte REG_BG1CNT +_080E0B74: .4byte gUnknown_0202F7C8 +_080E0B78: .4byte gSprites +_080E0B7C: .4byte gUnknown_02024BE0 +_080E0B80: .4byte 0x02019348 +_080E0B84: + ldr r4, _080E0BA4 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080E0BB0 + ldr r1, _080E0BA8 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080E0BAC + b _080E0BC0 + .align 2, 0 +_080E0BA4: .4byte gUnknown_0202F7C8 +_080E0BA8: .4byte gUnknown_02024A6A +_080E0BAC: .4byte gEnemyParty +_080E0BB0: + ldr r1, _080E0C58 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080E0C5C +_080E0BC0: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 +_080E0BCC: + movs r0, 0 + bl obj_id_for_side_relative_to_move + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080E0C60 + ldrb r0, [r0] + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_807A4A0 + lsls r0, 24 + lsrs r5, r0, 24 + mov r0, sp + bl sub_8078914 + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r2, _080E0C64 + add r0, sp, 0xC + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _080E0C68 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, _080E0C6C + bl LZDecompressVram + ldr r0, _080E0C70 + ldr r1, [sp] + bl LZDecompressVram + ldr r0, _080E0C74 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r2, _080E0C78 + ldr r0, _080E0C7C + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x20] + negs r0, r0 + adds r0, 0x60 + strh r0, [r2] + ldr r2, _080E0C80 + ldrh r0, [r1, 0x22] + negs r0, r0 + adds r0, 0x20 + strh r0, [r2] + ldrb r0, [r1, 0x5] + lsrs r0, 4 + adds r0, 0x10 + adds r1, r0, 0 + ldr r2, _080E0C84 + movs r3, 0x2 + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080E0C88 + adds r0, r1, 0 + movs r1, 0 + bl sub_8079108 + b _080E0C94 + .align 2, 0 +_080E0C58: .4byte gUnknown_02024A6A +_080E0C5C: .4byte gPlayerParty +_080E0C60: .4byte gUnknown_0202F7C8 +_080E0C64: .4byte 0x040000d4 +_080E0C68: .4byte 0x85000400 +_080E0C6C: .4byte gUnknown_08D1D574 +_080E0C70: .4byte gUnknown_08D1D410 +_080E0C74: .4byte gUnknown_08D1D54C +_080E0C78: .4byte gUnknown_030042C0 +_080E0C7C: .4byte gSprites +_080E0C80: .4byte gUnknown_030041B4 +_080E0C84: .4byte gUnknown_03004B00 +_080E0C88: + lsls r0, r1, 4 + ldrh r3, [r2, 0x4] + movs r1, 0x10 + movs r2, 0xB + bl BlendPalette +_080E0C94: + ldr r1, _080E0CC4 + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x8] + ldr r2, _080E0CC8 + ldrh r1, [r2] + strh r1, [r0, 0xA] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0xC] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0xE] + strh r7, [r0, 0x14] + ldr r1, _080E0CCC + str r1, [r0] + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E0CC4: .4byte gTasks +_080E0CC8: .4byte gUnknown_03004B00 +_080E0CCC: .4byte sub_80E0CD0 + thumb_func_end sub_80E0A4C + + thumb_func_start sub_80E0CD0 +sub_80E0CD0: @ 80E0CD0 + push {r4-r7,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080E0DF0 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x1C] + adds r0, 0x4 + movs r5, 0 + strh r0, [r4, 0x1C] + ldr r2, _080E0DF4 + ldrh r3, [r2] + subs r1, r3, 0x4 + strh r1, [r2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x80 + bne _080E0DE8 + strh r5, [r4, 0x1C] + adds r0, r3, 0 + adds r0, 0x7C + strh r0, [r2] + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080E0DE8 + movs r0, 0 + bl sub_8076464 + ldr r0, _080E0DF8 + strh r5, [r0] + ldr r0, _080E0DFC + strh r5, [r0] + ldr r0, _080E0E00 + ldr r2, _080E0E04 + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E0D40 + ldr r2, _080E0E08 + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080E0D40: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + eors r0, r1 + strh r0, [r2] + ldr r0, _080E0E0C + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + ldr r6, _080E0E10 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1, 0x5] + lsrs r0, 4 + adds r0, 0x10 + adds r1, r0, 0 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080E0D84 + adds r0, r1, 0 + movs r1, 0x1 + bl sub_8079108 +_080E0D84: + movs r3, 0x8 + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + mov r0, sp + bl sub_8078914 + ldr r2, [sp, 0x4] + str r5, [sp, 0xC] + ldr r1, _080E0E14 + add r0, sp, 0xC + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _080E0E18 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080E0DE2 + ldr r2, _080E0E1C + ldr r0, _080E0E20 + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + adds r0, r2 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r6 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] +_080E0DE2: + adds r0, r7, 0 + bl move_anim_task_del +_080E0DE8: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E0DF0: .4byte gTasks +_080E0DF4: .4byte gUnknown_030042C0 +_080E0DF8: .4byte gUnknown_030042C4 +_080E0DFC: .4byte gUnknown_03004240 +_080E0E00: .4byte REG_WININ +_080E0E04: .4byte 0x00003f3f +_080E0E08: .4byte REG_BG1CNT +_080E0E0C: .4byte REG_BLDCNT +_080E0E10: .4byte gSprites +_080E0E14: .4byte 0x040000d4 +_080E0E18: .4byte 0x85000200 +_080E0E1C: .4byte gUnknown_02024BE0 +_080E0E20: .4byte gUnknown_0202F7C8 + thumb_func_end sub_80E0CD0 + + thumb_func_start sub_80E0E24 +sub_80E0E24: @ 80E0E24 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _080E0E44 + movs r2, 0 + ldrsh r1, [r0, r2] + adds r2, r0, 0 + cmp r1, 0x7 + bhi _080E0E88 + lsls r0, r1, 2 + ldr r1, _080E0E48 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E0E44: .4byte gUnknown_03004B00 +_080E0E48: .4byte _080E0E4C + .align 2, 0 +_080E0E4C: + .4byte _080E0E6C + .4byte _080E0E6C + .4byte _080E0E6C + .4byte _080E0E6C + .4byte _080E0E78 + .4byte _080E0E7C + .4byte _080E0E80 + .4byte _080E0E84 +_080E0E6C: + ldrb r0, [r2] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + b _080E0E8A +_080E0E78: + movs r4, 0 + b _080E0E90 +_080E0E7C: + movs r4, 0x2 + b _080E0E90 +_080E0E80: + movs r4, 0x1 + b _080E0E90 +_080E0E84: + movs r4, 0x3 + b _080E0E90 +_080E0E88: + movs r2, 0xFF +_080E0E8A: + movs r0, 0 + cmp r0, 0 + beq _080E0EB6 +_080E0E90: + adds r0, r4, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080E0EB4 + ldr r0, _080E0EB0 + adds r0, r4, r0 + ldrb r2, [r0] + b _080E0EB6 + .align 2, 0 +_080E0EB0: .4byte gUnknown_02024BE0 +_080E0EB4: + movs r2, 0xFF +_080E0EB6: + cmp r2, 0xFF + beq _080E0ED2 + ldr r1, _080E0EE0 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + ldr r1, _080E0EE4 + ldrb r1, [r1, 0x2] + bl sub_8079108 +_080E0ED2: + adds r0, r5, 0 + bl move_anim_task_del + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E0EE0: .4byte gSprites +_080E0EE4: .4byte gUnknown_03004B00 + thumb_func_end sub_80E0E24 + + thumb_func_start sub_80E0EE8 +sub_80E0EE8: @ 80E0EE8 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080E0F14 + ldrb r0, [r2] + cmp r0, 0x1 + bhi _080E0EFC + ldr r1, _080E0F18 + movs r0, 0 + strh r0, [r1, 0xE] +_080E0EFC: + ldrb r0, [r2] + cmp r0, 0x2 + bne _080E0F08 + ldr r1, _080E0F18 + movs r0, 0x1 + strh r0, [r1, 0xE] +_080E0F08: + adds r0, r3, 0 + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080E0F14: .4byte gUnknown_0202F7C4 +_080E0F18: .4byte gUnknown_03004B00 + thumb_func_end sub_80E0EE8 + + thumb_func_start sub_80E0F1C +sub_80E0F1C: @ 80E0F1C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080E0F74 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + movs r0, 0x14 + strh r0, [r4, 0x2E] + ldr r5, _080E0F78 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080E0F7C + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80786EC + ldr r0, _080E0F80 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E0F74: .4byte gUnknown_0202F7C8 +_080E0F78: .4byte gUnknown_0202F7C9 +_080E0F7C: .4byte 0x0000ffd8 +_080E0F80: .4byte sub_80E0F84 + thumb_func_end sub_80E0F1C + + thumb_func_start sub_80E0F84 +sub_80E0F84: @ 80E0F84 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080E0FD8 + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + movs r0, 0x14 + strh r0, [r5, 0x2E] + ldr r4, _080E0FE0 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + movs r0, 0x28 + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_80786EC + ldr r0, _080E0FE4 + str r0, [r5, 0x1C] +_080E0FD8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E0FE0: .4byte gUnknown_0202F7C8 +_080E0FE4: .4byte sub_80E0FE8 + thumb_func_end sub_80E0F84 + + thumb_func_start sub_80E0FE8 +sub_80E0FE8: @ 80E0FE8 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080E0FFC + adds r0, r4, 0 + bl move_anim_8072740 +_080E0FFC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E0FE8 + + thumb_func_start sub_80E1004 +sub_80E1004: @ 80E1004 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r0, _080E1064 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080E1024 + ldr r1, _080E1068 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080E1024: + ldr r4, _080E1068 + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldr r5, _080E106C + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x6] + adds r0, r4 + strh r0, [r6, 0x36] + ldr r0, _080E1070 + str r0, [r6, 0x1C] + ldr r1, _080E1074 + adds r0, r6, 0 + bl oamt_set_x3A_32 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E1064: .4byte gUnknown_0202F7C8 +_080E1068: .4byte gUnknown_03004B00 +_080E106C: .4byte gUnknown_0202F7C9 +_080E1070: .4byte sub_8078B34 +_080E1074: .4byte move_anim_8072740 + thumb_func_end sub_80E1004 + + thumb_func_start sub_80E1078 +sub_80E1078: @ 80E1078 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r4, _080E10F8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077EE4 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077EE4 + lsls r0, 24 + lsrs r7, r0, 24 + bl Random + movs r4, 0x1F + adds r5, r4, 0 + ands r5, r0 + bl Random + ands r4, r0 + adds r1, r5, 0 + cmp r1, 0x10 + ble _080E10C0 + movs r0, 0x10 + subs r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 +_080E10C0: + lsls r0, r4, 16 + asrs r1, r0, 16 + cmp r1, 0x10 + ble _080E10D0 + movs r0, 0x10 + subs r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 +_080E10D0: + ldr r0, _080E10FC + ldrh r0, [r0, 0x4] + strh r0, [r6, 0x2E] + mov r1, r8 + adds r0, r1, r5 + strh r0, [r6, 0x32] + adds r0, r7, r4 + strh r0, [r6, 0x36] + ldr r0, _080E1100 + str r0, [r6, 0x1C] + ldr r1, _080E1104 + adds r0, r6, 0 + bl oamt_set_x3A_32 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E10F8: .4byte gUnknown_0202F7C9 +_080E10FC: .4byte gUnknown_03004B00 +_080E1100: .4byte sub_8078B34 +_080E1104: .4byte move_anim_8074EE0 + thumb_func_end sub_80E1078 + + thumb_func_start sub_80E1108 +sub_80E1108: @ 80E1108 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x1 + ldr r3, _080E1168 + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080E116C + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r6, _080E1170 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080E117C + ldr r4, _080E1174 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r6, 0x2] + adds r0, r2 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r3, [r6, 0x4] + adds r0, r3 + strh r0, [r5, 0x22] + movs r1, 0x2 + ldrsh r0, [r6, r1] + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + ble _080E1162 + movs r1, 0x1 +_080E1162: + strh r1, [r5, 0x2E] + ldr r0, _080E1178 + b _080E118A + .align 2, 0 +_080E1168: .4byte 0x000003ff +_080E116C: .4byte 0xfffffc00 +_080E1170: .4byte gUnknown_03004B00 +_080E1174: .4byte gUnknown_0202F7C8 +_080E1178: .4byte sub_80E1198 +_080E117C: + ldrh r0, [r6, 0x2] + strh r0, [r5, 0x20] + ldrh r0, [r6, 0x4] + strh r0, [r5, 0x22] + negs r0, r0 + strh r0, [r5, 0x26] + ldr r0, _080E1194 +_080E118A: + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E1194: .4byte sub_80E11D4 + thumb_func_end sub_80E1108 + + thumb_func_start sub_80E1198 +sub_80E1198: @ 80E1198 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080E11B6 + movs r0, 0 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] +_080E11B6: + ldrh r0, [r2, 0x22] + subs r0, 0x4 + strh r0, [r2, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x4 + negs r1, r1 + cmp r0, r1 + bge _080E11CE + adds r0, r2, 0 + bl move_anim_8072740 +_080E11CE: + pop {r0} + bx r0 + thumb_func_end sub_80E1198 + + thumb_func_start sub_80E11D4 +sub_80E11D4: @ 80E11D4 + push {lr} + adds r3, r0, 0 + movs r0, 0x2E + ldrsh r1, [r3, r0] + cmp r1, 0 + beq _080E11E6 + cmp r1, 0x1 + beq _080E11FC + b _080E123E +_080E11E6: + ldrh r0, [r3, 0x26] + adds r0, 0x4 + strh r0, [r3, 0x26] + lsls r0, 16 + cmp r0, 0 + blt _080E123E + strh r1, [r3, 0x26] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + b _080E123E +_080E11FC: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + cmp r0, 0 + ble _080E123E + movs r0, 0 + strh r0, [r3, 0x30] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + ldrb r2, [r1] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080E123E + adds r0, r3, 0 + bl move_anim_8072740 +_080E123E: + pop {r0} + bx r0 + thumb_func_end sub_80E11D4 + + thumb_func_start sub_80E1244 +sub_80E1244: @ 80E1244 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E1264 + adds r1, r0, r1 + ldr r0, _080E1268 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0 + bne _080E1270 + ldr r0, _080E126C + b _080E1272 + .align 2, 0 +_080E1264: .4byte gTasks +_080E1268: .4byte gUnknown_03004B00 +_080E126C: .4byte sub_80E1284 +_080E1270: + ldr r0, _080E1280 +_080E1272: + str r0, [r1] + ldr r1, [r1] + adds r0, r2, 0 + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080E1280: .4byte sub_80E143C + thumb_func_end sub_80E1244 + + thumb_func_start sub_80E1284 +sub_80E1284: @ 80E1284 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E12A8 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080E129E + b _080E1432 +_080E129E: + lsls r0, 2 + ldr r1, _080E12AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E12A8: .4byte gTasks +_080E12AC: .4byte _080E12B0 + .align 2, 0 +_080E12B0: + .4byte _080E12C4 + .4byte _080E134C + .4byte _080E135C + .4byte _080E1400 + .4byte _080E1414 +_080E12C4: + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldr r0, _080E12EC + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1E] + cmp r0, 0x1 + bne _080E12F8 + ldr r0, _080E12F0 + ldrh r0, [r0] + strh r0, [r4, 0x20] + ldr r0, _080E12F4 + b _080E1300 + .align 2, 0 +_080E12EC: .4byte gUnknown_0202F7C8 +_080E12F0: .4byte gUnknown_030042C0 +_080E12F4: .4byte gUnknown_030041B4 +_080E12F8: + ldr r0, _080E133C + ldrh r0, [r0] + strh r0, [r4, 0x20] + ldr r0, _080E1340 +_080E1300: + ldrh r0, [r0] + strh r0, [r4, 0x22] + ldr r0, _080E1344 + ldrb r0, [r0] + bl sub_8077FC0 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r4, 0x24] + adds r0, 0x20 + strh r0, [r4, 0x26] + cmp r1, 0 + bge _080E1322 + movs r0, 0 + strh r0, [r4, 0x24] +_080E1322: + ldr r2, _080E1348 + movs r3, 0x1C + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _080E1406 + .align 2, 0 +_080E133C: .4byte gUnknown_03004288 +_080E1340: .4byte gUnknown_03004280 +_080E1344: .4byte gUnknown_0202F7C8 +_080E1348: .4byte gSprites +_080E134C: + ldrb r0, [r4, 0x1E] + movs r2, 0x24 + ldrsh r1, [r4, r2] + movs r3, 0x26 + ldrsh r2, [r4, r3] + bl sub_80E1668 + b _080E1406 +_080E135C: + ldrh r0, [r4, 0xC] + adds r0, 0x6 + movs r1, 0x7F + ands r0, r1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080E137E + movs r0, 0 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] +_080E137E: + ldr r1, _080E13A0 + movs r2, 0xC + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 20 + ldrh r3, [r4, 0xE] + adds r2, r0, r3 + strh r2, [r4, 0x12] + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080E13A8 + ldr r1, _080E13A4 + b _080E13AA + .align 2, 0 +_080E13A0: .4byte gSineTable +_080E13A4: .4byte gUnknown_030041B4 +_080E13A8: + ldr r1, _080E13CC +_080E13AA: + ldrh r0, [r4, 0x22] + subs r0, r2 + strh r0, [r1] + movs r2, 0x12 + ldrsh r0, [r4, r2] + cmp r0, 0x3F + ble _080E1432 + ldrh r0, [r4, 0x24] + movs r1, 0x78 + subs r2, r1, r0 + strh r2, [r4, 0x12] + movs r3, 0x1E + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _080E13D4 + ldr r1, _080E13D0 + b _080E13D6 + .align 2, 0 +_080E13CC: .4byte gUnknown_03004280 +_080E13D0: .4byte gUnknown_030041B4 +_080E13D4: + ldr r1, _080E13F8 +_080E13D6: + ldrh r0, [r4, 0x22] + subs r0, r2 + strh r0, [r1] + ldr r2, _080E13FC + movs r1, 0x1C + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r2, [r1, 0x20] + movs r3, 0x88 + lsls r3, 1 + adds r0, r3, 0 + subs r0, r2 + strh r0, [r1, 0x24] + b _080E1406 + .align 2, 0 +_080E13F8: .4byte gUnknown_03004280 +_080E13FC: .4byte gSprites +_080E1400: + ldr r1, _080E1410 + movs r0, 0x3 + strb r0, [r1, 0x15] +_080E1406: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080E1432 + .align 2, 0 +_080E1410: .4byte gUnknown_03004DC0 +_080E1414: + adds r0, r2, 0 + bl move_anim_task_del + ldr r2, _080E1438 + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080E1432: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E1438: .4byte gSprites + thumb_func_end sub_80E1284 + + thumb_func_start sub_80E143C +sub_80E143C: @ 80E143C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E147C + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r3, r1, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r3] + movs r4, 0 + strh r4, [r1, 0x24] + strh r4, [r1, 0x26] + ldr r0, _080E1480 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080E1488 + ldr r0, _080E1484 + b _080E148A + .align 2, 0 +_080E147C: .4byte gSprites +_080E1480: .4byte gUnknown_0202F7C8 +_080E1484: .4byte gUnknown_030041B4 +_080E1488: + ldr r0, _080E1498 +_080E148A: + strh r4, [r0] + adds r0, r5, 0 + bl move_anim_task_del + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E1498: .4byte gUnknown_03004280 + thumb_func_end sub_80E143C + + thumb_func_start sub_80E149C +sub_80E149C: @ 80E149C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E14BC + adds r1, r0, r1 + ldr r0, _080E14C0 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0 + bne _080E14C8 + ldr r0, _080E14C4 + b _080E14CA + .align 2, 0 +_080E14BC: .4byte gTasks +_080E14C0: .4byte gUnknown_03004B00 +_080E14C4: .4byte sub_80E14DC +_080E14C8: + ldr r0, _080E14D8 +_080E14CA: + str r0, [r1] + ldr r1, [r1] + adds r0, r2, 0 + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080E14D8: .4byte sub_80E1560 + thumb_func_end sub_80E149C + + thumb_func_start sub_80E14DC +sub_80E14DC: @ 80E14DC + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E14FC + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _080E1500 + cmp r5, 0x1 + beq _080E1554 + b _080E155A + .align 2, 0 +_080E14FC: .4byte gTasks +_080E1500: + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldr r3, _080E1550 + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r5, [r0, 0x24] + movs r1, 0x1C + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r2, [r1, 0x22] + movs r0, 0xA0 + subs r0, r2 + strh r0, [r1, 0x26] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080E155A + .align 2, 0 +_080E1550: .4byte gSprites +_080E1554: + adds r0, r2, 0 + bl move_anim_task_del +_080E155A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80E14DC + + thumb_func_start sub_80E1560 +sub_80E1560: @ 80E1560 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E1584 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bhi _080E1662 + lsls r0, 2 + ldr r1, _080E1588 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E1584: .4byte gTasks +_080E1588: .4byte _080E158C + .align 2, 0 +_080E158C: + .4byte _080E15A0 + .4byte _080E15F4 + .4byte _080E1602 + .4byte _080E161C + .4byte _080E165C +_080E15A0: + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldr r0, _080E15C4 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1E] + cmp r0, 0x1 + bne _080E15CC + ldr r0, _080E15C8 + b _080E15CE + .align 2, 0 +_080E15C4: .4byte gUnknown_0202F7C8 +_080E15C8: .4byte gUnknown_030042C0 +_080E15CC: + ldr r0, _080E15EC +_080E15CE: + ldrh r0, [r0] + strh r0, [r4, 0x20] + ldr r0, _080E15F0 + ldrb r0, [r0] + bl sub_8077FC0 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r4, 0x24] + adds r0, 0x20 + strh r0, [r4, 0x26] + b _080E164A + .align 2, 0 +_080E15EC: .4byte gUnknown_03004288 +_080E15F0: .4byte gUnknown_0202F7C8 +_080E15F4: + ldrb r0, [r4, 0x1E] + movs r1, 0x26 + ldrsh r2, [r4, r1] + movs r1, 0 + bl sub_80E1668 + b _080E164A +_080E1602: + ldr r2, _080E1618 + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x60 + strh r1, [r0, 0x26] + b _080E164A + .align 2, 0 +_080E1618: .4byte gSprites +_080E161C: + ldr r2, _080E1654 + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x8 + strh r1, [r0, 0x26] + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x26 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080E1662 + ldr r1, _080E1658 + movs r0, 0x3 + strb r0, [r1, 0x15] +_080E164A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080E1662 + .align 2, 0 +_080E1654: .4byte gSprites +_080E1658: .4byte gUnknown_03004DC0 +_080E165C: + adds r0, r2, 0 + bl move_anim_task_del +_080E1662: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E1560 + + thumb_func_start sub_80E1668 +sub_80E1668: @ 80E1668 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r4, r2, 16 + cmp r0, 0x1 + bne _080E168C + ldr r0, _080E1684 + ldrh r3, [r0] + ldr r0, _080E1688 + b _080E1692 + .align 2, 0 +_080E1684: .4byte gUnknown_030042C0 +_080E1688: .4byte REG_BG1HOFS +_080E168C: + ldr r0, _080E1718 + ldrh r3, [r0] + ldr r0, _080E171C +_080E1692: + str r0, [sp] + lsls r0, r1, 16 + cmp r0, 0 + bge _080E169C + movs r1, 0 +_080E169C: + lsls r2, r1, 16 + lsls r0, r4, 16 + asrs r4, r0, 16 + cmp r2, r0 + bge _080E16C8 + ldr r5, _080E1720 + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 +_080E16AE: + asrs r2, 16 + lsls r1, r2, 1 + adds r0, r1, r5 + strh r3, [r0] + adds r1, r6 + strh r3, [r1] + adds r2, 0x1 + lsls r2, 16 + lsrs r1, r2, 16 + lsls r2, r1, 16 + asrs r0, r2, 16 + cmp r0, r4 + blt _080E16AE +_080E16C8: + lsls r1, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + bgt _080E16F6 + ldr r4, _080E1720 + lsls r0, r3, 16 + asrs r0, 16 + adds r3, r0, 0 + adds r3, 0xF0 + movs r0, 0xF0 + lsls r0, 3 + adds r5, r4, r0 +_080E16E0: + asrs r2, r1, 16 + lsls r1, r2, 1 + adds r0, r1, r4 + strh r3, [r0] + adds r1, r5 + strh r3, [r1] + adds r2, 0x1 + lsls r1, r2, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + ble _080E16E0 +_080E16F6: + ldr r0, _080E1724 + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80895F8 + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E1718: .4byte gUnknown_03004288 +_080E171C: .4byte REG_BG2HOFS +_080E1720: .4byte gUnknown_03004DE0 +_080E1724: .4byte 0xa2600001 + thumb_func_end sub_80E1668 + + thumb_func_start sub_80E1728 +sub_80E1728: @ 80E1728 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, _080E173C + movs r2, 0 + ldrsh r1, [r0, r2] + adds r7, r0, 0 + cmp r1, 0 + bne _080E1744 + ldr r0, _080E1740 + b _080E1746 + .align 2, 0 +_080E173C: .4byte gUnknown_03004B00 +_080E1740: .4byte gUnknown_0202F7C8 +_080E1744: + ldr r0, _080E17A8 +_080E1746: + ldrb r4, [r0] + movs r6, 0x18 + adds r1, r7, 0 + movs r2, 0x2 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + bne _080E1762 + negs r0, r6 + lsls r0, 16 + lsrs r6, r0, 16 + movs r2, 0x4 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x4] +_080E1762: + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x20] + adds r0, r4, 0 + bl sub_8077FC0 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1E + strh r0, [r5, 0x22] + ldrh r1, [r7, 0xA] + strh r1, [r5, 0x2E] + ldrh r1, [r7, 0x4] + ldrh r2, [r5, 0x20] + adds r1, r2 + strh r1, [r5, 0x32] + ldrh r1, [r7, 0x6] + adds r0, r1 + strh r0, [r5, 0x36] + ldrh r0, [r7, 0x8] + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_80786EC + ldr r0, _080E17AC + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E17A8: .4byte gUnknown_0202F7C9 +_080E17AC: .4byte sub_80E17B0 + thumb_func_end sub_80E1728 + + thumb_func_start sub_80E17B0 +sub_80E17B0: @ 80E17B0 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080E17C4 + adds r0, r4, 0 + bl move_anim_8072740 +_080E17C4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E17B0 + + thumb_func_start sub_80E17CC +sub_80E17CC: @ 80E17CC + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _080E17E0 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080E17E8 + ldr r0, _080E17E4 + b _080E17EA + .align 2, 0 +_080E17E0: .4byte gUnknown_03004B00 +_080E17E4: .4byte gUnknown_0202F7C8 +_080E17E8: + ldr r0, _080E1848 +_080E17EA: + ldrb r5, [r0] + adds r0, r5, 0 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E184C + adds r0, r2 + ldr r4, _080E1850 + movs r3, 0x2 + ldrsh r1, [r4, r3] + lsls r1, 5 + adds r0, r1 + strh r0, [r6, 0x20] + adds r0, r5, 0 + bl sub_8077FC0 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r6, 0x22] + ldrh r2, [r6, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0x2 + ldrsh r0, [r4, r3] + lsls r0, 3 + adds r1, r0 + ldr r3, _080E1854 + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080E1858 + ands r0, r2 + orrs r0, r1 + strh r0, [r6, 0x4] + ldr r1, _080E185C + adds r0, r6, 0 + bl oamt_set_x3A_32 + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x2E] + ldr r0, _080E1860 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E1848: .4byte gUnknown_0202F7C9 +_080E184C: .4byte 0x0000fff0 +_080E1850: .4byte gUnknown_03004B00 +_080E1854: .4byte 0x000003ff +_080E1858: .4byte 0xfffffc00 +_080E185C: .4byte move_anim_8072740 +_080E1860: .4byte sub_80782D8 + thumb_func_end sub_80E17CC + + thumb_func_start sub_80E1864 +sub_80E1864: @ 80E1864 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080E1888 + adds r4, r0, r1 + ldr r0, _080E188C + ldrh r2, [r0, 0x2] + movs r3, 0x2 + ldrsh r1, [r0, r3] + adds r6, r0, 0 + cmp r1, 0 + beq _080E1890 + adds r0, r2, 0x3 + b _080E189C + .align 2, 0 +_080E1888: .4byte gTasks +_080E188C: .4byte gUnknown_03004B00 +_080E1890: + ldr r0, _080E18BC + ldrh r0, [r0] + movs r1, 0xA + bl __udivsi3 + adds r0, 0x3 +_080E189C: + strh r0, [r4, 0x26] + strh r0, [r4, 0x24] + adds r1, r6, 0 + ldrh r0, [r1, 0x4] + strh r0, [r4, 0xE] + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0x4 + beq _080E18C8 + cmp r0, 0x5 + bne _080E1908 + ldr r0, _080E18C0 + ldrh r0, [r0] + strh r0, [r4, 0x22] + ldr r0, _080E18C4 + b _080E1926 + .align 2, 0 +_080E18BC: .4byte gUnknown_0202F7BC +_080E18C0: .4byte gUnknown_030041B0 +_080E18C4: .4byte sub_80E1934 +_080E18C8: + movs r0, 0 + strh r0, [r4, 0x22] + movs r5, 0 +_080E18CE: + lsls r0, r5, 24 + lsrs r0, 24 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080E18F8 + movs r3, 0x22 + ldrsh r0, [r4, r3] + adds r0, 0x9 + lsls r0, 1 + adds r1, r4, 0 + adds r1, 0x8 + adds r1, r0 + ldr r0, _080E1904 + adds r0, r5, r0 + ldrb r0, [r0] + strh r0, [r1] + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] +_080E18F8: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080E18CE + b _080E1924 + .align 2, 0 +_080E1904: .4byte gUnknown_02024BE0 +_080E1908: + ldrb r0, [r6] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1A] + cmp r0, 0xFF + bne _080E1920 + adds r0, r5, 0 + bl move_anim_task_del + b _080E1928 +_080E1920: + movs r0, 0x1 + strh r0, [r4, 0x22] +_080E1924: + ldr r0, _080E1930 +_080E1926: + str r0, [r4] +_080E1928: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E1930: .4byte sub_80E1A2C + thumb_func_end sub_80E1864 + + thumb_func_start sub_80E1934 +sub_80E1934: @ 80E1934 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E1958 + adds r3, r0, r1 + movs r0, 0x8 + ldrsh r1, [r3, r0] + cmp r1, 0x1 + beq _080E19B8 + cmp r1, 0x1 + bgt _080E195C + cmp r1, 0 + beq _080E1962 + b _080E1A24 + .align 2, 0 +_080E1958: .4byte gTasks +_080E195C: + cmp r1, 0x2 + beq _080E1A18 + b _080E1A24 +_080E1962: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080E1A24 + strh r1, [r3, 0xA] + ldrh r1, [r3, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080E198C + ldr r1, _080E1988 + ldrh r0, [r3, 0x26] + ldrh r2, [r3, 0x22] + adds r0, r2 + strh r0, [r1] + b _080E1996 + .align 2, 0 +_080E1988: .4byte gUnknown_030041B0 +_080E198C: + ldr r0, _080E19B4 + ldrh r1, [r3, 0x22] + ldrh r2, [r3, 0x26] + subs r1, r2 + strh r1, [r0] +_080E1996: + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xE + ldrsh r1, [r3, r2] + cmp r0, r1 + bne _080E1A24 + movs r0, 0 + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x24] + subs r0, 0x1 + strh r0, [r3, 0x24] + b _080E1A0C + .align 2, 0 +_080E19B4: .4byte gUnknown_030041B0 +_080E19B8: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080E1A24 + movs r0, 0 + strh r0, [r3, 0xA] + ldrh r0, [r3, 0xC] + ands r1, r0 + cmp r1, 0 + bne _080E19E4 + ldr r1, _080E19E0 + ldrh r0, [r3, 0x24] + ldrh r2, [r3, 0x22] + adds r0, r2 + strh r0, [r1] + b _080E19EE + .align 2, 0 +_080E19E0: .4byte gUnknown_030041B0 +_080E19E4: + ldr r0, _080E1A14 + ldrh r1, [r3, 0x22] + ldrh r2, [r3, 0x24] + subs r1, r2 + strh r1, [r0] +_080E19EE: + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080E1A24 + movs r0, 0 + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x24] + subs r0, 0x1 + strh r0, [r3, 0x24] + lsls r0, 16 + cmp r0, 0 + bne _080E1A24 +_080E1A0C: + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + b _080E1A24 + .align 2, 0 +_080E1A14: .4byte gUnknown_030041B0 +_080E1A18: + ldr r1, _080E1A28 + ldrh r0, [r3, 0x22] + strh r0, [r1] + adds r0, r2, 0 + bl move_anim_task_del +_080E1A24: + pop {r0} + bx r0 + .align 2, 0 +_080E1A28: .4byte gUnknown_030041B0 + thumb_func_end sub_80E1934 + + thumb_func_start sub_80E1A2C +sub_80E1A2C: @ 80E1A2C + push {r4-r7,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080E1A50 + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080E1A8C + cmp r5, 0x1 + bgt _080E1A54 + cmp r5, 0 + beq _080E1A5A + b _080E1B06 + .align 2, 0 +_080E1A50: .4byte gTasks +_080E1A54: + cmp r5, 0x2 + beq _080E1AC8 + b _080E1B06 +_080E1A5A: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080E1B06 + strh r5, [r4, 0xA] + adds r0, r4, 0 + bl sub_80E1B10 + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xE + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080E1B06 + strh r5, [r4, 0xC] + ldrh r0, [r4, 0x24] + subs r0, 0x1 + strh r0, [r4, 0x24] + b _080E1AC0 +_080E1A8C: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080E1B06 + strh r5, [r4, 0xA] + adds r0, r4, 0 + bl sub_80E1B10 + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080E1B06 + strh r5, [r4, 0xC] + ldrh r0, [r4, 0x24] + subs r0, 0x1 + strh r0, [r4, 0x24] + lsls r0, 16 + cmp r0, 0 + bne _080E1B06 +_080E1AC0: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080E1B06 +_080E1AC8: + movs r2, 0 + movs r7, 0x22 + ldrsh r0, [r4, r7] + cmp r2, r0 + bge _080E1B00 + ldr r0, _080E1B0C + mov r12, r0 + adds r5, r4, 0 + adds r5, 0x8 + movs r6, 0 +_080E1ADC: + adds r0, r2, 0 + adds r0, 0x9 + lsls r0, 1 + adds r0, r5, r0 + movs r7, 0 + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r12 + strh r6, [r0, 0x24] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0x22 + ldrsh r0, [r4, r1] + cmp r2, r0 + blt _080E1ADC +_080E1B00: + adds r0, r3, 0 + bl move_anim_task_del +_080E1B06: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E1B0C: .4byte gSprites + thumb_func_end sub_80E1A2C + + thumb_func_start sub_80E1B10 +sub_80E1B10: @ 80E1B10 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0xC] + movs r4, 0x1 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne _080E1B38 + movs r0, 0x24 + ldrsh r1, [r3, r0] + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + ldrh r2, [r3, 0x24] + adds r0, r4, 0 + ands r0, r2 + adds r1, r0 + lsls r1, 16 + lsrs r4, r1, 16 + b _080E1B48 +_080E1B38: + movs r1, 0x24 + ldrsh r0, [r3, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + negs r0, r0 + lsls r0, 16 + lsrs r4, r0, 16 +_080E1B48: + movs r2, 0 + movs r7, 0x22 + ldrsh r0, [r3, r7] + cmp r2, r0 + bge _080E1B7C + ldr r6, _080E1B84 + adds r5, r3, 0 + adds r5, 0x8 +_080E1B58: + adds r0, r2, 0 + adds r0, 0x9 + lsls r0, 1 + adds r0, r5, r0 + movs r7, 0 + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r4, [r0, 0x24] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0x22 + ldrsh r0, [r3, r1] + cmp r2, r0 + blt _080E1B58 +_080E1B7C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E1B84: .4byte gSprites + thumb_func_end sub_80E1B10 + + thumb_func_start sub_80E1B88 +sub_80E1B88: @ 80E1B88 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, _080E1BA8 + movs r2, 0 + ldr r0, _080E1BAC + ldrh r0, [r0] + cmp r0, 0x63 + bls _080E1B9C + movs r2, 0x1 +_080E1B9C: + strh r2, [r3, 0x1E] + adds r0, r1, 0 + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080E1BA8: .4byte gUnknown_03004B00 +_080E1BAC: .4byte gUnknown_0202F7BC + thumb_func_end sub_80E1B88 + + thumb_func_start sub_80E1BB0 +sub_80E1BB0: @ 80E1BB0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, _080E1BC8 + ldrh r1, [r2] + movs r0, 0x1 + ands r0, r1 + adds r6, r2, 0 + cmp r0, 0 + beq _080E1BD0 + ldr r0, _080E1BCC + b _080E1BD2 + .align 2, 0 +_080E1BC8: .4byte gUnknown_03004B00 +_080E1BCC: .4byte gUnknown_0202F7C9 +_080E1BD0: + ldr r0, _080E1C40 +_080E1BD2: + ldrb r0, [r0] + adds r5, r0, 0 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + ble _080E1BE2 + movs r0, 0x2 + eors r5, r0 +_080E1BE2: + ldr r0, _080E1C44 + ldrb r1, [r6, 0x2] + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080E1C48 + adds r4, r0 + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x20 + subs r1, r0 + ldr r2, _080E1C4C + adds r0, r2, 0 + ands r1, r0 + strh r1, [r4, 0xA] + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x40 + subs r1, r0 + movs r0, 0xFF + ands r1, r0 + strh r1, [r4, 0xC] + ldr r2, _080E1C50 + ldrh r0, [r4, 0xA] + strh r0, [r2] + ldr r0, _080E1C54 + strh r1, [r0] + ldrh r0, [r6, 0x4] + strh r0, [r4, 0xE] + adds r0, r7, 0 + bl move_anim_task_del + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E1C40: .4byte gUnknown_0202F7C8 +_080E1C44: .4byte sub_80E1C58 +_080E1C48: .4byte gTasks +_080E1C4C: .4byte 0x000001ff +_080E1C50: .4byte gUnknown_030041B0 +_080E1C54: .4byte gUnknown_030041B8 + thumb_func_end sub_80E1BB0 + + thumb_func_start sub_80E1C58 +sub_80E1C58: @ 80E1C58 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080E1C88 + adds r2, r0, r1 + ldr r0, _080E1C8C + movs r4, 0xE + ldrsh r1, [r0, r4] + movs r4, 0xE + ldrsh r0, [r2, r4] + cmp r1, r0 + bne _080E1C98 + ldr r0, _080E1C90 + movs r1, 0 + strh r1, [r0] + ldr r0, _080E1C94 + strh r1, [r0] + adds r0, r3, 0 + bl DestroyTask + b _080E1CA4 + .align 2, 0 +_080E1C88: .4byte gTasks +_080E1C8C: .4byte gUnknown_03004B00 +_080E1C90: .4byte gUnknown_030041B0 +_080E1C94: .4byte gUnknown_030041B8 +_080E1C98: + ldr r1, _080E1CAC + ldrh r0, [r2, 0xA] + strh r0, [r1] + ldr r1, _080E1CB0 + ldrh r0, [r2, 0xC] + strh r0, [r1] +_080E1CA4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E1CAC: .4byte gUnknown_030041B0 +_080E1CB0: .4byte gUnknown_030041B8 + thumb_func_end sub_80E1C58 + + thumb_func_start sub_80E1CB4 +sub_80E1CB4: @ 80E1CB4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080E1CEC + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldr r0, _080E1CF0 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080E1CF4 + ldrh r0, [r5, 0x6] + negs r0, r0 + strh r0, [r4, 0x30] + movs r0, 0x1 + strh r0, [r4, 0x36] + b _080E1D02 + .align 2, 0 +_080E1CEC: .4byte gUnknown_03004B00 +_080E1CF0: .4byte gUnknown_0202F7C8 +_080E1CF4: + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + strh r1, [r4, 0x36] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080E1D02: + ldr r0, _080E1D18 + ldrh r0, [r0, 0x8] + strh r0, [r4, 0x34] + ldr r1, _080E1D1C + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E1D18: .4byte gUnknown_03004B00 +_080E1D1C: .4byte sub_80E1D20 + thumb_func_end sub_80E1CB4 + + thumb_func_start sub_80E1D20 +sub_80E1D20: @ 80E1D20 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x1E + bl Cos + strh r0, [r4, 0x24] + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r1, 0xA + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + cmp r0, 0x7F + bhi _080E1D52 + ldrb r0, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4, 0x5] + b _080E1D5A +_080E1D52: + ldrb r0, [r4, 0x5] + movs r1, 0xC + orrs r0, r1 + strb r0, [r4, 0x5] +_080E1D5A: + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x2E] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x34 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080E1D7E + adds r0, r4, 0 + bl move_anim_8072740 +_080E1D7E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E1D20 + + thumb_func_start sub_80E1D84 +sub_80E1D84: @ 80E1D84 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + ldr r4, _080E1DBC + movs r1, 0 + ldrsh r0, [r4, r1] + bl sub_80E1DC4 + movs r1, 0x2 + ldrsb r1, [r4, r1] + ldrb r2, [r4, 0x4] + ldrb r3, [r4, 0x6] + ldrh r4, [r4, 0x8] + str r4, [sp] + bl BeginNormalPaletteFade + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080E1DC0 + str r0, [r5, 0x1C] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E1DBC: .4byte gUnknown_03004B00 +_080E1DC0: .4byte sub_80E1E0C + thumb_func_end sub_80E1D84 + + thumb_func_start sub_80E1DC4 +sub_80E1DC4: @ 80E1DC4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + lsls r0, 16 + lsrs r0, 16 + movs r4, 0x1 + mov r8, r0 + mov r1, r8 + ands r1, r4 + mov r8, r1 + lsls r0, 16 + asrs r1, r0, 17 + ands r1, r4 + asrs r2, r0, 18 + ands r2, r4 + asrs r3, r0, 19 + ands r3, r4 + asrs r6, r0, 20 + ands r6, r4 + asrs r5, r0, 21 + ands r5, r4 + asrs r0, 22 + ands r0, r4 + str r6, [sp] + str r5, [sp, 0x4] + str r0, [sp, 0x8] + mov r0, r8 + bl sub_80791A8 + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80E1DC4 + + thumb_func_start sub_80E1E0C +sub_80E1E0C: @ 80E1E0C + push {lr} + adds r2, r0, 0 + ldr r0, _080E1E28 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080E1E22 + adds r0, r2, 0 + bl move_anim_8072740 +_080E1E22: + pop {r0} + bx r0 + .align 2, 0 +_080E1E28: .4byte gPaletteFade + thumb_func_end sub_80E1E0C + + thumb_func_start sub_80E1E2C +sub_80E1E2C: @ 80E1E2C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080E1E78 + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x2E] + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x32] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x34] + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x36] + ldrh r0, [r4, 0xA] + strh r0, [r5, 0x38] + ldrh r0, [r4, 0xC] + strh r0, [r5, 0x3A] + ldrh r0, [r4] + strh r0, [r5, 0x3C] + movs r1, 0x3C + ldrsh r0, [r5, r1] + bl sub_80E1DC4 + ldrb r1, [r4, 0x8] + ldrh r2, [r4, 0x6] + bl BlendPalettes + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080E1E7C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E1E78: .4byte gUnknown_03004B00 +_080E1E7C: .4byte sub_80E1E80 + thumb_func_end sub_80E1E2C + + thumb_func_start sub_80E1E80 +sub_80E1E80: @ 80E1E80 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080E1E94 + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + b _080E1F04 +_080E1E94: + ldr r0, _080E1EB0 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080E1F04 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080E1EB8 + ldr r0, _080E1EB4 + str r0, [r4, 0x1C] + b _080E1F04 + .align 2, 0 +_080E1EB0: .4byte gPaletteFade +_080E1EB4: .4byte sub_80E1F0C +_080E1EB8: + movs r2, 0x3C + ldrsh r0, [r4, r2] + bl sub_80E1DC4 + adds r3, r0, 0 + ldrh r1, [r4, 0x30] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080E1EDE + ldrh r1, [r4, 0x36] + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r4, 0x34] + adds r0, r3, 0 + bl BlendPalettes + b _080E1EEC +_080E1EDE: + ldrh r1, [r4, 0x3A] + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r4, 0x38] + adds r0, r3, 0 + bl BlendPalettes +_080E1EEC: + ldrh r0, [r4, 0x30] + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + eors r0, r1 + strh r0, [r4, 0x30] + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x32] + subs r0, 0x1 + strh r0, [r4, 0x32] +_080E1F04: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E1E80 + + thumb_func_start sub_80E1F0C +sub_80E1F0C: @ 80E1F0C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080E1F38 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080E1F32 + movs r1, 0x3C + ldrsh r0, [r4, r1] + bl sub_80E1DC4 + movs r1, 0 + movs r2, 0 + bl BlendPalettes + adds r0, r4, 0 + bl move_anim_8072740 +_080E1F32: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E1F38: .4byte gPaletteFade + thumb_func_end sub_80E1F0C + + thumb_func_start sub_80E1F3C +sub_80E1F3C: @ 80E1F3C + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080E1F80 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + movs r2, 0 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + strh r2, [r4, 0x2E] + movs r0, 0xA + strh r0, [r4, 0x30] + movs r0, 0x8 + strh r0, [r4, 0x32] + movs r0, 0x28 + strh r0, [r4, 0x34] + movs r0, 0x70 + strh r0, [r4, 0x36] + strh r2, [r4, 0x38] + ldr r1, _080E1F84 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r1, _080E1F88 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E1F80: .4byte gUnknown_03004B00 +_080E1F84: .4byte move_anim_8074EE0 +_080E1F88: .4byte sub_8078174 + thumb_func_end sub_80E1F3C + + thumb_func_start sub_80E1F8C +sub_80E1F8C: @ 80E1F8C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080E1FD0 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r3, _080E1FD4 + ldrh r1, [r3] + movs r5, 0 + strh r1, [r4, 0x8] + ldrh r1, [r3, 0x2] + strh r1, [r4, 0xA] + ldrh r1, [r3, 0x4] + strh r1, [r4, 0xC] + ldrh r1, [r3, 0x6] + strh r1, [r4, 0xE] + ldrh r2, [r3, 0x8] + strh r2, [r4, 0x10] + ldrh r1, [r3, 0xA] + strh r1, [r4, 0x12] + strh r5, [r4, 0x18] + lsls r2, 24 + lsrs r2, 24 + movs r1, 0 + bl sub_80E1FDC + ldr r0, _080E1FD8 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E1FD0: .4byte gTasks +_080E1FD4: .4byte gUnknown_03004B00 +_080E1FD8: .4byte sub_80E202C + thumb_func_end sub_80E1F8C + + thumb_func_start sub_80E1FDC +sub_80E1FDC: @ 80E1FDC + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r1, _080E2028 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + bl sub_80E1DC4 + movs r1, 0xA + ldrsb r1, [r4, r1] + ldrh r2, [r4, 0x12] + str r2, [sp] + adds r2, r5, 0 + adds r3, r6, 0 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x18] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x18] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E2028: .4byte gTasks + thumb_func_end sub_80E1FDC + + thumb_func_start sub_80E202C +sub_80E202C: @ 80E202C + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, r3, 0 + ldr r0, _080E2064 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080E208E + ldr r1, _080E2068 + lsls r2, r3, 2 + adds r0, r2, r3 + lsls r0, 3 + adds r3, r0, r1 + movs r5, 0xC + ldrsh r0, [r3, r5] + adds r6, r1, 0 + adds r5, r2, 0 + cmp r0, 0 + ble _080E2088 + movs r1, 0x18 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080E206C + ldrb r1, [r3, 0xE] + ldrb r2, [r3, 0x10] + b _080E2070 + .align 2, 0 +_080E2064: .4byte gPaletteFade +_080E2068: .4byte gTasks +_080E206C: + ldrb r1, [r3, 0x10] + ldrb r2, [r3, 0xE] +_080E2070: + adds r0, r5, r4 + lsls r0, 3 + adds r0, r6 + movs r3, 0xC + ldrsh r0, [r0, r3] + cmp r0, 0x1 + bne _080E2080 + movs r2, 0 +_080E2080: + adds r0, r4, 0 + bl sub_80E1FDC + b _080E208E +_080E2088: + adds r0, r4, 0 + bl move_anim_task_del +_080E208E: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E202C + + thumb_func_start sub_80E2094 +sub_80E2094: @ 80E2094 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080E20D8 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r3, _080E20DC + ldrh r1, [r3] + movs r5, 0 + strh r1, [r4, 0x8] + ldrh r1, [r3, 0x2] + strh r1, [r4, 0xA] + ldrh r1, [r3, 0x4] + strh r1, [r4, 0xC] + ldrh r1, [r3, 0x6] + strh r1, [r4, 0xE] + ldrh r2, [r3, 0x8] + strh r2, [r4, 0x10] + ldrh r1, [r3, 0xA] + strh r1, [r4, 0x12] + strh r5, [r4, 0x18] + lsls r2, 24 + lsrs r2, 24 + movs r1, 0 + bl sub_80E20E4 + ldr r0, _080E20E0 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E20D8: .4byte gTasks +_080E20DC: .4byte gUnknown_03004B00 +_080E20E0: .4byte sub_80E2140 + thumb_func_end sub_80E2094 + + thumb_func_start sub_80E20E4 +sub_80E20E4: @ 80E20E4 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r1, _080E213C + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldrh r0, [r4, 0x8] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r2, 0x1 + lsls r2, r0 + movs r1, 0xA + ldrsb r1, [r4, r1] + ldrh r0, [r4, 0x12] + str r0, [sp] + adds r0, r2, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x18] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x18] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E213C: .4byte gTasks + thumb_func_end sub_80E20E4 + + thumb_func_start sub_80E2140 +sub_80E2140: @ 80E2140 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, r3, 0 + ldr r0, _080E2178 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080E21A2 + ldr r1, _080E217C + lsls r2, r3, 2 + adds r0, r2, r3 + lsls r0, 3 + adds r3, r0, r1 + movs r5, 0xC + ldrsh r0, [r3, r5] + adds r6, r1, 0 + adds r5, r2, 0 + cmp r0, 0 + ble _080E219C + movs r1, 0x18 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080E2180 + ldrb r1, [r3, 0xE] + ldrb r2, [r3, 0x10] + b _080E2184 + .align 2, 0 +_080E2178: .4byte gPaletteFade +_080E217C: .4byte gTasks +_080E2180: + ldrb r1, [r3, 0x10] + ldrb r2, [r3, 0xE] +_080E2184: + adds r0, r5, r4 + lsls r0, 3 + adds r0, r6 + movs r3, 0xC + ldrsh r0, [r0, r3] + cmp r0, 0x1 + bne _080E2194 + movs r2, 0 +_080E2194: + adds r0, r4, 0 + bl sub_80E20E4 + b _080E21A2 +_080E219C: + adds r0, r4, 0 + bl move_anim_task_del +_080E21A2: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E2140 + + thumb_func_start sub_80E21A8 +sub_80E21A8: @ 80E21A8 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080E2208 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r5, _080E220C + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x8] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0xA] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0xC] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0xE] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x10] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x12] + ldrh r0, [r5, 0xC] + strh r0, [r4, 0x14] + ldrh r0, [r5] + strh r0, [r4, 0x16] + ldrh r0, [r5] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + ldrb r3, [r5, 0x8] + ldrh r0, [r5, 0x6] + str r0, [sp] + adds r0, r1, 0 + movs r1, 0 + adds r2, r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080E2210 + str r0, [r4] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E2208: .4byte gTasks +_080E220C: .4byte gUnknown_03004B00 +_080E2210: .4byte sub_80E2214 + thumb_func_end sub_80E21A8 + + thumb_func_start sub_80E2214 +sub_80E2214: @ 80E2214 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080E2238 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0x8] + movs r2, 0x8 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080E223C + subs r0, r1, 0x1 + strh r0, [r4, 0x8] + b _080E22C0 + .align 2, 0 +_080E2238: .4byte gTasks +_080E223C: + ldr r0, _080E2258 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080E22C0 + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080E2260 + ldr r0, _080E225C + str r0, [r4] + b _080E22C0 + .align 2, 0 +_080E2258: .4byte gPaletteFade +_080E225C: .4byte sub_80E22CC +_080E2260: + ldrh r0, [r4, 0x16] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r2, 0x1 + lsls r2, r0 + ldrh r1, [r4, 0xA] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080E228E + ldrb r3, [r4, 0x10] + ldrh r0, [r4, 0xE] + str r0, [sp] + adds r0, r2, 0 + movs r1, 0 + adds r2, r3, 0 + bl BeginNormalPaletteFade + b _080E229E +_080E228E: + ldrb r3, [r4, 0x14] + ldrh r0, [r4, 0x12] + str r0, [sp] + adds r0, r2, 0 + movs r1, 0 + adds r2, r3, 0 + bl BeginNormalPaletteFade +_080E229E: + ldr r0, _080E22C8 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xA] + movs r3, 0x80 + lsls r3, 1 + adds r2, r3, 0 + eors r0, r2 + strh r0, [r1, 0xA] + movs r2, 0xFF + ands r0, r2 + strh r0, [r1, 0x8] + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] +_080E22C0: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E22C8: .4byte gTasks + thumb_func_end sub_80E2214 + + thumb_func_start sub_80E22CC +sub_80E22CC: @ 80E22CC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E231C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080E2312 + ldr r1, _080E2320 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x16] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + str r5, [sp] + adds r0, r1, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl BeginNormalPaletteFade + adds r0, r4, 0 + bl move_anim_task_del +_080E2312: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E231C: .4byte gPaletteFade +_080E2320: .4byte gTasks + thumb_func_end sub_80E22CC + + thumb_func_start sub_80E2324 +sub_80E2324: @ 80E2324 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r2, 0 + ldr r0, _080E239C + ldrb r6, [r0] + ldr r0, _080E23A0 + ldrb r7, [r0] + ldr r4, _080E23A4 + ldrh r1, [r4] + movs r5, 0x80 + lsls r5, 1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080E235E + str r2, [sp] + str r2, [sp, 0x4] + str r2, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r3, 0 + bl sub_80791A8 + adds r2, r0, 0 +_080E235E: + ldrh r1, [r4, 0x2] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080E2370 + movs r0, 0x80 + lsls r0, 9 + lsls r0, r6 + orrs r2, r0 +_080E2370: + ldrh r1, [r4, 0x4] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080E2382 + movs r0, 0x80 + lsls r0, 9 + lsls r0, r7 + orrs r2, r0 +_080E2382: + adds r0, r2, 0 + bl InvertPlttBuffer + mov r0, r8 + bl move_anim_task_del + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E239C: .4byte gUnknown_0202F7C8 +_080E23A0: .4byte gUnknown_0202F7C9 +_080E23A4: .4byte gUnknown_03004B00 + thumb_func_end sub_80E2324 + + thumb_func_start unref_sub_80E23A8 +unref_sub_80E23A8: @ 80E23A8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r5, 0 + ldr r1, _080E249C + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080E23EA + ldr r1, _080E24A0 + ldrh r0, [r1] + strh r0, [r4, 0xC] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0xE] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x10] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0xA] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x12] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x14] + ldrh r0, [r1, 0xC] + strh r0, [r4, 0x16] +_080E23EA: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldr r0, _080E24A4 + ldrb r0, [r0] + mov r9, r0 + ldr r0, _080E24A8 + ldrb r0, [r0] + mov r10, r0 + ldrh r1, [r4, 0xC] + movs r7, 0x80 + lsls r7, 1 + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _080E240C + ldr r5, _080E24AC +_080E240C: + movs r6, 0x1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _080E243C + ldr r2, _080E24B0 + ldr r0, _080E24B4 + add r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x14 + adds r0, r2 + ldr r0, [r0] + ldrh r0, [r0, 0x2] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r1, r6, 0 + lsls r1, r0 + lsls r1, 16 + orrs r5, r1 +_080E243C: + ldrh r1, [r4, 0xE] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _080E2450 + adds r0, r6, 0 + mov r2, r9 + lsls r0, r2 + lsls r0, 16 + orrs r5, r0 +_080E2450: + ldrh r1, [r4, 0x10] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _080E2464 + adds r0, r6, 0 + mov r1, r10 + lsls r0, r1 + lsls r0, 16 + orrs r5, r0 +_080E2464: + movs r1, 0x12 + ldrsb r1, [r4, r1] + movs r2, 0x14 + ldrsb r2, [r4, r2] + movs r3, 0x16 + ldrsb r3, [r4, r3] + adds r0, r5, 0 + bl TintPlttBuffer + movs r2, 0x8 + ldrsh r1, [r4, r2] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080E248E + adds r0, r5, 0 + bl UnfadePlttBuffer + mov r0, r8 + bl move_anim_task_del +_080E248E: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E249C: .4byte gTasks +_080E24A0: .4byte gUnknown_03004B00 +_080E24A4: .4byte gUnknown_0202F7C8 +_080E24A8: .4byte gUnknown_0202F7C9 +_080E24AC: .4byte 0x0000ffff +_080E24B0: .4byte gSprites +_080E24B4: .4byte gUnknown_03004340 + thumb_func_end unref_sub_80E23A8 + + thumb_func_start sub_80E24B8 +sub_80E24B8: @ 80E24B8 + push {r4,lr} + adds r4, r0, 0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080E24EC + ldrh r0, [r1] + negs r0, r0 + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x34] + movs r2, 0x6 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + beq _080E2500 + cmp r0, 0x1 + bgt _080E24F0 + cmp r0, 0 + beq _080E24F6 + b _080E2518 + .align 2, 0 +_080E24EC: .4byte gUnknown_03004B00 +_080E24F0: + cmp r0, 0x2 + beq _080E2508 + b _080E2518 +_080E24F6: + ldr r1, _080E24FC + b _080E250A + .align 2, 0 +_080E24FC: .4byte gUnknown_030041B0 +_080E2500: + ldr r1, _080E2504 + b _080E250A + .align 2, 0 +_080E2504: .4byte gUnknown_030041B8 +_080E2508: + ldr r1, _080E2514 +_080E250A: + adds r0, r4, 0 + bl oamt_set_x3A_32 + b _080E2520 + .align 2, 0 +_080E2514: .4byte gSpriteCoordOffsetX +_080E2518: + ldr r1, _080E2550 + adds r0, r4, 0 + bl oamt_set_x3A_32 +_080E2520: + movs r0, 0x3A + ldrsh r1, [r4, r0] + movs r2, 0x3C + ldrsh r0, [r4, r2] + lsls r0, 16 + orrs r1, r0 + ldr r0, [r1] + strh r0, [r4, 0x36] + ldr r0, _080E2554 + ldrh r0, [r0, 0x6] + strh r0, [r4, 0x38] + subs r0, 0x2 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080E2544 + bl sub_80E260C +_080E2544: + ldr r0, _080E2558 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E2550: .4byte gSpriteCoordOffsetY +_080E2554: .4byte gUnknown_03004B00 +_080E2558: .4byte sub_80E255C + thumb_func_end sub_80E24B8 + + thumb_func_start sub_80E255C +sub_80E255C: @ 80E255C + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x34] + movs r2, 0x34 + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _080E25A0 + subs r0, r1, 0x1 + strh r0, [r3, 0x34] + ldrh r1, [r3, 0x30] + movs r2, 0x30 + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _080E257E + subs r0, r1, 0x1 + strh r0, [r3, 0x30] + b _080E25FA +_080E257E: + ldrh r0, [r3, 0x32] + strh r0, [r3, 0x30] + movs r0, 0x3A + ldrsh r1, [r3, r0] + movs r2, 0x3C + ldrsh r0, [r3, r2] + lsls r0, 16 + orrs r1, r0 + movs r0, 0x2E + ldrsh r2, [r3, r0] + ldr r0, [r1] + adds r0, r2 + str r0, [r1] + ldrh r0, [r3, 0x2E] + negs r0, r0 + strh r0, [r3, 0x2E] + b _080E25FA +_080E25A0: + movs r2, 0x3A + ldrsh r1, [r3, r2] + movs r2, 0x3C + ldrsh r0, [r3, r2] + lsls r0, 16 + orrs r1, r0 + movs r2, 0x36 + ldrsh r0, [r3, r2] + str r0, [r1] + ldrh r0, [r3, 0x38] + subs r0, 0x2 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080E25F4 + movs r4, 0 + ldr r5, _080E2600 + ldrb r0, [r5] + cmp r4, r0 + bcs _080E25F4 + ldr r2, _080E2604 + mov r12, r2 + ldr r6, _080E2608 + movs r7, 0x3 + negs r7, r7 +_080E25D2: + adds r0, r4, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r12 + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r7, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r5] + cmp r4, r0 + bcc _080E25D2 +_080E25F4: + adds r0, r3, 0 + bl move_anim_8072740 +_080E25FA: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E2600: .4byte gUnknown_02024A68 +_080E2604: .4byte gSprites +_080E2608: .4byte gUnknown_02024BE0 + thumb_func_end sub_80E255C + + thumb_func_start sub_80E260C +sub_80E260C: @ 80E260C + push {r4-r6,lr} + ldr r6, _080E2680 + ldr r4, _080E2684 + ldr r5, _080E2688 + ldrb r0, [r5] + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x3 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + ldr r3, _080E268C + ldrb r0, [r3] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + ldr r0, _080E2690 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x2 + bne _080E2694 + ldrb r0, [r5] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r3] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + b _080E26B0 + .align 2, 0 +_080E2680: .4byte gSprites +_080E2684: .4byte gUnknown_02024BE0 +_080E2688: .4byte gUnknown_0202F7C8 +_080E268C: .4byte gUnknown_0202F7C9 +_080E2690: .4byte gUnknown_03004B00 +_080E2694: + cmp r0, 0 + bne _080E269C + ldrb r0, [r5] + b _080E269E +_080E269C: + ldrb r0, [r3] +_080E269E: + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x2 +_080E26B0: + orrs r1, r2 + strb r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E260C + + thumb_func_start sub_80E26BC +sub_80E26BC: @ 80E26BC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080E26FC + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r1 + ldr r3, _080E2700 + ldrh r1, [r3] + strh r1, [r2, 0x8] + ldrh r1, [r3, 0x2] + strh r1, [r2, 0xA] + ldrh r1, [r3, 0x4] + strh r1, [r2, 0xC] + ldrh r1, [r3, 0x6] + strh r1, [r2, 0xE] + ldrh r1, [r3, 0x6] + strh r1, [r2, 0x18] + ldr r4, _080E2704 + ldrh r1, [r3] + strh r1, [r4] + ldr r4, _080E2708 + ldrh r1, [r3, 0x2] + strh r1, [r4] + ldr r1, _080E270C + str r1, [r2] + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E26FC: .4byte gTasks +_080E2700: .4byte gUnknown_03004B00 +_080E2704: .4byte gUnknown_030041B0 +_080E2708: .4byte gUnknown_030041B8 +_080E270C: .4byte sub_80E2710 + thumb_func_end sub_80E26BC + + thumb_func_start sub_80E2710 +sub_80E2710: @ 80E2710 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080E2740 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r1 + ldrh r2, [r3, 0xE] + movs r4, 0xE + ldrsh r0, [r3, r4] + mov r12, r1 + cmp r0, 0 + bne _080E2796 + ldr r0, _080E2744 + ldrh r2, [r0] + movs r7, 0x8 + ldrsh r1, [r3, r7] + adds r6, r0, 0 + cmp r2, r1 + bne _080E2748 + ldrh r0, [r3, 0x8] + negs r0, r0 + b _080E274A + .align 2, 0 +_080E2740: .4byte gTasks +_080E2744: .4byte gUnknown_030041B0 +_080E2748: + ldrh r0, [r3, 0x8] +_080E274A: + strh r0, [r6] + ldr r2, _080E2768 + ldrh r3, [r2] + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + mov r7, r12 + adds r4, r0, r7 + movs r7, 0xA + ldrsh r0, [r4, r7] + cmn r3, r0 + bne _080E276C + movs r0, 0 + b _080E2770 + .align 2, 0 +_080E2768: .4byte gUnknown_030041B8 +_080E276C: + ldrh r0, [r4, 0xA] + negs r0, r0 +_080E2770: + strh r0, [r2] + adds r0, r1, r5 + lsls r0, 3 + add r0, r12 + ldrh r1, [r0, 0x18] + strh r1, [r0, 0xE] + ldrh r1, [r0, 0xC] + subs r1, 0x1 + strh r1, [r0, 0xC] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0 + bne _080E279A + strh r1, [r6] + strh r1, [r2] + adds r0, r5, 0 + bl move_anim_task_del + b _080E279A +_080E2796: + subs r0, r2, 0x1 + strh r0, [r3, 0xE] +_080E279A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E2710 + + thumb_func_start sub_80E27A0 +sub_80E27A0: @ 80E27A0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080E27C0 + ldrb r1, [r4, 0x6] + bl StartSpriteAffineAnim + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080E27C4 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80787B0 + b _080E27CC + .align 2, 0 +_080E27C0: .4byte gUnknown_03004B00 +_080E27C4: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8078764 +_080E27CC: + ldr r0, _080E27E0 + str r0, [r5, 0x1C] + ldr r1, _080E27E4 + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E27E0: .4byte sub_80785E4 +_080E27E4: .4byte move_anim_8072740 + thumb_func_end sub_80E27A0 + + thumb_func_start sub_80E27E8 +sub_80E27E8: @ 80E27E8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080E2808 + ldrb r1, [r4, 0x6] + bl StartSpriteAffineAnim + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080E280C + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80787B0 + b _080E2814 + .align 2, 0 +_080E2808: .4byte gUnknown_03004B00 +_080E280C: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8078764 +_080E2814: + ldr r0, _080E282C + ldrh r0, [r0, 0x8] + strh r0, [r5, 0x2E] + ldr r0, _080E2830 + str r0, [r5, 0x1C] + ldr r1, _080E2834 + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E282C: .4byte gUnknown_03004B00 +_080E2830: .4byte sub_80785E4 +_080E2834: .4byte sub_80DA48C + thumb_func_end sub_80E27E8 + + thumb_func_start sub_80E2838 +sub_80E2838: @ 80E2838 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080E2868 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080E285C + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E285C + ldr r1, _080E286C + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] +_080E285C: + adds r0, r4, 0 + bl sub_80E27A0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E2868: .4byte gUnknown_0202F7C8 +_080E286C: .4byte gUnknown_03004B00 + thumb_func_end sub_80E2838 + + thumb_func_start sub_80E2870 +sub_80E2870: @ 80E2870 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080E28A8 + movs r0, 0x2 + ldrsh r1, [r5, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080E288C + bl Random + movs r1, 0x3 + ands r1, r0 + strh r1, [r5, 0x2] +_080E288C: + ldrb r1, [r5, 0x2] + adds r0, r4, 0 + bl StartSpriteAffineAnim + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080E28AC + adds r0, r4, 0 + movs r1, 0 + bl sub_80787B0 + b _080E28B4 + .align 2, 0 +_080E28A8: .4byte gUnknown_03004B00 +_080E28AC: + adds r0, r4, 0 + movs r1, 0 + bl sub_8078764 +_080E28B4: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x30 + bl __umodsi3 + ldr r1, _080E28F8 + adds r0, r1 + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x18 + bl __umodsi3 + ldr r1, _080E28FC + adds r0, r1 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldr r1, _080E2900 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080E2904 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E28F8: .4byte 0x0000ffe8 +_080E28FC: .4byte 0x0000fff4 +_080E2900: .4byte move_anim_8074EE0 +_080E2904: .4byte sub_80785E4 + thumb_func_end sub_80E2870 + + thumb_func_start sub_80E2908 +sub_80E2908: @ 80E2908 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080E2968 + ldrb r0, [r5] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, _080E296C + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x24] + ldrh r0, [r0, 0x20] + adds r1, r0 + strh r1, [r4, 0x20] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + strh r1, [r4, 0x22] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x24] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x26] + ldrb r1, [r5, 0x6] + adds r0, r4, 0 + bl StartSpriteAffineAnim + ldr r1, _080E2970 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080E2974 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E2968: .4byte gUnknown_03004B00 +_080E296C: .4byte gSprites +_080E2970: .4byte move_anim_8074EE0 +_080E2974: .4byte sub_80785E4 + thumb_func_end sub_80E2908 + + thumb_func_start sub_80E2978 +sub_80E2978: @ 80E2978 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080E2990 + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080E2994 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80787B0 + b _080E299C + .align 2, 0 +_080E2990: .4byte gUnknown_03004B00 +_080E2994: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078764 +_080E299C: + ldr r0, _080E29B4 + ldrh r0, [r0, 0x6] + strh r0, [r4, 0x2E] + ldr r1, _080E29B8 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080E29BC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E29B4: .4byte gUnknown_03004B00 +_080E29B8: .4byte move_anim_8072740 +_080E29BC: .4byte sub_80782D8 + thumb_func_end sub_80E2978 + + thumb_func_start sub_80E29C0 +sub_80E29C0: @ 80E29C0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080E29E0 + ldrb r1, [r4, 0x6] + bl StartSpriteAffineAnim + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080E29E4 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80787B0 + b _080E29EC + .align 2, 0 +_080E29E0: .4byte gUnknown_03004B00 +_080E29E4: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8078764 +_080E29EC: + ldr r0, _080E29F8 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E29F8: .4byte sub_80E29FC + thumb_func_end sub_80E29C0 + + thumb_func_start sub_80E29FC +sub_80E29FC: @ 80E29FC + push {lr} + adds r3, r0, 0 + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x2E] + adds r1, r0, 0x1 + strh r1, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080E2A32 + adds r0, r3, 0 + bl move_anim_8072740 +_080E2A32: + pop {r0} + bx r0 + thumb_func_end sub_80E29FC + + thumb_func_start sub_80E2A38 +sub_80E2A38: @ 80E2A38 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r4, _080E2A78 + movs r1, 0 + ldrsh r0, [r4, r1] + bl sub_80E1DC4 + adds r6, r0, 0 + ldrh r3, [r4] + lsls r3, 16 + asrs r0, r3, 23 + movs r4, 0x1 + ands r0, r4 + asrs r1, r3, 24 + ands r1, r4 + asrs r2, r3, 25 + ands r2, r4 + asrs r3, 26 + ands r3, r4 + bl sub_80792C0 + orrs r6, r0 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_80E2C8C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E2A78: .4byte gUnknown_03004B00 + thumb_func_end sub_80E2A38 + + thumb_func_start sub_80E2A7C +sub_80E2A7C: @ 80E2A7C + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + mov r1, sp + movs r0, 0xFF + strb r0, [r1, 0x1] + movs r0, 0x1 + bl sub_80E1DC4 + adds r5, r0, 0 + ldr r0, _080E2AA8 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x7 + bhi _080E2B26 + lsls r0, 2 + ldr r1, _080E2AAC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E2AA8: .4byte gUnknown_03004B00 +_080E2AAC: .4byte _080E2AB0 + .align 2, 0 +_080E2AB0: + .4byte _080E2AD2 + .4byte _080E2ADE + .4byte _080E2AD0 + .4byte _080E2ADC + .4byte _080E2AEC + .4byte _080E2B04 + .4byte _080E2B0C + .4byte _080E2B18 +_080E2AD0: + movs r5, 0 +_080E2AD2: + mov r0, sp + ldr r1, _080E2AD8 + b _080E2AE2 + .align 2, 0 +_080E2AD8: .4byte gUnknown_0202F7C8 +_080E2ADC: + movs r5, 0 +_080E2ADE: + mov r0, sp + ldr r1, _080E2AE8 +_080E2AE2: + ldrb r1, [r1] + strb r1, [r0] + b _080E2B26 + .align 2, 0 +_080E2AE8: .4byte gUnknown_0202F7C9 +_080E2AEC: + mov r1, sp + ldr r0, _080E2AFC + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _080E2B00 + ldrb r0, [r0] + strb r0, [r1, 0x1] + b _080E2B26 + .align 2, 0 +_080E2AFC: .4byte gUnknown_0202F7C8 +_080E2B00: .4byte gUnknown_0202F7C9 +_080E2B04: + mov r1, sp + movs r0, 0xFF + strb r0, [r1] + b _080E2B26 +_080E2B0C: + movs r5, 0 + mov r2, sp + ldr r0, _080E2B14 + b _080E2B1E + .align 2, 0 +_080E2B14: .4byte gUnknown_0202F7C8 +_080E2B18: + movs r5, 0 + mov r2, sp + ldr r0, _080E2B70 +_080E2B1E: + ldrb r0, [r0] + movs r1, 0x2 + eors r0, r1 + strb r0, [r2] +_080E2B26: + movs r4, 0 + mov r6, sp +_080E2B2A: + ldrb r0, [r6] + cmp r4, r0 + beq _080E2B54 + ldrb r0, [r6, 0x1] + cmp r4, r0 + beq _080E2B54 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080E2B54 + adds r0, r4, 0 + bl sub_80793A8 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x80 + lsls r1, 9 + lsls r1, r0 + orrs r5, r1 +_080E2B54: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080E2B2A + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_80E2C8C + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E2B70: .4byte gUnknown_0202F7C9 + thumb_func_end sub_80E2A7C + + thumb_func_start sub_80E2B74 +sub_80E2B74: @ 80E2B74 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E2B98 + movs r1, 0 + ldrsh r0, [r0, r1] + bl sub_80E1DC4 + adds r2, r0, 0 + ldr r0, _080E2B9C + ldrb r0, [r0] + cmp r0, 0x9 + bhi _080E2C4A + lsls r0, 2 + ldr r1, _080E2BA0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E2B98: .4byte gUnknown_03004B00 +_080E2B9C: .4byte gUnknown_0300428C +_080E2BA0: .4byte _080E2BA4 + .align 2, 0 +_080E2BA4: + .4byte _080E2BCC + .4byte _080E2BDC + .4byte _080E2BE8 + .4byte _080E2BF8 + .4byte _080E2C04 + .4byte _080E2C14 + .4byte _080E2C24 + .4byte _080E2C34 + .4byte _080E2C44 + .4byte _080E2C44 +_080E2BCC: + ldr r1, _080E2BD4 + ldr r0, _080E2BD8 + b _080E2C48 + .align 2, 0 +_080E2BD4: .4byte gUnknown_03004B00 +_080E2BD8: .4byte 0x00000b0c +_080E2BDC: + ldr r1, _080E2BE4 + movs r0, 0x9E + lsls r0, 4 + b _080E2C48 + .align 2, 0 +_080E2BE4: .4byte gUnknown_03004B00 +_080E2BE8: + ldr r1, _080E2BF0 + ldr r0, _080E2BF4 + b _080E2C48 + .align 2, 0 +_080E2BF0: .4byte gUnknown_03004B00 +_080E2BF4: .4byte 0x00002f1e +_080E2BF8: + ldr r1, _080E2C00 + movs r0, 0x90 + lsls r0, 7 + b _080E2C48 + .align 2, 0 +_080E2C00: .4byte gUnknown_03004B00 +_080E2C04: + ldr r1, _080E2C0C + ldr r0, _080E2C10 + b _080E2C48 + .align 2, 0 +_080E2C0C: .4byte gUnknown_03004B00 +_080E2C10: .4byte 0x00007ecb +_080E2C14: + ldr r1, _080E2C1C + ldr r0, _080E2C20 + b _080E2C48 + .align 2, 0 +_080E2C1C: .4byte gUnknown_03004B00 +_080E2C20: .4byte 0x00007ecb +_080E2C24: + ldr r1, _080E2C2C + ldr r0, _080E2C30 + b _080E2C48 + .align 2, 0 +_080E2C2C: .4byte gUnknown_03004B00 +_080E2C30: .4byte 0x00002a16 +_080E2C34: + ldr r1, _080E2C3C + ldr r0, _080E2C40 + b _080E2C48 + .align 2, 0 +_080E2C3C: .4byte gUnknown_03004B00 +_080E2C40: .4byte 0x00000d2e +_080E2C44: + ldr r1, _080E2C58 + ldr r0, _080E2C5C +_080E2C48: + strh r0, [r1, 0x8] +_080E2C4A: + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80E2C8C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E2C58: .4byte gUnknown_03004B00 +_080E2C5C: .4byte 0x00007fff + thumb_func_end sub_80E2B74 + + thumb_func_start sub_80E2C60 +sub_80E2C60: @ 80E2C60 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080E2C88 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + adds r0, r4, 0 + bl sub_80E2C8C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E2C88: .4byte gUnknown_03004B00 + thumb_func_end sub_80E2C60 + + thumb_func_start sub_80E2C8C +sub_80E2C8C: @ 80E2C8C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080E2CC4 + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r3 + strh r1, [r2, 0x8] + lsrs r1, 16 + strh r1, [r2, 0xA] + ldr r3, _080E2CC8 + ldrh r1, [r3, 0x2] + strh r1, [r2, 0xC] + ldrh r1, [r3, 0x4] + strh r1, [r2, 0xE] + ldrh r1, [r3, 0x6] + strh r1, [r2, 0x10] + ldrh r1, [r3, 0x8] + strh r1, [r2, 0x12] + ldrh r1, [r3, 0x4] + strh r1, [r2, 0x1C] + ldr r1, _080E2CCC + str r1, [r2] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080E2CC4: .4byte gTasks +_080E2CC8: .4byte gUnknown_03004B00 +_080E2CCC: .4byte sub_80E2CD0 + thumb_func_end sub_80E2C8C + + thumb_func_start sub_80E2CD0 +sub_80E2CD0: @ 80E2CD0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r7, r0, 24 + movs r6, 0 + ldr r2, _080E2D50 + lsls r5, r7, 2 + adds r0, r5, r7 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1A] + mov r8, r0 + movs r4, 0x1A + ldrsh r1, [r3, r4] + movs r4, 0xC + ldrsh r0, [r3, r4] + mov r9, r2 + cmp r1, r0 + bne _080E2D66 + strh r6, [r3, 0x1A] + movs r0, 0x8 + ldrsh r4, [r3, r0] + movs r1, 0xA + ldrsh r0, [r3, r1] + lsls r0, 16 + orrs r4, r0 + mov r8, r5 + cmp r4, 0 + beq _080E2D32 + adds r5, r3, 0 +_080E2D10: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080E2D24 + ldrb r2, [r5, 0x1C] + ldrh r3, [r5, 0x12] + adds r0, r6, 0 + movs r1, 0x10 + bl BlendPalette +_080E2D24: + adds r0, r6, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r6, r0, 16 + lsrs r4, 1 + cmp r4, 0 + bne _080E2D10 +_080E2D32: + mov r4, r8 + adds r0, r4, r7 + lsls r0, 3 + mov r1, r9 + adds r2, r0, r1 + ldrh r0, [r2, 0x1C] + movs r4, 0x1C + ldrsh r3, [r2, r4] + movs r4, 0x10 + ldrsh r1, [r2, r4] + cmp r3, r1 + bge _080E2D54 + adds r0, 0x1 + strh r0, [r2, 0x1C] + b _080E2D6C + .align 2, 0 +_080E2D50: .4byte gTasks +_080E2D54: + cmp r3, r1 + ble _080E2D5E + subs r0, 0x1 + strh r0, [r2, 0x1C] + b _080E2D6C +_080E2D5E: + adds r0, r7, 0 + bl move_anim_task_del + b _080E2D6C +_080E2D66: + mov r0, r8 + adds r0, 0x1 + strh r0, [r3, 0x1A] +_080E2D6C: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E2CD0 + + thumb_func_start sub_80E2D78 +sub_80E2D78: @ 80E2D78 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r4, _080E2DAC + ldrb r0, [r4] + ldrb r1, [r4, 0x2] + ldrb r2, [r4, 0x4] + ldrb r3, [r4, 0x6] + ldrb r4, [r4, 0x8] + str r4, [sp] + bl BeginHardwarePaletteFade + ldr r1, _080E2DB0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080E2DB4 + str r1, [r0] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E2DAC: .4byte gUnknown_03004B00 +_080E2DB0: .4byte gTasks +_080E2DB4: .4byte sub_80E2DB8 + thumb_func_end sub_80E2D78 + + thumb_func_start sub_80E2DB8 +sub_80E2DB8: @ 80E2DB8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080E2DD4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080E2DD0 + adds r0, r2, 0 + bl move_anim_task_del +_080E2DD0: + pop {r0} + bx r0 + .align 2, 0 +_080E2DD4: .4byte gPaletteFade + thumb_func_end sub_80E2DB8 + + thumb_func_start sub_80E2DD8 +sub_80E2DD8: @ 80E2DD8 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080E2E04 + adds r1, r0 + ldr r2, _080E2E08 + ldrh r0, [r2] + movs r3, 0 + strh r0, [r1, 0x8] + strh r3, [r1, 0xA] + ldrh r0, [r2, 0x2] + strh r0, [r1, 0xC] + ldrh r0, [r2, 0x4] + strh r0, [r1, 0xE] + ldrh r0, [r2, 0x6] + strh r0, [r1, 0x10] + strh r3, [r1, 0x12] + ldr r0, _080E2E0C + str r0, [r1] + bx lr + .align 2, 0 +_080E2E04: .4byte gTasks +_080E2E08: .4byte gUnknown_03004B00 +_080E2E0C: .4byte sub_80E2E10 + thumb_func_end sub_80E2DD8 + + thumb_func_start sub_80E2E10 +sub_80E2E10: @ 80E2E10 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r2, r5, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080E2E3C + adds r4, r0, r1 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080E2ED4 + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080E2E40 + subs r0, r1, 0x1 + strh r0, [r4, 0xA] + b _080E2EE2 + .align 2, 0 +_080E2E3C: .4byte gTasks +_080E2E40: + ldrb r0, [r4, 0x8] + bl duplicate_obj_of_side_rel2move_in_transparent_mode + strh r0, [r4, 0x14] + lsls r0, 16 + cmp r0, 0 + blt _080E2EBE + ldr r6, _080E2ECC + movs r1, 0x14 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r3, r1, r6 + movs r2, 0x8 + ldrsh r0, [r4, r2] + movs r2, 0x2 + cmp r0, 0 + beq _080E2E68 + movs r2, 0x1 +_080E2E68: + lsls r2, 2 + ldrb r1, [r3, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x5] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r4, 0xE] + strh r1, [r0, 0x2E] + movs r2, 0x14 + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r5, [r0, 0x30] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x5 + strh r1, [r0, 0x32] + movs r2, 0x14 + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080E2ED0 + str r1, [r0] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] +_080E2EBE: + ldrh r0, [r4, 0x10] + subs r0, 0x1 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0xC] + strh r0, [r4, 0xA] + b _080E2EE2 + .align 2, 0 +_080E2ECC: .4byte gSprites +_080E2ED0: .4byte sub_80E2EE8 +_080E2ED4: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080E2EE2 + adds r0, r2, 0 + bl move_anim_task_del +_080E2EE2: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E2E10 + + thumb_func_start sub_80E2EE8 +sub_80E2EE8: @ 80E2EE8 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080E2EFC + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + b _080E2F20 +_080E2EFC: + ldr r3, _080E2F28 + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x30 + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl obj_delete_but_dont_free_vram +_080E2F20: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E2F28: .4byte gTasks + thumb_func_end sub_80E2EE8 + + thumb_func_start sub_80E2F2C +sub_80E2F2C: @ 80E2F2C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r7, 0 + ldr r0, _080E3038 + strh r7, [r0] + ldr r0, _080E303C + strh r7, [r0] + ldr r1, _080E3040 + ldr r2, _080E3044 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080E3048 + adds r0, r3, 0 + strh r0, [r1] + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080E304C + ldr r2, _080E3050 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080E3054 + adds r0, r3, 0 + strh r0, [r1] + ldr r4, _080E3058 + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + mov r8, r0 + ands r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x1] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r4, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E2FAC + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080E2FAC: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080E3028 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E3028 + ldr r5, _080E305C + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080E2FDC + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + cmp r0, 0 + bne _080E3028 +_080E2FDC: + ldrb r0, [r5] + movs r6, 0x2 + eors r0, r6 + bl b_side_obj__get_some_boolean + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080E3028 + ldr r3, _080E3060 + ldr r1, _080E3064 + ldrb r0, [r5] + eors r0, r6 + adds r0, r1 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] + ldrb r1, [r4] + mov r0, r8 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4] + movs r7, 0x1 +_080E3028: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E306C + ldr r0, _080E3068 + ldrh r4, [r0] + b _080E30B4 + .align 2, 0 +_080E3038: .4byte gUnknown_030042C4 +_080E303C: .4byte gUnknown_03004240 +_080E3040: .4byte REG_WININ +_080E3044: .4byte 0x00003f3f +_080E3048: .4byte 0x00003f3d +_080E304C: .4byte REG_BLDCNT +_080E3050: .4byte 0x00003f42 +_080E3054: .4byte 0x00000c08 +_080E3058: .4byte REG_BG1CNT +_080E305C: .4byte gUnknown_0202F7C8 +_080E3060: .4byte gSprites +_080E3064: .4byte gUnknown_02024BE0 +_080E3068: .4byte 0x02019348 +_080E306C: + ldr r4, _080E308C + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080E3098 + ldr r1, _080E3090 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080E3094 + b _080E30A8 + .align 2, 0 +_080E308C: .4byte gUnknown_0202F7C8 +_080E3090: .4byte gUnknown_02024A6A +_080E3094: .4byte gEnemyParty +_080E3098: + ldr r1, _080E3160 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080E3164 +_080E30A8: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 +_080E30B4: + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080E3168 + ldrb r0, [r0] + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_807A4A0 + lsls r0, 24 + lsrs r4, r0, 24 + mov r0, sp + bl sub_8078914 + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r2, _080E316C + add r0, sp, 0xC + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _080E3170 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, _080E3174 + bl LZDecompressVram + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E3106 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80763FC +_080E3106: + ldr r0, _080E3178 + ldr r1, [sp] + bl LZDecompressVram + ldr r0, _080E317C + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + adds r1, 0x1 + movs r2, 0x2 + bl LoadPalette + ldr r2, _080E3180 + ldr r0, _080E3184 + lsls r1, r5, 4 + adds r1, r5 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x20] + negs r0, r0 + adds r0, 0x20 + strh r0, [r2] + ldr r2, _080E3188 + ldrh r0, [r1, 0x22] + negs r0, r0 + adds r0, 0x20 + strh r0, [r2] + ldr r1, _080E318C + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0x8] + strh r7, [r0, 0x14] + ldr r1, _080E3190 + str r1, [r0] + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E3160: .4byte gUnknown_02024A6A +_080E3164: .4byte gPlayerParty +_080E3168: .4byte gUnknown_0202F7C8 +_080E316C: .4byte 0x040000d4 +_080E3170: .4byte 0x85000400 +_080E3174: .4byte gUnknown_08D20A30 +_080E3178: .4byte gUnknown_08D20A14 +_080E317C: .4byte gUnknown_083DB568 +_080E3180: .4byte gUnknown_030042C0 +_080E3184: .4byte gSprites +_080E3188: .4byte gUnknown_030041B4 +_080E318C: .4byte gTasks +_080E3190: .4byte sub_80E3194 + thumb_func_end sub_80E2F2C + + thumb_func_start sub_80E3194 +sub_80E3194: @ 80E3194 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080E32AC + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x1C] + adds r0, 0x4 + movs r5, 0 + strh r0, [r4, 0x1C] + ldr r7, _080E32B0 + ldrh r2, [r7] + subs r1, r2, 0x4 + strh r1, [r7] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x40 + bne _080E329E + strh r5, [r4, 0x1C] + adds r0, r2, 0 + adds r0, 0x3C + strh r0, [r7] + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080E329E + movs r0, 0 + bl sub_8076464 + ldr r0, _080E32B4 + strh r5, [r0] + ldr r0, _080E32B8 + strh r5, [r0] + ldr r0, _080E32BC + ldr r2, _080E32C0 + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E3208 + ldr r2, _080E32C4 + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080E3208: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + eors r0, r1 + strh r0, [r2] + ldr r0, _080E32C8 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + movs r0, 0 + bl obj_id_for_side_relative_to_move + ldr r0, _080E32CC + mov r8, r0 + movs r2, 0x8 + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + bl DestroySprite + mov r0, sp + bl sub_8078914 + ldr r2, [sp, 0x4] + str r5, [sp, 0xC] + ldr r1, _080E32D0 + add r0, sp, 0xC + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _080E32D4 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r3, 0x14 + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _080E3288 + ldr r2, _080E32D8 + ldr r0, _080E32DC + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + adds r0, r2 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + add r2, r8 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] +_080E3288: + ldr r2, _080E32C4 + ldrb r1, [r2, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + movs r0, 0 + strh r0, [r7] + adds r0, r6, 0 + bl move_anim_task_del +_080E329E: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E32AC: .4byte gTasks +_080E32B0: .4byte gUnknown_030041B4 +_080E32B4: .4byte gUnknown_030042C4 +_080E32B8: .4byte gUnknown_03004240 +_080E32BC: .4byte REG_WININ +_080E32C0: .4byte 0x00003f3f +_080E32C4: .4byte REG_BG1CNT +_080E32C8: .4byte REG_BLDCNT +_080E32CC: .4byte gSprites +_080E32D0: .4byte 0x040000d4 +_080E32D4: .4byte 0x85000200 +_080E32D8: .4byte gUnknown_02024BE0 +_080E32DC: .4byte gUnknown_0202F7C8 + thumb_func_end sub_80E3194 + + thumb_func_start sub_80E32E0 +sub_80E32E0: @ 80E32E0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r3, r0, 24 + movs r2, 0 + ldr r0, _080E332C + mov r12, r0 + ldr r1, _080E3330 + mov r8, r1 + lsls r1, r3, 2 + adds r0, r1, r3 + lsls r4, r0, 3 + mov r7, r12 + adds r7, 0x8 + adds r5, r1, 0 + ldr r6, _080E3334 +_080E3302: + lsls r0, r2, 1 + adds r1, r0, r4 + adds r1, r7 + adds r0, r6 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _080E3302 + adds r0, r5, r3 + lsls r0, 3 + add r0, r12 + mov r1, r8 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E332C: .4byte gTasks +_080E3330: .4byte sub_80E3338 +_080E3334: .4byte gUnknown_03004B00 + thumb_func_end sub_80E32E0 + + thumb_func_start sub_80E3338 +sub_80E3338: @ 80E3338 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r0, 0 + str r0, [sp, 0x1C] + movs r1, 0 + str r1, [sp, 0x20] + add r7, sp, 0xC + ldr r2, _080E3388 + mov r3, r9 + lsls r1, r3, 2 + adds r0, r1, r3 + lsls r0, 3 + mov r10, r1 + adds r1, r2, 0 + adds r1, 0x8 + adds r1, r0, r1 + adds r3, r7, 0 + movs r4, 0 + movs r2, 0x7 +_080E336C: + ldrh r0, [r1] + strh r0, [r3] + strh r4, [r1] + adds r1, 0x2 + adds r3, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _080E336C + movs r1, 0x4 + ldrsh r0, [r7, r1] + cmp r0, 0 + bne _080E3390 + ldr r0, _080E338C + b _080E3392 + .align 2, 0 +_080E3388: .4byte gTasks +_080E338C: .4byte gUnknown_0202F7C8 +_080E3390: + ldr r0, _080E34B4 +_080E3392: + ldrb r5, [r0] + movs r0, 0x2 + mov r8, r5 + mov r2, r8 + eors r2, r0 + mov r8, r2 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E33BC + movs r3, 0x6 + ldrsh r0, [r7, r3] + cmp r0, 0 + beq _080E33C0 + mov r0, r8 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + bne _080E33C0 +_080E33BC: + movs r0, 0 + strh r0, [r7, 0x6] +_080E33C0: + ldr r0, _080E34B8 + movs r1, 0 + strh r1, [r0] + ldr r0, _080E34BC + strh r1, [r0] + ldr r1, _080E34C0 + ldr r2, _080E34C4 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080E34C8 + adds r0, r3, 0 + strh r0, [r1] + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080E34CC + ldr r2, _080E34D0 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0x80 + lsls r3, 5 + adds r0, r3, 0 + strh r0, [r1] + ldr r4, _080E34D4 + ldrb r1, [r4] + movs r6, 0x4 + negs r6, r6 + adds r0, r6, 0 + ands r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x1] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r4, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E3432 + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080E3432: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080E34A4 + movs r1, 0x6 + ldrsh r0, [r7, r1] + cmp r0, 0 + bne _080E34A4 + adds r0, r5, 0 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080E345E + adds r0, r5, 0 + bl battle_get_per_side_status + lsls r0, 24 + cmp r0, 0 + bne _080E34A4 +_080E345E: + mov r0, r8 + bl b_side_obj__get_some_boolean + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080E34A4 + ldr r1, _080E34D8 + ldr r0, _080E34DC + add r0, r8 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] + ldrb r1, [r4] + adds r0, r6, 0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4] + movs r2, 0x1 + str r2, [sp, 0x20] +_080E34A4: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E34E4 + ldr r0, _080E34E0 + ldrh r4, [r0] + b _080E3522 + .align 2, 0 +_080E34B4: .4byte gUnknown_0202F7C9 +_080E34B8: .4byte gUnknown_030042C4 +_080E34BC: .4byte gUnknown_03004240 +_080E34C0: .4byte REG_WININ +_080E34C4: .4byte 0x00003f3f +_080E34C8: .4byte 0x00003f3d +_080E34CC: .4byte REG_BLDCNT +_080E34D0: .4byte 0x00003f42 +_080E34D4: .4byte REG_BG1CNT +_080E34D8: .4byte gSprites +_080E34DC: .4byte gUnknown_02024BE0 +_080E34E0: .4byte 0x02019348 +_080E34E4: + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080E3508 + ldr r1, _080E3500 + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080E3504 + b _080E3516 + .align 2, 0 +_080E3500: .4byte gUnknown_02024A6A +_080E3504: .4byte gEnemyParty +_080E3508: + ldr r1, _080E3568 + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080E356C +_080E3516: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 +_080E3522: + ldr r6, _080E3570 + adds r0, r5, r6 + ldrb r1, [r0] + adds r0, r5, 0 + adds r2, r4, 0 + bl sub_807A4A0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0x6 + ldrsh r0, [r7, r3] + cmp r0, 0 + beq _080E3550 + mov r1, r8 + adds r0, r1, r6 + ldrb r1, [r0] + mov r0, r8 + adds r2, r4, 0 + bl sub_807A4A0 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x1C] +_080E3550: + mov r0, sp + bl sub_8078914 + movs r2, 0 + ldrsh r0, [r7, r2] + cmp r0, 0 + bne _080E3578 + ldr r0, _080E3574 + ldr r1, [sp, 0x4] + bl LZDecompressVram + b _080E3580 + .align 2, 0 +_080E3568: .4byte gUnknown_02024A6A +_080E356C: .4byte gPlayerParty +_080E3570: .4byte gUnknown_02024BE0 +_080E3574: .4byte gBattleStatMask1_Tilemap +_080E3578: + ldr r0, _080E35B0 + ldr r1, [sp, 0x4] + bl LZDecompressVram +_080E3580: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E3598 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80763FC +_080E3598: + ldr r0, _080E35B4 + ldr r1, [sp] + bl LZDecompressVram + ldrh r0, [r7, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080E35BC + ldr r0, _080E35B8 + b _080E35FE + .align 2, 0 +_080E35B0: .4byte gBattleStatMask2_Tilemap +_080E35B4: .4byte gBattleStatMask_Gfx +_080E35B8: .4byte gBattleStatMask2_Pal +_080E35BC: + cmp r0, 0x1 + bne _080E35C8 + ldr r0, _080E35C4 + b _080E35FE + .align 2, 0 +_080E35C4: .4byte gBattleStatMask1_Pal +_080E35C8: + cmp r0, 0x2 + bne _080E35D4 + ldr r0, _080E35D0 + b _080E35FE + .align 2, 0 +_080E35D0: .4byte gBattleStatMask3_Pal +_080E35D4: + cmp r0, 0x3 + bne _080E35E0 + ldr r0, _080E35DC + b _080E35FE + .align 2, 0 +_080E35DC: .4byte gBattleStatMask4_Pal +_080E35E0: + cmp r0, 0x4 + bne _080E35EC + ldr r0, _080E35E8 + b _080E35FE + .align 2, 0 +_080E35E8: .4byte gBattleStatMask6_Pal +_080E35EC: + cmp r0, 0x5 + bne _080E35F8 + ldr r0, _080E35F4 + b _080E35FE + .align 2, 0 +_080E35F4: .4byte gBattleStatMask7_Pal +_080E35F8: + cmp r0, 0x6 + bne _080E3610 + ldr r0, _080E360C +_080E35FE: + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + b _080E361E + .align 2, 0 +_080E360C: .4byte gBattleStatMask8_Pal +_080E3610: + ldr r0, _080E3644 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette +_080E361E: + ldr r2, _080E3648 + movs r1, 0 + strh r1, [r2] + ldr r0, _080E364C + strh r1, [r0] + movs r3, 0 + ldrsh r0, [r7, r3] + cmp r0, 0x1 + bne _080E3658 + movs r0, 0x40 + strh r0, [r2] + ldr r2, _080E3650 + mov r0, r10 + add r0, r9 + lsls r0, 3 + adds r0, r2 + ldr r1, _080E3654 + strh r1, [r0, 0xA] + b _080E3668 + .align 2, 0 +_080E3644: .4byte gBattleStatMask5_Pal +_080E3648: .4byte gUnknown_030042C0 +_080E364C: .4byte gUnknown_030041B4 +_080E3650: .4byte gTasks +_080E3654: .4byte 0x0000fffd +_080E3658: + ldr r0, _080E3680 + mov r1, r10 + add r1, r9 + lsls r1, 3 + adds r1, r0 + movs r2, 0x3 + strh r2, [r1, 0xA] + adds r2, r0, 0 +_080E3668: + movs r1, 0x8 + ldrsh r0, [r7, r1] + cmp r0, 0 + bne _080E3684 + mov r0, r10 + add r0, r9 + lsls r0, 3 + adds r0, r2 + movs r1, 0xA + strh r1, [r0, 0x10] + movs r1, 0x14 + b _080E3692 + .align 2, 0 +_080E3680: .4byte gTasks +_080E3684: + mov r0, r10 + add r0, r9 + lsls r0, 3 + adds r0, r2 + movs r1, 0xD + strh r1, [r0, 0x10] + movs r1, 0x1E +_080E3692: + strh r1, [r0, 0x12] + mov r1, r10 + add r1, r9 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + ldrh r0, [r7, 0x6] + strh r0, [r1, 0xC] + mov r2, sp + ldrh r2, [r2, 0x1C] + strh r2, [r1, 0xE] + mov r3, sp + ldrh r3, [r3, 0x20] + strh r3, [r1, 0x14] + ldr r0, _080E36D8 + add r0, r8 + ldrb r0, [r0] + strh r0, [r1, 0x16] + ldr r0, _080E36DC + str r0, [r1] + movs r1, 0 + ldrsh r0, [r7, r1] + cmp r0, 0 + bne _080E36E0 + movs r0, 0x40 + negs r0, r0 + bl sub_8077094 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xEF + bl PlaySE12WithPanning + b _080E36F4 + .align 2, 0 +_080E36D8: .4byte gUnknown_02024BE0 +_080E36DC: .4byte sub_80E3704 +_080E36E0: + movs r0, 0x40 + negs r0, r0 + bl sub_8077094 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xF5 + bl PlaySE12WithPanning +_080E36F4: + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E3338 + + thumb_func_start sub_80E3704 +sub_80E3704: @ 80E3704 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, _080E3730 + ldr r1, _080E3734 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0xA] + ldrh r1, [r2] + adds r0, r1 + strh r0, [r2] + movs r3, 0x26 + ldrsh r2, [r4, r3] + cmp r2, 0x1 + beq _080E3774 + cmp r2, 0x1 + bgt _080E3738 + cmp r2, 0 + beq _080E373E + b _080E3866 + .align 2, 0 +_080E3730: .4byte gUnknown_030041B4 +_080E3734: .4byte gTasks +_080E3738: + cmp r2, 0x2 + beq _080E378E + b _080E3866 +_080E373E: + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + cmp r0, 0 + bgt _080E374C + b _080E3866 +_080E374C: + strh r2, [r4, 0x1E] + ldrh r1, [r4, 0x20] + adds r1, 0x1 + strh r1, [r4, 0x20] + ldr r2, _080E3770 + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r0, 0x20 + ldrsh r1, [r4, r0] + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080E3866 + b _080E3786 + .align 2, 0 +_080E3770: .4byte REG_BLDALPHA +_080E3774: + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x12 + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _080E3866 +_080E3786: + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] + b _080E3866 +_080E378E: + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + cmp r0, 0 + ble _080E3866 + movs r0, 0 + strh r0, [r4, 0x1E] + ldrh r1, [r4, 0x20] + subs r1, 0x1 + strh r1, [r4, 0x20] + ldr r7, _080E386C + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r7] + movs r0, 0x20 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _080E3866 + movs r0, 0 + bl sub_8076464 + ldr r0, _080E3870 + strh r5, [r0] + ldr r0, _080E3874 + strh r5, [r0] + ldr r0, _080E3878 + ldr r2, _080E387C + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E37E8 + ldr r2, _080E3880 + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080E37E8: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + eors r0, r1 + strh r0, [r2] + ldr r0, _080E3884 + strh r5, [r0] + strh r5, [r7] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _080E3888 + adds r0, r5 + bl DestroySprite + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080E3828 + movs r2, 0xE + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite +_080E3828: + movs r3, 0x14 + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _080E3854 + movs r1, 0x16 + ldrsh r0, [r4, r1] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r5 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] +_080E3854: + ldr r2, _080E3880 + ldrb r1, [r2, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + adds r0, r6, 0 + bl move_anim_task_del +_080E3866: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E386C: .4byte REG_BLDALPHA +_080E3870: .4byte gUnknown_030042C4 +_080E3874: .4byte gUnknown_03004240 +_080E3878: .4byte REG_WININ +_080E387C: .4byte 0x00003f3f +_080E3880: .4byte REG_BG1CNT +_080E3884: .4byte REG_BLDCNT +_080E3888: .4byte gSprites + thumb_func_end sub_80E3704 + + thumb_func_start sub_80E388C +sub_80E388C: @ 80E388C + push {r4-r6,lr} + sub sp, 0xC + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x1 + bl sub_80792C0 + adds r6, r0, 0 + movs r1, 0 + bl sub_80E39BC + ldr r0, _080E38EC + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + lsrs r0, r6, 16 + movs r5, 0 + strh r0, [r4, 0x24] + str r5, [sp] + str r5, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80791A8 + adds r6, r0, 0 + ldr r1, _080E38F0 + ands r6, r1 + adds r0, r6, 0 + bl sub_80E39BC + strh r6, [r4, 0x26] + strh r5, [r4, 0x8] + strh r5, [r4, 0xA] + ldr r0, _080E38F4 + str r0, [r4] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E38EC: .4byte gTasks +_080E38F0: .4byte 0x0000ffff +_080E38F4: .4byte sub_80E38F8 + thumb_func_end sub_80E388C + + thumb_func_start sub_80E38F8 +sub_80E38F8: @ 80E38F8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E391C + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080E393C + cmp r1, 0x1 + bgt _080E3920 + cmp r1, 0 + beq _080E3926 + b _080E39B6 + .align 2, 0 +_080E391C: .4byte gTasks +_080E3920: + cmp r1, 0x2 + beq _080E39B0 + b _080E39B6 +_080E3926: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + ble _080E39B6 + strh r1, [r4, 0xA] + movs r0, 0x10 + strh r0, [r4, 0xC] + b _080E39A4 +_080E393C: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080E39B6 + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + movs r5, 0 + movs r6, 0x1 +_080E3958: + movs r1, 0x26 + ldrsh r0, [r4, r1] + asrs r0, r5 + ands r0, r6 + cmp r0, 0 + beq _080E3972 + lsls r0, r5, 20 + lsrs r0, 16 + ldrb r2, [r4, 0xC] + movs r1, 0x10 + ldr r3, _080E39AC + bl BlendPalette +_080E3972: + movs r1, 0x24 + ldrsh r0, [r4, r1] + asrs r0, r5 + ands r0, r6 + cmp r0, 0 + beq _080E3992 + lsls r0, r5, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r0, 16 + ldrb r2, [r4, 0xC] + movs r1, 0x10 + movs r3, 0 + bl BlendPalette +_080E3992: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xF + bls _080E3958 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080E39B6 +_080E39A4: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080E39B6 + .align 2, 0 +_080E39AC: .4byte 0x0000ffff +_080E39B0: + adds r0, r2, 0 + bl move_anim_task_del +_080E39B6: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E38F8 + + thumb_func_start sub_80E39BC +sub_80E39BC: @ 80E39BC + push {r4-r6,lr} + adds r3, r0, 0 + lsls r1, 16 + lsrs r6, r1, 16 + movs r2, 0 +_080E39C6: + movs r0, 0x1 + ands r0, r3 + lsrs r4, r3, 1 + adds r5, r2, 0x1 + cmp r0, 0 + beq _080E39F2 + lsls r0, r2, 20 + lsrs r2, r0, 16 + adds r0, r2, 0 + adds r0, 0x10 + cmp r2, r0 + bge _080E39F2 + ldr r1, _080E3A04 + adds r3, r0, 0 +_080E39E2: + lsls r0, r2, 1 + adds r0, r1 + strh r6, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r3 + blt _080E39E2 +_080E39F2: + adds r3, r4, 0 + lsls r0, r5, 16 + lsrs r2, r0, 16 + cmp r2, 0x1F + bls _080E39C6 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E3A04: .4byte gPlttBufferFaded + thumb_func_end sub_80E39BC + + thumb_func_start sub_80E3A08 +sub_80E3A08: @ 80E3A08 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + movs r2, 0 + ldr r0, _080E3A50 + ldrb r3, [r0] + movs r5, 0x1 +_080E3A18: + cmp r3, r2 + beq _080E3A26 + adds r1, r2, 0 + adds r1, 0x10 + adds r0, r5, 0 + lsls r0, r1 + orrs r4, r0 +_080E3A26: + adds r2, 0x1 + cmp r2, 0x3 + bls _080E3A18 + movs r2, 0x5 + ldr r0, _080E3A54 + adds r1, r0, 0 + adds r1, 0x8 +_080E3A34: + ldrh r0, [r1] + strh r0, [r1, 0x2] + subs r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bne _080E3A34 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_80E2C8C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E3A50: .4byte gUnknown_0202F7C8 +_080E3A54: .4byte gUnknown_03004B00 + thumb_func_end sub_80E3A08 + + thumb_func_start sub_80E3A58 +sub_80E3A58: @ 80E3A58 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0 + bl sub_80789D4 + ldr r0, _080E3AC0 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080E3AC4 + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080E3A94 + ldr r0, _080E3AC8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080E3A94 + ldrh r0, [r4] + negs r0, r0 + strh r0, [r4] + ldrh r0, [r4, 0x2] + negs r0, r0 + strh r0, [r4, 0x2] +_080E3A94: + ldr r0, _080E3ACC + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r2, _080E3AC4 + ldrh r0, [r2] + strh r0, [r1, 0xA] + ldrh r0, [r2, 0x2] + strh r0, [r1, 0xC] + ldrh r0, [r2, 0x6] + strh r0, [r1, 0xE] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + adds r0, r6, 0 + bl move_anim_task_del + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E3AC0: .4byte sub_80E3AD0 +_080E3AC4: .4byte gUnknown_03004B00 +_080E3AC8: .4byte gUnknown_0202F7C8 +_080E3ACC: .4byte gTasks + thumb_func_end sub_80E3A58 + + thumb_func_start sub_80E3AD0 +sub_80E3AD0: @ 80E3AD0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080E3B3C + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r3, [r1, 0xA] + ldrh r0, [r1, 0x1C] + adds r3, r0 + movs r4, 0 + mov r12, r4 + strh r3, [r1, 0x1C] + ldrh r2, [r1, 0xC] + ldrh r7, [r1, 0x1E] + adds r2, r7 + strh r2, [r1, 0x1E] + ldr r6, _080E3B40 + lsls r0, r3, 16 + asrs r0, 24 + ldrh r4, [r6] + adds r0, r4 + strh r0, [r6] + ldr r4, _080E3B44 + lsls r0, r2, 16 + asrs r0, 24 + ldrh r7, [r4] + adds r0, r7 + strh r0, [r4] + movs r0, 0xFF + ands r3, r0 + strh r3, [r1, 0x1C] + ands r2, r0 + strh r2, [r1, 0x1E] + ldr r0, _080E3B48 + movs r3, 0xE + ldrsh r2, [r0, r3] + movs r7, 0xE + ldrsh r0, [r1, r7] + cmp r2, r0 + bne _080E3B36 + mov r0, r12 + strh r0, [r6] + strh r0, [r4] + movs r0, 0x1 + bl sub_80789D4 + adds r0, r5, 0 + bl DestroyTask +_080E3B36: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E3B3C: .4byte gTasks +_080E3B40: .4byte gUnknown_030041B0 +_080E3B44: .4byte gUnknown_030041B8 +_080E3B48: .4byte gUnknown_03004B00 + thumb_func_end sub_80E3AD0 + + thumb_func_start sub_80E3B4C +sub_80E3B4C: @ 80E3B4C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080E3B70 + ldrb r0, [r0] + bl battle_side_get_owner + ldr r1, _080E3B74 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0xE] + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E3B70: .4byte gUnknown_0202F7C8 +_080E3B74: .4byte gUnknown_03004B00 + thumb_func_end sub_80E3B4C + + thumb_func_start sub_80E3B78 +sub_80E3B78: @ 80E3B78 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080E3B9C + ldrb r0, [r0] + bl battle_side_get_owner + ldr r1, _080E3BA0 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0xE] + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E3B9C: .4byte gUnknown_0202F7C9 +_080E3BA0: .4byte gUnknown_03004B00 + thumb_func_end sub_80E3B78 + + thumb_func_start sub_80E3BA4 +sub_80E3BA4: @ 80E3BA4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r5, _080E3BD0 + movs r4, 0 + ldr r0, _080E3BD4 + ldrb r2, [r0] + movs r0, 0x2 + ldr r1, _080E3BD8 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bne _080E3BC0 + movs r4, 0x1 +_080E3BC0: + strh r4, [r5, 0xE] + adds r0, r3, 0 + bl move_anim_task_del + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E3BD0: .4byte gUnknown_03004B00 +_080E3BD4: .4byte gUnknown_0202F7C8 +_080E3BD8: .4byte gUnknown_0202F7C9 + thumb_func_end sub_80E3BA4 + + thumb_func_start sub_80E3BDC +sub_80E3BDC: @ 80E3BDC + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r6, _080E3C3C +_080E3BE6: + ldr r0, _080E3C40 + ldrb r0, [r0] + cmp r4, r0 + beq _080E3C24 + lsls r0, r4, 24 + lsrs r0, 24 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080E3C24 + ldr r0, _080E3C44 + adds r0, r4, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r6 + ldr r1, _080E3C48 + adds r2, 0x3E + movs r0, 0x1 + ldrb r3, [r1] + ands r3, r0 + lsls r3, 2 + ldrb r0, [r2] + movs r7, 0x5 + negs r7, r7 + adds r1, r7, 0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] +_080E3C24: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080E3BE6 + adds r0, r5, 0 + bl move_anim_task_del + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E3C3C: .4byte gSprites +_080E3C40: .4byte gUnknown_0202F7C8 +_080E3C44: .4byte gUnknown_02024BE0 +_080E3C48: .4byte gUnknown_03004B00 + thumb_func_end sub_80E3BDC + + thumb_func_start sub_80E3C4C +sub_80E3C4C: @ 80E3C4C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + ldr r1, [sp, 0x3C] + ldr r4, [sp, 0x40] + ldr r5, [sp, 0x44] + ldr r6, [sp, 0x48] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0xC] + lsls r3, 24 + lsrs r7, r3, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp, 0x10] + lsls r5, 24 + lsrs r5, 24 + str r5, [sp, 0x14] + lsls r6, 24 + lsrs r6, 24 + mov r10, r6 + movs r0, 0 + str r0, [sp, 0x18] + movs r0, 0x2 + adds r6, r7, 0 + eors r6, r0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E3CAE + mov r1, r8 + cmp r1, 0 + beq _080E3CB2 + adds r0, r6, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + bne _080E3CB2 +_080E3CAE: + movs r2, 0 + mov r8, r2 +_080E3CB2: + ldr r0, _080E3D34 + movs r1, 0 + strh r1, [r0] + ldr r0, _080E3D38 + strh r1, [r0] + ldr r1, _080E3D3C + ldr r3, _080E3D40 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080E3D44 + adds r0, r2, 0 + strh r0, [r1] + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080E3D48 + ldr r2, _080E3D4C + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0x80 + lsls r3, 5 + adds r0, r3, 0 + strh r0, [r1] + ldr r4, _080E3D50 + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x1] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r4, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E3D22 + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080E3D22: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E3D58 + ldr r0, _080E3D54 + ldrh r4, [r0] + b _080E3D96 + .align 2, 0 +_080E3D34: .4byte gUnknown_030042C4 +_080E3D38: .4byte gUnknown_03004240 +_080E3D3C: .4byte REG_WININ +_080E3D40: .4byte 0x00003f3f +_080E3D44: .4byte 0x00003f3d +_080E3D48: .4byte REG_BLDCNT +_080E3D4C: .4byte 0x00003f42 +_080E3D50: .4byte REG_BG1CNT +_080E3D54: .4byte 0x02019348 +_080E3D58: + adds r0, r7, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080E3D7C + ldr r1, _080E3D74 + lsls r0, r7, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080E3D78 + b _080E3D8A + .align 2, 0 +_080E3D74: .4byte gUnknown_02024A6A +_080E3D78: .4byte gEnemyParty +_080E3D7C: + ldr r1, _080E3E48 + lsls r0, r7, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080E3E4C +_080E3D8A: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 +_080E3D96: + ldr r5, _080E3E50 + adds r0, r7, r5 + ldrb r1, [r0] + adds r0, r7, 0 + adds r2, r4, 0 + bl sub_807A4A0 + lsls r0, 24 + lsrs r7, r0, 24 + mov r0, r8 + cmp r0, 0 + beq _080E3DC0 + adds r0, r6, r5 + ldrb r1, [r0] + adds r0, r6, 0 + adds r2, r4, 0 + bl sub_807A4A0 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x18] +_080E3DC0: + mov r0, sp + bl sub_8078914 + ldr r1, [sp, 0x4] + ldr r0, [sp, 0x50] + bl LZDecompressVram + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E3DE6 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80763FC +_080E3DE6: + ldr r1, [sp] + ldr r0, [sp, 0x4C] + bl LZDecompressVram + mov r0, sp + ldrb r1, [r0, 0x8] + lsls r1, 4 + ldr r0, [sp, 0x54] + movs r2, 0x20 + bl LoadCompressedPalette + ldr r0, _080E3E54 + movs r1, 0 + strh r1, [r0] + ldr r0, _080E3E58 + strh r1, [r0] + ldr r1, _080E3E5C + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + mov r3, sp + ldrh r3, [r3, 0xC] + strh r3, [r0, 0xA] + mov r1, sp + ldrh r1, [r1, 0x10] + strh r1, [r0, 0x10] + mov r2, r10 + strh r2, [r0, 0x12] + mov r3, sp + ldrh r3, [r3, 0x14] + strh r3, [r0, 0x14] + strh r7, [r0, 0x8] + mov r1, r8 + strh r1, [r0, 0xC] + mov r2, sp + ldrh r2, [r2, 0x18] + strh r2, [r0, 0xE] + ldr r1, _080E3E60 + str r1, [r0] + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E3E48: .4byte gUnknown_02024A6A +_080E3E4C: .4byte gPlayerParty +_080E3E50: .4byte gUnknown_02024BE0 +_080E3E54: .4byte gUnknown_030042C0 +_080E3E58: .4byte gUnknown_030041B4 +_080E3E5C: .4byte gTasks +_080E3E60: .4byte sub_80E3E64 + thumb_func_end sub_80E3C4C + + thumb_func_start sub_80E3E64 +sub_80E3E64: @ 80E3E64 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080E3E9C + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r3, r0, r1 + movs r0, 0xA + ldrsh r2, [r3, r0] + adds r5, r1, 0 + cmp r2, 0 + bge _080E3E80 + negs r2, r2 +_080E3E80: + ldrh r0, [r3, 0x22] + adds r4, r0, r2 + strh r4, [r3, 0x22] + movs r1, 0xA + ldrsh r0, [r3, r1] + cmp r0, 0 + bge _080E3EA4 + ldr r2, _080E3EA0 + lsls r1, r4, 16 + asrs r1, 24 + ldrh r0, [r2] + subs r0, r1 + strh r0, [r2] + b _080E3EB0 + .align 2, 0 +_080E3E9C: .4byte gTasks +_080E3EA0: .4byte gUnknown_030041B4 +_080E3EA4: + ldr r1, _080E3ED4 + lsls r0, r4, 16 + asrs r0, 24 + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] +_080E3EB0: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r5 + ldrh r1, [r4, 0x22] + movs r0, 0xFF + ands r0, r1 + movs r2, 0 + strh r0, [r4, 0x22] + movs r3, 0x26 + ldrsh r0, [r4, r3] + cmp r0, 0x1 + beq _080E3F18 + cmp r0, 0x1 + bgt _080E3ED8 + cmp r0, 0 + beq _080E3EDE + b _080E3FE2 + .align 2, 0 +_080E3ED4: .4byte gUnknown_030041B4 +_080E3ED8: + cmp r0, 0x2 + beq _080E3F32 + b _080E3FE2 +_080E3EDE: + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x14 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _080E3FE2 + strh r2, [r4, 0x1E] + ldrh r1, [r4, 0x20] + adds r1, 0x1 + strh r1, [r4, 0x20] + ldr r2, _080E3F14 + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r0, 0x20 + ldrsh r1, [r4, r0] + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080E3FE2 + b _080E3F2A + .align 2, 0 +_080E3F14: .4byte REG_BLDALPHA +_080E3F18: + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x12 + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _080E3FE2 +_080E3F2A: + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] + b _080E3FE2 +_080E3F32: + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x14 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _080E3FE2 + strh r2, [r4, 0x1E] + ldrh r1, [r4, 0x20] + subs r1, 0x1 + strh r1, [r4, 0x20] + ldr r7, _080E3FE8 + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r7] + movs r0, 0x20 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _080E3FE2 + movs r0, 0 + bl sub_8076464 + ldr r0, _080E3FEC + strh r5, [r0] + ldr r0, _080E3FF0 + strh r5, [r0] + ldr r0, _080E3FF4 + ldr r2, _080E3FF8 + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E3F90 + ldr r2, _080E3FFC + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080E3F90: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + eors r0, r1 + strh r0, [r2] + ldr r0, _080E4000 + strh r5, [r0] + strh r5, [r7] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _080E4004 + adds r0, r5 + bl DestroySprite + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080E3FD0 + movs r2, 0xE + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite +_080E3FD0: + ldr r2, _080E3FFC + ldrb r1, [r2, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + adds r0, r6, 0 + bl move_anim_task_del +_080E3FE2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E3FE8: .4byte REG_BLDALPHA +_080E3FEC: .4byte gUnknown_030042C4 +_080E3FF0: .4byte gUnknown_03004240 +_080E3FF4: .4byte REG_WININ +_080E3FF8: .4byte 0x00003f3f +_080E3FFC: .4byte REG_BG1CNT +_080E4000: .4byte REG_BLDCNT +_080E4004: .4byte gSprites + thumb_func_end sub_80E3E64 + + thumb_func_start sub_80E4008 +sub_80E4008: @ 80E4008 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E4020 + ldr r1, _080E4024 + ldrb r1, [r1] + strh r1, [r2] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080E4020: .4byte gUnknown_03004B00 +_080E4024: .4byte gUnknown_0300428C + thumb_func_end sub_80E4008 + + thumb_func_start sub_80E4028 +sub_80E4028: @ 80E4028 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + ldr r0, _080E4068 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080E406C + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80791A8 + adds r1, r0, 0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080E4084 + movs r2, 0x1 +_080E405A: + lsrs r1, 1 + adds r4, 0x1 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + beq _080E405A + b _080E4084 + .align 2, 0 +_080E4068: .4byte gUnknown_03004B00 +_080E406C: + cmp r0, 0x1 + bne _080E4078 + ldr r0, _080E4074 + b _080E407E + .align 2, 0 +_080E4074: .4byte gUnknown_0202F7C8 +_080E4078: + cmp r0, 0x2 + bne _080E4084 + ldr r0, _080E409C +_080E407E: + ldrb r0, [r0] + adds r4, r0, 0 + adds r4, 0x10 +_080E4084: + ldr r0, _080E40A0 + movs r1, 0x2 + ldrsh r0, [r0, r1] + lsls r5, r0, 5 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E40A8 + ldr r0, _080E40A4 + b _080E40AA + .align 2, 0 +_080E409C: .4byte gUnknown_0202F7C9 +_080E40A0: .4byte gUnknown_03004B00 +_080E40A4: .4byte 0x02014800 +_080E40A8: + ldr r0, _080E40C8 +_080E40AA: + adds r2, r5, r0 + lsls r1, r4, 5 + ldr r0, _080E40CC + adds r1, r0 + adds r0, r2, 0 + movs r2, 0x20 + bl memcpy + adds r0, r6, 0 + bl move_anim_task_del + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E40C8: .4byte 0x02018000 +_080E40CC: .4byte gPlttBufferUnfaded + thumb_func_end sub_80E4028 + + thumb_func_start sub_80E40D0 +sub_80E40D0: @ 80E40D0 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + ldr r0, _080E4110 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080E4114 + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80791A8 + adds r1, r0, 0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080E412C + movs r2, 0x1 +_080E4102: + lsrs r1, 1 + adds r4, 0x1 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + beq _080E4102 + b _080E412C + .align 2, 0 +_080E4110: .4byte gUnknown_03004B00 +_080E4114: + cmp r0, 0x1 + bne _080E4120 + ldr r0, _080E411C + b _080E4126 + .align 2, 0 +_080E411C: .4byte gUnknown_0202F7C8 +_080E4120: + cmp r0, 0x2 + bne _080E412C + ldr r0, _080E4148 +_080E4126: + ldrb r0, [r0] + adds r4, r0, 0 + adds r4, 0x10 +_080E412C: + lsls r1, r4, 5 + ldr r0, _080E414C + adds r5, r1, r0 + ldr r0, _080E4150 + movs r1, 0x2 + ldrsh r0, [r0, r1] + lsls r4, r0, 5 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E4158 + ldr r0, _080E4154 + b _080E415A + .align 2, 0 +_080E4148: .4byte gUnknown_0202F7C9 +_080E414C: .4byte gPlttBufferUnfaded +_080E4150: .4byte gUnknown_03004B00 +_080E4154: .4byte 0x02014800 +_080E4158: + ldr r0, _080E4174 +_080E415A: + adds r1, r4, r0 + adds r0, r5, 0 + movs r2, 0x20 + bl memcpy + adds r0, r6, 0 + bl move_anim_task_del + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E4174: .4byte 0x02018000 + thumb_func_end sub_80E40D0 + + thumb_func_start sub_80E4178 +sub_80E4178: @ 80E4178 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _080E41B8 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080E41BC + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80791A8 + adds r1, r0, 0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080E41D4 + movs r2, 0x1 +_080E41AA: + lsrs r1, 1 + adds r4, 0x1 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + beq _080E41AA + b _080E41D4 + .align 2, 0 +_080E41B8: .4byte gUnknown_03004B00 +_080E41BC: + cmp r0, 0x1 + bne _080E41C8 + ldr r0, _080E41C4 + b _080E41CE + .align 2, 0 +_080E41C4: .4byte gUnknown_0202F7C8 +_080E41C8: + cmp r0, 0x2 + bne _080E41D4 + ldr r0, _080E41F4 +_080E41CE: + ldrb r0, [r0] + adds r4, r0, 0 + adds r4, 0x10 +_080E41D4: + lsls r1, r4, 5 + ldr r0, _080E41F8 + adds r0, r1, r0 + ldr r2, _080E41FC + adds r1, r2 + movs r2, 0x20 + bl memcpy + adds r0, r5, 0 + bl move_anim_task_del + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E41F4: .4byte gUnknown_0202F7C9 +_080E41F8: .4byte gPlttBufferUnfaded +_080E41FC: .4byte gPlttBufferFaded + thumb_func_end sub_80E4178 + + thumb_func_start sub_80E4200 +sub_80E4200: @ 80E4200 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080E4220 + ldr r1, _080E421C + movs r0, 0x1 + strh r0, [r1, 0xE] + b _080E4224 + .align 2, 0 +_080E421C: .4byte gUnknown_03004B00 +_080E4220: + ldr r0, _080E4230 + strh r1, [r0, 0xE] +_080E4224: + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E4230: .4byte gUnknown_03004B00 + thumb_func_end sub_80E4200 + + thumb_func_start sub_80E4234 +sub_80E4234: @ 80E4234 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E4254 + ldr r1, _080E4258 + ldrb r1, [r1] + strb r1, [r2] + ldr r2, _080E425C + ldr r1, _080E4260 + ldrb r1, [r1] + strb r1, [r2] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080E4254: .4byte gUnknown_0202F7C8 +_080E4258: .4byte gUnknown_02024C08 +_080E425C: .4byte gUnknown_0202F7C9 +_080E4260: .4byte gUnknown_02024C0A + thumb_func_end sub_80E4234 + + thumb_func_start sub_80E4264 +sub_80E4264: @ 80E4264 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080E428C + ldrb r0, [r0] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r0, _080E4290 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080E4298 + ldr r1, _080E4294 + movs r0, 0x1 + b _080E429C + .align 2, 0 +_080E428C: .4byte gUnknown_0202F7C8 +_080E4290: .4byte gUnknown_0202F7C9 +_080E4294: .4byte gUnknown_03004B00 +_080E4298: + ldr r1, _080E42AC + movs r0, 0 +_080E429C: + strh r0, [r1, 0xE] + adds r0, r5, 0 + bl move_anim_task_del + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E42AC: .4byte gUnknown_03004B00 + thumb_func_end sub_80E4264 + + thumb_func_start sub_80E42B0 +sub_80E42B0: @ 80E42B0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E42C8 + ldr r1, _080E42CC + ldrb r1, [r1] + strb r1, [r2] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080E42C8: .4byte gUnknown_0202F7C9 +_080E42CC: .4byte gUnknown_02024C08 + thumb_func_end sub_80E42B0 + + thumb_func_start sub_80E42D0 +sub_80E42D0: @ 80E42D0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E42F0 + ldr r1, _080E42F4 + ldrb r1, [r1] + strb r1, [r2] + ldr r2, _080E42F8 + ldr r1, _080E42FC + ldrb r1, [r1] + strb r1, [r2] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080E42F0: .4byte gUnknown_0202F7C8 +_080E42F4: .4byte gUnknown_02024C07 +_080E42F8: .4byte gUnknown_0202F7C9 +_080E42FC: .4byte gUnknown_02024C0A + thumb_func_end sub_80E42D0 + + thumb_func_start sub_80E4300 +sub_80E4300: @ 80E4300 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E4318 + adds r0, r4, 0 + bl move_anim_task_del + b _080E434E +_080E4318: + ldr r0, _080E4354 + lsls r3, r4, 2 + adds r3, r4 + lsls r3, 3 + adds r3, r0 + ldr r1, _080E4358 + ldrb r0, [r1] + lsls r0, 2 + ldr r2, _080E435C + adds r0, r2 + ldr r0, [r0] + lsls r0, 31 + lsrs r0, 31 + strh r0, [r3, 0x8] + ldrb r1, [r1] + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1] + movs r2, 0x1 + orrs r0, r2 + strb r0, [r1] + ldr r0, _080E4360 + str r0, [r3] + ldr r1, _080E4364 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_080E434E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E4354: .4byte gTasks +_080E4358: .4byte gUnknown_0202F7C8 +_080E435C: .4byte 0x02017800 +_080E4360: .4byte sub_80E4368 +_080E4364: .4byte gUnknown_0202F7B2 + thumb_func_end sub_80E4300 + + thumb_func_start sub_80E4368 +sub_80E4368: @ 80E4368 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E43B0 + movs r2, 0xE + ldrsh r1, [r0, r2] + movs r0, 0x80 + lsls r0, 5 + cmp r1, r0 + bne _080E43A8 + ldr r0, _080E43B4 + ldrb r3, [r0] + lsls r3, 2 + ldr r0, _080E43B8 + adds r3, r0 + ldr r1, _080E43BC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x8] + movs r1, 0x1 + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, 0 + bl DestroyTask +_080E43A8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E43B0: .4byte gUnknown_03004B00 +_080E43B4: .4byte gUnknown_0202F7C8 +_080E43B8: .4byte 0x02017800 +_080E43BC: .4byte gTasks + thumb_func_end sub_80E4368 + + thumb_func_start sub_80E43C0 +sub_80E43C0: @ 80E43C0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E43D8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E43E0 + ldr r0, _080E43DC + b _080E4408 + .align 2, 0 +_080E43D8: .4byte gUnknown_020239F8 +_080E43DC: .4byte sub_80E4C34 +_080E43E0: + movs r0, 0x80 + lsls r0, 5 + ands r0, r1 + cmp r0, 0 + beq _080E4400 + ldr r0, _080E43F8 + ldrb r0, [r0] + cmp r0, 0x2 + beq _080E4400 + movs r4, 0x3 + ldr r0, _080E43FC + b _080E4408 + .align 2, 0 +_080E43F8: .4byte gGameVersion +_080E43FC: .4byte task00_battle_intro_80BC6C8 +_080E4400: + ldr r1, _080E4434 + lsls r0, r4, 2 + adds r0, r1 + ldr r0, [r0] +_080E4408: + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080E4438 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + movs r0, 0 + strh r0, [r1, 0x8] + strh r4, [r1, 0xA] + strh r0, [r1, 0xC] + strh r0, [r1, 0xE] + strh r0, [r1, 0x10] + strh r0, [r1, 0x12] + strh r0, [r1, 0x14] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E4434: .4byte gUnknown_083DB56C +_080E4438: .4byte gTasks + thumb_func_end sub_80E43C0 + + thumb_func_start sub_80E443C +sub_80E443C: @ 80E443C + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + ldr r0, _080E4474 + movs r1, 0 + strh r1, [r0] + ldr r0, _080E4478 + strh r1, [r0] + ldr r0, _080E447C + strh r1, [r0] + ldr r0, _080E4480 + strh r1, [r0] + ldr r0, _080E4484 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0xC + ldr r2, _080E4488 + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080E4474: .4byte gUnknown_030042C0 +_080E4478: .4byte gUnknown_030041B4 +_080E447C: .4byte gUnknown_03004288 +_080E4480: .4byte gUnknown_03004280 +_080E4484: .4byte REG_BLDCNT +_080E4488: .4byte 0x00003f3f + thumb_func_end sub_80E443C + + thumb_func_start task_battle_intro_80BC47C +task_battle_intro_80BC47C: @ 80E448C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080E44C4 + ldrh r0, [r1] + adds r0, 0x6 + strh r0, [r1] + ldr r1, _080E44C8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + mov r8, r1 + cmp r0, 0x4 + bls _080E44B8 + b _080E46BE +_080E44B8: + lsls r0, 2 + ldr r1, _080E44CC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E44C4: .4byte gUnknown_030042C0 +_080E44C8: .4byte gTasks +_080E44CC: .4byte _080E44D0 + .align 2, 0 +_080E44D0: + .4byte _080E44E4 + .4byte _080E4514 + .4byte _080E4540 + .4byte _080E4588 + .4byte _080E46B8 +_080E44E4: + ldr r0, _080E44FC + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E4500 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + add r0, r8 + movs r1, 0x10 + b _080E450A + .align 2, 0 +_080E44FC: .4byte gUnknown_020239F8 +_080E4500: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + add r0, r8 + movs r1, 0x1 +_080E450A: + strh r1, [r0, 0xC] + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080E46BE +_080E4514: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + mov r3, r8 + adds r1, r0, r3 + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _080E452C + b _080E46BE +_080E452C: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + ldr r1, _080E453C + movs r0, 0x3F + strh r0, [r1] + b _080E46BE + .align 2, 0 +_080E453C: .4byte REG_WININ +_080E4540: + ldr r1, _080E457C + ldrh r0, [r1] + subs r0, 0xFF + strh r0, [r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 6 + cmp r0, r1 + beq _080E4558 + b _080E46BE +_080E4558: + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + add r1, r8 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0xF0 + strh r0, [r1, 0xC] + movs r0, 0x20 + strh r0, [r1, 0xE] + ldr r2, _080E4580 + ldrh r1, [r2] + ldr r0, _080E4584 + ands r0, r1 + strh r0, [r2] + b _080E46BE + .align 2, 0 +_080E457C: .4byte gUnknown_03004240 +_080E4580: .4byte gUnknown_02024DE8 +_080E4584: .4byte 0x0000fffe +_080E4588: + lsls r0, r4, 2 + adds r1, r0, r4 + lsls r1, 3 + mov r5, r8 + adds r2, r1, r5 + ldrh r3, [r2, 0xE] + movs r5, 0xE + ldrsh r1, [r2, r5] + mov r12, r0 + cmp r1, 0 + beq _080E45A4 + subs r0, r3, 0x1 + strh r0, [r2, 0xE] + b _080E45D2 +_080E45A4: + movs r1, 0xA + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _080E45C4 + ldr r2, _080E45BC + ldrh r1, [r2] + ldr r0, _080E45C0 + cmp r1, r0 + beq _080E45D2 + subs r0, r1, 0x2 + b _080E45D0 + .align 2, 0 +_080E45BC: .4byte gUnknown_030041B4 +_080E45C0: .4byte 0x0000ffb0 +_080E45C4: + ldr r2, _080E4690 + ldrh r1, [r2] + ldr r0, _080E4694 + cmp r1, r0 + beq _080E45D2 + subs r0, r1, 0x1 +_080E45D0: + strh r0, [r2] +_080E45D2: + ldr r2, _080E4698 + ldrh r1, [r2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _080E45E6 + ldr r3, _080E469C + adds r0, r1, r3 + strh r0, [r2] +_080E45E6: + mov r5, r12 + adds r0, r5, r4 + lsls r0, 3 + mov r2, r8 + adds r1, r0, r2 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080E45FE + subs r0, r2, 0x2 + strh r0, [r1, 0xC] +_080E45FE: + movs r3, 0 + ldr r5, _080E46A0 + mov r9, r5 + ldr r7, _080E46A4 + mov r6, r9 + adds r5, r1, 0 +_080E460A: + lsls r2, r3, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + ldrh r0, [r5, 0xC] + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x4F + ble _080E460A + cmp r3, 0x9F + bgt _080E464E + ldr r7, _080E46A4 + ldr r6, _080E46A0 + ldr r1, _080E46A8 + mov r2, r12 + adds r0, r2, r4 + lsls r0, 3 + adds r5, r0, r1 +_080E4634: + lsls r2, r3, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + ldrh r0, [r5, 0xC] + negs r0, r0 + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x9F + ble _080E4634 +_080E464E: + mov r3, r12 + adds r0, r3, r4 + lsls r0, 3 + mov r5, r8 + adds r1, r0, r5 + movs r0, 0xC + ldrsh r2, [r1, r0] + cmp r2, 0 + bne _080E46BE + movs r0, 0x3 + mov r3, r9 + strb r0, [r3, 0x15] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + str r2, [sp] + ldr r1, _080E46AC + ldr r2, _080E46B0 + mov r0, sp + bl CpuSet + ldr r1, _080E46B4 + movs r5, 0x9C + lsls r5, 8 + adds r0, r5, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0xBC + lsls r2, 7 + adds r0, r2, 0 + strh r0, [r1] + b _080E46BE + .align 2, 0 +_080E4690: .4byte gUnknown_030041B4 +_080E4694: .4byte 0x0000ffc8 +_080E4698: .4byte gUnknown_03004240 +_080E469C: .4byte 0xfffffc04 +_080E46A0: .4byte gUnknown_03004DC0 +_080E46A4: .4byte gUnknown_03004DE0 +_080E46A8: .4byte gTasks +_080E46AC: .4byte 0x0600e000 +_080E46B0: .4byte 0x05000200 +_080E46B4: .4byte REG_BG1CNT +_080E46B8: + adds r0, r4, 0 + bl sub_80E443C +_080E46BE: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end task_battle_intro_80BC47C + + thumb_func_start task00_battle_intro_80BC6C8 +task00_battle_intro_80BC6C8: @ 80E46CC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080E46F8 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0xA + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x3 + beq _080E470C + cmp r0, 0x3 + bgt _080E46FC + cmp r0, 0x2 + beq _080E4700 + b _080E4714 + .align 2, 0 +_080E46F8: .4byte gTasks +_080E46FC: + cmp r0, 0x4 + bne _080E4714 +_080E4700: + ldr r1, _080E4708 + ldrh r0, [r1] + adds r0, 0x8 + b _080E4712 + .align 2, 0 +_080E4708: .4byte gUnknown_030042C0 +_080E470C: + ldr r1, _080E4750 + ldrh r0, [r1] + adds r0, 0x6 +_080E4712: + strh r0, [r1] +_080E4714: + lsls r0, r5, 2 + adds r1, r0, r5 + lsls r1, 3 + adds r4, r1, r2 + movs r3, 0xA + ldrsh r1, [r4, r3] + adds r6, r0, 0 + cmp r1, 0x4 + bne _080E4778 + ldr r7, _080E4754 + ldrh r0, [r4, 0x14] + bl Cos2 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080E473A + ldr r1, _080E4758 + adds r0, r1 +_080E473A: + asrs r0, 9 + subs r0, 0x8 + strh r0, [r7] + ldrh r1, [r4, 0x14] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0xB3 + bgt _080E475C + adds r0, r1, 0x4 + b _080E475E + .align 2, 0 +_080E4750: .4byte gUnknown_030042C0 +_080E4754: .4byte gUnknown_030041B4 +_080E4758: .4byte 0x000001ff +_080E475C: + adds r0, r1, 0x6 +_080E475E: + strh r0, [r4, 0x14] + ldr r2, _080E4794 + adds r0, r6, r5 + lsls r0, 3 + adds r3, r0, r2 + movs r4, 0x14 + ldrsh r1, [r3, r4] + movs r0, 0xB4 + lsls r0, 1 + cmp r1, r0 + bne _080E4778 + movs r0, 0 + strh r0, [r3, 0x14] +_080E4778: + adds r0, r6, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x4 + bls _080E4788 + b _080E4996 +_080E4788: + lsls r0, 2 + ldr r1, _080E4798 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E4794: .4byte gTasks +_080E4798: .4byte _080E479C + .align 2, 0 +_080E479C: + .4byte _080E47B0 + .4byte _080E47E0 + .4byte _080E480C + .4byte _080E485C + .4byte _080E4990 +_080E47B0: + ldr r1, _080E47CC + adds r0, r6, r5 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x10 + strh r3, [r2, 0x10] + ldr r0, _080E47D0 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E47D4 + strh r3, [r2, 0xC] + b _080E47D8 + .align 2, 0 +_080E47CC: .4byte gTasks +_080E47D0: .4byte gUnknown_020239F8 +_080E47D4: + movs r0, 0x1 + strh r0, [r2, 0xC] +_080E47D8: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080E4996 +_080E47E0: + ldr r0, _080E4804 + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _080E47F6 + b _080E4996 +_080E47F6: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + ldr r1, _080E4808 + movs r0, 0x3F + strh r0, [r1] + b _080E4996 + .align 2, 0 +_080E4804: .4byte gTasks +_080E4808: .4byte REG_WININ +_080E480C: + ldr r1, _080E484C + ldrh r0, [r1] + subs r0, 0xFF + strh r0, [r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 6 + cmp r0, r1 + beq _080E4824 + b _080E4996 +_080E4824: + ldr r0, _080E4850 + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0xF0 + strh r0, [r1, 0xC] + movs r0, 0x20 + strh r0, [r1, 0xE] + movs r0, 0x1 + strh r0, [r1, 0x12] + ldr r2, _080E4854 + ldrh r1, [r2] + ldr r0, _080E4858 + ands r0, r1 + strh r0, [r2] + b _080E4996 + .align 2, 0 +_080E484C: .4byte gUnknown_03004240 +_080E4850: .4byte gTasks +_080E4854: .4byte gUnknown_02024DE8 +_080E4858: .4byte 0x0000fffe +_080E485C: + adds r0, r6, r5 + lsls r0, 3 + adds r1, r0, r2 + ldrh r3, [r1, 0xE] + movs r4, 0xE + ldrsh r0, [r1, r4] + cmp r0, 0 + beq _080E4898 + subs r0, r3, 0x1 + strh r0, [r1, 0xE] + lsls r0, 16 + asrs r3, r0, 16 + cmp r3, 0 + bne _080E48B8 + ldr r1, _080E488C + ldr r4, _080E4890 + adds r0, r4, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0xF + strh r0, [r1] + ldr r0, _080E4894 + strh r3, [r0] + b _080E48B8 + .align 2, 0 +_080E488C: .4byte REG_BLDCNT +_080E4890: .4byte 0x00001842 +_080E4894: .4byte REG_BLDY +_080E4898: + ldrh r3, [r1, 0x10] + movs r0, 0x1F + ands r0, r3 + cmp r0, 0 + beq _080E48B8 + ldrh r0, [r1, 0x12] + subs r0, 0x1 + strh r0, [r1, 0x12] + lsls r0, 16 + cmp r0, 0 + bne _080E48B8 + adds r0, r3, 0 + adds r0, 0xFF + strh r0, [r1, 0x10] + movs r0, 0x4 + strh r0, [r1, 0x12] +_080E48B8: + ldr r3, _080E4970 + ldrh r1, [r3] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _080E48CC + ldr r4, _080E4974 + adds r0, r1, r4 + strh r0, [r3] +_080E48CC: + adds r0, r6, r5 + lsls r0, 3 + adds r1, r0, r2 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080E48E0 + subs r0, r2, 0x2 + strh r0, [r1, 0xC] +_080E48E0: + movs r3, 0 + ldr r4, _080E4978 + mov r8, r4 + ldr r0, _080E497C + mov r12, r0 + mov r7, r8 + adds r4, r1, 0 +_080E48EE: + lsls r2, r3, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r12 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x4F + ble _080E48EE + cmp r3, 0x9F + bgt _080E4932 + ldr r1, _080E497C + mov r12, r1 + ldr r7, _080E4978 + ldr r1, _080E4980 + adds r0, r6, r5 + lsls r0, 3 + adds r4, r0, r1 +_080E4918: + lsls r2, r3, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r12 + ldrh r0, [r4, 0xC] + negs r0, r0 + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x9F + ble _080E4918 +_080E4932: + ldr r1, _080E4980 + adds r0, r6, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r3, 0xC + ldrsh r2, [r1, r3] + cmp r2, 0 + bne _080E4996 + movs r0, 0x3 + mov r4, r8 + strb r0, [r4, 0x15] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + str r2, [sp] + ldr r1, _080E4984 + ldr r2, _080E4988 + mov r0, sp + bl CpuSet + ldr r1, _080E498C + movs r2, 0x9C + lsls r2, 8 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0xBC + lsls r3, 7 + adds r0, r3, 0 + strh r0, [r1] + b _080E4996 + .align 2, 0 +_080E4970: .4byte gUnknown_03004240 +_080E4974: .4byte 0xfffffc04 +_080E4978: .4byte gUnknown_03004DC0 +_080E497C: .4byte gUnknown_03004DE0 +_080E4980: .4byte gTasks +_080E4984: .4byte 0x0600e000 +_080E4988: .4byte 0x05000200 +_080E498C: .4byte REG_BG1CNT +_080E4990: + adds r0, r5, 0 + bl sub_80E443C +_080E4996: + ldr r0, _080E49B8 + adds r1, r6, r5 + lsls r1, 3 + adds r2, r1, r0 + movs r4, 0x8 + ldrsh r0, [r2, r4] + cmp r0, 0x4 + beq _080E49AC + ldr r1, _080E49BC + ldrh r0, [r2, 0x10] + strh r0, [r1] +_080E49AC: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E49B8: .4byte gTasks +_080E49BC: .4byte REG_BLDALPHA + thumb_func_end task00_battle_intro_80BC6C8 + + thumb_func_start task_battle_intro_anim +task_battle_intro_anim: @ 80E49C0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080E49F4 + ldrh r0, [r1] + adds r0, 0x8 + strh r0, [r1] + ldr r1, _080E49F8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r5, r1, 0 + cmp r0, 0x4 + bls _080E49EA + b _080E4C06 +_080E49EA: + lsls r0, 2 + ldr r1, _080E49FC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E49F4: .4byte gUnknown_030042C0 +_080E49F8: .4byte gTasks +_080E49FC: .4byte _080E4A00 + .align 2, 0 +_080E4A00: + .4byte _080E4A14 + .4byte _080E4A6C + .4byte _080E4A9C + .4byte _080E4AEC + .4byte _080E4C00 +_080E4A14: + ldr r1, _080E4A48 + ldr r3, _080E4A4C + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _080E4A50 + ldr r6, _080E4A54 + adds r2, r6, 0 + strh r2, [r0] + adds r1, 0x4 + movs r0, 0 + strh r0, [r1] + ldr r1, _080E4A58 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r3, r0, r1 + strh r2, [r3, 0x10] + ldr r0, _080E4A5C + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E4A60 + movs r0, 0x10 + b _080E4A62 + .align 2, 0 +_080E4A48: .4byte REG_BLDCNT +_080E4A4C: .4byte 0x00001842 +_080E4A50: .4byte REG_BLDALPHA +_080E4A54: .4byte 0x00000808 +_080E4A58: .4byte gTasks +_080E4A5C: .4byte gUnknown_020239F8 +_080E4A60: + movs r0, 0x1 +_080E4A62: + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + b _080E4C06 +_080E4A6C: + ldr r0, _080E4A94 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _080E4A84 + b _080E4C06 +_080E4A84: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + ldr r1, _080E4A98 + movs r0, 0x3F + strh r0, [r1] + b _080E4C06 + .align 2, 0 +_080E4A94: .4byte gTasks +_080E4A98: .4byte REG_WININ +_080E4A9C: + ldr r1, _080E4ADC + ldrh r0, [r1] + subs r0, 0xFF + strh r0, [r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 6 + cmp r0, r1 + beq _080E4AB4 + b _080E4C06 +_080E4AB4: + ldr r0, _080E4AE0 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0xF0 + strh r0, [r1, 0xC] + movs r0, 0x20 + strh r0, [r1, 0xE] + movs r0, 0x1 + strh r0, [r1, 0x12] + ldr r2, _080E4AE4 + ldrh r1, [r2] + ldr r0, _080E4AE8 + ands r0, r1 + strh r0, [r2] + b _080E4C06 + .align 2, 0 +_080E4ADC: .4byte gUnknown_03004240 +_080E4AE0: .4byte gTasks +_080E4AE4: .4byte gUnknown_02024DE8 +_080E4AE8: .4byte 0x0000fffe +_080E4AEC: + lsls r0, r4, 2 + adds r1, r0, r4 + lsls r1, 3 + adds r2, r1, r5 + ldrh r3, [r2, 0xE] + movs r6, 0xE + ldrsh r1, [r2, r6] + mov r12, r0 + cmp r1, 0 + beq _080E4B06 + subs r0, r3, 0x1 + strh r0, [r2, 0xE] + b _080E4B26 +_080E4B06: + ldrh r1, [r2, 0x10] + movs r0, 0xF + ands r0, r1 + cmp r0, 0 + beq _080E4B26 + ldrh r0, [r2, 0x12] + subs r0, 0x1 + strh r0, [r2, 0x12] + lsls r0, 16 + cmp r0, 0 + bne _080E4B26 + adds r0, r1, 0 + adds r0, 0xFF + strh r0, [r2, 0x10] + movs r0, 0x6 + strh r0, [r2, 0x12] +_080E4B26: + ldr r2, _080E4BE0 + ldrh r1, [r2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _080E4B3A + ldr r3, _080E4BE4 + adds r0, r1, r3 + strh r0, [r2] +_080E4B3A: + mov r6, r12 + adds r0, r6, r4 + lsls r0, 3 + adds r1, r0, r5 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080E4B50 + subs r0, r2, 0x2 + strh r0, [r1, 0xC] +_080E4B50: + movs r3, 0 + ldr r6, _080E4BE8 + mov r8, r6 + ldr r7, _080E4BEC + adds r5, r1, 0 +_080E4B5A: + lsls r2, r3, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + ldrh r0, [r5, 0xC] + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x4F + ble _080E4B5A + cmp r3, 0x9F + bgt _080E4B9E + ldr r7, _080E4BEC + ldr r6, _080E4BE8 + ldr r1, _080E4BF0 + mov r2, r12 + adds r0, r2, r4 + lsls r0, 3 + adds r5, r0, r1 +_080E4B84: + lsls r2, r3, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + ldrh r0, [r5, 0xC] + negs r0, r0 + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x9F + ble _080E4B84 +_080E4B9E: + ldr r1, _080E4BF0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + movs r3, 0xC + ldrsh r2, [r1, r3] + cmp r2, 0 + bne _080E4C06 + movs r0, 0x3 + mov r6, r8 + strb r0, [r6, 0x15] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + str r2, [sp] + ldr r1, _080E4BF4 + ldr r2, _080E4BF8 + mov r0, sp + bl CpuSet + ldr r1, _080E4BFC + movs r2, 0x9C + lsls r2, 8 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0xBC + lsls r3, 7 + adds r0, r3, 0 + strh r0, [r1] + b _080E4C06 + .align 2, 0 +_080E4BE0: .4byte gUnknown_03004240 +_080E4BE4: .4byte 0xfffffc04 +_080E4BE8: .4byte gUnknown_03004DC0 +_080E4BEC: .4byte gUnknown_03004DE0 +_080E4BF0: .4byte gTasks +_080E4BF4: .4byte 0x0600e000 +_080E4BF8: .4byte 0x05000200 +_080E4BFC: .4byte REG_BG1CNT +_080E4C00: + adds r0, r4, 0 + bl sub_80E443C +_080E4C06: + ldr r0, _080E4C2C + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r2, r1, r0 + movs r6, 0x8 + ldrsh r0, [r2, r6] + cmp r0, 0x4 + beq _080E4C1E + ldr r1, _080E4C30 + ldrh r0, [r2, 0x10] + strh r0, [r1] +_080E4C1E: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E4C2C: .4byte gTasks +_080E4C30: .4byte REG_BLDALPHA + thumb_func_end task_battle_intro_anim + + thumb_func_start sub_80E4C34 +sub_80E4C34: @ 80E4C34 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080E4C80 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r7, r0, r1 + movs r1, 0x8 + ldrsh r0, [r7, r1] + cmp r0, 0x1 + ble _080E4CAA + movs r2, 0x10 + ldrsh r0, [r7, r2] + cmp r0, 0 + bne _080E4CAA + ldr r2, _080E4C84 + ldrh r1, [r2] + movs r0, 0x80 + lsls r0, 8 + ands r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + bne _080E4C72 + cmp r1, 0x4F + bhi _080E4C8C +_080E4C72: + adds r0, r1, 0x3 + strh r0, [r2] + ldr r1, _080E4C88 + ldrh r0, [r1] + subs r0, 0x3 + strh r0, [r1] + b _080E4CAA + .align 2, 0 +_080E4C80: .4byte gTasks +_080E4C84: .4byte gUnknown_030042C0 +_080E4C88: .4byte gUnknown_03004288 +_080E4C8C: + str r5, [sp] + ldr r1, _080E4CCC + ldr r4, _080E4CD0 + mov r0, sp + adds r2, r4, 0 + bl CpuSet + str r5, [sp, 0x4] + add r0, sp, 0x4 + ldr r1, _080E4CD4 + adds r2, r4, 0 + bl CpuSet + movs r0, 0x1 + strh r0, [r7, 0x10] +_080E4CAA: + ldr r0, _080E4CD8 + lsls r2, r6, 2 + adds r1, r2, r6 + lsls r1, 3 + adds r1, r0 + movs r3, 0x8 + ldrsh r1, [r1, r3] + mov r12, r0 + adds r5, r2, 0 + cmp r1, 0x4 + bls _080E4CC2 + b _080E4EBA +_080E4CC2: + lsls r0, r1, 2 + ldr r1, _080E4CDC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E4CCC: .4byte 0x0600e000 +_080E4CD0: .4byte 0x05000200 +_080E4CD4: .4byte 0x0600f000 +_080E4CD8: .4byte gTasks +_080E4CDC: .4byte _080E4CE0 + .align 2, 0 +_080E4CE0: + .4byte _080E4CF4 + .4byte _080E4D06 + .4byte _080E4DA8 + .4byte _080E4DEC + .4byte _080E4EB4 +_080E4CF4: + adds r0, r5, r6 + lsls r0, 3 + add r0, r12 + movs r1, 0x10 + strh r1, [r0, 0xC] + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080E4EBA +_080E4D06: + adds r0, r5, r6 + lsls r0, 3 + mov r2, r12 + adds r1, r0, r2 + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _080E4D1C + b _080E4EBA +_080E4D1C: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + ldr r5, _080E4D8C + ldr r4, _080E4D90 + ldr r3, _080E4D94 + adds r6, r4, r3 + ldrb r0, [r6] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r3, [r1, 0x1] + movs r2, 0xD + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + movs r3, 0x8 + mov r8, r3 + mov r3, r8 + orrs r0, r3 + strb r0, [r1, 0x1] + ldrb r1, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r6, r5, 0 + adds r6, 0x1C + adds r0, r6 + ldr r3, _080E4D98 + str r3, [r0] + ldr r0, _080E4D9C + adds r4, r0 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0, 0x1] + ands r2, r1 + mov r1, r8 + orrs r2, r1 + strb r2, [r0, 0x1] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + str r3, [r0] + ldr r1, _080E4DA0 + movs r0, 0x3F + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080E4DA4 + b _080E4E94 + .align 2, 0 +_080E4D8C: .4byte gSprites +_080E4D90: .4byte 0x02000000 +_080E4D94: .4byte 0x0001608a +_080E4D98: .4byte sub_800FE20 +_080E4D9C: .4byte 0x0001608b +_080E4DA0: .4byte REG_WININ +_080E4DA4: .4byte 0x00003f06 +_080E4DA8: + ldr r1, _080E4DE0 + ldrh r0, [r1] + subs r0, 0xFF + strh r0, [r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 6 + cmp r0, r1 + beq _080E4DC0 + b _080E4EBA +_080E4DC0: + adds r1, r5, r6 + lsls r1, 3 + add r1, r12 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0xF0 + strh r0, [r1, 0xC] + movs r0, 0x20 + strh r0, [r1, 0xE] + ldr r2, _080E4DE4 + ldrh r1, [r2] + ldr r0, _080E4DE8 + ands r0, r1 + strh r0, [r2] + b _080E4EBA + .align 2, 0 +_080E4DE0: .4byte gUnknown_03004240 +_080E4DE4: .4byte gUnknown_02024DE8 +_080E4DE8: .4byte 0x0000fffe +_080E4DEC: + ldr r2, _080E4E9C + ldrh r1, [r2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _080E4E00 + ldr r3, _080E4EA0 + adds r0, r1, r3 + strh r0, [r2] +_080E4E00: + adds r0, r5, r6 + lsls r0, 3 + mov r2, r12 + adds r1, r0, r2 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080E4E16 + subs r0, r2, 0x2 + strh r0, [r1, 0xC] +_080E4E16: + movs r3, 0 + ldr r0, _080E4EA4 + mov r9, r0 + ldr r2, _080E4EA8 + mov r8, r2 + mov r7, r9 + adds r4, r1, 0 +_080E4E24: + lsls r2, r3, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r8 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x4F + ble _080E4E24 + cmp r3, 0x9F + bgt _080E4E68 + ldr r0, _080E4EA8 + mov r8, r0 + ldr r7, _080E4EA4 + ldr r1, _080E4EAC + adds r0, r5, r6 + lsls r0, 3 + adds r4, r0, r1 +_080E4E4E: + lsls r2, r3, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r8 + ldrh r0, [r4, 0xC] + negs r0, r0 + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x9F + ble _080E4E4E +_080E4E68: + adds r0, r5, r6 + lsls r0, 3 + mov r2, r12 + adds r1, r0, r2 + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080E4EBA + movs r0, 0x3 + mov r2, r9 + strb r0, [r2, 0x15] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + ldr r1, _080E4EB0 + movs r3, 0x9C + lsls r3, 8 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0xBC + lsls r2, 7 +_080E4E94: + adds r0, r2, 0 + strh r0, [r1] + b _080E4EBA + .align 2, 0 +_080E4E9C: .4byte gUnknown_03004240 +_080E4EA0: .4byte 0xfffffc04 +_080E4EA4: .4byte gUnknown_03004DC0 +_080E4EA8: .4byte gUnknown_03004DE0 +_080E4EAC: .4byte gTasks +_080E4EB0: .4byte REG_BG1CNT +_080E4EB4: + adds r0, r6, 0 + bl sub_80E443C +_080E4EBA: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E4C34 + + thumb_func_start unref_sub_80E4EC8 +unref_sub_80E4EC8: @ 80E4EC8 + push {r4,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + movs r4, 0x80 + lsls r4, 7 + str r4, [sp] + movs r4, 0x1E + str r4, [sp, 0x4] + movs r4, 0x1 + str r4, [sp, 0x8] + bl sub_80E4EF8 + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + thumb_func_end unref_sub_80E4EC8 + + thumb_func_start sub_80E4EF8 +sub_80E4EF8: @ 80E4EF8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r9, r1 + adds r4, r2, 0 + ldr r1, [sp, 0x24] + mov r8, r1 + ldr r1, [sp, 0x28] + ldr r5, [sp, 0x2C] + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + mov r7, r9 + lsls r7, 24 + adds r0, r7, 0 + lsrs r0, 24 + mov r9, r0 + lsls r4, 24 + lsrs r4, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp] + mov r3, r8 + lsls r3, 16 + mov r8, r3 + lsrs r6, r3, 16 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r5, 24 + lsrs r5, 24 + adds r0, r4, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E4FCC + ldr r1, _080E4FD0 + lsls r4, 2 + adds r4, r1 + ldr r1, _080E4FD4 + adds r0, r1 + ldrb r1, [r0] + lsls r1, 11 + ldr r0, [r4] + adds r0, r1 + str r0, [r2] + movs r0, 0xC0 + lsls r0, 19 + adds r6, r0 + str r6, [r2, 0x4] + ldr r0, _080E4FD8 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + mov r0, r8 + lsrs r0, 21 + lsls r5, 9 + subs r5, r0, r5 + mov r0, r9 + adds r1, r0, 0 + adds r1, 0x8 + cmp r0, r1 + bge _080E4FBC + mov r9, r1 + mov r1, r10 + lsls r1, 1 + mov r8, r1 + lsls r7, 11 + mov r12, r7 +_080E4F86: + mov r2, r10 + adds r4, r2, 0 + adds r4, 0x8 + adds r1, r0, 0x1 + cmp r2, r4 + bge _080E4FB6 + ldr r3, [sp] + lsls r6, r3, 12 + lsls r0, 6 + movs r7, 0xC0 + lsls r7, 19 + adds r0, r7 + add r0, r12 + mov r7, r8 + adds r3, r7, r0 + subs r2, r4, r2 +_080E4FA6: + adds r0, r5, 0 + orrs r0, r6 + strh r0, [r3] + adds r5, 0x1 + adds r3, 0x2 + subs r2, 0x1 + cmp r2, 0 + bne _080E4FA6 +_080E4FB6: + adds r0, r1, 0 + cmp r0, r9 + blt _080E4F86 +_080E4FBC: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E4FCC: .4byte 0x040000d4 +_080E4FD0: .4byte gUnknown_081FAF4C +_080E4FD4: .4byte gUnknown_02024E84 +_080E4FD8: .4byte 0x80000400 + thumb_func_end sub_80E4EF8 + + thumb_func_start unref_sub_80E4FDC +unref_sub_80E4FDC: @ 80E4FDC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r4, [sp, 0x24] + ldr r5, [sp, 0x28] + mov r8, r5 + ldr r5, [sp, 0x2C] + ldr r6, [sp, 0x30] + mov r9, r6 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + lsls r1, 24 + lsls r2, 24 + lsls r3, 24 + lsls r4, 24 + lsrs r4, 24 + mov r10, r4 + mov r7, r8 + lsls r7, 16 + lsrs r6, r7, 16 + lsls r5, 24 + lsrs r5, 24 + mov r0, r9 + lsls r0, 24 + mov r9, r0 + ldr r4, _080E509C + ldr r0, _080E50A0 + lsrs r2, 22 + adds r2, r0 + lsrs r3, 13 + ldr r0, [r2] + adds r0, r3 + str r0, [r4] + movs r0, 0xC0 + lsls r0, 19 + adds r6, r0 + str r6, [r4, 0x4] + ldr r0, _080E50A4 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + adds r2, r7, 0 + lsrs r2, 21 + mov r6, r9 + lsrs r6, 15 + subs r4, r2, r6 + lsrs r0, r1, 24 + adds r1, r0, 0 + adds r1, 0x8 + cmp r0, r1 + bge _080E508C + mov r9, r1 + mov r7, r12 + lsls r7, 1 + mov r8, r7 + lsls r5, 11 + str r5, [sp] +_080E5054: + mov r2, r12 + adds r3, r2, 0 + adds r3, 0x8 + adds r5, r0, 0x1 + cmp r2, r3 + bge _080E5086 + mov r1, r10 + lsls r6, r1, 12 + lsls r0, 6 + movs r7, 0xC0 + lsls r7, 19 + adds r0, r7 + ldr r1, [sp] + adds r0, r1, r0 + mov r7, r8 + adds r1, r7, r0 + subs r2, r3, r2 +_080E5076: + adds r0, r4, 0 + orrs r0, r6 + strh r0, [r1] + adds r4, 0x1 + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bne _080E5076 +_080E5086: + adds r0, r5, 0 + cmp r0, r9 + blt _080E5054 +_080E508C: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E509C: .4byte 0x040000d4 +_080E50A0: .4byte gUnknown_081FAF4C +_080E50A4: .4byte 0x80000400 + thumb_func_end unref_sub_80E4FDC + + thumb_func_start MovePlayerOnBike +MovePlayerOnBike: @ 80E50A8 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 16 + lsrs r2, 16 + ldr r0, _080E50CC + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E50D0 + adds r0, r3, 0 + adds r1, r4, 0 + bl MovePlayerOnMachBike + b _080E50D8 + .align 2, 0 +_080E50CC: .4byte gPlayerAvatar +_080E50D0: + adds r0, r3, 0 + adds r1, r4, 0 + bl MovePlayerOnAcroBike +_080E50D8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end MovePlayerOnBike + + thumb_func_start MovePlayerOnMachBike +MovePlayerOnMachBike: @ 80E50E0 + push {r4,lr} + sub sp, 0x4 + mov r1, sp + strb r0, [r1] + ldr r4, _080E510C + mov r0, sp + bl CheckMovementInputMachBike + lsls r0, 24 + lsrs r0, 22 + adds r0, r4 + mov r1, sp + ldrb r1, [r1] + ldr r2, [r0] + adds r0, r1, 0 + bl _call_via_r2 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E510C: .4byte gUnknown_083DB594 + thumb_func_end MovePlayerOnMachBike + + thumb_func_start CheckMovementInputMachBike +CheckMovementInputMachBike: @ 80E5110 + push {r4,lr} + adds r4, r0, 0 + bl player_get_direction_upper_nybble + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + ldrb r1, [r4] + cmp r1, 0 + bne _080E5138 + strb r0, [r4] + ldr r2, _080E5134 + ldrb r0, [r2, 0xB] + cmp r0, 0 + bne _080E514C + strb r1, [r2, 0x2] + movs r0, 0 + b _080E5160 + .align 2, 0 +_080E5134: .4byte gPlayerAvatar +_080E5138: + ldr r2, _080E5154 + cmp r1, r3 + beq _080E515C + ldrb r0, [r2, 0x2] + cmp r0, 0x2 + beq _080E515C + ldrb r0, [r2, 0xB] + cmp r0, 0 + beq _080E5158 + strb r3, [r4] +_080E514C: + movs r0, 0x2 + strb r0, [r2, 0x2] + movs r0, 0x3 + b _080E5160 + .align 2, 0 +_080E5154: .4byte gPlayerAvatar +_080E5158: + movs r0, 0x1 + b _080E515E +_080E515C: + movs r0, 0x2 +_080E515E: + strb r0, [r2, 0x2] +_080E5160: + pop {r4} + pop {r1} + bx r1 + thumb_func_end CheckMovementInputMachBike + + thumb_func_start sub_80E5168 +sub_80E5168: @ 80E5168 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl PlayerFaceDirection + bl sub_80E6024 + pop {r0} + bx r0 + thumb_func_end sub_80E5168 + + thumb_func_start sub_80E517C +sub_80E517C: @ 80E517C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080E51AC + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E51B0 + adds r4, r0, r1 + ldrb r1, [r4, 0x1E] + adds r0, r5, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + beq _080E51B4 + adds r0, r5, 0 + bl PlayerTurnInPlace + bl sub_80E6024 + b _080E51BE + .align 2, 0 +_080E51AC: .4byte gPlayerAvatar +_080E51B0: .4byte gMapObjects +_080E51B4: + ldrb r0, [r4, 0x18] + lsls r0, 28 + lsrs r0, 28 + bl sub_80E5168 +_080E51BE: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80E517C + + thumb_func_start sub_80E51C4 +sub_80E51C4: @ 80E51C4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, r5, 0 + ldr r6, _080E51F8 + ldrb r1, [r6, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E51FC + adds r4, r0, r1 + ldrb r1, [r4, 0x1E] + adds r0, r5, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E520A + ldrb r0, [r6, 0xB] + cmp r0, 0 + beq _080E5200 + ldrb r0, [r4, 0x18] + lsrs r0, 4 + bl sub_80E5270 + b _080E5266 + .align 2, 0 +_080E51F8: .4byte gPlayerAvatar +_080E51FC: .4byte gMapObjects +_080E5200: + ldrb r0, [r4, 0x18] + lsrs r0, 4 + bl sub_80E5168 + b _080E5266 +_080E520A: + adds r0, r5, 0 + bl sub_80E5D34 + lsls r0, 24 + lsrs r4, r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0xA + bhi _080E5242 + cmp r4, 0x6 + bne _080E522C + adds r0, r5, 0 + bl PlayerJumpLedge + b _080E5266 +_080E522C: + bl sub_80E6024 + subs r0, r4, 0x5 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _080E5266 + adds r0, r5, 0 + bl PlayerOnBikeCollide + b _080E5266 +_080E5242: + ldr r1, _080E526C + ldrb r0, [r6, 0xA] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r7, 0 + bl _call_via_r1 + ldrb r2, [r6, 0xA] + lsls r0, r2, 24 + lsrs r1, r0, 24 + lsrs r0, 25 + adds r0, r2, r0 + strb r0, [r6, 0xB] + cmp r1, 0x1 + bhi _080E5266 + adds r0, r2, 0x1 + strb r0, [r6, 0xA] +_080E5266: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E526C: .4byte gUnknown_083DB5A4 + thumb_func_end sub_80E51C4 + + thumb_func_start sub_80E5270 +sub_80E5270: @ 80E5270 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r7, r4, 0 + ldr r6, _080E52A8 + ldrb r0, [r6, 0xB] + cmp r0, 0 + beq _080E5286 + subs r0, 0x1 + strb r0, [r6, 0xB] + strb r0, [r6, 0xA] +_080E5286: + adds r0, r4, 0 + bl sub_80E5D34 + lsls r0, 24 + lsrs r5, r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0xA + bhi _080E52C2 + cmp r5, 0x6 + bne _080E52AC + adds r0, r4, 0 + bl PlayerJumpLedge + b _080E52D2 + .align 2, 0 +_080E52A8: .4byte gPlayerAvatar +_080E52AC: + bl sub_80E6024 + subs r0, r5, 0x5 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _080E52D2 + adds r0, r4, 0 + bl PlayerOnBikeCollide + b _080E52D2 +_080E52C2: + ldr r0, _080E52D8 + ldrb r1, [r6, 0xA] + lsls r1, 2 + adds r1, r0 + ldr r1, [r1] + adds r0, r7, 0 + bl _call_via_r1 +_080E52D2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E52D8: .4byte gUnknown_083DB5A4 + thumb_func_end sub_80E5270 + + thumb_func_start MovePlayerOnAcroBike +MovePlayerOnAcroBike: @ 80E52DC + push {r4,lr} + sub sp, 0x4 + mov r3, sp + strb r0, [r3] + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + ldr r4, _080E5310 + mov r0, sp + bl CheckMovementInputAcroBike + lsls r0, 24 + lsrs r0, 22 + adds r0, r4 + mov r1, sp + ldrb r1, [r1] + ldr r2, [r0] + adds r0, r1, 0 + bl _call_via_r2 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E5310: .4byte gUnknown_083DB5B0 + thumb_func_end MovePlayerOnAcroBike + + thumb_func_start CheckMovementInputAcroBike +CheckMovementInputAcroBike: @ 80E5314 + push {r4,lr} + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + ldr r4, _080E5338 + ldr r3, _080E533C + ldrb r3, [r3, 0x8] + lsls r3, 2 + adds r3, r4 + ldr r3, [r3] + bl _call_via_r3 + lsls r0, 24 + lsrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E5338: .4byte gUnknown_083DB5E4 +_080E533C: .4byte gPlayerAvatar + thumb_func_end CheckMovementInputAcroBike + + thumb_func_start CheckMovementInputAcroBikeNormal +CheckMovementInputAcroBikeNormal: @ 80E5340 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 16 + lsrs r5, r2, 16 + bl player_get_direction_upper_nybble + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080E5374 + movs r0, 0 + strb r0, [r2, 0xA] + ldrb r1, [r4] + cmp r1, 0 + bne _080E5380 + movs r0, 0x2 + ands r0, r6 + cmp r0, 0 + beq _080E5378 + strb r3, [r4] + strb r1, [r2, 0x2] + movs r0, 0x2 + strb r0, [r2, 0x8] + movs r0, 0x3 + b _080E53D4 + .align 2, 0 +_080E5374: .4byte gPlayerAvatar +_080E5378: + strb r3, [r4] + strb r1, [r2, 0x2] + movs r0, 0 + b _080E53D4 +_080E5380: + cmp r1, r3 + bne _080E53A6 + movs r0, 0x2 + ands r0, r5 + cmp r0, 0 + beq _080E539E + ldrb r0, [r2, 0xB] + cmp r0, 0 + bne _080E539E + adds r0, 0x1 + strb r0, [r2, 0xB] + movs r0, 0x4 + strb r0, [r2, 0x8] + movs r0, 0xB + b _080E53D4 +_080E539E: + ldrb r0, [r4] + ldr r2, _080E53CC + cmp r0, r3 + beq _080E53D0 +_080E53A6: + ldr r0, _080E53CC + ldrb r1, [r0, 0x2] + adds r2, r0, 0 + cmp r1, 0x2 + beq _080E53D0 + movs r1, 0 + movs r0, 0x1 + strb r0, [r2, 0x8] + ldrb r0, [r4] + strb r0, [r2, 0x9] + strb r1, [r2, 0x2] + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl CheckMovementInputAcroBike + lsls r0, 24 + lsrs r0, 24 + b _080E53D4 + .align 2, 0 +_080E53CC: .4byte gPlayerAvatar +_080E53D0: + movs r0, 0x2 + strb r0, [r2, 0x2] +_080E53D4: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end CheckMovementInputAcroBikeNormal + + thumb_func_start CheckMovementInputAcroBikeChangingDirection +CheckMovementInputAcroBikeChangingDirection: @ 80E53DC + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _080E5404 + ldrb r0, [r4, 0x9] + strb r0, [r5] + ldrb r0, [r4, 0xA] + adds r0, 0x1 + strb r0, [r4, 0xA] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bls _080E5408 + movs r0, 0x1 + strb r0, [r4, 0x2] + movs r0, 0 + strb r0, [r4, 0x8] + bl sub_80E6024 + movs r0, 0x1 + b _080E544E + .align 2, 0 +_080E5404: .4byte gPlayerAvatar +_080E5408: + bl player_get_direction_upper_nybble + lsls r0, 24 + lsrs r6, r0, 24 + bl sub_80E5C2C + ldrb r1, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + bne _080E544A + bl sub_80E6024 + movs r0, 0x1 + strb r0, [r4, 0xB] + adds r0, r6, 0 + bl GetOppositeDirection + ldrb r1, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + bne _080E543E + movs r0, 0x6 + strb r0, [r4, 0x8] + movs r0, 0x9 + b _080E544E +_080E543E: + movs r0, 0x2 + strb r0, [r4, 0x2] + movs r0, 0x5 + strb r0, [r4, 0x8] + movs r0, 0x8 + b _080E544E +_080E544A: + strb r6, [r5] + movs r0, 0 +_080E544E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end CheckMovementInputAcroBikeChangingDirection + + thumb_func_start CheckMovementInputAcroBikeStandingWheelie +CheckMovementInputAcroBikeStandingWheelie: @ 80E5454 + push {r4-r7,lr} + adds r7, r0, 0 + lsls r4, r2, 16 + lsrs r4, 16 + bl player_get_direction_upper_nybble + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, _080E54A0 + ldrb r1, [r5, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E54A4 + adds r1, r0, r1 + movs r0, 0 + strb r0, [r5, 0x2] + movs r0, 0x2 + ands r4, r0 + lsls r4, 16 + lsrs r4, 16 + cmp r4, 0 + bne _080E54A8 + strb r4, [r5, 0xA] + ldrb r0, [r1, 0x1E] + bl MetatileBehavior_IsBumpySlope + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080E54AE + strb r6, [r7] + strb r0, [r5, 0x8] + bl sub_80E6024 + movs r0, 0x4 + b _080E54EC + .align 2, 0 +_080E54A0: .4byte gPlayerAvatar +_080E54A4: .4byte gMapObjects +_080E54A8: + ldrb r0, [r5, 0xA] + adds r0, 0x1 + strb r0, [r5, 0xA] +_080E54AE: + ldr r1, _080E54C4 + ldrb r0, [r1, 0xA] + cmp r0, 0x27 + bls _080E54C8 + strb r6, [r7] + movs r0, 0x3 + strb r0, [r1, 0x8] + bl sub_80E6024 + movs r0, 0x6 + b _080E54EC + .align 2, 0 +_080E54C4: .4byte gPlayerAvatar +_080E54C8: + ldrb r0, [r7] + cmp r0, r6 + bne _080E54DE + movs r0, 0x2 + strb r0, [r1, 0x2] + movs r0, 0x4 + strb r0, [r1, 0x8] + bl sub_80E6024 + movs r0, 0xA + b _080E54EC +_080E54DE: + cmp r0, 0 + beq _080E54E8 + movs r0, 0x1 + strb r0, [r1, 0x2] + b _080E54EA +_080E54E8: + strb r6, [r7] +_080E54EA: + movs r0, 0x5 +_080E54EC: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end CheckMovementInputAcroBikeStandingWheelie + + thumb_func_start CheckMovementInputAcroBikeBunnyHop +CheckMovementInputAcroBikeBunnyHop: @ 80E54F4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + bl player_get_direction_upper_nybble + lsls r0, 24 + lsrs r5, r0, 24 + adds r2, r5, 0 + ldr r4, _080E5554 + ldrb r1, [r4, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E5558 + adds r7, r0, r1 + movs r0, 0x2 + mov r1, r8 + ands r0, r1 + cmp r0, 0 + bne _080E5566 + bl sub_80E6024 + ldrb r0, [r7, 0x1E] + bl MetatileBehavior_IsBumpySlope + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080E555C + movs r0, 0x2 + strb r0, [r4, 0x8] + adds r0, r6, 0 + mov r1, r9 + mov r2, r8 + bl CheckMovementInputAcroBike + lsls r0, 24 + lsrs r0, 24 + b _080E558A + .align 2, 0 +_080E5554: .4byte gPlayerAvatar +_080E5558: .4byte gMapObjects +_080E555C: + strb r5, [r6] + strb r0, [r4, 0x2] + strb r0, [r4, 0x8] + movs r0, 0x4 + b _080E558A +_080E5566: + ldrb r0, [r6] + cmp r0, 0 + bne _080E5570 + strb r5, [r6] + b _080E557C +_080E5570: + cmp r0, r2 + beq _080E5582 + ldrb r0, [r4, 0x2] + cmp r0, 0x2 + beq _080E5582 + movs r0, 0x1 +_080E557C: + strb r0, [r4, 0x2] + movs r0, 0x6 + b _080E558A +_080E5582: + ldr r1, _080E5598 + movs r0, 0x2 + strb r0, [r1, 0x2] + movs r0, 0x7 +_080E558A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080E5598: .4byte gPlayerAvatar + thumb_func_end CheckMovementInputAcroBikeBunnyHop + + thumb_func_start CheckMovementInputAcroBikeMovingWheelie +CheckMovementInputAcroBikeMovingWheelie: @ 80E559C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r6, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r5, r0, 24 + adds r2, r5, 0 + ldr r4, _080E55F8 + ldrb r1, [r4, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E55FC + adds r7, r0, r1 + movs r0, 0x2 + mov r9, r0 + movs r0, 0x2 + mov r1, r8 + ands r0, r1 + cmp r0, 0 + bne _080E5634 + bl sub_80E6024 + ldrb r0, [r7, 0x1E] + bl MetatileBehavior_IsBumpySlope + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080E5620 + strb r1, [r4, 0x8] + ldrb r0, [r6] + cmp r0, 0 + bne _080E5600 + strb r5, [r6] + b _080E560A + .align 2, 0 +_080E55F8: .4byte gPlayerAvatar +_080E55FC: .4byte gMapObjects +_080E5600: + cmp r0, r5 + beq _080E5610 + ldrb r0, [r4, 0x2] + cmp r0, 0x2 + beq _080E5610 +_080E560A: + strb r1, [r4, 0x2] + movs r0, 0x4 + b _080E5664 +_080E5610: + ldr r1, _080E561C + movs r0, 0x2 + strb r0, [r1, 0x2] + movs r0, 0xC + b _080E5664 + .align 2, 0 +_080E561C: .4byte gPlayerAvatar +_080E5620: + mov r0, r9 + strb r0, [r4, 0x8] + adds r0, r6, 0 + mov r1, r10 + mov r2, r8 + bl CheckMovementInputAcroBike + lsls r0, 24 + lsrs r0, 24 + b _080E5664 +_080E5634: + ldrb r0, [r6] + cmp r0, 0 + bne _080E564A + strb r5, [r6] + mov r1, r9 + strb r1, [r4, 0x8] + strb r0, [r4, 0x2] + bl sub_80E6024 + movs r0, 0x5 + b _080E5664 +_080E564A: + cmp r2, r0 + beq _080E565C + ldrb r0, [r4, 0x2] + cmp r0, 0x2 + beq _080E565C + movs r0, 0 + strb r0, [r4, 0x2] + movs r0, 0x5 + b _080E5664 +_080E565C: + ldr r1, _080E5674 + movs r0, 0x2 + strb r0, [r1, 0x2] + movs r0, 0xA +_080E5664: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080E5674: .4byte gPlayerAvatar + thumb_func_end CheckMovementInputAcroBikeMovingWheelie + + thumb_func_start CheckMovementInputAcroBikeUnknownMode5 +CheckMovementInputAcroBikeUnknownMode5: @ 80E5678 + push {r4-r6,lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r4, r1, 0 + adds r5, r2, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + ldr r6, _080E56CC + ldrb r1, [r6, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E56D0 + adds r0, r1 + ldrb r2, [r0, 0x1] + movs r1, 0x3 + negs r1, r1 + ands r1, r2 + strb r1, [r0, 0x1] + ldrb r1, [r0, 0x18] + lsls r1, 28 + lsrs r1, 28 + bl FieldObjectSetDirection + movs r0, 0 + strb r0, [r6, 0x8] + mov r0, r8 + adds r1, r4, 0 + adds r2, r5, 0 + bl CheckMovementInputAcroBike + lsls r0, 24 + lsrs r0, 24 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080E56CC: .4byte gPlayerAvatar +_080E56D0: .4byte gMapObjects + thumb_func_end CheckMovementInputAcroBikeUnknownMode5 + + thumb_func_start CheckMovementInputAcroBikeUnknownMode6 +CheckMovementInputAcroBikeUnknownMode6: @ 80E56D4 + push {r4,lr} + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + ldr r4, _080E56F4 + movs r3, 0 + strb r3, [r4, 0x8] + bl CheckMovementInputAcroBike + lsls r0, 24 + lsrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E56F4: .4byte gPlayerAvatar + thumb_func_end CheckMovementInputAcroBikeUnknownMode6 + + thumb_func_start sub_80E56F8 +sub_80E56F8: @ 80E56F8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl PlayerFaceDirection + pop {r0} + bx r0 + thumb_func_end sub_80E56F8 + + thumb_func_start sub_80E5708 +sub_80E5708: @ 80E5708 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E573C + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E5740 + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E572E + ldrb r0, [r5, 0x18] + lsrs r4, r0, 4 +_080E572E: + adds r0, r4, 0 + bl PlayerFaceDirection + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E573C: .4byte gPlayerAvatar +_080E5740: .4byte gMapObjects + thumb_func_end sub_80E5708 + + thumb_func_start sub_80E5744 +sub_80E5744: @ 80E5744 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + ldr r0, _080E5774 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E5778 + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E577C + ldrb r0, [r5, 0x18] + lsrs r0, 4 + bl sub_80E56F8 + b _080E57B6 + .align 2, 0 +_080E5774: .4byte gPlayerAvatar +_080E5778: .4byte gMapObjects +_080E577C: + adds r0, r4, 0 + bl sub_80E5D34 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0xA + bhi _080E57B0 + cmp r1, 0x6 + bne _080E579E + adds r0, r4, 0 + bl PlayerJumpLedge + b _080E57B6 +_080E579E: + subs r0, r1, 0x5 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _080E57B6 + adds r0, r4, 0 + bl PlayerOnBikeCollide + b _080E57B6 +_080E57B0: + adds r0, r6, 0 + bl npc_use_some_d2s +_080E57B6: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E5744 + + thumb_func_start sub_80E57BC +sub_80E57BC: @ 80E57BC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E57F0 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E57F4 + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E57E2 + ldrb r0, [r5, 0x18] + lsrs r4, r0, 4 +_080E57E2: + adds r0, r4, 0 + bl sub_805951C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E57F0: .4byte gPlayerAvatar +_080E57F4: .4byte gMapObjects + thumb_func_end sub_80E57BC + + thumb_func_start sub_80E57F8 +sub_80E57F8: @ 80E57F8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E582C + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E5830 + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E581E + ldrb r0, [r5, 0x18] + lsrs r4, r0, 4 +_080E581E: + adds r0, r4, 0 + bl sub_8059534 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E582C: .4byte gPlayerAvatar +_080E5830: .4byte gMapObjects + thumb_func_end sub_80E57F8 + + thumb_func_start sub_80E5834 +sub_80E5834: @ 80E5834 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E5868 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E586C + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E585A + ldrb r0, [r5, 0x18] + lsrs r4, r0, 4 +_080E585A: + adds r0, r4, 0 + bl sub_8059504 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E5868: .4byte gPlayerAvatar +_080E586C: .4byte gMapObjects + thumb_func_end sub_80E5834 + + thumb_func_start sub_80E5870 +sub_80E5870: @ 80E5870 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E58A4 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E58A8 + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E5896 + ldrb r0, [r5, 0x18] + lsrs r4, r0, 4 +_080E5896: + adds r0, r4, 0 + bl sub_805954C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E58A4: .4byte gPlayerAvatar +_080E58A8: .4byte gMapObjects + thumb_func_end sub_80E5870 + + thumb_func_start sub_80E58AC +sub_80E58AC: @ 80E58AC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E58D8 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E58DC + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E58E0 + ldrb r0, [r5, 0x18] + lsrs r0, 4 + bl sub_80E5870 + b _080E591A + .align 2, 0 +_080E58D8: .4byte gPlayerAvatar +_080E58DC: .4byte gMapObjects +_080E58E0: + adds r0, r4, 0 + bl sub_80E5D34 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080E5914 + cmp r1, 0x9 + beq _080E5914 + cmp r1, 0x6 + bne _080E58FE + adds r0, r4, 0 + bl sub_8059594 + b _080E591A +_080E58FE: + subs r0, r1, 0x5 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _080E591A + cmp r1, 0xB + bhi _080E5914 + adds r0, r4, 0 + bl sub_80E5870 + b _080E591A +_080E5914: + adds r0, r4, 0 + bl sub_8059570 +_080E591A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80E58AC + + thumb_func_start sub_80E5920 +sub_80E5920: @ 80E5920 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl sub_80E5D34 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0 + beq _080E5954 + cmp r0, 0x7 + beq _080E5980 + cmp r0, 0x9 + bls _080E594C + adds r0, r1, 0 + adds r1, r5, 0 + bl sub_80E5EC0 + lsls r0, 24 + cmp r0, 0 + bne _080E5954 +_080E594C: + adds r0, r5, 0 + bl sub_80E5708 + b _080E5980 +_080E5954: + ldr r0, _080E5988 + ldrb r0, [r0, 0x5] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, _080E598C + adds r4, r0 + movs r0, 0x22 + bl PlaySE + ldrb r0, [r4, 0x1] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r4, 0x1] + adds r0, r5, 0 + bl sub_80608A4 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x2 + bl player_npc_set_state_and_x22_etc +_080E5980: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E5988: .4byte gPlayerAvatar +_080E598C: .4byte gMapObjects + thumb_func_end sub_80E5920 + + thumb_func_start sub_80E5990 +sub_80E5990: @ 80E5990 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80595B8 + pop {r0} + bx r0 + thumb_func_end sub_80E5990 + + thumb_func_start sub_80E59A0 +sub_80E59A0: @ 80E59A0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + ldr r7, _080E59D0 + ldrb r1, [r7, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E59D4 + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E59D8 + ldrb r0, [r5, 0x18] + lsrs r0, 4 + bl sub_8059504 + b _080E5A28 + .align 2, 0 +_080E59D0: .4byte gPlayerAvatar +_080E59D4: .4byte gMapObjects +_080E59D8: + adds r0, r4, 0 + bl sub_80E5D34 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0xA + bhi _080E5A1E + cmp r1, 0x6 + bne _080E59FA + adds r0, r4, 0 + bl sub_8059594 + b _080E5A28 +_080E59FA: + cmp r1, 0x9 + beq _080E5A0E + cmp r1, 0x4 + bhi _080E5A28 + ldrb r0, [r5, 0x1E] + bl MetatileBehavior_IsBumpySlope + lsls r0, 24 + cmp r0, 0 + beq _080E5A16 +_080E5A0E: + adds r0, r4, 0 + bl sub_8059504 + b _080E5A28 +_080E5A16: + adds r0, r4, 0 + bl sub_80595DC + b _080E5A28 +_080E5A1E: + adds r0, r6, 0 + bl sub_8059618 + movs r0, 0x2 + strb r0, [r7, 0x2] +_080E5A28: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E59A0 + + thumb_func_start sub_80E5A30 +sub_80E5A30: @ 80E5A30 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + ldr r7, _080E5A60 + ldrb r1, [r7, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E5A64 + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E5A68 + ldrb r0, [r5, 0x18] + lsrs r0, 4 + bl sub_805951C + b _080E5AB8 + .align 2, 0 +_080E5A60: .4byte gPlayerAvatar +_080E5A64: .4byte gMapObjects +_080E5A68: + adds r0, r4, 0 + bl sub_80E5D34 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0xA + bhi _080E5AAE + cmp r1, 0x6 + bne _080E5A8A + adds r0, r4, 0 + bl sub_8059594 + b _080E5AB8 +_080E5A8A: + cmp r1, 0x9 + beq _080E5A9E + cmp r1, 0x4 + bhi _080E5AB8 + ldrb r0, [r5, 0x1E] + bl MetatileBehavior_IsBumpySlope + lsls r0, 24 + cmp r0, 0 + beq _080E5AA6 +_080E5A9E: + adds r0, r4, 0 + bl sub_8059504 + b _080E5AB8 +_080E5AA6: + adds r0, r4, 0 + bl sub_80595DC + b _080E5AB8 +_080E5AAE: + adds r0, r6, 0 + bl sub_8059600 + movs r0, 0x2 + strb r0, [r7, 0x2] +_080E5AB8: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E5A30 + + thumb_func_start sub_80E5AC0 +sub_80E5AC0: @ 80E5AC0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + ldr r0, _080E5AF0 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E5AF4 + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E5AF8 + ldrb r0, [r5, 0x18] + lsrs r0, 4 + bl sub_8059534 + b _080E5B32 + .align 2, 0 +_080E5AF0: .4byte gPlayerAvatar +_080E5AF4: .4byte gMapObjects +_080E5AF8: + adds r0, r4, 0 + bl sub_80E5D34 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0xA + bhi _080E5B2C + cmp r1, 0x6 + bne _080E5B1A + adds r0, r4, 0 + bl PlayerJumpLedge + b _080E5B32 +_080E5B1A: + subs r0, r1, 0x5 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _080E5B32 + adds r0, r4, 0 + bl sub_8059534 + b _080E5B32 +_080E5B2C: + adds r0, r6, 0 + bl sub_8059630 +_080E5B32: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E5AC0 + + thumb_func_start sub_80E5B38 +sub_80E5B38: @ 80E5B38 + push {lr} + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + lsrs r2, r1, 16 + ldr r0, _080E5B5C + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080E5B56 + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_80E5B60 +_080E5B56: + pop {r0} + bx r0 + .align 2, 0 +_080E5B5C: .4byte gPlayerAvatar + thumb_func_end sub_80E5B38 + + thumb_func_start sub_80E5B60 +sub_80E5B60: @ 80E5B60 + push {r4,r5,lr} + lsls r1, 16 + lsrs r5, r1, 16 + adds r0, r5, 0 + bl sub_80E5CF4 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r4, _080E5B88 + ldr r0, [r4, 0xC] + movs r1, 0xF + ands r0, r1 + cmp r2, r0 + bne _080E5B8C + ldrb r0, [r4, 0x14] + cmp r0, 0xFE + bhi _080E5B96 + adds r0, 0x1 + strb r0, [r4, 0x14] + b _080E5B96 + .align 2, 0 +_080E5B88: .4byte gPlayerAvatar +_080E5B8C: + adds r0, r2, 0 + bl sub_80E5C7C + movs r0, 0 + strb r0, [r4, 0xB] +_080E5B96: + movs r0, 0xF + adds r2, r5, 0 + ands r2, r0 + ldr r4, _080E5BB4 + ldr r0, [r4, 0x10] + movs r1, 0xF + ands r0, r1 + cmp r2, r0 + bne _080E5BB8 + ldrb r0, [r4, 0x1C] + cmp r0, 0xFE + bhi _080E5BC2 + adds r0, 0x1 + strb r0, [r4, 0x1C] + b _080E5BC2 + .align 2, 0 +_080E5BB4: .4byte gPlayerAvatar +_080E5BB8: + adds r0, r2, 0 + bl sub_80E5CB8 + movs r0, 0 + strb r0, [r4, 0xB] +_080E5BC2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80E5B60 + + thumb_func_start sub_80E5BC8 +sub_80E5BC8: @ 80E5BC8 + push {r4,r5,lr} + adds r3, r0, 0 + adds r4, r1, 0 + movs r2, 0 + ldrb r0, [r3] + cmp r0, 0 + beq _080E5BF2 + ldr r5, _080E5C0C +_080E5BD8: + adds r0, r2, r5 + adds r1, r3, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bhi _080E5C08 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080E5BD8 +_080E5BF2: + movs r2, 0 + ldrb r0, [r4] + cmp r0, 0 + beq _080E5C22 + ldr r3, _080E5C10 +_080E5BFC: + adds r0, r2, r3 + adds r1, r4, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080E5C14 +_080E5C08: + movs r0, 0 + b _080E5C24 + .align 2, 0 +_080E5C0C: .4byte gUnknown_0202E86C +_080E5C10: .4byte gUnknown_0202E874 +_080E5C14: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080E5BFC +_080E5C22: + movs r0, 0x1 +_080E5C24: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80E5BC8 + + thumb_func_start sub_80E5C2C +sub_80E5C2C: @ 80E5C2C + push {r4-r6,lr} + movs r6, 0 + movs r5, 0 +_080E5C32: + ldr r0, _080E5C64 + adds r4, r5, r0 + ldr r0, _080E5C68 + ldr r1, [r0, 0xC] + ldr r2, [r0, 0x10] + ldr r0, [r4, 0x8] + ands r1, r0 + ldr r0, [r4, 0xC] + ands r2, r0 + ldr r0, [r4] + cmp r1, r0 + bne _080E5C6C + ldr r0, [r4, 0x4] + cmp r2, r0 + bne _080E5C6C + ldr r0, [r4, 0x10] + ldr r1, [r4, 0x14] + bl sub_80E5BC8 + lsls r0, 24 + cmp r0, 0 + beq _080E5C6C + ldrb r0, [r4, 0x18] + b _080E5C76 + .align 2, 0 +_080E5C64: .4byte gUnknown_083DB608 +_080E5C68: .4byte gPlayerAvatar +_080E5C6C: + adds r5, 0x1C + adds r6, 0x1 + cmp r6, 0x3 + bls _080E5C32 + movs r0, 0 +_080E5C76: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80E5C2C + + thumb_func_start sub_80E5C7C +sub_80E5C7C: @ 80E5C7C + push {r4,lr} + lsls r0, 24 + ldr r3, _080E5CB4 + ldr r2, [r3, 0xC] + lsls r2, 4 + movs r1, 0xF0 + lsls r1, 20 + ands r1, r0 + lsrs r1, 24 + orrs r2, r1 + str r2, [r3, 0xC] + movs r1, 0x7 + adds r4, r3, 0 + adds r3, 0x14 +_080E5C98: + adds r2, r1, r3 + subs r1, 0x1 + adds r0, r1, r3 + ldrb r0, [r0] + strb r0, [r2] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0 + bne _080E5C98 + movs r0, 0x1 + strb r0, [r4, 0x14] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E5CB4: .4byte gPlayerAvatar + thumb_func_end sub_80E5C7C + + thumb_func_start sub_80E5CB8 +sub_80E5CB8: @ 80E5CB8 + push {r4,lr} + lsls r0, 24 + ldr r3, _080E5CF0 + ldr r2, [r3, 0x10] + lsls r2, 4 + movs r1, 0xF0 + lsls r1, 20 + ands r1, r0 + lsrs r1, 24 + orrs r2, r1 + str r2, [r3, 0x10] + movs r1, 0x7 + adds r4, r3, 0 + adds r3, 0x1C +_080E5CD4: + adds r2, r1, r3 + subs r1, 0x1 + adds r0, r1, r3 + ldrb r0, [r0] + strb r0, [r2] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0 + bne _080E5CD4 + movs r0, 0x1 + strb r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E5CF0: .4byte gPlayerAvatar + thumb_func_end sub_80E5CB8 + + thumb_func_start sub_80E5CF4 +sub_80E5CF4: @ 80E5CF4 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + adds r2, r1, 0 + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080E5D08 + movs r0, 0x2 + b _080E5D2E +_080E5D08: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080E5D14 + movs r0, 0x1 + b _080E5D2E +_080E5D14: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080E5D20 + movs r0, 0x3 + b _080E5D2E +_080E5D20: + movs r0, 0x10 + ands r2, r0 + cmp r2, 0 + bne _080E5D2C + movs r0, 0 + b _080E5D2E +_080E5D2C: + movs r0, 0x4 +_080E5D2E: + pop {r1} + bx r1 + thumb_func_end sub_80E5CF4 + + thumb_func_start sub_80E5D34 +sub_80E5D34: @ 80E5D34 + push {r4-r6,lr} + sub sp, 0x8 + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldr r0, _080E5D98 + ldrb r0, [r0, 0x5] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, _080E5D9C + adds r4, r0 + ldrh r1, [r4, 0x10] + add r0, sp, 0x4 + strh r1, [r0] + ldrh r0, [r4, 0x12] + mov r5, sp + adds r5, 0x6 + strh r0, [r5] + adds r0, r6, 0 + add r1, sp, 0x4 + adds r2, r5, 0 + bl MoveCoords + add r0, sp, 0x4 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r0, 24 + add r1, sp, 0x4 + movs r3, 0 + ldrsh r1, [r1, r3] + movs r3, 0 + ldrsh r2, [r5, r3] + str r0, [sp] + adds r0, r4, 0 + adds r3, r6, 0 + bl sub_80E5DA0 + lsls r0, 24 + lsrs r0, 24 + add sp, 0x8 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080E5D98: .4byte gPlayerAvatar +_080E5D9C: .4byte gMapObjects + thumb_func_end sub_80E5D34 + + thumb_func_start sub_80E5DA0 +sub_80E5DA0: @ 80E5DA0 + push {r4,r5,lr} + sub sp, 0x4 + ldr r4, [sp, 0x10] + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + adds r5, r4, 0 + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + str r5, [sp] + bl CheckForFieldObjectCollision + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bhi _080E5DE0 + cmp r4, 0 + bne _080E5DDC + adds r0, r5, 0 + bl IsRunningDisallowedByMetatile + lsls r0, 24 + cmp r0, 0 + beq _080E5DD8 + movs r4, 0x2 +_080E5DD8: + cmp r4, 0 + beq _080E5DE0 +_080E5DDC: + bl sub_80E5E4C +_080E5DE0: + adds r0, r4, 0 + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80E5DA0 + + thumb_func_start sub_80E5DEC +sub_80E5DEC: @ 80E5DEC + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl IsRunningDisallowedByMetatile + lsls r0, 24 + cmp r0, 0 + bne _080E5E04 + ldr r0, _080E5E08 + ldrb r0, [r0, 0x17] + cmp r0, 0x8 + bne _080E5E0C +_080E5E04: + movs r0, 0x1 + b _080E5E0E + .align 2, 0 +_080E5E08: .4byte gMapHeader +_080E5E0C: + movs r0, 0 +_080E5E0E: + pop {r1} + bx r1 + thumb_func_end sub_80E5DEC + + thumb_func_start IsRunningDisallowedByMetatile +IsRunningDisallowedByMetatile: @ 80E5E14 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl MetatileBehavior_IsRunningDisallowed + lsls r0, 24 + cmp r0, 0 + bne _080E5E3E + adds r0, r4, 0 + bl MetatileBehavior_IsFortreeBridge + lsls r0, 24 + cmp r0, 0 + beq _080E5E42 + bl PlayerGetZCoord + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + bne _080E5E42 +_080E5E3E: + movs r0, 0x1 + b _080E5E44 +_080E5E42: + movs r0, 0 +_080E5E44: + pop {r4} + pop {r1} + bx r1 + thumb_func_end IsRunningDisallowedByMetatile + + thumb_func_start sub_80E5E4C +sub_80E5E4C: @ 80E5E4C + push {lr} + ldr r0, _080E5E68 + ldrb r0, [r0] + cmp r0, 0 + beq _080E5E62 + ldr r1, _080E5E6C + ldrb r0, [r1] + cmp r0, 0x63 + bhi _080E5E62 + adds r0, 0x1 + strb r0, [r1] +_080E5E62: + pop {r0} + bx r0 + .align 2, 0 +_080E5E68: .4byte gUnknown_02039250 +_080E5E6C: .4byte gUnknown_02039251 + thumb_func_end sub_80E5E4C + + thumb_func_start sub_80E5E70 +sub_80E5E70: @ 80E5E70 + push {r4,r5,lr} + lsls r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + adds r5, r4, 0 + movs r1, 0xFD + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bhi _080E5E9A + adds r0, r4, 0 + bl MetatileBehavior_IsIsolatedVerticalRail + lsls r0, 24 + cmp r0, 0 + bne _080E5EB2 + adds r0, r4, 0 + bl MetatileBehavior_IsVerticalRail + b _080E5EAC +_080E5E9A: + adds r0, r5, 0 + bl MetatileBehavior_IsIsolatedHorizontalRail + lsls r0, 24 + cmp r0, 0 + bne _080E5EB2 + adds r0, r5, 0 + bl MetatileBehavior_IsHorizontalRail +_080E5EAC: + lsls r0, 24 + cmp r0, 0 + beq _080E5EB6 +_080E5EB2: + movs r0, 0 + b _080E5EB8 +_080E5EB6: + movs r0, 0x1 +_080E5EB8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80E5E70 + + thumb_func_start sub_80E5EC0 +sub_80E5EC0: @ 80E5EC0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + lsls r1, 24 + movs r3, 0xFF + lsls r3, 24 + adds r1, r3 + lsrs r1, 24 + cmp r1, 0x1 + bhi _080E5EE0 + cmp r0, 0xA + beq _080E5EE8 + cmp r0, 0xC + bne _080E5EEC + b _080E5EE8 +_080E5EE0: + cmp r2, 0xB + beq _080E5EE8 + cmp r2, 0xD + bne _080E5EEC +_080E5EE8: + movs r0, 0 + b _080E5EEE +_080E5EEC: + movs r0, 0x1 +_080E5EEE: + pop {r1} + bx r1 + thumb_func_end sub_80E5EC0 + + thumb_func_start sub_80E5EF4 +sub_80E5EF4: @ 80E5EF4 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080E5F30 + ldrb r1, [r0] + movs r0, 0x18 + ands r0, r1 + cmp r0, 0 + bne _080E5F34 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl PlayerGetDestCoords + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r0, 24 + bl IsRunningDisallowedByMetatile + lsls r0, 24 + cmp r0, 0 + bne _080E5F34 + movs r0, 0 + b _080E5F36 + .align 2, 0 +_080E5F30: .4byte gPlayerAvatar +_080E5F34: + movs r0, 0x1 +_080E5F36: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80E5EF4 + + thumb_func_start player_should_look_direction_be_enforced_upon_movement +player_should_look_direction_be_enforced_upon_movement: @ 80E5F40 + push {lr} + movs r0, 0x4 + bl TestPlayerAvatarFlags + lsls r0, 24 + cmp r0, 0 + beq _080E5F74 + ldr r2, _080E5F6C + ldr r0, _080E5F70 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1E] + bl MetatileBehavior_IsBumpySlope + lsls r0, 24 + cmp r0, 0 + beq _080E5F74 + movs r0, 0 + b _080E5F76 + .align 2, 0 +_080E5F6C: .4byte gMapObjects +_080E5F70: .4byte gPlayerAvatar +_080E5F74: + movs r0, 0x1 +_080E5F76: + pop {r1} + bx r1 + thumb_func_end player_should_look_direction_be_enforced_upon_movement + + thumb_func_start GetOnOffBike +GetOnOffBike: @ 80E5F7C + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080E5FA4 + movs r0, 0 + strb r0, [r1] + ldr r0, _080E5FA8 + ldrb r1, [r0] + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + beq _080E5FAC + movs r0, 0x1 + bl SetPlayerAvatarTransitionFlags + bl sav1_reset_battle_music_maybe + bl sub_8053E90 + b _080E5FC0 + .align 2, 0 +_080E5FA4: .4byte gUnknown_0202E854 +_080E5FA8: .4byte gPlayerAvatar +_080E5FAC: + adds r0, r2, 0 + bl SetPlayerAvatarTransitionFlags + ldr r4, _080E5FC8 + adds r0, r4, 0 + bl sav1_set_battle_music_maybe + adds r0, r4, 0 + bl sub_8053FB0 +_080E5FC0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E5FC8: .4byte 0x00000193 + thumb_func_end GetOnOffBike + + thumb_func_start sub_80E5FCC +sub_80E5FCC: @ 80E5FCC + push {lr} + ldr r2, _080E6008 + movs r3, 0 + strb r3, [r2, 0x8] + strb r3, [r2, 0x9] + strb r3, [r2, 0xA] + strb r3, [r2, 0xB] + str r0, [r2, 0xC] + str r1, [r2, 0x10] + movs r1, 0 + adds r2, 0x14 +_080E5FE2: + adds r0, r1, r2 + strb r3, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x7 + bls _080E5FE2 + movs r1, 0 + ldr r3, _080E600C + movs r2, 0 +_080E5FF6: + adds r0, r1, r3 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x7 + bls _080E5FF6 + pop {r0} + bx r0 + .align 2, 0 +_080E6008: .4byte gPlayerAvatar +_080E600C: .4byte gUnknown_0202E874 + thumb_func_end sub_80E5FCC + + thumb_func_start sub_80E6010 +sub_80E6010: @ 80E6010 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E6020 + strb r0, [r2, 0xA] + lsrs r1, r0, 1 + adds r0, r1 + strb r0, [r2, 0xB] + bx lr + .align 2, 0 +_080E6020: .4byte gPlayerAvatar + thumb_func_end sub_80E6010 + + thumb_func_start sub_80E6024 +sub_80E6024: @ 80E6024 + ldr r1, _080E6030 + movs r0, 0 + strb r0, [r1, 0xA] + strb r0, [r1, 0xB] + bx lr + .align 2, 0 +_080E6030: .4byte gPlayerAvatar + thumb_func_end sub_80E6024 + + thumb_func_start sub_80E6034 +sub_80E6034: @ 80E6034 + push {lr} + sub sp, 0x8 + ldr r1, _080E605C + mov r0, sp + movs r2, 0x6 + bl memcpy + ldr r2, _080E6060 + ldrb r1, [r2] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E6064 + ldrb r0, [r2, 0xA] + lsls r0, 1 + add r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + b _080E607E + .align 2, 0 +_080E605C: .4byte gUnknown_083DB600 +_080E6060: .4byte gPlayerAvatar +_080E6064: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080E6070 + movs r0, 0x3 + b _080E607E +_080E6070: + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + bne _080E607C + movs r0, 0x1 + b _080E607E +_080E607C: + movs r0, 0x2 +_080E607E: + add sp, 0x8 + pop {r1} + bx r1 + thumb_func_end sub_80E6034 + + thumb_func_start sub_80E6084 +sub_80E6084: @ 80E6084 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _080E60D4 + ldrb r1, [r5] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080E60CC + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl PlayerGetDestCoords + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r0, 24 + bl MetatileBehavior_IsBumpySlope + lsls r0, 24 + cmp r0, 0 + beq _080E60CC + movs r0, 0x2 + strb r0, [r5, 0x8] + bl player_get_direction_upper_nybble + lsls r0, 24 + lsrs r0, 24 + bl sub_8059C94 +_080E60CC: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E60D4: .4byte gPlayerAvatar + thumb_func_end sub_80E6084 + + thumb_func_start sub_80E60D8 +sub_80E60D8: @ 80E60D8 + push {r4-r7,lr} + movs r4, 0x3 + ldr r0, _080E60F4 + ldrh r1, [r0] + adds r7, r0, 0 + cmp r1, 0xD + bls _080E60E8 + b _080E6284 +_080E60E8: + lsls r0, r1, 2 + ldr r1, _080E60F8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E60F4: .4byte gUnknown_0202E8CC +_080E60F8: .4byte _080E60FC + .align 2, 0 +_080E60FC: + .4byte _080E6134 + .4byte _080E613C + .4byte _080E6144 + .4byte _080E614C + .4byte _080E6154 + .4byte _080E619C + .4byte _080E616C + .4byte _080E61BC + .4byte _080E61E0 + .4byte _080E61FC + .4byte _080E6200 + .4byte _080E6214 + .4byte _080E623C + .4byte _080E6260 +_080E6134: + ldr r1, _080E6138 + b _080E624C + .align 2, 0 +_080E6138: .4byte gSaveBlock1 + 0x2B1C +_080E613C: + ldr r1, _080E6140 + b _080E6276 + .align 2, 0 +_080E6140: .4byte gSaveBlock1 + 0x2B28 +_080E6144: + ldr r1, _080E6148 + b _080E624C + .align 2, 0 +_080E6148: .4byte gSaveBlock1 + 0x2B34 +_080E614C: + ldr r1, _080E6150 + b _080E6276 + .align 2, 0 +_080E6150: .4byte gSaveBlock1 + 0x2B40 +_080E6154: + ldr r0, _080E6164 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E6168 + adds r1, r0, r1 + b _080E624C + .align 2, 0 +_080E6164: .4byte gUnknown_0202E8CE +_080E6168: .4byte gSaveBlock1 + 0x2B4C +_080E616C: + ldr r0, _080E6194 + movs r2, 0 + ldr r1, _080E6198 + mov r12, r1 + adds r3, r0, 0 + adds r3, 0xE + adds r5, r0, 0x2 + adds r6, r3, 0 +_080E617C: + lsls r0, r2, 1 + adds r1, r3, r0 + adds r0, r5, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080E617C + adds r1, r6, 0 + b _080E627A + .align 2, 0 +_080E6194: .4byte gSaveBlock1 + 0x2D94 +_080E6198: .4byte sub_80546B8 +_080E619C: + ldr r0, _080E61B0 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E61B4 + adds r1, r0, r1 + ldr r0, _080E61B8 + ldrb r4, [r0] + b _080E6276 + .align 2, 0 +_080E61B0: .4byte gUnknown_0202E8CE +_080E61B4: .4byte gSaveBlock1 + 0x273C +_080E61B8: .4byte gUnknown_0202E8D0 +_080E61BC: + ldr r0, _080E61D4 + ldrh r0, [r0] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r0, _080E61D8 + adds r1, r0 + ldr r0, _080E61DC + ldrh r0, [r0] + lsls r0, 1 + adds r1, r0 + b _080E624A + .align 2, 0 +_080E61D4: .4byte gUnknown_0202E8CE +_080E61D8: .4byte gSaveBlock1 + 0x2754 +_080E61DC: .4byte gUnknown_0202E8D0 +_080E61E0: + ldr r0, _080E61F4 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E61F8 + adds r1, r0, r1 + movs r4, 0 + b _080E6276 + .align 2, 0 +_080E61F4: .4byte gUnknown_0202E8CE +_080E61F8: .4byte gSaveBlock1 + 0x273A +_080E61FC: + movs r1, 0 + b _080E624C +_080E6200: + ldr r1, _080E620C + ldr r2, _080E6210 + adds r0, r2, 0 + strh r0, [r1] + b _080E624A + .align 2, 0 +_080E620C: .4byte gSaveBlock1 + 0x2B16 +_080E6210: .4byte 0x0000ffff +_080E6214: + ldr r0, _080E6230 + ldrh r0, [r0] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r0, _080E6234 + adds r1, r0 + ldr r0, _080E6238 + ldrh r0, [r0] + lsls r0, 1 + adds r1, r0 + movs r4, 0 + b _080E6276 + .align 2, 0 +_080E6230: .4byte gUnknown_0202E8CE +_080E6234: .4byte gSaveBlock1 + 0x273C +_080E6238: .4byte gUnknown_0202E8D0 +_080E623C: + ldr r0, _080E6254 + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E6258 + adds r1, r0, r1 +_080E624A: + movs r4, 0x1 +_080E624C: + ldr r0, _080E625C + mov r12, r0 + b _080E627A + .align 2, 0 +_080E6254: .4byte gUnknown_0202E8CE +_080E6258: .4byte gSaveBlock1 + 0x2750 +_080E625C: .4byte sub_80546B8 +_080E6260: + ldr r1, _080E628C + ldr r0, _080E6290 + adds r2, r1, r0 + ldr r0, _080E6294 + strh r0, [r2] + ldr r0, _080E6298 + adds r1, r0 + movs r0, 0x1 + negs r0, r0 + strh r0, [r1] + adds r1, r2, 0 +_080E6276: + ldr r2, _080E629C + mov r12, r2 +_080E627A: + ldrb r0, [r7] + mov r2, r12 + adds r3, r4, 0 + bl sub_80E62A0 +_080E6284: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E628C: .4byte 0x02001000 +_080E6290: .4byte 0x00009c7c +_080E6294: .4byte 0x0000ffff +_080E6298: .4byte 0x00009c7e +_080E629C: .4byte sub_80546B8 + thumb_func_end sub_80E60D8 + + thumb_func_start sub_80E62A0 +sub_80E62A0: @ 80E62A0 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, _080E62DC + str r2, [r4] + str r1, [r4, 0x4] + strb r0, [r4, 0x8] + strb r3, [r4, 0xB] + cmp r0, 0x9 + bne _080E62D0 + ldr r0, _080E62E0 + adds r2, r4, r0 + str r2, [r4, 0x4] + ldr r0, _080E62E4 + ldr r3, _080E62E8 + adds r1, r0, r3 + ldrh r1, [r1] + strh r1, [r2] + ldr r1, _080E62EC + adds r0, r1 + ldrh r1, [r0] + ldr r2, _080E62F0 + adds r0, r4, r2 + strh r1, [r0] +_080E62D0: + ldr r0, _080E62F4 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E62DC: .4byte 0x02001000 +_080E62E0: .4byte 0x00009c7c +_080E62E4: .4byte gSaveBlock1 +_080E62E8: .4byte 0x00002dd8 +_080E62EC: .4byte 0x00002dda +_080E62F0: .4byte 0x00009c7e +_080E62F4: .4byte sub_80E62F8 + thumb_func_end sub_80E62A0 + + thumb_func_start sub_80E62F8 +sub_80E62F8: @ 80E62F8 + push {lr} + sub sp, 0x4 + ldr r0, _080E6314 + ldr r1, _080E6318 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x8 + bhi _080E6344 + lsls r0, 2 + ldr r1, _080E631C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E6314: .4byte gMain +_080E6318: .4byte 0x0000043c +_080E631C: .4byte _080E6320 + .align 2, 0 +_080E6320: + .4byte _080E6344 + .4byte _080E6380 + .4byte _080E638C + .4byte _080E63A8 + .4byte _080E63AE + .4byte _080E63B4 + .4byte _080E63BE + .4byte _080E63D8 + .4byte _080E63EA +_080E6344: + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + movs r0, 0 + bl SetVBlankCallback + bl ResetPaletteFade + bl ResetSpriteData + bl dp12_8087EA4 + bl remove_some_task + bl sub_80EAD08 + ldr r2, _080E637C + ldr r0, [r2] + ldr r1, [r2, 0x4] + ldr r2, [r2, 0x8] + bl sub_80895F8 + bl FreeSpriteTileRanges + bl FreeAllSpritePalettes + b _080E6402 + .align 2, 0 +_080E637C: .4byte gUnknown_083DB698 +_080E6380: + ldr r0, _080E6388 + bl SetUpWindowConfig + b _080E6402 + .align 2, 0 +_080E6388: .4byte gWindowConfig_81E6DA8 +_080E638C: + ldr r0, _080E63A0 + bl InitMenuWindow + ldr r0, _080E63A4 + bl InitMenuWindow + bl MenuZeroFillScreen + b _080E6402 + .align 2, 0 +_080E63A0: .4byte gWindowConfig_81E6D54 +_080E63A4: .4byte gWindowConfig_81E6DA8 +_080E63A8: + bl sub_80E6424 + b _080E6402 +_080E63AE: + bl sub_80E8DD8 + b _080E6402 +_080E63B4: + bl sub_80E8218 + bl sub_80E8CEC + b _080E6402 +_080E63BE: + bl sub_80E69F8 + ldr r0, _080E63D0 + bl sub_80E682C + ldr r0, _080E63D4 + bl SetVBlankCallback + b _080E6402 + .align 2, 0 +_080E63D0: .4byte sub_80E6AA8 +_080E63D4: .4byte sub_80E6A6C +_080E63D8: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _080E6402 +_080E63EA: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080E6414 + bl SetMainCallback2 + ldr r0, _080E6418 + bl FlagSet +_080E6402: + ldr r1, _080E641C + ldr r0, _080E6420 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080E6414: .4byte sub_80E6A88 +_080E6418: .4byte 0x00000805 +_080E641C: .4byte gMain +_080E6420: .4byte 0x0000043c + thumb_func_end sub_80E62F8 + + thumb_func_start sub_80E6424 +sub_80E6424: @ 80E6424 + push {lr} + ldr r2, _080E6444 + ldr r0, _080E6448 + ldrb r1, [r2, 0x8] + adds r1, r0 + ldrb r0, [r1] + strb r0, [r2, 0x9] + ldrb r0, [r2, 0x9] + adds r3, r2, 0 + cmp r0, 0x5 + bhi _080E6512 + lsls r0, 2 + ldr r1, _080E644C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E6444: .4byte 0x02001000 +_080E6448: .4byte gUnknown_083DB6A4 +_080E644C: .4byte _080E6450 + .align 2, 0 +_080E6450: + .4byte _080E64A0 + .4byte _080E64B8 + .4byte _080E64DA + .4byte _080E64F6 + .4byte _080E6468 + .4byte _080E6480 +_080E6468: + movs r2, 0x4 + strb r2, [r3, 0xA] + adds r0, r3, 0 + adds r0, 0x83 + movs r1, 0x2 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + adds r1, r3, 0 + adds r1, 0x88 + movs r0, 0x5 + b _080E64D0 +_080E6480: + movs r1, 0x4 + strb r1, [r3, 0xA] + adds r2, r3, 0 + adds r2, 0x83 + movs r0, 0x1 + strb r0, [r2] + adds r0, r3, 0 + adds r0, 0x84 + strb r1, [r0] + adds r1, r3, 0 + adds r1, 0x88 + movs r0, 0x10 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x2 + b _080E6510 +_080E64A0: + movs r0, 0x6 + strb r0, [r3, 0xA] + adds r1, r3, 0 + adds r1, 0x83 + movs r0, 0x2 + strb r0, [r1] + adds r0, r3, 0 + adds r0, 0x84 + movs r2, 0x3 + strb r2, [r0] + adds r1, 0x5 + b _080E64CE +_080E64B8: + movs r2, 0 + movs r0, 0x9 + strb r0, [r3, 0xA] + adds r1, r3, 0 + adds r1, 0x83 + movs r0, 0x2 + strb r0, [r1] + adds r1, 0x1 + movs r0, 0x5 + strb r0, [r1] + adds r1, 0x4 +_080E64CE: + movs r0, 0x4 +_080E64D0: + strh r0, [r1] + adds r0, r3, 0 + adds r0, 0x8A + strh r2, [r0] + b _080E6512 +_080E64DA: + movs r1, 0x1 + strb r1, [r3, 0xA] + adds r0, r3, 0 + adds r0, 0x83 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + adds r1, r3, 0 + adds r1, 0x88 + movs r0, 0x10 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x4 + b _080E6510 +_080E64F6: + movs r0, 0x2 + strb r0, [r3, 0xA] + adds r1, r3, 0 + adds r1, 0x83 + strb r0, [r1] + adds r1, 0x1 + movs r0, 0x1 + strb r0, [r1] + adds r1, 0x4 + movs r0, 0x5 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x3 +_080E6510: + strh r0, [r1] +_080E6512: + adds r1, r3, 0 + adds r1, 0x86 + movs r0, 0 + strb r0, [r1] + subs r1, 0x1 + strb r0, [r1] + adds r1, 0x2 + strb r0, [r1] + subs r1, 0x61 + strb r0, [r1] + movs r2, 0xDD + lsls r2, 1 + adds r1, r3, r2 + strh r0, [r1] + movs r0, 0xDF + lsls r0, 1 + adds r1, r3, r0 + movs r0, 0x2 + strb r0, [r1] + bl sub_80E6554 + bl sub_80EAECC + bl sub_80EB040 + bl sub_80E7E50 + bl sub_80E6630 + bl sub_80E6690 + pop {r0} + bx r0 + thumb_func_end sub_80E6424 + + thumb_func_start sub_80E6554 +sub_80E6554: @ 80E6554 + push {r4-r7,lr} + sub sp, 0x4 + movs r4, 0 + movs r7, 0 + ldr r0, _080E6564 + mov r12, r0 + b _080E656E + .align 2, 0 +_080E6564: .4byte 0x02001000 +_080E6568: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 +_080E656E: + movs r5, 0 + lsls r3, r7, 1 + mov r6, r12 + adds r6, 0x2A + adds r2, r3, r6 + adds r1, r4, 0 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + strb r1, [r2] + cmp r4, 0x11 + beq _080E65A6 +_080E6586: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bhi _080E65A2 + adds r2, r5, r3 + adds r2, r6 + adds r1, r4, 0 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + strb r1, [r2] + cmp r4, 0x11 + bne _080E6586 +_080E65A2: + cmp r4, 0x11 + bne _080E6568 +_080E65A6: + movs r0, 0x11 + mov r1, r12 + strh r0, [r1, 0x28] + cmp r4, 0x15 + bhi _080E6612 + mov r6, r12 + adds r2, r6, 0 + adds r2, 0x78 +_080E65B6: + lsls r0, r4, 24 + lsrs r0, 24 + str r2, [sp] + bl sub_80EAD7C + lsls r0, 24 + lsrs r1, r0, 24 + ldr r2, [sp] + cmp r1, 0 + beq _080E65FC + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080E65DC + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + movs r5, 0 +_080E65DC: + lsls r0, r7, 1 + adds r0, r5, r0 + adds r1, r6, 0 + adds r1, 0x2A + adds r0, r1 + strb r4, [r0] + adds r0, r4, 0 + subs r0, 0x11 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0] + ldrh r0, [r6, 0x28] + adds r0, 0x1 + strh r0, [r6, 0x28] + mov r12, r6 + b _080E6608 +_080E65FC: + adds r0, r4, 0 + subs r0, 0x11 + adds r0, r2 + strb r1, [r0] + ldr r0, _080E662C + mov r12, r0 +_080E6608: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x15 + bls _080E65B6 +_080E6612: + mov r1, r12 + ldrh r0, [r1, 0x28] + adds r0, 0x1 + asrs r0, 1 + movs r1, 0xDB + lsls r1, 1 + add r1, r12 + strb r0, [r1] + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E662C: .4byte 0x02001000 + thumb_func_end sub_80E6554 + + thumb_func_start sub_80E6630 +sub_80E6630: @ 80E6630 + push {r4-r7,lr} + movs r1, 0 + ldr r0, _080E6664 + mov r12, r0 +_080E6638: + lsls r0, r1, 4 + mov r2, r12 + adds r5, r0, r2 + movs r3, 0 + ldrb r0, [r5] + adds r7, r1, 0x1 + cmp r0, 0xFF + beq _080E6680 + lsls r0, r1, 3 + subs r0, r1 + lsls r4, r0, 1 + ldr r6, _080E6668 +_080E6650: + adds r0, r5, r3 + ldrb r1, [r0] + adds r2, r1, 0 + cmp r2, 0 + beq _080E666C + adds r0, r3, r4 + adds r0, r6 + adds r1, 0x46 + strb r1, [r0] + b _080E6672 + .align 2, 0 +_080E6664: .4byte gUnknown_083DB6B2 +_080E6668: .4byte 0x02001040 +_080E666C: + adds r0, r3, r4 + adds r0, r6 + strb r2, [r0] +_080E6672: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r5, r3 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080E6650 +_080E6680: + lsls r0, r7, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _080E6638 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E6630 + + thumb_func_start sub_80E6690 +sub_80E6690: @ 80E6690 + push {r4-r6,lr} + sub sp, 0x10 + mov r0, sp + ldr r1, _080E66E0 + ldm r1!, {r2-r4} + stm r0!, {r2-r4} + ldr r1, [r1] + str r1, [r0] + movs r5, 0 + ldr r6, _080E66E4 +_080E66A4: + ldr r0, _080E66E8 + ldrb r0, [r0, 0x8] + lsls r0, 1 + adds r0, r5, r0 + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E66EC + adds r4, r0, r1 + lsls r0, r5, 3 + add r0, sp + ldr r0, [r0] + ldr r1, [r4] + bl StringCopy + adds r3, r0, 0 + ldrb r0, [r4, 0x8] + cmp r0, 0 + beq _080E66F0 + lsls r0, r5, 1 + adds r0, 0x1 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + ldr r1, [r4, 0x4] + bl StringCopy + b _080E670A + .align 2, 0 +_080E66E0: .4byte gUnknown_083DB7DC +_080E66E4: .4byte gUnknown_083DB7C0 +_080E66E8: .4byte 0x02001000 +_080E66EC: .4byte gUnknown_083DB6F4 +_080E66F0: + strb r0, [r3] + adds r3, 0x1 + ldr r1, [r4, 0x4] + adds r0, r3, 0 + bl StringCopy + lsls r0, r5, 1 + adds r0, 0x1 + lsls r0, 2 + add r0, sp + ldr r1, [r0] + movs r0, 0xFF + strb r0, [r1] +_080E670A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080E66A4 + movs r5, 0 + ldr r3, _080E6758 + ldr r0, _080E675C + adds r2, r3, r0 + movs r1, 0 +_080E671E: + adds r0, r5, r2 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x23 + bls _080E671E + ldr r1, _080E675C + adds r0, r3, r1 + adds r0, r5, r0 + movs r4, 0x1 + negs r4, r4 + adds r2, r4, 0 + movs r1, 0xFF + strb r1, [r0] + ldr r0, _080E6760 + adds r3, r0 + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x11 + strb r0, [r3, 0x1] + movs r0, 0xE0 + strb r0, [r3, 0x2] + strb r2, [r3, 0x3] + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E6758: .4byte 0x02001000 +_080E675C: .4byte 0x00009da4 +_080E6760: .4byte 0x00009f6e + thumb_func_end sub_80E6690 + + thumb_func_start sub_80E6764 +sub_80E6764: @ 80E6764 + push {r4-r6,lr} + movs r3, 0 + ldr r4, _080E680C + ldr r2, _080E6810 +_080E676C: + lsls r0, r3, 1 + adds r1, r0, r4 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080E676C + movs r3, 0 + ldr r4, _080E6814 + ldr r2, _080E6818 +_080E6786: + lsls r0, r3, 1 + adds r1, r0, r4 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _080E6786 + movs r3, 0 + ldr r5, _080E681C + ldr r0, _080E6820 + adds r4, r0, 0 + adds r6, r5, 0 + adds r6, 0xC +_080E67A6: + lsls r1, r3, 1 + adds r2, r1, r5 + ldrh r0, [r2] + orrs r0, r4 + strh r0, [r2] + adds r1, r6 + ldrh r0, [r1] + orrs r0, r4 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _080E67A6 + movs r3, 0 + ldr r6, _080E6824 + ldr r0, _080E6820 + adds r5, r0, 0 +_080E67CA: + movs r2, 0 + lsls r0, r3, 3 + adds r0, r3 + lsls r4, r0, 2 +_080E67D2: + lsls r0, r2, 1 + adds r0, r4 + adds r0, r6 + ldrh r1, [r0] + orrs r1, r5 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x8 + bls _080E67D2 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0xF + bls _080E67CA + movs r3, 0 + ldr r2, _080E6828 + movs r1, 0 +_080E67F8: + adds r0, r3, r2 + strb r1, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3F + bls _080E67F8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E680C: .4byte gSaveBlock1 + 0x2B1C +_080E6810: .4byte gUnknown_083DB7EC +_080E6814: .4byte gSaveBlock1 + 0x2B28 +_080E6818: .4byte gUnknown_083DB7F4 +_080E681C: .4byte gSaveBlock1 + 0x2B34 +_080E6820: .4byte 0x0000ffff +_080E6824: .4byte gSaveBlock1 + 0x2B4C +_080E6828: .4byte gSaveBlock1 + 0x2D8C + thumb_func_end sub_80E6764 + + thumb_func_start sub_80E682C +sub_80E682C: @ 80E682C + ldr r1, _080E6838 + str r0, [r1, 0x20] + movs r0, 0 + strh r0, [r1, 0x24] + bx lr + .align 2, 0 +_080E6838: .4byte 0x02001000 + thumb_func_end sub_80E682C + + thumb_func_start sub_80E683C +sub_80E683C: @ 80E683C + push {r4,r5,lr} + ldr r1, _080E6890 + adds r0, r1, 0 + adds r0, 0x26 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0 + bne _080E6898 + movs r1, 0 + movs r0, 0xDB + lsls r0, 1 + adds r3, r2, r0 + movs r0, 0 + ldrsb r0, [r3, r0] + cmp r1, r0 + bge _080E6876 + movs r0, 0xD5 + lsls r0, 1 + adds r5, r2, r0 + movs r4, 0x2 +_080E6864: + adds r0, r1, r5 + strb r4, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0 + ldrsb r0, [r3, r0] + cmp r1, r0 + blt _080E6864 +_080E6876: + adds r0, r2, r1 + ldr r1, _080E6894 + adds r3, r0, r1 + ldrh r0, [r2, 0x28] + movs r1, 0x1 + ands r0, r1 + strb r0, [r3] + cmp r0, 0 + bne _080E68B8 + movs r0, 0x2 + strb r0, [r3] + b _080E68B8 + .align 2, 0 +_080E6890: .4byte 0x02001000 +_080E6894: .4byte 0x000001a9 +_080E6898: + movs r3, 0xD5 + lsls r3, 1 + adds r1, r2, r3 + movs r0, 0x7 + strb r0, [r1] + ldr r1, _080E68E0 + adds r3, r2, r1 + movs r1, 0x6 + strb r1, [r3] + movs r3, 0xD6 + lsls r3, 1 + adds r1, r2, r3 + strb r0, [r1] + adds r3, 0x1 + adds r1, r2, r3 + strb r0, [r1] +_080E68B8: + movs r0, 0xD4 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0 + strb r0, [r1] + ldr r3, _080E68E4 + adds r1, r2, r3 + strb r0, [r1] + adds r3, 0xC + adds r1, r2, r3 + strb r0, [r1] + adds r3, 0x2 + adds r1, r2, r3 + strb r0, [r1] + bl sub_80E9A4C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E68E0: .4byte 0x000001ab +_080E68E4: .4byte 0x000001a9 + thumb_func_end sub_80E683C + + thumb_func_start sub_80E68E8 +sub_80E68E8: @ 80E68E8 + push {r4-r6,lr} + bl sub_80EB0B0 + ldr r3, _080E694C + adds r0, r3, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E695C + movs r1, 0xDC + lsls r1, 1 + adds r0, r3, r1 + ldrb r6, [r0] + lsls r0, r6, 1 + ldr r2, _080E6950 + adds r1, r3, r2 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x1 + asrs r0, 1 + ldr r1, _080E6954 + adds r2, r3, r1 + strb r0, [r2] + movs r1, 0 + movs r0, 0 + ldrsb r0, [r2, r0] + adds r5, r3, 0 + cmp r1, r0 + bge _080E693A + ldr r3, _080E6958 + adds r4, r5, r3 + movs r3, 0x2 +_080E6928: + adds r0, r1, r4 + strb r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r1, r0 + blt _080E6928 +_080E693A: + subs r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r2, _080E6958 + adds r0, r5, r2 + adds r2, r1, r0 + lsls r0, r6, 1 + ldr r3, _080E6950 + b _080E69AC + .align 2, 0 +_080E694C: .4byte 0x02001000 +_080E6950: .4byte 0x00004178 +_080E6954: .4byte 0x00009a28 +_080E6958: .4byte 0x000099a6 +_080E695C: + movs r1, 0xDC + lsls r1, 1 + adds r0, r3, r1 + ldrb r6, [r0] + lsls r0, r6, 1 + ldr r2, _080E69E0 + adds r1, r3, r2 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x1 + asrs r0, 1 + ldr r1, _080E69E4 + adds r2, r3, r1 + strb r0, [r2] + movs r1, 0 + movs r0, 0 + ldrsb r0, [r2, r0] + adds r5, r3, 0 + cmp r1, r0 + bge _080E699C + ldr r3, _080E69E8 + adds r4, r5, r3 + movs r3, 0x2 +_080E698A: + adds r0, r1, r4 + strb r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r1, r0 + blt _080E698A +_080E699C: + subs r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r2, _080E69E8 + adds r0, r5, r2 + adds r2, r1, r0 + lsls r0, r6, 1 + ldr r3, _080E69E0 +_080E69AC: + adds r1, r5, r3 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x1 + ands r0, r1 + strb r0, [r2] + cmp r0, 0 + bne _080E69C0 + movs r0, 0x2 + strb r0, [r2] +_080E69C0: + ldr r1, _080E69EC + adds r0, r5, r1 + movs r1, 0 + strb r1, [r0] + ldr r2, _080E69F0 + adds r0, r5, r2 + strb r1, [r0] + ldr r3, _080E69F4 + adds r0, r5, r3 + strb r1, [r0] + bl sub_80E9A4C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E69E0: .4byte 0x00004142 +_080E69E4: .4byte 0x00009a28 +_080E69E8: .4byte 0x000099a6 +_080E69EC: .4byte 0x000099a4 +_080E69F0: .4byte 0x000099a5 +_080E69F4: .4byte 0x00009a29 + thumb_func_end sub_80E68E8 + + thumb_func_start sub_80E69F8 +sub_80E69F8: @ 80E69F8 + push {r4,lr} + ldr r0, _080E6A10 + ldrb r1, [r0, 0x8] + adds r4, r0, 0 + cmp r1, 0xD + bhi _080E6A50 + lsls r0, r1, 2 + ldr r1, _080E6A14 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E6A10: .4byte 0x02001000 +_080E6A14: .4byte _080E6A18 + .align 2, 0 +_080E6A18: + .4byte _080E6A50 + .4byte _080E6A50 + .4byte _080E6A50 + .4byte _080E6A50 + .4byte _080E6A50 + .4byte _080E6A58 + .4byte _080E6A50 + .4byte _080E6A58 + .4byte _080E6A58 + .4byte _080E6A50 + .4byte _080E6A58 + .4byte _080E6A58 + .4byte _080E6A58 + .4byte _080E6A50 +_080E6A50: + ldrb r0, [r4, 0x8] + bl sub_80E9368 + b _080E6A66 +_080E6A58: + ldrb r0, [r4, 0x8] + bl sub_80E9368 + ldrb r0, [r4, 0xB] + ldrb r1, [r4, 0x9] + bl sub_80E8BF4 +_080E6A66: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E69F8 + + thumb_func_start sub_80E6A6C +sub_80E6A6C: @ 80E6A6C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl sub_80EAC5C + bl TransferPlttBuffer + bl sub_8089668 + pop {r0} + bx r0 + thumb_func_end sub_80E6A6C + + thumb_func_start sub_80E6A88 +sub_80E6A88: @ 80E6A88 + push {lr} + ldr r0, _080E6AA4 + ldr r0, [r0, 0x20] + bl _call_via_r0 + bl AnimateSprites + bl BuildOamBuffer + bl sub_80EAD08 + pop {r0} + bx r0 + .align 2, 0 +_080E6AA4: .4byte 0x02001000 + thumb_func_end sub_80E6A88 + + thumb_func_start sub_80E6AA8 +sub_80E6AA8: @ 80E6AA8 + push {lr} + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080E6ABA + ldr r0, _080E6AC0 + bl sub_80E682C +_080E6ABA: + pop {r0} + bx r0 + .align 2, 0 +_080E6AC0: .4byte sub_80E6AC4 + thumb_func_end sub_80E6AA8 + + thumb_func_start sub_80E6AC4 +sub_80E6AC4: @ 80E6AC4 + push {lr} + bl sub_80E88F0 + movs r0, 0 + bl sub_80E8398 + movs r0, 0 + bl sub_80E91D4 + ldr r0, _080E6AE0 + bl sub_80E682C + pop {r0} + bx r0 + .align 2, 0 +_080E6AE0: .4byte sub_80E6AE4 + thumb_func_end sub_80E6AC4 + + thumb_func_start sub_80E6AE4 +sub_80E6AE4: @ 80E6AE4 + push {r4,r5,lr} + bl sub_80E75D8 + ldr r4, _080E6B44 + adds r1, r4, 0 + adds r1, 0x87 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + beq _080E6AFE + movs r0, 0x5 + bl PlaySE +_080E6AFE: + ldr r2, _080E6B48 + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + adds r5, r2, 0 + cmp r0, 0 + beq _080E6BA4 + movs r0, 0x5 + bl PlaySE + adds r1, r4, 0 + adds r1, 0x86 + adds r0, r4, 0 + adds r0, 0x84 + ldrb r2, [r1] + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080E6B78 + adds r0, r4, 0 + adds r0, 0x85 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + beq _080E6B60 + cmp r0, 0x1 + bgt _080E6B4C + cmp r0, 0 + beq _080E6B52 + b _080E6BA4 + .align 2, 0 +_080E6B44: .4byte 0x02001000 +_080E6B48: .4byte gMain +_080E6B4C: + cmp r0, 0x2 + beq _080E6B6C + b _080E6BA4 +_080E6B52: + ldr r0, _080E6B5C + bl sub_80E682C + b _080E6BB4 + .align 2, 0 +_080E6B5C: .4byte sub_80E6BC0 +_080E6B60: + ldr r0, _080E6B68 + bl sub_80E682C + b _080E6BB4 + .align 2, 0 +_080E6B68: .4byte sub_80E6C84 +_080E6B6C: + ldr r0, _080E6B74 + bl sub_80E682C + b _080E6BB4 + .align 2, 0 +_080E6B74: .4byte sub_80E6D7C +_080E6B78: + adds r0, r4, 0 + adds r0, 0x83 + ldrb r0, [r0] + adds r1, r4, 0 + adds r1, 0x85 + adds r3, r0, 0 + muls r3, r2 + adds r0, r3, 0 + ldrb r1, [r1] + adds r0, r1 + adds r1, r4, 0 + adds r1, 0x27 + strb r0, [r1] + bl sub_80E7574 + ldr r0, _080E6BA0 + bl sub_80E682C + b _080E6BB4 + .align 2, 0 +_080E6BA0: .4byte sub_80E6F68 +_080E6BA4: + ldrh r1, [r5, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E6BB4 + ldr r0, _080E6BBC + bl sub_80E682C +_080E6BB4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E6BBC: .4byte sub_80E6C84 + thumb_func_end sub_80E6AE4 + + thumb_func_start sub_80E6BC0 +sub_80E6BC0: @ 80E6BC0 + push {r4,lr} + ldr r4, _080E6BD4 + ldrh r0, [r4, 0x24] + cmp r0, 0x1 + beq _080E6C12 + cmp r0, 0x1 + bgt _080E6BD8 + cmp r0, 0 + beq _080E6BE2 + b _080E6C76 + .align 2, 0 +_080E6BD4: .4byte 0x02001000 +_080E6BD8: + cmp r0, 0x2 + beq _080E6C54 + cmp r0, 0x64 + beq _080E6C64 + b _080E6C76 +_080E6BE2: + movs r0, 0x2 + bl sub_80E8398 + ldrb r0, [r4, 0x8] + cmp r0, 0x6 + bne _080E6BFA + movs r0, 0x6 + bl sub_80E91D4 + movs r0, 0x64 + strh r0, [r4, 0x24] + b _080E6C76 +_080E6BFA: + movs r0, 0x2 + bl sub_80E91D4 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + movs r0, 0x1 + bl MoveMenuCursor + b _080E6C3E +_080E6C12: + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _080E6C32 + cmp r1, 0 + bgt _080E6C2C + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080E6C46 + b _080E6C76 +_080E6C2C: + cmp r1, 0x1 + beq _080E6C46 + b _080E6C76 +_080E6C32: + bl sub_80E7D6C + bl sub_80E98C4 + bl sub_80E95A4 +_080E6C3E: + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E6C76 +_080E6C46: + ldr r1, _080E6C50 + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E6C76 + .align 2, 0 +_080E6C50: .4byte 0x02001000 +_080E6C54: + bl sub_80E81FC + ldr r0, _080E6C60 + bl sub_80E682C + b _080E6C76 + .align 2, 0 +_080E6C60: .4byte sub_80E6AC4 +_080E6C64: + ldr r0, _080E6C7C + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080E6C76 + ldr r0, _080E6C80 + bl sub_80E682C +_080E6C76: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E6C7C: .4byte gMain +_080E6C80: .4byte sub_80E6AC4 + thumb_func_end sub_80E6BC0 + + thumb_func_start sub_80E6C84 +sub_80E6C84: @ 80E6C84 + push {r4,lr} + ldr r4, _080E6C98 + ldrh r0, [r4, 0x24] + cmp r0, 0x1 + beq _080E6CF4 + cmp r0, 0x1 + bgt _080E6C9C + cmp r0, 0 + beq _080E6CA6 + b _080E6D72 + .align 2, 0 +_080E6C98: .4byte 0x02001000 +_080E6C9C: + cmp r0, 0x2 + beq _080E6D24 + cmp r0, 0xFF + beq _080E6D64 + b _080E6D72 +_080E6CA6: + movs r0, 0x2 + bl sub_80E8398 + movs r0, 0x3 + bl sub_80E91D4 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0 + bl DisplayYesNoMenu + movs r0, 0x1 + bl MoveMenuCursor + ldrb r0, [r4, 0x8] + cmp r0, 0x9 + beq _080E6CE8 + cmp r0, 0x4 + beq _080E6CE8 + cmp r0, 0x7 + beq _080E6CE8 + cmp r0, 0x8 + beq _080E6CE8 + cmp r0, 0xA + beq _080E6CE8 + cmp r0, 0xB + beq _080E6CE8 + cmp r0, 0xC + beq _080E6CE8 + cmp r0, 0x5 + beq _080E6CE8 + cmp r0, 0xD + bne _080E6D1C +_080E6CE8: + ldr r1, _080E6CF0 + movs r0, 0x2 + strh r0, [r1, 0x24] + b _080E6D72 + .align 2, 0 +_080E6CF0: .4byte 0x02001000 +_080E6CF4: + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _080E6D06 + cmp r1, 0 + ble _080E6D34 + b _080E6D3E +_080E6D06: + movs r0, 0x4 + bl sub_80E91D4 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0 + bl DisplayYesNoMenu + movs r0, 0x1 + bl MoveMenuCursor +_080E6D1C: + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E6D72 +_080E6D24: + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _080E6D44 + cmp r1, 0 + bgt _080E6D3E +_080E6D34: + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080E6D58 + b _080E6D72 +_080E6D3E: + cmp r1, 0x1 + beq _080E6D58 + b _080E6D72 +_080E6D44: + ldr r0, _080E6D50 + strh r1, [r0] + ldr r0, _080E6D54 + bl sub_80E682C + b _080E6D72 + .align 2, 0 +_080E6D50: .4byte gScriptResult +_080E6D54: .4byte sub_80E752C +_080E6D58: + ldr r1, _080E6D60 + movs r0, 0xFF + strh r0, [r1, 0x24] + b _080E6D72 + .align 2, 0 +_080E6D60: .4byte 0x02001000 +_080E6D64: + bl sub_8072DEC + bl sub_80E81FC + ldr r0, _080E6D78 + bl sub_80E682C +_080E6D72: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E6D78: .4byte sub_80E6AC4 + thumb_func_end sub_80E6C84 + + thumb_func_start sub_80E6D7C +sub_80E6D7C: @ 80E6D7C + push {r4-r7,lr} + ldr r5, _080E6D98 + ldrh r0, [r5, 0x24] + cmp r0, 0xA + bne _080E6D88 + b _080E6F06 +_080E6D88: + cmp r0, 0xA + bgt _080E6D9C + cmp r0, 0 + beq _080E6DB6 + cmp r0, 0x1 + beq _080E6E3C + b _080E6F5E + .align 2, 0 +_080E6D98: .4byte 0x02001000 +_080E6D9C: + cmp r0, 0x65 + bne _080E6DA2 + b _080E6F30 +_080E6DA2: + cmp r0, 0x65 + bgt _080E6DAE + cmp r0, 0x64 + bne _080E6DAC + b _080E6F24 +_080E6DAC: + b _080E6F5E +_080E6DAE: + cmp r0, 0x66 + bne _080E6DB4 + b _080E6F50 +_080E6DB4: + b _080E6F5E +_080E6DB6: + movs r0, 0x2 + bl sub_80E8398 + bl sub_80E8054 + lsls r0, 24 + cmp r0, 0 + beq _080E6DCA + movs r0, 0x5 + b _080E6DEE +_080E6DCA: + ldrb r0, [r5, 0x8] + cmp r0, 0x9 + bne _080E6DFC + bl sub_80E7FA8 + lsls r0, 24 + cmp r0, 0 + bne _080E6DDE + movs r0, 0x8 + b _080E6DEE +_080E6DDE: + ldrh r0, [r5, 0xC] + ldr r1, _080E6DF8 + cmp r0, r1 + beq _080E6DEC + ldrh r0, [r5, 0xE] + cmp r0, r1 + bne _080E6DFC +_080E6DEC: + movs r0, 0x9 +_080E6DEE: + bl sub_80E91D4 + movs r0, 0xA + strh r0, [r5, 0x24] + b _080E6F5E + .align 2, 0 +_080E6DF8: .4byte 0x0000ffff +_080E6DFC: + ldr r0, _080E6E18 + ldrb r0, [r0, 0x8] + cmp r0, 0x4 + bne _080E6E20 + bl sub_80E7FA8 + lsls r0, 24 + cmp r0, 0 + bne _080E6E20 + ldr r0, _080E6E1C + bl sub_80E682C + b _080E6F5E + .align 2, 0 +_080E6E18: .4byte 0x02001000 +_080E6E1C: .4byte sub_80E6C84 +_080E6E20: + movs r0, 0x1 + bl sub_80E91D4 + bl sub_80E9744 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0 + bl DisplayYesNoMenu + movs r0, 0 + bl MoveMenuCursor + b _080E6F3C +_080E6E3C: + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r6, r0, 24 + cmp r6, 0 + beq _080E6E5C + cmp r6, 0 + bgt _080E6E56 + movs r0, 0x1 + negs r0, r0 + cmp r6, r0 + beq _080E6EDC + b _080E6F5E +_080E6E56: + cmp r6, 0x1 + beq _080E6EDC + b _080E6F5E +_080E6E5C: + ldr r7, _080E6EC8 + bl sub_80E7FA8 + lsls r0, 24 + lsrs r0, 24 + negs r0, r0 + lsrs r0, 31 + strh r0, [r7] + bl sub_80E7D9C + ldrb r0, [r5, 0x8] + cmp r0, 0 + bne _080E6E82 + ldr r4, _080E6ECC + bl sub_80E8094 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] +_080E6E82: + ldrb r0, [r5, 0x8] + cmp r0, 0x9 + bne _080E6E9C + bl sub_80E81C0 + ldr r4, _080E6ECC + ldr r1, _080E6ED0 + adds r0, r5, r1 + bl sub_80FA364 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] +_080E6E9C: + ldrb r0, [r5, 0x8] + cmp r0, 0xD + bne _080E6EBE + ldrh r0, [r5, 0xC] + ldr r1, _080E6ED4 + cmp r0, r1 + beq _080E6EB0 + ldrh r0, [r5, 0xE] + cmp r0, r1 + bne _080E6EB2 +_080E6EB0: + strh r6, [r7] +_080E6EB2: + ldr r4, _080E6ECC + bl sub_80E810C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] +_080E6EBE: + ldr r0, _080E6ED8 + bl sub_80E682C + b _080E6F5E + .align 2, 0 +_080E6EC8: .4byte gScriptResult +_080E6ECC: .4byte gUnknown_0202E8CC +_080E6ED0: .4byte 0x00009c7c +_080E6ED4: .4byte 0x0000ffff +_080E6ED8: .4byte sub_80E752C +_080E6EDC: + bl sub_8072DEC + bl sub_80E81FC + ldr r4, _080E6EFC + ldrb r0, [r4, 0x8] + cmp r0, 0x6 + bne _080E6F00 + bl sub_80E7FA8 + lsls r0, 24 + cmp r0, 0 + beq _080E6F00 + movs r0, 0x64 + strh r0, [r4, 0x24] + b _080E6F5E + .align 2, 0 +_080E6EFC: .4byte 0x02001000 +_080E6F00: + bl sub_80E95A4 + b _080E6F12 +_080E6F06: + ldr r0, _080E6F1C + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080E6F5E +_080E6F12: + ldr r0, _080E6F20 + bl sub_80E682C + b _080E6F5E + .align 2, 0 +_080E6F1C: .4byte gMain +_080E6F20: .4byte sub_80E6AC4 +_080E6F24: + movs r0, 0x7 + bl sub_80E91D4 + ldrh r0, [r5, 0x24] + adds r0, 0x1 + strh r0, [r5, 0x24] +_080E6F30: + ldr r0, _080E6F48 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080E6F5E +_080E6F3C: + ldr r1, _080E6F4C + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E6F5E + .align 2, 0 +_080E6F48: .4byte gMain +_080E6F4C: .4byte 0x02001000 +_080E6F50: + bl sub_80E7E50 + bl sub_80E95A4 + ldr r0, _080E6F64 + bl sub_80E682C +_080E6F5E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E6F64: .4byte sub_80E6AC4 + thumb_func_end sub_80E6D7C + + thumb_func_start sub_80E6F68 +sub_80E6F68: @ 80E6F68 + push {r4,lr} + ldr r4, _080E6F78 + ldrh r0, [r4, 0x24] + cmp r0, 0 + beq _080E6F7C + cmp r0, 0x1 + beq _080E6F9C + b _080E6FBC + .align 2, 0 +_080E6F78: .4byte 0x02001000 +_080E6F7C: + movs r0, 0x1 + bl sub_80E8398 + movs r0, 0xA + bl sub_80E91D4 + bl sub_80E683C + bl sub_80E9974 + bl sub_80E9E98 + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E6FBC +_080E6F9C: + bl sub_80E9EA8 + lsls r0, 24 + cmp r0, 0 + beq _080E6FBC + movs r0, 0x1 + bl sub_80E8D8C + bl sub_80E8420 + movs r0, 0 + bl sub_80E8958 + ldr r0, _080E6FC4 + bl sub_80E682C +_080E6FBC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E6FC4: .4byte sub_80E6FC8 + thumb_func_end sub_80E6F68 + + thumb_func_start sub_80E6FC8 +sub_80E6FC8: @ 80E6FC8 + push {r4,lr} + bl sub_80E77C8 + adds r1, r0, 0 + ldr r4, _080E7000 + adds r0, r4, 0 + adds r0, 0x96 + strb r1, [r0] + movs r2, 0xE0 + lsls r2, 1 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080E700C + movs r0, 0x5 + bl PlaySE + movs r1, 0xE2 + lsls r1, 1 + adds r0, r4, r1 + ldr r1, _080E7004 + str r1, [r0] + ldr r0, _080E7008 + bl sub_80E682C + b _080E710A + .align 2, 0 +_080E7000: .4byte 0x02001000 +_080E7004: .4byte sub_80E6FC8 +_080E7008: .4byte sub_80E7458 +_080E700C: + lsls r0, r1, 24 + cmp r0, 0 + beq _080E7018 + movs r0, 0x5 + bl PlaySE +_080E7018: + ldr r0, _080E7054 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080E70E8 + ldr r2, _080E7058 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080E7090 + movs r0, 0x5 + bl PlaySE + movs r1, 0xD4 + lsls r1, 1 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x2 + beq _080E7070 + cmp r0, 0x2 + bgt _080E705C + cmp r0, 0x1 + beq _080E7062 + b _080E710A + .align 2, 0 +_080E7054: .4byte gMain +_080E7058: .4byte 0x000001b7 +_080E705C: + cmp r0, 0x3 + beq _080E70F0 + b _080E710A +_080E7062: + ldr r0, _080E706C + bl sub_80E682C + b _080E710A + .align 2, 0 +_080E706C: .4byte sub_80E718C +_080E7070: + ldrb r0, [r4, 0x8] + cmp r0, 0x6 + beq _080E710A + adds r0, r4, 0 + adds r0, 0x27 + ldrb r0, [r0] + ldr r1, _080E708C + bl sub_80E7F00 + bl sub_80E7574 + bl sub_80E95A4 + b _080E710A + .align 2, 0 +_080E708C: .4byte 0x0000ffff +_080E7090: + adds r0, r4, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + beq _080E70CA + ldr r2, _080E70DC + adds r0, r4, r2 + movs r2, 0 + ldrsb r2, [r0, r2] + movs r1, 0xD4 + lsls r1, 1 + adds r0, r4, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + adds r2, r0 + adds r0, r4, 0 + adds r0, 0x40 + adds r2, r0 + ldrb r0, [r2] + lsls r0, 1 + ldr r2, _080E70E0 + adds r1, r4, r2 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _080E710A +_080E70CA: + movs r0, 0x5 + bl PlaySE + bl sub_80E7AD4 + ldr r0, _080E70E4 + bl sub_80E682C + b _080E710A + .align 2, 0 +_080E70DC: .4byte 0x000001a9 +_080E70E0: .4byte 0x00004142 +_080E70E4: .4byte sub_80E7218 +_080E70E8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E70FC +_080E70F0: + ldr r0, _080E70F8 + bl sub_80E682C + b _080E710A + .align 2, 0 +_080E70F8: .4byte sub_80E7114 +_080E70FC: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080E710A + ldr r0, _080E7110 + bl sub_80E682C +_080E710A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7110: .4byte sub_80E718C + thumb_func_end sub_80E6FC8 + + thumb_func_start sub_80E7114 +sub_80E7114: @ 80E7114 + push {lr} + ldr r0, _080E712C + ldrh r1, [r0, 0x24] + adds r2, r0, 0 + cmp r1, 0x4 + bhi _080E7182 + lsls r0, r1, 2 + ldr r1, _080E7130 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E712C: .4byte 0x02001000 +_080E7130: .4byte _080E7134 + .align 2, 0 +_080E7134: + .4byte _080E7148 + .4byte _080E715C + .4byte _080E715C + .4byte _080E7164 + .4byte _080E717C +_080E7148: + bl sub_80E8504 + bl sub_80E9E98 + bl sub_80E88F0 + movs r0, 0 + bl sub_80E8D8C + b _080E716E +_080E715C: + ldrh r0, [r2, 0x24] + adds r0, 0x1 + strh r0, [r2, 0x24] + b _080E7182 +_080E7164: + bl sub_80E9F50 + lsls r0, 24 + cmp r0, 0 + beq _080E7182 +_080E716E: + ldr r1, _080E7178 + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E7182 + .align 2, 0 +_080E7178: .4byte 0x02001000 +_080E717C: + ldr r0, _080E7188 + bl sub_80E682C +_080E7182: + pop {r0} + bx r0 + .align 2, 0 +_080E7188: .4byte sub_80E6AC4 + thumb_func_end sub_80E7114 + + thumb_func_start sub_80E718C +sub_80E718C: @ 80E718C + push {r4,lr} + ldr r0, _080E71A4 + ldrh r1, [r0, 0x24] + adds r4, r0, 0 + cmp r1, 0x1 + beq _080E71C6 + cmp r1, 0x1 + bgt _080E71A8 + cmp r1, 0 + beq _080E71AE + b _080E71EC + .align 2, 0 +_080E71A4: .4byte 0x02001000 +_080E71A8: + cmp r1, 0x8 + beq _080E71F4 + b _080E71EC +_080E71AE: + bl sub_80E8504 + bl sub_80E9E98 + bl sub_80E88F0 + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + bl sub_80E8D54 + b _080E720E +_080E71C6: + bl sub_80E9FD4 + lsls r0, 24 + cmp r0, 0 + beq _080E720E + movs r2, 0 + adds r1, r4, 0 + adds r1, 0x26 + ldrb r0, [r1] + cmp r0, 0 + bne _080E71DE + movs r2, 0x1 +_080E71DE: + strb r2, [r1] + bl sub_80E683C + bl sub_80E9974 + bl sub_80E9E98 +_080E71EC: + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E720E +_080E71F4: + bl sub_80EA014 + lsls r0, 24 + cmp r0, 0 + beq _080E720E + bl sub_80E8420 + movs r0, 0 + bl sub_80E8958 + ldr r0, _080E7214 + bl sub_80E682C +_080E720E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7214: .4byte sub_80E6FC8 + thumb_func_end sub_80E718C + + thumb_func_start sub_80E7218 +sub_80E7218: @ 80E7218 + push {r4,lr} + ldr r4, _080E7230 + ldrh r0, [r4, 0x24] + adds r1, r4, 0 + cmp r0, 0x9 + beq _080E7260 + cmp r0, 0x9 + bgt _080E7234 + cmp r0, 0x8 + beq _080E7244 + b _080E723C + .align 2, 0 +_080E7230: .4byte 0x02001000 +_080E7234: + cmp r0, 0xA + beq _080E7276 + cmp r0, 0xB + beq _080E7288 +_080E723C: + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E7288 +_080E7244: + movs r0, 0 + bl sub_80E8D8C + bl sub_80E8504 + bl sub_80E9AD4 + bl sub_80E68E8 + bl sub_80E88F0 + bl sub_80E9E98 + b _080E726E +_080E7260: + bl sub_80EA050 + lsls r0, 24 + cmp r0, 0 + beq _080E7288 + bl sub_80E9C94 +_080E726E: + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E7288 +_080E7276: + movs r0, 0x1 + bl sub_80E87CC + movs r0, 0x1 + bl sub_80E8958 + ldr r0, _080E7290 + bl sub_80E682C +_080E7288: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7290: .4byte sub_80E7294 + thumb_func_end sub_80E7218 + + thumb_func_start sub_80E7294 +sub_80E7294: @ 80E7294 + push {r4,lr} + bl sub_80E7B40 + adds r1, r0, 0 + ldr r4, _080E72CC + ldr r2, _080E72D0 + adds r0, r4, r2 + strb r1, [r0] + adds r2, 0x7 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080E72DC + movs r0, 0x5 + bl PlaySE + movs r1, 0xE2 + lsls r1, 1 + adds r0, r4, r1 + ldr r1, _080E72D4 + str r1, [r0] + ldr r0, _080E72D8 + bl sub_80E682C + b _080E731A + .align 2, 0 +_080E72CC: .4byte 0x02001000 +_080E72D0: .4byte 0x000001b9 +_080E72D4: .4byte sub_80E7294 +_080E72D8: .4byte sub_80E7458 +_080E72DC: + lsls r0, r1, 24 + cmp r0, 0 + beq _080E72E8 + movs r0, 0x5 + bl PlaySE +_080E72E8: + ldr r0, _080E7304 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080E730C + movs r0, 0x5 + bl PlaySE + ldr r0, _080E7308 + bl sub_80E682C + b _080E731A + .align 2, 0 +_080E7304: .4byte gMain +_080E7308: .4byte sub_80E7324 +_080E730C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E731A + ldr r0, _080E7320 + bl sub_80E682C +_080E731A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7320: .4byte sub_80E73D0 + thumb_func_end sub_80E7294 + + thumb_func_start sub_80E7324 +sub_80E7324: @ 80E7324 + push {lr} + ldr r0, _080E733C + ldrh r1, [r0, 0x24] + adds r2, r0, 0 + cmp r1, 0x4 + bhi _080E73C6 + lsls r0, r1, 2 + ldr r1, _080E7340 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E733C: .4byte 0x02001000 +_080E7340: .4byte _080E7344 + .align 2, 0 +_080E7344: + .4byte _080E7358 + .4byte _080E737C + .4byte _080E7384 + .4byte _080E738A + .4byte _080E73A4 +_080E7358: + bl sub_80E7DD0 + lsls r0, 24 + cmp r0, 0 + bne _080E7370 + ldr r0, _080E736C + bl sub_80E682C + b _080E73C6 + .align 2, 0 +_080E736C: .4byte sub_80E7294 +_080E7370: + bl sub_80E88F0 + movs r0, 0 + bl sub_80E87CC + b _080E7394 +_080E737C: + ldrh r0, [r2, 0x24] + adds r0, 0x1 + strh r0, [r2, 0x24] + b _080E73C6 +_080E7384: + bl sub_80E9E98 + b _080E7394 +_080E738A: + bl sub_80EA184 + lsls r0, 24 + cmp r0, 0 + beq _080E73C6 +_080E7394: + ldr r1, _080E73A0 + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E73C6 + .align 2, 0 +_080E73A0: .4byte 0x02001000 +_080E73A4: + ldrb r0, [r2, 0x8] + cmp r0, 0x6 + bne _080E73C0 + bl sub_80E7FA8 + lsls r0, 24 + cmp r0, 0 + beq _080E73C0 + ldr r0, _080E73BC + bl sub_80E682C + b _080E73C6 + .align 2, 0 +_080E73BC: .4byte sub_80E6D7C +_080E73C0: + ldr r0, _080E73CC + bl sub_80E682C +_080E73C6: + pop {r0} + bx r0 + .align 2, 0 +_080E73CC: .4byte sub_80E6AC4 + thumb_func_end sub_80E7324 + + thumb_func_start sub_80E73D0 +sub_80E73D0: @ 80E73D0 + push {lr} + ldr r0, _080E73E4 + ldrh r0, [r0, 0x24] + cmp r0, 0x4 + bhi _080E744E + lsls r0, 2 + ldr r1, _080E73E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E73E4: .4byte 0x02001000 +_080E73E8: .4byte _080E73EC + .align 2, 0 +_080E73EC: + .4byte _080E7400 + .4byte _080E740C + .4byte _080E7416 + .4byte _080E742C + .4byte _080E7444 +_080E7400: + movs r0, 0 + bl sub_80E87CC + bl sub_80E88F0 + b _080E7436 +_080E740C: + bl sub_80E9AD4 + bl sub_80E9E98 + b _080E7436 +_080E7416: + bl sub_80EA0E4 + lsls r0, 24 + cmp r0, 0 + beq _080E744E + movs r0, 0x1 + bl sub_80E8D8C + bl sub_80E9A14 + b _080E7436 +_080E742C: + bl sub_80E8420 + movs r0, 0 + bl sub_80E8958 +_080E7436: + ldr r1, _080E7440 + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E744E + .align 2, 0 +_080E7440: .4byte 0x02001000 +_080E7444: + bl sub_80E9974 + ldr r0, _080E7454 + bl sub_80E682C +_080E744E: + pop {r0} + bx r0 + .align 2, 0 +_080E7454: .4byte sub_80E6FC8 + thumb_func_end sub_80E73D0 + + thumb_func_start sub_80E7458 +sub_80E7458: @ 80E7458 + push {r4,r5,lr} + ldr r4, _080E7468 + ldrh r5, [r4, 0x24] + cmp r5, 0 + beq _080E746C + cmp r5, 0x1 + beq _080E74A4 + b _080E7518 + .align 2, 0 +_080E7468: .4byte 0x02001000 +_080E746C: + movs r1, 0xE2 + lsls r1, 1 + adds r0, r4, r1 + ldr r1, [r0] + ldr r0, _080E7480 + cmp r1, r0 + bne _080E7484 + bl sub_80E9D7C + b _080E7488 + .align 2, 0 +_080E7480: .4byte sub_80E6FC8 +_080E7484: + bl sub_80E9D00 +_080E7488: + ldr r4, _080E74A0 + movs r2, 0xDF + lsls r2, 1 + adds r0, r4, r2 + ldrb r0, [r0] + bl sub_80E9E08 + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E7518 + .align 2, 0 +_080E74A0: .4byte 0x02001000 +_080E74A4: + bl sub_80E9E54 + lsls r0, 24 + cmp r0, 0 + beq _080E7518 + movs r1, 0xE2 + lsls r1, 1 + adds r0, r4, r1 + ldr r1, [r0] + ldr r0, _080E74DC + cmp r1, r0 + bne _080E74E4 + bl sub_80E9D7C + ldr r2, _080E74E0 + adds r1, r4, r2 + adds r2, 0xB + adds r0, r4, r2 + ldrb r0, [r0] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] + bl sub_80E7A98 + adds r0, r4, 0 + adds r0, 0x96 + b _080E74FE + .align 2, 0 +_080E74DC: .4byte sub_80E6FC8 +_080E74E0: .4byte 0x000001b5 +_080E74E4: + ldr r0, _080E7520 + adds r1, r4, r0 + movs r2, 0xE0 + lsls r2, 1 + adds r0, r4, r2 + ldrb r0, [r0] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] + bl sub_80E7D30 + ldr r1, _080E7524 + adds r0, r4, r1 +_080E74FE: + strb r5, [r0] + ldr r1, _080E7528 + movs r0, 0xDF + lsls r0, 1 + adds r2, r1, r0 + movs r0, 0x2 + strb r0, [r2] + movs r2, 0xE2 + lsls r2, 1 + adds r0, r1, r2 + ldr r0, [r0] + bl sub_80E682C +_080E7518: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E7520: .4byte 0x00009a29 +_080E7524: .4byte 0x000001b9 +_080E7528: .4byte 0x02001000 + thumb_func_end sub_80E7458 + + thumb_func_start sub_80E752C +sub_80E752C: @ 80E752C + push {r4,lr} + sub sp, 0x4 + ldr r4, _080E7540 + ldrh r1, [r4, 0x24] + cmp r1, 0 + beq _080E7544 + cmp r1, 0x1 + beq _080E755C + b _080E756C + .align 2, 0 +_080E7540: .4byte 0x02001000 +_080E7544: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E756C +_080E755C: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080E756C + ldr r0, [r4] + bl SetMainCallback2 +_080E756C: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E752C + + thumb_func_start sub_80E7574 +sub_80E7574: @ 80E7574 + push {r4,r5,lr} + ldr r4, _080E75B8 + ldrb r5, [r4, 0x8] + cmp r5, 0x1 + bne _080E75BC + adds r0, r4, 0 + adds r0, 0x86 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r1, r4, 0 + adds r1, 0x7E + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x2 + bne _080E75BC + adds r0, r4, 0 + adds r0, 0x27 + ldrb r0, [r0] + lsls r0, 1 + subs r1, 0x72 + adds r0, r1 + ldrh r0, [r0] + bl sub_80EB2D4 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7 + beq _080E75BC + adds r0, r4, 0 + adds r0, 0x7D + strb r5, [r0] + adds r1, r4, 0 + b _080E75C6 + .align 2, 0 +_080E75B8: .4byte 0x02001000 +_080E75BC: + ldr r1, _080E75D4 + adds r2, r1, 0 + adds r2, 0x7D + movs r0, 0 + strb r0, [r2] +_080E75C6: + adds r1, 0x7D + movs r0, 0 + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E75D4: .4byte 0x02001000 + thumb_func_end sub_80E7574 + + thumb_func_start sub_80E75D8 +sub_80E75D8: @ 80E75D8 + push {r4-r6,lr} + movs r4, 0 + ldr r2, _080E75FC + ldrh r1, [r2, 0x2E] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080E7604 + ldr r1, _080E7600 + adds r0, r1, 0 + adds r0, 0x84 + ldrb r0, [r0] + adds r2, r1, 0 + adds r2, 0x86 + strb r0, [r2] + adds r1, 0x85 + movs r0, 0x2 + b _080E768E + .align 2, 0 +_080E75FC: .4byte gMain +_080E7600: .4byte 0x02001000 +_080E7604: + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080E7630 + ldr r2, _080E762C + adds r1, r2, 0 + adds r1, 0x86 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bge _080E765C + adds r0, r2, 0 + adds r0, 0x84 + ldrb r0, [r0] + strb r0, [r1] + b _080E765C + .align 2, 0 +_080E762C: .4byte 0x02001000 +_080E7630: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080E7658 + ldr r0, _080E7684 + adds r3, r0, 0 + adds r3, 0x86 + ldrb r1, [r3] + adds r1, 0x1 + strb r1, [r3] + adds r0, 0x84 + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + ble _080E7656 + strb r4, [r3] +_080E7656: + movs r4, 0x1 +_080E7658: + cmp r4, 0 + beq _080E76EA +_080E765C: + ldr r2, _080E7684 + ldrb r3, [r2, 0x9] + cmp r3, 0x2 + bne _080E7692 + adds r1, r2, 0 + adds r1, 0x86 + adds r0, r2, 0 + adds r0, 0x84 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080E7688 + adds r0, r2, 0 + adds r0, 0x85 + strb r3, [r0] + b _080E77BC + .align 2, 0 +_080E7684: .4byte 0x02001000 +_080E7688: + adds r1, r2, 0 + adds r1, 0x85 + movs r0, 0 +_080E768E: + strb r0, [r1] + b _080E77BC +_080E7692: + movs r0, 0x85 + adds r0, r2 + mov r12, r0 + adds r4, r2, 0 + adds r4, 0x83 + movs r1, 0 + ldrsb r1, [r0, r1] + ldrb r3, [r4] + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r1, r0 + blt _080E76B0 + subs r0, r3, 0x1 + mov r1, r12 + strb r0, [r1] +_080E76B0: + adds r1, r2, 0 + adds r1, 0x86 + adds r0, r2, 0 + adds r0, 0x84 + ldrb r3, [r1] + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + beq _080E77BC + ldrb r0, [r4] + adds r4, r0, 0 + muls r4, r3 + adds r0, r4, 0 + mov r5, r12 + ldrb r5, [r5] + adds r0, r5 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r2, 0xA] + cmp r0, r1 + bcc _080E77BC + subs r0, r1 + mov r6, r12 + strb r0, [r6] + b _080E77BC +_080E76EA: + ldrh r2, [r2, 0x30] + movs r0, 0x20 + ands r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _080E7744 + ldr r2, _080E7728 + adds r3, r2, 0 + adds r3, 0x85 + ldrb r0, [r3] + subs r0, 0x1 + strb r0, [r3] + lsls r0, 24 + cmp r0, 0 + bge _080E77BC + adds r1, r2, 0 + adds r1, 0x86 + adds r0, r2, 0 + adds r0, 0x84 + ldrb r4, [r1] + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080E772C + movs r0, 0x2 + b _080E77BA + .align 2, 0 +_080E7728: .4byte 0x02001000 +_080E772C: + adds r0, r2, 0 + adds r0, 0x83 + ldrb r0, [r0] + subs r1, r0, 0x1 + strb r1, [r3] + adds r5, r4, 0 + muls r5, r0 + adds r0, r5, 0 + adds r1, r0 + lsls r1, 24 + lsrs r0, r1, 24 + b _080E77B2 +_080E7744: + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + beq _080E77C0 + ldr r2, _080E777C + adds r5, r2, 0 + adds r5, 0x86 + adds r0, r2, 0 + adds r0, 0x84 + movs r1, 0 + ldrsb r1, [r5, r1] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080E7780 + adds r1, r2, 0 + adds r1, 0x85 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x2 + ble _080E77BC + strb r4, [r1] + b _080E77BC + .align 2, 0 +_080E777C: .4byte 0x02001000 +_080E7780: + adds r3, r2, 0 + adds r3, 0x85 + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + movs r6, 0x83 + adds r6, r2 + mov r12, r6 + lsls r0, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r6, r1] + cmp r0, r1 + blt _080E779E + strb r4, [r3] +_080E779E: + ldrb r1, [r5] + mov r4, r12 + ldrb r0, [r4] + adds r5, r0, 0 + muls r5, r1 + adds r0, r5, 0 + ldrb r6, [r3] + adds r0, r6 + lsls r0, 24 + lsrs r0, 24 +_080E77B2: + ldrb r1, [r2, 0xA] + cmp r0, r1 + bcc _080E77BC + subs r0, r1 +_080E77BA: + strb r0, [r3] +_080E77BC: + movs r0, 0x1 + b _080E77C2 +_080E77C0: + movs r0, 0 +_080E77C2: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80E75D8 + + thumb_func_start sub_80E77C8 +sub_80E77C8: @ 80E77C8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r7, 0 + ldr r1, _080E780C + ldr r2, _080E7810 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r3, r1, 0 + cmp r0, 0 + beq _080E783E + ldr r1, _080E7814 + ldrh r2, [r1, 0x30] + movs r0, 0x40 + ands r0, r2 + adds r6, r1, 0 + cmp r0, 0 + beq _080E7818 + movs r4, 0xD4 + lsls r4, 1 + adds r1, r3, r4 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + ble _080E7806 + b _080E7948 +_080E7806: + movs r0, 0x3 + strb r0, [r1] + b _080E7948 + .align 2, 0 +_080E780C: .4byte 0x02001000 +_080E7810: .4byte 0x000001b7 +_080E7814: .4byte gMain +_080E7818: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + bne _080E7822 + b _080E7950 +_080E7822: + movs r5, 0xD4 + lsls r5, 1 + adds r1, r3, r5 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + bgt _080E7838 + b _080E7948 +_080E7838: + movs r0, 0x1 + strb r0, [r1] + b _080E7948 +_080E783E: + adds r0, r3, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080E789A + movs r4, 0 + ldr r1, _080E7870 + ldrh r2, [r1, 0x30] + movs r0, 0x40 + ands r0, r2 + adds r6, r1, 0 + cmp r0, 0 + beq _080E7874 + movs r6, 0xD4 + lsls r6, 1 + adds r1, r3, r6 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bge _080E7944 + movs r0, 0x3 + strb r0, [r1] + b _080E7944 + .align 2, 0 +_080E7870: .4byte gMain +_080E7874: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _080E7894 + movs r0, 0xD4 + lsls r0, 1 + adds r1, r3, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _080E7892 + strb r7, [r1] +_080E7892: + movs r4, 0x1 +_080E7894: + cmp r4, 0 + beq _080E7950 + b _080E7944 +_080E789A: + movs r4, 0 + movs r1, 0xE0 + lsls r1, 1 + adds r5, r3, r1 + strb r7, [r5] + ldr r1, _080E78E0 + ldrh r2, [r1, 0x30] + movs r0, 0x40 + ands r0, r2 + adds r6, r1, 0 + cmp r0, 0 + beq _080E78E8 + movs r2, 0xD4 + lsls r2, 1 + adds r1, r3, r2 + ldrb r2, [r1] + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + bne _080E78C4 + b _080E7A88 +_080E78C4: + subs r0, r2, 0x1 + strb r0, [r1] + ldr r4, _080E78E4 + adds r1, r3, r4 + lsls r0, 24 + asrs r0, 24 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + cmp r0, r1 + bge _080E7932 + movs r0, 0xFF + strb r0, [r5] + b _080E7932 + .align 2, 0 +_080E78E0: .4byte gMain +_080E78E4: .4byte 0x000001b5 +_080E78E8: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _080E792E + movs r0, 0xD4 + lsls r0, 1 + adds r2, r3, r0 + movs r1, 0 + ldrsb r1, [r2, r1] + movs r4, 0xDB + lsls r4, 1 + adds r0, r3, r4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + subs r0, 0x1 + cmp r1, r0 + blt _080E790E + b _080E7A88 +_080E790E: + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + movs r1, 0 + ldrsb r1, [r2, r1] + ldr r2, _080E794C + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, 0x3 + cmp r1, r0 + ble _080E792C + movs r0, 0x1 + strb r0, [r5] +_080E792C: + movs r4, 0x1 +_080E792E: + cmp r4, 0 + beq _080E7950 +_080E7932: + movs r4, 0xE0 + lsls r4, 1 + adds r0, r3, r4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080E7944 + b _080E7A88 +_080E7944: + bl sub_80E7A98 +_080E7948: + movs r0, 0x1 + b _080E7A8A + .align 2, 0 +_080E794C: .4byte 0x000001b5 +_080E7950: + ldrh r1, [r6, 0x30] + movs r0, 0x20 + ands r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0 + beq _080E7992 + ldr r5, _080E7974 + adds r2, r3, r5 + ldrb r1, [r2] + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0 + beq _080E7978 + subs r0, r1, 0x1 + strb r0, [r2] + b _080E79E6 + .align 2, 0 +_080E7974: .4byte 0x000001a9 +_080E7978: + movs r6, 0xD4 + lsls r6, 1 + adds r0, r3, r6 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + movs r4, 0xD5 + lsls r4, 1 + adds r1, r3, r4 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + b _080E79E6 +_080E7992: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080E79E2 + ldr r5, _080E79D4 + adds r0, r3, r5 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _080E79CC + ldr r0, _080E79D8 + adds r4, r3, r0 + movs r1, 0xD4 + lsls r1, 1 + adds r0, r3, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r2, 0xD5 + lsls r2, 1 + adds r0, r3, r2 + adds r1, r0 + ldrb r5, [r4] + movs r2, 0 + ldrsb r2, [r4, r2] + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r2, r0 + bne _080E79DC +_080E79CC: + ldr r4, _080E79D8 + adds r0, r3, r4 + strb r6, [r0] + b _080E79E0 + .align 2, 0 +_080E79D4: .4byte 0x000001b7 +_080E79D8: .4byte 0x000001a9 +_080E79DC: + adds r0, r5, 0x1 + strb r0, [r4] +_080E79E0: + movs r7, 0x1 +_080E79E2: + cmp r7, 0 + beq _080E7A88 +_080E79E6: + adds r2, r3, 0 + ldr r5, _080E7A48 + adds r7, r2, r5 + ldrb r6, [r7] + mov r9, r6 + movs r1, 0 + ldr r0, _080E7A4C + adds r0, r2 + mov r12, r0 + subs r5, 0xF + adds r4, r2, r5 + movs r0, 0 + ldrsb r0, [r4, r0] + movs r6, 0xD5 + lsls r6, 1 + adds r6, r2 + mov r8, r6 + add r0, r8 + mov r6, r12 + movs r5, 0 + ldrsb r5, [r6, r5] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r5, r0 + bne _080E7A1C + movs r1, 0x1 +_080E7A1C: + strb r1, [r7] + cmp r1, 0 + beq _080E7A58 + ldr r0, _080E7A50 + adds r1, r2, r0 + ldrb r0, [r4] + ldrb r1, [r1] + subs r0, r1 + strb r0, [r4] + lsls r0, 24 + cmp r0, 0 + beq _080E7A36 + b _080E7948 +_080E7A36: + movs r0, 0x1 + strb r0, [r4] + ldr r1, _080E7A54 + adds r0, r2, r1 + ldrb r0, [r0] + mov r2, r12 + strb r0, [r2] + b _080E7948 + .align 2, 0 +_080E7A48: .4byte 0x000001b7 +_080E7A4C: .4byte 0x000001a9 +_080E7A50: .4byte 0x000001b5 +_080E7A54: .4byte 0x000001ab +_080E7A58: + mov r6, r9 + cmp r6, 0 + bne _080E7A60 + b _080E7948 +_080E7A60: + ldr r1, _080E7A84 + adds r0, r3, r1 + ldrb r0, [r0] + ldrb r2, [r4] + adds r0, r2 + strb r0, [r4] + cmp r5, 0 + bne _080E7A72 + b _080E7948 +_080E7A72: + movs r0, 0 + ldrsb r0, [r4, r0] + add r0, r8 + ldrb r0, [r0] + subs r0, 0x1 + mov r4, r12 + strb r0, [r4] + b _080E7948 + .align 2, 0 +_080E7A84: .4byte 0x000001b5 +_080E7A88: + movs r0, 0 +_080E7A8A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80E77C8 + + thumb_func_start sub_80E7A98 +sub_80E7A98: @ 80E7A98 + push {lr} + ldr r1, _080E7ACC + ldr r0, _080E7AD0 + adds r3, r1, r0 + movs r2, 0xD4 + lsls r2, 1 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r2, 0x2 + adds r1, r2 + adds r0, r1 + movs r1, 0 + ldrsb r1, [r3, r1] + ldrb r2, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + blt _080E7AC6 + subs r0, r2, 0x1 + strb r0, [r3] +_080E7AC6: + pop {r0} + bx r0 + .align 2, 0 +_080E7ACC: .4byte 0x02001000 +_080E7AD0: .4byte 0x000001a9 + thumb_func_end sub_80E7A98 + + thumb_func_start sub_80E7AD4 +sub_80E7AD4: @ 80E7AD4 + push {lr} + ldr r3, _080E7B08 + adds r0, r3, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E7B10 + ldr r1, _080E7B0C + adds r0, r3, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r2, 0xD4 + lsls r2, 1 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 1 + adds r1, r0 + adds r0, r3, 0 + adds r0, 0x2A + adds r1, r0 + ldrb r1, [r1] + adds r2, 0x10 + b _080E7B34 + .align 2, 0 +_080E7B08: .4byte 0x02001000 +_080E7B0C: .4byte 0x000001a9 +_080E7B10: + ldr r1, _080E7B3C + adds r0, r3, r1 + movs r2, 0 + ldrsb r2, [r0, r2] + subs r1, 0x1 + adds r0, r3, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + adds r2, r0 + adds r0, r3, 0 + adds r0, 0x40 + adds r2, r0 + ldrb r1, [r2] + movs r2, 0xDC + lsls r2, 1 +_080E7B34: + adds r0, r3, r2 + strb r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080E7B3C: .4byte 0x000001a9 + thumb_func_end sub_80E7AD4 + + thumb_func_start sub_80E7B40 +sub_80E7B40: @ 80E7B40 + push {r4-r7,lr} + movs r5, 0 + ldr r2, _080E7B8C + movs r0, 0xE0 + lsls r0, 1 + adds r6, r2, r0 + strb r5, [r6] + ldr r1, _080E7B90 + ldrh r4, [r1, 0x30] + movs r0, 0x40 + ands r0, r4 + adds r3, r2, 0 + adds r7, r1, 0 + cmp r0, 0 + beq _080E7B9C + ldr r2, _080E7B94 + adds r1, r3, r2 + ldrb r2, [r1] + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + bne _080E7B6E + b _080E7D1A +_080E7B6E: + subs r0, r2, 0x1 + strb r0, [r1] + ldr r4, _080E7B98 + adds r1, r3, r4 + lsls r0, 24 + asrs r0, 24 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + cmp r0, r1 + bge _080E7BF2 + movs r0, 0xFF + strb r0, [r6] + b _080E7D1A + .align 2, 0 +_080E7B8C: .4byte 0x02001000 +_080E7B90: .4byte gMain +_080E7B94: .4byte 0x000099a4 +_080E7B98: .4byte 0x00009a29 +_080E7B9C: + movs r0, 0x80 + ands r0, r4 + cmp r0, 0 + beq _080E7BEE + ldr r0, _080E7BE0 + adds r2, r3, r0 + movs r1, 0 + ldrsb r1, [r2, r1] + ldr r4, _080E7BE4 + adds r0, r3, r4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + subs r0, 0x1 + cmp r1, r0 + blt _080E7BBE + b _080E7D1A +_080E7BBE: + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + movs r1, 0 + ldrsb r1, [r2, r1] + ldr r2, _080E7BE8 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, 0x4 + cmp r1, r0 + blt _080E7BEC + movs r0, 0x1 + strb r0, [r6] + b _080E7D1A + .align 2, 0 +_080E7BE0: .4byte 0x000099a4 +_080E7BE4: .4byte 0x00009a28 +_080E7BE8: .4byte 0x00009a29 +_080E7BEC: + movs r5, 0x1 +_080E7BEE: + cmp r5, 0 + beq _080E7BFA +_080E7BF2: + bl sub_80E7D30 +_080E7BF6: + movs r0, 0x1 + b _080E7D1C +_080E7BFA: + ldrh r1, [r7, 0x30] + movs r0, 0x20 + ands r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _080E7C38 + ldr r4, _080E7C30 + adds r2, r3, r4 + ldrb r0, [r2] + subs r0, 0x1 + strb r0, [r2] + lsls r0, 24 + cmp r0, 0 + bge _080E7BF6 + ldr r6, _080E7C34 + adds r0, r3, r6 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r4, 0x1 + adds r1, r3, r4 + adds r0, r1 + ldrb r0, [r0] + subs r0, 0x1 + strb r0, [r2] + b _080E7BF6 + .align 2, 0 +_080E7C30: .4byte 0x000099a5 +_080E7C34: .4byte 0x000099a4 +_080E7C38: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080E7C70 + ldr r6, _080E7C68 + adds r4, r3, r6 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r2, _080E7C6C + adds r1, r3, r2 + movs r2, 0 + ldrsb r2, [r1, r2] + adds r6, 0x1 + adds r1, r3, r6 + adds r2, r1 + lsls r0, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r2, r1] + cmp r0, r1 + blt _080E7BF6 + strb r5, [r4] + b _080E7BF6 + .align 2, 0 +_080E7C68: .4byte 0x000099a5 +_080E7C6C: .4byte 0x000099a4 +_080E7C70: + ldrh r1, [r7, 0x2E] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080E7CC4 + ldr r1, _080E7CBC + adds r0, r3, r1 + ldrb r1, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080E7CA2 + negs r0, r1 + movs r4, 0xE0 + lsls r4, 1 + adds r2, r3, r4 + strb r0, [r2] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x4 + negs r1, r1 + cmp r0, r1 + bge _080E7CA2 + strb r1, [r2] +_080E7CA2: + ldr r6, _080E7CC0 + adds r1, r3, r6 + movs r2, 0xE0 + lsls r2, 1 + adds r0, r3, r2 + ldrb r0, [r0] + ldrb r4, [r1] + adds r0, r4 + strb r0, [r1] + movs r6, 0xDF + lsls r6, 1 + adds r1, r3, r6 + b _080E7D16 + .align 2, 0 +_080E7CBC: .4byte 0x00009a29 +_080E7CC0: .4byte 0x000099a4 +_080E7CC4: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080E7D1A + ldr r0, _080E7D24 + adds r4, r3, r0 + movs r1, 0 + ldrsb r1, [r4, r1] + ldr r6, _080E7D28 + adds r2, r3, r6 + movs r0, 0 + ldrsb r0, [r2, r0] + subs r0, 0x4 + cmp r1, r0 + bge _080E7CFE + ldrb r1, [r4] + adds r1, 0x4 + ldrb r0, [r2] + subs r0, r1 + movs r2, 0xE0 + lsls r2, 1 + adds r1, r3, r2 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x4 + ble _080E7CFE + movs r0, 0x4 + strb r0, [r1] +_080E7CFE: + ldr r4, _080E7D2C + adds r1, r3, r4 + movs r6, 0xE0 + lsls r6, 1 + adds r0, r3, r6 + ldrb r0, [r0] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] + movs r4, 0xDF + lsls r4, 1 + adds r1, r3, r4 +_080E7D16: + movs r0, 0x4 + strb r0, [r1] +_080E7D1A: + movs r0, 0 +_080E7D1C: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080E7D24: .4byte 0x00009a29 +_080E7D28: .4byte 0x00009a28 +_080E7D2C: .4byte 0x000099a4 + thumb_func_end sub_80E7B40 + + thumb_func_start sub_80E7D30 +sub_80E7D30: @ 80E7D30 + push {r4,lr} + ldr r0, _080E7D60 + ldr r1, _080E7D64 + adds r4, r0, r1 + ldr r2, _080E7D68 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + adds r2, 0x2 + adds r0, r2 + adds r1, r0 + movs r2, 0 + ldrsb r2, [r4, r2] + ldrb r3, [r1] + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r2, r0 + blt _080E7D5A + subs r0, r3, 0x1 + strb r0, [r4] +_080E7D5A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7D60: .4byte 0x02001000 +_080E7D64: .4byte 0x000099a5 +_080E7D68: .4byte 0x000099a4 + thumb_func_end sub_80E7D30 + + thumb_func_start sub_80E7D6C +sub_80E7D6C: @ 80E7D6C + push {r4,r5,lr} + movs r4, 0 + ldr r0, _080E7D94 + ldrb r1, [r0, 0xA] + cmp r4, r1 + bcs _080E7D8E + adds r5, r0, 0 +_080E7D7A: + adds r0, r4, 0 + ldr r1, _080E7D98 + bl sub_80E7F00 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldrb r0, [r5, 0xA] + cmp r4, r0 + bcc _080E7D7A +_080E7D8E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E7D94: .4byte 0x02001000 +_080E7D98: .4byte 0x0000ffff + thumb_func_end sub_80E7D6C + + thumb_func_start sub_80E7D9C +sub_80E7D9C: @ 80E7D9C + push {r4,r5,lr} + movs r2, 0 + ldr r0, _080E7DCC + ldrb r1, [r0, 0xA] + cmp r2, r1 + bcs _080E7DC6 + adds r3, r0, 0 + ldr r4, [r3, 0x4] + adds r5, r3, 0 + adds r5, 0xC +_080E7DB0: + lsls r0, r2, 1 + adds r1, r0, r4 + adds r0, r5 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrb r0, [r3, 0xA] + cmp r2, r0 + bcc _080E7DB0 +_080E7DC6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E7DCC: .4byte 0x02001000 + thumb_func_end sub_80E7D9C + + thumb_func_start sub_80E7DD0 +sub_80E7DD0: @ 80E7DD0 + push {r4,lr} + ldr r2, _080E7E28 + ldr r1, _080E7E2C + adds r0, r2, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r1, 1 + ldr r3, _080E7E30 + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r1, r0 + adds r3, 0x86 + adds r0, r2, r3 + adds r1, r0 + ldrh r4, [r1] + adds r0, r2, 0 + adds r0, 0x7D + ldrb r0, [r0] + cmp r0, 0 + beq _080E7E34 + adds r0, r2, 0 + adds r0, 0x86 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r1, r2, 0 + adds r1, 0x7E + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bls _080E7E34 + adds r0, r4, 0 + bl sub_80EB2D4 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7 + bne _080E7E34 + movs r0, 0 + b _080E7E46 + .align 2, 0 +_080E7E28: .4byte 0x02001000 +_080E7E2C: .4byte 0x000099a5 +_080E7E30: .4byte 0x000099a4 +_080E7E34: + ldr r0, _080E7E4C + adds r0, 0x27 + ldrb r0, [r0] + adds r1, r4, 0 + bl sub_80E7F00 + bl sub_80E95A4 + movs r0, 0x1 +_080E7E46: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E7E4C: .4byte 0x02001000 + thumb_func_end sub_80E7DD0 + + thumb_func_start sub_80E7E50 +sub_80E7E50: @ 80E7E50 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r5, 0 + movs r2, 0 + ldr r1, _080E7EF0 + adds r3, r1, 0 + adds r3, 0x84 + movs r0, 0 + ldrsb r0, [r3, r0] + cmp r2, r0 + bge _080E7EDE + mov r8, r1 + adds r0, r1, 0 + str r0, [sp] +_080E7E74: + mov r0, r8 + adds r0, 0x7E + adds r0, r2, r0 + movs r1, 0 + strb r1, [r0] + movs r3, 0 + ldr r6, _080E7EF4 + movs r0, 0 + ldrsb r0, [r6, r0] + adds r1, r2, 0x1 + str r1, [sp, 0x4] + cmp r3, r0 + bge _080E7ECE + ldr r6, [sp] + mov r12, r6 + movs r0, 0 + mov r10, r0 + ldr r1, _080E7EF4 + mov r9, r1 + ldr r7, _080E7EF8 + lsls r4, r2, 1 +_080E7E9E: + lsls r1, r5, 1 + adds r2, r1, r7 + mov r6, r12 + ldr r0, [r6, 0x4] + adds r1, r0 + ldrh r0, [r1] + strh r0, [r2] + adds r0, r3, r4 + mov r1, r12 + adds r1, 0x8C + adds r0, r1 + mov r1, r10 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + mov r6, r9 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r3, r0 + blt _080E7E9E +_080E7ECE: + ldr r1, [sp, 0x4] + lsls r0, r1, 16 + lsrs r2, r0, 16 + ldr r6, _080E7EFC + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r2, r0 + blt _080E7E74 +_080E7EDE: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E7EF0: .4byte 0x02001000 +_080E7EF4: .4byte 0x02001083 +_080E7EF8: .4byte 0x0200100c +_080E7EFC: .4byte 0x02001084 + thumb_func_end sub_80E7E50 + + thumb_func_start sub_80E7F00 +sub_80E7F00: @ 80E7F00 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + ldr r7, _080E7F68 + adds r0, r7, 0 + adds r0, 0x83 + movs r4, 0 + ldrsb r4, [r0, r4] + adds r0, r6, 0 + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r6, 0 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r0, r6, 1 + adds r1, r7, 0 + adds r1, 0xC + adds r0, r1 + ldrh r0, [r0] + bl sub_80EB2D4 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, r9 + bl sub_80EB2D4 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r4, 0x7 + bne _080E7F6C + cmp r3, 0x7 + beq _080E7F7C + adds r1, r7, 0 + adds r1, 0x7E + adds r1, r5, r1 + ldrb r0, [r1] + subs r0, 0x1 + b _080E7F7A + .align 2, 0 +_080E7F68: .4byte 0x02001000 +_080E7F6C: + cmp r3, 0x7 + bne _080E7F7C + adds r1, r7, 0 + adds r1, 0x7E + adds r1, r5, r1 + ldrb r0, [r1] + adds r0, 0x1 +_080E7F7A: + strb r0, [r1] +_080E7F7C: + movs r3, 0 + ldr r2, _080E7FA4 + lsls r0, r5, 1 + add r0, r8 + adds r1, r2, 0 + adds r1, 0x8C + adds r0, r1 + strb r3, [r0] + lsls r0, r6, 1 + adds r2, 0xC + adds r0, r2 + mov r1, r9 + strh r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E7FA4: .4byte 0x02001000 + thumb_func_end sub_80E7F00 + + thumb_func_start sub_80E7FA8 +sub_80E7FA8: @ 80E7FA8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r0, 0 + mov r8, r0 + movs r5, 0 + ldr r0, _080E8040 + ldrb r1, [r0, 0xA] + cmp r8, r1 + bcs _080E802E + ldr r3, _080E8044 + adds r6, r0, r3 + ldr r1, _080E8048 + adds r1, r0 + mov r9, r1 +_080E7FC8: + ldr r3, _080E804C + adds r7, r6, r3 + ldr r0, [r7, 0x4] + lsls r4, r5, 1 + adds r0, r4, r0 + ldrh r1, [r0] + adds r0, r6, 0 + movs r2, 0 + bl sub_80EB218 + ldr r1, _080E8050 + adds r0, r6, r1 + adds r0, r4 + ldrh r1, [r0] + mov r0, r9 + movs r2, 0 + bl sub_80EB218 + adds r1, r6, 0 + mov r2, r9 + ldrb r0, [r1] + adds r4, r5, 0x1 + ldrb r3, [r2] + cmp r0, r3 + bne _080E8018 + adds r3, r7, 0 + cmp r0, 0xFF + beq _080E8010 +_080E8000: + adds r1, 0x1 + adds r2, 0x1 + ldrb r0, [r1] + ldrb r5, [r2] + cmp r0, r5 + bne _080E8018 + cmp r0, 0xFF + bne _080E8000 +_080E8010: + ldrb r0, [r1] + ldrb r2, [r2] + cmp r0, r2 + beq _080E8024 +_080E8018: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r3, _080E8040 +_080E8024: + lsls r0, r4, 16 + lsrs r5, r0, 16 + ldrb r3, [r3, 0xA] + cmp r5, r3 + bcc _080E7FC8 +_080E802E: + mov r1, r8 + lsls r0, r1, 24 + lsrs r0, 24 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080E8040: .4byte 0x02001000 +_080E8044: .4byte 0x00009e14 +_080E8048: .4byte 0x00009e41 +_080E804C: .4byte 0xffff61ec +_080E8050: .4byte 0xffff61f8 + thumb_func_end sub_80E7FA8 + + thumb_func_start sub_80E8054 +sub_80E8054: @ 80E8054 + push {r4,lr} + movs r1, 0 + ldr r2, _080E8078 + ldrb r0, [r2, 0xA] + cmp r1, r0 + bcs _080E808A + adds r4, r2, 0 + adds r4, 0xC + ldr r3, _080E807C + adds r2, r0, 0 +_080E8068: + lsls r0, r1, 1 + adds r0, r4 + ldrh r0, [r0] + cmp r0, r3 + beq _080E8080 + movs r0, 0 + b _080E808C + .align 2, 0 +_080E8078: .4byte 0x02001000 +_080E807C: .4byte 0x0000ffff +_080E8080: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r2 + bcc _080E8068 +_080E808A: + movs r0, 0x1 +_080E808C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80E8054 + + thumb_func_start sub_80E8094 +sub_80E8094: @ 80E8094 + push {r4-r7,lr} + movs r5, 0 + ldr r6, _080E80C4 + adds r7, r6, 0 + adds r7, 0x2D +_080E809E: + lsls r4, r5, 1 + ldr r1, _080E80C8 + adds r0, r6, r1 + adds r0, r4 + ldrh r1, [r0] + adds r0, r6, 0 + movs r2, 0 + bl sub_80EB218 + ldr r0, _080E80CC + adds r4, r0 + ldrh r1, [r4] + adds r0, r7, 0 + movs r2, 0 + bl sub_80EB218 + adds r3, r6, 0 + adds r4, r7, 0 + b _080E80D8 + .align 2, 0 +_080E80C4: .4byte 0x0200ae14 +_080E80C8: .4byte 0xffff61f8 +_080E80CC: .4byte gMysteryEventPhrase +_080E80D0: + adds r4, 0x1 + adds r3, 0x1 + cmp r2, r1 + bne _080E80F4 +_080E80D8: + ldrb r2, [r3] + adds r0, r2, 0 + cmp r0, 0xFF + beq _080E80EE + ldrb r1, [r4] + adds r0, r1, 0 + cmp r0, 0xFF + bne _080E80D0 + ldrb r0, [r3] + cmp r0, 0xFF + bne _080E80F4 +_080E80EE: + ldrb r0, [r4] + cmp r0, 0xFF + beq _080E80F8 +_080E80F4: + movs r0, 0 + b _080E8104 +_080E80F8: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080E809E + movs r0, 0x1 +_080E8104: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80E8094 + + thumb_func_start sub_80E810C +sub_80E810C: @ 80E810C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r5, 0 + ldr r6, _080E8198 + ldr r0, _080E819C + adds r0, r6 + mov r9, r0 + movs r1, 0 + mov r8, r1 + adds r7, r6, 0 + adds r7, 0x80 + ldr r2, _080E81A0 + mov r10, r2 +_080E812C: + mov r0, r9 + ldrh r1, [r0, 0xC] + adds r0, r6, 0 + movs r2, 0 + bl sub_80EB218 + mov r1, r8 + strb r1, [r0] + adds r0, 0x1 + mov r2, r9 + ldrh r1, [r2, 0xE] + movs r2, 0 + bl sub_80EB218 + lsls r4, r5, 2 + mov r1, r10 + adds r0, r4, r1 + ldrh r1, [r0] + adds r0, r7, 0 + movs r2, 0 + bl sub_80EB218 + mov r2, r8 + strb r2, [r0] + adds r0, 0x1 + ldr r1, _080E81A4 + adds r4, r1 + ldrh r1, [r4] + movs r2, 0 + bl sub_80EB218 + adds r0, r6, 0 + adds r3, r7, 0 + adds r4, r5, 0x1 +_080E8170: + ldrb r2, [r0] + cmp r2, 0xFF + beq _080E818A + ldrb r1, [r3] + cmp r1, 0xFF + beq _080E8184 + adds r3, 0x1 + adds r0, 0x1 + cmp r2, r1 + beq _080E8170 +_080E8184: + ldrb r0, [r0] + cmp r0, 0xFF + bne _080E81A8 +_080E818A: + ldrb r0, [r3] + cmp r0, 0xFF + bne _080E81A8 + lsls r0, r4, 24 + lsrs r0, 24 + b _080E81B2 + .align 2, 0 +_080E8198: .4byte 0x0200ae6e +_080E819C: .4byte 0xffff6192 +_080E81A0: .4byte gBerryMasterWifePhrases +_080E81A4: .4byte gBerryMasterWifePhrases + 0x2 +_080E81A8: + lsls r0, r4, 16 + lsrs r5, r0, 16 + cmp r5, 0x4 + bls _080E812C + movs r0, 0 +_080E81B2: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80E810C + + thumb_func_start sub_80E81C0 +sub_80E81C0: @ 80E81C0 + push {r4,lr} + ldr r0, _080E81EC + ldr r4, _080E81F0 + ldr r2, _080E81F4 + adds r1, r4, r2 + ldrh r1, [r1] + movs r2, 0 + bl sub_80EB218 + movs r1, 0 + strb r1, [r0] + adds r0, 0x1 + ldr r1, _080E81F8 + adds r4, r1 + ldrh r1, [r4] + movs r2, 0 + bl sub_80EB218 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E81EC: .4byte gStringVar2 +_080E81F0: .4byte 0x02001000 +_080E81F4: .4byte 0x00009c7c +_080E81F8: .4byte 0x00009c7e + thumb_func_end sub_80E81C0 + + thumb_func_start sub_80E81FC +sub_80E81FC: @ 80E81FC + push {lr} + movs r0, 0x5 + bl PlaySE + bl sub_80E95A4 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0xD + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + thumb_func_end sub_80E81FC + + thumb_func_start sub_80E8218 +sub_80E8218: @ 80E8218 + push {r4,r5,lr} + sub sp, 0x40 + mov r1, sp + ldr r0, _080E8260 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r4,r5} + stm r1!, {r2,r4,r5} + ldr r0, [r0] + str r0, [r1] + add r4, sp, 0x28 + adds r1, r4, 0 + ldr r0, _080E8264 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + mov r0, sp + bl LoadSpriteSheets + adds r0, r4, 0 + bl LoadSpritePalettes + bl sub_80E8268 + bl sub_80E8818 + bl sub_80E8A7C + add sp, 0x40 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E8260: .4byte gSpriteSheets_Interview +_080E8264: .4byte gSpritePalettes_Interview + thumb_func_end sub_80E8218 + + thumb_func_start sub_80E8268 +sub_80E8268: @ 80E8268 + push {lr} + ldr r0, _080E82B0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E82B4 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldr r0, _080E82B8 + ldr r3, [r0] + adds r0, r3, 0 + adds r0, 0x8A + ldrh r0, [r0] + lsls r0, 3 + adds r0, 0x8 + movs r2, 0 + strh r0, [r1, 0x22] + adds r0, r3, 0 + adds r0, 0x88 + ldrh r0, [r0] + lsls r0, 3 + adds r0, 0x4 + strh r0, [r1, 0x20] + strh r2, [r1, 0x2E] + strh r2, [r1, 0x30] + adds r0, r3, 0 + adds r0, 0x98 + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080E82B0: .4byte gSpriteTemplate_83DBBFC +_080E82B4: .4byte gSprites +_080E82B8: .4byte gUnknown_083DB694 + thumb_func_end sub_80E8268 + + thumb_func_start sub_80E82BC +sub_80E82BC: @ 80E82BC + push {r4-r7,lr} + adds r3, r0, 0 + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080E838C + ldr r0, _080E8334 + ldr r2, [r0] + adds r1, r2, 0 + adds r1, 0x87 + ldrb r1, [r1] + mov r12, r0 + cmp r1, 0 + beq _080E836C + adds r0, r2, 0 + adds r0, 0x86 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r2, 0 + adds r0, 0x85 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r4, r0, 16 + movs r7, 0 + movs r1, 0 + cmp r7, r4 + bcs _080E8316 + lsls r6, r5, 1 + adds r2, 0x8C +_080E8300: + adds r0, r1, r6 + adds r0, r2, r0 + ldrb r0, [r0] + adds r0, r7, r0 + lsls r0, 16 + lsrs r7, r0, 16 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r4 + bcc _080E8300 +_080E8316: + mov r0, r12 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x84 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r5, r0 + bne _080E8338 + movs r0, 0x60 + strh r0, [r3, 0x22] + lsls r0, r4, 3 + subs r0, r4 + adds r0, 0x3 + b _080E8356 + .align 2, 0 +_080E8334: .4byte gUnknown_083DB694 +_080E8338: + adds r1, r2, 0 + adds r1, 0x8A + lsls r0, r5, 1 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 3 + adds r0, 0x8 + strh r0, [r3, 0x22] + adds r0, r2, 0 + adds r0, 0x88 + ldrh r0, [r0] + adds r0, r7 + movs r1, 0xB + muls r1, r4 + adds r0, r1 +_080E8356: + lsls r0, 3 + adds r0, 0x4 + strh r0, [r3, 0x20] + movs r1, 0 + ldr r0, _080E8368 + strh r0, [r3, 0x24] + strh r1, [r3, 0x2E] + b _080E838C + .align 2, 0 +_080E8368: .4byte 0x0000fffa +_080E836C: + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080E838C + strh r1, [r3, 0x2E] + ldrh r0, [r3, 0x24] + adds r0, 0x1 + strh r0, [r3, 0x24] + lsls r0, 16 + cmp r0, 0 + ble _080E838C + ldr r0, _080E8394 + strh r0, [r3, 0x24] +_080E838C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8394: .4byte 0x0000fffa + thumb_func_end sub_80E82BC + + thumb_func_start sub_80E8398 +sub_80E8398: @ 80E8398 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1 + beq _080E83D4 + cmp r3, 0x1 + bgt _080E83AC + cmp r3, 0 + beq _080E83B2 + b _080E8416 +_080E83AC: + cmp r3, 0x2 + beq _080E83F8 + b _080E8416 +_080E83B2: + ldr r0, _080E83D0 + ldr r0, [r0] + adds r0, 0x98 + ldr r1, [r0] + strh r3, [r1, 0x30] + ldr r1, [r0] + strh r3, [r1, 0x24] + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + b _080E8414 + .align 2, 0 +_080E83D0: .4byte gUnknown_083DB694 +_080E83D4: + ldr r0, _080E83F4 + ldr r1, [r0] + adds r1, 0x98 + ldr r0, [r1] + movs r2, 0 + strh r3, [r0, 0x30] + ldr r0, [r1] + strh r2, [r0, 0x24] + ldr r1, [r1] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + b _080E8414 + .align 2, 0 +_080E83F4: .4byte gUnknown_083DB694 +_080E83F8: + ldr r0, _080E841C + ldr r1, [r0] + adds r1, 0x98 + ldr r2, [r1] + movs r3, 0 + movs r0, 0x1 + strh r0, [r2, 0x30] + ldr r0, [r1] + strh r3, [r0, 0x24] + ldr r1, [r1] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 +_080E8414: + strb r0, [r1] +_080E8416: + pop {r0} + bx r0 + .align 2, 0 +_080E841C: .4byte gUnknown_083DB694 + thumb_func_end sub_80E8398 + + thumb_func_start sub_80E8420 +sub_80E8420: @ 80E8420 + push {r4-r7,lr} + sub sp, 0x18 + mov r1, sp + ldr r0, _080E84E0 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + mov r0, sp + movs r1, 0 + movs r2, 0 + movs r3, 0x3 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080E84E4 + ldr r7, [r1] + adds r5, r7, 0 + adds r5, 0x9C + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r4, _080E84E8 + adds r1, r4 + str r1, [r5] + ldr r0, _080E84EC + str r0, [sp, 0x8] + ldr r0, _080E84F0 + str r0, [sp, 0x14] + mov r0, sp + movs r1, 0 + movs r2, 0 + movs r3, 0x4 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + adds r6, r7, 0 + adds r6, 0xA0 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + str r1, [r6] + ldr r0, _080E84F4 + str r0, [sp, 0x8] + ldr r0, _080E84F8 + str r0, [sp, 0x14] + mov r0, sp + movs r1, 0 + movs r2, 0 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + adds r2, r7, 0 + adds r2, 0xA4 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + str r1, [r2] + ldr r0, [r5] + movs r1, 0 + strh r1, [r0, 0x2E] + ldr r0, [r6] + strh r1, [r0, 0x2E] + ldr r0, [r2] + strh r1, [r0, 0x2E] + movs r0, 0x1 + bl IndexOfSpritePaletteTag + ldr r1, [r5] + lsls r0, 24 + lsrs r0, 20 + ldr r2, _080E84FC + adds r0, r2 + strh r0, [r1, 0x34] + bl sub_80E8534 + adds r1, r7, 0 + adds r1, 0x96 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _080E8500 + movs r3, 0xFD + lsls r3, 6 + adds r0, r3, 0 + strh r0, [r1] + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E84E0: .4byte gSpriteTemplate_83DBCAC +_080E84E4: .4byte gUnknown_083DB694 +_080E84E8: .4byte gSprites +_080E84EC: .4byte gSpriteAnimTable_83DBC8C +_080E84F0: .4byte sub_80E872C +_080E84F4: .4byte gSpriteAnimTable_83DBC9C +_080E84F8: .4byte sub_80E8760 +_080E84FC: .4byte 0x00000101 +_080E8500: .4byte REG_BLDCNT + thumb_func_end sub_80E8420 + + thumb_func_start sub_80E8504 +sub_80E8504: @ 80E8504 + push {r4,lr} + ldr r0, _080E8530 + ldr r4, [r0] + adds r0, r4, 0 + adds r0, 0x9C + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0 + adds r0, 0xA0 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0 + adds r0, 0xA4 + ldr r0, [r0] + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E8530: .4byte gUnknown_083DB694 + thumb_func_end sub_80E8504 + + thumb_func_start sub_80E8534 +sub_80E8534: @ 80E8534 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r1, _080E8554 + ldr r3, [r1] + ldr r2, _080E8558 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r4, r1, 0 + cmp r0, 0 + beq _080E8560 + ldr r1, _080E855C + movs r0, 0x1 + b _080E8598 + .align 2, 0 +_080E8554: .4byte gUnknown_083DB694 +_080E8558: .4byte 0x000001b7 +_080E855C: .4byte gUnknown_020388AC +_080E8560: + adds r0, r3, 0 + adds r0, 0x26 + ldrb r2, [r0] + cmp r2, 0 + bne _080E8578 + ldr r0, _080E8574 + strb r2, [r0] + adds r7, r0, 0 + b _080E859C + .align 2, 0 +_080E8574: .4byte gUnknown_020388AC +_080E8578: + movs r1, 0xD4 + lsls r1, 1 + adds r0, r3, r1 + ldrh r1, [r0] + movs r0, 0xC0 + lsls r0, 3 + cmp r1, r0 + bne _080E8594 + ldr r1, _080E8590 + movs r0, 0x2 + b _080E8598 + .align 2, 0 +_080E8590: .4byte gUnknown_020388AC +_080E8594: + ldr r1, _080E85F4 + movs r0, 0x3 +_080E8598: + strb r0, [r1] + adds r7, r1, 0 +_080E859C: + ldr r2, [r4] + adds r4, r2, 0 + adds r4, 0x9C + ldr r1, [r4] + ldrb r0, [r7] + movs r3, 0 + mov r8, r3 + strh r0, [r1, 0x32] + adds r5, r2, 0 + adds r5, 0xA0 + ldr r1, [r5] + ldrb r0, [r7] + strh r0, [r1, 0x32] + adds r6, r2, 0 + adds r6, 0xA4 + ldr r1, [r6] + ldrb r0, [r7] + strh r0, [r1, 0x32] + ldr r0, [r4] + ldrb r1, [r7] + bl StartSpriteAnim + ldr r0, [r5] + ldrb r1, [r7] + bl StartSpriteAnim + ldr r0, [r6] + ldrb r1, [r7] + bl StartSpriteAnim + ldr r0, [r4] + movs r1, 0x8 + strh r1, [r0, 0x38] + ldr r0, [r4] + strh r1, [r0, 0x3A] + ldr r0, [r4] + mov r1, r8 + strh r1, [r0, 0x30] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E85F4: .4byte gUnknown_020388AC + thumb_func_end sub_80E8534 + + thumb_func_start sub_80E85F8 +sub_80E85F8: @ 80E85F8 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080E8624 + ldr r1, _080E8620 + movs r2, 0x30 + ldrsh r0, [r5, r2] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 21 + adds r0, 0x8 + strh r0, [r5, 0x38] + b _080E863A + .align 2, 0 +_080E8620: .4byte gSineTable +_080E8624: + ldr r1, _080E8688 + movs r2, 0x30 + ldrsh r0, [r5, r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 16 + asrs r1, 21 + movs r0, 0x8 + subs r0, r1 + strh r0, [r5, 0x3A] +_080E863A: + ldrh r0, [r5, 0x30] + adds r0, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x30] + ldr r2, _080E868C + ldrh r0, [r5, 0x3A] + lsls r0, 8 + ldrh r1, [r5, 0x38] + orrs r0, r1 + strh r0, [r2] + ldr r0, _080E8690 + ldr r6, [r0] + adds r0, r6, 0 + adds r0, 0x96 + ldrb r0, [r0] + cmp r0, 0 + beq _080E871A + bl sub_80E8534 + adds r1, r6, 0 + adds r1, 0x9C + ldr r0, [r1] + movs r2, 0x8 + strh r2, [r0, 0x38] + ldr r0, [r1] + strh r2, [r0, 0x3A] + ldr r1, [r1] + movs r0, 0 + strh r0, [r1, 0x30] + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080E86C4 + cmp r0, 0x1 + bgt _080E8694 + cmp r0, 0 + beq _080E869E + b _080E871A + .align 2, 0 +_080E8688: .4byte gSineTable +_080E868C: .4byte REG_BLDALPHA +_080E8690: .4byte gUnknown_083DB694 +_080E8694: + cmp r0, 0x2 + beq _080E86D6 + cmp r0, 0x3 + beq _080E86DE + b _080E871A +_080E869E: + ldr r2, _080E86C0 + adds r0, r6, r2 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x58 + muls r0, r1 + adds r0, 0x20 + strh r0, [r5, 0x20] + movs r1, 0xD4 + lsls r1, 1 + adds r0, r6, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r2, 0xC + b _080E870A + .align 2, 0 +_080E86C0: .4byte 0x000001a9 +_080E86C4: + movs r0, 0xD8 + strh r0, [r5, 0x20] + movs r1, 0xD4 + lsls r1, 1 + adds r0, r6, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + b _080E8714 +_080E86D6: + movs r0, 0x97 + strh r0, [r5, 0x20] + movs r0, 0x60 + b _080E8718 +_080E86DE: + ldr r4, _080E8720 + ldr r2, _080E8724 + adds r0, r6, r2 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0xD4 + lsls r0, 1 + adds r3, r6, r0 + movs r2, 0 + ldrsb r2, [r3, r2] + lsls r0, r2, 3 + subs r0, r2 + adds r1, r0 + adds r1, r4 + movs r0, 0 + ldrsb r0, [r1, r0] + lsls r0, 3 + adds r0, 0x1F + strh r0, [r5, 0x20] + movs r0, 0 + ldrsb r0, [r3, r0] + ldr r2, _080E8728 +_080E870A: + adds r1, r6, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + subs r0, r1 +_080E8714: + lsls r0, 4 + adds r0, 0x60 +_080E8718: + strh r0, [r5, 0x22] +_080E871A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E8720: .4byte gUnknown_083DBCC4 +_080E8724: .4byte 0x000001a9 +_080E8728: .4byte 0x000001b5 + thumb_func_end sub_80E85F8 + + thumb_func_start sub_80E872C +sub_80E872C: @ 80E872C + push {lr} + adds r2, r0, 0 + ldr r0, _080E875C + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x96 + ldrb r0, [r0] + cmp r0, 0 + beq _080E8756 + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080E8756 + adds r1, 0x9C + ldr r0, [r1] + ldrh r0, [r0, 0x20] + adds r0, 0x20 + strh r0, [r2, 0x20] + ldr r0, [r1] + ldrh r0, [r0, 0x22] + strh r0, [r2, 0x22] +_080E8756: + pop {r0} + bx r0 + .align 2, 0 +_080E875C: .4byte gUnknown_083DB694 + thumb_func_end sub_80E872C + + thumb_func_start sub_80E8760 +sub_80E8760: @ 80E8760 + push {lr} + adds r2, r0, 0 + ldr r0, _080E8780 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x96 + ldrb r0, [r0] + cmp r0, 0 + beq _080E879E + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _080E8784 + cmp r0, 0x2 + beq _080E878E + b _080E879E + .align 2, 0 +_080E8780: .4byte gUnknown_083DB694 +_080E8784: + adds r1, 0x9C + ldr r0, [r1] + ldrh r0, [r0, 0x20] + adds r0, 0x40 + b _080E8796 +_080E878E: + adds r1, 0x9C + ldr r0, [r1] + ldrh r0, [r0, 0x20] + adds r0, 0x15 +_080E8796: + strh r0, [r2, 0x20] + ldr r0, [r1] + ldrh r0, [r0, 0x22] + strh r0, [r2, 0x22] +_080E879E: + pop {r0} + bx r0 + thumb_func_end sub_80E8760 + + thumb_func_start sub_80E87A4 +sub_80E87A4: @ 80E87A4 + push {r4,lr} + lsls r0, 24 + ldr r1, _080E87C8 + ldr r1, [r1] + adds r2, r1, 0 + adds r2, 0xA8 + ldr r3, [r2] + movs r4, 0 + cmp r0, 0 + bne _080E87BA + movs r4, 0x1 +_080E87BA: + movs r1, 0 + strh r4, [r3, 0x30] + ldr r0, [r2] + strh r1, [r0, 0x24] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E87C8: .4byte gUnknown_083DB694 + thumb_func_end sub_80E87A4 + + thumb_func_start sub_80E87CC +sub_80E87CC: @ 80E87CC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r0, _080E8810 + ldr r5, [r0] + adds r0, r5, 0 + adds r0, 0xA8 + ldr r0, [r0] + movs r3, 0 + cmp r4, 0 + bne _080E87E6 + movs r3, 0x1 +_080E87E6: + adds r2, r0, 0 + adds r2, 0x3E + lsls r3, 2 + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + adds r0, r4, 0 + bl sub_80E87A4 + cmp r4, 0 + beq _080E880A + ldr r0, _080E8814 + adds r1, r5, r0 + movs r0, 0x1 + strb r0, [r1] +_080E880A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E8810: .4byte gUnknown_083DB694 +_080E8814: .4byte 0x000001b9 + thumb_func_end sub_80E87CC + + thumb_func_start sub_80E8818 +sub_80E8818: @ 80E8818 + push {lr} + ldr r0, _080E8850 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E8854 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x2E] + strh r0, [r1, 0x30] + ldr r0, _080E8858 + ldr r0, [r0] + adds r0, 0xA8 + str r1, [r0] + ldr r0, _080E885C + str r0, [r1, 0x1C] + movs r0, 0 + bl sub_80E87CC + pop {r0} + bx r0 + .align 2, 0 +_080E8850: .4byte gSpriteTemplate_83DBBFC +_080E8854: .4byte gSprites +_080E8858: .4byte gUnknown_083DB694 +_080E885C: .4byte sub_80E8860 + thumb_func_end sub_80E8818 + + thumb_func_start sub_80E8860 +sub_80E8860: @ 80E8860 + push {r4,r5,lr} + adds r2, r0, 0 + movs r0, 0x30 + ldrsh r4, [r2, r0] + cmp r4, 0 + bne _080E88E4 + ldr r0, _080E88B0 + ldr r3, [r0] + ldr r1, _080E88B4 + adds r0, r3, r1 + ldrb r1, [r0] + cmp r1, 0 + beq _080E88C4 + ldr r5, _080E88B8 + adds r0, r3, r5 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x58 + muls r0, r1 + adds r0, 0x2C + strh r0, [r2, 0x20] + ldr r1, _080E88BC + adds r0, r3, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r5, 0x84 + adds r1, r3, r5 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + subs r0, r1 + lsls r0, 4 + adds r0, 0x60 + strh r0, [r2, 0x22] + ldr r0, _080E88C0 + strh r0, [r2, 0x24] + strh r4, [r2, 0x2E] + b _080E88E4 + .align 2, 0 +_080E88B0: .4byte gUnknown_083DB694 +_080E88B4: .4byte 0x000001b9 +_080E88B8: .4byte 0x000099a5 +_080E88BC: .4byte 0x000099a4 +_080E88C0: .4byte 0x0000fffa +_080E88C4: + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080E88E4 + strh r1, [r2, 0x2E] + ldrh r0, [r2, 0x24] + adds r0, 0x1 + strh r0, [r2, 0x24] + lsls r0, 16 + cmp r0, 0 + ble _080E88E4 + ldr r0, _080E88EC + strh r0, [r2, 0x24] +_080E88E4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E88EC: .4byte 0x0000fffa + thumb_func_end sub_80E8860 + + thumb_func_start sub_80E88F0 +sub_80E88F0: @ 80E88F0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r4, 0 + ldr r0, _080E8950 + mov r8, r0 + ldr r0, [r0] + movs r6, 0x4 + movs r5, 0 + movs r1, 0xB4 + adds r1, r0 + mov r12, r1 + adds r7, r0, 0 + adds r7, 0xAC +_080E890C: + lsls r2, r4, 2 + adds r3, r7, r2 + ldr r1, [r3] + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + ldr r0, [r3] + strh r5, [r0, 0x30] + add r2, r12 + ldr r1, [r2] + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + ldr r0, [r2] + strh r5, [r0, 0x30] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080E890C + mov r1, r8 + ldr r0, [r1] + ldr r1, _080E8954 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8950: .4byte gUnknown_083DB694 +_080E8954: .4byte 0x00009c70 + thumb_func_end sub_80E88F0 + + thumb_func_start sub_80E8958 +sub_80E8958: @ 80E8958 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0 + bne _080E89B4 + movs r0, 0x64 + mov r9, r0 + ldr r0, _080E8998 + ldr r2, [r0] + ldr r3, _080E899C + adds r1, r2, r3 + ldr r3, _080E89A0 + adds r0, r2, r3 + str r0, [r1] + adds r0, r2, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E89A8 + movs r1, 0xDB + lsls r1, 1 + adds r0, r2, r1 + ldrb r0, [r0] + subs r0, 0x4 + ldr r3, _080E89A4 + adds r1, r2, r3 + strb r0, [r1] + b _080E8A00 + .align 2, 0 +_080E8998: .4byte gUnknown_083DB694 +_080E899C: .4byte 0x00009c6c +_080E89A0: .4byte 0x000001b5 +_080E89A4: .4byte 0x00009c71 +_080E89A8: + ldr r1, _080E89B0 + adds r0, r2, r1 + strb r7, [r0] + b _080E8A00 + .align 2, 0 +_080E89B0: .4byte 0x00009c71 +_080E89B4: + movs r3, 0x78 + mov r9, r3 + ldr r0, _080E8A64 + ldr r2, [r0] + ldr r0, _080E8A68 + adds r1, r2, r0 + ldr r3, _080E8A6C + adds r0, r2, r3 + str r0, [r1] + ldr r1, _080E8A70 + adds r0, r2, r1 + ldrb r0, [r0] + subs r0, 0x4 + ldr r3, _080E8A74 + adds r1, r2, r3 + strb r0, [r1] + movs r4, 0 + adds r5, r2, 0 + adds r5, 0xB4 + movs r0, 0x5 + negs r0, r0 + mov r12, r0 + movs r6, 0x1 +_080E89E2: + lsls r3, r4, 2 + adds r3, r5, r3 + ldr r1, [r3] + adds r1, 0x3E + ldrb r2, [r1] + mov r0, r12 + ands r0, r2 + strb r0, [r1] + ldr r0, [r3] + strh r6, [r0, 0x30] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080E89E2 +_080E8A00: + ldr r0, _080E8A64 + ldr r2, [r0] + ldr r3, _080E8A74 + adds r1, r2, r3 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + bge _080E8A14 + movs r0, 0 + strb r0, [r1] +_080E8A14: + movs r4, 0 + adds r6, r2, 0 + adds r6, 0xAC + movs r0, 0x5 + negs r0, r0 + mov r8, r0 +_080E8A20: + lsls r2, r4, 2 + adds r2, r6, r2 + ldr r0, [r2] + mov r1, r9 + strh r1, [r0, 0x20] + ldr r1, [r2] + adds r1, 0x3E + ldrb r0, [r1] + mov r3, r8 + ands r0, r3 + strb r0, [r1] + ldr r0, [r2] + movs r5, 0x1 + strh r5, [r0, 0x30] + ldr r0, [r2] + adds r1, r7, 0 + bl StartSpriteAnim + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080E8A20 + ldr r0, _080E8A64 + ldr r0, [r0] + ldr r1, _080E8A78 + adds r0, r1 + strb r5, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8A64: .4byte gUnknown_083DB694 +_080E8A68: .4byte 0x00009c6c +_080E8A6C: .4byte 0x00009a29 +_080E8A70: .4byte 0x00009a28 +_080E8A74: .4byte 0x00009c71 +_080E8A78: .4byte 0x00009c70 + thumb_func_end sub_80E8958 + + thumb_func_start sub_80E8A7C +sub_80E8A7C: @ 80E8A7C + push {r4-r7,lr} + sub sp, 0x18 + mov r1, sp + ldr r0, _080E8B68 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + movs r5, 0 +_080E8A8E: + lsls r2, r5, 3 + adds r2, r5 + lsls r2, 19 + movs r0, 0xA8 + lsls r0, 15 + adds r2, r0 + asrs r2, 16 + mov r0, sp + movs r1, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080E8B6C + ldr r2, [r0] + lsls r0, r5, 2 + adds r2, 0xAC + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E8B70 + adds r0, r1 + str r0, [r2] + strh r5, [r0, 0x2E] + ldr r3, [r2] + adds r3, 0x3F + movs r0, 0x1 + adds r2, r5, 0 + ands r2, r0 + lsls r2, 1 + ldrb r0, [r3] + movs r4, 0x3 + negs r4, r4 + adds r1, r4, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080E8A8E + mov r0, sp + movs r1, 0x3 + strh r1, [r0] + ldr r0, _080E8B74 + str r0, [sp, 0x8] + movs r5, 0 + movs r7, 0x3F + movs r6, 0x40 +_080E8AF6: + lsls r4, r5, 2 + adds r1, r4, r5 + lsls r1, 19 + movs r0, 0x8E + lsls r0, 16 + adds r1, r0 + asrs r1, 16 + mov r0, sp + movs r2, 0x58 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080E8B6C + ldr r2, [r0] + adds r2, 0xB4 + adds r2, r4 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E8B70 + adds r0, r1 + str r0, [r2] + strh r5, [r0, 0x2E] + ldr r3, [r2] + ldrb r1, [r3, 0x1] + adds r0, r7, 0 + ands r0, r1 + orrs r0, r6 + strb r0, [r3, 0x1] + ldr r3, [r2] + ldrb r1, [r3, 0x3] + adds r0, r7, 0 + ands r0, r1 + orrs r0, r6 + strb r0, [r3, 0x3] + ldr r0, [r2] + lsls r1, r5, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080E8AF6 + movs r0, 0 + bl sub_80E8958 + bl sub_80E88F0 + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8B68: .4byte gSpriteTemplate_83DBD18 +_080E8B6C: .4byte gUnknown_083DB694 +_080E8B70: .4byte gSprites +_080E8B74: .4byte gUnknown_083DBD10 + thumb_func_end sub_80E8A7C + + thumb_func_start sub_80E8B78 +sub_80E8B78: @ 80E8B78 + push {r4,lr} + adds r3, r0, 0 + ldr r0, _080E8BB0 + ldr r1, [r0] + ldr r2, _080E8BB4 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080E8BE8 + movs r2, 0x30 + ldrsh r0, [r3, r2] + cmp r0, 0 + beq _080E8BE8 + movs r2, 0x2E + ldrsh r0, [r3, r2] + cmp r0, 0 + bne _080E8BBC + movs r4, 0 + ldr r2, _080E8BB8 + adds r0, r1, r2 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _080E8BD6 + b _080E8BD4 + .align 2, 0 +_080E8BB0: .4byte gUnknown_083DB694 +_080E8BB4: .4byte 0x00009c70 +_080E8BB8: .4byte 0x00009c6c +_080E8BBC: + movs r4, 0 + ldr r2, _080E8BF0 + adds r0, r1, r2 + ldr r0, [r0] + adds r2, 0x5 + adds r1, r2 + movs r2, 0 + ldrsb r2, [r0, r2] + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r2, r0 + bne _080E8BD6 +_080E8BD4: + movs r4, 0x1 +_080E8BD6: + adds r2, r3, 0 + adds r2, 0x3E + lsls r3, r4, 2 + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] +_080E8BE8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E8BF0: .4byte 0x00009c6c + thumb_func_end sub_80E8B78 + + thumb_func_start sub_80E8BF4 +sub_80E8BF4: @ 80E8BF4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 24 + lsrs r2, r1, 24 + ldr r0, _080E8C28 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x4] + str r1, [sp, 0x8] + ldr r0, _080E8C2C + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0xC] + str r1, [sp, 0x10] + cmp r2, 0x2 + beq _080E8C20 + cmp r2, 0x5 + beq _080E8C30 +_080E8C20: + movs r4, 0x40 + movs r5, 0x28 + b _080E8C34 + .align 2, 0 +_080E8C28: .4byte gUnknown_083DBD30 +_080E8C2C: .4byte gUnknown_083DBD38 +_080E8C30: + movs r4, 0x24 + movs r5, 0x30 +_080E8C34: + cmp r3, 0 + beq _080E8C3C + cmp r3, 0x1 + beq _080E8C40 +_080E8C3C: + movs r0, 0x43 + b _080E8C42 +_080E8C40: + movs r0, 0x44 +_080E8C42: + mov r8, r0 + add r0, sp, 0x4 + bl LoadCompressedObjectPic + add r0, sp, 0xC + bl LoadSpritePalette + ldr r0, _080E8CDC + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x1 + bl CreateSprite + ldr r0, _080E8CE0 + ldrb r0, [r0, 0x8] + movs r1, 0x69 + cmp r0, 0 + bne _080E8C68 + movs r1, 0x64 +_080E8C68: + ldr r7, _080E8CE4 + adds r2, r4, 0 + subs r2, 0xC + movs r6, 0 + str r6, [sp] + adds r0, r1, 0 + adds r1, r7, 0 + adds r3, r5, 0 + bl AddPseudoFieldObject + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080E8C9E + ldr r1, _080E8CE8 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + strb r1, [r0, 0x5] + movs r1, 0x3 + bl StartSpriteAnim +_080E8C9E: + adds r2, r4, 0 + adds r2, 0xC + str r6, [sp] + mov r0, r8 + adds r1, r7, 0 + adds r3, r5, 0 + bl AddPseudoFieldObject + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080E8CD0 + ldr r1, _080E8CE8 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + strb r1, [r0, 0x5] + movs r1, 0x2 + bl StartSpriteAnim +_080E8CD0: + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8CDC: .4byte gSpriteTemplate_83DBD48 +_080E8CE0: .4byte gSaveBlock2 +_080E8CE4: .4byte SpriteCallbackDummy +_080E8CE8: .4byte gSprites + thumb_func_end sub_80E8BF4 + + thumb_func_start sub_80E8CEC +sub_80E8CEC: @ 80E8CEC + push {lr} + ldr r0, _080E8D24 + bl LoadCompressedObjectPic + ldr r0, _080E8D28 + bl LoadSpritePalette + ldr r0, _080E8D2C + movs r1, 0xE0 + movs r2, 0x58 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080E8D3C + ldr r0, _080E8D30 + ldr r2, [r0] + ldr r0, _080E8D34 + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E8D38 + adds r0, r1 + str r0, [r2] + b _080E8D48 + .align 2, 0 +_080E8D24: .4byte gUnknown_083DBD60 +_080E8D28: .4byte gUnknown_083DBD68 +_080E8D2C: .4byte gSpriteTemplate_83DBDE4 +_080E8D30: .4byte gUnknown_083DB694 +_080E8D34: .4byte 0x00009c74 +_080E8D38: .4byte gSprites +_080E8D3C: + ldr r0, _080E8D4C + ldr r0, [r0] + ldr r1, _080E8D50 + adds r0, r1 + movs r1, 0 + str r1, [r0] +_080E8D48: + pop {r0} + bx r0 + .align 2, 0 +_080E8D4C: .4byte gUnknown_083DB694 +_080E8D50: .4byte 0x00009c74 + thumb_func_end sub_80E8CEC + + thumb_func_start sub_80E8D54 +sub_80E8D54: @ 80E8D54 + push {lr} + ldr r0, _080E8D78 + ldr r2, [r0] + ldr r1, _080E8D7C + adds r0, r2, r1 + ldr r1, [r0] + cmp r1, 0 + beq _080E8D88 + adds r0, r2, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E8D80 + adds r0, r1, 0 + movs r1, 0x1 + bl StartSpriteAnim + b _080E8D88 + .align 2, 0 +_080E8D78: .4byte gUnknown_083DB694 +_080E8D7C: .4byte 0x00009c74 +_080E8D80: + adds r0, r1, 0 + movs r1, 0x2 + bl StartSpriteAnim +_080E8D88: + pop {r0} + bx r0 + thumb_func_end sub_80E8D54 + + thumb_func_start sub_80E8D8C +sub_80E8D8C: @ 80E8D8C + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _080E8DB8 + ldr r2, [r0] + ldr r1, _080E8DBC + adds r0, r2, r1 + ldr r1, [r0] + cmp r1, 0 + beq _080E8DD2 + cmp r3, 0 + beq _080E8DCA + adds r0, r2, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E8DC0 + adds r0, r1, 0 + movs r1, 0x3 + bl StartSpriteAnim + b _080E8DD2 + .align 2, 0 +_080E8DB8: .4byte gUnknown_083DB694 +_080E8DBC: .4byte 0x00009c74 +_080E8DC0: + adds r0, r1, 0 + movs r1, 0x4 + bl StartSpriteAnim + b _080E8DD2 +_080E8DCA: + adds r0, r1, 0 + movs r1, 0x5 + bl StartSpriteAnim +_080E8DD2: + pop {r0} + bx r0 + thumb_func_end sub_80E8D8C + + thumb_func_start sub_80E8DD8 +sub_80E8DD8: @ 80E8DD8 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x8 + ldr r0, _080E8F2C + movs r6, 0 + strh r6, [r0] + adds r0, 0x2 + strh r6, [r0] + adds r0, 0x2 + strh r6, [r0] + adds r0, 0x2 + strh r6, [r0] + adds r0, 0x4 + strh r6, [r0] + subs r0, 0x2 + strh r6, [r0] + adds r0, 0x4 + strh r6, [r0] + adds r0, 0x2 + strh r6, [r0] + ldr r1, _080E8F30 + movs r2, 0x8B + lsls r2, 8 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080E8F34 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080E8F38 + ldr r1, _080E8F3C + ldr r1, [r1] + mov r8, r1 + movs r4, 0xE4 + lsls r4, 1 + add r4, r8 + movs r5, 0xA0 + lsls r5, 2 + adds r1, r4, 0 + adds r2, r5, 0 + bl CpuSet + ldr r0, _080E8F40 + movs r1, 0xD9 + lsls r1, 3 + add r1, r8 + bl LZ77UnCompWram + ldr r0, _080E8F44 + ldr r1, _080E8F48 + bl LZ77UnCompVram + ldr r1, _080E8F4C + adds r0, r4, 0 + adds r2, r5, 0 + bl CpuSet + ldr r0, _080E8F50 + movs r1, 0x40 + movs r2, 0x40 + bl LoadPalette + ldr r1, _080E8F54 + ldr r2, _080E8F58 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _080E8F5C + movs r5, 0x80 + lsls r5, 4 + mov r0, sp + strh r6, [r0] + ldr r4, _080E8F60 + str r0, [r4] + str r1, [r4, 0x4] + lsrs r0, r5, 1 + movs r2, 0x81 + lsls r2, 24 + orrs r0, r2 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _080E8F64 + ldr r2, _080E8F68 + str r0, [r4] + str r2, [r4, 0x4] + ldr r0, _080E8F6C + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _080E8F70 + bl LZ77UnCompVram + ldr r0, _080E8F74 + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080E8F78 + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + ldr r1, _080E8F7C + ldr r2, _080E8F80 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _080E8F84 + movs r0, 0 + mov r9, r0 + str r0, [sp, 0x4] + add r0, sp, 0x4 + str r0, [r4] + str r1, [r4, 0x4] + lsrs r5, 2 + movs r0, 0x85 + lsls r0, 24 + orrs r5, r0 + str r5, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _080E8F88 + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080E8F8C + adds r1, r0, 0 + adds r1, 0x7E + ldr r3, _080E8F90 + strh r3, [r1] + subs r1, 0x1C + ldr r2, _080E8F94 + strh r2, [r1] + adds r0, 0x70 + ldr r1, _080E8F98 + strh r1, [r0] + ldr r0, _080E8F9C + adds r4, r0, 0 + adds r4, 0x7E + strh r3, [r4] + adds r3, r0, 0 + adds r3, 0x62 + strh r2, [r3] + adds r0, 0x70 + strh r1, [r0] + movs r1, 0xBC + add r8, r1 + mov r2, r8 + strb r6, [r2] + bl sub_80E8FA4 + bl sub_80E948C + movs r0, 0xA + bl sub_80E9198 + movs r0, 0 + bl sub_80E91D4 + bl sub_80E95A4 + ldr r0, _080E8FA0 + mov r1, r9 + strh r1, [r0] + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E8F2C: .4byte REG_BG0HOFS +_080E8F30: .4byte REG_BG0CNT +_080E8F34: .4byte 0x00000d09 +_080E8F38: .4byte gUnknown_08E945D0 +_080E8F3C: .4byte gUnknown_083DB694 +_080E8F40: .4byte gUnknown_08E953D0 +_080E8F44: .4byte gMenuWordGroupFrame_Gfx +_080E8F48: .4byte 0x06008000 +_080E8F4C: .4byte 0x06006800 +_080E8F50: .4byte gMenuWordGroupFrame1_Pal +_080E8F54: .4byte REG_BG2CNT +_080E8F58: .4byte 0x00000e02 +_080E8F5C: .4byte 0x06007000 +_080E8F60: .4byte 0x040000d4 +_080E8F64: .4byte gUnknown_08E9AB00 +_080E8F68: .4byte 0x06006000 +_080E8F6C: .4byte 0x80000020 +_080E8F70: .4byte gUnknown_08E9AB60 +_080E8F74: .4byte gUnknown_08E9AB40 +_080E8F78: .4byte gUnknown_083DBDFC +_080E8F7C: .4byte REG_BG3CNT +_080E8F80: .4byte 0x00000f0f +_080E8F84: .4byte 0x06007800 +_080E8F88: .4byte gUnknown_083DBE40 +_080E8F8C: .4byte gPlttBufferUnfaded +_080E8F90: .4byte 0x00007fff +_080E8F94: .4byte 0x00006f5b +_080E8F98: .4byte 0x0000739c +_080E8F9C: .4byte gPlttBufferFaded +_080E8FA0: .4byte REG_BLDCNT + thumb_func_end sub_80E8DD8 + + thumb_func_start sub_80E8FA4 +sub_80E8FA4: @ 80E8FA4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + movs r0, 0 + mov r9, r0 + mov r1, sp + adds r1, 0x18 + str r1, [sp, 0x24] + add r2, sp, 0xC + mov r12, r2 +_080E8FBE: + mov r3, r9 + lsls r1, r3, 1 + ldr r4, _080E90F4 + adds r0, r1, r4 + ldrh r2, [r0] + movs r0, 0x1F + ands r0, r2 + lsls r0, 8 + str r0, [sp] + ldr r5, _080E90F8 + adds r1, r5 + ldrh r1, [r1] + movs r0, 0x1F + ands r0, r1 + lsls r0, 8 + str r0, [sp, 0xC] + lsls r2, 16 + lsrs r0, r2, 21 + movs r3, 0x1F + ands r0, r3 + lsls r0, 8 + str r0, [sp, 0x4] + lsls r1, 16 + lsrs r0, r1, 21 + ands r0, r3 + lsls r0, 8 + mov r4, r12 + str r0, [r4, 0x4] + lsrs r2, 26 + ands r2, r3 + lsls r2, 8 + str r2, [sp, 0x8] + lsrs r1, 26 + ands r1, r3 + lsls r1, 8 + str r1, [r4, 0x8] + movs r3, 0 + mov r5, r9 + lsls r5, 3 + mov r10, r5 + mov r0, r9 + adds r0, 0x1 + str r0, [sp, 0x28] + ldr r4, [sp, 0x24] +_080E9016: + lsls r0, r3, 2 + adds r2, r4, r0 + mov r5, r12 + adds r1, r5, r0 + add r0, sp + ldr r1, [r1] + ldr r0, [r0] + subs r0, r1, r0 + cmp r0, 0 + bge _080E902C + adds r0, 0x7 +_080E902C: + asrs r0, 3 + str r0, [r2] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x2 + bls _080E9016 + movs r4, 0 + ldr r0, _080E90FC + ldr r1, [r0] + mov r0, r10 + add r0, r9 + lsls r0, 1 + mov r8, r0 + movs r5, 0x1F + ldr r6, [sp, 0x24] + ldr r0, _080E9100 + adds r7, r1, r0 +_080E9050: + lsls r2, r4, 1 + add r2, r8 + adds r2, r7, r2 + ldr r1, [sp, 0x8] + asrs r1, 8 + ands r1, r5 + lsls r1, 10 + ldr r0, [sp, 0x4] + asrs r0, 8 + ands r0, r5 + lsls r0, 5 + orrs r1, r0 + ldr r0, [sp] + asrs r0, 8 + ands r0, r5 + orrs r1, r0 + strh r1, [r2] + movs r3, 0 + adds r4, 0x1 +_080E9076: + lsls r0, r3, 2 + mov r1, sp + adds r2, r1, r0 + adds r0, r6, r0 + ldr r1, [r2] + ldr r0, [r0] + adds r1, r0 + str r1, [r2] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x2 + bls _080E9076 + lsls r0, r4, 16 + lsrs r4, r0, 16 + cmp r4, 0x7 + bls _080E9050 + ldr r2, _080E90FC + ldr r3, [r2] + mov r0, r10 + add r0, r9 + adds r0, r4 + lsls r0, 1 + ldr r4, _080E9100 + adds r2, r3, r4 + adds r2, r0 + mov r5, r12 + ldr r1, [r5, 0x8] + asrs r1, 8 + movs r0, 0x1F + ands r1, r0 + lsls r1, 10 + ldr r0, [r5, 0x4] + asrs r0, 8 + movs r4, 0x1F + ands r0, r4 + lsls r0, 5 + orrs r1, r0 + ldr r0, [sp, 0xC] + asrs r0, 8 + ands r0, r4 + orrs r1, r0 + strh r1, [r2] + ldr r5, [sp, 0x28] + lsls r0, r5, 16 + lsrs r0, 16 + mov r9, r0 + cmp r0, 0x2 + bhi _080E90DA + b _080E8FBE +_080E90DA: + ldr r0, _080E9104 + adds r1, r3, r0 + movs r0, 0 + strb r0, [r1] + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E90F4: .4byte gMenuWordGroupFrame2_Pal + 0x2 +_080E90F8: .4byte gMenuWordGroupFrame2_Pal + 0x8 +_080E90FC: .4byte gUnknown_083DB694 +_080E9100: .4byte 0x00009c34 +_080E9104: .4byte 0x00009c32 + thumb_func_end sub_80E8FA4 + + thumb_func_start sub_80E9108 +sub_80E9108: @ 80E9108 + push {r4-r7,lr} + lsls r0, 24 + ldr r1, _080E9164 + ldr r2, [r1] + ldr r3, _080E9168 + adds r1, r2, r3 + lsrs r0, 24 + ldrb r3, [r1] + adds r0, r3 + strb r0, [r1] + movs r4, 0 + ldr r0, _080E916C + mov r12, r0 + adds r6, r1, 0 + ldr r3, _080E9170 + adds r5, r2, r3 + ldr r7, _080E9174 +_080E912A: + adds r2, r4, 0 + adds r2, 0x51 + lsls r2, 1 + mov r0, r12 + adds r3, r2, r0 + ldrb r0, [r6] + lsls r0, 1 + lsls r1, r4, 3 + adds r1, r4 + lsls r1, 1 + adds r0, r1 + adds r0, r5, r0 + ldrh r0, [r0] + strh r0, [r3] + adds r2, r7 + ldrb r0, [r6] + lsls r0, 1 + adds r0, r1 + adds r0, r5, r0 + ldrh r0, [r0] + strh r0, [r2] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x2 + bls _080E912A + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E9164: .4byte gUnknown_083DB694 +_080E9168: .4byte 0x00009c32 +_080E916C: .4byte gPlttBufferUnfaded +_080E9170: .4byte 0x00009c34 +_080E9174: .4byte gPlttBufferFaded + thumb_func_end sub_80E9108 + + thumb_func_start sub_80E9178 +sub_80E9178: @ 80E9178 + push {lr} + ldr r0, _080E9190 + ldr r0, [r0] + ldr r1, _080E9194 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + movs r0, 0 + bl sub_80E9108 + pop {r0} + bx r0 + .align 2, 0 +_080E9190: .4byte gUnknown_083DB694 +_080E9194: .4byte 0x00009c32 + thumb_func_end sub_80E9178 + + thumb_func_start sub_80E9198 +sub_80E9198: @ 80E9198 + ldr r1, _080E91A0 + strb r0, [r1] + bx lr + .align 2, 0 +_080E91A0: .4byte gUnknown_03000740 + thumb_func_end sub_80E9198 + + thumb_func_start sub_80E91A4 +sub_80E91A4: @ 80E91A4 + ldr r0, _080E91AC + ldrb r0, [r0] + bx lr + .align 2, 0 +_080E91AC: .4byte gUnknown_03000740 + thumb_func_end sub_80E91A4 + + thumb_func_start sub_80E91B0 +sub_80E91B0: @ 80E91B0 + push {lr} + sub sp, 0x8 + lsls r2, 24 + lsls r1, 27 + lsrs r1, 24 + lsrs r2, 21 + lsls r3, 27 + lsrs r3, 24 + str r3, [sp] + movs r3, 0x1 + str r3, [sp, 0x4] + movs r3, 0xB0 + bl sub_8072AB0 + add sp, 0x8 + pop {r0} + bx r0 + thumb_func_end sub_80E91B0 + + thumb_func_start sub_80E91D4 +sub_80E91D4: @ 80E91D4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r0, _080E91FC + bl BasicInitMenuWindow + cmp r4, 0xA + bne _080E9200 + movs r0, 0x3 + movs r1, 0xE + movs r2, 0x1A + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0xA + bl sub_80E9198 + b _080E935C + .align 2, 0 +_080E91FC: .4byte gWindowConfig_81E6DA8 +_080E9200: + bl sub_80E91A4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA + bne _080E9218 + movs r0, 0x3 + movs r1, 0xE + movs r2, 0x1A + movs r3, 0x13 + bl MenuDrawTextWindow +_080E9218: + adds r0, r4, 0 + bl sub_80E9198 + cmp r4, 0x9 + bls _080E9224 + b _080E935C +_080E9224: + lsls r0, r4, 2 + ldr r1, _080E9230 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E9230: .4byte _080E9234 + .align 2, 0 +_080E9234: + .4byte _080E925C + .4byte _080E9284 + .4byte _080E92AC + .4byte _080E92C4 + .4byte _080E92F0 + .4byte _080E9308 + .4byte _080E9310 + .4byte _080E9318 + .4byte _080E933C + .4byte _080E9350 +_080E925C: + ldr r0, _080E9278 + ldr r4, [r0] + ldr r1, _080E927C + adds r0, r4, r1 + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x2 + bl sub_80E91B0 + ldr r0, _080E9280 + adds r4, r0 + adds r0, r4, 0 + b _080E9326 + .align 2, 0 +_080E9278: .4byte gUnknown_083DB694 +_080E927C: .4byte 0x00009c80 +_080E9280: .4byte 0x00009cc9 +_080E9284: + ldr r0, _080E92A0 + ldr r4, [r0] + ldr r1, _080E92A4 + adds r0, r4, r1 + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x2 + bl sub_80E91B0 + ldr r0, _080E92A8 + adds r4, r0 + adds r0, r4, 0 + b _080E9326 + .align 2, 0 +_080E92A0: .4byte gUnknown_083DB694 +_080E92A4: .4byte 0x00009d12 +_080E92A8: .4byte 0x00009d5b +_080E92AC: + ldr r0, _080E92BC + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x2 + bl sub_80E91B0 + ldr r0, _080E92C0 + b _080E9326 + .align 2, 0 +_080E92BC: .4byte gOtherText_TextDeletedConfirmPage1 +_080E92C0: .4byte gOtherText_TextDeletedConfirmPage2 +_080E92C4: + ldr r0, _080E92D8 + ldr r0, [r0] + ldrb r0, [r0, 0x8] + cmp r0, 0x4 + beq _080E92E0 + cmp r0, 0x9 + bne _080E92E8 + ldr r0, _080E92DC + b _080E933E + .align 2, 0 +_080E92D8: .4byte gUnknown_083DB694 +_080E92DC: .4byte gOtherText_QuitGivingInfo +_080E92E0: + ldr r0, _080E92E4 + b _080E933E + .align 2, 0 +_080E92E4: .4byte gOtherText_StopGivingMail +_080E92E8: + ldr r0, _080E92EC + b _080E933E + .align 2, 0 +_080E92EC: .4byte gOtherText_QuitEditing +_080E92F0: + ldr r0, _080E9300 + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x2 + bl sub_80E91B0 + ldr r0, _080E9304 + b _080E9326 + .align 2, 0 +_080E9300: .4byte gOtherText_EditedTextNoSavePage1 +_080E9304: .4byte gOtherText_EditedTextNoSavePage2 +_080E9308: + ldr r0, _080E930C + b _080E933E + .align 2, 0 +_080E930C: .4byte gOtherText_EnterAPhraseOrWord +_080E9310: + ldr r0, _080E9314 + b _080E933E + .align 2, 0 +_080E9314: .4byte gOtherText_TextNoDelete +_080E9318: + ldr r0, _080E9334 + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x2 + bl sub_80E91B0 + ldr r0, _080E9338 +_080E9326: + movs r1, 0x4 + movs r2, 0x11 + movs r3, 0x2 + bl sub_80E91B0 + b _080E935C + .align 2, 0 +_080E9334: .4byte gOtherText_OnlyOnePhrase +_080E9338: .4byte gOtherText_OriginalSongRestored +_080E933C: + ldr r0, _080E934C +_080E933E: + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x4 + bl sub_80E91B0 + b _080E935C + .align 2, 0 +_080E934C: .4byte gOtherText_TrendyAlready +_080E9350: + ldr r0, _080E9364 + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x4 + bl sub_80E91B0 +_080E935C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E9364: .4byte gOtherText_CombineTwoPhrases + thumb_func_end sub_80E91D4 + + thumb_func_start sub_80E9368 +sub_80E9368: @ 80E9368 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xD + bhi _080E93F8 + lsls r0, 2 + ldr r1, _080E937C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E937C: .4byte _080E9380 + .align 2, 0 +_080E9380: + .4byte _080E93B8 + .4byte _080E93C0 + .4byte _080E93C8 + .4byte _080E93D0 + .4byte _080E93F8 + .4byte _080E93E8 + .4byte _080E93D8 + .4byte _080E93E8 + .4byte _080E93E8 + .4byte _080E93E0 + .4byte _080E93E8 + .4byte _080E93E8 + .4byte _080E93E8 + .4byte _080E93F0 +_080E93B8: + ldr r4, _080E93BC + b _080E93FA + .align 2, 0 +_080E93BC: .4byte gOtherText_Profile +_080E93C0: + ldr r4, _080E93C4 + b _080E93FA + .align 2, 0 +_080E93C4: .4byte gOtherText_AtBattleStart +_080E93C8: + ldr r4, _080E93CC + b _080E93FA + .align 2, 0 +_080E93CC: .4byte gOtherText_UponWinningBattle +_080E93D0: + ldr r4, _080E93D4 + b _080E93FA + .align 2, 0 +_080E93D4: .4byte gOtherText_UponLosingBattle +_080E93D8: + ldr r4, _080E93DC + b _080E93FA + .align 2, 0 +_080E93DC: .4byte gOtherText_TheBardsSong +_080E93E0: + ldr r4, _080E93E4 + b _080E93FA + .align 2, 0 +_080E93E4: .4byte gOtherText_WhatsHipHappening +_080E93E8: + ldr r4, _080E93EC + b _080E93FA + .align 2, 0 +_080E93EC: .4byte gOtherText_Interview +_080E93F0: + ldr r4, _080E93F4 + b _080E93FA + .align 2, 0 +_080E93F4: .4byte gOtherText_GoodSaying +_080E93F8: + movs r4, 0 +_080E93FA: + ldr r0, _080E943C + bl BasicInitMenuWindow + ldr r0, _080E9440 + ldr r2, [r0] + ldr r0, _080E9444 + adds r5, r2, r0 + movs r3, 0xFC + strb r3, [r5] + adds r0, 0x1 + adds r1, r2, r0 + movs r0, 0x5 + strb r0, [r1] + ldr r0, _080E9448 + adds r1, r2, r0 + movs r0, 0x1 + strb r0, [r1] + cmp r4, 0 + beq _080E9450 + ldr r1, _080E944C + adds r0, r2, r1 + adds r1, r4, 0 + movs r2, 0xF0 + movs r3, 0x2 + bl sub_8072C74 + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + bl MenuPrint + b _080E9476 + .align 2, 0 +_080E943C: .4byte gWindowConfig_81E6D8C +_080E9440: .4byte gUnknown_083DB694 +_080E9444: .4byte 0x00009f8e +_080E9448: .4byte 0x00009f90 +_080E944C: .4byte 0x00009f91 +_080E9450: + ldr r0, _080E9484 + adds r1, r2, r0 + strb r3, [r1] + movs r0, 0x11 + strb r0, [r1, 0x1] + movs r0, 0x10 + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + bl MenuPrint + adds r0, r5, 0 + movs r1, 0x1C + movs r2, 0 + bl MenuPrint +_080E9476: + ldr r0, _080E9488 + bl BasicInitMenuWindow + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E9484: .4byte 0x00009f91 +_080E9488: .4byte gWindowConfig_81E6DA8 + thumb_func_end sub_80E9368 + + thumb_func_start sub_80E948C +sub_80E948C: @ 80E948C + push {lr} + sub sp, 0x10 + ldr r0, _080E94A8 + ldr r0, [r0] + ldrb r0, [r0, 0x9] + cmp r0, 0x5 + bls _080E949C + b _080E9594 +_080E949C: + lsls r0, 2 + ldr r1, _080E94AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E94A8: .4byte gUnknown_083DB694 +_080E94AC: .4byte _080E94B0 + .align 2, 0 +_080E94B0: + .4byte _080E9508 + .4byte _080E9530 + .4byte _080E9554 + .4byte _080E9578 + .4byte _080E94C8 + .4byte _080E94E8 +_080E94C8: + ldr r0, _080E94E0 + ldr r3, _080E94E4 + movs r1, 0 + str r1, [sp] + movs r1, 0x1A + str r1, [sp, 0x4] + movs r1, 0x18 + str r1, [sp, 0x8] + movs r1, 0x6 + str r1, [sp, 0xC] + movs r1, 0x3 + b _080E9568 + .align 2, 0 +_080E94E0: .4byte 0x06006800 +_080E94E4: .4byte gUnknown_08E94AD0 +_080E94E8: + ldr r0, _080E9500 + ldr r3, _080E9504 + movs r1, 0 + str r1, [sp] + movs r1, 0x12 + str r1, [sp, 0x4] + movs r1, 0xD + str r1, [sp, 0x8] + movs r1, 0x8 + str r1, [sp, 0xC] + movs r1, 0xE + b _080E951E + .align 2, 0 +_080E9500: .4byte 0x06006800 +_080E9504: .4byte gUnknown_08E94AD0 +_080E9508: + ldr r0, _080E9528 + ldr r3, _080E952C + movs r1, 0 + str r1, [sp] + movs r1, 0xA + str r1, [sp, 0x4] + movs r1, 0x1A + str r1, [sp, 0x8] + movs r1, 0x8 + str r1, [sp, 0xC] + movs r1, 0x2 +_080E951E: + movs r2, 0x2 + bl sub_809D104 + b _080E9594 + .align 2, 0 +_080E9528: .4byte 0x06006800 +_080E952C: .4byte gUnknown_08E94AD0 +_080E9530: + ldr r0, _080E954C + ldr r3, _080E9550 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0x1A + str r1, [sp, 0x8] + movs r1, 0xA + str r1, [sp, 0xC] + movs r1, 0x2 + movs r2, 0 + bl sub_809D104 + b _080E9594 + .align 2, 0 +_080E954C: .4byte 0x06006800 +_080E9550: .4byte gUnknown_08E94AD0 +_080E9554: + ldr r0, _080E9570 + ldr r3, _080E9574 + movs r2, 0xD + str r2, [sp] + movs r1, 0x12 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + movs r1, 0x4 + str r1, [sp, 0xC] + movs r1, 0xE +_080E9568: + movs r2, 0x3 + bl sub_809D104 + b _080E9594 + .align 2, 0 +_080E9570: .4byte 0x06006800 +_080E9574: .4byte gUnknown_08E94AD0 +_080E9578: + ldr r0, _080E959C + ldr r3, _080E95A0 + movs r1, 0 + str r1, [sp] + movs r1, 0x20 + str r1, [sp, 0x4] + movs r1, 0x18 + str r1, [sp, 0x8] + movs r1, 0x4 + str r1, [sp, 0xC] + movs r1, 0x3 + movs r2, 0x2 + bl sub_809D104 +_080E9594: + add sp, 0x10 + pop {r0} + bx r0 + .align 2, 0 +_080E959C: .4byte 0x06006800 +_080E95A0: .4byte gUnknown_08E94AD0 + thumb_func_end sub_80E948C + + thumb_func_start sub_80E95A4 +sub_80E95A4: @ 80E95A4 + push {lr} + ldr r0, _080E95C0 + bl BasicInitMenuWindow + ldr r0, _080E95C4 + ldr r0, [r0] + ldrb r0, [r0, 0x9] + cmp r0, 0x5 + bhi _080E9612 + lsls r0, 2 + ldr r1, _080E95C8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E95C0: .4byte gWindowConfig_81E6D8C +_080E95C4: .4byte gUnknown_083DB694 +_080E95C8: .4byte _080E95CC + .align 2, 0 +_080E95CC: + .4byte _080E95F2 + .4byte _080E95F6 + .4byte _080E9600 + .4byte _080E960A + .4byte _080E95E4 + .4byte _080E95EE +_080E95E4: + movs r0, 0x4 + movs r1, 0x6 + bl sub_80E9620 + b _080E9612 +_080E95EE: + movs r0, 0x2 + b _080E9602 +_080E95F2: + movs r0, 0x3 + b _080E95F8 +_080E95F6: + movs r0, 0 +_080E95F8: + movs r1, 0x5 + bl sub_80E9620 + b _080E9612 +_080E9600: + movs r0, 0x4 +_080E9602: + movs r1, 0x11 + bl sub_80E9620 + b _080E9612 +_080E960A: + movs r0, 0x3 + movs r1, 0x6 + bl sub_80E9620 +_080E9612: + ldr r0, _080E961C + bl BasicInitMenuWindow + pop {r0} + bx r0 + .align 2, 0 +_080E961C: .4byte gWindowConfig_81E6DA8 + thumb_func_end sub_80E95A4 + + thumb_func_start sub_80E9620 +sub_80E9620: @ 80E9620 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + lsls r0, 16 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x14] + movs r1, 0 + mov r10, r1 + lsrs r7, r0, 16 + mov r9, r1 + ldr r0, _080E9644 + ldr r0, [r0] + b _080E971A + .align 2, 0 +_080E9644: .4byte gUnknown_083DB694 +_080E9648: + ldr r6, [sp, 0x14] + movs r2, 0 + mov r8, r2 + adds r0, r7, 0x2 + str r0, [sp, 0x1C] + mov r1, r9 + adds r1, 0x1 + str r1, [sp, 0x18] + b _080E96E4 +_080E965A: + mov r2, r10 + lsls r0, r2, 1 + adds r1, r5, 0 + adds r1, 0xC + adds r1, r0 + ldrh r0, [r1] + ldr r2, _080E9690 + cmp r0, r2 + bne _080E969C + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + movs r1, 0x9 + str r1, [sp, 0x8] + movs r0, 0x2 + str r0, [sp, 0xC] + str r1, [sp, 0x10] + ldr r0, _080E9694 + adds r1, r6, 0 + adds r2, r7, 0 + ldr r3, _080E9698 + bl sub_8095C8C + adds r0, r6, 0 + adds r0, 0xB + b _080E96CC + .align 2, 0 +_080E9690: .4byte 0x0000ffff +_080E9694: .4byte 0x06007000 +_080E9698: .4byte gUnknown_083DBE1C +_080E969C: + ldr r0, _080E9738 + adds r4, r5, r0 + ldrh r1, [r1] + adds r0, r4, 0 + movs r2, 0xB + bl sub_80EB218 + lsls r1, r6, 24 + lsrs r1, 24 + lsls r2, r7, 24 + lsrs r2, 24 + adds r0, r4, 0 + bl MenuPrint + mov r1, r9 + lsls r0, r1, 1 + add r0, r8 + adds r1, r5, 0 + adds r1, 0x8C + adds r1, r0 + adds r0, r6, 0 + adds r0, 0xB + ldrb r1, [r1] + adds r0, r1 +_080E96CC: + lsls r0, 16 + lsrs r6, r0, 16 + mov r0, r10 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 +_080E96E4: + ldr r0, _080E973C + ldr r5, [r0] + adds r0, r5, 0 + adds r0, 0x83 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r8, r0 + bge _080E970A + ldrb r2, [r5, 0xA] + cmp r10, r2 + bcc _080E965A + lsls r1, r6, 24 + lsrs r1, 24 + lsls r2, r7, 24 + lsrs r2, 24 + ldr r0, _080E9740 + bl MenuPrint +_080E970A: + ldr r1, [sp, 0x1C] + lsls r0, r1, 16 + lsrs r7, r0, 16 + ldr r2, [sp, 0x18] + lsls r0, r2, 16 + lsrs r0, 16 + mov r9, r0 + adds r0, r5, 0 +_080E971A: + adds r0, 0x84 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r9, r0 + blt _080E9648 + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E9738: .4byte 0x00009e14 +_080E973C: .4byte gUnknown_083DB694 +_080E9740: .4byte gUnknown_083DBEA8 + thumb_func_end sub_80E9620 + + thumb_func_start sub_80E9744 +sub_80E9744: @ 80E9744 + push {lr} + ldr r0, _080E9760 + bl BasicInitMenuWindow + ldr r0, _080E9764 + ldr r0, [r0] + ldrb r0, [r0, 0x9] + cmp r0, 0x5 + bhi _080E97B2 + lsls r0, 2 + ldr r1, _080E9768 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E9760: .4byte gWindowConfig_81E6D8C +_080E9764: .4byte gUnknown_083DB694 +_080E9768: .4byte _080E976C + .align 2, 0 +_080E976C: + .4byte _080E9792 + .4byte _080E9796 + .4byte _080E97A0 + .4byte _080E97AA + .4byte _080E9784 + .4byte _080E978E +_080E9784: + movs r0, 0x4 + movs r1, 0x6 + bl sub_80E97C0 + b _080E97B2 +_080E978E: + movs r0, 0x2 + b _080E97A2 +_080E9792: + movs r0, 0x3 + b _080E9798 +_080E9796: + movs r0, 0 +_080E9798: + movs r1, 0x5 + bl sub_80E97C0 + b _080E97B2 +_080E97A0: + movs r0, 0x4 +_080E97A2: + movs r1, 0x11 + bl sub_80E97C0 + b _080E97B2 +_080E97AA: + movs r0, 0x3 + movs r1, 0x6 + bl sub_80E97C0 +_080E97B2: + ldr r0, _080E97BC + bl BasicInitMenuWindow + pop {r0} + bx r0 + .align 2, 0 +_080E97BC: .4byte gWindowConfig_81E6DA8 + thumb_func_end sub_80E9744 + + thumb_func_start sub_80E97C0 +sub_80E97C0: @ 80E97C0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + movs r7, 0 + movs r3, 0 + ldr r1, _080E98B8 + ldr r0, [r1] + adds r0, 0x84 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r3, r0 + bge _080E98A6 +_080E97EA: + ldr r1, [r1] + ldr r0, _080E98BC + adds r2, r1, r0 + movs r6, 0 + adds r0, r1, 0 + adds r0, 0x83 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldr r4, [sp] + lsls r4, 24 + mov r8, r4 + lsls r4, r5, 24 + mov r9, r4 + adds r5, 0x2 + mov r10, r5 + adds r3, 0x1 + str r3, [sp, 0x4] + cmp r6, r0 + bge _080E985E + ldrb r1, [r1, 0xA] + cmp r7, r1 + bcs _080E985E + ldr r0, _080E98B8 + ldr r4, [r0] + ldr r5, _080E98C0 +_080E981E: + lsls r0, r7, 1 + adds r1, r4, 0 + adds r1, 0xC + adds r1, r0 + ldrh r0, [r1] + cmp r0, r5 + beq _080E983E + adds r1, r0, 0 + adds r0, r2, 0 + movs r2, 0 + bl sub_80EB218 + adds r2, r0, 0 + movs r0, 0 + strb r0, [r2] + adds r2, 0x1 +_080E983E: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r4, 0 + adds r0, 0x83 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r6, r0 + bge _080E985E + ldrb r0, [r4, 0xA] + cmp r7, r0 + bcc _080E981E +_080E985E: + ldr r1, _080E98B8 + ldr r4, [r1] + adds r0, r4, 0 + adds r0, 0x83 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0xB + muls r1, r0 + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x13 + strb r0, [r2, 0x1] + lsls r1, 3 + strb r1, [r2, 0x2] + movs r0, 0xFF + strb r0, [r2, 0x3] + ldr r2, _080E98BC + adds r0, r4, r2 + mov r3, r8 + lsrs r1, r3, 24 + mov r3, r9 + lsrs r2, r3, 24 + bl MenuPrint + mov r1, r10 + lsls r0, r1, 16 + lsrs r5, r0, 16 + ldr r2, [sp, 0x4] + lsls r0, r2, 24 + lsrs r3, r0, 24 + ldr r1, _080E98B8 + adds r4, 0x84 + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r3, r0 + blt _080E97EA +_080E98A6: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E98B8: .4byte gUnknown_083DB694 +_080E98BC: .4byte 0x00009e6e +_080E98C0: .4byte 0x0000ffff + thumb_func_end sub_80E97C0 + + thumb_func_start sub_80E98C4 +sub_80E98C4: @ 80E98C4 + push {lr} + ldr r0, _080E98E0 + bl BasicInitMenuWindow + ldr r0, _080E98E4 + ldr r0, [r0] + ldrb r0, [r0, 0x9] + cmp r0, 0x5 + bhi _080E9936 + lsls r0, 2 + ldr r1, _080E98E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E98E0: .4byte gWindowConfig_81E6D8C +_080E98E4: .4byte gUnknown_083DB694 +_080E98E8: .4byte _080E98EC + .align 2, 0 +_080E98EC: + .4byte _080E990A + .4byte _080E9910 + .4byte _080E9916 + .4byte _080E991A + .4byte _080E9904 + .4byte _080E990A +_080E9904: + movs r1, 0x4 + movs r3, 0x2 + b _080E991E +_080E990A: + movs r1, 0x3 + movs r3, 0x2 + b _080E991E +_080E9910: + movs r1, 0x1 + movs r3, 0x3 + b _080E991E +_080E9916: + movs r1, 0x4 + b _080E991C +_080E991A: + movs r1, 0x3 +_080E991C: + movs r3, 0x1 +_080E991E: + lsls r3, 1 + adds r3, r1, r3 + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x2 + movs r2, 0x1B + bl MenuFillWindowRectWithBlankTile + ldr r0, _080E993C + bl BasicInitMenuWindow +_080E9936: + pop {r0} + bx r0 + .align 2, 0 +_080E993C: .4byte gWindowConfig_81E6DA8 + thumb_func_end sub_80E98C4 + + thumb_func_start sub_80E9940 +sub_80E9940: @ 80E9940 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r5, r1, 24 + lsrs r5, 24 + movs r4, 0x7 + ands r4, r5 + lsls r3, r4, 1 + adds r1, r3, 0 + adds r3, 0x1 + movs r0, 0x2 + movs r2, 0x1F + bl MenuFillWindowRectWithBlankTile + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_80E9A7C + lsls r4, 1 + adds r0, r6, 0 + movs r1, 0x2 + adds r2, r4, 0 + bl sub_80E9A60 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E9940 + + thumb_func_start sub_80E9974 +sub_80E9974: @ 80E9974 + push {r4-r6,lr} + ldr r0, _080E99C4 + bl BasicInitMenuWindow + ldr r0, _080E99C8 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E99D4 + ldr r1, _080E99CC + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r1, r0, 16 + lsrs r4, r1, 16 + adds r0, 0x4 + cmp r4, r0 + bge _080E9A08 + adds r5, r2, 0 + ldr r2, _080E99CC + adds r6, r5, r2 +_080E99A4: + lsls r1, r4, 24 + lsrs r1, 24 + ldr r2, _080E99D0 + adds r0, r5, r2 + bl sub_80E9940 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0 + ldrsb r0, [r6, r0] + adds r0, 0x4 + cmp r4, r0 + blt _080E99A4 + b _080E9A08 + .align 2, 0 +_080E99C4: .4byte gWindowConfig_81E6D54 +_080E99C8: .4byte gUnknown_083DB694 +_080E99CC: .4byte 0x000001b5 +_080E99D0: .4byte 0x00009dc9 +_080E99D4: + bl sub_80E9AD4 + ldr r4, _080E9A10 + adds r0, r4, 0 + movs r1, 0x2 + movs r2, 0 + bl sub_80E9A60 + adds r0, r4, 0 + adds r0, 0x20 + movs r1, 0x2 + movs r2, 0x2 + bl sub_80E9A60 + adds r0, r4, 0 + adds r0, 0x40 + movs r1, 0x2 + movs r2, 0x4 + bl sub_80E9A60 + adds r4, 0x60 + adds r0, r4, 0 + movs r1, 0x2 + movs r2, 0x6 + bl sub_80E9A60 +_080E9A08: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E9A10: .4byte gUnknown_083DBEAC + thumb_func_end sub_80E9974 + + thumb_func_start sub_80E9A14 +sub_80E9A14: @ 80E9A14 + push {lr} + bl sub_80E9A4C + ldr r0, _080E9A44 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E9A40 + movs r0, 0xDD + lsls r0, 1 + adds r2, r1, r0 + ldr r3, _080E9A48 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 4 + ldrh r1, [r2] + adds r0, r1 + strh r0, [r2] +_080E9A40: + pop {r0} + bx r0 + .align 2, 0 +_080E9A44: .4byte gUnknown_083DB694 +_080E9A48: .4byte 0x000001b5 + thumb_func_end sub_80E9A14 + + thumb_func_start sub_80E9A4C +sub_80E9A4C: @ 80E9A4C + ldr r0, _080E9A5C + ldr r0, [r0] + movs r2, 0xDD + lsls r2, 1 + adds r1, r0, r2 + movs r0, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_080E9A5C: .4byte gUnknown_083DB694 + thumb_func_end sub_80E9A4C + + thumb_func_start sub_80E9A60 +sub_80E9A60: @ 80E9A60 + push {lr} + lsls r2, 16 + movs r3, 0xF0 + lsls r3, 12 + ands r3, r2 + lsls r1, 24 + lsrs r1, 24 + lsrs r3, 16 + adds r2, r3, 0 + bl MenuPrint + pop {r0} + bx r0 + thumb_func_end sub_80E9A60 + + thumb_func_start sub_80E9A7C +sub_80E9A7C: @ 80E9A7C + push {r4-r7,lr} + adds r2, r0, 0 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r0, r7, 17 + lsrs r5, r0, 16 + movs r4, 0 + ldr r0, _080E9AD0 + ldr r6, [r0] +_080E9A8E: + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x12 + strb r0, [r2, 0x1] + movs r0, 0x58 + muls r0, r4 + strb r0, [r2, 0x2] + adds r2, 0x3 + lsls r1, r7, 1 + adds r1, r4, r1 + adds r0, r6, 0 + adds r0, 0x2A + adds r0, r1 + ldrb r1, [r0] + adds r0, r2, 0 + movs r2, 0xB + bl sub_80EAD64 + adds r2, r0, 0 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldrh r0, [r6, 0x28] + cmp r5, r0 + bcs _080E9ACA + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080E9A8E +_080E9ACA: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E9AD0: .4byte gUnknown_083DB694 + thumb_func_end sub_80E9A7C + + thumb_func_start sub_80E9AD4 +sub_80E9AD4: @ 80E9AD4 + push {r4,lr} + ldr r0, _080E9AF4 + bl BasicInitMenuWindow + movs r4, 0 +_080E9ADE: + adds r0, r4, 0 + bl sub_80E9C74 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xF + bls _080E9ADE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E9AF4: .4byte gWindowConfig_81E6D54 + thumb_func_end sub_80E9AD4 + + thumb_func_start sub_80E9AF8 +sub_80E9AF8: @ 80E9AF8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 16 + lsrs r7, r0, 16 + adds r0, r7, 0 + bl sub_80E9C74 + ldr r4, _080E9B7C + ldr r5, [r4] + ldr r0, _080E9B80 + adds r0, r5 + mov r8, r0 + movs r0, 0xFC + mov r1, r8 + strb r0, [r1] + movs r0, 0x11 + strb r0, [r1, 0x1] + movs r0, 0x10 + strb r0, [r1, 0x2] + ldr r2, _080E9B84 + adds r2, r5 + mov r8, r2 + adds r0, r5, 0 + adds r0, 0x7D + ldrb r0, [r0] + cmp r0, 0 + beq _080E9BF4 + movs r6, 0 + ldr r3, _080E9B88 + adds r0, r5, r3 + adds r0, r7 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r6, r0 + blt _080E9B4A + b _080E9C52 +_080E9B4A: + lsls r0, r7, 2 + mov r9, r0 + ldr r1, _080E9B8C + adds r1, r5, r1 + str r1, [sp] + lsls r2, r7, 17 + mov r10, r2 +_080E9B58: + lsls r4, r6, 1 + mov r3, r9 + adds r0, r4, r3 + ldr r1, [sp] + adds r0, r1, r0 + ldrh r0, [r0] + bl sub_80EB2D4 + lsls r0, 16 + lsrs r0, 16 + adds r5, r4, 0 + cmp r0, 0x7 + bne _080E9B94 + ldr r0, _080E9B90 + bl BasicInitMenuWindow + b _080E9B9A + .align 2, 0 +_080E9B7C: .4byte gUnknown_083DB694 +_080E9B80: .4byte 0x00009e14 +_080E9B84: .4byte 0x00009e17 +_080E9B88: .4byte 0x000099a6 +_080E9B8C: .4byte 0x00009a2a +_080E9B90: .4byte gWindowConfig_81E6D70 +_080E9B94: + ldr r0, _080E9BE0 + bl BasicInitMenuWindow +_080E9B9A: + ldr r2, _080E9BE4 + ldr r4, [r2] + mov r3, r9 + adds r1, r5, r3 + ldr r2, _080E9BE8 + adds r0, r4, r2 + adds r0, r1 + ldrh r1, [r0] + mov r0, r8 + movs r2, 0x9 + bl sub_80EB218 + ldr r3, _080E9BEC + adds r0, r4, r3 + movs r1, 0xB + muls r1, r6 + adds r1, 0x4 + lsls r1, 16 + lsrs r1, 16 + mov r3, r10 + lsrs r2, r3, 16 + bl sub_80E9A60 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _080E9BF0 + adds r4, r0 + adds r4, r7 + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r6, r0 + blt _080E9B58 + b _080E9C52 + .align 2, 0 +_080E9BE0: .4byte gWindowConfig_81E6D54 +_080E9BE4: .4byte gUnknown_083DB694 +_080E9BE8: .4byte 0x00009a2a +_080E9BEC: .4byte 0x00009e14 +_080E9BF0: .4byte 0x000099a6 +_080E9BF4: + ldr r0, _080E9C64 + bl BasicInitMenuWindow + movs r6, 0 + ldr r1, _080E9C68 + adds r0, r5, r1 + adds r0, r7 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r6, r0 + bge _080E9C52 + adds r4, r5, 0 + adds r0, r4, r1 + adds r0, r7 + mov r9, r0 + lsls r5, r7, 17 +_080E9C16: + lsls r1, r6, 1 + lsls r0, r7, 2 + adds r1, r0 + ldr r2, _080E9C6C + adds r0, r4, r2 + adds r0, r1 + ldrh r1, [r0] + mov r0, r8 + movs r2, 0x9 + bl sub_80EB218 + movs r0, 0xB + adds r1, r6, 0 + muls r1, r0 + adds r1, 0x4 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _080E9C70 + adds r0, r4, r3 + lsrs r2, r5, 16 + bl sub_80E9A60 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + mov r1, r9 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r6, r0 + blt _080E9C16 +_080E9C52: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E9C64: .4byte gWindowConfig_81E6D54 +_080E9C68: .4byte 0x000099a6 +_080E9C6C: .4byte 0x00009a2a +_080E9C70: .4byte 0x00009e14 + thumb_func_end sub_80E9AF8 + + thumb_func_start sub_80E9C74 +sub_80E9C74: @ 80E9C74 + push {lr} + lsls r0, 16 + movs r1, 0xE0 + lsls r1, 11 + ands r1, r0 + lsrs r1, 16 + lsls r3, r1, 1 + adds r1, r3, 0 + adds r3, 0x1 + movs r0, 0 + movs r2, 0x1D + bl MenuFillWindowRectWithBlankTile + pop {r0} + bx r0 + thumb_func_end sub_80E9C74 + + thumb_func_start sub_80E9C94 +sub_80E9C94: @ 80E9C94 + push {r4-r6,lr} + ldr r0, _080E9CAC + ldr r0, [r0] + ldr r2, _080E9CB0 + adds r1, r0, r2 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0x3 + bgt _080E9CB4 + lsls r0, 16 + lsrs r0, 16 + b _080E9CB6 + .align 2, 0 +_080E9CAC: .4byte gUnknown_083DB694 +_080E9CB0: .4byte 0x00009a28 +_080E9CB4: + movs r0, 0x4 +_080E9CB6: + adds r5, r0, 0 + movs r4, 0 + cmp r4, r5 + bcs _080E9CF4 + ldr r0, _080E9CE0 + ldr r0, [r0] + ldr r1, _080E9CE4 + adds r6, r0, r1 +_080E9CC6: + movs r0, 0 + ldrsb r0, [r6, r0] + adds r0, r4, r0 + lsls r0, 16 + lsrs r0, 16 + bl sub_80E9AF8 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r5 + bcc _080E9CC6 + b _080E9CF4 + .align 2, 0 +_080E9CE0: .4byte gUnknown_083DB694 +_080E9CE4: .4byte 0x00009a29 +_080E9CE8: + adds r0, r4, 0 + adds r1, r0, 0x1 + lsls r1, 16 + lsrs r4, r1, 16 + bl sub_80E9C74 +_080E9CF4: + cmp r4, 0x3 + bls _080E9CE8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E9C94 + + thumb_func_start sub_80E9D00 +sub_80E9D00: @ 80E9D00 + push {r4-r6,lr} + ldr r0, _080E9D28 + ldr r2, [r0] + movs r0, 0xE0 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + ble _080E9D30 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r1, _080E9D2C + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, 0x4 + b _080E9D46 + .align 2, 0 +_080E9D28: .4byte gUnknown_083DB694 +_080E9D2C: .4byte 0x00009a29 +_080E9D30: + movs r0, 0 + ldrsb r0, [r1, r0] + negs r0, r0 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r1, _080E9D74 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + subs r0, r4 +_080E9D46: + lsls r0, 16 + lsrs r5, r0, 16 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _080E9D78 + cmp r4, r0 + beq _080E9D6E + adds r6, r0, 0 +_080E9D58: + adds r0, r5, 0 + adds r1, r0, 0x1 + lsls r1, 16 + lsrs r5, r1, 16 + bl sub_80E9AF8 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r6 + bne _080E9D58 +_080E9D6E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E9D74: .4byte 0x00009a29 +_080E9D78: .4byte 0x0000ffff + thumb_func_end sub_80E9D00 + + thumb_func_start sub_80E9D7C +sub_80E9D7C: @ 80E9D7C + push {r4-r7,lr} + ldr r0, _080E9DAC + bl BasicInitMenuWindow + ldr r0, _080E9DB0 + ldr r2, [r0] + movs r0, 0xE0 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + bge _080E9DB8 + negs r0, r0 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, _080E9DB4 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + subs r0, r6 + b _080E9DCC + .align 2, 0 +_080E9DAC: .4byte gWindowConfig_81E6D54 +_080E9DB0: .4byte gUnknown_083DB694 +_080E9DB4: .4byte 0x000001b5 +_080E9DB8: + movs r0, 0 + ldrsb r0, [r1, r0] + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, _080E9DFC + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, 0x4 +_080E9DCC: + lsls r0, 16 + lsrs r4, r0, 16 + movs r5, 0 + cmp r5, r6 + bcs _080E9DF6 + ldr r0, _080E9E00 + ldr r7, [r0] +_080E9DDA: + lsls r1, r4, 24 + lsrs r1, 24 + ldr r2, _080E9E04 + adds r0, r7, r2 + bl sub_80E9940 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r6 + bcc _080E9DDA +_080E9DF6: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E9DFC: .4byte 0x000001b5 +_080E9E00: .4byte gUnknown_083DB694 +_080E9E04: .4byte 0x00009dc9 + thumb_func_end sub_80E9D7C + + thumb_func_start sub_80E9E08 +sub_80E9E08: @ 80E9E08 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E9E4C + ldr r3, [r0] + movs r0, 0xDD + lsls r0, 1 + adds r1, r3, r0 + movs r5, 0xE0 + lsls r5, 1 + adds r2, r3, r5 + movs r0, 0 + ldrsb r0, [r2, r0] + lsls r0, 4 + ldrh r1, [r1] + adds r0, r1 + movs r1, 0x7F + ands r0, r1 + subs r5, 0x4 + adds r1, r3, r5 + strh r0, [r1] + adds r1, r4, 0 + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0 + bge _080E9E3E + negs r1, r4 +_080E9E3E: + ldr r2, _080E9E50 + adds r0, r3, r2 + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E9E4C: .4byte gUnknown_083DB694 +_080E9E50: .4byte 0x000001bf + thumb_func_end sub_80E9E08 + + thumb_func_start sub_80E9E54 +sub_80E9E54: @ 80E9E54 + push {r4,lr} + ldr r0, _080E9E8C + ldr r2, [r0] + movs r0, 0xDD + lsls r0, 1 + adds r3, r2, r0 + ldr r1, _080E9E90 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrh r4, [r3] + adds r0, r4 + movs r1, 0x7F + ands r0, r1 + strh r0, [r3] + movs r3, 0 + movs r4, 0xDE + lsls r4, 1 + adds r1, r2, r4 + ldrh r1, [r1] + cmp r0, r1 + bne _080E9E84 + movs r3, 0x1 +_080E9E84: + adds r0, r3, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E9E8C: .4byte gUnknown_083DB694 +_080E9E90: .4byte 0x000001bf + thumb_func_end sub_80E9E54 + + thumb_func_start nullsub_23 +nullsub_23: @ 80E9E94 + bx lr + thumb_func_end nullsub_23 + + thumb_func_start sub_80E9E98 +sub_80E9E98: @ 80E9E98 + ldr r0, _080E9EA4 + ldr r0, [r0] + adds r0, 0xBE + movs r1, 0 + strh r1, [r0] + bx lr + .align 2, 0 +_080E9EA4: .4byte gUnknown_083DB694 + thumb_func_end sub_80E9E98 + + thumb_func_start sub_80E9EA8 +sub_80E9EA8: @ 80E9EA8 + push {lr} + ldr r1, _080E9EC4 + ldr r0, [r1] + adds r0, 0xBE + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0x5 + bhi _080E9F48 + lsls r0, 2 + ldr r1, _080E9EC8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E9EC4: .4byte gUnknown_083DB694 +_080E9EC8: .4byte _080E9ECC + .align 2, 0 +_080E9ECC: + .4byte _080E9EE4 + .4byte _080E9EF4 + .4byte _080E9F0C + .4byte _080E9F24 + .4byte _080E9F38 + .4byte _080E9F44 +_080E9EE4: + bl sub_80EA24C + ldr r0, _080E9F08 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080E9EF4: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080E9F48 + bl sub_80EA4A4 + ldr r0, _080E9F08 + ldr r1, [r0] + b _080E9F3A + .align 2, 0 +_080E9F08: .4byte gUnknown_083DB694 +_080E9F0C: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080E9F48 + bl sub_80EA704 + ldr r0, _080E9F20 + ldr r1, [r0] + b _080E9F3A + .align 2, 0 +_080E9F20: .4byte gUnknown_083DB694 +_080E9F24: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080E9F48 + ldr r0, _080E9F34 + ldr r1, [r0] + b _080E9F3A + .align 2, 0 +_080E9F34: .4byte gUnknown_083DB694 +_080E9F38: + ldr r1, [r2] +_080E9F3A: + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080E9F48 +_080E9F44: + movs r0, 0x1 + b _080E9F4A +_080E9F48: + movs r0, 0 +_080E9F4A: + pop {r1} + bx r1 + thumb_func_end sub_80E9EA8 + + thumb_func_start sub_80E9F50 +sub_80E9F50: @ 80E9F50 + push {lr} + ldr r0, _080E9F68 + ldr r0, [r0] + adds r0, 0xBE + ldrh r0, [r0] + cmp r0, 0x6 + bhi _080E9FCC + lsls r0, 2 + ldr r1, _080E9F6C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E9F68: .4byte gUnknown_083DB694 +_080E9F6C: .4byte _080E9F70 + .align 2, 0 +_080E9F70: + .4byte _080E9F8C + .4byte _080E9FAC + .4byte _080E9F96 + .4byte _080E9FAC + .4byte _080E9F9C + .4byte _080E9FAC + .4byte _080E9FC8 +_080E9F8C: + bl nullsub_23 + bl sub_80EA764 + b _080E9FA0 +_080E9F96: + bl sub_80EA5A0 + b _080E9FA0 +_080E9F9C: + bl sub_80EA348 +_080E9FA0: + ldr r0, _080E9FC4 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080E9FAC: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080E9FCC + ldr r0, _080E9FC4 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080E9FCC + .align 2, 0 +_080E9FC4: .4byte gUnknown_083DB694 +_080E9FC8: + movs r0, 0x1 + b _080E9FCE +_080E9FCC: + movs r0, 0 +_080E9FCE: + pop {r1} + bx r1 + thumb_func_end sub_80E9F50 + + thumb_func_start sub_80E9FD4 +sub_80E9FD4: @ 80E9FD4 + push {r4,lr} + ldr r0, _080E9FEC + ldr r0, [r0] + adds r4, r0, 0 + adds r4, 0xBE + ldrh r0, [r4] + cmp r0, 0 + beq _080E9FF0 + cmp r0, 0x1 + beq _080E9FFE + b _080EA00C + .align 2, 0 +_080E9FEC: .4byte gUnknown_083DB694 +_080E9FF0: + bl nullsub_23 + bl sub_80EA5A0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080E9FFE: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA00C + movs r0, 0x1 + b _080EA00E +_080EA00C: + movs r0, 0 +_080EA00E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80E9FD4 + + thumb_func_start sub_80EA014 +sub_80EA014: @ 80EA014 + push {r4,lr} + ldr r0, _080EA02C + ldr r0, [r0] + adds r4, r0, 0 + adds r4, 0xBE + ldrh r0, [r4] + cmp r0, 0 + beq _080EA030 + cmp r0, 0x1 + beq _080EA03A + b _080EA048 + .align 2, 0 +_080EA02C: .4byte gUnknown_083DB694 +_080EA030: + bl sub_80EA4A4 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080EA03A: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA048 + movs r0, 0x1 + b _080EA04A +_080EA048: + movs r0, 0 +_080EA04A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EA014 + + thumb_func_start sub_80EA050 +sub_80EA050: @ 80EA050 + push {lr} + ldr r0, _080EA068 + ldr r0, [r0] + adds r0, 0xBE + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080EA0DC + lsls r0, 2 + ldr r1, _080EA06C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EA068: .4byte gUnknown_083DB694 +_080EA06C: .4byte _080EA070 + .align 2, 0 +_080EA070: + .4byte _080EA084 + .4byte _080EA08E + .4byte _080EA09E + .4byte _080EA0B4 + .4byte _080EA0D8 +_080EA084: + bl nullsub_23 + bl sub_80EA764 + b _080EA0C4 +_080EA08E: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA0DC + bl sub_80EA7F4 + b _080EA0C4 +_080EA09E: + movs r0, 0x1 + bl sub_80E9108 + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA0DC + bl sub_80EA8BC + b _080EA0C4 +_080EA0B4: + movs r0, 0x1 + bl sub_80E9108 + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA0DC +_080EA0C4: + ldr r0, _080EA0D4 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EA0DC + .align 2, 0 +_080EA0D4: .4byte gUnknown_083DB694 +_080EA0D8: + movs r0, 0x1 + b _080EA0DE +_080EA0DC: + movs r0, 0 +_080EA0DE: + pop {r1} + bx r1 + thumb_func_end sub_80EA050 + + thumb_func_start sub_80EA0E4 +sub_80EA0E4: @ 80EA0E4 + push {lr} + ldr r0, _080EA0FC + ldr r0, [r0] + adds r0, 0xBE + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080EA17C + lsls r0, 2 + ldr r1, _080EA100 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EA0FC: .4byte gUnknown_083DB694 +_080EA100: .4byte _080EA104 + .align 2, 0 +_080EA104: + .4byte _080EA118 + .4byte _080EA128 + .4byte _080EA144 + .4byte _080EA15C + .4byte _080EA178 +_080EA118: + bl sub_80EA948 + ldr r0, _080EA140 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EA128: + movs r0, 0x1 + negs r0, r0 + bl sub_80E9108 + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA17C + bl sub_80EAA44 + b _080EA166 + .align 2, 0 +_080EA140: .4byte gUnknown_083DB694 +_080EA144: + movs r0, 0x1 + negs r0, r0 + bl sub_80E9108 + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA17C + bl sub_80EA704 + b _080EA166 +_080EA15C: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA17C +_080EA166: + ldr r0, _080EA174 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EA17C + .align 2, 0 +_080EA174: .4byte gUnknown_083DB694 +_080EA178: + movs r0, 0x1 + b _080EA17E +_080EA17C: + movs r0, 0 +_080EA17E: + pop {r1} + bx r1 + thumb_func_end sub_80EA0E4 + + thumb_func_start sub_80EA184 +sub_80EA184: @ 80EA184 + push {r4,lr} + ldr r0, _080EA1A0 + ldr r0, [r0] + adds r4, r0, 0 + adds r4, 0xBE + ldrh r0, [r4] + cmp r0, 0x1 + beq _080EA1B4 + cmp r0, 0x1 + bgt _080EA1A4 + cmp r0, 0 + beq _080EA1AA + b _080EA1D8 + .align 2, 0 +_080EA1A0: .4byte gUnknown_083DB694 +_080EA1A4: + cmp r0, 0x2 + beq _080EA1D0 + b _080EA1D8 +_080EA1AA: + bl sub_80EAAD4 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080EA1B4: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA1D8 + ldr r0, _080EA1CC + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EA1D8 + .align 2, 0 +_080EA1CC: .4byte gUnknown_083DB694 +_080EA1D0: + bl sub_80E9178 + movs r0, 0x1 + b _080EA1DA +_080EA1D8: + movs r0, 0 +_080EA1DA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EA184 + + thumb_func_start sub_80EA1E0 +sub_80EA1E0: @ 80EA1E0 + push {r4-r6,lr} + ldr r0, _080EA240 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0xC4 + ldrh r0, [r0] + cmp r0, 0 + beq _080EA244 + movs r4, 0 + adds r0, r1, 0 + adds r0, 0xC2 + ldrh r2, [r0] + cmp r4, r2 + bcs _080EA228 + adds r5, r1, 0 + adds r6, r0, 0 +_080EA200: + lsls r0, r4, 4 + adds r0, 0xC8 + adds r0, r5, r0 + bl sub_80EAC0C + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r1 + adds r0, r5, r0 + bl sub_80EAC48 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldrh r2, [r6] + cmp r4, r2 + bcc _080EA200 +_080EA228: + ldr r0, _080EA240 + ldr r1, [r0] + adds r2, r1, 0 + adds r2, 0xBC + movs r0, 0x1 + strb r0, [r2] + adds r1, 0xC4 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + movs r0, 0 + b _080EA246 + .align 2, 0 +_080EA240: .4byte gUnknown_083DB694 +_080EA244: + movs r0, 0x1 +_080EA246: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80EA1E0 + + thumb_func_start sub_80EA24C +sub_80EA24C: @ 80EA24C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EA340 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0xF + str r6, [sp] + ldr r1, _080EA344 + mov r8, r1 + str r1, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xD + movs r2, 0xE + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r5, r7, r1 + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x2 + mov r9, r1 + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xE + movs r3, 0xC + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0x1E + movs r2, 0 + mov r3, r8 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + movs r6, 0x10 + str r6, [sp] + mov r1, r8 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xD + movs r2, 0xF + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0x9 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + str r6, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + mov r1, r9 + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xF + movs r3, 0xC + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0x1E + movs r2, 0x9 + mov r3, r8 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x4 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x6 + strh r0, [r1] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA340: .4byte gUnknown_083DB694 +_080EA344: .4byte 0x0000fffe + thumb_func_end sub_80EA24C + + thumb_func_start sub_80EA348 +sub_80EA348: @ 80EA348 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EA49C + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r5, 0xF + str r5, [sp] + movs r1, 0x2 + mov r9, r1 + str r1, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xE + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r6, r7, r1 + str r6, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r5, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + ldr r1, _080EA4A0 + mov r8, r1 + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xE + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r6, [sp, 0x4] + movs r1, 0x12 + movs r2, 0 + movs r3, 0x2 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + movs r5, 0x10 + str r5, [sp] + mov r1, r9 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xF + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r6, [sp, 0x4] + movs r1, 0 + movs r2, 0x9 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + str r5, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + mov r1, r8 + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xF + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r6, [sp, 0x4] + movs r1, 0x12 + movs r2, 0x9 + movs r3, 0x2 + bl sub_80EAC30 + movs r1, 0x84 + lsls r1, 1 + adds r0, r7, r1 + str r5, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + mov r1, r9 + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xE + movs r3, 0x1 + bl sub_80EABD4 + movs r1, 0xBC + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + adds r1, 0x50 + adds r6, r7, r1 + str r6, [sp, 0x4] + movs r1, 0x1 + movs r2, 0xE + movs r3, 0 + bl sub_80EAC30 + movs r1, 0x8C + lsls r1, 1 + adds r0, r7, r1 + str r5, [sp] + mov r1, r8 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x18 + movs r2, 0xE + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xC2 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r6, [sp, 0x4] + movs r1, 0x18 + movs r2, 0xE + mov r3, r8 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xC2 + movs r1, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA49C: .4byte gUnknown_083DB694 +_080EA4A0: .4byte 0x0000fffe + thumb_func_end sub_80EA348 + + thumb_func_start sub_80EA4A4 +sub_80EA4A4: @ 80EA4A4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EA598 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0xF + str r6, [sp] + movs r4, 0 + str r4, [sp, 0x4] + ldr r1, _080EA59C + mov r8, r1 + str r1, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xE + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r5, r7, r1 + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r4, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xE + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0x12 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + movs r1, 0x10 + mov r9, r1 + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + movs r6, 0x1 + str r6, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xF + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + mov r1, r8 + str r1, [sp] + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0x9 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + mov r1, r9 + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r6, [sp, 0x10] + movs r1, 0xC + movs r2, 0xF + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + mov r1, r8 + str r1, [sp] + str r5, [sp, 0x4] + movs r1, 0x12 + movs r2, 0x9 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xC2 + movs r1, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA598: .4byte gUnknown_083DB694 +_080EA59C: .4byte 0x0000ffff + thumb_func_end sub_80EA4A4 + + thumb_func_start sub_80EA5A0 +sub_80EA5A0: @ 80EA5A0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EA6FC + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0xF + str r6, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r1, 0x1 + mov r8, r1 + str r1, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r2, 0xA + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r5, r7, r1 + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r4, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xA + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0x12 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + movs r1, 0x14 + mov r9, r1 + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + ldr r6, _080EA700 + str r6, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xF + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + mov r1, r8 + str r1, [sp] + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0x5 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + mov r1, r9 + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r6, [sp, 0x10] + movs r1, 0xC + movs r2, 0xF + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + mov r1, r8 + str r1, [sp] + str r5, [sp, 0x4] + movs r1, 0x12 + movs r2, 0x5 + movs r3, 0 + bl sub_80EAC30 + movs r1, 0x84 + lsls r1, 1 + adds r0, r7, r1 + movs r1, 0xA + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + mov r1, r8 + str r1, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xA + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xBC + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + adds r1, 0x50 + adds r5, r7, r1 + str r5, [sp, 0x4] + movs r1, 0x1 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + movs r1, 0x8C + lsls r1, 1 + adds r0, r7, r1 + mov r1, r9 + str r1, [sp] + str r4, [sp, 0x4] + str r6, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0x14 + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xC2 + lsls r1, 1 + adds r0, r7, r1 + str r6, [sp] + str r5, [sp, 0x4] + movs r1, 0x1 + movs r2, 0x14 + movs r3, 0 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x6 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x4 + strh r0, [r1] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA6FC: .4byte gUnknown_083DB694 +_080EA700: .4byte 0x0000ffff + thumb_func_end sub_80EA5A0 + + thumb_func_start sub_80EA704 +sub_80EA704: @ 80EA704 + push {r4-r6,lr} + sub sp, 0x14 + ldr r0, _080EA75C + ldr r6, [r0] + adds r0, r6, 0 + adds r0, 0xC8 + movs r1, 0x14 + str r1, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r5, 0x1 + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x18 + movs r2, 0xC + movs r3, 0x19 + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r6, r1 + ldr r3, _080EA760 + str r4, [sp] + movs r2, 0xD9 + lsls r2, 3 + adds r1, r6, r2 + str r1, [sp, 0x4] + movs r1, 0x5 + movs r2, 0xA + bl sub_80EAC30 + adds r0, r6, 0 + adds r0, 0xC2 + strh r5, [r0] + adds r1, r6, 0 + adds r1, 0xC4 + movs r0, 0x5 + strh r0, [r1] + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EA75C: .4byte gUnknown_083DB694 +_080EA760: .4byte 0x0000ffff + thumb_func_end sub_80EA704 + + thumb_func_start sub_80EA764 +sub_80EA764: @ 80EA764 + push {r4-r7,lr} + sub sp, 0x14 + ldr r0, _080EA7EC + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0x14 + str r6, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + ldr r5, _080EA7F0 + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x18 + movs r2, 0xC + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r2, 0xD9 + lsls r2, 3 + adds r1, r7, r2 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xA + movs r3, 0x1 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1E + movs r2, 0xC + movs r3, 0x1F + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r2, 0xE4 + lsls r2, 1 + adds r1, r7, r2 + str r1, [sp, 0x4] + movs r1, 0x1E + movs r2, 0xC + adds r3, r5, 0 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x2 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x6 + strh r0, [r1] + add sp, 0x14 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA7EC: .4byte gUnknown_083DB694 +_080EA7F0: .4byte 0x0000ffff + thumb_func_end sub_80EA764 + + thumb_func_start sub_80EA7F4 +sub_80EA7F4: @ 80EA7F4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + ldr r0, _080EA8B4 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0x14 + str r6, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r5, 0x1 + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x14 + movs r2, 0xA + movs r3, 0x19 + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + ldr r3, _080EA8B8 + str r4, [sp] + movs r2, 0xD9 + lsls r2, 3 + adds r2, r7 + mov r8, r2 + str r2, [sp, 0x4] + movs r1, 0x19 + movs r2, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0 + movs r2, 0xA + movs r3, 0x1 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r2, 0xE4 + lsls r2, 1 + adds r1, r7, r2 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xA + movs r3, 0x4 + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + mov r2, r8 + str r2, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x3 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x2 + strh r0, [r1] + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA8B4: .4byte gUnknown_083DB694 +_080EA8B8: .4byte 0x0000ffff + thumb_func_end sub_80EA7F4 + + thumb_func_start sub_80EA8BC +sub_80EA8BC: @ 80EA8BC + push {r4-r6,lr} + sub sp, 0x14 + ldr r0, _080EA944 + ldr r6, [r0] + adds r0, r6, 0 + adds r0, 0xC8 + movs r5, 0x14 + str r5, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x3 + movs r2, 0xA + movs r3, 0x4 + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r6, r1 + str r4, [sp] + movs r2, 0xD9 + lsls r2, 3 + adds r1, r6, r2 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r6, 0 + adds r0, 0xD8 + str r5, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0 + movs r2, 0xA + movs r3, 0x2 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r6, r1 + str r4, [sp] + movs r2, 0xE4 + lsls r2, 1 + adds r1, r6, r2 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + adds r1, r6, 0 + adds r1, 0xC2 + movs r0, 0x2 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x1 + strh r0, [r1] + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EA944: .4byte gUnknown_083DB694 + thumb_func_end sub_80EA8BC + + thumb_func_start sub_80EA948 +sub_80EA948: @ 80EA948 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EAA3C + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0x14 + str r6, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + ldr r5, _080EAA40 + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0 + movs r2, 0xA + movs r3, 0x2 + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + adds r1, 0x80 + adds r1, r7 + mov r9, r1 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x3 + movs r2, 0xA + movs r3, 0x5 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r1, r7 + mov r8, r1 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1A + movs r2, 0xA + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + mov r1, r9 + str r1, [sp, 0x4] + movs r1, 0x1A + movs r2, 0xA + adds r3, r5, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x19 + movs r2, 0xA + movs r3, 0x1A + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + mov r1, r8 + str r1, [sp, 0x4] + movs r1, 0x1D + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x4 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x2 + strh r0, [r1] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EAA3C: .4byte gUnknown_083DB694 +_080EAA40: .4byte 0x0000ffff + thumb_func_end sub_80EA948 + + thumb_func_start sub_80EAA44 +sub_80EAA44: @ 80EAA44 + push {r4-r6,lr} + sub sp, 0x14 + ldr r0, _080EAACC + ldr r6, [r0] + adds r0, r6, 0 + adds r0, 0xC8 + movs r5, 0x14 + str r5, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x18 + movs r2, 0xA + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r6, r1 + str r4, [sp] + movs r2, 0xE4 + lsls r2, 1 + adds r1, r6, r2 + str r1, [sp, 0x4] + movs r1, 0x18 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + adds r0, r6, 0 + adds r0, 0xD8 + str r5, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + ldr r1, _080EAAD0 + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x17 + movs r2, 0xA + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r6, r1 + str r4, [sp] + movs r2, 0xD9 + lsls r2, 3 + adds r1, r6, r2 + str r1, [sp, 0x4] + movs r1, 0x1D + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r1, r6, 0 + adds r1, 0xC2 + movs r0, 0x2 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x1 + strh r0, [r1] + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EAACC: .4byte gUnknown_083DB694 +_080EAAD0: .4byte 0x0000ffff + thumb_func_end sub_80EAA44 + + thumb_func_start sub_80EAAD4 +sub_80EAAD4: @ 80EAAD4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EABCC + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r1, 0xF + str r1, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r5, 0x1 + str r5, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0 + movs r2, 0xA + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r1, r7 + mov r8, r1 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + movs r1, 0x14 + mov r9, r1 + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + ldr r6, _080EABD0 + str r6, [sp, 0x10] + movs r1, 0 + movs r2, 0xF + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r5, [sp] + mov r1, r8 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0x5 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + movs r1, 0xA + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r5, [sp, 0x10] + movs r1, 0 + movs r2, 0xA + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + adds r1, 0x68 + adds r5, r7, r1 + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + mov r1, r9 + str r1, [sp] + str r4, [sp, 0x4] + str r6, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0 + movs r2, 0x14 + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + str r6, [sp] + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0x14 + movs r3, 0 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x4 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x5 + strh r0, [r1] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EABCC: .4byte gUnknown_083DB694 +_080EABD0: .4byte 0x0000ffff + thumb_func_end sub_80EAAD4 + + thumb_func_start sub_80EABD4 +sub_80EABD4: @ 80EABD4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r5, [sp, 0x1C] + ldr r6, [sp, 0x20] + ldr r4, [sp, 0x24] + mov r9, r4 + ldr r4, [sp, 0x28] + ldr r7, [sp, 0x2C] + mov r8, r7 + strh r1, [r0] + strh r3, [r0, 0x2] + strh r2, [r0, 0x4] + strh r5, [r0, 0x6] + strh r6, [r0, 0x8] + strh r4, [r0, 0xA] + mov r1, r9 + strh r1, [r0, 0xC] + mov r4, r8 + strh r4, [r0, 0xE] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80EABD4 + + thumb_func_start sub_80EAC0C +sub_80EAC0C: @ 80EAC0C + ldrh r1, [r0, 0x8] + ldrh r2, [r0] + adds r1, r2 + strh r1, [r0] + ldrh r1, [r0, 0xA] + ldrh r2, [r0, 0x2] + adds r1, r2 + strh r1, [r0, 0x2] + ldrh r1, [r0, 0xC] + ldrh r2, [r0, 0x4] + adds r1, r2 + strh r1, [r0, 0x4] + ldrh r1, [r0, 0xE] + ldrh r2, [r0, 0x6] + adds r1, r2 + strh r1, [r0, 0x6] + bx lr + thumb_func_end sub_80EAC0C + + thumb_func_start sub_80EAC30 +sub_80EAC30: @ 80EAC30 + push {r4,r5,lr} + ldr r4, [sp, 0xC] + ldr r5, [sp, 0x10] + strh r1, [r0] + strh r2, [r0, 0x2] + strh r3, [r0, 0x4] + strh r4, [r0, 0x6] + str r5, [r0, 0x8] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80EAC30 + + thumb_func_start sub_80EAC48 +sub_80EAC48: @ 80EAC48 + ldrh r1, [r0, 0x4] + ldrh r2, [r0] + adds r1, r2 + strh r1, [r0] + ldrh r1, [r0, 0x6] + ldrh r2, [r0, 0x2] + adds r1, r2 + strh r1, [r0, 0x2] + bx lr + thumb_func_end sub_80EAC48 + + thumb_func_start sub_80EAC5C +sub_80EAC5C: @ 80EAC5C + push {r4-r6,lr} + ldr r0, _080EACB4 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0xBC + ldrb r0, [r0] + cmp r0, 0 + beq _080EACAC + movs r4, 0 + adds r0, r1, 0 + adds r0, 0xC2 + ldrh r2, [r0] + cmp r4, r2 + bcs _080EACA2 + adds r5, r1, 0 + adds r6, r0, 0 +_080EAC7C: + lsls r1, r4, 4 + adds r1, 0xC8 + adds r1, r5, r1 + lsls r2, r4, 1 + adds r2, r4 + lsls r2, 2 + movs r0, 0xA4 + lsls r0, 1 + adds r2, r0 + adds r2, r5, r2 + ldr r0, _080EACB8 + bl sub_80EACBC + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldrh r2, [r6] + cmp r4, r2 + bcc _080EAC7C +_080EACA2: + ldr r0, _080EACB4 + ldr r0, [r0] + adds r0, 0xBC + movs r1, 0 + strb r1, [r0] +_080EACAC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EACB4: .4byte gUnknown_083DB694 +_080EACB8: .4byte 0x06006800 + thumb_func_end sub_80EAC5C + + thumb_func_start sub_80EACBC +sub_80EACBC: @ 80EACBC + push {r4-r7,lr} + sub sp, 0x10 + adds r7, r0, 0 + adds r3, r1, 0 + adds r4, r2, 0 + ldrh r2, [r3, 0x2] + ldrh r0, [r3] + subs r2, r0 + ldrh r0, [r3, 0x6] + ldrh r1, [r3, 0x4] + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + lsls r6, r2, 16 + cmp r6, 0 + ble _080EACFE + lsls r5, r0, 16 + cmp r5, 0 + ble _080EACFE + ldrh r1, [r3] + ldrh r2, [r3, 0x4] + ldr r3, [r4, 0x8] + ldrh r0, [r4] + str r0, [sp] + ldrh r0, [r4, 0x2] + str r0, [sp, 0x4] + lsrs r0, r6, 16 + str r0, [sp, 0x8] + lsrs r0, r5, 16 + str r0, [sp, 0xC] + adds r0, r7, 0 + bl sub_809D104 +_080EACFE: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80EACBC + + thumb_func_start sub_80EAD08 +sub_80EAD08: @ 80EAD08 + push {r4,r5,lr} + ldr r0, _080EAD58 + ldrb r1, [r0, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + ldr r1, _080EAD5C + adds r4, r0, r1 + adds r4, 0xB0 + ldr r0, _080EAD60 + ldr r1, [r0] + movs r0, 0xDD + lsls r0, 1 + adds r1, r0 + ldrh r0, [r1] + adds r2, r0, 0 + subs r2, 0x58 + movs r0, 0xFF + ands r2, r0 + movs r3, 0 + movs r5, 0xFF +_080EAD32: + ldrh r0, [r1] + adds r0, r3 + cmp r0, 0x80 + bne _080EAD42 + negs r0, r3 + adds r2, r0, 0 + subs r2, 0x58 + ands r2, r5 +_080EAD42: + strh r2, [r4] + adds r4, 0x2 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3F + bls _080EAD32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EAD58: .4byte gUnknown_03004DC0 +_080EAD5C: .4byte gUnknown_03004DE0 +_080EAD60: .4byte gUnknown_083DB694 + thumb_func_end sub_80EAD08 + + thumb_func_start sub_80EAD64 +sub_80EAD64: @ 80EAD64 + push {lr} + lsls r1, 24 + ldr r2, _080EAD78 + lsrs r1, 22 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + pop {r1} + bx r1 + .align 2, 0 +_080EAD78: .4byte gEasyChatGroupNames + thumb_func_end sub_80EAD64 + + thumb_func_start sub_80EAD7C +sub_80EAD7C: @ 80EAD7C + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x14 + beq _080EADA2 + cmp r0, 0x14 + bgt _080EAD9C + cmp r0, 0x11 + blt _080EADBA + ldr r0, _080EAD98 + bl FlagGet + b _080EADB4 + .align 2, 0 +_080EAD98: .4byte 0x00000804 +_080EAD9C: + cmp r1, 0x15 + beq _080EADB0 + b _080EADBA +_080EADA2: + ldr r0, _080EADAC + bl FlagGet + b _080EADB4 + .align 2, 0 +_080EADAC: .4byte 0x00000806 +_080EADB0: + bl sub_80EB9C8 +_080EADB4: + lsls r0, 24 + lsrs r0, 24 + b _080EADBC +_080EADBA: + movs r0, 0x1 +_080EADBC: + pop {r1} + bx r1 + thumb_func_end sub_80EAD7C + + thumb_func_start sub_80EADC0 +sub_80EADC0: @ 80EADC0 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 16 + lsrs r3, r1, 16 + cmp r2, 0x15 + bhi _080EAE82 + lsls r0, r2, 2 + ldr r1, _080EADD8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EADD8: .4byte _080EADDC + .align 2, 0 +_080EADDC: + .4byte _080EAE50 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE62 + .4byte _080EAE62 + .4byte _080EAE62 + .4byte _080EAE34 + .4byte _080EAE78 +_080EAE34: + ldr r0, _080EAE4C + ldr r0, [r0] + adds r0, r2 + adds r0, 0x67 + ldrb r0, [r0] + cmp r0, 0 + beq _080EAE70 + lsls r0, r3, 24 + lsrs r0, 24 + bl sub_80EB868 + b _080EAE7C + .align 2, 0 +_080EAE4C: .4byte gUnknown_083DB694 +_080EAE50: + adds r0, r3, 0 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl sub_8090D90 + b _080EAE7C +_080EAE62: + ldr r0, _080EAE74 + ldr r0, [r0] + adds r0, r2 + adds r0, 0x67 + ldrb r0, [r0] + cmp r0, 0 + bne _080EAE82 +_080EAE70: + movs r0, 0 + b _080EAE84 + .align 2, 0 +_080EAE74: .4byte gUnknown_083DB694 +_080EAE78: + bl sub_80EB9C8 +_080EAE7C: + lsls r0, 24 + lsrs r0, 24 + b _080EAE84 +_080EAE82: + movs r0, 0x1 +_080EAE84: + pop {r1} + bx r1 + thumb_func_end sub_80EADC0 + + thumb_func_start sub_80EAE88 +sub_80EAE88: @ 80EAE88 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080EAEA6 + cmp r4, 0x14 + beq _080EAEB2 + adds r0, r4, 0 + bl sub_80EAD7C + lsls r0, 24 + cmp r0, 0 + bne _080EAEBC + movs r0, 0 + b _080EAEC2 +_080EAEA6: + movs r0, 0 + bl sub_8090F68 + lsls r0, 16 + lsrs r0, 16 + b _080EAEC2 +_080EAEB2: + bl sub_80EB8C0 + lsls r0, 24 + lsrs r0, 24 + b _080EAEC2 +_080EAEBC: + ldr r0, _080EAEC8 + adds r0, r4, r0 + ldrb r0, [r0] +_080EAEC2: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EAEC8: .4byte gEasyChatGroupSizes + thumb_func_end sub_80EAE88 + + thumb_func_start sub_80EAECC +sub_80EAECC: @ 80EAECC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + movs r0, 0 + mov r8, r0 + ldr r1, _080EAF10 + ldr r0, [r1] + ldr r3, _080EAF14 + adds r3, r0, r3 + str r3, [sp, 0x4] +_080EAEE6: + ldr r1, _080EAF18 + mov r7, r8 + lsls r2, r7, 1 + adds r0, r2, r1 + ldrh r4, [r0] + mov r3, r8 + adds r3, 0x1 + lsls r0, r3, 1 + adds r0, r1 + ldrh r0, [r0] + str r0, [sp] + ldr r0, [sp, 0x4] + adds r1, r0, r2 + movs r0, 0 + strh r0, [r1] + mov r9, r0 + adds r6, r4, 0 + mov r10, r2 + str r3, [sp, 0x8] + b _080EB00C + .align 2, 0 +_080EAF10: .4byte gUnknown_083DB694 +_080EAF14: .4byte 0x00004142 +_080EAF18: .4byte gEasyChatWordsByLetter +_080EAF1C: + ldr r2, _080EAFB0 + adds r0, r6, 0 + adds r1, r0, 0x1 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + adds r4, r1, 0 + ldr r0, _080EAFB4 + cmp r1, r0 + bls _080EAFCC + movs r0, 0xFF + ands r1, r0 + movs r7, 0 + subs r0, r1, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r3, _080EAFB8 + cmp r5, r3 + beq _080EB00C + mov r1, r8 + lsls r0, r1, 8 + subs r0, r1 + lsls r3, r0, 1 +_080EAF4E: + adds r1, r6, 0 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 1 + ldr r0, _080EAFB0 + adds r1, r0 + ldrh r4, [r1] + lsrs r0, r4, 9 + ldr r1, _080EAFBC + adds r2, r1, 0 + adds r1, r4, 0 + ands r1, r2 + str r3, [sp, 0xC] + bl sub_80EADC0 + lsls r0, 24 + ldr r3, [sp, 0xC] + cmp r0, 0 + beq _080EAFA2 + cmp r7, 0 + bne _080EAFA2 + ldr r7, _080EAFC0 + ldr r2, [r7] + mov r1, r9 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + lsls r1, 1 + adds r1, r3 + ldr r7, _080EAFC4 + adds r0, r2, r7 + adds r0, r1 + strh r4, [r0] + ldr r0, _080EAFC8 + adds r2, r0 + add r2, r10 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + movs r7, 0x1 +_080EAFA2: + subs r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, _080EAFB8 + cmp r5, r1 + bne _080EAF4E + b _080EB00C + .align 2, 0 +_080EAFB0: .4byte gEasyChatWordsAlphabetized +_080EAFB4: .4byte 0x0000feff +_080EAFB8: .4byte 0x0000ffff +_080EAFBC: .4byte 0x000001ff +_080EAFC0: .4byte gUnknown_083DB694 +_080EAFC4: .4byte 0x00000b78 +_080EAFC8: .4byte 0x00004142 +_080EAFCC: + lsrs r0, r4, 9 + ldr r3, _080EB030 + adds r2, r3, 0 + adds r1, r4, 0 + ands r1, r2 + bl sub_80EADC0 + lsls r0, 24 + cmp r0, 0 + beq _080EB00C + ldr r7, _080EB034 + ldr r2, [r7] + mov r1, r9 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + mov r3, r8 + lsls r0, r3, 8 + subs r0, r3 + adds r0, r1 + lsls r0, 1 + ldr r7, _080EB038 + adds r1, r2, r7 + adds r1, r0 + strh r4, [r1] + ldr r0, _080EB03C + adds r2, r0 + add r2, r10 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] +_080EB00C: + ldr r1, [sp] + cmp r6, r1 + bcc _080EAF1C + ldr r3, [sp, 0x8] + lsls r0, r3, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0x1A + bhi _080EB020 + b _080EAEE6 +_080EB020: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EB030: .4byte 0x000001ff +_080EB034: .4byte gUnknown_083DB694 +_080EB038: .4byte 0x00000b78 +_080EB03C: .4byte 0x00004142 + thumb_func_end sub_80EAECC + + thumb_func_start sub_80EB040 +sub_80EB040: @ 80EB040 + push {r4-r6,lr} + movs r3, 0 +_080EB044: + adds r6, r3, 0x1 + cmp r3, 0 + beq _080EB094 + cmp r3, 0x15 + beq _080EB094 + cmp r3, 0x12 + beq _080EB094 + cmp r3, 0x13 + beq _080EB094 + ldr r0, _080EB0A4 + lsls r1, r3, 2 + adds r1, r0 + ldr r2, [r1] + movs r4, 0 + ldrb r0, [r2] + cmp r0, 0xFF + beq _080EB094 + ldr r0, _080EB0A8 + ldr r0, [r0] + ldr r1, _080EB0AC + adds r5, r0, r1 +_080EB06E: + lsls r0, r4, 2 + lsls r1, r3, 10 + adds r0, r1 + adds r0, r5, r0 + str r2, [r0] + ldrb r0, [r2] + adds r1, r4, 0x1 + cmp r0, 0xFF + beq _080EB088 +_080EB080: + adds r2, 0x1 + ldrb r0, [r2] + cmp r0, 0xFF + bne _080EB080 +_080EB088: + adds r2, 0x1 + lsls r0, r1, 16 + lsrs r4, r0, 16 + ldrb r0, [r2] + cmp r0, 0xFF + bne _080EB06E +_080EB094: + lsls r0, r6, 16 + lsrs r3, r0, 16 + cmp r3, 0x15 + bls _080EB044 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EB0A4: .4byte gEasyChatGroupWords +_080EB0A8: .4byte gUnknown_083DB694 +_080EB0AC: .4byte 0x000041a4 + thumb_func_end sub_80EB040 + + thumb_func_start sub_80EB0B0 +sub_80EB0B0: @ 80EB0B0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r3, _080EB184 + ldr r4, [r3] + adds r0, r4, 0 + adds r0, 0x26 + ldrb r5, [r0] + cmp r5, 0 + bne _080EB19C + movs r0, 0xDC + lsls r0, 1 + adds r2, r4, r0 + ldrb r6, [r2] + lsls r1, r6, 1 + ldr r7, _080EB188 + adds r0, r4, r7 + adds r0, r1 + strh r5, [r0] + movs r7, 0 + movs r0, 0 + mov r9, r0 + ldr r1, _080EB18C + lsls r0, r6, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [sp] + movs r1, 0 + mov r8, r1 + ldr r1, _080EB190 + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + cmp r8, r0 + bcc _080EB0FE + b _080EB1FA +_080EB0FE: + movs r2, 0xDC + lsls r2, 1 + adds r2, r4, r2 + str r2, [sp, 0x4] + lsls r5, r6, 24 + mov r10, r5 +_080EB10A: + mov r1, r8 + lsls r0, r1, 1 + ldr r2, [sp] + adds r5, r0, r2 + ldrh r1, [r5] + mov r2, r10 + lsrs r0, r2, 24 + bl sub_80EADC0 + lsls r0, 24 + cmp r0, 0 + beq _080EB16A + ldr r0, _080EB184 + ldr r3, [r0] + lsls r1, r7, 1 + mov r2, r9 + lsls r0, r2, 2 + adds r1, r0 + ldr r0, _080EB194 + adds r4, r3, r0 + adds r4, r1 + movs r0, 0x7F + ands r0, r6 + lsls r0, 9 + ldrh r1, [r5] + ldr r5, _080EB198 + adds r2, r5, 0 + ands r1, r2 + orrs r0, r1 + strh r0, [r4] + lsls r0, r6, 1 + ldr r1, _080EB188 + adds r3, r1 + adds r3, r0 + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x1 + bls _080EB16A + movs r7, 0 + mov r0, r9 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 +_080EB16A: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r1, _080EB190 + ldr r2, [sp, 0x4] + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + cmp r8, r0 + bcc _080EB10A + b _080EB1FA + .align 2, 0 +_080EB184: .4byte gUnknown_083DB694 +_080EB188: .4byte 0x00004178 +_080EB18C: .4byte gEasyChatGroupOrders +_080EB190: .4byte gEasyChatGroupSizes +_080EB194: .4byte 0x00009a2a +_080EB198: .4byte 0x000001ff +_080EB19C: + movs r5, 0xDC + lsls r5, 1 + adds r0, r4, r5 + ldrb r2, [r0] + movs r3, 0 + movs r6, 0 + movs r5, 0 + lsls r1, r2, 1 + ldr r7, _080EB20C + adds r0, r4, r7 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r5, r0 + bcs _080EB1FA + ldr r7, _080EB210 + adds r7, r4 + mov r8, r7 + lsls r0, r2, 8 + subs r0, r2 + lsls r7, r0, 1 + ldr r0, _080EB214 + adds r2, r4, r0 + adds r4, r1, 0 +_080EB1CA: + lsls r1, r3, 1 + lsls r0, r6, 2 + adds r1, r0 + add r1, r8 + lsls r0, r5, 1 + adds r0, r7 + adds r0, r2, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x1 + bls _080EB1EE + movs r3, 0 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080EB1EE: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldrh r1, [r4] + cmp r5, r1 + bcc _080EB1CA +_080EB1FA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EB20C: .4byte 0x00004142 +_080EB210: .4byte 0x00009a2a +_080EB214: .4byte 0x00000b78 + thumb_func_end sub_80EB0B0 + + thumb_func_start sub_80EB218 +sub_80EB218: @ 80EB218 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + lsls r6, r1, 16 + lsrs r4, r6, 16 + adds r7, r4, 0 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + adds r0, r4, 0 + bl sub_80EB37C + lsls r0, 24 + cmp r0, 0 + beq _080EB240 + ldr r1, _080EB23C + b _080EB2A2 + .align 2, 0 +_080EB23C: .4byte gOtherText_ThreeQuestions +_080EB240: + ldr r0, _080EB250 + cmp r4, r0 + bne _080EB254 + adds r1, r5, 0 + movs r0, 0xFF + strb r0, [r1] + b _080EB2AA + .align 2, 0 +_080EB250: .4byte 0x0000ffff +_080EB254: + lsrs r2, r6, 25 + ldr r1, _080EB268 + ands r1, r7 + cmp r2, 0x13 + bgt _080EB26C + cmp r2, 0x12 + bge _080EB280 + cmp r2, 0 + beq _080EB270 + b _080EB290 + .align 2, 0 +_080EB268: .4byte 0x000001ff +_080EB26C: + cmp r2, 0x15 + bne _080EB290 +_080EB270: + movs r0, 0xB + muls r1, r0 + ldr r0, _080EB27C + adds r1, r0 + b _080EB2A2 + .align 2, 0 +_080EB27C: .4byte gSpeciesNames +_080EB280: + movs r0, 0xD + muls r1, r0 + ldr r0, _080EB28C + adds r1, r0 + b _080EB2A2 + .align 2, 0 +_080EB28C: .4byte gMoveNames +_080EB290: + ldr r0, _080EB2CC + ldr r0, [r0] + lsls r1, 2 + lsls r2, 10 + adds r1, r2 + ldr r2, _080EB2D0 + adds r0, r2 + adds r0, r1 + ldr r1, [r0] +_080EB2A2: + adds r0, r5, 0 + bl StringCopy + adds r1, r0, 0 +_080EB2AA: + movs r0, 0xFC + strb r0, [r1] + movs r0, 0x13 + strb r0, [r1, 0x1] + mov r2, r8 + lsls r0, r2, 3 + strb r0, [r1, 0x2] + adds r1, 0x3 + movs r0, 0xFF + strb r0, [r1] + adds r0, r1, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080EB2CC: .4byte gUnknown_083DB694 +_080EB2D0: .4byte 0x000041a4 + thumb_func_end sub_80EB218 + + thumb_func_start sub_80EB2D4 +sub_80EB2D4: @ 80EB2D4 + push {r4-r6,lr} + lsls r5, r0, 16 + lsrs r4, r5, 16 + adds r6, r4, 0 + adds r0, r4, 0 + bl sub_80EB37C + lsls r0, 24 + cmp r0, 0 + beq _080EB2F8 + ldr r0, _080EB2F4 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + b _080EB374 + .align 2, 0 +_080EB2F4: .4byte gOtherText_ThreeQuestions +_080EB2F8: + ldr r0, _080EB304 + cmp r4, r0 + bne _080EB308 + movs r0, 0 + b _080EB374 + .align 2, 0 +_080EB304: .4byte 0x0000ffff +_080EB308: + lsrs r2, r5, 25 + ldr r1, _080EB31C + ands r1, r6 + cmp r2, 0x13 + bgt _080EB320 + cmp r2, 0x12 + bge _080EB334 + cmp r2, 0 + beq _080EB324 + b _080EB344 + .align 2, 0 +_080EB31C: .4byte 0x000001ff +_080EB320: + cmp r2, 0x15 + bne _080EB344 +_080EB324: + movs r0, 0xB + muls r1, r0 + ldr r0, _080EB330 + adds r1, r0 + b _080EB356 + .align 2, 0 +_080EB330: .4byte gSpeciesNames +_080EB334: + movs r0, 0xD + muls r1, r0 + ldr r0, _080EB340 + adds r1, r0 + b _080EB356 + .align 2, 0 +_080EB340: .4byte gMoveNames +_080EB344: + ldr r0, _080EB35C + ldr r0, [r0] + lsls r1, 2 + lsls r2, 10 + adds r1, r2 + ldr r2, _080EB360 + adds r0, r2 + adds r0, r1 + ldr r1, [r0] +_080EB356: + movs r2, 0 + b _080EB36C + .align 2, 0 +_080EB35C: .4byte gUnknown_083DB694 +_080EB360: .4byte 0x000041a4 +_080EB364: + adds r1, 0x1 + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 +_080EB36C: + ldrb r0, [r1] + cmp r0, 0xFF + bne _080EB364 + adds r0, r2, 0 +_080EB374: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80EB2D4 + + thumb_func_start sub_80EB37C +sub_80EB37C: @ 80EB37C + push {r4,r5,lr} + lsls r1, r0, 16 + lsrs r3, r1, 16 + ldr r0, _080EB3A0 + cmp r3, r0 + beq _080EB3EA + lsrs r2, r1, 25 + ldr r5, _080EB3A4 + ands r5, r3 + cmp r2, 0x15 + bhi _080EB3F4 + cmp r2, 0x13 + bgt _080EB3A8 + cmp r2, 0x12 + bge _080EB3AC + cmp r2, 0 + beq _080EB3AC + b _080EB3E0 + .align 2, 0 +_080EB3A0: .4byte 0x0000ffff +_080EB3A4: .4byte 0x000001ff +_080EB3A8: + cmp r2, 0x15 + bne _080EB3E0 +_080EB3AC: + ldr r0, _080EB3D8 + lsls r1, r2, 2 + adds r1, r0 + ldr r4, [r1] + movs r3, 0 + ldr r0, _080EB3DC + adds r0, r2, r0 + ldrb r0, [r0] + cmp r3, r0 + bcs _080EB3F4 + adds r1, r0, 0 +_080EB3C2: + lsls r0, r3, 1 + adds r0, r4 + ldrh r0, [r0] + cmp r5, r0 + beq _080EB3EA + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r1 + bcc _080EB3C2 + b _080EB3F4 + .align 2, 0 +_080EB3D8: .4byte gEasyChatGroupWords +_080EB3DC: .4byte gEasyChatGroupSizes +_080EB3E0: + ldr r0, _080EB3F0 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r5, r0 + bcs _080EB3F4 +_080EB3EA: + movs r0, 0 + b _080EB3F6 + .align 2, 0 +_080EB3F0: .4byte gEasyChatGroupSizes +_080EB3F4: + movs r0, 0x1 +_080EB3F6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80EB37C + + thumb_func_start sub_80EB3FC +sub_80EB3FC: @ 80EB3FC + push {r4-r7,lr} + adds r5, r0, 0 + lsls r6, r1, 16 + lsrs r4, r6, 16 + adds r7, r4, 0 + adds r0, r4, 0 + bl sub_80EB37C + lsls r0, 24 + cmp r0, 0 + beq _080EB420 + ldr r1, _080EB41C + adds r0, r5, 0 + bl StringCopy + b _080EB4A6 + .align 2, 0 +_080EB41C: .4byte gOtherText_ThreeQuestions +_080EB420: + ldr r0, _080EB43C + cmp r4, r0 + beq _080EB4A0 + lsrs r1, r6, 25 + ldr r2, _080EB440 + ands r2, r7 + cmp r1, 0x13 + bgt _080EB444 + cmp r1, 0x12 + bge _080EB458 + cmp r1, 0 + beq _080EB448 + b _080EB468 + .align 2, 0 +_080EB43C: .4byte 0x0000ffff +_080EB440: .4byte 0x000001ff +_080EB444: + cmp r1, 0x15 + bne _080EB468 +_080EB448: + movs r0, 0xB + adds r1, r2, 0 + muls r1, r0 + ldr r0, _080EB454 + adds r1, r0 + b _080EB498 + .align 2, 0 +_080EB454: .4byte gSpeciesNames +_080EB458: + movs r0, 0xD + adds r1, r2, 0 + muls r1, r0 + ldr r0, _080EB464 + adds r1, r0 + b _080EB498 + .align 2, 0 +_080EB464: .4byte gMoveNames +_080EB468: + ldr r0, _080EB4AC + lsls r1, 2 + adds r1, r0 + ldr r1, [r1] + subs r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, _080EB4B0 + cmp r2, r0 + beq _080EB498 + adds r3, r0, 0 +_080EB47E: + ldrb r0, [r1] + adds r1, 0x1 + subs r2, 0x1 + cmp r0, 0xFF + beq _080EB490 +_080EB488: + ldrb r0, [r1] + adds r1, 0x1 + cmp r0, 0xFF + bne _080EB488 +_080EB490: + lsls r0, r2, 16 + lsrs r2, r0, 16 + cmp r2, r3 + bne _080EB47E +_080EB498: + adds r0, r5, 0 + bl StringCopy + adds r5, r0, 0 +_080EB4A0: + movs r0, 0xFF + strb r0, [r5] + adds r0, r5, 0 +_080EB4A6: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080EB4AC: .4byte gEasyChatGroupWords +_080EB4B0: .4byte 0x0000ffff + thumb_func_end sub_80EB3FC + + thumb_func_start ConvertEasyChatWordsToString +ConvertEasyChatWordsToString: @ 80EB4B4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r2, 16 + lsls r3, 16 + lsrs r3, 16 + mov r9, r3 + ldr r0, _080EB53C + adds r2, r0 + lsrs r7, r2, 16 + movs r0, 0 + cmp r0, r9 + bcs _080EB524 +_080EB4D6: + movs r6, 0 + adds r0, 0x1 + mov r8, r0 + cmp r6, r7 + bcs _080EB508 + ldr r2, _080EB540 +_080EB4E2: + ldrh r1, [r5] + adds r0, r4, 0 + str r2, [sp] + bl sub_80EB3FC + adds r4, r0, 0 + ldrh r0, [r5] + ldr r2, [sp] + cmp r0, r2 + beq _080EB4FC + movs r0, 0 + strb r0, [r4] + adds r4, 0x1 +_080EB4FC: + adds r5, 0x2 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, r7 + bcc _080EB4E2 +_080EB508: + ldrh r1, [r5] + adds r5, 0x2 + adds r0, r4, 0 + bl sub_80EB3FC + adds r4, r0, 0 + movs r0, 0xFE + strb r0, [r4] + adds r4, 0x1 + mov r1, r8 + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, r9 + bcc _080EB4D6 +_080EB524: + subs r4, 0x1 + movs r0, 0xFF + strb r0, [r4] + adds r0, r4, 0 + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080EB53C: .4byte 0xffff0000 +_080EB540: .4byte 0x0000ffff + thumb_func_end ConvertEasyChatWordsToString + + thumb_func_start sub_80EB544 +sub_80EB544: @ 80EB544 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r2, 16 + lsls r3, 16 + lsrs r3, 16 + mov r10, r3 + ldr r0, _080EB5B0 + adds r2, r0 + lsrs r2, 16 + mov r8, r2 + movs r7, 0 + cmp r7, r10 + bcs _080EB5C8 +_080EB56A: + movs r6, 0 + adds r1, r7, 0x1 + mov r9, r1 + cmp r6, r8 + bcs _080EB59C + ldr r2, _080EB5B4 +_080EB576: + ldrh r1, [r5] + adds r0, r4, 0 + str r2, [sp] + bl sub_80EB3FC + adds r4, r0, 0 + ldrh r0, [r5] + ldr r2, [sp] + cmp r0, r2 + beq _080EB590 + movs r0, 0 + strb r0, [r4] + adds r4, 0x1 +_080EB590: + adds r5, 0x2 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, r8 + bcc _080EB576 +_080EB59C: + ldrh r1, [r5] + adds r5, 0x2 + adds r0, r4, 0 + bl sub_80EB3FC + adds r4, r0, 0 + cmp r7, 0 + bne _080EB5B8 + movs r0, 0xFE + b _080EB5BA + .align 2, 0 +_080EB5B0: .4byte 0xffff0000 +_080EB5B4: .4byte 0x0000ffff +_080EB5B8: + movs r0, 0xFA +_080EB5BA: + strb r0, [r4] + adds r4, 0x1 + mov r1, r9 + lsls r0, r1, 16 + lsrs r7, r0, 16 + cmp r7, r10 + bcc _080EB56A +_080EB5C8: + subs r4, 0x1 + movs r0, 0xFF + strb r0, [r4] + adds r0, r4, 0 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80EB544 + + thumb_func_start unref_sub_80EB5E0 +unref_sub_80EB5E0: @ 80EB5E0 + push {lr} + lsls r1, r0, 16 + lsrs r3, r1, 16 + ldr r0, _080EB5F0 + cmp r3, r0 + bne _080EB5F4 + movs r0, 0 + b _080EB67C + .align 2, 0 +_080EB5F0: .4byte 0x0000ffff +_080EB5F4: + lsrs r1, 25 + ldr r2, _080EB608 + ands r2, r3 + cmp r1, 0x13 + bgt _080EB60C + cmp r1, 0x12 + bge _080EB620 + cmp r1, 0 + beq _080EB610 + b _080EB630 + .align 2, 0 +_080EB608: .4byte 0x000001ff +_080EB60C: + cmp r1, 0x15 + bne _080EB630 +_080EB610: + movs r0, 0xB + adds r1, r2, 0 + muls r1, r0 + ldr r0, _080EB61C + adds r1, r0 + b _080EB660 + .align 2, 0 +_080EB61C: .4byte gSpeciesNames +_080EB620: + movs r0, 0xD + adds r1, r2, 0 + muls r1, r0 + ldr r0, _080EB62C + adds r1, r0 + b _080EB660 + .align 2, 0 +_080EB62C: .4byte gMoveNames +_080EB630: + ldr r0, _080EB664 + lsls r1, 2 + adds r1, r0 + ldr r1, [r1] + subs r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, _080EB668 + cmp r2, r0 + beq _080EB660 + adds r3, r0, 0 +_080EB646: + ldrb r0, [r1] + adds r1, 0x1 + subs r2, 0x1 + cmp r0, 0xFF + beq _080EB658 +_080EB650: + ldrb r0, [r1] + adds r1, 0x1 + cmp r0, 0xFF + bne _080EB650 +_080EB658: + lsls r0, r2, 16 + lsrs r2, r0, 16 + cmp r2, r3 + bne _080EB646 +_080EB660: + movs r2, 0 + b _080EB674 + .align 2, 0 +_080EB664: .4byte gEasyChatGroupWords +_080EB668: .4byte 0x0000ffff +_080EB66C: + adds r1, 0x1 + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 +_080EB674: + ldrb r0, [r1] + cmp r0, 0xFF + bne _080EB66C + adds r0, r2, 0 +_080EB67C: + pop {r1} + bx r1 + thumb_func_end unref_sub_80EB5E0 + + thumb_func_start sub_80EB680 +sub_80EB680: @ 80EB680 + movs r0, 0 + bx lr + thumb_func_end sub_80EB680 + + thumb_func_start unref_sub_80EB684 +unref_sub_80EB684: @ 80EB684 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + lsls r1, 16 + lsrs r1, 16 + cmp r0, 0x7 + beq _080EB6B4 + cmp r0, 0x7 + bgt _080EB69E + cmp r0, 0x5 + beq _080EB6A4 + b _080EB6EE +_080EB69E: + cmp r2, 0x8 + beq _080EB6C4 + b _080EB6EE +_080EB6A4: + movs r2, 0x6 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080EB6B0 + b _080EB6CE + .align 2, 0 +_080EB6B0: .4byte gSaveBlock1 + 0x273C +_080EB6B4: + movs r2, 0x2 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080EB6C0 + b _080EB6CE + .align 2, 0 +_080EB6C0: .4byte gSaveBlock1 + 0x2754 +_080EB6C4: + movs r2, 0x1 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080EB6F4 +_080EB6CE: + adds r1, r0, r1 + subs r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, _080EB6F8 + cmp r2, r0 + beq _080EB6EE + adds r4, r0, 0 + adds r3, r0, 0 +_080EB6E0: + strh r4, [r1] + adds r1, 0x2 + subs r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r3 + bne _080EB6E0 +_080EB6EE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EB6F4: .4byte gSaveBlock1 + 0x273A +_080EB6F8: .4byte 0x0000ffff + thumb_func_end unref_sub_80EB684 + + thumb_func_start sub_80EB6FC +sub_80EB6FC: @ 80EB6FC + push {lr} + adds r2, r0, 0 + lsls r1, 16 + ldr r0, _080EB724 + adds r1, r0 + lsrs r0, r1, 16 + ldr r1, _080EB728 + cmp r0, r1 + beq _080EB71E + adds r3, r1, 0 +_080EB710: + strh r3, [r2] + adds r2, 0x2 + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r1 + bne _080EB710 +_080EB71E: + pop {r0} + bx r0 + .align 2, 0 +_080EB724: .4byte 0xffff0000 +_080EB728: .4byte 0x0000ffff + thumb_func_end sub_80EB6FC + + thumb_func_start sub_80EB72C +sub_80EB72C: @ 80EB72C + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, _080EB778 + adds r1, r4, r1 + ldrb r1, [r1] + bl __modsi3 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r4, 0 + beq _080EB758 + cmp r4, 0x15 + beq _080EB758 + cmp r4, 0x12 + beq _080EB758 + cmp r4, 0x13 + bne _080EB766 +_080EB758: + ldr r1, _080EB77C + lsls r0, r4, 2 + adds r0, r1 + ldr r1, [r0] + lsls r0, r2, 1 + adds r0, r1 + ldrh r2, [r0] +_080EB766: + movs r0, 0x7F + ands r0, r4 + lsls r0, 9 + ldr r1, _080EB780 + ands r2, r1 + orrs r0, r2 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EB778: .4byte gEasyChatGroupSizes +_080EB77C: .4byte gEasyChatGroupWords +_080EB780: .4byte 0x000001ff + thumb_func_end sub_80EB72C + + thumb_func_start sub_80EB784 +sub_80EB784: @ 80EB784 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80EAD7C + lsls r0, 24 + cmp r0, 0 + bne _080EB7A0 + ldr r0, _080EB79C + b _080EB7BE + .align 2, 0 +_080EB79C: .4byte 0x0000ffff +_080EB7A0: + cmp r4, 0 + beq _080EB7AE + cmp r4, 0x14 + bne _080EB7B4 + bl sub_80EB960 + b _080EB7BA +_080EB7AE: + bl sub_80EB9D8 + b _080EB7BA +_080EB7B4: + adds r0, r4, 0 + bl sub_80EB72C +_080EB7BA: + lsls r0, 16 + lsrs r0, 16 +_080EB7BE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EB784 + + thumb_func_start sub_80EB7C4 +sub_80EB7C4: @ 80EB7C4 + push {r4,r5,lr} + ldr r0, _080EB7D8 + ldrh r0, [r0] + cmp r0, 0x1 + beq _080EB7F0 + cmp r0, 0x1 + bgt _080EB7DC + cmp r0, 0 + beq _080EB7E6 + b _080EB82E + .align 2, 0 +_080EB7D8: .4byte gUnknown_0202E8CC +_080EB7DC: + cmp r0, 0x2 + beq _080EB810 + cmp r0, 0x3 + beq _080EB818 + b _080EB82E +_080EB7E6: + ldr r5, _080EB7EC + movs r2, 0x2 + b _080EB81C + .align 2, 0 +_080EB7EC: .4byte gSaveBlock1 + 0x2B1C +_080EB7F0: + ldr r5, _080EB80C + adds r0, r5, 0 + movs r1, 0x3 + movs r2, 0x2 + movs r3, 0x14 + bl sub_80EB680 + lsls r0, 24 + cmp r0, 0 + beq _080EB81A + movs r2, 0x2 + movs r3, 0x3 + b _080EB81E + .align 2, 0 +_080EB80C: .4byte gSaveBlock1 + 0x2B28 +_080EB810: + ldr r5, _080EB814 + b _080EB81A + .align 2, 0 +_080EB814: .4byte gSaveBlock1 + 0x2B34 +_080EB818: + ldr r5, _080EB834 +_080EB81A: + movs r2, 0x3 +_080EB81C: + movs r3, 0x2 +_080EB81E: + ldr r4, _080EB838 + adds r0, r4, 0 + adds r1, r5, 0 + bl ConvertEasyChatWordsToString + adds r0, r4, 0 + bl ShowFieldAutoScrollMessage +_080EB82E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EB834: .4byte gSaveBlock1 + 0x2B40 +_080EB838: .4byte gStringVar4 + thumb_func_end sub_80EB7C4 + + thumb_func_start sub_80EB83C +sub_80EB83C: @ 80EB83C + push {lr} + bl Random + movs r1, 0x1 + ands r1, r0 + movs r0, 0xC + cmp r1, 0 + beq _080EB84E + movs r0, 0xD +_080EB84E: + bl sub_80EB784 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + ldr r0, _080EB864 + bl sub_80EB3FC + pop {r0} + bx r0 + .align 2, 0 +_080EB864: .4byte gStringVar2 + thumb_func_end sub_80EB83C + + thumb_func_start sub_80EB868 +sub_80EB868: @ 80EB868 + lsls r0, 24 + lsrs r2, r0, 27 + movs r1, 0xE0 + lsls r1, 19 + ands r1, r0 + lsrs r1, 24 + ldr r0, _080EB888 + ldr r3, _080EB88C + adds r0, r3 + adds r2, r0 + ldrb r0, [r2] + asrs r0, r1 + movs r1, 0x1 + ands r0, r1 + bx lr + .align 2, 0 +_080EB888: .4byte gSaveBlock1 +_080EB88C: .4byte 0x00002d8c + thumb_func_end sub_80EB868 + + thumb_func_start sub_80EB890 +sub_80EB890: @ 80EB890 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x20 + bhi _080EB8B2 + lsrs r2, r0, 27 + movs r1, 0x7 + ands r1, r3 + ldr r0, _080EB8B8 + ldr r3, _080EB8BC + adds r0, r3 + adds r2, r0 + movs r0, 0x1 + lsls r0, r1 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] +_080EB8B2: + pop {r0} + bx r0 + .align 2, 0 +_080EB8B8: .4byte gSaveBlock1 +_080EB8BC: .4byte 0x00002d8c + thumb_func_end sub_80EB890 + + thumb_func_start sub_80EB8C0 +sub_80EB8C0: @ 80EB8C0 + push {r4,r5,lr} + movs r4, 0 + movs r5, 0 +_080EB8C6: + adds r0, r4, 0 + bl sub_80EB868 + lsls r0, 24 + cmp r0, 0 + beq _080EB8D8 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_080EB8D8: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x20 + bls _080EB8C6 + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80EB8C0 + + thumb_func_start sub_80EB8EC +sub_80EB8EC: @ 80EB8EC + push {r4-r6,lr} + bl sub_80EB8C0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x21 + bne _080EB918 + b _080EB952 +_080EB8FC: + adds r0, r5, 0 + bl sub_80EB890 + ldr r0, _080EB914 + ands r4, r0 + movs r1, 0xA0 + lsls r1, 6 + adds r0, r1, 0 + orrs r4, r0 + adds r0, r4, 0 + b _080EB954 + .align 2, 0 +_080EB914: .4byte 0x000001ff +_080EB918: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x21 + subs r1, r4 + bl __modsi3 + lsls r0, 16 + lsrs r6, r0, 16 + movs r4, 0 +_080EB92E: + lsls r0, r4, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl sub_80EB868 + lsls r0, 24 + cmp r0, 0 + bne _080EB948 + cmp r6, 0 + beq _080EB8FC + subs r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080EB948: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x20 + bls _080EB92E +_080EB952: + ldr r0, _080EB95C +_080EB954: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080EB95C: .4byte 0x0000ffff + thumb_func_end sub_80EB8EC + + thumb_func_start sub_80EB960 +sub_80EB960: @ 80EB960 + push {r4,r5,lr} + bl sub_80EB8C0 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080EB984 + b _080EB9BA +_080EB970: + ldr r0, _080EB980 + ands r4, r0 + movs r1, 0xA0 + lsls r1, 6 + adds r0, r1, 0 + orrs r4, r0 + adds r0, r4, 0 + b _080EB9BC + .align 2, 0 +_080EB980: .4byte 0x000001ff +_080EB984: + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + bl __umodsi3 + lsls r0, 16 + lsrs r5, r0, 16 + movs r4, 0 +_080EB998: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80EB868 + lsls r0, 24 + cmp r0, 0 + beq _080EB9B0 + cmp r5, 0 + beq _080EB970 + subs r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080EB9B0: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x20 + bls _080EB998 +_080EB9BA: + ldr r0, _080EB9C4 +_080EB9BC: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080EB9C4: .4byte 0x0000ffff + thumb_func_end sub_80EB960 + + thumb_func_start sub_80EB9C8 +sub_80EB9C8: @ 80EB9C8 + push {lr} + bl sub_806912C + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80EB9C8 + + thumb_func_start sub_80EB9D8 +sub_80EB9D8: @ 80EB9D8 + push {r4-r7,lr} + movs r0, 0 + bl sub_80EAE88 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + bne _080EB9F8 + b _080EBA46 +_080EB9EA: + ldrh r1, [r5] + ldr r0, _080EB9F4 + ands r0, r1 + b _080EBA48 + .align 2, 0 +_080EB9F4: .4byte 0x000001ff +_080EB9F8: + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0 + bl __umodsi3 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _080EBA50 + ldr r5, [r0] + movs r6, 0 + ldr r0, _080EBA54 + ldrb r0, [r0] + cmp r6, r0 + bcs _080EBA46 + adds r7, r0, 0 +_080EBA1A: + ldrh r0, [r5] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl sub_8090D90 + lsls r0, 24 + cmp r0, 0 + beq _080EBA3A + cmp r4, 0 + beq _080EB9EA + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080EBA3A: + adds r5, 0x2 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, r7 + bcc _080EBA1A +_080EBA46: + ldr r0, _080EBA58 +_080EBA48: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080EBA50: .4byte gEasyChatGroupWords +_080EBA54: .4byte gEasyChatGroupSizes +_080EBA58: .4byte 0x0000ffff + thumb_func_end sub_80EB9D8 + + thumb_func_start sub_80EBA5C +sub_80EBA5C: @ 80EBA5C + push {lr} + ldr r0, _080EBA74 + ldr r2, _080EBA78 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0xE + bhi _080EBABC + lsls r0, 2 + ldr r1, _080EBA7C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EBA74: .4byte gMain +_080EBA78: .4byte 0x0000043c +_080EBA7C: .4byte _080EBA80 + .align 2, 0 +_080EBA80: + .4byte _080EBAC0 + .4byte _080EBB08 + .4byte _080EBB10 + .4byte _080EBB16 + .4byte _080EBB1C + .4byte _080EBB22 + .4byte _080EBB28 + .4byte _080EBB2E + .4byte _080EBB3E + .4byte _080EBB4C + .4byte _080EBB5C + .4byte _080EBB6C + .4byte _080EBB7C + .4byte _080EBB90 + .4byte _080EBBA0 +_080EBABC: + movs r0, 0 + strb r0, [r1] +_080EBAC0: + bl is_c1_link_related_active + ldr r3, _080EBAF0 + ldr r2, _080EBAF4 + adds r1, r3, r2 + strb r0, [r1] + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080EBBC0 + ldr r1, _080EBAF8 + adds r0, r3, r1 + strb r2, [r0] + ldr r1, _080EBAFC + ldr r2, _080EBB00 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, _080EBB04 + bl SetMainCallback2 + b _080EBBC0 + .align 2, 0 +_080EBAF0: .4byte 0x02000000 +_080EBAF4: .4byte 0x00006dac +_080EBAF8: .4byte 0x00006dab +_080EBAFC: .4byte gMain +_080EBB00: .4byte 0x0000043c +_080EBB04: .4byte sub_80EBBE8 +_080EBB08: + movs r0, 0 + bl SetVBlankCallback + b _080EBBC0 +_080EBB10: + bl ResetPaletteFade + b _080EBBC0 +_080EBB16: + bl ResetSpriteData + b _080EBBC0 +_080EBB1C: + bl FreeAllSpritePalettes + b _080EBBC0 +_080EBB22: + bl ResetTasks + b _080EBBC0 +_080EBB28: + bl remove_some_task + b _080EBBC0 +_080EBB2E: + bl sub_80F1A90 + ldr r1, _080EBB44 + ldr r0, _080EBB48 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080EBB3E: + bl sub_80F1AC4 + b _080EBB80 + .align 2, 0 +_080EBB44: .4byte gMain +_080EBB48: .4byte 0x0000043c +_080EBB4C: + bl sub_80F2688 + ldr r1, _080EBB64 + ldr r2, _080EBB68 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080EBB5C: + bl sub_80F26BC + b _080EBB80 + .align 2, 0 +_080EBB64: .4byte gMain +_080EBB68: .4byte 0x0000043c +_080EBB6C: + bl sub_80F36F0 + ldr r1, _080EBB88 + ldr r0, _080EBB8C + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080EBB7C: + bl sub_80F3724 +_080EBB80: + lsls r0, 24 + cmp r0, 0 + bne _080EBBCC + b _080EBBC0 + .align 2, 0 +_080EBB88: .4byte gMain +_080EBB8C: .4byte 0x0000043c +_080EBB90: + bl sub_80EBC10 + ldr r0, _080EBB9C + bl sub_80EBDBC + b _080EBBC0 + .align 2, 0 +_080EBB9C: .4byte sub_80EBDD8 +_080EBBA0: + ldr r0, _080EBBD0 + ldr r1, _080EBBD4 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + movs r0, 0x6E + bl PlaySE + ldr r0, _080EBBD8 + bl SetMainCallback2 + ldr r0, _080EBBDC + bl SetVBlankCallback + bl sub_80F1A74 +_080EBBC0: + ldr r1, _080EBBE0 + ldr r2, _080EBBE4 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080EBBCC: + pop {r0} + bx r0 + .align 2, 0 +_080EBBD0: .4byte 0x02000000 +_080EBBD4: .4byte 0x00006dab +_080EBBD8: .4byte sub_80EBD90 +_080EBBDC: .4byte sub_80EBD18 +_080EBBE0: .4byte gMain +_080EBBE4: .4byte 0x0000043c + thumb_func_end sub_80EBA5C + + thumb_func_start sub_80EBBE8 +sub_80EBBE8: @ 80EBBE8 + push {r4,lr} + ldr r0, _080EBC08 + ldr r2, _080EBC0C + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _080EBC02 + adds r4, r1, 0 +_080EBBF8: + bl sub_80EBA5C + ldrb r0, [r4] + cmp r0, 0 + beq _080EBBF8 +_080EBC02: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EBC08: .4byte 0x02000000 +_080EBC0C: .4byte 0x00006dab + thumb_func_end sub_80EBBE8 + + thumb_func_start sub_80EBC10 +sub_80EBC10: @ 80EBC10 + push {r4-r7,lr} + ldr r1, _080EBC7C + movs r0, 0x14 + strh r0, [r1] + bl CalculatePlayerPartyCount + ldr r2, _080EBC80 + ldr r1, _080EBC84 + adds r3, r2, r1 + movs r1, 0 + strb r0, [r3] + ldr r3, _080EBC88 + adds r0, r2, r3 + strb r1, [r0] + ldr r3, _080EBC8C + adds r0, r2, r3 + strb r1, [r0] + ldr r3, _080EBC90 + adds r0, r2, r3 + str r1, [r0] + ldr r3, _080EBC94 + adds r0, r2, r3 + str r1, [r0] + movs r3, 0 + ldr r0, _080EBC98 + adds r7, r2, r0 + mov r12, r2 + movs r6, 0 + ldr r5, _080EBC9C + movs r4, 0x9B +_080EBC4C: + adds r0, r3, r7 + strb r6, [r0] + lsls r1, r3, 2 + adds r1, r2 + adds r0, r1, r5 + strh r4, [r0] + ldr r0, _080EBCA0 + adds r1, r0 + movs r0, 0x5B + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x4 + bls _080EBC4C + ldr r1, _080EBCA4 + add r1, r12 + movs r0, 0 + strb r0, [r1] + bl sub_80EBCA8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EBC7C: .4byte gKeyRepeatStartDelay +_080EBC80: .4byte 0x02000000 +_080EBC84: .4byte 0x00008828 +_080EBC88: .4byte 0x00006ddc +_080EBC8C: .4byte 0x00009344 +_080EBC90: .4byte 0x00008768 +_080EBC94: .4byte 0x0000ced0 +_080EBC98: .4byte 0x00008fff +_080EBC9C: .4byte 0x00009040 +_080EBCA0: .4byte 0x00009042 +_080EBCA4: .4byte 0x00006e95 + thumb_func_end sub_80EBC10 + + thumb_func_start sub_80EBCA8 +sub_80EBCA8: @ 80EBCA8 + push {r4,lr} + ldr r4, _080EBCDC + ldr r0, _080EBCE0 + adds r1, r4, r0 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080EBCE4 + adds r1, r4, r0 + movs r0, 0x2 + strb r0, [r1] + ldr r0, _080EBCE8 + adds r1, r4, r0 + movs r0, 0x3 + strb r0, [r1] + ldr r0, _080EBCEC + bl FlagGet + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080EBCF4 + ldr r0, _080EBCF0 + adds r1, r4, r0 + movs r0, 0x4 + strb r0, [r1] + b _080EBCFA + .align 2, 0 +_080EBCDC: .4byte 0x02000000 +_080EBCE0: .4byte 0x00006db2 +_080EBCE4: .4byte 0x00006db3 +_080EBCE8: .4byte 0x00006db4 +_080EBCEC: .4byte 0x0000083b +_080EBCF0: .4byte 0x00006db5 +_080EBCF4: + ldr r1, _080EBD0C + adds r0, r4, r1 + strb r2, [r0] +_080EBCFA: + ldr r0, _080EBD10 + ldr r1, _080EBD14 + adds r0, r1 + movs r1, 0x5 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EBD0C: .4byte 0x00006db5 +_080EBD10: .4byte 0x02000000 +_080EBD14: .4byte 0x00006db6 + thumb_func_end sub_80EBCA8 + + thumb_func_start sub_80EBD18 +sub_80EBD18: @ 80EBD18 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_80F1FF0 + pop {r0} + bx r0 + thumb_func_end sub_80EBD18 + + thumb_func_start sub_80EBD30 +sub_80EBD30: @ 80EBD30 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_80FB260 + bl sub_80EFE7C + pop {r0} + bx r0 + thumb_func_end sub_80EBD30 + + thumb_func_start sub_80EBD4C +sub_80EBD4C: @ 80EBD4C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_80F5BF0 + bl sub_8089668 + pop {r0} + bx r0 + thumb_func_end sub_80EBD4C + + thumb_func_start sub_80EBD68 +sub_80EBD68: @ 80EBD68 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_80F6F64 + pop {r0} + bx r0 + thumb_func_end sub_80EBD68 + + thumb_func_start sub_80EBD80 +sub_80EBD80: @ 80EBD80 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + pop {r0} + bx r0 + thumb_func_end sub_80EBD80 + + thumb_func_start sub_80EBD90 +sub_80EBD90: @ 80EBD90 + push {lr} + ldr r0, _080EBDB8 + movs r1, 0xC0 + lsls r1, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + bl UpdatePaletteFade + bl sub_80F19FC + pop {r0} + bx r0 + .align 2, 0 +_080EBDB8: .4byte 0x02000000 + thumb_func_end sub_80EBD90 + + thumb_func_start sub_80EBDBC +sub_80EBDBC: @ 80EBDBC + ldr r2, _080EBDD4 + movs r3, 0xC0 + lsls r3, 2 + adds r1, r2, r3 + str r0, [r1] + movs r0, 0xC1 + lsls r0, 2 + adds r1, r2, r0 + movs r0, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_080EBDD4: .4byte 0x02000000 + thumb_func_end sub_80EBDBC + + thumb_func_start sub_80EBDD8 +sub_80EBDD8: @ 80EBDD8 + push {lr} + sub sp, 0x4 + ldr r1, _080EBDF8 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0x11 + bls _080EBDEE + b _080EC000 +_080EBDEE: + lsls r0, 2 + ldr r1, _080EBDFC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EBDF8: .4byte 0x02000000 +_080EBDFC: .4byte _080EBE00 + .align 2, 0 +_080EBE00: + .4byte _080EBE48 + .4byte _080EBE80 + .4byte _080EBE92 + .4byte _080EBEAC + .4byte _080EBEC0 + .4byte _080EBED2 + .4byte _080EBEF0 + .4byte _080EBF04 + .4byte _080EBF18 + .4byte _080EBF2C + .4byte _080EBF48 + .4byte _080EBF54 + .4byte _080EBF74 + .4byte _080EBF88 + .4byte _080EBFA0 + .4byte _080EBFB4 + .4byte _080EBFD0 + .4byte _080EBFE8 +_080EBE48: + movs r0, 0 + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + ldr r1, _080EBE74 + ldr r3, _080EBE78 + adds r0, r1, r3 + ldrb r2, [r0] + subs r3, 0x2F + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080EBE7C + adds r2, r1, r0 + movs r0, 0x5 + strb r0, [r2] + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EBFDC + .align 2, 0 +_080EBE74: .4byte 0x02000000 +_080EBE78: .4byte 0x00006ddc +_080EBE7C: .4byte 0x00006dae +_080EBE80: + bl sub_80F3FF0 + ldr r1, _080EBEA8 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EBE92: + bl sub_80F4024 + lsls r0, 24 + cmp r0, 0 + beq _080EBE9E + b _080EC000 +_080EBE9E: + ldr r1, _080EBEA8 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EBFDC + .align 2, 0 +_080EBEA8: .4byte 0x02000000 +_080EBEAC: + bl sub_80F2598 + ldr r1, _080EBEBC + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EBFDC + .align 2, 0 +_080EBEBC: .4byte 0x02000000 +_080EBEC0: + bl sub_80EEE20 + ldr r1, _080EBEEC + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EBED2: + bl sub_80EEE54 + lsls r0, 24 + cmp r0, 0 + beq _080EBEDE + b _080EC000 +_080EBEDE: + bl sub_80EEE08 + ldr r1, _080EBEEC + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EBFDC + .align 2, 0 +_080EBEEC: .4byte 0x02000000 +_080EBEF0: + movs r0, 0 + bl sub_80EF248 + ldr r1, _080EBF14 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EBF04: + movs r0, 0 + bl sub_80EF284 + lsls r0, 24 + cmp r0, 0 + beq _080EBF12 + b _080EC000 +_080EBF12: + b _080EBFD4 + .align 2, 0 +_080EBF14: .4byte 0x02000000 +_080EBF18: + movs r0, 0 + bl sub_80F1B8C + ldr r1, _080EBF44 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EBF2C: + movs r0, 0 + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + bne _080EC000 + ldr r1, _080EBF44 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EBFDC + .align 2, 0 +_080EBF44: .4byte 0x02000000 +_080EBF48: + ldr r0, _080EBF50 + bl SetVBlankCallback + b _080EBFD4 + .align 2, 0 +_080EBF50: .4byte sub_80EBD18 +_080EBF54: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r1, _080EBF70 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EBFDC + .align 2, 0 +_080EBF70: .4byte 0x02000000 +_080EBF74: + movs r0, 0 + bl sub_80EED2C + ldr r1, _080EBF84 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EBFDC + .align 2, 0 +_080EBF84: .4byte 0x02000000 +_080EBF88: + ldr r0, _080EBF9C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EC000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r2, r3 + b _080EBFDC + .align 2, 0 +_080EBF9C: .4byte gPaletteFade +_080EBFA0: + movs r0, 0 + bl sub_80F2C80 + ldr r1, _080EBFCC + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EBFB4: + movs r0, 0 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080EC000 + ldr r1, _080EBFCC + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EBFDC + .align 2, 0 +_080EBFCC: .4byte 0x02000000 +_080EBFD0: + bl sub_80F1DF0 +_080EBFD4: + ldr r1, _080EBFE4 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 +_080EBFDC: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EC000 + .align 2, 0 +_080EBFE4: .4byte 0x02000000 +_080EBFE8: + bl sub_80F1E50 + lsls r0, 24 + cmp r0, 0 + bne _080EC000 + movs r0, 0 + movs r1, 0 + bl sub_80EF428 + ldr r0, _080EC008 + bl sub_80EBDBC +_080EC000: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080EC008: .4byte sub_80EC268 + thumb_func_end sub_80EBDD8 + + thumb_func_start sub_80EC00C +sub_80EC00C: @ 80EC00C + push {r4,lr} + sub sp, 0x4 + ldr r1, _080EC02C + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0xD + bls _080EC022 + b _080EC1FA +_080EC022: + lsls r0, 2 + ldr r1, _080EC030 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EC02C: .4byte 0x02000000 +_080EC030: .4byte _080EC034 + .align 2, 0 +_080EC034: + .4byte _080EC06C + .4byte _080EC0C0 + .4byte _080EC0D4 + .4byte _080EC0F0 + .4byte _080EC104 + .4byte _080EC120 + .4byte _080EC12A + .4byte _080EC154 + .4byte _080EC168 + .4byte _080EC180 + .4byte _080EC194 + .4byte _080EC1A8 + .4byte _080EC1C4 + .4byte _080EC1DC +_080EC06C: + bl sub_80EEF78 + lsls r0, 24 + cmp r0, 0 + beq _080EC078 + b _080EC1FA +_080EC078: + ldr r0, _080EC0AC + bl SetVBlankCallback + bl sub_80EED1C + ldr r4, _080EC0B0 + ldr r1, _080EC0B4 + adds r0, r4, r1 + ldrb r1, [r0] + ldr r2, _080EC0B8 + adds r0, r4, r2 + strb r1, [r0] + ldr r0, _080EC0BC + adds r1, r4, r0 + movs r0, 0x5 + strb r0, [r1] + bl sub_80EEE08 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r1 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EC1FA + .align 2, 0 +_080EC0AC: .4byte sub_80EBD80 +_080EC0B0: .4byte 0x02000000 +_080EC0B4: .4byte 0x00006ddc +_080EC0B8: .4byte 0x00006dad +_080EC0BC: .4byte 0x00006dae +_080EC0C0: + movs r0, 0 + bl sub_80EF248 + ldr r1, _080EC0EC + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EC0D4: + movs r0, 0 + bl sub_80EF284 + lsls r0, 24 + cmp r0, 0 + beq _080EC0E2 + b _080EC1FA +_080EC0E2: + ldr r1, _080EC0EC + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EC1D0 + .align 2, 0 +_080EC0EC: .4byte 0x02000000 +_080EC0F0: + movs r0, 0 + bl sub_80F1B8C + ldr r1, _080EC11C + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EC104: + movs r0, 0 + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + beq _080EC112 + b _080EC1FA +_080EC112: + ldr r1, _080EC11C + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EC1D0 + .align 2, 0 +_080EC11C: .4byte 0x02000000 +_080EC120: + bl sub_8055870 + cmp r0, 0 + bne _080EC1FA + b _080EC1C8 +_080EC12A: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080EC150 + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EC1D0 + .align 2, 0 +_080EC150: .4byte sub_80EBD18 +_080EC154: + movs r0, 0 + bl sub_80EED2C + ldr r1, _080EC164 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EC1D0 + .align 2, 0 +_080EC164: .4byte 0x02000000 +_080EC168: + ldr r0, _080EC17C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EC1FA + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EC1D0 + .align 2, 0 +_080EC17C: .4byte gPaletteFade +_080EC180: + bl sub_80F2598 + ldr r1, _080EC190 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EC1D0 + .align 2, 0 +_080EC190: .4byte 0x02000000 +_080EC194: + movs r0, 0 + bl sub_80F2C80 + ldr r1, _080EC1C0 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EC1A8: + movs r0, 0 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080EC1FA + ldr r1, _080EC1C0 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EC1D0 + .align 2, 0 +_080EC1C0: .4byte 0x02000000 +_080EC1C4: + bl sub_80F1DF0 +_080EC1C8: + ldr r1, _080EC1D8 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 +_080EC1D0: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EC1FA + .align 2, 0 +_080EC1D8: .4byte 0x02000000 +_080EC1DC: + bl sub_80F1E50 + lsls r0, 24 + cmp r0, 0 + bne _080EC1FA + ldr r0, _080EC204 + ldr r1, _080EC208 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0 + bl sub_80EF428 + ldr r0, _080EC20C + bl sub_80EBDBC +_080EC1FA: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC204: .4byte 0x02000000 +_080EC208: .4byte 0x00006dad +_080EC20C: .4byte sub_80EC268 + thumb_func_end sub_80EC00C + + thumb_func_start sub_80EC210 +sub_80EC210: @ 80EC210 + push {r4,r5,lr} + ldr r5, _080EC228 + movs r0, 0xC1 + lsls r0, 2 + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, 0 + beq _080EC22C + cmp r0, 0x1 + beq _080EC24C + b _080EC25C + .align 2, 0 +_080EC228: .4byte 0x02000000 +_080EC22C: + movs r0, 0x1 + bl sub_80F2D04 + ldr r1, _080EC248 + adds r0, r5, r1 + ldrb r1, [r0] + movs r0, 0 + movs r2, 0 + bl sub_80EE9C0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EC25C + .align 2, 0 +_080EC248: .4byte 0x00006ddc +_080EC24C: + bl sub_80EEA0C + lsls r0, 24 + cmp r0, 0 + bne _080EC25C + ldr r0, _080EC264 + bl sub_80EBDBC +_080EC25C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EC264: .4byte sub_80EC268 + thumb_func_end sub_80EC210 + + thumb_func_start sub_80EC268 +sub_80EC268: @ 80EC268 + push {r4-r6,lr} + ldr r4, _080EC290 + movs r0, 0xC1 + lsls r0, 2 + adds r6, r4, r0 + ldrh r0, [r6] + cmp r0, 0x3 + bne _080EC27A + b _080EC3BE +_080EC27A: + cmp r0, 0x3 + bgt _080EC294 + cmp r0, 0x1 + bne _080EC284 + b _080EC3A2 +_080EC284: + cmp r0, 0x1 + ble _080EC28A + b _080EC3B4 +_080EC28A: + cmp r0, 0 + beq _080EC2AE + b _080EC492 + .align 2, 0 +_080EC290: .4byte 0x02000000 +_080EC294: + cmp r0, 0x6 + bne _080EC29A + b _080EC414 +_080EC29A: + cmp r0, 0x6 + bgt _080EC2A6 + cmp r0, 0x4 + bne _080EC2A4 + b _080EC3DC +_080EC2A4: + b _080EC492 +_080EC2A6: + cmp r0, 0xFF + bne _080EC2AC + b _080EC44C +_080EC2AC: + b _080EC492 +_080EC2AE: + bl sub_80EEC10 + lsls r0, 24 + cmp r0, 0 + beq _080EC2D4 + movs r0, 0x5 + bl PlaySE + ldr r1, _080EC2D0 + adds r0, r4, r1 + ldrb r1, [r0] + movs r0, 0 + bl sub_80EF428 + bl sub_80EED9C + b _080EC492 + .align 2, 0 +_080EC2D0: .4byte 0x00006dad +_080EC2D4: + ldr r0, _080EC310 + ldrh r1, [r0, 0x2E] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080EC394 + ldr r2, _080EC314 + adds r0, r4, r2 + ldrb r1, [r0] + adds r2, 0x2F + adds r0, r4, r2 + strb r1, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + subs r2, 0x2A + adds r1, r4, r2 + adds r0, r1 + ldrb r0, [r0] + subs r0, 0x1 + cmp r0, 0x4 + bls _080EC304 + b _080EC492 +_080EC304: + lsls r0, 2 + ldr r1, _080EC318 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EC310: .4byte gMain +_080EC314: .4byte 0x00006dad +_080EC318: .4byte _080EC31C + .align 2, 0 +_080EC31C: + .4byte _080EC330 + .4byte _080EC344 + .4byte _080EC380 + .4byte _080EC36C + .4byte _080EC358 +_080EC330: + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC340 + bl sub_80EBDBC + b _080EC492 + .align 2, 0 +_080EC340: .4byte sub_80EC4A0 +_080EC344: + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC354 + bl sub_80EBDBC + b _080EC492 + .align 2, 0 +_080EC354: .4byte sub_80EC81C +_080EC358: + ldr r0, _080EC368 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0] + b _080EC492 + .align 2, 0 +_080EC368: .4byte 0x02000000 +_080EC36C: + ldr r0, _080EC37C + movs r2, 0xC1 + lsls r2, 2 + adds r0, r2 + movs r1, 0x2 + strh r1, [r0] + b _080EC492 + .align 2, 0 +_080EC37C: .4byte 0x02000000 +_080EC380: + ldr r0, _080EC390 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x6 + strh r1, [r0] + b _080EC492 + .align 2, 0 +_080EC390: .4byte 0x02000000 +_080EC394: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _080EC39E + b _080EC492 +_080EC39E: + strh r2, [r6] + b _080EC492 +_080EC3A2: + bl sub_80F208C + ldr r0, _080EC3B0 + bl sub_80EBDBC + b _080EC492 + .align 2, 0 +_080EC3B0: .4byte sub_80EE96C +_080EC3B4: + bl sub_80F6208 + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] +_080EC3BE: + bl sub_80F6250 + lsls r0, 24 + cmp r0, 0 + bne _080EC492 + ldr r1, _080EC3D8 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EC492 + .align 2, 0 +_080EC3D8: .4byte 0x02000000 +_080EC3DC: + bl sub_8055870 + cmp r0, 0 + bne _080EC492 + ldr r1, _080EC400 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080EC408 + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC404 + bl sub_80EBDBC + b _080EC492 + .align 2, 0 +_080EC400: .4byte 0x00008fe8 +_080EC404: .4byte sub_80EDB88 +_080EC408: + movs r0, 0x20 + bl PlaySE + movs r0, 0 + movs r1, 0x5 + b _080EC442 +_080EC414: + bl sub_80F6C20 + ldr r2, _080EC430 + adds r0, r4, r2 + ldrh r0, [r0] + cmp r0, 0 + beq _080EC438 + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC434 + bl sub_80EBDBC + b _080EC492 + .align 2, 0 +_080EC430: .4byte 0x0000d158 +_080EC434: .4byte sub_80EE3D8 +_080EC438: + movs r0, 0x20 + bl PlaySE + movs r0, 0 + movs r1, 0x6 +_080EC442: + bl sub_80EF428 + movs r0, 0xFF + strh r0, [r6] + b _080EC492 +_080EC44C: + bl sub_80EEC10 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _080EC478 + movs r0, 0x5 + bl PlaySE + ldr r1, _080EC474 + adds r0, r4, r1 + ldrb r1, [r0] + movs r0, 0 + bl sub_80EF428 + movs r0, 0 + strh r0, [r6] + bl sub_80EED9C + b _080EC492 + .align 2, 0 +_080EC474: .4byte 0x00006dad +_080EC478: + ldr r0, _080EC498 + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080EC492 + ldr r2, _080EC49C + adds r0, r4, r2 + ldrb r1, [r0] + movs r0, 0 + bl sub_80EF428 + strh r5, [r6] +_080EC492: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EC498: .4byte gMain +_080EC49C: .4byte 0x00006dad + thumb_func_end sub_80EC268 + + thumb_func_start sub_80EC4A0 +sub_80EC4A0: @ 80EC4A0 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080EC4C0 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0xE + bls _080EC4B6 + b _080EC66A +_080EC4B6: + lsls r0, 2 + ldr r1, _080EC4C4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EC4C0: .4byte 0x02000000 +_080EC4C4: .4byte _080EC4C8 + .align 2, 0 +_080EC4C8: + .4byte _080EC504 + .4byte _080EC510 + .4byte _080EC544 + .4byte _080EC578 + .4byte _080EC594 + .4byte _080EC5A8 + .4byte _080EC5AE + .4byte _080EC5C0 + .4byte _080EC5D0 + .4byte _080EC5E4 + .4byte _080EC5F8 + .4byte _080EC614 + .4byte _080EC61E + .4byte _080EC63E + .4byte _080EC658 +_080EC504: + bl sub_80F1E84 + movs r0, 0 + bl sub_80F2D04 + b _080EC644 +_080EC510: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080EC51C + b _080EC66A +_080EC51C: + ldr r0, _080EC53C + ldrb r1, [r0, 0x15] + movs r0, 0x8 + ands r0, r1 + movs r1, 0x8 + cmp r0, 0 + beq _080EC52C + movs r1, 0x7 +_080EC52C: + adds r0, r1, 0 + bl sub_80EEFBC + ldr r1, _080EC540 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EC64C + .align 2, 0 +_080EC53C: .4byte gSaveBlock2 +_080EC540: .4byte 0x02000000 +_080EC544: + bl sub_80EEF34 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080EC552 + b _080EC66A +_080EC552: + ldr r4, _080EC574 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EC64C + .align 2, 0 +_080EC574: .4byte 0x02000000 +_080EC578: + ldr r0, _080EC590 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EC66A + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + b _080EC644 + .align 2, 0 +_080EC590: .4byte gPaletteFade +_080EC594: + bl sub_80F2620 + ldr r1, _080EC5A4 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EC64C + .align 2, 0 +_080EC5A4: .4byte 0x02000000 +_080EC5A8: + bl sub_80EF814 + b _080EC644 +_080EC5AE: + bl sub_80EF840 + ldr r1, _080EC5CC + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EC5C0: + bl sub_80EF874 + lsls r0, 24 + cmp r0, 0 + bne _080EC66A + b _080EC644 + .align 2, 0 +_080EC5CC: .4byte 0x02000000 +_080EC5D0: + movs r0, 0x4 + bl sub_80F2C80 + ldr r1, _080EC5F4 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EC5E4: + movs r0, 0x4 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080EC66A + b _080EC644 + .align 2, 0 +_080EC5F4: .4byte 0x02000000 +_080EC5F8: + bl sub_80F2DD8 + ldr r0, _080EC60C + bl SetVBlankCallback + ldr r1, _080EC610 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EC64C + .align 2, 0 +_080EC60C: .4byte sub_80EBD30 +_080EC610: .4byte 0x02000000 +_080EC614: + bl sub_8055870 + cmp r0, 0 + bne _080EC66A + b _080EC644 +_080EC61E: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EC64C +_080EC63E: + movs r0, 0x1 + bl sub_80EED2C +_080EC644: + ldr r1, _080EC654 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080EC64C: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EC66A + .align 2, 0 +_080EC654: .4byte 0x02000000 +_080EC658: + ldr r0, _080EC674 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EC66A + ldr r0, _080EC678 + bl sub_80EBDBC +_080EC66A: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC674: .4byte gPaletteFade +_080EC678: .4byte sub_80EC67C + thumb_func_end sub_80EC4A0 + + thumb_func_start sub_80EC67C +sub_80EC67C: @ 80EC67C + push {r4,r5,lr} + sub sp, 0x4 + ldr r1, _080EC69C + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x5 + bls _080EC692 + b _080EC800 +_080EC692: + lsls r0, 2 + ldr r1, _080EC6A0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EC69C: .4byte 0x02000000 +_080EC6A0: .4byte _080EC6A4 + .align 2, 0 +_080EC6A4: + .4byte _080EC6BC + .4byte _080EC718 + .4byte _080EC746 + .4byte _080EC77C + .4byte _080EC7A0 + .4byte _080EC7C4 +_080EC6BC: + bl sub_80FAB60 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080EC6E2 + cmp r0, 0x3 + bgt _080EC6D2 + cmp r0, 0x1 + beq _080EC6DC + b _080EC800 +_080EC6D2: + cmp r0, 0x4 + beq _080EC6E8 + cmp r0, 0x5 + beq _080EC700 + b _080EC800 +_080EC6DC: + bl sub_80EED9C + b _080EC800 +_080EC6E2: + bl sub_80EF9F8 + b _080EC800 +_080EC6E8: + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC6FC + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0] + b _080EC800 + .align 2, 0 +_080EC6FC: .4byte 0x02000000 +_080EC700: + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC714 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r2 + movs r1, 0x4 + strh r1, [r0] + b _080EC800 + .align 2, 0 +_080EC714: .4byte 0x02000000 +_080EC718: + ldr r1, _080EC730 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EC734 + bl sub_80FAEC4 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EC7BC + .align 2, 0 +_080EC730: .4byte 0x00006e90 +_080EC734: + movs r0, 0x1 + bl sub_80EFBDC + lsls r0, 24 + cmp r0, 0 + bne _080EC800 + bl sub_80FAEC4 + b _080EC7B6 +_080EC746: + bl sub_80FAFC0 + lsls r0, 24 + cmp r0, 0 + bne _080EC800 + ldr r5, _080EC76C + ldr r1, _080EC770 + adds r0, r5, r1 + ldrb r4, [r0] + cmp r4, 0 + bne _080EC774 + bl sub_80EFBB0 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r5, r2 + strh r4, [r0] + b _080EC800 + .align 2, 0 +_080EC76C: .4byte 0x02000000 +_080EC770: .4byte 0x00006e90 +_080EC774: + movs r0, 0xC1 + lsls r0, 2 + adds r1, r5, r0 + b _080EC7BC +_080EC77C: + movs r0, 0 + bl sub_80EFBDC + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080EC800 + bl sub_80EFBB0 + ldr r0, _080EC79C + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + strh r4, [r0] + b _080EC800 + .align 2, 0 +_080EC79C: .4byte 0x02000000 +_080EC7A0: + movs r2, 0xC2 + lsls r2, 2 + adds r0, r4, r2 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl BeginNormalPaletteFade +_080EC7B6: + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 +_080EC7BC: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EC800 +_080EC7C4: + ldr r0, _080EC808 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EC800 + bl sub_80F2DF4 + movs r0, 0x4 + bl sub_80F2D04 + ldr r3, _080EC80C + movs r2, 0 + ldr r0, _080EC810 + ldr r1, _080EC814 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080EC7EC + movs r2, 0x1 +_080EC7EC: + lsls r2, 3 + ldrb r1, [r3, 0x15] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x15] + ldr r0, _080EC818 + bl sub_80EBDBC +_080EC800: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EC808: .4byte gPaletteFade +_080EC80C: .4byte gSaveBlock2 +_080EC810: .4byte 0x02000000 +_080EC814: .4byte 0x00006e90 +_080EC818: .4byte sub_80EC00C + thumb_func_end sub_80EC67C + + thumb_func_start sub_80EC81C +sub_80EC81C: @ 80EC81C + push {r4,lr} + ldr r0, _080EC834 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0 + beq _080EC838 + cmp r0, 0x1 + beq _080EC850 + b _080EC860 + .align 2, 0 +_080EC834: .4byte 0x02000000 +_080EC838: + movs r0, 0 + bl sub_80F2D04 + movs r0, 0x1 + movs r1, 0 + movs r2, 0x1 + bl sub_80EE9C0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EC860 +_080EC850: + bl sub_80EEA0C + lsls r0, 24 + cmp r0, 0 + bne _080EC860 + ldr r0, _080EC868 + bl sub_80EBDBC +_080EC860: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC868: .4byte sub_80EC86C + thumb_func_end sub_80EC81C + + thumb_func_start sub_80EC86C +sub_80EC86C: @ 80EC86C + push {r4-r6,lr} + ldr r4, _080EC884 + movs r0, 0xC1 + lsls r0, 2 + adds r5, r4, r0 + ldrh r0, [r5] + cmp r0, 0 + beq _080EC888 + cmp r0, 0x1 + beq _080EC944 + b _080EC954 + .align 2, 0 +_080EC884: .4byte 0x02000000 +_080EC888: + bl sub_80EEC90 + lsls r0, 24 + cmp r0, 0 + beq _080EC8B0 + movs r0, 0x5 + bl PlaySE + ldr r1, _080EC8AC + adds r0, r4, r1 + ldrb r1, [r0] + movs r0, 0x1 + bl sub_80EF428 + bl sub_80EED9C + b _080EC954 + .align 2, 0 +_080EC8AC: .4byte 0x00006dad +_080EC8B0: + ldr r0, _080EC8E4 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080EC918 + movs r0, 0x5 + bl PlaySE + ldr r2, _080EC8E8 + adds r0, r4, r2 + ldrb r1, [r0] + adds r2, 0x43 + adds r0, r4, r2 + strb r1, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + beq _080EC900 + cmp r0, 0x1 + bgt _080EC8EC + cmp r0, 0 + beq _080EC8F2 + b _080EC954 + .align 2, 0 +_080EC8E4: .4byte gMain +_080EC8E8: .4byte 0x00006dad +_080EC8EC: + cmp r0, 0x2 + beq _080EC90C + b _080EC954 +_080EC8F2: + ldr r0, _080EC8FC + bl sub_80EBDBC + b _080EC954 + .align 2, 0 +_080EC8FC: .4byte sub_80ED620 +_080EC900: + ldr r0, _080EC908 + bl sub_80EBDBC + b _080EC954 + .align 2, 0 +_080EC908: .4byte sub_80EC960 +_080EC90C: + ldr r0, _080EC914 + bl sub_80EBDBC + b _080EC954 + .align 2, 0 +_080EC914: .4byte sub_80EC210 +_080EC918: + movs r6, 0x2 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080EC954 + movs r0, 0x5 + bl PlaySE + ldr r1, _080EC93C + adds r0, r4, r1 + strb r6, [r0] + ldr r2, _080EC940 + adds r0, r4, r2 + strb r6, [r0] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _080EC954 + .align 2, 0 +_080EC93C: .4byte 0x00006df0 +_080EC940: .4byte 0x00006dad +_080EC944: + bl sub_80F1E6C + lsls r0, 24 + cmp r0, 0 + bne _080EC954 + ldr r0, _080EC95C + bl sub_80EBDBC +_080EC954: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EC95C: .4byte sub_80EC210 + thumb_func_end sub_80EC86C + + thumb_func_start sub_80EC960 +sub_80EC960: @ 80EC960 + push {r4,lr} + ldr r0, _080EC978 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0 + beq _080EC97C + cmp r0, 0x1 + beq _080EC98E + b _080EC99E + .align 2, 0 +_080EC978: .4byte 0x02000000 +_080EC97C: + movs r0, 0x2 + movs r1, 0 + movs r2, 0x5 + bl sub_80EE9C0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EC99E +_080EC98E: + bl sub_80EEA0C + lsls r0, 24 + cmp r0, 0 + bne _080EC99E + ldr r0, _080EC9A4 + bl sub_80EBDBC +_080EC99E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC9A4: .4byte sub_80ECC08 + thumb_func_end sub_80EC960 + + thumb_func_start sub_80EC9A8 +sub_80EC9A8: @ 80EC9A8 + push {r4,r5,lr} + ldr r5, _080EC9C0 + movs r0, 0xC1 + lsls r0, 2 + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, 0 + beq _080EC9C4 + cmp r0, 0x1 + beq _080EC9E4 + b _080ECA00 + .align 2, 0 +_080EC9C0: .4byte 0x02000000 +_080EC9C4: + movs r0, 0x5 + bl sub_80F2D04 + ldr r1, _080EC9E0 + adds r0, r5, r1 + ldrb r1, [r0] + movs r0, 0x1 + movs r2, 0xC + bl sub_80EE9C0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080ECA00 + .align 2, 0 +_080EC9E0: .4byte 0x00006df0 +_080EC9E4: + bl sub_80EEA0C + lsls r0, 24 + cmp r0, 0 + bne _080ECA00 + ldr r0, _080ECA08 + bl sub_80EBDBC + ldr r1, _080ECA0C + adds r0, r5, r1 + ldrb r1, [r0] + movs r0, 0x1 + bl sub_80EF428 +_080ECA00: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ECA08: .4byte sub_80EC86C +_080ECA0C: .4byte 0x00006dad + thumb_func_end sub_80EC9A8 + + thumb_func_start sub_80ECA10 +sub_80ECA10: @ 80ECA10 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080ECA30 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0xD + bls _080ECA26 + b _080ECBF2 +_080ECA26: + lsls r0, 2 + ldr r1, _080ECA34 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ECA30: .4byte 0x02000000 +_080ECA34: .4byte _080ECA38 + .align 2, 0 +_080ECA38: + .4byte _080ECA70 + .4byte _080ECAC4 + .4byte _080ECAD8 + .4byte _080ECAF4 + .4byte _080ECB08 + .4byte _080ECB24 + .4byte _080ECB2E + .4byte _080ECB58 + .4byte _080ECB6C + .4byte _080ECB72 + .4byte _080ECB8C + .4byte _080ECBA0 + .4byte _080ECBBC + .4byte _080ECBD4 +_080ECA70: + bl sub_80EEF78 + lsls r0, 24 + cmp r0, 0 + beq _080ECA7C + b _080ECBF2 +_080ECA7C: + ldr r0, _080ECAB0 + bl SetVBlankCallback + bl sub_80EED1C + ldr r4, _080ECAB4 + ldr r1, _080ECAB8 + adds r0, r4, r1 + ldrb r1, [r0] + ldr r2, _080ECABC + adds r0, r4, r2 + strb r1, [r0] + ldr r0, _080ECAC0 + adds r1, r4, r0 + movs r0, 0x3 + strb r0, [r1] + bl sub_80EEE08 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r1 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080ECBF2 + .align 2, 0 +_080ECAB0: .4byte sub_80EBD80 +_080ECAB4: .4byte 0x02000000 +_080ECAB8: .4byte 0x00006df0 +_080ECABC: .4byte 0x00006dad +_080ECAC0: .4byte 0x00006dae +_080ECAC4: + movs r0, 0x1 + bl sub_80EF248 + ldr r1, _080ECAF0 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECAD8: + movs r0, 0x1 + bl sub_80EF284 + lsls r0, 24 + cmp r0, 0 + beq _080ECAE6 + b _080ECBF2 +_080ECAE6: + ldr r1, _080ECAF0 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECBC8 + .align 2, 0 +_080ECAF0: .4byte 0x02000000 +_080ECAF4: + movs r0, 0x1 + bl sub_80F1B8C + ldr r1, _080ECB20 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECB08: + movs r0, 0x1 + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + bne _080ECBF2 + ldr r1, _080ECB20 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECBC8 + .align 2, 0 +_080ECB20: .4byte 0x02000000 +_080ECB24: + bl sub_8055870 + cmp r0, 0 + bne _080ECBF2 + b _080ECBC0 +_080ECB2E: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ECB54 + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ECBC8 + .align 2, 0 +_080ECB54: .4byte sub_80EBD18 +_080ECB58: + movs r0, 0 + bl sub_80EED2C + ldr r1, _080ECB68 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECBC8 + .align 2, 0 +_080ECB68: .4byte 0x02000000 +_080ECB6C: + bl sub_80F2598 + b _080ECBC0 +_080ECB72: + ldr r0, _080ECB88 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ECBF2 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080ECBC8 + .align 2, 0 +_080ECB88: .4byte gPaletteFade +_080ECB8C: + movs r0, 0x1 + bl sub_80F2C80 + ldr r1, _080ECBB8 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECBA0: + movs r0, 0x1 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080ECBF2 + ldr r1, _080ECBB8 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECBC8 + .align 2, 0 +_080ECBB8: .4byte 0x02000000 +_080ECBBC: + bl sub_80F1DF0 +_080ECBC0: + ldr r1, _080ECBD0 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 +_080ECBC8: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ECBF2 + .align 2, 0 +_080ECBD0: .4byte 0x02000000 +_080ECBD4: + bl sub_80F1E50 + lsls r0, 24 + cmp r0, 0 + bne _080ECBF2 + ldr r0, _080ECBFC + ldr r1, _080ECC00 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + bl sub_80EF428 + ldr r0, _080ECC04 + bl sub_80EBDBC +_080ECBF2: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ECBFC: .4byte 0x02000000 +_080ECC00: .4byte 0x00006dad +_080ECC04: .4byte sub_80EC86C + thumb_func_end sub_80ECA10 + + thumb_func_start sub_80ECC08 +sub_80ECC08: @ 80ECC08 + push {r4,r5,lr} + ldr r4, _080ECC20 + movs r0, 0xC1 + lsls r0, 2 + adds r5, r4, r0 + ldrh r0, [r5] + cmp r0, 0 + beq _080ECC24 + cmp r0, 0x1 + bne _080ECC1E + b _080ECD64 +_080ECC1E: + b _080ECD74 + .align 2, 0 +_080ECC20: .4byte 0x02000000 +_080ECC24: + bl sub_80EEC90 + lsls r0, 24 + cmp r0, 0 + beq _080ECC4C + movs r0, 0x5 + bl PlaySE + ldr r1, _080ECC48 + adds r0, r4, r1 + ldrb r1, [r0] + movs r0, 0x2 + bl sub_80EF428 + bl sub_80EED9C + b _080ECD74 + .align 2, 0 +_080ECC48: .4byte 0x00006dad +_080ECC4C: + ldr r0, _080ECC78 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080ECC5A + b _080ECD40 +_080ECC5A: + movs r0, 0x5 + bl PlaySE + ldr r2, _080ECC7C + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x5 + bhi _080ECD0C + lsls r0, 2 + ldr r1, _080ECC80 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ECC78: .4byte gMain +_080ECC7C: .4byte 0x00006dad +_080ECC80: .4byte _080ECC84 + .align 2, 0 +_080ECC84: + .4byte _080ECC9C + .4byte _080ECCB0 + .4byte _080ECCC4 + .4byte _080ECCD8 + .4byte _080ECCEC + .4byte _080ECD00 +_080ECC9C: + ldr r0, _080ECCA8 + ldr r3, _080ECCAC + adds r0, r3 + movs r1, 0x16 + strb r1, [r0] + b _080ECD0C + .align 2, 0 +_080ECCA8: .4byte 0x02000000 +_080ECCAC: .4byte 0x000087d8 +_080ECCB0: + ldr r0, _080ECCBC + ldr r1, _080ECCC0 + adds r0, r1 + movs r1, 0x17 + strb r1, [r0] + b _080ECD0C + .align 2, 0 +_080ECCBC: .4byte 0x02000000 +_080ECCC0: .4byte 0x000087d8 +_080ECCC4: + ldr r0, _080ECCD0 + ldr r2, _080ECCD4 + adds r0, r2 + movs r1, 0x18 + strb r1, [r0] + b _080ECD0C + .align 2, 0 +_080ECCD0: .4byte 0x02000000 +_080ECCD4: .4byte 0x000087d8 +_080ECCD8: + ldr r0, _080ECCE4 + ldr r3, _080ECCE8 + adds r0, r3 + movs r1, 0x21 + strb r1, [r0] + b _080ECD0C + .align 2, 0 +_080ECCE4: .4byte 0x02000000 +_080ECCE8: .4byte 0x000087d8 +_080ECCEC: + ldr r0, _080ECCF8 + ldr r1, _080ECCFC + adds r0, r1 + movs r1, 0x2F + strb r1, [r0] + b _080ECD0C + .align 2, 0 +_080ECCF8: .4byte 0x02000000 +_080ECCFC: .4byte 0x000087d8 +_080ECD00: + ldr r0, _080ECD08 + bl sub_80EBDBC + b _080ECD74 + .align 2, 0 +_080ECD08: .4byte sub_80EC9A8 +_080ECD0C: + ldr r1, _080ECD2C + ldr r2, _080ECD30 + adds r0, r1, r2 + ldrb r2, [r0] + ldr r3, _080ECD34 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080ECD38 + adds r1, r0 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080ECD3C + bl sub_80EBDBC + b _080ECD74 + .align 2, 0 +_080ECD2C: .4byte 0x02000000 +_080ECD30: .4byte 0x00006dad +_080ECD34: .4byte 0x00006dfc +_080ECD38: .4byte 0x000076aa +_080ECD3C: .4byte sub_80ED01C +_080ECD40: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080ECD74 + movs r0, 0x5 + bl PlaySE + ldr r2, _080ECD60 + adds r1, r4, r2 + movs r0, 0x5 + strb r0, [r1] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _080ECD74 + .align 2, 0 +_080ECD60: .4byte 0x00006dad +_080ECD64: + bl sub_80F1E6C + lsls r0, 24 + cmp r0, 0 + bne _080ECD74 + ldr r0, _080ECD7C + bl sub_80EBDBC +_080ECD74: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ECD7C: .4byte sub_80EC9A8 + thumb_func_end sub_80ECC08 + + thumb_func_start sub_80ECD80 +sub_80ECD80: @ 80ECD80 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080ECDA0 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x14 + bls _080ECD96 + b _080ED006 +_080ECD96: + lsls r0, 2 + ldr r1, _080ECDA4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ECDA0: .4byte 0x02000000 +_080ECDA4: .4byte _080ECDA8 + .align 2, 0 +_080ECDA8: + .4byte _080ECDFC + .4byte _080ECE1A + .4byte _080ECE34 + .4byte _080ECE4C + .4byte _080ECE64 + .4byte _080ECE78 + .4byte _080ECE80 + .4byte _080ECEAC + .4byte _080ECEC0 + .4byte _080ECED4 + .4byte _080ECEE8 + .4byte _080ECF04 + .4byte _080ECF10 + .4byte _080ECF3C + .4byte _080ECF44 + .4byte _080ECF58 + .4byte _080ECF70 + .4byte _080ECF84 + .4byte _080ECFB0 + .4byte _080ECFC4 + .4byte _080ECFE8 +_080ECDFC: + movs r3, 0xC2 + lsls r3, 2 + adds r0, r4, r3 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080ECFDC +_080ECE1A: + ldr r0, _080ECE30 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080ECE28 + b _080ED006 +_080ECE28: + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ECFDC + .align 2, 0 +_080ECE30: .4byte gPaletteFade +_080ECE34: + bl sub_80EEF78 + lsls r0, 24 + cmp r0, 0 + beq _080ECE40 + b _080ED006 +_080ECE40: + ldr r0, _080ECE48 + bl SetVBlankCallback + b _080ECFD4 + .align 2, 0 +_080ECE48: .4byte sub_80EBD80 +_080ECE4C: + bl sub_80EED1C + bl sub_80F3130 + ldr r1, _080ECE60 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECFDC + .align 2, 0 +_080ECE60: .4byte 0x02000000 +_080ECE64: + movs r0, 0x1 + bl sub_80F2D6C + ldr r1, _080ECE74 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080ECFDC + .align 2, 0 +_080ECE74: .4byte 0x02000000 +_080ECE78: + movs r0, 0x5 + bl sub_80F2D6C + b _080ECFD4 +_080ECE80: + ldr r1, _080ECEA0 + adds r0, r4, r1 + ldrb r1, [r0] + ldr r2, _080ECEA4 + adds r0, r4, r2 + strb r1, [r0] + ldr r3, _080ECEA8 + adds r1, r4, r3 + movs r0, 0x6 + strb r0, [r1] + bl sub_80EEE08 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080ECFDC + .align 2, 0 +_080ECEA0: .4byte 0x00006dfc +_080ECEA4: .4byte 0x00006dad +_080ECEA8: .4byte 0x00006dae +_080ECEAC: + movs r0, 0x2 + bl sub_80EF248 + ldr r1, _080ECED0 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECEC0: + movs r0, 0x2 + bl sub_80EF284 + lsls r0, 24 + cmp r0, 0 + beq _080ECECE + b _080ED006 +_080ECECE: + b _080ECFD4 + .align 2, 0 +_080ECED0: .4byte 0x02000000 +_080ECED4: + movs r0, 0x2 + bl sub_80F1B8C + ldr r1, _080ECF00 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECEE8: + movs r0, 0x2 + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + beq _080ECEF6 + b _080ED006 +_080ECEF6: + ldr r1, _080ECF00 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080ECFDC + .align 2, 0 +_080ECF00: .4byte 0x02000000 +_080ECF04: + bl sub_8055870 + cmp r0, 0 + beq _080ECF0E + b _080ED006 +_080ECF0E: + b _080ECFD4 +_080ECF10: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ECF38 + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ECFDC + .align 2, 0 +_080ECF38: .4byte sub_80EBD18 +_080ECF3C: + movs r0, 0 + bl sub_80EED2C + b _080ECFD4 +_080ECF44: + bl sub_80F2598 + ldr r1, _080ECF54 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECFDC + .align 2, 0 +_080ECF54: .4byte 0x02000000 +_080ECF58: + ldr r0, _080ECF6C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ED006 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ECFDC + .align 2, 0 +_080ECF6C: .4byte gPaletteFade +_080ECF70: + movs r0, 0x1 + bl sub_80F2C80 + ldr r1, _080ECFA8 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECF84: + movs r0, 0x1 + bl sub_80F2CBC + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080ED006 + ldr r0, _080ECFA8 + ldr r3, _080ECFAC + adds r1, r0, r3 + strh r2, [r1] + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] + b _080ED006 + .align 2, 0 +_080ECFA8: .4byte 0x02000000 +_080ECFAC: .4byte 0x00000306 +_080ECFB0: + movs r0, 0x5 + bl sub_80F2C80 + ldr r1, _080ECFE4 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECFC4: + movs r0, 0x5 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080ED006 + bl sub_80F1DF0 +_080ECFD4: + ldr r1, _080ECFE4 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 +_080ECFDC: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ED006 + .align 2, 0 +_080ECFE4: .4byte 0x02000000 +_080ECFE8: + bl sub_80F1E50 + lsls r0, 24 + cmp r0, 0 + bne _080ED006 + ldr r0, _080ED010 + ldr r1, _080ED014 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + bl sub_80EF428 + ldr r0, _080ED018 + bl sub_80EBDBC +_080ED006: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED010: .4byte 0x02000000 +_080ED014: .4byte 0x00006dad +_080ED018: .4byte sub_80ECC08 + thumb_func_end sub_80ECD80 + + thumb_func_start sub_80ED01C +sub_80ED01C: @ 80ED01C + push {r4,lr} + sub sp, 0x4 + ldr r1, _080ED03C + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x13 + bls _080ED032 + b _080ED308 +_080ED032: + lsls r0, 2 + ldr r1, _080ED040 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED03C: .4byte 0x02000000 +_080ED040: .4byte _080ED044 + .align 2, 0 +_080ED044: + .4byte _080ED094 + .4byte _080ED0B4 + .4byte _080ED0D4 + .4byte _080ED108 + .4byte _080ED138 + .4byte _080ED14C + .4byte _080ED15E + .4byte _080ED18C + .4byte _080ED1AC + .4byte _080ED1C4 + .4byte _080ED1D8 + .4byte _080ED1F4 + .4byte _080ED208 + .4byte _080ED220 + .4byte _080ED24C + .4byte _080ED260 + .4byte _080ED28C + .4byte _080ED2A0 + .4byte _080ED2CC + .4byte _080ED2EA +_080ED094: + bl sub_80F1E84 + movs r0, 0x1 + bl sub_80F2D04 + movs r0, 0x5 + bl sub_80F2D04 + ldr r1, _080ED0B0 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + b _080ED27C + .align 2, 0 +_080ED0B0: .4byte 0x02000000 +_080ED0B4: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080ED0C0 + b _080ED308 +_080ED0C0: + movs r0, 0 + bl sub_80EEFBC + ldr r1, _080ED0D0 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED27C + .align 2, 0 +_080ED0D0: .4byte 0x02000000 +_080ED0D4: + bl sub_80EEF34 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080ED0E2 + b _080ED308 +_080ED0E2: + ldr r4, _080ED104 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED27C + .align 2, 0 +_080ED104: .4byte 0x02000000 +_080ED108: + ldr r0, _080ED130 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080ED116 + b _080ED308 +_080ED116: + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80EF814 + ldr r1, _080ED134 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + b _080ED27C + .align 2, 0 +_080ED130: .4byte gPaletteFade +_080ED134: .4byte 0x02000000 +_080ED138: + bl sub_80F2620 + ldr r1, _080ED148 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED27C + .align 2, 0 +_080ED148: .4byte 0x02000000 +_080ED14C: + bl sub_80F4D44 + ldr r1, _080ED178 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED15E: + bl sub_80F4D88 + lsls r0, 24 + cmp r0, 0 + bne _080ED17C + ldr r1, _080ED178 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x2 + strh r0, [r1] + b _080ED308 + .align 2, 0 +_080ED178: .4byte 0x02000000 +_080ED17C: + ldr r1, _080ED188 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED27C + .align 2, 0 +_080ED188: .4byte 0x02000000 +_080ED18C: + bl sub_8055870 + cmp r0, 0 + beq _080ED196 + b _080ED308 +_080ED196: + ldr r1, _080ED1A8 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + b _080ED308 + .align 2, 0 +_080ED1A8: .4byte 0x02000000 +_080ED1AC: + bl sub_8055870 + cmp r0, 0 + beq _080ED1B6 + b _080ED308 +_080ED1B6: + ldr r1, _080ED1C0 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + b _080ED27C + .align 2, 0 +_080ED1C0: .4byte 0x02000000 +_080ED1C4: + movs r0, 0 + bl sub_80F0264 + ldr r1, _080ED1F0 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED1D8: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + beq _080ED1E4 + b _080ED308 +_080ED1E4: + ldr r1, _080ED1F0 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080ED27C + .align 2, 0 +_080ED1F0: .4byte 0x02000000 +_080ED1F4: + movs r0, 0 + bl sub_80F3008 + ldr r1, _080ED204 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + b _080ED27C + .align 2, 0 +_080ED204: .4byte 0x02000000 +_080ED208: + bl sub_8055870 + cmp r0, 0 + beq _080ED212 + b _080ED308 +_080ED212: + ldr r1, _080ED21C + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED27C + .align 2, 0 +_080ED21C: .4byte 0x02000000 +_080ED220: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ED248 + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED27C + .align 2, 0 +_080ED248: .4byte sub_80EBD18 +_080ED24C: + movs r0, 0x4 + bl sub_80EED2C + ldr r1, _080ED25C + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + b _080ED27C + .align 2, 0 +_080ED25C: .4byte 0x02000000 +_080ED260: + ldr r0, _080ED284 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080ED308 + ldr r2, _080ED288 + adds r0, r4, r2 + strh r1, [r0] + movs r3, 0xC1 + lsls r3, 2 + adds r1, r4, r3 +_080ED27C: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ED308 + .align 2, 0 +_080ED284: .4byte gPaletteFade +_080ED288: .4byte 0x00000306 +_080ED28C: + movs r0, 0x1 + bl sub_80F2C80 + ldr r1, _080ED2C4 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED2A0: + movs r0, 0x1 + bl sub_80F2CBC + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080ED308 + ldr r0, _080ED2C4 + ldr r3, _080ED2C8 + adds r1, r0, r3 + strh r2, [r1] + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] + b _080ED308 + .align 2, 0 +_080ED2C4: .4byte 0x02000000 +_080ED2C8: .4byte 0x00000306 +_080ED2CC: + ldr r4, _080ED310 + ldr r2, _080ED314 + adds r0, r4, r2 + ldrb r0, [r0] + adds r0, 0x7 + lsls r0, 24 + lsrs r0, 24 + bl sub_80F2C80 + movs r3, 0xC1 + lsls r3, 2 + adds r4, r3 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080ED2EA: + ldr r0, _080ED310 + ldr r1, _080ED314 + adds r0, r1 + ldrb r0, [r0] + adds r0, 0x7 + lsls r0, 24 + lsrs r0, 24 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080ED308 + ldr r0, _080ED318 + bl sub_80EBDBC +_080ED308: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED310: .4byte 0x02000000 +_080ED314: .4byte 0x00006dfc +_080ED318: .4byte sub_80ED31C + thumb_func_end sub_80ED01C + + thumb_func_start sub_80ED31C +sub_80ED31C: @ 80ED31C + push {r4,lr} + ldr r0, _080ED338 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080ED3A8 + cmp r0, 0x1 + bgt _080ED33C + cmp r0, 0 + beq _080ED342 + b _080ED3CA + .align 2, 0 +_080ED338: .4byte 0x02000000 +_080ED33C: + cmp r0, 0x2 + beq _080ED3C0 + b _080ED3CA +_080ED342: + bl sub_80F5DD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080ED374 + cmp r0, 0x2 + beq _080ED380 + ldr r0, _080ED36C + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080ED38C + movs r0, 0x5 + bl PlaySE + ldr r0, _080ED370 + bl sub_80EBDBC + b _080ED3CA + .align 2, 0 +_080ED36C: .4byte gMain +_080ED370: .4byte sub_80ED4D8 +_080ED374: + movs r0, 0x5 + bl PlaySE + bl ShowMapNamePopUpWindow + b _080ED3CA +_080ED380: + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4] + adds r0, 0x1 + b _080ED3C8 +_080ED38C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080ED3CA + movs r0, 0x5 + bl PlaySE + ldr r0, _080ED3A4 + bl sub_80EBDBC + b _080ED3CA + .align 2, 0 +_080ED3A4: .4byte sub_80ECD80 +_080ED3A8: + bl sub_80F0718 + lsls r0, 24 + cmp r0, 0 + bne _080ED3CA + bl ShowMapNamePopUpWindow + bl sub_80F3264 + ldrh r0, [r4] + adds r0, 0x1 + b _080ED3C8 +_080ED3C0: + bl sub_8055870 + cmp r0, 0 + bne _080ED3CA +_080ED3C8: + strh r0, [r4] +_080ED3CA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ED31C + + thumb_func_start sub_80ED3D0 +sub_80ED3D0: @ 80ED3D0 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080ED3EC + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x8 + bhi _080ED4C6 + lsls r0, 2 + ldr r1, _080ED3F0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED3EC: .4byte 0x02000000 +_080ED3F0: .4byte _080ED3F4 + .align 2, 0 +_080ED3F4: + .4byte _080ED418 + .4byte _080ED420 + .4byte _080ED42A + .4byte _080ED432 + .4byte _080ED446 + .4byte _080ED458 + .4byte _080ED462 + .4byte _080ED498 + .4byte _080ED4B4 +_080ED418: + movs r0, 0 + bl SetVBlankCallback + b _080ED49E +_080ED420: + bl sub_80EED0C + bl sub_80F6134 + b _080ED49E +_080ED42A: + movs r0, 0 + bl sub_80EEFBC + b _080ED49E +_080ED432: + movs r0, 0 + bl sub_80F0264 + ldr r1, _080ED454 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED446: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + bne _080ED4C6 + b _080ED49E + .align 2, 0 +_080ED454: .4byte 0x02000000 +_080ED458: + bl sub_8055870 + cmp r0, 0 + bne _080ED4C6 + b _080ED49E +_080ED462: + movs r0, 0 + bl sub_80F3008 + ldr r4, _080ED490 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ED494 + bl SetVBlankCallback + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080ED4A6 + .align 2, 0 +_080ED490: .4byte 0x02000000 +_080ED494: .4byte sub_80EBD18 +_080ED498: + movs r0, 0x4 + bl sub_80EED2C +_080ED49E: + ldr r1, _080ED4B0 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080ED4A6: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ED4C6 + .align 2, 0 +_080ED4B0: .4byte 0x02000000 +_080ED4B4: + ldr r0, _080ED4D0 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ED4C6 + ldr r0, _080ED4D4 + bl sub_80EBDBC +_080ED4C6: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED4D0: .4byte gPaletteFade +_080ED4D4: .4byte sub_80ED31C + thumb_func_end sub_80ED3D0 + + thumb_func_start sub_80ED4D8 +sub_80ED4D8: @ 80ED4D8 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080ED4F8 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x8 + bls _080ED4EE + b _080ED60E +_080ED4EE: + lsls r0, 2 + ldr r1, _080ED4FC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED4F8: .4byte 0x02000000 +_080ED4FC: .4byte _080ED500 + .align 2, 0 +_080ED500: + .4byte _080ED524 + .4byte _080ED542 + .4byte _080ED564 + .4byte _080ED57C + .4byte _080ED582 + .4byte _080ED594 + .4byte _080ED5A4 + .4byte _080ED5E0 + .4byte _080ED5FC +_080ED524: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED5EE +_080ED542: + ldr r0, _080ED560 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ED60E + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80F3130 + b _080ED5E6 + .align 2, 0 +_080ED560: .4byte gPaletteFade +_080ED564: + bl sub_8055870 + cmp r0, 0 + bne _080ED60E + ldr r1, _080ED578 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080ED5EE + .align 2, 0 +_080ED578: .4byte 0x02000000 +_080ED57C: + bl sub_80F4CF0 + b _080ED5E6 +_080ED582: + bl sub_80EFF34 + ldr r1, _080ED5A0 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED594: + bl sub_80EFF68 + lsls r0, 24 + cmp r0, 0 + bne _080ED60E + b _080ED5E6 + .align 2, 0 +_080ED5A0: .4byte 0x02000000 +_080ED5A4: + bl sub_80F35B4 + movs r0, 0x2 + bl sub_80EEFBC + ldr r4, _080ED5D8 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ED5DC + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED5EE + .align 2, 0 +_080ED5D8: .4byte 0x02000000 +_080ED5DC: .4byte sub_80EBD4C +_080ED5E0: + movs r0, 0x2 + bl sub_80EED2C +_080ED5E6: + ldr r1, _080ED5F8 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080ED5EE: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ED60E + .align 2, 0 +_080ED5F8: .4byte 0x02000000 +_080ED5FC: + ldr r0, _080ED618 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ED60E + ldr r0, _080ED61C + bl sub_80EBDBC +_080ED60E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED618: .4byte gPaletteFade +_080ED61C: .4byte sub_80ED858 + thumb_func_end sub_80ED4D8 + + thumb_func_start sub_80ED620 +sub_80ED620: @ 80ED620 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080ED640 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x10 + bls _080ED636 + b _080ED846 +_080ED636: + lsls r0, 2 + ldr r1, _080ED644 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED640: .4byte 0x02000000 +_080ED644: .4byte _080ED648 + .align 2, 0 +_080ED648: + .4byte _080ED68C + .4byte _080ED6A4 + .4byte _080ED6B8 + .4byte _080ED6EC + .4byte _080ED730 + .4byte _080ED736 + .4byte _080ED750 + .4byte _080ED762 + .4byte _080ED76C + .4byte _080ED784 + .4byte _080ED78A + .4byte _080ED7C0 + .4byte _080ED7D4 + .4byte _080ED7EC + .4byte _080ED800 + .4byte _080ED820 + .4byte _080ED834 +_080ED68C: + bl sub_80F1E84 + movs r0, 0x1 + bl sub_80F2D04 + ldr r1, _080ED6A0 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED814 + .align 2, 0 +_080ED6A0: .4byte 0x02000000 +_080ED6A4: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080ED6B0 + b _080ED846 +_080ED6B0: + movs r0, 0x1 + bl sub_80EEFBC + b _080ED80C +_080ED6B8: + bl sub_80EEF34 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080ED6C6 + b _080ED846 +_080ED6C6: + ldr r4, _080ED6E8 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED814 + .align 2, 0 +_080ED6E8: .4byte 0x02000000 +_080ED6EC: + ldr r0, _080ED724 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080ED6FE + b _080ED846 +_080ED6FE: + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80EF814 + ldr r0, _080ED728 + ldr r2, _080ED72C + adds r1, r0, r2 + strb r4, [r1] + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] + b _080ED846 + .align 2, 0 +_080ED724: .4byte gPaletteFade +_080ED728: .4byte 0x02000000 +_080ED72C: .4byte 0x000076aa +_080ED730: + bl sub_80F2620 + b _080ED80C +_080ED736: + ldr r0, _080ED74C + adds r1, r4, r0 + movs r0, 0x2 + strb r0, [r1] + bl sub_80F4BD0 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED814 + .align 2, 0 +_080ED74C: .4byte 0x0000d162 +_080ED750: + bl sub_80EFF34 + ldr r1, _080ED768 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED762: + bl sub_80EFF68 + b _080ED806 + .align 2, 0 +_080ED768: .4byte 0x02000000 +_080ED76C: + bl sub_8055870 + cmp r0, 0 + bne _080ED846 + ldr r1, _080ED780 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED814 + .align 2, 0 +_080ED780: .4byte 0x02000000 +_080ED784: + bl sub_8055870 + b _080ED808 +_080ED78A: + bl sub_80F33A8 + ldr r4, _080ED7B8 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ED7BC + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED814 + .align 2, 0 +_080ED7B8: .4byte 0x02000000 +_080ED7BC: .4byte sub_80EBD4C +_080ED7C0: + movs r0, 0x2 + bl sub_80EED2C + ldr r1, _080ED7D0 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED814 + .align 2, 0 +_080ED7D0: .4byte 0x02000000 +_080ED7D4: + ldr r0, _080ED7E8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ED846 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED814 + .align 2, 0 +_080ED7E8: .4byte gPaletteFade +_080ED7EC: + movs r0, 0x1 + bl sub_80F2C80 + ldr r1, _080ED81C + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED800: + movs r0, 0x1 + bl sub_80F2CBC +_080ED806: + lsls r0, 24 +_080ED808: + cmp r0, 0 + bne _080ED846 +_080ED80C: + ldr r1, _080ED81C + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 +_080ED814: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ED846 + .align 2, 0 +_080ED81C: .4byte 0x02000000 +_080ED820: + movs r0, 0x6 + bl sub_80F2C80 + ldr r1, _080ED850 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED834: + movs r0, 0x6 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080ED846 + ldr r0, _080ED854 + bl sub_80EBDBC +_080ED846: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED850: .4byte 0x02000000 +_080ED854: .4byte sub_80ED858 + thumb_func_end sub_80ED620 + + thumb_func_start sub_80ED858 +sub_80ED858: @ 80ED858 + push {r4,r5,lr} + sub sp, 0x4 + ldr r1, _080ED878 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r5, r1, 0 + cmp r0, 0xB + bls _080ED86E + b _080EDB7A +_080ED86E: + lsls r0, 2 + ldr r1, _080ED87C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED878: .4byte 0x02000000 +_080ED87C: .4byte _080ED880 + .align 2, 0 +_080ED880: + .4byte _080ED8B0 + .4byte _080ED8CC + .4byte _080ED8EC + .4byte _080ED904 + .4byte _080ED91A + .4byte _080EDA68 + .4byte _080EDA8C + .4byte _080EDAA4 + .4byte _080EDAC0 + .4byte _080EDAE8 + .4byte _080EDB7A + .4byte _080EDB28 +_080ED8B0: + bl sub_80F4F78 + bl sub_80F5B38 + ldr r0, _080ED8C8 + movs r4, 0xC1 + lsls r4, 2 + adds r0, r4 + movs r1, 0x1 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080ED8C8: .4byte 0x02000000 +_080ED8CC: + bl sub_80F5B50 + lsls r0, 24 + cmp r0, 0 + beq _080ED8D8 + b _080EDB7A +_080ED8D8: + ldr r0, _080ED8E8 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x2 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080ED8E8: .4byte 0x02000000 +_080ED8EC: + movs r0, 0x1 + bl sub_80F0174 + ldr r0, _080ED900 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r2 + movs r1, 0x3 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080ED900: .4byte 0x02000000 +_080ED904: + bl sub_80F4FB4 + lsls r0, 24 + cmp r0, 0 + beq _080ED910 + b _080EDB7A +_080ED910: + bl sub_80F3C94 + bl sub_80F3D00 + b _080EDAD4 +_080ED91A: + ldr r2, _080ED960 + ldrh r1, [r2, 0x2C] + movs r0, 0x40 + ands r0, r1 + adds r3, r2, 0 + cmp r0, 0 + beq _080ED970 + ldr r1, _080ED964 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080ED970 + ldr r2, _080ED968 + adds r0, r5, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080ED948 + ldr r4, _080ED96C + adds r0, r5, r4 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080ED970 +_080ED948: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl sub_80F5060 + bl move_anim_execute + movs r2, 0xC1 + lsls r2, 2 + adds r1, r5, r2 + b _080ED9B8 + .align 2, 0 +_080ED960: .4byte gMain +_080ED964: .4byte 0x000087cb +_080ED968: .4byte 0x000076aa +_080ED96C: .4byte 0x000087dc +_080ED970: + ldrh r1, [r3, 0x2C] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080ED9CC + ldr r4, _080ED9C0 + adds r0, r5, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _080ED9CC + ldr r1, _080ED9C4 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080ED9A2 + ldr r2, _080ED9C8 + adds r0, r5, r2 + subs r4, 0x57 + adds r1, r5, r4 + movs r4, 0 + ldrsh r2, [r0, r4] + movs r4, 0 + ldrsh r0, [r1, r4] + cmp r2, r0 + bge _080ED9CC +_080ED9A2: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_80F5060 + bl move_anim_execute + movs r0, 0xC1 + lsls r0, 2 + adds r1, r5, r0 +_080ED9B8: + movs r0, 0x5 + strh r0, [r1] + b _080EDB7A + .align 2, 0 +_080ED9C0: .4byte 0x000087cb +_080ED9C4: .4byte 0x000076aa +_080ED9C8: .4byte 0x000087dc +_080ED9CC: + ldrh r2, [r3, 0x2E] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _080ED9F8 + movs r0, 0x5 + bl PlaySE + bl sub_80F4FDC + bl move_anim_execute + ldr r0, _080ED9F4 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x9 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080ED9F4: .4byte 0x02000000 +_080ED9F8: + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _080EDA02 + b _080EDB7A +_080EDA02: + adds r4, r5, 0 + ldr r2, _080EDA38 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080EDA44 + ldr r1, _080EDA3C + adds r0, r4, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + ldr r2, _080EDA40 + adds r0, r4, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + subs r0, 0x1 + cmp r1, r0 + beq _080EDA26 + b _080EDB7A +_080EDA26: + movs r0, 0x5 + bl PlaySE + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + movs r0, 0x9 + strh r0, [r1] + b _080EDB7A + .align 2, 0 +_080EDA38: .4byte 0x000076aa +_080EDA3C: .4byte 0x000087dc +_080EDA40: .4byte 0x000087da +_080EDA44: + ldr r1, _080EDA64 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080EDA50 + b _080EDB7A +_080EDA50: + movs r0, 0x5 + bl PlaySE + movs r2, 0xC1 + lsls r2, 2 + adds r1, r5, r2 + movs r0, 0x7 + strh r0, [r1] + b _080EDB7A + .align 2, 0 +_080EDA64: .4byte 0x00006dac +_080EDA68: + bl gpu_sync_bg_show + lsls r0, 24 + cmp r0, 0 + beq _080EDA74 + b _080EDB7A +_080EDA74: + bl sub_80F3D00 + ldr r0, _080EDA88 + movs r4, 0xC1 + lsls r4, 2 + adds r0, r4 + movs r1, 0x6 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080EDA88: .4byte 0x02000000 +_080EDA8C: + bl sub_8055870 + cmp r0, 0 + bne _080EDB7A + ldr r0, _080EDAA0 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + b _080EDADC + .align 2, 0 +_080EDAA0: .4byte 0x02000000 +_080EDAA4: + movs r0, 0x3 + bl sub_80EEFBC + bl sub_80F3668 + ldr r0, _080EDABC + movs r2, 0xC1 + lsls r2, 2 + adds r0, r2 + movs r1, 0x8 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080EDABC: .4byte 0x02000000 +_080EDAC0: + bl sub_80F7500 + lsls r0, 24 + cmp r0, 0 + bne _080EDB7A + movs r0, 0x2 + bl sub_80EEFBC + bl sub_80F3698 +_080EDAD4: + ldr r0, _080EDAE4 + movs r4, 0xC1 + lsls r4, 2 + adds r0, r4 +_080EDADC: + movs r1, 0x4 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080EDAE4: .4byte 0x02000000 +_080EDAE8: + bl sub_80F5038 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080EDB7A + movs r0, 0 + bl sub_80F0174 + bl sub_80F2F48 + ldr r5, _080EDB24 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r5, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r4, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r5, r2 + movs r0, 0xB + strh r0, [r1] + b _080EDB7A + .align 2, 0 +_080EDB24: .4byte 0x02000000 +_080EDB28: + ldr r0, _080EDB60 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EDB7A + bl sub_80F3CE8 + bl sub_80F5BDC + ldr r0, _080EDB64 + ldr r4, _080EDB68 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _080EDB70 + bl sub_80F357C + movs r0, 0x1 + bl sub_80F2D6C + movs r0, 0x6 + bl sub_80F2D6C + ldr r0, _080EDB6C + bl sub_80EBDBC + b _080EDB7A + .align 2, 0 +_080EDB60: .4byte gPaletteFade +_080EDB64: .4byte 0x02000000 +_080EDB68: .4byte 0x000076aa +_080EDB6C: .4byte sub_80ECA10 +_080EDB70: + bl sub_80F3614 + ldr r0, _080EDB84 + bl sub_80EBDBC +_080EDB7A: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EDB84: .4byte sub_80ED3D0 + thumb_func_end sub_80ED858 + + thumb_func_start sub_80EDB88 +sub_80EDB88: @ 80EDB88 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080EDBA8 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x11 + bls _080EDB9E + b _080EDDAA +_080EDB9E: + lsls r0, 2 + ldr r1, _080EDBAC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EDBA8: .4byte 0x02000000 +_080EDBAC: .4byte _080EDBB0 + .align 2, 0 +_080EDBB0: + .4byte _080EDBF8 + .4byte _080EDC04 + .4byte _080EDC24 + .4byte _080EDC58 + .4byte _080EDC7C + .4byte _080EDC90 + .4byte _080EDCA2 + .4byte _080EDCC0 + .4byte _080EDCDC + .4byte _080EDCE6 + .4byte _080EDCFA + .4byte _080EDD0C + .4byte _080EDD20 + .4byte _080EDD34 + .4byte _080EDD48 + .4byte _080EDD52 + .4byte _080EDD7C + .4byte _080EDD98 +_080EDBF8: + bl sub_80F1E84 + movs r0, 0 + bl sub_80F2D04 + b _080EDD82 +_080EDC04: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080EDC10 + b _080EDDAA +_080EDC10: + movs r0, 0x4 + bl sub_80EEFBC + ldr r1, _080EDC20 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EDD8A + .align 2, 0 +_080EDC20: .4byte 0x02000000 +_080EDC24: + bl sub_80EEF34 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080EDC32 + b _080EDDAA +_080EDC32: + ldr r4, _080EDC54 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EDD8A + .align 2, 0 +_080EDC54: .4byte 0x02000000 +_080EDC58: + ldr r0, _080EDC78 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EDC66 + b _080EDDAA +_080EDC66: + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80EF814 + b _080EDD82 + .align 2, 0 +_080EDC78: .4byte gPaletteFade +_080EDC7C: + bl sub_80F2620 + ldr r1, _080EDC8C + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EDD8A + .align 2, 0 +_080EDC8C: .4byte 0x02000000 +_080EDC90: + bl sub_80F638C + ldr r1, _080EDCBC + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EDCA2: + bl sub_80F63D0 + lsls r0, 24 + cmp r0, 0 + bne _080EDD82 + ldr r1, _080EDCBC + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x2 + strh r0, [r1] + b _080EDDAA + .align 2, 0 +_080EDCBC: .4byte 0x02000000 +_080EDCC0: + bl sub_8055870 + cmp r0, 0 + bne _080EDDAA + ldr r1, _080EDCD8 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + b _080EDDAA + .align 2, 0 +_080EDCD8: .4byte 0x02000000 +_080EDCDC: + bl sub_8055870 + cmp r0, 0 + bne _080EDDAA + b _080EDD82 +_080EDCE6: + movs r0, 0x1 + bl sub_80F0264 + ldr r1, _080EDD08 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EDCFA: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + bne _080EDDAA + b _080EDD82 + .align 2, 0 +_080EDD08: .4byte 0x02000000 +_080EDD0C: + movs r0, 0x2 + bl sub_80F2C80 + ldr r1, _080EDD30 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EDD20: + movs r0, 0x2 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080EDDAA + b _080EDD82 + .align 2, 0 +_080EDD30: .4byte 0x02000000 +_080EDD34: + movs r0, 0x1 + bl sub_80F3008 + ldr r1, _080EDD44 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EDD8A + .align 2, 0 +_080EDD44: .4byte 0x02000000 +_080EDD48: + bl sub_8055870 + cmp r0, 0 + bne _080EDDAA + b _080EDD82 +_080EDD52: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080EDD78 + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EDD8A + .align 2, 0 +_080EDD78: .4byte sub_80EBD18 +_080EDD7C: + movs r0, 0x4 + bl sub_80EED2C +_080EDD82: + ldr r1, _080EDD94 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080EDD8A: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EDDAA + .align 2, 0 +_080EDD94: .4byte 0x02000000 +_080EDD98: + ldr r0, _080EDDB4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EDDAA + ldr r0, _080EDDB8 + bl sub_80EBDBC +_080EDDAA: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EDDB4: .4byte gPaletteFade +_080EDDB8: .4byte sub_80EDDBC + thumb_func_end sub_80EDB88 + + thumb_func_start sub_80EDDBC +sub_80EDDBC: @ 80EDDBC + push {r4,lr} + ldr r0, _080EDDD8 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080EDE48 + cmp r0, 0x1 + bgt _080EDDDC + cmp r0, 0 + beq _080EDDE2 + b _080EDE6A + .align 2, 0 +_080EDDD8: .4byte 0x02000000 +_080EDDDC: + cmp r0, 0x2 + beq _080EDE60 + b _080EDE6A +_080EDDE2: + bl sub_80F5DD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080EDE14 + cmp r0, 0x2 + beq _080EDE20 + ldr r0, _080EDE0C + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080EDE2C + movs r0, 0x5 + bl PlaySE + ldr r0, _080EDE10 + bl sub_80EBDBC + b _080EDE6A + .align 2, 0 +_080EDE0C: .4byte gMain +_080EDE10: .4byte sub_80EDEE4 +_080EDE14: + movs r0, 0x5 + bl PlaySE + bl ShowMapNamePopUpWindow + b _080EDE6A +_080EDE20: + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4] + adds r0, 0x1 + b _080EDE68 +_080EDE2C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080EDE6A + movs r0, 0x5 + bl PlaySE + ldr r0, _080EDE44 + bl sub_80EBDBC + b _080EDE6A + .align 2, 0 +_080EDE44: .4byte sub_80EDE70 +_080EDE48: + bl sub_80F0718 + lsls r0, 24 + cmp r0, 0 + bne _080EDE6A + bl ShowMapNamePopUpWindow + bl sub_80F3264 + ldrh r0, [r4] + adds r0, 0x1 + b _080EDE68 +_080EDE60: + bl sub_8055870 + cmp r0, 0 + bne _080EDE6A +_080EDE68: + strh r0, [r4] +_080EDE6A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80EDDBC + + thumb_func_start sub_80EDE70 +sub_80EDE70: @ 80EDE70 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080EDE8C + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r2, [r4] + cmp r2, 0x1 + beq _080EDEAE + cmp r2, 0x1 + bgt _080EDE90 + cmp r2, 0 + beq _080EDE96 + b _080EDED6 + .align 2, 0 +_080EDE8C: .4byte 0x02000000 +_080EDE90: + cmp r2, 0x2 + beq _080EDED0 + b _080EDED6 +_080EDE96: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _080EDEC4 +_080EDEAE: + ldr r0, _080EDECC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EDED6 + bl sub_80F3130 + movs r0, 0x2 + bl sub_80F2D6C +_080EDEC4: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EDED6 + .align 2, 0 +_080EDECC: .4byte gPaletteFade +_080EDED0: + ldr r0, _080EDEE0 + bl sub_80EBDBC +_080EDED6: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EDEE0: .4byte sub_80EC00C + thumb_func_end sub_80EDE70 + + thumb_func_start sub_80EDEE4 +sub_80EDEE4: @ 80EDEE4 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080EDF04 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0xA + bls _080EDEFA + b _080EE060 +_080EDEFA: + lsls r0, 2 + ldr r1, _080EDF08 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EDF04: .4byte 0x02000000 +_080EDF08: .4byte _080EDF0C + .align 2, 0 +_080EDF0C: + .4byte _080EDF38 + .4byte _080EDF50 + .4byte _080EDF80 + .4byte _080EDF98 + .4byte _080EDFB0 + .4byte _080EDFC8 + .4byte _080EDFE0 + .4byte _080EDFF8 + .4byte _080EE01C + .4byte _080EE030 + .4byte _080EE050 +_080EDF38: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl BeginNormalPaletteFade + b _080EE03C +_080EDF50: + ldr r0, _080EDF78 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EDF5E + b _080EE060 +_080EDF5E: + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80F3130 + ldr r1, _080EDF7C + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE042 + .align 2, 0 +_080EDF78: .4byte gPaletteFade +_080EDF7C: .4byte 0x02000000 +_080EDF80: + bl sub_80F66E0 + bl sub_80EEE08 + ldr r1, _080EDF94 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE042 + .align 2, 0 +_080EDF94: .4byte 0x02000000 +_080EDF98: + bl sub_80F1080 + lsls r0, 24 + cmp r0, 0 + bne _080EE060 + ldr r1, _080EDFAC + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE042 + .align 2, 0 +_080EDFAC: .4byte 0x02000000 +_080EDFB0: + movs r0, 0x5 + bl sub_80EEFBC + bl sub_80F38B8 + ldr r1, _080EDFDC + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EDFC8: + bl sub_80F38EC + lsls r0, 24 + cmp r0, 0 + bne _080EE060 + ldr r1, _080EDFDC + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE042 + .align 2, 0 +_080EDFDC: .4byte 0x02000000 +_080EDFE0: + bl sub_8055870 + cmp r0, 0 + bne _080EE060 + ldr r1, _080EDFF4 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE042 + .align 2, 0 +_080EDFF4: .4byte 0x02000000 +_080EDFF8: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080EE018 + bl SetVBlankCallback + b _080EE03C + .align 2, 0 +_080EE018: .4byte sub_80EBD18 +_080EE01C: + movs r0, 0x3 + bl sub_80EED2C + ldr r1, _080EE02C + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE042 + .align 2, 0 +_080EE02C: .4byte 0x02000000 +_080EE030: + ldr r0, _080EE04C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE060 +_080EE03C: + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 +_080EE042: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EE060 + .align 2, 0 +_080EE04C: .4byte gPaletteFade +_080EE050: + bl sub_80F170C + lsls r0, 24 + cmp r0, 0 + bne _080EE060 + ldr r0, _080EE068 + bl sub_80EBDBC +_080EE060: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE068: .4byte sub_80EE06C + thumb_func_end sub_80EDEE4 + + thumb_func_start sub_80EE06C +sub_80EE06C: @ 80EE06C + push {r4,r5,lr} + ldr r1, _080EE08C + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x8 + bls _080EE080 + b _080EE288 +_080EE080: + lsls r0, 2 + ldr r1, _080EE090 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EE08C: .4byte 0x02000000 +_080EE090: .4byte _080EE094 + .align 2, 0 +_080EE094: + .4byte _080EE0B8 + .4byte _080EE0CC + .4byte _080EE180 + .4byte _080EE19C + .4byte _080EE1B8 + .4byte _080EE1D0 + .4byte _080EE1F8 + .4byte _080EE250 + .4byte _080EE26C +_080EE0B8: + bl sub_80F15A8 + ldr r1, _080EE0C8 + movs r5, 0xC1 + lsls r5, 2 + adds r1, r5 + b _080EE1C4 + .align 2, 0 +_080EE0C8: .4byte 0x02000000 +_080EE0CC: + ldr r2, _080EE0FC + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + adds r3, r2, 0 + cmp r0, 0 + beq _080EE104 + ldr r1, _080EE100 + adds r0, r4, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + beq _080EE104 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl sub_80F6A4C + movs r5, 0xC1 + lsls r5, 2 + adds r1, r4, r5 + b _080EE1C4 + .align 2, 0 +_080EE0FC: .4byte gMain +_080EE100: .4byte 0x000087dc +_080EE104: + ldrh r1, [r3, 0x30] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EE140 + ldr r1, _080EE138 + adds r0, r4, r1 + ldr r2, _080EE13C + adds r1, r4, r2 + movs r5, 0 + ldrsh r2, [r0, r5] + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r2, r0 + bge _080EE140 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl sub_80F6A4C + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080EE1C4 + .align 2, 0 +_080EE138: .4byte 0x000087dc +_080EE13C: .4byte 0x00008774 +_080EE140: + ldrh r2, [r3, 0x2E] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _080EE164 + movs r0, 0x5 + bl PlaySE + movs r0, 0xB + bl sub_80EEFBC + ldr r0, _080EE160 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + b _080EE262 + .align 2, 0 +_080EE160: .4byte 0x02000000 +_080EE164: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + bne _080EE16E + b _080EE288 +_080EE16E: + movs r0, 0x5 + bl PlaySE + ldr r0, _080EE17C + bl sub_80EBDBC + b _080EE288 + .align 2, 0 +_080EE17C: .4byte sub_80EE294 +_080EE180: + bl sub_80F6AF0 + lsls r0, 24 + cmp r0, 0 + beq _080EE18C + b _080EE288 +_080EE18C: + ldr r1, _080EE198 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE1C4 + .align 2, 0 +_080EE198: .4byte 0x02000000 +_080EE19C: + bl sub_8055870 + adds r1, r0, 0 + cmp r1, 0 + bne _080EE288 + ldr r0, _080EE1B4 + movs r5, 0xC1 + lsls r5, 2 + adds r0, r5 + strh r1, [r0] + b _080EE288 + .align 2, 0 +_080EE1B4: .4byte 0x02000000 +_080EE1B8: + bl sub_80F3B00 + ldr r1, _080EE1CC + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080EE1C4: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EE288 + .align 2, 0 +_080EE1CC: .4byte 0x02000000 +_080EE1D0: + bl sub_80F3B58 + lsls r0, 24 + cmp r0, 0 + bne _080EE288 + bl sub_80F1494 + ldr r1, _080EE1F4 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + bl sub_80EED9C + b _080EE288 + .align 2, 0 +_080EE1F4: .4byte 0x02000000 +_080EE1F8: + bl sub_80F68E8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080EE224 + cmp r0, 0x1 + bne _080EE224 + movs r0, 0x5 + bl PlaySE + bl sub_80F3B94 + ldr r0, _080EE220 + movs r5, 0xC1 + lsls r5, 2 + adds r0, r5 + movs r1, 0x7 + strh r1, [r0] + b _080EE288 + .align 2, 0 +_080EE220: .4byte 0x02000000 +_080EE224: + ldr r0, _080EE248 + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080EE288 + movs r0, 0x5 + bl PlaySE + bl sub_80F3B94 + ldr r0, _080EE24C + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x8 + strh r1, [r0] + b _080EE288 + .align 2, 0 +_080EE248: .4byte gMain +_080EE24C: .4byte 0x02000000 +_080EE250: + bl sub_80F3BD4 + lsls r0, 24 + cmp r0, 0 + bne _080EE288 + ldr r0, _080EE268 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r2 +_080EE262: + movs r1, 0x4 + strh r1, [r0] + b _080EE288 + .align 2, 0 +_080EE268: .4byte 0x02000000 +_080EE26C: + bl sub_80F3BD4 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080EE288 + movs r0, 0x5 + bl sub_80EEFBC + ldr r0, _080EE290 + movs r5, 0xC1 + lsls r5, 2 + adds r0, r5 + strh r4, [r0] +_080EE288: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EE290: .4byte 0x02000000 + thumb_func_end sub_80EE06C + + thumb_func_start sub_80EE294 +sub_80EE294: @ 80EE294 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080EE2B4 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x8 + bls _080EE2AA + b _080EE3C6 +_080EE2AA: + lsls r0, 2 + ldr r1, _080EE2B8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EE2B4: .4byte 0x02000000 +_080EE2B8: .4byte _080EE2BC + .align 2, 0 +_080EE2BC: + .4byte _080EE2E0 + .4byte _080EE2FE + .4byte _080EE324 + .4byte _080EE33C + .4byte _080EE34C + .4byte _080EE370 + .4byte _080EE37A + .4byte _080EE39A + .4byte _080EE3B4 +_080EE2E0: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EE3A8 +_080EE2FE: + ldr r0, _080EE320 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE3C6 + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80F3C2C + bl sub_80EEE08 + b _080EE3A0 + .align 2, 0 +_080EE320: .4byte gPaletteFade +_080EE324: + bl sub_80F6134 + movs r0, 0x1 + bl sub_80F0264 + ldr r1, _080EE348 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EE33C: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + bne _080EE3C6 + b _080EE3A0 + .align 2, 0 +_080EE348: .4byte 0x02000000 +_080EE34C: + movs r0, 0x4 + bl sub_80EEFBC + movs r0, 0x1 + bl sub_80F3008 + ldr r0, _080EE368 + bl SetVBlankCallback + ldr r1, _080EE36C + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE3A8 + .align 2, 0 +_080EE368: .4byte sub_80EBD18 +_080EE36C: .4byte 0x02000000 +_080EE370: + bl sub_8055870 + cmp r0, 0 + bne _080EE3C6 + b _080EE3A0 +_080EE37A: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EE3A8 +_080EE39A: + movs r0, 0x4 + bl sub_80EED2C +_080EE3A0: + ldr r1, _080EE3B0 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080EE3A8: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EE3C6 + .align 2, 0 +_080EE3B0: .4byte 0x02000000 +_080EE3B4: + ldr r0, _080EE3D0 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE3C6 + ldr r0, _080EE3D4 + bl sub_80EBDBC +_080EE3C6: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE3D0: .4byte gPaletteFade +_080EE3D4: .4byte sub_80EDDBC + thumb_func_end sub_80EE294 + + thumb_func_start sub_80EE3D8 +sub_80EE3D8: @ 80EE3D8 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080EE3F8 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0xD + bls _080EE3EC + b _080EE57A +_080EE3EC: + lsls r0, 2 + ldr r1, _080EE3FC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EE3F8: .4byte 0x02000000 +_080EE3FC: .4byte _080EE400 + .align 2, 0 +_080EE400: + .4byte _080EE438 + .4byte _080EE444 + .4byte _080EE458 + .4byte _080EE48C + .4byte _080EE4B0 + .4byte _080EE4B6 + .4byte _080EE4CA + .4byte _080EE4DC + .4byte _080EE4F0 + .4byte _080EE504 + .4byte _080EE50C + .4byte _080EE516 + .4byte _080EE54C + .4byte _080EE568 +_080EE438: + bl sub_80F1E84 + movs r0, 0 + bl sub_80F2D04 + b _080EE552 +_080EE444: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080EE450 + b _080EE57A +_080EE450: + movs r0, 0x9 + bl sub_80EEFBC + b _080EE552 +_080EE458: + bl sub_80EEF34 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080EE466 + b _080EE57A +_080EE466: + ldr r4, _080EE488 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080EE55A + .align 2, 0 +_080EE488: .4byte 0x02000000 +_080EE48C: + ldr r0, _080EE4AC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE57A + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80EF814 + bl sub_80EEE08 + b _080EE552 + .align 2, 0 +_080EE4AC: .4byte gPaletteFade +_080EE4B0: + bl sub_80F2620 + b _080EE552 +_080EE4B6: + movs r0, 0x2 + bl sub_80F0264 + ldr r1, _080EE4D8 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EE4CA: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + bne _080EE57A + b _080EE552 + .align 2, 0 +_080EE4D8: .4byte 0x02000000 +_080EE4DC: + movs r0, 0x3 + bl sub_80F2C80 + ldr r1, _080EE500 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EE4F0: + movs r0, 0x3 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080EE57A + b _080EE552 + .align 2, 0 +_080EE500: .4byte 0x02000000 +_080EE504: + movs r0, 0x2 + bl sub_80F3008 + b _080EE552 +_080EE50C: + bl sub_8055870 + cmp r0, 0 + bne _080EE57A + b _080EE552 +_080EE516: + bl sub_80F6F10 + ldr r4, _080EE544 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080EE548 + bl SetVBlankCallback + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080EE55A + .align 2, 0 +_080EE544: .4byte 0x02000000 +_080EE548: .4byte sub_80EBD68 +_080EE54C: + movs r0, 0x5 + bl sub_80EED2C +_080EE552: + ldr r1, _080EE564 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080EE55A: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EE57A + .align 2, 0 +_080EE564: .4byte 0x02000000 +_080EE568: + ldr r0, _080EE584 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE57A + ldr r0, _080EE588 + bl sub_80EBDBC +_080EE57A: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE584: .4byte gPaletteFade +_080EE588: .4byte sub_80EE58C + thumb_func_end sub_80EE3D8 + + thumb_func_start sub_80EE58C +sub_80EE58C: @ 80EE58C + push {r4,r5,lr} + ldr r5, _080EE5A8 + movs r0, 0xC1 + lsls r0, 2 + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080EE624 + cmp r0, 0x1 + bgt _080EE5AC + cmp r0, 0 + beq _080EE5B2 + b _080EE652 + .align 2, 0 +_080EE5A8: .4byte 0x02000000 +_080EE5AC: + cmp r0, 0x2 + beq _080EE648 + b _080EE652 +_080EE5B2: + bl sub_80F5DD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080EE5E4 + cmp r0, 0x2 + beq _080EE5FC + ldr r0, _080EE5DC + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080EE608 + movs r0, 0x5 + bl PlaySE + ldr r0, _080EE5E0 + bl sub_80EBDBC + b _080EE652 + .align 2, 0 +_080EE5DC: .4byte gMain +_080EE5E0: .4byte sub_80EE658 +_080EE5E4: + movs r0, 0x5 + bl PlaySE + ldr r1, _080EE5F8 + adds r0, r5, r1 + ldrb r0, [r0] + bl sub_80F0FFC + b _080EE652 + .align 2, 0 +_080EE5F8: .4byte 0x0000876e +_080EE5FC: + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4] + adds r0, 0x1 + b _080EE650 +_080EE608: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080EE652 + movs r0, 0x5 + bl PlaySE + ldr r0, _080EE620 + bl sub_80EBDBC + b _080EE652 + .align 2, 0 +_080EE620: .4byte sub_80EE8F4 +_080EE624: + bl sub_80F0718 + lsls r0, 24 + cmp r0, 0 + bne _080EE652 + ldr r1, _080EE644 + adds r0, r5, r1 + ldrb r0, [r0] + bl sub_80F0FFC + bl sub_80F3264 + ldrh r0, [r4] + adds r0, 0x1 + b _080EE650 + .align 2, 0 +_080EE644: .4byte 0x0000876e +_080EE648: + bl sub_8055870 + cmp r0, 0 + bne _080EE652 +_080EE650: + strh r0, [r4] +_080EE652: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80EE58C + + thumb_func_start sub_80EE658 +sub_80EE658: @ 80EE658 + push {r4,r5,lr} + ldr r1, _080EE678 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x11 + bls _080EE66C + b _080EE8E8 +_080EE66C: + lsls r0, 2 + ldr r1, _080EE67C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EE678: .4byte 0x02000000 +_080EE67C: .4byte _080EE680 + .align 2, 0 +_080EE680: + .4byte _080EE6C8 + .4byte _080EE6DA + .4byte _080EE6F4 + .4byte _080EE708 + .4byte _080EE71C + .4byte _080EE730 + .4byte _080EE758 + .4byte _080EE76A + .4byte _080EE780 + .4byte _080EE820 + .4byte _080EE840 + .4byte _080EE854 + .4byte _080EE868 + .4byte _080EE86E + .4byte _080EE880 + .4byte _080EE898 + .4byte _080EE8B4 + .4byte _080EE8D4 +_080EE6C8: + movs r0, 0x1 + bl sub_80F3294 + movs r0, 0xA + bl sub_80EEFBC + bl sub_80F0B24 + b _080EE8BE +_080EE6DA: + bl sub_80F0B44 + lsls r0, 24 + cmp r0, 0 + beq _080EE6E6 + b _080EE8E8 +_080EE6E6: + ldr r1, _080EE6F0 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE8C6 + .align 2, 0 +_080EE6F0: .4byte 0x02000000 +_080EE6F4: + bl sub_80F0F64 + ldr r1, _080EE704 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE8C6 + .align 2, 0 +_080EE704: .4byte 0x02000000 +_080EE708: + bl sub_80F0FEC + lsls r0, 24 + cmp r0, 0 + beq _080EE714 + b _080EE8E8 +_080EE714: + movs r0, 0x1 + bl sub_80F6FB8 + b _080EE8BE +_080EE71C: + bl sub_80F6DB8 + ldr r1, _080EE72C + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE8C6 + .align 2, 0 +_080EE72C: .4byte 0x02000000 +_080EE730: + ldr r4, _080EE750 + adds r0, r4, 0 + subs r0, 0x1A + ldrh r1, [r0] + adds r0, r4, 0 + bl sub_80F700C + adds r0, r4, 0 + bl sub_80F42C4 + ldr r1, _080EE754 + adds r4, r1 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EE8E8 + .align 2, 0 +_080EE750: .4byte 0x02008788 +_080EE754: .4byte 0xffff7b7c +_080EE758: + bl sub_80F0CD8 + ldr r1, _080EE77C + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EE76A: + bl sub_80F6E9C + lsls r0, 24 + cmp r0, 0 + beq _080EE776 + b _080EE8E8 +_080EE776: + bl sub_80F0D5C + b _080EE8B8 + .align 2, 0 +_080EE77C: .4byte 0x02000000 +_080EE780: + ldr r2, _080EE7B0 + ldrh r1, [r2, 0x2C] + movs r0, 0x40 + ands r0, r1 + adds r3, r2, 0 + cmp r0, 0 + beq _080EE7B8 + ldr r1, _080EE7B4 + adds r0, r4, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + beq _080EE7B8 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl sub_80F708C + movs r5, 0xC1 + lsls r5, 2 + adds r1, r4, r5 + b _080EE7E8 + .align 2, 0 +_080EE7B0: .4byte gMain +_080EE7B4: .4byte 0x000087dc +_080EE7B8: + ldrh r1, [r3, 0x2C] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EE7F8 + ldr r1, _080EE7F0 + adds r0, r4, r1 + ldr r2, _080EE7F4 + adds r1, r4, r2 + movs r5, 0 + ldrsh r2, [r0, r5] + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r2, r0 + bge _080EE7F8 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl sub_80F708C + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 +_080EE7E8: + movs r0, 0x10 + strh r0, [r1] + b _080EE8E8 + .align 2, 0 +_080EE7F0: .4byte 0x000087dc +_080EE7F4: .4byte 0x00008774 +_080EE7F8: + ldrh r1, [r3, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080EE8E8 + movs r0, 0x5 + bl PlaySE + bl sub_80F4394 + bl sub_80F0EC0 + ldr r1, _080EE81C + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE8C6 + .align 2, 0 +_080EE81C: .4byte 0x02000000 +_080EE820: + bl sub_80F6ED4 + lsls r0, 24 + cmp r0, 0 + bne _080EE8E8 + bl sub_80F0EF4 + lsls r0, 24 + cmp r0, 0 + bne _080EE8E8 + movs r0, 0 + bl sub_80F6FB8 + bl sub_80F2FB0 + b _080EE8BE +_080EE840: + bl sub_80F6134 + ldr r1, _080EE850 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE8C6 + .align 2, 0 +_080EE850: .4byte 0x02000000 +_080EE854: + bl sub_80F0FA0 + ldr r1, _080EE864 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE8C6 + .align 2, 0 +_080EE864: .4byte 0x02000000 +_080EE868: + bl sub_80F0FEC + b _080EE8B8 +_080EE86E: + bl sub_80F0C28 + ldr r1, _080EE87C + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE8C6 + .align 2, 0 +_080EE87C: .4byte 0x02000000 +_080EE880: + bl sub_80F0C48 + lsls r0, 24 + cmp r0, 0 + bne _080EE8E8 + ldr r1, _080EE894 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE8C6 + .align 2, 0 +_080EE894: .4byte 0x02000000 +_080EE898: + movs r0, 0x9 + bl sub_80EEFBC + movs r0, 0 + bl sub_80F3294 + ldr r0, _080EE8B0 + bl sub_80EBDBC + bl sub_80EED9C + b _080EE8E8 + .align 2, 0 +_080EE8B0: .4byte sub_80EE58C +_080EE8B4: + bl sub_80F70FC +_080EE8B8: + lsls r0, 24 + cmp r0, 0 + bne _080EE8E8 +_080EE8BE: + ldr r1, _080EE8D0 + movs r5, 0xC1 + lsls r5, 2 + adds r1, r5 +_080EE8C6: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EE8E8 + .align 2, 0 +_080EE8D0: .4byte 0x02000000 +_080EE8D4: + bl sub_8055870 + cmp r0, 0 + bne _080EE8E8 + ldr r0, _080EE8F0 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x8 + strh r1, [r0] +_080EE8E8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EE8F0: .4byte 0x02000000 + thumb_func_end sub_80EE658 + + thumb_func_start sub_80EE8F4 +sub_80EE8F4: @ 80EE8F4 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080EE910 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r2, [r4] + cmp r2, 0x1 + beq _080EE932 + cmp r2, 0x1 + bgt _080EE914 + cmp r2, 0 + beq _080EE91A + b _080EE95E + .align 2, 0 +_080EE910: .4byte 0x02000000 +_080EE914: + cmp r2, 0x2 + beq _080EE958 + b _080EE95E +_080EE91A: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _080EE94C +_080EE932: + ldr r0, _080EE954 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE95E + bl sub_80F3130 + movs r0, 0x2 + bl sub_80F2D6C + bl sub_80F6FFC +_080EE94C: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EE95E + .align 2, 0 +_080EE954: .4byte gPaletteFade +_080EE958: + ldr r0, _080EE968 + bl sub_80EBDBC +_080EE95E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE968: .4byte sub_80EC00C + thumb_func_end sub_80EE8F4 + + thumb_func_start sub_80EE96C +sub_80EE96C: @ 80EE96C + push {r4,r5,lr} + sub sp, 0x4 + ldr r0, _080EE99C + movs r1, 0xC1 + lsls r1, 2 + adds r5, r0, r1 + ldrh r4, [r5] + cmp r4, 0 + bne _080EE9A0 + movs r0, 0x6F + bl PlaySE + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _080EE9B4 + .align 2, 0 +_080EE99C: .4byte 0x02000000 +_080EE9A0: + ldr r0, _080EE9BC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE9B4 + bl sub_80F5BDC + bl sub_805469C +_080EE9B4: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EE9BC: .4byte gPaletteFade + thumb_func_end sub_80EE96C + + thumb_func_start sub_80EE9C0 +sub_80EE9C0: @ 80EE9C0 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + bl sub_80F1E84 + ldr r1, _080EE9FC + ldr r2, _080EEA00 + adds r0, r1, r2 + movs r2, 0 + strb r4, [r0] + ldr r3, _080EEA04 + adds r0, r1, r3 + strb r5, [r0] + adds r3, 0x1 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080EEA08 + adds r1, r0 + strb r6, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EE9FC: .4byte 0x02000000 +_080EEA00: .4byte 0x00006e14 +_080EEA04: .4byte 0x00006e15 +_080EEA08: .4byte 0x00006e17 + thumb_func_end sub_80EE9C0 + + thumb_func_start sub_80EEA0C +sub_80EEA0C: @ 80EEA0C + push {r4,lr} + ldr r1, _080EEA28 + ldr r2, _080EEA2C + adds r0, r1, r2 + ldrb r0, [r0] + adds r3, r1, 0 + cmp r0, 0x8 + bls _080EEA1E + b _080EEBFA +_080EEA1E: + lsls r0, 2 + ldr r1, _080EEA30 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EEA28: .4byte 0x02000000 +_080EEA2C: .4byte 0x00006e16 +_080EEA30: .4byte _080EEA34 + .align 2, 0 +_080EEA34: + .4byte _080EEA58 + .4byte _080EEA98 + .4byte _080EEAAE + .4byte _080EEAD4 + .4byte _080EEB3E + .4byte _080EEB68 + .4byte _080EEB88 + .4byte _080EEBAC + .4byte _080EEBE4 +_080EEA58: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080EEA64 + b _080EEC08 +_080EEA64: + ldr r1, _080EEA7C + ldr r4, _080EEA80 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0xC + beq _080EEA88 + ldr r0, _080EEA84 + adds r1, r0 + movs r0, 0x1 + strb r0, [r1] + b _080EEC08 + .align 2, 0 +_080EEA7C: .4byte 0x02000000 +_080EEA80: .4byte 0x00006e17 +_080EEA84: .4byte 0x00006e16 +_080EEA88: + ldr r2, _080EEA94 + adds r1, r2 + movs r0, 0x3 + strb r0, [r1] + b _080EEC08 + .align 2, 0 +_080EEA94: .4byte 0x00006e16 +_080EEA98: + ldr r4, _080EEAC8 + ldr r1, _080EEACC + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80F2C80 + ldr r2, _080EEAD0 + adds r4, r2 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_080EEAAE: + ldr r4, _080EEAC8 + ldr r1, _080EEACC + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + beq _080EEAC2 + b _080EEC08 +_080EEAC2: + ldr r2, _080EEAD0 + adds r1, r4, r2 + b _080EEB76 + .align 2, 0 +_080EEAC8: .4byte 0x02000000 +_080EEACC: .4byte 0x00006e17 +_080EEAD0: .4byte 0x00006e16 +_080EEAD4: + adds r2, r3, 0 + ldr r4, _080EEAF8 + adds r0, r2, r4 + ldrb r1, [r0] + subs r4, 0x68 + adds r0, r2, r4 + strb r1, [r0] + ldr r1, _080EEAFC + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080EEB14 + cmp r0, 0x1 + bgt _080EEB00 + cmp r0, 0 + beq _080EEB06 + b _080EEB28 + .align 2, 0 +_080EEAF8: .4byte 0x00006e15 +_080EEAFC: .4byte 0x00006e14 +_080EEB00: + cmp r0, 0x2 + beq _080EEB20 + b _080EEB28 +_080EEB06: + ldr r4, _080EEB10 + adds r1, r2, r4 + movs r0, 0x5 + b _080EEB26 + .align 2, 0 +_080EEB10: .4byte 0x00006dae +_080EEB14: + ldr r0, _080EEB1C + adds r1, r2, r0 + movs r0, 0x3 + b _080EEB26 + .align 2, 0 +_080EEB1C: .4byte 0x00006dae +_080EEB20: + ldr r2, _080EEB58 + adds r1, r3, r2 + movs r0, 0x6 +_080EEB26: + strb r0, [r1] +_080EEB28: + ldr r4, _080EEB5C + ldr r1, _080EEB60 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80F1B8C + ldr r2, _080EEB64 + adds r4, r2 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_080EEB3E: + ldr r4, _080EEB5C + ldr r1, _080EEB60 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + bne _080EEC08 + ldr r2, _080EEB64 + adds r1, r4, r2 + b _080EEB76 + .align 2, 0 +_080EEB58: .4byte 0x00006dae +_080EEB5C: .4byte 0x02000000 +_080EEB60: .4byte 0x00006e14 +_080EEB64: .4byte 0x00006e16 +_080EEB68: + bl sub_8055870 + cmp r0, 0 + bne _080EEC08 + ldr r1, _080EEB80 + ldr r4, _080EEB84 + adds r1, r4 +_080EEB76: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080EEC08 + .align 2, 0 +_080EEB80: .4byte 0x02000000 +_080EEB84: .4byte 0x00006e16 +_080EEB88: + bl sub_80F1DF0 + ldr r4, _080EEBA0 + ldr r1, _080EEBA4 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80EF490 + ldr r2, _080EEBA8 + adds r4, r2 + b _080EEBCC + .align 2, 0 +_080EEBA0: .4byte 0x02000000 +_080EEBA4: .4byte 0x00006e14 +_080EEBA8: .4byte 0x00006e16 +_080EEBAC: + bl sub_80F1E50 + lsls r0, 24 + cmp r0, 0 + bne _080EEC08 + ldr r4, _080EEBD4 + ldr r1, _080EEBD8 + adds r0, r4, r1 + ldrb r0, [r0] + ldr r2, _080EEBDC + adds r1, r4, r2 + ldrb r1, [r1] + bl sub_80EF428 + ldr r0, _080EEBE0 + adds r4, r0 +_080EEBCC: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _080EEC08 + .align 2, 0 +_080EEBD4: .4byte 0x02000000 +_080EEBD8: .4byte 0x00006e14 +_080EEBDC: .4byte 0x00006dad +_080EEBE0: .4byte 0x00006e16 +_080EEBE4: + bl sub_80EF4F8 + lsls r0, 24 + cmp r0, 0 + bne _080EEC08 + ldr r1, _080EEC00 + ldr r2, _080EEC04 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080EEBFA: + movs r0, 0 + b _080EEC0A + .align 2, 0 +_080EEC00: .4byte 0x02000000 +_080EEC04: .4byte 0x00006e16 +_080EEC08: + movs r0, 0x1 +_080EEC0A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EEA0C + + thumb_func_start sub_80EEC10 +sub_80EEC10: @ 80EEC10 + push {r4,lr} + ldr r0, _080EEC48 + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080EEC50 + ldr r1, _080EEC4C + adds r3, r1, 0x1 + adds r2, r1, 0x5 +_080EEC24: + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bge _080EEC36 + ldrb r0, [r3] + subs r0, 0x1 + strb r0, [r1] +_080EEC36: + movs r0, 0 + ldrsb r0, [r1, r0] + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080EEC24 + movs r0, 0x1 + b _080EEC8A + .align 2, 0 +_080EEC48: .4byte gMain +_080EEC4C: .4byte 0x02006dad +_080EEC50: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EEC88 + ldr r1, _080EEC84 + movs r4, 0 + movs r2, 0x1 + ldrsb r2, [r1, r2] + adds r3, r1, 0x5 +_080EEC62: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, r2 + blt _080EEC72 + strb r4, [r1] +_080EEC72: + movs r0, 0 + ldrsb r0, [r1, r0] + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _080EEC62 + movs r0, 0x1 + b _080EEC8A + .align 2, 0 +_080EEC84: .4byte 0x02006dad +_080EEC88: + movs r0, 0 +_080EEC8A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EEC10 + + thumb_func_start sub_80EEC90 +sub_80EEC90: @ 80EEC90 + push {r4,lr} + ldr r0, _080EECC0 + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0 + beq _080EECD0 + ldr r2, _080EECC4 + ldr r0, _080EECC8 + adds r1, r2, r0 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bge _080EECF8 + ldr r3, _080EECCC + adds r0, r2, r3 + ldrb r0, [r0] + subs r0, 0x1 + strb r0, [r1] + b _080EECF8 + .align 2, 0 +_080EECC0: .4byte gMain +_080EECC4: .4byte 0x02000000 +_080EECC8: .4byte 0x00006dad +_080EECCC: .4byte 0x00006dae +_080EECD0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EED04 + ldr r0, _080EECFC + ldr r4, _080EED00 + adds r2, r0, r4 + ldrb r1, [r2] + adds r1, 0x1 + strb r1, [r2] + adds r4, 0x1 + adds r0, r4 + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + blt _080EECF8 + strb r3, [r2] +_080EECF8: + movs r0, 0x1 + b _080EED06 + .align 2, 0 +_080EECFC: .4byte 0x02000000 +_080EED00: .4byte 0x00006dad +_080EED04: + movs r0, 0 +_080EED06: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EEC90 + + thumb_func_start sub_80EED0C +sub_80EED0C: @ 80EED0C + movs r1, 0x80 + lsls r1, 19 + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + strh r0, [r1] + bx lr + thumb_func_end sub_80EED0C + + thumb_func_start sub_80EED1C +sub_80EED1C: @ 80EED1C + movs r1, 0x80 + lsls r1, 19 + movs r2, 0x92 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bx lr + thumb_func_end sub_80EED1C + + thumb_func_start sub_80EED2C +sub_80EED2C: @ 80EED2C + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bhi _080EED98 + lsls r0, 2 + ldr r1, _080EED40 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EED40: .4byte _080EED44 + .align 2, 0 +_080EED44: + .4byte _080EED5C + .4byte _080EED66 + .4byte _080EED7E + .4byte _080EED74 + .4byte _080EED74 + .4byte _080EED8C +_080EED5C: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + b _080EED94 +_080EED66: + movs r1, 0x80 + lsls r1, 19 + ldr r2, _080EED70 + b _080EED94 + .align 2, 0 +_080EED70: .4byte 0x00001741 +_080EED74: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + b _080EED94 +_080EED7E: + movs r1, 0x80 + lsls r1, 19 + ldr r2, _080EED88 + b _080EED94 + .align 2, 0 +_080EED88: .4byte 0x00007b40 +_080EED8C: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFD + lsls r2, 6 +_080EED94: + adds r0, r2, 0 + strh r0, [r1] +_080EED98: + pop {r0} + bx r0 + thumb_func_end sub_80EED2C + + thumb_func_start sub_80EED9C +sub_80EED9C: @ 80EED9C + push {lr} + ldr r2, _080EEDB8 + ldr r0, _080EEDBC + movs r1, 0xC0 + lsls r1, 2 + adds r0, r1 + ldr r1, [r0] + str r1, [r2] + ldr r1, _080EEDC0 + str r1, [r0] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080EEDB8: .4byte gUnknown_03000744 +_080EEDBC: .4byte 0x02000000 +_080EEDC0: .4byte sub_80EEDC4 + thumb_func_end sub_80EED9C + + thumb_func_start sub_80EEDC4 +sub_80EEDC4: @ 80EEDC4 + push {lr} + bl sub_8055870 + cmp r0, 0x1 + beq _080EEDDC + ldr r0, _080EEDE0 + movs r1, 0xC0 + lsls r1, 2 + adds r0, r1 + ldr r1, _080EEDE4 + ldr r1, [r1] + str r1, [r0] +_080EEDDC: + pop {r0} + bx r0 + .align 2, 0 +_080EEDE0: .4byte 0x02000000 +_080EEDE4: .4byte gUnknown_03000744 + thumb_func_end sub_80EEDC4 + + thumb_func_start sub_80EEDE8 +sub_80EEDE8: @ 80EEDE8 + ldr r0, _080EEE04 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x8 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + .align 2, 0 +_080EEE04: .4byte REG_BG0HOFS + thumb_func_end sub_80EEDE8 + + thumb_func_start sub_80EEE08 +sub_80EEE08: @ 80EEE08 + ldr r0, _080EEE18 + ldr r0, [r0] + ldr r1, _080EEE1C + adds r0, r1 + movs r1, 0 + strh r1, [r0] + bx lr + .align 2, 0 +_080EEE18: .4byte gUnknown_083DFEC4 +_080EEE1C: .4byte 0x0000d160 + thumb_func_end sub_80EEE08 + + thumb_func_start sub_80EEE20 +sub_80EEE20: @ 80EEE20 + push {lr} + ldr r0, _080EEE48 + ldr r0, [r0] + ldr r1, _080EEE4C + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080EEE50 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EEE42 +_080EEE38: + bl sub_80EEE54 + lsls r0, 24 + cmp r0, 0 + bne _080EEE38 +_080EEE42: + pop {r0} + bx r0 + .align 2, 0 +_080EEE48: .4byte gUnknown_083DFEC4 +_080EEE4C: .4byte 0x0000d160 +_080EEE50: .4byte 0x00006dac + thumb_func_end sub_80EEE20 + + thumb_func_start sub_80EEE54 +sub_80EEE54: @ 80EEE54 + push {lr} + ldr r1, _080EEE70 + ldr r0, [r1] + ldr r2, _080EEE74 + adds r0, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0x4 + bhi _080EEF02 + lsls r0, 2 + ldr r1, _080EEE78 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EEE70: .4byte gUnknown_083DFEC4 +_080EEE74: .4byte 0x0000d160 +_080EEE78: .4byte _080EEE7C + .align 2, 0 +_080EEE7C: + .4byte _080EEE90 + .4byte _080EEEA4 + .4byte _080EEEB8 + .4byte _080EEEC8 + .4byte _080EEEDC +_080EEE90: + ldr r0, _080EEE9C + ldr r1, _080EEEA0 + bl LZ77UnCompVram + b _080EEF18 + .align 2, 0 +_080EEE9C: .4byte gPokenavHoennMapMisc_Gfx +_080EEEA0: .4byte 0x0600c000 +_080EEEA4: + ldr r0, _080EEEB0 + ldr r1, _080EEEB4 + bl LZ77UnCompVram + b _080EEF18 + .align 2, 0 +_080EEEB0: .4byte gUnknown_08E99FB0 +_080EEEB4: .4byte 0x0600d800 +_080EEEB8: + ldr r0, _080EEEC4 + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + b _080EEF18 + .align 2, 0 +_080EEEC4: .4byte gPokenavHoennMap1_Pal +_080EEEC8: + movs r0, 0 + bl sub_80EF58C + movs r0, 0x1 + bl sub_80EF58C + movs r0, 0x2 + bl sub_80EF58C + b _080EEF18 +_080EEEDC: + ldr r2, [r2] + movs r3, 0xC3 + lsls r3, 2 + adds r0, r2, r3 + movs r1, 0 + strh r1, [r0] + ldr r0, _080EEF08 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r1, _080EEF0C + ldr r3, _080EEF10 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _080EEF14 + adds r2, r0 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] +_080EEF02: + movs r0, 0 + b _080EEF28 + .align 2, 0 +_080EEF08: .4byte REG_BG1HOFS +_080EEF0C: .4byte REG_BG1CNT +_080EEF10: .4byte 0x00001b0c +_080EEF14: .4byte 0x0000d160 +_080EEF18: + ldr r0, _080EEF2C + ldr r1, [r0] + ldr r2, _080EEF30 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080EEF28: + pop {r1} + bx r1 + .align 2, 0 +_080EEF2C: .4byte gUnknown_083DFEC4 +_080EEF30: .4byte 0x0000d160 + thumb_func_end sub_80EEE54 + + thumb_func_start sub_80EEF34 +sub_80EEF34: @ 80EEF34 + push {r4,lr} + movs r3, 0x1 + ldr r0, _080EEF50 + ldr r0, [r0] + movs r1, 0xC3 + lsls r1, 2 + adds r2, r0, r1 + ldrh r1, [r2] + movs r4, 0 + ldrsh r0, [r2, r4] + cmp r0, 0x20 + bne _080EEF54 + movs r0, 0 + b _080EEF6E + .align 2, 0 +_080EEF50: .4byte gUnknown_083DFEC4 +_080EEF54: + adds r0, r1, 0x2 + strh r0, [r2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + ble _080EEF66 + movs r0, 0x20 + strh r0, [r2] + movs r3, 0 +_080EEF66: + ldr r1, _080EEF74 + ldrh r0, [r2] + strh r0, [r1] + adds r0, r3, 0 +_080EEF6E: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EEF74: .4byte REG_BG1VOFS + thumb_func_end sub_80EEF34 + + thumb_func_start sub_80EEF78 +sub_80EEF78: @ 80EEF78 + push {r4,lr} + movs r3, 0x1 + ldr r0, _080EEF94 + ldr r0, [r0] + movs r1, 0xC3 + lsls r1, 2 + adds r2, r0, r1 + ldrh r1, [r2] + movs r4, 0 + ldrsh r0, [r2, r4] + cmp r0, 0 + bne _080EEF98 + movs r0, 0 + b _080EEFB0 + .align 2, 0 +_080EEF94: .4byte gUnknown_083DFEC4 +_080EEF98: + subs r0, r1, 0x2 + strh r0, [r2] + lsls r0, 16 + cmp r0, 0 + bgt _080EEFA8 + movs r0, 0 + strh r0, [r2] + movs r3, 0 +_080EEFA8: + ldr r1, _080EEFB8 + ldrh r0, [r2] + strh r0, [r1] + adds r0, r3, 0 +_080EEFB0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EEFB8: .4byte REG_BG1VOFS + thumb_func_end sub_80EEF78 + + thumb_func_start sub_80EEFBC +sub_80EEFBC: @ 80EEFBC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080EEFF4 + ldr r3, _080EEFF8 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0x11 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0 + movs r2, 0x16 + bl sub_809D104 + cmp r4, 0xB + bls _080EEFE8 + b _080EF234 +_080EEFE8: + lsls r0, r4, 2 + ldr r1, _080EEFFC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EEFF4: .4byte 0x0600d800 +_080EEFF8: .4byte gUnknown_08E9A100 +_080EEFFC: .4byte _080EF000 + .align 2, 0 +_080EF000: + .4byte _080EF030 + .4byte _080EF234 + .4byte _080EF08C + .4byte _080EF100 + .4byte _080EF13C + .4byte _080EF1D4 + .4byte _080EF234 + .4byte _080EF178 + .4byte _080EF190 + .4byte _080EF1D4 + .4byte _080EF218 + .4byte _080EF06C +_080EF030: + ldr r6, _080EF064 + ldr r0, _080EF068 + mov r8, r0 + movs r0, 0x11 + str r0, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r0, 0xA + str r0, [sp, 0x8] + movs r5, 0x2 + str r5, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0 + movs r2, 0x16 + mov r3, r8 + bl sub_809D104 + str r4, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r5, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0xA + b _080EF204 + .align 2, 0 +_080EF064: .4byte 0x0600d800 +_080EF068: .4byte gUnknown_08E9A100 +_080EF06C: + ldr r0, _080EF084 + ldr r3, _080EF088 + movs r1, 0 + str r1, [sp] + movs r1, 0x6 + str r1, [sp, 0x4] + movs r1, 0x7 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0x8 + b _080EF0EE + .align 2, 0 +_080EF084: .4byte 0x0600d800 +_080EF088: .4byte gUnknown_08E9A100 +_080EF08C: + ldr r0, _080EF0C8 + ldr r0, [r0] + ldr r1, _080EF0CC + adds r0, r1 + ldrb r7, [r0] + cmp r7, 0 + bne _080EF0D8 + ldr r5, _080EF0D0 + ldr r6, _080EF0D4 + movs r0, 0xA + str r0, [sp] + movs r4, 0x2 + str r4, [sp, 0x4] + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x16 + adds r3, r6, 0 + bl sub_809D104 + str r7, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0xA + b _080EF1C2 + .align 2, 0 +_080EF0C8: .4byte gUnknown_083DFEC4 +_080EF0CC: .4byte 0x00006dac +_080EF0D0: .4byte 0x0600d800 +_080EF0D4: .4byte gUnknown_08E9A100 +_080EF0D8: + ldr r0, _080EF0F8 + ldr r3, _080EF0FC + movs r1, 0 + str r1, [sp] + movs r1, 0x6 + str r1, [sp, 0x4] + movs r1, 0x7 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0xA +_080EF0EE: + movs r2, 0x16 + bl sub_809D104 + b _080EF234 + .align 2, 0 +_080EF0F8: .4byte 0x0600d800 +_080EF0FC: .4byte gUnknown_08E9A100 +_080EF100: + ldr r6, _080EF134 + ldr r0, _080EF138 + mov r8, r0 + movs r5, 0 + str r5, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + movs r0, 0xA + str r0, [sp, 0x8] + movs r4, 0x2 + str r4, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0 + movs r2, 0x16 + mov r3, r8 + bl sub_809D104 + str r5, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0xA + b _080EF204 + .align 2, 0 +_080EF134: .4byte 0x0600d800 +_080EF138: .4byte gUnknown_08E9A100 +_080EF13C: + ldr r5, _080EF170 + ldr r6, _080EF174 + movs r0, 0x14 + str r0, [sp] + movs r4, 0x2 + str r4, [sp, 0x4] + movs r0, 0xA + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x16 + adds r3, r6, 0 + bl sub_809D104 + movs r0, 0 + str r0, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0xA + b _080EF1C2 + .align 2, 0 +_080EF170: .4byte 0x0600d800 +_080EF174: .4byte gUnknown_08E9A100 +_080EF178: + ldr r5, _080EF188 + ldr r6, _080EF18C + movs r1, 0xA + str r1, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + str r1, [sp, 0x8] + b _080EF1A0 + .align 2, 0 +_080EF188: .4byte 0x0600d800 +_080EF18C: .4byte gUnknown_08E9A100 +_080EF190: + ldr r5, _080EF1CC + ldr r6, _080EF1D0 + movs r0, 0x14 + str r0, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + movs r0, 0xA + str r0, [sp, 0x8] +_080EF1A0: + movs r4, 0x2 + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x16 + adds r3, r6, 0 + bl sub_809D104 + movs r0, 0 + str r0, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0x7 +_080EF1C2: + movs r2, 0x16 + adds r3, r6, 0 + bl sub_809D104 + b _080EF234 + .align 2, 0 +_080EF1CC: .4byte 0x0600d800 +_080EF1D0: .4byte gUnknown_08E9A100 +_080EF1D4: + ldr r6, _080EF210 + ldr r1, _080EF214 + mov r8, r1 + movs r5, 0 + str r5, [sp] + movs r4, 0x2 + str r4, [sp, 0x4] + movs r0, 0xA + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0 + movs r2, 0x16 + mov r3, r8 + bl sub_809D104 + str r5, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0x8 +_080EF204: + movs r2, 0x16 + mov r3, r8 + bl sub_809D104 + b _080EF234 + .align 2, 0 +_080EF210: .4byte 0x0600d800 +_080EF214: .4byte gUnknown_08E9A100 +_080EF218: + ldr r0, _080EF240 + ldr r3, _080EF244 + movs r1, 0 + str r1, [sp] + movs r1, 0x6 + str r1, [sp, 0x4] + movs r1, 0x7 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0x8 + movs r2, 0x16 + bl sub_809D104 +_080EF234: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EF240: .4byte 0x0600d800 +_080EF244: .4byte gUnknown_08E9A100 + thumb_func_end sub_80EEFBC + + thumb_func_start sub_80EF248 +sub_80EF248: @ 80EF248 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080EF278 + ldr r0, [r0] + ldr r1, _080EF27C + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080EF280 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EF270 +_080EF264: + adds r0, r4, 0 + bl sub_80EF284 + lsls r0, 24 + cmp r0, 0 + bne _080EF264 +_080EF270: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF278: .4byte gUnknown_083DFEC4 +_080EF27C: .4byte 0x0000d160 +_080EF280: .4byte 0x00006dac + thumb_func_end sub_80EF248 + + thumb_func_start sub_80EF284 +sub_80EF284: @ 80EF284 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080EF2A8 + ldr r0, [r1] + ldr r3, _080EF2AC + adds r0, r3 + ldrh r0, [r0] + adds r3, r1, 0 + cmp r0, 0xB + bls _080EF29C + b _080EF3F6 +_080EF29C: + lsls r0, 2 + ldr r1, _080EF2B0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EF2A8: .4byte gUnknown_083DFEC4 +_080EF2AC: .4byte 0x0000d160 +_080EF2B0: .4byte _080EF2B4 + .align 2, 0 +_080EF2B4: + .4byte _080EF2E4 + .4byte _080EF2EA + .4byte _080EF2F8 + .4byte _080EF304 + .4byte _080EF310 + .4byte _080EF330 + .4byte _080EF344 + .4byte _080EF368 + .4byte _080EF37C + .4byte _080EF390 + .4byte _080EF3A4 + .4byte _080EF3CC +_080EF2E4: + bl sub_80EEDE8 + b _080EF40C +_080EF2EA: + ldr r0, _080EF2F4 + bl SetUpWindowConfig + b _080EF40C + .align 2, 0 +_080EF2F4: .4byte gWindowConfig_81E7224 +_080EF2F8: + ldr r0, _080EF300 + bl MultistepInitMenuWindowBegin + b _080EF40C + .align 2, 0 +_080EF300: .4byte gWindowConfig_81E7224 +_080EF304: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + beq _080EF30E + b _080EF40C +_080EF30E: + b _080EF41A +_080EF310: + ldr r1, _080EF320 + ldr r2, _080EF324 + ldr r0, _080EF328 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080EF32C + b _080EF350 + .align 2, 0 +_080EF320: .4byte gUnknown_083DFEEC +_080EF324: .4byte 0x06005000 +_080EF328: .4byte 0x040000d4 +_080EF32C: .4byte 0x80000050 +_080EF330: + ldr r0, _080EF33C + ldr r1, _080EF340 + bl LZ77UnCompVram + b _080EF40C + .align 2, 0 +_080EF33C: .4byte gUnknown_083DFF8C +_080EF340: .4byte 0x0600f800 +_080EF344: + ldr r1, _080EF358 + ldr r2, _080EF35C + ldr r0, _080EF360 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080EF364 +_080EF350: + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080EF40C + .align 2, 0 +_080EF358: .4byte gUnknown_083E005C +_080EF35C: .4byte 0x06008000 +_080EF360: .4byte 0x040000d4 +_080EF364: .4byte 0x80000010 +_080EF368: + ldr r0, _080EF374 + ldr r1, _080EF378 + bl LZ77UnCompVram + b _080EF40C + .align 2, 0 +_080EF374: .4byte gUnknown_083E007C +_080EF378: .4byte 0x0600e000 +_080EF37C: + ldr r0, _080EF388 + ldr r1, _080EF38C + bl LZ77UnCompVram + b _080EF40C + .align 2, 0 +_080EF388: .4byte gPokenavOutlineTilemap +_080EF38C: .4byte 0x0600e800 +_080EF390: + ldr r0, _080EF39C + ldr r1, _080EF3A0 + bl LZ77UnCompVram + b _080EF40C + .align 2, 0 +_080EF39C: .4byte gPokenavOutlineTiles +_080EF3A0: .4byte 0x06008020 +_080EF3A4: + adds r0, r2, 0 + bl sub_80EF54C + ldr r0, _080EF3C4 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080EF3C8 + movs r1, 0x40 + movs r2, 0x20 + bl LoadPalette + bl sub_80EF7D4 + b _080EF40C + .align 2, 0 +_080EF3C4: .4byte gUnknown_083DFECC +_080EF3C8: .4byte gPokenavOutlinePalette +_080EF3CC: + ldr r1, _080EF3FC + ldr r2, _080EF400 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080EF404 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + subs r2, 0xFF + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x42 + movs r0, 0 + strh r0, [r1] + ldr r1, [r3] + ldr r3, _080EF408 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EF3F6: + movs r0, 0 + b _080EF41C + .align 2, 0 +_080EF3FC: .4byte REG_BG0CNT +_080EF400: .4byte 0x00001f01 +_080EF404: .4byte 0x00001d0a +_080EF408: .4byte 0x0000d160 +_080EF40C: + ldr r0, _080EF420 + ldr r1, [r0] + ldr r0, _080EF424 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EF41A: + movs r0, 0x1 +_080EF41C: + pop {r1} + bx r1 + .align 2, 0 +_080EF420: .4byte gUnknown_083DFEC4 +_080EF424: .4byte 0x0000d160 + thumb_func_end sub_80EF284 + + thumb_func_start sub_80EF428 +sub_80EF428: @ 80EF428 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + lsls r1, 24 + lsrs r2, r1, 24 + movs r1, 0 + cmp r0, 0x1 + beq _080EF454 + cmp r0, 0x1 + bgt _080EF444 + cmp r0, 0 + beq _080EF44A + b _080EF464 +_080EF444: + cmp r3, 0x2 + beq _080EF45C + b _080EF464 +_080EF44A: + ldr r1, _080EF450 + b _080EF45E + .align 2, 0 +_080EF450: .4byte gUnknown_083E31B0 +_080EF454: + ldr r1, _080EF458 + b _080EF45E + .align 2, 0 +_080EF458: .4byte gUnknown_083E31CC +_080EF45C: + ldr r1, _080EF488 +_080EF45E: + lsls r0, r2, 2 + adds r0, r1 + ldr r1, [r0] +_080EF464: + ldr r0, _080EF48C + ldr r4, [r0] + movs r0, 0x80 + lsls r0, 4 + adds r4, r0 + adds r0, r4, 0 + movs r2, 0xC0 + movs r3, 0x2 + bl sub_8072C74 + adds r0, r4, 0 + movs r1, 0x3 + movs r2, 0x11 + bl MenuPrint + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF488: .4byte gUnknown_083E31D8 +_080EF48C: .4byte gUnknown_083DFEC8 + thumb_func_end sub_80EF428 + + thumb_func_start sub_80EF490 +sub_80EF490: @ 80EF490 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bne _080EF49C + movs r2, 0x1 +_080EF49C: + ldr r0, _080EF4C4 + ldr r3, [r0] + lsls r1, r2, 4 + subs r1, r2 + lsls r2, r1, 1 + ldr r4, _080EF4C8 + adds r0, r3, r4 + strh r2, [r0] + ldr r2, _080EF4CC + adds r0, r3, r2 + ldrh r2, [r0] + lsls r1, 17 + lsrs r0, r1, 16 + cmp r2, r0 + bcs _080EF4D0 + adds r4, 0x2 + adds r1, r3, r4 + movs r0, 0x2 + b _080EF4EA + .align 2, 0 +_080EF4C4: .4byte gUnknown_083DFEC4 +_080EF4C8: .4byte 0x0000ce4e +_080EF4CC: .4byte 0x0000ce4c +_080EF4D0: + cmp r2, r0 + bls _080EF4E4 + ldr r0, _080EF4DC + adds r1, r3, r0 + ldr r0, _080EF4E0 + b _080EF4EA + .align 2, 0 +_080EF4DC: .4byte 0x0000ce50 +_080EF4E0: .4byte 0x0000fffe +_080EF4E4: + ldr r2, _080EF4F4 + adds r1, r3, r2 + movs r0, 0 +_080EF4EA: + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF4F4: .4byte 0x0000ce50 + thumb_func_end sub_80EF490 + + thumb_func_start sub_80EF4F8 +sub_80EF4F8: @ 80EF4F8 + push {r4,lr} + ldr r0, _080EF530 + ldr r1, [r0] + ldr r0, _080EF534 + adds r2, r1, r0 + ldr r3, _080EF538 + adds r0, r1, r3 + ldrh r3, [r2] + ldrh r0, [r0] + cmp r3, r0 + beq _080EF544 + ldr r4, _080EF53C + adds r0, r1, r4 + ldrh r0, [r0] + adds r0, r3, r0 + strh r0, [r2] + ldr r3, _080EF540 + adds r0, r1, r3 + ldrh r1, [r2] + lsls r1, 1 + adds r0, r1 + movs r1, 0x31 + movs r2, 0x4 + bl LoadPalette + movs r0, 0x1 + b _080EF546 + .align 2, 0 +_080EF530: .4byte gUnknown_083DFEC4 +_080EF534: .4byte 0x0000ce4c +_080EF538: .4byte 0x0000ce4e +_080EF53C: .4byte 0x0000ce50 +_080EF540: .4byte 0x0000ce52 +_080EF544: + movs r0, 0 +_080EF546: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EF4F8 + + thumb_func_start sub_80EF54C +sub_80EF54C: @ 80EF54C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bne _080EF558 + movs r2, 0x1 +_080EF558: + ldr r0, _080EF580 + ldr r0, [r0] + lsls r1, r2, 4 + subs r1, r2 + lsls r1, 1 + ldr r3, _080EF584 + adds r2, r0, r3 + strh r1, [r2] + ldrh r1, [r2] + lsls r1, 1 + ldr r2, _080EF588 + adds r1, r2 + adds r0, r1 + movs r1, 0x31 + movs r2, 0x4 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_080EF580: .4byte gUnknown_083DFEC4 +_080EF584: .4byte 0x0000ce4c +_080EF588: .4byte 0x0000ce52 + thumb_func_end sub_80EF54C + + thumb_func_start sub_80EF58C +sub_80EF58C: @ 80EF58C + push {lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x1 + beq _080EF5D0 + cmp r0, 0x1 + bgt _080EF5A4 + cmp r0, 0 + beq _080EF5AA + b _080EF610 +_080EF5A4: + cmp r1, 0x2 + beq _080EF5F8 + b _080EF610 +_080EF5AA: + movs r1, 0 + ldr r0, _080EF5C8 + ldr r0, [r0] + ldr r3, _080EF5CC + adds r2, r0, r3 + movs r3, 0 +_080EF5B6: + lsls r0, r1, 1 + adds r0, r2, r0 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3D + bls _080EF5B6 + b _080EF610 + .align 2, 0 +_080EF5C8: .4byte gUnknown_083DFEC4 +_080EF5CC: .4byte 0x0000ce52 +_080EF5D0: + ldr r0, _080EF5EC + ldr r0, [r0] + ldr r1, _080EF5F0 + adds r2, r0, r1 + ldr r1, _080EF5F4 + adds r0, r1, 0x2 + adds r1, 0x6 + str r2, [sp] + movs r2, 0x10 + movs r3, 0x2 + bl sub_80EF624 + b _080EF610 + .align 2, 0 +_080EF5EC: .4byte gUnknown_083DFEC4 +_080EF5F0: .4byte 0x0000ce52 +_080EF5F4: .4byte gUnknown_083E003C +_080EF5F8: + ldr r0, _080EF618 + ldr r0, [r0] + ldr r3, _080EF61C + adds r2, r0, r3 + ldr r1, _080EF620 + adds r0, r1, 0x6 + adds r1, 0xE + str r2, [sp] + movs r2, 0x10 + movs r3, 0x2 + bl sub_80EF624 +_080EF610: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080EF618: .4byte gUnknown_083DFEC4 +_080EF61C: .4byte 0x0000ce8e +_080EF620: .4byte gUnknown_083E003C + thumb_func_end sub_80EF58C + + thumb_func_start sub_80EF624 +sub_80EF624: @ 80EF624 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x38 + str r0, [sp] + str r1, [sp, 0x4] + ldr r4, [sp, 0x58] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x8] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0xC] + movs r0, 0 + str r0, [sp, 0x10] + lsls r0, r3, 16 + ldr r1, [sp, 0x10] + cmp r1, r3 + bcs _080EF72E + subs r2, 0x1 + str r2, [sp, 0x20] + str r0, [sp, 0x2C] +_080EF654: + ldr r2, [sp] + ldrh r1, [r2] + movs r0, 0x1F + ands r0, r1 + lsls r7, r0, 8 + lsls r1, 16 + lsrs r0, r1, 21 + movs r2, 0x1F + ands r0, r2 + lsls r6, r0, 8 + lsrs r1, 26 + ands r1, r2 + lsls r5, r1, 8 + ldr r0, [sp, 0x4] + ldrh r1, [r0] + movs r0, 0x1F + ands r0, r1 + lsls r0, 8 + str r0, [sp, 0x14] + lsls r1, 16 + lsrs r0, r1, 21 + ands r0, r2 + lsls r0, 8 + str r0, [sp, 0x18] + lsrs r1, 26 + ands r1, r2 + lsls r1, 8 + str r1, [sp, 0x1C] + ldr r1, [sp, 0x14] + subs r0, r1, r7 + ldr r1, [sp, 0x8] + bl __divsi3 + mov r10, r0 + ldr r2, [sp, 0x18] + subs r0, r2, r6 + ldr r1, [sp, 0x8] + bl __divsi3 + mov r9, r0 + ldr r1, [sp, 0x1C] + subs r0, r1, r5 + ldr r1, [sp, 0x8] + bl __divsi3 + mov r8, r0 + adds r3, r4, 0 + movs r4, 0 + ldr r2, [sp] + adds r2, 0x2 + str r2, [sp, 0x30] + ldr r0, [sp, 0x4] + adds r0, 0x2 + str r0, [sp, 0x34] + adds r1, r3, 0x2 + str r1, [sp, 0x24] + ldr r2, [sp, 0x10] + adds r2, 0x1 + str r2, [sp, 0x28] + ldr r0, [sp, 0x20] + cmp r4, r0 + bge _080EF700 + ldr r1, [sp, 0xC] + lsls r1, 1 + mov r12, r1 +_080EF6D6: + lsls r0, r7, 8 + lsrs r2, r0, 16 + lsls r0, r6, 8 + lsrs r1, r0, 16 + lsls r0, r5, 8 + lsrs r0, 16 + lsls r0, 10 + lsls r1, 5 + orrs r0, r1 + orrs r2, r0 + strh r2, [r3] + add r3, r12 + add r7, r10 + add r6, r9 + add r5, r8 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r2, [sp, 0x20] + cmp r4, r2 + blt _080EF6D6 +_080EF700: + ldr r4, [sp, 0x14] + lsrs r2, r4, 8 + ldr r1, [sp, 0x1C] + lsls r0, r1, 2 + ldr r4, [sp, 0x18] + lsrs r1, r4, 3 + orrs r0, r1 + orrs r2, r0 + strh r2, [r3] + ldr r0, [sp, 0x30] + str r0, [sp] + ldr r1, [sp, 0x34] + str r1, [sp, 0x4] + ldr r4, [sp, 0x24] + ldr r2, [sp, 0x28] + lsls r0, r2, 16 + lsrs r0, 16 + str r0, [sp, 0x10] + ldr r1, [sp, 0x2C] + lsrs r0, r1, 16 + ldr r2, [sp, 0x10] + cmp r2, r0 + bcc _080EF654 +_080EF72E: + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80EF624 + + thumb_func_start sub_80EF740 +sub_80EF740: @ 80EF740 + push {lr} + ldr r0, _080EF770 + ldr r3, [r0] + ldr r0, _080EF774 + adds r2, r3, r0 + ldrh r0, [r2] + adds r0, 0x1 + movs r1, 0x1 + ands r0, r1 + strh r0, [r2] + cmp r0, 0 + beq _080EF762 + ldr r2, _080EF778 + adds r1, r3, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EF762: + ldr r0, _080EF77C + ldr r2, _080EF778 + adds r1, r3, r2 + ldrh r1, [r1] + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080EF770: .4byte gUnknown_083DFEC4 +_080EF774: .4byte 0x00006da0 +_080EF778: .4byte 0x00006da2 +_080EF77C: .4byte REG_BG3HOFS + thumb_func_end sub_80EF740 + + thumb_func_start sub_80EF780 +sub_80EF780: @ 80EF780 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080EF7B0 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080EF7AA + ldr r0, _080EF7B4 + ldr r3, [r0] + ldr r0, _080EF7B8 + adds r2, r3, r0 + ldrh r0, [r2] + movs r1, 0x7 + ands r1, r0 + cmp r1, 0 + beq _080EF7BC +_080EF7AA: + bl sub_80EF740 + b _080EF7C8 + .align 2, 0 +_080EF7B0: .4byte gTasks +_080EF7B4: .4byte gUnknown_083DFEC4 +_080EF7B8: .4byte 0x00006da2 +_080EF7BC: + strh r1, [r2] + ldr r2, _080EF7CC + adds r0, r3, r2 + strh r1, [r0] + ldr r0, _080EF7D0 + strh r1, [r0] +_080EF7C8: + pop {r0} + bx r0 + .align 2, 0 +_080EF7CC: .4byte 0x00006da0 +_080EF7D0: .4byte REG_BG3HOFS + thumb_func_end sub_80EF780 + + thumb_func_start sub_80EF7D4 +sub_80EF7D4: @ 80EF7D4 + push {r4,lr} + ldr r0, _080EF800 + ldr r4, [r0] + ldr r1, _080EF804 + adds r0, r4, r1 + movs r1, 0 + strh r1, [r0] + ldr r2, _080EF808 + adds r0, r4, r2 + strh r1, [r0] + ldr r0, _080EF80C + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080EF810 + adds r4, r1 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF800: .4byte gUnknown_083DFEC4 +_080EF804: .4byte 0x00006da2 +_080EF808: .4byte 0x00006da0 +_080EF80C: .4byte sub_80EF780 +_080EF810: .4byte 0x00006da4 + thumb_func_end sub_80EF7D4 + + thumb_func_start sub_80EF814 +sub_80EF814: @ 80EF814 + push {lr} + ldr r0, _080EF834 + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + beq _080EF830 + ldr r0, _080EF838 + ldr r0, [r0] + ldr r1, _080EF83C + adds r0, r1 + ldrb r0, [r0] + bl DestroyTask +_080EF830: + pop {r0} + bx r0 + .align 2, 0 +_080EF834: .4byte sub_80EF780 +_080EF838: .4byte gUnknown_083DFEC4 +_080EF83C: .4byte 0x00006da4 + thumb_func_end sub_80EF814 + + thumb_func_start sub_80EF840 +sub_80EF840: @ 80EF840 + push {lr} + ldr r0, _080EF868 + ldr r0, [r0] + ldr r1, _080EF86C + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080EF870 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EF862 +_080EF858: + bl sub_80EF874 + lsls r0, 24 + cmp r0, 0 + bne _080EF858 +_080EF862: + pop {r0} + bx r0 + .align 2, 0 +_080EF868: .4byte gUnknown_083DFEC4 +_080EF86C: .4byte 0x0000d160 +_080EF870: .4byte 0x00006dac + thumb_func_end sub_80EF840 + + thumb_func_start sub_80EF874 +sub_80EF874: @ 80EF874 + push {lr} + ldr r0, _080EF890 + ldr r0, [r0] + ldr r1, _080EF894 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0xB + bls _080EF886 + b _080EF9D8 +_080EF886: + lsls r0, 2 + ldr r1, _080EF898 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EF890: .4byte gUnknown_083DFEC4 +_080EF894: .4byte 0x0000d160 +_080EF898: .4byte _080EF89C + .align 2, 0 +_080EF89C: + .4byte _080EF8CC + .4byte _080EF8D2 + .4byte _080EF8E0 + .4byte _080EF8EC + .4byte _080EF8F6 + .4byte _080EF8FC + .4byte _080EF920 + .4byte _080EF92C + .4byte _080EF940 + .4byte _080EF954 + .4byte _080EF960 + .4byte _080EF972 +_080EF8CC: + bl sub_80EEDE8 + b _080EF9DC +_080EF8D2: + ldr r0, _080EF8DC + bl SetUpWindowConfig + b _080EF9DC + .align 2, 0 +_080EF8DC: .4byte gWindowConfig_81E7224 +_080EF8E0: + ldr r0, _080EF8E8 + bl MultistepInitMenuWindowBegin + b _080EF9DC + .align 2, 0 +_080EF8E8: .4byte gWindowConfig_81E7224 +_080EF8EC: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + bne _080EF9DC + b _080EF9EA +_080EF8F6: + bl MenuZeroFillScreen + b _080EF9DC +_080EF8FC: + ldr r0, _080EF914 + ldr r0, [r0] + ldr r2, _080EF918 + adds r0, r2 + ldr r1, _080EF91C + ldrb r1, [r1, 0x15] + lsrs r1, 3 + movs r2, 0x1 + ands r1, r2 + bl sub_80FA904 + b _080EF9DC + .align 2, 0 +_080EF914: .4byte gUnknown_083DFEC4 +_080EF918: .4byte 0x00006e18 +_080EF91C: .4byte gSaveBlock2 +_080EF920: + bl sub_80FA940 + lsls r0, 24 + cmp r0, 0 + beq _080EF9DC + b _080EF9EA +_080EF92C: + ldr r0, _080EF938 + ldr r1, _080EF93C + bl LZ77UnCompVram + b _080EF9DC + .align 2, 0 +_080EF938: .4byte gPokenavHoennMapSquares_Gfx +_080EF93C: .4byte 0x06005000 +_080EF940: + ldr r0, _080EF950 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + bl sub_80EFC3C + b _080EF9DC + .align 2, 0 +_080EF950: .4byte gPokenavHoennMapSquares_Pal +_080EF954: + bl sub_80EFC64 + lsls r0, 24 + cmp r0, 0 + beq _080EF9DC + b _080EF9EA +_080EF960: + movs r0, 0xD + movs r1, 0x3 + movs r2, 0x1D + movs r3, 0x11 + bl MenuDrawTextWindow + bl sub_80EF9F8 + b _080EF9DC +_080EF972: + ldr r0, _080EF990 + ldr r1, [r0] + ldr r2, _080EF994 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080EF9A0 + ldr r2, _080EF998 + adds r0, r1, r2 + movs r1, 0xA0 + strh r1, [r0] + ldr r0, _080EF99C + strh r1, [r0] + b _080EF9B0 + .align 2, 0 +_080EF990: .4byte gUnknown_083DFEC4 +_080EF994: .4byte 0x00006e90 +_080EF998: .4byte 0x00007698 +_080EF99C: .4byte REG_BG0VOFS +_080EF9A0: + ldr r0, _080EF9C8 + adds r1, r0 + movs r2, 0 + movs r0, 0x80 + lsls r0, 1 + strh r0, [r1] + ldr r0, _080EF9CC + strh r2, [r0] +_080EF9B0: + ldr r2, _080EF9D0 + ldrh r0, [r2] + strh r0, [r2] + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080EF9D4 + movs r0, 0 + strh r0, [r1] + b _080EF9DC + .align 2, 0 +_080EF9C8: .4byte 0x00007698 +_080EF9CC: .4byte REG_BG0VOFS +_080EF9D0: .4byte REG_BG0CNT +_080EF9D4: .4byte REG_BLDCNT +_080EF9D8: + movs r0, 0 + b _080EF9EC +_080EF9DC: + ldr r0, _080EF9F0 + ldr r1, [r0] + ldr r2, _080EF9F4 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EF9EA: + movs r0, 0x1 +_080EF9EC: + pop {r1} + bx r1 + .align 2, 0 +_080EF9F0: .4byte gUnknown_083DFEC4 +_080EF9F4: .4byte 0x0000d160 + thumb_func_end sub_80EF874 + + thumb_func_start sub_80EF9F8 +sub_80EF9F8: @ 80EF9F8 + push {r4-r6,lr} + sub sp, 0x14 + movs r5, 0x4 + ldr r0, _080EFA18 + ldr r0, [r0] + ldr r1, _080EFA1C + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x4 + bls _080EFA0E + b _080EFB6A +_080EFA0E: + lsls r0, 2 + ldr r1, _080EFA20 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EFA18: .4byte gUnknown_083DFEC4 +_080EFA1C: .4byte 0x00006e2e +_080EFA20: .4byte _080EFA24 + .align 2, 0 +_080EFA24: + .4byte _080EFB6A + .4byte _080EFA38 + .4byte _080EFAC0 + .4byte _080EFB4C + .4byte _080EFA38 +_080EFA38: + ldr r0, _080EFA64 + ldr r0, [r0] + ldr r2, _080EFA68 + adds r0, r2 + lsls r2, r5, 19 + lsrs r2, 16 + movs r1, 0x1 + str r1, [sp] + movs r1, 0x70 + movs r3, 0x78 + bl sub_8072A18 + adds r0, r5, 0x2 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080EFA6C + ldrb r0, [r0] + cmp r0, 0x1 + bne _080EFA70 + bl sub_80F1A80 + b _080EFB82 + .align 2, 0 +_080EFA64: .4byte gUnknown_083DFEC4 +_080EFA68: .4byte 0x00006e18 +_080EFA6C: .4byte gLinkOpen +_080EFA70: + movs r4, 0 + b _080EFA92 +_080EFA74: + lsls r2, r5, 19 + lsrs r2, 16 + movs r0, 0x1 + str r0, [sp] + adds r0, r1, 0 + movs r1, 0x70 + movs r3, 0x78 + bl sub_8072A18 + adds r0, r5, 0x2 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080EFA92: + cmp r4, 0x3 + bhi _080EFB6A + ldr r0, _080EFAB8 + ldr r1, [r0] + ldr r2, _080EFABC + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x3 + adds r1, r2 + ldrb r1, [r1] + lsls r2, r4, 24 + lsrs r2, 24 + bl sub_811A8CC + adds r1, r0, 0 + cmp r1, 0 + bne _080EFA74 + b _080EFB6A + .align 2, 0 +_080EFAB8: .4byte gUnknown_083DFEC4 +_080EFABC: .4byte 0x00006e2c +_080EFAC0: + ldr r0, _080EFB38 + ldr r4, [r0] + ldr r1, _080EFB3C + adds r0, r4, r1 + lsls r2, r5, 19 + lsrs r2, 16 + movs r1, 0x1 + str r1, [sp] + movs r1, 0x70 + movs r3, 0x78 + bl sub_8072A18 + adds r0, r5, 0x2 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r2, _080EFB40 + adds r0, r4, r2 + ldrh r1, [r0] + adds r2, 0x3 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 2 + lsls r1, 3 + adds r0, r1 + ldr r1, _080EFB44 + adds r4, r1 + adds r6, r4, r0 + ldr r0, [r6] + cmp r0, 0 + beq _080EFB6A + lsls r4, r5, 24 + lsrs r4, 24 + movs r0, 0xE + adds r1, r4, 0 + movs r2, 0xF + movs r3, 0xF + bl MenuFillWindowRectWithBlankTile + movs r0, 0x1A + adds r1, r4, 0 + movs r2, 0x1C + movs r3, 0xF + bl MenuFillWindowRectWithBlankTile + ldr r0, _080EFB48 + ldr r3, [r6] + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0xA + str r1, [sp, 0x8] + str r1, [sp, 0xC] + str r1, [sp, 0x10] + movs r1, 0x10 + movs r2, 0x6 + bl sub_8095C8C + adds r0, r5, 0 + adds r0, 0xB + b _080EFB66 + .align 2, 0 +_080EFB38: .4byte gUnknown_083DFEC4 +_080EFB3C: .4byte 0x00006e18 +_080EFB40: .4byte 0x00006e2c +_080EFB44: .4byte 0x0000cdcc +_080EFB48: .4byte 0x0600f800 +_080EFB4C: + ldr r0, _080EFB98 + ldr r0, [r0] + ldr r2, _080EFB9C + adds r0, r2 + lsls r2, r5, 19 + lsrs r2, 16 + movs r1, 0x1 + str r1, [sp] + movs r1, 0x70 + movs r3, 0x78 + bl sub_8072A18 + adds r0, r5, 0x2 +_080EFB66: + lsls r0, 16 + lsrs r5, r0, 16 +_080EFB6A: + movs r0, 0 + cmp r0, 0 + bne _080EFB82 + cmp r5, 0xF + bhi _080EFB82 + lsls r1, r5, 24 + lsrs r1, 24 + movs r0, 0xE + movs r2, 0x1C + movs r3, 0xF + bl MenuFillWindowRectWithBlankTile +_080EFB82: + ldr r0, _080EFB98 + ldr r0, [r0] + ldr r1, _080EFBA0 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x2 + bne _080EFBA4 + bl sub_80EFD74 + b _080EFBA8 + .align 2, 0 +_080EFB98: .4byte gUnknown_083DFEC4 +_080EFB9C: .4byte 0x00006e18 +_080EFBA0: .4byte 0x00006e2e +_080EFBA4: + bl sub_80EFDA0 +_080EFBA8: + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80EF9F8 + + thumb_func_start sub_80EFBB0 +sub_80EFBB0: @ 80EFBB0 + push {lr} + ldr r0, _080EFBC8 + ldr r0, [r0] + ldr r1, _080EFBCC + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EFBD0 + movs r0, 0x8 + bl sub_80EEFBC + b _080EFBD6 + .align 2, 0 +_080EFBC8: .4byte gUnknown_083DFEC4 +_080EFBCC: .4byte 0x00006e90 +_080EFBD0: + movs r0, 0x7 + bl sub_80EEFBC +_080EFBD6: + pop {r0} + bx r0 + thumb_func_end sub_80EFBB0 + + thumb_func_start sub_80EFBDC +sub_80EFBDC: @ 80EFBDC + push {r4,lr} + lsls r0, 24 + movs r4, 0x1 + ldr r2, _080EFBFC + ldr r1, [r2] + ldr r3, _080EFC00 + adds r1, r3 + ldrh r3, [r1] + cmp r0, 0 + beq _080EFC08 + cmp r3, 0xA8 + bls _080EFC04 + adds r0, r3, 0 + subs r0, 0x8 + b _080EFC10 + .align 2, 0 +_080EFBFC: .4byte gUnknown_083DFEC4 +_080EFC00: .4byte 0x00007698 +_080EFC04: + movs r3, 0xA0 + b _080EFC1A +_080EFC08: + cmp r3, 0xF7 + bhi _080EFC16 + adds r0, r3, 0 + adds r0, 0x8 +_080EFC10: + lsls r0, 16 + lsrs r3, r0, 16 + b _080EFC1C +_080EFC16: + movs r3, 0x80 + lsls r3, 1 +_080EFC1A: + movs r4, 0 +_080EFC1C: + ldr r0, [r2] + ldr r1, _080EFC34 + adds r0, r1 + strh r3, [r0] + ldr r1, _080EFC38 + movs r0, 0xFF + ands r3, r0 + strh r3, [r1] + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EFC34: .4byte 0x00007698 +_080EFC38: .4byte REG_BG0VOFS + thumb_func_end sub_80EFBDC + + thumb_func_start sub_80EFC3C +sub_80EFC3C: @ 80EFC3C + push {lr} + ldr r0, _080EFC58 + ldr r0, [r0] + ldr r2, _080EFC5C + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r1, _080EFC60 + adds r0, r1 + strb r2, [r0] + bl sub_80EFD3C + pop {r0} + bx r0 + .align 2, 0 +_080EFC58: .4byte gUnknown_083DFEC4 +_080EFC5C: .4byte 0x0000bc9a +_080EFC60: .4byte 0x0000bc9b + thumb_func_end sub_80EFC3C + + thumb_func_start sub_80EFC64 +sub_80EFC64: @ 80EFC64 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + ldr r4, _080EFCD0 + ldr r2, [r4] + ldr r0, _080EFCD4 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0xF + bhi _080EFD2C + ldrb r1, [r1] + mov r8, r1 + ldr r1, _080EFCD8 + adds r0, r2, r1 + ldrb r7, [r0] + movs r2, 0 + ldr r0, _080EFCDC + mov r9, r0 + adds r3, r4, 0 +_080EFC8E: + lsls r0, r2, 2 + mov r4, r8 + lsls r1, r4, 3 + adds r6, r0, r1 + mov r1, r9 + adds r0, r6, r1 + ldr r1, [r0] + cmp r1, 0 + beq _080EFCE8 + movs r0, 0xC8 + adds r5, r7, 0 + muls r5, r0 + ldr r4, _080EFCE0 + adds r5, r4 + ldr r4, [r3] + adds r5, r4, r5 + adds r0, r1, 0 + adds r1, r5, 0 + str r2, [sp] + str r3, [sp, 0x4] + bl LZ77UnCompVram + ldr r0, _080EFCE4 + adds r4, r0 + adds r4, r6 + str r5, [r4] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r2, [sp] + ldr r3, [sp, 0x4] + b _080EFCF2 + .align 2, 0 +_080EFCD0: .4byte gUnknown_083DFEC4 +_080EFCD4: .4byte 0x0000bc9a +_080EFCD8: .4byte 0x0000bc9b +_080EFCDC: .4byte gPokenavCityMaps +_080EFCE0: .4byte 0x0000bc9c +_080EFCE4: .4byte 0x0000cdcc +_080EFCE8: + ldr r0, [r3] + ldr r4, _080EFD1C + adds r0, r4 + adds r0, r6 + str r1, [r0] +_080EFCF2: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1 + bls _080EFC8E + ldr r0, _080EFD20 + ldr r2, [r0] + ldr r0, _080EFD24 + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xF + bhi _080EFD2C + ldr r1, _080EFD28 + adds r0, r2, r1 + strb r7, [r0] + movs r0, 0x1 + b _080EFD2E + .align 2, 0 +_080EFD1C: .4byte 0x0000cdcc +_080EFD20: .4byte gUnknown_083DFEC4 +_080EFD24: .4byte 0x0000bc9a +_080EFD28: .4byte 0x0000bc9b +_080EFD2C: + movs r0, 0 +_080EFD2E: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80EFC64 + + thumb_func_start sub_80EFD3C +sub_80EFD3C: @ 80EFD3C + ldr r0, _080EFD60 + ldr r1, [r0] + ldr r2, _080EFD64 + adds r0, r1, r2 + movs r2, 0 + strb r2, [r0] + ldr r0, _080EFD68 + adds r3, r1, r0 + movs r0, 0x2F + strb r0, [r3] + ldr r3, _080EFD6C + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080EFD70 + adds r1, r0 + strh r2, [r1] + bx lr + .align 2, 0 +_080EFD60: .4byte gUnknown_083DFEC4 +_080EFD64: .4byte 0x0000769e +_080EFD68: .4byte 0x0000769c +_080EFD6C: .4byte 0x0000769d +_080EFD70: .4byte 0x0000769a + thumb_func_end sub_80EFD3C + + thumb_func_start sub_80EFD74 +sub_80EFD74: @ 80EFD74 + push {lr} + ldr r0, _080EFD94 + ldr r2, [r0] + ldr r0, _080EFD98 + adds r1, r2, r0 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080EFD9C + adds r2, r0 + ldrb r0, [r2] + cmp r0, 0x1 + bne _080EFD90 + movs r0, 0x2 + strb r0, [r2] +_080EFD90: + pop {r0} + bx r0 + .align 2, 0 +_080EFD94: .4byte gUnknown_083DFEC4 +_080EFD98: .4byte 0x0000769e +_080EFD9C: .4byte 0x0000769d + thumb_func_end sub_80EFD74 + + thumb_func_start sub_80EFDA0 +sub_80EFDA0: @ 80EFDA0 + push {r4,lr} + sub sp, 0x14 + ldr r0, _080EFDD4 + ldr r3, _080EFDD8 + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + movs r2, 0xF + str r2, [sp, 0x8] + movs r1, 0x1 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0xE + movs r2, 0x10 + bl sub_8095C8C + ldr r0, _080EFDDC + ldr r0, [r0] + ldr r1, _080EFDE0 + adds r0, r1 + strb r4, [r0] + add sp, 0x14 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EFDD4: .4byte 0x0600f800 +_080EFDD8: .4byte gUnknown_08E9AC2C +_080EFDDC: .4byte gUnknown_083DFEC4 +_080EFDE0: .4byte 0x0000769e + thumb_func_end sub_80EFDA0 + + thumb_func_start sub_80EFDE4 +sub_80EFDE4: @ 80EFDE4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EFE68 + ldr r1, [r0] + ldr r2, _080EFE6C + adds r0, r1, r2 + ldrb r2, [r0] + movs r0, 0x3C + subs r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xF + bls _080EFE06 + movs r4, 0xF +_080EFE06: + ldr r3, _080EFE70 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _080EFE58 + ldr r0, _080EFE74 + mov r8, r0 + ldr r3, _080EFE78 + mov r9, r3 + str r2, [sp] + movs r5, 0 + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r7, 0x1 + str r7, [sp, 0xC] + movs r6, 0x3C + str r6, [sp, 0x10] + movs r1, 0xE + movs r2, 0x10 + bl sub_8095C8C + cmp r4, 0xE + bhi _080EFE58 + adds r1, r4, 0 + adds r1, 0xE + lsls r1, 16 + lsrs r1, 16 + str r5, [sp] + str r5, [sp, 0x4] + movs r0, 0xF + subs r0, r4 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + str r7, [sp, 0xC] + str r6, [sp, 0x10] + mov r0, r8 + movs r2, 0x10 + mov r3, r9 + bl sub_8095C8C +_080EFE58: + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EFE68: .4byte gUnknown_083DFEC4 +_080EFE6C: .4byte 0x0000769c +_080EFE70: .4byte 0x0000769e +_080EFE74: .4byte 0x0600f800 +_080EFE78: .4byte gUnknown_08E9ABB4 + thumb_func_end sub_80EFDE4 + + thumb_func_start sub_80EFE7C +sub_80EFE7C: @ 80EFE7C + push {r4,lr} + ldr r0, _080EFE98 + ldr r2, [r0] + ldr r0, _080EFE9C + adds r4, r2, r0 + ldrb r1, [r4] + cmp r1, 0x1 + beq _080EFF08 + cmp r1, 0x1 + bgt _080EFEA0 + cmp r1, 0 + beq _080EFEA6 + b _080EFF2E + .align 2, 0 +_080EFE98: .4byte gUnknown_083DFEC4 +_080EFE9C: .4byte 0x0000769d +_080EFEA0: + cmp r1, 0x2 + beq _080EFF24 + b _080EFF2E +_080EFEA6: + ldr r0, _080EFED4 + adds r4, r2, r0 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3B + bls _080EFEBA + strb r1, [r4] +_080EFEBA: + ldr r1, _080EFED8 + adds r0, r2, r1 + ldrb r0, [r0] + bl sub_80EFDE4 + ldrb r0, [r4] + cmp r0, 0xF + beq _080EFEE4 + cmp r0, 0xF + bgt _080EFEDC + cmp r0, 0 + beq _080EFEE4 + b _080EFF2E + .align 2, 0 +_080EFED4: .4byte 0x0000769c +_080EFED8: .4byte 0x0000769e +_080EFEDC: + cmp r0, 0x1E + beq _080EFEE4 + cmp r0, 0x2D + bne _080EFF2E +_080EFEE4: + ldr r0, _080EFEFC + ldr r1, [r0] + ldr r0, _080EFF00 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0x1 + strb r0, [r2] + ldr r0, _080EFF04 + adds r1, r0 + strh r3, [r1] + b _080EFF2E + .align 2, 0 +_080EFEFC: .4byte gUnknown_083DFEC4 +_080EFF00: .4byte 0x0000769d +_080EFF04: .4byte 0x0000769a +_080EFF08: + ldr r0, _080EFF20 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x78 + bls _080EFF2E + movs r0, 0 + strh r0, [r1] + b _080EFF2C + .align 2, 0 +_080EFF20: .4byte 0x0000769a +_080EFF24: + movs r0, 0x1 + bl sub_80EFDE4 + movs r0, 0x1 +_080EFF2C: + strb r0, [r4] +_080EFF2E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80EFE7C + + thumb_func_start sub_80EFF34 +sub_80EFF34: @ 80EFF34 + push {lr} + ldr r0, _080EFF5C + ldr r0, [r0] + ldr r1, _080EFF60 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080EFF64 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EFF56 +_080EFF4C: + bl sub_80EFF68 + lsls r0, 24 + cmp r0, 0 + bne _080EFF4C +_080EFF56: + pop {r0} + bx r0 + .align 2, 0 +_080EFF5C: .4byte gUnknown_083DFEC4 +_080EFF60: .4byte 0x0000d160 +_080EFF64: .4byte 0x00006dac + thumb_func_end sub_80EFF34 + + thumb_func_start sub_80EFF68 +sub_80EFF68: @ 80EFF68 + push {r4,lr} + sub sp, 0x14 + ldr r0, _080EFF88 + ldr r0, [r0] + ldr r1, _080EFF8C + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0xD + bls _080EFF7C + b _080F0150 +_080EFF7C: + lsls r0, 2 + ldr r1, _080EFF90 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EFF88: .4byte gUnknown_083DFEC4 +_080EFF8C: .4byte 0x0000d160 +_080EFF90: .4byte _080EFF94 + .align 2, 0 +_080EFF94: + .4byte _080EFFCC + .4byte _080EFFE8 + .4byte _080EFFF4 + .4byte _080F0000 + .4byte _080F000C + .4byte _080F0012 + .4byte _080F0018 + .4byte _080F0028 + .4byte _080F003C + .4byte _080F005C + .4byte _080F0098 + .4byte _080F00AC + .4byte _080F00F8 + .4byte _080F0118 +_080EFFCC: + bl sub_80EEDE8 + ldr r0, _080EFFE0 + ldr r0, [r0] + ldr r2, _080EFFE4 + adds r0, r2 + movs r1, 0xB + strb r1, [r0] + b _080F0154 + .align 2, 0 +_080EFFE0: .4byte gUnknown_083DFEC4 +_080EFFE4: .4byte 0x0000d162 +_080EFFE8: + ldr r0, _080EFFF0 + bl SetUpWindowConfig + b _080F0154 + .align 2, 0 +_080EFFF0: .4byte gWindowConfig_81E7080 +_080EFFF4: + ldr r0, _080EFFFC + bl MultistepInitMenuWindowBegin + b _080F0154 + .align 2, 0 +_080EFFFC: .4byte gWindowConfig_81E7080 +_080F0000: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + beq _080F000A + b _080F0154 +_080F000A: + b _080F0162 +_080F000C: + bl MenuZeroFillScreen + b _080F0154 +_080F0012: + bl sub_80F1614 + b _080F0154 +_080F0018: + movs r0, 0 + bl sub_80F162C + lsls r0, 24 + cmp r0, 0 + bne _080F0026 + b _080F0154 +_080F0026: + b _080F0162 +_080F0028: + ldr r0, _080F0034 + ldr r1, _080F0038 + bl LZ77UnCompVram + b _080F0154 + .align 2, 0 +_080F0034: .4byte gPokenavConditionView_Gfx +_080F0038: .4byte 0x06005000 +_080F003C: + ldr r0, _080F0050 + ldr r1, _080F0054 + bl LZ77UnCompVram + ldr r0, _080F0058 + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + b _080F0154 + .align 2, 0 +_080F0050: .4byte gUnknown_08E9AC4C +_080F0054: .4byte 0x0600f000 +_080F0058: .4byte gPokenavConditionMenu2_Pal +_080F005C: + ldr r0, _080F0088 + ldr r0, [r0] + ldr r1, _080F008C + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080F0154 + ldr r0, _080F0090 + ldr r3, _080F0094 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r2, 0x9 + str r2, [sp, 0x8] + movs r1, 0x4 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0 + movs r2, 0x5 + bl sub_8095C8C + b _080F0154 + .align 2, 0 +_080F0088: .4byte gUnknown_083DFEC4 +_080F008C: .4byte 0x000076aa +_080F0090: .4byte 0x0600f000 +_080F0094: .4byte gUnknown_083E01AC +_080F0098: + ldr r0, _080F00A4 + ldr r1, _080F00A8 + bl LZ77UnCompVram + b _080F0154 + .align 2, 0 +_080F00A4: .4byte gUnknown_08E9FEB4 +_080F00A8: .4byte 0x0600b800 +_080F00AC: + ldr r0, _080F00EC + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080F00F0 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + ldr r4, _080F00F4 + adds r0, r4, 0 + movs r1, 0xB1 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + adds r0, 0xE + movs r1, 0xB5 + movs r2, 0x2 + bl LoadPalette + adds r4, 0x1C + adds r0, r4, 0 + movs r1, 0xBF + movs r2, 0x2 + bl LoadPalette + bl sub_80F01A4 + b _080F0154 + .align 2, 0 +_080F00EC: .4byte gUnknown_083E0254 +_080F00F0: .4byte gUnknownPalette_81E6692 +_080F00F4: .4byte gPokenavConditionMenu2_Pal + 0x2 +_080F00F8: + ldr r0, _080F0110 + ldr r0, [r0] + ldr r2, _080F0114 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + bl sub_80F01E0 + b _080F0154 + .align 2, 0 +_080F0110: .4byte gUnknown_083DFEC4 +_080F0114: .4byte 0x00008fe9 +_080F0118: + ldr r1, _080F013C + ldr r2, _080F0140 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _080F0144 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x44 + ldr r2, _080F0148 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F014C + adds r0, r2, 0 + strh r0, [r1] + b _080F0154 + .align 2, 0 +_080F013C: .4byte REG_BG3CNT +_080F0140: .4byte 0x00001e03 +_080F0144: .4byte 0x00001702 +_080F0148: .4byte 0x00000844 +_080F014C: .4byte 0x0000040b +_080F0150: + movs r0, 0 + b _080F0164 +_080F0154: + ldr r0, _080F016C + ldr r1, [r0] + ldr r0, _080F0170 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F0162: + movs r0, 0x1 +_080F0164: + add sp, 0x14 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F016C: .4byte gUnknown_083DFEC4 +_080F0170: .4byte 0x0000d160 + thumb_func_end sub_80EFF68 + + thumb_func_start sub_80F0174 +sub_80F0174: @ 80F0174 + push {lr} + lsls r0, 24 + cmp r0, 0 + beq _080F018E + movs r0, 0x80 + lsls r0, 19 + ldrh r1, [r0] + movs r3, 0x80 + lsls r3, 3 + adds r2, r3, 0 + orrs r1, r2 + strh r1, [r0] + b _080F019A +_080F018E: + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080F01A0 + ands r0, r1 + strh r0, [r2] +_080F019A: + pop {r0} + bx r0 + .align 2, 0 +_080F01A0: .4byte 0x0000fbff + thumb_func_end sub_80F0174 + + thumb_func_start sub_80F01A4 +sub_80F01A4: @ 80F01A4 + ldr r1, _080F01CC + movs r0, 0xF0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x9B + strh r0, [r1] + ldr r0, _080F01D0 + ldr r2, _080F01D4 + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r1, _080F01D8 + ldr r2, _080F01DC + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x1B + strh r0, [r1] + bx lr + .align 2, 0 +_080F01CC: .4byte REG_WIN0H +_080F01D0: .4byte REG_WIN0V +_080F01D4: .4byte 0x00003879 +_080F01D8: .4byte REG_WININ +_080F01DC: .4byte 0x00003f3f + thumb_func_end sub_80F01A4 + + thumb_func_start sub_80F01E0 +sub_80F01E0: @ 80F01E0 + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + ldr r1, _080F0248 + lsls r0, r4, 6 + ldr r2, _080F024C + adds r0, r2 + ldr r5, [r1] + adds r0, r5, r0 + movs r1, 0xD + movs r2, 0x1 + bl MenuPrint + ldr r1, _080F0250 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080F0242 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + ldr r2, _080F0254 + adds r0, r2 + adds r0, r5, r0 + movs r1, 0xD + movs r2, 0x3 + bl MenuPrint + ldr r0, _080F0258 + adds r4, r5, r0 + ldr r1, _080F025C + adds r0, r5, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + lsls r0, 2 + adds r0, r5, r0 + ldr r1, _080F0260 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 18 + lsrs r1, 23 + adds r0, r4, 0 + bl sub_80F443C + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0x6 + bl MenuPrint +_080F0242: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F0248: .4byte gUnknown_083DFEC4 +_080F024C: .4byte 0x00008829 +_080F0250: .4byte 0x000076aa +_080F0254: .4byte 0x000088e9 +_080F0258: .4byte 0x00008788 +_080F025C: .4byte 0x000087dc +_080F0260: .4byte 0x0000893e + thumb_func_end sub_80F01E0 + + thumb_func_start sub_80F0264 +sub_80F0264: @ 80F0264 + push {lr} + ldr r1, _080F0290 + ldr r2, [r1] + ldr r1, _080F0294 + adds r3, r2, r1 + movs r1, 0 + strh r1, [r3] + ldr r3, _080F0298 + adds r1, r2, r3 + strb r0, [r1] + ldr r0, _080F029C + adds r2, r0 + ldrb r0, [r2] + cmp r0, 0 + bne _080F028C +_080F0282: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + bne _080F0282 +_080F028C: + pop {r0} + bx r0 + .align 2, 0 +_080F0290: .4byte gUnknown_083DFEC4 +_080F0294: .4byte 0x00000306 +_080F0298: .4byte 0x000087ca +_080F029C: .4byte 0x00006dac + thumb_func_end sub_80F0264 + + thumb_func_start sub_80F02A0 +sub_80F02A0: @ 80F02A0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x18 + ldr r1, _080F02C4 + ldr r0, [r1] + ldr r2, _080F02C8 + adds r0, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0xE + bls _080F02BA + b _080F05FA +_080F02BA: + lsls r0, 2 + ldr r1, _080F02CC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F02C4: .4byte gUnknown_083DFEC4 +_080F02C8: .4byte 0x00000306 +_080F02CC: .4byte _080F02D0 + .align 2, 0 +_080F02D0: + .4byte _080F030C + .4byte _080F0344 + .4byte _080F0350 + .4byte _080F035C + .4byte _080F0368 + .4byte _080F036E + .4byte _080F0380 + .4byte _080F0394 + .4byte _080F04BC + .4byte _080F053C + .4byte _080F0550 + .4byte _080F0574 + .4byte _080F057A + .4byte _080F0586 + .4byte _080F05BC +_080F030C: + bl sub_80EEDE8 + ldr r0, _080F0334 + ldr r1, [r0] + movs r2, 0 + ldr r3, _080F0338 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080F0322 + movs r2, 0x1 +_080F0322: + ldr r3, _080F033C + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080F0340 + adds r1, r0 + movs r0, 0xB + strb r0, [r1] + b _080F0618 + .align 2, 0 +_080F0334: .4byte gUnknown_083DFEC4 +_080F0338: .4byte 0x000087ca +_080F033C: .4byte 0x000087c8 +_080F0340: .4byte 0x0000d162 +_080F0344: + ldr r0, _080F034C + bl SetUpWindowConfig + b _080F0618 + .align 2, 0 +_080F034C: .4byte gWindowConfig_81E70D4 +_080F0350: + ldr r0, _080F0358 + bl MultistepInitMenuWindowBegin + b _080F0618 + .align 2, 0 +_080F0358: .4byte gWindowConfig_81E70D4 +_080F035C: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + beq _080F0366 + b _080F0618 +_080F0366: + b _080F0626 +_080F0368: + bl MenuZeroFillScreen + b _080F0618 +_080F036E: + ldr r0, _080F0378 + ldr r1, _080F037C + bl LZ77UnCompVram + b _080F0618 + .align 2, 0 +_080F0378: .4byte gUnknown_08E9FC64 +_080F037C: .4byte 0x0600e800 +_080F0380: + ldr r0, _080F038C + ldr r1, _080F0390 + bl LZ77UnCompVram + b _080F0618 + .align 2, 0 +_080F038C: .4byte gPokenavConditionSearch2_Gfx +_080F0390: .4byte 0x06008000 +_080F0394: + ldr r6, _080F03FC + adds r0, r6, 0 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + adds r0, r6, 0 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080F0400 + movs r1, 0x40 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080F0404 + ldr r0, [r0] + ldr r1, _080F0408 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F0418 + ldr r4, _080F040C + adds r0, r4, 0 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r1, _080F0410 + ldrh r0, [r4, 0xA] + strh r0, [r1] + ldr r0, _080F0414 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + adds r0, r6, 0x2 + movs r1, 0xB1 + movs r2, 0x2 + bl LoadPalette + adds r0, r6, 0 + adds r0, 0x10 + movs r1, 0xB5 + movs r2, 0x2 + bl LoadPalette + adds r4, 0xA + adds r0, r4, 0 + movs r1, 0xBF + b _080F04A8 + .align 2, 0 +_080F03FC: .4byte gUnknown_083E02B4 +_080F0400: .4byte gUnknown_083E0334 +_080F0404: .4byte gUnknown_083DFEC4 +_080F0408: .4byte 0x000087ca +_080F040C: .4byte gPokenavConditionSearch2_Pal +_080F0410: .4byte gPlttBufferUnfaded +_080F0414: .4byte gUnknownPalette_81E6692 +_080F0418: + cmp r0, 0x1 + bne _080F0464 + ldr r4, _080F0458 + adds r0, r4, 0 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r1, _080F045C + ldrh r0, [r4, 0xA] + strh r0, [r1] + ldr r0, _080F0460 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + adds r0, r6, 0x2 + movs r1, 0xB1 + movs r2, 0x2 + bl LoadPalette + adds r0, r6, 0 + adds r0, 0x10 + movs r1, 0xB5 + movs r2, 0x2 + bl LoadPalette + adds r4, 0xA + adds r0, r4, 0 + movs r1, 0xBF + b _080F04A8 + .align 2, 0 +_080F0458: .4byte gUnknown_083E0274 +_080F045C: .4byte gPlttBufferUnfaded +_080F0460: .4byte gUnknownPalette_81E6692 +_080F0464: + ldr r4, _080F04B0 + adds r0, r4, 0 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r1, _080F04B4 + adds r5, r4, 0 + adds r5, 0xA + ldrh r0, [r4, 0xA] + strh r0, [r1] + ldr r0, _080F04B8 + movs r1, 0x50 + movs r2, 0x20 + bl LoadPalette + adds r0, r6, 0x2 + movs r1, 0xB1 + movs r2, 0x2 + bl LoadPalette + adds r0, r6, 0 + adds r0, 0x10 + movs r1, 0xB5 + movs r2, 0x2 + bl LoadPalette + adds r0, r5, 0 + movs r1, 0xBF + movs r2, 0x2 + bl LoadPalette + adds r0, r5, 0 + movs r1, 0x5F +_080F04A8: + movs r2, 0x2 + bl LoadPalette + b _080F0618 + .align 2, 0 +_080F04B0: .4byte gUnknown_08E9F9E8 +_080F04B4: .4byte gPlttBufferUnfaded +_080F04B8: .4byte gUnknown_083E0314 +_080F04BC: + ldr r0, _080F04E8 + ldr r0, [r0] + ldr r2, _080F04EC + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x2 + beq _080F04F8 + ldr r0, _080F04F0 + ldr r3, _080F04F4 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r2, 0x9 + str r2, [sp, 0x8] + movs r1, 0x4 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0 + movs r2, 0x5 + bl sub_8095C8C + b _080F0618 + .align 2, 0 +_080F04E8: .4byte gUnknown_083DFEC4 +_080F04EC: .4byte 0x000087ca +_080F04F0: .4byte 0x0600e800 +_080F04F4: .4byte gUnknown_08E9FD1C +_080F04F8: + ldr r3, _080F0530 + mov r8, r3 + ldr r3, _080F0534 + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + movs r5, 0xC + str r5, [sp, 0x8] + movs r6, 0xA + str r6, [sp, 0xC] + str r5, [sp, 0x10] + mov r0, r8 + movs r1, 0 + movs r2, 0x4 + bl sub_8095C8C + ldr r3, _080F0538 + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + str r6, [sp, 0xC] + str r5, [sp, 0x10] + mov r0, r8 + movs r1, 0 + movs r2, 0x8 + bl sub_8095C8C + b _080F0618 + .align 2, 0 +_080F0530: .4byte 0x0600e800 +_080F0534: .4byte gUnknown_08E9FE54 +_080F0538: .4byte gUnknown_08E9FD64 +_080F053C: + ldr r0, _080F0548 + ldr r1, _080F054C + bl LZ77UnCompVram + b _080F0618 + .align 2, 0 +_080F0548: .4byte gUnknown_083E0354 +_080F054C: .4byte 0x06005000 +_080F0550: + ldr r2, _080F0568 + add r1, sp, 0x14 + movs r0, 0 + strh r0, [r1] + ldr r0, _080F056C + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080F0570 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080F0618 + .align 2, 0 +_080F0568: .4byte 0x0600f800 +_080F056C: .4byte 0x040000d4 +_080F0570: .4byte 0x81000400 +_080F0574: + bl sub_80F0900 + b _080F0618 +_080F057A: + bl sub_80F0944 + lsls r0, 24 + cmp r0, 0 + beq _080F0618 + b _080F0626 +_080F0586: + ldr r0, _080F059C + ldr r4, [r0] + ldr r1, _080F05A0 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x2 + beq _080F05A4 + bl ShowMapNamePopUpWindow + b _080F0618 + .align 2, 0 +_080F059C: .4byte gUnknown_083DFEC4 +_080F05A0: .4byte 0x000087ca +_080F05A4: + movs r0, 0 + bl sub_80F081C + ldr r2, _080F05B8 + adds r0, r4, r2 + ldrb r0, [r0] + bl sub_80F0FFC + b _080F0618 + .align 2, 0 +_080F05B8: .4byte 0x0000876e +_080F05BC: + ldr r1, _080F0600 + ldr r3, _080F0604 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + adds r3, 0xF9 + adds r0, r3, 0 + strh r0, [r1] + subs r1, 0x6 + adds r3, 0xFE + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x16 + movs r0, 0xF8 + strh r0, [r1] + ldr r1, [r2] + ldr r0, _080F0608 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0xF8 + strh r0, [r2] + ldr r2, _080F060C + adds r0, r1, r2 + strh r3, [r0] + ldr r0, _080F0610 + strh r3, [r0] + ldr r3, _080F0614 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F05FA: + movs r0, 0 + b _080F0628 + .align 2, 0 +_080F0600: .4byte REG_BG2CNT +_080F0604: .4byte 0x00001d0a +_080F0608: .4byte 0x00008776 +_080F060C: .4byte 0x00008778 +_080F0610: .4byte REG_BLDCNT +_080F0614: .4byte 0x0000d160 +_080F0618: + ldr r0, _080F0634 + ldr r1, [r0] + ldr r0, _080F0638 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F0626: + movs r0, 0x1 +_080F0628: + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080F0634: .4byte gUnknown_083DFEC4 +_080F0638: .4byte 0x00000306 + thumb_func_end sub_80F02A0 + + thumb_func_start sub_80F063C +sub_80F063C: @ 80F063C + push {r4-r7,lr} + lsls r0, 16 + ldr r3, _080F0664 + ldr r2, [r3] + lsrs r5, r0, 16 + asrs r4, r0, 16 + lsls r1, r4, 4 + ldr r6, _080F0668 + adds r0, r2, r6 + strh r1, [r0] + adds r7, r3, 0 + cmp r4, 0x1 + beq _080F065E + movs r0, 0x1 + negs r0, r0 + cmp r4, r0 + bne _080F066C +_080F065E: + movs r1, 0x4 + b _080F066E + .align 2, 0 +_080F0664: .4byte gUnknown_083DFEC4 +_080F0668: .4byte 0x0000877c +_080F066C: + movs r1, 0x8 +_080F066E: + ldr r3, _080F06C0 + adds r0, r2, r3 + strh r1, [r0] + lsls r0, r5, 16 + asrs r3, r0, 16 + cmp r3, 0 + bge _080F06CC + ldr r4, [r7] + ldr r6, _080F06C0 + adds r1, r4, r6 + movs r2, 0 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1] + subs r6, 0x2 + adds r1, r4, r6 + lsls r0, r3, 1 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, _080F06C4 + adds r0, r4, r1 + ldrh r0, [r0] + adds r0, r3, r0 + lsls r0, 16 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080F06B8 + ldr r2, _080F06C8 + adds r1, r4, r2 + adds r0, 0x1 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 +_080F06B8: + negs r0, r3 + lsls r0, 16 + lsrs r5, r0, 16 + b _080F06E6 + .align 2, 0 +_080F06C0: .4byte 0x0000877a +_080F06C4: .4byte 0x00008770 +_080F06C8: .4byte 0x00008774 +_080F06CC: + ldr r1, [r7] + ldr r3, _080F070C + adds r0, r1, r3 + ldrh r0, [r0] + adds r0, 0x10 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _080F0710 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 +_080F06E6: + ldr r0, [r7] + ldr r1, _080F0714 + adds r0, r1 + lsls r1, r2, 16 + asrs r1, 16 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r1, r0 + ble _080F06FA + movs r2, 0 +_080F06FA: + movs r1, 0x1F + adds r0, r2, 0 + ands r1, r6 + adds r2, r5, 0 + bl sub_80F0954 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F070C: .4byte 0x00008778 +_080F0710: .4byte 0x00008772 +_080F0714: .4byte 0x00008774 + thumb_func_end sub_80F063C + + thumb_func_start sub_80F0718 +sub_80F0718: @ 80F0718 + push {r4,r5,lr} + bl sub_80F098C + lsls r0, 24 + cmp r0, 0 + bne _080F0790 + ldr r0, _080F073C + ldr r4, [r0] + ldr r0, _080F0740 + adds r3, r4, r0 + ldrh r2, [r3] + movs r1, 0 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080F0744 + movs r0, 0 + b _080F0792 + .align 2, 0 +_080F073C: .4byte gUnknown_083DFEC4 +_080F0740: .4byte 0x0000877c +_080F0744: + ldr r0, _080F0780 + adds r1, r4, r0 + ldrh r0, [r1] + subs r0, r2, r0 + strh r0, [r3] + ldr r0, _080F0784 + adds r2, r4, r0 + ldrh r0, [r1] + ldrh r1, [r2] + adds r0, r1 + movs r5, 0xFF + ands r0, r5 + strh r0, [r2] + ldr r1, _080F0788 + strh r0, [r1] + movs r1, 0 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080F0790 + movs r1, 0 + ldrsh r0, [r2, r1] + adds r0, 0x8 + ands r0, r5 + asrs r1, r0, 3 + ldr r2, _080F078C + adds r0, r4, r2 + strh r1, [r0] + movs r0, 0 + b _080F0792 + .align 2, 0 +_080F0780: .4byte 0x0000877a +_080F0784: .4byte 0x00008776 +_080F0788: .4byte REG_BG3VOFS +_080F078C: .4byte 0x00008778 +_080F0790: + movs r0, 0x1 +_080F0792: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F0718 + + thumb_func_start ShowMapNamePopUpWindow +ShowMapNamePopUpWindow: @ 80F0798 + push {lr} + ldr r0, _080F07B0 + ldr r2, [r0] + ldr r1, _080F07B4 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F07B8 + cmp r0, 0x1 + beq _080F07E0 + b _080F080A + .align 2, 0 +_080F07B0: .4byte gUnknown_083DFEC4 +_080F07B4: .4byte 0x000087ca +_080F07B8: + ldr r3, _080F07D8 + adds r0, r2, r3 + subs r3, 0x1A + adds r1, r2, r3 + movs r3, 0 + ldrsh r1, [r1, r3] + lsls r1, 2 + adds r1, r2, r1 + ldr r2, _080F07DC + adds r1, r2 + ldrh r1, [r1] + lsls r1, 18 + lsrs r1, 23 + bl sub_80F443C + b _080F07F4 + .align 2, 0 +_080F07D8: .4byte 0x00008788 +_080F07DC: .4byte 0x0000893e +_080F07E0: + ldr r3, _080F0810 + adds r0, r2, r3 + subs r3, 0x1A + adds r1, r2, r3 + ldrh r1, [r1] + adds r1, 0x1 + lsls r1, 16 + lsrs r1, 16 + bl sub_80F445C +_080F07F4: + ldr r0, _080F0814 + bl BasicInitMenuWindow + ldr r0, _080F0818 + ldr r0, [r0] + ldr r1, _080F0810 + adds r0, r1 + movs r1, 0x1 + movs r2, 0x6 + bl MenuPrint +_080F080A: + pop {r0} + bx r0 + .align 2, 0 +_080F0810: .4byte 0x00008788 +_080F0814: .4byte gWindowConfig_81E710C +_080F0818: .4byte gUnknown_083DFEC4 + thumb_func_end ShowMapNamePopUpWindow + + thumb_func_start sub_80F081C +sub_80F081C: @ 80F081C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080F0838 + bl BasicInitMenuWindow + cmp r5, 0x4 + bhi _080F08C6 + lsls r0, r5, 2 + ldr r1, _080F083C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F0838: .4byte gWindowConfig_81E710C +_080F083C: .4byte _080F0840 + .align 2, 0 +_080F0840: + .4byte _080F0854 + .4byte _080F0854 + .4byte _080F0862 + .4byte _080F088C + .4byte _080F089A +_080F0854: + ldr r0, _080F08CC + movs r1, 0xA + movs r2, 0x9 + bl sub_8072B4C + cmp r5, 0 + bne _080F08C6 +_080F0862: + ldr r0, _080F08D0 + ldr r0, [r0] + ldr r1, _080F08D4 + adds r4, r0, r1 + ldr r2, _080F08D8 + adds r0, r2 + movs r2, 0 + ldrsh r1, [r0, r2] + adds r1, 0x1 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + adds r0, r4, 0 + movs r1, 0xA + movs r2, 0xB + bl sub_8072B4C + cmp r5, 0 + bne _080F08C6 +_080F088C: + ldr r0, _080F08DC + movs r1, 0xA + movs r2, 0xD + bl sub_8072B4C + cmp r5, 0 + bne _080F08C6 +_080F089A: + movs r0, 0x9 + bl sub_8053108 + adds r1, r0, 0 + ldr r0, _080F08E0 + cmp r1, r0 + bls _080F08AA + adds r1, r0, 0 +_080F08AA: + ldr r0, _080F08D0 + ldr r4, [r0] + ldr r0, _080F08D4 + adds r4, r0 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + adds r0, r4, 0 + movs r1, 0xA + movs r2, 0xF + bl sub_8072B4C +_080F08C6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F08CC: .4byte gOtherText_NumberRegistered +_080F08D0: .4byte gUnknown_083DFEC4 +_080F08D4: .4byte 0x00008788 +_080F08D8: .4byte 0x00008774 +_080F08DC: .4byte gOtherText_NumberBattles +_080F08E0: .4byte 0x0001869f + thumb_func_end sub_80F081C + + thumb_func_start sub_80F08E4 +sub_80F08E4: @ 80F08E4 + push {lr} + ldr r0, _080F08FC + bl BasicInitMenuWindow + movs r0, 0 + movs r1, 0x9 + movs r2, 0xB + movs r3, 0x10 + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + .align 2, 0 +_080F08FC: .4byte gWindowConfig_81E710C + thumb_func_end sub_80F08E4 + + thumb_func_start sub_80F0900 +sub_80F0900: @ 80F0900 + push {r4,r5,lr} + ldr r0, _080F093C + ldr r0, [r0] + ldr r2, _080F0940 + adds r1, r0, r2 + subs r2, 0x2 + adds r5, r0, r2 + ldrh r0, [r1] + ldrh r1, [r5] + subs r0, r1 + adds r0, 0x1 + lsls r4, r0, 16 + asrs r0, r4, 16 + cmp r0, 0x7 + bgt _080F092A + movs r0, 0xC + movs r1, 0x1 + movs r2, 0x1F + movs r3, 0xF + bl MenuZeroFillWindowRect +_080F092A: + ldrh r0, [r5] + lsrs r2, r4, 16 + movs r1, 0 + bl sub_80F0954 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F093C: .4byte gUnknown_083DFEC4 +_080F0940: .4byte 0x00008772 + thumb_func_end sub_80F0900 + + thumb_func_start sub_80F0944 +sub_80F0944: @ 80F0944 + push {lr} + bl sub_80F098C + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80F0944 + + thumb_func_start sub_80F0954 +sub_80F0954: @ 80F0954 + push {r4,r5,lr} + ldr r3, _080F097C + ldr r3, [r3] + ldr r5, _080F0980 + adds r4, r3, r5 + movs r5, 0 + strh r0, [r4] + ldr r4, _080F0984 + adds r0, r3, r4 + strh r1, [r0] + ldr r1, _080F0988 + adds r0, r3, r1 + strh r2, [r0] + adds r4, 0x6 + adds r3, r4 + strh r5, [r3] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F097C: .4byte gUnknown_083DFEC4 +_080F0980: .4byte 0x0000877e +_080F0984: .4byte 0x00008780 +_080F0988: .4byte 0x00008784 + thumb_func_end sub_80F0954 + + thumb_func_start sub_80F098C +sub_80F098C: @ 80F098C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _080F09A4 + ldr r6, [r0] + ldr r0, _080F09A8 + adds r7, r6, r0 + ldrh r0, [r7] + cmp r0, 0 + bne _080F09AC +_080F09A0: + movs r0, 0 + b _080F0A02 + .align 2, 0 +_080F09A4: .4byte gUnknown_083DFEC4 +_080F09A8: .4byte 0x00008784 +_080F09AC: + movs r1, 0 + mov r8, r1 + ldr r1, _080F0A0C + ldr r2, _080F0A10 + adds r0, r6, r2 + ldrb r2, [r0] + lsls r2, 2 + adds r2, r1 + ldr r0, _080F0A14 + adds r4, r6, r0 + ldrh r0, [r4] + ldr r1, _080F0A18 + adds r5, r6, r1 + ldrh r1, [r5] + ldr r2, [r2] + bl _call_via_r2 + ldrh r0, [r7] + subs r0, 0x1 + strh r0, [r7] + ldr r2, _080F0A1C + adds r1, r2, 0 + lsls r0, 16 + cmp r0, 0 + beq _080F09A0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + ands r0, r1 + ldr r2, _080F0A20 + adds r1, r6, r2 + movs r2, 0 + ldrsh r1, [r1, r2] + cmp r0, r1 + ble _080F09F6 + mov r0, r8 + strh r0, [r4] +_080F09F6: + ldrh r0, [r5] + adds r0, 0x2 + movs r1, 0x1F + ands r0, r1 + strh r0, [r5] + movs r0, 0x1 +_080F0A02: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080F0A0C: .4byte gUnknown_083E3270 +_080F0A10: .4byte 0x000087ca +_080F0A14: .4byte 0x0000877e +_080F0A18: .4byte 0x00008780 +_080F0A1C: .4byte 0x0000ffff +_080F0A20: .4byte 0x00008774 + thumb_func_end sub_80F098C + + thumb_func_start sub_80F0A24 +sub_80F0A24: @ 80F0A24 + push {r4,r5,lr} + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + lsrs r5, r1, 16 + ldr r0, _080F0A64 + ldr r4, [r0] + ldr r1, _080F0A68 + adds r0, r4, r1 + ldrb r0, [r0] + movs r2, 0x1 + cmp r0, 0 + bne _080F0A40 + movs r2, 0x2 +_080F0A40: + ldr r0, _080F0A6C + adds r4, r0 + adds r0, r4, 0 + adds r1, r3, 0 + bl sub_80F4428 + ldr r0, _080F0A70 + bl BasicInitMenuWindow + lsls r2, r5, 24 + lsrs r2, 24 + adds r0, r4, 0 + movs r1, 0xD + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F0A64: .4byte gUnknown_083DFEC4 +_080F0A68: .4byte 0x000087c8 +_080F0A6C: .4byte 0x00008788 +_080F0A70: .4byte gWindowConfig_81E70D4 + thumb_func_end sub_80F0A24 + + thumb_func_start sub_80F0A74 +sub_80F0A74: @ 80F0A74 + push {r4-r7,lr} + sub sp, 0x14 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r7, r1, 16 + ldr r0, _080F0ADC + ldr r5, [r0] + ldr r0, _080F0AE0 + adds r4, r5, r0 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_80F700C + movs r0, 0x1F + ands r7, r0 + ldr r0, _080F0AE4 + bl BasicInitMenuWindow + lsls r2, r7, 3 + adds r0, r4, 0 + movs r1, 0x61 + movs r3, 0 + bl sub_80729D8 + ldr r1, _080F0AE8 + adds r0, r5, r1 + ldrh r0, [r0] + cmp r6, r0 + bcs _080F0AF8 + lsls r0, r6, 3 + adds r0, r5, r0 + ldr r1, _080F0AEC + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F0AF8 + ldr r0, _080F0AF0 + ldr r3, _080F0AF4 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r2, 0x1 + str r2, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0x1D + adds r2, r7, 0 + bl sub_8095C8C + b _080F0B14 + .align 2, 0 +_080F0ADC: .4byte gUnknown_083DFEC4 +_080F0AE0: .4byte 0x00008788 +_080F0AE4: .4byte gWindowConfig_81E70D4 +_080F0AE8: .4byte 0x0000d158 +_080F0AEC: .4byte 0x0000ceed +_080F0AF0: .4byte 0x0600f000 +_080F0AF4: .4byte gUnknown_083E039C +_080F0AF8: + ldr r0, _080F0B1C + ldr r3, _080F0B20 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r2, 0x1 + str r2, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0x1D + adds r2, r7, 0 + bl sub_8095C8C +_080F0B14: + add sp, 0x14 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F0B1C: .4byte 0x0600f000 +_080F0B20: .4byte gUnknown_083E03A0 + thumb_func_end sub_80F0A74 + + thumb_func_start sub_80F0B24 +sub_80F0B24: @ 80F0B24 + ldr r0, _080F0B38 + ldr r0, [r0] + ldr r2, _080F0B3C + adds r1, r0, r2 + movs r2, 0 + strh r2, [r1] + ldr r1, _080F0B40 + adds r0, r1 + strh r2, [r0] + bx lr + .align 2, 0 +_080F0B38: .4byte gUnknown_083DFEC4 +_080F0B3C: .4byte 0x0000d15c +_080F0B40: .4byte 0x00000306 + thumb_func_end sub_80F0B24 + + thumb_func_start sub_80F0B44 +sub_80F0B44: @ 80F0B44 + push {r4-r6,lr} + ldr r0, _080F0B58 + ldr r5, [r0] + ldr r0, _080F0B5C + adds r6, r5, r0 + ldrh r0, [r6] + cmp r0, 0x8 + bls _080F0B60 + movs r0, 0 + b _080F0C22 + .align 2, 0 +_080F0B58: .4byte gUnknown_083DFEC4 +_080F0B5C: .4byte 0x0000d15c +_080F0B60: + ldr r0, _080F0BBC + adds r1, r5, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080F0C20 + movs r0, 0 + strh r0, [r1] + ldrh r0, [r6] + cmp r0, 0x7 + bhi _080F0BCC + ldr r0, _080F0BC0 + adds r1, r5, r0 + ldrh r2, [r6] + lsls r0, r2, 1 + ldrh r1, [r1] + adds r4, r0, r1 + movs r0, 0x1F + ands r4, r0 + ldr r1, _080F0BC4 + adds r0, r5, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r2, r0 + beq _080F0BAA + ldr r0, _080F0BC8 + bl BasicInitMenuWindow + adds r1, r4, 0 + adds r3, r1, 0x1 + movs r0, 0xC + movs r2, 0x1F + bl MenuZeroFillWindowRect +_080F0BAA: + ldrh r0, [r6] + cmp r0, 0 + bne _080F0BB4 + bl sub_80F08E4 +_080F0BB4: + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + b _080F0C20 + .align 2, 0 +_080F0BBC: .4byte 0x00000306 +_080F0BC0: .4byte 0x00008778 +_080F0BC4: .4byte 0x0000876c +_080F0BC8: .4byte gWindowConfig_81E70D4 +_080F0BCC: + ldr r0, _080F0C10 + bl BasicInitMenuWindow + ldr r1, _080F0C14 + adds r0, r5, r1 + ldrh r0, [r0] + adds r4, r0, 0 + adds r4, 0x10 + movs r0, 0x1F + ands r4, r0 + movs r5, 0 +_080F0BE2: + adds r3, r4, 0x1 + movs r0, 0xC + adds r1, r4, 0 + movs r2, 0x1F + bl MenuZeroFillWindowRect + adds r4, 0x2 + movs r0, 0x1F + ands r4, r0 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x7 + bls _080F0BE2 + ldr r0, _080F0C18 + ldr r1, [r0] + ldr r0, _080F0C1C + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0 + b _080F0C22 + .align 2, 0 +_080F0C10: .4byte gWindowConfig_81E70D4 +_080F0C14: .4byte 0x00008778 +_080F0C18: .4byte gUnknown_083DFEC4 +_080F0C1C: .4byte 0x0000d15c +_080F0C20: + movs r0, 0x1 +_080F0C22: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F0B44 + + thumb_func_start sub_80F0C28 +sub_80F0C28: @ 80F0C28 + ldr r0, _080F0C3C + ldr r0, [r0] + ldr r2, _080F0C40 + adds r1, r0, r2 + movs r2, 0 + strh r2, [r1] + ldr r1, _080F0C44 + adds r0, r1 + strh r2, [r0] + bx lr + .align 2, 0 +_080F0C3C: .4byte gUnknown_083DFEC4 +_080F0C40: .4byte 0x0000d15c +_080F0C44: .4byte 0x00000306 + thumb_func_end sub_80F0C28 + + thumb_func_start sub_80F0C48 +sub_80F0C48: @ 80F0C48 + push {r4-r6,lr} + ldr r0, _080F0C5C + ldr r4, [r0] + ldr r0, _080F0C60 + adds r5, r4, r0 + ldrh r0, [r5] + cmp r0, 0x7 + bls _080F0C64 + movs r0, 0 + b _080F0CD2 + .align 2, 0 +_080F0C5C: .4byte gUnknown_083DFEC4 +_080F0C60: .4byte 0x0000d15c +_080F0C64: + ldr r2, _080F0CBC + adds r1, r4, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + ldr r2, _080F0CC0 + adds r6, r2, 0 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080F0CD0 + movs r0, 0 + strh r0, [r1] + ldr r0, _080F0CC4 + bl BasicInitMenuWindow + ldr r0, _080F0CC8 + adds r1, r4, r0 + ldrh r0, [r5] + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + ldr r1, _080F0CCC + adds r2, r4, r1 + ldrh r1, [r5] + lsls r1, 1 + ldrh r2, [r2] + adds r1, r2 + lsls r1, 16 + lsrs r1, 16 + bl sub_80F0A74 + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + ands r0, r6 + cmp r0, 0x7 + bls _080F0CD0 + movs r0, 0 + bl sub_80F081C + movs r0, 0 + b _080F0CD2 + .align 2, 0 +_080F0CBC: .4byte 0x00000306 +_080F0CC0: .4byte 0x0000ffff +_080F0CC4: .4byte gWindowConfig_81E70D4 +_080F0CC8: .4byte 0x00008770 +_080F0CCC: .4byte 0x00008778 +_080F0CD0: + movs r0, 0x1 +_080F0CD2: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F0C48 + + thumb_func_start sub_80F0CD8 +sub_80F0CD8: @ 80F0CD8 + push {r4,r5,lr} + ldr r4, _080F0D40 + ldr r1, [r4] + ldr r2, _080F0D44 + adds r0, r1, r2 + movs r2, 0 + strh r2, [r0] + ldr r3, _080F0D48 + adds r0, r1, r3 + strh r2, [r0] + ldr r2, _080F0D4C + adds r0, r1, r2 + movs r3, 0 + ldrsh r0, [r0, r3] + lsls r0, 3 + adds r0, r1, r0 + ldr r2, _080F0D50 + adds r0, r2 + ldrb r0, [r0] + ldr r3, _080F0D54 + adds r1, r3 + ldr r2, _080F0D58 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + str r0, [r1] + adds r2, r0, 0 + movs r1, 0 + adds r5, r4, 0 + adds r4, r3, 0 +_080F0D14: + ldrb r0, [r2] + adds r3, r1, 0x1 + cmp r0, 0xFF + beq _080F0D24 +_080F0D1C: + adds r2, 0x1 + ldrb r0, [r2] + cmp r0, 0xFF + bne _080F0D1C +_080F0D24: + ldr r0, [r5] + lsls r1, r3, 2 + adds r0, r4 + adds r0, r1 + adds r2, 0x1 + str r2, [r0] + lsls r0, r3, 16 + lsrs r1, r0, 16 + cmp r1, 0x2 + bls _080F0D14 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F0D40: .4byte gUnknown_083DFEC4 +_080F0D44: .4byte 0x00000306 +_080F0D48: .4byte 0x0000d15c +_080F0D4C: .4byte 0x0000876e +_080F0D50: .4byte 0x0000ceec +_080F0D54: .4byte 0x0000d110 +_080F0D58: .4byte gTrainerEyeDescriptions + thumb_func_end sub_80F0CD8 + + thumb_func_start sub_80F0D5C +sub_80F0D5C: @ 80F0D5C + push {r4,r5,lr} + ldr r0, _080F0D70 + ldr r4, [r0] + ldr r0, _080F0D74 + adds r5, r4, r0 + ldrh r0, [r5] + cmp r0, 0x7 + bne _080F0D78 +_080F0D6C: + movs r0, 0 + b _080F0EB0 + .align 2, 0 +_080F0D70: .4byte gUnknown_083DFEC4 +_080F0D74: .4byte 0x0000d15c +_080F0D78: + ldr r0, _080F0DB8 + adds r1, r4, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080F0D8C + b _080F0EAE +_080F0D8C: + movs r0, 0 + strh r0, [r1] + ldr r0, _080F0DBC + bl BasicInitMenuWindow + ldr r0, _080F0DC0 + adds r1, r4, r0 + ldrh r3, [r5] + lsls r0, r3, 1 + adds r0, 0x2 + ldrh r1, [r1] + adds r5, r0, r1 + movs r0, 0x1F + ands r5, r0 + cmp r3, 0x6 + bhi _080F0D6C + lsls r0, r3, 2 + ldr r1, _080F0DC4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F0DB8: .4byte 0x00000306 +_080F0DBC: .4byte gWindowConfig_81E70D4 +_080F0DC0: .4byte 0x00008778 +_080F0DC4: .4byte _080F0DC8 + .align 2, 0 +_080F0DC8: + .4byte _080F0DE4 + .4byte _080F0DF0 + .4byte _080F0E08 + .4byte _080F0E14 + .4byte _080F0E2C + .4byte _080F0E38 + .4byte _080F0E6C +_080F0DE4: + ldr r0, _080F0DEC + lsls r2, r5, 3 + b _080F0E54 + .align 2, 0 +_080F0DEC: .4byte gOtherText_Strategy +_080F0DF0: + ldr r0, _080F0DFC + ldr r0, [r0] + ldr r1, _080F0E00 + adds r4, r0, r1 + ldr r1, _080F0E04 + b _080F0E42 + .align 2, 0 +_080F0DFC: .4byte gUnknown_083DFEC4 +_080F0E00: .4byte 0x00008788 +_080F0E04: .4byte 0x0000d110 +_080F0E08: + ldr r0, _080F0E10 + lsls r2, r5, 3 + b _080F0E54 + .align 2, 0 +_080F0E10: .4byte gOtherText_TrainersPokemon +_080F0E14: + ldr r0, _080F0E20 + ldr r0, [r0] + ldr r1, _080F0E24 + adds r4, r0, r1 + ldr r1, _080F0E28 + b _080F0E42 + .align 2, 0 +_080F0E20: .4byte gUnknown_083DFEC4 +_080F0E24: .4byte 0x00008788 +_080F0E28: .4byte 0x0000d114 +_080F0E2C: + ldr r0, _080F0E34 + lsls r2, r5, 3 + b _080F0E54 + .align 2, 0 +_080F0E34: .4byte gOtherText_SelfIntroduction +_080F0E38: + ldr r0, _080F0E60 + ldr r0, [r0] + ldr r1, _080F0E64 + adds r4, r0, r1 + ldr r1, _080F0E68 +_080F0E42: + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + movs r2, 0x88 + movs r3, 0 + bl sub_8072C74 + lsls r2, r5, 3 + adds r0, r4, 0 +_080F0E54: + movs r1, 0x61 + movs r3, 0 + bl sub_80729D8 + b _080F0EA0 + .align 2, 0 +_080F0E60: .4byte gUnknown_083DFEC4 +_080F0E64: .4byte 0x00008788 +_080F0E68: .4byte 0x0000d118 +_080F0E6C: + ldr r0, _080F0E94 + ldr r0, [r0] + ldr r1, _080F0E98 + adds r4, r0, r1 + ldr r1, _080F0E9C + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + movs r2, 0x88 + movs r3, 0 + bl sub_8072C74 + lsls r2, r5, 3 + adds r0, r4, 0 + movs r1, 0x61 + movs r3, 0 + bl sub_80729D8 + b _080F0D6C + .align 2, 0 +_080F0E94: .4byte gUnknown_083DFEC4 +_080F0E98: .4byte 0x00008788 +_080F0E9C: .4byte 0x0000d11c +_080F0EA0: + ldr r0, _080F0EB8 + ldr r1, [r0] + ldr r0, _080F0EBC + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F0EAE: + movs r0, 0x1 +_080F0EB0: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F0EB8: .4byte gUnknown_083DFEC4 +_080F0EBC: .4byte 0x0000d15c + thumb_func_end sub_80F0D5C + + thumb_func_start sub_80F0EC0 +sub_80F0EC0: @ 80F0EC0 + push {lr} + ldr r0, _080F0EE4 + ldr r0, [r0] + ldr r2, _080F0EE8 + adds r1, r0, r2 + movs r2, 0 + strh r2, [r1] + ldr r3, _080F0EEC + adds r1, r0, r3 + strh r2, [r1] + ldr r1, _080F0EF0 + adds r0, r1 + movs r1, 0 + movs r2, 0x10 + bl StringFill + pop {r0} + bx r0 + .align 2, 0 +_080F0EE4: .4byte gUnknown_083DFEC4 +_080F0EE8: .4byte 0x00000306 +_080F0EEC: .4byte 0x0000d15c +_080F0EF0: .4byte 0x00008788 + thumb_func_end sub_80F0EC0 + + thumb_func_start sub_80F0EF4 +sub_80F0EF4: @ 80F0EF4 + push {r4,r5,lr} + ldr r0, _080F0F08 + ldr r2, [r0] + ldr r0, _080F0F0C + adds r5, r2, r0 + ldrh r0, [r5] + cmp r0, 0x6 + bls _080F0F10 + movs r0, 0 + b _080F0F52 + .align 2, 0 +_080F0F08: .4byte gUnknown_083DFEC4 +_080F0F0C: .4byte 0x0000d15c +_080F0F10: + ldr r0, _080F0F58 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080F0F50 + movs r0, 0 + strh r0, [r1] + ldr r1, _080F0F5C + adds r0, r2, r1 + ldrh r4, [r5] + lsls r4, 1 + adds r4, 0x2 + ldrh r0, [r0] + adds r4, r0 + movs r0, 0x1F + ands r4, r0 + ldr r0, _080F0F60 + bl BasicInitMenuWindow + adds r3, r4, 0x1 + movs r0, 0xC + adds r1, r4, 0 + movs r2, 0x1F + bl MenuZeroFillWindowRect + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_080F0F50: + movs r0, 0x1 +_080F0F52: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F0F58: .4byte 0x00000306 +_080F0F5C: .4byte 0x00008778 +_080F0F60: .4byte gWindowConfig_81E70D4 + thumb_func_end sub_80F0EF4 + + thumb_func_start sub_80F0F64 +sub_80F0F64: @ 80F0F64 + push {r4,lr} + ldr r0, _080F0F90 + ldr r3, [r0] + ldr r1, _080F0F94 + adds r0, r3, r1 + movs r4, 0 + ldrsh r2, [r0, r4] + lsls r1, r2, 4 + ldr r4, _080F0F98 + adds r0, r3, r4 + strh r1, [r0] + movs r1, 0x8 + cmp r2, 0x1 + bne _080F0F82 + movs r1, 0x4 +_080F0F82: + ldr r2, _080F0F9C + adds r0, r3, r2 + strh r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F0F90: .4byte gUnknown_083DFEC4 +_080F0F94: .4byte 0x0000876c +_080F0F98: .4byte 0x0000877c +_080F0F9C: .4byte 0x0000877a + thumb_func_end sub_80F0F64 + + thumb_func_start sub_80F0FA0 +sub_80F0FA0: @ 80F0FA0 + push {r4,lr} + ldr r0, _080F0FDC + ldr r3, [r0] + ldr r1, _080F0FE0 + adds r0, r3, r1 + movs r4, 0 + ldrsh r0, [r0, r4] + negs r0, r0 + lsls r0, 16 + asrs r0, 16 + lsls r2, r0, 4 + ldr r4, _080F0FE4 + adds r1, r3, r4 + strh r2, [r1] + movs r1, 0x1 + negs r1, r1 + movs r4, 0x8 + negs r4, r4 + adds r2, r4, 0 + cmp r0, r1 + bne _080F0FD0 + movs r0, 0x4 + negs r0, r0 + adds r2, r0, 0 +_080F0FD0: + ldr r1, _080F0FE8 + adds r0, r3, r1 + strh r2, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F0FDC: .4byte gUnknown_083DFEC4 +_080F0FE0: .4byte 0x0000876c +_080F0FE4: .4byte 0x0000877c +_080F0FE8: .4byte 0x0000877a + thumb_func_end sub_80F0FA0 + + thumb_func_start sub_80F0FEC +sub_80F0FEC: @ 80F0FEC + push {lr} + bl sub_80F0718 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80F0FEC + + thumb_func_start sub_80F0FFC +sub_80F0FFC: @ 80F0FFC + push {r4,r5,lr} + lsls r0, 24 + ldr r1, _080F1048 + ldr r4, [r1] + ldr r1, _080F104C + adds r5, r4, r1 + lsrs r0, 21 + adds r0, r4, r0 + ldr r1, _080F1050 + adds r0, r1 + ldrh r1, [r0] + adds r0, r5, 0 + movs r2, 0 + bl sub_80FBFB4 + ldr r0, _080F1054 + bl BasicInitMenuWindow + adds r0, r5, 0 + bl sub_80F19DC + ldr r0, _080F1058 + adds r4, r0 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x58 + movs r3, 0x2 + bl sub_8072C74 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x5 + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F1048: .4byte gUnknown_083DFEC4 +_080F104C: .4byte 0x00008788 +_080F1050: .4byte 0x0000ceea +_080F1054: .4byte gWindowConfig_81E710C +_080F1058: .4byte 0x0000d138 + thumb_func_end sub_80F0FFC + + thumb_func_start sub_80F105C +sub_80F105C: @ 80F105C + push {lr} + ldr r0, _080F1078 + ldr r1, [r0] + ldr r2, _080F107C + adds r0, r1, r2 + ldrh r0, [r0] + adds r2, 0xA + adds r1, r2 + ldrh r1, [r1] + bl sub_80F0A74 + pop {r0} + bx r0 + .align 2, 0 +_080F1078: .4byte gUnknown_083DFEC4 +_080F107C: .4byte 0x0000876e + thumb_func_end sub_80F105C + + thumb_func_start sub_80F1080 +sub_80F1080: @ 80F1080 + push {r4,lr} + ldr r1, _080F10A0 + ldr r0, [r1] + ldr r2, _080F10A4 + adds r0, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0xE + bls _080F1094 + b _080F1204 +_080F1094: + lsls r0, 2 + ldr r1, _080F10A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F10A0: .4byte gUnknown_083DFEC4 +_080F10A4: .4byte 0x0000d160 +_080F10A8: .4byte _080F10AC + .align 2, 0 +_080F10AC: + .4byte _080F10E8 + .4byte _080F1104 + .4byte _080F1110 + .4byte _080F111C + .4byte _080F1128 + .4byte _080F112E + .4byte _080F1134 + .4byte _080F1142 + .4byte _080F1160 + .4byte _080F1166 + .4byte _080F116C + .4byte _080F1180 + .4byte _080F1194 + .4byte _080F11DC + .4byte _080F11E2 +_080F10E8: + bl sub_80EEDE8 + ldr r0, _080F10FC + ldr r0, [r0] + ldr r3, _080F1100 + adds r0, r3 + movs r1, 0xB + strb r1, [r0] + b _080F1218 + .align 2, 0 +_080F10FC: .4byte gUnknown_083DFEC4 +_080F1100: .4byte 0x0000d162 +_080F1104: + ldr r0, _080F110C + bl SetUpWindowConfig + b _080F1218 + .align 2, 0 +_080F110C: .4byte gWindowConfig_81E70B8 +_080F1110: + ldr r0, _080F1118 + bl MultistepInitMenuWindowBegin + b _080F1218 + .align 2, 0 +_080F1118: .4byte gWindowConfig_81E70B8 +_080F111C: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + beq _080F1126 + b _080F1218 +_080F1126: + b _080F1226 +_080F1128: + bl MenuZeroFillScreen + b _080F1218 +_080F112E: + bl sub_80F1614 + b _080F1218 +_080F1134: + movs r0, 0x1 + bl sub_80F162C + lsls r0, 24 + cmp r0, 0 + beq _080F1218 + b _080F1226 +_080F1142: + ldr r0, _080F1154 + ldr r1, _080F1158 + ldr r1, [r1] + ldr r2, _080F115C + adds r1, r2 + bl LZ77UnCompWram + b _080F1218 + .align 2, 0 +_080F1154: .4byte gUnknown_08E9FBA0 +_080F1158: .4byte gUnknown_083DFEC4 +_080F115C: .4byte 0x0000934c +_080F1160: + bl sub_80F1238 + b _080F1218 +_080F1166: + bl sub_80F13FC + b _080F1218 +_080F116C: + ldr r0, _080F1178 + ldr r1, _080F117C + bl LZ77UnCompVram + b _080F1218 + .align 2, 0 +_080F1178: .4byte gPokenavRibbonView_Gfx +_080F117C: .4byte 0x06008000 +_080F1180: + ldr r0, _080F118C + ldr r1, _080F1190 + bl LZ77UnCompVram + b _080F1218 + .align 2, 0 +_080F118C: .4byte gUnknown_083E040C +_080F1190: .4byte 0x06008200 +_080F1194: + ldr r0, _080F11CC + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + ldr r4, _080F11D0 + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080F11D4 + movs r1, 0x30 + movs r2, 0xA0 + bl LoadPalette + ldr r0, _080F11D8 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + adds r4, 0x1E + adds r0, r4, 0 + movs r1, 0xBF + movs r2, 0x2 + bl LoadPalette + b _080F1218 + .align 2, 0 +_080F11CC: .4byte gPokenavRibbonView_Pal +_080F11D0: .4byte gUnknown_083E03A8 +_080F11D4: .4byte gUnknown_083E3C60 +_080F11D8: .4byte gUnknownPalette_81E6692 +_080F11DC: + bl sub_80F1438 + b _080F1218 +_080F11E2: + ldr r1, _080F1208 + ldr r3, _080F120C + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080F1210 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x42 + movs r0, 0 + strh r0, [r1] + ldr r1, [r2] + ldr r0, _080F1214 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F1204: + movs r0, 0 + b _080F1228 + .align 2, 0 +_080F1208: .4byte REG_BG2CNT +_080F120C: .4byte 0x00001e02 +_080F1210: .4byte 0x0000170b +_080F1214: .4byte 0x0000d160 +_080F1218: + ldr r0, _080F1230 + ldr r1, [r0] + ldr r2, _080F1234 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F1226: + movs r0, 0x1 +_080F1228: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F1230: .4byte gUnknown_083DFEC4 +_080F1234: .4byte 0x0000d160 + thumb_func_end sub_80F1080 + + thumb_func_start sub_80F1238 +sub_80F1238: @ 80F1238 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r6, 0x8B + ldr r0, _080F1318 + ldr r2, [r0] + ldr r1, _080F131C + adds r0, r2, r1 + ldr r3, _080F1320 + adds r1, r2, r3 + ldrb r0, [r0] + ldrb r1, [r1] + subs r0, r1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r7, 0 + mov r5, sp + adds r4, r2, 0 +_080F1264: + movs r1, 0x80 + lsls r1, 6 + adds r0, r1, 0 + strh r0, [r5] + lsls r1, r7, 5 + adds r1, r6, r1 + lsls r1, 1 + ldr r2, _080F1324 + adds r1, r2 + adds r1, r4, r1 + mov r0, sp + ldr r2, _080F1328 + bl CpuSet + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x7 + bls _080F1264 + ldr r3, [sp, 0x4] + lsls r0, r3, 16 + movs r7, 0 + mov r9, r0 + cmp r0, 0 + beq _080F1342 + ldr r0, _080F1318 + ldr r0, [r0] + mov r8, r0 + ldr r1, _080F132C + mov r10, r1 + ldr r5, _080F1324 + add r5, r8 +_080F12A4: + ldr r0, _080F1330 + add r0, r8 + adds r0, r7 + ldrb r1, [r0] + lsls r1, 2 + mov r0, r10 + adds r0, 0x2 + adds r0, r1, r0 + ldrb r2, [r0] + adds r2, 0x3 + lsls r2, 24 + add r1, r10 + ldrh r0, [r1] + lsls r0, 25 + movs r3, 0x80 + lsls r3, 21 + adds r0, r3 + lsrs r4, r0, 24 + lsls r1, r6, 1 + adds r1, r5, r1 + lsrs r2, 12 + adds r0, r2, 0 + orrs r0, r4 + strh r0, [r1] + adds r1, r6, 0x1 + lsls r1, 1 + adds r1, r5, r1 + movs r3, 0x80 + lsls r3, 3 + adds r0, r3, 0 + adds r3, r2, 0 + orrs r3, r0 + adds r0, r3, 0 + orrs r0, r4 + strh r0, [r1] + adds r0, r6, 0 + adds r0, 0x20 + lsls r0, 1 + adds r0, r5, r0 + adds r1, r4, 0x1 + orrs r2, r1 + strh r2, [r0] + adds r0, r6, 0 + adds r0, 0x21 + lsls r0, 1 + adds r0, r5, r0 + orrs r3, r1 + strh r3, [r0] + adds r4, r7, 0x1 + adds r0, r4, 0 + movs r1, 0x9 + bl __modsi3 + cmp r0, 0 + bne _080F1334 + adds r0, r6, 0 + adds r0, 0x30 + b _080F1336 + .align 2, 0 +_080F1318: .4byte gUnknown_083DFEC4 +_080F131C: .4byte 0x0000bc8e +_080F1320: .4byte 0x0000bc8f +_080F1324: .4byte 0x0000934c +_080F1328: .4byte 0x01000012 +_080F132C: .4byte gUnknown_083E4698 +_080F1330: .4byte 0x0000bc4c +_080F1334: + adds r0, r6, 0x2 +_080F1336: + lsls r0, 16 + lsrs r6, r0, 16 + lsls r0, r4, 16 + lsrs r7, r0, 16 + cmp r0, r9 + bcc _080F12A4 +_080F1342: + ldr r6, _080F13E8 + movs r7, 0 + ldr r1, _080F13EC + ldr r0, [r1] + ldr r2, _080F13F0 + adds r1, r0, r2 + ldrb r3, [r1] + cmp r7, r3 + bcs _080F13D8 + subs r2, 0x43 + adds r2, r0 + mov r10, r2 + ldr r3, _080F13F4 + mov r8, r3 + ldr r2, _080F13F8 + adds r5, r0, r2 + mov r9, r1 +_080F1364: + ldr r3, [sp, 0x4] + adds r0, r3, r7 + add r0, r10 + ldrb r1, [r0] + lsls r1, 2 + mov r0, r8 + adds r0, 0x2 + adds r0, r1, r0 + ldrb r2, [r0] + adds r2, 0x3 + lsls r2, 24 + add r1, r8 + ldrh r0, [r1] + lsls r0, 25 + movs r1, 0x80 + lsls r1, 21 + adds r0, r1 + lsrs r4, r0, 24 + lsls r1, r6, 1 + adds r1, r5, r1 + lsrs r2, 12 + adds r0, r2, 0 + orrs r0, r4 + strh r0, [r1] + adds r1, r6, 0x1 + lsls r1, 1 + adds r1, r5, r1 + movs r3, 0x80 + lsls r3, 3 + adds r0, r3, 0 + adds r3, r2, 0 + orrs r3, r0 + adds r0, r3, 0 + orrs r0, r4 + strh r0, [r1] + adds r0, r6, 0 + adds r0, 0x20 + lsls r0, 1 + adds r0, r5, r0 + adds r1, r4, 0x1 + orrs r2, r1 + strh r2, [r0] + adds r0, r6, 0 + adds r0, 0x21 + lsls r0, 1 + adds r0, r5, r0 + orrs r3, r1 + strh r3, [r0] + adds r0, r6, 0x2 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + mov r0, r9 + ldrb r0, [r0] + cmp r7, r0 + bcc _080F1364 +_080F13D8: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F13E8: .4byte 0x0000014b +_080F13EC: .4byte gUnknown_083DFEC4 +_080F13F0: .4byte 0x0000bc8f +_080F13F4: .4byte gUnknown_083E4698 +_080F13F8: .4byte 0x0000934c + thumb_func_end sub_80F1238 + + thumb_func_start sub_80F13FC +sub_80F13FC: @ 80F13FC + ldr r0, _080F141C + ldr r0, [r0] + ldr r1, _080F1420 + adds r0, r1 + ldr r2, _080F1424 + ldr r1, _080F1428 + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _080F142C + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, _080F1430 + ldr r0, _080F1434 + ldrh r0, [r0] + strh r0, [r1] + bx lr + .align 2, 0 +_080F141C: .4byte gUnknown_083DFEC4 +_080F1420: .4byte 0x0000934c +_080F1424: .4byte 0x0600b800 +_080F1428: .4byte 0x040000d4 +_080F142C: .4byte 0x84000140 +_080F1430: .4byte gPlttBufferUnfaded +_080F1434: .4byte gPokenavRibbonView_Pal + 0x1C + thumb_func_end sub_80F13FC + + thumb_func_start sub_80F1438 +sub_80F1438: @ 80F1438 + push {r4,r5,lr} + ldr r0, _080F1470 + ldr r4, [r0] + ldr r1, _080F1474 + adds r0, r4, r1 + movs r1, 0xD + movs r2, 0x1 + bl MenuPrint + ldr r0, _080F1478 + adds r5, r4, r0 + ldr r1, _080F147C + adds r4, r1 + ldrh r1, [r4] + adds r1, 0x1 + lsls r1, 16 + lsrs r1, 16 + adds r0, r5, 0 + bl sub_80F445C + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0x5 + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F1470: .4byte gUnknown_083DFEC4 +_080F1474: .4byte 0x00008829 +_080F1478: .4byte 0x00008788 +_080F147C: .4byte 0x0000876e + thumb_func_end sub_80F1438 + + thumb_func_start sub_80F1480 +sub_80F1480: @ 80F1480 + push {lr} + movs r0, 0xC + movs r1, 0xD + movs r2, 0x1B + movs r3, 0x10 + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + thumb_func_end sub_80F1480 + + thumb_func_start sub_80F1494 +sub_80F1494: @ 80F1494 + push {r4-r7,lr} + ldr r0, _080F14D4 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 4 + adds r6, r0, r1 + ldr r2, _080F14D8 + adds r7, r0, r2 + ldr r0, _080F14DC + ldr r3, [r0] + ldr r4, _080F14E0 + adds r1, r3, r4 + ldrb r0, [r1] + cmp r0, 0x2 + bhi _080F14F0 + ldr r5, _080F14E4 + adds r1, r0, 0 + lsls r0, r1, 3 + subs r4, 0x1 + adds r2, r3, r4 + adds r0, r1 + ldrb r2, [r2] + adds r0, r2 + strh r0, [r5] + ldr r1, _080F14E8 + adds r0, r3, r1 + ldrh r2, [r5] + adds r0, r2 + ldrb r0, [r0] + strh r0, [r5] + ldr r4, _080F14EC + b _080F152E + .align 2, 0 +_080F14D4: .4byte gUnknown_083DFEC8 +_080F14D8: .4byte 0x00000a98 +_080F14DC: .4byte gUnknown_083DFEC4 +_080F14E0: .4byte 0x0000bc91 +_080F14E4: .4byte gUnknown_020388B4 +_080F14E8: .4byte 0x0000bc4c +_080F14EC: .4byte gRibbonDescriptions +_080F14F0: + ldr r5, _080F1558 + ldr r4, _080F155C + adds r0, r3, r4 + ldrb r0, [r0] + ldr r2, _080F1560 + adds r1, r3, r2 + ldrb r1, [r1] + subs r0, r1 + strh r0, [r5] + ldrh r1, [r5] + adds r4, 0x2 + adds r0, r3, r4 + ldrb r0, [r0] + adds r1, r0 + subs r2, 0x43 + adds r0, r3, r2 + adds r0, r1 + ldrb r0, [r0] + strh r0, [r5] + ldr r0, _080F1564 + ldrh r1, [r5] + adds r0, r1 + ldr r4, _080F1568 + adds r0, r4 + ldrb r0, [r0] + strh r0, [r5] + cmp r0, 0 + beq _080F1570 + subs r0, 0x1 + strh r0, [r5] + ldr r4, _080F156C +_080F152E: + ldrh r0, [r5] + lsls r0, 3 + adds r0, r4 + ldr r1, [r0] + adds r0, r6, 0 + movs r2, 0x80 + movs r3, 0 + bl sub_8072C74 + ldrh r0, [r5] + lsls r0, 3 + adds r4, 0x4 + adds r0, r4 + ldr r1, [r0] + adds r0, r7, 0 + movs r2, 0x80 + movs r3, 0 + bl sub_8072C74 + b _080F158A + .align 2, 0 +_080F1558: .4byte gUnknown_020388B4 +_080F155C: .4byte 0x0000bc8e +_080F1560: .4byte 0x0000bc8f +_080F1564: .4byte gSaveBlock1 +_080F1568: .4byte 0x000030f7 +_080F156C: .4byte gGiftRibbonDescriptions +_080F1570: + ldr r4, _080F15A4 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x80 + movs r3, 0 + bl sub_8072C74 + adds r0, r7, 0 + adds r1, r4, 0 + movs r2, 0x80 + movs r3, 0 + bl sub_8072C74 +_080F158A: + adds r0, r6, 0 + movs r1, 0xC + movs r2, 0xD + bl MenuPrint + adds r0, r7, 0 + movs r1, 0xC + movs r2, 0xF + bl MenuPrint + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F15A4: .4byte gEmptyString_81E72B0 + thumb_func_end sub_80F1494 + + thumb_func_start sub_80F15A8 +sub_80F15A8: @ 80F15A8 + push {r4,r5,lr} + movs r0, 0xC + movs r1, 0xD + movs r2, 0x1B + movs r3, 0x10 + bl MenuZeroFillWindowRect + ldr r0, _080F1600 + ldr r4, [r0] + ldr r0, _080F1604 + adds r5, r4, r0 + ldr r1, _080F1608 + adds r0, r5, 0 + bl StringCopy + adds r2, r0, 0 + movs r0, 0 + strb r0, [r2] + adds r2, 0x1 + ldr r1, _080F160C + adds r0, r4, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + lsls r0, 2 + adds r4, r0 + ldr r0, _080F1610 + adds r4, r0 + ldrb r1, [r4] + adds r0, r2, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + adds r2, r0, 0 + movs r0, 0xFF + strb r0, [r2] + adds r0, r5, 0 + movs r1, 0xC + movs r2, 0xD + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F1600: .4byte gUnknown_083DFEC4 +_080F1604: .4byte 0x00008788 +_080F1608: .4byte gOtherText_Ribbons +_080F160C: .4byte 0x000087dc +_080F1610: .4byte 0x0000893c + thumb_func_end sub_80F15A8 + + thumb_func_start sub_80F1614 +sub_80F1614: @ 80F1614 + ldr r0, _080F1624 + ldr r0, [r0] + ldr r1, _080F1628 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + bx lr + .align 2, 0 +_080F1624: .4byte gUnknown_083DFEC4 +_080F1628: .4byte 0x00008764 + thumb_func_end sub_80F1614 + + thumb_func_start sub_80F162C +sub_80F162C: @ 80F162C + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080F164C + ldr r0, [r0] + ldr r2, _080F1650 + adds r0, r2 + ldrh r0, [r0] + cmp r0, 0x1 + beq _080F165E + cmp r0, 0x1 + bgt _080F1654 + cmp r0, 0 + beq _080F16F0 + b _080F16D0 + .align 2, 0 +_080F164C: .4byte gUnknown_083DFEC4 +_080F1650: .4byte 0x00008764 +_080F1654: + cmp r0, 0x2 + beq _080F1670 + cmp r0, 0x3 + beq _080F1694 + b _080F16D0 +_080F165E: + ldr r0, _080F1668 + ldr r1, _080F166C + bl LZ77UnCompVram + b _080F16F0 + .align 2, 0 +_080F1668: .4byte gUnknown_08E9FF58 +_080F166C: .4byte 0x0600e800 +_080F1670: + ldr r1, _080F1684 + ldr r2, _080F1688 + ldr r0, _080F168C + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080F1690 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080F16F0 + .align 2, 0 +_080F1684: .4byte gPokenavRibbonPokeView_Gfx +_080F1688: .4byte 0x0600e000 +_080F168C: .4byte 0x040000d4 +_080F1690: .4byte 0x80000070 +_080F1694: + cmp r1, 0 + bne _080F16A8 + ldr r0, _080F16A4 + movs r1, 0xD0 + movs r2, 0x20 + bl LoadPalette + b _080F16B2 + .align 2, 0 +_080F16A4: .4byte gUnknown_083E0124 +_080F16A8: + ldr r0, _080F16D4 + movs r1, 0xD0 + movs r2, 0x20 + bl LoadPalette +_080F16B2: + ldr r0, _080F16D8 + ldr r1, [r0] + ldr r3, _080F16DC + adds r2, r1, r3 + ldr r0, _080F16E0 + strh r0, [r2] + ldr r2, _080F16E4 + ldr r3, _080F16E8 + adds r0, r3, 0 + strh r0, [r2] + ldr r0, _080F16EC + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F16D0: + movs r0, 0 + b _080F1700 + .align 2, 0 +_080F16D4: .4byte gUnknown_083E0144 +_080F16D8: .4byte gUnknown_083DFEC4 +_080F16DC: .4byte 0x00008766 +_080F16E0: .4byte 0x0000ffb0 +_080F16E4: .4byte REG_BG0CNT +_080F16E8: .4byte 0x00001d0d +_080F16EC: .4byte 0x00008764 +_080F16F0: + ldr r0, _080F1704 + ldr r1, [r0] + ldr r2, _080F1708 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080F1700: + pop {r1} + bx r1 + .align 2, 0 +_080F1704: .4byte gUnknown_083DFEC4 +_080F1708: .4byte 0x00008764 + thumb_func_end sub_80F162C + + thumb_func_start sub_80F170C +sub_80F170C: @ 80F170C + push {lr} + ldr r0, _080F1734 + ldr r0, [r0] + ldr r2, _080F1738 + adds r1, r0, r2 + ldrh r0, [r1] + adds r0, 0x10 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + ble _080F1726 + movs r0, 0 + strh r0, [r1] +_080F1726: + movs r0, 0 + ldrsh r1, [r1, r0] + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + pop {r1} + bx r1 + .align 2, 0 +_080F1734: .4byte gUnknown_083DFEC4 +_080F1738: .4byte 0x00008766 + thumb_func_end sub_80F170C + + thumb_func_start sub_80F173C +sub_80F173C: @ 80F173C + push {lr} + ldr r0, _080F176C + ldr r0, [r0] + ldr r2, _080F1770 + adds r1, r0, r2 + ldrh r0, [r1] + subs r0, 0x10 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x50 + negs r2, r2 + cmp r0, r2 + bge _080F175C + ldr r0, _080F1774 + strh r0, [r1] +_080F175C: + movs r0, 0 + ldrsh r1, [r1, r0] + eors r1, r2 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + pop {r1} + bx r1 + .align 2, 0 +_080F176C: .4byte gUnknown_083DFEC4 +_080F1770: .4byte 0x00008766 +_080F1774: .4byte 0x0000ffb0 + thumb_func_end sub_80F173C + + thumb_func_start sub_80F1778 +sub_80F1778: @ 80F1778 + push {r4,lr} + sub sp, 0x14 + ldr r0, _080F1798 + ldr r0, [r0] + ldr r1, _080F179C + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x9 + bls _080F178C + b _080F1910 +_080F178C: + lsls r0, 2 + ldr r1, _080F17A0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F1798: .4byte gUnknown_083DFEC4 +_080F179C: .4byte 0x0000d160 +_080F17A0: .4byte _080F17A4 + .align 2, 0 +_080F17A4: + .4byte _080F17CC + .4byte _080F17E8 + .4byte _080F17EE + .4byte _080F17FE + .4byte _080F1810 + .4byte _080F1830 + .4byte _080F1858 + .4byte _080F186C + .4byte _080F18B8 + .4byte _080F18D8 +_080F17CC: + bl sub_80EEDE8 + ldr r0, _080F17E0 + ldr r0, [r0] + ldr r2, _080F17E4 + adds r0, r2 + movs r1, 0x2 + strb r1, [r0] + b _080F1914 + .align 2, 0 +_080F17E0: .4byte gUnknown_083DFEC4 +_080F17E4: .4byte 0x0000d162 +_080F17E8: + bl sub_80F1614 + b _080F1914 +_080F17EE: + movs r0, 0 + bl sub_80F162C + lsls r0, 24 + cmp r0, 0 + bne _080F17FC + b _080F1914 +_080F17FC: + b _080F1922 +_080F17FE: + ldr r0, _080F1808 + ldr r1, _080F180C + bl LZ77UnCompVram + b _080F1914 + .align 2, 0 +_080F1808: .4byte gPokenavConditionView_Gfx +_080F180C: .4byte 0x06005000 +_080F1810: + ldr r0, _080F1824 + ldr r1, _080F1828 + bl LZ77UnCompVram + ldr r0, _080F182C + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + b _080F1914 + .align 2, 0 +_080F1824: .4byte gUnknown_08E9AC4C +_080F1828: .4byte 0x0600f000 +_080F182C: .4byte gPokenavConditionMenu2_Pal +_080F1830: + ldr r0, _080F1850 + ldr r3, _080F1854 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r2, 0xC + str r2, [sp, 0x8] + movs r1, 0x4 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0 + movs r2, 0xD + bl sub_8095C8C + b _080F1914 + .align 2, 0 +_080F1850: .4byte 0x0600f000 +_080F1854: .4byte gUnknown_083E01F4 +_080F1858: + ldr r0, _080F1864 + ldr r1, _080F1868 + bl LZ77UnCompVram + b _080F1914 + .align 2, 0 +_080F1864: .4byte gUnknown_08E9FEB4 +_080F1868: .4byte 0x0600b800 +_080F186C: + ldr r0, _080F18AC + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080F18B0 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + ldr r4, _080F18B4 + adds r0, r4, 0 + movs r1, 0xB1 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + adds r0, 0xE + movs r1, 0xB5 + movs r2, 0x2 + bl LoadPalette + adds r4, 0x1C + adds r0, r4, 0 + movs r1, 0xBF + movs r2, 0x2 + bl LoadPalette + bl sub_80F01A4 + b _080F1914 + .align 2, 0 +_080F18AC: .4byte gUnknown_083E0254 +_080F18B0: .4byte gUnknownPalette_81E6692 +_080F18B4: .4byte gPokenavConditionMenu2_Pal + 0x2 +_080F18B8: + ldr r0, _080F18D0 + ldr r0, [r0] + ldr r1, _080F18D4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + bl sub_80F01E0 + b _080F1914 + .align 2, 0 +_080F18D0: .4byte gUnknown_083DFEC4 +_080F18D4: .4byte 0x00008fe9 +_080F18D8: + ldr r1, _080F18FC + ldr r2, _080F1900 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _080F1904 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x44 + ldr r2, _080F1908 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F190C + adds r0, r2, 0 + strh r0, [r1] + b _080F1914 + .align 2, 0 +_080F18FC: .4byte REG_BG3CNT +_080F1900: .4byte 0x00001e03 +_080F1904: .4byte 0x00001702 +_080F1908: .4byte 0x00000844 +_080F190C: .4byte 0x0000040b +_080F1910: + movs r0, 0 + b _080F1924 +_080F1914: + ldr r0, _080F192C + ldr r1, [r0] + ldr r0, _080F1930 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F1922: + movs r0, 0x1 +_080F1924: + add sp, 0x14 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F192C: .4byte gUnknown_083DFEC4 +_080F1930: .4byte 0x0000d160 + thumb_func_end sub_80F1778 + + thumb_func_start sub_80F1934 +sub_80F1934: @ 80F1934 + push {r4,r5,lr} + ldr r0, _080F1990 + ldr r1, [r0] + ldr r0, _080F1994 + adds r5, r1, r0 + ldr r3, _080F1998 + adds r2, r1, r3 + movs r3, 0 + ldrsh r0, [r2, r3] + lsls r0, 2 + adds r1, r0 + ldr r0, _080F199C + adds r1, r0 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + bge _080F19AC + ldrb r0, [r2] + bl sub_8137124 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _080F19A0 + adds r0, r1 + bl GetNature + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080F19A4 + adds r0, r5, 0 + bl StringCopy + adds r5, r0, 0 + ldr r0, _080F19A8 + lsls r4, 2 + adds r4, r0 + ldr r1, [r4] + adds r0, r5, 0 + movs r2, 0x57 + movs r3, 0 + bl sub_8072C74 + b _080F19B8 + .align 2, 0 +_080F1990: .4byte gUnknown_083DFEC4 +_080F1994: .4byte 0x00008788 +_080F1998: .4byte 0x000087dc +_080F199C: .4byte 0x0000893f +_080F19A0: .4byte gPlayerParty +_080F19A4: .4byte gOtherText_Nature2 +_080F19A8: .4byte gNatureNames +_080F19AC: + ldr r1, _080F19D0 + adds r0, r5, 0 + movs r2, 0x57 + movs r3, 0 + bl sub_8072C74 +_080F19B8: + ldr r0, _080F19D4 + ldr r0, [r0] + ldr r1, _080F19D8 + adds r0, r1 + movs r1, 0x1 + movs r2, 0x70 + movs r3, 0x1 + bl sub_80729D8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F19D0: .4byte gEmptyString_81E72B0 +_080F19D4: .4byte gUnknown_083DFEC4 +_080F19D8: .4byte 0x00008788 + thumb_func_end sub_80F1934 + + thumb_func_start sub_80F19DC +sub_80F19DC: @ 80F19DC + push {lr} + adds r1, r0, 0 + b _080F19E4 +_080F19E2: + adds r1, 0x1 +_080F19E4: + ldrb r0, [r1] + cmp r0, 0xFF + beq _080F19F8 + cmp r0, 0xFC + bne _080F19E2 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _080F19E2 + movs r0, 0xFF + strb r0, [r1] +_080F19F8: + pop {r0} + bx r0 + thumb_func_end sub_80F19DC + + thumb_func_start sub_80F19FC +sub_80F19FC: @ 80F19FC + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _080F1A68 + ldrb r4, [r5] + cmp r4, 0x1 + bne _080F1A60 + ldr r0, _080F1A6C + ldr r1, [r0] + ldr r2, _080F1A70 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x3 + adds r1, r2 + ldrb r1, [r1] + ldrb r2, [r5, 0x1] + bl sub_811A8CC + cmp r0, 0 + beq _080F1A46 + ldrb r2, [r5, 0x1] + lsls r2, 20 + movs r1, 0xC0 + lsls r1, 14 + adds r2, r1 + lsrs r2, 16 + str r4, [sp] + movs r1, 0x70 + movs r3, 0x78 + bl sub_8072A18 + ldrb r0, [r5, 0x1] + adds r0, 0x1 + strb r0, [r5, 0x1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _080F1A60 +_080F1A46: + ldrb r1, [r5, 0x1] + lsls r1, 25 + movs r2, 0xC0 + lsls r2, 19 + adds r1, r2 + lsrs r1, 24 + movs r0, 0xE + movs r2, 0x1C + movs r3, 0xF + bl MenuFillWindowRectWithBlankTile + movs r0, 0 + strb r0, [r5] +_080F1A60: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F1A68: .4byte gUnknown_020388B0 +_080F1A6C: .4byte gUnknown_083DFEC4 +_080F1A70: .4byte 0x00006e2c + thumb_func_end sub_80F19FC + + thumb_func_start sub_80F1A74 +sub_80F1A74: @ 80F1A74 + ldr r1, _080F1A7C + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_080F1A7C: .4byte gUnknown_020388B0 + thumb_func_end sub_80F1A74 + + thumb_func_start sub_80F1A80 +sub_80F1A80: @ 80F1A80 + ldr r0, _080F1A8C + movs r2, 0 + movs r1, 0x1 + strb r1, [r0] + strb r2, [r0, 0x1] + bx lr + .align 2, 0 +_080F1A8C: .4byte gUnknown_020388B0 + thumb_func_end sub_80F1A80 + + thumb_func_start sub_80F1A90 +sub_80F1A90: @ 80F1A90 + push {lr} + ldr r0, _080F1AB8 + ldr r0, [r0] + ldr r1, _080F1ABC + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F1AC0 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F1AB2 +_080F1AA8: + bl sub_80F1AC4 + lsls r0, 24 + cmp r0, 0 + bne _080F1AA8 +_080F1AB2: + pop {r0} + bx r0 + .align 2, 0 +_080F1AB8: .4byte gUnknown_083DFEC4 +_080F1ABC: .4byte 0x00000306 +_080F1AC0: .4byte 0x00006dac + thumb_func_end sub_80F1A90 + + thumb_func_start sub_80F1AC4 +sub_80F1AC4: @ 80F1AC4 + push {r4,r5,lr} + ldr r0, _080F1AE0 + ldr r1, [r0] + ldr r2, _080F1AE4 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, 0x1 + beq _080F1B34 + cmp r0, 0x1 + bgt _080F1AE8 + cmp r0, 0 + beq _080F1AF2 + b _080F1B6C + .align 2, 0 +_080F1AE0: .4byte gUnknown_083DFEC4 +_080F1AE4: .4byte 0x00000306 +_080F1AE8: + cmp r0, 0x2 + beq _080F1B40 + cmp r0, 0x3 + beq _080F1B54 + b _080F1B6C +_080F1AF2: + movs r0, 0 + movs r2, 0xC8 + lsls r2, 2 + adds r4, r1, r2 + movs r5, 0 +_080F1AFC: + movs r2, 0 + adds r1, r0, 0x1 + lsls r3, r0, 4 +_080F1B02: + lsls r0, r2, 2 + adds r0, r3 + adds r0, r4, r0 + str r5, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x3 + bls _080F1B02 + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, 0x5 + bls _080F1AFC + ldr r0, _080F1B2C + ldr r0, [r0] + ldr r1, _080F1B30 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + b _080F1B6C + .align 2, 0 +_080F1B2C: .4byte gUnknown_083DFEC4 +_080F1B30: .4byte 0x00000311 +_080F1B34: + ldr r0, _080F1B3C + movs r2, 0xE2 + lsls r2, 2 + b _080F1B44 + .align 2, 0 +_080F1B3C: .4byte gPokenavMenuOptions_Gfx +_080F1B40: + ldr r0, _080F1B4C + ldr r2, _080F1B50 +_080F1B44: + adds r1, r2 + bl LZ77UnCompWram + b _080F1B6C + .align 2, 0 +_080F1B4C: .4byte gPokenavConditionMenu_Gfx +_080F1B50: .4byte 0x00001788 +_080F1B54: + ldr r0, _080F1B64 + ldr r2, _080F1B68 + adds r1, r2 + bl LZ77UnCompWram + movs r0, 0 + b _080F1B7C + .align 2, 0 +_080F1B64: .4byte gPokenavConditionSearch_Gfx +_080F1B68: .4byte 0x00002388 +_080F1B6C: + ldr r0, _080F1B84 + ldr r1, [r0] + ldr r0, _080F1B88 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080F1B7C: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F1B84: .4byte gUnknown_083DFEC4 +_080F1B88: .4byte 0x00000306 + thumb_func_end sub_80F1AC4 + + thumb_func_start sub_80F1B8C +sub_80F1B8C: @ 80F1B8C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080F1BBC + ldr r0, [r0] + ldr r1, _080F1BC0 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F1BC4 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F1BB4 +_080F1BA8: + adds r0, r4, 0 + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + bne _080F1BA8 +_080F1BB4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F1BBC: .4byte gUnknown_083DFEC4 +_080F1BC0: .4byte 0x00000306 +_080F1BC4: .4byte 0x00006dac + thumb_func_end sub_80F1B8C + + thumb_func_start sub_80F1BC8 +sub_80F1BC8: @ 80F1BC8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r1, _080F1BF4 + ldr r2, [r1] + ldr r3, _080F1BF8 + adds r0, r2, r3 + ldrh r0, [r0] + adds r3, r1, 0 + cmp r0, 0x1 + beq _080F1C0A + cmp r0, 0x1 + bgt _080F1BFC + cmp r0, 0 + beq _080F1C02 + b _080F1DC4 + .align 2, 0 +_080F1BF4: .4byte gUnknown_083DFEC4 +_080F1BF8: .4byte 0x00000306 +_080F1BFC: + cmp r0, 0x2 + beq _080F1C12 + b _080F1DC4 +_080F1C02: + mov r0, r9 + bl sub_80F2458 + b _080F1DC8 +_080F1C0A: + mov r0, r9 + bl sub_80F2514 + b _080F1DC8 +_080F1C12: + mov r4, r9 + cmp r4, 0x1 + beq _080F1C40 + cmp r4, 0x1 + bgt _080F1C22 + cmp r4, 0 + beq _080F1C2A + b _080F1DC4 +_080F1C22: + mov r5, r9 + cmp r5, 0x2 + beq _080F1C54 + b _080F1DC4 +_080F1C2A: + movs r0, 0x2A + str r0, [sp, 0x4] + movs r1, 0x14 + str r1, [sp, 0x8] + ldr r4, _080F1C3C + adds r1, r2, r4 + movs r0, 0x5 + b _080F1C62 + .align 2, 0 +_080F1C3C: .4byte 0x0000030e +_080F1C40: + movs r5, 0x38 + str r5, [sp, 0x4] + movs r0, 0x14 + str r0, [sp, 0x8] + ldr r4, _080F1C50 + adds r1, r2, r4 + movs r0, 0x3 + b _080F1C62 + .align 2, 0 +_080F1C50: .4byte 0x0000030e +_080F1C54: + movs r5, 0x28 + str r5, [sp, 0x4] + movs r0, 0x10 + str r0, [sp, 0x8] + ldr r4, _080F1CDC + adds r1, r2, r4 + movs r0, 0x6 +_080F1C62: + strb r0, [r1] + movs r5, 0 + str r5, [sp] + mov r8, r5 + adds r1, r3, 0 + ldr r0, [r1] + ldr r2, _080F1CDC + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r8, r0 + blt _080F1C7E + b _080F1DC8 +_080F1C7E: + ldr r4, [sp, 0x8] + mov r3, r8 + muls r3, r4 + ldr r5, [sp, 0x4] + adds r0, r5, r3 + subs r0, 0x8 + lsls r0, 16 + lsrs r0, 16 + ldr r4, [r1] + mov r2, r8 + lsls r1, r2, 1 + movs r5, 0xC5 + lsls r5, 2 + adds r2, r4, r5 + adds r2, r1 + lsls r1, r0, 8 + adds r0, 0x11 + orrs r1, r0 + strh r1, [r2] + mov r0, r9 + cmp r0, 0 + bne _080F1CF2 + ldr r1, _080F1CE0 + adds r0, r4, r1 + mov r2, r8 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _080F1CE8 + movs r5, 0 + ldr r0, _080F1CE4 + ldr r0, [r0] + lsls r2, 4 + movs r3, 0xC8 + lsls r3, 2 + adds r1, r0, r3 + movs r3, 0 +_080F1CC8: + lsls r0, r5, 2 + adds r0, r2 + adds r0, r1, r0 + str r3, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080F1CC8 + b _080F1D92 + .align 2, 0 +_080F1CDC: .4byte 0x0000030e +_080F1CE0: .4byte 0x00006db2 +_080F1CE4: .4byte gUnknown_083DFEC4 +_080F1CE8: + ldrb r0, [r1] + subs r0, 0x1 + lsls r0, 18 + lsrs r0, 16 + str r0, [sp] +_080F1CF2: + movs r5, 0 + ldr r4, [sp, 0x4] + adds r0, r4, r3 + lsls r0, 16 + mov r10, r0 +_080F1CFC: + lsls r6, r5, 5 + movs r0, 0x80 + lsls r0, 1 + adds r7, r6, r0 + lsls r1, r7, 16 + asrs r1, 16 + ldr r0, _080F1DB4 + mov r3, r10 + asrs r2, r3, 16 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F1DC4 + ldr r0, _080F1DB8 + ldr r2, [r0] + lsls r1, r5, 2 + mov r4, r8 + lsls r0, r4, 4 + adds r1, r0 + movs r0, 0xC8 + lsls r0, 2 + adds r2, r0 + adds r4, r2, r1 + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + ldr r1, _080F1DBC + adds r0, r1 + str r0, [r4] + mov r1, r8 + strh r1, [r0, 0x2E] + ldr r0, [r4] + strh r5, [r0, 0x30] + ldr r1, [r4] + adds r0, r6, 0 + adds r0, 0x98 + strh r0, [r1, 0x32] + ldr r0, [r4] + strh r7, [r0, 0x34] + ldr r0, [r4] + ldr r1, [sp] + adds r2, r1, 0x1 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp] + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + mov r2, r9 + cmp r2, 0x2 + beq _080F1D6E + cmp r2, 0 + bne _080F1D88 +_080F1D6E: + mov r3, r8 + cmp r3, 0x2 + bls _080F1D88 + movs r0, 0x1 + bl IndexOfSpritePaletteTag + ldr r3, [r4] + lsls r0, 4 + ldrb r2, [r3, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x5] +_080F1D88: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080F1CFC +_080F1D92: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r1, _080F1DB8 + ldr r0, [r1] + ldr r4, _080F1DC0 + adds r0, r4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r8, r0 + bge _080F1DB0 + b _080F1C7E +_080F1DB0: + b _080F1DC8 + .align 2, 0 +_080F1DB4: .4byte gSpriteTemplate_83E4454 +_080F1DB8: .4byte gUnknown_083DFEC4 +_080F1DBC: .4byte gSprites +_080F1DC0: .4byte 0x0000030e +_080F1DC4: + movs r0, 0 + b _080F1DD8 +_080F1DC8: + ldr r0, _080F1DE8 + ldr r1, [r0] + ldr r5, _080F1DEC + adds r1, r5 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080F1DD8: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080F1DE8: .4byte gUnknown_083DFEC4 +_080F1DEC: .4byte 0x00000306 + thumb_func_end sub_80F1BC8 + + thumb_func_start sub_80F1DF0 +sub_80F1DF0: @ 80F1DF0 + push {r4-r6,lr} + movs r2, 0 + ldr r0, _080F1E44 + ldr r3, [r0] + ldr r0, _080F1E48 + adds r1, r3, r0 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r2, r0 + bge _080F1E38 + movs r0, 0xC8 + lsls r0, 2 + adds r4, r3, r0 + adds r6, r1, 0 + ldr r5, _080F1E4C +_080F1E0E: + movs r1, 0 + adds r3, r2, 0x1 + lsls r2, 4 +_080F1E14: + lsls r0, r1, 2 + adds r0, r2 + adds r0, r4, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F1E22 + str r5, [r0, 0x1C] +_080F1E22: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _080F1E14 + lsls r0, r3, 16 + lsrs r2, r0, 16 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r2, r0 + blt _080F1E0E +_080F1E38: + movs r0, 0x6 + bl PlaySE + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F1E44: .4byte gUnknown_083DFEC4 +_080F1E48: .4byte 0x0000030e +_080F1E4C: .4byte sub_80F2218 + thumb_func_end sub_80F1DF0 + + thumb_func_start sub_80F1E50 +sub_80F1E50: @ 80F1E50 + push {lr} + bl sub_80F22F8 + lsls r0, 24 + cmp r0, 0 + bne _080F1E60 + movs r0, 0x1 + b _080F1E66 +_080F1E60: + bl sub_80F2108 + movs r0, 0 +_080F1E66: + pop {r1} + bx r1 + thumb_func_end sub_80F1E50 + + thumb_func_start sub_80F1E6C +sub_80F1E6C: @ 80F1E6C + push {lr} + bl sub_80F22F8 + movs r1, 0 + lsls r0, 24 + cmp r0, 0 + bne _080F1E7C + movs r1, 0x1 +_080F1E7C: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end sub_80F1E6C + + thumb_func_start sub_80F1E84 +sub_80F1E84: @ 80F1E84 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r5, _080F1EFC + ldr r4, [r5] + ldr r1, _080F1F00 + adds r0, r4, r1 + movs r1, 0 + strb r1, [r0] + bl sub_80F2148 + movs r2, 0 + ldr r3, _080F1F04 + adds r1, r4, r3 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r2, r0 + bge _080F1EF2 + ldr r0, _080F1F08 + adds r7, r4, r0 + adds r6, r1, 0 + mov r8, r5 + ldr r1, _080F1F0C + mov r12, r1 +_080F1EB4: + movs r0, 0 + ldrsb r0, [r7, r0] + adds r5, r2, 0x1 + cmp r2, r0 + beq _080F1EE6 + movs r1, 0 + mov r3, r8 + ldr r0, [r3] + lsls r3, r2, 4 + movs r4, 0xC8 + lsls r4, 2 + adds r2, r0, r4 + mov r4, r12 +_080F1ECE: + lsls r0, r1, 2 + adds r0, r3 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F1EDC + str r4, [r0, 0x1C] +_080F1EDC: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _080F1ECE +_080F1EE6: + lsls r0, r5, 16 + lsrs r2, r0, 16 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r2, r0 + blt _080F1EB4 +_080F1EF2: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F1EFC: .4byte gUnknown_083DFEC4 +_080F1F00: .4byte 0x0000030f +_080F1F04: .4byte 0x0000030e +_080F1F08: .4byte 0x00006dad +_080F1F0C: .4byte sub_80F2240 + thumb_func_end sub_80F1E84 + + thumb_func_start sub_80F1F10 +sub_80F1F10: @ 80F1F10 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _080F1F2C + ldr r4, [r0] + ldr r1, _080F1F30 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F1F34 + cmp r0, 0x1 + beq _080F1FC0 + b _080F1FE4 + .align 2, 0 +_080F1F2C: .4byte gUnknown_083DFEC4 +_080F1F30: .4byte 0x0000030f +_080F1F34: + bl sub_80F2360 + lsls r0, 24 + cmp r0, 0 + beq _080F1FE4 + movs r6, 0 + adds r7, r4, 0 + movs r0, 0xC8 + lsls r0, 2 + adds r0, r7 + mov r8, r0 +_080F1F4A: + lsls r5, r6, 2 + ldr r1, _080F1FAC + adds r0, r7, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 4 + adds r0, r5, r0 + add r0, r8 + ldr r4, [r0] + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r0, _080F1FB0 + str r0, [r4, 0x10] + adds r0, r4, 0 + bl InitSpriteAffineAnim + subs r5, 0x6 + strh r5, [r4, 0x36] + movs r1, 0x36 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x36] + movs r1, 0x36 + ldrsh r0, [r4, r1] + lsls r0, 3 + strh r0, [r4, 0x38] + ldr r0, _080F1FB4 + str r0, [r4, 0x1C] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bls _080F1F4A + bl sub_80F2170 + ldr r0, _080F1FB8 + ldr r1, [r0] + ldr r0, _080F1FBC + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080F1FE4 + .align 2, 0 +_080F1FAC: .4byte 0x00006dad +_080F1FB0: .4byte gUnknown_083E4450 +_080F1FB4: .4byte sub_80F2240 +_080F1FB8: .4byte gUnknown_083DFEC4 +_080F1FBC: .4byte 0x0000030f +_080F1FC0: + bl sub_80F23C8 + lsls r0, 24 + cmp r0, 0 + beq _080F1FE4 + bl sub_80F21F8 + movs r0, 0 + bl FreeSpriteTilesByTag + movs r0, 0 + bl FreeSpritePaletteByTag + movs r0, 0x1 + bl FreeSpritePaletteByTag + movs r0, 0 + b _080F1FE6 +_080F1FE4: + movs r0, 0x1 +_080F1FE6: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F1F10 + + thumb_func_start sub_80F1FF0 +sub_80F1FF0: @ 80F1FF0 + push {r4,lr} + ldr r0, _080F203C + ldr r4, [r0] + ldr r1, _080F2040 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080F2058 + ldr r2, _080F2044 + ldr r3, _080F2048 + adds r0, r4, r3 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r1, 1 + movs r3, 0xC5 + lsls r3, 2 + adds r0, r4, r3 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + ldr r3, _080F204C + ldr r1, _080F2050 + ldr r0, _080F2054 + adds r2, r4, r0 + ldrh r0, [r2] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 21 + strh r0, [r3] + ldrh r0, [r2] + adds r0, 0x3 + movs r1, 0x7F + ands r0, r1 + strh r0, [r2] + b _080F2078 + .align 2, 0 +_080F203C: .4byte gUnknown_083DFEC4 +_080F2040: .4byte 0x00000311 +_080F2044: .4byte REG_WIN0V +_080F2048: .4byte 0x00006dad +_080F204C: .4byte REG_BLDY +_080F2050: .4byte gSineTable +_080F2054: .4byte 0x00000312 +_080F2058: + cmp r0, 0x2 + bne _080F2078 + ldr r2, _080F2080 + ldr r1, _080F2084 + ldr r0, _080F2088 + adds r3, r4, r0 + ldrh r0, [r3] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + ldrh r0, [r3] + cmp r0, 0xE + bhi _080F2078 + adds r0, 0x1 + strh r0, [r3] +_080F2078: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2080: .4byte REG_BLDALPHA +_080F2084: .4byte gUnknown_083E42F8 +_080F2088: .4byte 0x00000312 + thumb_func_end sub_80F1FF0 + + thumb_func_start sub_80F208C +sub_80F208C: @ 80F208C + push {lr} + bl sub_80F2148 + pop {r0} + bx r0 + thumb_func_end sub_80F208C + + thumb_func_start sub_80F2098 +sub_80F2098: @ 80F2098 + ldr r1, _080F20DC + ldr r2, _080F20E0 + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _080F20E4 + ldr r0, _080F20E8 + ldr r1, [r0] + ldr r3, _080F20EC + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 1 + movs r3, 0xC5 + lsls r3, 2 + adds r1, r3 + adds r1, r0 + ldrh r0, [r1] + strh r0, [r2] + ldr r1, _080F20F0 + movs r0, 0x3F + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x1F + strh r0, [r1] + subs r2, 0x44 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 6 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_080F20DC: .4byte REG_WIN0H +_080F20E0: .4byte 0x000077f0 +_080F20E4: .4byte REG_WIN0V +_080F20E8: .4byte gUnknown_083DFEC4 +_080F20EC: .4byte 0x00006dad +_080F20F0: .4byte REG_WININ + thumb_func_end sub_80F2098 + + thumb_func_start sub_80F20F4 +sub_80F20F4: @ 80F20F4 + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080F2104 + ands r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_080F2104: .4byte 0x0000dfff + thumb_func_end sub_80F20F4 + + thumb_func_start sub_80F2108 +sub_80F2108: @ 80F2108 + push {lr} + ldr r0, _080F2134 + ldr r3, [r0] + ldr r0, _080F2138 + adds r1, r3, r0 + ldrb r2, [r1] + cmp r2, 0 + bne _080F2130 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _080F213C + adds r0, r3, r1 + strh r2, [r0] + ldr r1, _080F2140 + movs r0, 0x90 + strh r0, [r1] + ldr r0, _080F2144 + strh r2, [r0] + bl sub_80F2098 +_080F2130: + pop {r0} + bx r0 + .align 2, 0 +_080F2134: .4byte gUnknown_083DFEC4 +_080F2138: .4byte 0x00000311 +_080F213C: .4byte 0x00000312 +_080F2140: .4byte REG_BLDCNT +_080F2144: .4byte REG_BLDY + thumb_func_end sub_80F2108 + + thumb_func_start sub_80F2148 +sub_80F2148: @ 80F2148 + push {lr} + ldr r0, _080F2164 + ldr r0, [r0] + ldr r1, _080F2168 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, _080F216C + strh r1, [r0] + bl sub_80F20F4 + pop {r0} + bx r0 + .align 2, 0 +_080F2164: .4byte gUnknown_083DFEC4 +_080F2168: .4byte 0x00000311 +_080F216C: .4byte REG_BLDCNT + thumb_func_end sub_80F2148 + + thumb_func_start sub_80F2170 +sub_80F2170: @ 80F2170 + push {r4-r7,lr} + ldr r7, _080F21E4 + ldr r4, [r7] + ldr r1, _080F21E8 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F21DC + bl sub_80F20F4 + movs r3, 0 + ldr r2, _080F21EC + adds r5, r4, r2 + movs r0, 0xC8 + lsls r0, 2 + adds r4, r0 + movs r1, 0xD + negs r1, r1 + mov r12, r1 + movs r6, 0x4 +_080F2198: + lsls r1, r3, 2 + movs r0, 0 + ldrsb r0, [r5, r0] + lsls r0, 4 + adds r1, r0 + adds r1, r4, r1 + ldr r2, [r1] + ldrb r1, [r2, 0x1] + mov r0, r12 + ands r0, r1 + orrs r0, r6 + strb r0, [r2, 0x1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080F2198 + ldr r1, [r7] + ldr r0, _080F21E8 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0x2 + strb r0, [r2] + ldr r2, _080F21F0 + adds r1, r2 + strh r3, [r1] + ldr r1, _080F21F4 + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x10 + strh r0, [r1] +_080F21DC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F21E4: .4byte gUnknown_083DFEC4 +_080F21E8: .4byte 0x00000311 +_080F21EC: .4byte 0x00006dad +_080F21F0: .4byte 0x00000312 +_080F21F4: .4byte REG_BLDCNT + thumb_func_end sub_80F2170 + + thumb_func_start sub_80F21F8 +sub_80F21F8: @ 80F21F8 + ldr r0, _080F220C + ldr r0, [r0] + ldr r1, _080F2210 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, _080F2214 + strh r1, [r0] + bx lr + .align 2, 0 +_080F220C: .4byte gUnknown_083DFEC4 +_080F2210: .4byte 0x00000311 +_080F2214: .4byte REG_BLDCNT + thumb_func_end sub_80F21F8 + + thumb_func_start sub_80F2218 +sub_80F2218: @ 80F2218 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x20] + subs r0, 0x8 + strh r0, [r2, 0x20] + lsls r0, 16 + asrs r0, 16 + ldrh r3, [r2, 0x32] + movs r4, 0x32 + ldrsh r1, [r2, r4] + cmp r0, r1 + bgt _080F2236 + strh r3, [r2, 0x20] + ldr r0, _080F223C + str r0, [r2, 0x1C] +_080F2236: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F223C: .4byte sub_80F22B0 + thumb_func_end sub_80F2218 + + thumb_func_start sub_80F2240 +sub_80F2240: @ 80F2240 + push {r4,lr} + adds r2, r0, 0 + ldr r0, _080F2288 + ldr r0, [r0] + ldr r1, _080F228C + adds r0, r1 + movs r3, 0x2E + ldrsh r1, [r2, r3] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080F2290 + ldrh r3, [r2, 0x38] + movs r4, 0x38 + ldrsh r0, [r2, r4] + cmp r0, 0 + beq _080F2270 + ldrh r0, [r2, 0x36] + ldrh r4, [r2, 0x20] + adds r1, r0, r4 + strh r1, [r2, 0x20] + subs r0, r3, r0 + strh r0, [r2, 0x38] +_080F2270: + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080F22A8 + adds r0, r2, 0 + bl sub_80F240C + b _080F22A8 + .align 2, 0 +_080F2288: .4byte gUnknown_083DFEC4 +_080F228C: .4byte 0x00006dad +_080F2290: + ldrh r0, [r2, 0x20] + adds r0, 0x8 + strh r0, [r2, 0x20] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x34 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _080F22A8 + adds r0, r2, 0 + bl sub_80F240C +_080F22A8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F2240 + + thumb_func_start sub_80F22B0 +sub_80F22B0: @ 80F22B0 + push {lr} + adds r2, r0, 0 + ldr r0, _080F22DC + ldr r0, [r0] + ldr r1, _080F22E0 + adds r0, r1 + movs r3, 0x2E + ldrsh r1, [r2, r3] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080F22E4 + ldrh r3, [r2, 0x24] + movs r0, 0x24 + ldrsh r1, [r2, r0] + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + ble _080F22F2 + subs r0, r3, 0x4 + b _080F22F0 + .align 2, 0 +_080F22DC: .4byte gUnknown_083DFEC4 +_080F22E0: .4byte 0x00006dad +_080F22E4: + ldrh r1, [r2, 0x24] + movs r3, 0x24 + ldrsh r0, [r2, r3] + cmp r0, 0 + bge _080F22F2 + adds r0, r1, 0x4 +_080F22F0: + strh r0, [r2, 0x24] +_080F22F2: + pop {r0} + bx r0 + thumb_func_end sub_80F22B0 + + thumb_func_start sub_80F22F8 +sub_80F22F8: @ 80F22F8 + push {r4-r7,lr} + movs r3, 0 + ldr r0, _080F233C + ldr r1, [r0] + ldr r2, _080F2340 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r3, r0 + bge _080F2358 + movs r7, 0xC8 + lsls r7, 2 + adds r4, r1, r7 + movs r5, 0x10 + negs r5, r5 + adds r6, r0, 0 +_080F231A: + movs r1, 0 + lsls r2, r3, 4 +_080F231E: + lsls r0, r1, 2 + adds r0, r2 + adds r0, r4, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F2358 + movs r7, 0x24 + ldrsh r0, [r0, r7] + cmp r0, 0 + beq _080F2344 + cmp r0, r5 + beq _080F2344 + movs r0, 0 + b _080F235A + .align 2, 0 +_080F233C: .4byte gUnknown_083DFEC4 +_080F2340: .4byte 0x00006dae +_080F2344: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _080F231E + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r6 + blt _080F231A +_080F2358: + movs r0, 0x1 +_080F235A: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F22F8 + + thumb_func_start sub_80F2360 +sub_80F2360: @ 80F2360 + push {r4-r7,lr} + movs r4, 0 + ldr r0, _080F23A0 + ldr r2, [r0] + ldr r1, _080F23A4 + adds r0, r2, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + cmp r4, r1 + bge _080F23C0 + ldr r3, _080F23A8 + adds r0, r2, r3 + movs r6, 0 + ldrsb r6, [r0, r6] + adds r5, r1, 0 +_080F237E: + cmp r4, r6 + beq _080F23B6 + movs r1, 0 + ldr r0, _080F23A0 + ldr r0, [r0] + lsls r3, r4, 4 + movs r7, 0xC8 + lsls r7, 2 + adds r2, r0, r7 +_080F2390: + lsls r0, r1, 2 + adds r0, r3 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F23AC + movs r0, 0 + b _080F23C2 + .align 2, 0 +_080F23A0: .4byte gUnknown_083DFEC4 +_080F23A4: .4byte 0x0000030e +_080F23A8: .4byte 0x00006dad +_080F23AC: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _080F2390 +_080F23B6: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r5 + blt _080F237E +_080F23C0: + movs r0, 0x1 +_080F23C2: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F2360 + + thumb_func_start sub_80F23C8 +sub_80F23C8: @ 80F23C8 + push {lr} + movs r2, 0 + ldr r0, _080F23F4 + ldr r1, [r0] + ldr r3, _080F23F8 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r3, r0, 4 + movs r0, 0xC8 + lsls r0, 2 + adds r1, r0 +_080F23E2: + lsls r0, r2, 2 + adds r0, r3 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F23FC + movs r0, 0 + b _080F2408 + .align 2, 0 +_080F23F4: .4byte gUnknown_083DFEC4 +_080F23F8: .4byte 0x00006dad +_080F23FC: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x3 + bls _080F23E2 + movs r0, 0x1 +_080F2408: + pop {r1} + bx r1 + thumb_func_end sub_80F23C8 + + thumb_func_start sub_80F240C +sub_80F240C: @ 80F240C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080F2454 + ldr r2, [r0] + movs r0, 0x30 + ldrsh r1, [r4, r0] + lsls r1, 2 + movs r3, 0x2E + ldrsh r0, [r4, r3] + lsls r0, 4 + adds r1, r0 + movs r0, 0xC8 + lsls r0, 2 + adds r2, r0 + adds r2, r1 + movs r0, 0 + str r0, [r2] + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080F2446 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix +_080F2446: + adds r0, r4, 0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2454: .4byte gUnknown_083DFEC4 + thumb_func_end sub_80F240C + + thumb_func_start sub_80F2458 +sub_80F2458: @ 80F2458 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + beq _080F24A0 + cmp r4, 0x1 + bgt _080F246C + cmp r4, 0 + beq _080F2472 + b _080F2502 +_080F246C: + cmp r4, 0x2 + beq _080F24D0 + b _080F2502 +_080F2472: + ldr r2, _080F2498 + ldr r3, [r2] + movs r0, 0xE0 + lsls r0, 2 + adds r1, r3, r0 + movs r5, 0xE2 + lsls r5, 2 + adds r0, r3, r5 + str r0, [r1] + movs r0, 0xE1 + lsls r0, 2 + adds r1, r3, r0 + movs r0, 0xA0 + lsls r0, 5 + strh r0, [r1] + ldr r1, _080F249C + adds r0, r3, r1 + strh r4, [r0] + b _080F24F6 + .align 2, 0 +_080F2498: .4byte gUnknown_083DFEC4 +_080F249C: .4byte 0x00000386 +_080F24A0: + ldr r4, _080F24C4 + ldr r1, [r4] + movs r3, 0xE0 + lsls r3, 2 + adds r2, r1, r3 + ldr r5, _080F24C8 + adds r0, r1, r5 + str r0, [r2] + movs r0, 0xE1 + lsls r0, 2 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0xC0 + lsls r0, 4 + strh r0, [r2] + ldr r5, _080F24CC + adds r1, r5 + b _080F24F2 + .align 2, 0 +_080F24C4: .4byte gUnknown_083DFEC4 +_080F24C8: .4byte 0x00001788 +_080F24CC: .4byte 0x00000386 +_080F24D0: + ldr r4, _080F2508 + ldr r1, [r4] + movs r0, 0xE0 + lsls r0, 2 + adds r2, r1, r0 + ldr r3, _080F250C + adds r0, r1, r3 + str r0, [r2] + movs r5, 0xE1 + lsls r5, 2 + adds r2, r1, r5 + movs r3, 0 + movs r0, 0xC0 + lsls r0, 5 + strh r0, [r2] + ldr r0, _080F2510 + adds r1, r0 +_080F24F2: + strh r3, [r1] + adds r2, r4, 0 +_080F24F6: + ldr r0, [r2] + movs r1, 0xE0 + lsls r1, 2 + adds r0, r1 + bl LoadSpriteSheet +_080F2502: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F2508: .4byte gUnknown_083DFEC4 +_080F250C: .4byte 0x00002388 +_080F2510: .4byte 0x00000386 + thumb_func_end sub_80F2458 + + thumb_func_start sub_80F2514 +sub_80F2514: @ 80F2514 + push {r4,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x1 + beq _080F2558 + cmp r0, 0x1 + bgt _080F252C + cmp r0, 0 + beq _080F2532 + b _080F2586 +_080F252C: + cmp r1, 0x2 + beq _080F2568 + b _080F2586 +_080F2532: + ldr r0, _080F254C + str r0, [sp] + ldr r1, _080F2550 + mov r4, sp + ldr r0, [sp, 0x4] + ands r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpritePalette + ldr r0, _080F2554 + b _080F257A + .align 2, 0 +_080F254C: .4byte gPokenavMenuOptions1_Pal +_080F2550: .4byte 0xffff0000 +_080F2554: .4byte gPokenavMenuOptions2_Pal +_080F2558: + ldr r0, _080F2564 + str r0, [sp] + mov r1, sp + movs r0, 0 + strh r0, [r1, 0x4] + b _080F2580 + .align 2, 0 +_080F2564: .4byte gPokenavConditionMenu_Pal +_080F2568: + ldr r0, _080F2590 + str r0, [sp] + mov r4, sp + movs r0, 0 + strh r0, [r4, 0x4] + mov r0, sp + bl LoadSpritePalette + ldr r0, _080F2594 +_080F257A: + str r0, [sp] + movs r0, 0x1 + strh r0, [r4, 0x4] +_080F2580: + mov r0, sp + bl LoadSpritePalette +_080F2586: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2590: .4byte gPokenavCondition6_Pal +_080F2594: .4byte gPokenavCondition7_Pal + thumb_func_end sub_80F2514 + + thumb_func_start sub_80F2598 +sub_80F2598: @ 80F2598 + push {r4,lr} + ldr r0, _080F25F0 + ldr r0, [r0] + ldr r1, _080F25F4 + adds r4, r0, r1 + movs r0, 0 + str r0, [r4] + ldr r1, _080F25F8 + movs r0, 0x4 + ldrsb r0, [r1, r0] + lsls r0, 16 + lsrs r0, 16 + ldrb r1, [r1, 0x5] + lsls r1, 24 + asrs r1, 24 + lsls r1, 16 + lsrs r1, 16 + bl sub_8082C0C + cmp r0, 0x1 + bne _080F2618 + ldr r0, _080F25FC + bl LoadSpriteSheet + ldr r0, _080F2600 + bl LoadSpritePalette + ldr r0, _080F2604 + movs r1, 0xC + movs r2, 0x60 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080F260C + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F2608 + adds r0, r1 + str r0, [r4] + b _080F2618 + .align 2, 0 +_080F25F0: .4byte gUnknown_083DFEC4 +_080F25F4: .4byte 0x00006d9c +_080F25F8: .4byte gSaveBlock1 +_080F25FC: .4byte gSpriteSheet_PokenavBlueLight +_080F2600: .4byte gSpritePalette_PokenavBlueLight +_080F2604: .4byte gSpriteTemplate_83E4484 +_080F2608: .4byte gSprites +_080F260C: + movs r0, 0x19 + bl FreeSpriteTilesByTag + movs r0, 0x11 + bl FreeSpritePaletteByTag +_080F2618: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F2598 + + thumb_func_start sub_80F2620 +sub_80F2620: @ 80F2620 + push {r4,lr} + ldr r0, _080F264C + ldr r0, [r0] + ldr r1, _080F2650 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _080F2644 + bl DestroySprite + movs r0, 0x19 + bl FreeSpriteTilesByTag + movs r0, 0x11 + bl FreeSpritePaletteByTag + movs r0, 0 + str r0, [r4] +_080F2644: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F264C: .4byte gUnknown_083DFEC4 +_080F2650: .4byte 0x00006d9c + thumb_func_end sub_80F2620 + + thumb_func_start sub_80F2654 +sub_80F2654: @ 80F2654 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + ble _080F2682 + movs r0, 0 + strh r0, [r3, 0x2E] + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080F2682: + pop {r0} + bx r0 + thumb_func_end sub_80F2654 + + thumb_func_start sub_80F2688 +sub_80F2688: @ 80F2688 + push {lr} + ldr r0, _080F26B0 + ldr r0, [r0] + ldr r1, _080F26B4 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F26B8 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F26AA +_080F26A0: + bl sub_80F26BC + lsls r0, 24 + cmp r0, 0 + bne _080F26A0 +_080F26AA: + pop {r0} + bx r0 + .align 2, 0 +_080F26B0: .4byte gUnknown_083DFEC4 +_080F26B4: .4byte 0x00000306 +_080F26B8: .4byte 0x00006dac + thumb_func_end sub_80F2688 + + thumb_func_start sub_80F26BC +sub_80F26BC: @ 80F26BC + push {lr} + ldr r0, _080F26D8 + ldr r0, [r0] + ldr r1, _080F26DC + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x7 + bls _080F26CE + b _080F27BC +_080F26CE: + lsls r0, 2 + ldr r1, _080F26E0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F26D8: .4byte gUnknown_083DFEC4 +_080F26DC: .4byte 0x00000306 +_080F26E0: .4byte _080F26E4 + .align 2, 0 +_080F26E4: + .4byte _080F2704 + .4byte _080F271C + .4byte _080F2734 + .4byte _080F274C + .4byte _080F2764 + .4byte _080F277C + .4byte _080F2794 + .4byte _080F27B0 +_080F2704: + ldr r0, _080F2710 + ldr r1, _080F2714 + ldr r1, [r1] + ldr r2, _080F2718 + b _080F279C + .align 2, 0 +_080F2710: .4byte gPokenavMainMenu_Gfx +_080F2714: .4byte gUnknown_083DFEC4 +_080F2718: .4byte 0x00003b98 +_080F271C: + ldr r0, _080F2728 + ldr r1, _080F272C + ldr r1, [r1] + ldr r2, _080F2730 + b _080F279C + .align 2, 0 +_080F2728: .4byte gPokenavConditionMenuHeader_Gfx +_080F272C: .4byte gUnknown_083DFEC4 +_080F2730: .4byte 0x00004198 +_080F2734: + ldr r0, _080F2740 + ldr r1, _080F2744 + ldr r1, [r1] + ldr r2, _080F2748 + b _080F279C + .align 2, 0 +_080F2740: .4byte gPokenavRibbonsHeader_Gfx +_080F2744: .4byte gUnknown_083DFEC4 +_080F2748: .4byte 0x00004d98 +_080F274C: + ldr r0, _080F2758 + ldr r1, _080F275C + ldr r1, [r1] + ldr r2, _080F2760 + b _080F279C + .align 2, 0 +_080F2758: .4byte gPokenavHoennMapHeader_Gfx +_080F275C: .4byte gUnknown_083DFEC4 +_080F2760: .4byte 0x00005398 +_080F2764: + ldr r0, _080F2770 + ldr r1, _080F2774 + ldr r1, [r1] + ldr r2, _080F2778 + b _080F279C + .align 2, 0 +_080F2770: .4byte gPokenavConditionMenuOptions_Gfx +_080F2774: .4byte gUnknown_083DFEC4 +_080F2778: .4byte 0x00005f98 +_080F277C: + ldr r0, _080F2788 + ldr r1, _080F278C + ldr r1, [r1] + ldr r2, _080F2790 + b _080F279C + .align 2, 0 +_080F2788: .4byte gPokenavConditionMenuOptions2_Gfx +_080F278C: .4byte gUnknown_083DFEC4 +_080F2790: .4byte 0x00006798 +_080F2794: + ldr r0, _080F27A4 + ldr r1, _080F27A8 + ldr r1, [r1] + ldr r2, _080F27AC +_080F279C: + adds r1, r2 + bl LZ77UnCompWram + b _080F27C0 + .align 2, 0 +_080F27A4: .4byte gPokenavTrainersEyesHeader_Gfx +_080F27A8: .4byte gUnknown_083DFEC4 +_080F27AC: .4byte 0x00004798 +_080F27B0: + ldr r0, _080F27B8 + bl LoadSpritePalettes + b _080F27C0 + .align 2, 0 +_080F27B8: .4byte gUnknown_083E449C +_080F27BC: + movs r0, 0 + b _080F27D0 +_080F27C0: + ldr r0, _080F27D4 + ldr r1, [r0] + ldr r0, _080F27D8 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080F27D0: + pop {r1} + bx r1 + .align 2, 0 +_080F27D4: .4byte gUnknown_083DFEC4 +_080F27D8: .4byte 0x00000306 + thumb_func_end sub_80F26BC + + thumb_func_start sub_80F27DC +sub_80F27DC: @ 80F27DC + push {lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xB + bls _080F27EA + b _080F29A0 +_080F27EA: + lsls r0, 2 + ldr r1, _080F27F4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F27F4: .4byte _080F27F8 + .align 2, 0 +_080F27F8: + .4byte _080F2828 + .4byte _080F2858 + .4byte _080F28B8 + .4byte _080F2888 + .4byte _080F28E8 + .4byte _080F2918 + .4byte _080F2928 + .4byte _080F2978 + .4byte _080F2938 + .4byte _080F2948 + .4byte _080F2968 + .4byte _080F2958 +_080F2828: + ldr r0, _080F2848 + ldr r0, [r0] + ldr r1, _080F284C + adds r0, r1 + str r0, [sp] + ldr r1, _080F2850 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 3 + orrs r0, r1 + ldr r1, _080F2854 + ands r0, r1 + adds r1, 0x1 + b _080F2996 + .align 2, 0 +_080F2848: .4byte gUnknown_083DFEC4 +_080F284C: .4byte 0x00003b98 +_080F2850: .4byte 0xffff0000 +_080F2854: .4byte 0x0000ffff +_080F2858: + ldr r0, _080F2878 + ldr r0, [r0] + ldr r1, _080F287C + adds r0, r1 + str r0, [sp] + ldr r1, _080F2880 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 3 + orrs r0, r1 + ldr r1, _080F2884 + ands r0, r1 + adds r1, 0x1 + b _080F2996 + .align 2, 0 +_080F2878: .4byte gUnknown_083DFEC4 +_080F287C: .4byte 0x00004198 +_080F2880: .4byte 0xffff0000 +_080F2884: .4byte 0x0000ffff +_080F2888: + ldr r0, _080F28A8 + ldr r0, [r0] + ldr r1, _080F28AC + adds r0, r1 + str r0, [sp] + ldr r1, _080F28B0 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 3 + orrs r0, r1 + ldr r1, _080F28B4 + ands r0, r1 + adds r1, 0x1 + b _080F2996 + .align 2, 0 +_080F28A8: .4byte gUnknown_083DFEC4 +_080F28AC: .4byte 0x00004798 +_080F28B0: .4byte 0xffff0000 +_080F28B4: .4byte 0x0000ffff +_080F28B8: + ldr r0, _080F28D8 + ldr r0, [r0] + ldr r1, _080F28DC + adds r0, r1 + str r0, [sp] + ldr r1, _080F28E0 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 3 + orrs r0, r1 + ldr r1, _080F28E4 + ands r0, r1 + adds r1, 0x1 + b _080F2996 + .align 2, 0 +_080F28D8: .4byte gUnknown_083DFEC4 +_080F28DC: .4byte 0x00004d98 +_080F28E0: .4byte 0xffff0000 +_080F28E4: .4byte 0x0000ffff +_080F28E8: + ldr r0, _080F2908 + ldr r0, [r0] + ldr r1, _080F290C + adds r0, r1 + str r0, [sp] + ldr r1, _080F2910 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 4 + orrs r0, r1 + ldr r1, _080F2914 + ands r0, r1 + adds r1, 0x1 + b _080F2996 + .align 2, 0 +_080F2908: .4byte gUnknown_083DFEC4 +_080F290C: .4byte 0x00005398 +_080F2910: .4byte 0xffff0000 +_080F2914: .4byte 0x0000ffff +_080F2918: + ldr r0, _080F2920 + ldr r0, [r0] + ldr r1, _080F2924 + b _080F297E + .align 2, 0 +_080F2920: .4byte gUnknown_083DFEC4 +_080F2924: .4byte 0x00005f98 +_080F2928: + ldr r0, _080F2930 + ldr r0, [r0] + ldr r1, _080F2934 + b _080F297E + .align 2, 0 +_080F2930: .4byte gUnknown_083DFEC4 +_080F2934: .4byte 0x00006198 +_080F2938: + ldr r0, _080F2940 + ldr r0, [r0] + ldr r1, _080F2944 + b _080F297E + .align 2, 0 +_080F2940: .4byte gUnknown_083DFEC4 +_080F2944: .4byte 0x00006398 +_080F2948: + ldr r0, _080F2950 + ldr r0, [r0] + ldr r1, _080F2954 + b _080F297E + .align 2, 0 +_080F2950: .4byte gUnknown_083DFEC4 +_080F2954: .4byte 0x00006598 +_080F2958: + ldr r0, _080F2960 + ldr r0, [r0] + ldr r1, _080F2964 + b _080F297E + .align 2, 0 +_080F2960: .4byte gUnknown_083DFEC4 +_080F2964: .4byte 0x00006998 +_080F2968: + ldr r0, _080F2970 + ldr r0, [r0] + ldr r1, _080F2974 + b _080F297E + .align 2, 0 +_080F2970: .4byte gUnknown_083DFEC4 +_080F2974: .4byte 0x00006798 +_080F2978: + ldr r0, _080F29A8 + ldr r0, [r0] + ldr r1, _080F29AC +_080F297E: + adds r0, r1 + str r0, [sp] + ldr r1, _080F29B0 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0x80 + lsls r1, 2 + orrs r0, r1 + ldr r1, _080F29B4 + ands r0, r1 + movs r1, 0x80 + lsls r1, 10 +_080F2996: + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet +_080F29A0: + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080F29A8: .4byte gUnknown_083DFEC4 +_080F29AC: .4byte 0x00006b98 +_080F29B0: .4byte 0xffff0000 +_080F29B4: .4byte 0x0000ffff + thumb_func_end sub_80F27DC + + thumb_func_start sub_80F29B8 +sub_80F29B8: @ 80F29B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0 + mov r8, r0 + cmp r7, 0xB + bls _080F29D2 + b _080F2BA6 +_080F29D2: + lsls r0, r7, 2 + ldr r1, _080F29DC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F29DC: .4byte _080F29E0 + .align 2, 0 +_080F29E0: + .4byte _080F2A10 + .4byte _080F2A10 + .4byte _080F2A10 + .4byte _080F2A10 + .4byte _080F2A58 + .4byte _080F2A94 + .4byte _080F2A94 + .4byte _080F2A98 + .4byte _080F2A94 + .4byte _080F2A94 + .4byte _080F2A98 + .4byte _080F2A98 +_080F2A10: + ldr r3, _080F2A44 + ldr r0, _080F2A48 + ldr r2, [r0] + movs r1, 0xC3 + lsls r1, 2 + adds r0, r2, r1 + ldrh r1, [r0] + movs r0, 0x31 + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + movs r4, 0x8 + str r4, [sp] + movs r1, 0x20 + str r1, [sp, 0x4] + movs r1, 0x40 + ldr r4, _080F2A4C + adds r4, r2 + mov r9, r4 + ldr r2, _080F2A50 + mov r8, r2 + cmp r7, 0x3 + beq _080F2AC8 + ldr r4, _080F2A54 + mov r8, r4 + b _080F2AC8 + .align 2, 0 +_080F2A44: .4byte 0x0000ffa0 +_080F2A48: .4byte gUnknown_083DFEC4 +_080F2A4C: .4byte 0x00003b88 +_080F2A50: .4byte gSpriteTemplate_83E44F8 +_080F2A54: .4byte gSpriteTemplate_83E44E0 +_080F2A58: + movs r3, 0x88 + lsls r3, 1 + ldr r0, _080F2A84 + ldr r2, [r0] + movs r1, 0xC3 + lsls r1, 2 + adds r0, r2, r1 + ldrh r1, [r0] + movs r0, 0x31 + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080F2A88 + str r4, [sp] + movs r1, 0x98 + str r1, [sp, 0x4] + movs r1, 0x40 + ldr r4, _080F2A8C + mov r8, r4 + ldr r4, _080F2A90 + b _080F2AC4 + .align 2, 0 +_080F2A84: .4byte gUnknown_083DFEC4 +_080F2A88: .4byte 0x0000fff8 +_080F2A8C: .4byte gSpriteTemplate_83E44E0 +_080F2A90: .4byte 0x00003b88 +_080F2A94: + ldr r0, _080F2B40 + mov r8, r0 +_080F2A98: + mov r1, r8 + cmp r1, 0 + bne _080F2AA2 + ldr r2, _080F2B44 + mov r8, r2 +_080F2AA2: + ldr r3, _080F2B48 + ldr r0, _080F2B4C + ldr r2, [r0] + movs r4, 0xC3 + lsls r4, 2 + adds r0, r2, r4 + ldrh r1, [r0] + movs r0, 0x44 + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x8 + str r1, [sp] + movs r4, 0x10 + str r4, [sp, 0x4] + movs r1, 0x20 + ldr r4, _080F2B50 +_080F2AC4: + adds r4, r2 + mov r9, r4 +_080F2AC8: + movs r6, 0 + lsls r1, 16 + str r1, [sp, 0x10] + lsls r3, 16 + str r3, [sp, 0x8] + lsls r0, 16 + str r0, [sp, 0xC] + ldr r0, _080F2B54 + mov r10, r0 +_080F2ADA: + ldr r1, [sp, 0x10] + asrs r0, r1, 16 + adds r5, r6, 0 + muls r5, r0 + ldr r2, [sp, 0x8] + asrs r1, r2, 16 + adds r1, r5 + lsls r1, 16 + asrs r1, 16 + mov r0, r8 + ldr r3, [sp, 0xC] + asrs r2, r3, 16 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x40 + beq _080F2B9C + lsls r0, r4, 4 + adds r1, r0, r4 + lsls r1, 2 + mov r2, r10 + adds r3, r1, r2 + mov r1, sp + ldrh r1, [r1] + strh r1, [r3, 0x2E] + ldr r2, [sp, 0x4] + adds r1, r2, r5 + strh r1, [r3, 0x30] + strh r6, [r3, 0x32] + strh r7, [r3, 0x34] + adds r5, r0, 0 + cmp r7, 0x4 + bne _080F2B5C + cmp r6, 0x1 + bne _080F2B5C + ldr r0, _080F2B4C + ldr r0, [r0] + ldr r1, _080F2B58 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x2 + cmp r0, 0 + bne _080F2B36 + movs r1, 0x1 +_080F2B36: + adds r0, r3, 0 + bl StartSpriteAnim + b _080F2B6A + .align 2, 0 +_080F2B40: .4byte gSpriteTemplate_83E4530 +_080F2B44: .4byte gSpriteTemplate_83E4548 +_080F2B48: .4byte 0x0000ffa0 +_080F2B4C: .4byte gUnknown_083DFEC4 +_080F2B50: .4byte 0x00003b90 +_080F2B54: .4byte gSprites +_080F2B58: .4byte 0x00006e90 +_080F2B5C: + adds r0, r5, r4 + lsls r0, 2 + add r0, r10 + lsls r1, r6, 24 + lsrs r1, 24 + bl StartSpriteAnim +_080F2B6A: + ldr r2, _080F2BB8 + mov r12, r2 + cmp r7, 0x3 + bhi _080F2B90 + cmp r6, 0x1 + bne _080F2B90 + adds r2, r5, r4 + lsls r2, 2 + add r2, r10 + ldrb r3, [r2, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r3 + strb r0, [r2, 0x1] + ldrb r0, [r2, 0x3] + ands r1, r0 + movs r0, 0x80 + orrs r1, r0 + strb r1, [r2, 0x3] +_080F2B90: + lsls r1, r6, 2 + add r1, r9 + adds r0, r5, r4 + lsls r0, 2 + add r0, r12 + str r0, [r1] +_080F2B9C: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x1 + bls _080F2ADA +_080F2BA6: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F2BB8: .4byte gSprites + thumb_func_end sub_80F29B8 + + thumb_func_start sub_80F2BBC +sub_80F2BBC: @ 80F2BBC + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x20] + ldrh r1, [r2, 0x2E] + adds r3, r0, r1 + strh r3, [r2, 0x20] + lsls r0, 16 + asrs r4, r0, 16 + movs r0, 0x30 + ldrsh r1, [r2, r0] + cmp r4, r1 + bgt _080F2BE0 + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, r1 + bge _080F2BE8 + cmp r4, r1 + blt _080F2C08 +_080F2BE0: + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, r1 + bgt _080F2C08 +_080F2BE8: + ldrh r0, [r2, 0x30] + strh r0, [r2, 0x20] + movs r1, 0x34 + ldrsh r0, [r2, r1] + cmp r0, 0x4 + bne _080F2C04 + movs r1, 0x32 + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _080F2C04 + ldr r0, _080F2C00 + b _080F2C06 + .align 2, 0 +_080F2C00: .4byte sub_80F2C58 +_080F2C04: + ldr r0, _080F2C10 +_080F2C06: + str r0, [r2, 0x1C] +_080F2C08: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2C10: .4byte SpriteCallbackDummy + thumb_func_end sub_80F2BBC + + thumb_func_start sub_80F2C14 +sub_80F2C14: @ 80F2C14 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + ldrh r1, [r4, 0x2E] + subs r0, r1 + strh r0, [r4, 0x20] + adds r0, 0x20 + lsls r0, 16 + movs r1, 0x98 + lsls r1, 17 + cmp r0, r1 + bls _080F2C50 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080F2C4A + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bgt _080F2C44 + movs r0, 0x1 + bl FreeSpriteTilesByTag + b _080F2C4A +_080F2C44: + movs r0, 0x2 + bl FreeSpriteTilesByTag +_080F2C4A: + adds r0, r4, 0 + bl DestroySprite +_080F2C50: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F2C14 + + thumb_func_start sub_80F2C58 +sub_80F2C58: @ 80F2C58 + push {lr} + adds r2, r0, 0 + ldr r0, _080F2C78 + ldr r0, [r0] + ldr r1, _080F2C7C + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x2 + cmp r0, 0 + bne _080F2C6E + movs r1, 0x1 +_080F2C6E: + adds r0, r2, 0 + bl StartSpriteAnim + pop {r0} + bx r0 + .align 2, 0 +_080F2C78: .4byte gUnknown_083DFEC4 +_080F2C7C: .4byte 0x00006e90 + thumb_func_end sub_80F2C58 + + thumb_func_start sub_80F2C80 +sub_80F2C80: @ 80F2C80 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080F2CB0 + ldr r0, [r0] + ldr r1, _080F2CB4 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F2CB8 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F2CA8 +_080F2C9C: + adds r0, r4, 0 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080F2C9C +_080F2CA8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2CB0: .4byte gUnknown_083DFEC4 +_080F2CB4: .4byte 0x00000306 +_080F2CB8: .4byte 0x00006dac + thumb_func_end sub_80F2C80 + + thumb_func_start sub_80F2CBC +sub_80F2CBC: @ 80F2CBC + push {r4,lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080F2CD8 + ldr r0, [r0] + ldr r2, _080F2CDC + adds r4, r0, r2 + ldrh r0, [r4] + cmp r0, 0 + beq _080F2CE0 + cmp r0, 0x1 + beq _080F2CF0 + b _080F2CFC + .align 2, 0 +_080F2CD8: .4byte gUnknown_083DFEC4 +_080F2CDC: .4byte 0x00000306 +_080F2CE0: + adds r0, r1, 0 + bl sub_80F27DC + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + movs r0, 0x1 + b _080F2CFE +_080F2CF0: + adds r0, r1, 0 + bl sub_80F29B8 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080F2CFC: + movs r0, 0 +_080F2CFE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F2CBC + + thumb_func_start sub_80F2D04 +sub_80F2D04: @ 80F2D04 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080F2D3C + movs r1, 0 + ldr r0, _080F2D30 + ldr r0, [r0] + ldr r3, _080F2D34 + adds r2, r0, r3 + ldr r3, _080F2D38 +_080F2D1A: + lsls r0, r1, 2 + adds r0, r2, r0 + ldr r0, [r0] + str r3, [r0, 0x1C] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bls _080F2D1A + b _080F2D5A + .align 2, 0 +_080F2D30: .4byte gUnknown_083DFEC4 +_080F2D34: .4byte 0x00003b88 +_080F2D38: .4byte sub_80F2C14 +_080F2D3C: + movs r1, 0 + ldr r0, _080F2D60 + ldr r0, [r0] + ldr r3, _080F2D64 + adds r2, r0, r3 + ldr r3, _080F2D68 +_080F2D48: + lsls r0, r1, 2 + adds r0, r2, r0 + ldr r0, [r0] + str r3, [r0, 0x1C] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bls _080F2D48 +_080F2D5A: + pop {r0} + bx r0 + .align 2, 0 +_080F2D60: .4byte gUnknown_083DFEC4 +_080F2D64: .4byte 0x00003b90 +_080F2D68: .4byte sub_80F2C14 + thumb_func_end sub_80F2D04 + + thumb_func_start sub_80F2D6C +sub_80F2D6C: @ 80F2D6C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080F2DA4 + movs r0, 0x1 + bl FreeSpriteTilesByTag + movs r4, 0 + ldr r0, _080F2D9C + ldr r0, [r0] + ldr r1, _080F2DA0 + adds r5, r0, r1 +_080F2D86: + lsls r0, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080F2D86 + b _080F2DC8 + .align 2, 0 +_080F2D9C: .4byte gUnknown_083DFEC4 +_080F2DA0: .4byte 0x00003b88 +_080F2DA4: + movs r0, 0x2 + bl FreeSpriteTilesByTag + movs r4, 0 + ldr r0, _080F2DD0 + ldr r0, [r0] + ldr r1, _080F2DD4 + adds r5, r0, r1 +_080F2DB4: + lsls r0, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080F2DB4 +_080F2DC8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F2DD0: .4byte gUnknown_083DFEC4 +_080F2DD4: .4byte 0x00003b90 + thumb_func_end sub_80F2D6C + + thumb_func_start sub_80F2DD8 +sub_80F2DD8: @ 80F2DD8 + push {lr} + movs r0, 0x7 + movs r1, 0x7 + bl sub_80FBB3C + movs r0, 0x8 + movs r1, 0x8 + bl sub_80FBCF0 + bl sub_80FBF94 + pop {r0} + bx r0 + thumb_func_end sub_80F2DD8 + + thumb_func_start sub_80F2DF4 +sub_80F2DF4: @ 80F2DF4 + push {lr} + bl sub_80FAB10 + pop {r0} + bx r0 + thumb_func_end sub_80F2DF4 + + thumb_func_start sub_80F2E00 +sub_80F2E00: @ 80F2E00 + ldr r1, _080F2E10 + ldr r1, [r1] + ldr r2, _080F2E14 + adds r1, r2 + ldrh r1, [r1] + adds r1, 0x26 + strh r1, [r0, 0x20] + bx lr + .align 2, 0 +_080F2E10: .4byte gUnknown_083DFEC4 +_080F2E14: .4byte 0x00008766 + thumb_func_end sub_80F2E00 + + thumb_func_start sub_80F2E18 +sub_80F2E18: @ 80F2E18 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x28 + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _080F2EA8 + ldr r4, [r0] + ldr r0, _080F2EAC + adds r7, r4, r0 + ldr r1, [r7] + mov r8, r1 + cmp r1, 0 + bne _080F2EFC + ldr r0, _080F2EB0 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x20] + str r1, [sp, 0x24] + mov r1, sp + ldr r0, _080F2EB4 + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + ldr r0, _080F2EB8 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + lsls r0, r3, 13 + ldr r1, _080F2EBC + adds r0, r1 + adds r0, r4, r0 + str r0, [sp, 0x20] + lsls r0, r3, 7 + adds r0, r4, r0 + str r0, [sp, 0x18] + add r0, sp, 0x18 + bl LoadSpritePalette + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080F2EC0 + adds r5, r4, r2 + strh r0, [r5] + add r0, sp, 0x20 + bl LoadSpriteSheet + ldr r1, _080F2EC4 + adds r6, r4, r1 + strh r0, [r6] + mov r0, sp + movs r1, 0x26 + movs r2, 0x68 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _080F2EC8 + movs r0, 0x6 + bl FreeSpriteTilesByTag + movs r0, 0x6 + bl FreeSpritePaletteByTag + mov r2, r8 + str r2, [r7] + b _080F2F26 + .align 2, 0 +_080F2EA8: .4byte gUnknown_083DFEC4 +_080F2EAC: .4byte 0x00008768 +_080F2EB0: .4byte gUnknown_083E4568 +_080F2EB4: .4byte gSpriteTemplate_83E4570 +_080F2EB8: .4byte gUnknown_083E4588 +_080F2EBC: .4byte 0x0000d1e4 +_080F2EC0: .4byte 0x0000d1dc +_080F2EC4: .4byte 0x0000d1de +_080F2EC8: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F2EF0 + adds r0, r1 + str r0, [r7] + ldr r0, _080F2EF4 + adds r1, r4, r0 + ldrh r0, [r6] + lsls r0, 5 + ldr r2, _080F2EF8 + adds r0, r2 + str r0, [r1] + ldrh r0, [r5] + lsls r0, 4 + movs r6, 0x80 + lsls r6, 1 + adds r0, r6 + strh r0, [r5] + b _080F2F26 + .align 2, 0 +_080F2EF0: .4byte gSprites +_080F2EF4: .4byte 0x0000d1e0 +_080F2EF8: .4byte 0x06010000 +_080F2EFC: + lsls r0, r3, 13 + ldr r1, _080F2F34 + adds r0, r1 + adds r0, r4, r0 + ldr r2, _080F2F38 + adds r1, r4, r2 + ldr r2, [r1] + ldr r1, _080F2F3C + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _080F2F40 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + lsls r0, r3, 7 + adds r0, r4, r0 + ldr r5, _080F2F44 + adds r1, r4, r5 + ldrh r1, [r1] + movs r2, 0x20 + bl LoadPalette +_080F2F26: + add sp, 0x28 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F2F34: .4byte 0x0000d1e4 +_080F2F38: .4byte 0x0000d1e0 +_080F2F3C: .4byte 0x040000d4 +_080F2F40: .4byte 0x80000400 +_080F2F44: .4byte 0x0000d1dc + thumb_func_end sub_80F2E18 + + thumb_func_start sub_80F2F48 +sub_80F2F48: @ 80F2F48 + push {r4,lr} + ldr r0, _080F2F74 + ldr r0, [r0] + ldr r1, _080F2F78 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _080F2F6C + bl DestroySprite + movs r0, 0x6 + bl FreeSpriteTilesByTag + movs r0, 0x6 + bl FreeSpritePaletteByTag + movs r0, 0 + str r0, [r4] +_080F2F6C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2F74: .4byte gUnknown_083DFEC4 +_080F2F78: .4byte 0x00008768 + thumb_func_end sub_80F2F48 + + thumb_func_start sub_80F2F7C +sub_80F2F7C: @ 80F2F7C + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80F2E18 + ldr r0, _080F2FA0 + ldr r0, [r0] + ldr r1, _080F2FA4 + adds r2, r0, r1 + ldr r1, _080F2FA8 + adds r0, r1 + ldr r1, [r0] + str r1, [r2] + ldr r0, _080F2FAC + str r0, [r1, 0x1C] + pop {r0} + bx r0 + .align 2, 0 +_080F2FA0: .4byte gUnknown_083DFEC4 +_080F2FA4: .4byte 0x0000ced0 +_080F2FA8: .4byte 0x00008768 +_080F2FAC: .4byte sub_80F2FEC + thumb_func_end sub_80F2F7C + + thumb_func_start sub_80F2FB0 +sub_80F2FB0: @ 80F2FB0 + push {r4,r5,lr} + ldr r0, _080F2FE0 + ldr r5, [r0] + ldr r0, _080F2FE4 + adds r4, r5, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F2FDA + bl DestroySprite + movs r0, 0x6 + bl FreeSpriteTilesByTag + movs r0, 0x6 + bl FreeSpritePaletteByTag + movs r1, 0 + str r1, [r4] + ldr r2, _080F2FE8 + adds r0, r5, r2 + str r1, [r0] +_080F2FDA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F2FE0: .4byte gUnknown_083DFEC4 +_080F2FE4: .4byte 0x0000ced0 +_080F2FE8: .4byte 0x00008768 + thumb_func_end sub_80F2FB0 + + thumb_func_start sub_80F2FEC +sub_80F2FEC: @ 80F2FEC + ldr r1, _080F3000 + ldr r1, [r1] + ldr r2, _080F3004 + adds r1, r2 + ldrh r1, [r1] + adds r1, 0x28 + strh r1, [r0, 0x20] + movs r1, 0x68 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_080F3000: .4byte gUnknown_083DFEC4 +_080F3004: .4byte 0x0000d15a + thumb_func_end sub_80F2FEC + + thumb_func_start sub_80F3008 +sub_80F3008: @ 80F3008 + push {r4,r5,lr} + sub sp, 0x20 + lsls r0, 24 + lsrs r2, r0, 24 + mov r1, sp + ldr r0, _080F3060 + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldr r0, _080F3064 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + cmp r2, 0x2 + bgt _080F3032 + cmp r2, 0x1 + blt _080F3032 + ldr r0, _080F3068 + str r0, [sp, 0x18] +_080F3032: + mov r0, sp + bl LoadSpriteSheets + add r0, sp, 0x18 + bl LoadSpritePalette + ldr r0, _080F306C + movs r1, 0x5F + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _080F3078 + ldr r0, _080F3070 + ldr r0, [r0] + ldr r1, _080F3074 + adds r0, r1 + movs r1, 0 + str r1, [r0] + b _080F3120 + .align 2, 0 +_080F3060: .4byte gUnknown_083E4590 +_080F3064: .4byte gUnknown_083E45A8 +_080F3068: .4byte gUnknown_08E9F988 +_080F306C: .4byte gSpriteTemplate_83E45B8 +_080F3070: .4byte gUnknown_083DFEC4 +_080F3074: .4byte 0x000087cc +_080F3078: + ldr r0, _080F30F4 + ldr r2, [r0] + ldr r3, _080F30F8 + adds r2, r3 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F30FC + adds r0, r1 + str r0, [r2] + movs r4, 0 + movs r5, 0 +_080F3090: + lsls r2, r4, 7 + adds r2, 0x8 + lsls r2, 16 + asrs r2, 16 + ldr r0, _080F3100 + movs r1, 0xA8 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080F3108 + ldr r0, _080F30F4 + ldr r2, [r0] + lsls r0, r4, 2 + ldr r3, _080F3104 + adds r2, r3 + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F30FC + adds r3, r0, r1 + str r3, [r2] + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + strh r5, [r3, 0x2E] + strh r5, [r3, 0x30] + movs r0, 0x1 + cmp r4, 0 + bne _080F30DE + movs r1, 0x1 + negs r1, r1 + adds r0, r1, 0 +_080F30DE: + strh r0, [r3, 0x32] + strh r4, [r3, 0x34] + movs r0, 0x1 + strh r0, [r3, 0x36] + lsls r1, r4, 24 + lsrs r1, 24 + adds r0, r3, 0 + bl StartSpriteAnim + b _080F3116 + .align 2, 0 +_080F30F4: .4byte gUnknown_083DFEC4 +_080F30F8: .4byte 0x000087cc +_080F30FC: .4byte gSprites +_080F3100: .4byte gSpriteTemplate_83E45F0 +_080F3104: .4byte 0x000087d0 +_080F3108: + ldr r0, _080F3128 + ldr r0, [r0] + lsls r1, r4, 2 + ldr r2, _080F312C + adds r0, r2 + adds r0, r1 + str r5, [r0] +_080F3116: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080F3090 +_080F3120: + add sp, 0x20 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F3128: .4byte gUnknown_083DFEC4 +_080F312C: .4byte 0x000087d0 + thumb_func_end sub_80F3008 + + thumb_func_start sub_80F3130 +sub_80F3130: @ 80F3130 + push {r4-r6,lr} + ldr r0, _080F3184 + ldr r6, [r0] + ldr r0, _080F3188 + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F3154 + bl DestroySprite + movs r0, 0x9 + bl FreeSpriteTilesByTag + movs r0, 0x9 + bl FreeSpritePaletteByTag + movs r0, 0 + str r0, [r4] +_080F3154: + movs r5, 0 + ldr r0, _080F318C + adds r6, r0 +_080F315A: + lsls r0, r5, 2 + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F316C + bl DestroySprite + movs r0, 0 + str r0, [r4] +_080F316C: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080F315A + movs r0, 0xA + bl FreeSpriteTilesByTag + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F3184: .4byte gUnknown_083DFEC4 +_080F3188: .4byte 0x000087cc +_080F318C: .4byte 0x000087d0 + thumb_func_end sub_80F3130 + + thumb_func_start sub_80F3190 +sub_80F3190: @ 80F3190 + ldr r1, _080F31A4 + ldr r1, [r1] + ldr r2, _080F31A8 + adds r1, r2 + movs r2, 0 + ldrsh r1, [r1, r2] + lsls r1, 4 + adds r1, 0x10 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_080F31A4: .4byte gUnknown_083DFEC4 +_080F31A8: .4byte 0x0000876c + thumb_func_end sub_80F3190 + + thumb_func_start sub_80F31AC +sub_80F31AC: @ 80F31AC + push {r4,r5,lr} + adds r3, r0, 0 + ldr r0, _080F31E8 + ldr r1, [r0] + ldr r2, _080F31EC + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080F325C + movs r4, 0x36 + ldrsh r0, [r3, r4] + cmp r0, 0 + beq _080F3226 + movs r5, 0x34 + ldrsh r0, [r3, r5] + cmp r0, 0 + bne _080F31F4 + movs r2, 0 + ldr r4, _080F31F0 + adds r0, r1, r4 + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r0, 0 + bne _080F31DE + movs r2, 0x1 +_080F31DE: + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + lsls r2, 2 + b _080F3214 + .align 2, 0 +_080F31E8: .4byte gUnknown_083DFEC4 +_080F31EC: .4byte 0x000087c9 +_080F31F0: .4byte 0x00008770 +_080F31F4: + movs r4, 0 + ldr r2, _080F3250 + adds r0, r1, r2 + ldr r5, _080F3254 + adds r1, r5 + movs r5, 0 + ldrsh r2, [r0, r5] + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r2, r0 + bne _080F320C + movs r4, 0x1 +_080F320C: + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + lsls r2, r4, 2 +_080F3214: + ldrb r1, [r0] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + orrs r0, r2 + mov r1, r12 + strb r0, [r1] + movs r0, 0 + strh r0, [r3, 0x36] +_080F3226: + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + movs r1, 0 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080F325C + strh r1, [r3, 0x2E] + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bgt _080F3258 + ldrh r0, [r3, 0x32] + ldrh r2, [r3, 0x26] + adds r0, r2 + strh r0, [r3, 0x26] + b _080F325C + .align 2, 0 +_080F3250: .4byte 0x00008772 +_080F3254: .4byte 0x00008774 +_080F3258: + strh r1, [r3, 0x30] + strh r1, [r3, 0x26] +_080F325C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80F31AC + + thumb_func_start sub_80F3264 +sub_80F3264: @ 80F3264 + push {lr} + movs r1, 0 + ldr r0, _080F328C + ldr r0, [r0] + ldr r3, _080F3290 + adds r2, r0, r3 + movs r3, 0x1 +_080F3272: + lsls r0, r1, 2 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F327E + strh r3, [r0, 0x36] +_080F327E: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bls _080F3272 + pop {r0} + bx r0 + .align 2, 0 +_080F328C: .4byte gUnknown_083DFEC4 +_080F3290: .4byte 0x000087d0 + thumb_func_end sub_80F3264 + + thumb_func_start sub_80F3294 +sub_80F3294: @ 80F3294 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080F32F4 + ldr r4, [r0] + ldr r1, _080F32F8 + adds r0, r4, r1 + ldr r2, [r0] + adds r2, 0x3E + movs r0, 0x1 + adds r1, r6, 0 + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r5, 0x5 + negs r5, r5 + adds r0, r5, 0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r2, _080F32FC + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080F331A + cmp r6, 0x1 + bne _080F3308 + ldr r1, _080F3300 + adds r0, r4, r1 + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r5, 0 + ands r0, r2 + movs r3, 0x4 + orrs r0, r3 + strb r0, [r1] + ldr r2, _080F3304 + adds r0, r4, r2 + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r5, 0 + ands r0, r2 + orrs r0, r3 + strb r0, [r1] + b _080F331A + .align 2, 0 +_080F32F4: .4byte gUnknown_083DFEC4 +_080F32F8: .4byte 0x000087cc +_080F32FC: .4byte 0x000087c9 +_080F3300: .4byte 0x000087d0 +_080F3304: .4byte 0x000087d4 +_080F3308: + ldr r1, _080F3320 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + strh r1, [r0, 0x36] + ldr r2, _080F3324 + adds r0, r4, r2 + ldr r0, [r0] + strh r1, [r0, 0x36] +_080F331A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F3320: .4byte 0x000087d0 +_080F3324: .4byte 0x000087d4 + thumb_func_end sub_80F3294 + + thumb_func_start sub_80F3328 +sub_80F3328: @ 80F3328 + push {lr} + adds r2, r0, 0 + ldr r0, _080F334C + ldr r0, [r0] + ldr r1, _080F3350 + adds r0, r1 + movs r3, 0x2E + ldrsh r1, [r2, r3] + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r1, r0 + bne _080F3354 + adds r0, r2, 0 + movs r1, 0 + bl StartSpriteAnim + b _080F335C + .align 2, 0 +_080F334C: .4byte gUnknown_083DFEC4 +_080F3350: .4byte 0x000087dc +_080F3354: + adds r0, r2, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080F335C: + pop {r0} + bx r0 + thumb_func_end sub_80F3328 + + thumb_func_start sub_80F3360 +sub_80F3360: @ 80F3360 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080F3384 + ldr r0, [r0] + ldr r2, _080F3388 + adds r1, r0, r2 + movs r2, 0 + ldrsh r1, [r1, r2] + ldr r2, _080F338C + adds r0, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + subs r0, 0x1 + cmp r1, r0 + bne _080F3390 + movs r0, 0x4 + b _080F3392 + .align 2, 0 +_080F3384: .4byte gUnknown_083DFEC4 +_080F3388: .4byte 0x000087dc +_080F338C: .4byte 0x000087da +_080F3390: + movs r0, 0x5 +_080F3392: + bl IndexOfSpritePaletteTag + lsls r0, 4 + ldrb r2, [r4, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F3360 + + thumb_func_start sub_80F33A8 +sub_80F33A8: @ 80F33A8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x50 + mov r1, sp + ldr r0, _080F3440 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + ldm r0!, {r3,r4} + stm r1!, {r3,r4} + add r4, sp, 0x20 + adds r1, r4, 0 + ldr r0, _080F3444 + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + ldm r0!, {r3,r5,r6} + stm r1!, {r3,r5,r6} + add r5, sp, 0x38 + adds r1, r5, 0 + ldr r0, _080F3448 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + mov r0, sp + bl LoadSpriteSheets + adds r0, r4, 0 + bl LoadSpritePalettes + movs r6, 0 + ldr r2, _080F344C + ldr r1, [r2] + ldr r3, _080F3450 + adds r0, r1, r3 + movs r4, 0 + ldrsh r0, [r0, r4] + subs r0, 0x1 + adds r7, r5, 0 + cmp r6, r0 + bge _080F347A + adds r5, r2, 0 + adds r0, r3, 0 + adds r0, r1 + mov r8, r0 +_080F3406: + lsls r4, r6, 2 + adds r2, r4, r6 + lsls r2, 18 + movs r1, 0x80 + lsls r1, 12 + adds r2, r1 + asrs r2, 16 + adds r0, r7, 0 + movs r1, 0xE2 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F345C + ldr r0, [r5] + ldr r2, _080F3454 + adds r0, r2 + adds r0, r4 + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + ldr r2, _080F3458 + adds r1, r2 + str r1, [r0] + strh r6, [r1, 0x2E] + b _080F3468 + .align 2, 0 +_080F3440: .4byte gUnknown_083E4628 +_080F3444: .4byte gUnknown_083E4648 +_080F3448: .4byte gSpriteTemplate_83E4660 +_080F344C: .4byte gUnknown_083DFEC4 +_080F3450: .4byte 0x000087da +_080F3454: .4byte 0x000087e4 +_080F3458: .4byte gSprites +_080F345C: + ldr r0, [r5] + ldr r3, _080F34C8 + adds r0, r3 + adds r0, r4 + movs r1, 0 + str r1, [r0] +_080F3468: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + mov r4, r8 + movs r1, 0 + ldrsh r0, [r4, r1] + subs r0, 0x1 + cmp r6, r0 + blt _080F3406 +_080F347A: + movs r0, 0x4 + strh r0, [r7] + ldr r0, _080F34CC + str r0, [r7, 0x14] + cmp r6, 0x5 + bhi _080F34EE + ldr r5, _080F34D0 +_080F3488: + lsls r4, r6, 2 + adds r2, r4, r6 + lsls r2, 18 + movs r3, 0x80 + lsls r3, 12 + adds r2, r3 + asrs r2, 16 + adds r0, r7, 0 + movs r1, 0xE6 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F34D8 + ldr r2, [r5] + ldr r0, _080F34C8 + adds r2, r0 + adds r2, r4 + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + ldr r0, _080F34D4 + adds r1, r0 + str r1, [r2] + ldrb r2, [r1, 0x3] + movs r0, 0x3F + ands r0, r2 + strb r0, [r1, 0x3] + b _080F34E4 + .align 2, 0 +_080F34C8: .4byte 0x000087e4 +_080F34CC: .4byte SpriteCallbackDummy +_080F34D0: .4byte gUnknown_083DFEC4 +_080F34D4: .4byte gSprites +_080F34D8: + ldr r0, [r5] + ldr r1, _080F3548 + adds r0, r1 + adds r0, r4 + movs r1, 0 + str r1, [r0] +_080F34E4: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _080F3488 +_080F34EE: + movs r0, 0x5 + strh r0, [r7] + ldr r0, _080F354C + str r0, [r7, 0x14] + lsls r5, r6, 2 + adds r2, r5, r6 + lsls r2, 18 + movs r3, 0x80 + lsls r3, 12 + adds r2, r3 + asrs r2, 16 + adds r0, r7, 0 + movs r1, 0xDE + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F3558 + ldr r0, _080F3550 + ldr r4, [r0] + ldr r6, _080F3548 + adds r4, r6 + adds r4, r5 + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + ldr r0, _080F3554 + adds r1, r0 + str r1, [r4] + ldrb r3, [r1, 0x1] + movs r2, 0x3F + adds r0, r2, 0 + ands r0, r3 + movs r3, 0x40 + orrs r0, r3 + strb r0, [r1, 0x1] + ldr r1, [r4] + ldrb r0, [r1, 0x3] + ands r2, r0 + movs r0, 0x80 + orrs r2, r0 + strb r2, [r1, 0x3] + b _080F3566 + .align 2, 0 +_080F3548: .4byte 0x000087e4 +_080F354C: .4byte sub_80F3360 +_080F3550: .4byte gUnknown_083DFEC4 +_080F3554: .4byte gSprites +_080F3558: + ldr r0, _080F3574 + ldr r0, [r0] + ldr r1, _080F3578 + adds r0, r1 + adds r0, r5 + movs r1, 0 + str r1, [r0] +_080F3566: + add sp, 0x50 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F3574: .4byte gUnknown_083DFEC4 +_080F3578: .4byte 0x000087e4 + thumb_func_end sub_80F33A8 + + thumb_func_start sub_80F357C +sub_80F357C: @ 80F357C + push {r4-r6,lr} + movs r5, 0 + ldr r0, _080F35AC + ldr r0, [r0] + ldr r1, _080F35B0 + adds r6, r0, r1 +_080F3588: + lsls r0, r5, 2 + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F359A + bl DestroySprite + movs r0, 0 + str r0, [r4] +_080F359A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x6 + bls _080F3588 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F35AC: .4byte gUnknown_083DFEC4 +_080F35B0: .4byte 0x000087e4 + thumb_func_end sub_80F357C + + thumb_func_start sub_80F35B4 +sub_80F35B4: @ 80F35B4 + push {r4,lr} + ldr r0, _080F35FC + ldr r4, [r0] + ldr r1, _080F3600 + adds r0, r4, r1 + movs r1, 0x1C + strh r1, [r0] + ldr r1, _080F3604 + adds r2, r4, r1 + movs r1, 0x13 + strh r1, [r2] + bl sub_80F727C + bl sub_80F7404 + ldr r2, _080F3608 + movs r0, 0x1B + movs r1, 0x15 + bl sub_80F7920 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + movs r1, 0xC0 + strh r1, [r0, 0x20] + movs r1, 0x20 + strh r1, [r0, 0x22] + ldr r1, _080F360C + str r1, [r0, 0x1C] + ldr r1, _080F3610 + adds r4, r1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F35FC: .4byte gUnknown_083DFEC4 +_080F3600: .4byte 0x000076b0 +_080F3604: .4byte 0x000076b2 +_080F3608: .4byte gUnknown_083E4678 +_080F360C: .4byte sub_80F363C +_080F3610: .4byte 0x000076ac + thumb_func_end sub_80F35B4 + + thumb_func_start sub_80F3614 +sub_80F3614: @ 80F3614 + push {lr} + ldr r0, _080F3634 + ldr r0, [r0] + ldr r1, _080F3638 + adds r0, r1 + ldr r0, [r0] + bl DestroySprite + movs r0, 0x1B + bl FreeSpriteTilesByTag + movs r0, 0x15 + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .align 2, 0 +_080F3634: .4byte gUnknown_083DFEC4 +_080F3638: .4byte 0x000076ac + thumb_func_end sub_80F3614 + + thumb_func_start sub_80F363C +sub_80F363C: @ 80F363C + push {lr} + ldr r1, _080F365C + ldr r1, [r1] + ldr r3, _080F3660 + adds r2, r1, r3 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + ldr r3, _080F3664 + adds r1, r3 + adds r1, r2 + ldrb r1, [r1] + bl StartSpriteAnim + pop {r0} + bx r0 + .align 2, 0 +_080F365C: .4byte gUnknown_083DFEC4 +_080F3660: .4byte 0x00008fe9 +_080F3664: .4byte 0x00008934 + thumb_func_end sub_80F363C + + thumb_func_start sub_80F3668 +sub_80F3668: @ 80F3668 + push {lr} + ldr r0, _080F368C + ldr r0, [r0] + ldr r2, _080F3690 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldr r2, _080F3694 + adds r0, r2 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0xB0 + movs r2, 0x20 + bl sub_80F7418 + pop {r0} + bx r0 + .align 2, 0 +_080F368C: .4byte gUnknown_083DFEC4 +_080F3690: .4byte 0x00008fe9 +_080F3694: .4byte 0x00008934 + thumb_func_end sub_80F3668 + + thumb_func_start sub_80F3698 +sub_80F3698: @ 80F3698 + push {r4,lr} + ldr r0, _080F36DC + ldr r3, [r0] + ldr r1, _080F36E0 + adds r0, r3, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r1, 2 + ldr r4, _080F36E4 + adds r1, r4 + adds r1, r3, r1 + ldr r2, _080F36E8 + adds r0, r3, r2 + movs r2, 0 + ldrsb r2, [r0, r2] + subs r4, 0x8 + adds r0, r3, r4 + adds r0, r2 + ldr r2, _080F36EC + adds r3, r2 + ldrb r2, [r3] + strb r2, [r0] + ldrb r0, [r1, 0x1] + ldr r1, [r1] + lsls r1, 11 + lsrs r1, 27 + ldrb r2, [r3] + bl sub_80F4548 + bl sub_80F7470 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F36DC: .4byte gUnknown_083DFEC4 +_080F36E0: .4byte 0x000087dc +_080F36E4: .4byte 0x0000893c +_080F36E8: .4byte 0x00008fe9 +_080F36EC: .4byte 0x000076b4 + thumb_func_end sub_80F3698 + + thumb_func_start sub_80F36F0 +sub_80F36F0: @ 80F36F0 + push {lr} + ldr r0, _080F3718 + ldr r0, [r0] + ldr r1, _080F371C + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F3720 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F3712 +_080F3708: + bl sub_80F3724 + lsls r0, 24 + cmp r0, 0 + bne _080F3708 +_080F3712: + pop {r0} + bx r0 + .align 2, 0 +_080F3718: .4byte gUnknown_083DFEC4 +_080F371C: .4byte 0x00000306 +_080F3720: .4byte 0x00006dac + thumb_func_end sub_80F36F0 + + thumb_func_start sub_80F3724 +sub_80F3724: @ 80F3724 + push {r4,lr} + ldr r0, _080F3740 + ldr r1, [r0] + ldr r0, _080F3744 + adds r4, r1, r0 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080F3764 + cmp r0, 0x1 + bgt _080F3748 + cmp r0, 0 + beq _080F374E + b _080F377A + .align 2, 0 +_080F3740: .4byte gUnknown_083DFEC4 +_080F3744: .4byte 0x00000306 +_080F3748: + cmp r0, 0x2 + beq _080F376E + b _080F377A +_080F374E: + ldr r0, _080F375C + ldr r2, _080F3760 + adds r1, r2 + bl LZ77UnCompWram + b _080F377E + .align 2, 0 +_080F375C: .4byte gUnknown_083E3D00 +_080F3760: .4byte 0x0000984c +_080F3764: + bl sub_80F379C + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080F376E: + bl sub_80F37D0 + lsls r0, 24 + cmp r0, 0 + beq _080F377E + b _080F378C +_080F377A: + movs r0, 0 + b _080F378E +_080F377E: + ldr r0, _080F3794 + ldr r1, [r0] + ldr r0, _080F3798 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F378C: + movs r0, 0x1 +_080F378E: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F3794: .4byte gUnknown_083DFEC4 +_080F3798: .4byte 0x00000306 + thumb_func_end sub_80F3724 + + thumb_func_start sub_80F379C +sub_80F379C: @ 80F379C + push {lr} + ldr r0, _080F37C4 + ldr r0, [r0] + ldr r1, _080F37C8 + adds r2, r0, r1 + movs r1, 0 + strb r1, [r2] + ldr r1, _080F37CC + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F37BE +_080F37B4: + bl sub_80F37D0 + lsls r0, 24 + cmp r0, 0 + bne _080F37B4 +_080F37BE: + pop {r0} + bx r0 + .align 2, 0 +_080F37C4: .4byte gUnknown_083DFEC4 +_080F37C8: .4byte 0x0000bc93 +_080F37CC: .4byte 0x00006dac + thumb_func_end sub_80F379C + + thumb_func_start sub_80F37D0 +sub_80F37D0: @ 80F37D0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _080F3898 + ldr r1, [r0] + ldr r2, _080F389C + adds r1, r2 + ldrb r1, [r1] + adds r2, r0, 0 + cmp r1, 0xB + bhi _080F38A8 + movs r3, 0 + mov r8, r3 + movs r7, 0xF + mov r9, r7 +_080F37F0: + ldr r2, [r2] + ldr r1, _080F389C + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, 8 + ldr r3, _080F38A0 + adds r0, r3 + adds r4, r2, r0 + lsls r1, 9 + ldr r7, _080F38A4 + adds r1, r7 + adds r5, r2, r1 + movs r6, 0 +_080F380A: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x10 + bl CpuFastSet + adds r5, 0x40 + adds r4, 0x20 + movs r1, 0 + adds r6, 0x1 + mov r12, r6 +_080F381E: + movs r0, 0 + adds r6, r1, 0x1 +_080F3822: + adds r4, 0x4 + movs r2, 0 + adds r3, r0, 0x1 +_080F3828: + subs r4, 0x1 + ldrb r0, [r4] + lsls r1, r0, 4 + lsrs r0, 4 + mov r7, r9 + ands r0, r7 + orrs r1, r0 + strb r1, [r5] + adds r5, 0x1 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080F3828 + adds r4, 0x4 + lsls r0, r3, 24 + lsrs r0, 24 + cmp r0, 0x7 + bls _080F3822 + subs r4, 0x40 + lsls r0, r6, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + bls _080F381E + adds r4, 0x60 + mov r1, r12 + lsls r0, r1, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bls _080F380A + ldr r2, _080F3898 + ldr r3, [r2] + ldr r7, _080F389C + adds r1, r3, r7 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xB + bhi _080F38A8 + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0x1 + bls _080F37F0 + adds r1, r7, 0 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0xB + bhi _080F38A8 + movs r0, 0x1 + b _080F38AA + .align 2, 0 +_080F3898: .4byte gUnknown_083DFEC4 +_080F389C: .4byte 0x0000bc93 +_080F38A0: .4byte 0x0000984c +_080F38A4: .4byte 0x0000a44c +_080F38A8: + movs r0, 0 +_080F38AA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F37D0 + + thumb_func_start sub_80F38B8 +sub_80F38B8: @ 80F38B8 + push {lr} + ldr r0, _080F38E0 + ldr r0, [r0] + ldr r1, _080F38E4 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F38E8 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F38DA +_080F38D0: + bl sub_80F38EC + lsls r0, 24 + cmp r0, 0 + bne _080F38D0 +_080F38DA: + pop {r0} + bx r0 + .align 2, 0 +_080F38E0: .4byte gUnknown_083DFEC4 +_080F38E4: .4byte 0x00000306 +_080F38E8: .4byte 0x00006dac + thumb_func_end sub_80F38B8 + + thumb_func_start sub_80F38EC +sub_80F38EC: @ 80F38EC + push {r4,lr} + ldr r0, _080F3908 + ldr r2, [r0] + ldr r0, _080F390C + adds r4, r2, r0 + ldrh r1, [r4] + cmp r1, 0x1 + beq _080F3930 + cmp r1, 0x1 + bgt _080F3910 + cmp r1, 0 + beq _080F391A + b _080F394E + .align 2, 0 +_080F3908: .4byte gUnknown_083DFEC4 +_080F390C: .4byte 0x00000306 +_080F3910: + cmp r1, 0x2 + beq _080F3938 + cmp r1, 0x3 + beq _080F3942 + b _080F394E +_080F391A: + ldr r3, _080F3928 + adds r0, r2, r3 + str r1, [r0] + ldr r3, _080F392C + adds r0, r2, r3 + strb r1, [r0] + b _080F3952 + .align 2, 0 +_080F3928: .4byte 0x00009348 +_080F392C: .4byte 0x0000bc92 +_080F3930: + movs r0, 0 + bl sub_80F2E18 + b _080F3952 +_080F3938: + bl sub_80F3970 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080F3942: + bl sub_80F39A4 + lsls r0, 24 + cmp r0, 0 + beq _080F3952 + b _080F3960 +_080F394E: + movs r0, 0 + b _080F3962 +_080F3952: + ldr r0, _080F3968 + ldr r1, [r0] + ldr r0, _080F396C + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F3960: + movs r0, 0x1 +_080F3962: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F3968: .4byte gUnknown_083DFEC4 +_080F396C: .4byte 0x00000306 + thumb_func_end sub_80F38EC + + thumb_func_start sub_80F3970 +sub_80F3970: @ 80F3970 + push {lr} + ldr r0, _080F3998 + ldr r0, [r0] + ldr r1, _080F399C + adds r2, r0, r1 + movs r1, 0 + strb r1, [r2] + ldr r1, _080F39A0 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F3992 +_080F3988: + bl sub_80F39A4 + lsls r0, 24 + cmp r0, 0 + bne _080F3988 +_080F3992: + pop {r0} + bx r0 + .align 2, 0 +_080F3998: .4byte gUnknown_083DFEC4 +_080F399C: .4byte 0x0000bc93 +_080F39A0: .4byte 0x00006dac + thumb_func_end sub_80F3970 + + thumb_func_start sub_80F39A4 +sub_80F39A4: @ 80F39A4 + push {r4,r5,lr} + sub sp, 0x10 + ldr r0, _080F3A18 + ldr r1, [r0] + ldr r0, _080F3A1C + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, 0xB + bhi _080F3A30 + ldrb r0, [r4] + lsls r0, 9 + ldr r2, _080F3A20 + adds r0, r2 + adds r0, r1, r0 + str r0, [sp] + ldr r5, _080F3A24 + ldr r2, [sp, 0x4] + ands r2, r5 + movs r0, 0x80 + lsls r0, 2 + orrs r2, r0 + str r2, [sp, 0x4] + ldrb r1, [r4] + adds r1, 0xB + lsls r1, 16 + ldr r0, _080F3A28 + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + ldrb r0, [r4] + cmp r0, 0x4 + bhi _080F3A04 + lsls r0, 5 + ldr r1, _080F3A2C + adds r0, r1 + str r0, [sp, 0x8] + ldrb r2, [r4] + adds r2, 0xA + add r0, sp, 0x8 + ldr r1, [r0, 0x4] + ands r1, r5 + orrs r1, r2 + str r1, [r0, 0x4] + bl LoadSpritePalette +_080F3A04: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xB + bhi _080F3A30 + movs r0, 0x1 + b _080F3A32 + .align 2, 0 +_080F3A18: .4byte gUnknown_083DFEC4 +_080F3A1C: .4byte 0x0000bc93 +_080F3A20: .4byte 0x0000a44c +_080F3A24: .4byte 0xffff0000 +_080F3A28: .4byte 0x0000ffff +_080F3A2C: .4byte gUnknown_083E3C60 +_080F3A30: + movs r0, 0 +_080F3A32: + add sp, 0x10 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F39A4 + + thumb_func_start sub_80F3A3C +sub_80F3A3C: @ 80F3A3C + push {r4-r7,lr} + sub sp, 0x18 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + cmp r4, 0x2 + bhi _080F3A60 + lsls r0, r4, 3 + adds r0, r4 + adds r0, r5, r0 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r2, _080F3A5C + b _080F3A78 + .align 2, 0 +_080F3A5C: .4byte gUnknown_083DFEC4 +_080F3A60: + ldr r2, _080F3AD0 + ldr r1, [r2] + ldr r3, _080F3AD4 + adds r0, r1, r3 + ldrb r0, [r0] + ldr r6, _080F3AD8 + adds r1, r6 + ldrb r1, [r1] + subs r0, r1 + adds r0, r5, r0 + lsls r0, 16 + lsrs r1, r0, 16 +_080F3A78: + ldr r0, [r2] + ldr r7, _080F3ADC + adds r0, r7 + adds r0, r1 + ldrb r2, [r0] + mov r1, sp + ldr r0, _080F3AE0 + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + mov r3, sp + ldr r1, _080F3AE4 + lsls r2, 2 + adds r0, r2, r1 + ldrh r0, [r0] + adds r0, 0xB + strh r0, [r3] + adds r1, 0x2 + adds r2, r1 + ldrh r0, [r2] + adds r0, 0xA + strh r0, [r3, 0x2] + lsls r1, r5, 20 + movs r0, 0xC0 + lsls r0, 15 + adds r1, r0 + asrs r1, 16 + lsls r2, r4, 20 + movs r3, 0xA0 + lsls r3, 14 + adds r2, r3 + asrs r2, 16 + mov r0, sp + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _080F3AE8 + movs r0, 0 + b _080F3AF2 + .align 2, 0 +_080F3AD0: .4byte gUnknown_083DFEC4 +_080F3AD4: .4byte 0x0000bc8e +_080F3AD8: .4byte 0x0000bc8f +_080F3ADC: .4byte 0x0000bc4c +_080F3AE0: .4byte gSpriteTemplate_83E476C +_080F3AE4: .4byte gUnknown_083E4698 +_080F3AE8: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F3AFC + adds r0, r1 +_080F3AF2: + add sp, 0x18 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080F3AFC: .4byte gSprites + thumb_func_end sub_80F3A3C + + thumb_func_start sub_80F3B00 +sub_80F3B00: @ 80F3B00 + push {r4,lr} + ldr r0, _080F3B34 + ldr r4, [r0] + ldr r1, _080F3B38 + adds r0, r4, r1 + ldrb r0, [r0] + ldr r2, _080F3B3C + adds r1, r4, r2 + ldrb r1, [r1] + bl sub_80F3A3C + adds r2, r0, 0 + ldr r1, _080F3B40 + adds r0, r4, r1 + str r2, [r0] + cmp r2, 0 + beq _080F3B48 + adds r0, r2, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r2, _080F3B44 + adds r1, r4, r2 + movs r0, 0x1 + strb r0, [r1] + b _080F3B4E + .align 2, 0 +_080F3B34: .4byte gUnknown_083DFEC4 +_080F3B38: .4byte 0x0000bc90 +_080F3B3C: .4byte 0x0000bc91 +_080F3B40: .4byte 0x00009348 +_080F3B44: .4byte 0x0000bc92 +_080F3B48: + ldr r1, _080F3B54 + adds r0, r4, r1 + strb r2, [r0] +_080F3B4E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F3B54: .4byte 0x0000bc92 + thumb_func_end sub_80F3B00 + + thumb_func_start sub_80F3B58 +sub_80F3B58: @ 80F3B58 + push {lr} + ldr r0, _080F3B6C + ldr r1, [r0] + ldr r0, _080F3B70 + adds r2, r1, r0 + ldrb r0, [r2] + cmp r0, 0 + bne _080F3B74 + movs r0, 0 + b _080F3B8A + .align 2, 0 +_080F3B6C: .4byte gUnknown_083DFEC4 +_080F3B70: .4byte 0x0000bc92 +_080F3B74: + ldr r3, _080F3B90 + adds r0, r1, r3 + ldr r0, [r0] + adds r0, 0x3F + ldrb r0, [r0] + lsrs r0, 5 + movs r1, 0x1 + eors r0, r1 + ands r0, r1 + strb r0, [r2] + ldrb r0, [r2] +_080F3B8A: + pop {r1} + bx r1 + .align 2, 0 +_080F3B90: .4byte 0x00009348 + thumb_func_end sub_80F3B58 + + thumb_func_start sub_80F3B94 +sub_80F3B94: @ 80F3B94 + push {r4,lr} + ldr r0, _080F3BB8 + ldr r4, [r0] + ldr r1, _080F3BBC + adds r0, r4, r1 + ldr r2, [r0] + cmp r2, 0 + beq _080F3BC4 + adds r0, r2, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r0, _080F3BC0 + adds r1, r4, r0 + movs r0, 0x1 + strb r0, [r1] + b _080F3BCA + .align 2, 0 +_080F3BB8: .4byte gUnknown_083DFEC4 +_080F3BBC: .4byte 0x00009348 +_080F3BC0: .4byte 0x0000bc92 +_080F3BC4: + ldr r1, _080F3BD0 + adds r0, r4, r1 + strb r2, [r0] +_080F3BCA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F3BD0: .4byte 0x0000bc92 + thumb_func_end sub_80F3B94 + + thumb_func_start sub_80F3BD4 +sub_80F3BD4: @ 80F3BD4 + push {r4-r6,lr} + ldr r0, _080F3C18 + ldr r1, [r0] + ldr r0, _080F3C1C + adds r5, r1, r0 + ldrb r0, [r5] + cmp r0, 0 + beq _080F3C24 + ldr r0, _080F3C20 + adds r4, r1, r0 + ldr r0, [r4] + adds r0, 0x3F + ldrb r0, [r0] + lsrs r0, 5 + movs r1, 0x1 + eors r0, r1 + ands r0, r1 + strb r0, [r5] + adds r6, r0, 0 + cmp r6, 0 + bne _080F3C12 + ldr r0, [r4] + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r0, [r4] + bl DestroySprite + str r6, [r4] +_080F3C12: + ldrb r0, [r5] + b _080F3C26 + .align 2, 0 +_080F3C18: .4byte gUnknown_083DFEC4 +_080F3C1C: .4byte 0x0000bc92 +_080F3C20: .4byte 0x00009348 +_080F3C24: + movs r0, 0 +_080F3C26: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F3BD4 + + thumb_func_start sub_80F3C2C +sub_80F3C2C: @ 80F3C2C + push {r4,lr} + ldr r0, _080F3C8C + ldr r0, [r0] + ldr r1, _080F3C90 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _080F3C50 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r0, [r4] + bl DestroySprite + movs r0, 0 + str r0, [r4] +_080F3C50: + movs r4, 0 +_080F3C52: + adds r0, r4, 0 + adds r0, 0xB + lsls r0, 16 + lsrs r0, 16 + bl FreeSpriteTilesByTag + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xB + bls _080F3C52 + movs r4, 0 +_080F3C6A: + adds r0, r4, 0 + adds r0, 0xA + lsls r0, 16 + lsrs r0, 16 + bl FreeSpritePaletteByTag + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _080F3C6A + bl sub_80F2F48 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F3C8C: .4byte gUnknown_083DFEC4 +_080F3C90: .4byte 0x00009348 + thumb_func_end sub_80F3C2C + + thumb_func_start sub_80F3C94 +sub_80F3C94: @ 80F3C94 + push {lr} + sub sp, 0x10 + ldr r0, _080F3CDC + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + ldr r0, _080F3CE0 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x8] + str r1, [sp, 0xC] + mov r0, sp + bl LoadSpriteSheet + add r0, sp, 0x8 + bl LoadSpritePalette + movs r1, 0 + ldr r0, _080F3CE4 + ldr r0, [r0] + movs r3, 0x88 + lsls r3, 8 + adds r2, r0, r3 + movs r3, 0 +_080F3CC6: + lsls r0, r1, 2 + adds r0, r2, r0 + str r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x9 + bls _080F3CC6 + add sp, 0x10 + pop {r0} + bx r0 + .align 2, 0 +_080F3CDC: .4byte gUnknown_083E4784 +_080F3CE0: .4byte gUnknown_083E478C +_080F3CE4: .4byte gUnknown_083DFEC4 + thumb_func_end sub_80F3C94 + + thumb_func_start sub_80F3CE8 +sub_80F3CE8: @ 80F3CE8 + push {lr} + bl move_anim_execute + movs r0, 0x17 + bl FreeSpriteTilesByTag + movs r0, 0xF + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + thumb_func_end sub_80F3CE8 + + thumb_func_start sub_80F3D00 +sub_80F3D00: @ 80F3D00 + push {r4,r5,lr} + ldr r0, _080F3D34 + ldr r2, [r0] + ldr r1, _080F3D38 + adds r0, r2, r1 + movs r3, 0 + ldrsh r0, [r0, r3] + lsls r0, 2 + ldr r1, _080F3D3C + adds r0, r1 + adds r0, r2, r0 + ldrb r1, [r0, 0x3] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080F3D94 + ldr r3, _080F3D40 + adds r0, r2, r3 + movs r1, 0 + ldrsb r1, [r0, r1] + ldr r3, _080F3D44 + adds r0, r2, r3 + adds r0, r1 + ldrb r5, [r0] + movs r4, 0 + b _080F3D86 + .align 2, 0 +_080F3D34: .4byte gUnknown_083DFEC4 +_080F3D38: .4byte 0x000087dc +_080F3D3C: .4byte 0x0000893c +_080F3D40: .4byte 0x00008fe9 +_080F3D44: .4byte 0x00008931 +_080F3D48: + ldr r0, _080F3D9C + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080F3D8C + ldr r0, _080F3DA0 + ldr r2, [r0] + lsls r0, r4, 2 + movs r3, 0x88 + lsls r3, 8 + adds r2, r3 + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F3DA4 + adds r0, r1 + str r0, [r2] + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080F3D86: + adds r0, r5, 0x1 + cmp r4, r0 + blt _080F3D48 +_080F3D8C: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80F3F20 +_080F3D94: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F3D9C: .4byte gSpriteTemplate_83E4800 +_080F3DA0: .4byte gUnknown_083DFEC4 +_080F3DA4: .4byte gSprites + thumb_func_end sub_80F3D00 + + thumb_func_start move_anim_execute +move_anim_execute: @ 80F3DA8 + push {r4-r6,lr} + movs r5, 0 + ldr r0, _080F3DD8 + ldr r0, [r0] + movs r1, 0x88 + lsls r1, 8 + adds r6, r0, r1 +_080F3DB6: + lsls r0, r5, 2 + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F3DD2 + bl DestroySprite + movs r0, 0 + str r0, [r4] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x9 + bls _080F3DB6 +_080F3DD2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F3DD8: .4byte gUnknown_083DFEC4 + thumb_func_end move_anim_execute + + thumb_func_start sub_80F3DDC +sub_80F3DDC: @ 80F3DDC + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080F3DFE + movs r0, 0 + strh r0, [r1, 0x30] + ldrh r0, [r1, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_80F3F20 +_080F3DFE: + pop {r0} + bx r0 + thumb_func_end sub_80F3DDC + + thumb_func_start sub_80F3E04 +sub_80F3E04: @ 80F3E04 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080F3E1C + movs r0, 0 + strh r0, [r2, 0x30] + ldr r0, _080F3E20 + str r0, [r2, 0x1C] +_080F3E1C: + pop {r0} + bx r0 + .align 2, 0 +_080F3E20: .4byte sub_80F3DDC + thumb_func_end sub_80F3E04 + + thumb_func_start sub_80F3E24 +sub_80F3E24: @ 80F3E24 + push {r4,r5,lr} + adds r3, r0, 0 + ldr r0, _080F3E64 + ldr r0, [r0] + ldr r1, _080F3E68 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _080F3E70 + ldrh r1, [r0, 0x24] + ldrh r0, [r0, 0x20] + adds r1, r0 + ldr r2, _080F3E6C + movs r5, 0x2E + ldrsh r0, [r3, r5] + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + adds r0, r1 + strh r0, [r3, 0x20] + ldr r0, [r4] + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + movs r4, 0x2E + ldrsh r0, [r3, r4] + lsls r0, 2 + adds r2, 0x2 + adds r0, r2 + ldrh r0, [r0] + adds r0, r1 + b _080F3E8E + .align 2, 0 +_080F3E64: .4byte gUnknown_083DFEC4 +_080F3E68: .4byte 0x00008768 +_080F3E6C: .4byte gUnknown_083E4794 +_080F3E70: + ldr r1, _080F3E98 + movs r5, 0x2E + ldrsh r0, [r3, r5] + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x28 + strh r0, [r3, 0x20] + movs r2, 0x2E + ldrsh r0, [r3, r2] + lsls r0, 2 + adds r1, 0x2 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x68 +_080F3E8E: + strh r0, [r3, 0x22] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F3E98: .4byte gUnknown_083E4794 + thumb_func_end sub_80F3E24 + + thumb_func_start sub_80F3E9C +sub_80F3E9C: @ 80F3E9C + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080F3ECA + subs r0, r1, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080F3F14 + adds r0, r4, 0 + movs r1, 0 + bl SeekSpriteAnim + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080F3ECA: + adds r0, r4, 0 + bl sub_80F3E24 + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080F3F14 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x34 + ldrsh r1, [r4, r0] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080F3F10 + cmp r1, 0x9 + bne _080F3F08 + bl sub_80F3FAC + ldr r0, _080F3F04 + b _080F3F12 + .align 2, 0 +_080F3F04: .4byte sub_80F3E04 +_080F3F08: + ldr r0, _080F3F0C + b _080F3F12 + .align 2, 0 +_080F3F0C: .4byte sub_80F3DDC +_080F3F10: + ldr r0, _080F3F1C +_080F3F12: + str r0, [r4, 0x1C] +_080F3F14: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F3F1C: .4byte SpriteCallbackDummy + thumb_func_end sub_80F3E9C + + thumb_func_start sub_80F3F20 +sub_80F3F20: @ 80F3F20 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + movs r5, 0 + ldr r0, _080F3F6C + ldr r0, [r0] + movs r1, 0x88 + lsls r1, 8 + adds r7, r0, r1 +_080F3F3C: + lsls r0, r5, 2 + adds r4, r7, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F3F92 + strh r5, [r0, 0x2E] + ldr r1, [r4] + lsls r0, r5, 4 + adds r0, 0x1 + strh r0, [r1, 0x30] + ldr r0, [r4] + strh r6, [r0, 0x32] + ldr r0, [r4] + strh r5, [r0, 0x34] + mov r3, r8 + cmp r3, 0 + beq _080F3F62 + cmp r6, 0x9 + beq _080F3F74 +_080F3F62: + ldr r1, [r4] + ldr r0, _080F3F70 + str r0, [r1, 0x1C] + b _080F3F92 + .align 2, 0 +_080F3F6C: .4byte gUnknown_083DFEC4 +_080F3F70: .4byte sub_80F3E9C +_080F3F74: + ldr r0, [r4] + bl sub_80F3E24 + bl sub_80F3FAC + ldr r2, [r4] + ldr r0, _080F3FA8 + str r0, [r2, 0x1C] + adds r2, 0x3E + ldrb r0, [r2] + movs r3, 0x5 + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + strb r0, [r2] +_080F3F92: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x9 + bls _080F3F3C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F3FA8: .4byte sub_80F3E04 + thumb_func_end sub_80F3F20 + + thumb_func_start sub_80F3FAC +sub_80F3FAC: @ 80F3FAC + push {r4-r7,lr} + movs r5, 0 + ldr r0, _080F3FEC + ldr r0, [r0] + movs r1, 0x88 + lsls r1, 8 + adds r6, r0, r1 + movs r0, 0x5 + negs r0, r0 + adds r7, r0, 0 +_080F3FC0: + lsls r0, r5, 2 + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F3FDA + movs r1, 0 + bl SeekSpriteAnim + ldr r1, [r4] + adds r1, 0x3E + ldrb r0, [r1] + ands r0, r7 + strb r0, [r1] +_080F3FDA: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x9 + bls _080F3FC0 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F3FEC: .4byte gUnknown_083DFEC4 + thumb_func_end sub_80F3FAC + + thumb_func_start sub_80F3FF0 +sub_80F3FF0: @ 80F3FF0 + push {lr} + ldr r0, _080F4018 + ldr r0, [r0] + ldr r1, _080F401C + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F4020 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F4012 +_080F4008: + bl sub_80F4024 + lsls r0, 24 + cmp r0, 0 + bne _080F4008 +_080F4012: + pop {r0} + bx r0 + .align 2, 0 +_080F4018: .4byte gUnknown_083DFEC4 +_080F401C: .4byte 0x00000306 +_080F4020: .4byte 0x00006dac + thumb_func_end sub_80F3FF0 + + thumb_func_start sub_80F4024 +sub_80F4024: @ 80F4024 + push {r4,lr} + sub sp, 0x10 + ldr r0, _080F4040 + ldr r4, [r0] + ldr r1, _080F4044 + adds r0, r4, r1 + ldrh r0, [r0] + cmp r0, 0x1 + beq _080F4068 + cmp r0, 0x1 + bgt _080F4048 + cmp r0, 0 + beq _080F4052 + b _080F4106 + .align 2, 0 +_080F4040: .4byte gUnknown_083DFEC4 +_080F4044: .4byte 0x00000306 +_080F4048: + cmp r0, 0x2 + beq _080F4084 + cmp r0, 0x3 + beq _080F40B8 + b _080F4106 +_080F4052: + ldr r0, _080F4060 + ldr r2, _080F4064 + adds r1, r4, r2 + bl LZ77UnCompWram + b _080F4118 + .align 2, 0 +_080F4060: .4byte gUnknown_083E329C +_080F4064: .4byte 0x000131e4 +_080F4068: + ldr r1, _080F407C + adds r0, r4, r1 + str r0, [sp] + ldr r0, _080F4080 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + b _080F4118 + .align 2, 0 +_080F407C: .4byte 0x000131e4 +_080F4080: .4byte 0x00181000 +_080F4084: + ldr r0, _080F40B4 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x8] + str r1, [sp, 0xC] + add r0, sp, 0x8 + bl LoadSpritePalette + movs r0, 0x10 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xC2 + lsls r1, 2 + adds r2, r4, r1 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + movs r0, 0x3 + negs r0, r0 + bics r0, r1 + str r0, [r2] + b _080F4118 + .align 2, 0 +_080F40B4: .4byte gUnknown_083E4818 +_080F40B8: + ldr r0, _080F40E4 + movs r1, 0xDA + movs r2, 0xE + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080F40F0 + ldr r0, _080F40E8 + adds r2, r4, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F40EC + adds r0, r1 + str r0, [r2] + movs r1, 0 + strh r1, [r0, 0x2E] + b _080F40F8 + .align 2, 0 +_080F40E4: .4byte gSpriteTemplate_83E4850 +_080F40E8: .4byte 0x00006d98 +_080F40EC: .4byte gSprites +_080F40F0: + ldr r2, _080F410C + adds r1, r4, r2 + movs r0, 0 + str r0, [r1] +_080F40F8: + ldr r0, _080F4110 + ldr r1, [r0] + ldr r0, _080F4114 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F4106: + movs r0, 0 + b _080F4128 + .align 2, 0 +_080F410C: .4byte 0x00006d98 +_080F4110: .4byte gUnknown_083DFEC4 +_080F4114: .4byte 0x00000306 +_080F4118: + ldr r0, _080F4130 + ldr r1, [r0] + ldr r2, _080F4134 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080F4128: + add sp, 0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F4130: .4byte gUnknown_083DFEC4 +_080F4134: .4byte 0x00000306 + thumb_func_end sub_80F4024 + + thumb_func_start sub_80F4138 +sub_80F4138: @ 80F4138 + push {lr} + adds r2, r0, 0 + ldr r0, _080F4170 + ldr r0, [r0] + movs r1, 0xC3 + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0] + negs r0, r0 + strh r0, [r2, 0x26] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bgt _080F4174 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080F418E + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + movs r0, 0x1 + b _080F418C + .align 2, 0 +_080F4170: .4byte gUnknown_083DFEC4 +_080F4174: + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _080F418E + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r3] + movs r0, 0 +_080F418C: + strh r0, [r2, 0x2E] +_080F418E: + pop {r0} + bx r0 + thumb_func_end sub_80F4138 + + thumb_func_start sub_80F4194 +sub_80F4194: @ 80F4194 + push {r4-r7,lr} + sub sp, 0x4 + adds r7, r0, 0 + adds r2, r1, 0 + ldr r0, _080F42A4 + ldr r6, [r0] + mov r0, sp + ldr r1, _080F42A8 + adds r5, r1, 0 + strh r5, [r0] + ldr r4, _080F42AC + str r0, [r4] + str r6, [r4, 0x4] + ldr r3, _080F42B0 + str r3, [r4, 0x8] + ldr r0, [r4, 0x8] + movs r0, 0x80 + lsls r0, 3 + adds r1, r6, r0 + mov r0, sp + strh r5, [r0] + str r0, [r4] + str r1, [r4, 0x4] + str r3, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _080F42B4 + adds r1, r6, 0 + bl sub_8004E3C + movs r3, 0x88 + lsls r3, 2 + adds r1, r6, r3 + mov r0, sp + movs r3, 0 + strh r3, [r0] + str r0, [r4] + str r1, [r4, 0x4] + ldr r2, _080F42B8 + str r2, [r4, 0x8] + ldr r0, [r4, 0x8] + movs r0, 0xC4 + lsls r0, 3 + adds r1, r6, r0 + mov r0, sp + strh r3, [r0] + str r0, [r4] + str r1, [r4, 0x4] + str r2, [r4, 0x8] + ldr r0, [r4, 0x8] + movs r1, 0x80 + lsls r1, 2 + adds r2, r6, r1 + ldr r0, [r2] + ldr r1, _080F42BC + ands r0, r1 + str r0, [r2] + ldr r0, [r2, 0x4] + ands r0, r1 + str r0, [r2, 0x4] + ldr r0, [r2, 0x8] + ands r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0xC] + ands r0, r1 + str r0, [r2, 0xC] + ldr r0, [r2, 0x10] + ands r0, r1 + str r0, [r2, 0x10] + ldr r0, [r2, 0x14] + ands r0, r1 + str r0, [r2, 0x14] + ldr r0, [r2, 0x18] + ands r0, r1 + str r0, [r2, 0x18] + ldr r0, [r2, 0x1C] + ands r0, r1 + str r0, [r2, 0x1C] + movs r3, 0xC0 + lsls r3, 3 + adds r2, r6, r3 + ldr r0, [r2] + ands r0, r1 + str r0, [r2] + ldr r0, [r2, 0x4] + ands r0, r1 + str r0, [r2, 0x4] + ldr r0, [r2, 0x8] + ands r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0xC] + ands r0, r1 + str r0, [r2, 0xC] + ldr r0, [r2, 0x10] + ands r0, r1 + str r0, [r2, 0x10] + ldr r0, [r2, 0x14] + ands r0, r1 + str r0, [r2, 0x14] + ldr r0, [r2, 0x18] + ands r0, r1 + str r0, [r2, 0x18] + ldr r0, [r2, 0x1C] + ands r0, r1 + str r0, [r2, 0x1C] + movs r1, 0 + ldr r2, _080F42C0 +_080F4268: + lsls r0, r1, 7 + adds r0, r6, r0 + str r0, [r4] + lsls r0, r1, 8 + adds r0, r7, r0 + str r0, [r4, 0x4] + str r2, [r4, 0x8] + ldr r0, [r4, 0x8] + lsls r0, r1, 7 + movs r3, 0x80 + lsls r3, 3 + adds r0, r3 + adds r0, r6, r0 + str r0, [r4] + lsls r0, r1, 3 + adds r0, 0x4 + lsls r0, 5 + adds r0, r7, r0 + str r0, [r4, 0x4] + str r2, [r4, 0x8] + ldr r0, [r4, 0x8] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x4 + bls _080F4268 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F42A4: .4byte gUnknown_083DFEC8 +_080F42A8: .4byte 0x00001111 +_080F42AC: .4byte 0x040000d4 +_080F42B0: .4byte 0x81000140 +_080F42B4: .4byte gWindowConfig_81E70F0 +_080F42B8: .4byte 0x81000030 +_080F42BC: .4byte 0x0fffffff +_080F42C0: .4byte 0x80000040 + thumb_func_end sub_80F4194 + + thumb_func_start sub_80F42C4 +sub_80F42C4: @ 80F42C4 + push {r4-r7,lr} + sub sp, 0x8 + adds r1, r0, 0 + ldr r0, _080F433C + ldr r0, [r0] + ldr r2, _080F4340 + adds r0, r2 + str r0, [sp] + ldr r2, _080F4344 + str r2, [sp, 0x4] + bl sub_80F4194 + mov r0, sp + bl LoadSpriteSheet + ldr r0, _080F4348 + bl LoadSpritePalette + movs r5, 0 + movs r4, 0 + ldr r6, _080F434C +_080F42EE: + lsls r1, r4, 21 + movs r7, 0xE2 + lsls r7, 15 + adds r1, r7 + asrs r1, 16 + ldr r0, _080F4350 + movs r2, 0x10 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080F4360 + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r3, r6 + ldrh r2, [r3, 0x4] + lsls r0, r2, 22 + lsrs r0, 22 + adds r0, r5, r0 + ldr r7, _080F4354 + adds r1, r7, 0 + ands r0, r1 + ldr r7, _080F4358 + adds r1, r7, 0 + ands r2, r1 + orrs r2, r0 + strh r2, [r3, 0x4] + ldr r0, _080F433C + ldr r0, [r0] + lsls r1, r4, 2 + ldr r2, _080F435C + adds r0, r2 + adds r0, r1 + str r3, [r0] + b _080F4370 + .align 2, 0 +_080F433C: .4byte gUnknown_083DFEC4 +_080F4340: .4byte 0x0000d1e4 +_080F4344: .4byte 0x001a0500 +_080F4348: .4byte gUnknown_083E4868 +_080F434C: .4byte gSprites +_080F4350: .4byte gSpriteTemplate_83E4878 +_080F4354: .4byte 0x000003ff +_080F4358: .4byte 0xfffffc00 +_080F435C: .4byte 0x0000ced4 +_080F4360: + ldr r0, _080F438C + ldr r1, [r0] + lsls r0, r4, 2 + ldr r7, _080F4390 + adds r1, r7 + adds r1, r0 + movs r0, 0 + str r0, [r1] +_080F4370: + adds r0, r5, 0 + adds r0, 0x8 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _080F42EE + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F438C: .4byte gUnknown_083DFEC4 +_080F4390: .4byte 0x0000ced4 + thumb_func_end sub_80F42C4 + + thumb_func_start sub_80F4394 +sub_80F4394: @ 80F4394 + push {r4,r5,lr} + movs r4, 0 + ldr r0, _080F43CC + ldr r0, [r0] + ldr r1, _080F43D0 + adds r5, r0, r1 +_080F43A0: + lsls r0, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F43AE + bl DestroySprite +_080F43AE: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _080F43A0 + movs r0, 0x1A + bl FreeSpriteTilesByTag + movs r0, 0x12 + bl FreeSpritePaletteByTag + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F43CC: .4byte gUnknown_083DFEC4 +_080F43D0: .4byte 0x0000ced4 + thumb_func_end sub_80F4394 + + thumb_func_start sub_80F43D4 +sub_80F43D4: @ 80F43D4 + push {r4,lr} + adds r1, r0, 0 + ldr r0, _080F4410 + ldr r0, [r0] + ldr r2, _080F4414 + adds r4, r0, r2 + adds r0, r4, 0 + bl sub_80F4194 + movs r0, 0x1A + bl GetSpriteTileStartByTag + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _080F4418 + cmp r1, r0 + beq _080F4408 + lsls r0, r1, 5 + ldr r1, _080F441C + adds r0, r1 + ldr r1, _080F4420 + str r4, [r1] + str r0, [r1, 0x4] + ldr r0, _080F4424 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_080F4408: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F4410: .4byte gUnknown_083DFEC4 +_080F4414: .4byte 0x0000d1e4 +_080F4418: .4byte 0x0000ffff +_080F441C: .4byte 0x06010000 +_080F4420: .4byte 0x040000d4 +_080F4424: .4byte 0x84000140 + thumb_func_end sub_80F43D4 + + thumb_func_start sub_80F4428 +sub_80F4428: @ 80F4428 + push {lr} + lsls r1, 16 + lsrs r1, 16 + lsls r2, 24 + lsrs r2, 24 + bl sub_80F6514 + pop {r1} + bx r1 + thumb_func_end sub_80F4428 + + thumb_func_start sub_80F443C +sub_80F443C: @ 80F443C + push {r4,lr} + lsls r4, r1, 16 + lsrs r4, 16 + ldr r1, _080F4458 + bl StringCopy + adds r1, r4, 0 + movs r2, 0x38 + movs r3, 0x1 + bl sub_8072C14 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F4458: .4byte gOtherText_Number + thumb_func_end sub_80F443C + + thumb_func_start sub_80F445C +sub_80F445C: @ 80F445C + push {r4,lr} + lsls r1, 16 + lsrs r1, 16 + movs r2, 0x17 + movs r3, 0x1 + bl sub_8072C14 + adds r4, r0, 0 + movs r3, 0xFC + strb r3, [r4] + movs r2, 0x11 + strb r2, [r4, 0x1] + movs r1, 0x1 + strb r1, [r4, 0x2] + adds r4, 0x3 + movs r0, 0xBA + strb r0, [r4] + adds r4, 0x1 + strb r3, [r4] + strb r2, [r4, 0x1] + strb r1, [r4, 0x2] + adds r4, 0x3 + ldr r0, _080F44A8 + ldr r0, [r0] + ldr r1, _080F44AC + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + adds r1, 0x1 + adds r0, r4, 0 + movs r2, 0x32 + movs r3, 0x1 + bl sub_8072C14 + adds r4, r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F44A8: .4byte gUnknown_083DFEC4 +_080F44AC: .4byte 0x00008774 + thumb_func_end sub_80F445C + + thumb_func_start sub_80F44B0 +sub_80F44B0: @ 80F44B0 + push {r4,lr} + adds r4, r2, 0 + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r2, r1, 16 + cmp r0, 0xE + bne _080F44F4 + cmp r4, 0x2 + beq _080F44C8 + cmp r4, 0x7 + bne _080F44E0 +_080F44C8: + movs r0, 0x64 + muls r0, r2 + ldr r1, _080F44DC + adds r0, r1 + adds r1, r4, 0 + adds r2, r3, 0 + bl GetMonData + b _080F453C + .align 2, 0 +_080F44DC: .4byte gPlayerParty +_080F44E0: + movs r0, 0x64 + muls r0, r2 + ldr r1, _080F44F0 + adds r0, r1 + adds r1, r4, 0 + bl GetMonData + b _080F453C + .align 2, 0 +_080F44F0: .4byte gPlayerParty +_080F44F4: + cmp r4, 0x2 + beq _080F44FC + cmp r4, 0x7 + bne _080F4520 +_080F44FC: + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _080F451C + adds r1, r2 + adds r0, r1 + adds r1, r4, 0 + adds r2, r3, 0 + bl GetBoxMonData + b _080F453C + .align 2, 0 +_080F451C: .4byte gUnknown_020300A4 +_080F4520: + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _080F4544 + adds r1, r2 + adds r0, r1 + adds r1, r4, 0 + bl GetBoxMonData +_080F453C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F4544: .4byte gUnknown_020300A4 + thumb_func_end sub_80F44B0 + + thumb_func_start sub_80F4548 +sub_80F4548: @ 80F4548 + push {r4,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + mov r0, sp + strb r2, [r0] + cmp r3, 0xE + bne _080F4574 + movs r0, 0x64 + muls r0, r4 + ldr r1, _080F4570 + adds r0, r1 + movs r1, 0x8 + mov r2, sp + bl SetMonData + b _080F4592 + .align 2, 0 +_080F4570: .4byte gPlayerParty +_080F4574: + lsls r1, r3, 2 + adds r1, r3 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 4 + ldr r2, _080F459C + adds r1, r2 + adds r0, r1 + movs r1, 0x8 + mov r2, sp + bl SetBoxMonData +_080F4592: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F459C: .4byte gUnknown_020300A4 + thumb_func_end sub_80F4548 + + thumb_func_start sub_80F45A0 +sub_80F45A0: @ 80F45A0 + push {r4-r7,lr} + lsls r1, 24 + lsrs r6, r1, 24 + ldr r1, _080F45F0 + ldr r5, [r1] + lsls r1, r0, 16 + asrs r0, r1, 14 + adds r4, r5, r0 + ldr r2, _080F45F4 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 25 + lsrs r7, r0, 31 + cmp r7, 0 + beq _080F4644 + lsls r0, r6, 6 + ldr r2, _080F45F8 + adds r0, r2 + adds r0, r5, r0 + lsrs r1, 16 + movs r2, 0 + bl sub_80F4428 + ldr r1, _080F45FC + adds r0, r4, r1 + ldrb r2, [r0] + cmp r2, 0xE + bne _080F4608 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 3 + ldr r2, _080F4600 + adds r0, r2 + adds r0, r5, r0 + ldr r1, _080F4604 + movs r2, 0x40 + movs r3, 0 + bl sub_8072C74 + b _080F4624 + .align 2, 0 +_080F45F0: .4byte gUnknown_083DFEC4 +_080F45F4: .4byte 0x0000893f +_080F45F8: .4byte 0x00008829 +_080F45FC: .4byte 0x0000893d +_080F4600: .4byte 0x000088e9 +_080F4604: .4byte gOtherText_InParty +_080F4608: + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 3 + ldr r1, _080F4634 + adds r0, r1 + adds r0, r5, r0 + lsls r1, r2, 3 + adds r1, r2 + ldr r2, _080F4638 + adds r1, r2 + movs r2, 0x40 + movs r3, 0 + bl sub_8072C74 +_080F4624: + ldr r0, _080F463C + ldr r0, [r0] + ldr r2, _080F4640 + adds r0, r2 + adds r0, r6 + movs r1, 0x1 + strb r1, [r0] + b _080F4676 + .align 2, 0 +_080F4634: .4byte 0x000088e9 +_080F4638: .4byte gUnknown_020383E4 +_080F463C: .4byte gUnknown_083DFEC4 +_080F4640: .4byte 0x00008937 +_080F4644: + lsls r0, r6, 6 + ldr r1, _080F467C + adds r0, r1 + adds r0, r5, r0 + ldr r4, _080F4680 + adds r1, r4, 0 + movs r2, 0x68 + movs r3, 0 + bl sub_8072C74 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 3 + ldr r2, _080F4684 + adds r0, r2 + adds r0, r5, r0 + adds r1, r4, 0 + movs r2, 0x40 + movs r3, 0 + bl sub_8072C74 + ldr r1, _080F4688 + adds r0, r5, r1 + adds r0, r6 + strb r7, [r0] +_080F4676: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F467C: .4byte 0x00008829 +_080F4680: .4byte gEmptyString_81E72B0 +_080F4684: .4byte 0x000088e9 +_080F4688: .4byte 0x00008937 + thumb_func_end sub_80F45A0 + + thumb_func_start sub_80F468C +sub_80F468C: @ 80F468C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + ldr r1, _080F475C + ldr r7, [r1] + lsls r0, 16 + asrs r0, 14 + adds r1, r7, r0 + ldr r2, _080F4760 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + blt _080F46B2 + b _080F47C4 +_080F46B2: + ldr r3, _080F4764 + adds r0, r1, r3 + ldrb r5, [r0] + subs r2, 0x1 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 27 + lsrs r6, r0, 27 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x16 + movs r3, 0 + bl sub_80F44B0 + mov r3, r9 + lsls r3, 2 + mov r8, r3 + mov r4, r8 + add r4, r9 + ldr r2, _080F4768 + adds r1, r7, r2 + adds r1, r4 + strb r0, [r1] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x2F + movs r3, 0 + bl sub_80F44B0 + ldr r3, _080F476C + adds r1, r7, r3 + adds r1, r4 + strb r0, [r1] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x21 + movs r3, 0 + bl sub_80F44B0 + ldr r2, _080F4770 + adds r1, r7, r2 + adds r1, r4 + strb r0, [r1] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x18 + movs r3, 0 + bl sub_80F44B0 + ldr r3, _080F4774 + adds r1, r7, r3 + adds r1, r4 + strb r0, [r1] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x17 + movs r3, 0 + bl sub_80F44B0 + ldr r2, _080F4778 + adds r1, r7, r2 + adds r1, r4 + strb r0, [r1] + ldr r3, _080F477C + adds r0, r7, r3 + mov r7, r9 + adds r4, r0, r7 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x30 + movs r3, 0 + bl sub_80F44B0 + cmp r0, 0xFF + beq _080F4780 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x30 + movs r3, 0 + bl sub_80F44B0 + movs r1, 0x1D + bl __udivsi3 + b _080F4782 + .align 2, 0 +_080F475C: .4byte gUnknown_083DFEC4 +_080F4760: .4byte 0x0000893f +_080F4764: .4byte 0x0000893d +_080F4768: .4byte 0x00008ff0 +_080F476C: .4byte 0x00008ff1 +_080F4770: .4byte 0x00008ff2 +_080F4774: .4byte 0x00008ff3 +_080F4778: .4byte 0x00008ff4 +_080F477C: .4byte 0x00008931 +_080F4780: + movs r0, 0x9 +_080F4782: + strb r0, [r4] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x8 + movs r3, 0 + bl sub_80F44B0 + ldr r1, _080F47B4 + ldr r1, [r1] + ldr r3, _080F47B8 + adds r2, r1, r3 + add r2, r9 + strb r0, [r2] + mov r2, r8 + add r2, r9 + ldr r7, _080F47BC + adds r0, r2, r7 + adds r0, r1, r0 + lsls r2, 2 + ldr r3, _080F47C0 + adds r2, r3 + adds r1, r2 + bl sub_80F55AC + b _080F480A + .align 2, 0 +_080F47B4: .4byte gUnknown_083DFEC4 +_080F47B8: .4byte 0x00008934 +_080F47BC: .4byte 0x00008ff0 +_080F47C0: .4byte 0x00009004 +_080F47C4: + movs r3, 0 + mov r0, r9 + lsls r0, 2 + mov r8, r0 + adds r4, r7, 0 + mov r2, r8 + add r2, r9 + ldr r1, _080F4818 + adds r6, r4, r1 + lsls r5, r2, 2 + mov r9, r3 + ldr r7, _080F481C + mov r8, r7 + movs r0, 0x9B + mov r12, r0 +_080F47E2: + adds r0, r3, r2 + adds r0, r6, r0 + mov r1, r9 + strb r1, [r0] + lsls r0, r3, 2 + adds r0, r5 + adds r0, r4, r0 + mov r7, r8 + adds r1, r0, r7 + mov r7, r12 + strh r7, [r1] + ldr r1, _080F4820 + adds r0, r1 + movs r1, 0x5B + strh r1, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x4 + bls _080F47E2 +_080F480A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F4818: .4byte 0x00008ff0 +_080F481C: .4byte 0x00009004 +_080F4820: .4byte 0x00009006 + thumb_func_end sub_80F468C + + thumb_func_start sub_80F4824 +sub_80F4824: @ 80F4824 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + ldr r1, _080F48E0 + ldr r7, [r1] + lsls r0, 16 + asrs r0, 14 + adds r1, r7, r0 + ldr r2, _080F48E4 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + bge _080F48D0 + ldr r6, _080F48E8 + adds r0, r1, r6 + ldrb r6, [r0] + subs r2, 0x1 + adds r0, r1, r2 + ldrb r4, [r0] + lsls r4, 27 + lsrs r4, 27 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x41 + movs r3, 0 + bl sub_80F44B0 + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x1 + movs r3, 0 + bl sub_80F44B0 + mov r8, r0 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0 + bl sub_80F44B0 + adds r4, r0, 0 + lsls r0, r5, 3 + ldr r1, _080F48EC + adds r0, r1 + ldr r2, _080F48F0 + lsls r1, r5, 2 + adds r1, r2 + ldrb r1, [r1] + ldr r6, _080F48F4 + adds r3, r7, r6 + mov r6, r9 + lsls r2, r6, 13 + ldr r6, _080F48F8 + adds r2, r6 + adds r2, r7, r2 + str r2, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r2, 0x1 + bl sub_800D334 + adds r0, r5, 0 + mov r1, r8 + adds r2, r4, 0 + bl species_and_otid_get_pal + mov r2, r9 + lsls r1, r2, 7 + adds r1, r7, r1 + bl LZ77UnCompWram + mov r6, r9 + lsls r1, r6, 1 + ldr r2, _080F48FC + adds r0, r7, r2 + adds r0, r1 + strh r5, [r0] +_080F48D0: + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F48E0: .4byte gUnknown_083DFEC4 +_080F48E4: .4byte 0x0000893f +_080F48E8: .4byte 0x0000893d +_080F48EC: .4byte gMonFrontPicTable +_080F48F0: .4byte gMonFrontPicCoords +_080F48F4: .4byte 0x000131e4 +_080F48F8: .4byte 0x0000d1e4 +_080F48FC: .4byte 0x0000d1d6 + thumb_func_end sub_80F4824 + + thumb_func_start sub_80F4900 +sub_80F4900: @ 80F4900 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80F45A0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80F468C + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80F4824 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80F4900 + + thumb_func_start sub_80F492C +sub_80F492C: @ 80F492C + ldr r0, _080F493C + ldr r0, [r0] + ldr r1, _080F4940 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + bx lr + .align 2, 0 +_080F493C: .4byte gUnknown_083DFEC4 +_080F4940: .4byte 0x00008fe4 + thumb_func_end sub_80F492C + + thumb_func_start sub_80F4944 +sub_80F4944: @ 80F4944 + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r12, r0 + movs r2, 0 + ldr r1, _080F4978 + ldr r5, [r1] + ldr r3, _080F497C + adds r0, r5, r3 + ldrh r4, [r0] + lsrs r3, r4, 1 + mov r8, r1 + cmp r4, r3 + beq _080F499C + adds r6, r5, 0 + mov r0, r12 + ldrb r5, [r0] + ldr r7, _080F4980 +_080F4968: + lsls r0, r3, 2 + adds r0, r6, r0 + adds r0, r7 + ldrb r0, [r0] + cmp r5, r0 + bls _080F4984 + adds r4, r3, 0 + b _080F498A + .align 2, 0 +_080F4978: .4byte gUnknown_083DFEC4 +_080F497C: .4byte 0x00008fe4 +_080F4980: .4byte 0x0000893c +_080F4984: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 +_080F498A: + subs r0, r4, r2 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, r2, r0 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r4, r3 + bne _080F4968 +_080F499C: + mov r1, r8 + ldr r2, [r1] + ldr r1, _080F49EC + adds r0, r2, r1 + ldrh r4, [r0] + lsls r6, r3, 2 + cmp r4, r3 + bls _080F49C6 + ldr r0, _080F49F0 + adds r5, r2, r0 +_080F49B0: + lsls r2, r4, 2 + adds r2, r5, r2 + subs r1, r4, 0x1 + lsls r0, r1, 2 + adds r0, r5, r0 + ldr r0, [r0] + str r0, [r2] + lsls r1, 16 + lsrs r4, r1, 16 + cmp r4, r3 + bhi _080F49B0 +_080F49C6: + mov r1, r8 + ldr r2, [r1] + ldr r3, _080F49F0 + adds r0, r2, r3 + adds r0, r6 + mov r3, r12 + ldr r1, [r3] + str r1, [r0] + ldr r0, _080F49EC + adds r2, r0 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F49EC: .4byte 0x00008fe4 +_080F49F0: .4byte 0x0000893c + thumb_func_end sub_80F4944 + + thumb_func_start sub_80F49F4 +sub_80F49F4: @ 80F49F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r3, _080F4A64 + ldr r4, [r3] + ldr r7, _080F4A68 + adds r2, r4, r7 + ldrh r1, [r2] + ldr r0, _080F4A6C + mov r12, r0 + ands r0, r1 + movs r1, 0x20 + orrs r0, r1 + strh r0, [r2] + movs r5, 0x1 + ldr r1, _080F4A70 + adds r0, r4, r1 + ldrh r3, [r0] + cmp r5, r3 + bcs _080F4A9E + adds r6, r4, 0 + ldr r1, _080F4A74 + mov r8, r1 + ldr r3, _080F4A78 + mov r10, r3 + mov r9, r0 +_080F4A2C: + lsls r0, r5, 2 + adds r3, r6, r0 + mov r0, r8 + adds r2, r3, r0 + subs r0, r5, 0x1 + lsls r0, 2 + adds r4, r6, r0 + mov r0, r8 + adds r1, r4, r0 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bne _080F4A7C + adds r0, r4, r7 + ldrh r0, [r0] + lsls r0, 18 + lsrs r0, 23 + adds r3, r7 + ldr r1, _080F4A78 + ands r1, r0 + lsls r1, 5 + ldrh r2, [r3] + mov r0, r12 + ands r0, r2 + orrs r0, r1 + strh r0, [r3] + adds r4, r5, 0x1 + b _080F4A92 + .align 2, 0 +_080F4A64: .4byte gUnknown_083DFEC4 +_080F4A68: .4byte 0x0000893e +_080F4A6C: .4byte 0xffffc01f +_080F4A70: .4byte 0x00008fe4 +_080F4A74: .4byte 0x0000893c +_080F4A78: .4byte 0x000001ff +_080F4A7C: + adds r4, r5, 0x1 + adds r3, r7 + adds r1, r4, 0 + mov r0, r10 + ands r1, r0 + lsls r1, 5 + ldrh r2, [r3] + mov r0, r12 + ands r0, r2 + orrs r0, r1 + strh r0, [r3] +_080F4A92: + lsls r0, r4, 16 + lsrs r5, r0, 16 + mov r1, r9 + ldrh r1, [r1] + cmp r5, r1 + bcc _080F4A2C +_080F4A9E: + ldr r3, _080F4AC4 + ldr r2, [r3] + ldr r1, _080F4AC8 + adds r0, r2, r1 + movs r1, 0 + strh r1, [r0] + ldr r3, _080F4ACC + adds r0, r2, r3 + strh r1, [r0] + subs r3, 0x2 + adds r0, r2, r3 + strh r1, [r0] + ldr r1, _080F4AD0 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, 0x8 + bhi _080F4AD4 + subs r1, r0, 0x1 + b _080F4AD6 + .align 2, 0 +_080F4AC4: .4byte gUnknown_083DFEC4 +_080F4AC8: .4byte 0x0000876c +_080F4ACC: .4byte 0x00008770 +_080F4AD0: .4byte 0x00008fe4 +_080F4AD4: + movs r1, 0x7 +_080F4AD6: + ldr r3, _080F4B10 + adds r0, r2, r3 + strh r1, [r0] + ldr r0, _080F4B14 + ldr r2, [r0] + ldr r1, _080F4B18 + adds r0, r2, r1 + ldrh r0, [r0] + subs r0, 0x1 + adds r3, 0x2 + adds r1, r2, r3 + strh r0, [r1] + movs r1, 0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080F4AFA + movs r1, 0x1 +_080F4AFA: + ldr r3, _080F4B1C + adds r0, r2, r3 + strb r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F4B10: .4byte 0x00008772 +_080F4B14: .4byte gUnknown_083DFEC4 +_080F4B18: .4byte 0x00008fe4 +_080F4B1C: .4byte 0x000087c9 + thumb_func_end sub_80F49F4 + + thumb_func_start sub_80F4B20 +sub_80F4B20: @ 80F4B20 + push {r4-r6,lr} + ldr r0, _080F4B5C + ldr r4, [r0] + ldr r0, _080F4B60 + adds r5, r4, r0 + movs r1, 0 + ldrsh r0, [r5, r1] + movs r1, 0 + bl sub_80F4900 + movs r0, 0 + bl sub_80F2E18 + ldr r0, _080F4B64 + adds r2, r4, r0 + movs r1, 0 + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _080F4B6C + ldr r2, _080F4B68 + adds r0, r4, r2 + movs r1, 0 + strb r1, [r0] + adds r2, 0x1 + adds r0, r4, r2 + strb r1, [r0] + adds r2, 0x1 + adds r0, r4, r2 + strb r1, [r0] + b _080F4BBE + .align 2, 0 +_080F4B5C: .4byte gUnknown_083DFEC4 +_080F4B60: .4byte 0x000087dc +_080F4B64: .4byte 0x000087da +_080F4B68: .4byte 0x00008fe9 +_080F4B6C: + ldr r0, _080F4BC4 + adds r1, r4, r0 + movs r0, 0 + strb r0, [r1] + ldr r0, _080F4BC8 + adds r1, r4, r0 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080F4BCC + adds r1, r4, r0 + movs r0, 0x2 + strb r0, [r1] + ldrh r3, [r5] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + ldrh r6, [r2] + movs r4, 0 + ldrsh r1, [r2, r4] + cmp r0, r1 + blt _080F4B9A + movs r5, 0 +_080F4B9A: + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r0, 0 + bge _080F4BAA + subs r0, r6, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080F4BAA: + lsls r0, r5, 16 + asrs r0, 16 + movs r1, 0x1 + bl sub_80F4900 + lsls r0, r4, 16 + asrs r0, 16 + movs r1, 0x2 + bl sub_80F4900 +_080F4BBE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F4BC4: .4byte 0x00008fe9 +_080F4BC8: .4byte 0x00008fea +_080F4BCC: .4byte 0x00008feb + thumb_func_end sub_80F4B20 + + thumb_func_start sub_80F4BD0 +sub_80F4BD0: @ 80F4BD0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r6, 0 + movs r7, 0 + ldr r0, _080F4CC4 + ldr r2, [r0] + ldr r3, _080F4CC8 + adds r1, r2, r3 + mov r9, r0 + ldrb r1, [r1] + cmp r7, r1 + bcs _080F4C66 + mov r10, r9 + adds r4, r3, 0 + adds r4, r2 + mov r8, r4 +_080F4BF6: + movs r0, 0x64 + muls r0, r6 + ldr r1, _080F4CCC + adds r0, r1 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _080F4C58 + mov r0, r10 + ldr r3, [r0] + lsls r0, r7, 2 + adds r3, r0 + ldr r2, _080F4CD0 + adds r1, r3, r2 + movs r0, 0xE + strb r0, [r1] + ldr r4, _080F4CD4 + adds r5, r3, r4 + movs r0, 0x1F + adds r2, r6, 0 + ands r2, r0 + ldrb r0, [r5] + movs r4, 0x20 + negs r4, r4 + adds r1, r4, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5] + adds r4, r7, 0x1 + ldr r7, _080F4CD8 + adds r0, r7, 0 + adds r2, r4, 0 + ands r2, r0 + lsls r2, 5 + ldrh r0, [r5] + ldr r7, _080F4CDC + adds r1, r7, 0 + ands r0, r1 + orrs r0, r2 + strh r0, [r5] + ldr r0, _080F4CE0 + adds r3, r0 + ldrb r0, [r3] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r3] + lsls r4, 16 + lsrs r7, r4, 16 +_080F4C58: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + mov r1, r8 + ldrb r1, [r1] + cmp r6, r1 + bcc _080F4BF6 +_080F4C66: + mov r2, r9 + ldr r4, [r2] + lsls r1, r7, 2 + adds r1, r4, r1 + ldr r3, _080F4CD0 + adds r0, r1, r3 + movs r5, 0 + strb r5, [r0] + ldr r0, _080F4CD4 + adds r2, r1, r0 + ldrb r3, [r2] + movs r0, 0x20 + negs r0, r0 + ands r0, r3 + strb r0, [r2] + ldrh r3, [r2] + ldr r0, _080F4CDC + ands r0, r3 + strh r0, [r2] + ldr r2, _080F4CE0 + adds r1, r2 + ldrb r2, [r1] + movs r0, 0x41 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r3, _080F4CE4 + adds r0, r4, r3 + strh r5, [r0] + adds r1, r7, 0x1 + ldr r7, _080F4CE8 + adds r0, r4, r7 + strh r1, [r0] + bl sub_80F4B20 + ldr r0, _080F4CEC + adds r4, r0 + movs r0, 0x1 + strb r0, [r4] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F4CC4: .4byte gUnknown_083DFEC4 +_080F4CC8: .4byte 0x00008828 +_080F4CCC: .4byte gPlayerParty +_080F4CD0: .4byte 0x0000893d +_080F4CD4: .4byte 0x0000893e +_080F4CD8: .4byte 0x000001ff +_080F4CDC: .4byte 0xffffc01f +_080F4CE0: .4byte 0x0000893f +_080F4CE4: .4byte 0x000087dc +_080F4CE8: .4byte 0x000087da +_080F4CEC: .4byte 0x000087cb + thumb_func_end sub_80F4BD0 + + thumb_func_start sub_80F4CF0 +sub_80F4CF0: @ 80F4CF0 + push {r4,lr} + ldr r0, _080F4D1C + ldr r4, [r0] + ldr r1, _080F4D20 + adds r0, r4, r1 + ldrh r1, [r0] + ldr r2, _080F4D24 + adds r0, r4, r2 + strh r1, [r0] + bl sub_80F4B20 + ldr r1, _080F4D28 + adds r0, r4, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _080F4D30 + ldr r0, _080F4D2C + adds r1, r4, r0 + movs r0, 0 + b _080F4D36 + .align 2, 0 +_080F4D1C: .4byte gUnknown_083DFEC4 +_080F4D20: .4byte 0x0000876e +_080F4D24: .4byte 0x000087dc +_080F4D28: .4byte 0x00008774 +_080F4D2C: .4byte 0x000087cb +_080F4D30: + ldr r2, _080F4D40 + adds r1, r4, r2 + movs r0, 0x1 +_080F4D36: + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F4D40: .4byte 0x000087cb + thumb_func_end sub_80F4CF0 + + thumb_func_start sub_80F4D44 +sub_80F4D44: @ 80F4D44 + push {r4,lr} + ldr r0, _080F4D78 + ldr r4, [r0] + ldr r1, _080F4D7C + adds r0, r4, r1 + movs r1, 0 + strb r1, [r0] + ldr r2, _080F4D80 + adds r0, r4, r2 + strb r1, [r0] + bl sub_80F492C + ldr r0, _080F4D84 + adds r4, r0 + ldrb r0, [r4] + cmp r0, 0 + bne _080F4D70 +_080F4D66: + bl sub_80F4D88 + lsls r0, 24 + cmp r0, 0 + bne _080F4D66 +_080F4D70: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F4D78: .4byte gUnknown_083DFEC4 +_080F4D7C: .4byte 0x00008fe6 +_080F4D80: .4byte 0x00008fe7 +_080F4D84: .4byte 0x00006dac + thumb_func_end sub_80F4D44 + + thumb_func_start sub_80F4D88 +sub_80F4D88: @ 80F4D88 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r6, _080F4E98 + ldr r4, [r6] + ldr r1, _080F4E9C + adds r0, r4, r1 + ldrb r3, [r0] + cmp r3, 0xE + bne _080F4DA4 + b _080F4EB8 +_080F4DA4: + cmp r3, 0xF + bne _080F4DAA + b _080F4F60 +_080F4DAA: + movs r1, 0x80 + lsls r1, 23 + ldr r0, [sp] + orrs r0, r1 + str r0, [sp] + movs r7, 0 + mov r10, r6 + ldr r2, _080F4E9C + adds r6, r4, r2 + ldr r3, _080F4EA0 + adds r5, r4, r3 + ldr r0, _080F4EA4 + adds r0, r4 + mov r9, r0 + ldr r1, _080F4EA8 + mov r8, r1 +_080F4DCA: + ldrb r0, [r6] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r5] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + add r1, r8 + adds r0, r1 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + beq _080F4E60 + ldrb r0, [r6] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r5] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + add r1, r8 + adds r0, r1 + movs r1, 0x2D + bl GetBoxMonData + cmp r0, 0 + bne _080F4E60 + ldrb r1, [r6] + lsls r1, 8 + ldr r2, _080F4EAC + ldr r0, [sp] + ands r0, r2 + orrs r0, r1 + str r0, [sp] + ldrb r2, [r5] + movs r1, 0x1F + ands r2, r1 + lsls r2, 16 + ldr r1, _080F4EB0 + ands r0, r1 + orrs r0, r2 + str r0, [sp] + ldrb r0, [r6] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r5] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + add r1, r8 + adds r0, r1 + mov r2, r9 + ldrb r1, [r2] + bl GetBoxMonData + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080F4EB4 + ldr r1, [sp] + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + bl sub_80F4944 +_080F4E60: + mov r3, r10 + ldr r1, [r3] + ldr r0, _080F4EA0 + adds r2, r1, r0 + ldrb r0, [r2] + adds r0, 0x1 + movs r4, 0 + strb r0, [r2] + movs r3, 0xFF + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1E + bne _080F4E8C + strb r4, [r2] + ldr r2, _080F4E9C + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ands r0, r3 + cmp r0, 0xE + beq _080F4F64 +_080F4E8C: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0xE + bls _080F4DCA + b _080F4F64 + .align 2, 0 +_080F4E98: .4byte gUnknown_083DFEC4 +_080F4E9C: .4byte 0x00008fe6 +_080F4EA0: .4byte 0x00008fe7 +_080F4EA4: .4byte 0x000087d8 +_080F4EA8: .4byte gUnknown_020300A4 +_080F4EAC: .4byte 0xffff00ff +_080F4EB0: .4byte 0xffe0ffff +_080F4EB4: .4byte 0xffffff00 +_080F4EB8: + mov r2, sp + ldrb r0, [r2, 0x3] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2, 0x3] + strb r3, [r2, 0x1] + movs r7, 0 + ldr r3, _080F4F44 + adds r0, r4, r3 + ldrb r0, [r0] + cmp r7, r0 + bcs _080F4F24 + mov r5, sp + mov r8, r6 + adds r6, r4, r3 +_080F4ED6: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _080F4F48 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _080F4F18 + movs r0, 0x1F + adds r2, r7, 0 + ands r2, r0 + ldrb r0, [r5, 0x2] + movs r3, 0x20 + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, 0x2] + mov r1, r8 + ldr r0, [r1] + ldr r2, _080F4F4C + adds r0, r2 + ldrb r1, [r0] + adds r0, r4, 0 + bl GetMonData + strb r0, [r5] + mov r0, sp + bl sub_80F4944 +_080F4F18: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + ldrb r3, [r6] + cmp r7, r3 + bcc _080F4ED6 +_080F4F24: + bl sub_80F49F4 + ldr r0, _080F4F50 + ldr r1, [r0] + ldr r2, _080F4F54 + adds r0, r1, r2 + ldrh r2, [r0] + ldr r3, _080F4F58 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, _080F4F5C + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080F4F64 + .align 2, 0 +_080F4F44: .4byte 0x00008828 +_080F4F48: .4byte gPlayerParty +_080F4F4C: .4byte 0x000087d8 +_080F4F50: .4byte gUnknown_083DFEC4 +_080F4F54: .4byte 0x00008fe4 +_080F4F58: .4byte 0x000087da +_080F4F5C: .4byte 0x00008fe6 +_080F4F60: + movs r0, 0 + b _080F4F66 +_080F4F64: + movs r0, 0x1 +_080F4F66: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F4D88 + + thumb_func_start sub_80F4F78 +sub_80F4F78: @ 80F4F78 + push {lr} + ldr r0, _080F4FA4 + ldr r1, [r0] + ldr r2, _080F4FA8 + adds r0, r1, r2 + ldr r3, _080F4FAC + adds r2, r1, r3 + movs r3, 0 + ldrsb r3, [r2, r3] + lsls r2, r3, 2 + adds r2, r3 + lsls r2, 2 + ldr r3, _080F4FB0 + adds r2, r3 + adds r1, r2 + bl sub_80F53EC + bl sub_80F5504 + pop {r0} + bx r0 + .align 2, 0 +_080F4FA4: .4byte gUnknown_083DFEC4 +_080F4FA8: .4byte 0x00009040 +_080F4FAC: .4byte 0x00008fe9 +_080F4FB0: .4byte 0x00009004 + thumb_func_end sub_80F4F78 + + thumb_func_start sub_80F4FB4 +sub_80F4FB4: @ 80F4FB4 + push {r4,lr} + bl sub_80F5504 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80F170C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + cmp r4, 0 + bne _080F4FD2 + cmp r0, 0 + beq _080F4FD4 +_080F4FD2: + movs r1, 0x1 +_080F4FD4: + adds r0, r1, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F4FB4 + + thumb_func_start sub_80F4FDC +sub_80F4FDC: @ 80F4FDC + push {lr} + ldr r0, _080F5020 + ldr r2, [r0] + ldr r1, _080F5024 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F4FFE + ldr r3, _080F5028 + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + ldr r3, _080F502C + adds r0, r2, r3 + ldrb r0, [r0] + cmp r1, r0 + beq _080F501A +_080F4FFE: + ldr r1, _080F5030 + adds r0, r2, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r3, _080F5034 + adds r0, r3 + adds r0, r2, r0 + adds r3, 0x3C + adds r1, r2, r3 + bl sub_80F53EC +_080F501A: + pop {r0} + bx r0 + .align 2, 0 +_080F5020: .4byte gUnknown_083DFEC4 +_080F5024: .4byte 0x000076aa +_080F5028: .4byte 0x000087dc +_080F502C: .4byte 0x00008828 +_080F5030: .4byte 0x00008fe9 +_080F5034: .4byte 0x00009004 + thumb_func_end sub_80F4FDC + + thumb_func_start sub_80F5038 +sub_80F5038: @ 80F5038 + push {r4,lr} + bl sub_80F5504 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80F173C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + cmp r4, 0 + bne _080F5056 + cmp r0, 0 + beq _080F5058 +_080F5056: + movs r1, 0x1 +_080F5058: + adds r0, r1, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F5038 + + thumb_func_start sub_80F5060 +sub_80F5060: @ 80F5060 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0 + beq _080F507C + ldr r0, _080F5074 + ldr r0, [r0] + ldr r1, _080F5078 + adds r0, r1 + b _080F5084 + .align 2, 0 +_080F5074: .4byte gUnknown_083DFEC4 +_080F5078: .4byte 0x00008feb +_080F507C: + ldr r0, _080F50FC + ldr r0, [r0] + ldr r2, _080F5100 + adds r0, r2 +_080F5084: + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _080F50FC + ldr r4, [r0] + ldr r3, _080F5104 + adds r5, r4, r3 + movs r1, 0 + ldrsb r1, [r5, r1] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r2, _080F5108 + adds r0, r2 + adds r0, r4, r0 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 2 + adds r1, r2 + adds r1, r4, r1 + bl sub_80F53EC + ldr r0, _080F510C + adds r3, r4, r0 + movs r1, 0 + ldrsh r0, [r3, r1] + lsls r0, 2 + adds r0, r4, r0 + ldr r2, _080F5110 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 25 + lsrs r0, 31 + mov r12, r0 + cmp r7, 0 + beq _080F5158 + ldr r7, _080F5100 + adds r1, r4, r7 + ldrb r0, [r1] + adds r7, 0x1 + adds r2, r4, r7 + strb r0, [r2] + ldrb r0, [r5] + strb r0, [r1] + strb r6, [r5] + ldrb r1, [r2] + ldr r2, _080F5114 + adds r0, r4, r2 + strb r1, [r0] + adds r5, r4, 0 + ldrh r1, [r3] + movs r7, 0 + ldrsh r0, [r3, r7] + cmp r0, 0 + beq _080F5118 + subs r2, r1, 0x1 + b _080F5120 + .align 2, 0 +_080F50FC: .4byte gUnknown_083DFEC4 +_080F5100: .4byte 0x00008fea +_080F5104: .4byte 0x00008fe9 +_080F5108: .4byte 0x00009004 +_080F510C: .4byte 0x000087dc +_080F5110: .4byte 0x0000893f +_080F5114: .4byte 0x00008fec +_080F5118: + ldr r1, _080F513C + adds r0, r4, r1 + ldrh r0, [r0] + subs r2, r0, 0x1 +_080F5120: + ldr r1, _080F5140 + adds r0, r5, r1 + strh r2, [r0] + ldr r2, _080F5144 + ldr r3, [r2] + adds r1, r3, r1 + ldrh r4, [r1] + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r0, 0 + beq _080F5148 + subs r1, r4, 0x1 + b _080F51CE + .align 2, 0 +_080F513C: .4byte 0x000087da +_080F5140: .4byte 0x000087dc +_080F5144: .4byte gUnknown_083DFEC4 +_080F5148: + ldr r7, _080F5154 + adds r0, r3, r7 + ldrh r0, [r0] + subs r1, r0, 0x1 + b _080F51CE + .align 2, 0 +_080F5154: .4byte 0x000087da +_080F5158: + ldr r7, _080F518C + adds r1, r4, r7 + ldrb r0, [r1] + subs r7, 0x1 + adds r2, r4, r7 + strb r0, [r2] + ldrb r0, [r5] + strb r0, [r1] + strb r6, [r5] + ldrb r1, [r2] + ldr r2, _080F5190 + adds r0, r4, r2 + strb r1, [r0] + adds r2, r4, 0 + movs r4, 0 + ldrsh r1, [r3, r4] + ldr r5, _080F5194 + adds r0, r2, r5 + movs r7, 0 + ldrsh r0, [r0, r7] + subs r0, 0x1 + cmp r1, r0 + bge _080F5198 + ldrh r0, [r3] + adds r3, r0, 0x1 + b _080F519A + .align 2, 0 +_080F518C: .4byte 0x00008feb +_080F5190: .4byte 0x00008fec +_080F5194: .4byte 0x000087da +_080F5198: + movs r3, 0 +_080F519A: + ldr r1, _080F51C0 + adds r0, r2, r1 + strh r3, [r0] + ldr r2, _080F51C4 + ldr r3, [r2] + adds r4, r3, r1 + movs r0, 0 + ldrsh r1, [r4, r0] + ldr r5, _080F51C8 + adds r0, r3, r5 + movs r7, 0 + ldrsh r0, [r0, r7] + subs r0, 0x1 + cmp r1, r0 + bge _080F51CC + ldrh r0, [r4] + adds r1, r0, 0x1 + b _080F51CE + .align 2, 0 +_080F51C0: .4byte 0x000087dc +_080F51C4: .4byte gUnknown_083DFEC4 +_080F51C8: .4byte 0x000087da +_080F51CC: + movs r1, 0 +_080F51CE: + ldr r4, _080F51FC + adds r0, r3, r4 + strh r1, [r0] + ldr r1, [r2] + ldr r5, _080F5200 + adds r0, r1, r5 + movs r7, 0 + ldrsh r0, [r0, r7] + lsls r0, 2 + adds r0, r1, r0 + ldr r3, _080F5204 + adds r0, r3 + ldrb r0, [r0] + lsls r0, 25 + lsrs r0, 31 + mov r4, r12 + cmp r4, 0 + bne _080F520C + adds r5, 0x4 + adds r1, r5 + ldr r0, _080F5208 + b _080F5226 + .align 2, 0 +_080F51FC: .4byte 0x00008fee +_080F5200: .4byte 0x000087dc +_080F5204: .4byte 0x0000893f +_080F5208: .4byte sub_80F5264 +_080F520C: + cmp r0, 0 + bne _080F5220 + ldr r7, _080F5218 + adds r1, r7 + ldr r0, _080F521C + b _080F5226 + .align 2, 0 +_080F5218: .4byte 0x000087e0 +_080F521C: .4byte sub_80F52F8 +_080F5220: + ldr r0, _080F5238 + adds r1, r0 + ldr r0, _080F523C +_080F5226: + str r0, [r1] + ldr r0, [r2] + ldr r1, _080F5240 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5238: .4byte 0x000087e0 +_080F523C: .4byte sub_80F5364 +_080F5240: .4byte 0x000087de + thumb_func_end sub_80F5060 + + thumb_func_start gpu_sync_bg_show +gpu_sync_bg_show: @ 80F5244 + push {lr} + ldr r0, _080F525C + ldr r0, [r0] + ldr r1, _080F5260 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080F525C: .4byte gUnknown_083DFEC4 +_080F5260: .4byte 0x000087e0 + thumb_func_end gpu_sync_bg_show + + thumb_func_start sub_80F5264 +sub_80F5264: @ 80F5264 + push {r4,r5,lr} + ldr r0, _080F5280 + ldr r0, [r0] + ldr r1, _080F5284 + adds r5, r0, r1 + ldrb r1, [r5] + cmp r1, 0x1 + beq _080F52AA + cmp r1, 0x1 + bgt _080F5288 + cmp r1, 0 + beq _080F528E + b _080F52F0 + .align 2, 0 +_080F5280: .4byte gUnknown_083DFEC4 +_080F5284: .4byte 0x000087de +_080F5288: + cmp r1, 0x2 + beq _080F52EC + b _080F52F0 +_080F528E: + ldr r2, _080F52D8 + adds r4, r0, r2 + ldrb r0, [r4] + bl sub_80F2E18 + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r0, 16 + lsrs r0, 16 + bl sub_80F01E0 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] +_080F52AA: + bl sub_80F4FB4 + lsls r0, 24 + cmp r0, 0 + bne _080F52F0 + ldr r0, _080F52DC + ldr r4, [r0] + ldr r1, _080F52E0 + adds r0, r4, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + ldr r2, _080F52E4 + adds r1, r4, r2 + ldrb r1, [r1] + bl sub_80F4900 + ldr r0, _080F52E8 + adds r4, r0 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _080F52F0 + .align 2, 0 +_080F52D8: .4byte 0x00008fe9 +_080F52DC: .4byte gUnknown_083DFEC4 +_080F52E0: .4byte 0x00008fee +_080F52E4: .4byte 0x00008fec +_080F52E8: .4byte 0x000087de +_080F52EC: + movs r0, 0 + b _080F52F2 +_080F52F0: + movs r0, 0x1 +_080F52F2: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F5264 + + thumb_func_start sub_80F52F8 +sub_80F52F8: @ 80F52F8 + push {r4,r5,lr} + ldr r0, _080F5310 + ldr r4, [r0] + ldr r0, _080F5314 + adds r5, r4, r0 + ldrb r0, [r5] + cmp r0, 0 + beq _080F5318 + cmp r0, 0x1 + beq _080F5358 + b _080F535C + .align 2, 0 +_080F5310: .4byte gUnknown_083DFEC4 +_080F5314: .4byte 0x000087de +_080F5318: + bl sub_80F5038 + lsls r0, 24 + cmp r0, 0 + bne _080F535C + ldr r1, _080F5350 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + bl sub_80F01E0 + ldr r2, _080F5354 + adds r0, r4, r2 + movs r1, 0 + ldrsh r0, [r0, r1] + subs r2, 0x2 + adds r1, r4, r2 + ldrb r1, [r1] + bl sub_80F4900 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _080F535C + .align 2, 0 +_080F5350: .4byte 0x00008fe9 +_080F5354: .4byte 0x00008fee +_080F5358: + movs r0, 0 + b _080F535E +_080F535C: + movs r0, 0x1 +_080F535E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F52F8 + + thumb_func_start sub_80F5364 +sub_80F5364: @ 80F5364 + push {r4,r5,lr} + ldr r0, _080F5380 + ldr r4, [r0] + ldr r0, _080F5384 + adds r5, r4, r0 + ldrb r0, [r5] + cmp r0, 0x1 + beq _080F53B8 + cmp r0, 0x1 + bgt _080F5388 + cmp r0, 0 + beq _080F538E + b _080F53E4 + .align 2, 0 +_080F5380: .4byte gUnknown_083DFEC4 +_080F5384: .4byte 0x000087de +_080F5388: + cmp r0, 0x2 + beq _080F53CA + b _080F53E4 +_080F538E: + bl sub_80F5504 + bl sub_80F173C + lsls r0, 24 + cmp r0, 0 + bne _080F53E4 + ldr r1, _080F53B4 + adds r4, r1 + ldrb r0, [r4] + bl sub_80F2E18 + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r0, 16 + lsrs r0, 16 + bl sub_80F01E0 + b _080F53C2 + .align 2, 0 +_080F53B4: .4byte 0x00008fe9 +_080F53B8: + bl sub_80F4FB4 + lsls r0, 24 + cmp r0, 0 + bne _080F53E4 +_080F53C2: + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _080F53E4 +_080F53CA: + ldr r2, _080F53E0 + adds r0, r4, r2 + movs r1, 0 + ldrsh r0, [r0, r1] + subs r2, 0x2 + adds r1, r4, r2 + ldrb r1, [r1] + bl sub_80F4900 + movs r0, 0 + b _080F53E6 + .align 2, 0 +_080F53E0: .4byte 0x00008fee +_080F53E4: + movs r0, 0x1 +_080F53E6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F5364 + + thumb_func_start sub_80F53EC +sub_80F53EC: @ 80F53EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + str r0, [sp] + mov r9, r1 + movs r7, 0 + ldr r0, _080F54F4 + ldr r0, [r0] + str r0, [sp, 0x4] +_080F5404: + lsls r4, r7, 2 + ldr r1, [sp] + adds r0, r4, r1 + ldrh r1, [r0] + lsls r5, r1, 8 + mov r2, r9 + adds r0, r4, r2 + ldrh r0, [r0] + subs r0, r1 + lsls r0, 8 + movs r1, 0xA + bl __divsi3 + adds r6, r0, 0 + movs r3, 0 + adds r7, 0x1 + mov r10, r7 + mov r8, r4 +_080F5428: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + add r0, r8 + ldr r7, [sp, 0x4] + adds r0, r7, r0 + asrs r2, r5, 8 + asrs r1, r5, 7 + movs r7, 0x1 + ands r1, r7 + adds r2, r1 + ldr r1, _080F54F8 + adds r0, r1 + strh r2, [r0] + adds r5, r6 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x8 + bls _080F5428 + ldr r2, _080F54F4 + ldr r1, [r2] + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + adds r0, r4, r0 + adds r1, r0 + mov r3, r9 + adds r2, r4, r3 + ldrh r0, [r2] + ldr r7, _080F54F8 + adds r1, r7 + strh r0, [r1] + ldr r1, [sp] + adds r0, r4, r1 + ldrh r1, [r0, 0x2] + lsls r5, r1, 8 + ldrh r0, [r2, 0x2] + subs r0, r1 + lsls r0, 8 + movs r1, 0xA + bl __divsi3 + adds r6, r0, 0 + movs r3, 0 + ldr r0, _080F54F4 + ldr r0, [r0] + mov r12, r0 + str r4, [sp, 0x8] + movs r2, 0x1 + mov r8, r2 +_080F548E: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + ldr r7, [sp, 0x8] + adds r0, r7, r0 + add r0, r12 + asrs r2, r5, 8 + asrs r1, r5, 7 + mov r7, r8 + ands r1, r7 + adds r2, r1 + ldr r1, _080F54FC + adds r0, r1 + strh r2, [r0] + adds r5, r6 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x8 + bls _080F548E + ldr r7, _080F54F4 + ldr r2, [r7] + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + adds r0, r4, r0 + adds r0, r2, r0 + mov r3, r9 + adds r1, r4, r3 + ldrh r1, [r1, 0x2] + ldr r7, _080F54FC + adds r0, r7 + strh r1, [r0] + mov r1, r10 + lsls r0, r1, 16 + lsrs r7, r0, 16 + cmp r7, 0x4 + bls _080F5404 + ldr r3, _080F5500 + adds r1, r2, r3 + movs r0, 0 + strh r0, [r1] + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F54F4: .4byte gUnknown_083DFEC4 +_080F54F8: .4byte 0x00009054 +_080F54FC: .4byte 0x00009056 +_080F5500: .4byte 0x00009342 + thumb_func_end sub_80F53EC + + thumb_func_start sub_80F5504 +sub_80F5504: @ 80F5504 + push {r4,lr} + ldr r0, _080F551C + ldr r2, [r0] + ldr r0, _080F5520 + adds r4, r2, r0 + ldrh r0, [r4] + adds r1, r0, 0 + cmp r1, 0x9 + bls _080F5524 + movs r0, 0 + b _080F5544 + .align 2, 0 +_080F551C: .4byte gUnknown_083DFEC4 +_080F5520: .4byte 0x00009342 +_080F5524: + adds r0, 0x1 + strh r0, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F554C + adds r0, r1 + adds r0, r2, r0 + bl sub_80F556C + ldrh r1, [r4] + movs r0, 0xA + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 +_080F5544: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F554C: .4byte 0x00009054 + thumb_func_end sub_80F5504 + + thumb_func_start sub_80F5550 +sub_80F5550: @ 80F5550 + push {lr} + bl sub_80F53EC + pop {r0} + bx r0 + thumb_func_end sub_80F5550 + + thumb_func_start sub_80F555C +sub_80F555C: @ 80F555C + push {lr} + bl sub_80F5504 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80F555C + + thumb_func_start sub_80F556C +sub_80F556C: @ 80F556C + push {r4,r5,lr} + adds r4, r0, 0 + movs r2, 0 + ldr r5, _080F55A0 + ldr r0, [r5] + ldr r1, _080F55A4 + adds r3, r0, r1 +_080F557A: + lsls r0, r2, 2 + adds r1, r3, r0 + adds r0, r4 + ldr r0, [r0] + str r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x4 + bls _080F557A + ldr r0, [r5] + ldr r1, _080F55A8 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F55A0: .4byte gUnknown_083DFEC4 +_080F55A4: .4byte 0x0000911c +_080F55A8: .4byte 0x00009344 + thumb_func_end sub_80F556C + + thumb_func_start sub_80F55AC +sub_80F55AC: @ 80F55AC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r6, r0, 0 + mov r8, r1 + ldr r1, _080F5674 + ldrb r0, [r6] + adds r0, r1 + ldrb r2, [r0] + adds r6, 0x1 + movs r0, 0x9B + mov r3, r8 + strh r0, [r3] + movs r0, 0x5B + subs r0, r2 + strh r0, [r3, 0x2] + movs r7, 0x40 + movs r0, 0 + mov r12, r0 + movs r2, 0x1 + mov r9, r2 + ldr r3, _080F5678 + mov r10, r3 +_080F55DE: + adds r0, r7, 0 + adds r0, 0x33 + lsls r0, 24 + lsrs r7, r0, 24 + mov r1, r12 + lsls r0, r1, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r3, r0, 24 + mov r12, r3 + cmp r0, 0 + bge _080F55FC + movs r0, 0x4 + mov r12, r0 +_080F55FC: + mov r1, r12 + lsls r0, r1, 24 + asrs r4, r0, 24 + cmp r4, 0x2 + bne _080F560C + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_080F560C: + ldrb r0, [r6] + ldr r2, _080F5674 + adds r0, r2 + ldrb r2, [r0] + adds r6, 0x1 + lsls r0, r4, 2 + mov r1, r8 + adds r3, r0, r1 + adds r0, r7, 0 + adds r0, 0x40 + lsls r0, 1 + add r0, r10 + movs r1, 0 + ldrsh r0, [r0, r1] + muls r0, r2 + asrs r5, r0, 8 + adds r0, r5, 0 + adds r0, 0x9B + strh r0, [r3] + lsls r0, r7, 1 + add r0, r10 + movs r1, 0 + ldrsh r0, [r0, r1] + adds r1, r2, 0 + muls r1, r0 + asrs r1, 8 + movs r0, 0x5B + subs r0, r1 + strh r0, [r3, 0x2] + cmp r4, 0x2 + bgt _080F5658 + cmp r2, 0x20 + bne _080F5652 + cmp r4, 0x2 + beq _080F5658 +_080F5652: + adds r0, r5, 0 + adds r0, 0x9C + strh r0, [r3] +_080F5658: + mov r0, r9 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + cmp r0, 0x4 + bls _080F55DE + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5674: .4byte gUnknown_083E4890 +_080F5678: .4byte gSineTable + thumb_func_end sub_80F55AC + + thumb_func_start sub_80F567C +sub_80F567C: @ 80F567C + push {lr} + bl sub_80F55AC + pop {r0} + bx r0 + thumb_func_end sub_80F567C + + thumb_func_start sub_80F5688 +sub_80F5688: @ 80F5688 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + adds r6, r0, 0 + adds r5, r1, 0 + str r2, [sp] + ldr r7, [sp, 0x34] + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + movs r0, 0 + str r0, [sp, 0x8] + ldrh r0, [r5, 0x2] + ldrh r1, [r2, 0x2] + cmp r0, r1 + bcs _080F56D0 + adds r2, r0, 0 + str r2, [sp, 0x4] + ldr r3, [sp] + ldrh r0, [r3, 0x2] + ldrh r1, [r5] + lsls r4, r1, 10 + ldrh r2, [r3] + mov r10, r2 + ldr r3, [sp, 0x4] + subs r0, r3 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0 + beq _080F56FC + subs r0, r2, r1 + b _080F56F2 +_080F56D0: + ldrh r0, [r5, 0x2] + ldr r1, [sp] + ldrh r1, [r1, 0x2] + str r1, [sp, 0x4] + ldr r2, [sp] + ldrh r1, [r2] + lsls r4, r1, 10 + ldrh r3, [r5] + mov r10, r3 + ldr r2, [sp, 0x4] + subs r0, r2 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0 + beq _080F56FC + subs r0, r3, r1 +_080F56F2: + lsls r0, 10 + mov r1, r8 + bl __divsi3 + str r0, [sp, 0x8] +_080F56FC: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r7, 0 + bne _080F5746 + ldr r0, [sp, 0x4] + subs r0, 0x38 + lsls r0, 2 + adds r6, r0 + movs r5, 0 + mov r3, r9 + lsls r3, 1 + mov r12, r3 + mov r0, r10 + add r0, r9 + str r0, [sp, 0xC] + cmp r7, r8 + bcs _080F57D4 + movs r7, 0x1 +_080F5726: + adds r2, r3, r6 + asrs r1, r4, 10 + asrs r0, r4, 9 + ands r0, r7 + adds r1, r0 + add r1, r9 + strh r1, [r2] + ldr r1, [sp, 0x8] + adds r4, r1 + adds r6, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _080F5726 + b _080F57D4 +_080F5746: + ldr r2, [sp, 0x8] + cmp r2, 0 + ble _080F57E4 + ldr r0, [sp, 0x4] + subs r0, 0x38 + lsls r0, 2 + adds r7, r0 + movs r5, 0 + mov r3, r9 + lsls r3, 1 + mov r12, r3 + mov r0, r10 + add r0, r9 + str r0, [sp, 0xC] + cmp r5, r8 + bcs _080F5798 + ldr r0, _080F57D8 + cmp r4, r0 + bgt _080F5798 + mov r1, r12 + str r1, [sp, 0x10] + mov r10, r0 +_080F5772: + ldr r3, [sp, 0x10] + adds r2, r3, r7 + asrs r1, r4, 10 + asrs r0, r4, 9 + movs r3, 0x1 + ands r0, r3 + adds r1, r0 + add r1, r9 + strh r1, [r2] + ldr r0, [sp, 0x8] + adds r4, r0 + adds r7, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcs _080F5798 + cmp r4, r10 + ble _080F5772 +_080F5798: + ldr r1, _080F57DC + ldr r0, [r1] + ldr r2, [sp, 0x4] + adds r1, r2, r5 + ldr r3, _080F57E0 + adds r0, r3 + strh r1, [r0] + ldrh r0, [r0] + subs r0, 0x38 + lsls r0, 2 + adds r6, r0 + cmp r5, r8 + bcs _080F57D4 + mov r3, r12 + movs r7, 0x1 +_080F57B6: + adds r2, r3, r6 + asrs r1, r4, 10 + asrs r0, r4, 9 + ands r0, r7 + adds r1, r0 + add r1, r9 + strh r1, [r2] + ldr r0, [sp, 0x8] + adds r4, r0 + adds r6, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _080F57B6 +_080F57D4: + subs r0, r6, 0x4 + b _080F58C4 + .align 2, 0 +_080F57D8: .4byte 0x00026bff +_080F57DC: .4byte gUnknown_083DFEC4 +_080F57E0: .4byte 0x00009340 +_080F57E4: + ldr r1, [sp, 0x8] + cmp r1, 0 + bge _080F5890 + ldr r0, [sp, 0x4] + subs r0, 0x38 + lsls r0, 2 + adds r6, r0 + movs r5, 0 + mov r2, r9 + lsls r2, 1 + mov r12, r2 + mov r3, r10 + add r3, r9 + str r3, [sp, 0xC] + cmp r5, r8 + bcs _080F5842 + adds r3, r2, r6 + asrs r1, r4, 10 + asrs r0, r4, 9 + movs r2, 0x1 + ands r0, r2 + adds r1, r0 + add r1, r9 + strh r1, [r3] + b _080F5838 +_080F5816: + ldr r0, [sp, 0x8] + adds r4, r0 + adds r6, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcs _080F5842 + mov r1, r12 + adds r3, r1, r6 + asrs r2, r4, 10 + asrs r0, r4, 9 + movs r1, 0x1 + ands r0, r1 + adds r2, r0 + add r2, r9 + strh r2, [r3] +_080F5838: + ldr r0, _080F5884 + cmp r4, r0 + bgt _080F5816 + movs r0, 0x9B + strh r0, [r3] +_080F5842: + ldr r2, _080F5888 + ldr r0, [r2] + ldr r3, [sp, 0x4] + adds r1, r3, r5 + ldr r2, _080F588C + adds r0, r2 + strh r1, [r0] + ldrh r0, [r0] + subs r0, 0x38 + lsls r0, 2 + adds r7, r0 + cmp r5, r8 + bcs _080F587E + mov r3, r12 + movs r6, 0x1 +_080F5860: + adds r2, r3, r7 + asrs r1, r4, 10 + asrs r0, r4, 9 + ands r0, r6 + adds r1, r0 + add r1, r9 + strh r1, [r2] + ldr r0, [sp, 0x8] + adds r4, r0 + adds r7, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _080F5860 +_080F587E: + subs r0, r7, 0x4 + b _080F58C4 + .align 2, 0 +_080F5884: .4byte 0x00026bff +_080F5888: .4byte gUnknown_083DFEC4 +_080F588C: .4byte 0x00009340 +_080F5890: + ldr r0, _080F58BC + ldr r0, [r0] + ldr r1, _080F58C0 + adds r0, r1 + mov r2, sp + ldrh r2, [r2, 0x4] + strh r2, [r0] + ldr r0, [sp, 0x4] + subs r0, 0x38 + lsls r0, 2 + adds r6, r0 + adds r7, r0 + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r6, 0x2] + ldr r3, [sp] + ldrh r0, [r3] + strh r0, [r7] + movs r0, 0x9B + strh r0, [r7, 0x2] + b _080F58CC + .align 2, 0 +_080F58BC: .4byte gUnknown_083DFEC4 +_080F58C0: .4byte 0x00009340 +_080F58C4: + add r0, r12 + mov r1, sp + ldrh r1, [r1, 0xC] + strh r1, [r0] +_080F58CC: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80F5688 + + thumb_func_start sub_80F58DC +sub_80F58DC: @ 80F58DC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r0, [r5, 0x2] + ldrh r1, [r5, 0x6] + cmp r0, r1 + bcs _080F5914 + adds r4, r0, 0 + mov r8, r4 + ldr r0, _080F590C + ldr r0, [r0] + ldr r1, _080F5910 + adds r0, r1 + adds r4, r5, 0x4 + movs r1, 0 + str r1, [sp] + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0x1 + bl sub_80F5688 + b _080F5930 + .align 2, 0 +_080F590C: .4byte gUnknown_083DFEC4 +_080F5910: .4byte 0x00009130 +_080F5914: + ldrh r4, [r5, 0x6] + mov r8, r4 + ldr r0, _080F5A08 + ldr r0, [r0] + ldr r1, _080F5A0C + adds r0, r1 + adds r4, r5, 0x4 + movs r1, 0 + str r1, [sp] + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0 + bl sub_80F5688 +_080F5930: + adds r1, r4, 0 + ldr r0, _080F5A08 + ldr r6, [r0] + ldr r0, _080F5A0C + adds r4, r6, r0 + adds r7, r5, 0 + adds r7, 0x8 + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + adds r2, r7, 0 + movs r3, 0x1 + bl sub_80F5688 + movs r3, 0 + ldrh r0, [r5, 0xA] + ldrh r1, [r5, 0xE] + cmp r0, r1 + bhi _080F5958 + movs r3, 0x1 +_080F5958: + adds r2, r5, 0 + adds r2, 0xC + ldr r1, _080F5A10 + adds r0, r6, r1 + str r0, [sp] + adds r0, r4, 0 + adds r1, r7, 0 + bl sub_80F5688 + movs r2, 0x38 + cmp r2, r8 + bcs _080F5990 + adds r7, r4, 0 + movs r3, 0 + ldr r0, _080F5A14 + adds r4, r6, r0 +_080F5978: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r1, r7, r0 + strh r3, [r1] + adds r0, r4, r0 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r8 + bcc _080F5978 +_080F5990: + ldrh r2, [r5, 0x2] + ldr r0, _080F5A08 + ldr r3, [r0] + ldr r4, _080F5A18 + adds r1, r3, r4 + adds r6, r0, 0 + ldrh r0, [r1] + cmp r2, r0 + bhi _080F59BE + ldr r4, _080F5A0C + adds r3, r4 + movs r4, 0x9B +_080F59A8: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r0, r3, r0 + strh r4, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r1] + cmp r2, r0 + bls _080F59A8 +_080F59BE: + ldr r4, [r6] + ldr r1, _080F5A18 + adds r0, r4, r1 + ldrh r0, [r0] + ldrh r1, [r5, 0xA] + cmp r0, r1 + bcs _080F59CE + adds r0, r1, 0 +_080F59CE: + adds r0, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x79 + bhi _080F59FA + ldr r0, _080F5A0C + adds r5, r4, r0 + movs r3, 0 + ldr r1, _080F5A14 + adds r4, r1 +_080F59E2: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r1, r5, r0 + strh r3, [r1] + adds r0, r4, r0 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x79 + bls _080F59E2 +_080F59FA: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5A08: .4byte gUnknown_083DFEC4 +_080F5A0C: .4byte 0x00009130 +_080F5A10: .4byte 0x00009238 +_080F5A14: .4byte 0x00009132 +_080F5A18: .4byte 0x00009340 + thumb_func_end sub_80F58DC + + thumb_func_start sub_80F5A1C +sub_80F5A1C: @ 80F5A1C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r0, [r5, 0x2] + ldrh r1, [r5, 0x12] + cmp r0, r1 + bcs _080F5A54 + adds r7, r0, 0 + ldr r0, _080F5A4C + ldr r0, [r0] + ldr r2, _080F5A50 + adds r0, r2 + adds r4, r5, 0 + adds r4, 0x10 + movs r1, 0 + str r1, [sp] + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0 + bl sub_80F5688 + b _080F5A70 + .align 2, 0 +_080F5A4C: .4byte gUnknown_083DFEC4 +_080F5A50: .4byte 0x00009238 +_080F5A54: + ldrh r7, [r5, 0x12] + ldr r0, _080F5B28 + ldr r0, [r0] + ldr r4, _080F5B2C + adds r0, r4 + adds r4, r5, 0 + adds r4, 0x10 + movs r1, 0 + str r1, [sp] + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x1 + bl sub_80F5688 +_080F5A70: + adds r1, r4, 0 + ldr r0, _080F5B28 + ldr r0, [r0] + mov r8, r0 + ldr r4, _080F5B2C + add r4, r8 + adds r2, r5, 0 + adds r2, 0xC + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r3, 0 + bl sub_80F5688 + movs r2, 0x38 + cmp r2, r7 + bcs _080F5AB2 + adds r6, r4, 0 + movs r3, 0 + ldr r4, _080F5B30 + add r4, r8 +_080F5A9A: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r1, r6, r0 + strh r3, [r1] + adds r0, r4, r0 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r7 + bcc _080F5A9A +_080F5AB2: + ldrh r2, [r5, 0x2] + ldr r0, _080F5B28 + ldr r3, [r0] + ldr r4, _080F5B34 + adds r1, r3, r4 + adds r6, r0, 0 + ldrh r0, [r1] + cmp r2, r0 + bhi _080F5AE0 + ldr r4, _080F5B30 + adds r3, r4 + movs r4, 0x9B +_080F5ACA: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r0, r3, r0 + strh r4, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r1] + cmp r2, r0 + bls _080F5ACA +_080F5AE0: + ldrh r0, [r5, 0xE] + adds r1, r0, 0x1 + ldr r3, [r6] + ldr r2, _080F5B34 + adds r0, r3, r2 + ldrh r0, [r0] + cmp r0, r1 + bge _080F5AF2 + adds r0, r1, 0 +_080F5AF2: + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x79 + bhi _080F5B1C + ldr r4, _080F5B2C + adds r5, r3, r4 + movs r4, 0 + ldr r0, _080F5B30 + adds r3, r0 +_080F5B04: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r1, r5, r0 + strh r4, [r1] + adds r0, r3, r0 + strh r4, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x79 + bls _080F5B04 +_080F5B1C: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5B28: .4byte gUnknown_083DFEC4 +_080F5B2C: .4byte 0x00009238 +_080F5B30: .4byte 0x0000923a +_080F5B34: .4byte 0x00009340 + thumb_func_end sub_80F5A1C + + thumb_func_start sub_80F5B38 +sub_80F5B38: @ 80F5B38 + ldr r0, _080F5B48 + ldr r0, [r0] + ldr r1, _080F5B4C + adds r0, r1 + movs r1, 0 + strb r1, [r0] + bx lr + .align 2, 0 +_080F5B48: .4byte gUnknown_083DFEC4 +_080F5B4C: .4byte 0x00009345 + thumb_func_end sub_80F5B38 + + thumb_func_start sub_80F5B50 +sub_80F5B50: @ 80F5B50 + push {r4,r5,lr} + sub sp, 0xC + ldr r0, _080F5B68 + ldr r0, [r0] + ldr r1, _080F5B6C + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + beq _080F5B70 + cmp r0, 0x1 + beq _080F5BB4 + b _080F5BCC + .align 2, 0 +_080F5B68: .4byte gUnknown_083DFEC4 +_080F5B6C: .4byte 0x00009345 +_080F5B70: + bl dp12_8087EA4 + ldr r0, _080F5BA8 + movs r2, 0xEF + movs r3, 0xF4 + lsls r3, 3 + adds r1, r0, r3 + adds r0, 0x20 + movs r3, 0xF +_080F5B82: + strh r2, [r0] + strh r2, [r0, 0x2] + strh r2, [r1] + strh r2, [r1, 0x2] + adds r1, 0x4 + adds r0, 0x4 + subs r3, 0x1 + cmp r3, 0 + bge _080F5B82 + ldr r0, _080F5BAC + ldr r1, [r0] + ldr r5, _080F5BB0 + adds r1, r5 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0x1 + b _080F5BCE + .align 2, 0 +_080F5BA8: .4byte gUnknown_03004DE0 +_080F5BAC: .4byte gUnknown_083DFEC4 +_080F5BB0: .4byte 0x00009345 +_080F5BB4: + mov r0, sp + ldr r1, _080F5BD8 + ldm r1!, {r2,r3,r5} + stm r0!, {r2,r3,r5} + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80895F8 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_080F5BCC: + movs r0, 0 +_080F5BCE: + add sp, 0xC + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F5BD8: .4byte gUnknown_083E4990 + thumb_func_end sub_80F5B50 + + thumb_func_start sub_80F5BDC +sub_80F5BDC: @ 80F5BDC + push {lr} + ldr r1, _080F5BEC + movs r0, 0x3 + strb r0, [r1, 0x15] + bl sub_8089668 + pop {r0} + bx r0 + .align 2, 0 +_080F5BEC: .4byte gUnknown_03004DC0 + thumb_func_end sub_80F5BDC + + thumb_func_start sub_80F5BF0 +sub_80F5BF0: @ 80F5BF0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + ldr r0, _080F5CB8 + ldr r5, [r0] + ldr r1, _080F5CBC + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F5CA6 + ldr r0, _080F5CC0 + adds r4, r5, r0 + adds r0, r4, 0 + bl sub_80F58DC + adds r0, r4, 0 + bl sub_80F5A1C + movs r6, 0 + ldr r1, _080F5CC4 + mov r12, r1 + movs r0, 0xF0 + lsls r0, 3 + add r0, r12 + mov r9, r0 + adds r7, r5, 0 + ldr r1, _080F5CC8 + mov r8, r1 + ldr r5, _080F5CCC + adds r5, r7, r5 + str r5, [sp] + ldr r0, _080F5CD0 + adds r0, r7, r0 + str r0, [sp, 0x4] + ldr r1, _080F5CD4 + adds r1, r7 + mov r10, r1 +_080F5C40: + adds r2, r6, 0 + adds r2, 0x37 + lsls r3, r2, 2 + mov r5, r9 + adds r5, r3, r5 + str r5, [sp, 0x8] + add r3, r12 + lsls r4, r6, 2 + ldr r1, [sp] + adds r0, r1, r4 + ldrh r0, [r0] + lsls r0, 8 + ldr r5, [sp, 0x4] + adds r1, r5, r4 + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r3] + mov r1, r8 + ands r0, r1 + ldr r5, [sp, 0x8] + strh r0, [r5] + lsls r2, 1 + adds r2, 0x1 + lsls r2, 1 + mov r0, r9 + adds r3, r2, r0 + add r2, r12 + mov r1, r10 + adds r0, r1, r4 + ldrh r1, [r0] + lsls r1, 8 + ldr r5, _080F5CD8 + adds r0, r7, r5 + adds r0, r4 + ldrh r0, [r0] + orrs r1, r0 + strh r1, [r2] + mov r0, r8 + ands r1, r0 + strh r1, [r3] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _080F5CB8 + cmp r6, 0x41 + bls _080F5C40 + ldr r0, [r0] + ldr r1, _080F5CBC + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_080F5CA6: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5CB8: .4byte gUnknown_083DFEC4 +_080F5CBC: .4byte 0x00009344 +_080F5CC0: .4byte 0x0000911c +_080F5CC4: .4byte gUnknown_03004DE0 +_080F5CC8: .4byte 0x0000ffff +_080F5CCC: .4byte 0x00009130 +_080F5CD0: .4byte 0x00009132 +_080F5CD4: .4byte 0x00009238 +_080F5CD8: .4byte 0x0000923a + thumb_func_end sub_80F5BF0 + + thumb_func_start sub_80F5CDC +sub_80F5CDC: @ 80F5CDC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080F5DB0 + ldr r6, [r0] + ldr r1, _080F5DB4 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F5DA0 + ldr r0, _080F5DB8 + adds r4, r6, r0 + adds r0, r4, 0 + bl sub_80F58DC + adds r0, r4, 0 + bl sub_80F5A1C + movs r0, 0x37 + subs r0, r5 + lsls r0, 17 + lsrs r5, r0, 16 + movs r7, 0 + ldr r1, _080F5DBC + mov r12, r1 + movs r4, 0xF0 + lsls r4, 3 + add r4, r12 + mov r9, r4 + ldr r0, _080F5DC0 + mov r8, r0 + ldr r1, _080F5DC4 + adds r1, r6, r1 + str r1, [sp] + ldr r4, _080F5DC8 + adds r4, r6, r4 + str r4, [sp, 0x4] + ldr r0, _080F5DCC + adds r0, r6 + mov r10, r0 +_080F5D36: + lsls r2, r5, 1 + mov r1, r9 + adds r1, r2, r1 + str r1, [sp, 0x8] + add r2, r12 + lsls r3, r7, 2 + ldr r4, [sp] + adds r0, r4, r3 + ldrh r0, [r0] + lsls r0, 8 + ldr r4, [sp, 0x4] + adds r1, r4, r3 + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2] + mov r1, r8 + ands r0, r1 + ldr r4, [sp, 0x8] + strh r0, [r4] + adds r2, r5, 0x1 + lsls r2, 1 + mov r0, r9 + adds r0, r2, r0 + str r0, [sp, 0x8] + add r2, r12 + mov r1, r10 + adds r0, r1, r3 + ldrh r1, [r0] + lsls r1, 8 + ldr r4, _080F5DD0 + adds r0, r6, r4 + adds r0, r3 + ldrh r0, [r0] + orrs r1, r0 + strh r1, [r2] + mov r0, r8 + ands r1, r0 + ldr r4, [sp, 0x8] + strh r1, [r4] + adds r0, r5, 0x2 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, _080F5DB0 + cmp r7, 0x41 + bls _080F5D36 + ldr r0, [r0] + ldr r1, _080F5DB4 + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_080F5DA0: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5DB0: .4byte gUnknown_083DFEC4 +_080F5DB4: .4byte 0x00009344 +_080F5DB8: .4byte 0x0000911c +_080F5DBC: .4byte gUnknown_03004DE0 +_080F5DC0: .4byte 0x0000ffff +_080F5DC4: .4byte 0x00009130 +_080F5DC8: .4byte 0x00009132 +_080F5DCC: .4byte 0x00009238 +_080F5DD0: .4byte 0x0000923a + thumb_func_end sub_80F5CDC + + thumb_func_start sub_80F5DD4 +sub_80F5DD4: @ 80F5DD4 + push {lr} + ldr r0, _080F5DE8 + ldrh r1, [r0, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080F5DEC + bl sub_80F5E20 + b _080F5E18 + .align 2, 0 +_080F5DE8: .4byte gMain +_080F5DEC: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080F5DFA + bl sub_80F5EE4 + b _080F5E18 +_080F5DFA: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080F5E08 + bl sub_80F5FB4 + b _080F5E18 +_080F5E08: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _080F5E14 + movs r0, 0 + b _080F5E1C +_080F5E14: + bl sub_80F6010 +_080F5E18: + lsls r0, 24 + lsrs r0, 24 +_080F5E1C: + pop {r1} + bx r1 + thumb_func_end sub_80F5DD4 + + thumb_func_start sub_80F5E20 +sub_80F5E20: @ 80F5E20 + push {r4,r5,lr} + ldr r0, _080F5E38 + ldr r2, [r0] + ldr r3, _080F5E3C + adds r1, r2, r3 + movs r5, 0 + ldrsh r1, [r1, r5] + adds r4, r0, 0 + cmp r1, 0 + bne _080F5E40 + movs r0, 0 + b _080F5EC8 + .align 2, 0 +_080F5E38: .4byte gUnknown_083DFEC4 +_080F5E3C: .4byte 0x0000876e +_080F5E40: + ldr r1, _080F5E6C + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F5E74 + ldr r3, _080F5E70 + adds r0, r2, r3 + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r0, 0 + bne _080F5E74 + movs r4, 0x1 + negs r4, r4 + adds r0, r4, 0 + bl sub_80F063C + adds r0, r4, 0 + bl sub_80F6074 + movs r0, 0x2 + b _080F5EC8 + .align 2, 0 +_080F5E6C: .4byte 0x000087c9 +_080F5E70: .4byte 0x0000876c +_080F5E74: + ldr r1, [r4] + ldr r0, _080F5ED0 + adds r2, r1, r0 + ldrh r0, [r2] + subs r3, r0, 0x1 + strh r3, [r2] + ldr r5, _080F5ED4 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, 0 + bne _080F5E98 + lsls r0, r3, 16 + cmp r0, 0 + bge _080F5E98 + ldr r3, _080F5ED8 + adds r0, r1, r3 + ldrh r0, [r0] + strh r0, [r2] +_080F5E98: + ldr r0, [r4] + ldr r5, _080F5EDC + adds r2, r0, r5 + ldr r3, _080F5ED0 + adds r1, r0, r3 + ldrh r1, [r1] + ldrh r2, [r2] + adds r2, r1, r2 + subs r5, 0x2 + adds r4, r0, r5 + strh r2, [r4] + ldr r1, _080F5EE0 + adds r0, r1 + lsls r1, r2, 16 + asrs r1, 16 + ldrh r3, [r0] + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r1, r0 + ble _080F5EC6 + subs r0, r2, 0x1 + subs r0, r3 + strh r0, [r4] +_080F5EC6: + movs r0, 0x1 +_080F5EC8: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F5ED0: .4byte 0x0000876c +_080F5ED4: .4byte 0x000087c9 +_080F5ED8: .4byte 0x00008772 +_080F5EDC: .4byte 0x00008770 +_080F5EE0: .4byte 0x00008774 + thumb_func_end sub_80F5E20 + + thumb_func_start sub_80F5EE4 +sub_80F5EE4: @ 80F5EE4 + push {r4-r6,lr} + ldr r3, _080F5F04 + ldr r4, [r3] + ldr r1, _080F5F08 + adds r0, r4, r1 + ldr r2, _080F5F0C + adds r1, r4, r2 + movs r5, 0 + ldrsh r2, [r0, r5] + movs r6, 0 + ldrsh r0, [r1, r6] + adds r5, r3, 0 + cmp r2, r0 + bne _080F5F10 + movs r0, 0 + b _080F5F98 + .align 2, 0 +_080F5F04: .4byte gUnknown_083DFEC4 +_080F5F08: .4byte 0x0000876e +_080F5F0C: .4byte 0x00008774 +_080F5F10: + ldr r1, _080F5F38 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F5F40 + ldr r2, _080F5F3C + adds r0, r4, r2 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0x7 + bne _080F5F40 + movs r0, 0x1 + bl sub_80F063C + movs r0, 0x1 + bl sub_80F6074 + movs r0, 0x2 + b _080F5F98 + .align 2, 0 +_080F5F38: .4byte 0x000087c9 +_080F5F3C: .4byte 0x0000876c +_080F5F40: + ldr r2, [r5] + ldr r6, _080F5FA0 + adds r4, r2, r6 + ldrh r0, [r4] + adds r1, r0, 0x1 + strh r1, [r4] + ldr r3, _080F5FA4 + adds r0, r2, r3 + ldrb r3, [r0] + cmp r3, 0 + bne _080F5F68 + adds r6, 0x6 + adds r0, r2, r6 + lsls r1, 16 + asrs r1, 16 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r1, r0 + ble _080F5F68 + strh r3, [r4] +_080F5F68: + ldr r0, [r5] + ldr r3, _080F5FA8 + adds r2, r0, r3 + ldr r5, _080F5FA0 + adds r1, r0, r5 + ldrh r1, [r1] + ldrh r2, [r2] + adds r2, r1, r2 + ldr r6, _080F5FAC + adds r4, r0, r6 + strh r2, [r4] + ldr r1, _080F5FB0 + adds r0, r1 + lsls r1, r2, 16 + asrs r1, 16 + ldrh r3, [r0] + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r1, r0 + ble _080F5F96 + subs r0, r2, 0x1 + subs r0, r3 + strh r0, [r4] +_080F5F96: + movs r0, 0x1 +_080F5F98: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080F5FA0: .4byte 0x0000876c +_080F5FA4: .4byte 0x000087c9 +_080F5FA8: .4byte 0x00008770 +_080F5FAC: .4byte 0x0000876e +_080F5FB0: .4byte 0x00008774 + thumb_func_end sub_80F5EE4 + + thumb_func_start sub_80F5FB4 +sub_80F5FB4: @ 80F5FB4 + push {r4,lr} + ldr r0, _080F5FD8 + ldr r1, [r0] + ldr r2, _080F5FDC + adds r0, r1, r2 + ldrh r3, [r0] + movs r4, 0 + ldrsh r2, [r0, r4] + cmp r2, 0 + beq _080F5FD2 + ldr r4, _080F5FE0 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _080F5FE4 +_080F5FD2: + movs r0, 0 + b _080F6004 + .align 2, 0 +_080F5FD8: .4byte gUnknown_083DFEC4 +_080F5FDC: .4byte 0x00008770 +_080F5FE0: .4byte 0x000087c9 +_080F5FE4: + cmp r2, 0x7 + bgt _080F5FF0 + negs r0, r3 + lsls r0, 16 + lsrs r0, 16 + b _080F5FF2 +_080F5FF0: + ldr r0, _080F600C +_080F5FF2: + lsls r4, r0, 16 + asrs r4, 16 + adds r0, r4, 0 + bl sub_80F063C + adds r0, r4, 0 + bl sub_80F6074 + movs r0, 0x2 +_080F6004: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F600C: .4byte 0x0000fff8 + thumb_func_end sub_80F5FB4 + + thumb_func_start sub_80F6010 +sub_80F6010: @ 80F6010 + push {r4-r6,lr} + ldr r0, _080F603C + ldr r3, [r0] + ldr r1, _080F6040 + adds r0, r3, r1 + ldr r2, _080F6044 + adds r1, r3, r2 + ldrh r5, [r0] + movs r4, 0 + ldrsh r2, [r0, r4] + ldrh r4, [r1] + movs r6, 0 + ldrsh r0, [r1, r6] + cmp r2, r0 + beq _080F6038 + ldr r1, _080F6048 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F604C +_080F6038: + movs r0, 0 + b _080F606C + .align 2, 0 +_080F603C: .4byte gUnknown_083DFEC4 +_080F6040: .4byte 0x00008772 +_080F6044: .4byte 0x00008774 +_080F6048: .4byte 0x000087c9 +_080F604C: + subs r0, r4, r5 + lsls r0, 16 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080F605A + movs r4, 0x8 +_080F605A: + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + bl sub_80F063C + adds r0, r4, 0 + bl sub_80F6074 + movs r0, 0x2 +_080F606C: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F6010 + + thumb_func_start sub_80F6074 +sub_80F6074: @ 80F6074 + push {r4-r7,lr} + ldr r1, _080F6120 + ldr r6, [r1] + ldr r1, _080F6124 + adds r3, r6, r1 + ldrh r1, [r3] + lsls r0, 16 + asrs r7, r0, 16 + adds r2, r7, r1 + strh r2, [r3] + ldr r5, _080F6128 + adds r4, r6, r5 + lsls r0, r2, 16 + asrs r0, 16 + ldrh r1, [r4] + mov r12, r1 + movs r5, 0 + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _080F60A4 + subs r0, r2, 0x1 + mov r1, r12 + subs r0, r1 + strh r0, [r3] +_080F60A4: + ldrh r1, [r3] + movs r2, 0 + ldrsh r0, [r3, r2] + cmp r0, 0 + bge _080F60B6 + adds r0, r1, 0x1 + ldrh r5, [r4] + adds r0, r5 + strh r0, [r3] +_080F60B6: + ldr r0, _080F612C + adds r3, r6, r0 + ldrh r0, [r3] + adds r2, r7, r0 + strh r2, [r3] + lsls r0, r2, 16 + asrs r0, 16 + ldrh r1, [r4] + mov r12, r1 + movs r5, 0 + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _080F60D8 + subs r0, r2, 0x1 + mov r1, r12 + subs r0, r1 + strh r0, [r3] +_080F60D8: + ldrh r1, [r3] + movs r2, 0 + ldrsh r0, [r3, r2] + cmp r0, 0 + bge _080F60EA + adds r0, r1, 0x1 + ldrh r5, [r4] + adds r0, r5 + strh r0, [r3] +_080F60EA: + ldr r0, _080F6130 + adds r3, r6, r0 + ldrh r0, [r3] + adds r2, r7, r0 + strh r2, [r3] + lsls r0, r2, 16 + asrs r0, 16 + ldrh r5, [r4] + movs r6, 0 + ldrsh r1, [r4, r6] + cmp r0, r1 + ble _080F6108 + subs r0, r2, 0x1 + subs r0, r5 + strh r0, [r3] +_080F6108: + ldrh r1, [r3] + movs r2, 0 + ldrsh r0, [r3, r2] + cmp r0, 0 + bge _080F611A + adds r0, r1, 0x1 + ldrh r4, [r4] + adds r0, r4 + strh r0, [r3] +_080F611A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F6120: .4byte gUnknown_083DFEC4 +_080F6124: .4byte 0x00008770 +_080F6128: .4byte 0x00008774 +_080F612C: .4byte 0x00008772 +_080F6130: .4byte 0x0000876e + thumb_func_end sub_80F6074 + + thumb_func_start sub_80F6134 +sub_80F6134: @ 80F6134 + push {r4-r6,lr} + ldr r0, _080F6194 + ldr r3, [r0] + ldr r1, _080F6198 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F61E0 + ldr r2, _080F619C + adds r5, r3, r2 + movs r4, 0 + ldrsh r1, [r5, r4] + ldr r6, _080F61A0 + adds r4, r3, r6 + movs r2, 0 + ldrsh r0, [r4, r2] + subs r0, 0x7 + cmp r1, r0 + bge _080F61AC + subs r6, 0x8 + adds r1, r3, r6 + movs r0, 0 + strh r0, [r1] + ldrh r0, [r5] + ldr r1, _080F61A4 + adds r2, r3, r1 + strh r0, [r2] + ldrh r1, [r5] + ldr r5, _080F61A8 + adds r0, r3, r5 + strh r1, [r0] + ldrh r5, [r2] + adds r0, r5, 0x7 + adds r6, 0x6 + adds r2, r3, r6 + strh r0, [r2] + lsls r0, 16 + asrs r0, 16 + ldrh r3, [r4] + movs r6, 0 + ldrsh r1, [r4, r6] + cmp r0, r1 + ble _080F61F4 + adds r0, r5, 0x6 + subs r0, r3 + strh r0, [r2] + b _080F61F4 + .align 2, 0 +_080F6194: .4byte gUnknown_083DFEC4 +_080F6198: .4byte 0x000087c9 +_080F619C: .4byte 0x000087dc +_080F61A0: .4byte 0x00008774 +_080F61A4: .4byte 0x00008770 +_080F61A8: .4byte 0x0000876e +_080F61AC: + ldrh r0, [r4] + subs r0, 0x7 + ldr r2, _080F61D4 + adds r1, r3, r2 + strh r0, [r1] + ldrh r1, [r4] + ldr r6, _080F61D8 + adds r0, r3, r6 + strh r1, [r0] + ldrh r1, [r5] + subs r2, 0x2 + adds r0, r3, r2 + strh r1, [r0] + ldrh r0, [r4] + subs r0, r1 + movs r1, 0x7 + subs r1, r0 + ldr r4, _080F61DC + adds r0, r3, r4 + b _080F61F2 + .align 2, 0 +_080F61D4: .4byte 0x00008770 +_080F61D8: .4byte 0x00008772 +_080F61DC: .4byte 0x0000876c +_080F61E0: + ldr r5, _080F61FC + adds r2, r3, r5 + ldrh r1, [r2] + ldr r6, _080F6200 + adds r0, r3, r6 + strh r1, [r0] + ldrh r1, [r2] + ldr r2, _080F6204 + adds r0, r3, r2 +_080F61F2: + strh r1, [r0] +_080F61F4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F61FC: .4byte 0x000087dc +_080F6200: .4byte 0x0000876c +_080F6204: .4byte 0x0000876e + thumb_func_end sub_80F6134 + + thumb_func_start sub_80F6208 +sub_80F6208: @ 80F6208 + push {lr} + ldr r0, _080F623C + ldr r1, [r0] + ldr r2, _080F6240 + adds r0, r1, r2 + movs r2, 0 + strb r2, [r0] + ldr r3, _080F6244 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080F6248 + adds r2, r1, r0 + movs r0, 0xFF + strb r0, [r2] + ldr r2, _080F624C + adds r1, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _080F6238 +_080F622E: + bl sub_80F6250 + lsls r0, 24 + cmp r0, 0 + bne _080F622E +_080F6238: + pop {r0} + bx r0 + .align 2, 0 +_080F623C: .4byte gUnknown_083DFEC4 +_080F6240: .4byte 0x00008fe6 +_080F6244: .4byte 0x00008fe7 +_080F6248: .4byte 0x00008fe8 +_080F624C: .4byte 0x00006dac + thumb_func_end sub_80F6208 + + thumb_func_start sub_80F6250 +sub_80F6250: @ 80F6250 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _080F6270 + ldr r2, [r0] + ldr r0, _080F6274 + adds r3, r2, r0 + movs r1, 0 + ldrsb r1, [r3, r1] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080F6278 +_080F626C: + movs r0, 0 + b _080F637E + .align 2, 0 +_080F6270: .4byte gUnknown_083DFEC4 +_080F6274: .4byte 0x00008fe8 +_080F6278: + ldr r1, _080F630C + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x7 + beq _080F631C + cmp r0, 0x8 + beq _080F626C + movs r6, 0 + adds r7, r2, 0 + adds r5, r7, r1 + ldr r0, _080F6310 + adds r4, r7, r0 + ldr r1, _080F6314 + mov r8, r1 + ldr r0, _080F6318 + add r0, r8 + mov r9, r0 +_080F629A: + ldrb r0, [r5] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r4] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + add r1, r8 + adds r0, r1 + movs r1, 0x51 + bl GetBoxMonData + cmp r0, 0 + bne _080F636C + ldrb r0, [r5] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r4] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + add r1, r9 + adds r0, r1 + movs r1, 0x51 + bl GetBoxMonData + adds r1, r0, 0 + cmp r1, 0 + bne _080F636C + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + movs r2, 0xFF + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1D + bls _080F62FE + strb r1, [r4] + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + ands r0, r2 + cmp r0, 0x6 + bhi _080F637C +_080F62FE: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x9 + bls _080F629A + b _080F637C + .align 2, 0 +_080F630C: .4byte 0x00008fe6 +_080F6310: .4byte 0x00008fe7 +_080F6314: .4byte gUnknown_020300A4 +_080F6318: .4byte 0x000041a0 +_080F631C: + movs r0, 0 + strb r0, [r3] + movs r6, 0 + b _080F632A +_080F6324: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080F632A: + cmp r6, 0x5 + bhi _080F634C + movs r0, 0x64 + muls r0, r6 + ldr r1, _080F635C + adds r0, r1 + movs r1, 0x51 + bl GetMonData + cmp r0, 0 + beq _080F6324 + ldr r0, _080F6360 + ldr r0, [r0] + ldr r1, _080F6364 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] +_080F634C: + ldr r0, _080F6360 + ldr r1, [r0] + ldr r0, _080F6368 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + b _080F6372 + .align 2, 0 +_080F635C: .4byte gPlayerParty +_080F6360: .4byte gUnknown_083DFEC4 +_080F6364: .4byte 0x00008fe8 +_080F6368: .4byte 0x00008fe6 +_080F636C: + ldr r0, _080F6378 + adds r1, r7, r0 + movs r0, 0x1 +_080F6372: + strb r0, [r1] + b _080F626C + .align 2, 0 +_080F6378: .4byte 0x00008fe8 +_080F637C: + movs r0, 0x1 +_080F637E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F6250 + + thumb_func_start sub_80F638C +sub_80F638C: @ 80F638C + push {r4,lr} + ldr r0, _080F63C0 + ldr r4, [r0] + ldr r1, _080F63C4 + adds r0, r4, r1 + movs r1, 0 + strb r1, [r0] + ldr r2, _080F63C8 + adds r0, r4, r2 + strb r1, [r0] + bl sub_80F492C + ldr r0, _080F63CC + adds r4, r0 + ldrb r0, [r4] + cmp r0, 0 + bne _080F63B8 +_080F63AE: + bl sub_80F63D0 + lsls r0, 24 + cmp r0, 0 + bne _080F63AE +_080F63B8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F63C0: .4byte gUnknown_083DFEC4 +_080F63C4: .4byte 0x00008fe6 +_080F63C8: .4byte 0x00008fe7 +_080F63CC: .4byte 0x00006dac + thumb_func_end sub_80F638C + + thumb_func_start sub_80F63D0 +sub_80F63D0: @ 80F63D0 + push {r4-r6,lr} + sub sp, 0x4 + ldr r0, _080F647C + ldr r2, [r0] + ldr r1, _080F6480 + adds r0, r2, r1 + ldrb r3, [r0] + cmp r3, 0xE + beq _080F6498 + cmp r3, 0xF + bne _080F63E8 + b _080F64F6 +_080F63E8: + movs r1, 0x80 + lsls r1, 23 + ldr r0, [sp] + orrs r0, r1 + str r0, [sp] + movs r6, 0 + ldr r0, _080F6480 + adds r5, r2, r0 + ldr r1, _080F6484 + adds r4, r2, r1 +_080F63FC: + ldrb r0, [r5] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r4] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _080F6488 + adds r1, r2 + adds r0, r1 + movs r1, 0x51 + bl GetBoxMonData + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _080F644E + ldrb r1, [r5] + lsls r1, 8 + ldr r2, _080F648C + ldr r0, [sp] + ands r0, r2 + orrs r0, r1 + str r0, [sp] + ldrb r2, [r4] + movs r1, 0x1F + ands r2, r1 + lsls r2, 16 + ldr r1, _080F6490 + ands r0, r1 + orrs r0, r2 + ldr r1, _080F6494 + ands r0, r1 + orrs r0, r3 + str r0, [sp] + mov r0, sp + bl sub_80F4944 +_080F644E: + ldrb r0, [r4] + adds r0, 0x1 + movs r2, 0 + strb r0, [r4] + movs r1, 0xFF + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1E + bne _080F646E + strb r2, [r4] + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + ands r0, r1 + cmp r0, 0xE + beq _080F6508 +_080F646E: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0xE + bls _080F63FC + b _080F6508 + .align 2, 0 +_080F647C: .4byte gUnknown_083DFEC4 +_080F6480: .4byte 0x00008fe6 +_080F6484: .4byte 0x00008fe7 +_080F6488: .4byte gUnknown_020300A4 +_080F648C: .4byte 0xffff00ff +_080F6490: .4byte 0xffe0ffff +_080F6494: .4byte 0xffffff00 +_080F6498: + mov r0, sp + ldrb r1, [r0, 0x3] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0, 0x3] + strb r3, [r0, 0x1] + movs r6, 0 + mov r4, sp +_080F64A8: + movs r0, 0x64 + muls r0, r6 + ldr r1, _080F64FC + adds r0, r1 + movs r1, 0x51 + bl GetMonData + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _080F64DA + movs r0, 0x1F + adds r2, r6, 0 + ands r2, r0 + ldrb r0, [r4, 0x2] + movs r5, 0x20 + negs r5, r5 + adds r1, r5, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x2] + strb r3, [r4] + mov r0, sp + bl sub_80F4944 +_080F64DA: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _080F64A8 + bl sub_80F49F4 + ldr r0, _080F6500 + ldr r1, [r0] + ldr r0, _080F6504 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F64F6: + movs r0, 0 + b _080F650A + .align 2, 0 +_080F64FC: .4byte gPlayerParty +_080F6500: .4byte gUnknown_083DFEC4 +_080F6504: .4byte 0x00008fe6 +_080F6508: + movs r0, 0x1 +_080F650A: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F63D0 + + thumb_func_start sub_80F6514 +sub_80F6514: @ 80F6514 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r10, r0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x4] + mov r5, r10 + ldr r0, _080F65A4 + ldr r0, [r0] + lsls r1, 2 + adds r0, r1 + ldr r2, _080F65A8 + adds r1, r0, r2 + ldrb r6, [r1] + mov r8, r6 + ldr r1, _080F65AC + adds r0, r1 + ldrb r0, [r0] + lsls r0, 27 + lsrs r4, r0, 27 + adds r7, r4, 0 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x2D + movs r3, 0 + bl sub_80F44B0 + cmp r0, 0 + beq _080F655E + b _080F66CA +_080F655E: + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x2 + adds r3, r5, 0 + bl sub_80F44B0 + adds r0, r5, 0 + bl StringGetEnd10 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0xB + movs r3, 0 + bl sub_80F44B0 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + cmp r6, 0xE + bne _080F65B4 + movs r0, 0x64 + muls r4, r0 + ldr r0, _080F65B0 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + adds r0, r4, 0 + bl GetMonGender + b _080F65EA + .align 2, 0 +_080F65A4: .4byte gUnknown_083DFEC4 +_080F65A8: .4byte 0x0000893d +_080F65AC: .4byte 0x0000893e +_080F65B0: .4byte gPlayerParty +_080F65B4: + mov r2, r8 + lsls r1, r2, 2 + add r1, r8 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 4 + ldr r2, _080F6620 + adds r1, r2 + adds r0, r1 + bl GetLevelFromBoxMonExp + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + mov r0, r8 + adds r1, r7, 0 + movs r2, 0 + movs r3, 0 + bl sub_80F44B0 + adds r1, r0, 0 + mov r0, r9 + bl GetGenderFromSpeciesAndPersonality +_080F65EA: + lsls r0, 24 + lsrs r4, r0, 24 + mov r0, r9 + mov r1, r10 + bl sub_8040D8C + cmp r0, 0 + beq _080F65FC + movs r4, 0xFF +_080F65FC: + adds r0, r5, 0 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + adds r5, r0 + movs r1, 0xFC + strb r1, [r5] + movs r0, 0x13 + strb r0, [r5, 0x1] + movs r0, 0x3F + strb r0, [r5, 0x2] + adds r5, 0x3 + cmp r4, 0 + beq _080F6624 + cmp r4, 0xFE + beq _080F663C + b _080F6656 + .align 2, 0 +_080F6620: .4byte gUnknown_020300A4 +_080F6624: + strb r1, [r5] + movs r0, 0x1 + strb r0, [r5, 0x1] + movs r0, 0xC + strb r0, [r5, 0x2] + strb r1, [r5, 0x3] + movs r0, 0x3 + strb r0, [r5, 0x4] + movs r0, 0xD + strb r0, [r5, 0x5] + movs r0, 0xB5 + b _080F6652 +_080F663C: + strb r1, [r5] + movs r0, 0x1 + strb r0, [r5, 0x1] + movs r0, 0xA + strb r0, [r5, 0x2] + strb r1, [r5, 0x3] + movs r0, 0x3 + strb r0, [r5, 0x4] + movs r0, 0xB + strb r0, [r5, 0x5] + movs r0, 0xB6 +_080F6652: + strb r0, [r5, 0x6] + adds r5, 0x7 +_080F6656: + movs r4, 0xFC + strb r4, [r5] + movs r1, 0x1 + strb r1, [r5, 0x1] + strb r1, [r5, 0x2] + strb r4, [r5, 0x3] + movs r0, 0x3 + strb r0, [r5, 0x4] + movs r0, 0x5 + strb r0, [r5, 0x5] + adds r5, 0x6 + strb r4, [r5] + movs r6, 0x13 + strb r6, [r5, 0x1] + movs r0, 0x46 + strb r0, [r5, 0x2] + adds r5, 0x3 + movs r0, 0xBA + strb r0, [r5] + strb r4, [r5, 0x1] + movs r0, 0x11 + strb r0, [r5, 0x2] + strb r1, [r5, 0x3] + movs r0, 0x34 + strb r0, [r5, 0x4] + adds r5, 0x5 + adds r0, r5, 0 + ldr r1, [sp, 0x8] + bl ConvertIntToDecimalString + adds r5, r0, 0 + ldr r0, [sp, 0x4] + cmp r0, 0x1 + bne _080F66C0 + ldr r0, _080F66B8 + ldr r0, [r0] + ldr r2, [sp] + lsls r1, r2, 2 + adds r0, r1 + ldr r1, _080F66BC + adds r0, r1 + ldrb r1, [r0] + adds r0, r5, 0 + movs r2, 0x80 + movs r3, 0x1 + bl sub_8072C14 + adds r5, r0, 0 + b _080F66CE + .align 2, 0 +_080F66B8: .4byte gUnknown_083DFEC4 +_080F66BC: .4byte 0x0000893c +_080F66C0: + strb r4, [r5] + strb r6, [r5, 0x1] + movs r0, 0x67 + strb r0, [r5, 0x2] + adds r5, 0x3 +_080F66CA: + movs r0, 0xFF + strb r0, [r5] +_080F66CE: + adds r0, r5, 0 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F6514 + + thumb_func_start sub_80F66E0 +sub_80F66E0: @ 80F66E0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r0, _080F676C + mov r8, r0 + ldr r4, [r0] + ldr r1, _080F6770 + adds r0, r4, r1 + ldr r2, _080F6774 + adds r5, r4, r2 + ldrh r1, [r5] + movs r2, 0 + bl sub_80F6514 + movs r3, 0 + ldrsh r0, [r5, r3] + movs r1, 0 + bl sub_80F4824 + ldrh r1, [r5] + ldr r6, _080F6778 + adds r0, r4, r6 + movs r6, 0 + strh r1, [r0] + ldr r1, _080F677C + adds r0, r4, r1 + strb r6, [r0] + movs r2, 0 + mov r9, r2 + movs r3, 0 + ldrsh r1, [r5, r3] + lsls r1, 2 + adds r1, r4, r1 + ldr r5, _080F6780 + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _080F6784 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 27 + lsrs r1, 27 + movs r2, 0x52 + movs r3, 0 + bl sub_80F44B0 + adds r7, r0, 0 + ldr r3, _080F6788 + adds r4, r3 + strb r6, [r4] + movs r5, 0 + mov r12, r5 + mov r10, r8 +_080F674E: + ldr r1, _080F678C + mov r6, r12 + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x36 + bgt _080F6790 + cmp r0, 0x32 + blt _080F6790 + movs r0, 0x7 + adds r2, r7, 0 + ands r2, r0 + lsrs r7, 3 + movs r0, 0x4 + b _080F679A + .align 2, 0 +_080F676C: .4byte gUnknown_083DFEC4 +_080F6770: .4byte 0x00008829 +_080F6774: .4byte 0x0000876e +_080F6778: .4byte 0x000087dc +_080F677C: .4byte 0x0000bc8e +_080F6780: .4byte 0x0000893d +_080F6784: .4byte 0x0000893e +_080F6788: .4byte 0x0000bc8f +_080F678C: .4byte gUnknown_083E499C +_080F6790: + movs r0, 0x1 + adds r2, r7, 0 + ands r2, r0 + lsrs r7, 1 + movs r0, 0x1 +_080F679A: + movs r4, 0 + adds r1, r2, 0 + add r0, r9 + mov r8, r0 + cmp r4, r1 + bcs _080F67D4 + mov r3, r10 + ldr r0, [r3] + ldr r5, _080F6828 + adds r3, r0, r5 + ldr r6, _080F682C + adds r6, r0, r6 + str r6, [sp] + adds r5, r1, 0 +_080F67B6: + ldrb r0, [r3] + adds r1, r0, 0x1 + strb r1, [r3] + lsls r0, 24 + lsrs r0, 24 + ldr r1, [sp] + adds r0, r1, r0 + mov r6, r9 + adds r1, r6, r4 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r5 + bcc _080F67B6 +_080F67D4: + cmp r2, 0 + beq _080F67EC + mov r0, r9 + cmp r0, 0x18 + bls _080F67EC + mov r2, r10 + ldr r1, [r2] + ldr r3, _080F6830 + adds r1, r3 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F67EC: + mov r5, r8 + lsls r0, r5, 24 + lsrs r0, 24 + mov r9, r0 + mov r0, r12 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + cmp r0, 0x10 + bls _080F674E + ldr r6, _080F6834 + ldr r2, [r6] + ldr r1, _080F6828 + adds r0, r2, r1 + ldr r3, _080F6830 + adds r1, r2, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080F6840 + ldr r5, _080F6838 + adds r0, r2, r5 + movs r1, 0 + strb r1, [r0] + ldr r6, _080F683C + adds r0, r2, r6 + strb r1, [r0] + b _080F6850 + .align 2, 0 +_080F6828: .4byte 0x0000bc8e +_080F682C: .4byte 0x0000bc4c +_080F6830: .4byte 0x0000bc8f +_080F6834: .4byte gUnknown_083DFEC4 +_080F6838: .4byte 0x0000bc90 +_080F683C: .4byte 0x0000bc91 +_080F6840: + ldr r0, _080F6888 + adds r1, r2, r0 + movs r0, 0 + strb r0, [r1] + ldr r3, _080F688C + adds r1, r2, r3 + movs r0, 0x3 + strb r0, [r1] +_080F6850: + ldr r5, _080F6890 + ldr r1, [r5] + ldr r6, _080F6894 + adds r0, r1, r6 + ldr r2, _080F6898 + adds r1, r2 + ldrb r0, [r0] + ldrb r1, [r1] + subs r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + movs r3, 0 + mov r12, r3 + adds r3, r5, 0 + ldr r1, _080F689C + movs r4, 0x9 +_080F6870: + cmp r2, 0x8 + bls _080F68A0 + ldr r0, [r3] + adds r0, r1 + add r0, r12 + strb r4, [r0] + adds r0, r2, 0 + subs r0, 0x9 + lsls r0, 24 + lsrs r2, r0, 24 + b _080F68AA + .align 2, 0 +_080F6888: .4byte 0x0000bc90 +_080F688C: .4byte 0x0000bc91 +_080F6890: .4byte gUnknown_083DFEC4 +_080F6894: .4byte 0x0000bc8e +_080F6898: .4byte 0x0000bc8f +_080F689C: .4byte 0x0000bc96 +_080F68A0: + ldr r0, [r3] + adds r0, r1 + add r0, r12 + strb r2, [r0] + movs r2, 0 +_080F68AA: + mov r0, r12 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + cmp r0, 0x2 + bls _080F6870 + ldr r5, _080F68DC + ldr r0, [r5] + ldr r6, _080F68E0 + adds r1, r0, r6 + add r1, r12 + ldr r2, _080F68E4 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F68DC: .4byte gUnknown_083DFEC4 +_080F68E0: .4byte 0x0000bc96 +_080F68E4: .4byte 0x0000bc8f + thumb_func_end sub_80F66E0 + + thumb_func_start sub_80F68E8 +sub_80F68E8: @ 80F68E8 + push {r4-r7,lr} + ldr r3, _080F6918 + ldr r0, [r3] + ldr r2, _080F691C + adds r1, r0, r2 + ldrb r5, [r1] + ldr r6, _080F6920 + adds r0, r6 + ldrb r4, [r0] + movs r0, 0x1 + mov r12, r0 + ldr r2, _080F6924 + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + adds r6, r3, 0 + adds r7, r2, 0 + cmp r0, 0 + beq _080F692E + lsls r0, r4, 24 + cmp r0, 0 + ble _080F692E + b _080F69BC + .align 2, 0 +_080F6918: .4byte gUnknown_083DFEC4 +_080F691C: .4byte 0x0000bc90 +_080F6920: .4byte 0x0000bc91 +_080F6924: .4byte gMain +_080F6928: + ldr r1, _080F69B0 + adds r0, r2, r1 + ldrb r4, [r0] +_080F692E: + ldrh r1, [r7, 0x30] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080F6978 + lsls r0, r4, 24 + asrs r0, 24 + cmp r0, 0x2 + bgt _080F6978 + ldr r3, _080F69B4 + ldr r2, _080F69B8 +_080F6944: + lsls r0, r4, 24 + asrs r0, 24 + cmp r0, 0x2 + bgt _080F6960 + adds r0, 0x1 + lsls r0, 24 + ldr r1, [r3] + lsrs r4, r0, 24 + asrs r0, 24 + adds r1, r2 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080F6944 +_080F6960: + ldr r2, [r6] + lsls r0, r4, 24 + asrs r0, 24 + ldr r3, _080F69B8 + adds r1, r2, r3 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + bne _080F69EC + ldr r1, _080F69B0 + adds r0, r2, r1 + ldrb r4, [r0] +_080F6978: + ldrh r2, [r7, 0x30] + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _080F698A + lsls r0, r5, 24 + asrs r0, 24 + cmp r0, 0 + bgt _080F6A3C +_080F698A: + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + beq _080F69AA + lsls r0, r5, 24 + asrs r2, r0, 24 + ldr r1, [r6] + lsls r0, r4, 24 + asrs r0, 24 + ldr r3, _080F69B8 + adds r1, r3 + adds r1, r0 + ldrb r0, [r1] + subs r0, 0x1 + cmp r2, r0 + blt _080F6A38 +_080F69AA: + movs r0, 0 + mov r12, r0 + b _080F69FC + .align 2, 0 +_080F69B0: .4byte 0x0000bc91 +_080F69B4: .4byte gUnknown_083DFEC4 +_080F69B8: .4byte 0x0000bc96 +_080F69BC: + lsls r0, r4, 24 + asrs r0, 24 + cmp r0, 0 + ble _080F69DA + subs r0, 0x1 + lsls r0, 24 + ldr r1, [r6] + lsrs r4, r0, 24 + asrs r0, 24 + ldr r2, _080F6A2C + adds r1, r2 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080F69BC +_080F69DA: + ldr r2, [r6] + lsls r0, r4, 24 + asrs r0, 24 + ldr r3, _080F6A2C + adds r1, r2, r3 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080F6928 +_080F69EC: + lsls r0, r5, 24 + asrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + blt _080F69FC + subs r0, r1, 0x1 +_080F69F8: + lsls r0, 24 + lsrs r5, r0, 24 +_080F69FC: + mov r0, r12 + cmp r0, 0 + beq _080F6A44 + lsls r0, r5, 24 + asrs r0, 24 + ldr r3, [r6] + ldr r1, _080F6A30 + adds r2, r3, r1 + ldrb r6, [r2] + cmp r0, r6 + bne _080F6A20 + lsls r0, r4, 24 + asrs r0, 24 + ldr r6, _080F6A34 + adds r1, r3, r6 + ldrb r1, [r1] + cmp r0, r1 + beq _080F6A40 +_080F6A20: + strb r5, [r2] + ldr r1, _080F6A34 + adds r0, r3, r1 + strb r4, [r0] + b _080F6A44 + .align 2, 0 +_080F6A2C: .4byte 0x0000bc96 +_080F6A30: .4byte 0x0000bc90 +_080F6A34: .4byte 0x0000bc91 +_080F6A38: + adds r0, r2, 0x1 + b _080F69F8 +_080F6A3C: + subs r0, 0x1 + b _080F69F8 +_080F6A40: + movs r2, 0 + mov r12, r2 +_080F6A44: + mov r0, r12 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F68E8 + + thumb_func_start sub_80F6A4C +sub_80F6A4C: @ 80F6A4C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r0, _080F6AC4 + ldr r3, [r0] + ldr r0, _080F6AC8 + adds r2, r3, r0 + lsls r0, r4, 24 + asrs r0, 24 + ldrh r1, [r2] + adds r0, r1 + strh r0, [r2] + lsls r0, 16 + cmp r0, 0 + bge _080F6A74 + ldr r5, _080F6ACC + adds r0, r3, r5 + ldrh r0, [r0] + strh r0, [r2] +_080F6A74: + ldr r1, _080F6ACC + adds r0, r3, r1 + movs r5, 0 + ldrsh r1, [r2, r5] + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r1, r0 + ble _080F6A88 + movs r0, 0 + strh r0, [r2] +_080F6A88: + ldr r1, _080F6AD0 + adds r0, r3, r1 + strb r4, [r0] + ldrh r1, [r2] + ldr r2, _080F6AD4 + adds r0, r3, r2 + strh r1, [r0] + ldr r1, _080F6AD8 + ldr r5, _080F6ADC + adds r0, r5, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F6AE0 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xA + ldr r5, _080F6AE4 + adds r0, r5, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080F6AE8 + adds r0, r2, 0 + strh r0, [r1] + ldr r5, _080F6AEC + adds r1, r3, r5 + movs r0, 0 + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F6AC4: .4byte gUnknown_083DFEC4 +_080F6AC8: .4byte 0x0000876e +_080F6ACC: .4byte 0x00008774 +_080F6AD0: .4byte 0x0000bc94 +_080F6AD4: .4byte 0x000087dc +_080F6AD8: .4byte REG_WININ +_080F6ADC: .4byte 0x00003f37 +_080F6AE0: .4byte 0x00003f3f +_080F6AE4: .4byte 0x000058f0 +_080F6AE8: .4byte 0x00002060 +_080F6AEC: .4byte 0x000087de + thumb_func_end sub_80F6A4C + + thumb_func_start sub_80F6AF0 +sub_80F6AF0: @ 80F6AF0 + push {r4,lr} + ldr r1, _080F6B10 + ldr r0, [r1] + ldr r2, _080F6B14 + adds r0, r2 + ldrb r0, [r0] + adds r4, r1, 0 + cmp r0, 0x6 + bls _080F6B04 + b _080F6C08 +_080F6B04: + lsls r0, 2 + ldr r1, _080F6B18 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F6B10: .4byte gUnknown_083DFEC4 +_080F6B14: .4byte 0x000087de +_080F6B18: .4byte _080F6B1C + .align 2, 0 +_080F6B1C: + .4byte _080F6B38 + .4byte _080F6B54 + .4byte _080F6B6E + .4byte _080F6B84 + .4byte _080F6B9C + .4byte _080F6BC0 + .4byte _080F6BE0 +_080F6B38: + bl sub_80F173C + lsls r0, 24 + cmp r0, 0 + bne _080F6C18 + ldr r0, _080F6B4C + ldr r1, [r0] + ldr r3, _080F6B50 + adds r1, r3 + b _080F6BCE + .align 2, 0 +_080F6B4C: .4byte gUnknown_083DFEC4 +_080F6B50: .4byte 0x000087de +_080F6B54: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 6 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + bl sub_80F1480 + bl sub_80F66E0 + b _080F6BC6 +_080F6B6E: + bl sub_80F1238 + ldr r0, _080F6B7C + ldr r1, [r0] + ldr r2, _080F6B80 + adds r1, r2 + b _080F6BCE + .align 2, 0 +_080F6B7C: .4byte gUnknown_083DFEC4 +_080F6B80: .4byte 0x000087de +_080F6B84: + bl sub_80F13FC + ldr r0, _080F6B94 + ldr r1, [r0] + ldr r3, _080F6B98 + adds r1, r3 + b _080F6BCE + .align 2, 0 +_080F6B94: .4byte gUnknown_083DFEC4 +_080F6B98: .4byte 0x000087de +_080F6B9C: + ldr r4, [r4] + ldr r1, _080F6BB8 + adds r0, r4, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0 + bl sub_80F4824 + ldr r3, _080F6BBC + adds r4, r3 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _080F6C18 + .align 2, 0 +_080F6BB8: .4byte 0x0000876e +_080F6BBC: .4byte 0x000087de +_080F6BC0: + movs r0, 0 + bl sub_80F2E18 +_080F6BC6: + ldr r0, _080F6BD8 + ldr r1, [r0] + ldr r0, _080F6BDC + adds r1, r0 +_080F6BCE: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080F6C18 + .align 2, 0 +_080F6BD8: .4byte gUnknown_083DFEC4 +_080F6BDC: .4byte 0x000087de +_080F6BE0: + bl sub_80F170C + lsls r0, 24 + cmp r0, 0 + bne _080F6C18 + bl sub_80F1438 + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080F6C0C + ands r0, r1 + strh r0, [r2] + ldr r0, _080F6C10 + ldr r1, [r0] + ldr r2, _080F6C14 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F6C08: + movs r0, 0 + b _080F6C1A + .align 2, 0 +_080F6C0C: .4byte 0x0000dfff +_080F6C10: .4byte gUnknown_083DFEC4 +_080F6C14: .4byte 0x000087de +_080F6C18: + movs r0, 0x1 +_080F6C1A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F6AF0 + + thumb_func_start sub_80F6C20 +sub_80F6C20: @ 80F6C20 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _080F6D44 + ldr r0, [r0] + ldr r1, _080F6D48 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + mov r8, r1 + ldr r2, _080F6D4C + mov r9, r2 +_080F6C3A: + ldr r1, _080F6D50 + mov r4, r8 + lsls r0, r4, 4 + adds r6, r0, r1 + ldrh r7, [r6] + adds r0, r7, 0 + bl trainer_flag_check + lsls r0, 24 + cmp r0, 0 + beq _080F6CA0 + ldr r0, _080F6D44 + ldr r4, [r0] + ldr r0, _080F6D48 + adds r5, r4, r0 + ldrh r0, [r5] + lsls r0, 3 + adds r0, r4, r0 + ldr r1, _080F6D54 + adds r0, r1 + strh r7, [r0] + ldrh r0, [r5] + lsls r0, 3 + adds r0, r4, r0 + ldr r2, _080F6D58 + adds r0, r2 + mov r1, r8 + strb r1, [r0] + ldrh r0, [r5] + lsls r0, 3 + adds r0, r4, r0 + mov r1, r8 + add r1, r9 + ldrb r1, [r1] + adds r2, 0x1 + adds r0, r2 + strb r1, [r0] + ldrh r0, [r6, 0xA] + ldrh r1, [r6, 0xC] + bl get_mapheader_by_bank_and_number + ldrh r1, [r5] + lsls r1, 3 + adds r4, r1 + ldrb r0, [r0, 0x14] + ldr r1, _080F6D5C + adds r4, r1 + strh r0, [r4] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_080F6CA0: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0x37 + bls _080F6C3A + movs r2, 0 + mov r8, r2 + movs r6, 0 +_080F6CB4: + ldr r1, _080F6D60 + mov r4, r8 + lsls r0, r4, 2 + adds r5, r0, r1 + ldrh r4, [r5] + adds r0, r4, 0 + bl trainer_flag_check + lsls r0, 24 + cmp r0, 0 + beq _080F6D0E + ldr r0, _080F6D44 + ldr r2, [r0] + ldr r0, _080F6D48 + adds r3, r2, r0 + ldrh r0, [r3] + lsls r0, 3 + adds r0, r2, r0 + ldr r1, _080F6D54 + adds r0, r1 + strh r4, [r0] + ldrh r0, [r3] + lsls r0, 3 + adds r0, r2, r0 + ldrh r1, [r5, 0x2] + ldr r4, _080F6D5C + adds r0, r4 + strh r1, [r0] + ldrh r0, [r3] + lsls r0, 3 + adds r0, r2, r0 + ldr r1, _080F6D64 + adds r0, r1 + strb r6, [r0] + ldrh r0, [r3] + lsls r0, 3 + adds r2, r0 + mov r0, r8 + adds r0, 0x38 + adds r4, 0x2 + adds r2, r4 + strb r0, [r2] + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] +_080F6D0E: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0xC + bls _080F6CB4 + ldr r3, _080F6D44 + ldr r2, [r3] + ldr r1, _080F6D68 + adds r0, r2, r1 + movs r1, 0 + strh r1, [r0] + ldr r4, _080F6D6C + adds r0, r2, r4 + strh r1, [r0] + subs r4, 0x2 + adds r0, r2, r4 + strh r1, [r0] + ldr r1, _080F6D48 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, 0x8 + bhi _080F6D70 + subs r4, r0, 0x1 + b _080F6D72 + .align 2, 0 +_080F6D44: .4byte gUnknown_083DFEC4 +_080F6D48: .4byte 0x0000d158 +_080F6D4C: .4byte gSaveBlock1 + 0x97A +_080F6D50: .4byte gTrainerEyeTrainers +_080F6D54: .4byte 0x0000cee8 +_080F6D58: .4byte 0x0000ceec +_080F6D5C: .4byte 0x0000ceea +_080F6D60: .4byte gUnknown_083E49C0 +_080F6D64: .4byte 0x0000ceed +_080F6D68: .4byte 0x0000876c +_080F6D6C: .4byte 0x00008770 +_080F6D70: + movs r4, 0x7 +_080F6D72: + ldr r1, _080F6DA8 + adds r0, r2, r1 + strh r4, [r0] + ldr r3, [r3] + ldr r2, _080F6DAC + adds r0, r3, r2 + ldrh r0, [r0] + subs r0, 0x1 + ldr r4, _080F6DB0 + adds r1, r3, r4 + strh r0, [r1] + movs r1, 0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080F6D94 + movs r1, 0x1 +_080F6D94: + ldr r2, _080F6DB4 + adds r0, r3, r2 + strb r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F6DA8: .4byte 0x00008772 +_080F6DAC: .4byte 0x0000d158 +_080F6DB0: .4byte 0x00008774 +_080F6DB4: .4byte 0x000087c9 + thumb_func_end sub_80F6C20 + + thumb_func_start sub_80F6DB8 +sub_80F6DB8: @ 80F6DB8 + push {r4,lr} + movs r1, 0 + ldr r0, _080F6DEC + ldr r4, [r0] + ldr r2, _080F6DF0 + adds r0, r4, r2 + strb r1, [r0] + movs r0, 0 + bl sub_80F6E04 + ldr r0, _080F6DF4 + adds r1, r4, r0 + ldr r0, _080F6DF8 + strh r0, [r1] + movs r0, 0 + bl sub_80F2F7C + ldr r1, _080F6DFC + adds r0, r4, r1 + ldrh r0, [r0] + ldr r2, _080F6E00 + adds r4, r2 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F6DEC: .4byte gUnknown_083DFEC4 +_080F6DF0: .4byte 0x00008fe9 +_080F6DF4: .4byte 0x0000d15a +_080F6DF8: .4byte 0x0000ffb8 +_080F6DFC: .4byte 0x0000876e +_080F6E00: .4byte 0x000087dc + thumb_func_end sub_80F6DB8 + + thumb_func_start sub_80F6E04 +sub_80F6E04: @ 80F6E04 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080F6E78 + ldr r5, [r0] + ldr r1, _080F6E7C + adds r0, r5, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + lsls r0, 3 + adds r0, r5, r0 + ldr r7, _080F6E80 + adds r0, r7 + ldrh r1, [r0] + ldr r2, _080F6E84 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r6, [r0, 0x3] + lsls r0, r6, 3 + mov r8, r0 + ldr r0, _080F6E88 + add r0, r8 + ldr r2, _080F6E8C + lsls r1, r6, 2 + adds r1, r2 + ldrb r1, [r1] + ldr r2, _080F6E90 + adds r3, r5, r2 + lsls r2, r4, 13 + ldr r7, _080F6E94 + adds r2, r7 + adds r2, r5, r2 + str r2, [sp] + str r6, [sp, 0x4] + movs r2, 0x1 + bl DecompressPicFromTable_2 + ldr r0, _080F6E98 + add r8, r0 + mov r1, r8 + ldr r0, [r1] + lsls r4, 7 + adds r5, r4 + adds r1, r5, 0 + bl LZ77UnCompWram + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F6E78: .4byte gUnknown_083DFEC4 +_080F6E7C: .4byte 0x0000876e +_080F6E80: .4byte 0x0000cee8 +_080F6E84: .4byte gTrainers +_080F6E88: .4byte gTrainerFrontPicTable +_080F6E8C: .4byte gTrainerFrontPicCoords +_080F6E90: .4byte 0x000131e4 +_080F6E94: .4byte 0x0000d1e4 +_080F6E98: .4byte gTrainerFrontPicPaletteTable + thumb_func_end sub_80F6E04 + + thumb_func_start sub_80F6E9C +sub_80F6E9C: @ 80F6E9C + push {lr} + ldr r0, _080F6EB4 + ldr r0, [r0] + ldr r2, _080F6EB8 + adds r1, r0, r2 + ldrh r2, [r1] + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080F6EBC + movs r0, 0 + b _080F6ED0 + .align 2, 0 +_080F6EB4: .4byte gUnknown_083DFEC4 +_080F6EB8: .4byte 0x0000d15a +_080F6EBC: + adds r0, r2, 0 + adds r0, 0x8 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bge _080F6ECC + movs r0, 0x1 + b _080F6ED0 +_080F6ECC: + movs r0, 0 + strh r0, [r1] +_080F6ED0: + pop {r1} + bx r1 + thumb_func_end sub_80F6E9C + + thumb_func_start sub_80F6ED4 +sub_80F6ED4: @ 80F6ED4 + push {lr} + ldr r0, _080F6F00 + ldr r0, [r0] + ldr r2, _080F6F04 + adds r1, r0, r2 + ldrh r3, [r1] + movs r2, 0 + ldrsh r0, [r1, r2] + movs r2, 0x48 + negs r2, r2 + cmp r0, r2 + beq _080F6F0A + adds r0, r3, 0 + subs r0, 0x8 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, r2 + ble _080F6F08 + movs r0, 0x1 + b _080F6F0C + .align 2, 0 +_080F6F00: .4byte gUnknown_083DFEC4 +_080F6F04: .4byte 0x0000d15a +_080F6F08: + strh r2, [r1] +_080F6F0A: + movs r0, 0 +_080F6F0C: + pop {r1} + bx r1 + thumb_func_end sub_80F6ED4 + + thumb_func_start sub_80F6F10 +sub_80F6F10: @ 80F6F10 + push {lr} + ldr r0, _080F6F48 + ldr r0, [r0] + ldr r2, _080F6F4C + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r1, _080F6F50 + adds r0, r1 + strb r2, [r0] + ldr r1, _080F6F54 + movs r0, 0xC8 + strh r0, [r1] + ldr r0, _080F6F58 + strh r2, [r0] + subs r1, 0x8 + ldr r2, _080F6F5C + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F6F60 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + bl sub_80F6FB8 + pop {r0} + bx r0 + .align 2, 0 +_080F6F48: .4byte gUnknown_083DFEC4 +_080F6F4C: .4byte 0x0000d15e +_080F6F50: .4byte 0x0000d15f +_080F6F54: .4byte REG_BLDCNT +_080F6F58: .4byte REG_BLDY +_080F6F5C: .4byte 0x00003f3f +_080F6F60: .4byte 0x00001f1f + thumb_func_end sub_80F6F10 + + thumb_func_start sub_80F6F64 +sub_80F6F64: @ 80F6F64 + push {lr} + ldr r0, _080F6F9C + ldr r1, [r0] + ldr r0, _080F6FA0 + adds r2, r1, r0 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x8 + bls _080F6FB0 + movs r0, 0 + strb r0, [r2] + ldr r0, _080F6FA4 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080F6FAC + ldr r1, _080F6FA8 + movs r0, 0x6 + strh r0, [r1] + b _080F6FB0 + .align 2, 0 +_080F6F9C: .4byte gUnknown_083DFEC4 +_080F6FA0: .4byte 0x0000d15e +_080F6FA4: .4byte 0x0000d15f +_080F6FA8: .4byte REG_BLDY +_080F6FAC: + ldr r0, _080F6FB4 + strh r1, [r0] +_080F6FB0: + pop {r0} + bx r0 + .align 2, 0 +_080F6FB4: .4byte REG_BLDY + thumb_func_end sub_80F6F64 + + thumb_func_start sub_80F6FB8 +sub_80F6FB8: @ 80F6FB8 + push {lr} + lsls r0, 24 + cmp r0, 0 + bne _080F6FDC + ldr r1, _080F6FD0 + ldr r2, _080F6FD4 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080F6FD8 + b _080F6FE8 + .align 2, 0 +_080F6FD0: .4byte REG_WIN0H +_080F6FD4: .4byte 0x0000e8f0 +_080F6FD8: .4byte 0x00000888 +_080F6FDC: + ldr r1, _080F6FF0 + ldr r2, _080F6FF4 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080F6FF8 +_080F6FE8: + adds r0, r2, 0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080F6FF0: .4byte REG_WIN0H +_080F6FF4: .4byte 0x0000e8f0 +_080F6FF8: .4byte 0x00000818 + thumb_func_end sub_80F6FB8 + + thumb_func_start sub_80F6FFC +sub_80F6FFC: @ 80F6FFC + ldr r0, _080F7008 + movs r1, 0 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + bx lr + .align 2, 0 +_080F7008: .4byte REG_BLDCNT + thumb_func_end sub_80F6FFC + + thumb_func_start sub_80F700C +sub_80F700C: @ 80F700C + push {r4,r5,lr} + lsls r1, 16 + lsrs r1, 16 + ldr r2, _080F7078 + ldr r4, [r2] + lsls r2, r1, 3 + adds r2, r4, r2 + ldr r3, _080F707C + adds r2, r3 + ldrh r3, [r2] + lsls r2, r3, 2 + adds r2, r3 + lsls r2, 3 + ldr r3, _080F7080 + adds r5, r2, r3 + adds r3, r0, 0 + ldr r0, _080F7084 + adds r4, r0 + ldrh r4, [r4] + cmp r1, r4 + bcs _080F7060 + ldrb r1, [r5, 0x1] + movs r0, 0xD + muls r1, r0 + ldr r0, _080F7088 + adds r1, r0 + adds r0, r3, 0 + bl StringCopy + adds r3, r0, 0 + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x13 + strb r0, [r3, 0x1] + movs r0, 0x4B + strb r0, [r3, 0x2] + adds r3, 0x3 + adds r1, r5, 0x4 + adds r0, r3, 0 + bl StringCopy + adds r3, r0, 0 +_080F7060: + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x13 + strb r0, [r3, 0x1] + movs r0, 0x80 + strb r0, [r3, 0x2] + movs r0, 0xFF + strb r0, [r3, 0x3] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F7078: .4byte gUnknown_083DFEC4 +_080F707C: .4byte 0x0000cee8 +_080F7080: .4byte gTrainers +_080F7084: .4byte 0x0000d158 +_080F7088: .4byte gTrainerClassNames + thumb_func_end sub_80F700C + + thumb_func_start sub_80F708C +sub_80F708C: @ 80F708C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r0, _080F70E4 + ldr r3, [r0] + ldr r0, _080F70E8 + adds r2, r3, r0 + lsls r0, r4, 24 + asrs r0, 24 + ldrh r1, [r2] + adds r0, r1 + strh r0, [r2] + lsls r0, 16 + cmp r0, 0 + bge _080F70B4 + ldr r5, _080F70EC + adds r0, r3, r5 + ldrh r0, [r0] + strh r0, [r2] +_080F70B4: + ldr r1, _080F70EC + adds r0, r3, r1 + movs r5, 0 + ldrsh r1, [r2, r5] + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r1, r0 + ble _080F70C8 + movs r0, 0 + strh r0, [r2] +_080F70C8: + ldr r1, _080F70F0 + adds r0, r3, r1 + strb r4, [r0] + ldrh r1, [r2] + ldr r2, _080F70F4 + adds r0, r3, r2 + strh r1, [r0] + ldr r5, _080F70F8 + adds r1, r3, r5 + movs r0, 0 + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F70E4: .4byte gUnknown_083DFEC4 +_080F70E8: .4byte 0x0000876e +_080F70EC: .4byte 0x00008774 +_080F70F0: .4byte 0x0000bc94 +_080F70F4: .4byte 0x000087dc +_080F70F8: .4byte 0x000087de + thumb_func_end sub_80F708C + + thumb_func_start sub_80F70FC +sub_80F70FC: @ 80F70FC + push {r4-r6,lr} + ldr r1, _080F711C + ldr r0, [r1] + ldr r2, _080F7120 + adds r0, r2 + ldrb r0, [r0] + adds r4, r1, 0 + cmp r0, 0x6 + bls _080F7110 + b _080F7218 +_080F7110: + lsls r0, 2 + ldr r1, _080F7124 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F711C: .4byte gUnknown_083DFEC4 +_080F7120: .4byte 0x000087de +_080F7124: .4byte _080F7128 + .align 2, 0 +_080F7128: + .4byte _080F7144 + .4byte _080F714A + .4byte _080F7164 + .4byte _080F716C + .4byte _080F71A0 + .4byte _080F71BA + .4byte _080F71EA +_080F7144: + bl sub_80F6ED4 + b _080F71F8 +_080F714A: + movs r0, 0 + bl sub_80F6E04 + ldr r0, _080F715C + ldr r1, [r0] + ldr r2, _080F7160 + adds r1, r2 + b _080F7206 + .align 2, 0 +_080F715C: .4byte gUnknown_083DFEC4 +_080F7160: .4byte 0x000087de +_080F7164: + movs r0, 0 + bl sub_80F2F7C + b _080F71FE +_080F716C: + ldr r4, [r4] + ldr r2, _080F7194 + adds r5, r4, r2 + ldr r0, _080F7198 + adds r6, r4, r0 + ldrh r1, [r6] + adds r0, r5, 0 + bl sub_80F700C + adds r0, r5, 0 + bl sub_80F43D4 + bl sub_80F105C + ldrb r0, [r6] + bl sub_80F0FFC + ldr r2, _080F719C + adds r4, r2 + b _080F71CC + .align 2, 0 +_080F7194: .4byte 0x00008788 +_080F7198: .4byte 0x0000876e +_080F719C: .4byte 0x000087de +_080F71A0: + bl sub_80F0CD8 + ldr r0, _080F71D4 + ldr r1, [r0] + ldr r0, _080F71D8 + adds r2, r1, r0 + movs r0, 0 + strb r0, [r2] + ldr r2, _080F71DC + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F71BA: + ldr r0, _080F71D4 + ldr r1, [r0] + ldr r0, _080F71D8 + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, 0x1 + bhi _080F71E0 + bl sub_80F0D5C +_080F71CC: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _080F721C + .align 2, 0 +_080F71D4: .4byte gUnknown_083DFEC4 +_080F71D8: .4byte 0x0000bc95 +_080F71DC: .4byte 0x000087de +_080F71E0: + ldr r2, _080F7210 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F71EA: + bl sub_80F6E9C + lsls r0, 24 + cmp r0, 0 + bne _080F721C + bl sub_80F0D5C +_080F71F8: + lsls r0, 24 + cmp r0, 0 + bne _080F721C +_080F71FE: + ldr r0, _080F7214 + ldr r1, [r0] + ldr r0, _080F7210 + adds r1, r0 +_080F7206: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080F721C + .align 2, 0 +_080F7210: .4byte 0x000087de +_080F7214: .4byte gUnknown_083DFEC4 +_080F7218: + movs r0, 0 + b _080F721E +_080F721C: + movs r0, 0x1 +_080F721E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F70FC + + thumb_func_start sub_80F7224 +sub_80F7224: @ 80F7224 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _080F7260 + adds r0, r1 + movs r1, 0x30 + bl GetMonData + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080F7264 + ldr r0, [r0] + ldr r3, _080F7268 + adds r1, r0, r3 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldr r3, _080F726C + adds r0, r3 + adds r4, r0, r1 + cmp r2, 0xFF + beq _080F7270 + adds r0, r2, 0 + movs r1, 0x1D + bl __udivsi3 + b _080F7272 + .align 2, 0 +_080F7260: .4byte gPlayerParty +_080F7264: .4byte gUnknown_083DFEC4 +_080F7268: .4byte 0x00008fe9 +_080F726C: .4byte 0x00008931 +_080F7270: + movs r0, 0x9 +_080F7272: + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F7224 + + thumb_func_start sub_80F727C +sub_80F727C: @ 80F727C + ldr r1, _080F7288 + str r0, [r1] + movs r1, 0 + strb r1, [r0, 0xB] + bx lr + .align 2, 0 +_080F7288: .4byte gUnknown_020388B8 + thumb_func_end sub_80F727C + + thumb_func_start sub_80F728C +sub_80F728C: @ 80F728C + push {lr} + sub sp, 0x4 + ldr r0, _080F72C4 + ldrb r0, [r0, 0x14] + lsrs r0, 3 + bl GetTextWindowFrameGraphics + ldr r3, _080F72C8 + ldr r2, [r3] + ldr r1, [r0] + str r1, [r2, 0x28] + ldr r0, [r0, 0x4] + str r0, [r2, 0x2C] + ldr r0, _080F72CC + adds r2, r0 + movs r1, 0 + strb r1, [r2] + mov r0, sp + strh r1, [r0] + ldr r1, [r3] + adds r1, 0x30 + ldr r2, _080F72D0 + bl CpuSet + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080F72C4: .4byte gSaveBlock2 +_080F72C8: .4byte gUnknown_020388B8 +_080F72CC: .4byte 0x000010b0 +_080F72D0: .4byte 0x01000800 + thumb_func_end sub_80F728C + + thumb_func_start sub_80F72D4 +sub_80F72D4: @ 80F72D4 + push {r4-r7,lr} + ldr r0, _080F72F4 + ldr r1, [r0] + ldr r2, _080F72F8 + adds r0, r1, r2 + ldrb r2, [r0] + lsls r0, r2, 8 + adds r0, 0x30 + adds r5, r1, r0 + cmp r2, 0xD + beq _080F73A4 + cmp r2, 0xD + bgt _080F72FC + cmp r2, 0 + beq _080F7302 + b _080F734C + .align 2, 0 +_080F72F4: .4byte gUnknown_020388B8 +_080F72F8: .4byte 0x000010b0 +_080F72FC: + cmp r2, 0xE + beq _080F73F0 + b _080F734C +_080F7302: + ldr r0, [r1, 0x28] + adds r1, r5, 0 + movs r2, 0x8 + bl CpuFastSet + movs r4, 0 + adds r7, r5, 0 + adds r7, 0xE0 +_080F7312: + ldr r6, _080F7344 + ldr r0, [r6] + ldr r0, [r0, 0x28] + adds r0, 0x20 + adds r4, 0x1 + lsls r1, r4, 5 + adds r1, r5, r1 + movs r2, 0x8 + bl CpuFastSet + lsls r4, 16 + lsrs r4, 16 + cmp r4, 0x5 + bls _080F7312 + ldr r0, [r6] + ldr r0, [r0, 0x28] + adds r0, 0x40 + adds r1, r7, 0 + movs r2, 0x8 + bl CpuFastSet + ldr r1, [r6] + ldr r0, _080F7348 + adds r1, r0 + b _080F7392 + .align 2, 0 +_080F7344: .4byte gUnknown_020388B8 +_080F7348: .4byte 0x000010b0 +_080F734C: + ldr r0, _080F739C + ldr r0, [r0] + ldr r0, [r0, 0x28] + adds r0, 0x60 + adds r1, r5, 0 + movs r2, 0x8 + bl CpuFastSet + movs r4, 0 + adds r7, r5, 0 + adds r7, 0xE0 +_080F7362: + ldr r6, _080F739C + ldr r0, [r6] + ldr r0, [r0, 0x28] + adds r0, 0x80 + adds r4, 0x1 + lsls r1, r4, 5 + adds r1, r5, r1 + movs r2, 0x8 + bl CpuFastSet + lsls r4, 16 + lsrs r4, 16 + cmp r4, 0x5 + bls _080F7362 + ldr r0, [r6] + ldr r0, [r0, 0x28] + adds r0, 0xA0 + adds r1, r7, 0 + movs r2, 0x8 + bl CpuFastSet + ldr r1, [r6] + ldr r2, _080F73A0 + adds r1, r2 +_080F7392: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080F73FC + .align 2, 0 +_080F739C: .4byte gUnknown_020388B8 +_080F73A0: .4byte 0x000010b0 +_080F73A4: + ldr r0, [r1, 0x28] + adds r0, 0xC0 + adds r1, r5, 0 + movs r2, 0x8 + bl CpuFastSet + movs r4, 0 + adds r7, r5, 0 + adds r7, 0xE0 +_080F73B6: + ldr r6, _080F73F4 + ldr r0, [r6] + ldr r0, [r0, 0x28] + adds r0, 0xE0 + adds r4, 0x1 + lsls r1, r4, 5 + adds r1, r5, r1 + movs r2, 0x8 + bl CpuFastSet + lsls r4, 16 + lsrs r4, 16 + cmp r4, 0x5 + bls _080F73B6 + ldr r0, [r6] + ldr r0, [r0, 0x28] + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + adds r1, r7, 0 + movs r2, 0x8 + bl CpuFastSet + ldr r1, [r6] + ldr r2, _080F73F8 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F73F0: + movs r0, 0 + b _080F73FE + .align 2, 0 +_080F73F4: .4byte gUnknown_020388B8 +_080F73F8: .4byte 0x000010b0 +_080F73FC: + movs r0, 0x1 +_080F73FE: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F72D4 + + thumb_func_start sub_80F7404 +sub_80F7404: @ 80F7404 + push {lr} + bl sub_80F728C +_080F740A: + bl sub_80F72D4 + lsls r0, 24 + cmp r0, 0 + bne _080F740A + pop {r0} + bx r0 + thumb_func_end sub_80F7404 + + thumb_func_start sub_80F7418 +sub_80F7418: @ 80F7418 + push {r4-r6,lr} + lsls r1, 16 + lsrs r5, r1, 16 + lsls r2, 16 + lsrs r6, r2, 16 + ldr r2, _080F746C + ldr r3, [r2] + movs r1, 0 + strb r1, [r3, 0x5] + ldr r1, [r2] + strb r0, [r1, 0x4] + movs r3, 0 + adds r4, r2, 0 + movs r2, 0x1 +_080F7434: + ldr r0, [r4] + adds r1, r0, 0x6 + adds r1, r3 + ldrb r0, [r0, 0x4] + asrs r0, r3 + ands r0, r2 + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080F7434 + bl sub_814A7FC + lsls r0, r5, 16 + asrs r0, 16 + lsls r1, r6, 16 + asrs r1, 16 + ldr r2, _080F746C + ldr r3, [r2] + ldrh r2, [r3] + ldrh r3, [r3, 0x2] + bl sub_80F761C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F746C: .4byte gUnknown_020388B8 + thumb_func_end sub_80F7418 + + thumb_func_start sub_80F7470 +sub_80F7470: @ 80F7470 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _080F74FC +_080F7476: + ldr r0, [r5] + ldrh r0, [r0] + adds r0, r4, r0 + lsls r0, 16 + lsrs r0, 16 + bl FreeSpriteTilesByTag + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x2 + bls _080F7476 + ldr r4, _080F74FC + ldr r0, [r4] + ldrh r0, [r0, 0x2] + bl FreeSpritePaletteByTag + ldr r0, [r4] + ldrh r0, [r0, 0x2] + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + bl FreeSpritePaletteByTag + movs r4, 0 +_080F74A8: + ldr r0, _080F74FC + ldr r0, [r0] + lsls r1, r4, 2 + adds r0, 0xC + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _080F74F6 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080F74A8 + movs r4, 0 +_080F74C8: + ldr r5, _080F74FC + ldr r0, [r5] + lsls r1, r4, 2 + adds r0, 0x14 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _080F74F6 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080F74C8 + bl sub_814A7FC + ldr r0, [r5] + ldr r0, [r0, 0x24] + cmp r0, 0 + beq _080F74F6 + bl DestroySprite +_080F74F6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F74FC: .4byte gUnknown_020388B8 + thumb_func_end sub_80F7470 + + thumb_func_start sub_80F7500 +sub_80F7500: @ 80F7500 + push {r4,r5,lr} + sub sp, 0x30 + ldr r4, _080F7580 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x30 + str r0, [sp, 0x18] + add r1, sp, 0x1C + movs r5, 0 + movs r0, 0x80 + lsls r0, 5 + strh r0, [r1] + ldrh r1, [r2] + mov r0, sp + adds r0, 0x1E + strh r1, [r0] + add r1, sp, 0x20 + ldr r0, _080F7584 + str r0, [sp, 0x20] + movs r0, 0xA4 + lsls r0, 3 + strh r0, [r1, 0x4] + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r1, 0x6] + add r0, sp, 0x28 + movs r1, 0 + movs r2, 0x8 + bl memset + add r1, sp, 0x18 + mov r0, sp + movs r2, 0x18 + bl memcpy + ldr r0, [r4] + ldrb r0, [r0, 0xB] + cmp r0, 0 + beq _080F7558 + mov r0, sp + bl LoadTilesForSpriteSheets + ldr r0, [r4] + strb r5, [r0, 0xB] +_080F7558: + ldr r0, _080F7588 + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080F758C + movs r0, 0x5 + bl PlaySE + ldr r1, [r4] + ldrb r0, [r1, 0x5] + subs r0, 0x1 + strb r0, [r1, 0x5] + lsls r0, 24 + cmp r0, 0 + bge _080F75FE + ldr r1, [r4] + movs r0, 0x5 + strb r0, [r1, 0x5] + b _080F75FE + .align 2, 0 +_080F7580: .4byte gUnknown_020388B8 +_080F7584: .4byte gPokenavConditionMenuMisc_Gfx +_080F7588: .4byte gMain +_080F758C: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080F75B0 + movs r0, 0x5 + bl PlaySE + ldr r1, [r4] + ldrb r0, [r1, 0x5] + adds r0, 0x1 + strb r0, [r1, 0x5] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x5 + ble _080F75FE + ldr r0, [r4] + strb r5, [r0, 0x5] + b _080F75FE +_080F75B0: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080F7602 + movs r0, 0x5 + bl PlaySE + ldr r0, [r4] + movs r1, 0x5 + ldrsb r1, [r0, r1] + cmp r1, 0x4 + beq _080F75DC + cmp r1, 0x5 + beq _080F7610 + adds r0, 0x6 + adds r1, r0, r1 + movs r2, 0 + ldrb r0, [r1] + cmp r0, 0 + bne _080F75FC + movs r2, 0x1 + b _080F75FC +_080F75DC: + strb r5, [r0, 0x4] + movs r3, 0 +_080F75E0: + ldr r2, [r4] + adds r0, r2, 0x6 + adds r0, r3 + ldrb r0, [r0] + lsls r0, r3 + ldrb r1, [r2, 0x4] + orrs r0, r1 + strb r0, [r2, 0x4] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080F75E0 + b _080F7610 +_080F75FC: + strb r2, [r1] +_080F75FE: + movs r0, 0x1 + b _080F7612 +_080F7602: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080F75FE + movs r0, 0x5 + bl PlaySE +_080F7610: + movs r0, 0 +_080F7612: + add sp, 0x30 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F7500 + + thumb_func_start sub_80F761C +sub_80F761C: @ 80F761C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x5C + adds r5, r2, 0 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x4C] + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x50] + lsls r5, 16 + lsrs r5, 16 + lsls r3, 16 + lsrs r3, 16 + str r3, [sp, 0x54] + ldr r0, _080F7820 + mov r8, r0 + ldr r0, [r0] + adds r0, 0x30 + str r0, [sp, 0x1C] + add r1, sp, 0x20 + movs r2, 0 + mov r9, r2 + movs r0, 0x80 + lsls r0, 5 + strh r0, [r1] + mov r0, sp + adds r0, 0x22 + strh r5, [r0] + add r1, sp, 0x24 + ldr r0, _080F7824 + str r0, [sp, 0x24] + movs r0, 0xA4 + lsls r0, 3 + strh r0, [r1, 0x4] + adds r0, r5, 0x1 + strh r0, [r1, 0x6] + add r0, sp, 0x2C + movs r1, 0 + movs r2, 0x8 + bl memset + add r6, sp, 0x1C + add r0, sp, 0x4 + adds r1, r6, 0 + movs r2, 0x18 + bl memcpy + mov r3, r8 + ldr r0, [r3] + ldr r0, [r0, 0x2C] + str r0, [sp, 0x34] + add r0, sp, 0x38 + add r1, sp, 0x54 + ldrh r1, [r1] + strh r1, [r0] + add r1, sp, 0x3C + ldr r0, _080F7828 + str r0, [sp, 0x3C] + ldr r0, [sp, 0x54] + adds r0, 0x1 + strh r0, [r1, 0x4] + add r0, sp, 0x44 + movs r1, 0 + movs r2, 0x8 + bl memset + add r4, sp, 0x34 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x18 + bl memcpy + strh r5, [r4] + add r2, sp, 0x54 + ldrh r2, [r2] + strh r2, [r4, 0x2] + ldr r0, _080F782C + str r0, [r4, 0x4] + ldr r0, _080F7830 + str r0, [r4, 0x8] + mov r3, r9 + str r3, [r4, 0xC] + ldr r0, _080F7834 + str r0, [r4, 0x10] + ldr r0, _080F7838 + str r0, [r4, 0x14] + mov r0, r8 + ldr r1, [r0] + movs r0, 0x1 + strb r0, [r1, 0xB] + add r0, sp, 0x4 + bl AllocTilesForSpriteSheets + adds r0, r6, 0 + bl LoadSpritePalettes + movs r5, 0 + ldr r1, [sp, 0x4C] + lsls r0, r1, 16 + movs r2, 0x80 + lsls r2, 14 + adds r2, r0 + mov r8, r2 + str r0, [sp, 0x58] + ldr r3, [sp, 0x50] + lsls r0, r3, 16 + movs r1, 0x80 + lsls r1, 14 + adds r7, r0, r1 + mov r9, r0 +_080F7700: + adds r0, r4, 0 + mov r2, r8 + asrs r1, r2, 16 + asrs r2, r7, 16 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + bne _080F7718 + b _080F7850 +_080F7718: + ldr r6, _080F7820 + ldr r2, [r6] + lsls r0, r5, 2 + adds r2, 0xC + adds r2, r0 + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + ldr r1, _080F783C + adds r0, r1 + str r0, [r2] + lsls r1, r5, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080F7700 + ldr r0, [r6] + ldr r1, [r0, 0x10] + mov r3, r9 + asrs r0, r3, 16 + adds r0, 0x60 + strh r0, [r1, 0x22] + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + ldr r0, _080F7840 + str r0, [r4, 0x8] + ldr r0, _080F7844 + str r0, [r4, 0x14] + ldr r0, _080F7848 + str r0, [r4, 0x4] + movs r5, 0 + ldr r0, [sp, 0x58] + movs r1, 0x80 + lsls r1, 14 + adds r0, r1 + mov r10, r0 +_080F7770: + lsls r2, r5, 4 + adds r2, 0x10 + mov r3, r9 + asrs r3, 16 + mov r8, r3 + add r2, r8 + lsls r2, 16 + asrs r2, 16 + adds r0, r4, 0 + mov r3, r10 + asrs r1, r3, 16 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F7860 + ldr r6, _080F7820 + ldr r1, [r6] + lsls r0, r5, 2 + adds r1, 0x14 + adds r1, r0 + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + ldr r7, _080F783C + adds r0, r7 + str r0, [r1] + strh r5, [r0, 0x2E] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080F7770 + ldr r0, _080F784C + str r0, [r4, 0x14] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F7874 + ldr r1, [r6] + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + adds r0, r7 + str r0, [r1, 0x24] + ldrb r2, [r0, 0x1] + movs r1, 0x3F + ands r1, r2 + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0, 0x1] + ldr r0, [r6] + ldr r2, [r0, 0x24] + ldrb r0, [r2, 0x3] + movs r1, 0xC0 + orrs r0, r1 + strb r0, [r2, 0x3] + ldr r0, [r6] + ldr r0, [r0, 0x24] + movs r1, 0x9 + bl StartSpriteAnim + ldr r1, [r6] + ldr r2, [r1, 0x24] + ldr r3, [sp, 0x58] + asrs r0, r3, 16 + adds r0, 0x20 + strh r0, [r2, 0x20] + ldr r2, [r1, 0x24] + mov r0, r8 + adds r0, 0x50 + strh r0, [r2, 0x22] + ldr r0, [r1, 0x24] + movs r1, 0x1 + movs r2, 0x2 + movs r3, 0 + bl CalcCenterToCornerVec + b _080F787A + .align 2, 0 +_080F7820: .4byte gUnknown_020388B8 +_080F7824: .4byte gPokenavConditionMenuMisc_Gfx +_080F7828: .4byte gUnknown_08E966B8 +_080F782C: .4byte gUnknown_083E5214 +_080F7830: .4byte gSpriteAnimTable_83E52AC +_080F7834: .4byte gDummySpriteAffineAnimTable +_080F7838: .4byte nullsub_65 +_080F783C: .4byte gSprites +_080F7840: .4byte gSpriteAnimTable_83E5274 +_080F7844: .4byte sub_80F78CC +_080F7848: .4byte gUnknown_083E521C +_080F784C: .4byte SpriteCallbackDummy +_080F7850: + ldr r0, _080F785C + ldr r0, [r0] + lsls r1, r5, 2 + adds r0, 0xC + b _080F7868 + .align 2, 0 +_080F785C: .4byte gUnknown_020388B8 +_080F7860: + ldr r0, _080F7870 + ldr r0, [r0] + lsls r1, r5, 2 + adds r0, 0x14 +_080F7868: + adds r0, r1 + movs r1, 0 + str r1, [r0] + b _080F78B0 + .align 2, 0 +_080F7870: .4byte gUnknown_020388B8 +_080F7874: + ldr r1, [r6] + movs r0, 0 + str r0, [r1, 0x24] +_080F787A: + ldr r4, _080F78C0 + ldr r1, [r4] + ldr r0, [sp, 0x50] + adds r0, 0x8 + strb r0, [r1, 0xA] + ldr r1, [sp, 0x54] + adds r1, 0x1 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x30 + str r0, [sp] + movs r0, 0 + movs r2, 0xF + movs r3, 0 + bl sub_814A5C0 + ldr r0, [sp, 0x4C] + adds r0, 0x8 + lsls r0, 24 + lsrs r0, 24 + ldr r1, [r4] + ldrb r1, [r1, 0xA] + bl sub_814A880 + ldr r0, _080F78C4 + bl sub_814AABC +_080F78B0: + add sp, 0x5C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F78C0: .4byte gUnknown_020388B8 +_080F78C4: .4byte sub_80F7908 + thumb_func_end sub_80F761C + + thumb_func_start nullsub_65 +nullsub_65: @ 80F78C8 + bx lr + thumb_func_end nullsub_65 + + thumb_func_start sub_80F78CC +sub_80F78CC: @ 80F78CC + push {lr} + adds r2, r0, 0 + ldr r0, _080F78F4 + ldr r0, [r0] + movs r3, 0x2E + ldrsh r1, [r2, r3] + adds r0, 0x6 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F78F8 + lsls r1, 1 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + adds r0, r2, 0 + bl StartSpriteAnim + b _080F7902 + .align 2, 0 +_080F78F4: .4byte gUnknown_020388B8 +_080F78F8: + lsls r1, 25 + lsrs r1, 24 + adds r0, r2, 0 + bl StartSpriteAnim +_080F7902: + pop {r0} + bx r0 + thumb_func_end sub_80F78CC + + thumb_func_start sub_80F7908 +sub_80F7908: @ 80F7908 + ldr r1, _080F791C + ldr r2, [r1] + movs r1, 0x5 + ldrsb r1, [r2, r1] + lsls r1, 4 + ldrb r2, [r2, 0xA] + adds r1, r2 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_080F791C: .4byte gUnknown_020388B8 + thumb_func_end sub_80F7908 + + thumb_func_start sub_80F7920 +sub_80F7920: @ 80F7920 + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r1, 16 + cmp r2, 0 + bne _080F7930 + ldr r2, _080F793C +_080F7930: + movs r3, 0x10 + bl sub_80F7960 + pop {r1} + bx r1 + .align 2, 0 +_080F793C: .4byte gUnknown_083E49F4 + thumb_func_end sub_80F7920 + + thumb_func_start sub_80F7940 +sub_80F7940: @ 80F7940 + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r1, 16 + cmp r2, 0 + bne _080F7950 + ldr r2, _080F795C +_080F7950: + movs r3, 0x1 + bl sub_80F7960 + pop {r1} + bx r1 + .align 2, 0 +_080F795C: .4byte gUnknown_083E49F4 + thumb_func_end sub_80F7940 + + thumb_func_start sub_80F7960 +sub_80F7960: @ 80F7960 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x28 + lsls r0, 16 + lsls r1, 16 + lsrs r1, 16 + ldr r4, _080F79DC + str r4, [sp, 0x18] + movs r4, 0x80 + add r5, sp, 0x18 + lsrs r6, r0, 16 + orrs r0, r4 + str r0, [r5, 0x4] + str r2, [sp, 0x20] + ldr r0, _080F79E0 + mov r8, r0 + add r4, sp, 0x20 + ldr r0, [r4, 0x4] + mov r2, r8 + ands r0, r2 + orrs r0, r1 + str r0, [r4, 0x4] + mov r0, sp + movs r2, 0 + strh r6, [r0] + strh r1, [r0, 0x2] + ldr r0, _080F79E4 + str r0, [sp, 0x4] + ldr r0, _080F79E8 + str r0, [sp, 0x8] + str r2, [sp, 0xC] + ldr r0, _080F79EC + str r0, [sp, 0x10] + ldr r0, _080F79F0 + str r0, [sp, 0x14] + lsls r3, 23 + lsrs r3, 16 + ldr r0, [r5, 0x4] + mov r1, r8 + ands r0, r1 + orrs r0, r3 + str r0, [r5, 0x4] + adds r0, r5, 0 + bl LoadSpriteSheet + adds r0, r4, 0 + bl LoadSpritePalette + mov r0, sp + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _080F79F4 + movs r0, 0 + b _080F79FE + .align 2, 0 +_080F79DC: .4byte gUnknown_083E4A14 +_080F79E0: .4byte 0xffff0000 +_080F79E4: .4byte gUnknown_083E52B4 +_080F79E8: .4byte gSpriteAnimTable_83E533C +_080F79EC: .4byte gDummySpriteAffineAnimTable +_080F79F0: .4byte nullsub_65 +_080F79F4: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F7A0C + adds r0, r1 +_080F79FE: + add sp, 0x28 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080F7A0C: .4byte gSprites + thumb_func_end sub_80F7960 + + thumb_func_start sub_80F7A10 +sub_80F7A10: @ 80F7A10 + lsls r0, 24 + lsrs r0, 17 + ldr r2, _080F7A28 + adds r0, r2 + ldr r2, _080F7A2C + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _080F7A30 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + bx lr + .align 2, 0 +_080F7A28: .4byte gUnknown_083E4A14 +_080F7A2C: .4byte 0x040000d4 +_080F7A30: .4byte 0x80000040 + thumb_func_end sub_80F7A10 + + thumb_func_start sub_80F7A34 +sub_80F7A34: @ 80F7A34 + push {r4,lr} + ldr r0, _080F7A64 + movs r1, 0 + strb r1, [r0] + adds r2, r0, 0 + adds r2, 0x29 + strb r1, [r2] + movs r2, 0 + adds r4, r0, 0x2 + ldr r3, _080F7A68 +_080F7A48: + lsls r0, r2, 1 + adds r1, r4, r0 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080F7A48 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F7A64: .4byte gSaveBlock1 + 0x2D94 +_080F7A68: .4byte gUnknown_083E537C + thumb_func_end sub_80F7A34 + + thumb_func_start sub_80F7A6C +sub_80F7A6C: @ 80F7A6C + ldr r0, _080F7A78 + movs r2, 0 + movs r1, 0x1 + strb r1, [r0] + strb r2, [r0, 0x1] + bx lr + .align 2, 0 +_080F7A78: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F7A6C + + thumb_func_start sub_80F7A7C +sub_80F7A7C: @ 80F7A7C + push {lr} + bl sub_80F83F8 + pop {r0} + bx r0 + thumb_func_end sub_80F7A7C + + thumb_func_start sub_80F7A88 +sub_80F7A88: @ 80F7A88 + ldr r0, _080F7A94 + movs r2, 0 + movs r1, 0x4 + strb r1, [r0] + strb r2, [r0, 0x1] + bx lr + .align 2, 0 +_080F7A94: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F7A88 + + thumb_func_start sub_80F7A98 +sub_80F7A98: @ 80F7A98 + push {lr} + bl sub_81099CC + pop {r0} + bx r0 + thumb_func_end sub_80F7A98 + + thumb_func_start sub_80F7AA4 +sub_80F7AA4: @ 80F7AA4 + push {lr} + ldr r0, _080F7AC8 + ldrb r1, [r0, 0xB] + lsls r1, 8 + ldrb r0, [r0, 0xA] + orrs r0, r1 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + lsrs r0, 17 + cmp r0, 0x4 + bhi _080F7B00 + lsls r0, 2 + ldr r1, _080F7ACC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F7AC8: .4byte gSaveBlock2 +_080F7ACC: .4byte _080F7AD0 + .align 2, 0 +_080F7AD0: + .4byte _080F7AE4 + .4byte _080F7AEA + .4byte _080F7AF0 + .4byte _080F7AF6 + .4byte _080F7AFC +_080F7AE4: + bl sub_80F7A34 + b _080F7B00 +_080F7AEA: + bl sub_80F7A6C + b _080F7B00 +_080F7AF0: + bl sub_80F7A98 + b _080F7B00 +_080F7AF6: + bl sub_80F7A7C + b _080F7B00 +_080F7AFC: + bl sub_80F7A88 +_080F7B00: + bl sub_80F83D0 + pop {r0} + bx r0 + thumb_func_end sub_80F7AA4 + + thumb_func_start GetCurrentMauvilleOldMan +GetCurrentMauvilleOldMan: @ 80F7B08 + ldr r0, _080F7B10 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080F7B10: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end GetCurrentMauvilleOldMan + + thumb_func_start sub_80F7B14 +sub_80F7B14: @ 80F7B14 + push {r4,lr} + ldr r4, _080F7B28 + bl GetCurrentMauvilleOldMan + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F7B28: .4byte gScriptResult + thumb_func_end sub_80F7B14 + + thumb_func_start sub_80F7B2C +sub_80F7B2C: @ 80F7B2C + ldr r0, _080F7B38 + ldr r1, _080F7B3C + adds r1, 0x29 + ldrb r1, [r1] + strh r1, [r0] + bx lr + .align 2, 0 +_080F7B38: .4byte gScriptResult +_080F7B3C: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F7B2C + + thumb_func_start sub_80F7B40 +sub_80F7B40: @ 80F7B40 + push {r4,r5,lr} + ldr r5, _080F7B98 + adds r0, r5, 0 + adds r0, 0x1A + ldr r4, _080F7B9C + adds r1, r4, 0 + bl StringCopy + movs r2, 0 + adds r3, r5, 0 + adds r3, 0x25 + adds r4, 0xA +_080F7B58: + adds r1, r3, r2 + adds r0, r2, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x3 + bls _080F7B58 + movs r2, 0 + movs r0, 0x29 + adds r0, r5 + mov r12, r0 + adds r4, r5, 0x2 + adds r3, r5, 0 + adds r3, 0xE +_080F7B78: + lsls r0, r2, 1 + adds r1, r4, r0 + adds r0, r3, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080F7B78 + movs r0, 0x1 + mov r1, r12 + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F7B98: .4byte gSaveBlock1 + 0x2D94 +_080F7B9C: .4byte gSaveBlock2 + thumb_func_end sub_80F7B40 + + thumb_func_start sub_80F7BA0 +sub_80F7BA0: @ 80F7BA0 + push {r4-r7,lr} + ldr r1, _080F7C48 + ldr r0, _080F7C4C + ldrh r0, [r0] + adds r5, r1, 0 + adds r5, 0xE + cmp r0, 0 + bne _080F7BB2 + adds r5, r1, 0x2 +_080F7BB2: + ldr r2, _080F7C50 + adds r4, r2, 0 + movs r6, 0 +_080F7BB8: + ldrh r1, [r5] + adds r5, 0x2 + adds r0, r2, 0 + bl sub_80EB3FC + adds r2, r0, 0 + adds r7, r6, 0x1 + cmp r2, r4 + beq _080F7BDA + movs r1, 0x37 +_080F7BCC: + ldrb r0, [r4] + cmp r0, 0 + bne _080F7BD4 + strb r1, [r4] +_080F7BD4: + adds r4, 0x1 + cmp r2, r4 + bne _080F7BCC +_080F7BDA: + adds r4, 0x1 + movs r0, 0 + strb r0, [r2] + adds r2, 0x1 + ldrh r1, [r5] + adds r5, 0x2 + adds r0, r2, 0 + bl sub_80EB3FC + adds r2, r0, 0 + cmp r2, r4 + beq _080F7C02 + movs r1, 0x37 +_080F7BF4: + ldrb r0, [r4] + cmp r0, 0 + bne _080F7BFC + strb r1, [r4] +_080F7BFC: + adds r4, 0x1 + cmp r2, r4 + bne _080F7BF4 +_080F7C02: + adds r4, 0x1 + movs r0, 0xFE + strb r0, [r2] + adds r2, 0x1 + ldrh r1, [r5] + adds r5, 0x2 + adds r0, r2, 0 + bl sub_80EB3FC + adds r2, r0, 0 + cmp r2, r4 + beq _080F7C2A + movs r1, 0x37 +_080F7C1C: + ldrb r0, [r4] + cmp r0, 0 + bne _080F7C24 + strb r1, [r4] +_080F7C24: + adds r4, 0x1 + cmp r2, r4 + bne _080F7C1C +_080F7C2A: + cmp r6, 0 + bne _080F7C3A + movs r0, 0xFC + strb r0, [r2] + adds r2, 0x1 + movs r0, 0xF + strb r0, [r2] + adds r2, 0x1 +_080F7C3A: + lsls r0, r7, 16 + lsrs r6, r0, 16 + cmp r6, 0x1 + bls _080F7BB8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F7C48: .4byte gSaveBlock1 + 0x2D94 +_080F7C4C: .4byte gUnknown_0202E8CC +_080F7C50: .4byte gStringVar4 + thumb_func_end sub_80F7BA0 + + thumb_func_start sub_80F7C54 +sub_80F7C54: @ 80F7C54 + push {lr} + ldr r0, _080F7C6C + ldrb r0, [r0] + bl sub_80F7F80 + bl MenuDisplayMessageBox + bl ScriptContext1_Stop + pop {r0} + bx r0 + .align 2, 0 +_080F7C6C: .4byte gUnknown_0202E8CC + thumb_func_end sub_80F7C54 + + thumb_func_start sub_80F7C70 +sub_80F7C70: @ 80F7C70 + ldr r0, _080F7C7C + ldr r1, _080F7C80 + ldrb r1, [r1, 0x1] + strh r1, [r0] + bx lr + .align 2, 0 +_080F7C7C: .4byte gScriptResult +_080F7C80: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F7C70 + + thumb_func_start sub_80F7C84 +sub_80F7C84: @ 80F7C84 + ldr r1, _080F7C8C + movs r0, 0x1 + strb r0, [r1, 0x1] + bx lr + .align 2, 0 +_080F7C8C: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F7C84 + + thumb_func_start sub_80F7C90 +sub_80F7C90: @ 80F7C90 + push {lr} + bl sub_80EB8EC + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _080F7CA8 + cmp r1, r0 + bne _080F7CB0 + ldr r1, _080F7CAC + movs r0, 0 + b _080F7CBA + .align 2, 0 +_080F7CA8: .4byte 0x0000ffff +_080F7CAC: .4byte gScriptResult +_080F7CB0: + ldr r0, _080F7CC0 + bl sub_80EB3FC + ldr r1, _080F7CC4 + movs r0, 0x1 +_080F7CBA: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080F7CC0: .4byte gStringVar1 +_080F7CC4: .4byte gScriptResult + thumb_func_end sub_80F7C90 + + thumb_func_start sub_80F7CC8 +sub_80F7CC8: @ 80F7CC8 + push {lr} + ldr r2, _080F7CDC + ldrb r0, [r2, 0x1] + cmp r0, 0xA + bne _080F7CE4 + ldr r1, _080F7CE0 + movs r0, 0 + strh r0, [r1] + strb r0, [r2, 0x1] + b _080F7CEA + .align 2, 0 +_080F7CDC: .4byte gSaveBlock1 + 0x2D94 +_080F7CE0: .4byte gScriptResult +_080F7CE4: + ldr r1, _080F7CF0 + movs r0, 0x1 + strh r0, [r1] +_080F7CEA: + pop {r0} + bx r0 + .align 2, 0 +_080F7CF0: .4byte gScriptResult + thumb_func_end sub_80F7CC8 + + thumb_func_start sub_80F7CF4 +sub_80F7CF4: @ 80F7CF4 + push {r4-r6,lr} + ldr r5, _080F7D50 + ldrb r0, [r5, 0x1] + cmp r0, 0 + bne _080F7D02 + bl sub_80F7DC0 +_080F7D02: + ldrb r0, [r5, 0x1] + lsls r0, 1 + adds r6, r5, 0x4 + adds r0, r6 + ldrh r1, [r0] + ldr r0, _080F7D54 + cmp r1, r0 + beq _080F7D68 + bl Random + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + movs r0, 0x7 + ands r4, r0 + ldr r0, _080F7D58 + ldrb r1, [r5, 0x1] + lsls r1, 1 + adds r1, r6 + ldrh r1, [r1] + bl sub_80EB3FC + adds r2, r0, 0 + ldr r1, _080F7D5C + bl StringCopy + adds r2, r0, 0 + ldr r0, _080F7D60 + lsls r4, 2 + adds r4, r0 + ldr r1, [r4] + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + ldr r1, _080F7D64 + bl StringCopy + b _080F7D88 + .align 2, 0 +_080F7D50: .4byte gSaveBlock1 + 0x2D94 +_080F7D54: .4byte 0x0000ffff +_080F7D58: .4byte gStringVar4 +_080F7D5C: .4byte gOtherText_Is +_080F7D60: .4byte gUnknown_083E5388 +_080F7D64: .4byte gOtherText_DontYouAgree +_080F7D68: + ldr r0, _080F7DA0 + ldr r3, _080F7DA4 + ldrb r1, [r5, 0x2] + adds r2, r1, 0x1 + strb r2, [r5, 0x2] + lsls r1, 24 + lsrs r1, 24 + adds r2, r5, 0 + adds r2, 0x18 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl StringCopy +_080F7D88: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _080F7DA8 + movs r0, 0xA + b _080F7DAC + .align 2, 0 +_080F7DA0: .4byte gStringVar4 +_080F7DA4: .4byte gUnknown_083E53A8 +_080F7DA8: + ldrb r0, [r5, 0x1] + adds r0, 0x1 +_080F7DAC: + strb r0, [r5, 0x1] + ldr r1, _080F7DBC + movs r0, 0x1 + strh r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F7DBC: .4byte gScriptResult + thumb_func_end sub_80F7CF4 + + thumb_func_start sub_80F7DC0 +sub_80F7DC0: @ 80F7DC0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + ldr r1, _080F7E84 + mov r0, sp + movs r2, 0x18 + bl memcpy + movs r5, 0 + movs r0, 0x2 + add r0, sp + mov r8, r0 + ldr r1, _080F7E88 + adds r1, 0x18 + adds r3, r1, 0 +_080F7DE4: + adds r0, r3, r5 + strb r5, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x7 + bls _080F7DE4 + movs r5, 0 + ldr r2, _080F7E88 + adds r2, 0x4 + mov r9, r2 + adds r6, r1, 0 +_080F7DFC: + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r4, r5, 0x1 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 16 + lsrs r1, r0, 16 + adds r2, r6, r5 + ldrb r7, [r2] + adds r1, r6, r1 + ldrb r0, [r1] + strb r0, [r2] + strb r7, [r1] + lsls r4, 16 + lsrs r5, r4, 16 + cmp r5, 0x7 + bls _080F7DFC + movs r3, 0 + mov r10, r3 + movs r5, 0 +_080F7E2A: + lsls r4, r5, 2 + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + bl sub_80EAE88 + add r4, r8 + strh r0, [r4] + add r0, r10 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _080F7E2A + movs r0, 0 + ldr r2, _080F7E88 + strb r0, [r2, 0x2] + movs r7, 0 + movs r5, 0 +_080F7E56: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x2 + bhi _080F7E90 + cmp r7, 0x7 + bhi _080F7E90 + lsls r0, r5, 1 + add r0, r9 + ldr r1, _080F7E8C + strh r1, [r0] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + adds r4, r5, 0x1 + b _080F7EE2 + .align 2, 0 +_080F7E84: .4byte gUnknown_083E53C8 +_080F7E88: .4byte gSaveBlock1 + 0x2D94 +_080F7E8C: .4byte 0x0000ffff +_080F7E90: + bl Random + lsls r0, 16 + lsrs r0, 16 + mov r1, r10 + bl __umodsi3 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0 + adds r4, r5, 0x1 + lsls r6, r5, 1 + cmp r5, 0x5 + bhi _080F7ECC + mov r3, r8 + ldrh r0, [r3] + b _080F7EC2 +_080F7EB2: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r5, 0x5 + bhi _080F7ECC + lsls r0, r1, 2 + adds r0, r3, r0 + ldrh r0, [r0] +_080F7EC2: + subs r0, r2, r0 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r0, 0 + bgt _080F7EB2 +_080F7ECC: + cmp r1, 0x6 + bne _080F7ED2 + movs r1, 0 +_080F7ED2: + lsls r0, r1, 2 + add r0, sp + ldrh r0, [r0] + bl sub_80EB784 + mov r2, r9 + adds r1, r2, r6 + strh r0, [r1] +_080F7EE2: + lsls r0, r4, 16 + lsrs r5, r0, 16 + cmp r5, 0x9 + bls _080F7E56 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80F7DC0 + + thumb_func_start sub_80F7EFC +sub_80F7EFC: @ 80F7EFC + ldr r0, _080F7F08 + adds r0, 0x29 + movs r1, 0 + strb r1, [r0] + bx lr + .align 2, 0 +_080F7F08: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F7EFC + + thumb_func_start sub_80F7F0C +sub_80F7F0C: @ 80F7F0C + ldr r1, _080F7F14 + movs r0, 0 + strb r0, [r1, 0x1] + bx lr + .align 2, 0 +_080F7F14: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F7F0C + + thumb_func_start sub_80F7F18 +sub_80F7F18: @ 80F7F18 + push {lr} + bl sub_8109A20 + pop {r0} + bx r0 + thumb_func_end sub_80F7F18 + + thumb_func_start sub_80F7F24 +sub_80F7F24: @ 80F7F24 + push {lr} + bl sub_80F8428 + pop {r0} + bx r0 + thumb_func_end sub_80F7F24 + + thumb_func_start sub_80F7F30 +sub_80F7F30: @ 80F7F30 + push {lr} + bl GetCurrentMauvilleOldMan + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080F7F76 + lsls r0, 2 + ldr r1, _080F7F48 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F7F48: .4byte _080F7F4C + .align 2, 0 +_080F7F4C: + .4byte _080F7F60 + .4byte _080F7F66 + .4byte _080F7F72 + .4byte _080F7F6C + .4byte _080F7F76 +_080F7F60: + bl sub_80F7EFC + b _080F7F76 +_080F7F66: + bl sub_80F7F0C + b _080F7F76 +_080F7F6C: + bl sub_80F7F24 + b _080F7F76 +_080F7F72: + bl sub_80F7F18 +_080F7F76: + bl sub_80F83D0 + pop {r0} + bx r0 + thumb_func_end sub_80F7F30 + + thumb_func_start sub_80F7F80 +sub_80F7F80: @ 80F7F80 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080F7FA8 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080F7FAC + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x12] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F7FA8: .4byte sub_80F8184 +_080F7FAC: .4byte gTasks + thumb_func_end sub_80F7F80 + + thumb_func_start sub_80F7FB0 +sub_80F7FB0: @ 80F7FB0 + push {r4-r7,lr} + adds r6, r1, 0 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x5 + bls _080F7FBE + b _080F817A +_080F7FBE: + lsls r0, 2 + ldr r1, _080F7FC8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F7FC8: .4byte _080F7FCC + .align 2, 0 +_080F7FCC: + .4byte _080F7FE4 + .4byte _080F817A + .4byte _080F8040 + .4byte _080F8074 + .4byte _080F8074 + .4byte _080F817A +_080F7FE4: + ldr r2, _080F8034 + ldr r0, _080F8038 + ldrh r0, [r0] + adds r1, r2, 0 + adds r1, 0xE + cmp r0, 0 + bne _080F7FF4 + adds r1, r2, 0x2 +_080F7FF4: + adds r2, r1, 0 + adds r1, r6, 0 + adds r1, 0xC + movs r3, 0x5 +_080F7FFC: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080F7FFC + ldr r2, _080F803C + adds r4, r2, 0 + movs r2, 0 + adds r1, r6, 0 + adds r1, 0x18 + movs r3, 0x5 +_080F8016: + ldrh r0, [r1] + orrs r0, r4 + strh r0, [r1] + strh r2, [r1, 0x2] + strh r2, [r1, 0x4] + strh r2, [r1, 0x6] + adds r1, 0x8 + subs r3, 0x1 + cmp r3, 0 + bge _080F8016 + movs r0, 0 + strb r0, [r6] + strb r0, [r6, 0x1] + strh r0, [r6, 0x4] + b _080F817A + .align 2, 0 +_080F8034: .4byte gSaveBlock1 + 0x2D94 +_080F8038: .4byte gUnknown_0202E8CC +_080F803C: .4byte 0x0000ffff +_080F8040: + ldrb r1, [r6] + lsls r1, 1 + adds r0, r6, 0 + adds r0, 0xC + adds r0, r1 + ldrh r4, [r0] + lsrs r0, r4, 9 + ldr r1, _080F8070 + ands r1, r4 + bl sub_814A2D0 + adds r1, r0, 0 + movs r0, 0 + strh r0, [r6, 0x4] + movs r2, 0x3 + ands r2, r4 + lsrs r4, 3 + movs r0, 0x1 + ands r4, r0 + adds r2, r4 + adds r0, r6, 0 + bl sub_814A2EC + b _080F817A + .align 2, 0 +_080F8070: .4byte 0x000001ff +_080F8074: + ldrb r1, [r6, 0x1] + lsls r0, r1, 3 + adds r0, 0x18 + adds r7, r6, r0 + ldrb r0, [r6, 0x3] + cmp r0, 0x1 + beq _080F8124 + cmp r0, 0x1 + bgt _080F808C + cmp r0, 0 + beq _080F8092 + b _080F817A +_080F808C: + cmp r0, 0xFE + beq _080F8170 + b _080F817A +_080F8092: + ldrb r0, [r6, 0x2] + cmp r0, 0 + bne _080F80D0 + cmp r1, 0x6 + beq _080F80A2 + ldrh r0, [r7] + cmp r0, 0xFF + bne _080F80A6 +_080F80A2: + movs r0, 0xFE + b _080F8178 +_080F80A6: + ldrh r0, [r7, 0x2] + strb r0, [r6, 0x2] + ldrh r0, [r7] + cmp r0, 0x32 + bhi _080F80CA + movs r1, 0x3 + bl __udivsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + lsls r0, r1, 1 + adds r0, r1 + adds r0, 0xF9 + lsls r0, 16 + lsrs r0, 16 + bl m4aSongNumStart +_080F80CA: + movs r0, 0x1 + strb r0, [r6, 0x3] + b _080F8114 +_080F80D0: + ldrh r1, [r6, 0xA] + movs r2, 0xA + ldrsh r0, [r6, r2] + cmp r0, 0xA + ble _080F80E0 + ldrh r0, [r6, 0x6] + subs r0, 0x2 + strh r0, [r6, 0x6] +_080F80E0: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080F80EE + ldrh r0, [r6, 0x8] + adds r0, 0x40 + b _080F80F2 +_080F80EE: + ldrh r0, [r6, 0x8] + subs r0, 0x40 +_080F80F2: + strh r0, [r6, 0x8] + ldr r4, _080F811C + ldr r5, _080F8120 + ldrh r2, [r6, 0x6] + adds r0, r4, 0 + adds r1, r5, 0 + bl m4aMPlayVolumeControl + movs r0, 0x8 + ldrsh r2, [r6, r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl m4aMPlayPitchControl + ldrh r0, [r6, 0xA] + adds r0, 0x1 + strh r0, [r6, 0xA] +_080F8114: + ldrb r0, [r6, 0x2] + subs r0, 0x1 + strb r0, [r6, 0x2] + b _080F817A + .align 2, 0 +_080F811C: .4byte gMPlay_SE2 +_080F8120: .4byte 0x0000ffff +_080F8124: + adds r0, r1, 0x1 + movs r1, 0 + strb r0, [r6, 0x1] + strb r1, [r6, 0x3] + ldrh r0, [r7] + cmp r0, 0x32 + bhi _080F817A + ldrh r0, [r7, 0x6] + lsls r0, 4 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r6, 0x6] + ldr r4, _080F8168 + ldr r5, _080F816C + ldrh r2, [r6, 0x6] + adds r0, r4, 0 + adds r1, r5, 0 + bl m4aMPlayVolumeControl + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + ldrh r7, [r7, 0x4] + adds r0, r7 + strh r0, [r6, 0x8] + movs r0, 0x8 + ldrsh r2, [r6, r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl m4aMPlayPitchControl + b _080F817A + .align 2, 0 +_080F8168: .4byte gMPlay_SE2 +_080F816C: .4byte 0x0000ffff +_080F8170: + ldr r0, _080F8180 + bl m4aMPlayStop + movs r0, 0xFF +_080F8178: + strb r0, [r6, 0x3] +_080F817A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F8180: .4byte gMPlay_SE2 + thumb_func_end sub_80F7FB0 + + thumb_func_start sub_80F8184 +sub_80F8184: @ 80F8184 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080F81B4 + adds r5, r0, r1 + ldr r1, _080F81B8 + adds r0, r5, 0 + bl sub_80F7FB0 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x5 + bls _080F81A8 + b _080F83C8 +_080F81A8: + lsls r0, 2 + ldr r1, _080F81BC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F81B4: .4byte gTasks +_080F81B8: .4byte gUnknown_03005DA0 +_080F81BC: .4byte _080F81C0 + .align 2, 0 +_080F81C0: + .4byte _080F81D8 + .4byte _080F8218 + .4byte _080F8228 + .4byte _080F82D8 + .4byte _080F83B8 + .4byte _080F82C6 +_080F81D8: + bl sub_80F7BA0 + ldr r4, _080F820C + ldr r0, [r4] + ldr r1, _080F8210 + bl InitWindowFromConfig + ldr r0, [r4] + ldr r1, _080F8214 + movs r2, 0xF + str r2, [sp] + movs r2, 0x2 + movs r3, 0x4 + bl sub_8002EB0 + movs r0, 0 + strh r0, [r5, 0xA] + strh r0, [r5, 0xC] + strh r0, [r5, 0xE] + strh r0, [r5, 0x10] + movs r0, 0x4 + bl FadeOutBGMTemporarily + movs r0, 0x1 + b _080F83C6 + .align 2, 0 +_080F820C: .4byte gMenuWindowPtr +_080F8210: .4byte gWindowConfig_81E6CE4 +_080F8214: .4byte gStringVar4 +_080F8218: + bl IsBGMPausedOrStopped + lsls r0, 24 + cmp r0, 0 + bne _080F8224 + b _080F83C8 +_080F8224: + movs r0, 0x2 + b _080F83C6 +_080F8228: + ldr r4, _080F8240 + movs r2, 0xE + ldrsh r1, [r5, r2] + ldr r0, _080F8244 + adds r1, r0 + movs r3, 0 + ldrb r0, [r1] + ldr r7, _080F8248 + ldrh r2, [r5, 0x12] + ldr r6, _080F824C + b _080F825A + .align 2, 0 +_080F8240: .4byte gSaveBlock1 + 0x2D94 +_080F8244: .4byte gStringVar4 +_080F8248: .4byte gUnknown_03005DA0 +_080F824C: .4byte gUnknown_020388BC +_080F8250: + adds r1, 0x1 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + ldrb r0, [r1] +_080F825A: + cmp r0, 0 + beq _080F826A + cmp r0, 0xFE + beq _080F826A + cmp r0, 0xFC + beq _080F826A + cmp r0, 0xFF + bne _080F8250 +_080F826A: + cmp r2, 0 + bne _080F8278 + movs r0, 0x10 + ldrsh r1, [r5, r0] + lsls r1, 1 + adds r0, r4, 0x2 + b _080F8282 +_080F8278: + movs r2, 0x10 + ldrsh r1, [r5, r2] + lsls r1, 1 + adds r0, r4, 0 + adds r0, 0xE +_080F8282: + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x3 + ands r1, r0 + lsrs r0, 3 + movs r2, 0x1 + ands r0, r2 + adds r1, r0 + strh r1, [r6] + movs r1, 0x4 + ldrsh r0, [r7, r1] + adds r1, r3, 0 + bl __divsi3 + movs r1, 0 + strh r0, [r7, 0x4] + lsls r0, 16 + cmp r0, 0 + bgt _080F82AC + movs r0, 0x1 + strh r0, [r7, 0x4] +_080F82AC: + ldrh r0, [r5, 0x10] + adds r0, 0x1 + strh r0, [r5, 0x10] + movs r2, 0xC + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _080F82BE + movs r0, 0x3 + b _080F82C0 +_080F82BE: + movs r0, 0x5 +_080F82C0: + strh r0, [r5, 0x8] + strh r1, [r5, 0xA] + b _080F83C8 +_080F82C6: + ldrh r1, [r5, 0xC] + movs r2, 0xC + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _080F82D2 + b _080F83C4 +_080F82D2: + subs r0, r1, 0x1 + strh r0, [r5, 0xC] + b _080F83C8 +_080F82D8: + ldr r1, _080F8304 + movs r2, 0xE + ldrsh r0, [r5, r2] + adds r0, r1 + ldrb r4, [r0] + cmp r4, 0xFF + bne _080F830C + movs r0, 0xC8 + lsls r0, 1 + movs r1, 0x6 + bl FadeInNewBGM + ldr r0, _080F8308 + movs r1, 0x2 + bl m4aMPlayFadeOutTemporarily + bl EnableBothScriptContexts + adds r0, r6, 0 + bl DestroyTask + b _080F83C8 + .align 2, 0 +_080F8304: .4byte gStringVar4 +_080F8308: .4byte gMPlay_SE2 +_080F830C: + cmp r4, 0 + bne _080F832C + ldr r0, _080F8328 + ldr r0, [r0] + bl sub_8003418 + ldrh r0, [r5, 0xE] + adds r0, 0x1 + strh r0, [r5, 0xE] + movs r0, 0x2 + strh r0, [r5, 0x8] + strh r4, [r5, 0xC] + b _080F83C8 + .align 2, 0 +_080F8328: .4byte gMenuWindowPtr +_080F832C: + cmp r4, 0xFE + bne _080F8340 + ldrh r0, [r5, 0xE] + adds r0, 0x1 + movs r1, 0 + strh r0, [r5, 0xE] + movs r0, 0x2 + strh r0, [r5, 0x8] + strh r1, [r5, 0xC] + b _080F83C8 +_080F8340: + cmp r4, 0xFC + bne _080F8354 + ldrh r0, [r5, 0xE] + adds r0, 0x2 + strh r0, [r5, 0xE] + movs r0, 0x2 + strh r0, [r5, 0x8] + movs r0, 0x8 + strh r0, [r5, 0xC] + b _080F83C8 +_080F8354: + cmp r4, 0x37 + bne _080F8374 + movs r4, 0 + strb r4, [r0] + ldr r0, _080F8370 + ldr r0, [r0] + bl sub_8003418 + ldrh r0, [r5, 0xE] + adds r0, 0x1 + strh r0, [r5, 0xE] + strh r4, [r5, 0xC] + b _080F83C8 + .align 2, 0 +_080F8370: .4byte gMenuWindowPtr +_080F8374: + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080F8394 + cmp r0, 0x1 + bgt _080F8386 + cmp r0, 0 + beq _080F838C + b _080F83C8 +_080F8386: + cmp r0, 0x2 + beq _080F83A0 + b _080F83C8 +_080F838C: + ldr r0, _080F839C + ldr r0, [r0] + bl sub_8003418 +_080F8394: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + b _080F83C8 + .align 2, 0 +_080F839C: .4byte gMenuWindowPtr +_080F83A0: + ldrh r0, [r5, 0xE] + adds r0, 0x1 + movs r1, 0 + strh r0, [r5, 0xE] + strh r1, [r5, 0xA] + ldr r0, _080F83B4 + ldrh r0, [r0, 0x4] + strh r0, [r5, 0xC] + movs r0, 0x4 + b _080F83C6 + .align 2, 0 +_080F83B4: .4byte gUnknown_03005DA0 +_080F83B8: + ldrh r0, [r5, 0xC] + subs r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _080F83C8 +_080F83C4: + movs r0, 0x3 +_080F83C6: + strh r0, [r5, 0x8] +_080F83C8: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80F8184 + + thumb_func_start sub_80F83D0 +sub_80F83D0: @ 80F83D0 + push {r4,lr} + ldr r4, _080F83F4 + bl GetCurrentMauvilleOldMan + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 8 + movs r0, 0x8A + lsls r0, 15 + adds r1, r0 + lsrs r1, 16 + adds r0, r4, 0 + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F83F4: .4byte 0x00004010 + thumb_func_end sub_80F83D0 + + thumb_func_start sub_80F83F8 +sub_80F83F8: @ 80F83F8 + push {r4,lr} + ldr r0, _080F8424 + movs r2, 0 + movs r1, 0x3 + strb r1, [r0] + strb r2, [r0, 0x1] + movs r4, 0 + movs r3, 0xFF + adds r1, r0, 0x4 + movs r2, 0x3 +_080F840C: + strb r4, [r1] + ldrb r0, [r1, 0x4] + orrs r0, r3 + strb r0, [r1, 0x4] + adds r1, 0x1 + subs r2, 0x1 + cmp r2, 0 + bge _080F840C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F8424: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F83F8 + + thumb_func_start sub_80F8428 +sub_80F8428: @ 80F8428 + ldr r0, _080F8434 + movs r2, 0 + movs r1, 0x3 + strb r1, [r0] + strb r2, [r0, 0x1] + bx lr + .align 2, 0 +_080F8434: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F8428 + + thumb_func_start sub_80F8438 +sub_80F8438: @ 80F8438 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x32 + bne _080F8444 + movs r0, 0 +_080F8444: + bl sub_8053108 + pop {r1} + bx r1 + thumb_func_end sub_80F8438 + + thumb_func_start sub_80F844C +sub_80F844C: @ 80F844C + push {lr} + adds r3, r0, 0 + movs r2, 0 + ldr r1, _080F8460 +_080F8454: + ldrb r0, [r1] + cmp r0, r3 + bne _080F8464 + adds r0, r1, 0 + b _080F846E + .align 2, 0 +_080F8460: .4byte gUnknown_083E53E0 +_080F8464: + adds r1, 0x10 + adds r2, 0x1 + cmp r2, 0x23 + ble _080F8454 + ldr r0, _080F8474 +_080F846E: + pop {r1} + bx r1 + .align 2, 0 +_080F8474: .4byte gUnknown_083E5610 + thumb_func_end sub_80F844C + + thumb_func_start sub_80F8478 +sub_80F8478: @ 80F8478 + push {lr} + bl sub_80F844C + ldr r0, [r0, 0x4] + pop {r1} + bx r1 + thumb_func_end sub_80F8478 + + thumb_func_start sub_80F8484 +sub_80F8484: @ 80F8484 + push {lr} + bl sub_80F844C + ldr r0, [r0, 0xC] + pop {r1} + bx r1 + thumb_func_end sub_80F8484 + + thumb_func_start sub_80F8490 +sub_80F8490: @ 80F8490 + push {lr} + bl sub_80F844C + ldr r0, [r0, 0x8] + pop {r1} + bx r1 + thumb_func_end sub_80F8490 + + thumb_func_start sub_80F849C +sub_80F849C: @ 80F849C + push {lr} + movs r1, 0 + ldr r2, _080F84C4 + ldrb r0, [r2, 0x4] + cmp r0, 0 + beq _080F84BC + adds r2, 0x4 +_080F84AA: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bhi _080F84BC + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080F84AA +_080F84BC: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_080F84C4: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F849C + + thumb_func_start sub_80F84C8 +sub_80F84C8: @ 80F84C8 + lsls r0, 2 + ldr r1, _080F84E8 + adds r0, r1 + ldrb r2, [r0] + ldrb r1, [r0, 0x1] + lsls r1, 8 + orrs r2, r1 + ldrb r1, [r0, 0x2] + lsls r1, 16 + orrs r2, r1 + ldrb r0, [r0, 0x3] + lsls r0, 24 + orrs r2, r0 + adds r0, r2, 0 + bx lr + .align 2, 0 +_080F84E8: .4byte gSaveBlock1 + 0x2DB8 + thumb_func_end sub_80F84C8 + + thumb_func_start sub_80F84EC +sub_80F84EC: @ 80F84EC + lsls r0, 2 + ldr r2, _080F8504 + adds r0, r2 + strb r1, [r0] + lsrs r2, r1, 8 + strb r2, [r0, 0x1] + lsrs r2, r1, 16 + strb r2, [r0, 0x2] + lsrs r1, 24 + strb r1, [r0, 0x3] + bx lr + .align 2, 0 +_080F8504: .4byte gSaveBlock1 + 0x2DB8 + thumb_func_end sub_80F84EC + + thumb_func_start sub_80F8508 +sub_80F8508: @ 80F8508 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080F8528 + adds r0, 0x4 + adds r0, r5, r0 + ldrb r0, [r0] + bl sub_80F8438 + adds r4, r0, 0 + adds r0, r5, 0 + bl sub_80F84C8 + cmp r4, r0 + bhi _080F852C + movs r0, 0 + b _080F852E + .align 2, 0 +_080F8528: .4byte gSaveBlock1 + 0x2D94 +_080F852C: + movs r0, 0x1 +_080F852E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F8508 + + thumb_func_start sub_80F8534 +sub_80F8534: @ 80F8534 + push {r4,r5,lr} + adds r5, r1, 0 + lsls r4, r0, 3 + subs r4, r0 + ldr r0, _080F855C + adds r4, r0 + adds r0, r5, 0 + movs r1, 0xFF + movs r2, 0x8 + bl memset + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x7 + bl memcpy + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F855C: .4byte gSaveBlock1 + 0x2D9C + thumb_func_end sub_80F8534 + + thumb_func_start sub_80F8560 +sub_80F8560: @ 80F8560 + push {r4-r6,lr} + adds r6, r1, 0 + lsls r5, r0, 3 + subs r5, r0 + ldr r0, _080F8594 + adds r5, r0 + adds r0, r6, 0 + bl StringLength + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0xFF + movs r2, 0x7 + bl memset + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl StringCopyN + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F8594: .4byte gSaveBlock1 + 0x2D9C + thumb_func_end sub_80F8560 + + thumb_func_start sub_80F8598 +sub_80F8598: @ 80F8598 + push {r4-r6,lr} + adds r5, r0, 0 + adds r6, r1, 0 + ldr r0, _080F85EC + adds r0, 0x4 + adds r0, r5, r0 + strb r6, [r0] + ldr r1, _080F85F0 + adds r0, r5, 0 + bl sub_80F8560 + lsls r4, r6, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80F8438 + adds r1, r0, 0 + adds r0, r5, 0 + bl sub_80F84EC + ldr r5, _080F85F4 + adds r0, r4, 0 + bl sub_80F8438 + adds r1, r0, 0 + adds r0, r5, 0 + movs r2, 0 + movs r3, 0xA + bl ConvertIntToDecimalStringN + ldr r4, _080F85F8 + adds r0, r6, 0 + bl sub_80F8490 + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F85EC: .4byte gSaveBlock1 + 0x2D94 +_080F85F0: .4byte gSaveBlock2 +_080F85F4: .4byte gStringVar1 +_080F85F8: .4byte gStringVar2 + thumb_func_end sub_80F8598 + + thumb_func_start sub_80F85FC +sub_80F85FC: @ 80F85FC + push {r4-r7,lr} + adds r7, r0, 0 + adds r6, r1, 0 + movs r5, 0 + cmp r5, r6 + bge _080F8612 +_080F8608: + adds r0, r7, r5 + strb r5, [r0] + adds r5, 0x1 + cmp r5, r6 + blt _080F8608 +_080F8612: + cmp r6, 0 + ble _080F8648 + adds r5, r6, 0 +_080F8618: + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl __modsi3 + adds r4, r0, 0 + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl __modsi3 + adds r4, r7, r4 + ldrb r2, [r4] + adds r0, r7, r0 + ldrb r1, [r0] + strb r1, [r4] + strb r2, [r0] + subs r5, 0x1 + cmp r5, 0 + bne _080F8618 +_080F8648: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80F85FC + + thumb_func_start sub_80F8650 +sub_80F8650: @ 80F8650 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r7, sp + mov r10, sp + ldr r0, _080F86D4 + ldr r0, [r0] + lsls r0, 3 + lsrs r0, 3 + adds r0, 0x3 + lsrs r0, 2 + lsls r0, 2 + mov r1, sp + subs r1, r0 + mov sp, r1 + mov r8, sp + mov r0, sp + movs r1, 0x24 + bl sub_80F85FC + movs r5, 0 + ldr r0, _080F86D8 + mov r9, r0 + ldr r3, _080F86DC +_080F8686: + mov r1, r8 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, 4 + add r0, r9 + ldrb r4, [r0] + ldrb r6, [r0, 0x1] + movs r1, 0 + ldrb r0, [r3, 0x4] + cmp r0, r4 + beq _080F86AC + ldr r2, _080F86E0 +_080F869E: + adds r1, 0x1 + cmp r1, 0x3 + bgt _080F86AC + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, r4 + bne _080F869E +_080F86AC: + cmp r1, 0x4 + bne _080F86E4 + adds r0, r4, 0 + str r3, [r7] + bl sub_80F8438 + ldr r3, [r7] + cmp r0, r6 + bcc _080F86E4 + movs r0, 0x1 + strb r0, [r3, 0x1] + bl sub_80F849C + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + bl sub_80F8598 + movs r0, 0x1 + b _080F86EC + .align 2, 0 +_080F86D4: .4byte gUnknown_083E5620 +_080F86D8: .4byte gUnknown_083E53E0 +_080F86DC: .4byte gSaveBlock1 + 0x2D94 +_080F86E0: .4byte gSaveBlock1 + 0x2D98 +_080F86E4: + adds r5, 0x1 + cmp r5, 0x23 + ble _080F8686 + movs r0, 0 +_080F86EC: + mov sp, r10 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F8650 + + thumb_func_start sub_80F8700 +sub_80F8700: @ 80F8700 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _080F8748 + adds r0, 0x4 + adds r0, r5, r0 + ldrb r6, [r0] + ldr r4, _080F874C + adds r0, r5, 0 + bl sub_80F84C8 + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0 + movs r3, 0xA + bl ConvertIntToDecimalStringN + ldr r4, _080F8750 + adds r0, r6, 0 + bl sub_80F8490 + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldr r1, _080F8754 + adds r0, r5, 0 + bl sub_80F8534 + adds r0, r6, 0 + bl sub_80F8484 + bl ShowFieldMessage + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F8748: .4byte gSaveBlock1 + 0x2D94 +_080F874C: .4byte gStringVar1 +_080F8750: .4byte gStringVar2 +_080F8754: .4byte gStringVar3 + thumb_func_end sub_80F8700 + + thumb_func_start sub_80F8758 +sub_80F8758: @ 80F8758 + push {r4-r6,lr} + bl sub_80F849C + adds r3, r0, 0 + lsls r3, 25 + movs r0, 0x80 + lsls r0, 19 + adds r3, r0 + lsrs r3, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x19 + bl MenuDrawTextWindow + movs r4, 0 + ldr r1, _080F87BC + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _080F87A4 + adds r6, r1, 0x4 + movs r5, 0x80 + lsls r5, 18 +_080F8784: + bl sub_80F8478 + lsrs r2, r5, 24 + movs r1, 0x1 + bl MenuPrint + movs r1, 0x80 + lsls r1, 18 + adds r5, r1 + adds r4, 0x1 + cmp r4, 0x3 + bgt _080F87A4 + adds r0, r4, r6 + ldrb r0, [r0] + cmp r0, 0 + bne _080F8784 +_080F87A4: + ldr r0, _080F87C0 + lsls r2, r4, 25 + movs r1, 0x80 + lsls r1, 18 + adds r2, r1 + lsrs r2, 24 + movs r1, 0x1 + bl MenuPrint + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F87BC: .4byte gSaveBlock1 + 0x2D94 +_080F87C0: .4byte gPCText_Cancel + thumb_func_end sub_80F8758 + + thumb_func_start sub_80F87C4 +sub_80F87C4: @ 80F87C4 + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080F87E4 + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _080F87E8 + cmp r5, 0x1 + beq _080F8810 + b _080F8862 + .align 2, 0 +_080F87E4: .4byte gTasks +_080F87E8: + bl sub_80F8758 + bl sub_80F849C + adds r3, r0, 0 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + str r5, [sp] + movs r0, 0x18 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x2 + bl InitMenu + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080F8862 +_080F8810: + bl ProcessMenuInput + lsls r0, 24 + asrs r4, r0, 24 + movs r0, 0x2 + negs r0, r0 + cmp r4, r0 + beq _080F8862 + adds r0, 0x1 + cmp r4, r0 + beq _080F8832 + bl sub_80F849C + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _080F8840 +_080F8832: + ldr r1, _080F883C + movs r0, 0 + strh r0, [r1] + b _080F8848 + .align 2, 0 +_080F883C: .4byte gScriptResult +_080F8840: + ldr r0, _080F886C + strh r5, [r0] + ldr r0, _080F8870 + strb r4, [r0] +_080F8848: + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x19 + movs r3, 0xC + bl MenuZeroFillWindowRect + adds r0, r6, 0 + bl DestroyTask + bl EnableBothScriptContexts +_080F8862: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F886C: .4byte gScriptResult +_080F8870: .4byte gUnknown_03000748 + thumb_func_end sub_80F87C4 + + thumb_func_start sub_80F8874 +sub_80F8874: @ 80F8874 + push {lr} + ldr r0, _080F8884 + movs r1, 0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080F8884: .4byte sub_80F87C4 + thumb_func_end sub_80F8874 + + thumb_func_start sub_80F8888 +sub_80F8888: @ 80F8888 + push {lr} + ldr r0, _080F8898 + ldrb r0, [r0] + bl sub_80F8700 + pop {r0} + bx r0 + .align 2, 0 +_080F8898: .4byte gUnknown_03000748 + thumb_func_end sub_80F8888 + + thumb_func_start sub_80F889C +sub_80F889C: @ 80F889C + push {lr} + bl sub_80F849C + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80F889C + + thumb_func_start sub_80F88AC +sub_80F88AC: @ 80F88AC + push {r4,r5,lr} + ldr r1, _080F88C8 + ldr r5, _080F88CC + ldrb r0, [r5] + adds r1, 0x4 + adds r1, r0, r1 + ldrb r4, [r1] + bl sub_80F8508 + cmp r0, 0x1 + beq _080F88D0 + movs r0, 0 + b _080F88DA + .align 2, 0 +_080F88C8: .4byte gSaveBlock1 + 0x2D94 +_080F88CC: .4byte gUnknown_03000748 +_080F88D0: + ldrb r0, [r5] + adds r1, r4, 0 + bl sub_80F8598 + movs r0, 0x1 +_080F88DA: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F88AC + + thumb_func_start sub_80F88E0 +sub_80F88E0: @ 80F88E0 + push {lr} + ldr r0, _080F88F0 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _080F88F4 + movs r0, 0x1 + b _080F88F6 + .align 2, 0 +_080F88F0: .4byte gSaveBlock1 + 0x2D94 +_080F88F4: + movs r0, 0 +_080F88F6: + pop {r1} + bx r1 + thumb_func_end sub_80F88E0 + + thumb_func_start sub_80F88FC +sub_80F88FC: @ 80F88FC + push {lr} + bl sub_80F8650 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80F88FC + + thumb_func_start sub_80F890C +sub_80F890C: @ 80F890C + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + adds r6, r1, 0 + lsls r2, 24 + lsrs r5, r2, 24 + ldr r2, _080F8958 + adds r1, r2, 0 + adds r1, 0xFF + movs r0, 0x2 + strb r0, [r1] + adds r0, 0xFE + adds r1, r2, r0 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0x82 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, _080F895C + str r0, [r1] + movs r0, 0x84 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, _080F8960 + str r0, [r1] + ldrh r1, [r4, 0x20] + adds r0, r1, 0 + subs r0, 0x79 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB + bhi _080F8964 + subs r1, 0x79 + adds r0, r2, 0 + adds r0, 0xFA + strb r1, [r0] + b _080F896E + .align 2, 0 +_080F8958: .4byte 0x02000000 +_080F895C: .4byte sub_80EB3FC +_080F8960: .4byte ConvertEasyChatWordsToString +_080F8964: + adds r1, r2, 0 + adds r1, 0xFA + movs r0, 0 + strb r0, [r1] + movs r5, 0 +_080F896E: + ldr r1, _080F8994 + movs r2, 0x80 + lsls r2, 1 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080F8980 + cmp r0, 0x1 + beq _080F899C +_080F8980: + movs r0, 0x86 + lsls r0, 1 + adds r2, r1, r0 + adds r0, r1, 0 + adds r0, 0xFA + ldrb r0, [r0] + lsls r0, 3 + ldr r1, _080F8998 + b _080F89AC + .align 2, 0 +_080F8994: .4byte 0x02000000 +_080F8998: .4byte gUnknown_083E5730 +_080F899C: + movs r0, 0x86 + lsls r0, 1 + adds r2, r1, r0 + adds r0, r1, 0 + adds r0, 0xFA + ldrb r0, [r0] + lsls r0, 3 + ldr r1, _080F89DC +_080F89AC: + adds r0, r1 + str r0, [r2] + ldrh r0, [r4, 0x1E] + mov r1, sp + bl sub_80A2D64 + lsls r0, 16 + ldr r1, _080F89E0 + adds r0, r1 + movs r1, 0xCD + lsls r1, 17 + cmp r0, r1 + bhi _080F89F8 + ldr r0, _080F89E4 + adds r1, r0, 0 + adds r1, 0xFA + ldrb r2, [r1] + adds r1, r0, 0 + cmp r2, 0x6 + beq _080F89E8 + cmp r2, 0x9 + beq _080F89F0 + b _080F89FA + .align 2, 0 +_080F89DC: .4byte gUnknown_083E57A4 +_080F89E0: .4byte 0xffff0000 +_080F89E4: .4byte 0x02000000 +_080F89E8: + adds r2, r1, 0 + adds r2, 0xFB + movs r0, 0x1 + b _080F8A00 +_080F89F0: + adds r2, r1, 0 + adds r2, 0xFB + movs r0, 0x2 + b _080F8A00 +_080F89F8: + ldr r1, _080F8A20 +_080F89FA: + adds r2, r1, 0 + adds r2, 0xFB + movs r0, 0 +_080F8A00: + strb r0, [r2] + adds r0, r1, 0 + adds r0, 0xF4 + str r4, [r0] + subs r0, 0x8 + str r6, [r0] + adds r0, 0xC + strb r5, [r0] + ldr r0, _080F8A24 + bl SetMainCallback2 + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F8A20: .4byte 0x02000000 +_080F8A24: .4byte sub_80F8D50 + thumb_func_end sub_80F890C + + thumb_func_start sub_80F8A28 +sub_80F8A28: @ 80F8A28 + push {r4,r5,lr} + sub sp, 0x8 + ldr r0, _080F8A44 + ldr r1, _080F8A48 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x12 + bls _080F8A3A + b _080F8D3C +_080F8A3A: + lsls r0, 2 + ldr r1, _080F8A4C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F8A44: .4byte gMain +_080F8A48: .4byte 0x0000043c +_080F8A4C: .4byte _080F8A50 + .align 2, 0 +_080F8A50: + .4byte _080F8A9C + .4byte _080F8AB0 + .4byte _080F8AC8 + .4byte _080F8ACE + .4byte _080F8AD4 + .4byte _080F8ADA + .4byte _080F8B10 + .4byte _080F8B1C + .4byte _080F8B28 + .4byte _080F8B34 + .4byte _080F8B3A + .4byte _080F8B54 + .4byte _080F8B78 + .4byte _080F8BA0 + .4byte _080F8C14 + .4byte _080F8C2C + .4byte _080F8C58 + .4byte _080F8CBC + .4byte _080F8CC6 +_080F8A9C: + movs r0, 0 + bl SetVBlankCallback + bl remove_some_task + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + b _080F8D30 +_080F8AB0: + add r1, sp, 0x4 + movs r0, 0 + strh r0, [r1] + movs r1, 0xE0 + lsls r1, 19 + ldr r2, _080F8AC4 + add r0, sp, 0x4 + bl CpuSet + b _080F8D30 + .align 2, 0 +_080F8AC4: .4byte 0x01000200 +_080F8AC8: + bl ResetPaletteFade + b _080F8D30 +_080F8ACE: + bl ResetTasks + b _080F8D30 +_080F8AD4: + bl ResetSpriteData + b _080F8D30 +_080F8ADA: + bl FreeAllSpritePalettes + ldr r0, _080F8B0C + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x32 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + b _080F8D30 + .align 2, 0 +_080F8B0C: .4byte REG_BG0HOFS +_080F8B10: + ldr r0, _080F8B18 + bl SetUpWindowConfig + b _080F8D30 + .align 2, 0 +_080F8B18: .4byte gWindowConfig_81E6DFC +_080F8B1C: + ldr r0, _080F8B24 + bl MultistepInitMenuWindowBegin + b _080F8D30 + .align 2, 0 +_080F8B24: .4byte gWindowConfig_81E6DFC +_080F8B28: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + beq _080F8B32 + b _080F8D30 +_080F8B32: + b _080F8D3C +_080F8B34: + bl MenuZeroFillScreen + b _080F8D30 +_080F8B3A: + mov r0, sp + adds r0, 0x6 + movs r1, 0x1 + strh r1, [r0] + ldr r1, _080F8B4C + ldr r2, _080F8B50 + bl CpuSet + b _080F8D30 + .align 2, 0 +_080F8B4C: .4byte 0x06004800 +_080F8B50: .4byte 0x01000400 +_080F8B54: + ldr r2, _080F8B70 + ldr r0, _080F8B74 + adds r0, 0xFA + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + b _080F8D30 + .align 2, 0 +_080F8B70: .4byte gMailGraphicsTable +_080F8B74: .4byte 0x02000000 +_080F8B78: + ldr r2, _080F8B94 + ldr r0, _080F8B98 + adds r0, 0xFA + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x8 + adds r0, r2 + ldr r0, [r0] + ldr r1, _080F8B9C + bl LZ77UnCompVram + b _080F8D30 + .align 2, 0 +_080F8B94: .4byte gMailGraphicsTable +_080F8B98: .4byte 0x02000000 +_080F8B9C: .4byte 0x06004000 +_080F8BA0: + ldr r5, _080F8C00 + ldr r4, _080F8C04 + adds r4, 0xFA + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0x4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r3, _080F8C08 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r0, [r0, 0x10] + movs r2, 0xF1 + lsls r2, 1 + adds r1, r3, r2 + strh r0, [r1] + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x12] + adds r2, 0xE + adds r0, r3, r2 + strh r1, [r0] + ldr r1, _080F8C0C + ldr r2, _080F8C10 + ldrb r0, [r2, 0x8] + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3, 0x14] + ldrb r0, [r2, 0x8] + lsls r0, 2 + adds r1, 0x2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3, 0x16] + b _080F8D30 + .align 2, 0 +_080F8C00: .4byte gMailGraphicsTable +_080F8C04: .4byte 0x02000000 +_080F8C08: .4byte gPlttBufferUnfaded +_080F8C0C: .4byte gUnknown_083E562C +_080F8C10: .4byte gSaveBlock2 +_080F8C14: + ldr r0, _080F8C28 + adds r0, 0xF8 + ldrb r0, [r0] + cmp r0, 0 + bne _080F8C20 + b _080F8D30 +_080F8C20: + bl sub_80F8DA0 + b _080F8D30 + .align 2, 0 +_080F8C28: .4byte 0x02000000 +_080F8C2C: + ldr r0, _080F8C4C + adds r0, 0xF8 + ldrb r0, [r0] + cmp r0, 0 + beq _080F8C3A + bl sub_80F8E80 +_080F8C3A: + ldr r0, _080F8C50 + bl SetVBlankCallback + ldr r2, _080F8C54 + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + b _080F8D30 + .align 2, 0 +_080F8C4C: .4byte 0x02000000 +_080F8C50: .4byte sub_80F8F18 +_080F8C54: .4byte gPaletteFade +_080F8C58: + ldr r5, _080F8C7C + adds r0, r5, 0 + adds r0, 0xF4 + ldr r0, [r0] + ldrh r0, [r0, 0x1E] + bl sub_809D4A8 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r5, 0 + adds r0, 0xFB + ldrb r0, [r0] + cmp r0, 0x1 + beq _080F8C80 + cmp r0, 0x2 + beq _080F8C98 + b _080F8D30 + .align 2, 0 +_080F8C7C: .4byte 0x02000000 +_080F8C80: + adds r0, r4, 0 + bl sub_809D580 + ldr r1, _080F8C94 + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r2, 0x60 + b _080F8CA8 + .align 2, 0 +_080F8C94: .4byte SpriteCallbackDummy +_080F8C98: + adds r0, r4, 0 + bl sub_809D580 + ldr r1, _080F8CB8 + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r2, 0x28 +_080F8CA8: + movs r3, 0x80 + bl sub_809D3A4 + adds r1, r5, 0 + adds r1, 0xFC + strb r0, [r1] + b _080F8D30 + .align 2, 0 +_080F8CB8: .4byte SpriteCallbackDummy +_080F8CBC: + bl sub_8055870 + cmp r0, 0x1 + bne _080F8D30 + b _080F8D3C +_080F8CC6: + ldr r1, _080F8D14 + ldr r2, _080F8D18 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F8D1C + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F8D20 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x44 + movs r0, 0 + strh r0, [r1] + subs r1, 0x50 + movs r2, 0xBA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r2, _080F8D24 + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r0, _080F8D28 + adds r0, 0xF0 + ldr r1, _080F8D2C + str r1, [r0] + movs r0, 0x1 + b _080F8D3E + .align 2, 0 +_080F8D14: .4byte REG_BG0CNT +_080F8D18: .4byte 0x00009f08 +_080F8D1C: .4byte 0x00000801 +_080F8D20: .4byte 0x00000902 +_080F8D24: .4byte gPaletteFade +_080F8D28: .4byte 0x02000000 +_080F8D2C: .4byte sub_80F8F58 +_080F8D30: + ldr r1, _080F8D48 + ldr r0, _080F8D4C + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F8D3C: + movs r0, 0 +_080F8D3E: + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F8D48: .4byte gMain +_080F8D4C: .4byte 0x0000043c + thumb_func_end sub_80F8A28 + + thumb_func_start sub_80F8D50 +sub_80F8D50: @ 80F8D50 + push {lr} +_080F8D52: + bl sub_80F8A28 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F8D6C + ldr r0, _080F8D68 + bl SetMainCallback2 + b _080F8D78 + .align 2, 0 +_080F8D68: .4byte sub_80F8F2C +_080F8D6C: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F8D52 +_080F8D78: + pop {r0} + bx r0 + thumb_func_end sub_80F8D50 + + thumb_func_start sub_80F8D7C +sub_80F8D7C: @ 80F8D7C + push {r4,lr} + adds r4, r0, 0 + bl StringCopy + adds r0, r4, 0 + bl sub_814A568 + adds r0, r4, 0 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + adds r4, r0 + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F8D7C + + thumb_func_start sub_80F8DA0 +sub_80F8DA0: @ 80F8DA0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + movs r5, 0 + ldr r2, _080F8E3C + movs r0, 0x86 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, [r1] + ldrb r0, [r0] + cmp r5, r0 + bcs _080F8E04 + mov r8, r2 + adds r7, r1, 0 +_080F8DBE: + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + subs r0, r5 + add r0, r8 + mov r1, r8 + adds r1, 0xF4 + lsls r2, r6, 1 + ldr r1, [r1] + adds r1, r2 + ldr r2, [r7] + ldr r2, [r2, 0x4] + lsls r4, r5, 2 + adds r2, r4, r2 + ldr r2, [r2] + lsls r2, 28 + lsrs r2, 30 + movs r3, 0x1 + bl ConvertEasyChatWordsToString + ldr r1, [r7] + ldr r0, [r1, 0x4] + adds r4, r0 + ldr r0, [r4] + lsls r0, 28 + lsrs r0, 30 + adds r0, r6, r0 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldrb r1, [r1] + cmp r5, r1 + bcc _080F8DBE +_080F8E04: + ldr r2, _080F8E40 + adds r4, r2, 0 + subs r4, 0xD8 + adds r0, r2, 0 + adds r0, 0x28 + ldrb r0, [r0] + cmp r0, 0 + bne _080F8E48 + ldr r1, [r2, 0x1C] + adds r1, 0x12 + adds r0, r2, 0 + bl sub_80F8D7C + adds r2, r0, 0 + ldr r1, _080F8E44 + bl StringCopy + ldr r0, _080F8E40 + bl StringLength + movs r2, 0x86 + lsls r2, 1 + adds r1, r4, r2 + ldr r1, [r1] + ldrb r1, [r1, 0x2] + subs r1, r0 + b _080F8E6A + .align 2, 0 +_080F8E3C: .4byte 0x02000000 +_080F8E40: .4byte 0x020000d8 +_080F8E44: .4byte gOtherText_From +_080F8E48: + ldr r1, _080F8E7C + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + adds r0, r4, 0 + adds r0, 0xF4 + ldr r1, [r0] + adds r1, 0x12 + adds r0, r2, 0 + bl sub_80F8D7C + movs r1, 0x86 + lsls r1, 1 + adds r0, r4, r1 + ldr r0, [r0] + ldrb r1, [r0, 0x2] +_080F8E6A: + adds r0, r4, 0 + adds r0, 0xF9 + strb r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F8E7C: .4byte gOtherText_From + thumb_func_end sub_80F8DA0 + + thumb_func_start sub_80F8E80 +sub_80F8E80: @ 80F8E80 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + movs r4, 0 + ldr r1, _080F8F10 + movs r0, 0x86 + lsls r0, 1 + adds r2, r1, r0 + ldr r0, [r2] + ldrb r0, [r0] + cmp r4, r0 + bcs _080F8EF6 + mov r8, r1 + adds r7, r2, 0 +_080F8E9E: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + subs r0, r4 + mov r1, r8 + adds r5, r0, r1 + ldrb r0, [r5] + cmp r0, 0xFF + beq _080F8EE8 + cmp r0, 0 + beq _080F8EE8 + ldr r2, [r7] + ldr r1, [r2, 0x4] + lsls r0, r4, 2 + adds r0, r1 + ldr r0, [r0] + lsls r3, r0, 24 + lsrs r3, 28 + lsls r0, 30 + lsrs r0, 30 + adds r0, r6, r0 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r2, [r2, 0x3] + lsrs r1, r2, 4 + adds r1, r3 + lsls r2, 28 + lsrs r2, 28 + adds r2, r6, r2 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + bl MenuPrint + adds r0, r6, 0x2 + lsls r0, 24 + lsrs r6, r0, 24 +_080F8EE8: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, [r7] + ldrb r0, [r0] + cmp r4, r0 + bcc _080F8E9E +_080F8EF6: + ldr r0, _080F8F14 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r1, [r1] + ldr r2, [r0, 0x34] + ldrb r2, [r2, 0x1] + bl MenuPrint + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F8F10: .4byte 0x02000000 +_080F8F14: .4byte 0x020000d8 + thumb_func_end sub_80F8E80 + + thumb_func_start sub_80F8F18 +sub_80F8F18: @ 80F8F18 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_80F8F18 + + thumb_func_start sub_80F8F2C +sub_80F8F2C: @ 80F8F2C + push {r4,lr} + ldr r4, _080F8F54 + adds r0, r4, 0 + adds r0, 0xFB + ldrb r0, [r0] + cmp r0, 0 + beq _080F8F42 + bl AnimateSprites + bl BuildOamBuffer +_080F8F42: + adds r0, r4, 0 + adds r0, 0xF0 + ldr r0, [r0] + bl _call_via_r0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F8F54: .4byte 0x02000000 + thumb_func_end sub_80F8F2C + + thumb_func_start sub_80F8F58 +sub_80F8F58: @ 80F8F58 + push {lr} + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080F8F6C + ldr r0, _080F8F70 + adds r0, 0xF0 + ldr r1, _080F8F74 + str r1, [r0] +_080F8F6C: + pop {r0} + bx r0 + .align 2, 0 +_080F8F70: .4byte 0x02000000 +_080F8F74: .4byte sub_80F8F78 + thumb_func_end sub_80F8F58 + + thumb_func_start sub_80F8F78 +sub_80F8F78: @ 80F8F78 + push {lr} + sub sp, 0x4 + ldr r0, _080F8FA8 + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080F8FA0 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _080F8FAC + adds r0, 0xF0 + ldr r1, _080F8FB0 + str r1, [r0] +_080F8FA0: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080F8FA8: .4byte gMain +_080F8FAC: .4byte 0x02000000 +_080F8FB0: .4byte sub_80F8FB4 + thumb_func_end sub_80F8F78 + + thumb_func_start sub_80F8FB4 +sub_80F8FB4: @ 80F8FB4 + push {r4,lr} + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080F9012 + ldr r4, _080F9018 + adds r0, r4, 0 + adds r0, 0xEC + ldr r0, [r0] + bl SetMainCallback2 + adds r0, r4, 0 + adds r0, 0xFB + ldrb r0, [r0] + cmp r0, 0x2 + bgt _080F9002 + cmp r0, 0x1 + blt _080F9002 + adds r0, r4, 0 + adds r0, 0xF4 + ldr r0, [r0] + ldrh r0, [r0, 0x1E] + bl sub_809D4A8 + lsls r0, 16 + lsrs r0, 16 + bl sub_809D608 + adds r0, r4, 0 + adds r0, 0xFC + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F901C + adds r0, r1 + bl sub_809D510 +_080F9002: + ldr r0, _080F9018 + movs r2, 0x88 + lsls r2, 1 + movs r1, 0 + bl memset + bl ResetPaletteFade +_080F9012: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9018: .4byte 0x02000000 +_080F901C: .4byte gSprites + thumb_func_end sub_80F8FB4 + + thumb_func_start sub_80F9020 +sub_80F9020: @ 80F9020 + push {r4,r5,lr} + ldr r4, _080F9054 + movs r5, 0x80 + lsls r5, 4 + adds r0, r4, 0 + movs r1, 0 + adds r2, r5, 0 + bl memset + adds r0, r4, r5 + movs r1, 0 + adds r2, r5, 0 + bl memset + movs r0, 0x80 + lsls r0, 5 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0 + adds r2, r5, 0 + bl memset + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F9054: .4byte gBG1TilemapBuffer + thumb_func_end sub_80F9020 + + thumb_func_start sav2_get_text_speed +sav2_get_text_speed: @ 80F9058 + push {r4,r5,lr} + sub sp, 0x8 + adds r5, r0, 0 + lsls r1, 16 + lsrs r4, r1, 16 + bl MenuDisplayMessageBox + cmp r4, 0 + beq _080F907C + ldr r0, _080F908C + movs r1, 0x4 + str r1, [sp] + str r4, [sp, 0x4] + movs r1, 0x2 + movs r2, 0xF + movs r3, 0x1A + bl sub_80A3FA0 +_080F907C: + adds r0, r5, 0 + bl sub_8072044 + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F908C: .4byte gBG1TilemapBuffer + thumb_func_end sav2_get_text_speed + + thumb_func_start sub_80F9090 +sub_80F9090: @ 80F9090 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl MenuUpdateWindowText + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F90AC + ldr r0, _080F90B4 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 +_080F90AC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F90B4: .4byte gUnknown_0300074C + thumb_func_end sub_80F9090 + + thumb_func_start DisplayItemMessageOnField +DisplayItemMessageOnField: @ 80F90B8 + push {r4,r5,lr} + adds r4, r0, 0 + adds r0, r1, 0 + adds r5, r2, 0 + adds r1, r3, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 16 + lsrs r1, 16 + bl sav2_get_text_speed + ldr r0, _080F90E8 + str r5, [r0] + ldr r1, _080F90EC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080F90F0 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F90E8: .4byte gUnknown_0300074C +_080F90EC: .4byte gTasks +_080F90F0: .4byte sub_80F9090 + thumb_func_end DisplayItemMessageOnField + + thumb_func_start Task_CallYesOrNoCallback +Task_CallYesOrNoCallback: @ 80F90F4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _080F911A + cmp r1, 0 + bgt _080F9114 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080F9130 + b _080F9140 +_080F9114: + cmp r1, 0x1 + beq _080F9130 + b _080F9140 +_080F911A: + movs r0, 0x5 + bl PlaySE + ldr r0, _080F912C + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + b _080F9140 + .align 2, 0 +_080F912C: .4byte gUnknown_020388C4 +_080F9130: + movs r0, 0x5 + bl PlaySE + ldr r0, _080F9148 + ldr r1, [r0, 0x4] + adds r0, r4, 0 + bl _call_via_r1 +_080F9140: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9148: .4byte gUnknown_020388C4 + thumb_func_end Task_CallYesOrNoCallback + + thumb_func_start sub_80F914C +sub_80F914C: @ 80F914C + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080F916C + ldr r2, [r1, 0x4] + ldr r1, [r1] + str r1, [r3] + str r2, [r3, 0x4] + ldr r2, _080F9170 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080F9174 + str r0, [r1] + bx lr + .align 2, 0 +_080F916C: .4byte gUnknown_020388C4 +_080F9170: .4byte gTasks +_080F9174: .4byte Task_CallYesOrNoCallback + thumb_func_end sub_80F914C + + thumb_func_start brm_trade_1 +brm_trade_1: @ 80F9178 + push {r4-r7,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r6, r3, 24 + ldr r1, _080F91C0 + mov r0, sp + movs r2, 0x4 + bl memcpy + cmp r4, 0xFF + beq _080F91CC + mov r0, sp + strb r4, [r0, 0x2] + ldr r4, _080F91C4 + adds r0, r4, 0 + mov r1, sp + bl StringCopy + adds r0, r4, 0 + adds r1, r5, 0 + bl StringAppend + mov r1, sp + ldr r0, _080F91C8 + ldr r0, [r0] + ldrb r0, [r0, 0x6] + strb r0, [r1, 0x2] + adds r0, r4, 0 + bl StringAppend + b _080F91D4 + .align 2, 0 +_080F91C0: .4byte gUnknown_083E5A18 +_080F91C4: .4byte gStringVar4 +_080F91C8: .4byte gMenuWindowPtr +_080F91CC: + ldr r0, _080F91E8 + adds r1, r5, 0 + bl StringCopy +_080F91D4: + ldr r0, _080F91E8 + adds r1, r7, 0 + adds r2, r6, 0 + bl MenuPrint + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F91E8: .4byte gStringVar4 + thumb_func_end brm_trade_1 + + thumb_func_start unref_sub_80F91EC +unref_sub_80F91EC: @ 80F91EC + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r12, r0 + adds r4, r2, 0 + adds r2, r3, 0 + ldr r0, [sp, 0x18] + ldr r3, [sp, 0x1C] + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r4, 24 + lsrs r4, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r3, 24 + lsrs r5, r3, 24 + ldr r6, _080F9234 + adds r0, r6, 0 + mov r1, r12 + adds r3, r4, 0 + bl ConvertIntToDecimalStringN + mov r0, r8 + cmp r0, 0xFF + beq _080F9238 + adds r0, r6, 0 + mov r1, r8 + adds r2, r7, 0 + adds r3, r5, 0 + bl brm_trade_1 + b _080F9242 + .align 2, 0 +_080F9234: .4byte gStringVar1 +_080F9238: + adds r0, r6, 0 + adds r1, r7, 0 + adds r2, r5, 0 + bl MenuPrint +_080F9242: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end unref_sub_80F91EC + + thumb_func_start unref_sub_80F924C +unref_sub_80F924C: @ 80F924C + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + adds r6, r1, 0 + adds r4, r2, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080F9280 + mov r0, sp + movs r2, 0x2 + bl memcpy + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl brm_trade_1 + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F9280: .4byte gUnknown_083E5A1C + thumb_func_end unref_sub_80F924C + + thumb_func_start sub_80F9284 +sub_80F9284: @ 80F9284 + push {lr} + ldr r0, _080F92A0 + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _080F92B6 + ldr r0, _080F92A4 + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _080F92A8 + movs r0, 0x1 + b _080F92B8 + .align 2, 0 +_080F92A0: .4byte gSaveBlock2 +_080F92A4: .4byte gMain +_080F92A8: + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080F92B6 + movs r0, 0x2 + b _080F92B8 +_080F92B6: + movs r0, 0 +_080F92B8: + pop {r1} + bx r1 + thumb_func_end sub_80F9284 + + thumb_func_start sub_80F92BC +sub_80F92BC: @ 80F92BC + push {lr} + ldr r0, _080F92D8 + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _080F92EE + ldr r0, _080F92DC + ldrh r1, [r0, 0x30] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _080F92E0 + movs r0, 0x1 + b _080F92F0 + .align 2, 0 +_080F92D8: .4byte gSaveBlock2 +_080F92DC: .4byte gMain +_080F92E0: + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080F92EE + movs r0, 0x2 + b _080F92F0 +_080F92EE: + movs r0, 0 +_080F92F0: + pop {r1} + bx r1 + thumb_func_end sub_80F92BC + + thumb_func_start sub_80F92F4 +sub_80F92F4: @ 80F92F4 + push {lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _080F9314 + ldr r0, _080F930C + ldrh r1, [r0, 0x4] + ldr r0, _080F9310 + cmp r1, r0 + bne _080F9314 + movs r0, 0 + b _080F9316 + .align 2, 0 +_080F930C: .4byte gSaveBlock1 +_080F9310: .4byte 0x00001919 +_080F9314: + movs r0, 0x1 +_080F9316: + pop {r1} + bx r1 + thumb_func_end sub_80F92F4 + + thumb_func_start sub_80F931C +sub_80F931C: @ 80F931C + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + bl is_c1_link_related_active + cmp r0, 0x1 + bne _080F933C + adds r0, r4, 0 + bl itemid_is_mail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F933C + movs r0, 0 + b _080F933E +_080F933C: + movs r0, 0x1 +_080F933E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F931C + + thumb_func_start sub_80F9344 +sub_80F9344: @ 80F9344 + push {lr} + bl is_c1_link_related_active + cmp r0, 0x1 + beq _080F9356 + ldr r0, _080F935C + ldrb r0, [r0] + cmp r0, 0x1 + bne _080F9360 +_080F9356: + movs r0, 0x1 + b _080F9362 + .align 2, 0 +_080F935C: .4byte gReceivedRemoteLinkPlayers +_080F9360: + movs r0, 0 +_080F9362: + pop {r1} + bx r1 + thumb_func_end sub_80F9344 + + thumb_func_start sub_80F9368 +sub_80F9368: @ 80F9368 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r0, 0x80 + lsls r0, 19 + movs r1, 0 + strh r1, [r0] + adds r0, 0xE + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x14 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + movs r3, 0xC0 + lsls r3, 19 + movs r4, 0xC0 + lsls r4, 9 + add r0, sp, 0x4 + mov r8, r0 + mov r2, sp + movs r6, 0 + ldr r1, _080F9430 + movs r5, 0x80 + lsls r5, 5 + ldr r7, _080F9434 + movs r0, 0x81 + lsls r0, 24 + mov r12, r0 +_080F93C6: + strh r6, [r2] + mov r0, sp + str r0, [r1] + str r3, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r5 + subs r4, r5 + cmp r4, r5 + bhi _080F93C6 + strh r6, [r2] + mov r2, sp + str r2, [r1] + str r3, [r1, 0x4] + lsrs r0, r4, 1 + mov r2, r12 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0xE0 + lsls r0, 19 + movs r3, 0x80 + lsls r3, 3 + movs r4, 0 + str r4, [sp, 0x4] + ldr r2, _080F9430 + mov r1, r8 + str r1, [r2] + str r0, [r2, 0x4] + lsrs r0, r3, 2 + movs r1, 0x85 + lsls r1, 24 + orrs r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r1, 0xA0 + lsls r1, 19 + mov r0, sp + strh r4, [r0] + str r0, [r2] + str r1, [r2, 0x4] + lsrs r3, 1 + movs r0, 0x81 + lsls r0, 24 + orrs r3, r0 + str r3, [r2, 0x8] + ldr r0, [r2, 0x8] + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F9430: .4byte 0x040000d4 +_080F9434: .4byte 0x81000800 + thumb_func_end sub_80F9368 + + thumb_func_start sub_80F9438 +sub_80F9438: @ 80F9438 + push {lr} + movs r0, 0 + bl SetVBlankCallback + movs r0, 0 + bl SetHBlankCallback + pop {r0} + bx r0 + thumb_func_end sub_80F9438 + + thumb_func_start sub_80F944C +sub_80F944C: @ 80F944C + push {r4,lr} + movs r2, 0 + ldr r4, _080F9478 + movs r3, 0xFF +_080F9454: + adds r0, r2, r4 + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080F9454 + movs r0, 0x6 + bl FreeSpritePaletteByTag + ldr r0, _080F947C + bl LoadSpritePalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9478: .4byte gUnknown_020388C0 +_080F947C: .4byte gUnknown_083E5968 + thumb_func_end sub_80F944C + + thumb_func_start sub_80F9480 +sub_80F9480: @ 80F9480 + push {r4,lr} + adds r3, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + cmp r2, r1 + bcs _080F949E + movs r4, 0xFF +_080F9490: + adds r0, r3, r2 + strb r4, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, r1 + bcc _080F9490 +_080F949E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F9480 + + thumb_func_start sub_80F94A4 +sub_80F94A4: @ 80F94A4 + push {r4,r5,lr} + adds r5, r1, 0 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r2, 16 + lsrs r1, r2, 16 + lsls r3, 16 + lsrs r2, r3, 16 + cmp r4, 0x5 + bhi _080F94E8 + ldrb r0, [r5] + cmp r0, 0xFF + bne _080F94D0 + ldr r0, _080F94F0 + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + movs r3, 0 + bl CreateSprite + strb r0, [r5] +_080F94D0: + subs r0, r4, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F94F4 + adds r0, r1 + adds r1, r4, 0 + bl StartSpriteAnim +_080F94E8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F94F0: .4byte gSpriteTemplate_83E5A00 +_080F94F4: .4byte gSprites + thumb_func_end sub_80F94A4 + + thumb_func_start sub_80F94F8 +sub_80F94F8: @ 80F94F8 + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4] + cmp r0, 0xFF + beq _080F9516 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F951C + adds r0, r1 + bl DestroySprite + movs r0, 0xFF + strb r0, [r4] +_080F9516: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F951C: .4byte gSprites + thumb_func_end sub_80F94F8 + + thumb_func_start sub_80F9520 +sub_80F9520: @ 80F9520 + push {r4,r5,lr} + adds r5, r0, 0 + movs r4, 0 +_080F9526: + adds r0, r5, r4 + bl sub_80F94F8 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _080F9526 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80F9520 + + thumb_func_start sub_80F953C +sub_80F953C: @ 80F953C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 16 + lsrs r3, r1, 16 + lsls r2, 16 + lsrs r2, 16 + cmp r4, 0x3 + bls _080F9550 + b _080F9790 +_080F9550: + cmp r4, 0x1 + beq _080F95F6 + cmp r4, 0x1 + bgt _080F9564 + cmp r4, 0 + beq _080F9578 + ldr r5, _080F9560 + b _080F977A + .align 2, 0 +_080F9560: .4byte gUnknown_020388C0 +_080F9564: + cmp r4, 0x2 + bne _080F956A + b _080F967C +_080F956A: + cmp r4, 0x3 + bne _080F9570 + b _080F96F8 +_080F9570: + ldr r5, _080F9574 + b _080F977A + .align 2, 0 +_080F9574: .4byte gUnknown_020388C0 +_080F9578: + ldr r0, _080F95D8 + ldrb r1, [r0] + adds r5, r0, 0 + cmp r1, 0xFF + beq _080F9584 + b _080F977A +_080F9584: + ldr r0, _080F95DC + lsls r1, r3, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + movs r3, 0 + bl CreateSprite + strb r0, [r5] + ldr r3, _080F95E0 + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r1, _080F95E4 + strh r1, [r0, 0x32] + ldrb r0, [r5, 0x1] + cmp r0, 0xFF + beq _080F95E8 + ldrb r0, [r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5, 0x1] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + movs r2, 0x26 + ldrsh r0, [r0, r2] + negs r0, r0 + strh r0, [r1, 0x26] + ldrb r0, [r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5, 0x1] + b _080F9650 + .align 2, 0 +_080F95D8: .4byte gUnknown_020388C0 +_080F95DC: .4byte gSpriteTemplate_83E59D0 +_080F95E0: .4byte gSprites +_080F95E4: .4byte 0x0000ffff +_080F95E8: + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x34] + b _080F977A +_080F95F6: + ldr r0, _080F9660 + ldrb r1, [r0, 0x1] + adds r5, r0, 0 + cmp r1, 0xFF + beq _080F9602 + b _080F977A +_080F9602: + ldr r0, _080F9664 + lsls r1, r3, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + movs r3, 0 + bl CreateSprite + strb r0, [r5, 0x1] + ldr r3, _080F9668 + ldrb r1, [r5, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x32] + ldrb r0, [r5] + cmp r0, 0xFF + beq _080F966C + ldrb r0, [r5, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + movs r2, 0x26 + ldrsh r0, [r0, r2] + negs r0, r0 + strh r0, [r1, 0x26] + ldrb r0, [r5, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5] +_080F9650: + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x34] + strh r0, [r1, 0x34] + b _080F977A + .align 2, 0 +_080F9660: .4byte gUnknown_020388C0 +_080F9664: .4byte gSpriteTemplate_83E59D0 +_080F9668: .4byte gSprites +_080F966C: + ldrb r0, [r5, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + movs r0, 0 + strh r0, [r1, 0x34] + b _080F977A +_080F967C: + ldr r0, _080F96E4 + ldrb r1, [r0, 0x2] + adds r5, r0, 0 + cmp r1, 0xFF + bne _080F977A + ldr r0, _080F96E8 + lsls r1, r3, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + movs r3, 0 + bl CreateSprite + strb r0, [r5, 0x2] + ldr r3, _080F96EC + ldrb r1, [r5, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r1, _080F96F0 + strh r1, [r0, 0x2E] + ldrb r0, [r5, 0x3] + cmp r0, 0xFF + beq _080F96F4 + ldrb r0, [r5, 0x2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5, 0x3] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + movs r2, 0x24 + ldrsh r0, [r0, r2] + negs r0, r0 + strh r0, [r1, 0x24] + ldrb r0, [r5, 0x2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5, 0x3] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x30] + b _080F9778 + .align 2, 0 +_080F96E4: .4byte gUnknown_020388C0 +_080F96E8: .4byte gSpriteTemplate_83E59E8 +_080F96EC: .4byte gSprites +_080F96F0: .4byte 0x0000ffff +_080F96F4: + ldrb r0, [r5, 0x2] + b _080F976E +_080F96F8: + ldr r0, _080F9760 + ldrb r1, [r0, 0x3] + adds r5, r0, 0 + cmp r1, 0xFF + bne _080F977A + ldr r0, _080F9764 + lsls r1, r3, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + movs r3, 0 + bl CreateSprite + strb r0, [r5, 0x3] + ldr r3, _080F9768 + ldrb r1, [r5, 0x3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x1 + strh r1, [r0, 0x2E] + ldrb r0, [r5, 0x2] + cmp r0, 0xFF + beq _080F976C + ldrb r0, [r5, 0x3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5, 0x2] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + movs r2, 0x24 + ldrsh r0, [r0, r2] + negs r0, r0 + strh r0, [r1, 0x24] + ldrb r0, [r5, 0x3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5, 0x2] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x30] + b _080F9778 + .align 2, 0 +_080F9760: .4byte gUnknown_020388C0 +_080F9764: .4byte gSpriteTemplate_83E59E8 +_080F9768: .4byte gSprites +_080F976C: + ldrb r0, [r5, 0x3] +_080F976E: + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + movs r0, 0 +_080F9778: + strh r0, [r1, 0x30] +_080F977A: + adds r0, r4, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F9798 + adds r0, r1 + movs r1, 0x1 + ands r1, r4 + bl StartSpriteAnim +_080F9790: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F9798: .4byte gSprites + thumb_func_end sub_80F953C + + thumb_func_start sub_80F979C +sub_80F979C: @ 80F979C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + cmp r2, 0x3 + bhi _080F97D4 + ldr r0, _080F97D8 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0xFF + beq _080F97D4 + ldr r2, _080F97DC + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + movs r0, 0x1 + adds r2, r3, 0 + ands r2, r0 + lsls r2, 2 + ldrb r3, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1] +_080F97D4: + pop {r0} + bx r0 + .align 2, 0 +_080F97D8: .4byte gUnknown_020388C0 +_080F97DC: .4byte gSprites + thumb_func_end sub_80F979C + + thumb_func_start SetBgTilemapBuffer +SetBgTilemapBuffer: @ 80F97E0 + push {r4,lr} + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bhi _080F9808 + ldr r0, _080F9810 + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, 0xFF + beq _080F9808 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F9814 + adds r0, r1 + bl DestroySprite + movs r0, 0xFF + strb r0, [r4] +_080F9808: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9810: .4byte gUnknown_020388C0 +_080F9814: .4byte gSprites + thumb_func_end SetBgTilemapBuffer + + thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed +InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 80F9818 + push {lr} + ldr r0, _080F9824 + bl LoadSpritePalette + pop {r0} + bx r0 + .align 2, 0 +_080F9824: .4byte gUnknown_083E5968 + thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed + + thumb_func_start BuyMenuFreeMemory +BuyMenuFreeMemory: @ 80F9828 + push {lr} + movs r0, 0x6 + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + thumb_func_end BuyMenuFreeMemory + + thumb_func_start sub_80F9834 +sub_80F9834: @ 80F9834 + push {lr} + adds r2, r0, 0 + movs r1, 0x30 + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080F9848 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] +_080F9848: + movs r1, 0x34 + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080F9858 + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x26] + adds r0, r1 + strh r0, [r2, 0x26] +_080F9858: + ldrh r1, [r2, 0x30] + adds r1, 0x1 + movs r3, 0 + strh r1, [r2, 0x30] + ldrh r0, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x34] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x2 + ble _080F9870 + strh r3, [r2, 0x30] +_080F9870: + movs r1, 0x34 + ldrsh r0, [r2, r1] + cmp r0, 0x2 + ble _080F987A + strh r3, [r2, 0x34] +_080F987A: + movs r0, 0x24 + ldrsh r1, [r2, r0] + cmp r1, 0x8 + beq _080F988A + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + bne _080F988C +_080F988A: + strh r3, [r2, 0x24] +_080F988C: + movs r0, 0x26 + ldrsh r1, [r2, r0] + cmp r1, 0x8 + beq _080F989C + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + bne _080F98A0 +_080F989C: + movs r0, 0 + strh r0, [r2, 0x26] +_080F98A0: + pop {r0} + bx r0 + thumb_func_end sub_80F9834 + + thumb_func_start sub_80F98A4 +sub_80F98A4: @ 80F98A4 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080F98D0 + adds r3, r1, r0 + ldrb r0, [r3] + cmp r0, 0xFF + beq _080F98CA + cmp r1, 0x3 + bhi _080F98CA + ldr r2, _080F98D4 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _080F98D8 + str r1, [r0] +_080F98CA: + pop {r0} + bx r0 + .align 2, 0 +_080F98D0: .4byte gUnknown_020388C0 +_080F98D4: .4byte gSprites +_080F98D8: .4byte SpriteCallbackDummy + thumb_func_end sub_80F98A4 + + thumb_func_start sub_80F98DC +sub_80F98DC: @ 80F98DC + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080F9908 + adds r3, r1, r0 + ldrb r0, [r3] + cmp r0, 0xFF + beq _080F9902 + cmp r1, 0x3 + bhi _080F9902 + ldr r2, _080F990C + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _080F9910 + str r1, [r0] +_080F9902: + pop {r0} + bx r0 + .align 2, 0 +_080F9908: .4byte gUnknown_020388C0 +_080F990C: .4byte gSprites +_080F9910: .4byte sub_80F9834 + thumb_func_end sub_80F98DC + + thumb_func_start sub_80F9914 +sub_80F9914: @ 80F9914 + push {r4,lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080F9964 + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, 0xFF + beq _080F995C + cmp r1, 0x3 + bhi _080F995C + ldr r3, _080F9968 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r2, 0 + strh r2, [r0, 0x24] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x26] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x30] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x34] +_080F995C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9964: .4byte gUnknown_020388C0 +_080F9968: .4byte gSprites + thumb_func_end sub_80F9914 + + thumb_func_start sub_80F996C +sub_80F996C: @ 80F996C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80F98A4 + adds r0, r4, 0 + bl sub_80F9914 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F996C + + thumb_func_start sub_80F9988 +sub_80F9988: @ 80F9988 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + ldr r0, _080F99C4 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0xFF + beq _080F99BE + cmp r2, 0x3 + bhi _080F99BE + ldr r2, _080F99C8 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x3 + adds r2, r3, 0 + ands r2, r0 + lsls r2, 2 + ldrb r3, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] +_080F99BE: + pop {r0} + bx r0 + .align 2, 0 +_080F99C4: .4byte gUnknown_020388C0 +_080F99C8: .4byte gSprites + thumb_func_end sub_80F9988 + + thumb_func_start sub_80F99CC +sub_80F99CC: @ 80F99CC + push {lr} + sub sp, 0x4 + bl ScriptContext2_Enable + ldr r0, _080F9A04 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080F9A08 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + movs r0, 0x2 + strh r0, [r1, 0x8] + subs r0, 0x3 + str r2, [sp] + movs r1, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080F9A04: .4byte sub_80F9A8C +_080F9A08: .4byte gTasks + thumb_func_end sub_80F99CC + + thumb_func_start sub_80F9A0C +sub_80F9A0C: @ 80F9A0C + push {lr} + sub sp, 0x4 + bl ScriptContext2_Enable + ldr r0, _080F9A44 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080F9A48 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + movs r0, 0x3 + strh r0, [r1, 0x8] + subs r0, 0x4 + str r2, [sp] + movs r1, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080F9A44: .4byte sub_80F9A8C +_080F9A48: .4byte gTasks + thumb_func_end sub_80F9A0C + + thumb_func_start sub_80F9A4C +sub_80F9A4C: @ 80F9A4C + push {lr} + sub sp, 0x4 + bl ScriptContext2_Enable + ldr r0, _080F9A84 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080F9A88 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + movs r0, 0x7 + strh r0, [r1, 0x8] + subs r0, 0x8 + str r2, [sp] + movs r1, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080F9A84: .4byte sub_80F9A8C +_080F9A88: .4byte gTasks + thumb_func_end sub_80F9A4C + + thumb_func_start sub_80F9A8C +sub_80F9A8C: @ 80F9A8C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r2, _080F9AC4 + ldrb r1, [r2, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080F9ABE + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r1, _080F9AC8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x8] + movs r1, 0 + bl sub_806AFAC + adds r0, r4, 0 + bl DestroyTask +_080F9ABE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9AC4: .4byte gPaletteFade +_080F9AC8: .4byte gTasks + thumb_func_end sub_80F9A8C + + thumb_func_start sub_80F9ACC +sub_80F9ACC: @ 80F9ACC + push {r4,r5,lr} + ldr r1, _080F9AEC + movs r2, 0x99 + lsls r2, 2 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r4, r1, 0 + cmp r0, 0x7 + bls _080F9AE2 + b _080F9BF6 +_080F9AE2: + lsls r0, 2 + ldr r1, _080F9AF0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F9AEC: .4byte 0x0201b000 +_080F9AF0: .4byte _080F9AF4 + .align 2, 0 +_080F9AF4: + .4byte _080F9B14 + .4byte _080F9B54 + .4byte _080F9B5A + .4byte _080F9B6E + .4byte _080F9B98 + .4byte _080F9B9E + .4byte _080F9BB0 + .4byte _080F9BC8 +_080F9B14: + ldr r0, _080F9B3C + adds r5, r4, r0 + movs r1, 0 + ldrsh r3, [r5, r1] + ldr r0, _080F9B40 + ldrb r0, [r0] + cmp r3, r0 + bge _080F9B48 + movs r2, 0x98 + lsls r2, 2 + adds r0, r4, r2 + ldrb r0, [r0] + ldrb r1, [r5] + movs r2, 0x64 + muls r2, r3 + ldr r3, _080F9B44 + adds r2, r3 + bl sub_806D90C + b _080F9BF0 + .align 2, 0 +_080F9B3C: .4byte 0x00000266 +_080F9B40: .4byte gPlayerPartyCount +_080F9B44: .4byte gPlayerParty +_080F9B48: + movs r0, 0 + strh r0, [r5] + movs r0, 0x99 + lsls r0, 2 + adds r1, r4, r0 + b _080F9BBC +_080F9B54: + bl sub_806DA98 + b _080F9BB4 +_080F9B5A: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_806DC34 + movs r2, 0x99 + lsls r2, 2 + adds r1, r4, r2 + b _080F9BBC +_080F9B6E: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + ldr r2, _080F9B94 + adds r5, r4, r2 + ldrb r1, [r5] + bl sub_806BD58 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F9BF0 + movs r0, 0 + strh r0, [r5] + movs r0, 0x99 + lsls r0, 2 + adds r1, r4, r0 + b _080F9BBC + .align 2, 0 +_080F9B94: .4byte 0x00000266 +_080F9B98: + bl sub_806E334 + b _080F9BB4 +_080F9B9E: + bl sub_806E0C4 + ldr r1, _080F9BAC + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _080F9BBC + .align 2, 0 +_080F9BAC: .4byte 0x0201b000 +_080F9BB0: + bl sub_80F9C00 +_080F9BB4: + ldr r1, _080F9BC4 + movs r2, 0x99 + lsls r2, 2 + adds r1, r2 +_080F9BBC: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080F9BF6 + .align 2, 0 +_080F9BC4: .4byte 0x0201b000 +_080F9BC8: + ldr r0, _080F9BEC + adds r5, r4, r0 + ldrb r0, [r5] + bl sub_806B58C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F9BF0 + movs r1, 0 + strh r1, [r5] + movs r2, 0x99 + lsls r2, 2 + adds r0, r4, r2 + strh r1, [r0] + movs r0, 0x1 + b _080F9BF8 + .align 2, 0 +_080F9BEC: .4byte 0x00000266 +_080F9BF0: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_080F9BF6: + movs r0, 0 +_080F9BF8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F9ACC + + thumb_func_start sub_80F9C00 +sub_80F9C00: @ 80F9C00 + push {r4,lr} + movs r4, 0 + b _080F9C58 +_080F9C06: + movs r0, 0x64 + muls r0, r4 + ldr r1, _080F9C24 + adds r0, r1 + bl sub_80AE47C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080F9C52 + lsls r0, 2 + ldr r1, _080F9C28 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F9C24: .4byte gPlayerParty +_080F9C28: .4byte _080F9C2C + .align 2, 0 +_080F9C2C: + .4byte _080F9C40 + .4byte _080F9C4A + .4byte _080F9C4A + .4byte _080F9C40 + .4byte _080F9C40 +_080F9C40: + adds r0, r4, 0 + movs r1, 0x7E + bl sub_806BC3C + b _080F9C52 +_080F9C4A: + adds r0, r4, 0 + movs r1, 0x70 + bl sub_806BC3C +_080F9C52: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080F9C58: + ldr r0, _080F9C68 + ldrb r0, [r0] + cmp r4, r0 + bcc _080F9C06 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9C68: .4byte gPlayerPartyCount + thumb_func_end sub_80F9C00 + + thumb_func_start sub_80F9C6C +sub_80F9C6C: @ 80F9C6C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080F9C94 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080F9CD8 + adds r0, r4, 0 + bl sub_806BD80 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + beq _080F9C98 + cmp r0, 0x2 + beq _080F9CC0 + b _080F9CD8 + .align 2, 0 +_080F9C94: .4byte gPaletteFade +_080F9C98: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_806CA38 + ldr r1, _080F9CB8 + strb r0, [r1] + ldr r2, _080F9CBC + ldrb r0, [r1] + strh r0, [r2] + adds r0, r4, 0 + bl sub_8123138 + b _080F9CD8 + .align 2, 0 +_080F9CB8: .4byte gUnknown_02038694 +_080F9CBC: .4byte gUnknown_0202E8CC +_080F9CC0: + movs r0, 0x5 + bl PlaySE + ldr r1, _080F9CE0 + movs r0, 0xFF + strb r0, [r1] + ldr r1, _080F9CE4 + movs r0, 0xFF + strh r0, [r1] + adds r0, r4, 0 + bl sub_8123138 +_080F9CD8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9CE0: .4byte gUnknown_02038694 +_080F9CE4: .4byte gUnknown_0202E8CC + thumb_func_end sub_80F9C6C + + thumb_func_start sub_80F9CE8 +sub_80F9CE8: @ 80F9CE8 + push {r4,r5,lr} + ldr r1, _080F9D08 + movs r2, 0x99 + lsls r2, 2 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r4, r1, 0 + cmp r0, 0x7 + bls _080F9CFE + b _080F9E12 +_080F9CFE: + lsls r0, 2 + ldr r1, _080F9D0C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F9D08: .4byte 0x0201b000 +_080F9D0C: .4byte _080F9D10 + .align 2, 0 +_080F9D10: + .4byte _080F9D30 + .4byte _080F9D70 + .4byte _080F9D76 + .4byte _080F9D8A + .4byte _080F9DB4 + .4byte _080F9DBA + .4byte _080F9DCC + .4byte _080F9DE4 +_080F9D30: + ldr r0, _080F9D58 + adds r5, r4, r0 + movs r1, 0 + ldrsh r3, [r5, r1] + ldr r0, _080F9D5C + ldrb r0, [r0] + cmp r3, r0 + bge _080F9D64 + movs r2, 0x98 + lsls r2, 2 + adds r0, r4, r2 + ldrb r0, [r0] + ldrb r1, [r5] + movs r2, 0x64 + muls r2, r3 + ldr r3, _080F9D60 + adds r2, r3 + bl sub_806D90C + b _080F9E0C + .align 2, 0 +_080F9D58: .4byte 0x00000266 +_080F9D5C: .4byte gPlayerPartyCount +_080F9D60: .4byte gPlayerParty +_080F9D64: + movs r0, 0 + strh r0, [r5] + movs r0, 0x99 + lsls r0, 2 + adds r1, r4, r0 + b _080F9DD8 +_080F9D70: + bl sub_806DA98 + b _080F9DD0 +_080F9D76: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_806DC34 + movs r2, 0x99 + lsls r2, 2 + adds r1, r4, r2 + b _080F9DD8 +_080F9D8A: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + ldr r2, _080F9DB0 + adds r5, r4, r2 + ldrb r1, [r5] + bl sub_806BD58 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F9E0C + movs r0, 0 + strh r0, [r5] + movs r0, 0x99 + lsls r0, 2 + adds r1, r4, r0 + b _080F9DD8 + .align 2, 0 +_080F9DB0: .4byte 0x00000266 +_080F9DB4: + bl sub_806E334 + b _080F9DD0 +_080F9DBA: + bl sub_806E0C4 + ldr r1, _080F9DC8 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _080F9DD8 + .align 2, 0 +_080F9DC8: .4byte 0x0201b000 +_080F9DCC: + bl sub_80F9E1C +_080F9DD0: + ldr r1, _080F9DE0 + movs r2, 0x99 + lsls r2, 2 + adds r1, r2 +_080F9DD8: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080F9E12 + .align 2, 0 +_080F9DE0: .4byte 0x0201b000 +_080F9DE4: + ldr r0, _080F9E08 + adds r5, r4, r0 + ldrb r0, [r5] + bl sub_806B58C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F9E0C + movs r1, 0 + strh r1, [r5] + movs r2, 0x99 + lsls r2, 2 + adds r0, r4, r2 + strh r1, [r0] + movs r0, 0x1 + b _080F9E14 + .align 2, 0 +_080F9E08: .4byte 0x00000266 +_080F9E0C: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_080F9E12: + movs r0, 0 +_080F9E14: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F9CE8 + + thumb_func_start sub_80F9E1C +sub_80F9E1C: @ 80F9E1C + push {r4,lr} + movs r4, 0 + b _080F9E52 +_080F9E22: + movs r0, 0x64 + muls r0, r4 + ldr r1, _080F9E40 + adds r0, r1 + bl sub_8040574 + lsls r0, 24 + cmp r0, 0 + bne _080F9E44 + adds r0, r4, 0 + movs r1, 0x9A + bl sub_806BC3C + b _080F9E4C + .align 2, 0 +_080F9E40: .4byte gPlayerParty +_080F9E44: + adds r0, r4, 0 + movs r1, 0x8C + bl sub_806BC3C +_080F9E4C: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080F9E52: + ldr r0, _080F9E60 + ldrb r0, [r0] + cmp r4, r0 + bcc _080F9E22 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9E60: .4byte gPlayerPartyCount + thumb_func_end sub_80F9E1C + + thumb_func_start sub_80F9E64 +sub_80F9E64: @ 80F9E64 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080F9E8C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080F9EE2 + adds r0, r6, 0 + bl sub_806BD80 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + beq _080F9E90 + cmp r0, 0x2 + beq _080F9ED0 + b _080F9EE2 + .align 2, 0 +_080F9E8C: .4byte gPaletteFade +_080F9E90: + movs r0, 0x5 + bl PlaySE + ldr r4, _080F9EC4 + adds r0, r6, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + ldr r5, _080F9EC8 + ldrh r1, [r4] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080F9ECC + adds r0, r1 + bl sub_8040574 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5] + adds r0, r6, 0 + bl sub_8123138 + b _080F9EE2 + .align 2, 0 +_080F9EC4: .4byte gUnknown_0202E8CC +_080F9EC8: .4byte gUnknown_0202E8CE +_080F9ECC: .4byte gPlayerParty +_080F9ED0: + movs r0, 0x5 + bl PlaySE + ldr r1, _080F9EE8 + movs r0, 0xFF + strh r0, [r1] + adds r0, r6, 0 + bl sub_8123138 +_080F9EE2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F9EE8: .4byte gUnknown_0202E8CC + thumb_func_end sub_80F9E64 + + thumb_func_start sub_80F9EEC +sub_80F9EEC: @ 80F9EEC + push {r4,lr} + sub sp, 0x4 + ldr r0, _080F9F20 + ldr r1, _080F9F24 + ldrb r1, [r1] + ldr r2, _080F9F28 + ldrb r2, [r2] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _080F9F2C + movs r4, 0 + str r4, [sp] + bl sub_809D9F0 + ldr r1, _080F9F30 + movs r0, 0x3 + strb r0, [r1, 0x8] + ldr r1, _080F9F34 + ldr r0, _080F9F38 + str r0, [r1] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9F20: .4byte gPlayerParty +_080F9F24: .4byte gUnknown_0202E8CC +_080F9F28: .4byte gPlayerPartyCount +_080F9F2C: .4byte c2_exit_to_overworld_2_switch +_080F9F30: .4byte 0x02018000 +_080F9F34: .4byte gUnknown_0300485C +_080F9F38: .4byte sub_8080990 + thumb_func_end sub_80F9EEC + + thumb_func_start sub_80F9F3C +sub_80F9F3C: @ 80F9F3C + push {r4,r5,lr} + ldr r1, _080F9F78 + movs r0, 0 + strh r0, [r1] + movs r4, 0 + adds r5, r1, 0 +_080F9F48: + ldr r0, _080F9F7C + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080F9F80 + adds r0, r1 + adds r1, r4, 0 + adds r1, 0xD + bl GetMonData + cmp r0, 0 + beq _080F9F66 + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_080F9F66: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080F9F48 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F9F78: .4byte gScriptResult +_080F9F7C: .4byte gUnknown_0202E8CC +_080F9F80: .4byte gPlayerParty + thumb_func_end sub_80F9F3C + + thumb_func_start sub_80F9F84 +sub_80F9F84: @ 80F9F84 + push {r4,r5,lr} + ldr r0, _080F9FC4 + ldrh r1, [r0] + movs r0, 0x64 + adds r5, r1, 0 + muls r5, r0 + ldr r0, _080F9FC8 + adds r5, r0 + ldr r0, _080F9FCC + ldrh r1, [r0] + adds r1, 0xD + adds r0, r5, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r1, _080F9FD0 + adds r0, r5, 0 + bl GetMonNickname + ldr r0, _080F9FD4 + movs r1, 0xD + muls r1, r4 + ldr r2, _080F9FD8 + adds r1, r2 + bl StringCopy + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F9FC4: .4byte gUnknown_0202E8CC +_080F9FC8: .4byte gPlayerParty +_080F9FCC: .4byte gUnknown_0202E8CE +_080F9FD0: .4byte gStringVar1 +_080F9FD4: .4byte gStringVar2 +_080F9FD8: .4byte gMoveNames + thumb_func_end sub_80F9F84 + + thumb_func_start sub_80F9FDC +sub_80F9FDC: @ 80F9FDC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + mov r8, r0 + adds r5, r1, 0 + adds r4, r2, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + adds r0, 0xD + str r0, [sp, 0x8] + mov r0, r8 + ldr r1, [sp, 0x8] + bl GetMonData + mov r1, sp + adds r1, 0x2 + str r1, [sp, 0x14] + strh r0, [r1] + adds r3, r4, 0 + adds r3, 0xD + str r3, [sp, 0xC] + mov r0, r8 + adds r1, r3, 0 + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r7, r5, 0 + adds r7, 0x11 + str r7, [sp, 0x10] + mov r0, r8 + adds r1, r7, 0 + bl GetMonData + mov r1, sp + adds r1, 0x5 + str r1, [sp, 0x18] + strb r0, [r1] + adds r3, r4, 0 + adds r3, 0x11 + str r3, [sp, 0x1C] + mov r0, r8 + adds r1, r3, 0 + bl GetMonData + add r7, sp, 0x4 + mov r10, r7 + strb r0, [r7] + mov r0, r8 + movs r1, 0x15 + bl GetMonData + mov r6, sp + adds r6, 0x6 + strb r0, [r6] + ldr r1, _080FA0D8 + adds r0, r5, r1 + ldrb r0, [r0] + mov r9, r0 + ldrb r0, [r6] + adds r2, r0, 0 + mov r3, r9 + ands r2, r3 + lsls r5, 1 + asrs r2, r5 + lsls r2, 24 + lsrs r2, 24 + adds r1, r4, r1 + ldrb r3, [r1] + adds r1, r0, 0 + ands r1, r3 + lsls r4, 1 + asrs r1, r4 + lsls r1, 24 + lsrs r1, 24 + mov r7, r9 + bics r0, r7 + strb r0, [r6] + ldrb r0, [r6] + bics r0, r3 + strb r0, [r6] + lsls r2, r4 + lsls r1, r5 + adds r2, r1 + ldrb r0, [r6] + orrs r0, r2 + strb r0, [r6] + mov r0, r8 + ldr r1, [sp, 0x8] + mov r2, sp + bl SetMonData + mov r0, r8 + ldr r1, [sp, 0xC] + ldr r2, [sp, 0x14] + bl SetMonData + mov r0, r8 + ldr r1, [sp, 0x10] + mov r2, r10 + bl SetMonData + mov r0, r8 + ldr r1, [sp, 0x1C] + ldr r2, [sp, 0x18] + bl SetMonData + mov r0, r8 + movs r1, 0x15 + adds r2, r6, 0 + bl SetMonData + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FA0D8: .4byte gUnknown_08208238 + thumb_func_end sub_80F9FDC + + thumb_func_start sub_80FA0DC +sub_80FA0DC: @ 80FA0DC + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, _080FA13C + mov r8, r0 + ldrh r0, [r0] + movs r6, 0x64 + muls r0, r6 + ldr r5, _080FA140 + adds r0, r5 + ldr r4, _080FA144 + ldrb r2, [r4] + movs r1, 0 + bl SetMonMoveSlot + mov r1, r8 + ldrh r0, [r1] + muls r0, r6 + adds r0, r5 + ldrb r1, [r4] + bl RemoveMonPPBonus + ldrh r4, [r4] + cmp r4, 0x2 + bhi _080FA130 +_080FA10E: + ldr r0, _080FA13C + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080FA140 + adds r0, r1 + lsls r1, r4, 24 + lsrs r1, 24 + adds r4, 0x1 + lsls r2, r4, 24 + lsrs r2, 24 + bl sub_80F9FDC + lsls r4, 16 + lsrs r4, 16 + cmp r4, 0x2 + bls _080FA10E +_080FA130: + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080FA13C: .4byte gUnknown_0202E8CC +_080FA140: .4byte gPlayerParty +_080FA144: .4byte gUnknown_0202E8CE + thumb_func_end sub_80FA0DC + + thumb_func_start sub_80FA148 +sub_80FA148: @ 80FA148 + push {r4,lr} + ldr r0, _080FA170 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080FA174 + adds r0, r1 + ldr r4, _080FA178 + movs r1, 0 + strh r1, [r4] + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _080FA16A + movs r0, 0x1 + strh r0, [r4] +_080FA16A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FA170: .4byte gUnknown_0202E8CC +_080FA174: .4byte gPlayerParty +_080FA178: .4byte gScriptResult + thumb_func_end sub_80FA148 + + thumb_func_start sub_80FA17C +sub_80FA17C: @ 80FA17C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r6, 0 + ldr r7, _080FA1B4 + ldr r0, _080FA1B8 + adds r0, r7 + mov r9, r0 + movs r1, 0x1 + mov r8, r1 +_080FA192: + movs r0, 0xA + bl sub_80EB72C + lsls r4, r6, 3 + adds r5, r4, r7 + ldr r2, _080FA1BC + adds r1, r5, r2 + strh r0, [r1] + bl Random + mov r1, r8 + ands r1, r0 + cmp r1, 0 + beq _080FA1C0 + movs r0, 0xC + b _080FA1C2 + .align 2, 0 +_080FA1B4: .4byte gSaveBlock1 +_080FA1B8: .4byte 0x00002dd4 +_080FA1BC: .4byte 0x00002dd8 +_080FA1C0: + movs r0, 0xD +_080FA1C2: + bl sub_80EB72C + ldr r2, _080FA214 + adds r1, r5, r2 + strh r0, [r1] + bl Random + adds r3, r4, r7 + mov r2, r8 + ands r2, r0 + ldr r5, _080FA218 + adds r3, r5 + lsls r2, 6 + ldrb r0, [r3] + movs r5, 0x41 + negs r5, r5 + adds r1, r5, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + mov r1, r9 + adds r0, r4, r1 + bl sub_80FA740 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x4 + bls _080FA192 + ldr r0, _080FA21C + movs r1, 0x5 + movs r2, 0 + bl sub_80FA46C + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FA214: .4byte 0x00002dda +_080FA218: .4byte 0x00002dd5 +_080FA21C: .4byte gSaveBlock1 + 0x2DD4 + thumb_func_end sub_80FA17C + + thumb_func_start sub_80FA220 +sub_80FA220: @ 80FA220 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + bne _080FA236 + b _080FA34E +_080FA236: + lsls r0, r1, 2 + adds r0, r1 + str r0, [sp] + movs r0, 0 + mov r10, r0 + movs r1, 0x7F + mov r9, r1 + movs r2, 0x80 + negs r2, r2 + mov r8, r2 +_080FA24A: + ldr r2, [sp] + mov r4, r10 + lsls r0, r4, 3 + ldr r1, _080FA28C + adds r5, r0, r1 + ldrb r6, [r5, 0x1] + movs r0, 0x40 + ands r0, r6 + cmp r0, 0 + bne _080FA2A0 + ldrb r4, [r5] + lsls r3, r4, 25 + lsrs r1, r3, 25 + lsls r0, r2, 16 + lsrs r0, 16 + cmp r1, r0 + bcc _080FA290 + adds r0, r1, 0 + subs r0, r2 + mov r2, r9 + ands r0, r2 + mov r1, r8 + ands r1, r4 + orrs r1, r0 + strb r1, [r5] + movs r0, 0x7F + ands r1, r0 + cmp r1, 0 + bne _080FA336 + movs r0, 0x40 + orrs r0, r6 + b _080FA334 + .align 2, 0 +_080FA28C: .4byte gSaveBlock1 + 0x2DD4 +_080FA290: + lsrs r0, r3, 25 + subs r2, r0 + mov r0, r8 + ands r0, r4 + strb r0, [r5] + movs r0, 0x40 + orrs r0, r6 + strb r0, [r5, 0x1] +_080FA2A0: + ldrb r7, [r5] + lsls r0, r7, 25 + lsrs r0, 25 + adds r4, r0, r2 + ldrh r0, [r5] + lsls r6, r0, 18 + lsls r0, r4, 16 + lsrs r0, 16 + lsrs r1, r6, 25 + cmp r0, r1 + bls _080FA310 + adds r0, r4, 0 + bl __umodsi3 + adds r3, r0, 0 + lsrs r1, r6, 25 + adds r0, r4, 0 + str r3, [sp, 0x4] + bl __udivsi3 + adds r4, r0, 0 + movs r0, 0x1 + eors r4, r0 + ands r4, r0 + lsls r2, r4, 6 + ldrb r0, [r5, 0x1] + movs r4, 0x41 + negs r4, r4 + adds r1, r4, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, 0x1] + movs r1, 0x40 + ands r0, r1 + ldr r3, [sp, 0x4] + cmp r0, 0 + beq _080FA2FA + adds r1, r3, 0 + mov r0, r9 + ands r1, r0 + mov r0, r8 + ands r0, r7 + orrs r0, r1 + strb r0, [r5] + b _080FA336 +_080FA2FA: + ldrh r0, [r5] + lsls r0, 18 + lsrs r0, 25 + subs r0, r3 + mov r1, r9 + ands r0, r1 + mov r1, r8 + ands r1, r7 + orrs r1, r0 + strb r1, [r5] + b _080FA336 +_080FA310: + mov r2, r9 + ands r4, r2 + mov r0, r8 + ands r0, r7 + orrs r0, r4 + strb r0, [r5] + lsls r0, 25 + ldrh r1, [r5] + lsls r1, 18 + lsrs r0, 25 + lsrs r1, 25 + cmp r0, r1 + bne _080FA336 + ldrb r0, [r5, 0x1] + movs r4, 0x41 + negs r4, r4 + adds r1, r4, 0 + ands r0, r1 +_080FA334: + strb r0, [r5, 0x1] +_080FA336: + mov r0, r10 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + cmp r0, 0x4 + bls _080FA24A + ldr r0, _080FA360 + movs r1, 0x5 + movs r2, 0 + bl sub_80FA46C +_080FA34E: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FA360: .4byte gSaveBlock1 + 0x2DD4 + thumb_func_end sub_80FA220 + + thumb_func_start sub_80FA364 +sub_80FA364: @ 80FA364 + push {r4-r7,lr} + sub sp, 0x8 + adds r4, r0, 0 + movs r0, 0 + movs r1, 0 + str r0, [sp] + str r1, [sp, 0x4] + adds r0, r4, 0 + bl sub_80FA7C8 + lsls r0, 24 + cmp r0, 0 + bne _080FA462 + ldr r5, _080FA3B4 + adds r0, r5, 0 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _080FA3C8 + adds r0, r5, 0 + bl FlagSet + ldr r0, _080FA3B8 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _080FA3C8 + ldr r1, _080FA3BC + ldrh r2, [r4] + ldr r3, _080FA3C0 + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r4, 0x2] + ldr r2, _080FA3C4 + adds r1, r2 + strh r0, [r1] + movs r0, 0x1 + b _080FA464 + .align 2, 0 +_080FA3B4: .4byte 0x00000833 +_080FA3B8: .4byte 0x00000834 +_080FA3BC: .4byte gSaveBlock1 +_080FA3C0: .4byte 0x00002dd8 +_080FA3C4: .4byte 0x00002dda +_080FA3C8: + ldrh r1, [r4, 0x2] + lsls r1, 16 + ldrh r0, [r4] + orrs r0, r1 + str r0, [sp, 0x4] + movs r1, 0x80 + lsls r1, 7 + ldr r0, [sp] + orrs r0, r1 + str r0, [sp] + mov r0, sp + bl sub_80FA740 + movs r6, 0 +_080FA3E4: + lsls r4, r6, 3 + ldr r5, _080FA444 + adds r1, r4, r5 + mov r0, sp + movs r2, 0 + bl atk90_changetypestoenemyattacktype + lsls r0, 24 + adds r7, r4, 0 + cmp r0, 0 + beq _080FA450 + movs r3, 0x4 + ldr r0, _080FA448 + adds r0, r5 + mov r12, r0 + cmp r3, r6 + bls _080FA428 + mov r5, r12 + ldr r4, _080FA44C +_080FA40A: + lsls r2, r3, 3 + adds r2, r5 + adds r2, r4 + subs r3, 0x1 + lsls r0, r3, 3 + adds r0, r5 + adds r0, r4 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [r2] + str r1, [r2, 0x4] + lsls r3, 16 + lsrs r3, 16 + cmp r3, r6 + bhi _080FA40A +_080FA428: + mov r3, r12 + adds r2, r7, r3 + ldr r0, _080FA44C + adds r2, r0 + ldr r0, [sp] + ldr r1, [sp, 0x4] + str r0, [r2] + str r1, [r2, 0x4] + movs r0, 0 + cmp r6, 0 + bne _080FA464 + movs r0, 0x1 + b _080FA464 + .align 2, 0 +_080FA444: .4byte gSaveBlock1 + 0x2DD4 +_080FA448: .4byte 0xffffd22c +_080FA44C: .4byte 0x00002dd4 +_080FA450: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x4 + bls _080FA3E4 + ldr r0, [sp] + ldr r1, [sp, 0x4] + str r0, [r5, 0x20] + str r1, [r5, 0x24] +_080FA462: + movs r0, 0 +_080FA464: + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FA364 + + thumb_func_start sub_80FA46C +sub_80FA46C: @ 80FA46C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r9, r0 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + movs r2, 0 + cmp r2, r7 + bcs _080FA4D4 +_080FA488: + adds r1, r2, 0x1 + lsls r0, r1, 16 + lsrs r5, r0, 16 + mov r8, r1 + cmp r5, r7 + bcs _080FA4CA + lsls r0, r2, 3 + mov r1, r9 + adds r6, r1, r0 +_080FA49A: + lsls r0, r5, 3 + mov r1, r9 + adds r4, r1, r0 + adds r0, r4, 0 + adds r1, r6, 0 + mov r2, r10 + bl atk90_changetypestoenemyattacktype + lsls r0, 24 + cmp r0, 0 + beq _080FA4C0 + ldr r2, [r4] + ldr r3, [r4, 0x4] + ldr r0, [r6] + ldr r1, [r6, 0x4] + str r0, [r4] + str r1, [r4, 0x4] + str r2, [r6] + str r3, [r6, 0x4] +_080FA4C0: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r7 + bcc _080FA49A +_080FA4CA: + mov r1, r8 + lsls r0, r1, 16 + lsrs r2, r0, 16 + cmp r2, r7 + bcc _080FA488 +_080FA4D4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80FA46C + + thumb_func_start sub_80FA4E4 +sub_80FA4E4: @ 80FA4E4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r6, r0, 0 + adds r5, r1, 0 + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r4, 0 + cmp r4, r8 + bcs _080FA520 +_080FA500: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080FA554 + adds r0, r1 + adds r1, r4, 0 + muls r1, r5 + adds r1, r6, r1 + movs r2, 0x28 + bl memcpy + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r8 + bcc _080FA500 +_080FA520: + ldr r5, _080FA554 + movs r0, 0x80 + lsls r0, 1 + adds r3, r5, r0 + movs r7, 0 + movs r4, 0 + cmp r4, r8 + bcs _080FA588 +_080FA530: + movs r6, 0 +_080FA532: + adds r0, r5, 0 + adds r1, r7, 0 + str r3, [sp] + bl sub_80FA828 + lsls r0, 16 + asrs r0, 16 + ldr r3, [sp] + cmp r0, 0 + bge _080FA558 + ldr r0, [r5] + ldr r1, [r5, 0x4] + stm r3!, {r0,r1} + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + b _080FA572 + .align 2, 0 +_080FA554: .4byte 0x02007800 +_080FA558: + lsls r1, r0, 3 + ldr r0, _080FA5B4 + adds r2, r1, r0 + ldrb r1, [r2] + lsls r1, 25 + ldrb r0, [r5] + lsls r0, 25 + cmp r1, r0 + bcs _080FA572 + ldr r0, [r5] + ldr r1, [r5, 0x4] + str r0, [r2] + str r1, [r2, 0x4] +_080FA572: + adds r5, 0x8 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x4 + bls _080FA532 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r8 + bcc _080FA530 +_080FA588: + ldr r4, _080FA5B4 + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0x2 + bl sub_80FA46C + adds r5, r4, 0 + ldr r3, _080FA5B8 + movs r4, 0 +_080FA59A: + ldm r5!, {r0,r1} + stm r3!, {r0,r1} + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _080FA59A + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FA5B4: .4byte 0x02007900 +_080FA5B8: .4byte gSaveBlock1 + 0x2DD4 + thumb_func_end sub_80FA4E4 + + thumb_func_start sub_80FA5BC +sub_80FA5BC: @ 80FA5BC + push {lr} + ldr r0, _080FA5D8 + ldrh r1, [r0] + lsls r1, 3 + ldr r0, _080FA5DC + adds r1, r0 + ldr r0, _080FA5E0 + adds r1, 0x4 + movs r2, 0x2 + movs r3, 0x1 + bl ConvertEasyChatWordsToString + pop {r0} + bx r0 + .align 2, 0 +_080FA5D8: .4byte gUnknown_0202E8CC +_080FA5DC: .4byte gSaveBlock1 + 0x2DD4 +_080FA5E0: .4byte gStringVar1 + thumb_func_end sub_80FA5BC + + thumb_func_start sub_80FA5E4 +sub_80FA5E4: @ 80FA5E4 + push {r4,lr} + movs r4, 0 + ldr r3, _080FA630 + ldr r1, _080FA634 + adds r0, r3, r1 + ldrb r1, [r0] + lsls r1, 25 + lsrs r1, 25 + ldr r2, _080FA638 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 25 + lsrs r0, 25 + subs r1, r0 + cmp r1, 0x1 + bgt _080FA626 + ldr r1, _080FA63C + adds r0, r3, r1 + ldrb r1, [r0] + movs r2, 0x40 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080FA626 + ldr r1, _080FA640 + adds r0, r3, r1 + ldrb r1, [r0] + adds r0, r2, 0 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + negs r0, r0 + lsrs r4, r0, 31 +_080FA626: + ldr r0, _080FA644 + strh r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FA630: .4byte gSaveBlock1 +_080FA634: .4byte 0x00002dd4 +_080FA638: .4byte 0x00002ddc +_080FA63C: .4byte 0x00002dd5 +_080FA640: .4byte 0x00002ddd +_080FA644: .4byte gScriptResult + thumb_func_end sub_80FA5E4 + + thumb_func_start sub_80FA648 +sub_80FA648: @ 80FA648 + ldr r2, _080FA664 + ldr r0, _080FA668 + ldr r3, _080FA66C + adds r1, r0, r3 + adds r3, 0x2 + adds r0, r3 + ldrh r0, [r0] + ldrh r1, [r1] + adds r0, r1 + movs r1, 0x7 + ands r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_080FA664: .4byte gScriptResult +_080FA668: .4byte gSaveBlock1 +_080FA66C: .4byte 0x00002dd8 + thumb_func_end sub_80FA648 + + thumb_func_start atk90_changetypestoenemyattacktype +atk90_changetypestoenemyattacktype: @ 80FA670 + push {r4,r5,lr} + adds r3, r0, 0 + adds r5, r1, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r2, 0 + cmp r2, 0x1 + beq _080FA6B6 + cmp r2, 0x1 + bgt _080FA68A + cmp r2, 0 + beq _080FA690 + b _080FA732 +_080FA68A: + cmp r0, 0x2 + beq _080FA6E2 + b _080FA732 +_080FA690: + ldrb r0, [r3] + lsls r1, r0, 25 + ldrb r0, [r5] + lsls r0, 25 + cmp r1, r0 + bhi _080FA72E + cmp r1, r0 + bcc _080FA6DE + ldrh r0, [r3] + lsls r3, r0, 18 + ldrh r0, [r5] + lsls r2, r0, 18 + lsrs r1, r3, 25 + lsrs r0, r2, 25 + cmp r1, r0 + bhi _080FA72E + lsrs r1, r3, 25 + lsrs r0, r2, 25 + b _080FA6DA +_080FA6B6: + ldrh r0, [r3] + lsls r4, r0, 18 + ldrh r0, [r5] + lsls r2, r0, 18 + lsrs r1, r4, 25 + lsrs r0, r2, 25 + cmp r1, r0 + bhi _080FA72E + lsrs r1, r4, 25 + lsrs r0, r2, 25 + cmp r1, r0 + bcc _080FA6DE + ldrb r0, [r3] + lsls r1, r0, 25 + ldrb r0, [r5] + lsls r0, 25 + cmp r1, r0 + bhi _080FA72E +_080FA6DA: + cmp r1, r0 + bcs _080FA732 +_080FA6DE: + movs r0, 0 + b _080FA73A +_080FA6E2: + ldrb r0, [r3] + lsls r1, r0, 25 + ldrb r0, [r5] + lsls r0, 25 + cmp r1, r0 + bhi _080FA72E + cmp r1, r0 + bcc _080FA6DE + ldrh r0, [r3] + lsls r4, r0, 18 + ldrh r0, [r5] + lsls r2, r0, 18 + lsrs r1, r4, 25 + lsrs r0, r2, 25 + cmp r1, r0 + bhi _080FA72E + lsrs r1, r4, 25 + lsrs r0, r2, 25 + cmp r1, r0 + bcc _080FA6DE + ldrh r1, [r3, 0x2] + ldrh r0, [r5, 0x2] + cmp r1, r0 + bhi _080FA72E + cmp r1, r0 + bcc _080FA6DE + ldrh r1, [r3, 0x4] + ldrh r0, [r5, 0x4] + cmp r1, r0 + bhi _080FA72E + cmp r1, r0 + bcc _080FA6DE + ldrh r1, [r3, 0x6] + ldrh r0, [r5, 0x6] + cmp r1, r0 + bhi _080FA72E + cmp r1, r0 + bcc _080FA6DE +_080FA72E: + movs r0, 0x1 + b _080FA73A +_080FA732: + bl Random + movs r1, 0x1 + ands r0, r1 +_080FA73A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end atk90_changetypestoenemyattacktype + + thumb_func_start sub_80FA740 +sub_80FA740: @ 80FA740 + push {r4,r5,lr} + adds r5, r0, 0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x62 + bl __umodsi3 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x32 + bls _080FA782 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x62 + bl __umodsi3 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x50 + bls _080FA782 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x62 + bl __umodsi3 + lsls r0, 16 + lsrs r4, r0, 16 +_080FA782: + adds r1, r4, 0 + adds r1, 0x1E + movs r0, 0x7F + ands r1, r0 + lsls r1, 7 + ldrh r2, [r5] + ldr r0, _080FA7C4 + ands r0, r2 + orrs r0, r1 + strh r0, [r5] + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0x1 + bl __modsi3 + adds r0, 0x1E + movs r1, 0x7F + ands r0, r1 + ldrb r2, [r5] + movs r1, 0x80 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r5] + bl Random + strh r0, [r5, 0x2] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FA7C4: .4byte 0xffffc07f + thumb_func_end sub_80FA740 + + thumb_func_start sub_80FA7C8 +sub_80FA7C8: @ 80FA7C8 + push {r4,r5,lr} + adds r5, r0, 0 + movs r4, 0 +_080FA7CE: + lsls r1, r4, 3 + ldr r0, _080FA7E4 + adds r1, r0 + adds r0, r5, 0 + bl sub_80FA7FC + lsls r0, 24 + cmp r0, 0 + beq _080FA7E8 + movs r0, 0x1 + b _080FA7F4 + .align 2, 0 +_080FA7E4: .4byte gSaveBlock1 + 0x2DD8 +_080FA7E8: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _080FA7CE + movs r0, 0 +_080FA7F4: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80FA7C8 + + thumb_func_start sub_80FA7FC +sub_80FA7FC: @ 80FA7FC + push {r4,lr} + adds r3, r0, 0 + adds r2, r1, 0 + movs r4, 0 +_080FA804: + ldrh r1, [r3] + ldrh r0, [r2] + adds r2, 0x2 + adds r3, 0x2 + cmp r1, r0 + beq _080FA814 + movs r0, 0 + b _080FA820 +_080FA814: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080FA804 + movs r0, 0x1 +_080FA820: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80FA7FC + + thumb_func_start sub_80FA828 +sub_80FA828: @ 80FA828 + push {r4-r7,lr} + adds r7, r0, 0 + lsls r1, 16 + lsrs r5, r1, 16 + ldr r6, _080FA84C + movs r4, 0 + cmp r4, r5 + bge _080FA862 +_080FA838: + adds r1, r6, 0x4 + adds r0, r7, 0x4 + bl sub_80FA7FC + lsls r0, 24 + cmp r0, 0 + beq _080FA850 + lsls r0, r4, 16 + asrs r0, 16 + b _080FA866 + .align 2, 0 +_080FA84C: .4byte 0x02007900 +_080FA850: + adds r6, 0x8 + lsls r0, r4, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, r5 + blt _080FA838 +_080FA862: + movs r0, 0x1 + negs r0, r0 +_080FA866: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FA828 + + thumb_func_start sub_80FA86C +sub_80FA86C: @ 80FA86C + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + lsls r1, 16 + lsrs r1, 16 + movs r3, 0 + ldr r2, _080FA890 +_080FA87A: + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, r4 + bne _080FA894 + movs r0, 0x1 + ldrsb r0, [r2, r0] + cmp r0, r1 + bne _080FA894 + adds r0, r3, 0x1 + b _080FA89E + .align 2, 0 +_080FA890: .4byte gUnknown_083E5A20 +_080FA894: + adds r2, 0x8 + adds r3, 0x1 + cmp r3, 0x15 + bls _080FA87A + movs r0, 0 +_080FA89E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80FA86C + + thumb_func_start unref_sub_80FA8A4 +unref_sub_80FA8A4: @ 80FA8A4 + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r1, 16 + bl sub_80FA86C + cmp r0, 0 + beq _080FA8C4 + lsls r0, 3 + ldr r1, _080FA8C0 + adds r0, r1 + b _080FA8C6 + .align 2, 0 +_080FA8C0: .4byte gUnknown_083E5A18 +_080FA8C4: + movs r0, 0 +_080FA8C6: + pop {r1} + bx r1 + thumb_func_end unref_sub_80FA8A4 + + thumb_func_start sub_80FA8CC +sub_80FA8CC: @ 80FA8CC + push {lr} + cmp r0, 0 + beq _080FA8E4 + cmp r0, 0x16 + bhi _080FA8E4 + lsls r0, 3 + ldr r1, _080FA8E0 + adds r0, r1 + b _080FA8E6 + .align 2, 0 +_080FA8E0: .4byte gUnknown_083E5A18 +_080FA8E4: + movs r0, 0 +_080FA8E6: + pop {r1} + bx r1 + thumb_func_end sub_80FA8CC + + thumb_func_start sub_80FA8EC +sub_80FA8EC: @ 80FA8EC + push {lr} + lsls r1, 24 + lsrs r1, 24 + bl sub_80FA904 +_080FA8F6: + bl sub_80FA940 + lsls r0, 24 + cmp r0, 0 + bne _080FA8F6 + pop {r0} + bx r0 + thumb_func_end sub_80FA8EC + + thumb_func_start sub_80FA904 +sub_80FA904: @ 80FA904 + push {r4,lr} + lsls r1, 24 + lsrs r1, 24 + ldr r3, _080FA928 + str r0, [r3] + movs r2, 0x79 + adds r2, r0 + mov r12, r2 + movs r2, 0 + mov r4, r12 + strb r2, [r4] + adds r0, 0x78 + strb r1, [r0] + ldr r3, [r3] + cmp r1, 0 + bne _080FA930 + ldr r0, _080FA92C + b _080FA932 + .align 2, 0 +_080FA928: .4byte gUnknown_020388CC +_080FA92C: .4byte sub_80FAB78 +_080FA930: + ldr r0, _080FA93C +_080FA932: + str r0, [r3, 0x18] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FA93C: .4byte sub_80FAD04 + thumb_func_end sub_80FA904 + + thumb_func_start sub_80FA940 +sub_80FA940: @ 80FA940 + push {r4,r5,lr} + sub sp, 0xC + ldr r0, _080FA95C + ldr r0, [r0] + adds r0, 0x79 + ldrb r0, [r0] + cmp r0, 0x7 + bls _080FA952 + b _080FAAE2 +_080FA952: + lsls r0, 2 + ldr r1, _080FA960 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FA95C: .4byte gUnknown_020388CC +_080FA960: .4byte _080FA964 + .align 2, 0 +_080FA964: + .4byte _080FA984 + .4byte _080FA998 + .4byte _080FA9AC + .4byte _080FA9BC + .4byte _080FA9D8 + .4byte _080FA9F4 + .4byte _080FAA38 + .4byte _080FAAB4 +_080FA984: + ldr r0, _080FA990 + ldr r1, _080FA994 + bl LZ77UnCompVram + b _080FAAF4 + .align 2, 0 +_080FA990: .4byte gUnknown_083E5DA0 +_080FA994: .4byte 0x06008000 +_080FA998: + ldr r0, _080FA9A4 + ldr r1, _080FA9A8 + bl LZ77UnCompVram + b _080FAAF4 + .align 2, 0 +_080FA9A4: .4byte gUnknown_083E6B04 +_080FA9A8: .4byte 0x0600e000 +_080FA9AC: + ldr r0, _080FA9B8 + movs r1, 0x70 + movs r2, 0x60 + bl LoadPalette + b _080FAAF4 + .align 2, 0 +_080FA9B8: .4byte gUnknown_083E5D60 +_080FA9BC: + ldr r0, _080FA9D0 + ldr r1, _080FA9D4 + ldr r1, [r1] + movs r2, 0xC0 + lsls r2, 1 + adds r1, r2 + bl LZ77UnCompWram + b _080FAAF4 + .align 2, 0 +_080FA9D0: .4byte gUnknown_083E5AF0 +_080FA9D4: .4byte gUnknown_020388CC +_080FA9D8: + ldr r0, _080FA9EC + ldr r1, _080FA9F0 + ldr r1, [r1] + movs r3, 0xA0 + lsls r3, 2 + adds r1, r3 + bl LZ77UnCompWram + b _080FAAF4 + .align 2, 0 +_080FA9EC: .4byte gUnknown_083E5B34 +_080FA9F0: .4byte gUnknown_020388CC +_080FA9F4: + bl sub_80FB32C + ldr r4, _080FAA34 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x54 + ldrh r1, [r0] + adds r0, 0x20 + strh r1, [r0] + subs r0, 0x1E + ldrh r0, [r0] + adds r1, r2, 0 + adds r1, 0x76 + strh r0, [r1] + ldrh r0, [r2, 0x14] + bl sub_80FB758 + ldr r1, [r4] + strb r0, [r1, 0x16] + ldr r0, [r4] + ldrh r0, [r0, 0x14] + bl sub_80FB9C0 + adds r1, r0, 0 + ldr r0, [r4] + strh r1, [r0, 0x14] + ldrh r1, [r0, 0x14] + movs r2, 0x10 + bl sub_80FBFB4 + b _080FAAF4 + .align 2, 0 +_080FAA34: .4byte gUnknown_020388CC +_080FAA38: + ldr r0, _080FAA60 + ldr r4, [r0] + adds r0, r4, 0 + adds r0, 0x78 + ldrb r1, [r0] + cmp r1, 0 + bne _080FAA64 + movs r0, 0x80 + lsls r0, 1 + str r0, [sp] + str r0, [sp, 0x4] + str r1, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80FB170 + b _080FAAF4 + .align 2, 0 +_080FAA60: .4byte gUnknown_020388CC +_080FAA64: + adds r1, r4, 0 + adds r1, 0x54 + ldrh r0, [r1] + lsls r0, 3 + subs r0, 0x34 + adds r2, r4, 0 + adds r2, 0x5C + movs r3, 0 + strh r0, [r2] + movs r5, 0x56 + adds r5, r4 + mov r12, r5 + ldrh r0, [r5] + lsls r0, 3 + subs r0, 0x44 + adds r5, r4, 0 + adds r5, 0x5E + strh r0, [r5] + ldrh r1, [r1] + adds r0, r4, 0 + adds r0, 0x64 + strh r1, [r0] + mov r0, r12 + ldrh r1, [r0] + adds r0, r4, 0 + adds r0, 0x66 + strh r1, [r0] + movs r1, 0 + ldrsh r0, [r2, r1] + movs r2, 0 + ldrsh r1, [r5, r2] + movs r2, 0x80 + str r2, [sp] + str r2, [sp, 0x4] + str r3, [sp, 0x8] + movs r2, 0x38 + movs r3, 0x48 + bl sub_80FB170 + b _080FAAF4 +_080FAAB4: + bl sub_80FBA18 + bl sub_80FB260 + ldr r2, _080FAAE8 + ldr r0, [r2] + movs r1, 0 + str r1, [r0, 0x1C] + str r1, [r0, 0x20] + adds r0, 0x7A + strb r1, [r0] + ldr r0, [r2] + adds r0, 0x7E + strb r1, [r0] + ldr r1, _080FAAEC + ldr r3, _080FAAF0 + adds r0, r3, 0 + strh r0, [r1] + ldr r1, [r2] + adds r1, 0x79 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080FAAE2: + movs r0, 0 + b _080FAB02 + .align 2, 0 +_080FAAE8: .4byte gUnknown_020388CC +_080FAAEC: .4byte REG_BG2CNT +_080FAAF0: .4byte 0x0000bc8a +_080FAAF4: + ldr r0, _080FAB0C + ldr r1, [r0] + adds r1, 0x79 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0x1 +_080FAB02: + add sp, 0xC + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080FAB0C: .4byte gUnknown_020388CC + thumb_func_end sub_80FA940 + + thumb_func_start sub_80FAB10 +sub_80FAB10: @ 80FAB10 + push {r4,lr} + ldr r4, _080FAB5C + ldr r0, [r4] + ldr r0, [r0, 0x1C] + cmp r0, 0 + beq _080FAB34 + bl DestroySprite + ldr r0, [r4] + adds r0, 0x58 + ldrh r0, [r0] + bl FreeSpriteTilesByTag + ldr r0, [r4] + adds r0, 0x5A + ldrh r0, [r0] + bl FreeSpritePaletteByTag +_080FAB34: + ldr r0, [r4] + ldr r0, [r0, 0x20] + cmp r0, 0 + beq _080FAB54 + bl DestroySprite + ldr r0, [r4] + adds r0, 0x70 + ldrh r0, [r0] + bl FreeSpriteTilesByTag + ldr r0, [r4] + adds r0, 0x72 + ldrh r0, [r0] + bl FreeSpritePaletteByTag +_080FAB54: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FAB5C: .4byte gUnknown_020388CC + thumb_func_end sub_80FAB10 + + thumb_func_start sub_80FAB60 +sub_80FAB60: @ 80FAB60 + push {lr} + ldr r0, _080FAB74 + ldr r0, [r0] + ldr r0, [r0, 0x18] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080FAB74: .4byte gUnknown_020388CC + thumb_func_end sub_80FAB60 + + thumb_func_start sub_80FAB78 +sub_80FAB78: @ 80FAB78 + push {r4,lr} + movs r4, 0 + ldr r2, _080FAC14 + ldr r0, [r2] + adds r0, 0x7B + strb r4, [r0] + ldr r0, [r2] + adds r0, 0x7C + strb r4, [r0] + ldr r3, _080FAC18 + ldrh r1, [r3, 0x2C] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080FABAA + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0x56 + ldrh r0, [r0] + cmp r0, 0x2 + bls _080FABAA + adds r1, 0x7C + movs r0, 0xFF + strb r0, [r1] + movs r4, 0x1 +_080FABAA: + ldrh r1, [r3, 0x2C] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080FABC8 + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0x56 + ldrh r0, [r0] + cmp r0, 0xF + bhi _080FABC8 + adds r1, 0x7C + movs r0, 0x1 + strb r0, [r1] + movs r4, 0x1 +_080FABC8: + ldrh r1, [r3, 0x2C] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080FABE6 + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0x54 + ldrh r0, [r0] + cmp r0, 0x1 + bls _080FABE6 + adds r1, 0x7B + movs r0, 0xFF + strb r0, [r1] + movs r4, 0x1 +_080FABE6: + ldrh r1, [r3, 0x2C] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080FAC04 + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0x54 + ldrh r0, [r0] + cmp r0, 0x1B + bhi _080FAC04 + adds r1, 0x7B + movs r0, 0x1 + strb r0, [r1] + movs r4, 0x1 +_080FAC04: + ldrh r3, [r3, 0x2E] + movs r0, 0x1 + ands r0, r3 + cmp r0, 0 + beq _080FAC1C + movs r4, 0x4 + b _080FAC26 + .align 2, 0 +_080FAC14: .4byte gUnknown_020388CC +_080FAC18: .4byte gMain +_080FAC1C: + movs r0, 0x2 + ands r0, r3 + cmp r0, 0 + beq _080FAC26 + movs r4, 0x5 +_080FAC26: + cmp r4, 0x1 + bne _080FAC38 + ldr r0, [r2] + adds r0, 0x7A + movs r1, 0x4 + strb r1, [r0] + ldr r1, [r2] + ldr r0, _080FAC40 + str r0, [r1, 0x18] +_080FAC38: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080FAC40: .4byte _swiopen + thumb_func_end sub_80FAB78 + + thumb_func_start _swiopen +_swiopen: @ 80FAC44 + push {r4,r5,lr} + ldr r5, _080FAC5C + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x7A + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080FAC60 + movs r0, 0x2 + b _080FACFA + .align 2, 0 +_080FAC5C: .4byte gUnknown_020388CC +_080FAC60: + adds r0, r1, 0 + adds r0, 0x7B + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + ble _080FAC76 + adds r1, 0x54 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080FAC76: + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x7B + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bge _080FAC8E + adds r1, 0x54 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] +_080FAC8E: + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x7C + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + ble _080FACA6 + adds r1, 0x56 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080FACA6: + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x7C + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bge _080FACBE + adds r1, 0x56 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] +_080FACBE: + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x54 + ldrh r0, [r0] + adds r1, 0x56 + ldrh r1, [r1] + bl sub_80FB2EC + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl sub_80FB758 + ldr r1, [r5] + strb r0, [r1, 0x16] + ldr r0, [r5] + ldrh r1, [r0, 0x14] + cmp r4, r1 + beq _080FACEE + strh r4, [r0, 0x14] + ldrh r1, [r0, 0x14] + movs r2, 0x10 + bl sub_80FBFB4 +_080FACEE: + bl sub_80FBA18 + ldr r1, [r5] + ldr r0, _080FAD00 + str r0, [r1, 0x18] + movs r0, 0x3 +_080FACFA: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080FAD00: .4byte sub_80FAB78 + thumb_func_end _swiopen + + thumb_func_start sub_80FAD04 +sub_80FAD04: @ 80FAD04 + push {r4-r6,lr} + movs r4, 0 + ldr r3, _080FADD4 + ldr r0, [r3] + mov r12, r0 + adds r0, 0x6A + strh r4, [r0] + mov r5, r12 + adds r5, 0x68 + strh r4, [r5] + ldr r2, _080FADD8 + ldrh r1, [r2, 0x2C] + movs r0, 0x40 + ands r0, r1 + adds r6, r3, 0 + adds r3, r2, 0 + cmp r0, 0 + beq _080FAD3E + mov r0, r12 + adds r0, 0x5E + movs r2, 0 + ldrsh r1, [r0, r2] + movs r0, 0x34 + negs r0, r0 + cmp r1, r0 + ble _080FAD3E + ldr r0, _080FADDC + strh r0, [r5] + movs r4, 0x1 +_080FAD3E: + ldrh r1, [r3, 0x2C] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080FAD5E + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0x5E + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r0, 0x3B + bgt _080FAD5E + adds r1, 0x68 + movs r0, 0x1 + strh r0, [r1] + movs r4, 0x1 +_080FAD5E: + ldrh r1, [r3, 0x2C] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080FAD84 + ldr r2, [r6] + adds r0, r2, 0 + adds r0, 0x5C + movs r5, 0 + ldrsh r1, [r0, r5] + movs r0, 0x2C + negs r0, r0 + cmp r1, r0 + ble _080FAD84 + adds r1, r2, 0 + adds r1, 0x6A + ldr r0, _080FADDC + strh r0, [r1] + movs r4, 0x1 +_080FAD84: + ldrh r1, [r3, 0x2C] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080FADA4 + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0x5C + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0xAB + bgt _080FADA4 + adds r1, 0x6A + movs r0, 0x1 + strh r0, [r1] + movs r4, 0x1 +_080FADA4: + ldrh r2, [r3, 0x2E] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _080FADB0 + movs r4, 0x4 +_080FADB0: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _080FADBA + movs r4, 0x5 +_080FADBA: + cmp r4, 0x1 + bne _080FADCA + ldr r0, [r6] + ldr r1, _080FADE0 + str r1, [r0, 0x18] + adds r0, 0x6C + movs r1, 0 + strh r1, [r0] +_080FADCA: + adds r0, r4, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080FADD4: .4byte gUnknown_020388CC +_080FADD8: .4byte gMain +_080FADDC: .4byte 0x0000ffff +_080FADE0: .4byte sub_80FADE4 + thumb_func_end sub_80FAD04 + + thumb_func_start sub_80FADE4 +sub_80FADE4: @ 80FADE4 + push {r4,r5,lr} + ldr r5, _080FAEB4 + ldr r2, [r5] + adds r3, r2, 0 + adds r3, 0x5E + adds r0, r2, 0 + adds r0, 0x68 + ldrh r0, [r0] + ldrh r1, [r3] + adds r0, r1 + strh r0, [r3] + adds r1, r2, 0 + adds r1, 0x5C + adds r0, r2, 0 + adds r0, 0x6A + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + movs r4, 0 + ldrsh r0, [r1, r4] + movs r2, 0 + ldrsh r1, [r3, r2] + bl sub_80FB238 + ldr r2, [r5] + adds r1, r2, 0 + adds r1, 0x6C + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x8 + bne _080FAEBC + adds r0, r2, 0 + adds r0, 0x5C + movs r3, 0 + ldrsh r1, [r0, r3] + adds r0, r1, 0 + adds r0, 0x2C + cmp r0, 0 + bge _080FAE3C + adds r0, 0x7 +_080FAE3C: + asrs r0, 3 + adds r0, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + adds r0, r2, 0 + adds r0, 0x5E + movs r4, 0 + ldrsh r1, [r0, r4] + adds r0, r1, 0 + adds r0, 0x34 + cmp r0, 0 + bge _080FAE56 + adds r0, 0x7 +_080FAE56: + asrs r0, 3 + adds r0, 0x2 + lsls r0, 16 + lsrs r1, r0, 16 + adds r4, r2, 0 + adds r4, 0x64 + adds r0, r2, 0 + adds r0, 0x66 + ldrh r2, [r4] + cmp r3, r2 + bne _080FAE72 + ldrh r2, [r0] + cmp r1, r2 + beq _080FAEA0 +_080FAE72: + strh r3, [r4] + strh r1, [r0] + adds r0, r3, 0 + bl sub_80FB2EC + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl sub_80FB758 + ldr r1, [r5] + strb r0, [r1, 0x16] + ldr r0, [r5] + ldrh r3, [r0, 0x14] + cmp r4, r3 + beq _080FAE9C + strh r4, [r0, 0x14] + ldrh r1, [r0, 0x14] + movs r2, 0x10 + bl sub_80FBFB4 +_080FAE9C: + bl sub_80FBA18 +_080FAEA0: + ldr r0, _080FAEB4 + ldr r2, [r0] + adds r1, r2, 0 + adds r1, 0x6C + movs r0, 0 + strh r0, [r1] + ldr r0, _080FAEB8 + str r0, [r2, 0x18] + movs r0, 0x3 + b _080FAEBE + .align 2, 0 +_080FAEB4: .4byte gUnknown_020388CC +_080FAEB8: .4byte sub_80FAD04 +_080FAEBC: + movs r0, 0x2 +_080FAEBE: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80FADE4 + + thumb_func_start sub_80FAEC4 +sub_80FAEC4: @ 80FAEC4 + push {r4-r6,lr} + ldr r1, _080FAF40 + ldr r2, [r1] + adds r0, r2, 0 + adds r0, 0x78 + ldrb r3, [r0] + adds r5, r1, 0 + cmp r3, 0 + bne _080FAF48 + subs r0, 0x1A + strh r3, [r0] + subs r0, 0x2 + strh r3, [r0] + str r3, [r2, 0x40] + str r3, [r2, 0x3C] + adds r4, r2, 0 + adds r4, 0x54 + ldrh r0, [r4] + lsls r0, 3 + subs r0, 0x34 + adds r1, r2, 0 + adds r1, 0x60 + strh r0, [r1] + movs r0, 0x56 + adds r0, r2 + mov r12, r0 + ldrh r0, [r0] + lsls r0, 3 + subs r0, 0x44 + adds r3, r2, 0 + adds r3, 0x62 + strh r0, [r3] + movs r6, 0 + ldrsh r0, [r1, r6] + lsls r0, 8 + cmp r0, 0 + bge _080FAF10 + adds r0, 0xF +_080FAF10: + asrs r0, 4 + str r0, [r2, 0x44] + movs r1, 0 + ldrsh r0, [r3, r1] + lsls r0, 8 + cmp r0, 0 + bge _080FAF20 + adds r0, 0xF +_080FAF20: + asrs r0, 4 + str r0, [r2, 0x48] + ldrh r1, [r4] + adds r0, r2, 0 + adds r0, 0x64 + strh r1, [r0] + mov r3, r12 + ldrh r0, [r3] + adds r1, r2, 0 + adds r1, 0x66 + strh r0, [r1] + movs r0, 0x80 + lsls r0, 9 + str r0, [r2, 0x4C] + ldr r0, _080FAF44 + b _080FAFA6 + .align 2, 0 +_080FAF40: .4byte gUnknown_020388CC +_080FAF44: .4byte 0xfffff800 +_080FAF48: + adds r0, r2, 0 + adds r0, 0x5C + movs r6, 0 + ldrsh r0, [r0, r6] + lsls r0, 8 + str r0, [r2, 0x3C] + adds r0, r2, 0 + adds r0, 0x5E + movs r1, 0 + ldrsh r0, [r0, r1] + lsls r0, 8 + str r0, [r2, 0x40] + adds r0, r2, 0 + adds r0, 0x60 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r0, [r2, 0x3C] + cmp r0, 0 + bge _080FAF74 + adds r0, 0xF +_080FAF74: + asrs r0, 4 + negs r0, r0 + str r0, [r2, 0x44] + ldr r0, [r2, 0x40] + cmp r0, 0 + bge _080FAF82 + adds r0, 0xF +_080FAF82: + asrs r0, 4 + negs r0, r0 + str r0, [r2, 0x48] + adds r0, r2, 0 + adds r0, 0x64 + ldrh r1, [r0] + subs r0, 0x10 + strh r1, [r0] + adds r0, 0x12 + ldrh r0, [r0] + adds r1, r2, 0 + adds r1, 0x56 + strh r0, [r1] + movs r0, 0x80 + lsls r0, 8 + str r0, [r2, 0x4C] + movs r0, 0x80 + lsls r0, 4 +_080FAFA6: + str r0, [r2, 0x50] + ldr r0, [r5] + adds r0, 0x6E + movs r1, 0 + strh r1, [r0] + bl sub_80FBCA0 + bl sub_80FBDF8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80FAEC4 + + thumb_func_start sub_80FAFC0 +sub_80FAFC0: @ 80FAFC0 + push {r4-r6,lr} + sub sp, 0xC + ldr r0, _080FAFD8 + ldr r3, [r0] + adds r2, r3, 0 + adds r2, 0x6E + ldrh r1, [r2] + adds r5, r0, 0 + cmp r1, 0xF + bls _080FAFDC + movs r0, 0 + b _080FB164 + .align 2, 0 +_080FAFD8: .4byte gUnknown_020388CC +_080FAFDC: + adds r0, r1, 0x1 + movs r1, 0 + strh r0, [r2] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x10 + bne _080FB050 + str r1, [r3, 0x44] + str r1, [r3, 0x48] + adds r0, r3, 0 + adds r0, 0x60 + ldrh r1, [r0] + subs r0, 0x4 + strh r1, [r0] + adds r0, 0x6 + ldrh r0, [r0] + adds r1, r3, 0 + adds r1, 0x5E + strh r0, [r1] + adds r1, 0x1A + ldrb r0, [r1] + movs r2, 0x80 + lsls r2, 9 + cmp r0, 0 + bne _080FB012 + movs r2, 0x80 + lsls r2, 8 +_080FB012: + str r2, [r3, 0x4C] + movs r2, 0 + ldrb r0, [r1] + cmp r0, 0 + bne _080FB01E + movs r2, 0x1 +_080FB01E: + strb r2, [r1] + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x78 + ldrb r0, [r0] + ldr r2, _080FB048 + cmp r0, 0 + bne _080FB030 + ldr r2, _080FB04C +_080FB030: + str r2, [r1, 0x18] + adds r0, r1, 0 + adds r0, 0x58 + ldrh r0, [r0] + adds r1, 0x5A + ldrh r1, [r1] + bl sub_80FBB3C + bl sub_80FBE24 + movs r4, 0 + b _080FB132 + .align 2, 0 +_080FB048: .4byte sub_80FAD04 +_080FB04C: .4byte sub_80FAB78 +_080FB050: + ldr r2, [r3, 0x3C] + ldr r0, [r3, 0x44] + adds r2, r0 + str r2, [r3, 0x3C] + ldr r0, [r3, 0x40] + ldr r1, [r3, 0x48] + adds r0, r1 + str r0, [r3, 0x40] + asrs r2, 8 + adds r4, r3, 0 + adds r4, 0x5C + strh r2, [r4] + ldr r0, [r3, 0x40] + asrs r0, 8 + adds r1, r3, 0 + adds r1, 0x5E + strh r0, [r1] + ldr r0, [r3, 0x4C] + ldr r1, [r3, 0x50] + adds r0, r1 + str r0, [r3, 0x4C] + ldr r2, [r3, 0x44] + cmp r2, 0 + bge _080FB090 + adds r0, r3, 0 + adds r0, 0x60 + movs r6, 0 + ldrsh r1, [r4, r6] + movs r6, 0 + ldrsh r0, [r0, r6] + cmp r1, r0 + blt _080FB0A4 +_080FB090: + cmp r2, 0 + ble _080FB0B4 + adds r0, r3, 0 + adds r0, 0x60 + movs r2, 0 + ldrsh r1, [r4, r2] + movs r6, 0 + ldrsh r0, [r0, r6] + cmp r1, r0 + ble _080FB0B4 +_080FB0A4: + ldr r3, [r5] + adds r0, r3, 0 + adds r0, 0x60 + ldrh r2, [r0] + subs r0, 0x4 + movs r1, 0 + strh r2, [r0] + str r1, [r3, 0x44] +_080FB0B4: + ldr r2, [r5] + ldr r4, [r2, 0x48] + cmp r4, 0 + bge _080FB0D0 + adds r0, r2, 0 + adds r0, 0x5E + adds r3, r2, 0 + adds r3, 0x62 + movs r6, 0 + ldrsh r1, [r0, r6] + movs r6, 0 + ldrsh r0, [r3, r6] + cmp r1, r0 + blt _080FB0E8 +_080FB0D0: + cmp r4, 0 + ble _080FB0FA + adds r1, r2, 0 + adds r1, 0x5E + adds r0, r2, 0 + adds r0, 0x62 + movs r2, 0 + ldrsh r1, [r1, r2] + movs r6, 0 + ldrsh r0, [r0, r6] + cmp r1, r0 + ble _080FB0FA +_080FB0E8: + ldr r2, [r5] + adds r0, r2, 0 + adds r0, 0x62 + ldrh r1, [r0] + adds r3, r2, 0 + adds r3, 0x5E + movs r0, 0 + strh r1, [r3] + str r0, [r2, 0x48] +_080FB0FA: + ldr r0, _080FB118 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x78 + ldrb r3, [r0] + cmp r3, 0 + bne _080FB120 + ldr r1, [r2, 0x4C] + ldr r0, _080FB11C + cmp r1, r0 + bgt _080FB130 + adds r0, 0x1 + str r0, [r2, 0x4C] + str r3, [r2, 0x50] + b _080FB130 + .align 2, 0 +_080FB118: .4byte gUnknown_020388CC +_080FB11C: .4byte 0x00007fff +_080FB120: + ldr r0, [r2, 0x4C] + movs r1, 0x80 + lsls r1, 9 + cmp r0, r1 + ble _080FB130 + str r1, [r2, 0x4C] + movs r0, 0 + str r0, [r2, 0x50] +_080FB130: + movs r4, 0x1 +_080FB132: + ldr r0, _080FB16C + ldr r3, [r0] + adds r0, r3, 0 + adds r0, 0x5C + movs r1, 0 + ldrsh r0, [r0, r1] + adds r1, r3, 0 + adds r1, 0x5E + movs r2, 0 + ldrsh r1, [r1, r2] + ldr r2, [r3, 0x4C] + lsls r2, 8 + lsrs r2, 16 + str r2, [sp] + ldr r2, [r3, 0x4C] + lsls r2, 8 + lsrs r2, 16 + str r2, [sp, 0x4] + movs r2, 0 + str r2, [sp, 0x8] + movs r2, 0x38 + movs r3, 0x48 + bl sub_80FB170 + adds r0, r4, 0 +_080FB164: + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080FB16C: .4byte gUnknown_020388CC + thumb_func_end sub_80FAFC0 + + thumb_func_start sub_80FB170 +sub_80FB170: @ 80FB170 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r4, [sp, 0x24] + ldr r7, [sp, 0x28] + ldr r5, [sp, 0x2C] + lsls r4, 16 + lsrs r4, 16 + mov r8, r4 + lsls r7, 16 + adds r4, r7, 0 + lsrs r4, 16 + mov r9, r4 + lsls r5, 24 + lsrs r5, 24 + ldr r4, _080FB230 + ldr r6, [r4] + ldr r7, _080FB234 + mov r12, r7 + adds r4, r5, 0 + adds r4, 0x40 + lsls r4, 1 + add r4, r12 + movs r7, 0 + ldrsh r4, [r4, r7] + str r4, [sp] + mov r7, r8 + muls r7, r4 + adds r4, r7, 0 + asrs r4, 8 + mov r10, r4 + str r4, [r6, 0x2C] + lsls r5, 1 + add r5, r12 + movs r7, 0 + ldrsh r5, [r5, r7] + negs r4, r5 + mov r7, r8 + muls r7, r4 + adds r4, r7, 0 + asrs r4, 8 + mov r12, r4 + str r4, [r6, 0x30] + mov r7, r9 + muls r7, r5 + adds r5, r7, 0 + asrs r5, 8 + str r5, [r6, 0x34] + ldr r7, [sp] + mov r4, r9 + muls r4, r7 + asrs r4, 8 + mov r8, r4 + str r4, [r6, 0x38] + lsls r0, 16 + asrs r0, 8 + lsls r2, 16 + asrs r2, 16 + lsls r4, r2, 8 + adds r0, r4 + lsls r3, 16 + asrs r3, 16 + adds r4, r3, 0 + muls r4, r5 + mov r5, r10 + muls r5, r2 + adds r4, r5 + subs r0, r4 + str r0, [r6, 0x24] + lsls r1, 16 + asrs r1, 8 + lsls r0, r3, 8 + adds r1, r0 + mov r0, r8 + muls r0, r3 + mov r3, r12 + muls r3, r2 + adds r2, r3, 0 + adds r0, r2 + subs r1, r0 + str r1, [r6, 0x28] + adds r6, 0x7D + movs r0, 0x1 + strb r0, [r6] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FB230: .4byte gUnknown_020388CC +_080FB234: .4byte gSineTable + thumb_func_end sub_80FB170 + + thumb_func_start sub_80FB238 +sub_80FB238: @ 80FB238 + ldr r2, _080FB25C + ldr r2, [r2] + lsls r0, 16 + asrs r0, 8 + movs r3, 0xE0 + lsls r3, 5 + adds r0, r3 + str r0, [r2, 0x24] + lsls r1, 16 + asrs r1, 8 + movs r0, 0x90 + lsls r0, 6 + adds r1, r0 + str r1, [r2, 0x28] + adds r2, 0x7D + movs r0, 0x1 + strb r0, [r2] + bx lr + .align 2, 0 +_080FB25C: .4byte gUnknown_020388CC + thumb_func_end sub_80FB238 + + thumb_func_start sub_80FB260 +sub_80FB260: @ 80FB260 + push {lr} + ldr r0, _080FB29C + ldr r2, [r0] + adds r3, r2, 0 + adds r3, 0x7D + ldrb r0, [r3] + cmp r0, 0 + beq _080FB298 + ldr r1, _080FB2A0 + ldr r0, [r2, 0x2C] + strh r0, [r1] + adds r1, 0x2 + ldr r0, [r2, 0x34] + strh r0, [r1] + adds r1, 0x2 + ldr r0, [r2, 0x30] + strh r0, [r1] + adds r1, 0x2 + ldr r0, [r2, 0x38] + strh r0, [r1] + adds r1, 0x2 + ldr r0, [r2, 0x24] + str r0, [r1] + adds r1, 0x4 + ldr r0, [r2, 0x28] + str r0, [r1] + movs r0, 0 + strb r0, [r3] +_080FB298: + pop {r0} + bx r0 + .align 2, 0 +_080FB29C: .4byte gUnknown_020388CC +_080FB2A0: .4byte REG_BG2PA + thumb_func_end sub_80FB260 + + thumb_func_start sub_80FB2A4 +sub_80FB2A4: @ 80FB2A4 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 16 + asrs r4, r0, 16 + lsls r1, 16 + asrs r5, r1, 16 + movs r0, 0x80 + lsls r0, 1 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x38 + movs r3, 0x48 + bl sub_80FB170 + bl sub_80FB260 + ldr r0, _080FB2E8 + ldr r2, [r0] + ldr r1, [r2, 0x20] + cmp r1, 0 + beq _080FB2E0 + negs r0, r4 + strh r0, [r1, 0x24] + ldr r1, [r2, 0x20] + negs r0, r5 + strh r0, [r1, 0x26] +_080FB2E0: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FB2E8: .4byte gUnknown_020388CC + thumb_func_end sub_80FB2A4 + + thumb_func_start sub_80FB2EC +sub_80FB2EC: @ 80FB2EC + push {lr} + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + ldr r0, _080FB30C + adds r1, r0 + lsrs r2, r1, 16 + cmp r2, 0xE + bhi _080FB306 + cmp r3, 0 + beq _080FB306 + cmp r3, 0x1C + bls _080FB310 +_080FB306: + movs r0, 0x58 + b _080FB324 + .align 2, 0 +_080FB30C: .4byte 0xfffe0000 +_080FB310: + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + ldr r1, _080FB328 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r3, r0 + adds r0, r1 + ldrb r0, [r0] +_080FB324: + pop {r1} + bx r1 + .align 2, 0 +_080FB328: .4byte gRegionMapSections + thumb_func_end sub_80FB2EC + + thumb_func_start sub_80FB32C +sub_80FB32C: @ 80FB32C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r0, _080FB358 + movs r1, 0x4 + ldrsb r1, [r0, r1] + adds r2, r0, 0 + cmp r1, 0x19 + bne _080FB35C + ldrb r0, [r2, 0x5] + subs r0, 0x29 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bhi _080FB35C + bl sub_80FB600 + b _080FB5E8 + .align 2, 0 +_080FB358: .4byte gSaveBlock1 +_080FB35C: + movs r0, 0x4 + ldrsb r0, [r2, r0] + movs r1, 0x5 + ldrsb r1, [r2, r1] + bl get_map_light_level_by_bank_and_number + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + cmp r0, 0x8 + bhi _080FB3A4 + lsls r0, 2 + ldr r1, _080FB37C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FB37C: .4byte _080FB380 + .align 2, 0 +_080FB380: + .4byte _080FB3A4 + .4byte _080FB3A4 + .4byte _080FB3A4 + .4byte _080FB3E0 + .4byte _080FB3A4 + .4byte _080FB3A4 + .4byte _080FB3E0 + .4byte _080FB464 + .4byte _080FB428 +_080FB3A4: + ldr r4, _080FB3D4 + ldr r0, [r4] + ldr r3, _080FB3D8 + ldrb r1, [r3, 0x14] + movs r2, 0 + strh r1, [r0, 0x14] + adds r0, 0x7F + strb r2, [r0] + ldr r0, [r3] + ldrh r2, [r0] + ldrh r0, [r0, 0x4] + mov r8, r0 + ldr r0, _080FB3DC + ldrh r6, [r0] + ldrh r3, [r0, 0x2] + ldr r1, [r4] + ldrh r0, [r1, 0x14] + cmp r0, 0x45 + beq _080FB3CC + b _080FB4CC +_080FB3CC: + adds r1, 0x7F + movs r0, 0x1 + strb r0, [r1] + b _080FB4CC + .align 2, 0 +_080FB3D4: .4byte gUnknown_020388CC +_080FB3D8: .4byte gMapHeader +_080FB3DC: .4byte gSaveBlock1 +_080FB3E0: + ldr r4, _080FB420 + adds r0, r4, 0 + adds r0, 0x24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0 + adds r1, 0x25 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + lsls r1, 16 + lsrs r1, 16 + bl get_mapheader_by_bank_and_number + adds r2, r0, 0 + ldr r0, _080FB424 + ldr r0, [r0] + ldrb r1, [r2, 0x14] + strh r1, [r0, 0x14] + adds r0, 0x7F + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r2] + ldrh r2, [r0] + ldrh r0, [r0, 0x4] + mov r8, r0 + ldrh r6, [r4, 0x28] + ldrh r3, [r4, 0x2A] + b _080FB4CC + .align 2, 0 +_080FB420: .4byte gSaveBlock1 +_080FB424: .4byte gUnknown_020388CC +_080FB428: + ldr r4, _080FB45C + movs r0, 0x14 + ldrsb r0, [r4, r0] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x15 + ldrsb r1, [r4, r1] + lsls r1, 16 + lsrs r1, 16 + bl get_mapheader_by_bank_and_number + adds r2, r0, 0 + ldr r0, _080FB460 + ldr r0, [r0] + ldrb r1, [r2, 0x14] + strh r1, [r0, 0x14] + adds r0, 0x7F + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r2] + ldrh r2, [r0] + ldrh r0, [r0, 0x4] + mov r8, r0 + ldrh r6, [r4, 0x18] + ldrh r3, [r4, 0x1A] + b _080FB4CC + .align 2, 0 +_080FB45C: .4byte gSaveBlock1 +_080FB460: .4byte gUnknown_020388CC +_080FB464: + ldr r5, _080FB48C + ldr r0, [r5] + ldr r1, _080FB490 + ldrb r1, [r1, 0x14] + strh r1, [r0, 0x14] + cmp r1, 0x57 + beq _080FB498 + ldr r4, _080FB494 + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ldrsb r1, [r4, r1] + lsls r1, 16 + lsrs r1, 16 + bl get_mapheader_by_bank_and_number + adds r2, r0, 0 + b _080FB4B6 + .align 2, 0 +_080FB48C: .4byte gUnknown_020388CC +_080FB490: .4byte gMapHeader +_080FB494: .4byte gSaveBlock1 + 0x24 +_080FB498: + ldr r4, _080FB548 + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ldrsb r1, [r4, r1] + lsls r1, 16 + lsrs r1, 16 + bl get_mapheader_by_bank_and_number + adds r2, r0, 0 + ldr r1, [r5] + ldrb r0, [r2, 0x14] + strh r0, [r1, 0x14] +_080FB4B6: + ldr r0, _080FB54C + ldr r0, [r0] + adds r0, 0x7F + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + ldrh r2, [r0] + ldrh r0, [r0, 0x4] + mov r8, r0 + ldrh r6, [r4, 0x4] + ldrh r3, [r4, 0x6] +_080FB4CC: + mov r9, r6 + ldr r4, _080FB54C + ldr r0, [r4] + ldrh r5, [r0, 0x14] + lsls r0, r5, 3 + ldr r1, _080FB550 + adds r0, r1 + mov r10, r0 + ldrb r7, [r0, 0x2] + adds r0, r2, 0 + adds r1, r7, 0 + str r3, [sp] + bl __divsi3 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r3, [sp] + cmp r1, 0 + bne _080FB4F4 + movs r1, 0x1 +_080FB4F4: + adds r0, r6, 0 + str r3, [sp] + bl __udivsi3 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r3, [sp] + cmp r6, r7 + bcc _080FB50C + subs r0, r7, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080FB50C: + mov r2, r10 + ldrb r4, [r2, 0x3] + mov r0, r8 + adds r1, r4, 0 + str r3, [sp] + bl __divsi3 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r3, [sp] + cmp r1, 0 + bne _080FB526 + movs r1, 0x1 +_080FB526: + adds r0, r3, 0 + bl __udivsi3 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r4 + bcc _080FB53A + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 +_080FB53A: + cmp r5, 0x24 + beq _080FB59C + cmp r5, 0x24 + bgt _080FB554 + cmp r5, 0x1D + beq _080FB55E + b _080FB5BE + .align 2, 0 +_080FB548: .4byte gSaveBlock1 + 0x14 +_080FB54C: .4byte gUnknown_020388CC +_080FB550: .4byte gRegionMapLocations +_080FB554: + cmp r5, 0x29 + beq _080FB566 + cmp r5, 0x33 + beq _080FB566 + b _080FB5BE +_080FB55E: + cmp r3, 0 + beq _080FB5BE + movs r6, 0 + b _080FB5BE +_080FB566: + movs r6, 0 + ldr r1, _080FB598 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0x20 + ble _080FB574 + movs r6, 0x1 +_080FB574: + cmp r0, 0x33 + ble _080FB57E + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080FB57E: + movs r3, 0 + movs r2, 0x2 + ldrsh r0, [r1, r2] + cmp r0, 0x25 + ble _080FB58A + movs r3, 0x1 +_080FB58A: + cmp r0, 0x38 + ble _080FB5BE + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + b _080FB5BE + .align 2, 0 +_080FB598: .4byte gSaveBlock1 +_080FB59C: + movs r6, 0 + mov r0, r9 + cmp r0, 0xE + bls _080FB5A6 + movs r6, 0x1 +_080FB5A6: + mov r1, r9 + cmp r1, 0x1C + bls _080FB5B2 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080FB5B2: + mov r2, r9 + cmp r2, 0x36 + bls _080FB5BE + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080FB5BE: + ldr r0, _080FB5F8 + ldr r2, [r0] + ldrh r0, [r2, 0x14] + lsls r0, 3 + ldr r1, _080FB5FC + adds r0, r1 + ldrb r0, [r0] + adds r0, r6, r0 + adds r0, 0x1 + adds r1, r2, 0 + adds r1, 0x54 + strh r0, [r1] + ldrh r0, [r2, 0x14] + lsls r0, 3 + ldr r1, _080FB5FC + adds r0, r1 + ldrb r0, [r0, 0x1] + adds r0, r3, r0 + adds r0, 0x2 + adds r2, 0x56 + strh r0, [r2] +_080FB5E8: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FB5F8: .4byte gUnknown_020388CC +_080FB5FC: .4byte gRegionMapLocations + thumb_func_end sub_80FB32C + + thumb_func_start sub_80FB600 +sub_80FB600: @ 80FB600 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r7, 0 + movs r0, 0 + mov r8, r0 + mov r4, sp + adds r4, 0x1 + mov r5, sp + adds r5, 0x2 + add r6, sp, 0x4 + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_810D9EC + lsls r0, 24 + lsrs r0, 24 + mov r10, r5 + cmp r0, 0x4 + bhi _080FB694 + lsls r0, 2 + ldr r1, _080FB63C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FB63C: .4byte _080FB640 + .align 2, 0 +_080FB640: + .4byte _080FB694 + .4byte _080FB654 + .4byte _080FB664 + .4byte _080FB674 + .4byte _080FB684 +_080FB654: + ldr r2, _080FB660 + ldr r1, [r2] + movs r0, 0x8 + strh r0, [r1, 0x14] + b _080FB710 + .align 2, 0 +_080FB660: .4byte gUnknown_020388CC +_080FB664: + ldr r2, _080FB670 + ldr r1, [r2] + movs r0, 0xC + strh r0, [r1, 0x14] + b _080FB710 + .align 2, 0 +_080FB670: .4byte gUnknown_020388CC +_080FB674: + ldr r2, _080FB680 + ldr r1, [r2] + movs r0, 0x27 + strh r0, [r1, 0x14] + b _080FB710 + .align 2, 0 +_080FB680: .4byte gUnknown_020388CC +_080FB684: + ldr r2, _080FB690 + ldr r1, [r2] + movs r0, 0x2E + strh r0, [r1, 0x14] + b _080FB710 + .align 2, 0 +_080FB690: .4byte gUnknown_020388CC +_080FB694: + mov r0, sp + ldrb r0, [r0] + ldrb r1, [r4] + bl get_mapheader_by_bank_and_number + ldr r1, _080FB750 + mov r9, r1 + ldr r2, [r1] + ldrb r1, [r0, 0x14] + strh r1, [r2, 0x14] + ldr r6, [r0] + ldr r1, _080FB754 + ldrh r0, [r2, 0x14] + lsls r0, 3 + adds r5, r0, r1 + ldrb r4, [r5, 0x2] + ldr r0, [r6] + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + bne _080FB6C6 + movs r1, 0x1 +_080FB6C6: + mov r2, r10 + movs r3, 0 + ldrsh r0, [r2, r3] + bl __divsi3 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r8, r4 + bcc _080FB6E2 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 +_080FB6E2: + ldrb r4, [r5, 0x3] + ldr r0, [r6, 0x4] + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + bne _080FB6F6 + movs r1, 0x1 +_080FB6F6: + mov r2, sp + movs r3, 0x4 + ldrsh r0, [r2, r3] + bl __divsi3 + lsls r0, 16 + lsrs r7, r0, 16 + mov r2, r9 + cmp r7, r4 + bcc _080FB710 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 +_080FB710: + ldr r0, [r2] + adds r0, 0x7F + movs r1, 0 + strb r1, [r0] + ldr r2, [r2] + ldr r3, _080FB754 + ldrh r0, [r2, 0x14] + lsls r0, 3 + adds r0, r3 + ldrb r0, [r0] + add r0, r8 + adds r0, 0x1 + adds r1, r2, 0 + adds r1, 0x54 + strh r0, [r1] + ldrh r0, [r2, 0x14] + lsls r0, 3 + adds r0, r3 + ldrb r0, [r0, 0x1] + adds r0, r7, r0 + adds r0, 0x2 + adds r2, 0x56 + strh r0, [r2] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FB750: .4byte gUnknown_020388CC +_080FB754: .4byte gRegionMapLocations + thumb_func_end sub_80FB600 + + thumb_func_start sub_80FB758 +sub_80FB758: @ 80FB758 + push {lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x58 + bls _080FB764 + b _080FB9A0 +_080FB764: + lsls r0, 2 + ldr r1, _080FB770 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FB770: .4byte _080FB774 + .align 2, 0 +_080FB774: + .4byte _080FB8DC + .4byte _080FB8E4 + .4byte _080FB8EA + .4byte _080FB8F4 + .4byte _080FB8FC + .4byte _080FB904 + .4byte _080FB90C + .4byte _080FB914 + .4byte _080FB91C + .4byte _080FB924 + .4byte _080FB92C + .4byte _080FB934 + .4byte _080FB93C + .4byte _080FB944 + .4byte _080FB94C + .4byte _080FB954 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB96C + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB988 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB8D8 +_080FB8D8: + movs r0, 0 + b _080FB9A2 +_080FB8DC: + ldr r0, _080FB8E0 + b _080FB956 + .align 2, 0 +_080FB8E0: .4byte 0x0000080f +_080FB8E4: + movs r0, 0x81 + lsls r0, 4 + b _080FB956 +_080FB8EA: + ldr r0, _080FB8F0 + b _080FB956 + .align 2, 0 +_080FB8F0: .4byte 0x00000811 +_080FB8F4: + ldr r0, _080FB8F8 + b _080FB956 + .align 2, 0 +_080FB8F8: .4byte 0x00000812 +_080FB8FC: + ldr r0, _080FB900 + b _080FB956 + .align 2, 0 +_080FB900: .4byte 0x00000813 +_080FB904: + ldr r0, _080FB908 + b _080FB956 + .align 2, 0 +_080FB908: .4byte 0x00000814 +_080FB90C: + ldr r0, _080FB910 + b _080FB956 + .align 2, 0 +_080FB910: .4byte 0x00000815 +_080FB914: + ldr r0, _080FB918 + b _080FB956 + .align 2, 0 +_080FB918: .4byte 0x00000816 +_080FB91C: + ldr r0, _080FB920 + b _080FB956 + .align 2, 0 +_080FB920: .4byte 0x00000817 +_080FB924: + ldr r0, _080FB928 + b _080FB956 + .align 2, 0 +_080FB928: .4byte 0x00000818 +_080FB92C: + ldr r0, _080FB930 + b _080FB956 + .align 2, 0 +_080FB930: .4byte 0x00000819 +_080FB934: + ldr r0, _080FB938 + b _080FB956 + .align 2, 0 +_080FB938: .4byte 0x0000081a +_080FB93C: + ldr r0, _080FB940 + b _080FB956 + .align 2, 0 +_080FB940: .4byte 0x0000081b +_080FB944: + ldr r0, _080FB948 + b _080FB956 + .align 2, 0 +_080FB948: .4byte 0x0000081c +_080FB94C: + ldr r0, _080FB950 + b _080FB956 + .align 2, 0 +_080FB950: .4byte 0x0000081d +_080FB954: + ldr r0, _080FB968 +_080FB956: + bl FlagGet + lsls r0, 24 + movs r1, 0x3 + cmp r0, 0 + beq _080FB964 + movs r1, 0x2 +_080FB964: + adds r0, r1, 0 + b _080FB9A2 + .align 2, 0 +_080FB968: .4byte 0x0000081e +_080FB96C: + ldr r0, _080FB984 + bl FlagGet + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + negs r0, r1 + orrs r0, r1 + asrs r0, 31 + movs r1, 0x4 + ands r0, r1 + b _080FB9A2 + .align 2, 0 +_080FB984: .4byte 0x00000848 +_080FB988: + ldr r0, _080FB99C + bl FlagGet + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + b _080FB9A2 + .align 2, 0 +_080FB99C: .4byte 0x00000849 +_080FB9A0: + movs r0, 0x1 +_080FB9A2: + pop {r1} + bx r1 + thumb_func_end sub_80FB758 + + thumb_func_start sub_80FB9A8 +sub_80FB9A8: @ 80FB9A8 + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r1, 16 + bl sub_80FB2EC + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80FB9A8 + + thumb_func_start sub_80FB9C0 +sub_80FB9C0: @ 80FB9C0 + push {r4-r6,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r0, _080FB9E8 + ldrh r1, [r0] + adds r4, r0, 0 + cmp r1, 0x58 + beq _080FB9FC + adds r5, r4, 0 + adds r6, r4, 0x2 +_080FB9D6: + lsls r1, r2, 2 + adds r0, r1, r5 + ldrh r0, [r0] + cmp r0, r3 + bne _080FB9EC + adds r0, r1, r6 + ldrh r0, [r0] + b _080FB9FE + .align 2, 0 +_080FB9E8: .4byte gUnknown_083E7684 +_080FB9EC: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + lsls r0, r2, 2 + adds r0, r4 + ldrh r0, [r0] + cmp r0, 0x58 + bne _080FB9D6 +_080FB9FC: + adds r0, r3, 0 +_080FB9FE: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80FB9C0 + + thumb_func_start sub_80FBA04 +sub_80FBA04: @ 80FBA04 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl sub_80FB9C0 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80FBA04 + + thumb_func_start sub_80FBA18 +sub_80FBA18: @ 80FBA18 + push {r4-r6,lr} + ldr r0, _080FBA2C + ldr r1, [r0] + ldrh r0, [r1, 0x14] + cmp r0, 0x58 + bne _080FBA30 + movs r0, 0 + strb r0, [r1, 0x17] + b _080FBA96 + .align 2, 0 +_080FBA2C: .4byte gUnknown_020388CC +_080FBA30: + adds r0, r1, 0 + adds r0, 0x78 + ldrb r0, [r0] + cmp r0, 0 + bne _080FBA40 + adds r0, r1, 0 + adds r0, 0x54 + b _080FBA44 +_080FBA40: + adds r0, r1, 0 + adds r0, 0x64 +_080FBA44: + ldrh r4, [r0] + adds r0, 0x2 + ldrh r5, [r0] + movs r6, 0 + b _080FBA70 +_080FBA4E: + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80FB2EC + ldr r1, _080FBA8C + ldr r1, [r1] + lsls r0, 16 + lsrs r0, 16 + ldrh r1, [r1, 0x14] + cmp r0, r1 + bne _080FBA70 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080FBA70: + cmp r4, 0x1 + bhi _080FBA4E + adds r0, r5, 0 + bl sub_80FBAA0 + lsls r0, 24 + cmp r0, 0 + beq _080FBA90 + subs r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + movs r4, 0x1D + b _080FBA70 + .align 2, 0 +_080FBA8C: .4byte gUnknown_020388CC +_080FBA90: + ldr r0, _080FBA9C + ldr r0, [r0] + strb r6, [r0, 0x17] +_080FBA96: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080FBA9C: .4byte gUnknown_020388CC + thumb_func_end sub_80FBA18 + + thumb_func_start sub_80FBAA0 +sub_80FBAA0: @ 80FBAA0 + push {r4,r5,lr} + lsls r0, 16 + ldr r1, _080FBAB4 + adds r0, r1 + lsrs r5, r0, 16 + ldr r0, _080FBAB8 + cmp r5, r0 + bne _080FBAC0 + b _080FBAE2 + .align 2, 0 +_080FBAB4: .4byte 0xffff0000 +_080FBAB8: .4byte 0x0000ffff +_080FBABC: + movs r0, 0x1 + b _080FBAE4 +_080FBAC0: + movs r4, 0x1 +_080FBAC2: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80FB2EC + ldr r1, _080FBAEC + ldr r1, [r1] + lsls r0, 16 + lsrs r0, 16 + ldrh r1, [r1, 0x14] + cmp r0, r1 + beq _080FBABC + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1C + bls _080FBAC2 +_080FBAE2: + movs r0, 0 +_080FBAE4: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080FBAEC: .4byte gUnknown_020388CC + thumb_func_end sub_80FBAA0 + + thumb_func_start sub_80FBAF0 +sub_80FBAF0: @ 80FBAF0 + push {r4,lr} + adds r2, r0, 0 + ldr r0, _080FBB34 + ldr r1, [r0] + adds r3, r1, 0 + adds r3, 0x7A + movs r0, 0 + ldrsb r0, [r3, r0] + cmp r0, 0 + beq _080FBB2E + adds r0, r1, 0 + adds r0, 0x7B + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 1 + ldrh r4, [r2, 0x20] + adds r0, r4 + strh r0, [r2, 0x20] + adds r0, r1, 0 + adds r0, 0x7C + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 1 + ldrh r1, [r2, 0x22] + adds r0, r1 + strh r0, [r2, 0x22] + ldrb r0, [r3] + subs r0, 0x1 + strb r0, [r3] +_080FBB2E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FBB34: .4byte gUnknown_020388CC + thumb_func_end sub_80FBAF0 + + thumb_func_start nullsub_66 +nullsub_66: @ 80FBB38 + bx lr + thumb_func_end nullsub_66 + + thumb_func_start sub_80FBB3C +sub_80FBB3C: @ 80FBB3C + push {r4-r7,lr} + sub sp, 0x28 + lsls r0, 16 + lsls r1, 16 + lsrs r6, r1, 16 + ldr r1, _080FBBAC + ldr r2, [r1, 0x4] + ldr r1, [r1] + str r1, [sp, 0x20] + str r2, [sp, 0x24] + mov r2, sp + ldr r1, _080FBBB0 + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + lsrs r3, r0, 16 + add r2, sp, 0x18 + ldrh r1, [r2, 0x4] + orrs r1, r0 + str r1, [r2, 0x4] + mov r0, sp + strh r3, [r0] + ldr r0, _080FBBB4 + ldr r4, [r0] + adds r0, r4, 0 + adds r0, 0x58 + strh r3, [r0] + ldr r5, _080FBBB8 + add r1, sp, 0x20 + ldr r0, [r1, 0x4] + ands r0, r5 + orrs r0, r6 + str r0, [r1, 0x4] + mov r0, sp + strh r6, [r0, 0x2] + adds r3, r4, 0 + adds r0, r3, 0 + adds r0, 0x5A + strh r6, [r0] + adds r0, 0x1E + ldrb r0, [r0] + adds r7, r1, 0 + cmp r0, 0 + bne _080FBBC0 + movs r1, 0xC0 + lsls r1, 1 + adds r0, r3, r1 + str r0, [sp, 0x18] + ldr r0, [r2, 0x4] + ands r0, r5 + subs r1, 0x80 + orrs r0, r1 + str r0, [r2, 0x4] + ldr r0, _080FBBBC + b _080FBBD6 + .align 2, 0 +_080FBBAC: .4byte gUnknown_083E76E8 +_080FBBB0: .4byte gSpriteTemplate_83E76F0 +_080FBBB4: .4byte gUnknown_020388CC +_080FBBB8: .4byte 0xffff0000 +_080FBBBC: .4byte sub_80FBAF0 +_080FBBC0: + movs r3, 0xA0 + lsls r3, 2 + adds r0, r4, r3 + str r0, [sp, 0x18] + ldr r0, [r2, 0x4] + ands r0, r5 + movs r1, 0xC0 + lsls r1, 3 + orrs r0, r1 + str r0, [r2, 0x4] + ldr r0, _080FBC38 +_080FBBD6: + str r0, [sp, 0x14] + adds r0, r2, 0 + bl LoadSpriteSheet + adds r0, r7, 0 + bl LoadSpritePalette + mov r0, sp + movs r1, 0x38 + movs r2, 0x48 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080FBC90 + ldr r4, _080FBC3C + ldr r2, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080FBC40 + adds r3, r0, r1 + str r3, [r2, 0x1C] + adds r2, 0x78 + ldrb r0, [r2] + cmp r0, 0x1 + bne _080FBC44 + ldrb r1, [r3, 0x3] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r3, 0x3] + ldr r2, [r4] + ldr r1, [r2, 0x1C] + ldrh r0, [r1, 0x20] + subs r0, 0x8 + strh r0, [r1, 0x20] + ldr r1, [r2, 0x1C] + ldrh r0, [r1, 0x22] + subs r0, 0x8 + strh r0, [r1, 0x22] + ldr r0, [r2, 0x1C] + movs r1, 0x1 + bl StartSpriteAnim + b _080FBC6C + .align 2, 0 +_080FBC38: .4byte nullsub_66 +_080FBC3C: .4byte gUnknown_020388CC +_080FBC40: .4byte gSprites +_080FBC44: + ldrb r1, [r3, 0x3] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r3, 0x3] + ldr r1, [r4] + ldr r2, [r1, 0x1C] + adds r0, r1, 0 + adds r0, 0x54 + ldrh r0, [r0] + lsls r0, 3 + adds r0, 0x4 + strh r0, [r2, 0x20] + ldr r2, [r1, 0x1C] + adds r1, 0x56 + ldrh r0, [r1] + lsls r0, 3 + adds r0, 0x4 + strh r0, [r2, 0x22] +_080FBC6C: + ldr r4, _080FBC98 + ldr r0, [r4] + ldr r1, [r0, 0x1C] + movs r0, 0x2 + strh r0, [r1, 0x30] + adds r0, r6, 0 + bl IndexOfSpritePaletteTag + ldr r1, [r4] + ldr r2, [r1, 0x1C] + lsls r0, 24 + lsrs r0, 20 + ldr r4, _080FBC9C + adds r0, r4 + strh r0, [r2, 0x32] + ldr r1, [r1, 0x1C] + movs r0, 0x1 + strh r0, [r1, 0x34] +_080FBC90: + add sp, 0x28 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FBC98: .4byte gUnknown_020388CC +_080FBC9C: .4byte 0x00000101 + thumb_func_end sub_80FBB3C + + thumb_func_start sub_80FBCA0 +sub_80FBCA0: @ 80FBCA0 + push {r4,lr} + ldr r4, _080FBCCC + ldr r0, [r4] + ldr r0, [r0, 0x1C] + cmp r0, 0 + beq _080FBCC4 + bl DestroySprite + ldr r0, [r4] + adds r0, 0x58 + ldrh r0, [r0] + bl FreeSpriteTilesByTag + ldr r0, [r4] + adds r0, 0x5A + ldrh r0, [r0] + bl FreeSpritePaletteByTag +_080FBCC4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FBCCC: .4byte gUnknown_020388CC + thumb_func_end sub_80FBCA0 + + thumb_func_start unref_sub_80FBCD0 +unref_sub_80FBCD0: @ 80FBCD0 + ldr r0, _080FBCDC + ldr r0, [r0] + ldr r1, [r0, 0x1C] + movs r0, 0x1 + strh r0, [r1, 0x34] + bx lr + .align 2, 0 +_080FBCDC: .4byte gUnknown_020388CC + thumb_func_end unref_sub_80FBCD0 + + thumb_func_start unref_sub_80FBCE0 +unref_sub_80FBCE0: @ 80FBCE0 + ldr r0, _080FBCEC + ldr r0, [r0] + ldr r1, [r0, 0x1C] + movs r0, 0 + strh r0, [r1, 0x34] + bx lr + .align 2, 0 +_080FBCEC: .4byte gUnknown_020388CC + thumb_func_end unref_sub_80FBCE0 + + thumb_func_start sub_80FBCF0 +sub_80FBCF0: @ 80FBCF0 + push {r4,r5,lr} + sub sp, 0x28 + lsls r0, 16 + lsls r1, 16 + lsrs r1, 16 + ldr r2, _080FBD98 + str r2, [sp, 0x18] + movs r2, 0x80 + add r5, sp, 0x18 + lsrs r3, r0, 16 + orrs r0, r2 + str r0, [r5, 0x4] + ldr r0, _080FBD9C + str r0, [sp, 0x20] + ldr r2, _080FBDA0 + add r4, sp, 0x20 + ldr r0, [r4, 0x4] + ands r0, r2 + orrs r0, r1 + str r0, [r4, 0x4] + mov r0, sp + movs r2, 0 + strh r3, [r0] + strh r1, [r0, 0x2] + ldr r0, _080FBDA4 + str r0, [sp, 0x4] + ldr r0, _080FBDA8 + str r0, [sp, 0x8] + str r2, [sp, 0xC] + ldr r0, _080FBDAC + str r0, [sp, 0x10] + ldr r0, _080FBDB0 + str r0, [sp, 0x14] + ldr r0, _080FBDB4 + ldrb r0, [r0, 0x8] + cmp r0, 0x1 + bne _080FBD42 + ldr r0, _080FBDB8 + str r0, [sp, 0x18] + ldr r0, _080FBDBC + str r0, [sp, 0x20] +_080FBD42: + adds r0, r5, 0 + bl LoadSpriteSheet + adds r0, r4, 0 + bl LoadSpritePalette + mov r0, sp + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080FBDC0 + ldr r2, [r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _080FBDC4 + adds r1, r0 + str r1, [r2, 0x20] + adds r0, r2, 0 + adds r0, 0x78 + ldrb r0, [r0] + cmp r0, 0 + bne _080FBDCC + adds r0, r2, 0 + adds r0, 0x74 + ldrh r0, [r0] + lsls r0, 3 + adds r0, 0x4 + strh r0, [r1, 0x20] + ldr r1, [r2, 0x20] + adds r0, r2, 0 + adds r0, 0x76 + ldrh r0, [r0] + lsls r0, 3 + adds r0, 0x4 + strh r0, [r1, 0x22] + ldr r1, [r2, 0x20] + ldr r0, _080FBDC8 + b _080FBDEA + .align 2, 0 +_080FBD98: .4byte gUnknown_083E5C40 +_080FBD9C: .4byte gUnknown_083E5C20 +_080FBDA0: .4byte 0xffff0000 +_080FBDA4: .4byte gUnknown_083E7708 +_080FBDA8: .4byte gUnknown_083E7718 +_080FBDAC: .4byte gDummySpriteAffineAnimTable +_080FBDB0: .4byte SpriteCallbackDummy +_080FBDB4: .4byte gSaveBlock2 +_080FBDB8: .4byte gUnknown_083E5CE0 +_080FBDBC: .4byte gUnknown_083E5CC0 +_080FBDC0: .4byte gUnknown_020388CC +_080FBDC4: .4byte gSprites +_080FBDC8: .4byte sub_80FBF34 +_080FBDCC: + adds r0, r2, 0 + adds r0, 0x74 + ldrh r0, [r0] + lsls r0, 4 + subs r0, 0x30 + strh r0, [r1, 0x20] + ldr r1, [r2, 0x20] + adds r0, r2, 0 + adds r0, 0x76 + ldrh r0, [r0] + lsls r0, 4 + subs r0, 0x42 + strh r0, [r1, 0x22] + ldr r1, [r2, 0x20] + ldr r0, _080FBDF4 +_080FBDEA: + str r0, [r1, 0x1C] + add sp, 0x28 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FBDF4: .4byte sub_80FBEA4 + thumb_func_end sub_80FBCF0 + + thumb_func_start sub_80FBDF8 +sub_80FBDF8: @ 80FBDF8 + push {lr} + ldr r3, _080FBE1C + ldr r0, [r3] + ldr r2, [r0, 0x20] + cmp r2, 0 + beq _080FBE16 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r3] + ldr r1, [r0, 0x20] + ldr r0, _080FBE20 + str r0, [r1, 0x1C] +_080FBE16: + pop {r0} + bx r0 + .align 2, 0 +_080FBE1C: .4byte gUnknown_020388CC +_080FBE20: .4byte SpriteCallbackDummy + thumb_func_end sub_80FBDF8 + + thumb_func_start sub_80FBE24 +sub_80FBE24: @ 80FBE24 + push {lr} + ldr r0, _080FBE5C + ldr r3, [r0] + ldr r1, [r3, 0x20] + cmp r1, 0 + beq _080FBE9A + adds r0, r3, 0 + adds r0, 0x78 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080FBE64 + adds r0, r3, 0 + adds r0, 0x74 + ldrh r0, [r0] + lsls r0, 4 + subs r0, 0x30 + strh r0, [r1, 0x20] + ldr r1, [r3, 0x20] + adds r0, r3, 0 + adds r0, 0x76 + ldrh r0, [r0] + lsls r0, 4 + subs r0, 0x42 + strh r0, [r1, 0x22] + ldr r1, [r3, 0x20] + ldr r0, _080FBE60 + b _080FBE8C + .align 2, 0 +_080FBE5C: .4byte gUnknown_020388CC +_080FBE60: .4byte sub_80FBEA4 +_080FBE64: + adds r0, r3, 0 + adds r0, 0x74 + ldrh r0, [r0] + lsls r0, 3 + adds r0, 0x4 + movs r2, 0 + strh r0, [r1, 0x20] + ldr r1, [r3, 0x20] + adds r0, r3, 0 + adds r0, 0x76 + ldrh r0, [r0] + lsls r0, 3 + adds r0, 0x4 + strh r0, [r1, 0x22] + ldr r0, [r3, 0x20] + strh r2, [r0, 0x24] + ldr r0, [r3, 0x20] + strh r2, [r0, 0x26] + ldr r1, [r3, 0x20] + ldr r0, _080FBEA0 +_080FBE8C: + str r0, [r1, 0x1C] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_080FBE9A: + pop {r0} + bx r0 + .align 2, 0 +_080FBEA0: .4byte sub_80FBF34 + thumb_func_end sub_80FBE24 + + thumb_func_start sub_80FBEA4 +sub_80FBEA4: @ 80FBEA4 + push {r4,lr} + adds r3, r0, 0 + ldr r0, _080FBF08 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x5C + movs r4, 0 + ldrsh r2, [r0, r4] + lsls r2, 1 + negs r2, r2 + strh r2, [r3, 0x24] + adds r1, 0x5E + movs r4, 0 + ldrsh r0, [r1, r4] + lsls r0, 1 + negs r0, r0 + strh r0, [r3, 0x26] + ldrh r1, [r3, 0x22] + adds r1, r0 + adds r0, r3, 0 + adds r0, 0x29 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, r1 + strh r0, [r3, 0x2E] + ldrh r1, [r3, 0x20] + adds r1, r2 + adds r2, r3, 0 + adds r2, 0x28 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + adds r2, r1 + strh r2, [r3, 0x30] + adds r0, 0x8 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB0 + bhi _080FBF04 + lsls r0, r2, 16 + asrs r2, r0, 16 + movs r0, 0x8 + negs r0, r0 + cmp r2, r0 + blt _080FBF04 + cmp r2, 0xF8 + ble _080FBF0C +_080FBF04: + movs r0, 0 + b _080FBF0E + .align 2, 0 +_080FBF08: .4byte gUnknown_020388CC +_080FBF0C: + movs r0, 0x1 +_080FBF0E: + strh r0, [r3, 0x32] + movs r1, 0x32 + ldrsh r0, [r3, r1] + cmp r0, 0x1 + bne _080FBF20 + adds r0, r3, 0 + bl sub_80FBF40 + b _080FBF2C +_080FBF20: + adds r0, r3, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080FBF2C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80FBEA4 + + thumb_func_start sub_80FBF34 +sub_80FBF34: @ 80FBF34 + push {lr} + bl sub_80FBF40 + pop {r0} + bx r0 + thumb_func_end sub_80FBF34 + + thumb_func_start sub_80FBF40 +sub_80FBF40: @ 80FBF40 + push {lr} + adds r2, r0, 0 + ldr r0, _080FBF80 + ldr r0, [r0] + adds r0, 0x7E + ldrb r0, [r0] + cmp r0, 0 + beq _080FBF84 + ldrh r0, [r2, 0x3C] + adds r0, 0x1 + strh r0, [r2, 0x3C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080FBF90 + movs r0, 0 + strh r0, [r2, 0x3C] + adds r3, r2, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080FBF90 + .align 2, 0 +_080FBF80: .4byte gUnknown_020388CC +_080FBF84: + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080FBF90: + pop {r0} + bx r0 + thumb_func_end sub_80FBF40 + + thumb_func_start sub_80FBF94 +sub_80FBF94: @ 80FBF94 + push {lr} + ldr r0, _080FBFB0 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x7F + ldrb r0, [r0] + cmp r0, 0 + beq _080FBFAA + adds r1, 0x7E + movs r0, 0x1 + strb r0, [r1] +_080FBFAA: + pop {r0} + bx r0 + .align 2, 0 +_080FBFB0: .4byte gUnknown_020388CC + thumb_func_end sub_80FBF94 + + thumb_func_start sub_80FBFB4 +sub_80FBFB4: @ 80FBFB4 + push {lr} + adds r3, r0, 0 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + cmp r1, 0x56 + bne _080FBFCA + bl GetSecretBaseMapName + b _080FBFF2 +_080FBFCA: + cmp r1, 0x57 + bhi _080FBFE4 + ldr r0, _080FBFE0 + lsls r1, 3 + adds r0, 0x4 + adds r1, r0 + ldr r1, [r1] + adds r0, r3, 0 + bl StringCopy + b _080FBFF2 + .align 2, 0 +_080FBFE0: .4byte gRegionMapLocations +_080FBFE4: + cmp r2, 0 + bne _080FBFEA + movs r2, 0x12 +_080FBFEA: + adds r0, r3, 0 + movs r1, 0 + bl StringFill +_080FBFF2: + pop {r1} + bx r1 + thumb_func_end sub_80FBFB4 + + thumb_func_start sub_80FBFF8 +sub_80FBFF8: @ 80FBFF8 + push {lr} + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0x56 + beq _080FC014 + cmp r1, 0x57 + bne _080FC020 + ldr r1, _080FC010 + bl StringCopy + b _080FC026 + .align 2, 0 +_080FC010: .4byte gOtherText_Ferry +_080FC014: + ldr r1, _080FC01C + bl StringCopy + b _080FC026 + .align 2, 0 +_080FC01C: .4byte gOtherText_SecretBase +_080FC020: + movs r2, 0 + bl sub_80FBFB4 +_080FC026: + pop {r1} + bx r1 + thumb_func_end sub_80FBFF8 + + thumb_func_start sub_80FC02C +sub_80FC02C: @ 80FC02C + push {lr} + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0x42 + beq _080FC03C + bl sub_80FBFF8 + b _080FC042 +_080FC03C: + ldr r1, _080FC048 + bl StringCopy +_080FC042: + pop {r1} + bx r1 + .align 2, 0 +_080FC048: .4byte gOtherText_Hideout + thumb_func_end sub_80FC02C + + thumb_func_start sub_80FC04C +sub_80FC04C: @ 80FC04C + push {r4,r5,lr} + ldr r5, [sp, 0xC] + lsls r0, 16 + ldr r4, _080FC070 + lsrs r0, 13 + adds r0, r4 + ldrb r4, [r0] + strh r4, [r1] + ldrb r1, [r0, 0x1] + strh r1, [r2] + ldrb r1, [r0, 0x2] + strh r1, [r3] + ldrb r0, [r0, 0x3] + strh r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FC070: .4byte gRegionMapLocations + thumb_func_end sub_80FC04C + + thumb_func_start sub_80FC074 +sub_80FC074: @ 80FC074 + push {r4,lr} + ldr r0, _080FC090 + ldr r1, _080FC094 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x9 + bls _080FC084 + b _080FC1F2 +_080FC084: + lsls r0, 2 + ldr r1, _080FC098 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FC090: .4byte gMain +_080FC094: .4byte 0x0000043c +_080FC098: .4byte _080FC09C + .align 2, 0 +_080FC09C: + .4byte _080FC0C4 + .4byte _080FC104 + .4byte _080FC110 + .4byte _080FC120 + .4byte _080FC15C + .4byte _080FC170 + .4byte _080FC184 + .4byte _080FC1A4 + .4byte _080FC1AA + .4byte _080FC1C4 +_080FC0C4: + movs r0, 0 + bl SetVBlankCallback + movs r0, 0x80 + lsls r0, 19 + movs r1, 0 + strh r1, [r0] + adds r0, 0x10 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl ResetPaletteFade + bl ResetSpriteData + bl FreeSpriteTileRanges + bl FreeAllSpritePalettes + b _080FC1E6 +_080FC104: + ldr r0, _080FC10C + bl SetUpWindowConfig + b _080FC1E6 + .align 2, 0 +_080FC10C: .4byte gWindowConfig_81E7224 +_080FC110: + ldr r0, _080FC11C + bl InitMenuWindow + bl MenuZeroFillScreen + b _080FC1E6 + .align 2, 0 +_080FC11C: .4byte gWindowConfig_81E7224 +_080FC120: + ldr r4, _080FC158 + adds r0, r4, 0 + movs r1, 0 + bl sub_80FA8EC + movs r0, 0 + movs r1, 0 + bl sub_80FBB3C + movs r0, 0x1 + movs r1, 0x1 + bl sub_80FBCF0 + adds r1, r4, 0 + subs r1, 0x8 + ldrh r0, [r1, 0x1C] + strh r0, [r1, 0x6] + movs r2, 0xA4 + lsls r2, 4 + adds r4, r2 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0xC + bl StringFill + bl sub_80FC254 + b _080FC1E6 + .align 2, 0 +_080FC158: .4byte 0x02000008 +_080FC15C: + ldr r0, _080FC168 + ldr r1, _080FC16C + bl LZ77UnCompVram + b _080FC1E6 + .align 2, 0 +_080FC168: .4byte gUnknown_083E773C +_080FC16C: .4byte 0x0600c000 +_080FC170: + ldr r0, _080FC17C + ldr r1, _080FC180 + bl LZ77UnCompVram + b _080FC1E6 + .align 2, 0 +_080FC17C: .4byte gUnknown_083E7774 +_080FC180: .4byte 0x0600f000 +_080FC184: + ldr r0, _080FC19C + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080FC1A0 + movs r1, 0x1 + movs r2, 0x90 + movs r3, 0x1 + bl sub_80729D8 + b _080FC1E6 + .align 2, 0 +_080FC19C: .4byte gUnknown_083E771C +_080FC1A0: .4byte gOtherText_FlyToWhere +_080FC1A4: + bl sub_80FC31C + b _080FC1E6 +_080FC1AA: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldr r0, _080FC1C0 + bl SetVBlankCallback + b _080FC1E6 + .align 2, 0 +_080FC1C0: .4byte sub_80FC214 +_080FC1C4: + ldr r1, _080FC1F8 + movs r0, 0 + strh r0, [r1] + subs r1, 0x46 + ldr r2, _080FC1FC + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xA + ldr r2, _080FC200 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080FC204 + bl sub_80FC244 + ldr r0, _080FC208 + bl SetMainCallback2 +_080FC1E6: + ldr r1, _080FC20C + ldr r0, _080FC210 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080FC1F2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FC1F8: .4byte REG_BLDCNT +_080FC1FC: .4byte 0x00001e0d +_080FC200: .4byte 0x00001741 +_080FC204: .4byte sub_80FC5B4 +_080FC208: .4byte sub_80FC228 +_080FC20C: .4byte gMain +_080FC210: .4byte 0x0000043c + thumb_func_end sub_80FC074 + + thumb_func_start sub_80FC214 +sub_80FC214: @ 80FC214 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_80FC214 + + thumb_func_start sub_80FC228 +sub_80FC228: @ 80FC228 + push {lr} + ldr r0, _080FC240 + ldr r0, [r0] + bl _call_via_r0 + bl AnimateSprites + bl BuildOamBuffer + pop {r0} + bx r0 + .align 2, 0 +_080FC240: .4byte 0x02000000 + thumb_func_end sub_80FC228 + + thumb_func_start sub_80FC244 +sub_80FC244: @ 80FC244 + ldr r1, _080FC250 + str r0, [r1] + movs r0, 0 + strh r0, [r1, 0x4] + bx lr + .align 2, 0 +_080FC250: .4byte 0x02000000 + thumb_func_end sub_80FC244 + + thumb_func_start sub_80FC254 +sub_80FC254: @ 80FC254 + push {r4,r5,lr} + ldr r4, _080FC2AC + ldrb r0, [r4, 0x1E] + cmp r0, 0x2 + beq _080FC262 + cmp r0, 0x4 + bne _080FC2EC +_080FC262: + movs r1, 0 + ldr r2, _080FC2B0 + adds r5, r4, 0 +_080FC268: + lsls r0, r1, 3 + adds r4, r0, r2 + ldrh r0, [r5, 0x1C] + ldrh r3, [r4, 0x4] + cmp r0, r3 + bne _080FC2B4 + ldrh r0, [r4, 0x6] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080FC2BE + movs r0, 0x10 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + adds r0, r5, 0 + adds r0, 0x8 + movs r1, 0x11 + movs r2, 0xF + bl MenuPrint + ldrb r0, [r5, 0x1F] + ldr r1, [r4] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1D + movs r2, 0x11 + bl sub_8072B4C + b _080FC310 + .align 2, 0 +_080FC2AC: .4byte 0x02000000 +_080FC2B0: .4byte gUnknown_083E79C0 +_080FC2B4: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _080FC268 +_080FC2BE: + movs r0, 0 + cmp r0, 0 + bne _080FC310 + movs r0, 0x10 + movs r1, 0x10 + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _080FC2E8 + movs r1, 0x11 + movs r2, 0x11 + bl MenuPrint + movs r0, 0x10 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0xF + bl MenuZeroFillWindowRect + b _080FC310 + .align 2, 0 +_080FC2E8: .4byte 0x02000008 +_080FC2EC: + movs r0, 0x10 + movs r1, 0x10 + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r1, _080FC318 + adds r0, r4, r1 + movs r1, 0x11 + movs r2, 0x11 + bl MenuPrint + movs r0, 0x10 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0xF + bl MenuZeroFillWindowRect +_080FC310: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FC318: .4byte 0x00000a48 + thumb_func_end sub_80FC254 + + thumb_func_start sub_80FC31C +sub_80FC31C: @ 80FC31C + push {r4,lr} + sub sp, 0x8 + ldr r0, _080FC360 + ldr r4, _080FC364 + adds r1, r4, 0 + bl LZ77UnCompWram + str r4, [sp] + ldr r1, _080FC368 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xE0 + lsls r1, 1 + orrs r0, r1 + ldr r1, _080FC36C + ands r0, r1 + movs r1, 0x80 + lsls r1, 10 + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + ldr r0, _080FC370 + bl LoadSpritePalette + bl sub_80FC374 + bl sub_80FC484 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FC360: .4byte gUnknown_083E784C +_080FC364: .4byte 0x02000888 +_080FC368: .4byte 0xffff0000 +_080FC36C: .4byte 0x0000ffff +_080FC370: .4byte gUnknown_083E79CC + thumb_func_end sub_80FC31C + + thumb_func_start sub_80FC374 +sub_80FC374: @ 80FC374 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + ldr r0, _080FC3D4 + str r0, [sp, 0xC] + movs r1, 0 + mov r9, r1 + mov r2, sp + adds r2, 0x6 + str r2, [sp, 0x14] + mov r3, sp + adds r3, 0xA + str r3, [sp, 0x18] + mov r0, sp + adds r0, 0x8 + str r0, [sp, 0x10] + add r1, sp, 0x4 + mov r10, r1 +_080FC39E: + ldr r2, [sp, 0x18] + str r2, [sp] + mov r0, r9 + add r1, sp, 0x4 + mov r2, sp + adds r2, 0x6 + ldr r3, [sp, 0x10] + bl sub_80FC04C + mov r3, r10 + ldrh r0, [r3] + adds r0, 0x1 + lsls r0, 3 + adds r0, 0x4 + strh r0, [r3] + mov r1, sp + ldrh r0, [r1, 0x6] + adds r0, 0x2 + lsls r0, 3 + adds r0, 0x4 + strh r0, [r1, 0x6] + ldr r2, [sp, 0x10] + ldrh r0, [r2] + cmp r0, 0x2 + bne _080FC3D8 + movs r7, 0x1 + b _080FC3E4 + .align 2, 0 +_080FC3D4: .4byte 0x0000080f +_080FC3D8: + ldr r3, [sp, 0x18] + ldrh r0, [r3] + movs r7, 0 + cmp r0, 0x2 + bne _080FC3E4 + movs r7, 0x2 +_080FC3E4: + mov r0, r10 + movs r2, 0 + ldrsh r1, [r0, r2] + ldr r3, [sp, 0x14] + movs r0, 0 + ldrsh r2, [r3, r0] + ldr r0, _080FC430 + movs r3, 0xA + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x40 + beq _080FC458 + ldr r1, _080FC434 + mov r8, r1 + lsls r4, r5, 4 + adds r0, r4, r5 + lsls r6, r0, 2 + adds r2, r6, r1 + lsls r3, r7, 6 + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + orrs r0, r3 + strb r0, [r2, 0x1] + ldr r0, [sp, 0xC] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080FC43C + mov r0, r8 + adds r0, 0x1C + adds r0, r6, r0 + ldr r1, _080FC438 + str r1, [r0] + b _080FC442 + .align 2, 0 +_080FC430: .4byte gSpriteTemplate_83E7A38 +_080FC434: .4byte gSprites +_080FC438: .4byte sub_80FC55C +_080FC43C: + adds r0, r7, 0x3 + lsls r0, 16 + lsrs r7, r0, 16 +_080FC442: + adds r4, r5 + lsls r4, 2 + ldr r0, _080FC480 + adds r4, r0 + lsls r1, r7, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + mov r2, r9 + strh r2, [r4, 0x2E] +_080FC458: + ldr r0, [sp, 0xC] + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0xC] + mov r0, r9 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + cmp r0, 0xF + bls _080FC39E + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FC480: .4byte gSprites + thumb_func_end sub_80FC374 + + thumb_func_start sub_80FC484 +sub_80FC484: @ 80FC484 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + movs r0, 0 + mov r8, r0 + ldr r6, _080FC54C + ldrh r0, [r6, 0x2] + cmp r0, 0x58 + beq _080FC53C + mov r5, sp + adds r5, 0x6 + add r7, sp, 0x4 + ldr r1, _080FC550 + mov r9, r1 + movs r0, 0x1C + add r0, r9 + mov r10, r0 +_080FC4AC: + mov r1, r8 + lsls r4, r1, 2 + adds r0, r4, r6 + ldrh r0, [r0] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080FC524 + adds r0, r6, 0x2 + adds r0, r4, r0 + ldrh r6, [r0] + mov r0, sp + adds r0, 0xA + str r0, [sp] + adds r0, r6, 0 + add r1, sp, 0x4 + adds r2, r5, 0 + add r3, sp, 0x8 + bl sub_80FC04C + ldrh r0, [r7] + adds r0, 0x1 + lsls r0, 3 + strh r0, [r7] + ldrh r0, [r5] + adds r0, 0x2 + lsls r0, 3 + strh r0, [r5] + movs r0, 0 + ldrsh r1, [r7, r0] + movs r0, 0 + ldrsh r2, [r5, r0] + ldr r0, _080FC554 + movs r3, 0xA + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080FC524 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + mov r1, r9 + adds r4, r2, r1 + ldrb r1, [r4, 0x3] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r4, 0x3] + add r2, r10 + ldr r0, _080FC558 + str r0, [r2] + adds r0, r4, 0 + movs r1, 0x6 + bl StartSpriteAnim + strh r6, [r4, 0x2E] +_080FC524: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r6, _080FC54C + lsls r0, 2 + adds r1, r6, 0x2 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x58 + bne _080FC4AC +_080FC53C: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FC54C: .4byte gUnknown_083E79D4 +_080FC550: .4byte gSprites +_080FC554: .4byte gSpriteTemplate_83E7A38 +_080FC558: .4byte sub_80FC55C + thumb_func_end sub_80FC484 + + thumb_func_start sub_80FC55C +sub_80FC55C: @ 80FC55C + push {lr} + adds r2, r0, 0 + ldr r0, _080FC59C + ldrh r1, [r0, 0x1C] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r1, r0 + bne _080FC5A0 + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080FC5AE + movs r0, 0 + strh r0, [r2, 0x30] + adds r3, r2, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080FC5AE + .align 2, 0 +_080FC59C: .4byte 0x02000000 +_080FC5A0: + movs r0, 0x10 + strh r0, [r2, 0x30] + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x15 + ands r0, r1 + strb r0, [r2] +_080FC5AE: + pop {r0} + bx r0 + thumb_func_end sub_80FC55C + + thumb_func_start sub_80FC5B4 +sub_80FC5B4: @ 80FC5B4 + push {r4,lr} + sub sp, 0x4 + ldr r4, _080FC5C8 + ldrh r1, [r4, 0x4] + cmp r1, 0 + beq _080FC5CC + cmp r1, 0x1 + beq _080FC5E4 + b _080FC5F4 + .align 2, 0 +_080FC5C8: .4byte 0x02000000 +_080FC5CC: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x4] + adds r0, 0x1 + strh r0, [r4, 0x4] + b _080FC5F4 +_080FC5E4: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080FC5F4 + ldr r0, _080FC5FC + bl sub_80FC244 +_080FC5F4: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FC5FC: .4byte sub_80FC600 + thumb_func_end sub_80FC5B4 + + thumb_func_start sub_80FC600 +sub_80FC600: @ 80FC600 + push {r4,lr} + ldr r0, _080FC620 + ldrh r0, [r0, 0x4] + cmp r0, 0 + bne _080FC68A + bl sub_80FAB60 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bhi _080FC68A + lsls r0, 2 + ldr r1, _080FC624 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FC620: .4byte 0x02000000 +_080FC624: .4byte _080FC628 + .align 2, 0 +_080FC628: + .4byte _080FC68A + .4byte _080FC68A + .4byte _080FC68A + .4byte _080FC640 + .4byte _080FC646 + .4byte _080FC674 +_080FC640: + bl sub_80FC254 + b _080FC68A +_080FC646: + ldr r4, _080FC668 + ldrb r0, [r4, 0x1E] + cmp r0, 0x2 + beq _080FC652 + cmp r0, 0x4 + bne _080FC68A +_080FC652: + movs r0, 0x5 + bl m4aSongNumStart + ldr r1, _080FC66C + adds r0, r4, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r0, _080FC670 + bl sub_80FC244 + b _080FC68A + .align 2, 0 +_080FC668: .4byte 0x02000000 +_080FC66C: .4byte 0x00000a6e +_080FC670: .4byte sub_80FC69C +_080FC674: + movs r0, 0x5 + bl m4aSongNumStart + ldr r0, _080FC690 + ldr r1, _080FC694 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, _080FC698 + bl sub_80FC244 +_080FC68A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FC690: .4byte 0x02000000 +_080FC694: .4byte 0x00000a6e +_080FC698: .4byte sub_80FC69C + thumb_func_end sub_80FC600 + + thumb_func_start sub_80FC69C +sub_80FC69C: @ 80FC69C + push {r4,lr} + sub sp, 0x4 + ldr r4, _080FC6B0 + ldrh r1, [r4, 0x4] + cmp r1, 0 + beq _080FC6B4 + cmp r1, 0x1 + beq _080FC6CC + b _080FC792 + .align 2, 0 +_080FC6B0: .4byte 0x02000000 +_080FC6B4: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x4] + adds r0, 0x1 + strh r0, [r4, 0x4] + b _080FC792 +_080FC6CC: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080FC792 + bl sub_80FAB10 + ldr r1, _080FC6F4 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080FC78C + ldrh r0, [r4, 0x1C] + cmp r0, 0xF + beq _080FC724 + cmp r0, 0xF + bgt _080FC6F8 + cmp r0, 0 + beq _080FC710 + b _080FC748 + .align 2, 0 +_080FC6F4: .4byte 0x00000a6e +_080FC6F8: + cmp r0, 0x3A + beq _080FC708 + cmp r0, 0x49 + bne _080FC748 + movs r0, 0x16 + bl sub_8053538 + b _080FC786 +_080FC708: + movs r0, 0x15 + bl sub_8053538 + b _080FC786 +_080FC710: + ldr r0, _080FC720 + ldrb r0, [r0, 0x8] + movs r1, 0xD + cmp r0, 0 + bne _080FC73A + movs r1, 0xC + b _080FC73A + .align 2, 0 +_080FC720: .4byte gSaveBlock2 +_080FC724: + ldr r0, _080FC744 + bl FlagGet + lsls r0, 24 + movs r1, 0xB + cmp r0, 0 + beq _080FC73A + ldrb r0, [r4, 0x1F] + cmp r0, 0 + bne _080FC73A + movs r1, 0x14 +_080FC73A: + adds r0, r1, 0 + bl sub_8053538 + b _080FC786 + .align 2, 0 +_080FC744: .4byte 0x00000854 +_080FC748: + ldr r3, _080FC764 + ldr r0, _080FC768 + ldrh r1, [r0, 0x1C] + lsls r0, r1, 1 + adds r2, r0, r1 + adds r0, r3, 0x2 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080FC76C + bl sub_8053538 + b _080FC786 + .align 2, 0 +_080FC764: .4byte gUnknown_083E7920 +_080FC768: .4byte 0x02000000 +_080FC76C: + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + movs r2, 0x1 + negs r2, r2 + bl warp1_set_2 +_080FC786: + bl sub_80865BC + b _080FC792 +_080FC78C: + ldr r0, _080FC79C + bl SetMainCallback2 +_080FC792: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FC79C: .4byte sub_808AD58 + thumb_func_end sub_80FC69C + + thumb_func_start sub_80FC7A0 +sub_80FC7A0: @ 80FC7A0 + push {lr} + ldr r2, _080FC7E8 + ldr r1, [r0, 0x4] + str r1, [r2] + ldr r2, _080FC7EC + ldrb r1, [r0, 0x1F] + strb r1, [r2] + ldr r2, _080FC7F0 + ldrb r1, [r0, 0x19] + strb r1, [r2] + ldr r2, _080FC7F4 + ldrb r1, [r0, 0x1A] + strb r1, [r2] + ldr r2, _080FC7F8 + ldrb r1, [r0, 0x1B] + strb r1, [r2] + ldr r2, _080FC7FC + ldrb r1, [r0, 0x1C] + strb r1, [r2] + ldr r2, _080FC800 + ldrb r1, [r0, 0x1D] + strb r1, [r2] + ldr r2, _080FC804 + ldrb r1, [r0, 0x1E] + strb r1, [r2] + ldrb r0, [r0] + subs r0, 0x2 + cmp r0, 0x22 + bls _080FC7DC + b _080FC928 +_080FC7DC: + lsls r0, 2 + ldr r1, _080FC808 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FC7E8: .4byte gUnknown_03005DEC +_080FC7EC: .4byte gUnknown_03005E00 +_080FC7F0: .4byte gUnknown_03005DE8 +_080FC7F4: .4byte gUnknown_03005DFC +_080FC7F8: .4byte gUnknown_03005DF8 +_080FC7FC: .4byte gUnknown_03005DF0 +_080FC800: .4byte gUnknown_03005E04 +_080FC804: .4byte gUnknown_03005DF4 +_080FC808: .4byte _080FC80C + .align 2, 0 +_080FC80C: + .4byte _080FC898 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC8F8 + .4byte _080FC928 + .4byte _080FC89E + .4byte _080FC8A4 + .4byte _080FC8B8 + .4byte _080FC8CA + .4byte _080FC928 + .4byte _080FC8E0 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC8E6 + .4byte _080FC8C4 + .4byte _080FC8EC + .4byte _080FC8F2 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC904 +_080FC898: + bl sub_80FCAA4 + b _080FC928 +_080FC89E: + bl sub_80FCB5C + b _080FC928 +_080FC8A4: + bl sub_80FCD54 + ldr r0, _080FC8B4 + ldrb r0, [r0] + bl sub_80FCC18 + b _080FC928 + .align 2, 0 +_080FC8B4: .4byte gUnknown_03005E00 +_080FC8B8: + bl sub_80FCD54 + bl sub_80FCEA4 + bl sub_80FCCBC +_080FC8C4: + bl sub_80FCEA4 + b _080FC928 +_080FC8CA: + bl sub_80FCD54 + bl sub_80FD06C + bl sub_80FD06C + bl sub_80FD114 + bl sub_80FCCBC + b _080FC928 +_080FC8E0: + bl sub_80FCF3C + b _080FC928 +_080FC8E6: + bl sub_80FCD54 + b _080FC928 +_080FC8EC: + bl sub_80FD06C + b _080FC928 +_080FC8F2: + bl sub_80FD114 + b _080FC928 +_080FC8F8: + bl sub_80FCAC4 + movs r0, 0x3 + bl sub_80FC92C + b _080FC928 +_080FC904: + bl sub_80FCD54 + bl sub_80FD06C + bl sub_80FD114 + bl sub_80FCCBC + bl sub_80FCB5C + bl sub_80FCB5C + movs r0, 0x2 + bl sub_80FC92C + movs r0, 0x4 + bl sub_80FC9E4 +_080FC928: + pop {r0} + bx r0 + thumb_func_end sub_80FC7A0 + + thumb_func_start sub_80FC92C +sub_80FC92C: @ 80FC92C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r7, r0, 24 + movs r2, 0 + ldr r0, _080FC9CC + mov r8, r0 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FC9BE + ldr r1, _080FC9D0 + mov r12, r1 + ldr r3, _080FC9D4 + mov r10, r3 + ldr r0, _080FC9D8 + mov r9, r0 +_080FC952: + ldr r1, _080FC9DC + ldrb r0, [r1] + adds r0, r2 + mov r3, r10 + ldrb r1, [r3] + muls r0, r1 + lsls r0, 1 + ldr r3, _080FC9E0 + ldr r1, [r3] + adds r1, r0 + mov r3, r9 + ldrb r0, [r3] + lsls r0, 1 + adds r3, r1, r0 + movs r4, 0 + adds r5, r2, 0x1 + mov r0, r12 + ldrb r0, [r0] + cmp r4, r0 + bcs _080FC9B2 + movs r6, 0x80 + lsls r6, 8 +_080FC97E: + ldrh r1, [r3] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _080FC9A2 + movs r0, 0x1F + ands r0, r1 + adds r0, r7 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x1F + bls _080FC998 + movs r2, 0x1F +_080FC998: + lsls r0, r2, 10 + lsls r1, r2, 5 + orrs r0, r1 + orrs r0, r2 + strh r0, [r3] +_080FC9A2: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r3, 0x2 + mov r1, r12 + ldrb r1, [r1] + cmp r4, r1 + bcc _080FC97E +_080FC9B2: + lsls r0, r5, 24 + lsrs r2, r0, 24 + mov r3, r8 + ldrb r3, [r3] + cmp r2, r3 + bcc _080FC952 +_080FC9BE: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FC9CC: .4byte gUnknown_03005DF0 +_080FC9D0: .4byte gUnknown_03005DF8 +_080FC9D4: .4byte gUnknown_03005E04 +_080FC9D8: .4byte gUnknown_03005DE8 +_080FC9DC: .4byte gUnknown_03005DFC +_080FC9E0: .4byte gUnknown_03005DEC + thumb_func_end sub_80FC92C + + thumb_func_start sub_80FC9E4 +sub_80FC9E4: @ 80FC9E4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r2, 0 + ldr r0, _080FCA8C + ldrb r0, [r0] + cmp r2, r0 + bcs _080FCA7C + ldr r1, _080FCA90 + mov r10, r1 +_080FCA02: + ldr r3, _080FCA94 + ldrb r0, [r3] + adds r0, r2 + ldr r3, _080FCA98 + ldrb r1, [r3] + muls r0, r1 + lsls r0, 1 + ldr r3, _080FCA9C + ldr r1, [r3] + adds r1, r0 + ldr r3, _080FCAA0 + ldrb r0, [r3] + lsls r0, 1 + adds r3, r1, r0 + movs r5, 0 + adds r7, r2, 0x1 + mov r0, r10 + ldrb r0, [r0] + cmp r5, r0 + bcs _080FCA70 + movs r1, 0x80 + lsls r1, 8 + mov r9, r1 + movs r0, 0x1F + mov r12, r0 + mov r1, r8 + subs r6, r0, r1 +_080FCA38: + ldrh r1, [r3] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080FCA60 + movs r4, 0x1F + mov r2, r12 + ands r2, r1 + cmp r2, r6 + ble _080FCA56 + mov r1, r8 + lsrs r0, r1, 1 + subs r0, r4, r0 + lsls r0, 24 + lsrs r2, r0, 24 +_080FCA56: + lsls r0, r2, 10 + lsls r1, r2, 5 + orrs r0, r1 + orrs r0, r2 + strh r0, [r3] +_080FCA60: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r3, 0x2 + mov r0, r10 + ldrb r0, [r0] + cmp r5, r0 + bcc _080FCA38 +_080FCA70: + lsls r0, r7, 24 + lsrs r2, r0, 24 + ldr r1, _080FCA8C + ldrb r1, [r1] + cmp r2, r1 + bcc _080FCA02 +_080FCA7C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCA8C: .4byte gUnknown_03005DF0 +_080FCA90: .4byte gUnknown_03005DF8 +_080FCA94: .4byte gUnknown_03005DFC +_080FCA98: .4byte gUnknown_03005E04 +_080FCA9C: .4byte gUnknown_03005DEC +_080FCAA0: .4byte gUnknown_03005DE8 + thumb_func_end sub_80FC9E4 + + thumb_func_start sub_80FCAA4 +sub_80FCAA4: @ 80FCAA4 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _080FCAC0 +_080FCAAA: + lsls r0, r4, 16 + lsrs r0, 16 + bl sub_80FD1C8 + adds r4, 0x1 + cmp r4, r5 + bls _080FCAAA + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FCAC0: .4byte 0x00000c7f + thumb_func_end sub_80FCAA4 + + thumb_func_start sub_80FCAC4 +sub_80FCAC4: @ 80FCAC4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r2, 0 + ldr r0, _080FCB44 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FCB36 + ldr r0, _080FCB48 + mov r8, r0 + ldr r3, _080FCB4C +_080FCADC: + ldr r0, _080FCB50 + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FCB54 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r4, r8 + ldr r1, [r4] + adds r1, r0 + ldr r0, _080FCB58 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r5, 0 + adds r6, r2, 0x1 + ldrb r0, [r3] + cmp r5, r0 + bcs _080FCB2A + movs r0, 0x80 + lsls r0, 8 + adds r7, r0, 0 +_080FCB08: + ldrh r0, [r4] + ands r0, r7 + cmp r0, 0 + bne _080FCB1C + adds r0, r4, 0 + str r3, [sp] + bl sub_80FD39C + strh r0, [r4] + ldr r3, [sp] +_080FCB1C: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x2 + ldrb r0, [r3] + cmp r5, r0 + bcc _080FCB08 +_080FCB2A: + lsls r0, r6, 24 + lsrs r2, r0, 24 + ldr r0, _080FCB44 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FCADC +_080FCB36: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCB44: .4byte gUnknown_03005DF0 +_080FCB48: .4byte gUnknown_03005DEC +_080FCB4C: .4byte gUnknown_03005DF8 +_080FCB50: .4byte gUnknown_03005DFC +_080FCB54: .4byte gUnknown_03005E04 +_080FCB58: .4byte gUnknown_03005DE8 + thumb_func_end sub_80FCAC4 + + thumb_func_start sub_80FCB5C +sub_80FCB5C: @ 80FCB5C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r2, 0 + ldr r0, _080FCC00 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FCBF2 + ldr r0, _080FCC04 + mov r8, r0 + ldr r3, _080FCC08 +_080FCB74: + ldr r0, _080FCC0C + ldrb r1, [r0] + ldrb r0, [r3] + muls r0, r1 + lsls r0, 1 + mov r4, r8 + ldr r1, [r4] + adds r1, r0 + ldr r0, _080FCC10 + ldrb r0, [r0] + adds r0, r2 + lsls r0, 1 + adds r4, r1, r0 + ldrh r1, [r4] + mov r0, sp + strh r1, [r0] + movs r5, 0x1 + ldrb r0, [r3] + lsls r0, 1 + adds r4, r0 + ldr r0, _080FCC14 + ldrb r0, [r0] + subs r0, 0x1 + adds r7, r2, 0x1 + cmp r5, r0 + bge _080FCBE6 + ldr r6, _080FCC08 +_080FCBAA: + ldrh r0, [r4] + movs r2, 0x80 + lsls r2, 8 + adds r1, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080FCBD0 + ldrb r2, [r6] + lsls r2, 1 + adds r2, r4, r2 + mov r0, sp + adds r1, r4, 0 + str r3, [sp, 0x4] + bl sub_80FD68C + strh r0, [r4] + mov r1, sp + strh r0, [r1] + ldr r3, [sp, 0x4] +_080FCBD0: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r0, [r6] + lsls r0, 1 + adds r4, r0 + ldr r0, _080FCC14 + ldrb r0, [r0] + subs r0, 0x1 + cmp r5, r0 + blt _080FCBAA +_080FCBE6: + lsls r0, r7, 24 + lsrs r2, r0, 24 + ldr r0, _080FCC00 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FCB74 +_080FCBF2: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCC00: .4byte gUnknown_03005DF8 +_080FCC04: .4byte gUnknown_03005DEC +_080FCC08: .4byte gUnknown_03005E04 +_080FCC0C: .4byte gUnknown_03005DFC +_080FCC10: .4byte gUnknown_03005DE8 +_080FCC14: .4byte gUnknown_03005DF0 + thumb_func_end sub_80FCB5C + + thumb_func_start sub_80FCC18 +sub_80FCC18: @ 80FCC18 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r2, 0 + ldr r0, _080FCCA4 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FCC94 + ldr r0, _080FCCA8 + mov r9, r0 + ldr r3, _080FCCAC +_080FCC38: + ldr r0, _080FCCB0 + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FCCB4 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r4, r9 + ldr r1, [r4] + adds r1, r0 + ldr r0, _080FCCB8 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r5, 0 + adds r6, r2, 0x1 + ldrb r0, [r3] + cmp r5, r0 + bcs _080FCC88 + movs r0, 0x80 + lsls r0, 8 + adds r7, r0, 0 +_080FCC64: + ldrh r0, [r4] + ands r0, r7 + cmp r0, 0 + bne _080FCC7A + adds r0, r4, 0 + mov r1, r8 + str r3, [sp] + bl sub_80FD3D0 + strh r0, [r4] + ldr r3, [sp] +_080FCC7A: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x2 + ldrb r0, [r3] + cmp r5, r0 + bcc _080FCC64 +_080FCC88: + lsls r0, r6, 24 + lsrs r2, r0, 24 + ldr r0, _080FCCA4 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FCC38 +_080FCC94: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCCA4: .4byte gUnknown_03005DF0 +_080FCCA8: .4byte gUnknown_03005DEC +_080FCCAC: .4byte gUnknown_03005DF8 +_080FCCB0: .4byte gUnknown_03005DFC +_080FCCB4: .4byte gUnknown_03005E04 +_080FCCB8: .4byte gUnknown_03005DE8 + thumb_func_end sub_80FCC18 + + thumb_func_start sub_80FCCBC +sub_80FCCBC: @ 80FCCBC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r2, 0 + ldr r0, _080FCD3C + ldrb r0, [r0] + cmp r2, r0 + bcs _080FCD2E + ldr r0, _080FCD40 + mov r8, r0 + ldr r3, _080FCD44 +_080FCCD4: + ldr r0, _080FCD48 + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FCD4C + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r4, r8 + ldr r1, [r4] + adds r1, r0 + ldr r0, _080FCD50 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r5, 0 + adds r6, r2, 0x1 + ldrb r0, [r3] + cmp r5, r0 + bcs _080FCD22 + movs r0, 0x80 + lsls r0, 8 + adds r7, r0, 0 +_080FCD00: + ldrh r0, [r4] + ands r0, r7 + cmp r0, 0 + bne _080FCD14 + adds r0, r4, 0 + str r3, [sp] + bl sub_80FD4DC + strh r0, [r4] + ldr r3, [sp] +_080FCD14: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x2 + ldrb r0, [r3] + cmp r5, r0 + bcc _080FCD00 +_080FCD22: + lsls r0, r6, 24 + lsrs r2, r0, 24 + ldr r0, _080FCD3C + ldrb r0, [r0] + cmp r2, r0 + bcc _080FCCD4 +_080FCD2E: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCD3C: .4byte gUnknown_03005DF0 +_080FCD40: .4byte gUnknown_03005DEC +_080FCD44: .4byte gUnknown_03005DF8 +_080FCD48: .4byte gUnknown_03005DFC +_080FCD4C: .4byte gUnknown_03005E04 +_080FCD50: .4byte gUnknown_03005DE8 + thumb_func_end sub_80FCCBC + + thumb_func_start sub_80FCD54 +sub_80FCD54: @ 80FCD54 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r7, 0 + ldr r0, _080FCE8C + ldrb r0, [r0] + cmp r7, r0 + bcs _080FCDE0 + ldr r0, _080FCE90 + mov r8, r0 +_080FCD6A: + ldr r0, _080FCE94 + ldrb r1, [r0] + adds r1, r7 + ldr r0, _080FCE98 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r2, r8 + ldr r1, [r2] + adds r1, r0 + ldr r0, _080FCE9C + ldrb r0, [r0] + lsls r0, 1 + adds r5, r1, r0 + adds r4, r5, 0x2 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80FD50C + strh r0, [r5] + movs r6, 0x1 + adds r5, r4, 0 + ldr r0, _080FCEA0 + ldrb r0, [r0] + subs r0, 0x1 + adds r7, 0x1 + cmp r6, r0 + bge _080FCDCA +_080FCDA2: + adds r4, r5, 0x2 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80FD50C + strh r0, [r5] + subs r1, r5, 0x2 + adds r0, r5, 0 + bl sub_80FD50C + strh r0, [r5] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r5, r4, 0 + ldr r0, _080FCEA0 + ldrb r0, [r0] + subs r0, 0x1 + cmp r6, r0 + blt _080FCDA2 +_080FCDCA: + subs r1, r5, 0x2 + adds r0, r5, 0 + bl sub_80FD50C + strh r0, [r5] + lsls r0, r7, 24 + lsrs r7, r0, 24 + ldr r0, _080FCE8C + ldrb r0, [r0] + cmp r7, r0 + bcc _080FCD6A +_080FCDE0: + movs r6, 0 + ldr r0, _080FCEA0 + ldrb r0, [r0] + cmp r6, r0 + bcs _080FCE80 + ldr r3, _080FCE90 + mov r9, r3 + ldr r0, _080FCE98 + mov r8, r0 +_080FCDF2: + ldr r0, _080FCE94 + ldrb r0, [r0] + mov r2, r8 + ldrb r1, [r2] + muls r0, r1 + lsls r0, 1 + mov r3, r9 + ldr r2, [r3] + adds r2, r0 + ldr r0, _080FCE9C + ldrb r0, [r0] + adds r0, r6 + lsls r0, 1 + adds r5, r2, r0 + lsls r1, 1 + adds r1, r5, r1 + adds r0, r5, 0 + bl sub_80FD50C + strh r0, [r5] + movs r7, 0x1 + mov r1, r8 + ldrb r0, [r1] + lsls r0, 1 + adds r5, r0 + ldr r0, _080FCE8C + ldrb r0, [r0] + subs r0, 0x1 + adds r6, 0x1 + cmp r7, r0 + bge _080FCE64 + ldr r4, _080FCE98 +_080FCE32: + ldrb r1, [r4] + lsls r1, 1 + adds r1, r5, r1 + adds r0, r5, 0 + bl sub_80FD50C + strh r0, [r5] + ldrb r1, [r4] + lsls r1, 1 + subs r1, r5, r1 + adds r0, r5, 0 + bl sub_80FD50C + strh r0, [r5] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r4] + lsls r0, 1 + adds r5, r0 + ldr r0, _080FCE8C + ldrb r0, [r0] + subs r0, 0x1 + cmp r7, r0 + blt _080FCE32 +_080FCE64: + mov r2, r8 + ldrb r1, [r2] + lsls r1, 1 + subs r1, r5, r1 + adds r0, r5, 0 + bl sub_80FD50C + strh r0, [r5] + lsls r0, r6, 24 + lsrs r6, r0, 24 + ldr r0, _080FCEA0 + ldrb r0, [r0] + cmp r6, r0 + bcc _080FCDF2 +_080FCE80: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCE8C: .4byte gUnknown_03005DF0 +_080FCE90: .4byte gUnknown_03005DEC +_080FCE94: .4byte gUnknown_03005DFC +_080FCE98: .4byte gUnknown_03005E04 +_080FCE9C: .4byte gUnknown_03005DE8 +_080FCEA0: .4byte gUnknown_03005DF8 + thumb_func_end sub_80FCD54 + + thumb_func_start sub_80FCEA4 +sub_80FCEA4: @ 80FCEA4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r2, 0 + ldr r0, _080FCF24 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FCF16 + ldr r0, _080FCF28 + mov r8, r0 + ldr r3, _080FCF2C +_080FCEBC: + ldr r0, _080FCF30 + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FCF34 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r4, r8 + ldr r1, [r4] + adds r1, r0 + ldr r0, _080FCF38 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r5, 0 + adds r6, r2, 0x1 + ldrb r0, [r3] + cmp r5, r0 + bcs _080FCF0A + movs r0, 0x80 + lsls r0, 8 + adds r7, r0, 0 +_080FCEE8: + ldrh r0, [r4] + ands r0, r7 + cmp r0, 0 + bne _080FCEFC + adds r0, r4, 0 + str r3, [sp] + bl sub_80FD53C + strh r0, [r4] + ldr r3, [sp] +_080FCEFC: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x2 + ldrb r0, [r3] + cmp r5, r0 + bcc _080FCEE8 +_080FCF0A: + lsls r0, r6, 24 + lsrs r2, r0, 24 + ldr r0, _080FCF24 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FCEBC +_080FCF16: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCF24: .4byte gUnknown_03005DF0 +_080FCF28: .4byte gUnknown_03005DEC +_080FCF2C: .4byte gUnknown_03005DF8 +_080FCF30: .4byte gUnknown_03005DFC +_080FCF34: .4byte gUnknown_03005E04 +_080FCF38: .4byte gUnknown_03005DE8 + thumb_func_end sub_80FCEA4 + + thumb_func_start sub_80FCF3C +sub_80FCF3C: @ 80FCF3C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r0, _080FD068 + ldr r4, [r0] + movs r6, 0 + movs r0, 0x80 + lsls r0, 8 + adds r5, r0, 0 +_080FCF54: + movs r7, 0 +_080FCF56: + ldrh r0, [r4] + ands r0, r5 + cmp r0, 0 + bne _080FCF66 + adds r0, r4, 0 + bl sub_80FD53C + strh r0, [r4] +_080FCF66: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + adds r4, 0x2 + cmp r7, 0x3F + bls _080FCF56 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3F + bls _080FCF54 + movs r7, 0 + ldr r1, _080FD068 + mov r10, r1 + mov r3, sp + movs r2, 0x80 + lsls r2, 8 + mov r9, r2 +_080FCF8A: + lsls r0, r7, 1 + mov r2, r10 + ldr r1, [r2] + adds r4, r1, r0 + ldrh r1, [r4] + strh r1, [r3] + mov r1, r9 + strh r1, [r4] + movs r6, 0x1 + adds r4, 0x80 + adds r5, r0, 0 +_080FCFA0: + ldrh r0, [r4] + movs r2, 0x80 + lsls r2, 8 + ands r0, r2 + cmp r0, 0 + bne _080FCFC0 + adds r2, r4, 0 + adds r2, 0x80 + mov r0, sp + adds r1, r4, 0 + str r3, [sp, 0x4] + bl sub_80FD7AC + strh r0, [r4] + ldr r3, [sp, 0x4] + strh r0, [r3] +_080FCFC0: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r4, 0x80 + cmp r6, 0x3E + bls _080FCFA0 + mov r0, r9 + strh r0, [r4] + mov r1, r10 + ldr r0, [r1] + adds r4, r0, r5 + ldrh r0, [r4] + strh r0, [r3] + mov r2, r9 + strh r2, [r4] + movs r6, 0x1 + adds r4, 0x80 + movs r0, 0x80 + lsls r0, 8 + mov r8, r0 +_080FCFE8: + ldrh r0, [r4] + mov r1, r8 + ands r0, r1 + adds r5, r4, 0 + adds r5, 0x80 + cmp r0, 0 + bne _080FD008 + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + str r3, [sp, 0x4] + bl sub_80FD7AC + strh r0, [r4] + ldr r3, [sp, 0x4] + strh r0, [r3] +_080FD008: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r4, r5, 0 + cmp r6, 0x3E + bls _080FCFE8 + mov r2, r9 + strh r2, [r4] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x3F + bls _080FCF8A + ldr r0, _080FD068 + ldr r4, [r0] + movs r6, 0 + movs r0, 0x80 + lsls r0, 8 + mov r8, r0 +_080FD02E: + movs r7, 0 + adds r5, r6, 0x1 +_080FD032: + ldrh r0, [r4] + mov r1, r8 + ands r0, r1 + cmp r0, 0 + bne _080FD044 + adds r0, r4, 0 + bl sub_80FD53C + strh r0, [r4] +_080FD044: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + adds r4, 0x2 + cmp r7, 0x3F + bls _080FD032 + lsls r0, r5, 24 + lsrs r6, r0, 24 + cmp r6, 0x3F + bls _080FD02E + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FD068: .4byte gUnknown_03005DEC + thumb_func_end sub_80FCF3C + + thumb_func_start sub_80FD06C +sub_80FD06C: @ 80FD06C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r2, 0 + ldr r0, _080FD0FC + ldrb r0, [r0] + cmp r2, r0 + bcs _080FD0EE + ldr r0, _080FD100 + mov r8, r0 +_080FD082: + ldr r0, _080FD104 + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FD108 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r3, r8 + ldr r1, [r3] + adds r1, r0 + ldr r0, _080FD10C + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + ldrh r1, [r4] + mov r0, sp + strh r1, [r0] + movs r5, 0x1 + adds r4, 0x2 + ldr r0, _080FD110 + ldrb r0, [r0] + subs r0, 0x1 + adds r6, r2, 0x1 + cmp r5, r0 + bge _080FD0E2 + movs r0, 0x80 + lsls r0, 8 + adds r7, r0, 0 +_080FD0BA: + ldrh r0, [r4] + ands r0, r7 + cmp r0, 0 + bne _080FD0D0 + mov r0, sp + adds r1, r4, 0 + bl sub_80FD568 + strh r0, [r4] + mov r1, sp + strh r0, [r1] +_080FD0D0: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x2 + ldr r0, _080FD110 + ldrb r0, [r0] + subs r0, 0x1 + cmp r5, r0 + blt _080FD0BA +_080FD0E2: + lsls r0, r6, 24 + lsrs r2, r0, 24 + ldr r0, _080FD0FC + ldrb r0, [r0] + cmp r2, r0 + bcc _080FD082 +_080FD0EE: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FD0FC: .4byte gUnknown_03005DF0 +_080FD100: .4byte gUnknown_03005DEC +_080FD104: .4byte gUnknown_03005DFC +_080FD108: .4byte gUnknown_03005E04 +_080FD10C: .4byte gUnknown_03005DE8 +_080FD110: .4byte gUnknown_03005DF8 + thumb_func_end sub_80FD06C + + thumb_func_start sub_80FD114 +sub_80FD114: @ 80FD114 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r2, 0 + ldr r0, _080FD1B0 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FD1A2 + ldr r0, _080FD1B4 + mov r8, r0 + ldr r7, _080FD1B8 +_080FD12C: + ldr r0, _080FD1BC + ldrb r1, [r0] + ldrb r0, [r7] + muls r0, r1 + lsls r0, 1 + mov r3, r8 + ldr r1, [r3] + adds r1, r0 + ldr r0, _080FD1C0 + ldrb r0, [r0] + adds r0, r2 + lsls r0, 1 + adds r4, r1, r0 + ldrh r1, [r4] + mov r0, sp + strh r1, [r0] + movs r5, 0x1 + ldrb r0, [r7] + lsls r0, 1 + adds r4, r0 + ldr r0, _080FD1C4 + ldrb r0, [r0] + subs r0, 0x1 + adds r6, r2, 0x1 + cmp r5, r0 + bge _080FD196 + movs r0, 0x80 + lsls r0, 8 + adds r2, r0, 0 +_080FD166: + ldrh r0, [r4] + ands r0, r2 + cmp r0, 0 + bne _080FD180 + mov r0, sp + adds r1, r4, 0 + str r2, [sp, 0x4] + bl sub_80FD568 + strh r0, [r4] + mov r1, sp + strh r0, [r1] + ldr r2, [sp, 0x4] +_080FD180: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r0, [r7] + lsls r0, 1 + adds r4, r0 + ldr r0, _080FD1C4 + ldrb r0, [r0] + subs r0, 0x1 + cmp r5, r0 + blt _080FD166 +_080FD196: + lsls r0, r6, 24 + lsrs r2, r0, 24 + ldr r0, _080FD1B0 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FD12C +_080FD1A2: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FD1B0: .4byte gUnknown_03005DF8 +_080FD1B4: .4byte gUnknown_03005DEC +_080FD1B8: .4byte gUnknown_03005E04 +_080FD1BC: .4byte gUnknown_03005DFC +_080FD1C0: .4byte gUnknown_03005DE8 +_080FD1C4: .4byte gUnknown_03005DF0 + thumb_func_end sub_80FD114 + + thumb_func_start sub_80FD1C8 +sub_80FD1C8: @ 80FD1C8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + mov r2, sp + ldr r3, _080FD234 + lsls r1, r0, 1 + add r1, r10 + adds r0, r1, r3 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r3, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + strb r0, [r2, 0x1] + mov r5, sp + adds r0, r3, 0x2 + adds r1, r0 + ldrb r4, [r1] + lsls r2, r4, 24 + lsrs r1, r2, 27 + movs r0, 0x7 + ands r1, r0 + strh r1, [r5, 0x2] + lsrs r2, 25 + mov r9, r2 + movs r0, 0x3 + ands r2, r0 + mov r9, r2 + movs r5, 0x1 + ands r5, r4 + movs r4, 0x1 + mov r8, r4 + cmp r8, r1 + bcs _080FD27A + mov r3, sp +_080FD21A: + cmp r5, 0 + bne _080FD238 + mov r0, r8 + lsls r2, r0, 2 + mov r4, sp + adds r1, r4, r2 + ldrb r0, [r3] + mov r4, r8 + subs r0, r4 + strb r0, [r1] + ldrb r0, [r3, 0x1] + add r0, r8 + b _080FD24A + .align 2, 0 +_080FD234: .4byte gUnknown_083E7A50 +_080FD238: + mov r0, r8 + lsls r2, r0, 2 + mov r4, sp + adds r1, r4, r2 + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r1] + ldrb r0, [r3, 0x1] + subs r0, 0x1 +_080FD24A: + strb r0, [r1, 0x1] + add r2, sp + ldrb r0, [r2] + cmp r0, 0x3F + bhi _080FD25A + ldrb r0, [r2, 0x1] + cmp r0, 0x3F + bls _080FD262 +_080FD25A: + mov r0, r8 + subs r0, 0x1 + strh r0, [r3, 0x2] + b _080FD27A +_080FD262: + ldrh r0, [r3, 0x2] + mov r1, r8 + subs r0, r1 + strh r0, [r2, 0x2] + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrh r0, [r3, 0x2] + cmp r8, r0 + bcc _080FD21A +_080FD27A: + movs r2, 0 + mov r8, r2 + mov r0, sp + ldrh r0, [r0, 0x2] + cmp r8, r0 + bcc _080FD288 + b _080FD38A +_080FD288: + movs r3, 0x1F +_080FD28A: + ldr r1, _080FD2E8 + mov r4, r8 + lsls r0, r4, 2 + mov r2, sp + adds r6, r2, r0 + ldrb r0, [r6, 0x1] + lsls r0, 7 + ldr r1, [r1] + adds r1, r0 + ldrb r0, [r6] + lsls r0, 1 + adds r2, r1, r0 + ldrh r1, [r2] + movs r4, 0x80 + lsls r4, 8 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne _080FD376 + movs r7, 0x1F + ands r7, r1 + lsls r0, r1, 16 + lsrs r5, r0, 21 + ands r5, r3 + lsrs r4, r0, 26 + ands r4, r3 + mov r0, r9 + cmp r0, 0 + blt _080FD36C + cmp r0, 0x1 + ble _080FD2EC + cmp r0, 0x3 + bgt _080FD36C + ldrh r0, [r6, 0x2] + adds r1, r7, r0 + lsls r1, 16 + lsrs r7, r1, 16 + adds r1, r5, r0 + lsls r1, 16 + lsrs r5, r1, 16 + adds r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r7, 0x1F + bls _080FD360 + movs r7, 0x1F + b _080FD360 + .align 2, 0 +_080FD2E8: .4byte gUnknown_03005DEC +_080FD2EC: + mov r1, r10 + lsls r0, r1, 1 + add r0, r10 + ldr r1, _080FD320 + adds r1, 0x2 + adds r0, r1 + ldrb r0, [r0] + lsrs r0, 3 + movs r1, 0x7 + ands r0, r1 + movs r1, 0x3 + str r2, [sp, 0x18] + str r3, [sp, 0x1C] + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + cmp r0, 0x1 + beq _080FD33C + cmp r0, 0x1 + bgt _080FD324 + cmp r0, 0 + beq _080FD32A + b _080FD36C + .align 2, 0 +_080FD320: .4byte gUnknown_083E7A50 +_080FD324: + cmp r0, 0x2 + beq _080FD34E + b _080FD36C +_080FD32A: + ldrh r0, [r6, 0x2] + cmp r7, r0 + bcc _080FD338 + subs r0, r7, r0 + lsls r0, 16 + lsrs r7, r0, 16 + b _080FD36C +_080FD338: + movs r7, 0 + b _080FD36C +_080FD33C: + ldrh r0, [r6, 0x2] + cmp r5, r0 + bcc _080FD34A + subs r0, r5, r0 + lsls r0, 16 + lsrs r5, r0, 16 + b _080FD36C +_080FD34A: + movs r5, 0 + b _080FD36C +_080FD34E: + ldrh r0, [r6, 0x2] + cmp r4, r0 + bcc _080FD35C + subs r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + b _080FD36C +_080FD35C: + movs r4, 0 + b _080FD36C +_080FD360: + cmp r5, 0x1F + bls _080FD366 + movs r5, 0x1F +_080FD366: + cmp r4, 0x1F + bls _080FD36C + movs r4, 0x1F +_080FD36C: + lsls r0, r4, 10 + lsls r1, r5, 5 + orrs r0, r1 + orrs r7, r0 + strh r7, [r2] +_080FD376: + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + mov r0, sp + ldrh r0, [r0, 0x2] + cmp r8, r0 + bcs _080FD38A + b _080FD28A +_080FD38A: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80FD1C8 + + thumb_func_start sub_80FD39C +sub_80FD39C: @ 80FD39C + push {lr} + ldrh r1, [r0] + movs r3, 0x1F + movs r0, 0x1F + ands r0, r1 + lsls r1, 16 + lsrs r2, r1, 21 + ands r2, r3 + lsrs r1, 26 + ands r1, r3 + adds r0, r2 + adds r0, r1 + movs r1, 0x3 + bl __divsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + lsls r0, r1, 10 + lsls r2, r1, 5 + orrs r0, r2 + orrs r0, r1 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80FD39C + + thumb_func_start sub_80FD3D0 +sub_80FD3D0: @ 80FD3D0 + push {r4,lr} + lsls r1, 24 + lsrs r4, r1, 24 + ldrh r0, [r0] + movs r2, 0x1F + movs r1, 0x1F + ands r1, r0 + lsls r0, 16 + lsrs r3, r0, 21 + ands r3, r2 + lsrs r0, 26 + ands r0, r2 + cmp r1, 0x10 + bhi _080FD400 + cmp r3, 0x10 + bhi _080FD400 + cmp r0, 0x10 + bhi _080FD400 + adds r0, r4, 0 + bl sub_80FD40C + lsls r0, 16 + lsrs r0, 16 + b _080FD402 +_080FD400: + ldr r0, _080FD408 +_080FD402: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080FD408: .4byte 0x00007fff + thumb_func_end sub_80FD3D0 + + thumb_func_start sub_80FD40C +sub_80FD40C: @ 80FD40C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + mov r8, r0 + movs r6, 0 + movs r7, 0 + adds r0, r4, 0 + movs r1, 0x6 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + movs r1, 0x6 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bhi _080FD4C4 + lsls r0, 2 + ldr r1, _080FD450 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FD450: .4byte _080FD454 + .align 2, 0 +_080FD454: + .4byte _080FD46C + .4byte _080FD47C + .4byte _080FD48C + .4byte _080FD49A + .4byte _080FD4A8 + .4byte _080FD4B6 +_080FD46C: + movs r0, 0x15 + subs r0, r5 + lsls r0, 16 + lsrs r6, r0, 16 + adds r7, r6, 0 + movs r1, 0 + mov r8, r1 + b _080FD4C4 +_080FD47C: + movs r7, 0 + movs r0, 0x15 + subs r0, r5 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + mov r6, r8 + b _080FD4C4 +_080FD48C: + movs r0, 0x15 + subs r0, r5 + lsls r0, 16 + lsrs r7, r0, 16 + movs r6, 0 + mov r8, r7 + b _080FD4C4 +_080FD49A: + movs r7, 0 + movs r6, 0 + movs r0, 0x17 + subs r0, r5 + lsls r0, 16 + lsrs r0, 16 + b _080FD4C2 +_080FD4A8: + movs r0, 0x17 + subs r0, r5 + lsls r0, 16 + lsrs r7, r0, 16 + movs r6, 0 + mov r8, r6 + b _080FD4C4 +_080FD4B6: + movs r7, 0 + movs r0, 0x17 + subs r0, r5 + lsls r0, 16 + lsrs r6, r0, 16 + movs r0, 0 +_080FD4C2: + mov r8, r0 +_080FD4C4: + lsls r0, r7, 10 + lsls r1, r6, 5 + orrs r0, r1 + mov r1, r8 + orrs r1, r0 + lsls r0, r1, 16 + lsrs r0, 16 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FD40C + + thumb_func_start sub_80FD4DC +sub_80FD4DC: @ 80FD4DC + push {lr} + ldrh r0, [r0] + movs r2, 0x1F + movs r1, 0x1F + ands r1, r0 + lsls r0, 16 + lsrs r3, r0, 21 + ands r3, r2 + lsrs r0, 26 + ands r0, r2 + cmp r1, 0x10 + bhi _080FD500 + cmp r3, 0x10 + bhi _080FD500 + cmp r0, 0x10 + bhi _080FD500 + movs r0, 0 + b _080FD502 +_080FD500: + ldr r0, _080FD508 +_080FD502: + pop {r1} + bx r1 + .align 2, 0 +_080FD508: .4byte 0x00007fff + thumb_func_end sub_80FD4DC + + thumb_func_start sub_80FD50C +sub_80FD50C: @ 80FD50C + push {r4,lr} + adds r4, r0, 0 + ldrh r3, [r4] + cmp r3, 0 + beq _080FD534 + movs r2, 0x80 + lsls r2, 8 + adds r0, r2, 0 + ands r0, r3 + cmp r0, 0 + beq _080FD526 + adds r0, r2, 0 + b _080FD536 +_080FD526: + ldrh r1, [r1] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080FD534 + ldrh r0, [r4] + b _080FD536 +_080FD534: + movs r0, 0 +_080FD536: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80FD50C + + thumb_func_start sub_80FD53C +sub_80FD53C: @ 80FD53C + push {r4,lr} + ldrh r1, [r0] + movs r0, 0x1F + movs r3, 0x1F + ands r3, r1 + lsls r1, 16 + lsrs r2, r1, 21 + lsrs r1, 26 + subs r3, r0, r3 + adds r4, r0, 0 + bics r4, r2 + adds r2, r4, 0 + bics r0, r1 + lsls r0, 10 + lsls r2, 5 + orrs r0, r2 + orrs r0, r3 + lsls r0, 16 + lsrs r0, 16 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80FD53C + + thumb_func_start sub_80FD568 +sub_80FD568: @ 80FD568 + push {r4-r7,lr} + sub sp, 0x14 + adds r7, r1, 0 + ldrh r4, [r0] + ldrh r5, [r7] + lsls r6, r4, 16 + lsls r0, r5, 16 + mov r12, r0 + cmp r4, r5 + beq _080FD5DA + mov r2, sp + movs r3, 0x1F + movs r1, 0x1F + adds r0, r1, 0 + ands r0, r4 + strh r0, [r2] + lsrs r0, r6, 21 + ands r0, r3 + strh r0, [r2, 0x2] + lsrs r0, r6, 26 + ands r0, r3 + strh r0, [r2, 0x4] + mov r0, sp + ands r1, r5 + strh r1, [r0, 0x6] + mov r1, sp + mov r2, r12 + lsrs r0, r2, 21 + ands r0, r3 + strh r0, [r1, 0x8] + lsrs r0, r2, 26 + ands r0, r3 + strh r0, [r1, 0xA] + mov r0, sp + ldrh r0, [r0] + cmp r0, 0x19 + bls _080FD5C2 + mov r0, sp + ldrh r0, [r0, 0x2] + cmp r0, 0x19 + bls _080FD5C2 + mov r0, sp + ldrh r0, [r0, 0x4] + cmp r0, 0x19 + bhi _080FD5DA +_080FD5C2: + mov r0, sp + ldrh r0, [r0, 0x6] + cmp r0, 0x19 + bls _080FD5DE + mov r0, sp + ldrh r0, [r0, 0x8] + cmp r0, 0x19 + bls _080FD5DE + mov r0, sp + ldrh r0, [r0, 0xA] + cmp r0, 0x19 + bls _080FD5DE +_080FD5DA: + ldrh r0, [r7] + b _080FD684 +_080FD5DE: + movs r4, 0 + add r6, sp, 0xC + mov r7, sp + adds r7, 0x6 + adds r5, r6, 0 +_080FD5E8: + lsls r2, r4, 1 + mov r1, sp + adds r0, r1, r2 + adds r1, r7, r2 + ldrh r3, [r0] + ldrh r0, [r1] + cmp r3, r0 + bls _080FD5FE + adds r1, r5, r2 + subs r0, r3, r0 + b _080FD602 +_080FD5FE: + adds r1, r5, r2 + subs r0, r3 +_080FD602: + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _080FD5E8 + adds r1, r6, 0 + ldrh r0, [r1, 0x2] + ldrh r3, [r1] + cmp r3, r0 + bcc _080FD628 + ldrh r2, [r1, 0x4] + cmp r3, r2 + bcc _080FD622 + adds r2, r3, 0 + b _080FD63C +_080FD622: + cmp r0, r2 + bcs _080FD62E + b _080FD636 +_080FD628: + ldrh r2, [r1, 0x4] + cmp r0, r2 + bcc _080FD632 +_080FD62E: + ldrh r2, [r1, 0x2] + b _080FD63C +_080FD632: + cmp r2, r3 + bcc _080FD63A +_080FD636: + ldrh r2, [r1, 0x4] + b _080FD63C +_080FD63A: + ldrh r2, [r6] +_080FD63C: + mov r0, sp + ldrh r1, [r0, 0x6] + lsrs r0, r2, 1 + movs r6, 0x1F + subs r6, r0 + adds r0, r1, 0 + muls r0, r6 + movs r1, 0x1F + bl __divsi3 + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + mov r0, sp + ldrh r0, [r0, 0x8] + muls r0, r6 + movs r1, 0x1F + bl __divsi3 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, sp + ldrh r0, [r0, 0xA] + muls r0, r6 + movs r1, 0x1F + bl __divsi3 + lsls r0, 16 + lsrs r0, 6 + lsls r4, 5 + orrs r0, r4 + orrs r5, r0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r5, 0 +_080FD684: + add sp, 0x14 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FD568 + + thumb_func_start sub_80FD68C +sub_80FD68C: @ 80FD68C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r3, r0, 0 + mov r10, r1 + str r2, [sp] + ldrh r1, [r3] + mov r0, r10 + ldrh r0, [r0] + cmp r1, r0 + bne _080FD6B4 + ldrh r0, [r2] + cmp r0, r1 + bne _080FD6B4 + mov r1, r10 + ldrh r0, [r1] + b _080FD79C +_080FD6B4: + mov r2, r10 + ldrh r0, [r2] + movs r1, 0x1F + mov r9, r1 + movs r4, 0x1F + adds r5, r4, 0 + ands r5, r0 + lsls r0, 16 + lsrs r2, r0, 21 + mov r1, r9 + ands r1, r2 + mov r8, r1 + lsrs r0, 26 + mov r2, r9 + ands r2, r0 + str r2, [sp, 0x4] + ldrh r2, [r3] + adds r0, r4, 0 + ands r0, r2 + lsls r2, 16 + lsrs r1, r2, 21 + mov r3, r9 + ands r1, r3 + adds r0, r1 + lsrs r2, 26 + ands r2, r3 + adds r0, r2 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r7, r0, 16 + mov r1, r8 + adds r0, r5, r1 + ldr r2, [sp, 0x4] + adds r0, r2 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r3, [sp] + ldrh r1, [r3] + ands r4, r1 + lsls r1, 16 + lsrs r0, r1, 21 + mov r2, r9 + ands r0, r2 + adds r4, r0 + lsrs r1, 26 + ands r1, r2 + adds r4, r1 + adds r0, r4, 0 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r7, r6 + bne _080FD736 + cmp r1, r6 + bne _080FD736 + mov r3, r10 + ldrh r0, [r3] + b _080FD79C +_080FD736: + cmp r7, r6 + bls _080FD73E + subs r0, r7, r6 + b _080FD740 +_080FD73E: + subs r0, r6, r7 +_080FD740: + lsls r0, 16 + lsrs r2, r0, 16 + cmp r1, r6 + bls _080FD74C + subs r0, r1, r6 + b _080FD74E +_080FD74C: + subs r0, r6, r1 +_080FD74E: + lsls r0, 16 + lsrs r0, 16 + cmp r2, r0 + bcc _080FD758 + adds r0, r2, 0 +_080FD758: + lsrs r0, 1 + movs r4, 0x1F + subs r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + muls r0, r4 + movs r1, 0x1F + bl __divsi3 + lsls r0, 16 + lsrs r5, r0, 16 + mov r0, r8 + muls r0, r4 + movs r1, 0x1F + bl __divsi3 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r1, [sp, 0x4] + adds r0, r1, 0 + muls r0, r4 + movs r1, 0x1F + bl __divsi3 + lsls r0, 16 + lsrs r0, 6 + mov r2, r8 + lsls r1, r2, 5 + orrs r0, r1 + orrs r5, r0 + lsls r0, r5, 16 + lsrs r0, 16 +_080FD79C: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FD68C + + thumb_func_start sub_80FD7AC +sub_80FD7AC: @ 80FD7AC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r3, r0, 0 + mov r10, r1 + str r2, [sp] + ldrh r1, [r3] + mov r0, r10 + ldrh r0, [r0] + cmp r1, r0 + bne _080FD7D4 + ldrh r0, [r2] + cmp r0, r1 + bne _080FD7D4 + mov r1, r10 + ldrh r0, [r1] + b _080FD8BA +_080FD7D4: + mov r2, r10 + ldrh r0, [r2] + movs r1, 0x1F + mov r9, r1 + movs r4, 0x1F + adds r5, r4, 0 + ands r5, r0 + lsls r0, 16 + lsrs r2, r0, 21 + mov r1, r9 + ands r1, r2 + mov r8, r1 + lsrs r0, 26 + mov r2, r9 + ands r2, r0 + str r2, [sp, 0x4] + ldrh r2, [r3] + adds r0, r4, 0 + ands r0, r2 + lsls r2, 16 + lsrs r1, r2, 21 + mov r3, r9 + ands r1, r3 + adds r0, r1 + lsrs r2, 26 + ands r2, r3 + adds r0, r2 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r7, r0, 16 + mov r1, r8 + adds r0, r5, r1 + ldr r2, [sp, 0x4] + adds r0, r2 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r3, [sp] + ldrh r1, [r3] + ands r4, r1 + lsls r1, 16 + lsrs r0, r1, 21 + mov r2, r9 + ands r0, r2 + adds r4, r0 + lsrs r1, 26 + ands r1, r2 + adds r4, r1 + adds r0, r4, 0 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r7, r6 + bne _080FD856 + cmp r1, r6 + bne _080FD856 + mov r3, r10 + ldrh r0, [r3] + b _080FD8BA +_080FD856: + cmp r7, r6 + bls _080FD85E + subs r0, r7, r6 + b _080FD860 +_080FD85E: + subs r0, r6, r7 +_080FD860: + lsls r0, 16 + lsrs r2, r0, 16 + cmp r1, r6 + bls _080FD86C + subs r0, r1, r6 + b _080FD86E +_080FD86C: + subs r0, r6, r1 +_080FD86E: + lsls r0, 16 + lsrs r0, 16 + cmp r2, r0 + bcc _080FD878 + adds r0, r2, 0 +_080FD878: + movs r4, 0x1F + subs r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + muls r0, r4 + movs r1, 0x1F + bl __divsi3 + lsls r0, 16 + lsrs r5, r0, 16 + mov r0, r8 + muls r0, r4 + movs r1, 0x1F + bl __divsi3 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r1, [sp, 0x4] + adds r0, r1, 0 + muls r0, r4 + movs r1, 0x1F + bl __divsi3 + lsls r0, 16 + lsrs r0, 6 + mov r2, r8 + lsls r1, r2, 5 + orrs r0, r1 + orrs r5, r0 + lsls r0, r5, 16 + lsrs r0, 16 +_080FD8BA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FD7AC + + thumb_func_start sub_80FD8CC +sub_80FD8CC: @ 80FD8CC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + ldrb r1, [r0, 0x1D] + lsrs r5, r1, 3 + ldrb r1, [r0, 0x1E] + lsrs r1, 3 + str r1, [sp, 0x8] + ldr r1, [r0, 0x4] + str r1, [sp] + ldr r2, [r0, 0x10] + str r2, [sp, 0x4] + ldrh r0, [r0, 0x16] + cmp r0, 0x2 + bne _080FD97C + movs r1, 0 + ldr r0, [sp, 0x8] + cmp r1, r0 + bcc _080FD8FA + b _080FDA08 +_080FD8FA: + movs r0, 0 + adds r2, r1, 0x1 + mov r10, r2 + cmp r0, r5 + bcs _080FD96E + adds r2, r1, 0 + muls r2, r5 + mov r9, r2 + lsls r1, 3 + mov r8, r1 +_080FD90E: + movs r4, 0 + lsls r6, r0, 4 + adds r7, r0, 0x1 + add r0, r9 + lsls r0, 6 + ldr r1, [sp, 0x4] + adds r1, r0 + mov r12, r1 +_080FD91E: + lsls r0, r4, 3 + mov r2, r12 + adds r3, r2, r0 + mov r1, r8 + adds r0, r1, r4 + lsls r0, 3 + muls r0, r5 + lsls r0, 1 + ldr r2, [sp] + adds r0, r2, r0 + adds r2, r0, r6 + ldrh r0, [r2, 0x2] + lsls r0, 8 + ldrh r1, [r2] + orrs r0, r1 + strh r0, [r3] + ldrh r0, [r2, 0x6] + lsls r0, 8 + ldrh r1, [r2, 0x4] + orrs r0, r1 + strh r0, [r3, 0x2] + ldrh r0, [r2, 0xA] + lsls r0, 8 + ldrh r1, [r2, 0x8] + orrs r0, r1 + strh r0, [r3, 0x4] + ldrh r0, [r2, 0xE] + lsls r0, 8 + ldrh r1, [r2, 0xC] + orrs r0, r1 + strh r0, [r3, 0x6] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x7 + bls _080FD91E + lsls r0, r7, 16 + lsrs r0, 16 + cmp r0, r5 + bcc _080FD90E +_080FD96E: + mov r1, r10 + lsls r0, r1, 16 + lsrs r1, r0, 16 + ldr r2, [sp, 0x8] + cmp r1, r2 + bcc _080FD8FA + b _080FDA08 +_080FD97C: + movs r1, 0 + ldr r0, [sp, 0x8] + cmp r1, r0 + bcs _080FDA08 +_080FD984: + movs r0, 0 + adds r2, r1, 0x1 + mov r10, r2 + cmp r0, r5 + bcs _080FD9FC + adds r2, r1, 0 + muls r2, r5 + mov r9, r2 + lsls r1, 3 + mov r8, r1 +_080FD998: + movs r4, 0 + lsls r6, r0, 4 + adds r7, r0, 0x1 + add r0, r9 + lsls r0, 5 + ldr r1, [sp, 0x4] + adds r1, r0 + mov r12, r1 +_080FD9A8: + lsls r0, r4, 2 + mov r2, r12 + adds r3, r2, r0 + mov r1, r8 + adds r0, r1, r4 + lsls r0, 3 + muls r0, r5 + lsls r0, 1 + ldr r2, [sp] + adds r0, r2, r0 + adds r2, r0, r6 + ldrh r1, [r2, 0x2] + lsls r1, 4 + ldrh r0, [r2] + orrs r1, r0 + ldrh r0, [r2, 0x4] + lsls r0, 8 + orrs r1, r0 + ldrh r0, [r2, 0x6] + lsls r0, 12 + orrs r1, r0 + strh r1, [r3] + ldrh r1, [r2, 0xA] + lsls r1, 4 + ldrh r0, [r2, 0x8] + orrs r1, r0 + ldrh r0, [r2, 0xC] + lsls r0, 8 + orrs r1, r0 + ldrh r0, [r2, 0xE] + lsls r0, 12 + orrs r1, r0 + strh r1, [r3, 0x2] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x7 + bls _080FD9A8 + lsls r0, r7, 16 + lsrs r0, 16 + cmp r0, r5 + bcc _080FD998 +_080FD9FC: + mov r1, r10 + lsls r0, r1, 16 + lsrs r1, r0, 16 + ldr r2, [sp, 0x8] + cmp r1, r2 + bcc _080FD984 +_080FDA08: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80FD8CC + + thumb_func_start sub_80FDA18 +sub_80FDA18: @ 80FDA18 + push {lr} + ldr r2, _080FDA68 + ldrb r1, [r0, 0x18] + lsls r1, 4 + strh r1, [r2] + ldr r3, _080FDA6C + ldrh r2, [r2] + lsls r2, 1 + ldr r1, [r0, 0x8] + adds r1, r2 + str r1, [r3] + ldr r2, _080FDA70 + ldr r1, [r0, 0x4] + str r1, [r2] + ldr r2, _080FDA74 + ldrb r1, [r0, 0x19] + strb r1, [r2] + ldr r2, _080FDA78 + ldrb r1, [r0, 0x1A] + strb r1, [r2] + ldr r2, _080FDA7C + ldrb r1, [r0, 0x1B] + strb r1, [r2] + ldr r2, _080FDA80 + ldrb r1, [r0, 0x1C] + strb r1, [r2] + ldr r2, _080FDA84 + ldrb r1, [r0, 0x1D] + strb r1, [r2] + ldr r2, _080FDA88 + ldrb r1, [r0, 0x1E] + strb r1, [r2] + ldrh r0, [r0, 0x14] + cmp r0, 0x5 + bhi _080FDADE + lsls r0, 2 + ldr r1, _080FDA8C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FDA68: .4byte gUnknown_03005E0C +_080FDA6C: .4byte gUnknown_03005E08 +_080FDA70: .4byte gUnknown_03005DEC +_080FDA74: .4byte gUnknown_03005DE8 +_080FDA78: .4byte gUnknown_03005DFC +_080FDA7C: .4byte gUnknown_03005DF8 +_080FDA80: .4byte gUnknown_03005DF0 +_080FDA84: .4byte gUnknown_03005E04 +_080FDA88: .4byte gUnknown_03005DF4 +_080FDA8C: .4byte _080FDA90 + .align 2, 0 +_080FDA90: + .4byte _080FDAA8 + .4byte _080FDAB0 + .4byte _080FDAB8 + .4byte _080FDAC2 + .4byte _080FDACC + .4byte _080FDAD6 +_080FDAA8: + movs r0, 0 + bl sub_80FDC18 + b _080FDADE +_080FDAB0: + movs r0, 0x1 + bl sub_80FDC18 + b _080FDADE +_080FDAB8: + bl sub_80FDAE4 + bl sub_80FDF88 + b _080FDADE +_080FDAC2: + bl sub_80FDBE4 + bl sub_80FDED8 + b _080FDADE +_080FDACC: + bl sub_80FDBA8 + bl sub_80FDE28 + b _080FDADE +_080FDAD6: + bl sub_80FDB8C + bl sub_80FDD70 +_080FDADE: + pop {r0} + bx r0 + thumb_func_end sub_80FDA18 + + thumb_func_start sub_80FDAE4 +sub_80FDAE4: @ 80FDAE4 + ldr r2, _080FDB4C + ldr r1, [r2] + movs r0, 0 + strh r0, [r1] + ldr r0, [r2] + ldr r2, _080FDB50 + adds r1, r2, 0 + strh r1, [r0, 0x2] + ldr r2, _080FDB54 + adds r1, r2, 0 + strh r1, [r0, 0x4] + ldr r2, _080FDB58 + adds r1, r2, 0 + strh r1, [r0, 0x6] + ldr r2, _080FDB5C + adds r1, r2, 0 + strh r1, [r0, 0x8] + ldr r2, _080FDB60 + adds r1, r2, 0 + strh r1, [r0, 0xA] + ldr r2, _080FDB64 + adds r1, r2, 0 + strh r1, [r0, 0xC] + ldr r2, _080FDB68 + adds r1, r2, 0 + strh r1, [r0, 0xE] + ldr r2, _080FDB6C + adds r1, r2, 0 + strh r1, [r0, 0x10] + ldr r2, _080FDB70 + adds r1, r2, 0 + strh r1, [r0, 0x12] + ldr r2, _080FDB74 + adds r1, r2, 0 + strh r1, [r0, 0x14] + ldr r2, _080FDB78 + adds r1, r2, 0 + strh r1, [r0, 0x16] + ldr r2, _080FDB7C + adds r1, r2, 0 + strh r1, [r0, 0x18] + ldr r2, _080FDB80 + adds r1, r2, 0 + strh r1, [r0, 0x1A] + ldr r2, _080FDB84 + adds r1, r2, 0 + strh r1, [r0, 0x1C] + ldr r2, _080FDB88 + adds r1, r2, 0 + strh r1, [r0, 0x1E] + bx lr + .align 2, 0 +_080FDB4C: .4byte gUnknown_03005E08 +_080FDB50: .4byte 0x000018c6 +_080FDB54: .4byte 0x000077bd +_080FDB58: .4byte 0x00002d6b +_080FDB5C: .4byte 0x000018dd +_080FDB60: .4byte 0x00001ba6 +_080FDB64: .4byte 0x000074c6 +_080FDB68: .4byte 0x00001bbd +_080FDB6C: .4byte 0x000074dd +_080FDB70: .4byte 0x000077a6 +_080FDB74: .4byte 0x0000197d +_080FDB78: .4byte 0x00001bab +_080FDB7C: .4byte 0x00007566 +_080FDB80: .4byte 0x00002cdd +_080FDB84: .4byte 0x00002fa6 +_080FDB88: .4byte 0x000074cb + thumb_func_end sub_80FDAE4 + + thumb_func_start sub_80FDB8C +sub_80FDB8C: @ 80FDB8C + ldr r2, _080FDBA0 + ldr r0, [r2] + movs r1, 0 + strh r1, [r0] + ldr r2, [r2] + strh r1, [r2, 0x2] + ldr r1, _080FDBA4 + adds r0, r1, 0 + strh r0, [r2, 0x4] + bx lr + .align 2, 0 +_080FDBA0: .4byte gUnknown_03005E08 +_080FDBA4: .4byte 0x00007fff + thumb_func_end sub_80FDB8C + + thumb_func_start sub_80FDBA8 +sub_80FDBA8: @ 80FDBA8 + push {r4,r5,lr} + ldr r1, _080FDBE0 + ldr r0, [r1] + movs r2, 0 + strh r2, [r0] + ldr r0, [r1] + strh r2, [r0, 0x2] + movs r4, 0 + adds r5, r1, 0 +_080FDBBA: + ldr r0, [r5] + lsls r2, r4, 1 + adds r2, r0 + adds r0, r4, 0x2 + lsls r3, r0, 1 + lsls r1, r0, 11 + lsls r0, 6 + orrs r1, r0 + orrs r1, r3 + strh r1, [r2, 0x4] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xD + bls _080FDBBA + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FDBE0: .4byte gUnknown_03005E08 + thumb_func_end sub_80FDBA8 + + thumb_func_start sub_80FDBE4 +sub_80FDBE4: @ 80FDBE4 + push {r4,lr} + ldr r2, _080FDC14 + ldr r1, [r2] + movs r0, 0 + strh r0, [r1] + movs r3, 0 + adds r4, r2, 0 +_080FDBF2: + ldr r0, [r4] + lsls r2, r3, 1 + adds r2, r0 + lsls r0, r3, 10 + lsls r1, r3, 5 + orrs r0, r1 + orrs r0, r3 + strh r0, [r2, 0x2] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1F + bls _080FDBF2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FDC14: .4byte gUnknown_03005E08 + thumb_func_end sub_80FDBE4 + + thumb_func_start sub_80FDC18 +sub_80FDC18: @ 80FDC18 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + movs r1, 0xDF + mov r9, r1 + cmp r0, 0 + bne _080FDC30 + movs r2, 0xFF + mov r9, r2 +_080FDC30: + movs r6, 0 + ldr r3, _080FDCB4 + mov r12, r3 + mov r0, r9 + lsls r4, r0, 1 + ldr r5, _080FDCB8 + cmp r6, r9 + bcs _080FDC54 + movs r2, 0 +_080FDC42: + ldr r0, [r3] + lsls r1, r6, 1 + adds r1, r0 + strh r2, [r1] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, r9 + bcc _080FDC42 +_080FDC54: + mov r1, r12 + ldr r0, [r1] + adds r0, r4, r0 + ldr r2, _080FDCBC + adds r1, r2, 0 + strh r1, [r0] + movs r3, 0 + ldrb r5, [r5] + cmp r3, r5 + bcs _080FDD58 +_080FDC68: + ldr r2, _080FDCC0 + ldr r0, _080FDCC4 + ldrb r1, [r0] + adds r1, r3 + ldr r0, _080FDCC8 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + ldr r1, [r2] + adds r1, r0 + ldr r0, _080FDCCC + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r6, 0 + ldr r0, _080FDCD0 + adds r2, r0, 0 + adds r3, 0x1 + mov r10, r3 + ldrb r3, [r2] + cmp r6, r3 + bcs _080FDD4A + ldr r0, _080FDCD4 + mov r8, r0 +_080FDC98: + ldrh r0, [r4] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080FDCD8 + mov r1, r8 + ldrh r0, [r1] + strh r0, [r4] + adds r6, 0x1 + adds r7, r4, 0x2 + b _080FDD3E + .align 2, 0 +_080FDCB4: .4byte gUnknown_03005E08 +_080FDCB8: .4byte gUnknown_03005DF0 +_080FDCBC: .4byte 0x00003def +_080FDCC0: .4byte gUnknown_03005DEC +_080FDCC4: .4byte gUnknown_03005DFC +_080FDCC8: .4byte gUnknown_03005E04 +_080FDCCC: .4byte gUnknown_03005DE8 +_080FDCD0: .4byte gUnknown_03005DF8 +_080FDCD4: .4byte gUnknown_03005E0C +_080FDCD8: + adds r0, r4, 0 + bl sub_80FE038 + lsls r0, 16 + lsrs r5, r0, 16 + movs r3, 0x1 + adds r6, 0x1 + adds r7, r4, 0x2 + cmp r3, r9 + bcs _080FDD34 + ldr r0, _080FDD04 + ldr r2, [r0] + ldrh r1, [r2, 0x2] + mov r12, r0 + cmp r1, 0 + bne _080FDD08 + strh r5, [r2, 0x2] + mov r2, r8 + ldrh r0, [r2] + adds r0, 0x1 + b _080FDD32 + .align 2, 0 +_080FDD04: .4byte gUnknown_03005E08 +_080FDD08: + mov r2, r12 + ldr r1, [r2] + lsls r0, r3, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r5 + beq _080FDD2C + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r9 + bcs _080FDD34 + lsls r0, r3, 1 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, 0 + bne _080FDD08 + strh r5, [r1] +_080FDD2C: + mov r1, r8 + ldrh r0, [r1] + adds r0, r3 +_080FDD32: + strh r0, [r4] +_080FDD34: + ldr r2, _080FDD68 + cmp r3, r9 + bne _080FDD3E + mov r3, r9 + strh r3, [r4] +_080FDD3E: + lsls r0, r6, 24 + lsrs r6, r0, 24 + adds r4, r7, 0 + ldrb r0, [r2] + cmp r6, r0 + bcc _080FDC98 +_080FDD4A: + mov r1, r10 + lsls r0, r1, 24 + lsrs r3, r0, 24 + ldr r0, _080FDD6C + ldrb r0, [r0] + cmp r3, r0 + bcc _080FDC68 +_080FDD58: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FDD68: .4byte gUnknown_03005DF8 +_080FDD6C: .4byte gUnknown_03005DF0 + thumb_func_end sub_80FDC18 + + thumb_func_start sub_80FDD70 +sub_80FDD70: @ 80FDD70 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r2, 0 + ldr r0, _080FDDC4 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FDE14 + ldr r0, _080FDDC8 + mov r8, r0 +_080FDD84: + ldr r0, _080FDDCC + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FDDD0 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r3, r8 + ldr r1, [r3] + adds r1, r0 + ldr r0, _080FDDD4 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r6, 0 + ldr r0, _080FDDD8 + adds r3, r0, 0 + adds r7, r2, 0x1 + ldrb r0, [r3] + cmp r6, r0 + bcs _080FDE08 + ldr r5, _080FDDDC +_080FDDB0: + ldrh r0, [r4] + movs r2, 0x80 + lsls r2, 8 + adds r1, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080FDDE0 + ldrh r0, [r5] + strh r0, [r4] + b _080FDDFA + .align 2, 0 +_080FDDC4: .4byte gUnknown_03005DF0 +_080FDDC8: .4byte gUnknown_03005DEC +_080FDDCC: .4byte gUnknown_03005DFC +_080FDDD0: .4byte gUnknown_03005E04 +_080FDDD4: .4byte gUnknown_03005DE8 +_080FDDD8: .4byte gUnknown_03005DF8 +_080FDDDC: .4byte gUnknown_03005E0C +_080FDDE0: + adds r0, r4, 0 + bl sub_80FD4DC + lsls r0, 16 + cmp r0, 0 + bne _080FDDF2 + ldrh r0, [r5] + adds r0, 0x1 + b _080FDDF6 +_080FDDF2: + ldrh r0, [r5] + adds r0, 0x2 +_080FDDF6: + strh r0, [r4] + ldr r3, _080FDE20 +_080FDDFA: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r4, 0x2 + ldrb r0, [r3] + cmp r6, r0 + bcc _080FDDB0 +_080FDE08: + lsls r0, r7, 24 + lsrs r2, r0, 24 + ldr r0, _080FDE24 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FDD84 +_080FDE14: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FDE20: .4byte gUnknown_03005DF8 +_080FDE24: .4byte gUnknown_03005DF0 + thumb_func_end sub_80FDD70 + + thumb_func_start sub_80FDE28 +sub_80FDE28: @ 80FDE28 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r2, 0 + ldr r0, _080FDE7C + ldrb r0, [r0] + cmp r2, r0 + bcs _080FDEC4 + ldr r0, _080FDE80 + mov r8, r0 +_080FDE3E: + ldr r0, _080FDE84 + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FDE88 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r3, r8 + ldr r1, [r3] + adds r1, r0 + ldr r0, _080FDE8C + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r5, 0 + ldr r0, _080FDE90 + adds r7, r2, 0x1 + ldrb r0, [r0] + cmp r5, r0 + bcs _080FDEB8 + ldr r6, _080FDE94 + movs r0, 0x80 + lsls r0, 8 + adds r2, r0, 0 +_080FDE6E: + ldrh r0, [r4] + ands r0, r2 + cmp r0, 0 + beq _080FDE98 + ldrh r0, [r6] + strh r0, [r4] + b _080FDEA8 + .align 2, 0 +_080FDE7C: .4byte gUnknown_03005DF0 +_080FDE80: .4byte gUnknown_03005DEC +_080FDE84: .4byte gUnknown_03005DFC +_080FDE88: .4byte gUnknown_03005E04 +_080FDE8C: .4byte gUnknown_03005DE8 +_080FDE90: .4byte gUnknown_03005DF8 +_080FDE94: .4byte gUnknown_03005E0C +_080FDE98: + adds r0, r4, 0 + str r2, [sp] + bl sub_80FE17C + ldrh r1, [r6] + adds r0, r1 + strh r0, [r4] + ldr r2, [sp] +_080FDEA8: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x2 + ldr r0, _080FDED0 + ldrb r0, [r0] + cmp r5, r0 + bcc _080FDE6E +_080FDEB8: + lsls r0, r7, 24 + lsrs r2, r0, 24 + ldr r0, _080FDED4 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FDE3E +_080FDEC4: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FDED0: .4byte gUnknown_03005DF8 +_080FDED4: .4byte gUnknown_03005DF0 + thumb_func_end sub_80FDE28 + + thumb_func_start sub_80FDED8 +sub_80FDED8: @ 80FDED8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r2, 0 + ldr r0, _080FDF2C + ldrb r0, [r0] + cmp r2, r0 + bcs _080FDF74 + ldr r0, _080FDF30 + mov r8, r0 +_080FDEEE: + ldr r0, _080FDF34 + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FDF38 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r3, r8 + ldr r1, [r3] + adds r1, r0 + ldr r0, _080FDF3C + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r5, 0 + ldr r0, _080FDF40 + adds r7, r2, 0x1 + ldrb r0, [r0] + cmp r5, r0 + bcs _080FDF68 + ldr r6, _080FDF44 + movs r0, 0x80 + lsls r0, 8 + adds r2, r0, 0 +_080FDF1E: + ldrh r0, [r4] + ands r0, r2 + cmp r0, 0 + beq _080FDF48 + ldrh r0, [r6] + strh r0, [r4] + b _080FDF58 + .align 2, 0 +_080FDF2C: .4byte gUnknown_03005DF0 +_080FDF30: .4byte gUnknown_03005DEC +_080FDF34: .4byte gUnknown_03005DFC +_080FDF38: .4byte gUnknown_03005E04 +_080FDF3C: .4byte gUnknown_03005DE8 +_080FDF40: .4byte gUnknown_03005DF8 +_080FDF44: .4byte gUnknown_03005E0C +_080FDF48: + adds r0, r4, 0 + str r2, [sp] + bl sub_80FE1B0 + ldrh r1, [r6] + adds r0, r1 + strh r0, [r4] + ldr r2, [sp] +_080FDF58: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x2 + ldr r0, _080FDF80 + ldrb r0, [r0] + cmp r5, r0 + bcc _080FDF1E +_080FDF68: + lsls r0, r7, 24 + lsrs r2, r0, 24 + ldr r0, _080FDF84 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FDEEE +_080FDF74: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FDF80: .4byte gUnknown_03005DF8 +_080FDF84: .4byte gUnknown_03005DF0 + thumb_func_end sub_80FDED8 + + thumb_func_start sub_80FDF88 +sub_80FDF88: @ 80FDF88 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r2, 0 + ldr r0, _080FDFDC + ldrb r0, [r0] + cmp r2, r0 + bcs _080FE024 + ldr r0, _080FDFE0 + mov r8, r0 +_080FDF9E: + ldr r0, _080FDFE4 + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FDFE8 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r3, r8 + ldr r1, [r3] + adds r1, r0 + ldr r0, _080FDFEC + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r5, 0 + ldr r0, _080FDFF0 + adds r7, r2, 0x1 + ldrb r0, [r0] + cmp r5, r0 + bcs _080FE018 + ldr r6, _080FDFF4 + movs r0, 0x80 + lsls r0, 8 + adds r2, r0, 0 +_080FDFCE: + ldrh r0, [r4] + ands r0, r2 + cmp r0, 0 + beq _080FDFF8 + ldrh r0, [r6] + strh r0, [r4] + b _080FE008 + .align 2, 0 +_080FDFDC: .4byte gUnknown_03005DF0 +_080FDFE0: .4byte gUnknown_03005DEC +_080FDFE4: .4byte gUnknown_03005DFC +_080FDFE8: .4byte gUnknown_03005E04 +_080FDFEC: .4byte gUnknown_03005DE8 +_080FDFF0: .4byte gUnknown_03005DF8 +_080FDFF4: .4byte gUnknown_03005E0C +_080FDFF8: + adds r0, r4, 0 + str r2, [sp] + bl sub_80FE0AC + ldrh r1, [r6] + adds r0, r1 + strh r0, [r4] + ldr r2, [sp] +_080FE008: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x2 + ldr r0, _080FE030 + ldrb r0, [r0] + cmp r5, r0 + bcc _080FDFCE +_080FE018: + lsls r0, r7, 24 + lsrs r2, r0, 24 + ldr r0, _080FE034 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FDF9E +_080FE024: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FE030: .4byte gUnknown_03005DF8 +_080FE034: .4byte gUnknown_03005DF0 + thumb_func_end sub_80FDF88 + + thumb_func_start sub_80FE038 +sub_80FE038: @ 80FE038 + push {r4,lr} + ldrh r0, [r0] + movs r1, 0x1F + movs r4, 0x1F + ands r4, r0 + lsls r0, 16 + lsrs r3, r0, 21 + ands r3, r1 + lsrs r2, r0, 26 + ands r2, r1 + movs r1, 0x3 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _080FE05C + movs r0, 0x1C + ands r0, r4 + adds r4, r0, 0x4 +_080FE05C: + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080FE06A + movs r0, 0x1C + ands r0, r3 + adds r3, r0, 0x4 +_080FE06A: + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080FE078 + movs r0, 0x1C + ands r0, r2 + adds r2, r0, 0x4 +_080FE078: + cmp r4, 0x5 + bhi _080FE07E + movs r4, 0x6 +_080FE07E: + cmp r4, 0x1E + bls _080FE084 + movs r4, 0x1E +_080FE084: + cmp r3, 0x5 + bhi _080FE08A + movs r3, 0x6 +_080FE08A: + cmp r3, 0x1E + bls _080FE090 + movs r3, 0x1E +_080FE090: + cmp r2, 0x5 + bhi _080FE096 + movs r2, 0x6 +_080FE096: + cmp r2, 0x1E + bls _080FE09C + movs r2, 0x1E +_080FE09C: + lsls r0, r2, 10 + lsls r1, r3, 5 + orrs r0, r1 + orrs r4, r0 + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80FE038 + + thumb_func_start sub_80FE0AC +sub_80FE0AC: @ 80FE0AC + push {lr} + ldrh r0, [r0] + movs r1, 0x1F + movs r3, 0x1F + ands r3, r0 + lsls r0, 16 + lsrs r2, r0, 21 + ands r2, r1 + lsrs r0, 26 + ands r0, r1 + cmp r3, 0xB + bhi _080FE0D0 + cmp r2, 0xA + bhi _080FE0D0 + cmp r0, 0xA + bhi _080FE0D0 + movs r0, 0x1 + b _080FE176 +_080FE0D0: + cmp r3, 0x13 + bls _080FE0F4 + cmp r2, 0x13 + bls _080FE0DC + cmp r0, 0x13 + bhi _080FE100 +_080FE0DC: + cmp r3, 0x13 + bls _080FE0F4 + cmp r2, 0x13 + bls _080FE0EA + cmp r0, 0xE + bhi _080FE100 + b _080FE138 +_080FE0EA: + cmp r0, 0x13 + bls _080FE0F4 + cmp r2, 0xE + bhi _080FE100 + b _080FE114 +_080FE0F4: + cmp r2, 0x13 + bls _080FE104 + cmp r0, 0x13 + bls _080FE104 + cmp r3, 0xE + bls _080FE15C +_080FE100: + movs r0, 0x2 + b _080FE176 +_080FE104: + cmp r3, 0x13 + bls _080FE128 + cmp r2, 0xB + bls _080FE11C + cmp r0, 0xB + bls _080FE118 + cmp r2, r0 + bcs _080FE138 +_080FE114: + movs r0, 0x8 + b _080FE176 +_080FE118: + movs r0, 0xA + b _080FE176 +_080FE11C: + cmp r0, 0xB + bls _080FE124 + movs r0, 0xD + b _080FE176 +_080FE124: + movs r0, 0x4 + b _080FE176 +_080FE128: + cmp r2, 0x13 + bls _080FE14C + cmp r3, 0xB + bls _080FE140 + cmp r0, 0xB + bls _080FE13C + cmp r3, r0 + bcc _080FE15C +_080FE138: + movs r0, 0x7 + b _080FE176 +_080FE13C: + movs r0, 0xB + b _080FE176 +_080FE140: + cmp r0, 0xB + bls _080FE148 + movs r0, 0xE + b _080FE176 +_080FE148: + movs r0, 0x5 + b _080FE176 +_080FE14C: + cmp r0, 0x13 + bls _080FE174 + cmp r3, 0xB + bls _080FE160 + cmp r2, 0xB + bls _080FE168 + cmp r3, r2 + bcs _080FE114 +_080FE15C: + movs r0, 0x9 + b _080FE176 +_080FE160: + cmp r2, 0xB + bls _080FE168 + movs r0, 0xC + b _080FE176 +_080FE168: + cmp r0, 0xB + bls _080FE170 + movs r0, 0xF + b _080FE176 +_080FE170: + movs r0, 0x6 + b _080FE176 +_080FE174: + movs r0, 0x3 +_080FE176: + pop {r1} + bx r1 + thumb_func_end sub_80FE0AC + + thumb_func_start sub_80FE17C +sub_80FE17C: @ 80FE17C + push {lr} + ldrh r1, [r0] + movs r3, 0x1F + movs r0, 0x1F + ands r0, r1 + lsls r1, 16 + lsrs r2, r1, 21 + ands r2, r3 + lsrs r1, 26 + ands r1, r3 + adds r0, r2 + adds r0, r1 + movs r1, 0x3 + bl __divsi3 + movs r1, 0x1E + ands r0, r1 + lsls r0, 16 + cmp r0, 0 + beq _080FE1A8 + lsrs r0, 17 + b _080FE1AA +_080FE1A8: + movs r0, 0x1 +_080FE1AA: + pop {r1} + bx r1 + thumb_func_end sub_80FE17C + + thumb_func_start sub_80FE1B0 +sub_80FE1B0: @ 80FE1B0 + push {lr} + ldrh r1, [r0] + movs r3, 0x1F + movs r0, 0x1F + ands r0, r1 + lsls r1, 16 + lsrs r2, r1, 21 + ands r2, r3 + lsrs r1, 26 + ands r1, r3 + adds r0, r2 + adds r0, r1 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80FE1B0 + + thumb_func_start sub_80FE1DC +sub_80FE1DC: @ 80FE1DC + push {lr} + sub sp, 0x8 + bl sub_80FE2B4 + movs r0, 0 + movs r1, 0 + movs r2, 0xA + movs r3, 0x9 + bl MenuDrawTextWindow + ldr r3, _080FE218 + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x4 + bl PrintMenuItems + ldr r0, _080FE21C + ldrb r0, [r0] + str r0, [sp] + movs r0, 0x9 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x4 + bl InitMenu + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080FE218: .4byte gUnknown_083EC604 +_080FE21C: .4byte gUnknown_020388D4 + thumb_func_end sub_80FE1DC + + thumb_func_start sub_80FE220 +sub_80FE220: @ 80FE220 + push {lr} + ldr r1, _080FE238 + movs r0, 0 + strb r0, [r1] + bl ScriptContext2_Enable + bl sub_80FE1DC + bl sub_80FE394 + pop {r0} + bx r0 + .align 2, 0 +_080FE238: .4byte gUnknown_020388D4 + thumb_func_end sub_80FE220 + + thumb_func_start sub_80FE23C +sub_80FE23C: @ 80FE23C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80FE220 + ldr r1, _080FE25C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080FE260 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE25C: .4byte gTasks +_080FE260: .4byte sub_80FE2EC + thumb_func_end sub_80FE23C + + thumb_func_start sub_80FE264 +sub_80FE264: @ 80FE264 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80FE23C + ldr r1, _080FE284 + ldr r0, _080FE288 + str r0, [r1] + adds r0, 0x10 + str r0, [r1, 0x4] + movs r2, 0 + movs r0, 0x10 + strb r0, [r1, 0x8] + strb r2, [r1, 0x9] + pop {r0} + bx r0 + .align 2, 0 +_080FE284: .4byte 0x0201f000 +_080FE288: .4byte gSaveBlock1 + 0x1A1A + thumb_func_end sub_80FE264 + + thumb_func_start sub_80FE28C +sub_80FE28C: @ 80FE28C + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80FE23C + ldr r1, _080FE2AC + ldr r0, _080FE2B0 + str r0, [r1] + adds r0, 0xC + str r0, [r1, 0x4] + movs r0, 0xC + strb r0, [r1, 0x8] + movs r0, 0x1 + strb r0, [r1, 0x9] + pop {r0} + bx r0 + .align 2, 0 +_080FE2AC: .4byte 0x0201f000 +_080FE2B0: .4byte gSaveBlock1 + 0x2688 + thumb_func_end sub_80FE28C + + thumb_func_start sub_80FE2B4 +sub_80FE2B4: @ 80FE2B4 + push {lr} + sub sp, 0x8 + ldr r1, _080FE2E8 + mov r0, sp + movs r2, 0x6 + bl memcpy + add r0, sp, 0x4 + movs r1, 0xDF + movs r2, 0x2 + bl LoadPalette + mov r0, sp + adds r0, 0x2 + movs r1, 0xD1 + movs r2, 0x2 + bl LoadPalette + mov r0, sp + movs r1, 0xD8 + movs r2, 0x2 + bl LoadPalette + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080FE2E8: .4byte gUnknown_083EC654 + thumb_func_end sub_80FE2B4 + + thumb_func_start sub_80FE2EC +sub_80FE2EC: @ 80FE2EC + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + adds r7, r6, 0 + ldr r0, _080FE368 + ldrb r1, [r0, 0x7] + movs r5, 0x80 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _080FE38C + ldr r4, _080FE36C + ldrh r1, [r4, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080FE324 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + ldr r1, _080FE370 + strb r0, [r1] + bl sub_80FE394 +_080FE324: + ldrh r1, [r4, 0x2E] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080FE342 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + ldr r1, _080FE370 + strb r0, [r1] + bl sub_80FE394 +_080FE342: + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080FE378 + movs r0, 0x5 + bl PlaySE + ldr r1, _080FE374 + ldr r0, _080FE370 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r1, [r0] + adds r0, r6, 0 + bl _call_via_r1 + b _080FE38C + .align 2, 0 +_080FE368: .4byte gPaletteFade +_080FE36C: .4byte gMain +_080FE370: .4byte gUnknown_020388D4 +_080FE374: .4byte gUnknown_083EC604 +_080FE378: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080FE38C + movs r0, 0x5 + bl PlaySE + adds r0, r7, 0 + bl gpu_pal_decompress_alloc_tag_and_upload +_080FE38C: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80FE2EC + + thumb_func_start sub_80FE394 +sub_80FE394: @ 80FE394 + push {lr} + movs r0, 0x2 + movs r1, 0xF + movs r2, 0x1B + movs r3, 0x12 + bl MenuFillWindowRectWithBlankTile + ldr r1, _080FE3BC + ldr r0, _080FE3C0 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + pop {r0} + bx r0 + .align 2, 0 +_080FE3BC: .4byte gUnknown_083EC624 +_080FE3C0: .4byte gUnknown_020388D4 + thumb_func_end sub_80FE394 + + thumb_func_start gpu_pal_decompress_alloc_tag_and_upload +gpu_pal_decompress_alloc_tag_and_upload: @ 80FE3C4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0xA + movs r3, 0x9 + bl MenuZeroFillWindowRect + movs r0, 0x2 + movs r1, 0xF + movs r2, 0x1B + movs r3, 0x12 + bl MenuFillWindowRectWithBlankTile + movs r0, 0x6 + bl FreeSpritePaletteByTag + ldr r0, _080FE404 + ldrb r0, [r0, 0x9] + cmp r0, 0 + bne _080FE40C + ldr r0, _080FE408 + bl ScriptContext1_SetupScript + adds r0, r4, 0 + bl DestroyTask + b _080FE412 + .align 2, 0 +_080FE404: .4byte 0x0201f000 +_080FE408: .4byte gUnknown_0815F399 +_080FE40C: + adds r0, r4, 0 + bl sub_8139E24 +_080FE412: + pop {r4} + pop {r0} + bx r0 + thumb_func_end gpu_pal_decompress_alloc_tag_and_upload + + thumb_func_start sub_80FE418 +sub_80FE418: @ 80FE418 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80FE5AC + pop {r0} + bx r0 + thumb_func_end sub_80FE418 + + thumb_func_start sub_80FE428 +sub_80FE428: @ 80FE428 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080FE464 + ldrb r0, [r0] + str r0, [sp] + movs r0, 0x9 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x4 + bl InitMenu + bl sub_80FE394 + ldr r1, _080FE468 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080FE46C + str r1, [r0] + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE464: .4byte gUnknown_020388D4 +_080FE468: .4byte gTasks +_080FE46C: .4byte sub_80FE2EC + thumb_func_end sub_80FE428 + + thumb_func_start sub_80FE470 +sub_80FE470: @ 80FE470 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r4, r0, 0 + mov r8, r1 + mov r9, r2 + adds r5, r3, 0 + lsls r4, 24 + lsrs r4, 24 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r5, 24 + lsrs r5, 24 + bl sub_8072CBC + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldr r7, _080FE51C + movs r0, 0xFC + strb r0, [r7] + movs r0, 0x5 + mov r10, r0 + strb r0, [r7, 0x1] + strb r5, [r7, 0x2] + adds r7, 0x3 + ldr r1, _080FE520 + lsls r0, r4, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r7, 0 + bl StringCopy + adds r7, r0, 0 + adds r0, r4, 0 + bl sub_8134194 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r7, 0 + movs r2, 0x56 + movs r3, 0x1 + bl sub_8072C14 + adds r7, r0, 0 + movs r0, 0xBA + strb r0, [r7] + adds r7, 0x1 + ldr r0, _080FE524 + lsls r4, 3 + adds r4, r0 + ldrb r1, [r4, 0x4] + adds r0, r7, 0 + movs r2, 0x68 + movs r3, 0x1 + bl sub_8072C14 + adds r7, r0, 0 + movs r0, 0xFC + strb r0, [r7] + mov r0, r10 + strb r0, [r7, 0x1] + strb r6, [r7, 0x2] + movs r0, 0xFF + strb r0, [r7, 0x3] + ldr r0, _080FE51C + mov r1, r8 + mov r2, r9 + bl MenuPrint + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FE51C: .4byte gStringVar4 +_080FE520: .4byte gUnknown_083EC5E4 +_080FE524: .4byte gUnknown_08402E40 + thumb_func_end sub_80FE470 + + thumb_func_start sub_80FE528 +sub_80FE528: @ 80FE528 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x13 + bl MenuDrawTextWindow + movs r5, 0 + ldr r1, _080FE574 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r1 +_080FE548: + ldr r0, _080FE578 + ldrb r0, [r0, 0x9] + cmp r0, 0x1 + bne _080FE57C + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080FE57C + cmp r5, 0x6 + beq _080FE57C + cmp r5, 0x7 + beq _080FE57C + lsls r2, r5, 1 + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + movs r1, 0x1 + movs r3, 0xD + bl sub_80FE470 + b _080FE58E + .align 2, 0 +_080FE574: .4byte gTasks +_080FE578: .4byte 0x0201f000 +_080FE57C: + lsls r2, r5, 1 + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + movs r1, 0x1 + movs r3, 0xFF + bl sub_80FE470 +_080FE58E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x7 + bls _080FE548 + ldr r0, _080FE5A8 + movs r1, 0x1 + movs r2, 0x11 + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FE5A8: .4byte gUnknownText_Exit + thumb_func_end sub_80FE528 + + thumb_func_start sub_80FE5AC +sub_80FE5AC: @ 80FE5AC + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl sub_80FE528 + ldr r0, _080FE5F8 + ldrb r0, [r0] + str r0, [sp] + movs r0, 0xD + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x9 + bl InitMenu + ldr r1, _080FE5FC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080FE600 + str r1, [r0] + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE5F8: .4byte gUnknown_020388F6 +_080FE5FC: .4byte gTasks +_080FE600: .4byte sub_80FE604 + thumb_func_end sub_80FE5AC + + thumb_func_start sub_80FE604 +sub_80FE604: @ 80FE604 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, r5, 0 + ldr r0, _080FE638 + ldrb r1, [r0, 0x7] + movs r3, 0x80 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080FE61C + b _080FE720 +_080FE61C: + ldr r2, _080FE63C + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080FE640 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _080FE720 + .align 2, 0 +_080FE638: .4byte gPaletteFade +_080FE63C: .4byte gMain +_080FE640: + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080FE656 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _080FE720 +_080FE656: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080FE70C + movs r0, 0x5 + bl PlaySE + bl GetMenuCursorPos + ldr r4, _080FE6C0 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x8 + beq _080FE704 + ldrb r0, [r4] + bl sub_8134194 + ldr r1, _080FE6C4 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + beq _080FE6DC + ldrb r0, [r4] + bl sub_8134104 + ldr r2, _080FE6C8 + ldr r1, _080FE6CC + ldrb r0, [r4] + lsls r0, 3 + adds r0, r1 + ldr r0, [r0] + str r0, [r2] + adds r0, r5, 0 + bl sub_80FEF50 + bl sub_80F944C + ldr r0, _080FE6D0 + movs r1, 0x8 + bl sub_80F9480 + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + ldr r1, _080FE6D4 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080FE6D8 + str r1, [r0] + b _080FE720 + .align 2, 0 +_080FE6C0: .4byte gUnknown_020388F6 +_080FE6C4: .4byte gUnknown_020388D5 +_080FE6C8: .4byte gUnknown_020388D0 +_080FE6CC: .4byte gUnknown_08402E40 +_080FE6D0: .4byte gUnknown_020388F7 +_080FE6D4: .4byte gTasks +_080FE6D8: .4byte sub_80FE868 +_080FE6DC: + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _080FE6FC + ldr r2, _080FE700 + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _080FE720 + .align 2, 0 +_080FE6FC: .4byte gSecretBaseText_NoDecors +_080FE700: .4byte sub_80FE418 +_080FE704: + adds r0, r5, 0 + bl sub_80FE728 + b _080FE720 +_080FE70C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080FE720 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_80FE728 +_080FE720: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80FE604 + + thumb_func_start sub_80FE728 +sub_80FE728: @ 80FE728 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080FE748 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1E + ldrsh r0, [r0, r1] + cmp r0, 0x3 + beq _080FE74C + adds r0, r2, 0 + bl sub_80FE758 + b _080FE752 + .align 2, 0 +_080FE748: .4byte gTasks +_080FE74C: + adds r0, r2, 0 + bl sub_8109DAC +_080FE752: + pop {r0} + bx r0 + thumb_func_end sub_80FE728 + + thumb_func_start sub_80FE758 +sub_80FE758: @ 80FE758 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _080FE794 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x1E + ldrsh r0, [r5, r1] + cmp r0, 0x2 + beq _080FE79C + bl sub_80FE1DC + bl MenuDisplayMessageBox + bl sub_80FE394 + ldr r0, _080FE798 + str r0, [r5] + b _080FE7A2 + .align 2, 0 +_080FE794: .4byte gTasks +_080FE798: .4byte sub_80FE2EC +_080FE79C: + adds r0, r4, 0 + bl sub_80B3068 +_080FE7A2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80FE758 + + thumb_func_start sub_80FE7A8 +sub_80FE7A8: @ 80FE7A8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080FE7CC + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r3, 0 + movs r2, 0x3 + strh r2, [r1, 0x1E] + ldr r1, _080FE7D0 + strb r3, [r1] + bl sub_80FE5AC + pop {r0} + bx r0 + .align 2, 0 +_080FE7CC: .4byte gTasks +_080FE7D0: .4byte gUnknown_020388F6 + thumb_func_end sub_80FE7A8 + + thumb_func_start sub_80FE7D4 +sub_80FE7D4: @ 80FE7D4 + push {lr} + lsls r1, 24 + ldr r2, _080FE7E8 + lsrs r1, 22 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_080FE7E8: .4byte gUnknown_083EC5E4 + thumb_func_end sub_80FE7D4 + + thumb_func_start sub_80FE7EC +sub_80FE7EC: @ 80FE7EC + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl sub_80FEC94 + ldr r0, _080FE858 + ldrb r0, [r0] + bl sub_80FECB8 + movs r0, 0xF + movs r1, 0xC + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r4, _080FE85C + ldr r0, _080FE860 + ldrb r0, [r0] + ldrb r1, [r4] + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_80FECE0 + ldr r0, _080FE864 + ldrb r3, [r0] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r4] + str r0, [sp] + movs r0, 0xD + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x2 + bl InitMenu + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE858: .4byte gUnknown_020388F6 +_080FE85C: .4byte gUnknown_020388F2 +_080FE860: .4byte gUnknown_020388F4 +_080FE864: .4byte gUnknown_020388F3 + thumb_func_end sub_80FE7EC + + thumb_func_start sub_80FE868 +sub_80FE868: @ 80FE868 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80FE7EC + ldr r1, _080FE88C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080FE890 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE88C: .4byte gTasks +_080FE890: .4byte sub_80FE948 + thumb_func_end sub_80FE868 + + thumb_func_start sub_80FE894 +sub_80FE894: @ 80FE894 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r7, r2, 24 + movs r0, 0 + mov r10, r0 + ldr r6, _080FE920 + ldrb r1, [r6] + ldr r4, _080FE924 + ldrb r0, [r4] + adds r1, r0 + ldr r2, _080FE928 + mov r9, r2 + ldrb r0, [r2] + cmp r1, r0 + bne _080FE8C8 + movs r1, 0x1 + mov r10, r1 +_080FE8C8: + movs r0, 0x5 + bl PlaySE + lsls r0, r5, 24 + asrs r0, 24 + cmp r0, 0 + beq _080FE8DC + bl MoveMenuCursor + strb r0, [r6] +_080FE8DC: + cmp r7, 0 + beq _080FE8EE + ldrb r0, [r4] + adds r0, r7 + strb r0, [r4] + mov r0, r8 + movs r1, 0x1 + bl sub_80FEABC +_080FE8EE: + ldrb r0, [r6] + ldrb r1, [r4] + adds r0, r1 + mov r2, r9 + ldrb r2, [r2] + cmp r0, r2 + beq _080FE92C + mov r0, r10 + cmp r0, 0 + beq _080FE90E + movs r0, 0xF + movs r1, 0xC + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow +_080FE90E: + ldrb r0, [r4] + ldrb r6, [r6] + adds r0, r6 + lsls r0, 24 + lsrs r0, 24 + bl sub_80FECE0 + b _080FE938 + .align 2, 0 +_080FE920: .4byte gUnknown_020388F2 +_080FE924: .4byte gUnknown_020388F4 +_080FE928: .4byte gUnknown_020388D5 +_080FE92C: + movs r0, 0xF + movs r1, 0xC + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect +_080FE938: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80FE894 + + thumb_func_start sub_80FE948 +sub_80FE948: @ 80FE948 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080FE980 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080FE95C + b _080FEAAC +_080FE95C: + ldr r0, _080FE984 + ldrh r1, [r0, 0x30] + movs r0, 0xF0 + ands r0, r1 + cmp r0, 0x40 + bne _080FE9A0 + ldr r0, _080FE988 + ldrb r0, [r0] + cmp r0, 0 + beq _080FE98C + movs r1, 0x1 + negs r1, r1 + adds r0, r4, 0 + movs r2, 0 + bl sub_80FE894 + b _080FE9A0 + .align 2, 0 +_080FE980: .4byte gPaletteFade +_080FE984: .4byte gMain +_080FE988: .4byte gUnknown_020388F2 +_080FE98C: + ldr r0, _080FE9C4 + ldrb r0, [r0] + cmp r0, 0 + beq _080FE9A0 + movs r2, 0x1 + negs r2, r2 + adds r0, r4, 0 + movs r1, 0 + bl sub_80FE894 +_080FE9A0: + ldr r0, _080FE9C8 + ldrh r1, [r0, 0x30] + movs r0, 0xF0 + ands r0, r1 + cmp r0, 0x80 + bne _080FE9EE + ldr r2, _080FE9CC + ldr r1, _080FE9D0 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + beq _080FE9D4 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_80FE894 + b _080FE9EE + .align 2, 0 +_080FE9C4: .4byte gUnknown_020388F4 +_080FE9C8: .4byte gMain +_080FE9CC: .4byte gUnknown_020388F2 +_080FE9D0: .4byte gUnknown_020388F3 +_080FE9D4: + ldr r0, _080FEA38 + ldrb r0, [r0] + ldrb r1, [r2] + adds r0, r1 + ldr r1, _080FEA3C + ldrb r1, [r1] + cmp r0, r1 + beq _080FE9EE + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x1 + bl sub_80FE894 +_080FE9EE: + ldr r0, _080FEA40 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080FEA7C + bl sub_8072DEC + movs r0, 0x5 + bl PlaySE + ldr r2, _080FEA44 + ldr r1, _080FEA48 + ldr r0, _080FEA38 + ldrb r0, [r0] + ldrb r1, [r1] + adds r0, r1 + strb r0, [r2] + ldr r1, _080FEA3C + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bne _080FEA54 + ldr r1, _080FEA4C + ldr r2, _080FEA50 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r2 + movs r2, 0x1E + ldrsh r0, [r0, r2] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + b _080FEA68 + .align 2, 0 +_080FEA38: .4byte gUnknown_020388F4 +_080FEA3C: .4byte gUnknown_020388D5 +_080FEA40: .4byte gMain +_080FEA44: .4byte gUnknown_020388F5 +_080FEA48: .4byte gUnknown_020388F2 +_080FEA4C: .4byte gUnknown_083EC634 +_080FEA50: .4byte gTasks +_080FEA54: + ldr r2, _080FEA74 + ldr r1, _080FEA78 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1E + ldrsh r0, [r0, r1] + lsls r0, 3 + adds r0, r2 +_080FEA68: + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + b _080FEAAC + .align 2, 0 +_080FEA74: .4byte gUnknown_083EC634 +_080FEA78: .4byte gTasks +_080FEA7C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080FEAAC + bl sub_8072DEC + movs r0, 0x5 + bl PlaySE + ldr r1, _080FEAB4 + ldr r2, _080FEAB8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r2 + movs r2, 0x1E + ldrsh r0, [r0, r2] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 +_080FEAAC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FEAB4: .4byte gUnknown_083EC634 +_080FEAB8: .4byte gTasks + thumb_func_end sub_80FE948 + + thumb_func_start sub_80FEABC +sub_80FEABC: @ 80FEABC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r4, _080FEB58 + ldrb r0, [r4] + cmp r0, 0 + bne _080FEADE + movs r0, 0 + bl SetBgTilemapBuffer + ldrb r0, [r4] + cmp r0, 0 + beq _080FEAE8 +_080FEADE: + movs r0, 0 + movs r1, 0x3C + movs r2, 0x8 + bl sub_80F953C +_080FEAE8: + ldr r5, _080FEB58 + ldrb r0, [r5] + adds r0, 0x7 + ldr r4, _080FEB5C + ldrb r1, [r4] + cmp r0, r1 + bne _080FEAFC + movs r0, 0x1 + bl SetBgTilemapBuffer +_080FEAFC: + ldrb r0, [r5] + adds r0, 0x7 + ldrb r4, [r4] + cmp r0, r4 + bge _080FEB10 + movs r0, 0x1 + movs r1, 0x3C + movs r2, 0x98 + bl sub_80F953C +_080FEB10: + ldrb r4, [r5] + adds r0, r4, 0 + adds r0, 0x8 + cmp r4, r0 + blt _080FEB1C + b _080FEC7E +_080FEB1C: + adds r7, r5, 0 +_080FEB1E: + ldrb r1, [r7] + subs r1, r4, r1 + lsls r0, r1, 25 + movs r2, 0x80 + lsls r2, 18 + adds r0, r2 + lsrs r6, r0, 24 + ldr r0, _080FEB60 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080FEB3C + adds r0, r1, 0 + bl sub_80F94F8 +_080FEB3C: + ldr r0, _080FEB5C + ldrb r0, [r0] + cmp r4, r0 + bne _080FEB68 + lsls r2, r6, 3 + movs r0, 0x1 + str r0, [sp] + ldr r0, _080FEB64 + movs r1, 0x8 + movs r3, 0x68 + bl sub_8072A18 + b _080FEC7E + .align 2, 0 +_080FEB58: .4byte gUnknown_020388F4 +_080FEB5C: .4byte gUnknown_020388D5 +_080FEB60: .4byte gUnknown_020388F7 +_080FEB64: .4byte gUnknownText_Exit +_080FEB68: + ldr r0, _080FEBC0 + ldr r1, [r0] + adds r2, r1, r4 + ldrb r1, [r2] + mov r12, r0 + adds r5, r4, 0x1 + cmp r1, 0 + bne _080FEB7A + b _080FEC70 +_080FEB7A: + ldr r0, _080FEBC4 + ldrb r5, [r0, 0x9] + cmp r5, 0x1 + bne _080FEBDC + ldr r0, _080FEBC8 + ldrb r0, [r0] + cmp r0, 0x6 + beq _080FEBDC + cmp r0, 0x7 + beq _080FEBDC + ldr r0, _080FEBCC + mov r3, r8 + lsls r1, r3, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r3, 0x1E + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080FEBDC + ldrb r1, [r2] + lsls r1, 5 + ldr r0, _080FEBD0 + adds r1, r0 + ldr r0, _080FEBD4 + bl StringCopy + lsls r2, r6, 3 + str r5, [sp] + ldr r0, _080FEBD8 + movs r1, 0x8 + movs r3, 0x68 + bl sub_8072A18 + b _080FEBF8 + .align 2, 0 +_080FEBC0: .4byte gUnknown_020388D0 +_080FEBC4: .4byte 0x0201f000 +_080FEBC8: .4byte gUnknown_020388F6 +_080FEBCC: .4byte gTasks +_080FEBD0: .4byte gDecorations + 0x1 +_080FEBD4: .4byte gStringVar1 +_080FEBD8: .4byte gUnknown_083EC65A +_080FEBDC: + mov r1, r12 + ldr r0, [r1] + adds r0, r4 + ldrb r0, [r0] + lsls r0, 5 + ldr r1, _080FEC00 + adds r0, r1 + lsls r2, r6, 3 + movs r1, 0x1 + str r1, [sp] + movs r1, 0x8 + movs r3, 0x68 + bl sub_8072A18 +_080FEBF8: + movs r1, 0 + adds r5, r4, 0x1 + b _080FEC0A + .align 2, 0 +_080FEC00: .4byte gDecorations + 0x1 +_080FEC04: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 +_080FEC0A: + cmp r1, 0xF + bhi _080FEC34 + ldr r0, _080FEC38 + adds r0, r1, r0 + ldrb r0, [r0] + subs r0, 0x1 + cmp r0, r4 + bne _080FEC04 + ldrb r3, [r7] + subs r3, r4, r3 + ldr r1, _080FEC3C + adds r1, r3, r1 + lsls r3, 20 + movs r2, 0xC0 + lsls r2, 13 + adds r3, r2 + asrs r3, 16 + movs r0, 0x4 + movs r2, 0x6C + bl sub_80F94A4 +_080FEC34: + movs r1, 0 + b _080FEC46 + .align 2, 0 +_080FEC38: .4byte gUnknown_020388D6 +_080FEC3C: .4byte gUnknown_020388F7 +_080FEC40: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 +_080FEC46: + cmp r1, 0xB + bhi _080FEC70 + ldr r0, _080FEC8C + adds r0, r1, r0 + ldrb r0, [r0] + subs r0, 0x1 + cmp r0, r4 + bne _080FEC40 + ldrb r3, [r7] + subs r3, r4, r3 + ldr r1, _080FEC90 + adds r1, r3, r1 + lsls r3, 20 + movs r0, 0xC0 + lsls r0, 13 + adds r3, r0 + asrs r3, 16 + movs r0, 0x5 + movs r2, 0x6C + bl sub_80F94A4 +_080FEC70: + lsls r0, r5, 16 + lsrs r4, r0, 16 + ldrb r0, [r7] + adds r0, 0x8 + cmp r4, r0 + bge _080FEC7E + b _080FEB1E +_080FEC7E: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FEC8C: .4byte gUnknown_020388E6 +_080FEC90: .4byte gUnknown_020388F7 + thumb_func_end sub_80FEABC + + thumb_func_start sub_80FEC94 +sub_80FEC94: @ 80FEC94 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x13 + bl MenuDrawTextWindow + adds r0, r4, 0 + movs r1, 0 + bl sub_80FEABC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80FEC94 + + thumb_func_start sub_80FECB8 +sub_80FECB8: @ 80FECB8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0xF + movs r1, 0 + movs r2, 0x1D + movs r3, 0x3 + bl MenuDrawTextWindow + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0x1 + movs r3, 0xFF + bl sub_80FE470 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80FECB8 + + thumb_func_start sub_80FECE0 +sub_80FECE0: @ 80FECE0 + push {lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080FED14 + ldr r1, _080FED18 + ldr r1, [r1] + adds r1, r0 + ldrb r0, [r1] + lsls r0, 5 + adds r2, 0x18 + adds r0, r2 + ldr r0, [r0] + movs r1, 0x30 + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + movs r1, 0x80 + movs r2, 0x68 + movs r3, 0x68 + bl sub_8072AB0 + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080FED14: .4byte gDecorations +_080FED18: .4byte gUnknown_020388D0 + thumb_func_end sub_80FECE0 + + thumb_func_start sub_80FED1C +sub_80FED1C: @ 80FED1C + push {lr} + movs r0, 0xF + movs r1, 0 + movs r2, 0x1D + movs r3, 0x3 + bl MenuZeroFillWindowRect + movs r0, 0xF + movs r1, 0xC + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + thumb_func_end sub_80FED1C + + thumb_func_start sub_80FED3C +sub_80FED3C: @ 80FED3C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + ldr r1, _080FED5C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080FED60 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FED5C: .4byte gTasks +_080FED60: .4byte sub_80FE868 + thumb_func_end sub_80FED3C + + thumb_func_start sub_80FED64 +sub_80FED64: @ 80FED64 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + ldr r3, _080FED7C +_080FED6E: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _080FED80 + movs r0, 0x1 + b _080FED8C + .align 2, 0 +_080FED7C: .4byte gUnknown_020388D6 +_080FED80: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _080FED6E + movs r0, 0 +_080FED8C: + pop {r1} + bx r1 + thumb_func_end sub_80FED64 + + thumb_func_start sub_80FED90 +sub_80FED90: @ 80FED90 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r6, 0 + movs r3, 0 + ldr r4, _080FEE30 + movs r1, 0 + ldr r2, _080FEE34 +_080FEDA4: + adds r0, r3, r4 + strb r1, [r0] + cmp r3, 0xB + bhi _080FEDB0 + adds r0, r3, r2 + strb r1, [r0] +_080FEDB0: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0xF + bls _080FEDA4 + movs r3, 0 + ldr r0, _080FEE38 + mov r10, r0 + ldr r1, _080FEE3C + mov r9, r1 + ldr r2, _080FEE40 + mov r8, r2 +_080FEDC8: + mov r1, r10 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080FEE5A + movs r1, 0 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 3 + add r0, r9 + ldrb r0, [r0, 0x4] + cmp r1, r0 + bcs _080FEE5A + ldr r0, _080FEE38 + adds r0, r3 + mov r12, r0 + ldr r7, _080FEE30 +_080FEDEA: + ldr r0, _080FEE44 + ldr r0, [r0] + adds r0, r1 + ldrb r0, [r0] + adds r4, r1, 0x1 + mov r1, r12 + ldrb r1, [r1] + cmp r0, r1 + bne _080FEE48 + movs r1, 0 + cmp r1, r6 + bcs _080FEE1E + ldrb r0, [r7] + cmp r0, r4 + beq _080FEE1E + ldr r5, _080FEE30 + adds r2, r4, 0 +_080FEE0C: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r6 + bcs _080FEE1E + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, r2 + bne _080FEE0C +_080FEE1E: + cmp r1, r6 + bne _080FEE48 + adds r0, r6, r7 + strb r4, [r0] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + b _080FEE5A + .align 2, 0 +_080FEE30: .4byte gUnknown_020388D6 +_080FEE34: .4byte gUnknown_020388E6 +_080FEE38: .4byte gSaveBlock1 + 0x1A1A +_080FEE3C: .4byte gUnknown_08402E40 +_080FEE40: .4byte gUnknown_020388F6 +_080FEE44: .4byte gUnknown_020388D0 +_080FEE48: + lsls r0, r4, 16 + lsrs r1, r0, 16 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 3 + add r0, r9 + ldrb r0, [r0, 0x4] + cmp r1, r0 + bcc _080FEDEA +_080FEE5A: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0xF + bls _080FEDC8 + movs r6, 0 + movs r3, 0 + ldr r0, _080FEEE4 + mov r8, r0 +_080FEE6C: + ldr r0, _080FEEE8 + ldr r1, _080FEEEC + adds r0, r1 + adds r2, r3, r0 + ldrb r0, [r2] + adds r7, r3, 0x1 + cmp r0, 0 + beq _080FEF0E + movs r1, 0 + ldr r0, _080FEEF0 + ldrb r0, [r0] + lsls r0, 3 + add r0, r8 + ldrb r0, [r0, 0x4] + cmp r1, r0 + bcs _080FEF0E + adds r5, r2, 0 +_080FEE8E: + ldr r0, _080FEEF4 + ldr r0, [r0] + adds r0, r1 + ldrb r0, [r0] + adds r4, r1, 0x1 + ldrb r2, [r5] + cmp r0, r2 + bne _080FEEFC + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80FED64 + lsls r0, 24 + cmp r0, 0 + bne _080FEEFC + movs r1, 0 + cmp r1, r6 + bcs _080FEED0 + ldr r2, _080FEEF8 + ldrb r0, [r2] + cmp r0, r4 + beq _080FEED0 + adds r3, r2, 0 + adds r2, r4, 0 +_080FEEBE: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r6 + bcs _080FEED0 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _080FEEBE +_080FEED0: + cmp r1, r6 + bne _080FEEFC + ldr r0, _080FEEF8 + adds r0, r6, r0 + strb r4, [r0] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + b _080FEF0E + .align 2, 0 +_080FEEE4: .4byte gUnknown_08402E40 +_080FEEE8: .4byte gSaveBlock1 +_080FEEEC: .4byte 0x00002688 +_080FEEF0: .4byte gUnknown_020388F6 +_080FEEF4: .4byte gUnknown_020388D0 +_080FEEF8: .4byte gUnknown_020388E6 +_080FEEFC: + lsls r0, r4, 16 + lsrs r1, r0, 16 + ldr r0, _080FEF24 + ldrb r0, [r0] + lsls r0, 3 + add r0, r8 + ldrb r0, [r0, 0x4] + cmp r1, r0 + bcc _080FEE8E +_080FEF0E: + lsls r0, r7, 16 + lsrs r3, r0, 16 + cmp r3, 0xB + bls _080FEE6C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FEF24: .4byte gUnknown_020388F6 + thumb_func_end sub_80FED90 + + thumb_func_start sub_80FEF28 +sub_80FEF28: @ 80FEF28 + push {lr} + ldr r0, _080FEF38 + ldrb r1, [r0] + cmp r1, 0x7 + bhi _080FEF40 + ldr r0, _080FEF3C + strb r1, [r0] + b _080FEF46 + .align 2, 0 +_080FEF38: .4byte gUnknown_020388D5 +_080FEF3C: .4byte gUnknown_020388F3 +_080FEF40: + ldr r1, _080FEF4C + movs r0, 0x7 + strb r0, [r1] +_080FEF46: + pop {r0} + bx r0 + .align 2, 0 +_080FEF4C: .4byte gUnknown_020388F3 + thumb_func_end sub_80FEF28 + + thumb_func_start sub_80FEF50 +sub_80FEF50: @ 80FEF50 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80FED90 + bl sub_80FEF28 + ldr r0, _080FEF6C + movs r1, 0 + strb r1, [r0] + ldr r0, _080FEF70 + strb r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080FEF6C: .4byte gUnknown_020388F2 +_080FEF70: .4byte gUnknown_020388F4 + thumb_func_end sub_80FEF50 + + thumb_func_start sub_80FEF74 +sub_80FEF74: @ 80FEF74 + push {lr} + ldr r0, _080FEFA0 + movs r1, 0x8 + bl sub_80F9520 + movs r0, 0 + bl SetBgTilemapBuffer + movs r0, 0x1 + bl SetBgTilemapBuffer + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x13 + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + .align 2, 0 +_080FEFA0: .4byte gUnknown_020388F7 + thumb_func_end sub_80FEF74 + + thumb_func_start sub_80FEFA4 +sub_80FEFA4: @ 80FEFA4 + push {r4,lr} + movs r2, 0 + ldr r0, _080FEFD0 + ldrb r0, [r0] + ldr r1, _080FEFD4 + ldrb r1, [r1] + adds r0, r1 + adds r1, r0, 0x1 + ldr r4, _080FEFD8 + ldr r3, _080FEFDC +_080FEFB8: + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, r1 + beq _080FEFCC + cmp r2, 0xB + bhi _080FEFE0 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, r1 + bne _080FEFE0 +_080FEFCC: + movs r0, 0 + b _080FEFEC + .align 2, 0 +_080FEFD0: .4byte gUnknown_020388F4 +_080FEFD4: .4byte gUnknown_020388F2 +_080FEFD8: .4byte gUnknown_020388D6 +_080FEFDC: .4byte gUnknown_020388E6 +_080FEFE0: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0xF + bls _080FEFB8 + movs r0, 0x1 +_080FEFEC: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80FEFA4 + + thumb_func_start sub_80FEFF4 +sub_80FEFF4: @ 80FEFF4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080FF028 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080FF00E + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080FF020 +_080FF00E: + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + ldr r0, _080FF02C + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080FF030 + str r0, [r1] +_080FF020: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FF028: .4byte gMain +_080FF02C: .4byte gTasks +_080FF030: .4byte sub_80FE868 + thumb_func_end sub_80FEFF4 + + thumb_func_start sub_80FF034 +sub_80FF034: @ 80FF034 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl sub_80FE5AC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80FF034 + + thumb_func_start sub_80FF058 +sub_80FF058: @ 80FF058 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080FF08C + movs r1, 0x8 + bl sub_80F9520 + movs r0, 0 + bl SetBgTilemapBuffer + movs r0, 0x1 + bl SetBgTilemapBuffer + bl BuyMenuFreeMemory + ldr r1, _080FF090 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080FF094 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FF08C: .4byte gUnknown_020388F7 +_080FF090: .4byte gTasks +_080FF094: .4byte sub_80FF034 + thumb_func_end sub_80FF058 + + thumb_func_start sub_80FF098 +sub_80FF098: @ 80FF098 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080FF0D4 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + ldr r3, _080FF0D8 + ldrb r2, [r3] + adds r0, r2, 0x7 + ldrb r1, [r1] + cmp r0, r1 + ble _080FF0BA + cmp r2, 0 + beq _080FF0BA + subs r0, r2, 0x1 + strb r0, [r3] +_080FF0BA: + ldr r0, _080FF0DC + ldrb r0, [r0] + bl sub_8134104 + adds r0, r4, 0 + bl sub_80FED90 + bl sub_80FEF28 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FF0D4: .4byte gUnknown_020388D5 +_080FF0D8: .4byte gUnknown_020388F4 +_080FF0DC: .4byte gUnknown_020388F6 + thumb_func_end sub_80FF098 + + thumb_func_start sub_80FF0E0 +sub_80FF0E0: @ 80FF0E0 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080FF10C + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r4, r2, r3 + ldr r1, _080FF110 + ldrh r0, [r1] + strh r0, [r4, 0xE] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x10] + adds r3, 0x8 + adds r2, r3 + adds r1, r2, 0x2 + adds r0, r2, 0 + bl PlayerGetDestCoords + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FF10C: .4byte gTasks +_080FF110: .4byte gSaveBlock1 + thumb_func_end sub_80FF0E0 + + thumb_func_start sub_80FF114 +sub_80FF114: @ 80FF114 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + bl DrawWholeMapView + ldr r1, _080FF158 + movs r0, 0x4 + ldrsb r0, [r1, r0] + ldrb r1, [r1, 0x5] + lsls r1, 24 + asrs r1, 24 + movs r2, 0x1 + negs r2, r2 + ldr r3, _080FF15C + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r3 + movs r3, 0xE + ldrsb r3, [r4, r3] + ldrb r4, [r4, 0x10] + lsls r4, 24 + asrs r4, 24 + str r4, [sp] + bl warp1_set + bl warp_in + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FF158: .4byte gSaveBlock1 +_080FF15C: .4byte gTasks + thumb_func_end sub_80FF114 + + thumb_func_start sub_80FF160 +sub_80FF160: @ 80FF160 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81341D4 + lsls r0, 24 + cmp r0, 0 + bne _080FF188 + ldr r1, _080FF180 + ldr r2, _080FF184 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _080FF1A2 + .align 2, 0 +_080FF180: .4byte gSecretBaseText_NoDecors +_080FF184: .4byte sub_80FE428 +_080FF188: + ldr r1, _080FF1A8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + movs r1, 0 + strh r1, [r0, 0x1E] + ldr r0, _080FF1AC + strb r2, [r0] + adds r0, r4, 0 + bl sub_80FE5AC +_080FF1A2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FF1A8: .4byte gTasks +_080FF1AC: .4byte gUnknown_020388F6 + thumb_func_end sub_80FF160 + + thumb_func_start sub_80FF1B0 +sub_80FF1B0: @ 80FF1B0 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _080FF1D0 + cmp r2, 0x22 + beq _080FF1D8 + cmp r2, 0x26 + bne _080FF1E2 + ldr r0, _080FF1D4 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, 28 + lsrs r0, 16 + b _080FF1E2 + .align 2, 0 +_080FF1D0: .4byte 0x0000ffff +_080FF1D4: .4byte gUnknown_083EC97C +_080FF1D8: + ldr r0, _080FF1E8 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, 28 + lsrs r0, 16 +_080FF1E2: + pop {r1} + bx r1 + .align 2, 0 +_080FF1E8: .4byte gUnknown_083EC984 + thumb_func_end sub_80FF1B0 + + thumb_func_start sub_80FF1EC +sub_80FF1EC: @ 80FF1EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x34 + ldr r4, [sp, 0x54] + lsls r0, 16 + lsrs r0, 16 + str r0, [sp] + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x4] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x8] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0xC] + lsls r4, 16 + lsrs r4, 16 + str r4, [sp, 0x10] + movs r2, 0 + lsls r0, r3, 16 + cmp r2, r3 + bcc _080FF222 + b _080FF384 +_080FF222: + ldr r1, [sp, 0x8] + str r1, [sp, 0x28] + str r0, [sp, 0x2C] +_080FF228: + ldr r3, [sp, 0x4] + ldr r4, [sp, 0xC] + subs r1, r3, r4 + lsls r0, r2, 16 + asrs r0, 16 + adds r0, 0x1 + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x14] + movs r0, 0 + mov r10, r0 + adds r1, r2, 0x1 + str r1, [sp, 0x30] + ldr r3, [sp, 0x28] + cmp r10, r3 + bcc _080FF24C + b _080FF374 +_080FF24C: + ldr r4, [sp, 0x10] + lsls r4, 5 + str r4, [sp, 0x18] + ldr r0, _080FF2B4 + adds r0, r4, r0 + str r0, [sp, 0x1C] + ldr r0, _080FF2B8 + adds r0, r4, r0 + str r0, [sp, 0x24] + ldr r3, [sp, 0x8] + adds r1, r2, 0 + muls r1, r3 + str r1, [sp, 0x20] +_080FF266: + ldr r0, [sp] + add r0, r10 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, [sp, 0x20] + add r1, r10 + ldr r4, [sp, 0x1C] + ldr r0, [r4] + lsls r1, 1 + adds r1, r0 + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + bl GetBehaviorByMetatileId + lsls r4, r0, 16 + lsls r0, r4, 8 + lsrs r0, 24 + bl sub_8057288 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080FF2AC + ldr r3, [sp, 0x24] + ldrb r0, [r3, 0x11] + cmp r0, 0x1 + beq _080FF2BC + lsrs r0, r4, 28 + cmp r0, 0 + beq _080FF2BC +_080FF2AC: + movs r4, 0xC0 + lsls r4, 4 + mov r8, r4 + b _080FF2C0 + .align 2, 0 +_080FF2B4: .4byte gDecorations + 0x1C +_080FF2B8: .4byte gDecorations +_080FF2BC: + movs r0, 0 + mov r8, r0 +_080FF2C0: + ldr r1, [sp, 0x24] + ldrb r0, [r1, 0x11] + lsls r7, r5, 16 + ldr r2, [sp, 0x14] + lsls r2, 16 + mov r9, r2 + cmp r0, 0x3 + beq _080FF2EA + asrs r0, r7, 16 + asrs r1, r2, 16 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r0, 24 + bl sub_80572B0 + lsls r0, 24 + lsrs r0, 24 + movs r6, 0x1 + cmp r0, 0x1 + beq _080FF2EC +_080FF2EA: + movs r6, 0 +_080FF2EC: + ldr r3, [sp, 0x18] + ldr r4, _080FF334 + adds r0, r3, r4 + ldrb r0, [r0] + ldr r4, [sp, 0x20] + add r4, r10 + lsls r1, r4, 24 + lsrs r1, 24 + bl sub_80FF1B0 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080FF338 + cmp r5, r0 + beq _080FF33C + asrs r0, r7, 16 + mov r2, r9 + asrs r1, r2, 16 + ldr r3, [sp, 0x1C] + ldr r2, [r3] + lsls r3, r4, 1 + adds r3, r2 + movs r4, 0x80 + lsls r4, 2 + adds r2, r4, 0 + orrs r6, r2 + ldrh r3, [r3] + adds r2, r6, r3 + mov r3, r8 + orrs r3, r2 + orrs r3, r5 + lsls r2, r3, 16 + lsrs r2, 16 + bl MapGridSetMetatileEntryAt + b _080FF362 + .align 2, 0 +_080FF334: .4byte gDecorations +_080FF338: .4byte 0x0000ffff +_080FF33C: + asrs r0, r7, 16 + mov r2, r9 + asrs r1, r2, 16 + ldr r3, [sp, 0x1C] + ldr r2, [r3] + lsls r3, r4, 1 + adds r3, r2 + movs r4, 0x80 + lsls r4, 2 + adds r2, r4, 0 + orrs r6, r2 + ldrh r3, [r3] + adds r2, r6, r3 + mov r3, r8 + orrs r3, r2 + lsls r2, r3, 16 + lsrs r2, 16 + bl MapGridSetMetatileIdAt +_080FF362: + mov r0, r10 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + ldr r4, [sp, 0x28] + cmp r10, r4 + bcs _080FF374 + b _080FF266 +_080FF374: + ldr r1, [sp, 0x30] + lsls r0, r1, 16 + lsrs r2, r0, 16 + ldr r3, [sp, 0x2C] + lsrs r0, r3, 16 + cmp r2, r0 + bcs _080FF384 + b _080FF228 +_080FF384: + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80FF1EC + + thumb_func_start sub_80FF394 +sub_80FF394: @ 80FF394 + push {r4,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 16 + lsrs r2, 16 + ldr r1, _080FF3BC + lsls r0, r2, 5 + adds r0, r1 + ldrb r0, [r0, 0x12] + cmp r0, 0x9 + bhi _080FF46C + lsls r0, 2 + ldr r1, _080FF3C0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FF3BC: .4byte gDecorations +_080FF3C0: .4byte _080FF3C4 + .align 2, 0 +_080FF3C4: + .4byte _080FF3EC + .4byte _080FF3F6 + .4byte _080FF400 + .4byte _080FF410 + .4byte _080FF41A + .4byte _080FF424 + .4byte _080FF434 + .4byte _080FF43E + .4byte _080FF44E + .4byte _080FF45E +_080FF3EC: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x1 + b _080FF408 +_080FF3F6: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x2 + b _080FF408 +_080FF400: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x3 +_080FF408: + movs r3, 0x1 + bl sub_80FF1EC + b _080FF46C +_080FF410: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x4 + b _080FF42C +_080FF41A: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x2 + b _080FF42C +_080FF424: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x1 +_080FF42C: + movs r3, 0x2 + bl sub_80FF1EC + b _080FF46C +_080FF434: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x1 + b _080FF456 +_080FF43E: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x2 + movs r3, 0x4 + bl sub_80FF1EC + b _080FF46C +_080FF44E: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x3 +_080FF456: + movs r3, 0x3 + bl sub_80FF1EC + b _080FF46C +_080FF45E: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x3 + movs r3, 0x2 + bl sub_80FF1EC +_080FF46C: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80FF394 + + thumb_func_start sub_80FF474 +sub_80FF474: @ 80FF474 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r6, 0 + ldr r0, _080FF54C + mov r8, r0 + ldr r1, _080FF550 + mov r9, r1 + ldr r2, _080FF554 + mov r10, r2 + ldr r7, _080FF558 +_080FF490: + adds r5, r6, 0 + adds r5, 0xAE + adds r4, r5, 0 + adds r0, r4, 0 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080FF570 + adds r0, r4, 0 + bl FlagReset + movs r2, 0 + mov r4, r8 + ldr r0, [r4, 0x4] + ldrb r6, [r0] + cmp r2, r6 + bcs _080FF4E0 + ldr r0, [r0, 0x4] + ldrh r0, [r0, 0x14] + cmp r0, r5 + beq _080FF4E0 + ldr r0, _080FF54C + ldr r3, [r0, 0x4] + ldrb r6, [r3] + adds r4, r5, 0 +_080FF4C6: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, r6 + bcs _080FF4E0 + ldr r0, [r3, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x14] + cmp r0, r4 + bne _080FF4C6 +_080FF4E0: + mov r1, r8 + ldr r0, [r1, 0x4] + ldr r1, [r0, 0x4] + lsls r4, r2, 1 + adds r4, r2 + lsls r4, 3 + adds r1, r4, r1 + ldr r2, _080FF55C + adds r0, r2, 0 + ldrb r1, [r1, 0x1] + adds r0, r1 + ldr r1, _080FF560 + ldr r1, [r1] + ldr r1, [r1, 0x1C] + ldrh r1, [r1] + bl VarSet + mov r5, r8 + ldr r0, [r5, 0x4] + ldr r0, [r0, 0x4] + adds r4, r0 + ldrb r0, [r4] + mov r6, r9 + strh r0, [r6] + ldr r1, _080FF564 + ldrh r1, [r1] + mov r2, r10 + strh r1, [r2] + ldr r1, _080FF568 + ldrh r1, [r1] + ldr r4, _080FF56C + strh r1, [r4] + ldrb r1, [r7, 0x5] + ldrb r2, [r7, 0x4] + bl show_sprite + ldrb r0, [r6] + ldrb r1, [r7, 0x5] + ldrb r2, [r7, 0x4] + mov r5, r10 + movs r6, 0 + ldrsh r3, [r5, r6] + movs r5, 0 + ldrsh r4, [r4, r5] + str r4, [sp] + bl sub_805C0F8 + mov r6, r9 + ldrb r0, [r6] + ldrb r1, [r7, 0x5] + ldrb r2, [r7, 0x4] + bl sub_805C78C + b _080FF57A + .align 2, 0 +_080FF54C: .4byte gMapHeader +_080FF550: .4byte gUnknown_0202E8CE +_080FF554: .4byte gUnknown_0202E8D0 +_080FF558: .4byte gSaveBlock1 +_080FF55C: .4byte 0x00003f20 +_080FF560: .4byte gUnknown_02038900 +_080FF564: .4byte gUnknown_020391A4 +_080FF568: .4byte gUnknown_020391A6 +_080FF56C: .4byte gUnknown_0202E8D2 +_080FF570: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xD + bls _080FF490 +_080FF57A: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80FF474 + + thumb_func_start sub_80FF58C +sub_80FF58C: @ 80FF58C + push {lr} + movs r1, 0 + ldr r0, _080FF5A8 + ldrb r2, [r0, 0x8] + cmp r1, r2 + bcs _080FF5B6 + ldr r3, [r0] +_080FF59A: + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080FF5AC + movs r0, 0x1 + b _080FF5B8 + .align 2, 0 +_080FF5A8: .4byte 0x0201f000 +_080FF5AC: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r2 + bcc _080FF59A +_080FF5B6: + movs r0, 0 +_080FF5B8: + pop {r1} + bx r1 + thumb_func_end sub_80FF58C + + thumb_func_start sub_80FF5BC +sub_80FF5BC: @ 80FF5BC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080FF5E4 + ldrb r0, [r0, 0x9] + cmp r0, 0x1 + bne _080FF5F0 + ldr r0, _080FF5E8 + ldrb r0, [r0] + cmp r0, 0x6 + beq _080FF5F0 + cmp r0, 0x7 + beq _080FF5F0 + bl sub_80FEF74 + bl sub_80FED1C + ldr r1, _080FF5EC + b _080FF66E + .align 2, 0 +_080FF5E4: .4byte 0x0201f000 +_080FF5E8: .4byte gUnknown_020388F6 +_080FF5EC: .4byte gSecretBaseText_DecorCantPlace +_080FF5F0: + bl sub_80FEFA4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080FF688 + bl sub_80FF58C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080FF62C + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r1, _080FF624 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + ldr r1, _080FF628 + str r1, [r0] + b _080FF69C + .align 2, 0 +_080FF624: .4byte gTasks +_080FF628: .4byte sub_80FF6AC +_080FF62C: + bl sub_80FEF74 + bl sub_80FED1C + ldr r0, _080FF654 + ldr r4, _080FF658 + ldrb r1, [r4, 0x8] + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldrb r0, [r4, 0x9] + cmp r0, 0 + bne _080FF664 + ldr r0, _080FF65C + ldr r1, _080FF660 + bl StringExpandPlaceholders + b _080FF66C + .align 2, 0 +_080FF654: .4byte gStringVar1 +_080FF658: .4byte 0x0201f000 +_080FF65C: .4byte gStringVar4 +_080FF660: .4byte gSecretBaseText_NoMoreDecor +_080FF664: + ldr r0, _080FF67C + ldr r1, _080FF680 + bl StringExpandPlaceholders +_080FF66C: + ldr r1, _080FF67C +_080FF66E: + ldr r2, _080FF684 + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _080FF69C + .align 2, 0 +_080FF67C: .4byte gStringVar4 +_080FF680: .4byte gSecretBaseText_NoMoreDecor2 +_080FF684: .4byte sub_80FEFF4 +_080FF688: + bl sub_80FEF74 + bl sub_80FED1C + ldr r1, _080FF6A4 + ldr r2, _080FF6A8 + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080FF69C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FF6A4: .4byte gSecretBaseText_InUseAlready +_080FF6A8: .4byte sub_80FEFF4 + thumb_func_end sub_80FF5BC + + thumb_func_start sub_80FF6AC +sub_80FF6AC: @ 80FF6AC + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080FF6D0 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r7, r0, r1 + movs r1, 0xC + ldrsh r0, [r7, r1] + cmp r0, 0x1 + beq _080FF714 + cmp r0, 0x1 + bgt _080FF6D4 + cmp r0, 0 + beq _080FF6DA + b _080FF77A + .align 2, 0 +_080FF6D0: .4byte gTasks +_080FF6D4: + cmp r0, 0x2 + beq _080FF764 + b _080FF77A +_080FF6DA: + ldr r0, _080FF70C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080FF77A + adds r0, r6, 0 + bl sub_80FF0E0 + movs r0, 0 + bl SetBgTilemapBuffer + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r0, _080FF710 + movs r1, 0x8 + bl sub_80F9520 + bl BuyMenuFreeMemory + movs r0, 0x1 + strh r0, [r7, 0xC] + b _080FF77A + .align 2, 0 +_080FF70C: .4byte gPaletteFade +_080FF710: .4byte gUnknown_020388F7 +_080FF714: + ldr r4, _080FF754 + ldrb r0, [r4, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r4, 0x8] + ldr r5, _080FF758 + ldr r0, _080FF75C + ldrb r1, [r0] + ldr r0, _080FF760 + ldr r0, [r0] + adds r0, r1 + ldrb r1, [r0] + adds r0, r5, 0 + bl AddDecorationIconObjectFromFieldObject + adds r0, r6, 0 + bl sub_80FF960 + adds r0, r6, 0 + adds r1, r5, 0 + bl SetUpPlacingDecorationPlayerAvatar + bl pal_fill_black + ldrb r1, [r4, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r4, 0x8] + movs r0, 0x2 + strh r0, [r7, 0xC] + b _080FF77A + .align 2, 0 +_080FF754: .4byte gPaletteFade +_080FF758: .4byte gUnknown_02038900 +_080FF75C: .4byte gUnknown_020388F5 +_080FF760: .4byte gUnknown_020388D0 +_080FF764: + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080FF77A + movs r0, 0 + strh r0, [r7, 0x20] + adds r0, r6, 0 + bl sub_810065C +_080FF77A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80FF6AC + + thumb_func_start AddDecorationIconObjectFromFieldObject +AddDecorationIconObjectFromFieldObject: @ 80FF780 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + bl sub_80FEF74 + bl sub_80FED1C + adds r0, r5, 0 + bl sub_81006D0 + lsls r4, 5 + ldr r0, _080FF810 + adds r4, r0 + str r4, [r5] + ldrb r0, [r4, 0x11] + cmp r0, 0x4 + beq _080FF834 + adds r0, r5, 0 + bl sub_81008BC + ldr r0, [r5] + ldrb r0, [r0, 0x12] + bl sub_8100930 + adds r0, r5, 0 + bl sub_8100874 + ldr r1, _080FF814 + adds r0, r5, r1 + ldr r1, _080FF818 + ldr r1, [r1] + ldr r2, [r1, 0x14] + ldr r1, [r5] + ldr r1, [r1, 0x1C] + ldrh r1, [r1] + ldr r2, [r2, 0xC] + lsls r1, 4 + adds r1, r2 + ldrh r1, [r1, 0xE] + lsrs r1, 12 + bl sub_810070C + ldr r0, _080FF81C + bl LoadSpritePalette + ldr r3, _080FF820 + ldr r2, _080FF824 + ldr r4, _080FF828 + ldr r1, [r4, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x2E] + strb r0, [r3] + ldr r0, _080FF82C + ldr r3, _080FF830 + ldr r1, [r5] + ldrb r2, [r1, 0x12] + lsls r2, 2 + adds r2, r3 + ldrb r1, [r2, 0x2] + ldrb r2, [r2, 0x3] + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + str r0, [r4, 0x4] + b _080FF87E + .align 2, 0 +_080FF810: .4byte gDecorations +_080FF814: .4byte 0x00000884 +_080FF818: .4byte gMapHeader +_080FF81C: .4byte gUnknown_083EC954 +_080FF820: .4byte gUnknown_020391A8 +_080FF824: .4byte gSprites +_080FF828: .4byte gUnknown_03004880 +_080FF82C: .4byte gSpriteTemplate_83EC93C +_080FF830: .4byte gUnknown_083EC900 +_080FF834: + ldr r2, _080FF888 + ldr r6, _080FF88C + ldr r5, _080FF890 + ldr r1, [r5, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r0, [r0, 0x2E] + strb r0, [r2] + ldr r0, [r4, 0x1C] + ldrh r0, [r0] + ldr r1, _080FF894 + ldr r2, _080FF898 + ldrb r3, [r4, 0x12] + lsls r3, 2 + adds r3, r2 + ldrb r2, [r3, 0x2] + ldrb r3, [r3, 0x3] + movs r4, 0x1 + str r4, [sp] + bl AddPseudoFieldObject + lsls r0, 24 + lsrs r0, 24 + str r0, [r5, 0x4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1, 0x5] +_080FF87E: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080FF888: .4byte gUnknown_020391A8 +_080FF88C: .4byte gSprites +_080FF890: .4byte gUnknown_03004880 +_080FF894: .4byte sub_81009A8 +_080FF898: .4byte gUnknown_083EC900 + thumb_func_end AddDecorationIconObjectFromFieldObject + + thumb_func_start SetUpPlacingDecorationPlayerAvatar +SetUpPlacingDecorationPlayerAvatar: @ 80FF89C + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080FF8F0 + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r3 + ldrb r2, [r2, 0x12] + ldr r3, _080FF8F4 + ldr r0, [r1] + ldrb r4, [r0, 0x12] + lsls r1, r4, 2 + adds r1, r3 + lsls r0, r2, 4 + ldrb r1, [r1, 0x2] + adds r0, r1 + subs r2, 0x1 + lsls r2, 3 + subs r0, r2 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r4, 0x2 + beq _080FF8D6 + cmp r4, 0x8 + beq _080FF8D6 + cmp r4, 0x9 + bne _080FF8DE +_080FF8D6: + adds r0, r2, 0 + subs r0, 0x8 + lsls r0, 24 + lsrs r2, r0, 24 +_080FF8DE: + ldr r0, _080FF8F8 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _080FF900 + ldr r1, _080FF8FC + str r0, [sp] + movs r0, 0xC1 + b _080FF908 + .align 2, 0 +_080FF8F0: .4byte gTasks +_080FF8F4: .4byte gUnknown_083EC900 +_080FF8F8: .4byte gSaveBlock2 +_080FF8FC: .4byte SpriteCallbackDummy +_080FF900: + ldr r1, _080FF94C + movs r0, 0 + str r0, [sp] + movs r0, 0xC2 +_080FF908: + movs r3, 0x48 + bl AddPseudoFieldObject + ldr r1, _080FF950 + strb r0, [r1] + ldr r3, _080FF954 + ldr r0, _080FF950 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x5] + ldr r4, _080FF958 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + bl DestroySprite + ldr r0, _080FF95C + ldr r0, [r0, 0x4] + strb r0, [r4] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FF94C: .4byte SpriteCallbackDummy +_080FF950: .4byte gUnknown_020391A9 +_080FF954: .4byte gSprites +_080FF958: .4byte gUnknown_020391A8 +_080FF95C: .4byte gUnknown_03004880 + thumb_func_end SetUpPlacingDecorationPlayerAvatar + + thumb_func_start sub_80FF960 +sub_80FF960: @ 80FF960 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080FF98C + ldr r0, _080FF990 + ldrb r1, [r0] + ldr r0, _080FF994 + ldr r0, [r0] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 5 + adds r0, r2 + ldrb r0, [r0, 0x12] + cmp r0, 0x9 + bls _080FF980 + b _080FFAA6 +_080FF980: + lsls r0, 2 + ldr r1, _080FF998 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FF98C: .4byte gDecorations +_080FF990: .4byte gUnknown_020388F5 +_080FF994: .4byte gUnknown_020388D0 +_080FF998: .4byte _080FF99C + .align 2, 0 +_080FF99C: + .4byte _080FF9C4 + .4byte _080FF9D8 + .4byte _080FF9F0 + .4byte _080FFA08 + .4byte _080FFA1C + .4byte _080FFA30 + .4byte _080FFA44 + .4byte _080FFA64 + .4byte _080FFA7C + .4byte _080FFA94 +_080FF9C4: + ldr r0, _080FF9D4 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + b _080FFA88 + .align 2, 0 +_080FF9D4: .4byte gTasks +_080FF9D8: + ldr r1, _080FF9EC + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x2 + strh r1, [r0, 0x12] + movs r1, 0x1 + b _080FFAA4 + .align 2, 0 +_080FF9EC: .4byte gTasks +_080FF9F0: + ldr r1, _080FFA04 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x3 + strh r1, [r0, 0x12] + movs r1, 0x1 + b _080FFAA4 + .align 2, 0 +_080FFA04: .4byte gTasks +_080FFA08: + ldr r1, _080FFA18 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x4 + b _080FFAA0 + .align 2, 0 +_080FFA18: .4byte gTasks +_080FFA1C: + ldr r0, _080FFA2C + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + movs r0, 0x2 + b _080FFA88 + .align 2, 0 +_080FFA2C: .4byte gTasks +_080FFA30: + ldr r1, _080FFA40 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1 + b _080FFAA0 + .align 2, 0 +_080FFA40: .4byte gTasks +_080FFA44: + ldr r0, _080FFA60 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x12] + movs r0, 0x3 + strh r0, [r1, 0x14] + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + b _080FFAA6 + .align 2, 0 +_080FFA60: .4byte gTasks +_080FFA64: + ldr r1, _080FFA78 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x2 + strh r1, [r0, 0x12] + movs r1, 0x4 + b _080FFAA4 + .align 2, 0 +_080FFA78: .4byte gTasks +_080FFA7C: + ldr r0, _080FFA90 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + movs r0, 0x3 +_080FFA88: + strh r0, [r1, 0x12] + strh r0, [r1, 0x14] + b _080FFAA6 + .align 2, 0 +_080FFA90: .4byte gTasks +_080FFA94: + ldr r1, _080FFAAC + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x3 +_080FFAA0: + strh r1, [r0, 0x12] + movs r1, 0x2 +_080FFAA4: + strh r1, [r0, 0x14] +_080FFAA6: + pop {r0} + bx r0 + .align 2, 0 +_080FFAAC: .4byte gTasks + thumb_func_end sub_80FF960 + + thumb_func_start sub_80FFAB0 +sub_80FFAB0: @ 80FFAB0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080FFAF8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + ldr r3, _080FFAFC + ldr r0, _080FFB00 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r2, 0x1 + strh r2, [r0, 0x3C] + ldr r0, _080FFB04 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x3C] + bl sub_810045C + adds r0, r4, 0 + bl sub_8100038 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FFAF8: .4byte gTasks +_080FFAFC: .4byte gSprites +_080FFB00: .4byte gUnknown_020391A8 +_080FFB04: .4byte gUnknown_020391A9 + thumb_func_end sub_80FFAB0 + + thumb_func_start sub_80FFB08 +sub_80FFB08: @ 80FFB08 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080FFB54 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + ldr r3, _080FFB58 + ldr r0, _080FFB5C + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r2, 0x1 + strh r2, [r0, 0x3C] + ldr r0, _080FFB60 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x3C] + bl sub_810045C + ldr r1, _080FFB64 + ldr r2, _080FFB68 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FFB54: .4byte gTasks +_080FFB58: .4byte gSprites +_080FFB5C: .4byte gUnknown_020391A8 +_080FFB60: .4byte gUnknown_020391A9 +_080FFB64: .4byte gSecretBaseText_CancelDecorating +_080FFB68: .4byte sub_8100248 + thumb_func_end sub_80FFB08 + + thumb_func_start sub_80FFB6C +sub_80FFB6C: @ 80FFB6C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r4, r1, 16 + bl sub_8057274 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080FFB86 + cmp r4, 0 + beq _080FFB8A +_080FFB86: + movs r0, 0 + b _080FFB8C +_080FFB8A: + movs r0, 0x1 +_080FFB8C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80FFB6C + + thumb_func_start sub_80FFB94 +sub_80FFB94: @ 80FFB94 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r2, 16 + lsrs r4, r2, 16 + lsls r3, 16 + lsrs r5, r3, 16 + lsls r1, 16 + asrs r1, 16 + ldr r3, _080FFBD0 + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r3 + movs r3, 0xE + ldrsh r0, [r2, r3] + adds r0, 0x7 + cmp r1, r0 + bne _080FFBD4 + lsls r1, r4, 16 + asrs r1, 16 + movs r3, 0x10 + ldrsh r0, [r2, r3] + adds r0, 0x7 + cmp r1, r0 + bne _080FFBD4 + cmp r5, 0 + beq _080FFBD4 + movs r0, 0 + b _080FFBD6 + .align 2, 0 +_080FFBD0: .4byte gTasks +_080FFBD4: + movs r0, 0x1 +_080FFBD6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80FFB94 + + thumb_func_start sub_80FFBDC +sub_80FFBDC: @ 80FFBDC + push {r4-r6,lr} + adds r5, r1, 0 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r0, r6, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_8057274 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080FFC1C + ldrb r0, [r5] + cmp r0, 0x21 + bne _080FFC0A + adds r0, r4, 0 + bl sub_8057300 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080FFC18 +_080FFC0A: + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_805729C + lsls r0, 24 + cmp r0, 0 + beq _080FFC1C +_080FFC18: + movs r0, 0x1 + b _080FFC1E +_080FFC1C: + movs r0, 0 +_080FFC1E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80FFBDC + + thumb_func_start sub_80FFC24 +sub_80FFC24: @ 80FFC24 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + str r1, [sp] + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r1, _080FFC60 + lsls r0, 2 + add r0, r10 + lsls r0, 3 + adds r0, r1 + ldrb r2, [r0, 0x14] + str r2, [sp, 0x4] + ldrb r0, [r0, 0x12] + str r0, [sp, 0x8] + ldr r3, [sp] + ldrb r0, [r3, 0x11] + adds r2, r1, 0 + cmp r0, 0x4 + bls _080FFC56 + b _08100024 +_080FFC56: + lsls r0, 2 + ldr r1, _080FFC64 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FFC60: .4byte gTasks +_080FFC64: .4byte _080FFC68 + .align 2, 0 +_080FFC68: + .4byte _080FFC7C + .4byte _080FFC7C + .4byte _080FFD68 + .4byte _080FFF1C + .4byte _080FFFA0 +_080FFC7C: + movs r6, 0 + ldr r0, [sp, 0x4] + cmp r6, r0 + bcc _080FFC86 + b _08100024 +_080FFC86: + mov r1, r10 + lsls r1, 2 + str r1, [sp, 0x1C] +_080FFC8C: + mov r2, r10 + lsls r0, r2, 2 + add r0, r10 + lsls r0, 3 + ldr r3, _080FFD64 + adds r0, r3 + ldrh r0, [r0, 0xA] + subs r0, r6 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + movs r7, 0 + adds r6, 0x1 + str r6, [sp, 0x14] + ldr r0, [sp, 0x8] + cmp r7, r0 + bcs _080FFD56 + mov r1, r9 + lsls r1, 16 + str r1, [sp, 0xC] + asrs r1, 16 + mov r9, r1 +_080FFCB8: + ldr r0, [sp, 0x1C] + add r0, r10 + lsls r0, 3 + ldr r2, _080FFD64 + adds r0, r2 + ldrh r0, [r0, 0x8] + adds r0, r7 + lsls r0, 16 + mov r8, r0 + asrs r6, r0, 16 + adds r0, r6, 0 + mov r1, r9 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + ldr r3, [sp, 0x4] + ldr r1, [sp, 0x14] + subs r0, r3, r1 + ldr r2, [sp, 0x8] + adds r1, r0, 0 + muls r1, r2 + adds r1, r7 + ldr r3, [sp] + ldr r0, [r3, 0x1C] + lsls r1, 1 + adds r1, r0 + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + bl GetBehaviorByMetatileId + movs r3, 0xF0 + lsls r3, 8 + adds r1, r3, 0 + adds r5, r1, 0 + ands r5, r0 + adds r0, r4, 0 + ldr r1, [sp] + bl sub_80FFBDC + lsls r0, 24 + cmp r0, 0 + bne _080FFD1A + b _080FFFF4 +_080FFD1A: + mov r0, r10 + adds r1, r6, 0 + mov r2, r9 + adds r3, r5, 0 + bl sub_80FFB94 + lsls r0, 24 + cmp r0, 0 + bne _080FFD2E + b _080FFFF4 +_080FFD2E: + mov r1, r8 + lsrs r0, r1, 16 + ldr r2, [sp, 0xC] + lsrs r1, r2, 16 + movs r2, 0 + bl GetFieldObjectIdByXYZ + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080FFD4A + cmp r4, 0x10 + beq _080FFD4A + b _080FFFF4 +_080FFD4A: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r3, [sp, 0x8] + cmp r7, r3 + bcc _080FFCB8 +_080FFD56: + ldr r1, [sp, 0x14] + lsls r0, r1, 24 + lsrs r6, r0, 24 + ldr r2, [sp, 0x4] + cmp r6, r2 + bcc _080FFC8C + b _08100024 + .align 2, 0 +_080FFD64: .4byte gTasks +_080FFD68: + movs r6, 0 + mov r3, r10 + lsls r3, 2 + str r3, [sp, 0x1C] + ldr r0, [sp, 0x4] + subs r0, 0x1 + str r0, [sp, 0x18] + cmp r6, r0 + bge _080FFE54 + adds r0, r3, 0 + add r0, r10 + lsls r0, 3 + str r0, [sp, 0x10] +_080FFD82: + ldr r1, [sp, 0x10] + adds r0, r1, r2 + ldrh r0, [r0, 0xA] + subs r0, r6 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + movs r7, 0 + adds r6, 0x1 + str r6, [sp, 0x14] + ldr r3, [sp, 0x8] + cmp r7, r3 + bcs _080FFE48 + lsls r0, 16 + str r0, [sp, 0x20] +_080FFDA0: + ldr r1, [sp, 0x10] + adds r0, r1, r2 + ldrh r0, [r0, 0x8] + adds r0, r7 + lsls r0, 16 + mov r8, r0 + asrs r6, r0, 16 + mov r2, r9 + lsls r1, r2, 16 + adds r0, r6, 0 + asrs r1, 16 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + ldr r3, [sp, 0x4] + ldr r1, [sp, 0x14] + subs r0, r3, r1 + ldr r2, [sp, 0x8] + adds r1, r0, 0 + muls r1, r2 + adds r1, r7 + ldr r3, [sp] + ldr r0, [r3, 0x1C] + lsls r1, 1 + adds r1, r0 + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + bl GetBehaviorByMetatileId + movs r3, 0xF0 + lsls r3, 8 + adds r1, r3, 0 + adds r5, r1, 0 + ands r5, r0 + adds r0, r4, 0 + bl sub_805729C + lsls r0, 24 + cmp r0, 0 + bne _080FFE0C + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80FFB6C + lsls r0, 24 + cmp r0, 0 + bne _080FFE0C + b _080FFFF4 +_080FFE0C: + mov r0, r10 + adds r1, r6, 0 + ldr r3, [sp, 0x20] + asrs r2, r3, 16 + adds r3, r5, 0 + bl sub_80FFB94 + lsls r0, 24 + cmp r0, 0 + bne _080FFE22 + b _080FFFF4 +_080FFE22: + mov r1, r8 + lsrs r0, r1, 16 + ldr r2, [sp, 0x20] + lsrs r1, r2, 16 + movs r2, 0 + bl GetFieldObjectIdByXYZ + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x10 + beq _080FFE3A + b _080FFFF4 +_080FFE3A: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, _080FFF18 + ldr r3, [sp, 0x8] + cmp r7, r3 + bcc _080FFDA0 +_080FFE48: + ldr r1, [sp, 0x14] + lsls r0, r1, 24 + lsrs r6, r0, 24 + ldr r3, [sp, 0x18] + cmp r6, r3 + blt _080FFD82 +_080FFE54: + ldr r0, [sp, 0x1C] + add r0, r10 + lsls r0, 3 + adds r0, r2 + ldrh r0, [r0, 0xA] + ldr r1, [sp, 0x4] + subs r0, r1 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + movs r7, 0 + ldr r3, [sp, 0x8] + cmp r7, r3 + bcc _080FFE74 + b _08100024 +_080FFE74: + lsls r0, 16 + str r0, [sp, 0x20] +_080FFE78: + ldr r0, [sp, 0x1C] + add r0, r10 + lsls r0, 3 + ldr r1, _080FFF18 + adds r0, r1 + ldrh r0, [r0, 0x8] + adds r0, r7 + lsls r0, 16 + mov r8, r0 + asrs r6, r0, 16 + mov r2, r9 + lsls r1, r2, 16 + adds r0, r6, 0 + asrs r1, 16 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + ldr r3, [sp] + ldr r0, [r3, 0x1C] + lsls r1, r7, 1 + adds r1, r0 + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + bl GetBehaviorByMetatileId + movs r3, 0xF0 + lsls r3, 8 + adds r1, r3, 0 + adds r5, r1, 0 + ands r5, r0 + adds r0, r4, 0 + bl sub_805729C + lsls r0, 24 + cmp r0, 0 + bne _080FFEDA + adds r0, r4, 0 + bl sub_80572B0 + lsls r0, 24 + cmp r0, 0 + bne _080FFEDA + b _080FFFF4 +_080FFEDA: + mov r0, r10 + adds r1, r6, 0 + ldr r3, [sp, 0x20] + asrs r2, r3, 16 + adds r3, r5, 0 + bl sub_80FFB94 + lsls r0, 24 + cmp r0, 0 + bne _080FFEF0 + b _080FFFF4 +_080FFEF0: + mov r1, r8 + lsrs r0, r1, 16 + ldr r2, [sp, 0x20] + lsrs r1, r2, 16 + movs r2, 0 + bl GetFieldObjectIdByXYZ + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080FFF0A + cmp r4, 0x10 + bne _080FFFF4 +_080FFF0A: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r3, [sp, 0x8] + cmp r7, r3 + bcc _080FFE78 + b _08100024 + .align 2, 0 +_080FFF18: .4byte gTasks +_080FFF1C: + movs r6, 0 + ldr r0, [sp, 0x4] + cmp r6, r0 + bcc _080FFF26 + b _08100024 +_080FFF26: + mov r1, r10 + lsls r0, r1, 2 + add r0, r10 + lsls r1, r0, 3 + ldr r2, _080FFF9C + adds r0, r1, r2 + ldrh r0, [r0, 0xA] + subs r0, r6 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + movs r7, 0 + ldr r3, [sp, 0x8] + cmp r7, r3 + bcs _080FFF8C + adds r0, r2, 0 + adds r1, r0 + mov r8, r1 + mov r1, r9 + lsls r0, r1, 16 + asrs r5, r0, 16 +_080FFF50: + mov r2, r8 + ldrh r0, [r2, 0x8] + adds r0, r7 + lsls r0, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r0, 24 + bl sub_80572B0 + lsls r0, 24 + cmp r0, 0 + beq _080FFFF4 + adds r0, r4, 0 + adds r1, r5, 0x1 + bl MapGridGetMetatileIdAt + movs r1, 0xA3 + lsls r1, 2 + cmp r0, r1 + beq _080FFFF4 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r3, [sp, 0x8] + cmp r7, r3 + bcc _080FFF50 +_080FFF8C: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, [sp, 0x4] + cmp r6, r0 + bcc _080FFF26 + b _08100024 + .align 2, 0 +_080FFF9C: .4byte gTasks +_080FFFA0: + mov r3, r10 + lsls r1, r3, 2 + adds r0, r1, r3 + lsls r0, 3 + adds r0, r2 + ldrh r0, [r0, 0xA] + mov r9, r0 + movs r7, 0 + str r1, [sp, 0x1C] + ldr r0, [sp, 0x8] + cmp r7, r0 + bcs _08100024 + adds r6, r2, 0 + mov r1, r9 + lsls r1, 16 + str r1, [sp, 0x20] +_080FFFC0: + ldr r0, [sp, 0x1C] + add r0, r10 + lsls r0, 3 + adds r0, r6 + ldrh r0, [r0, 0x8] + adds r0, r7 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + mov r2, r9 + lsls r1, r2, 16 + asrs r1, 16 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + ldr r3, [sp] + ldrb r0, [r3, 0x12] + cmp r0, 0x5 + bne _080FFFF8 +_080FFFE8: + adds r0, r4, 0 + bl sub_80572EC + lsls r0, 24 + cmp r0, 0 + bne _08100004 +_080FFFF4: + movs r0, 0 + b _08100026 +_080FFFF8: + adds r0, r4, 0 + bl sub_80572D8 + lsls r0, 24 + cmp r0, 0 + beq _080FFFE8 +_08100004: + adds r0, r5, 0 + ldr r2, [sp, 0x20] + lsrs r1, r2, 16 + movs r2, 0 + bl GetFieldObjectIdByXYZ + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x10 + bne _080FFFF4 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r3, [sp, 0x8] + cmp r7, r3 + bcc _080FFFC0 +_08100024: + movs r0, 0x1 +_08100026: + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FFC24 + + thumb_func_start sub_8100038 +sub_8100038: @ 8100038 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0810006C + ldrb r1, [r0] + ldr r0, _08100070 + ldr r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r1, 5 + ldr r0, _08100074 + adds r1, r0 + adds r0, r4, 0 + bl sub_80FFC24 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08100080 + ldr r1, _08100078 + ldr r2, _0810007C + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _08100092 + .align 2, 0 +_0810006C: .4byte gUnknown_020388F5 +_08100070: .4byte gUnknown_020388D0 +_08100074: .4byte gDecorations +_08100078: .4byte gSecretBaseText_PlaceItHere +_0810007C: .4byte sub_81000A0 +_08100080: + movs r0, 0x20 + bl PlaySE + ldr r1, _08100098 + ldr r2, _0810009C + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_08100092: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08100098: .4byte gSecretBaseText_CantBePlacedHere +_0810009C: .4byte sub_81006A8 + thumb_func_end sub_8100038 + + thumb_func_start sub_81000A0 +sub_81000A0: @ 81000A0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r1, _081000C0 + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081000C0: .4byte gUnknown_083EC95C + thumb_func_end sub_81000A0 + + thumb_func_start sub_81000C4 +sub_81000C4: @ 81000C4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl sub_8100174 + ldr r2, _0810010C + ldr r0, _08100110 + ldrb r1, [r0] + ldr r0, _08100114 + ldr r0, [r0] + adds r0, r1 + ldrb r3, [r0] + lsls r0, r3, 5 + adds r0, r2 + ldrb r0, [r0, 0x11] + cmp r0, 0x4 + beq _0810011C + ldr r0, _08100118 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + ldrh r1, [r1, 0xA] + adds r2, r3, 0 + bl sub_80FF394 + b _0810013C + .align 2, 0 +_0810010C: .4byte gDecorations +_08100110: .4byte gUnknown_020388F5 +_08100114: .4byte gUnknown_020388D0 +_08100118: .4byte gTasks +_0810011C: + ldr r2, _0810015C + ldr r0, _08100160 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + subs r0, 0x7 + strh r0, [r2] + ldr r2, _08100164 + ldrh r0, [r1, 0xA] + subs r0, 0x7 + strh r0, [r2] + ldr r0, _08100168 + bl ScriptContext1_SetupScript +_0810013C: + ldr r2, _0810016C + ldr r0, _08100170 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x2 + strh r1, [r0, 0x22] + adds r0, r4, 0 + bl sub_810028C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810015C: .4byte gUnknown_020391A4 +_08100160: .4byte gTasks +_08100164: .4byte gUnknown_020391A6 +_08100168: .4byte gUnknown_081A2F7B +_0810016C: .4byte gSprites +_08100170: .4byte gUnknown_020391A8 + thumb_func_end sub_81000C4 + + thumb_func_start sub_8100174 +sub_8100174: @ 8100174 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r3, 0 + ldr r0, _081001B0 + ldrb r1, [r0, 0x8] + adds r5, r0, 0 + cmp r3, r1 + bcs _0810019A + ldr r4, [r5] +_08100188: + adds r2, r4, r3 + ldrb r0, [r2] + cmp r0, 0 + beq _081001B8 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r1 + bcc _08100188 +_0810019A: + ldrb r0, [r5, 0x9] + cmp r0, 0 + bne _08100204 + movs r3, 0 + ldr r0, _081001B4 + ldrb r1, [r0] + adds r2, r0, 0 + cmp r1, 0 + bne _081001F0 + b _08100210 + .align 2, 0 +_081001B0: .4byte 0x0201f000 +_081001B4: .4byte gUnknown_020388D6 +_081001B8: + ldr r0, _081001E4 + ldrb r1, [r0] + ldr r0, _081001E8 + ldr r0, [r0] + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r2, [r5, 0x4] + adds r2, r3 + ldr r0, _081001EC + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldrb r0, [r1, 0x8] + subs r0, 0x7 + lsls r0, 4 + ldrb r1, [r1, 0xA] + subs r1, 0x7 + adds r0, r1 + strb r0, [r2] + b _0810019A + .align 2, 0 +_081001E4: .4byte gUnknown_020388F5 +_081001E8: .4byte gUnknown_020388D0 +_081001EC: .4byte gTasks +_081001F0: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0xF + bhi _0810023E + adds r1, r3, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _081001F0 + b _08100236 +_08100204: + movs r3, 0 + ldr r0, _0810021C + ldrb r1, [r0] + adds r2, r0, 0 + cmp r1, 0 + bne _08100224 +_08100210: + ldr r0, _08100220 + ldrb r0, [r0] + adds r0, 0x1 + strb r0, [r2] + b _0810023E + .align 2, 0 +_0810021C: .4byte gUnknown_020388E6 +_08100220: .4byte gUnknown_020388F5 +_08100224: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0xB + bhi _0810023E + adds r1, r3, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _08100224 +_08100236: + ldr r0, _08100244 + ldrb r0, [r0] + adds r0, 0x1 + strb r0, [r1] +_0810023E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08100244: .4byte gUnknown_020388F5 + thumb_func_end sub_8100174 + + thumb_func_start sub_8100248 +sub_8100248: @ 8100248 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r1, _08100268 + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08100268: .4byte gUnknown_083EC964 + thumb_func_end sub_8100248 + + thumb_func_start sub_810026C +sub_810026C: @ 810026C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl sub_810028C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_810026C + + thumb_func_start sub_810028C +sub_810028C: @ 810028C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r1, _081002B4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + ldr r1, _081002B8 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081002B4: .4byte gTasks +_081002B8: .4byte c1_overworld_prev_quest + thumb_func_end sub_810028C + + thumb_func_start c1_overworld_prev_quest +c1_overworld_prev_quest: @ 81002BC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _081002DC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _081002E0 + cmp r0, 0x1 + beq _08100300 + b _0810031C + .align 2, 0 +_081002DC: .4byte gTasks +_081002E0: + bl ScriptContext2_Enable + ldr r0, _081002FC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0810031C + adds r0, r4, 0 + bl sub_80FF114 + movs r0, 0x1 + strh r0, [r5, 0xC] + b _0810031C + .align 2, 0 +_081002FC: .4byte gPaletteFade +_08100300: + bl sub_81016F4 + ldr r0, _08100324 + bl FreeSpritePaletteByTag + ldr r1, _08100328 + ldr r0, _0810032C + str r0, [r1] + ldr r0, _08100330 + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_0810031C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08100324: .4byte 0x00000bb8 +_08100328: .4byte gUnknown_0300485C +_0810032C: .4byte sub_8100364 +_08100330: .4byte c2_exit_to_overworld_2_switch + thumb_func_end c1_overworld_prev_quest + + thumb_func_start sub_8100334 +sub_8100334: @ 8100334 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08100354 + ldr r0, _0810035C + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _08100360 + str r0, [r1] +_08100354: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810035C: .4byte gTasks +_08100360: .4byte sub_80FE948 + thumb_func_end sub_8100334 + + thumb_func_start sub_8100364 +sub_8100364: @ 8100364 + push {lr} + bl ScriptContext2_Enable + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + bl pal_fill_black + ldr r0, _08100388 + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl sub_80FE7EC + pop {r0} + bx r0 + .align 2, 0 +_08100388: .4byte sub_8100334 + thumb_func_end sub_8100364 + + thumb_func_start sub_810038C +sub_810038C: @ 810038C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _081003BC + adds r2, r1, r0 + ldr r0, _081003C0 + ldrb r1, [r0] + adds r3, r0, 0 + cmp r1, 0x1 + bne _081003C4 + movs r1, 0x2 + ldrsh r0, [r2, r1] + movs r4, 0xC + ldrsh r1, [r2, r4] + subs r0, r1 + subs r0, 0x6 + cmp r0, 0 + bge _081003C4 + ldrh r0, [r2, 0x2] + adds r0, 0x1 + b _081003DE + .align 2, 0 +_081003BC: .4byte gUnknown_03004B28 +_081003C0: .4byte gUnknown_020391AA +_081003C4: + ldrb r0, [r3] + cmp r0, 0x2 + bne _081003E8 + movs r0, 0x2 + ldrsh r1, [r2, r0] + subs r1, 0x7 + ldr r0, _081003E4 + ldr r0, [r0] + ldr r0, [r0, 0x4] + cmp r1, r0 + blt _081003E8 + ldrh r0, [r2, 0x2] + subs r0, 0x1 +_081003DE: + strh r0, [r2, 0x2] + movs r0, 0 + b _0810042A + .align 2, 0 +_081003E4: .4byte gMapHeader +_081003E8: + ldrb r0, [r3] + cmp r0, 0x3 + bne _081003FE + movs r1, 0 + ldrsh r0, [r2, r1] + subs r0, 0x7 + cmp r0, 0 + bge _081003FE + ldrh r0, [r2] + adds r0, 0x1 + b _0810041E +_081003FE: + ldrb r0, [r3] + cmp r0, 0x4 + bne _08100428 + movs r3, 0 + ldrsh r1, [r2, r3] + movs r4, 0xA + ldrsh r0, [r2, r4] + adds r1, r0 + subs r1, 0x8 + ldr r0, _08100424 + ldr r0, [r0] + ldr r0, [r0] + cmp r1, r0 + blt _08100428 + ldrh r0, [r2] + subs r0, 0x1 +_0810041E: + strh r0, [r2] + movs r0, 0 + b _0810042A + .align 2, 0 +_08100424: .4byte gMapHeader +_08100428: + movs r0, 0x1 +_0810042A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_810038C + + thumb_func_start sub_8100430 +sub_8100430: @ 8100430 + push {lr} + ldr r0, _08100450 + ldrh r0, [r0, 0x2C] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + beq _08100454 + cmp r1, 0x80 + beq _08100454 + cmp r1, 0x20 + beq _08100454 + cmp r1, 0x10 + beq _08100454 + movs r0, 0 + b _08100456 + .align 2, 0 +_08100450: .4byte gMain +_08100454: + movs r0, 0x1 +_08100456: + pop {r1} + bx r1 + thumb_func_end sub_8100430 + + thumb_func_start sub_810045C +sub_810045C: @ 810045C + push {r4,lr} + ldr r1, _08100488 + movs r0, 0 + strb r0, [r1] + ldr r4, _0810048C + ldr r3, _08100490 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r2, 0 + strh r2, [r0, 0x32] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r2, [r0, 0x34] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08100488: .4byte gUnknown_020391AA +_0810048C: .4byte gSprites +_08100490: .4byte gUnknown_020391A8 + thumb_func_end sub_810045C + + thumb_func_start sub_8100494 +sub_8100494: @ 8100494 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, _081004D0 + ldr r3, _081004D4 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x36 + ldrsh r6, [r0, r1] + cmp r6, 0 + beq _081004B2 + b _081005DE +_081004B2: + ldr r1, _081004D8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + movs r1, 0x1C + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _081004E0 + ldr r0, _081004DC + movs r3, 0x20 + ldrsh r1, [r2, r3] + lsls r1, 3 + b _081004EE + .align 2, 0 +_081004D0: .4byte gSprites +_081004D4: .4byte gUnknown_020391A8 +_081004D8: .4byte gTasks +_081004DC: .4byte gUnknown_083EC96C +_081004E0: + cmp r0, 0x2 + bne _08100500 + ldr r0, _081004FC + movs r3, 0x20 + ldrsh r1, [r2, r3] + lsls r1, 3 + adds r0, 0x4 +_081004EE: + adds r1, r0 + ldr r1, [r1] + adds r0, r4, 0 + bl _call_via_r1 + b _0810063C + .align 2, 0 +_081004FC: .4byte gUnknown_083EC96C +_08100500: + ldr r7, _08100644 + ldrh r1, [r7, 0x2C] + movs r0, 0xF0 + mov r12, r0 + ands r0, r1 + cmp r0, 0x40 + bne _08100534 + ldr r1, _08100648 + movs r0, 0x1 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x32] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _0810064C + strh r1, [r0, 0x34] + ldrh r0, [r2, 0xA] + subs r0, 0x1 + strh r0, [r2, 0xA] +_08100534: + ldrh r1, [r7, 0x2C] + mov r0, r12 + ands r0, r1 + cmp r0, 0x80 + bne _08100564 + ldr r1, _08100648 + movs r0, 0x2 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x32] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x2 + strh r1, [r0, 0x34] + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] +_08100564: + ldrh r1, [r7, 0x2C] + mov r0, r12 + ands r0, r1 + cmp r0, 0x20 + bne _08100594 + ldr r1, _08100648 + movs r0, 0x3 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _0810064C + strh r1, [r0, 0x32] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x34] + ldrh r0, [r2, 0x8] + subs r0, 0x1 + strh r0, [r2, 0x8] +_08100594: + ldrh r1, [r7, 0x2C] + mov r0, r12 + ands r0, r1 + cmp r0, 0x10 + bne _081005C4 + ldr r1, _08100648 + movs r0, 0x4 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x2 + strh r1, [r0, 0x32] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x34] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] +_081005C4: + bl sub_8100430 + lsls r0, 24 + cmp r0, 0 + beq _081005DA + adds r0, r4, 0 + bl sub_810038C + lsls r0, 24 + cmp r0, 0 + bne _081005DE +_081005DA: + bl sub_810045C +_081005DE: + ldr r0, _08100648 + ldrb r0, [r0] + cmp r0, 0 + beq _0810060C + ldr r3, _08100650 + ldr r2, _08100654 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x36] + adds r1, 0x1 + strh r1, [r0, 0x36] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r2, [r1, 0x36] + movs r0, 0x7 + ands r0, r2 + strh r0, [r1, 0x36] +_0810060C: + ldr r0, _08100658 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r2, r1, r0 + movs r1, 0x1C + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _0810063C + ldr r4, _08100644 + ldrh r1, [r4, 0x2E] + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0810062E + strh r3, [r2, 0x1C] +_0810062E: + ldrh r1, [r4, 0x2E] + movs r3, 0x2 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0810063C + strh r3, [r2, 0x1C] +_0810063C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08100644: .4byte gMain +_08100648: .4byte gUnknown_020391AA +_0810064C: .4byte 0x0000fffe +_08100650: .4byte gSprites +_08100654: .4byte gUnknown_020391A8 +_08100658: .4byte gTasks + thumb_func_end sub_8100494 + + thumb_func_start sub_810065C +sub_810065C: @ 810065C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r2, _08100698 + ldr r0, _0810069C + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r2, 0 + strh r2, [r0, 0x3C] + ldr r1, _081006A0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x1C] + ldr r1, _081006A4 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08100698: .4byte gSprites +_0810069C: .4byte gUnknown_020391A8 +_081006A0: .4byte gTasks +_081006A4: .4byte sub_8100494 + thumb_func_end sub_810065C + + thumb_func_start sub_81006A8 +sub_81006A8: @ 81006A8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _081006CC + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081006C2 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081006C8 +_081006C2: + adds r0, r2, 0 + bl sub_810065C +_081006C8: + pop {r0} + bx r0 + .align 2, 0 +_081006CC: .4byte gMain + thumb_func_end sub_81006A8 + + thumb_func_start sub_81006D0 +sub_81006D0: @ 81006D0 + push {r4,r5,lr} + adds r3, r0, 0 + movs r1, 0 + adds r2, r3, 0 + adds r2, 0x84 + movs r5, 0 + ldr r4, _08100708 +_081006DE: + adds r0, r2, r1 + strb r5, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r4 + bls _081006DE + movs r1, 0 + adds r2, r3, 0x4 + movs r3, 0 +_081006F2: + lsls r0, r1, 1 + adds r0, r2, r0 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3F + bls _081006F2 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08100708: .4byte 0x000007ff + thumb_func_end sub_81006D0 + + thumb_func_start sub_810070C +sub_810070C: @ 810070C + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 16 + movs r2, 0 + ldr r0, _0810073C + ldr r0, [r0] + ldr r0, [r0, 0x10] + lsrs r4, r1, 12 + ldr r3, [r0, 0x8] +_0810071E: + lsls r1, r2, 1 + adds r1, r5 + adds r0, r4, r2 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0xF + bls _0810071E + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810073C: .4byte gMapHeader + thumb_func_end sub_810070C + + thumb_func_start sub_8100740 +sub_8100740: @ 8100740 + push {r4-r7,lr} + sub sp, 0x20 + adds r7, r0, 0 + lsls r1, 16 + lsrs r2, r1, 16 + lsrs r3, r1, 26 + cmp r2, 0 + beq _08100754 + ldr r0, _08100784 + ands r2, r0 +_08100754: + movs r5, 0 + ldr r0, _08100788 + ldr r6, [r0] + lsls r4, r2, 5 +_0810075C: + mov r0, sp + adds r2, r0, r5 + ldr r0, [r6, 0x10] + ldr r0, [r0, 0x4] + adds r1, r4, r5 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1F + bls _0810075C + cmp r3, 0x1 + beq _081007AE + cmp r3, 0x1 + bgt _0810078C + cmp r3, 0 + beq _08100796 + b _0810086A + .align 2, 0 +_08100784: .4byte 0x000003ff +_08100788: .4byte gMapHeader +_0810078C: + cmp r3, 0x2 + beq _0810080E + cmp r3, 0x3 + beq _08100846 + b _0810086A +_08100796: + movs r5, 0 +_08100798: + adds r1, r7, r5 + mov r2, sp + adds r0, r2, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1F + bls _08100798 + b _0810086A +_081007AE: + movs r5, 0 + movs r6, 0xF +_081007B2: + lsls r4, r5, 2 + adds r4, r7 + adds r5, 0x1 + lsls r3, r5, 2 + subs r0, r3, 0x1 + add r0, sp + ldrb r2, [r0] + lsrs r1, r2, 4 + adds r0, r6, 0 + ands r0, r2 + lsls r0, 4 + adds r1, r0 + strb r1, [r4] + subs r0, r3, 0x2 + add r0, sp + ldrb r2, [r0] + lsrs r1, r2, 4 + adds r0, r6, 0 + ands r0, r2 + lsls r0, 4 + adds r1, r0 + strb r1, [r4, 0x1] + subs r0, r3, 0x3 + add r0, sp + ldrb r2, [r0] + lsrs r1, r2, 4 + adds r0, r6, 0 + ands r0, r2 + lsls r0, 4 + adds r1, r0 + strb r1, [r4, 0x2] + subs r3, 0x4 + mov r1, sp + adds r0, r1, r3 + ldrb r2, [r0] + lsrs r1, r2, 4 + adds r0, r6, 0 + ands r0, r2 + lsls r0, 4 + adds r1, r0 + strb r1, [r4, 0x3] + lsls r5, 16 + lsrs r5, 16 + cmp r5, 0x7 + bls _081007B2 + b _0810086A +_0810080E: + movs r5, 0 + movs r3, 0x7 +_08100812: + lsls r2, r5, 2 + adds r2, r7 + subs r1, r3, r5 + lsls r1, 2 + mov r4, sp + adds r0, r4, r1 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r1, 0x1 + add r0, sp + ldrb r0, [r0] + strb r0, [r2, 0x1] + adds r0, r1, 0x2 + add r0, sp + ldrb r0, [r0] + strb r0, [r2, 0x2] + adds r1, 0x3 + adds r0, r4, r1 + ldrb r0, [r0] + strb r0, [r2, 0x3] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x7 + bls _08100812 + b _0810086A +_08100846: + movs r5, 0 + movs r4, 0x1F + movs r6, 0xF +_0810084C: + adds r3, r7, r5 + subs r0, r4, r5 + add r0, sp + ldrb r2, [r0] + lsrs r1, r2, 4 + adds r0, r6, 0 + ands r0, r2 + lsls r0, 4 + adds r1, r0 + strb r1, [r3] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1F + bls _0810084C +_0810086A: + add sp, 0x20 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8100740 + + thumb_func_start sub_8100874 +sub_8100874: @ 8100874 + push {r4,r5,lr} + adds r5, r0, 0 + movs r4, 0 +_0810087A: + lsls r0, r4, 5 + adds r0, 0x84 + adds r0, r5, r0 + lsls r2, r4, 1 + adds r1, r5, 0x4 + adds r1, r2 + ldrh r1, [r1] + bl sub_8100740 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3F + bls _0810087A + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8100874 + + thumb_func_start sub_810089C +sub_810089C: @ 810089C + lsls r0, 16 + ldr r1, _081008B4 + ldr r1, [r1] + ldr r1, [r1, 0x14] + ldr r1, [r1, 0xC] + lsrs r0, 15 + adds r0, r1 + ldrh r1, [r0] + ldr r0, _081008B8 + ands r0, r1 + bx lr + .align 2, 0 +_081008B4: .4byte gMapHeader +_081008B8: .4byte 0x00000fff + thumb_func_end sub_810089C + + thumb_func_start sub_81008BC +sub_81008BC: @ 81008BC + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r0 + ldr r0, [r0] + ldrb r0, [r0, 0x12] + movs r6, 0 + ldr r1, _0810092C + lsls r5, r0, 4 + adds r0, r5, r1 + ldrb r0, [r0, 0xC] + cmp r6, r0 + bcs _08100920 + adds r7, r1, 0 +_081008D8: + mov r4, r8 + ldm r4!, {r1} + adds r0, r7, 0x4 + adds r0, r5, r0 + ldr r0, [r0] + adds r0, r6 + ldrb r0, [r0] + ldr r1, [r1, 0x1C] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + adds r1, r7, 0 + adds r1, 0x8 + adds r1, r5, r1 + ldr r1, [r1] + adds r1, r6 + lsls r0, 3 + ldrb r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + bl sub_810089C + adds r2, r5, r7 + ldr r1, [r2] + adds r1, r6 + ldrb r1, [r1] + lsls r1, 1 + adds r4, r1 + strh r0, [r4] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r2, [r2, 0xC] + cmp r6, r2 + bcc _081008D8 +_08100920: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810092C: .4byte gUnknown_083EC860 + thumb_func_end sub_81008BC + + thumb_func_start sub_8100930 +sub_8100930: @ 8100930 + push {r4,r5,lr} + lsls r0, 24 + ldr r3, _08100998 + movs r1, 0 + strb r1, [r3] + ldrb r2, [r3, 0x1] + subs r1, 0x4 + ands r1, r2 + movs r4, 0xD + negs r4, r4 + ands r1, r4 + movs r2, 0x11 + negs r2, r2 + ands r1, r2 + subs r2, 0x10 + ands r1, r2 + strb r1, [r3, 0x1] + ldr r1, _0810099C + lsrs r0, 22 + adds r0, r1 + ldrb r1, [r0] + movs r5, 0x3F + lsls r1, 6 + strb r1, [r3, 0x1] + ldrh r2, [r3, 0x2] + ldr r1, _081009A0 + ands r1, r2 + strh r1, [r3, 0x2] + ldrb r2, [r3, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + strb r1, [r3, 0x3] + ldrb r0, [r0, 0x1] + lsls r0, 6 + ands r5, r1 + orrs r5, r0 + strb r5, [r3, 0x3] + ldrh r1, [r3, 0x4] + ldr r0, _081009A4 + ands r0, r1 + strh r0, [r3, 0x4] + ldrb r0, [r3, 0x5] + ands r4, r0 + movs r0, 0x4 + orrs r4, r0 + movs r0, 0xF + ands r4, r0 + strb r4, [r3, 0x5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08100998: .4byte gUnknown_020391AC +_0810099C: .4byte gUnknown_083EC900 +_081009A0: .4byte 0xfffffe00 +_081009A4: .4byte 0xfffffc00 + thumb_func_end sub_8100930 + + thumb_func_start sub_81009A8 +sub_81009A8: @ 81009A8 + movs r1, 0 + strh r1, [r0, 0x32] + strh r1, [r0, 0x34] + strh r1, [r0, 0x36] + strh r1, [r0, 0x38] + strh r1, [r0, 0x3A] + strh r1, [r0, 0x3C] + ldr r1, _081009BC + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_081009BC: .4byte sub_81009C0 + thumb_func_end sub_81009A8 + + thumb_func_start sub_81009C0 +sub_81009C0: @ 81009C0 + push {lr} + adds r2, r0, 0 + movs r1, 0x3C + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _081009FA + movs r1, 0x3A + ldrsh r0, [r2, r1] + cmp r0, 0xE + bgt _081009E2 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + b _081009EC +_081009E2: + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 +_081009EC: + strb r0, [r3] + ldrh r0, [r2, 0x3A] + adds r0, 0x1 + movs r1, 0x1F + ands r0, r1 + strh r0, [r2, 0x3A] + b _08100A06 +_081009FA: + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_08100A06: + pop {r0} + bx r0 + thumb_func_end sub_81009C0 + + thumb_func_start sub_8100A0C +sub_8100A0C: @ 8100A0C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_8100D38 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08100A44 + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r1, _08100A3C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + ldr r1, _08100A40 + str r1, [r0] + b _08100A50 + .align 2, 0 +_08100A3C: .4byte gTasks +_08100A40: .4byte sub_8100E70 +_08100A44: + ldr r1, _08100A58 + ldr r2, _08100A5C + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_08100A50: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08100A58: .4byte gSecretBaseText_NoDecorInUse +_08100A5C: .4byte sub_80FE428 + thumb_func_end sub_8100A0C + + thumb_func_start sub_8100A60 +sub_8100A60: @ 8100A60 + lsls r0, 24 + lsrs r0, 24 + ldr r3, _08100A78 + ldr r1, [r3] + adds r1, r0 + movs r2, 0 + strb r2, [r1] + ldr r1, [r3, 0x4] + adds r1, r0 + strb r2, [r1] + bx lr + .align 2, 0 +_08100A78: .4byte 0x0201f000 + thumb_func_end sub_8100A60 + + thumb_func_start sub_8100A7C +sub_8100A7C: @ 8100A7C + push {r4-r6,lr} + ldr r6, _08100A9C + movs r0, 0 + strh r0, [r6] + ldr r2, _08100AA0 + strh r0, [r2] + ldr r4, _08100AA4 + ldr r1, _08100AA8 + ldrh r0, [r4] + ldrb r1, [r1] + cmp r0, r1 + bne _08100AB8 + movs r0, 0x1 + strh r0, [r2] + b _08100B0A + .align 2, 0 +_08100A9C: .4byte gUnknown_0202E8CE +_08100AA0: .4byte gScriptResult +_08100AA4: .4byte gUnknown_0202E8CC +_08100AA8: .4byte gUnknown_02039234 +_08100AAC: + ldr r1, _08100AB4 + ldrb r0, [r2] + strh r0, [r1] + b _08100B0A + .align 2, 0 +_08100AB4: .4byte gUnknown_0202E8D0 +_08100AB8: + ldr r3, _08100B10 + ldr r2, _08100B14 + ldr r1, _08100B18 + ldrh r0, [r4] + lsls r0, 3 + adds r4, r0, r1 + ldrb r1, [r4] + ldr r0, [r2] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 5 + adds r0, r3 + ldrb r0, [r0, 0x11] + cmp r0, 0x4 + bne _08100B0A + ldrh r0, [r4, 0x4] + strh r0, [r6] + ldrb r0, [r4] + bl sub_8100A60 + movs r1, 0 + ldr r0, _08100B1C + ldr r0, [r0, 0x4] + ldrb r2, [r0] + cmp r1, r2 + bcs _08100B0A + ldr r5, [r0, 0x4] + ldrh r4, [r6] + adds r3, r2, 0 +_08100AF2: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r2, r0, r5 + ldrh r0, [r2, 0x14] + cmp r0, r4 + beq _08100AAC + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r3 + bcc _08100AF2 +_08100B0A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08100B10: .4byte gDecorations +_08100B14: .4byte 0x0201f000 +_08100B18: .4byte gUnknown_020391B4 +_08100B1C: .4byte gMapHeader + thumb_func_end sub_8100A7C + + thumb_func_start sub_8100B20 +sub_8100B20: @ 8100B20 + push {r4-r6,lr} + movs r2, 0 + ldr r0, _08100B4C + ldr r0, [r0, 0x4] + ldrb r1, [r0] + cmp r2, r1 + bcs _08100B64 + adds r3, r0, 0 + ldr r5, [r3, 0x4] + ldr r0, _08100B50 + ldrh r4, [r0] + ldr r6, _08100B54 +_08100B38: + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0, r5 + ldrh r0, [r1, 0x14] + cmp r0, r4 + bne _08100B58 + ldrb r0, [r1] + strh r0, [r6] + b _08100B64 + .align 2, 0 +_08100B4C: .4byte gMapHeader +_08100B50: .4byte gUnknown_0202E8CC +_08100B54: .4byte gUnknown_0202E8CE +_08100B58: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r3] + cmp r2, r0 + bcc _08100B38 +_08100B64: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8100B20 + + thumb_func_start sub_8100B6C +sub_8100B6C: @ 8100B6C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + movs r7, 0 + b _08100C64 +_08100B7C: + lsls r3, r7, 3 + ldr r0, _08100BE0 + adds r4, r3, r0 + ldrb r1, [r4] + ldr r2, _08100BE4 + ldr r0, [r2] + adds r0, r1 + ldrb r6, [r0] + lsls r0, r6, 5 + ldr r5, _08100BE8 + adds r0, r5 + ldrb r2, [r0, 0x11] + ldr r5, _08100BE4 + ldr r0, [r5, 0x4] + adds r0, r1 + ldrb r0, [r0] + lsrs r1, r0, 4 + mov r9, r1 + movs r5, 0xF + mov r10, r5 + mov r1, r10 + ands r1, r0 + mov r10, r1 + adds r5, r3, 0 + adds r3, r7, 0x1 + str r3, [sp] + cmp r2, 0x4 + beq _08100C5E + cmp r6, 0x29 + bne _08100BD0 + mov r0, r9 + adds r0, 0x7 + adds r1, 0x7 + bl MapGridGetMetatileIdAt + movs r1, 0xA3 + lsls r1, 2 + cmp r0, r1 + bne _08100BD0 + ldrb r0, [r4, 0x2] + adds r0, 0x1 + strb r0, [r4, 0x2] +_08100BD0: + movs r6, 0 + ldr r1, _08100BE0 + adds r2, r5, 0 + adds r0, r5, r1 + adds r3, r7, 0x1 + str r3, [sp] + b _08100C4E + .align 2, 0 +_08100BE0: .4byte gUnknown_020391B4 +_08100BE4: .4byte 0x0201f000 +_08100BE8: .4byte gDecorations +_08100BEC: + movs r4, 0 + adds r0, r2, r1 + adds r7, r6, 0x1 + str r7, [sp, 0x4] + ldrb r0, [r0, 0x1] + cmp r4, r0 + bcs _08100C42 + ldr r0, _08100C7C + adds r0, r5 + mov r8, r0 + subs r1, r6, 0x7 + str r1, [sp, 0x8] +_08100C04: + adds r0, r4, 0x7 + add r0, r9 + ldr r1, _08100C80 + ldr r3, [r1] + mov r7, r10 + subs r2, r7, r6 + ldr r1, [r3] + muls r2, r1 + mov r7, r9 + adds r1, r7, r4 + adds r1, r2 + ldr r2, [r3, 0xC] + lsls r1, 1 + adds r1, r2 + ldrh r1, [r1] + movs r3, 0xC0 + lsls r3, 6 + adds r2, r3, 0 + orrs r2, r1 + mov r7, r10 + ldr r3, [sp, 0x8] + subs r1, r7, r3 + bl MapGridSetMetatileEntryAt + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + mov r7, r8 + ldrb r7, [r7, 0x1] + cmp r4, r7 + bcc _08100C04 +_08100C42: + ldr r1, [sp, 0x4] + lsls r0, r1, 24 + lsrs r6, r0, 24 + ldr r1, _08100C7C + adds r2, r5, 0 + adds r0, r5, r1 +_08100C4E: + ldrb r0, [r0, 0x2] + cmp r6, r0 + bcc _08100BEC + ldr r2, _08100C7C + adds r0, r5, r2 + ldrb r0, [r0] + bl sub_8100A60 +_08100C5E: + ldr r3, [sp] + lsls r0, r3, 24 + lsrs r7, r0, 24 +_08100C64: + ldr r0, _08100C84 + ldrb r0, [r0] + cmp r7, r0 + bcc _08100B7C + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08100C7C: .4byte gUnknown_020391B4 +_08100C80: .4byte gMapHeader +_08100C84: .4byte gUnknown_02039234 + thumb_func_end sub_8100B6C + + thumb_func_start sub_8100C88 +sub_8100C88: @ 8100C88 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08100CAC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _08100CC4 + cmp r0, 0x1 + bgt _08100CB0 + cmp r0, 0 + beq _08100CBA + b _08100D24 + .align 2, 0 +_08100CAC: .4byte gTasks +_08100CB0: + cmp r0, 0x2 + beq _08100CF4 + cmp r0, 0x3 + beq _08100D08 + b _08100D24 +_08100CBA: + bl sub_8100B6C + movs r0, 0x1 + strh r0, [r5, 0xC] + b _08100D24 +_08100CC4: + ldr r0, _08100CEC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08100D24 + bl DrawWholeMapView + ldr r0, _08100CF0 + bl ScriptContext1_SetupScript + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0x2 + strh r0, [r5, 0xC] + b _08100D24 + .align 2, 0 +_08100CEC: .4byte gPaletteFade +_08100CF0: .4byte gUnknown_081A2F8A +_08100CF4: + bl ScriptContext2_Enable + adds r0, r4, 0 + bl sub_80FED90 + bl pal_fill_black + movs r0, 0x3 + strh r0, [r5, 0xC] + b _08100D24 +_08100D08: + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08100D24 + ldr r0, _08100D2C + strh r0, [r5, 0x22] + ldr r1, _08100D30 + ldr r2, _08100D34 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_08100D24: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08100D2C: .4byte 0x0000ffff +_08100D30: .4byte gSecretBaseText_DecorReturned +_08100D34: .4byte sub_81010F0 + thumb_func_end sub_8100C88 + + thumb_func_start sub_8100D38 +sub_8100D38: @ 8100D38 + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + movs r2, 0 + ldr r0, _08100D68 + adds r4, r0, 0 + ldrb r0, [r4, 0x8] + cmp r2, r0 + bcs _08100D7C + adds r5, r4, 0 + ldr r1, _08100D6C + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r1, r0, r1 +_08100D56: + ldr r0, [r5] + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _08100D70 + strh r2, [r1, 0x22] + movs r0, 0x1 + b _08100D7E + .align 2, 0 +_08100D68: .4byte 0x0201f000 +_08100D6C: .4byte gTasks +_08100D70: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrb r0, [r4, 0x8] + cmp r2, r0 + bcc _08100D56 +_08100D7C: + movs r0, 0 +_08100D7E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8100D38 + + thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar +SetUpPuttingAwayDecorationPlayerAvatar: @ 8100D84 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + bl player_get_direction_lower_nybble + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r3, _08100DD8 + ldr r2, _08100DDC + ldr r4, _08100DE0 + ldr r1, [r4, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x2E] + strb r0, [r3] + bl sub_81016C8 + ldr r0, _08100DE4 + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + str r0, [r4, 0x4] + ldr r0, _08100DE8 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _08100DF0 + ldr r1, _08100DEC + str r0, [sp] + movs r0, 0xC1 + b _08100DF8 + .align 2, 0 +_08100DD8: .4byte gUnknown_020391A8 +_08100DDC: .4byte gSprites +_08100DE0: .4byte gUnknown_03004880 +_08100DE4: .4byte gSpriteTemplate_83ECA88 +_08100DE8: .4byte gSaveBlock2 +_08100DEC: .4byte SpriteCallbackDummy +_08100DF0: + ldr r1, _08100E5C + movs r0, 0 + str r0, [sp] + movs r0, 0xC2 +_08100DF8: + movs r2, 0x88 + movs r3, 0x48 + bl AddPseudoFieldObject + ldr r1, _08100E60 + strb r0, [r1] + ldr r6, _08100E64 + ldr r0, _08100E60 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r2, [r1, 0x5] + movs r4, 0xD + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + movs r2, 0x4 + mov r8, r2 + mov r2, r8 + orrs r0, r2 + strb r0, [r1, 0x5] + ldr r5, _08100E68 + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + ldr r0, _08100E6C + ldr r0, [r0, 0x4] + strb r0, [r5] + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0, 0x5] + ands r4, r1 + mov r1, r8 + orrs r4, r1 + strb r4, [r0, 0x5] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08100E5C: .4byte SpriteCallbackDummy +_08100E60: .4byte gUnknown_020391A9 +_08100E64: .4byte gSprites +_08100E68: .4byte gUnknown_020391A8 +_08100E6C: .4byte gUnknown_03004880 + thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar + + thumb_func_start sub_8100E70 +sub_8100E70: @ 8100E70 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _08100E94 + adds r4, r0, r1 + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08100EC4 + cmp r0, 0x1 + bgt _08100E98 + cmp r0, 0 + beq _08100E9E + b _08100EE6 + .align 2, 0 +_08100E94: .4byte gUnknown_03004B28 +_08100E98: + cmp r0, 0x2 + beq _08100ED2 + b _08100EE6 +_08100E9E: + ldr r0, _08100EC0 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08100EE6 + adds r0, r5, 0 + bl sub_80FF0E0 + movs r0, 0x1 + strh r0, [r4, 0x4] + strh r0, [r4, 0xC] + strh r0, [r4, 0xA] + bl sub_8072DEC + b _08100EE6 + .align 2, 0 +_08100EC0: .4byte gPaletteFade +_08100EC4: + bl SetUpPuttingAwayDecorationPlayerAvatar + bl pal_fill_black + movs r0, 0x2 + strh r0, [r4, 0x4] + b _08100EE6 +_08100ED2: + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08100EE6 + strh r0, [r4, 0x18] + adds r0, r5, 0 + bl sub_8100EEC +_08100EE6: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8100E70 + + thumb_func_start sub_8100EEC +sub_8100EEC: @ 8100EEC + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r4, _08100F70 + ldr r3, _08100F74 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r6, 0 + strh r6, [r0, 0x3C] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _08100F78 + str r1, [r0] + ldr r2, _08100F7C + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x88 + strh r1, [r0, 0x20] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x48 + strh r1, [r0, 0x22] + ldr r1, _08100F80 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r6, [r0, 0x1C] + ldr r1, _08100F84 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08100F70: .4byte gSprites +_08100F74: .4byte gUnknown_020391A8 +_08100F78: .4byte sub_8101698 +_08100F7C: .4byte gUnknown_020391A9 +_08100F80: .4byte gTasks +_08100F84: .4byte sub_8100494 + thumb_func_end sub_8100EEC + + thumb_func_start sub_8100F88 +sub_8100F88: @ 8100F88 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _08100FB0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + bl sub_810045C + adds r0, r4, 0 + bl sub_8101024 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08100FB0: .4byte gTasks + thumb_func_end sub_8100F88 + + thumb_func_start sub_8100FB4 +sub_8100FB4: @ 8100FB4 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _0810100C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + bl sub_810045C + ldr r3, _08101010 + ldr r5, _08101014 + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, 0x1C + adds r0, r3 + ldr r1, _08101018 + str r1, [r0] + ldr r1, _0810101C + ldr r2, _08101020 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810100C: .4byte gTasks +_08101010: .4byte gSprites +_08101014: .4byte gUnknown_020391A8 +_08101018: .4byte SpriteCallbackDummy +_0810101C: .4byte gSecretBaseText_StopPuttingAwayDecor +_08101020: .4byte sub_810156C + thumb_func_end sub_8100FB4 + + thumb_func_start sub_8101024 +sub_8101024: @ 8101024 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl sub_8101460 + ldr r0, _08101040 + ldrb r0, [r0] + cmp r0, 0 + beq _0810104C + ldr r1, _08101044 + ldr r2, _08101048 + b _081010B0 + .align 2, 0 +_08101040: .4byte gUnknown_02039234 +_08101044: .4byte gSecretBaseText_ReturnDecor +_08101048: .4byte sub_8101518 +_0810104C: + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + ldr r0, _081010BC + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + movs r2, 0x2 + ldrsh r1, [r1, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_8057238 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08101082 + adds r0, r4, 0 + bl sub_805738C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081010D4 +_08101082: + ldr r3, _081010C0 + ldr r4, _081010C4 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, 0x1C + adds r0, r3 + ldr r1, _081010C8 + str r1, [r0] + ldr r1, _081010CC + ldr r2, _081010D0 +_081010B0: + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _081010E0 + .align 2, 0 +_081010BC: .4byte gUnknown_03004B28 +_081010C0: .4byte gSprites +_081010C4: .4byte gUnknown_020391A8 +_081010C8: .4byte SpriteCallbackDummy +_081010CC: .4byte gSecretBaseText_StopPuttingAwayDecor +_081010D0: .4byte sub_810156C +_081010D4: + ldr r1, _081010E8 + ldr r2, _081010EC + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_081010E0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081010E8: .4byte gSecretBaseText_NoDecor +_081010EC: .4byte sub_81010F0 + thumb_func_end sub_8101024 + + thumb_func_start sub_81010F0 +sub_81010F0: @ 81010F0 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08101114 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0810110A + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08101110 +_0810110A: + adds r0, r2, 0 + bl sub_8100EEC +_08101110: + pop {r0} + bx r0 + .align 2, 0 +_08101114: .4byte gMain + thumb_func_end sub_81010F0 + + thumb_func_start sub_8101118 +sub_8101118: @ 8101118 + push {lr} + adds r2, r1, 0 + lsls r0, 24 + ldr r1, _08101130 + lsrs r0, 19 + adds r0, r1 + ldrb r1, [r0, 0x12] + cmp r1, 0 + bne _08101134 + movs r0, 0x1 + strb r0, [r2, 0x1] + b _08101192 + .align 2, 0 +_08101130: .4byte gDecorations +_08101134: + cmp r1, 0x1 + bne _08101140 + movs r0, 0x2 + strb r0, [r2, 0x1] + strb r1, [r2, 0x2] + b _08101194 +_08101140: + cmp r1, 0x2 + bne _0810114C + movs r0, 0x3 + strb r0, [r2, 0x1] + movs r0, 0x1 + b _08101192 +_0810114C: + cmp r1, 0x3 + bne _08101154 + movs r0, 0x4 + b _0810118E +_08101154: + cmp r1, 0x4 + bne _0810115E + movs r0, 0x2 + strb r0, [r2, 0x1] + b _08101192 +_0810115E: + cmp r1, 0x5 + bne _08101166 + movs r0, 0x1 + b _0810118E +_08101166: + cmp r1, 0x6 + bne _08101172 + movs r0, 0x1 + strb r0, [r2, 0x1] + movs r0, 0x3 + b _08101192 +_08101172: + cmp r1, 0x7 + bne _0810117E + movs r0, 0x2 + strb r0, [r2, 0x1] + movs r0, 0x4 + b _08101192 +_0810117E: + cmp r1, 0x8 + bne _08101188 + movs r0, 0x3 + strb r0, [r2, 0x1] + b _08101192 +_08101188: + cmp r1, 0x9 + bne _08101194 + movs r0, 0x3 +_0810118E: + strb r0, [r2, 0x1] + movs r0, 0x2 +_08101192: + strb r0, [r2, 0x2] +_08101194: + pop {r0} + bx r0 + thumb_func_end sub_8101118 + + thumb_func_start sub_8101198 +sub_8101198: @ 8101198 + push {r4-r6,lr} + lsls r0, 24 + lsls r1, 24 + ldr r5, _081011F0 + ldr r6, _081011F4 + ldrb r3, [r6] + lsls r2, r3, 4 + adds r2, r3 + lsls r2, 2 + adds r2, r5 + adds r2, 0x3E + ldrb r3, [r2] + movs r4, 0x4 + orrs r3, r4 + strb r3, [r2] + ldrb r3, [r6] + lsls r2, r3, 4 + adds r2, r3 + lsls r2, 2 + adds r3, r5, 0 + adds r3, 0x1C + adds r2, r3 + ldr r3, _081011F8 + str r3, [r2] + ldr r4, _081011FC + ldrb r3, [r4] + lsls r2, r3, 4 + adds r2, r3 + lsls r2, 2 + adds r2, r5 + lsrs r0, 20 + adds r0, 0x88 + strh r0, [r2, 0x20] + ldrb r2, [r4] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r5 + lsrs r1, 20 + adds r1, 0x48 + strh r1, [r0, 0x22] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081011F0: .4byte gSprites +_081011F4: .4byte gUnknown_020391A8 +_081011F8: .4byte SpriteCallbackDummy +_081011FC: .4byte gUnknown_020391A9 + thumb_func_end sub_8101198 + + thumb_func_start sub_8101200 +sub_8101200: @ 8101200 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _0810128C + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r3 + ldrb r0, [r2, 0x8] + subs r0, 0x7 + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r2, 0xA] + subs r0, 0x7 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r2, _08101290 + ldr r0, [r2, 0x4] + adds r0, r1 + ldrb r0, [r0] + lsrs r4, r0, 4 + movs r5, 0xF + ands r5, r0 + ldr r0, [r2] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x29 + bne _0810125A + adds r0, r4, 0x7 + adds r1, r5, 0x7 + bl MapGridGetMetatileIdAt + movs r1, 0xA3 + lsls r1, 2 + cmp r0, r1 + bne _0810125A + ldrb r0, [r6, 0x2] + subs r0, 0x1 + strb r0, [r6, 0x2] +_0810125A: + cmp r7, r4 + bcc _08101294 + ldrb r1, [r6, 0x1] + adds r0, r4, r1 + cmp r7, r0 + bge _08101294 + ldrb r0, [r6, 0x2] + subs r0, r5, r0 + cmp r8, r0 + ble _08101294 + cmp r8, r5 + bhi _08101294 + subs r0, r7, r4 + adds r0, 0x1 + subs r0, r1, r0 + lsls r0, 24 + lsrs r0, 24 + mov r2, r8 + subs r1, r5, r2 + lsls r1, 24 + lsrs r1, 24 + bl sub_8101198 + movs r0, 0x1 + b _08101296 + .align 2, 0 +_0810128C: .4byte gTasks +_08101290: .4byte 0x0201f000 +_08101294: + movs r0, 0 +_08101296: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8101200 + + thumb_func_start sub_81012A0 +sub_81012A0: @ 81012A0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r2, _0810130C + ldr r3, _08101310 + ldr r0, _08101314 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r3 + ldrb r1, [r0] + ldr r0, [r2, 0x4] + adds r0, r1 + ldrb r0, [r0] + lsrs r7, r0, 4 + movs r6, 0xF + ands r6, r0 + movs r5, 0 + ldr r0, _08101318 + mov r8, r0 + mov r9, r3 +_081012CA: + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 3 + mov r2, r8 + adds r1, r0, r2 + ldr r2, _0810131C + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, r7 + bne _08101328 + ldr r2, _08101320 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, r6 + bne _08101328 + ldr r0, _08101324 + adds r4, r1, r0 + ldrh r0, [r4] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _08101328 + ldr r0, _08101314 + ldrb r0, [r0] + lsls r0, 3 + add r0, r9 + ldrh r1, [r4] + strh r1, [r0, 0x4] + b _08101332 + .align 2, 0 +_0810130C: .4byte 0x0201f000 +_08101310: .4byte gUnknown_020391B4 +_08101314: .4byte gUnknown_02039234 +_08101318: .4byte gSaveBlock1 +_0810131C: .4byte 0x00000c24 +_08101320: .4byte 0x00000c26 +_08101324: .4byte 0x00000c34 +_08101328: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3F + bls _081012CA +_08101332: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81012A0 + + thumb_func_start sub_8101340 +sub_8101340: @ 8101340 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + movs r6, 0 + b _081013A2 +_0810134A: + ldr r0, [r0] + adds r1, r0, r6 + ldrb r0, [r1] + cmp r0, 0 + beq _0810139C + ldr r0, _08101390 + ldrb r2, [r1] + lsls r1, r2, 5 + adds r1, r0 + ldrb r0, [r1, 0x11] + cmp r0, 0x4 + bne _0810139C + ldr r5, _08101394 + adds r0, r2, 0 + adds r1, r5, 0 + bl sub_8101118 + lsls r1, r6, 24 + lsrs r1, 24 + adds r0, r7, 0 + adds r2, r5, 0 + bl sub_8101200 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bne _0810139C + strb r6, [r5] + bl sub_81012A0 + ldr r0, _08101398 + strb r4, [r0] + movs r0, 0x1 + b _081013AC + .align 2, 0 +_08101390: .4byte gDecorations +_08101394: .4byte gUnknown_020391B4 +_08101398: .4byte gUnknown_02039234 +_0810139C: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_081013A2: + ldr r0, _081013B4 + ldrb r1, [r0, 0x8] + cmp r6, r1 + bcc _0810134A + movs r0, 0 +_081013AC: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_081013B4: .4byte 0x0201f000 + thumb_func_end sub_8101340 + + thumb_func_start sub_81013B8 +sub_81013B8: @ 81013B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + movs r4, 0 + ldr r7, _08101450 + ldrb r0, [r7, 0x8] + cmp r4, r0 + bcs _0810143E + adds r6, r7, 0 + ldr r5, _08101454 +_081013EA: + ldr r0, [r6] + adds r0, r4 + ldrb r1, [r0] + ldr r0, [r6, 0x4] + adds r0, r4 + ldrb r0, [r0] + lsrs r3, r0, 4 + movs r2, 0xF + ands r2, r0 + cmp r1, 0 + beq _08101432 + ldr r0, _08101458 + lsls r1, 5 + adds r1, r0 + ldrb r0, [r1, 0x11] + cmp r0, 0x4 + bne _08101432 + ldr r0, [sp] + cmp r0, r3 + bhi _08101432 + cmp r10, r2 + bhi _08101432 + cmp r9, r3 + bcc _08101432 + cmp r8, r2 + bcc _08101432 + ldr r0, _0810145C + ldrb r1, [r5] + lsls r1, 3 + adds r1, r0 + strb r4, [r1] + bl sub_81012A0 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] +_08101432: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r7, 0x8] + cmp r4, r0 + bcc _081013EA +_0810143E: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08101450: .4byte 0x0201f000 +_08101454: .4byte gUnknown_02039234 +_08101458: .4byte gDecorations +_0810145C: .4byte gUnknown_020391B4 + thumb_func_end sub_81013B8 + + thumb_func_start sub_8101460 +sub_8101460: @ 8101460 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r4, _081014B8 + movs r0, 0 + strb r0, [r4] + adds r0, r6, 0 + bl sub_8101340 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08101504 + movs r5, 0 + ldr r0, _081014BC + ldrb r1, [r0, 0x8] + cmp r5, r1 + bcs _081014D2 + adds r7, r4, 0 +_08101486: + ldr r0, [r0] + adds r0, r5 + ldrb r1, [r0] + cmp r1, 0 + beq _081014C4 + ldr r4, _081014C0 + adds r0, r1, 0 + adds r1, r4, 0 + bl sub_8101118 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_8101200 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081014C4 + strb r5, [r4] + ldrb r0, [r7] + adds r0, 0x1 + strb r0, [r7] + b _081014D2 + .align 2, 0 +_081014B8: .4byte gUnknown_02039234 +_081014BC: .4byte 0x0201f000 +_081014C0: .4byte gUnknown_020391B4 +_081014C4: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0810150C + ldrb r1, [r0, 0x8] + cmp r5, r1 + bcc _08101486 +_081014D2: + ldr r0, _08101510 + ldrb r0, [r0] + cmp r0, 0 + beq _08101504 + ldr r0, _0810150C + ldr r2, _08101514 + ldrb r1, [r2] + ldr r0, [r0, 0x4] + adds r0, r1 + ldrb r1, [r0] + lsrs r0, r1, 4 + movs r3, 0xF + ands r3, r1 + ldrb r1, [r2, 0x2] + subs r1, r3, r1 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r2, 0x1] + adds r2, r0 + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + bl sub_81013B8 +_08101504: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810150C: .4byte 0x0201f000 +_08101510: .4byte gUnknown_02039234 +_08101514: .4byte gUnknown_020391B4 + thumb_func_end sub_8101460 + + thumb_func_start sub_8101518 +sub_8101518: @ 8101518 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r1, _08101538 + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101538: .4byte gUnknown_083EC9CC + thumb_func_end sub_8101518 + + thumb_func_start sub_810153C +sub_810153C: @ 810153C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r1, _08101564 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + ldr r1, _08101568 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101564: .4byte gTasks +_08101568: .4byte sub_8100C88 + thumb_func_end sub_810153C + + thumb_func_start sub_810156C +sub_810156C: @ 810156C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r1, _0810158C + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810158C: .4byte gUnknown_083EC9D4 + thumb_func_end sub_810156C + + thumb_func_start sub_8101590 +sub_8101590: @ 8101590 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl sub_81015B0 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8101590 + + thumb_func_start sub_81015B0 +sub_81015B0: @ 81015B0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r1, _081015D8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + ldr r1, _081015DC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081015D8: .4byte gTasks +_081015DC: .4byte sub_81015E0 + thumb_func_end sub_81015B0 + + thumb_func_start sub_81015E0 +sub_81015E0: @ 81015E0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08101600 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _08101604 + cmp r0, 0x1 + beq _08101620 + b _08101636 + .align 2, 0 +_08101600: .4byte gTasks +_08101604: + ldr r0, _0810161C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08101636 + adds r0, r4, 0 + bl sub_80FF114 + movs r0, 0x1 + strh r0, [r5, 0xC] + b _08101636 + .align 2, 0 +_0810161C: .4byte gPaletteFade +_08101620: + bl sub_81016F4 + ldr r0, _0810163C + ldr r1, _08101640 + str r1, [r0] + ldr r0, _08101644 + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_08101636: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810163C: .4byte gUnknown_0300485C +_08101640: .4byte sub_8101678 +_08101644: .4byte c2_exit_to_overworld_2_switch + thumb_func_end sub_81015E0 + + thumb_func_start sub_8101648 +sub_8101648: @ 8101648 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08101668 + ldr r0, _08101670 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _08101674 + str r0, [r1] +_08101668: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101670: .4byte gTasks +_08101674: .4byte sub_80FE2EC + thumb_func_end sub_8101648 + + thumb_func_start sub_8101678 +sub_8101678: @ 8101678 + push {lr} + bl pal_fill_black + bl MenuDisplayMessageBox + bl sub_80FE220 + ldr r0, _08101694 + movs r1, 0x8 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08101694: .4byte sub_8101648 + thumb_func_end sub_8101678 + + thumb_func_start sub_8101698 +sub_8101698: @ 8101698 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + movs r1, 0x1F + ands r0, r1 + strh r0, [r2, 0x2E] + cmp r0, 0xF + ble _081016B8 + adds r0, r2, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _081016C4 +_081016B8: + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_081016C4: + pop {r0} + bx r0 + thumb_func_end sub_8101698 + + thumb_func_start sub_81016C8 +sub_81016C8: @ 81016C8 + push {lr} + ldr r0, _081016DC + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _081016E4 + ldr r0, _081016E0 + bl LoadSpritePalette + b _081016EA + .align 2, 0 +_081016DC: .4byte gSaveBlock2 +_081016E0: .4byte gUnknown_083ECA5C +_081016E4: + ldr r0, _081016F0 + bl LoadSpritePalette +_081016EA: + pop {r0} + bx r0 + .align 2, 0 +_081016F0: .4byte gUnknown_083ECA64 + thumb_func_end sub_81016C8 + + thumb_func_start sub_81016F4 +sub_81016F4: @ 81016F4 + push {lr} + movs r0, 0x8 + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + thumb_func_end sub_81016F4 + + thumb_func_start sub_8101700 +sub_8101700: @ 8101700 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81341D4 + lsls r0, 24 + cmp r0, 0 + bne _08101728 + ldr r1, _08101720 + ldr r2, _08101724 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _08101742 + .align 2, 0 +_08101720: .4byte gSecretBaseText_NoDecors +_08101724: .4byte sub_80FE428 +_08101728: + ldr r1, _08101748 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + movs r1, 0x1 + strh r1, [r0, 0x1E] + ldr r0, _0810174C + strb r2, [r0] + adds r0, r4, 0 + bl sub_80FE5AC +_08101742: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101748: .4byte gTasks +_0810174C: .4byte gUnknown_020388F6 + thumb_func_end sub_8101700 + + thumb_func_start unref_sub_8101750 +unref_sub_8101750: @ 8101750 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81341D4 + lsls r0, 24 + cmp r0, 0 + bne _08101778 + ldr r1, _08101770 + ldr r2, _08101774 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _08101792 + .align 2, 0 +_08101770: .4byte gSecretBaseText_NoDecors +_08101774: .4byte sub_80FE428 +_08101778: + ldr r1, _08101798 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + movs r1, 0x2 + strh r1, [r0, 0x1E] + ldr r0, _0810179C + strb r2, [r0] + adds r0, r4, 0 + bl sub_80FE5AC +_08101792: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101798: .4byte gTasks +_0810179C: .4byte gUnknown_020388F6 + thumb_func_end unref_sub_8101750 + + thumb_func_start sub_81017A0 +sub_81017A0: @ 81017A0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_80FEF74 + bl sub_80FED1C + bl sub_80FEFA4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08101808 + ldr r0, _081017EC + ldr r1, _081017F0 + ldrb r2, [r1] + ldr r1, _081017F4 + ldr r1, [r1] + adds r1, r2 + ldrb r1, [r1] + lsls r1, 5 + ldr r2, _081017F8 + adds r1, r2 + bl StringCopy + ldr r4, _081017FC + ldr r1, _08101800 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _08101804 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _08101814 + .align 2, 0 +_081017EC: .4byte gStringVar1 +_081017F0: .4byte gUnknown_020388F5 +_081017F4: .4byte gUnknown_020388D0 +_081017F8: .4byte gDecorations + 0x1 +_081017FC: .4byte gStringVar4 +_08101800: .4byte gSecretBaseText_WillBeDiscarded +_08101804: .4byte sub_8101824 +_08101808: + ldr r1, _0810181C + ldr r2, _08101820 + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_08101814: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810181C: .4byte gSecretBaseText_DecorInUse +_08101820: .4byte sub_80FEFF4 + thumb_func_end sub_81017A0 + + thumb_func_start sub_8101824 +sub_8101824: @ 8101824 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r1, _08101844 + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101844: .4byte gUnknown_083ECAA0 + thumb_func_end sub_8101824 + + thumb_func_start sub_8101848 +sub_8101848: @ 8101848 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1A + movs r3, 0xE + bl MenuZeroFillWindowRect + ldr r6, _08101890 + ldrb r1, [r6] + ldr r5, _08101894 + ldr r0, [r5] + adds r0, r1 + ldrb r0, [r0] + bl sub_8109A30 + ldrb r1, [r6] + ldr r0, [r5] + adds r0, r1 + movs r1, 0 + strb r1, [r0] + adds r0, r4, 0 + bl sub_80FF098 + ldr r1, _08101898 + ldr r2, _0810189C + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08101890: .4byte gUnknown_020388F5 +_08101894: .4byte gUnknown_020388D0 +_08101898: .4byte gSecretBaseText_DecorThrownAway +_0810189C: .4byte sub_80FEFF4 + thumb_func_end sub_8101848 + + thumb_func_start sub_81018A0 +sub_81018A0: @ 81018A0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_81019B0 + ldr r0, _081018B4 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_081018B4: .4byte sub_81018B8 + thumb_func_end sub_81018A0 + + thumb_func_start sub_81018B8 +sub_81018B8: @ 81018B8 + push {lr} + ldr r0, _081018D0 + ldr r1, _081018D4 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x6 + bhi _0810194A + lsls r0, 2 + ldr r1, _081018D8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081018D0: .4byte gMain +_081018D4: .4byte 0x0000043c +_081018D8: .4byte _081018DC + .align 2, 0 +_081018DC: + .4byte _081018F8 + .4byte _08101902 + .4byte _08101908 + .4byte _08101912 + .4byte _08101918 + .4byte _0810191E + .4byte _08101938 +_081018F8: + bl sub_8101A28 + bl sub_8101BA4 + b _08101922 +_08101902: + bl sub_8101A8C + b _08101922 +_08101908: + bl sub_8101AE0 + bl sub_8101B04 + b _08101922 +_08101912: + bl sub_8101C84 + b _08101922 +_08101918: + bl sub_8101CA0 + b _08101922 +_0810191E: + bl sub_8101CC0 +_08101922: + ldr r1, _08101930 + ldr r0, _08101934 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0810194A + .align 2, 0 +_08101930: .4byte gMain +_08101934: .4byte 0x0000043c +_08101938: + bl sub_8101CD4 + bl sub_8101CEC + bl sub_8101A44 + ldr r0, _08101950 + bl SetMainCallback2 +_0810194A: + pop {r0} + bx r0 + .align 2, 0 +_08101950: .4byte sub_8101954 + thumb_func_end sub_81018B8 + + thumb_func_start sub_8101954 +sub_8101954: @ 8101954 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_8101954 + + thumb_func_start sub_810196C +sub_810196C: @ 810196C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r1, _081019A8 + ldr r2, _081019AC + adds r0, r2, 0 + adds r0, 0x58 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + adds r0, r2, 0 + adds r0, 0x5A + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + adds r0, r2, 0 + adds r0, 0x5C + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + adds r0, r2, 0 + adds r0, 0x5E + ldrh r0, [r0] + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_081019A8: .4byte REG_WIN0H +_081019AC: .4byte 0x02000000 + thumb_func_end sub_810196C + + thumb_func_start sub_81019B0 +sub_81019B0: @ 81019B0 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _081019E4 + movs r1, 0xFF + bl CreateTask + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _081019E8 + adds r0, r1 + strh r4, [r0, 0x8] + adds r0, 0xA + adds r1, r5, 0 + bl StoreWordInTwoHalfwords + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081019E4: .4byte nullsub_67 +_081019E8: .4byte gTasks + thumb_func_end sub_81019B0 + + thumb_func_start sub_81019EC +sub_81019EC: @ 81019EC + push {lr} + ldr r0, _08101A18 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + ldr r0, _08101A1C + adds r2, r0 + ldr r1, _08101A20 + ldrh r0, [r2, 0x8] + strb r0, [r1, 0x1] + adds r2, 0xA + adds r1, 0x64 + adds r0, r2, 0 + bl LoadWordFromTwoHalfwords + pop {r0} + bx r0 + .align 2, 0 +_08101A18: .4byte nullsub_67 +_08101A1C: .4byte gTasks +_08101A20: .4byte 0x02000000 + thumb_func_end sub_81019EC + + thumb_func_start nullsub_67 +nullsub_67: @ 8101A24 + bx lr + thumb_func_end nullsub_67 + + thumb_func_start sub_8101A28 +sub_8101A28: @ 8101A28 + push {lr} + movs r0, 0 + bl SetVBlankCallback + movs r0, 0 + bl SetHBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + pop {r0} + bx r0 + thumb_func_end sub_8101A28 + + thumb_func_start sub_8101A44 +sub_8101A44: @ 8101A44 + push {r4,lr} + ldr r0, _08101A7C + bl SetVBlankCallback + ldr r3, _08101A80 + ldrh r2, [r3] + movs r0, 0 + strh r0, [r3] + ldr r4, _08101A84 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _08101A88 + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101A7C: .4byte sub_810196C +_08101A80: .4byte 0x04000208 +_08101A84: .4byte 0x04000200 +_08101A88: .4byte REG_DISPSTAT + thumb_func_end sub_8101A44 + + thumb_func_start sub_8101A8C +sub_8101A8C: @ 8101A8C + push {r4-r7,lr} + sub sp, 0x4 + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0x80 + lsls r3, 9 + mov r4, sp + movs r6, 0 + ldr r1, _08101AD8 + movs r5, 0x80 + lsls r5, 5 + ldr r7, _08101ADC + movs r0, 0x81 + lsls r0, 24 + mov r12, r0 +_08101AAA: + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r5 + subs r3, r5 + cmp r3, r5 + bhi _08101AAA + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 1 + mov r2, r12 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08101AD8: .4byte 0x040000d4 +_08101ADC: .4byte 0x81000800 + thumb_func_end sub_8101A8C + + thumb_func_start sub_8101AE0 +sub_8101AE0: @ 8101AE0 + sub sp, 0x4 + movs r2, 0xE0 + lsls r2, 19 + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r0, _08101AFC + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _08101B00 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + add sp, 0x4 + bx lr + .align 2, 0 +_08101AFC: .4byte 0x040000d4 +_08101B00: .4byte 0x81000200 + thumb_func_end sub_8101AE0 + + thumb_func_start sub_8101B04 +sub_8101B04: @ 8101B04 + push {r4,r5,lr} + ldr r5, _08101B70 + movs r1, 0 + strh r1, [r5] + ldr r2, _08101B74 + strh r1, [r2] + ldr r3, _08101B78 + strh r1, [r3] + ldr r4, _08101B7C + strh r1, [r4] + ldr r0, _08101B80 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r1, _08101B84 + adds r0, r1, 0 + strh r0, [r5] + ldr r1, _08101B88 + adds r0, r1, 0 + strh r0, [r2] + ldr r2, _08101B8C + adds r0, r2, 0 + strh r0, [r3] + ldr r1, _08101B90 + adds r0, r1, 0 + strh r0, [r4] + ldr r0, _08101B94 + movs r1, 0x3F + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r1, _08101B98 + ldr r2, _08101B9C + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _08101BA0 + adds r0, r2, 0 + strh r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08101B70: .4byte REG_BG0CNT +_08101B74: .4byte REG_BG1CNT +_08101B78: .4byte REG_BG2CNT +_08101B7C: .4byte REG_BG3CNT +_08101B80: .4byte REG_BG0HOFS +_08101B84: .4byte 0x00001f08 +_08101B88: .4byte 0x00001c01 +_08101B8C: .4byte 0x00001d02 +_08101B90: .4byte 0x00001e02 +_08101B94: .4byte REG_WININ +_08101B98: .4byte REG_BLDCNT +_08101B9C: .4byte 0x00001048 +_08101BA0: .4byte 0x00000809 + thumb_func_end sub_8101B04 + + thumb_func_start sub_8101BA4 +sub_8101BA4: @ 8101BA4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + bl sub_81019EC + ldr r5, _08101C74 + movs r4, 0 + strb r4, [r5] + strb r4, [r5, 0x2] + bl Random + movs r1, 0x1 + ands r1, r0 + strb r1, [r5, 0x3] + strb r4, [r5, 0x4] + movs r0, 0 + strh r4, [r5, 0x8] + strb r0, [r5, 0xA] + strb r0, [r5, 0xB] + ldr r0, _08101C78 + ldr r1, _08101C7C + adds r0, r1 + ldrh r0, [r0] + strh r0, [r5, 0xC] + strh r4, [r5, 0xE] + strh r4, [r5, 0x10] + strh r4, [r5, 0x12] + strh r4, [r5, 0x18] + movs r0, 0x8 + strh r0, [r5, 0x1A] + adds r1, r5, 0 + adds r1, 0x58 + movs r0, 0xF0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0xA0 + strh r0, [r1] + adds r0, r5, 0 + adds r0, 0x5C + movs r1, 0x3F + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl GetCurrentMapMusic + adds r1, r5, 0 + adds r1, 0x60 + strh r0, [r1] + movs r7, 0 + adds r6, r5, 0 + ldr r2, _08101C80 + mov r9, r2 + movs r0, 0x1C + adds r0, r6 + mov r8, r0 +_08101C14: + lsls r5, r7, 1 + adds r0, r6, 0 + adds r0, 0x22 + adds r0, r5, r0 + movs r1, 0 + strh r1, [r0] + adds r4, r6, 0 + adds r4, 0x28 + adds r4, r5, r4 + ldrb r0, [r6, 0x3] + lsls r0, 1 + lsls r1, r7, 2 + adds r0, r1 + add r0, r9 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x15 + bl __modsi3 + strh r0, [r4] + add r5, r8 + movs r2, 0 + ldrsh r0, [r4, r2] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + movs r2, 0xFC + lsls r2, 1 + adds r0, r2, 0 + subs r0, r1 + strh r0, [r5] + movs r1, 0 + ldrsh r0, [r5, r1] + adds r1, r2, 0 + bl __modsi3 + strh r0, [r5] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bls _08101C14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08101C74: .4byte 0x02000000 +_08101C78: .4byte gSaveBlock1 +_08101C7C: .4byte 0x00000494 +_08101C80: .4byte gUnknown_083ECCF8 + thumb_func_end sub_8101BA4 + + thumb_func_start sub_8101C84 +sub_8101C84: @ 8101C84 + push {r4,lr} + ldr r4, _08101C9C + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101C9C: .4byte gWindowConfig_81E7128 + thumb_func_end sub_8101C84 + + thumb_func_start sub_8101CA0 +sub_8101CA0: @ 8101CA0 + push {lr} + bl ResetPaletteFade + bl ResetSpriteData + ldr r1, _08101CBC + movs r0, 0x80 + strb r0, [r1] + bl FreeAllSpritePalettes + bl ResetTasks + pop {r0} + bx r0 + .align 2, 0 +_08101CBC: .4byte gOamLimit + thumb_func_end sub_8101CA0 + + thumb_func_start sub_8101CC0 +sub_8101CC0: @ 8101CC0 + push {lr} + bl sub_8106448 + bl sub_81064B8 + bl sub_81063C0 + pop {r0} + bx r0 + thumb_func_end sub_8101CC0 + + thumb_func_start sub_8101CD4 +sub_8101CD4: @ 8101CD4 + push {lr} + bl sub_8104EA8 + bl sub_8104F8C + bl sub_8103DC8 + bl sub_81050C4 + pop {r0} + bx r0 + thumb_func_end sub_8101CD4 + + thumb_func_start sub_8101CEC +sub_8101CEC: @ 8101CEC + push {lr} + bl sub_8104048 + bl sub_8102DA8 + bl sub_8104C5C + bl sub_8101D04 + pop {r0} + bx r0 + thumb_func_end sub_8101CEC + + thumb_func_start sub_8101D04 +sub_8101D04: @ 8101D04 + push {r4,lr} + ldr r4, _08101D20 + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101D20: .4byte sub_8101D24 + thumb_func_end sub_8101D04 + + thumb_func_start sub_8101D24 +sub_8101D24: @ 8101D24 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r7, _08101D50 + lsls r1, r0, 2 + adds r1, r0 + lsls r4, r1, 3 + ldr r6, _08101D54 + ldr r5, _08101D58 +_08101D36: + ldrb r0, [r6] + lsls r0, 2 + adds r0, r7 + ldr r1, [r0] + adds r0, r4, r5 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _08101D36 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08101D50: .4byte gUnknown_083ECAAC +_08101D54: .4byte 0x02000000 +_08101D58: .4byte gTasks + thumb_func_end sub_8101D24 + + thumb_func_start sub_8101D5C +sub_8101D5C: @ 8101D5C + push {r4,lr} + sub sp, 0x4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r4, _08101D88 + ldrb r0, [r4, 0x2] + bl sub_810423C + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08101D88: .4byte 0x02000000 + thumb_func_end sub_8101D5C + + thumb_func_start sub_8101D8C +sub_8101D8C: @ 8101D8C + push {lr} + ldr r0, _08101DA8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08101DA2 + ldr r1, _08101DAC + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08101DA2: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08101DA8: .4byte gPaletteFade +_08101DAC: .4byte 0x02000000 + thumb_func_end sub_8101D8C + + thumb_func_start sub_8101DB0 +sub_8101DB0: @ 8101DB0 + push {lr} + ldr r2, _08101DD8 + movs r0, 0 + strh r0, [r2, 0xE] + strh r0, [r2, 0x12] + strh r0, [r2, 0x18] + ldrb r1, [r2, 0x4] + movs r0, 0xC0 + ands r0, r1 + strb r0, [r2, 0x4] + movs r0, 0x4 + strb r0, [r2] + movs r1, 0xC + ldrsh r0, [r2, r1] + cmp r0, 0 + bgt _08101DDC + movs r0, 0x19 + strb r0, [r2] + b _08101DEC + .align 2, 0 +_08101DD8: .4byte 0x02000000 +_08101DDC: + ldrb r0, [r2, 0xA] + cmp r0, 0 + beq _08101DEC + movs r0, 0x3 + strb r0, [r2] + movs r0, 0x4 + bl sub_8104CAC +_08101DEC: + movs r0, 0x1 + pop {r1} + bx r1 + thumb_func_end sub_8101DB0 + + thumb_func_start sub_8101DF4 +sub_8101DF4: @ 8101DF4 + push {lr} + bl sub_8104E18 + lsls r0, 24 + cmp r0, 0 + beq _08101E06 + ldr r1, _08101E0C + movs r0, 0x4 + strb r0, [r1] +_08101E06: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08101E0C: .4byte 0x02000000 + thumb_func_end sub_8101DF4 + + thumb_func_start sub_8101E10 +sub_8101E10: @ 8101E10 + push {lr} + movs r0, 0 + bl sub_8104CAC + ldr r2, _08101E34 + movs r0, 0x5 + strb r0, [r2] + movs r0, 0xC + ldrsh r1, [r2, r0] + ldr r0, _08101E38 + cmp r1, r0 + ble _08101E2C + movs r0, 0x17 + strb r0, [r2] +_08101E2C: + movs r0, 0x1 + pop {r1} + bx r1 + .align 2, 0 +_08101E34: .4byte 0x02000000 +_08101E38: .4byte 0x0000270e + thumb_func_end sub_8101E10 + + thumb_func_start sub_8101E3C +sub_8101E3C: @ 8101E3C + push {r4,lr} + ldr r0, _08101E58 + ldrh r1, [r0, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08101E60 + movs r0, 0 + bl sub_8104AB8 + ldr r1, _08101E5C + movs r0, 0x8 + strb r0, [r1] + b _08101F1A + .align 2, 0 +_08101E58: .4byte gMain +_08101E5C: .4byte 0x02000000 +_08101E60: + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _08101EC2 + ldr r2, _08101EB8 + movs r1, 0xC + ldrsh r0, [r2, r1] + subs r0, 0x3 + movs r3, 0x12 + ldrsh r1, [r2, r3] + adds r0, r1 + cmp r0, 0 + blt _08101EBC + ldrh r4, [r2, 0x12] + adds r0, r1, 0 + cmp r0, 0x2 + bgt _08101E9C +_08101E84: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8103D50 + lsls r0, r4, 16 + movs r2, 0x80 + lsls r2, 9 + adds r0, r2 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _08101E84 +_08101E9C: + ldr r1, _08101EB8 + ldrh r0, [r1, 0xC] + subs r0, 0x3 + ldrh r3, [r1, 0x12] + adds r0, r3 + strh r0, [r1, 0xC] + movs r0, 0x3 + strh r0, [r1, 0x12] + movs r0, 0x9 + strb r0, [r1] + movs r0, 0x5F + bl PlaySE + b _08101F1A + .align 2, 0 +_08101EB8: .4byte 0x02000000 +_08101EBC: + movs r0, 0x6 + strb r0, [r2] + b _08101F1A +_08101EC2: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08101EEC + ldr r4, _08101F24 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _08101EEC + movs r0, 0x5F + bl PlaySE + ldrb r0, [r4, 0x12] + bl sub_8103D50 + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] +_08101EEC: + ldr r0, _08101F24 + movs r2, 0x12 + ldrsh r1, [r0, r2] + ldr r2, _08101F28 + adds r3, r0, 0 + cmp r1, 0x2 + bgt _08101F08 + cmp r1, 0 + beq _08101F0C + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08101F0C +_08101F08: + movs r0, 0x9 + strb r0, [r3] +_08101F0C: + ldrh r1, [r2, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08101F1A + movs r0, 0x15 + strb r0, [r3] +_08101F1A: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08101F24: .4byte 0x02000000 +_08101F28: .4byte gMain + thumb_func_end sub_8101E3C + + thumb_func_start sub_8101F2C +sub_8101F2C: @ 8101F2C + push {r4,lr} + adds r4, r0, 0 + bl MenuDisplayMessageBox + adds r0, r4, 0 + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8101F2C + + thumb_func_start sub_8101F44 +sub_8101F44: @ 8101F44 + push {lr} + ldr r0, _08101F58 + bl sub_8101F2C + ldr r1, _08101F5C + movs r0, 0x7 + strb r0, [r1] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08101F58: .4byte gOtherText_DontHaveThreeCoins +_08101F5C: .4byte 0x02000000 + thumb_func_end sub_8101F44 + + thumb_func_start sub_8101F60 +sub_8101F60: @ 8101F60 + push {lr} + ldr r0, _08101F80 + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08101F78 + bl MenuZeroFillScreen + ldr r1, _08101F84 + movs r0, 0x5 + strb r0, [r1] +_08101F78: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08101F80: .4byte gMain +_08101F84: .4byte 0x02000000 + thumb_func_end sub_8101F60 + + thumb_func_start sub_8101F88 +sub_8101F88: @ 8101F88 + push {lr} + bl sub_8104AEC + lsls r0, 24 + cmp r0, 0 + beq _08101F9A + ldr r1, _08101FA0 + movs r0, 0x5 + strb r0, [r1] +_08101F9A: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08101FA0: .4byte 0x02000000 + thumb_func_end sub_8101F88 + + thumb_func_start sub_8101FA4 +sub_8101FA4: @ 8101FA4 + push {r4,lr} + adds r4, r0, 0 + bl sub_8102484 + bl sub_8104DA4 + movs r0, 0 + bl sub_8102DEC + movs r0, 0x1 + bl sub_8102DEC + movs r0, 0x2 + bl sub_8102DEC + movs r0, 0 + strh r0, [r4, 0x8] + ldr r4, _08101FDC + ldrb r1, [r4, 0x4] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08101FE0 + bl sub_810430C + movs r0, 0xA + b _08101FE8 + .align 2, 0 +_08101FDC: .4byte 0x02000000 +_08101FE0: + movs r0, 0x1 + bl sub_8104CAC + movs r0, 0xB +_08101FE8: + strb r0, [r4] + ldr r4, _08102004 + movs r0, 0x8 + strh r0, [r4, 0x1A] + ldrb r0, [r4, 0xA] + cmp r0, 0 + beq _08101FFC + bl dp15_jump_random_unknown + strh r0, [r4, 0x1A] +_08101FFC: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08102004: .4byte 0x02000000 + thumb_func_end sub_8101FA4 + + thumb_func_start sub_8102008 +sub_8102008: @ 8102008 + push {lr} + bl sub_810432C + lsls r0, 24 + cmp r0, 0 + beq _08102028 + movs r0, 0x1 + bl sub_8104CAC + ldr r1, _08102030 + ldrb r2, [r1, 0x4] + movs r0, 0xDF + ands r0, r2 + strb r0, [r1, 0x4] + movs r0, 0xB + strb r0, [r1] +_08102028: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08102030: .4byte 0x02000000 + thumb_func_end sub_8102008 + + thumb_func_start sub_8102034 +sub_8102034: @ 8102034 + push {lr} + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x1D + ble _0810204E + bl sub_81024F0 + ldr r1, _08102054 + movs r0, 0xC + strb r0, [r1] +_0810204E: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08102054: .4byte 0x02000000 + thumb_func_end sub_8102034 + + thumb_func_start sub_8102058 +sub_8102058: @ 8102058 + push {r4,lr} + ldr r0, _08102088 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810207E + movs r0, 0x18 + bl PlaySE + ldr r4, _0810208C + ldrb r0, [r4, 0x18] + bl sub_8102E1C + ldrb r0, [r4, 0x18] + bl sub_8103C14 + movs r0, 0xD + strb r0, [r4] +_0810207E: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08102088: .4byte gMain +_0810208C: .4byte 0x02000000 + thumb_func_end sub_8102058 + + thumb_func_start sub_8102090 +sub_8102090: @ 8102090 + push {r4,lr} + ldr r4, _081020BC + ldrb r0, [r4, 0x18] + bl sub_8102E40 + lsls r0, 24 + cmp r0, 0 + bne _081020C0 + ldrh r0, [r4, 0x18] + adds r0, 0x1 + strh r0, [r4, 0x18] + movs r1, 0xC + strb r1, [r4] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _081020B6 + movs r0, 0xE + strb r0, [r4] +_081020B6: + movs r0, 0x1 + b _081020C2 + .align 2, 0 +_081020BC: .4byte 0x02000000 +_081020C0: + movs r0, 0 +_081020C2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8102090 + + thumb_func_start sub_81020C8 +sub_81020C8: @ 81020C8 + push {r4,lr} + ldr r4, _08102128 + ldrb r1, [r4, 0x4] + movs r0, 0xC0 + ands r0, r1 + strb r0, [r4, 0x4] + bl sub_81027A0 + ldrb r0, [r4, 0xA] + cmp r0, 0 + beq _081020E8 + subs r0, 0x1 + strb r0, [r4, 0xA] + ldrb r0, [r4, 0xB] + adds r0, 0x1 + strb r0, [r4, 0xB] +_081020E8: + ldrh r0, [r4, 0x8] + cmp r0, 0 + beq _081021B4 + movs r0, 0xF + strb r0, [r4] + bl sub_8102A24 + bl sub_8103F70 + ldrh r0, [r4, 0x10] + ldrh r1, [r4, 0xE] + subs r0, r1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bge _0810210C + movs r0, 0 + strh r0, [r4, 0x10] +_0810210C: + ldrh r1, [r4, 0x8] + movs r0, 0xC0 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _08102130 + ldr r0, _0810212C + bl PlayFanfare + movs r0, 0x6 + bl sub_8104CAC + b _0810215A + .align 2, 0 +_08102128: .4byte 0x02000000 +_0810212C: .4byte 0x00000185 +_08102130: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0810214C + ldr r0, _08102148 + bl PlayFanfare + movs r0, 0x5 + bl sub_8104CAC + b _0810215A + .align 2, 0 +_08102148: .4byte 0x00000185 +_0810214C: + movs r0, 0xC3 + lsls r0, 1 + bl PlayFanfare + movs r0, 0x2 + bl sub_8104CAC +_0810215A: + ldr r1, _081021B0 + ldrh r3, [r1, 0x8] + movs r0, 0xE0 + lsls r0, 1 + ands r0, r3 + adds r2, r1, 0 + cmp r0, 0 + beq _08102192 + ldrb r1, [r2, 0x4] + movs r0, 0x3F + ands r0, r1 + movs r1, 0 + strb r0, [r2, 0x4] + movs r0, 0xC0 + lsls r0, 1 + ands r0, r3 + cmp r0, 0 + beq _08102192 + strb r1, [r2, 0xA] + strb r1, [r2, 0xB] + strb r1, [r2, 0x3] + movs r0, 0x80 + lsls r0, 1 + ands r0, r3 + cmp r0, 0 + beq _08102192 + movs r0, 0x1 + strb r0, [r2, 0x3] +_08102192: + ldrh r1, [r2, 0x8] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081021D2 + ldrb r0, [r2, 0x2] + cmp r0, 0xF + bhi _081021D2 + adds r0, 0x1 + strb r0, [r2, 0x2] + ldrb r0, [r2, 0x2] + bl sub_8104064 + b _081021D2 + .align 2, 0 +_081021B0: .4byte 0x02000000 +_081021B4: + movs r0, 0x3 + bl sub_8104CAC + movs r0, 0x14 + strb r0, [r4] + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x10] + adds r0, r1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + ldr r1, _081021DC + cmp r0, r1 + ble _081021D2 + strh r1, [r4, 0x10] +_081021D2: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081021DC: .4byte 0x0000270f + thumb_func_end sub_81020C8 + + thumb_func_start sub_81021E0 +sub_81021E0: @ 81021E0 + push {lr} + bl sub_8102A44 + lsls r0, 24 + cmp r0, 0 + beq _081021F2 + ldr r1, _081021F8 + movs r0, 0x10 + strb r0, [r1] +_081021F2: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_081021F8: .4byte 0x02000000 + thumb_func_end sub_81021E0 + + thumb_func_start sub_81021FC +sub_81021FC: @ 81021FC + push {r4,lr} + bl sub_8103FA0 + lsls r0, 24 + cmp r0, 0 + beq _08102256 + ldr r4, _08102260 + movs r0, 0x13 + strb r0, [r4] + ldrh r1, [r4, 0x8] + movs r0, 0xC0 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _08102220 + movs r0, 0x1C + bl sav12_xor_increment +_08102220: + ldrh r1, [r4, 0x8] + movs r0, 0x4 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _08102236 + movs r0, 0 + strh r0, [r4, 0x18] + movs r0, 0x9 + strb r0, [r4] +_08102236: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08102242 + movs r0, 0x11 + strb r0, [r4] +_08102242: + ldrb r0, [r4, 0xA] + cmp r0, 0 + beq _08102256 + cmp r2, 0 + beq _08102256 + movs r0, 0x4 + bl sub_8104CAC + movs r0, 0x12 + strb r0, [r4] +_08102256: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08102260: .4byte 0x02000000 + thumb_func_end sub_81021FC + + thumb_func_start sub_8102264 +sub_8102264: @ 8102264 + push {r4,lr} + bl sub_81040C8 + lsls r0, 24 + cmp r0, 0 + bne _08102294 + ldr r4, _0810229C + movs r0, 0x13 + strb r0, [r4] + ldrh r1, [r4, 0x8] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08102294 + movs r0, 0x9 + strb r0, [r4] + ldrb r0, [r4, 0xA] + cmp r0, 0 + beq _08102294 + movs r0, 0x4 + bl sub_8104CAC + movs r0, 0x12 + strb r0, [r4] +_08102294: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0810229C: .4byte 0x02000000 + thumb_func_end sub_8102264 + + thumb_func_start sub_81022A0 +sub_81022A0: @ 81022A0 + push {lr} + bl sub_8104E18 + lsls r0, 24 + cmp r0, 0 + beq _081022C0 + ldr r2, _081022C8 + movs r0, 0x13 + strb r0, [r2] + ldrh r1, [r2, 0x8] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _081022C0 + movs r0, 0x9 + strb r0, [r2] +_081022C0: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_081022C8: .4byte 0x02000000 + thumb_func_end sub_81022A0 + + thumb_func_start sub_81022CC +sub_81022CC: @ 81022CC + push {lr} + movs r0, 0 + bl sub_8103D8C + movs r0, 0x1 + bl sub_8103D8C + movs r0, 0x2 + bl sub_8103D8C + ldr r1, _081022EC + movs r0, 0x2 + strb r0, [r1] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_081022EC: .4byte 0x02000000 + thumb_func_end sub_81022CC + + thumb_func_start sub_81022F0 +sub_81022F0: @ 81022F0 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x40 + ble _0810230C + movs r0, 0 + strh r0, [r1, 0xA] + ldr r1, _08102314 + movs r0, 0x13 + strb r0, [r1] +_0810230C: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08102314: .4byte 0x02000000 + thumb_func_end sub_81022F0 + + thumb_func_start sub_8102318 +sub_8102318: @ 8102318 + push {lr} + ldr r0, _0810233C + bl sub_8101F2C + movs r0, 0x15 + movs r1, 0x7 + movs r2, 0x1 + bl DisplayYesNoMenu + bl sub_814AB84 + ldr r1, _08102340 + movs r0, 0x16 + strb r0, [r1] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0810233C: .4byte gOtherText_QuitGamePrompt +_08102340: .4byte 0x02000000 + thumb_func_end sub_8102318 + + thumb_func_start sub_8102344 +sub_8102344: @ 8102344 + push {lr} + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + bne _0810237C + bl MenuZeroFillScreen + movs r0, 0 + bl sub_8103D8C + movs r0, 0x1 + bl sub_8103D8C + movs r0, 0x2 + bl sub_8103D8C + ldr r0, _08102378 + ldrh r1, [r0, 0x12] + ldrh r2, [r0, 0xC] + adds r1, r2 + strh r1, [r0, 0xC] + movs r1, 0x1B + strb r1, [r0] + b _08102392 + .align 2, 0 +_08102378: .4byte 0x02000000 +_0810237C: + cmp r1, 0x1 + beq _08102388 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _08102392 +_08102388: + bl MenuZeroFillScreen + ldr r1, _08102398 + movs r0, 0x5 + strb r0, [r1] +_08102392: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08102398: .4byte 0x02000000 + thumb_func_end sub_8102344 + + thumb_func_start sub_810239C +sub_810239C: @ 810239C + push {lr} + ldr r0, _081023B0 + bl sub_8101F2C + ldr r1, _081023B4 + movs r0, 0x18 + strb r0, [r1] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_081023B0: .4byte gOtherText_MaxCoins +_081023B4: .4byte 0x02000000 + thumb_func_end sub_810239C + + thumb_func_start sub_81023B8 +sub_81023B8: @ 81023B8 + push {lr} + ldr r0, _081023D8 + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _081023D0 + bl MenuZeroFillScreen + ldr r1, _081023DC + movs r0, 0x5 + strb r0, [r1] +_081023D0: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_081023D8: .4byte gMain +_081023DC: .4byte 0x02000000 + thumb_func_end sub_81023B8 + + thumb_func_start sub_81023E0 +sub_81023E0: @ 81023E0 + push {lr} + ldr r0, _081023F4 + bl sub_8101F2C + ldr r1, _081023F8 + movs r0, 0x1A + strb r0, [r1] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_081023F4: .4byte gOtherText_OutOfCoins +_081023F8: .4byte 0x02000000 + thumb_func_end sub_81023E0 + + thumb_func_start sub_81023FC +sub_81023FC: @ 81023FC + push {lr} + ldr r0, _0810241C + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08102414 + bl MenuZeroFillScreen + ldr r1, _08102420 + movs r0, 0x1B + strb r0, [r1] +_08102414: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0810241C: .4byte gMain +_08102420: .4byte 0x02000000 + thumb_func_end sub_81023FC + + thumb_func_start sub_8102424 +sub_8102424: @ 8102424 + push {r4,lr} + sub sp, 0x4 + ldr r0, _08102454 + ldr r4, _08102458 + ldrh r1, [r4, 0xC] + ldr r2, _0810245C + adds r0, r2 + movs r2, 0 + strh r1, [r0] + movs r0, 0x1 + negs r0, r0 + str r2, [sp] + movs r1, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08102454: .4byte gSaveBlock1 +_08102458: .4byte 0x02000000 +_0810245C: .4byte 0x00000494 + thumb_func_end sub_8102424 + + thumb_func_start sub_8102460 +sub_8102460: @ 8102460 + push {lr} + ldr r0, _0810247C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08102476 + ldr r0, _08102480 + ldr r0, [r0, 0x64] + bl SetMainCallback2 +_08102476: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0810247C: .4byte gPaletteFade +_08102480: .4byte 0x02000000 + thumb_func_end sub_8102460 + + thumb_func_start sub_8102484 +sub_8102484: @ 8102484 + push {r4,lr} + ldr r4, _081024E4 + ldrb r0, [r4, 0xA] + cmp r0, 0 + bne _081024DC + ldrb r1, [r4, 0x4] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0 + bne _081024DC + bl sub_8102540 + lsls r0, 24 + cmp r0, 0 + beq _081024C0 + bl sub_8102578 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + beq _081024C0 + ldr r1, _081024E8 + lsls r0, r3, 1 + adds r0, r1 + ldrb r1, [r0] + ldrb r0, [r4, 0x4] + orrs r0, r1 + strb r0, [r4, 0x4] + cmp r3, 0x1 + bne _081024DC +_081024C0: + bl sub_81025BC + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x5 + beq _081024DC + ldr r2, _081024E4 + ldr r1, _081024EC + lsls r0, r3, 1 + adds r0, r1 + ldrb r1, [r0] + ldrb r0, [r2, 0x4] + orrs r0, r1 + strb r0, [r2, 0x4] +_081024DC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081024E4: .4byte 0x02000000 +_081024E8: .4byte gUnknown_083ECE42 +_081024EC: .4byte gUnknown_083ECE48 + thumb_func_end sub_8102484 + + thumb_func_start sub_81024F0 +sub_81024F0: @ 81024F0 + push {lr} + ldr r1, _08102508 + movs r0, 0 + strb r0, [r1, 0x6] + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _08102502 + movs r0, 0x1 + strb r0, [r1, 0x6] +_08102502: + pop {r0} + bx r0 + .align 2, 0 +_08102508: .4byte 0x02000000 + thumb_func_end sub_81024F0 + + thumb_func_start sub_810250C +sub_810250C: @ 810250C + push {r4,lr} + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0 + movs r3, 0x1 + ldr r4, _08102528 +_08102518: + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + beq _0810252C + adds r0, r2, r4 + ldrb r0, [r0] + b _0810253A + .align 2, 0 +_08102528: .4byte gUnknown_083ECE3A +_0810252C: + lsrs r1, 1 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _08102518 + movs r0, 0 +_0810253A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_810250C + + thumb_func_start sub_8102540 +sub_8102540: @ 8102540 + push {r4,lr} + bl Random + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08102568 + ldr r1, _0810256C + movs r3, 0x12 + ldrsh r2, [r1, r3] + ldrb r3, [r1, 0x1] + lsls r1, r3, 1 + adds r1, r3 + subs r1, 0x1 + adds r2, r1 + adds r2, r4 + ldrb r1, [r2] + cmp r1, r0 + bhi _08102570 + movs r0, 0 + b _08102572 + .align 2, 0 +_08102568: .4byte gUnknown_083ECD04 +_0810256C: .4byte 0x02000000 +_08102570: + movs r0, 0x1 +_08102572: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8102540 + + thumb_func_start sub_8102578 +sub_8102578: @ 8102578 + push {r4-r6,lr} + movs r5, 0 + ldr r6, _081025B4 +_0810257E: + bl Random + movs r2, 0xFF + ldr r3, _081025B8 + lsls r1, r5, 16 + asrs r4, r1, 16 + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 1 + ldrb r3, [r3, 0x1] + adds r1, r3 + adds r1, r6 + ldrb r1, [r1] + ands r2, r0 + cmp r1, r2 + bgt _081025AA + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _0810257E +_081025AA: + lsls r0, r5, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_081025B4: .4byte gUnknown_083ECD16 +_081025B8: .4byte 0x02000000 + thumb_func_end sub_8102578 + + thumb_func_start sub_81025BC +sub_81025BC: @ 81025BC + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + ldr r0, _08102600 + mov r8, r0 + ldr r5, _08102604 + movs r7, 0x80 + lsls r7, 17 +_081025CE: + bl Random + movs r4, 0xFF + ands r4, r0 + lsls r2, r6, 16 + asrs r1, r2, 16 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + ldrb r3, [r5, 0x1] + adds r0, r3 + add r0, r8 + ldrb r3, [r0] + cmp r1, 0 + bne _08102608 + ldrb r0, [r5, 0x3] + cmp r0, 0x1 + bne _08102608 + adds r3, 0xA + asrs r0, r7, 16 + cmp r3, r0 + ble _08102622 + adds r3, r0, 0 + b _08102622 + .align 2, 0 +_08102600: .4byte gUnknown_083ECD28 +_08102604: .4byte 0x02000000 +_08102608: + asrs r0, r2, 16 + cmp r0, 0x4 + bne _08102622 + ldrb r0, [r5, 0x3] + cmp r0, 0x1 + bne _08102622 + lsls r0, r3, 16 + ldr r1, _08102648 + adds r0, r1 + lsrs r3, r0, 16 + cmp r0, 0 + bge _08102622 + movs r3, 0 +_08102622: + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, r4 + bgt _08102638 + movs r3, 0x80 + lsls r3, 9 + adds r0, r2, r3 + lsrs r6, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _081025CE +_08102638: + lsls r0, r6, 24 + lsrs r0, 24 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08102648: .4byte 0xfff60000 + thumb_func_end sub_81025BC + + thumb_func_start sub_810264C +sub_810264C: @ 810264C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r3, _08102660 + ldrb r0, [r3, 0x3] + cmp r0, 0 + beq _08102668 + ldr r0, _08102664 + b _0810266A + .align 2, 0 +_08102660: .4byte 0x02000000 +_08102664: .4byte gUnknown_083ECDAC +_08102668: + ldr r0, _0810267C +_0810266A: + lsls r1, r2, 4 + adds r1, r2 + ldrb r3, [r3, 0x2] + adds r1, r3 + adds r1, r0 + ldrb r0, [r1] + pop {r1} + bx r1 + .align 2, 0 +_0810267C: .4byte gUnknown_083ECD46 + thumb_func_end sub_810264C + + thumb_func_start sub_8102680 +sub_8102680: @ 8102680 + push {r4-r6,lr} + ldr r1, _081026A4 + movs r0, 0 + strb r0, [r1, 0x5] + bl Random + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + bl sub_810264C + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bcc _081026D2 + movs r6, 0x5 + b _081026AE + .align 2, 0 +_081026A4: .4byte 0x02000000 +_081026A8: + subs r0, r5, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_081026AE: + lsls r0, r6, 16 + asrs r5, r0, 16 + cmp r5, 0 + ble _081026CE + bl Random + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_810264C + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bcs _081026A8 +_081026CE: + ldr r0, _081026D8 + strb r6, [r0, 0x5] +_081026D2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081026D8: .4byte 0x02000000 + thumb_func_end sub_8102680 + + thumb_func_start sub_81026DC +sub_81026DC: @ 81026DC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl Random + movs r1, 0xFF + ands r1, r0 + ldr r0, _081026FC + lsls r4, 1 + adds r4, r0 + ldrh r4, [r4] + cmp r1, r4 + bcc _08102700 + movs r0, 0 + b _08102702 + .align 2, 0 +_081026FC: .4byte gUnknown_083ECE12 +_08102700: + movs r0, 0x1 +_08102702: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81026DC + + thumb_func_start dp15_jump_random_unknown +dp15_jump_random_unknown: @ 8102708 + push {r4,r5,lr} + movs r4, 0 + ldr r0, _0810271C + movs r2, 0x10 + ldrsh r1, [r0, r2] + ldr r0, _08102720 + cmp r1, r0 + ble _08102724 + movs r4, 0x4 + b _0810273A + .align 2, 0 +_0810271C: .4byte 0x02000000 +_08102720: .4byte 0x0000012b +_08102724: + cmp r1, 0xF9 + ble _0810272C + movs r4, 0x3 + b _0810273A +_0810272C: + cmp r1, 0xC7 + ble _08102734 + movs r4, 0x2 + b _0810273A +_08102734: + cmp r1, 0x95 + ble _0810273A + movs r4, 0x1 +_0810273A: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 24 + lsrs r1, r0, 24 + ldr r5, _0810275C + lsls r4, 2 + adds r0, r4, r5 + ldrb r0, [r0] + cmp r1, r0 + bcs _08102760 + movs r0, 0x4 + b _0810279A + .align 2, 0 +_0810275C: .4byte gUnknown_083ECE1C +_08102760: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 24 + adds r2, r5, 0x2 + adds r2, r4, r2 + ldr r3, _08102790 + ldr r1, _08102794 + ldrb r1, [r1, 0xB] + lsls r1, 1 + adds r1, r3 + ldrb r1, [r1] + ldrb r2, [r2] + adds r1, r2 + lsls r1, 24 + cmp r0, r1 + bcc _08102798 + movs r0, 0x8 + b _0810279A + .align 2, 0 +_08102790: .4byte gUnknown_083ECE30 +_08102794: .4byte 0x02000000 +_08102798: + movs r0, 0x2 +_0810279A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end dp15_jump_random_unknown + + thumb_func_start sub_81027A0 +sub_81027A0: @ 81027A0 + push {r4,lr} + ldr r4, _081027CC + movs r0, 0 + strh r0, [r4, 0x8] + bl sub_81027D0 + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + ble _081027B8 + bl sub_8102840 +_081027B8: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0x2 + ble _081027C4 + bl sub_810290C +_081027C4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081027CC: .4byte 0x02000000 + thumb_func_end sub_81027A0 + + thumb_func_start sub_81027D0 +sub_81027D0: @ 81027D0 + push {r4,r5,lr} + movs r0, 0 + movs r1, 0x2 + bl sub_8102BA4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x1 + movs r1, 0x2 + bl sub_8102BA4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x2 + movs r1, 0x2 + bl sub_8102BA4 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81029D4 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x9 + beq _0810282E + ldr r2, _08102834 + ldr r0, _08102838 + lsls r1, 1 + adds r0, r1, r0 + ldrh r0, [r0] + ldrh r3, [r2, 0xE] + adds r0, r3 + strh r0, [r2, 0xE] + ldr r0, _0810283C + adds r1, r0 + ldrh r0, [r2, 0x8] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2, 0x8] + movs r0, 0 + bl sub_8103E04 +_0810282E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08102834: .4byte 0x02000000 +_08102838: .4byte gUnknown_083ECE6C +_0810283C: .4byte gUnknown_083ECE5A + thumb_func_end sub_81027D0 + + thumb_func_start sub_8102840 +sub_8102840: @ 8102840 + push {r4,r5,lr} + movs r0, 0 + movs r1, 0x1 + bl sub_8102BA4 + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x1 + movs r1, 0x1 + bl sub_8102BA4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x2 + movs r1, 0x1 + bl sub_8102BA4 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81029D4 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x9 + beq _0810289E + cmp r1, 0 + bne _0810287C + movs r1, 0x1 +_0810287C: + ldr r2, _08102900 + ldr r0, _08102904 + lsls r1, 1 + adds r0, r1, r0 + ldrh r0, [r0] + ldrh r3, [r2, 0xE] + adds r0, r3 + strh r0, [r2, 0xE] + ldr r0, _08102908 + adds r1, r0 + ldrh r0, [r2, 0x8] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2, 0x8] + movs r0, 0x1 + bl sub_8103E04 +_0810289E: + movs r0, 0 + movs r1, 0x3 + bl sub_8102BA4 + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x1 + movs r1, 0x3 + bl sub_8102BA4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x2 + movs r1, 0x3 + bl sub_8102BA4 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81029D4 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x9 + beq _081028FA + cmp r1, 0 + bne _081028D8 + movs r1, 0x1 +_081028D8: + ldr r2, _08102900 + ldr r0, _08102904 + lsls r1, 1 + adds r0, r1, r0 + ldrh r0, [r0] + ldrh r3, [r2, 0xE] + adds r0, r3 + strh r0, [r2, 0xE] + ldr r0, _08102908 + adds r1, r0 + ldrh r0, [r2, 0x8] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2, 0x8] + movs r0, 0x2 + bl sub_8103E04 +_081028FA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08102900: .4byte 0x02000000 +_08102904: .4byte gUnknown_083ECE6C +_08102908: .4byte gUnknown_083ECE5A + thumb_func_end sub_8102840 + + thumb_func_start sub_810290C +sub_810290C: @ 810290C + push {r4,r5,lr} + movs r0, 0 + movs r1, 0x1 + bl sub_8102BA4 + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x1 + movs r1, 0x2 + bl sub_8102BA4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x2 + movs r1, 0x3 + bl sub_8102BA4 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81029D4 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x9 + beq _08102968 + cmp r1, 0 + beq _08102962 + ldr r2, _081029C8 + ldr r0, _081029CC + lsls r1, 1 + adds r0, r1, r0 + ldrh r0, [r0] + ldrh r3, [r2, 0xE] + adds r0, r3 + strh r0, [r2, 0xE] + ldr r0, _081029D0 + adds r1, r0 + ldrh r0, [r2, 0x8] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2, 0x8] +_08102962: + movs r0, 0x3 + bl sub_8103E04 +_08102968: + movs r0, 0 + movs r1, 0x3 + bl sub_8102BA4 + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x1 + movs r1, 0x2 + bl sub_8102BA4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x2 + movs r1, 0x1 + bl sub_8102BA4 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81029D4 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x9 + beq _081029C2 + cmp r1, 0 + beq _081029BC + ldr r2, _081029C8 + ldr r0, _081029CC + lsls r1, 1 + adds r0, r1, r0 + ldrh r0, [r0] + ldrh r3, [r2, 0xE] + adds r0, r3 + strh r0, [r2, 0xE] + ldr r0, _081029D0 + adds r1, r0 + ldrh r0, [r2, 0x8] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2, 0x8] +_081029BC: + movs r0, 0x4 + bl sub_8103E04 +_081029C2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081029C8: .4byte 0x02000000 +_081029CC: .4byte gUnknown_083ECE6C +_081029D0: .4byte gUnknown_083ECE5A + thumb_func_end sub_810290C + + thumb_func_start sub_81029D4 +sub_81029D4: @ 81029D4 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + cmp r3, r1 + bne _081029F8 + cmp r3, r2 + bne _081029F8 + ldr r0, _081029F4 + adds r0, r3, r0 + ldrb r0, [r0] + b _08102A1E + .align 2, 0 +_081029F4: .4byte gUnknown_083ECE52 +_081029F8: + cmp r3, 0 + bne _08102A04 + cmp r1, 0 + bne _08102A04 + cmp r2, 0x1 + beq _08102A10 +_08102A04: + cmp r3, 0x1 + bne _08102A14 + cmp r1, 0x1 + bne _08102A14 + cmp r2, 0 + bne _08102A14 +_08102A10: + movs r0, 0x6 + b _08102A1E +_08102A14: + cmp r3, 0x4 + beq _08102A1C + movs r0, 0x9 + b _08102A1E +_08102A1C: + movs r0, 0 +_08102A1E: + pop {r1} + bx r1 + thumb_func_end sub_81029D4 + + thumb_func_start sub_8102A24 +sub_8102A24: @ 8102A24 + push {r4,lr} + ldr r4, _08102A40 + adds r0, r4, 0 + movs r1, 0x4 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08102A40: .4byte sub_8102A64 + thumb_func_end sub_8102A24 + + thumb_func_start sub_8102A44 +sub_8102A44: @ 8102A44 + push {lr} + ldr r0, _08102A58 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _08102A5C + movs r0, 0 + b _08102A5E + .align 2, 0 +_08102A58: .4byte sub_8102A64 +_08102A5C: + movs r0, 0x1 +_08102A5E: + pop {r1} + bx r1 + thumb_func_end sub_8102A44 + + thumb_func_start sub_8102A64 +sub_8102A64: @ 8102A64 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _08102A94 + ldr r2, _08102A98 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_08102A76: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _08102A76 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08102A94: .4byte gUnknown_083ECB20 +_08102A98: .4byte gTasks + thumb_func_end sub_8102A64 + + thumb_func_start sub_8102A9C +sub_8102A9C: @ 8102A9C + push {r4,lr} + adds r4, r0, 0 + bl sub_8103E38 + lsls r0, 24 + cmp r0, 0 + beq _08102AC8 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldr r0, _08102AC4 + movs r1, 0xE + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _08102AC8 + movs r0, 0x2 + strh r0, [r4, 0x8] + movs r0, 0x1 + b _08102ACA + .align 2, 0 +_08102AC4: .4byte 0x02000000 +_08102AC8: + movs r0, 0 +_08102ACA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8102A9C + + thumb_func_start sub_8102AD0 +sub_8102AD0: @ 8102AD0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _08102B22 + bl IsFanfareTaskInactive + lsls r0, 24 + cmp r0, 0 + beq _08102AF6 + movs r0, 0x15 + bl PlaySE +_08102AF6: + ldr r2, _08102B70 + ldrh r0, [r2, 0xE] + subs r0, 0x1 + strh r0, [r2, 0xE] + ldrh r3, [r2, 0xC] + movs r0, 0xC + ldrsh r1, [r2, r0] + ldr r0, _08102B74 + cmp r1, r0 + bgt _08102B0E + adds r0, r3, 0x1 + strh r0, [r2, 0xC] +_08102B0E: + movs r0, 0x8 + strh r0, [r4, 0xA] + ldr r0, _08102B78 + ldrh r1, [r0, 0x2C] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08102B22 + movs r0, 0x4 + strh r0, [r4, 0xA] +_08102B22: + bl IsFanfareTaskInactive + lsls r0, 24 + cmp r0, 0 + beq _08102B58 + ldr r0, _08102B78 + ldrh r1, [r0, 0x2E] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08102B58 + movs r0, 0x15 + bl PlaySE + ldr r1, _08102B70 + ldrh r0, [r1, 0xE] + ldrh r2, [r1, 0xC] + adds r0, r2 + strh r0, [r1, 0xC] + lsls r0, 16 + asrs r0, 16 + ldr r2, _08102B7C + cmp r0, r2 + ble _08102B54 + strh r2, [r1, 0xC] +_08102B54: + movs r0, 0 + strh r0, [r1, 0xE] +_08102B58: + ldr r0, _08102B70 + movs r1, 0xE + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _08102B68 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_08102B68: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08102B70: .4byte 0x02000000 +_08102B74: .4byte 0x0000270e +_08102B78: .4byte gMain +_08102B7C: .4byte 0x0000270f + thumb_func_end sub_8102AD0 + + thumb_func_start sub_8102B80 +sub_8102B80: @ 8102B80 + push {lr} + bl sub_8103E7C + lsls r0, 24 + cmp r0, 0 + beq _08102B9A + ldr r0, _08102BA0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_08102B9A: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08102BA0: .4byte sub_8102A64 + thumb_func_end sub_8102B80 + + thumb_func_start sub_8102BA4 +sub_8102BA4: @ 8102BA4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r0, _08102BF0 + lsls r2, r4, 1 + adds r0, 0x28 + adds r2, r0 + movs r3, 0 + ldrsh r0, [r2, r3] + lsls r1, 16 + asrs r1, 16 + adds r0, r1 + movs r1, 0x15 + bl __modsi3 + lsls r0, 16 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _08102BD4 + adds r0, 0x15 + lsls r0, 16 + lsrs r1, r0, 16 +_08102BD4: + ldr r2, _08102BF4 + lsls r1, 16 + asrs r1, 16 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 2 + adds r0, r4 + adds r1, r0 + adds r1, r2 + ldrb r0, [r1] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08102BF0: .4byte 0x02000000 +_08102BF4: .4byte gUnknown_083ECCB2 + thumb_func_end sub_8102BA4 + + thumb_func_start sub_8102BF8 +sub_8102BF8: @ 8102BF8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r1, 16 + lsrs r4, r1, 16 + movs r6, 0 + ldr r0, _08102C40 + lsls r1, r5, 1 + adds r0, 0x1C + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + movs r1, 0x18 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + beq _08102C20 + ldr r6, _08102C44 +_08102C20: + lsls r1, r4, 16 + asrs r1, 16 + lsls r0, r6, 16 + asrs r0, 16 + adds r1, r0 + lsls r1, 16 + asrs r1, 16 + adds r0, r5, 0 + bl sub_8102BA4 + lsls r0, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08102C40: .4byte 0x02000000 +_08102C44: .4byte 0x0000ffff + thumb_func_end sub_8102BF8 + + thumb_func_start sub_8102C48 +sub_8102C48: @ 8102C48 + push {lr} + ldr r1, _08102C7C + movs r2, 0x16 + ldrsh r1, [r1, r2] + lsls r0, 16 + asrs r0, 16 + adds r1, r0 + adds r0, r1, 0 + movs r1, 0x6 + bl __modsi3 + lsls r0, 16 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _08102C6E + adds r0, 0x6 + lsls r0, 16 + lsrs r1, r0, 16 +_08102C6E: + ldr r0, _08102C80 + lsls r1, 16 + asrs r1, 16 + adds r1, r0 + ldrb r0, [r1] + pop {r1} + bx r1 + .align 2, 0 +_08102C7C: .4byte 0x02000000 +_08102C80: .4byte gUnknown_083ECCF1 + thumb_func_end sub_8102C48 + + thumb_func_start sub_8102C84 +sub_8102C84: @ 8102C84 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + ldr r6, _08102CC8 + lsrs r5, 23 + adds r4, r6, 0 + adds r4, 0x1C + adds r4, r5, r4 + lsls r1, 16 + asrs r1, 16 + ldrh r0, [r4] + adds r1, r0 + strh r1, [r4] + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0xFC + lsls r1, 1 + bl __modsi3 + strh r0, [r4] + adds r6, 0x28 + adds r5, r6 + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x18 + bl __divsi3 + movs r1, 0x15 + subs r1, r0 + strh r1, [r5] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08102CC8: .4byte 0x02000000 + thumb_func_end sub_8102C84 + + thumb_func_start sub_8102CCC +sub_8102CCC: @ 8102CCC + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + lsls r1, 16 + lsrs r4, r1, 16 + ldr r0, _08102D24 + lsls r1, r6, 1 + adds r0, 0x1C + adds r5, r1, r0 + movs r1, 0 + ldrsh r0, [r5, r1] + movs r1, 0x18 + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 + lsls r2, r0, 16 + asrs r1, r2, 16 + cmp r1, 0 + beq _08102D18 + lsls r0, r4, 16 + asrs r0, 16 + cmp r1, r0 + bge _08102D00 + lsrs r4, r2, 16 +_08102D00: + lsls r1, r4, 16 + asrs r1, 16 + adds r0, r6, 0 + bl sub_8102C84 + movs r1, 0 + ldrsh r0, [r5, r1] + movs r1, 0x18 + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 +_08102D18: + lsls r0, 16 + asrs r0, 16 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08102D24: .4byte 0x02000000 + thumb_func_end sub_8102CCC + + thumb_func_start sub_8102D28 +sub_8102D28: @ 8102D28 + push {r4,lr} + ldr r4, _08102D58 + lsls r0, 16 + asrs r0, 16 + ldrh r1, [r4, 0x14] + adds r0, r1 + strh r0, [r4, 0x14] + movs r1, 0x14 + ldrsh r0, [r4, r1] + movs r1, 0x78 + bl __modsi3 + strh r0, [r4, 0x14] + movs r1, 0x14 + ldrsh r0, [r4, r1] + movs r1, 0x14 + bl __divsi3 + movs r1, 0x6 + subs r1, r0 + strh r1, [r4, 0x16] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08102D58: .4byte 0x02000000 + thumb_func_end sub_8102D28 + + thumb_func_start sub_8102D5C +sub_8102D5C: @ 8102D5C + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + ldr r5, _08102DA4 + movs r1, 0x14 + ldrsh r0, [r5, r1] + movs r1, 0x14 + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 + lsls r2, r0, 16 + asrs r1, r2, 16 + cmp r1, 0 + beq _08102D9A + lsls r0, r4, 16 + asrs r0, 16 + cmp r1, r0 + bge _08102D84 + lsrs r4, r2, 16 +_08102D84: + lsls r0, r4, 16 + asrs r0, 16 + bl sub_8102D28 + movs r1, 0x14 + ldrsh r0, [r5, r1] + movs r1, 0x14 + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 +_08102D9A: + lsls r0, 16 + asrs r0, 16 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08102DA4: .4byte 0x02000000 + thumb_func_end sub_8102D5C + + thumb_func_start sub_8102DA8 +sub_8102DA8: @ 8102DA8 + push {r4-r7,lr} + movs r4, 0 + ldr r5, _08102DE0 + ldr r7, _08102DE4 + ldr r6, _08102DE8 +_08102DB2: + adds r0, r5, 0 + movs r1, 0x2 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r7 + strh r4, [r1, 0x26] + adds r1, r4, r6 + strb r0, [r1] + bl _call_via_r5 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _08102DB2 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08102DE0: .4byte sub_8102E68 +_08102DE4: .4byte gTasks +_08102DE8: .4byte 0x0200003a + thumb_func_end sub_8102DA8 + + thumb_func_start sub_8102DEC +sub_8102DEC: @ 8102DEC + lsls r0, 24 + lsrs r0, 24 + ldr r3, _08102E14 + ldr r1, _08102E18 + adds r1, 0x3A + adds r0, r1 + ldrb r2, [r0] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r3 + movs r2, 0x1 + strh r2, [r1, 0x8] + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + strh r2, [r0, 0x24] + bx lr + .align 2, 0 +_08102E14: .4byte gTasks +_08102E18: .4byte 0x02000000 + thumb_func_end sub_8102DEC + + thumb_func_start sub_8102E1C +sub_8102E1C: @ 8102E1C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08102E38 + ldr r1, _08102E3C + adds r1, 0x3A + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x2 + strh r1, [r0, 0x8] + bx lr + .align 2, 0 +_08102E38: .4byte gTasks +_08102E3C: .4byte 0x02000000 + thumb_func_end sub_8102E1C + + thumb_func_start sub_8102E40 +sub_8102E40: @ 8102E40 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08102E60 + ldr r1, _08102E64 + adds r1, 0x3A + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r0, [r0, 0x24] + lsls r0, 24 + lsrs r0, 24 + bx lr + .align 2, 0 +_08102E60: .4byte gTasks +_08102E64: .4byte 0x02000000 + thumb_func_end sub_8102E40 + + thumb_func_start sub_8102E68 +sub_8102E68: @ 8102E68 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _08102E98 + ldr r2, _08102E9C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_08102E7A: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _08102E7A + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08102E98: .4byte gUnknown_083ECB2C +_08102E9C: .4byte gTasks + thumb_func_end sub_8102E68 + + thumb_func_start sub_8102EA0 +sub_8102EA0: @ 8102EA0 + movs r0, 0 + bx lr + thumb_func_end sub_8102EA0 + + thumb_func_start sub_8102EA4 +sub_8102EA4: @ 8102EA4 + push {lr} + ldrh r0, [r0, 0x26] + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08102EBC + movs r2, 0x1A + ldrsh r1, [r1, r2] + bl sub_8102C84 + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08102EBC: .4byte 0x02000000 + thumb_func_end sub_8102EA4 + + thumb_func_start sub_8102EC0 +sub_8102EC0: @ 8102EC0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + movs r2, 0 + strh r0, [r4, 0x8] + ldr r3, _08102F40 + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r0, 1 + adds r1, r3, 0 + adds r1, 0x34 + adds r0, r1 + strh r2, [r0] + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r0, 1 + adds r1, r3, 0 + adds r1, 0x2E + adds r0, r1 + strh r2, [r0] + ldrb r0, [r3, 0xA] + cmp r0, 0 + bne _08102F28 + ldrb r0, [r3, 0x4] + cmp r0, 0 + beq _08102F12 + ldrb r0, [r3, 0x6] + cmp r0, 0 + beq _08102F12 + ldr r1, _08102F44 + movs r2, 0x26 + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + cmp r0, 0 + bne _08102F28 +_08102F12: + ldr r1, _08102F40 + movs r0, 0 + strb r0, [r1, 0x6] + ldr r1, _08102F48 + movs r2, 0x26 + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 +_08102F28: + ldr r0, _08102F40 + movs r2, 0x26 + ldrsh r1, [r4, r2] + lsls r1, 1 + adds r0, 0x2E + adds r1, r0 + ldrh r0, [r1] + strh r0, [r4, 0xA] + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08102F40: .4byte 0x02000000 +_08102F44: .4byte gUnknown_083ECB40 +_08102F48: .4byte gUnknown_083ECB4C + thumb_func_end sub_8102EC0 + + thumb_func_start sub_8102F4C +sub_8102F4C: @ 8102F4C + push {r4-r7,lr} + sub sp, 0xC + adds r4, r0, 0 + ldr r1, _08102F8C + mov r0, sp + movs r2, 0xA + bl memcpy + ldr r5, _08102F90 + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r6, r0, 1 + adds r7, r5, 0 + adds r7, 0x1C + adds r0, r6, r7 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0x18 + bl __modsi3 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r0, 0 + beq _08102F94 + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r6, 0x1A + ldrsh r1, [r5, r6] + bl sub_8102CCC + b _08102FC8 + .align 2, 0 +_08102F8C: .4byte gUnknown_083ECB58 +_08102F90: .4byte 0x02000000 +_08102F94: + adds r0, r5, 0 + adds r0, 0x2E + adds r1, r6, r0 + ldrh r3, [r1] + movs r6, 0 + ldrsh r0, [r1, r6] + cmp r0, 0 + beq _08102FCC + subs r0, r3, 0x1 + strh r0, [r1] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x1A + ldrsh r1, [r5, r2] + bl sub_8102C84 + movs r6, 0x26 + ldrsh r0, [r4, r6] + lsls r0, 1 + adds r0, r7 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x18 + bl __modsi3 +_08102FC8: + lsls r0, 16 + lsrs r2, r0, 16 +_08102FCC: + cmp r2, 0 + bne _08102FF8 + ldr r1, _08103004 + movs r2, 0x26 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r1, 0x2E + adds r0, r1 + movs r6, 0 + ldrsh r1, [r0, r6] + cmp r1, 0 + bne _08102FF8 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4, 0xA] + strh r1, [r4, 0xC] +_08102FF8: + movs r0, 0 + add sp, 0xC + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08103004: .4byte 0x02000000 + thumb_func_end sub_8102F4C + + thumb_func_start sub_8103008 +sub_8103008: @ 8103008 + push {r4,lr} + adds r2, r0, 0 + ldr r1, _08103058 + movs r3, 0x26 + ldrsh r0, [r2, r3] + lsls r0, 1 + adds r4, r1, 0 + adds r4, 0x22 + adds r0, r4 + ldrh r1, [r2, 0xA] + strh r1, [r0] + ldrh r0, [r2, 0xA] + negs r3, r0 + strh r3, [r2, 0xA] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08103038 + lsls r0, r3, 16 + asrs r0, 17 + strh r0, [r2, 0xA] +_08103038: + movs r0, 0xA + ldrsh r3, [r2, r0] + cmp r3, 0 + bne _0810304E + strh r3, [r2, 0x8] + strh r3, [r2, 0x24] + movs r1, 0x26 + ldrsh r0, [r2, r1] + lsls r0, 1 + adds r0, r4 + strh r3, [r0] +_0810304E: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08103058: .4byte 0x02000000 + thumb_func_end sub_8103008 + + thumb_func_start sub_810305C +sub_810305C: @ 810305C + push {r4,r5,lr} + ldr r4, _0810309C + ldrb r0, [r4, 0x4] + bl sub_810250C + lsls r0, 24 + lsrs r3, r0, 24 + adds r5, r3, 0 + ldrb r1, [r4, 0x4] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0 + beq _0810307A + movs r5, 0 + movs r3, 0x1 +_0810307A: + ldr r1, _081030A0 + movs r2, 0x12 + ldrsh r0, [r4, r2] + subs r0, 0x1 + lsls r0, 2 + adds r0, r1 + ldr r2, [r0] + adds r0, r5, 0 + adds r1, r3, 0 + bl _call_via_r2 + lsls r0, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0810309C: .4byte 0x02000000 +_081030A0: .4byte gUnknown_083ECB64 + thumb_func_end sub_810305C + + thumb_func_start sub_81030A4 +sub_81030A4: @ 81030A4 + push {r4,r5,lr} + adds r3, r0, 0 + adds r4, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r2, 24 + lsrs r5, r2, 24 + lsls r3, 16 + asrs r3, 16 + movs r0, 0 + adds r1, r3, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, r4 + beq _081030CC + cmp r0, r5 + bne _081030D8 +_081030CC: + ldr r0, _081030D4 + strb r1, [r0, 0x7] + movs r0, 0x1 + b _081030DA + .align 2, 0 +_081030D4: .4byte 0x02000000 +_081030D8: + movs r0, 0 +_081030DA: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81030A4 + + thumb_func_start sub_81030E0 +sub_81030E0: @ 81030E0 + push {r4,lr} + movs r1, 0x1 + lsls r0, 16 + asrs r4, r0, 16 + subs r1, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + beq _08103128 + movs r1, 0x2 + subs r1, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + beq _08103128 + movs r1, 0x3 + subs r1, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _0810312C +_08103128: + movs r0, 0x1 + b _0810312E +_0810312C: + movs r0, 0 +_0810312E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81030E0 + + thumb_func_start sub_8103134 +sub_8103134: @ 8103134 + push {lr} + ldr r0, _08103148 + ldrb r1, [r0, 0x4] + movs r0, 0xC2 + ands r0, r1 + cmp r0, 0 + bne _0810314C + movs r0, 0 + b _0810314E + .align 2, 0 +_08103148: .4byte 0x02000000 +_0810314C: + movs r0, 0x1 +_0810314E: + pop {r1} + bx r1 + thumb_func_end sub_8103134 + + thumb_func_start sub_8103154 +sub_8103154: @ 8103154 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r7, r1, 24 + movs r5, 0 + movs r0, 0x2 + mov r9, r0 + ldr r6, _08103194 +_0810316E: + lsls r0, r5, 16 + asrs r4, r0, 16 + mov r1, r9 + subs r0, r1, r4 + lsls r0, 16 + asrs r0, 16 + mov r1, r8 + adds r2, r7, 0 + bl sub_81030A4 + lsls r0, 24 + cmp r0, 0 + beq _08103198 + movs r0, 0x2 + strh r0, [r6, 0x34] + strh r5, [r6, 0x2E] + movs r0, 0x1 + b _081031A6 + .align 2, 0 +_08103194: .4byte 0x02000000 +_08103198: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _0810316E + movs r0, 0 +_081031A6: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8103154 + + thumb_func_start sub_81031B4 +sub_81031B4: @ 81031B4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + bl sub_8103134 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + bne _081031E2 + movs r0, 0 + bl sub_81030E0 + lsls r0, 24 + cmp r0, 0 + bne _0810321E +_081031E2: + movs r0, 0x1 + mov r8, r0 + ldr r5, _0810320C + movs r7, 0 +_081031EA: + mov r1, r8 + lsls r0, r1, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + mov r1, r10 + mov r2, r9 + bl sub_81030A4 + lsls r0, 24 + cmp r0, 0 + beq _08103210 + mov r0, r8 + strh r0, [r5, 0x34] + strh r7, [r5, 0x2E] + movs r0, 0x1 + b _081032B2 + .align 2, 0 +_0810320C: .4byte 0x02000000 +_08103210: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + mov r8, r1 + asrs r0, 16 + cmp r0, 0x3 + ble _081031EA +_0810321E: + movs r0, 0x1 + mov r8, r0 + adds r7, r6, 0 + ldr r6, _0810326C +_08103226: + mov r1, r8 + lsls r5, r1, 16 + cmp r7, 0 + bne _0810323A + asrs r0, r5, 16 + bl sub_81030E0 + lsls r0, 24 + cmp r0, 0 + bne _081032A0 +_0810323A: + movs r0, 0x1 + asrs r4, r5, 16 + subs r0, r4 + lsls r0, 16 + asrs r0, 16 + mov r1, r10 + mov r2, r9 + bl sub_81030A4 + lsls r0, 24 + cmp r0, 0 + beq _081032A0 + cmp r4, 0x1 + bne _08103270 + cmp r7, 0 + bne _08103266 + movs r0, 0x3 + bl sub_81030E0 + lsls r0, 24 + cmp r0, 0 + bne _08103270 +_08103266: + movs r0, 0x3 + strh r0, [r6, 0x34] + b _0810329A + .align 2, 0 +_0810326C: .4byte 0x02000000 +_08103270: + asrs r0, r5, 16 + cmp r0, 0x3 + bgt _08103294 + adds r4, r0, 0x1 + cmp r7, 0 + bne _0810328A + lsls r0, r4, 16 + asrs r0, 16 + bl sub_81030E0 + lsls r0, 24 + cmp r0, 0 + bne _08103294 +_0810328A: + movs r0, 0x2 + strh r0, [r6, 0x34] + strh r4, [r6, 0x2E] + movs r0, 0x1 + b _081032B2 +_08103294: + movs r0, 0x1 + strh r0, [r6, 0x34] + mov r0, r8 +_0810329A: + strh r0, [r6, 0x2E] + movs r0, 0x1 + b _081032B2 +_081032A0: + movs r1, 0x80 + lsls r1, 9 + adds r0, r5, r1 + lsrs r1, r0, 16 + mov r8, r1 + asrs r0, 16 + cmp r0, 0x4 + ble _08103226 + movs r0, 0 +_081032B2: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81031B4 + + thumb_func_start sub_81032C0 +sub_81032C0: @ 81032C0 + push {lr} + ldr r1, _081032E0 + ldr r0, _081032E4 + movs r2, 0x12 + ldrsh r0, [r0, r2] + subs r0, 0x1 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_081032E0: .4byte gUnknown_083ECB70 +_081032E4: .4byte 0x02000000 + thumb_func_end sub_81032C0 + + thumb_func_start sub_81032E8 +sub_81032E8: @ 81032E8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _08103320 + movs r6, 0 + ldrh r1, [r0, 0x34] + mov r8, r1 + movs r1, 0x34 + ldrsh r7, [r0, r1] + adds r5, r0, 0 +_081032FC: + lsls r0, r6, 16 + asrs r4, r0, 16 + subs r1, r7, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r5, 0x7] + cmp r0, r1 + bne _08103324 + mov r0, r8 + strh r0, [r5, 0x36] + strh r6, [r5, 0x30] + movs r0, 0x1 + b _08103332 + .align 2, 0 +_08103320: .4byte 0x02000000 +_08103324: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _081032FC + movs r0, 0 +_08103332: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81032E8 + + thumb_func_start sub_810333C +sub_810333C: @ 810333C + push {r4-r7,lr} + bl sub_81032E8 + lsls r0, 24 + cmp r0, 0 + beq _0810339A + ldr r1, _0810338C + movs r2, 0x34 + ldrsh r0, [r1, r2] + cmp r0, 0x2 + beq _08103396 + movs r2, 0x30 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + ble _08103396 + cmp r0, 0x4 + beq _08103396 + movs r5, 0 + movs r7, 0x2 + adds r6, r1, 0 +_08103364: + lsls r0, r5, 16 + asrs r4, r0, 16 + subs r1, r7, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r6, 0x7] + cmp r0, r1 + beq _08103390 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _08103364 + b _08103396 + .align 2, 0 +_0810338C: .4byte 0x02000000 +_08103390: + movs r0, 0x2 + strh r0, [r6, 0x36] + strh r5, [r6, 0x30] +_08103396: + movs r0, 0x1 + b _081033D2 +_0810339A: + ldr r1, _081033D8 + movs r2, 0x34 + ldrsh r0, [r1, r2] + cmp r0, 0x2 + beq _081033D0 + movs r5, 0 + movs r7, 0x2 + adds r6, r1, 0 +_081033AA: + lsls r0, r5, 16 + asrs r4, r0, 16 + subs r1, r7, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r6, 0x7] + cmp r0, r1 + beq _08103390 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _081033AA +_081033D0: + movs r0, 0 +_081033D2: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_081033D8: .4byte 0x02000000 + thumb_func_end sub_810333C + + thumb_func_start sub_81033DC +sub_81033DC: @ 81033DC + push {r4,lr} + ldr r0, _08103414 + ldrb r3, [r0, 0x7] + adds r4, r3, 0 + ldrb r2, [r0, 0x4] + movs r1, 0x40 + ands r1, r2 + cmp r1, 0 + beq _081033F6 + movs r3, 0 + cmp r4, 0 + bne _081033F6 + movs r3, 0x1 +_081033F6: + ldr r1, _08103418 + movs r2, 0x12 + ldrsh r0, [r0, r2] + subs r0, 0x1 + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r3, 0 + bl _call_via_r1 + lsls r0, 24 + lsrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08103414: .4byte 0x02000000 +_08103418: .4byte gUnknown_083ECB7C + thumb_func_end sub_81033DC + + thumb_func_start sub_810341C +sub_810341C: @ 810341C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, _0810345C + movs r5, 0 + ldrh r1, [r0, 0x36] + mov r8, r1 + movs r1, 0x36 + ldrsh r7, [r0, r1] + adds r6, r0, 0 +_08103438: + lsls r0, r5, 16 + asrs r4, r0, 16 + subs r1, r7, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, r9 + bne _08103460 + mov r0, r8 + strh r0, [r6, 0x38] + strh r5, [r6, 0x32] + movs r0, 0x1 + b _0810346E + .align 2, 0 +_0810345C: .4byte 0x02000000 +_08103460: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _08103438 + movs r0, 0 +_0810346E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_810341C + + thumb_func_start sub_810347C +sub_810347C: @ 810347C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _081034A0 + movs r2, 0x34 + ldrsh r1, [r0, r2] + movs r2, 0x36 + ldrsh r0, [r0, r2] + cmp r1, r0 + bne _081034B4 + adds r0, r6, 0 + bl sub_810341C + lsls r0, 24 + lsrs r0, 24 + b _081034EA + .align 2, 0 +_081034A0: .4byte 0x02000000 +_081034A4: + ldr r0, _081034B0 + strh r5, [r0, 0x32] + mov r1, r8 + strh r1, [r0, 0x38] + movs r0, 0x1 + b _081034EA + .align 2, 0 +_081034B0: .4byte 0x02000000 +_081034B4: + movs r2, 0x1 + mov r8, r2 + cmp r1, 0x1 + bne _081034C0 + movs r0, 0x3 + mov r8, r0 +_081034C0: + movs r5, 0 + mov r7, r8 +_081034C4: + lsls r0, r5, 16 + asrs r4, r0, 16 + subs r1, r7, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, r6 + beq _081034A4 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _081034C4 + movs r0, 0 +_081034EA: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_810347C + + thumb_func_start sub_81034F4 +sub_81034F4: @ 81034F4 + push {r4,r5,lr} + movs r5, 0 + b _08103500 +_081034FA: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_08103500: + lsls r0, r5, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + bl sub_81030E0 + lsls r0, 24 + cmp r0, 0 + bne _081034FA + ldr r0, _0810351C + strh r5, [r0, 0x2E] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810351C: .4byte 0x02000000 + thumb_func_end sub_81034F4 + + thumb_func_start sub_8103520 +sub_8103520: @ 8103520 + push {lr} + adds r1, r0, 0 + ldrb r0, [r1] + cmp r0, 0 + bne _0810352E + movs r0, 0x1 + b _08103538 +_0810352E: + cmp r0, 0x1 + beq _08103536 + movs r0, 0 + b _0810353C +_08103536: + movs r0, 0 +_08103538: + strb r0, [r1] + movs r0, 0x1 +_0810353C: + pop {r1} + bx r1 + thumb_func_end sub_8103520 + + thumb_func_start sub_8103540 +sub_8103540: @ 8103540 + push {lr} + ldr r1, _0810355C + ldr r0, _08103560 + movs r2, 0x12 + ldrsh r0, [r0, r2] + subs r0, 0x1 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .align 2, 0 +_0810355C: .4byte gUnknown_083ECB88 +_08103560: .4byte 0x02000000 + thumb_func_end sub_8103540 + + thumb_func_start sub_8103564 +sub_8103564: @ 8103564 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r4, _081035D0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081035E0 + ldrb r1, [r4, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081035E0 + ldrh r0, [r4, 0x2E] + movs r1, 0x2 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + mov r1, sp + strb r0, [r1] + mov r0, sp + bl sub_8103520 + lsls r0, 24 + cmp r0, 0 + beq _081035E0 + movs r5, 0 + mov r7, sp + movs r0, 0x2 + mov r8, r0 + adds r6, r4, 0 +_081035AA: + lsls r0, r5, 16 + asrs r4, r0, 16 + mov r0, r8 + subs r1, r0, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + ldrb r1, [r7] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + bne _081035D4 + movs r0, 0x2 + strh r0, [r6, 0x36] + strh r5, [r6, 0x30] + b _081035E0 + .align 2, 0 +_081035D0: .4byte 0x02000000 +_081035D4: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _081035AA +_081035E0: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8103564 + + thumb_func_start j5_08111E84 +j5_08111E84: @ 81035EC + push {r4-r7,lr} + sub sp, 0x4 + ldr r4, _08103650 + ldrh r2, [r4, 0x34] + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _08103660 + ldrb r1, [r4, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08103660 + ldrh r1, [r4, 0x2E] + subs r1, r2, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + mov r1, sp + strb r0, [r1] + mov r0, sp + bl sub_8103520 + lsls r0, 24 + cmp r0, 0 + beq _08103660 + movs r6, 0 + mov r7, sp + adds r5, r4, 0 +_0810362A: + ldrh r1, [r5, 0x34] + lsls r0, r6, 16 + asrs r4, r0, 16 + subs r1, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + ldrb r1, [r7] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + bne _08103654 + ldrh r0, [r5, 0x34] + strh r0, [r5, 0x36] + strh r6, [r5, 0x30] + b _08103660 + .align 2, 0 +_08103650: .4byte 0x02000000 +_08103654: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _0810362A +_08103660: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end j5_08111E84 + + thumb_func_start sub_8103668 +sub_8103668: @ 8103668 + push {r4-r7,lr} + sub sp, 0x4 + ldr r4, _0810368C + ldrh r3, [r4, 0x34] + movs r0, 0x34 + ldrsh r2, [r4, r0] + cmp r2, 0 + beq _0810375A + ldrb r1, [r4, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0810375A + cmp r2, 0x2 + bne _081036AE + bl j5_08111E84 + b _0810375A + .align 2, 0 +_0810368C: .4byte 0x02000000 +_08103690: + ldr r0, _0810369C + movs r1, 0 + strh r6, [r0, 0x36] + strh r1, [r0, 0x30] + b _0810375A + .align 2, 0 +_0810369C: .4byte 0x02000000 +_081036A0: + movs r0, 0x2 + strh r0, [r5, 0x36] + adds r0, r4, 0x1 + strh r0, [r5, 0x30] + b _0810375A +_081036AA: + movs r0, 0x3 + b _08103736 +_081036AE: + ldrh r1, [r4, 0x2E] + subs r1, r3, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + mov r1, sp + strb r0, [r1] + mov r0, sp + bl sub_8103520 + lsls r0, 24 + cmp r0, 0 + beq _0810375A + movs r6, 0x2 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x3 + bne _081036D8 + movs r6, 0x3 +_081036D8: + movs r5, 0 + mov r7, sp +_081036DC: + lsls r0, r6, 16 + asrs r4, r0, 16 + movs r0, 0x1 + adds r1, r4, 0 + bl sub_8102BF8 + ldrb r1, [r7] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + beq _08103690 + lsls r1, r5, 16 + movs r0, 0x80 + lsls r0, 9 + adds r1, r0 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + lsrs r5, r1, 16 + asrs r1, 16 + cmp r1, 0x1 + ble _081036DC + movs r6, 0x1 + mov r7, sp + ldr r5, _0810373C +_0810370E: + ldrh r1, [r5, 0x34] + lsls r0, r6, 16 + asrs r4, r0, 16 + subs r1, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + ldrb r1, [r7] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + bne _0810374E + movs r1, 0x34 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _08103740 + cmp r4, 0x2 + ble _081036A0 +_08103736: + strh r0, [r5, 0x36] + strh r6, [r5, 0x30] + b _0810375A + .align 2, 0 +_0810373C: .4byte 0x02000000 +_08103740: + cmp r4, 0x2 + ble _081036AA + movs r0, 0x2 + strh r0, [r5, 0x36] + subs r0, r4, 0x1 + strh r0, [r5, 0x30] + b _0810375A +_0810374E: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _0810370E +_0810375A: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8103668 + + thumb_func_start sub_8103764 +sub_8103764: @ 8103764 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + adds r2, r1, 0 + cmp r0, 0 + bne _08103778 + cmp r1, 0x1 + beq _08103780 +_08103778: + cmp r0, 0x1 + bne _08103784 + cmp r2, 0 + bne _08103784 +_08103780: + movs r0, 0x1 + b _08103786 +_08103784: + movs r0, 0 +_08103786: + pop {r1} + bx r1 + thumb_func_end sub_8103764 + + thumb_func_start sub_810378C +sub_810378C: @ 810378C + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + cmp r0, 0 + bne _081037A6 + cmp r1, 0x1 + bne _081037A6 + cmp r2, 0 + beq _081037B2 +_081037A6: + cmp r0, 0x1 + bne _081037B6 + cmp r1, 0 + bne _081037B6 + cmp r2, 0x1 + bne _081037B6 +_081037B2: + movs r0, 0x1 + b _081037B8 +_081037B6: + movs r0, 0 +_081037B8: + pop {r1} + bx r1 + thumb_func_end sub_810378C + + thumb_func_start sub_81037BC +sub_81037BC: @ 81037BC + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + cmp r0, 0 + bne _081037D6 + cmp r1, 0x1 + bne _081037D6 + cmp r2, 0 + beq _08103802 +_081037D6: + cmp r0, 0x1 + bne _081037E2 + cmp r1, 0 + bne _081037E2 + cmp r2, 0x1 + beq _08103802 +_081037E2: + cmp r0, 0 + bne _081037EE + cmp r1, 0 + bne _081037EE + cmp r2, 0x1 + beq _08103802 +_081037EE: + cmp r0, 0x1 + bne _081037FA + cmp r1, 0x1 + bne _081037FA + cmp r2, 0 + beq _08103802 +_081037FA: + cmp r0, r1 + bne _08103806 + cmp r0, r2 + bne _08103806 +_08103802: + movs r0, 0 + b _08103808 +_08103806: + movs r0, 0x1 +_08103808: + pop {r1} + bx r1 + thumb_func_end sub_81037BC + + thumb_func_start sub_810380C +sub_810380C: @ 810380C + push {lr} + ldr r1, _08103828 + ldr r0, _0810382C + movs r2, 0x12 + ldrsh r0, [r0, r2] + subs r0, 0x1 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .align 2, 0 +_08103828: .4byte gUnknown_083ECB94 +_0810382C: .4byte 0x02000000 + thumb_func_end sub_810380C + + thumb_func_start sub_8103830 +sub_8103830: @ 8103830 + push {r4-r7,lr} + movs r6, 0 + ldr r7, _08103868 + ldrh r1, [r7, 0x2E] + movs r4, 0x2 + subs r1, r4, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r5, r0, 24 + ldrh r0, [r7, 0x30] + subs r4, r0 + lsls r4, 16 + asrs r4, 16 + movs r0, 0x1 + adds r1, r4, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r5, r1 + bne _081038A0 + movs r4, 0x2 + b _08103876 + .align 2, 0 +_08103868: .4byte 0x02000000 +_0810386C: + lsls r0, r6, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r6, r0, 16 +_08103876: + lsls r1, r6, 16 + asrs r1, 16 + subs r1, r4, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + beq _0810386C + cmp r5, 0 + bne _08103896 + cmp r0, 0x1 + beq _0810386C +_08103896: + cmp r5, 0x1 + bne _08103900 + cmp r0, 0 + beq _0810386C + b _08103900 +_081038A0: + adds r0, r5, 0 + bl sub_8103764 + lsls r0, 24 + cmp r0, 0 + beq _08103900 + ldrb r1, [r7, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081038DC + movs r7, 0x2 +_081038B8: + lsls r0, r6, 16 + asrs r4, r0, 16 + subs r1, r7, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + beq _08103900 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _081038B8 +_081038DC: + movs r6, 0 + movs r7, 0x2 + b _081038E8 +_081038E2: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_081038E8: + lsls r0, r6, 16 + asrs r4, r0, 16 + subs r1, r7, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + beq _081038E2 +_08103900: + ldr r0, _0810390C + strh r6, [r0, 0x32] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810390C: .4byte 0x02000000 + thumb_func_end sub_8103830 + + thumb_func_start sub_8103910 +sub_8103910: @ 8103910 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + ldr r4, _08103978 + movs r2, 0x36 + ldrsh r1, [r4, r2] + cmp r1, 0 + beq _081039A6 + ldrh r2, [r4, 0x34] + movs r3, 0x34 + ldrsh r0, [r4, r3] + cmp r0, r1 + bne _081039A6 + ldrb r1, [r4, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081039A6 + ldrh r1, [r4, 0x2E] + subs r1, r2, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r7, r0, 24 + ldrh r1, [r4, 0x36] + ldrh r0, [r4, 0x30] + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_8103764 + lsls r0, 24 + cmp r0, 0 + beq _081039A6 + movs r5, 0 + b _08103982 + .align 2, 0 +_08103978: .4byte 0x02000000 +_0810397C: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_08103982: + lsls r6, r5, 16 + asrs r5, r6, 16 + cmp r5, 0x4 + bgt _081039A6 + ldr r0, _08103A34 + ldrh r1, [r0, 0x36] + subs r1, r5 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r7, r4 + bne _0810397C + lsrs r6, 16 + str r6, [sp] +_081039A6: + ldr r0, _08103A34 + mov r9, r0 +_081039AA: + movs r5, 0x1 + movs r1, 0 + mov r8, r1 + ldr r2, [sp] + lsls r2, 16 + mov r10, r2 +_081039B6: + mov r3, r9 + ldrh r1, [r3, 0x2E] + lsls r5, 16 + asrs r4, r5, 16 + subs r1, r4, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r7, r0, 24 + mov r0, r9 + ldrh r1, [r0, 0x30] + subs r1, r4, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + lsls r0, 24 + lsrs r6, r0, 24 + mov r1, r10 + asrs r0, r1, 16 + subs r4, r0 + lsls r4, 16 + asrs r4, 16 + movs r0, 0x2 + adds r1, r4, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r7, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_81037BC + lsls r0, 24 + cmp r0, 0 + bne _08103A38 + adds r0, r7, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_810378C + lsls r0, 24 + cmp r0, 0 + beq _08103A24 + mov r2, r9 + ldrb r1, [r2, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08103A38 +_08103A24: + mov r3, r8 + lsls r0, r3, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r0, 16 + mov r8, r0 + b _08103A46 + .align 2, 0 +_08103A34: .4byte 0x02000000 +_08103A38: + movs r2, 0x80 + lsls r2, 9 + adds r0, r5, r2 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _081039B6 +_08103A46: + mov r3, r8 + cmp r3, 0 + beq _08103A5C + ldr r1, [sp] + lsls r0, r1, 16 + movs r2, 0x80 + lsls r2, 9 + adds r0, r2 + lsrs r0, 16 + str r0, [sp] + b _081039AA +_08103A5C: + ldr r0, _08103A74 + mov r3, sp + ldrh r3, [r3] + strh r3, [r0, 0x32] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08103A74: .4byte 0x02000000 + thumb_func_end sub_8103910 + + thumb_func_start sub_8103A78 +sub_8103A78: @ 8103A78 + push {r4-r7,lr} + mov r7, r8 + push {r7} + bl sub_8103910 + ldr r4, _08103B10 + movs r0, 0x36 + ldrsh r1, [r4, r0] + cmp r1, 0 + beq _08103B20 + ldrh r2, [r4, 0x34] + movs r3, 0x34 + ldrsh r0, [r4, r3] + cmp r0, r1 + beq _08103B20 + ldrb r1, [r4, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08103B20 + ldrh r1, [r4, 0x2E] + subs r1, r2, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r6, r0, 24 + ldrh r1, [r4, 0x36] + ldrh r0, [r4, 0x30] + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_8103764 + lsls r0, 24 + cmp r0, 0 + beq _08103B20 + movs r1, 0x1 + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r0, 0x1 + bne _08103AE0 + movs r1, 0x3 +_08103AE0: + movs r3, 0 + lsls r1, 16 + mov r8, r1 + adds r7, r4, 0 +_08103AE8: + ldrh r2, [r7, 0x32] + lsls r0, r3, 16 + asrs r5, r0, 16 + adds r2, r5, r2 + mov r3, r8 + asrs r1, r3, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r6, r4 + bne _08103B14 + ldrh r0, [r7, 0x32] + adds r0, r5, r0 + strh r0, [r7, 0x32] + b _08103B20 + .align 2, 0 +_08103B10: .4byte 0x02000000 +_08103B14: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _08103AE8 +_08103B20: + ldr r7, _08103B90 +_08103B22: + ldrh r0, [r7, 0x2E] + movs r1, 0x1 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r6, r0, 24 + ldrh r0, [r7, 0x30] + movs r1, 0x2 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + lsls r0, 24 + lsrs r5, r0, 24 + ldrh r0, [r7, 0x32] + movs r1, 0x3 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_81037BC + lsls r0, 24 + cmp r0, 0 + bne _08103B94 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_810378C + lsls r0, 24 + cmp r0, 0 + beq _08103B88 + ldrb r1, [r7, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08103B94 +_08103B88: + ldrh r0, [r7, 0x32] + adds r0, 0x1 + strh r0, [r7, 0x32] + b _08103B22 + .align 2, 0 +_08103B90: .4byte 0x02000000 +_08103B94: + ldr r7, _08103C04 +_08103B96: + ldrh r0, [r7, 0x2E] + movs r1, 0x3 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r6, r0, 24 + ldrh r0, [r7, 0x30] + movs r1, 0x2 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + lsls r0, 24 + lsrs r5, r0, 24 + ldrh r0, [r7, 0x32] + movs r1, 0x1 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_81037BC + lsls r0, 24 + cmp r0, 0 + bne _08103C08 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_810378C + lsls r0, 24 + cmp r0, 0 + beq _08103BFC + ldrb r1, [r7, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08103C08 +_08103BFC: + ldrh r0, [r7, 0x32] + adds r0, 0x1 + strh r0, [r7, 0x32] + b _08103B96 + .align 2, 0 +_08103C04: .4byte 0x02000000 +_08103C08: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8103A78 + + thumb_func_start sub_8103C14 +sub_8103C14: @ 8103C14 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _08103C40 + adds r0, r5, 0 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08103C44 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x26] + bl _call_via_r5 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08103C40: .4byte sub_8103C48 +_08103C44: .4byte gTasks + thumb_func_end sub_8103C14 + + thumb_func_start sub_8103C48 +sub_8103C48: @ 8103C48 + push {r4,lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _08103C70 + ldr r2, _08103C74 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r4, 0x8 + ldrsh r2, [r0, r4] + lsls r2, 2 + adds r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103C70: .4byte gUnknown_083ECBA0 +_08103C74: .4byte gTasks + thumb_func_end sub_8103C48 + + thumb_func_start sub_8103C78 +sub_8103C78: @ 8103C78 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r1, _08103CA8 + movs r2, 0x26 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x73 + str r1, [sp] + movs r1, 0x62 + movs r2, 0x63 + movs r3, 0x72 + bl sub_81065A8 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103CA8: .4byte gUnknown_083ECBAC + thumb_func_end sub_8103C78 + + thumb_func_start sub_8103CAC +sub_8103CAC: @ 8103CAC + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + ble _08103CC4 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_08103CC4: + pop {r0} + bx r0 + thumb_func_end sub_8103CAC + + thumb_func_start sub_8103CC8 +sub_8103CC8: @ 8103CC8 + push {r4,lr} + sub sp, 0x4 + lsls r4, r1, 24 + lsrs r4, 24 + ldr r1, _08103CFC + movs r2, 0x26 + ldrsh r0, [r0, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x53 + str r1, [sp] + movs r1, 0x42 + movs r2, 0x43 + movs r3, 0x52 + bl sub_81065A8 + adds r0, r4, 0 + bl DestroyTask + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103CFC: .4byte gUnknown_083ECBAC + thumb_func_end sub_8103CC8 + + thumb_func_start sub_8103D00 +sub_8103D00: @ 8103D00 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08103D20 + lsls r1, r0, 2 + adds r1, r2 + ldr r2, [r1] + ldr r1, _08103D24 + adds r0, r1 + ldrb r1, [r0] + adds r0, r2, 0 + movs r2, 0x2 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_08103D20: .4byte gUnknown_083EDD08 +_08103D24: .4byte gUnknown_083EDD30 + thumb_func_end sub_8103D00 + + thumb_func_start sub_8103D28 +sub_8103D28: @ 8103D28 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08103D48 + lsls r1, r0, 2 + adds r1, r2 + ldr r2, [r1] + ldr r1, _08103D4C + adds r0, r1 + ldrb r1, [r0] + adds r0, r2, 0 + movs r2, 0x2 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_08103D48: .4byte gUnknown_083EDD1C +_08103D4C: .4byte gUnknown_083EDD30 + thumb_func_end sub_8103D28 + + thumb_func_start sub_8103D50 +sub_8103D50: @ 8103D50 + push {r4-r7,lr} + lsls r0, 24 + lsrs r1, r0, 24 + movs r4, 0 + ldr r0, _08103D84 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r4, r0 + bcs _08103D7C + ldr r7, _08103D88 + adds r6, r0, 0 + lsls r5, r1, 1 +_08103D68: + adds r0, r4, r5 + adds r0, r7 + ldrb r0, [r0] + bl sub_8103D00 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r6 + bcc _08103D68 +_08103D7C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08103D84: .4byte gUnknown_083EDD3B +_08103D88: .4byte gUnknown_083EDD35 + thumb_func_end sub_8103D50 + + thumb_func_start sub_8103D8C +sub_8103D8C: @ 8103D8C + push {r4-r7,lr} + lsls r0, 24 + lsrs r1, r0, 24 + movs r4, 0 + ldr r0, _08103DC0 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r4, r0 + bcs _08103DB8 + ldr r7, _08103DC4 + adds r6, r0, 0 + lsls r5, r1, 1 +_08103DA4: + adds r0, r4, r5 + adds r0, r7 + ldrb r0, [r0] + bl sub_8103D28 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r6 + bcc _08103DA4 +_08103DB8: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08103DC0: .4byte gUnknown_083EDD3B +_08103DC4: .4byte gUnknown_083EDD35 + thumb_func_end sub_8103D8C + + thumb_func_start sub_8103DC8 +sub_8103DC8: @ 8103DC8 + push {r4-r6,lr} + movs r4, 0 + ldr r6, _08103DF8 + ldr r5, _08103DFC +_08103DD0: + ldr r0, _08103E00 + bl CreateInvisibleSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + strh r4, [r1, 0x2E] + adds r1, r4, r5 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _08103DD0 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08103DF8: .4byte gSprites +_08103DFC: .4byte 0x02000044 +_08103E00: .4byte sub_8103EE4 + thumb_func_end sub_8103DC8 + + thumb_func_start sub_8103E04 +sub_8103E04: @ 8103E04 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08103E30 + adds r1, 0x44 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08103E34 + adds r0, r1 + movs r2, 0 + movs r1, 0x1 + strh r1, [r0, 0x30] + movs r1, 0x4 + strh r1, [r0, 0x32] + strh r2, [r0, 0x34] + strh r2, [r0, 0x36] + movs r1, 0x2 + strh r1, [r0, 0x38] + strh r2, [r0, 0x3C] + bx lr + .align 2, 0 +_08103E30: .4byte 0x02000000 +_08103E34: .4byte gSprites + thumb_func_end sub_8103E04 + + thumb_func_start sub_8103E38 +sub_8103E38: @ 8103E38 + push {r4,r5,lr} + movs r2, 0 + ldr r4, _08103E60 + ldr r3, _08103E64 +_08103E40: + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r3 + movs r5, 0x30 + ldrsh r0, [r1, r5] + cmp r0, 0 + beq _08103E68 + movs r5, 0x32 + ldrsh r0, [r1, r5] + cmp r0, 0 + beq _08103E68 + movs r0, 0 + b _08103E74 + .align 2, 0 +_08103E60: .4byte 0x02000044 +_08103E64: .4byte gSprites +_08103E68: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x4 + bls _08103E40 + movs r0, 0x1 +_08103E74: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8103E38 + + thumb_func_start sub_8103E7C +sub_8103E7C: @ 8103E7C + push {r4,r5,lr} + movs r4, 0 + ldr r5, _08103E94 +_08103E82: + adds r0, r4, r5 + ldrb r0, [r0] + bl sub_8103EAC + lsls r0, 24 + cmp r0, 0 + bne _08103E98 + movs r0, 0 + b _08103EA4 + .align 2, 0 +_08103E94: .4byte 0x02000044 +_08103E98: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _08103E82 + movs r0, 0x1 +_08103EA4: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8103E7C + + thumb_func_start sub_8103EAC +sub_8103EAC: @ 8103EAC + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _08103EC8 + adds r1, r0 + movs r2, 0x30 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _08103ECC + movs r0, 0x1 + b _08103EDE + .align 2, 0 +_08103EC8: .4byte gSprites +_08103ECC: + ldrh r2, [r1, 0x3C] + movs r3, 0x3C + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _08103EDA + movs r0, 0 + strh r0, [r1, 0x30] +_08103EDA: + lsls r0, r2, 24 + lsrs r0, 24 +_08103EDE: + pop {r1} + bx r1 + thumb_func_end sub_8103EAC + + thumb_func_start sub_8103EE4 +sub_8103EE4: @ 8103EE4 + push {r4-r7,lr} + adds r2, r0, 0 + movs r1, 0x30 + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _08103F66 + ldrh r0, [r2, 0x34] + subs r0, 0x1 + strh r0, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _08103F4E + movs r0, 0 + strh r0, [r2, 0x3C] + movs r6, 0x1 + strh r6, [r2, 0x34] + ldrh r1, [r2, 0x38] + ldrh r3, [r2, 0x36] + adds r0, r1, r3 + strh r0, [r2, 0x36] + movs r4, 0x4 + ldrh r5, [r2, 0x32] + movs r7, 0x32 + ldrsh r3, [r2, r7] + cmp r3, 0 + beq _08103F20 + movs r4, 0x8 +_08103F20: + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bgt _08103F38 + strh r6, [r2, 0x3C] + negs r0, r1 + strh r0, [r2, 0x38] + cmp r3, 0 + beq _08103F4E + subs r0, r5, 0x1 + strh r0, [r2, 0x32] + b _08103F40 +_08103F38: + cmp r0, r4 + blt _08103F40 + negs r0, r1 + strh r0, [r2, 0x38] +_08103F40: + movs r1, 0x32 + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _08103F4E + ldrh r0, [r2, 0x34] + lsls r0, 1 + strh r0, [r2, 0x34] +_08103F4E: + ldr r1, _08103F6C + movs r3, 0x2E + ldrsh r0, [r2, r3] + adds r0, r1 + ldrb r0, [r0] + ldrh r3, [r2, 0x36] + lsls r3, 24 + lsrs r3, 24 + adds r1, r3, 0 + adds r2, r3, 0 + bl sub_8085D08 +_08103F66: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08103F6C: .4byte gUnknown_083EDD30 + thumb_func_end sub_8103EE4 + + thumb_func_start sub_8103F70 +sub_8103F70: @ 8103F70 + push {r4,lr} + ldr r4, _08103F98 + adds r0, r4, 0 + movs r1, 0x6 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08103F9C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x1 + strh r2, [r1, 0xE] + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103F98: .4byte sub_8103FE8 +_08103F9C: .4byte gTasks + thumb_func_end sub_8103F70 + + thumb_func_start sub_8103FA0 +sub_8103FA0: @ 8103FA0 + push {lr} + ldr r0, _08103FC4 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _08103FC8 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _08103FCC + movs r0, 0 + b _08103FE0 + .align 2, 0 +_08103FC4: .4byte sub_8103FE8 +_08103FC8: .4byte gTasks +_08103FCC: + adds r0, r2, 0 + bl DestroyTask + ldr r0, _08103FE4 + ldr r0, [r0] + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + movs r0, 0x1 +_08103FE0: + pop {r1} + bx r1 + .align 2, 0 +_08103FE4: .4byte gUnknown_083EDDAC + thumb_func_end sub_8103FA0 + + thumb_func_start sub_8103FE8 +sub_8103FE8: @ 8103FE8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _08104040 + adds r2, r1, r0 + ldrh r0, [r2, 0xA] + subs r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _08104026 + movs r0, 0x4 + strh r0, [r2, 0xA] + ldrh r1, [r2, 0xE] + ldrh r3, [r2, 0xC] + adds r0, r1, r3 + strh r0, [r2, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + beq _08104022 + cmp r0, 0x2 + bne _08104026 +_08104022: + negs r0, r1 + strh r0, [r2, 0xE] +_08104026: + ldr r0, _08104044 + movs r3, 0xC + ldrsh r1, [r2, r3] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_08104040: .4byte gTasks +_08104044: .4byte gUnknown_083EDDA0 + thumb_func_end sub_8103FE8 + + thumb_func_start sub_8104048 +sub_8104048: @ 8104048 + push {lr} + ldr r0, _0810405C + movs r1, 0x8 + bl CreateTask + ldr r1, _08104060 + adds r1, 0x3E + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0810405C: .4byte sub_81040E8 +_08104060: .4byte 0x02000000 + thumb_func_end sub_8104048 + + thumb_func_start sub_8104064 +sub_8104064: @ 8104064 + push {r4,lr} + ldr r0, _08104090 + adds r0, 0x3E + ldrb r0, [r0] + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _08104094 + adds r4, r0 + adds r0, r4, 0 + bl sub_810421C + movs r1, 0x1 + strh r1, [r4, 0x8] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + strh r1, [r4, 0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104090: .4byte 0x02000000 +_08104094: .4byte gTasks + thumb_func_end sub_8104064 + + thumb_func_start sub_8104098 +sub_8104098: @ 8104098 + push {r4,lr} + ldr r0, _081040C0 + adds r0, 0x3E + ldrb r0, [r0] + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _081040C4 + adds r4, r0 + adds r0, r4, 0 + bl sub_810421C + movs r0, 0x3 + strh r0, [r4, 0x8] + movs r0, 0x1 + strh r0, [r4, 0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081040C0: .4byte 0x02000000 +_081040C4: .4byte gTasks + thumb_func_end sub_8104098 + + thumb_func_start sub_81040C8 +sub_81040C8: @ 81040C8 + ldr r2, _081040E0 + ldr r0, _081040E4 + adds r0, 0x3E + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r0, [r0, 0x26] + lsls r0, 24 + lsrs r0, 24 + bx lr + .align 2, 0 +_081040E0: .4byte gTasks +_081040E4: .4byte 0x02000000 + thumb_func_end sub_81040C8 + + thumb_func_start sub_81040E8 +sub_81040E8: @ 81040E8 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _08104110 + ldr r2, _08104114 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r1, [r0, r2] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_08104110: .4byte gUnknown_083ECBB4 +_08104114: .4byte gTasks + thumb_func_end sub_81040E8 + + thumb_func_start nullsub_68 +nullsub_68: @ 8104118 + bx lr + thumb_func_end nullsub_68 + + thumb_func_start sub_810411C +sub_810411C: @ 810411C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0xA] + lsls r0, 19 + movs r1, 0xA0 + lsls r1, 13 + adds r0, r1 + asrs r0, 16 + movs r1, 0x14 + bl sub_8105B1C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_810411C + + thumb_func_start sub_8104144 +sub_8104144: @ 8104144 + push {r4,lr} + adds r4, r0, 0 + ldr r2, _08104174 + movs r0, 0xC + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3C + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _0810419E + ldrh r1, [r4, 0xA] + adds r0, r1, 0x2 + lsls r0, 16 + lsrs r2, r0, 16 + movs r0, 0 + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x1 + bne _08104178 + movs r0, 0x1 + b _0810417E + .align 2, 0 +_08104174: .4byte gSprites +_08104178: + cmp r1, 0x10 + bne _0810417E + movs r0, 0x2 +_0810417E: + lsls r1, r2, 16 + asrs r1, 15 + ldr r2, _081041A4 + adds r1, r2 + adds r1, 0x80 + ldr r2, _081041A8 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + ldrb r0, [r4, 0xC] + bl sub_8105B88 + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0x26] +_0810419E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081041A4: .4byte 0x0600e800 +_081041A8: .4byte gUnknown_083ECBC4 + thumb_func_end sub_8104144 + + thumb_func_start sub_81041AC +sub_81041AC: @ 81041AC + push {r4,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0xA] + adds r0, r1, 0x2 + lsls r0, 16 + lsrs r4, r0, 16 + movs r2, 0 + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x1 + bne _081041C6 + movs r2, 0x1 + b _081041CC +_081041C6: + cmp r1, 0x10 + bne _081041CC + movs r2, 0x2 +_081041CC: + movs r1, 0xC + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _081041F0 + lsls r0, r4, 16 + asrs r0, 15 + ldr r1, _08104214 + adds r0, r1 + adds r0, 0x80 + ldr r1, _08104218 + lsls r2, 2 + adds r1, 0x2 + adds r2, r1 + ldrh r1, [r2] + strh r1, [r0] + ldrh r0, [r3, 0xA] + subs r0, 0x1 + strh r0, [r3, 0xA] +_081041F0: + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _08104202 + movs r0, 0 + strh r0, [r3, 0xC] +_08104202: + movs r1, 0xA + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _0810420E + strh r0, [r3, 0x8] + strh r0, [r3, 0x26] +_0810420E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104214: .4byte 0x0600e800 +_08104218: .4byte gUnknown_083ECBC4 + thumb_func_end sub_81041AC + + thumb_func_start sub_810421C +sub_810421C: @ 810421C + push {lr} + movs r1, 0x2 + adds r2, r0, 0 + adds r2, 0x8 + movs r3, 0 +_08104226: + lsls r0, r1, 1 + adds r0, r2, r0 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _08104226 + pop {r0} + bx r0 + thumb_func_end sub_810421C + + thumb_func_start sub_810423C +sub_810423C: @ 810423C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + movs r2, 0x3 + ldr r6, _08104268 + movs r4, 0 + ldr r0, _0810426C + mov r8, r0 + ldr r1, _08104270 + mov r12, r1 + cmp r4, r5 + bge _081042A6 + ldr r7, _08104274 +_0810425A: + movs r3, 0 + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, 0 + bne _08104278 + movs r3, 0x1 + b _0810427E + .align 2, 0 +_08104268: .4byte 0x0600e800 +_0810426C: .4byte gTasks +_08104270: .4byte 0x02000000 +_08104274: .4byte gUnknown_083ECBC4 +_08104278: + cmp r0, 0xF + bne _0810427E + movs r3, 0x2 +_0810427E: + lsls r2, 16 + asrs r2, 16 + lsls r1, r2, 1 + adds r1, r6 + adds r1, 0x80 + lsls r0, r3, 2 + adds r0, r7 + ldrh r0, [r0] + strh r0, [r1] + lsls r0, r4, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + adds r2, 0x1 + lsls r2, 16 + lsrs r2, 16 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, r5 + blt _0810425A +_081042A6: + lsls r1, r4, 16 + asrs r0, r1, 16 + cmp r0, 0xF + bgt _081042F0 + ldr r7, _081042BC +_081042B0: + movs r3, 0 + asrs r0, r1, 16 + cmp r0, 0 + bne _081042C0 + movs r3, 0x1 + b _081042C6 + .align 2, 0 +_081042BC: .4byte gUnknown_083ECBC4 + 0x2 +_081042C0: + cmp r0, 0xF + bne _081042C6 + movs r3, 0x2 +_081042C6: + lsls r2, 16 + asrs r2, 16 + lsls r1, r2, 1 + adds r1, r6 + adds r1, 0x80 + lsls r0, r3, 2 + adds r0, r7 + ldrh r0, [r0] + strh r0, [r1] + lsls r0, r4, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r4, r0, 16 + adds r2, 0x1 + lsls r2, 16 + lsrs r2, 16 + lsls r1, r4, 16 + asrs r0, r1, 16 + cmp r0, 0xF + ble _081042B0 +_081042F0: + mov r0, r12 + adds r0, 0x3E + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + add r0, r8 + strh r5, [r0, 0xA] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_810423C + + thumb_func_start sub_810430C +sub_810430C: @ 810430C + push {r4,lr} + ldr r4, _08104328 + adds r0, r4, 0 + movs r1, 0x7 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104328: .4byte sub_810434C + thumb_func_end sub_810430C + + thumb_func_start sub_810432C +sub_810432C: @ 810432C + push {lr} + ldr r0, _08104340 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _08104344 + movs r0, 0 + b _08104346 + .align 2, 0 +_08104340: .4byte sub_810434C +_08104344: + movs r0, 0x1 +_08104346: + pop {r1} + bx r1 + thumb_func_end sub_810432C + + thumb_func_start sub_810434C +sub_810434C: @ 810434C + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _08104374 + ldr r2, _08104378 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r1, [r0, r2] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_08104374: .4byte gUnknown_083ECBD0 +_08104378: .4byte gTasks + thumb_func_end sub_810434C + + thumb_func_start sub_810437C +sub_810437C: @ 810437C + push {lr} + ldr r1, _081043DC + movs r2, 0 + strb r2, [r1, 0xA] + strh r2, [r1, 0x14] + strh r2, [r1, 0x16] + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + strh r2, [r0, 0xA] + movs r1, 0x1E + strh r1, [r0, 0xC] + movs r1, 0xA0 + lsls r1, 3 + strh r1, [r0, 0x10] + ldr r0, _081043E0 + strh r2, [r0] + ldr r0, _081043E4 + strh r2, [r0] + ldr r0, _081043E8 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + movs r0, 0x1E + movs r1, 0 + bl sub_8104A40 + bl sub_81051C0 + bl sub_8105100 + bl sub_81052EC + bl sub_81053A0 + bl sub_810545C + bl sub_8102680 + bl StopMapMusic + movs r0, 0xC4 + lsls r0, 1 + bl PlayNewMapMusic + pop {r0} + bx r0 + .align 2, 0 +_081043DC: .4byte 0x02000000 +_081043E0: .4byte gSpriteCoordOffsetX +_081043E4: .4byte gSpriteCoordOffsetY +_081043E8: .4byte REG_BG1HOFS + thumb_func_end sub_810437C + + thumb_func_start sub_81043EC +sub_81043EC: @ 81043EC + push {r4,lr} + adds r4, r0, 0 + ldr r1, _0810445C + ldrh r0, [r1] + subs r0, 0x8 + strh r0, [r1] + ldrh r2, [r4, 0xA] + adds r2, 0x8 + strh r2, [r4, 0xA] + movs r1, 0xA + ldrsh r0, [r4, r1] + adds r0, 0xF0 + movs r1, 0xFF + ands r0, r1 + lsrs r3, r0, 3 + ldr r1, _08104460 + ldr r0, _08104464 + ands r2, r0 + strh r2, [r1] + adds r2, r3, 0 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r2, r0 + beq _08104438 + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0x12 + bgt _08104438 + strh r3, [r4, 0xC] + ldrh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 19 + strh r0, [r4, 0xE] + movs r0, 0xE + ldrsh r1, [r4, r0] + adds r0, r2, 0 + bl sub_8104A40 +_08104438: + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0xC7 + ble _0810444A + ldrh r0, [r4, 0x8] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x8] + strh r1, [r4, 0xE] +_0810444A: + ldrh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 24 + bl sub_8102D28 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810445C: .4byte gSpriteCoordOffsetX +_08104460: .4byte REG_BG1HOFS +_08104464: .4byte 0x000001ff + thumb_func_end sub_81043EC + + thumb_func_start sub_8104468 +sub_8104468: @ 8104468 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 24 + bl sub_8102D28 + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3B + ble _08104492 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + bl sub_8105578 + bl sub_81056F0 +_08104492: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8104468 + + thumb_func_start sub_8104498 +sub_8104498: @ 8104498 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + adds r7, r0, 0 + ldr r1, _08104534 + mov r0, sp + movs r2, 0x4 + bl memcpy + add r0, sp, 0x4 + mov r8, r0 + ldr r1, _08104538 + movs r2, 0x8 + bl memcpy + add r6, sp, 0xC + ldr r1, _0810453C + adds r0, r6, 0 + movs r2, 0x8 + bl memcpy + ldrh r0, [r7, 0x10] + lsls r0, 16 + asrs r0, 24 + bl sub_8102D28 + ldrh r0, [r7, 0x10] + subs r0, 0x4 + strh r0, [r7, 0x10] + lsls r0, 16 + asrs r0, 24 + movs r5, 0x4 + subs r5, r0 + lsls r4, r5, 1 + add r8, r4 + mov r1, r8 + movs r2, 0 + ldrsh r0, [r1, r2] + bl sub_8105688 + adds r6, r4 + movs r1, 0 + ldrsh r0, [r6, r1] + bl sub_81057E8 + ldr r0, _08104540 + adds r0, 0x3F + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08104544 + adds r0, r1 + mov r2, sp + adds r1, r2, r5 + ldrb r1, [r1] + bl StartSpriteAnimIfDifferent + movs r1, 0x10 + ldrsh r0, [r7, r1] + movs r1, 0x80 + lsls r1, 1 + cmp r0, r1 + bgt _08104526 + ldrh r0, [r7, 0x8] + adds r0, 0x1 + strh r0, [r7, 0x8] + strh r1, [r7, 0x10] + movs r0, 0 + strh r0, [r7, 0x12] +_08104526: + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08104534: .4byte gUnknown_083ECC1C +_08104538: .4byte gUnknown_083ECC20 +_0810453C: .4byte gUnknown_083ECC28 +_08104540: .4byte 0x02000000 +_08104544: .4byte gSprites + thumb_func_end sub_8104498 + + thumb_func_start sub_8104548 +sub_8104548: @ 8104548 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 24 + bl sub_8102D28 + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4F + ble _0810458A + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + strh r0, [r4, 0x12] + movs r0, 0x2 + bl sub_81057E8 + ldr r0, _08104590 + adds r0, 0x3F + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08104594 + adds r0, r1 + movs r1, 0x3 + bl StartSpriteAnimIfDifferent +_0810458A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104590: .4byte 0x02000000 +_08104594: .4byte gSprites + thumb_func_end sub_8104548 + + thumb_func_start sub_8104598 +sub_8104598: @ 8104598 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 24 + bl sub_8102D28 + ldrb r0, [r4, 0x10] + adds r0, 0x80 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4F + ble _081045C4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + strh r0, [r4, 0x12] +_081045C4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8104598 + + thumb_func_start sub_81045CC +sub_81045CC: @ 81045CC + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 24 + bl sub_8102D28 + ldrb r0, [r4, 0x10] + adds r0, 0x40 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x27 + ble _08104634 + movs r0, 0 + strh r0, [r4, 0x12] + ldr r1, _0810460C + ldrb r0, [r1, 0x5] + cmp r0, 0 + beq _08104610 + ldrb r1, [r1, 0xA] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r1, r0 + bgt _0810462E + ldrh r0, [r4, 0x8] + adds r0, 0x1 + b _0810462C + .align 2, 0 +_0810460C: .4byte 0x02000000 +_08104610: + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0x3 + ble _0810461E + ldrh r0, [r4, 0x8] + adds r0, 0x1 + b _0810462C +_0810461E: + ldrh r0, [r4, 0x14] + bl sub_81026DC + lsls r0, 24 + cmp r0, 0 + beq _0810462E + movs r0, 0xE +_0810462C: + strh r0, [r4, 0x8] +_0810462E: + ldrh r0, [r4, 0x14] + adds r0, 0x1 + strh r0, [r4, 0x14] +_08104634: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81045CC + + thumb_func_start sub_810463C +sub_810463C: @ 810463C + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _08104660 + movs r1, 0x14 + ldrsh r0, [r6, r1] + movs r1, 0x14 + bl __modsi3 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r0, 0 + beq _08104664 + ldrh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 24 + bl sub_8102D5C + b _08104688 + .align 2, 0 +_08104660: .4byte 0x02000000 +_08104664: + movs r0, 0x1 + bl sub_8102C48 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r6, 0x5] + cmp r0, r1 + beq _08104692 + ldrh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 24 + bl sub_8102D28 + movs r1, 0x14 + ldrsh r0, [r6, r1] + movs r1, 0x14 + bl __modsi3 +_08104688: + lsls r0, 16 + lsrs r5, r0, 16 + ldrb r0, [r4, 0x10] + adds r0, 0x40 + strh r0, [r4, 0x10] +_08104692: + lsls r0, r5, 16 + asrs r5, r0, 16 + cmp r5, 0 + bne _081046B4 + movs r0, 0x1 + bl sub_8102C48 + ldr r1, _081046BC + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1, 0x5] + cmp r0, r1 + bne _081046B4 + strh r5, [r4, 0x10] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_081046B4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081046BC: .4byte 0x02000000 + thumb_func_end sub_810463C + + thumb_func_start sub_81046C0 +sub_81046C0: @ 81046C0 + push {r4-r7,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x10] + adds r0, 0x1 + movs r7, 0 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3B + ble _08104758 + bl StopMapMusic + bl sub_81056C0 + bl sub_8105804 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldr r5, _08104710 + ldrb r0, [r5, 0x5] + cmp r0, 0 + bne _0810471C + movs r0, 0xA0 + strh r0, [r4, 0x10] + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08104714 + adds r0, r1 + movs r1, 0x5 + bl StartSpriteAnimIfDifferent + ldr r0, _08104718 + bl PlayFanfare + b _08104758 + .align 2, 0 +_08104710: .4byte 0x02000000 +_08104714: .4byte gSprites +_08104718: .4byte 0x00000187 +_0810471C: + movs r0, 0xC0 + strh r0, [r4, 0x10] + adds r6, r5, 0 + adds r6, 0x3F + ldrb r1, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _08104760 + adds r0, r4 + movs r1, 0x4 + bl StartSpriteAnimIfDifferent + ldrb r1, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x2B + strb r7, [r0] + ldrb r0, [r5, 0x2] + cmp r0, 0 + beq _08104750 + bl sub_8104098 + strb r7, [r5, 0x2] +_08104750: + movs r0, 0xC3 + lsls r0, 1 + bl PlayFanfare +_08104758: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08104760: .4byte gSprites + thumb_func_end sub_81046C0 + + thumb_func_start sub_8104764 +sub_8104764: @ 8104764 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x10] + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _0810477C + subs r0, r1, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bne _0810478C +_0810477C: + bl sub_81040C8 + lsls r0, 24 + cmp r0, 0 + bne _0810478C + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_0810478C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8104764 + + thumb_func_start sub_8104794 +sub_8104794: @ 8104794 + push {r4,lr} + adds r3, r0, 0 + ldr r1, _081047D4 + ldrh r0, [r1] + subs r0, 0x8 + strh r0, [r1] + ldrh r2, [r3, 0xA] + adds r2, 0x8 + strh r2, [r3, 0xA] + ldrh r0, [r3, 0xE] + adds r0, 0x8 + strh r0, [r3, 0xE] + movs r1, 0xA + ldrsh r0, [r3, r1] + subs r0, 0x8 + movs r1, 0xFF + ands r0, r1 + lsrs r4, r0, 3 + ldr r1, _081047D8 + ldr r0, _081047DC + ands r2, r0 + strh r2, [r1] + ldrh r0, [r3, 0xE] + lsls r0, 16 + asrs r0, 19 + cmp r0, 0x19 + bgt _081047E0 + adds r0, r4, 0 + bl sub_8104A88 + b _081047E6 + .align 2, 0 +_081047D4: .4byte gSpriteCoordOffsetX +_081047D8: .4byte REG_BG1HOFS +_081047DC: .4byte 0x000001ff +_081047E0: + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] +_081047E6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8104794 + + thumb_func_start sub_81047EC +sub_81047EC: @ 81047EC + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _08104834 + movs r6, 0 + strb r6, [r4, 0xB] + ldrb r0, [r4, 0x5] + strb r0, [r4, 0xA] + ldr r0, _08104838 + strh r6, [r0] + ldr r0, _0810483C + strh r6, [r0] + movs r0, 0x8 + strh r0, [r4, 0x1A] + bl sub_810514C + bl sub_81054B8 + bl sub_8105524 + adds r0, r4, 0 + adds r0, 0x60 + ldrh r0, [r0] + bl PlayNewMapMusic + ldrb r0, [r4, 0xA] + cmp r0, 0 + bne _08104844 + ldr r0, _08104840 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + b _0810485A + .align 2, 0 +_08104834: .4byte 0x02000000 +_08104838: .4byte gSpriteCoordOffsetX +_0810483C: .4byte REG_BG1HOFS +_08104840: .4byte sub_810434C +_08104844: + movs r0, 0x4 + bl sub_8104CAC + bl dp15_jump_random_unknown + strh r0, [r5, 0xA] + strh r6, [r5, 0xC] + strh r6, [r5, 0xE] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] +_0810485A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81047EC + + thumb_func_start sub_8104860 +sub_8104860: @ 8104860 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, _0810487C + ldrh r0, [r5, 0x1A] + lsls r6, r0, 16 + asrs r1, r6, 16 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _08104880 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _081048A2 + .align 2, 0 +_0810487C: .4byte 0x02000000 +_08104880: + movs r1, 0x1C + ldrsh r0, [r5, r1] + movs r1, 0x18 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _081048A2 + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + bne _081048A2 + asrs r0, r6, 17 + strh r0, [r5, 0x1A] +_081048A2: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8104860 + + thumb_func_start sub_81048A8 +sub_81048A8: @ 81048A8 + push {lr} + bl sub_8104E18 + lsls r0, 24 + cmp r0, 0 + beq _081048C2 + ldr r0, _081048C8 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_081048C2: + pop {r0} + bx r0 + .align 2, 0 +_081048C8: .4byte sub_810434C + thumb_func_end sub_81048A8 + + thumb_func_start sub_81048CC +sub_81048CC: @ 81048CC + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_81054B8 + bl sub_81056C0 + bl sub_8105804 + bl sub_8105854 + ldr r5, _08104934 + ldr r3, _08104938 + adds r0, r3, 0 + adds r0, 0x4E + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r3, 0x3F + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x5 + bl StartSpriteAnimIfDifferent + ldrh r0, [r4, 0x8] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x8] + movs r0, 0x4 + strh r0, [r4, 0x10] + strh r1, [r4, 0x12] + bl StopMapMusic + ldr r0, _0810493C + bl PlayFanfare + movs r0, 0xB2 + bl PlaySE + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08104934: .4byte gSprites +_08104938: .4byte 0x02000000 +_0810493C: .4byte 0x00000187 + thumb_func_end sub_81048CC + + thumb_func_start sub_8104940 +sub_8104940: @ 8104940 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, _081049B8 + ldrh r1, [r4, 0x10] + strh r1, [r0] + ldr r0, _081049BC + strh r1, [r0] + ldrh r1, [r4, 0x12] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810495E + ldrh r0, [r4, 0x10] + negs r0, r0 + strh r0, [r4, 0x10] +_0810495E: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + movs r1, 0x1F + ands r0, r1 + cmp r0, 0 + bne _08104974 + ldrh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 17 + strh r0, [r4, 0x10] +_08104974: + movs r0, 0x10 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _081049B0 + bl sub_81058A0 + bl sub_81058C4 + bl sub_8105284 + bl sub_81059E8 + ldr r2, _081049C0 + ldr r0, _081049C4 + adds r0, 0x4E + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + strh r5, [r4, 0x12] +_081049B0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081049B8: .4byte gSpriteCoordOffsetY +_081049BC: .4byte REG_BG1VOFS +_081049C0: .4byte gSprites +_081049C4: .4byte 0x02000000 + thumb_func_end sub_8104940 + + thumb_func_start sub_81049C8 +sub_81049C8: @ 81049C8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _081049F0 + movs r1, 0 + strh r1, [r0] + ldr r0, _081049F4 + strh r1, [r0] + bl sub_8105ACC + lsls r0, 24 + cmp r0, 0 + beq _081049EA + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + bl sub_8105AEC +_081049EA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081049F0: .4byte gSpriteCoordOffsetY +_081049F4: .4byte REG_BG1VOFS + thumb_func_end sub_81049C8 + + thumb_func_start sub_81049F8 +sub_81049F8: @ 81049F8 + push {lr} + ldr r0, _08104A30 + movs r1, 0 + strh r1, [r0] + ldr r0, _08104A34 + strh r1, [r0] + ldr r0, _08104A38 + adds r0, 0x60 + ldrh r0, [r0] + bl PlayNewMapMusic + bl sub_810514C + bl sub_8105554 + bl sub_8105524 + bl sub_81059B8 + ldr r0, _08104A3C + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + pop {r0} + bx r0 + .align 2, 0 +_08104A30: .4byte gSpriteCoordOffsetX +_08104A34: .4byte REG_BG1HOFS +_08104A38: .4byte 0x02000000 +_08104A3C: .4byte sub_810434C + thumb_func_end sub_81049F8 + + thumb_func_start sub_8104A40 +sub_8104A40: @ 8104A40 + push {r4-r7,lr} + movs r3, 0x4 + ldr r7, _08104A80 + lsls r1, 16 + asrs r5, r1, 16 + lsls r0, 16 + asrs r4, r0, 16 + ldr r6, _08104A84 +_08104A50: + lsls r2, r3, 16 + asrs r2, 16 + subs r1, r2, 0x4 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r5, r0 + lsls r0, 1 + adds r0, r7 + ldrh r1, [r0] + lsls r0, r2, 5 + adds r0, r4 + lsls r0, 1 + adds r0, r6 + strh r1, [r0] + adds r2, 0x1 + lsls r2, 16 + lsrs r3, r2, 16 + asrs r2, 16 + cmp r2, 0xE + ble _08104A50 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08104A80: .4byte gReelTimeWindowTilemap +_08104A84: .4byte 0x0600e000 + thumb_func_end sub_8104A40 + + thumb_func_start sub_8104A88 +sub_8104A88: @ 8104A88 + push {r4,r5,lr} + movs r2, 0x4 + lsls r0, 16 + asrs r3, r0, 16 + ldr r5, _08104AB4 + movs r4, 0 +_08104A94: + lsls r1, r2, 16 + asrs r1, 16 + lsls r0, r1, 5 + adds r0, r3 + lsls r0, 1 + adds r0, r5 + strh r4, [r0] + adds r1, 0x1 + lsls r1, 16 + lsrs r2, r1, 16 + asrs r1, 16 + cmp r1, 0xE + ble _08104A94 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08104AB4: .4byte 0x0600e000 + thumb_func_end sub_8104A88 + + thumb_func_start sub_8104AB8 +sub_8104AB8: @ 8104AB8 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _08104AE4 + adds r0, r5, 0 + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08104AE8 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0xA] + bl _call_via_r5 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08104AE4: .4byte sub_8104B0C +_08104AE8: .4byte gTasks + thumb_func_end sub_8104AB8 + + thumb_func_start sub_8104AEC +sub_8104AEC: @ 8104AEC + push {lr} + ldr r0, _08104B00 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _08104B04 + movs r0, 0 + b _08104B06 + .align 2, 0 +_08104B00: .4byte sub_8104B0C +_08104B04: + movs r0, 0x1 +_08104B06: + pop {r1} + bx r1 + thumb_func_end sub_8104AEC + + thumb_func_start sub_8104B0C +sub_8104B0C: @ 8104B0C + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _08104B34 + ldr r2, _08104B38 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r1, [r0, r2] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_08104B34: .4byte gUnknown_083ECC30 +_08104B38: .4byte gTasks + thumb_func_end sub_8104B0C + + thumb_func_start sub_8104B3C +sub_8104B3C: @ 8104B3C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8104B3C + + thumb_func_start sub_8104B60 +sub_8104B60: @ 8104B60 + push {lr} + adds r2, r0, 0 + ldr r0, _08104B7C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08104B76 + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] +_08104B76: + pop {r0} + bx r0 + .align 2, 0 +_08104B7C: .4byte gPaletteFade + thumb_func_end sub_8104B60 + + thumb_func_start sub_8104B80 +sub_8104B80: @ 8104B80 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + bl sub_8104DA4 + bl sub_81065DC + ldr r0, _08104BC0 + bl BasicInitMenuWindow + ldr r0, _08104BC4 + movs r1, 0xA + movs r2, 0x20 + movs r3, 0x1 + bl sub_80729D8 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104BC0: .4byte gWindowConfig_81E7144 +_08104BC4: .4byte gOtherText_ReelTime + thumb_func_end sub_8104B80 + + thumb_func_start sub_8104BC8 +sub_8104BC8: @ 8104BC8 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r0, _08104BF8 + ldrh r1, [r0, 0x2E] + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + beq _08104BF0 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_08104BF0: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104BF8: .4byte gMain + thumb_func_end sub_8104BC8 + + thumb_func_start sub_8104BFC +sub_8104BFC: @ 8104BFC + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + bl MenuZeroFillScreen + ldr r0, _08104C3C + bl BasicInitMenuWindow + bl sub_81064B8 + ldrb r0, [r4, 0xA] + bl sub_8104CAC + ldr r0, _08104C40 + ldrb r0, [r0, 0x2] + bl sub_810423C + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104C3C: .4byte gWindowConfig_81E7128 +_08104C40: .4byte 0x02000000 + thumb_func_end sub_8104BFC + + thumb_func_start sub_8104C44 +sub_8104C44: @ 8104C44 + push {lr} + ldr r0, _08104C58 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + pop {r0} + bx r0 + .align 2, 0 +_08104C58: .4byte sub_8104B0C + thumb_func_end sub_8104C44 + + thumb_func_start sub_8104C5C +sub_8104C5C: @ 8104C5C + push {lr} + ldr r0, _08104C9C + movs r1, 0x3 + bl CreateTask + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _08104CA0 + adds r0, 0x3D + strb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _08104CA4 + adds r0, r1 + ldr r1, _08104CA8 + strh r1, [r0, 0xA] + movs r1, 0x4 + adds r2, r0, 0 + adds r2, 0x8 + movs r3, 0x40 +_08104C86: + lsls r0, r1, 1 + adds r0, r2, r0 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _08104C86 + pop {r0} + bx r0 + .align 2, 0 +_08104C9C: .4byte sub_8104E74 +_08104CA0: .4byte 0x02000000 +_08104CA4: .4byte gTasks +_08104CA8: .4byte 0x0000ffff + thumb_func_end sub_8104C5C + + thumb_func_start sub_8104CAC +sub_8104CAC: @ 8104CAC + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8104DA4 + ldr r0, _08104D24 + adds r0, 0x3D + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _08104D28 + adds r7, r0, r1 + strh r4, [r7, 0xA] + movs r6, 0 + ldr r1, _08104D2C + lsls r5, r4, 2 + adds r0, r5, r1 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0xFF + beq _08104D18 + mov r8, r1 +_08104CE0: + mov r0, r8 + adds r4, r5, r0 + ldr r0, [r4] + lsls r2, r6, 2 + adds r2, r0 + ldrb r0, [r2] + ldrb r1, [r2, 0x1] + movs r3, 0x2 + ldrsh r2, [r2, r3] + bl sub_8105BB4 + lsls r0, 24 + lsrs r0, 24 + adds r2, r6, 0x4 + lsls r2, 1 + adds r1, r7, 0 + adds r1, 0x8 + adds r1, r2 + strh r0, [r1] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, [r4] + lsls r0, r6, 2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08104CE0 +_08104D18: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08104D24: .4byte 0x02000000 +_08104D28: .4byte gTasks +_08104D2C: .4byte gUnknown_083ED048 + thumb_func_end sub_8104CAC + + thumb_func_start sub_8104D30 +sub_8104D30: @ 8104D30 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + mov r8, r1 + ldr r4, [sp, 0x1C] + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _08104D84 + adds r0, 0x3D + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _08104D88 + adds r0, r1 + mov r12, r0 + movs r5, 0x4 + lsls r4, 16 + asrs r6, r4, 16 + lsls r2, 16 + lsls r3, 16 +_08104D5C: + lsls r0, r5, 1 + mov r1, r12 + adds r1, 0x8 + adds r4, r1, r0 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x40 + bne _08104D8C + str r6, [sp] + adds r0, r7, 0 + mov r1, r8 + asrs r2, 16 + asrs r3, 16 + bl sub_8105BF8 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + b _08104D96 + .align 2, 0 +_08104D84: .4byte 0x02000000 +_08104D88: .4byte gTasks +_08104D8C: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xF + bls _08104D5C +_08104D96: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8104D30 + + thumb_func_start sub_8104DA4 +sub_8104DA4: @ 8104DA4 + push {r4-r6,lr} + ldr r0, _08104E04 + adds r0, 0x3D + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _08104E08 + adds r4, r0, r1 + ldrh r1, [r4, 0xA] + ldr r0, _08104E0C + cmp r1, r0 + beq _08104DCE + ldr r0, _08104E10 + movs r2, 0xA + ldrsh r1, [r4, r2] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 +_08104DCE: + movs r5, 0x4 + adds r6, r4, 0 + adds r6, 0x8 +_08104DD4: + lsls r0, r5, 1 + adds r4, r6, r0 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x40 + beq _08104DF4 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08104E14 + adds r0, r1 + bl DestroySprite + movs r0, 0x40 + strh r0, [r4] +_08104DF4: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xF + bls _08104DD4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08104E04: .4byte 0x02000000 +_08104E08: .4byte gTasks +_08104E0C: .4byte 0x0000ffff +_08104E10: .4byte gUnknown_083ED064 +_08104E14: .4byte gSprites + thumb_func_end sub_8104DA4 + + thumb_func_start sub_8104E18 +sub_8104E18: @ 8104E18 + push {r4,r5,lr} + ldr r0, _08104E54 + adds r0, 0x3D + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _08104E58 + adds r0, r1 + movs r2, 0x4 + adds r3, r0, 0 + adds r3, 0x8 + ldr r4, _08104E5C +_08104E32: + lsls r0, r2, 1 + adds r1, r3, r0 + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r0, 0x40 + beq _08104E60 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r5, 0x3C + ldrsh r0, [r1, r5] + cmp r0, 0 + beq _08104E60 + movs r0, 0 + b _08104E6C + .align 2, 0 +_08104E54: .4byte 0x02000000 +_08104E58: .4byte gTasks +_08104E5C: .4byte gSprites +_08104E60: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xF + bls _08104E32 + movs r0, 0x1 +_08104E6C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8104E18 + + thumb_func_start sub_8104E74 +sub_8104E74: @ 8104E74 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _08104E9C + ldr r2, _08104EA0 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r1, [r0, r2] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_08104E9C: .4byte gUnknown_083ECC54 +_08104EA0: .4byte gTasks + thumb_func_end sub_8104E74 + + thumb_func_start nullsub_69 +nullsub_69: @ 8104EA4 + bx lr + thumb_func_end nullsub_69 + + thumb_func_start sub_8104EA8 +sub_8104EA8: @ 8104EA8 + push {r4-r7,lr} + movs r6, 0 + movs r0, 0x30 +_08104EAE: + movs r4, 0 + lsls r5, r0, 16 + lsls r7, r6, 16 +_08104EB4: + ldr r0, _08104F0C + asrs r1, r5, 16 + movs r2, 0 + movs r3, 0xE + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _08104F10 + adds r1, r0 + ldrb r0, [r1, 0x5] + movs r2, 0xC + orrs r0, r2 + strb r0, [r1, 0x5] + strh r6, [r1, 0x2E] + strh r4, [r1, 0x30] + ldr r0, _08104F14 + strh r0, [r1, 0x34] + lsls r0, r4, 16 + movs r1, 0xC0 + lsls r1, 13 + adds r0, r1 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x77 + ble _08104EB4 + movs r2, 0x80 + lsls r2, 9 + adds r1, r7, r2 + movs r2, 0xA0 + lsls r2, 14 + adds r0, r5, r2 + lsrs r0, 16 + lsrs r6, r1, 16 + asrs r1, 16 + cmp r1, 0x2 + ble _08104EAE + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08104F0C: .4byte gSpriteTemplate_83ED414 +_08104F10: .4byte gSprites +_08104F14: .4byte 0x0000ffff + thumb_func_end sub_8104EA8 + + thumb_func_start sub_8104F18 +sub_8104F18: @ 8104F18 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _08104F88 + movs r0, 0x2E + ldrsh r1, [r5, r0] + lsls r1, 1 + adds r0, r4, 0 + adds r0, 0x1C + adds r1, r0 + ldrh r0, [r5, 0x30] + ldrh r1, [r1] + adds r0, r1 + strh r0, [r5, 0x32] + movs r1, 0x32 + ldrsh r0, [r5, r1] + movs r1, 0x78 + bl __modsi3 + strh r0, [r5, 0x32] + movs r2, 0x2E + ldrsh r1, [r5, r2] + lsls r1, 1 + adds r4, 0x22 + adds r1, r4 + ldrh r1, [r1] + adds r1, 0x1C + adds r0, r1 + strh r0, [r5, 0x22] + ldrh r4, [r5, 0x2E] + lsls r4, 24 + lsrs r4, 24 + movs r1, 0x32 + ldrsh r0, [r5, r1] + movs r1, 0x18 + bl __divsi3 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_8102BA4 + lsls r0, 24 + lsrs r0, 24 + bl GetSpriteTileStartByTag + adds r1, r5, 0 + adds r1, 0x40 + strh r0, [r1] + adds r0, r5, 0 + bl SetSpriteSheetFrameTileNum + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08104F88: .4byte 0x02000000 + thumb_func_end sub_8104F18 + + thumb_func_start sub_8104F8C +sub_8104F8C: @ 8104F8C + push {r4-r6,lr} + movs r4, 0xCB + movs r5, 0x1 + ldr r6, _08104FF0 +_08104F94: + lsls r4, 16 + asrs r4, 16 + lsls r5, 16 + asrs r5, 16 + adds r0, r4, 0 + movs r1, 0x17 + movs r2, 0 + adds r3, r5, 0 + bl sub_8104FF4 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 17 + subs r4, 0x7 + lsls r4, 16 + lsrs r4, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, r6 + ble _08104F94 + movs r4, 0xEB + movs r5, 0x1 + ldr r6, _08104FF0 +_08104FC2: + lsls r4, 16 + asrs r4, 16 + lsls r5, 16 + asrs r5, 16 + adds r0, r4, 0 + movs r1, 0x17 + movs r2, 0x1 + adds r3, r5, 0 + bl sub_8104FF4 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 17 + subs r4, 0x7 + lsls r4, 16 + lsrs r4, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, r6 + ble _08104FC2 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08104FF0: .4byte 0x0000270f + thumb_func_end sub_8104F8C + + thumb_func_start sub_8104FF4 +sub_8104FF4: @ 8104FF4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r5, r0, 0 + adds r6, r1, 0 + mov r8, r2 + adds r4, r3, 0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08105060 + lsls r5, 16 + asrs r5, 16 + lsls r6, 16 + asrs r6, 16 + adds r1, r5, 0 + adds r2, r6, 0 + movs r3, 0xD + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r0, _08105064 + adds r2, r0 + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r2, 0x5] + mov r0, r8 + strh r0, [r2, 0x2E] + strh r4, [r2, 0x30] + lsls r4, 16 + asrs r4, 16 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 1 + strh r0, [r2, 0x32] + ldr r0, _08105068 + strh r0, [r2, 0x34] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08105060: .4byte gSpriteTemplate_83ED42C +_08105064: .4byte gSprites +_08105068: .4byte 0x0000ffff + thumb_func_end sub_8104FF4 + + thumb_func_start sub_810506C +sub_810506C: @ 810506C + push {r4,lr} + adds r4, r0, 0 + ldr r1, _081050C0 + ldrh r2, [r1, 0xC] + movs r3, 0x2E + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _0810507E + ldrh r2, [r1, 0xE] +_0810507E: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, r2 + beq _081050B8 + strh r2, [r4, 0x34] + ldrh r1, [r4, 0x32] + adds r0, r2, 0 + bl __umodsi3 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r1, [r4, 0x30] + adds r0, r2, 0 + bl __udivsi3 + lsls r0, 16 + movs r3, 0xE0 + lsls r3, 11 + adds r0, r3 + lsrs r2, r0, 16 + adds r0, r2, 0 + bl GetSpriteTileStartByTag + adds r1, r4, 0 + adds r1, 0x40 + strh r0, [r1] + adds r0, r4, 0 + bl SetSpriteSheetFrameTileNum +_081050B8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081050C0: .4byte 0x02000000 + thumb_func_end sub_810506C + + thumb_func_start sub_81050C4 +sub_81050C4: @ 81050C4 + push {lr} + ldr r0, _081050F4 + movs r1, 0x58 + movs r2, 0x48 + movs r3, 0xF + bl CreateSprite + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _081050F8 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + ldr r1, _081050FC + bl SetSubspriteTables + pop {r0} + bx r0 + .align 2, 0 +_081050F4: .4byte gSpriteTemplate_83ED444 +_081050F8: .4byte gSprites +_081050FC: .4byte gUnknown_083ED704 + thumb_func_end sub_81050C4 + + thumb_func_start sub_8105100 +sub_8105100: @ 8105100 + push {lr} + ldr r0, _08105140 + movs r1, 0x8C + lsls r1, 1 + movs r2, 0x50 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08105144 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldrb r3, [r2, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r3 + movs r3, 0x4 + orrs r1, r3 + strb r1, [r2, 0x5] + adds r2, 0x3E + ldrb r1, [r2] + movs r3, 0x2 + orrs r1, r3 + strb r1, [r2] + ldr r1, _08105148 + adds r1, 0x3F + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08105140: .4byte gSpriteTemplate_83ED45C +_08105144: .4byte gSprites +_08105148: .4byte 0x02000000 + thumb_func_end sub_8105100 + + thumb_func_start sub_810514C +sub_810514C: @ 810514C + push {lr} + ldr r0, _08105168 + adds r0, 0x3F + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0810516C + adds r0, r1 + bl DestroySprite + pop {r0} + bx r0 + .align 2, 0 +_08105168: .4byte 0x02000000 +_0810516C: .4byte gSprites + thumb_func_end sub_810514C + + thumb_func_start sub_8105170 +sub_8105170: @ 8105170 + push {lr} + adds r2, r0, 0 + movs r0, 0 + strh r0, [r2, 0x24] + strh r0, [r2, 0x26] + adds r0, r2, 0 + adds r0, 0x2A + ldrb r0, [r0] + cmp r0, 0x4 + bne _081051B6 + movs r0, 0x8 + strh r0, [r2, 0x24] + strh r0, [r2, 0x26] + adds r0, r2, 0 + adds r0, 0x2B + ldrb r0, [r0] + cmp r0, 0 + beq _081051A4 + adds r0, r2, 0 + adds r0, 0x2C + ldrb r1, [r0] + movs r0, 0x3F + ands r0, r1 + cmp r0, 0 + bne _081051B2 + b _081051B6 +_081051A4: + adds r0, r2, 0 + adds r0, 0x2C + ldrb r1, [r0] + movs r0, 0x3F + ands r0, r1 + cmp r0, 0 + bne _081051B6 +_081051B2: + ldr r0, _081051BC + strh r0, [r2, 0x26] +_081051B6: + pop {r0} + bx r0 + .align 2, 0 +_081051BC: .4byte 0x0000fff8 + thumb_func_end sub_8105170 + + thumb_func_start sub_81051C0 +sub_81051C0: @ 81051C0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _0810526C + movs r7, 0xB8 + lsls r7, 1 + adds r1, r7, 0 + movs r2, 0x34 + movs r3, 0x7 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _08105270 + mov r10, r1 + adds r2, r0, r1 + ldrb r1, [r2, 0x5] + movs r5, 0xD + negs r5, r5 + adds r0, r5, 0 + ands r0, r1 + movs r3, 0x4 + mov r9, r3 + mov r1, r9 + orrs r0, r1 + strb r0, [r2, 0x5] + adds r1, r2, 0 + adds r1, 0x3E + ldrb r0, [r1] + movs r3, 0x2 + mov r8, r3 + mov r3, r8 + orrs r0, r3 + strb r0, [r1] + ldr r1, _08105274 + adds r0, r2, 0 + bl SetSubspriteTables + ldr r6, _08105278 + adds r0, r6, 0 + adds r0, 0x49 + strb r4, [r0] + ldr r0, _0810527C + adds r1, r7, 0 + movs r2, 0x54 + movs r3, 0x7 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + mov r1, r10 + adds r2, r0, r1 + ldrb r0, [r2, 0x5] + ands r5, r0 + mov r3, r9 + orrs r5, r3 + strb r5, [r2, 0x5] + adds r1, r2, 0 + adds r1, 0x3E + ldrb r0, [r1] + mov r3, r8 + orrs r0, r3 + strb r0, [r1] + ldr r1, _08105280 + adds r0, r2, 0 + bl SetSubspriteTables + adds r6, 0x4A + strb r4, [r6] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810526C: .4byte gSpriteTemplate_83ED474 +_08105270: .4byte gSprites +_08105274: .4byte gUnknown_083ED73C +_08105278: .4byte 0x02000000 +_0810527C: .4byte gSpriteTemplate_83ED48C +_08105280: .4byte gUnknown_083ED75C + thumb_func_end sub_81051C0 + + thumb_func_start sub_8105284 +sub_8105284: @ 8105284 + push {r4,lr} + ldr r0, _081052D8 + ldr r1, _081052DC + ldrh r2, [r1] + movs r1, 0xA8 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + movs r2, 0x50 + movs r3, 0x7 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _081052E0 + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x5] + adds r3, r0, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r3] + ldr r1, _081052E4 + bl SetSubspriteTables + ldr r0, _081052E8 + adds r0, 0x42 + strb r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081052D8: .4byte gSpriteTemplate_83ED4A4 +_081052DC: .4byte gSpriteCoordOffsetX +_081052E0: .4byte gSprites +_081052E4: .4byte gUnknown_083ED78C +_081052E8: .4byte 0x02000000 + thumb_func_end sub_8105284 + + thumb_func_start sub_81052EC +sub_81052EC: @ 81052EC + push {r4-r7,lr} + movs r4, 0 + movs r5, 0 + ldr r6, _08105350 +_081052F4: + ldr r0, _08105354 + movs r1, 0xB8 + lsls r1, 1 + movs r2, 0 + movs r3, 0xA + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + ldr r1, _08105358 + adds r3, r1 + ldrb r2, [r3, 0x5] + movs r7, 0xD + negs r7, r7 + adds r1, r7, 0 + ands r2, r1 + movs r1, 0x4 + orrs r2, r1 + strb r2, [r3, 0x5] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + ldrb r1, [r1] + movs r2, 0x2 + orrs r1, r2 + mov r2, r12 + strb r1, [r2] + strh r5, [r3, 0x3C] + adds r1, r4, r6 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r5, 16 + movs r7, 0xA0 + lsls r7, 13 + adds r0, r7 + lsrs r5, r0, 16 + cmp r4, 0x2 + bls _081052F4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08105350: .4byte 0x0200004b +_08105354: .4byte gSpriteTemplate_83ED4BC +_08105358: .4byte gSprites + thumb_func_end sub_81052EC + + thumb_func_start sub_810535C +sub_810535C: @ 810535C + push {r4,lr} + adds r4, r0, 0 + ldr r1, _0810539C + ldrh r0, [r4, 0x3C] + ldrh r1, [r1, 0x14] + adds r0, r1 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x28 + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + adds r1, r0, 0 + adds r1, 0x3B + strh r1, [r4, 0x22] + movs r1, 0x14 + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + bl sub_8102C48 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnimIfDifferent + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810539C: .4byte 0x02000000 + thumb_func_end sub_810535C + + thumb_func_start sub_81053A0 +sub_81053A0: @ 81053A0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r1, 0xB8 + lsls r1, 1 + ldr r0, _0810544C + movs r2, 0x64 + movs r3, 0x9 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r7, _08105450 + adds r2, r0, r7 + adds r1, r2, 0 + adds r1, 0x3E + ldrb r0, [r1] + movs r3, 0x2 + mov r10, r3 + mov r3, r10 + orrs r0, r3 + strb r0, [r1] + ldrb r1, [r2, 0x5] + movs r5, 0xD + negs r5, r5 + adds r0, r5, 0 + ands r0, r1 + movs r1, 0x4 + mov r8, r1 + mov r3, r8 + orrs r0, r3 + strb r0, [r2, 0x5] + ldr r0, _08105454 + mov r9, r0 + adds r0, r2, 0 + mov r1, r9 + bl SetSubspriteTables + ldr r6, _08105458 + adds r0, r6, 0 + adds r0, 0x4E + strb r4, [r0] + movs r1, 0x90 + lsls r1, 1 + ldr r0, _0810544C + movs r2, 0x68 + movs r3, 0x4 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r2, r0, r7 + adds r1, r2, 0 + adds r1, 0x3E + ldrb r0, [r1] + mov r3, r10 + orrs r0, r3 + strb r0, [r1] + ldrb r0, [r2, 0x5] + ands r5, r0 + mov r0, r8 + orrs r5, r0 + strb r5, [r2, 0x5] + adds r0, r2, 0 + mov r1, r9 + bl SetSubspriteTables + adds r6, 0x4F + strb r4, [r6] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810544C: .4byte gSpriteTemplate_83ED4D4 +_08105450: .4byte gSprites +_08105454: .4byte gUnknown_083ED7B4 +_08105458: .4byte 0x02000000 + thumb_func_end sub_81053A0 + + thumb_func_start sub_810545C +sub_810545C: @ 810545C + push {r4,lr} + ldr r0, _081054A8 + movs r1, 0xB8 + lsls r1, 1 + movs r2, 0x4C + movs r3, 0xB + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _081054AC + adds r0, r1 + adds r3, r0, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r3] + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x5] + ldr r1, _081054B0 + bl SetSubspriteTables + ldr r0, _081054B4 + adds r0, 0x40 + strb r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081054A8: .4byte gSpriteTemplate_83ED4EC +_081054AC: .4byte gSprites +_081054B0: .4byte gUnknown_083ED7D4 +_081054B4: .4byte 0x02000000 + thumb_func_end sub_810545C + + thumb_func_start sub_81054B8 +sub_81054B8: @ 81054B8 + push {r4,r5,lr} + ldr r4, _08105518 + adds r0, r4, 0 + adds r0, 0x40 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0810551C + adds r0, r1 + bl DestroySprite + movs r5, 0 + adds r4, 0x49 +_081054D4: + adds r0, r5, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0810551C + adds r0, r1 + bl DestroySprite + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bls _081054D4 + movs r5, 0 + ldr r4, _08105520 +_081054F4: + adds r0, r5, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0810551C + adds r0, r1 + bl DestroySprite + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _081054F4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08105518: .4byte 0x02000000 +_0810551C: .4byte gSprites +_08105520: .4byte 0x0200004b + thumb_func_end sub_81054B8 + + thumb_func_start sub_8105524 +sub_8105524: @ 8105524 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _0810554C +_0810552A: + adds r0, r4, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08105550 + adds r0, r1 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _0810552A + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810554C: .4byte 0x0200004e +_08105550: .4byte gSprites + thumb_func_end sub_8105524 + + thumb_func_start sub_8105554 +sub_8105554: @ 8105554 + push {lr} + ldr r0, _08105570 + adds r0, 0x42 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08105574 + adds r0, r1 + bl DestroySprite + pop {r0} + bx r0 + .align 2, 0 +_08105570: .4byte 0x02000000 +_08105574: .4byte gSprites + thumb_func_end sub_8105554 + + thumb_func_start sub_8105578 +sub_8105578: @ 8105578 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + ldr r0, _0810561C + mov r10, r0 + movs r1, 0x98 + movs r2, 0x20 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r2, _08105620 + mov r9, r2 + adds r3, r1, r2 + ldrb r2, [r3, 0x5] + movs r4, 0xD + negs r4, r4 + adds r1, r4, 0 + ands r1, r2 + movs r2, 0x4 + mov r8, r2 + mov r2, r8 + orrs r1, r2 + strb r1, [r3, 0x5] + adds r5, r3, 0 + adds r5, 0x3F + ldrb r1, [r5] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r5] + ldr r5, _08105624 + adds r1, r5, 0 + adds r1, 0x50 + strb r0, [r1] + movs r0, 0x8 + strh r0, [r3, 0x2E] + ldr r0, _08105628 + strh r0, [r3, 0x30] + movs r0, 0x1 + negs r0, r0 + strh r0, [r3, 0x32] + movs r6, 0x20 + strh r6, [r3, 0x3C] + mov r0, r10 + movs r1, 0xB8 + movs r2, 0x20 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + mov r2, r9 + adds r3, r1, r2 + ldrb r1, [r3, 0x5] + ands r4, r1 + mov r1, r8 + orrs r4, r1 + strb r4, [r3, 0x5] + adds r5, 0x51 + strb r0, [r5] + movs r0, 0x1 + strh r0, [r3, 0x30] + subs r0, 0x2 + strh r0, [r3, 0x32] + strh r6, [r3, 0x3C] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810561C: .4byte gSpriteTemplate_83ED504 +_08105620: .4byte gSprites +_08105624: .4byte 0x02000000 +_08105628: .4byte 0x0000ffff + thumb_func_end sub_8105578 + + thumb_func_start sub_810562C +sub_810562C: @ 810562C + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + movs r1, 0x2E + ldrsh r4, [r2, r1] + cmp r4, 0 + beq _08105650 + subs r0, 0x1 + movs r1, 0 + strh r0, [r2, 0x2E] + strh r1, [r2, 0x24] + strh r1, [r2, 0x26] + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + b _08105682 +_08105650: + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x26] + adds r0, r1 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _08105682 + ldrh r0, [r2, 0x3C] + strh r0, [r2, 0x2E] + strh r4, [r2, 0x34] +_08105682: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_810562C + + thumb_func_start sub_8105688 +sub_8105688: @ 8105688 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _081056B8 + ldr r3, _081056BC + adds r1, r3, 0 + adds r1, 0x50 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r0, [r1, 0x3C] + adds r3, 0x51 + ldrb r2, [r3] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r0, [r1, 0x3C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081056B8: .4byte gSprites +_081056BC: .4byte 0x02000000 + thumb_func_end sub_8105688 + + thumb_func_start sub_81056C0 +sub_81056C0: @ 81056C0 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _081056E8 +_081056C6: + adds r0, r4, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _081056EC + adds r0, r1 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _081056C6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081056E8: .4byte 0x02000050 +_081056EC: .4byte gSprites + thumb_func_end sub_81056C0 + + thumb_func_start sub_81056F0 +sub_81056F0: @ 81056F0 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + ldr r0, _08105778 + mov r8, r0 + movs r1, 0x48 + movs r2, 0x50 + movs r3, 0x3 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0810577C + mov r9, r1 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + add r2, r9 + ldrb r3, [r2, 0x5] + movs r4, 0xD + negs r4, r4 + adds r1, r4, 0 + ands r1, r3 + movs r6, 0x4 + orrs r1, r6 + strb r1, [r2, 0x5] + movs r3, 0 + movs r1, 0x1 + strh r1, [r2, 0x2E] + strh r3, [r2, 0x38] + movs r1, 0x10 + strh r1, [r2, 0x3A] + movs r1, 0x8 + strh r1, [r2, 0x3C] + ldr r5, _08105780 + adds r1, r5, 0 + adds r1, 0x52 + strb r0, [r1] + mov r0, r8 + movs r1, 0x68 + movs r2, 0x50 + movs r3, 0x3 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r9 + ldrb r2, [r1, 0x5] + ands r4, r2 + orrs r4, r6 + strb r4, [r1, 0x5] + adds r1, 0x3F + ldrb r2, [r1] + movs r3, 0x1 + orrs r2, r3 + strb r2, [r1] + adds r5, 0x53 + strb r0, [r5] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08105778: .4byte gSpriteTemplate_83ED51C +_0810577C: .4byte gSprites +_08105780: .4byte 0x02000000 + thumb_func_end sub_81056F0 + + thumb_func_start sub_8105784 +sub_8105784: @ 8105784 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r1, _081057E0 + mov r0, sp + movs r2, 0x2 + bl memcpy + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081057D6 + ldrh r0, [r4, 0x3A] + subs r0, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + cmp r0, 0 + bgt _081057D6 + movs r0, 0x7 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 4 + ldr r2, _081057E4 + adds r0, r2 + lsrs r0, 16 + movs r2, 0x38 + ldrsh r1, [r4, r2] + add r1, sp + ldrb r3, [r1] + adds r1, r3, 0 + adds r2, r3, 0 + bl sub_8085C7C + ldrh r0, [r4, 0x38] + adds r0, 0x1 + movs r1, 0x1 + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x3C] + strh r0, [r4, 0x3A] +_081057D6: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081057E0: .4byte gUnknown_083ECC58 +_081057E4: .4byte 0x01030000 + thumb_func_end sub_8105784 + + thumb_func_start sub_81057E8 +sub_81057E8: @ 81057E8 + ldr r3, _081057FC + ldr r1, _08105800 + adds r1, 0x52 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r3 + strh r0, [r1, 0x3C] + bx lr + .align 2, 0 +_081057FC: .4byte gSprites +_08105800: .4byte 0x02000000 + thumb_func_end sub_81057E8 + + thumb_func_start sub_8105804 +sub_8105804: @ 8105804 + push {r4,r5,lr} + movs r0, 0x7 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 4 + ldr r1, _08105848 + adds r0, r1 + lsrs r0, 16 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8085C7C + movs r4, 0 + ldr r5, _0810584C +_08105824: + adds r0, r4, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08105850 + adds r0, r1 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _08105824 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08105848: .4byte 0x01030000 +_0810584C: .4byte 0x02000052 +_08105850: .4byte gSprites + thumb_func_end sub_8105804 + + thumb_func_start sub_8105854 +sub_8105854: @ 8105854 + push {lr} + ldr r0, _08105888 + movs r1, 0xA8 + movs r2, 0x50 + movs r3, 0x6 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810588C + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r3, [r1, 0x5] + movs r2, 0xD + negs r2, r2 + ands r2, r3 + movs r3, 0x4 + orrs r2, r3 + strb r2, [r1, 0x5] + ldr r1, _08105890 + adds r1, 0x41 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08105888: .4byte gSpriteTemplate_83ED534 +_0810588C: .4byte gSprites +_08105890: .4byte 0x02000000 + thumb_func_end sub_8105854 + + thumb_func_start sub_8105894 +sub_8105894: @ 8105894 + ldr r1, _0810589C + ldrh r1, [r1] + strh r1, [r0, 0x26] + bx lr + .align 2, 0 +_0810589C: .4byte gSpriteCoordOffsetY + thumb_func_end sub_8105894 + + thumb_func_start sub_81058A0 +sub_81058A0: @ 81058A0 + push {lr} + ldr r0, _081058BC + adds r0, 0x41 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _081058C0 + adds r0, r1 + bl DestroySprite + pop {r0} + bx r0 + .align 2, 0 +_081058BC: .4byte 0x02000000 +_081058C0: .4byte gSprites + thumb_func_end sub_81058A0 + + thumb_func_start sub_81058C4 +sub_81058C4: @ 81058C4 + push {r4-r6,lr} + sub sp, 0x8 + ldr r1, _08105938 + mov r0, sp + movs r2, 0x8 + bl memcpy + movs r4, 0 + ldr r5, _0810593C +_081058D6: + ldr r0, _08105940 + ldrh r0, [r0] + movs r1, 0x50 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + ldr r0, _08105944 + movs r2, 0x44 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + ldr r1, _08105948 + adds r3, r1 + ldrb r2, [r3, 0x5] + movs r6, 0xD + negs r6, r6 + adds r1, r6, 0 + ands r2, r1 + movs r1, 0x4 + orrs r2, r1 + strb r2, [r3, 0x5] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + ldrb r1, [r1] + movs r2, 0x2 + orrs r1, r2 + mov r2, r12 + strb r1, [r2] + lsls r1, r4, 1 + add r1, sp + ldrh r1, [r1] + strh r1, [r3, 0x2E] + adds r1, r4, r5 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _081058D6 + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08105938: .4byte gUnknown_083ECC5A +_0810593C: .4byte 0x02000054 +_08105940: .4byte gSpriteCoordOffsetX +_08105944: .4byte gSpriteTemplate_83ED54C +_08105948: .4byte gSprites + thumb_func_end sub_81058C4 + + thumb_func_start sub_810594C +sub_810594C: @ 810594C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x2E] + subs r0, 0x2 + movs r4, 0 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x2E] + movs r1, 0x2E + ldrsh r0, [r5, r1] + movs r1, 0x14 + bl Cos + strh r0, [r5, 0x24] + movs r2, 0x2E + ldrsh r0, [r5, r2] + movs r1, 0x6 + bl Sin + strh r0, [r5, 0x26] + adds r1, r5, 0 + adds r1, 0x43 + strb r4, [r1] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0x7F + ble _08105986 + movs r0, 0x2 + strb r0, [r1] +_08105986: + ldrh r0, [r5, 0x30] + adds r0, 0x1 + strh r0, [r5, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _081059B0 + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r0, r2, 31 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, 0 + strh r0, [r5, 0x30] +_081059B0: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_810594C + + thumb_func_start sub_81059B8 +sub_81059B8: @ 81059B8 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _081059E0 +_081059BE: + adds r0, r4, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _081059E4 + adds r0, r1 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _081059BE + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081059E0: .4byte 0x02000054 +_081059E4: .4byte gSprites + thumb_func_end sub_81059B8 + + thumb_func_start sub_81059E8 +sub_81059E8: @ 81059E8 + push {r4,lr} + ldr r0, _08105A2C + movs r1, 0xA8 + movs r2, 0x3C + movs r3, 0x8 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _08105A30 + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x5] + ldrb r1, [r0, 0x1] + movs r2, 0x3 + orrs r1, r2 + strb r1, [r0, 0x1] + bl InitSpriteAffineAnim + ldr r0, _08105A34 + adds r0, 0x43 + strb r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105A2C: .4byte gSpriteTemplate_83ED564 +_08105A30: .4byte gSprites +_08105A34: .4byte 0x02000000 + thumb_func_end sub_81059E8 + + thumb_func_start sub_8105A38 +sub_8105A38: @ 8105A38 + push {lr} + adds r3, r0, 0 + ldrh r2, [r3, 0x2E] + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _08105A5A + adds r0, r3, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08105AB4 + adds r0, r2, 0x1 + strh r0, [r3, 0x2E] + b _08105AB4 +_08105A5A: + cmp r0, 0x1 + bne _08105A96 + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x17 + ble _08105AB4 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + movs r0, 0 + strh r0, [r3, 0x32] + b _08105AB4 +_08105A96: + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _08105AB4 + movs r0, 0x1 + strh r0, [r3, 0x3C] +_08105AB4: + ldrh r0, [r3, 0x30] + movs r1, 0xFF + ands r1, r0 + adds r1, 0x10 + strh r1, [r3, 0x30] + lsrs r1, 8 + ldrh r0, [r3, 0x26] + subs r0, r1 + strh r0, [r3, 0x26] + pop {r0} + bx r0 + thumb_func_end sub_8105A38 + + thumb_func_start sub_8105ACC +sub_8105ACC: @ 8105ACC + ldr r2, _08105AE4 + ldr r0, _08105AE8 + adds r0, 0x43 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x3C] + lsls r0, 24 + lsrs r0, 24 + bx lr + .align 2, 0 +_08105AE4: .4byte gSprites +_08105AE8: .4byte 0x02000000 + thumb_func_end sub_8105ACC + + thumb_func_start sub_8105AEC +sub_8105AEC: @ 8105AEC + push {r4,lr} + ldr r0, _08105B14 + adds r0, 0x43 + ldrb r0, [r0] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _08105B18 + adds r4, r0 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105B14: .4byte 0x02000000 +_08105B18: .4byte gSprites + thumb_func_end sub_8105AEC + + thumb_func_start sub_8105B1C +sub_8105B1C: @ 8105B1C + push {r4,lr} + adds r3, r0, 0 + adds r2, r1, 0 + ldr r0, _08105B68 + lsls r3, 16 + asrs r3, 16 + lsls r2, 16 + asrs r2, 16 + adds r1, r3, 0 + movs r3, 0xC + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _08105B6C + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0, 0x5] + ldrb r1, [r0, 0x1] + movs r2, 0x3 + orrs r1, r2 + strb r1, [r0, 0x1] + bl InitSpriteAffineAnim + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08105B68: .4byte gSpriteTemplate_83ED6CC +_08105B6C: .4byte gSprites + thumb_func_end sub_8105B1C + + thumb_func_start sub_8105B70 +sub_8105B70: @ 8105B70 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08105B84 + movs r0, 0x1 + strh r0, [r2, 0x3C] +_08105B84: + pop {r0} + bx r0 + thumb_func_end sub_8105B70 + + thumb_func_start sub_8105B88 +sub_8105B88: @ 8105B88 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _08105BB0 + adds r4, r0 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105BB0: .4byte gSprites + thumb_func_end sub_8105B88 + + thumb_func_start sub_8105BB4 +sub_8105BB4: @ 8105BB4 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + ldr r3, _08105BF0 + lsrs r1, 22 + adds r3, r1, r3 + ldr r5, [r3] + ldr r3, _08105BF4 + adds r4, r1, r3 + movs r6, 0 + ldrsh r4, [r4, r6] + adds r3, 0x2 + adds r1, r3 + movs r6, 0 + ldrsh r3, [r1, r6] + lsls r2, 16 + asrs r2, 16 + str r2, [sp] + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_8105BF8 + lsls r0, 24 + lsrs r0, 24 + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08105BF0: .4byte gUnknown_083ECF0C +_08105BF4: .4byte gUnknown_083ECE7E + thumb_func_end sub_8105BB4 + + thumb_func_start sub_8105BF8 +sub_8105BF8: @ 8105BF8 + push {r4-r7,lr} + adds r4, r0, 0 + adds r6, r1, 0 + adds r1, r2, 0 + adds r2, r3, 0 + ldr r5, [sp, 0x14] + lsls r4, 24 + lsls r5, 16 + lsrs r5, 16 + ldr r0, _08105C58 + lsrs r4, 22 + adds r0, r4, r0 + ldr r0, [r0] + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x10 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + adds r7, r0, 0 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r1, _08105C5C + adds r2, r0, r1 + ldrb r0, [r2, 0x5] + movs r1, 0xC + orrs r0, r1 + strb r0, [r2, 0x5] + str r6, [r2, 0x1C] + strh r5, [r2, 0x3A] + movs r0, 0x1 + strh r0, [r2, 0x3C] + ldr r0, _08105C60 + adds r4, r0 + ldr r1, [r4] + cmp r1, 0 + beq _08105C50 + adds r0, r2, 0 + bl SetSubspriteTables +_08105C50: + adds r0, r7, 0 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08105C58: .4byte gUnknown_083EDB5C +_08105C5C: .4byte gSprites +_08105C60: .4byte gUnknown_083EDBC4 + thumb_func_end sub_8105BF8 + + thumb_func_start sub_8105C64 +sub_8105C64: @ 8105C64 + movs r1, 0 + strh r1, [r0, 0x3C] + bx lr + thumb_func_end sub_8105C64 + + thumb_func_start sub_8105C6C +sub_8105C6C: @ 8105C6C + push {r4,r5,lr} + sub sp, 0x10 + adds r4, r0, 0 + ldr r1, _08105CE8 + mov r0, sp + movs r2, 0x8 + bl memcpy + add r5, sp, 0x8 + ldr r1, _08105CEC + adds r0, r5, 0 + movs r2, 0x8 + bl memcpy + ldrh r0, [r4, 0x30] + adds r1, r0, 0x1 + strh r1, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _08105CB2 + adds r3, r4, 0 + adds r3, 0x42 + ldrb r2, [r3] + lsls r0, r2, 26 + lsrs r0, 26 + movs r1, 0x1 + eors r1, r0 + movs r0, 0x40 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, 0 + strh r0, [r4, 0x30] +_08105CB2: + movs r0, 0 + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + adds r0, r4, 0 + adds r0, 0x42 + ldrb r1, [r0] + movs r0, 0x3F + ands r0, r1 + cmp r0, 0 + beq _08105CDE + movs r1, 0x3A + ldrsh r0, [r4, r1] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + lsls r0, 1 + adds r0, r5, r0 + ldrh r0, [r0] + strh r0, [r4, 0x26] +_08105CDE: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08105CE8: .4byte gUnknown_083ECC62 +_08105CEC: .4byte gUnknown_083ECC6A + thumb_func_end sub_8105C6C + + thumb_func_start sub_8105CF0 +sub_8105CF0: @ 8105CF0 + push {lr} + adds r3, r0, 0 + adds r3, 0x3F + ldrb r1, [r3] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r3] + bl sub_8105C6C + pop {r0} + bx r0 + thumb_func_end sub_8105CF0 + + thumb_func_start sub_8105D08 +sub_8105D08: @ 8105D08 + push {lr} + adds r3, r0, 0 + adds r3, 0x3F + ldrb r1, [r3] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r3] + bl sub_8105C6C + pop {r0} + bx r0 + thumb_func_end sub_8105D08 + + thumb_func_start sub_8105D20 +sub_8105D20: @ 8105D20 + push {lr} + adds r3, r0, 0 + adds r3, 0x3F + ldrb r1, [r3] + movs r2, 0x1 + orrs r1, r2 + movs r2, 0x2 + orrs r1, r2 + strb r1, [r3] + bl sub_8105C6C + pop {r0} + bx r0 + thumb_func_end sub_8105D20 + + thumb_func_start sub_8105D3C +sub_8105D3C: @ 8105D3C + push {lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x1 + beq _08105D70 + cmp r0, 0x1 + bgt _08105D52 + cmp r0, 0 + beq _08105D5C + b _08105DA0 +_08105D52: + cmp r0, 0x2 + beq _08105D80 + cmp r0, 0x3 + beq _08105D9C + b _08105DA0 +_08105D5C: + ldrh r0, [r2, 0x20] + adds r0, 0x4 + strh r0, [r2, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xCF + ble _08105DA0 + movs r0, 0xD0 + strh r0, [r2, 0x20] + b _08105D8E +_08105D70: + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5A + ble _08105DA0 + b _08105D8E +_08105D80: + ldrh r0, [r2, 0x20] + adds r0, 0x4 + strh r0, [r2, 0x20] + lsls r0, 16 + ldr r1, _08105D98 + cmp r0, r1 + ble _08105DA0 +_08105D8E: + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + b _08105DA0 + .align 2, 0 +_08105D98: .4byte 0x010f0000 +_08105D9C: + movs r0, 0 + strh r0, [r2, 0x3C] +_08105DA0: + pop {r0} + bx r0 + thumb_func_end sub_8105D3C + + thumb_func_start sub_8105DA4 +sub_8105DA4: @ 8105DA4 + push {lr} + adds r1, r0, 0 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0x1 + beq _08105DD8 + cmp r0, 0x1 + bgt _08105DBA + cmp r0, 0 + beq _08105DC4 + b _08105E02 +_08105DBA: + cmp r0, 0x2 + beq _08105DE8 + cmp r0, 0x3 + beq _08105DFE + b _08105E02 +_08105DC4: + ldrh r0, [r1, 0x20] + subs r0, 0x4 + strh r0, [r1, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xD0 + bgt _08105E02 + movs r0, 0xD0 + strh r0, [r1, 0x20] + b _08105DF6 +_08105DD8: + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5A + ble _08105E02 + b _08105DF6 +_08105DE8: + ldrh r0, [r1, 0x20] + subs r0, 0x4 + strh r0, [r1, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x90 + bgt _08105E02 +_08105DF6: + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + b _08105E02 +_08105DFE: + movs r0, 0 + strh r0, [r1, 0x3C] +_08105E02: + pop {r0} + bx r0 + thumb_func_end sub_8105DA4 + + thumb_func_start sub_8105E08 +sub_8105E08: @ 8105E08 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bhi _08105EAE + lsls r0, 2 + ldr r1, _08105E20 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08105E20: .4byte _08105E24 + .align 2, 0 +_08105E24: + .4byte _08105E3C + .4byte _08105E52 + .4byte _08105E70 + .4byte _08105E84 + .4byte _08105E94 + .4byte _08105EAA +_08105E3C: + ldr r0, _08105E6C + ldrb r1, [r0, 0xA] + subs r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_08105E52: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _08105EAE + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0 + strh r0, [r4, 0x30] + b _08105EAE + .align 2, 0 +_08105E6C: .4byte 0x02000000 +_08105E70: + ldrh r0, [r4, 0x20] + adds r0, 0x4 + strh r0, [r4, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xCF + ble _08105EAE + movs r0, 0xD0 + strh r0, [r4, 0x20] + b _08105EA2 +_08105E84: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5A + ble _08105EAE + b _08105EA2 +_08105E94: + ldrh r0, [r4, 0x20] + adds r0, 0x4 + strh r0, [r4, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF7 + ble _08105EAE +_08105EA2: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _08105EAE +_08105EAA: + movs r0, 0 + strh r0, [r4, 0x3C] +_08105EAE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8105E08 + + thumb_func_start sub_8105EB4 +sub_8105EB4: @ 8105EB4 + push {lr} + adds r3, r0, 0 + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0x1 + beq _08105EE2 + cmp r0, 0x1 + bgt _08105ECA + cmp r0, 0 + beq _08105ED0 + b _08105F50 +_08105ECA: + cmp r0, 0x2 + beq _08105F00 + b _08105F50 +_08105ED0: + adds r2, r3, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] +_08105EE2: + ldrh r0, [r3, 0x22] + adds r0, 0x8 + strh r0, [r3, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6F + ble _08105F50 + movs r0, 0x70 + strh r0, [r3, 0x22] + movs r0, 0x10 + strh r0, [r3, 0x30] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + b _08105F50 +_08105F00: + movs r0, 0x32 + ldrsh r2, [r3, r0] + cmp r2, 0 + bne _08105F46 + ldrh r0, [r3, 0x22] + ldrh r1, [r3, 0x30] + subs r0, r1 + strh r0, [r3, 0x22] + negs r1, r1 + strh r1, [r3, 0x30] + ldrh r0, [r3, 0x34] + adds r0, 0x1 + strh r0, [r3, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _08105F46 + lsls r0, r1, 16 + asrs r0, 18 + strh r0, [r3, 0x30] + strh r2, [r3, 0x34] + adds r1, r0, 0 + cmp r1, 0 + bne _08105F46 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + strh r1, [r3, 0x3C] + adds r2, r3, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_08105F46: + ldrh r0, [r3, 0x32] + adds r0, 0x1 + movs r1, 0x7 + ands r0, r1 + strh r0, [r3, 0x32] +_08105F50: + pop {r0} + bx r0 + thumb_func_end sub_8105EB4 + + thumb_func_start sub_8105F54 +sub_8105F54: @ 8105F54 + push {lr} + adds r1, r0, 0 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _08105F66 + cmp r0, 0x1 + beq _08105F7C + b _08105F98 +_08105F66: + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _08105F98 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + b _08105F98 +_08105F7C: + ldrh r0, [r1, 0x22] + adds r0, 0x2 + strh r0, [r1, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2F + ble _08105F98 + movs r0, 0x30 + strh r0, [r1, 0x22] + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + movs r0, 0 + strh r0, [r1, 0x3C] +_08105F98: + pop {r0} + bx r0 + thumb_func_end sub_8105F54 + + thumb_func_start sub_8105F9C +sub_8105F9C: @ 8105F9C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _08105FAE + cmp r0, 0x1 + beq _08106000 + b _0810604E +_08105FAE: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x20 + ble _0810604E + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0x5 + strh r0, [r4, 0x30] + ldrb r0, [r4, 0x1] + movs r1, 0x10 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldr r2, _08105FFC + ldrh r1, [r4, 0x30] + lsls r0, r1, 4 + orrs r0, r1 + lsls r0, 8 + strh r0, [r2] + b _0810604E + .align 2, 0 +_08105FFC: .4byte REG_MOSAIC +_08106000: + ldrh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + ldrh r0, [r4, 0x30] + subs r0, r1 + strh r0, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + bge _08106016 + movs r0, 0 + strh r0, [r4, 0x30] +_08106016: + ldr r2, _08106054 + ldrh r1, [r4, 0x30] + lsls r0, r1, 4 + orrs r0, r1 + lsls r0, 8 + strh r0, [r2] + ldrh r1, [r4, 0x32] + movs r0, 0xFF + ands r0, r1 + adds r0, 0x80 + strh r0, [r4, 0x32] + movs r0, 0x30 + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _0810604E + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x3C] + ldrb r1, [r4, 0x1] + movs r0, 0x11 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnim +_0810604E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08106054: .4byte REG_MOSAIC + thumb_func_end sub_8105F9C + + thumb_func_start sub_8106058 +sub_8106058: @ 8106058 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x30 + ldrsh r0, [r5, r1] + cmp r0, 0x2 + bgt _081060A8 + ldr r1, _081060A4 + lsls r0, 2 + adds r0, r1 + ldr r4, [r0] + movs r0, 0x6 + bl IndexOfSpritePaletteTag + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 4 + movs r0, 0x80 + lsls r0, 17 + adds r1, r0 + lsrs r1, 16 + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _081060E4 + ldrh r0, [r5, 0x30] + adds r0, 0x1 + strh r0, [r5, 0x30] + movs r0, 0 + strh r0, [r5, 0x32] + b _081060E4 + .align 2, 0 +_081060A4: .4byte gUnknown_083EDE10 +_081060A8: + ldr r1, _081060F8 + movs r2, 0x30 + ldrsh r0, [r5, r2] + lsls r0, 2 + adds r0, r1 + ldr r4, [r0] + movs r0, 0x6 + bl IndexOfSpritePaletteTag + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 4 + movs r0, 0x80 + lsls r0, 17 + adds r1, r0 + lsrs r1, 16 + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + ldrh r0, [r5, 0x32] + adds r0, 0x1 + movs r1, 0 + strh r0, [r5, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x18 + ble _081060E4 + strh r1, [r5, 0x30] + strh r1, [r5, 0x32] +_081060E4: + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnimIfDifferent + movs r0, 0 + strh r0, [r5, 0x3C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081060F8: .4byte gUnknown_083EDE10 + thumb_func_end sub_8106058 + + thumb_func_start sub_81060FC +sub_81060FC: @ 81060FC + push {r4-r6,lr} + sub sp, 0x30 + adds r4, r0, 0 + ldr r1, _08106138 + mov r0, sp + movs r2, 0x10 + bl memcpy + add r6, sp, 0x10 + ldr r1, _0810613C + adds r0, r6, 0 + movs r2, 0x10 + bl memcpy + add r5, sp, 0x20 + ldr r1, _08106140 + adds r0, r5, 0 + movs r2, 0x10 + bl memcpy + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08106174 + cmp r0, 0x1 + bgt _08106144 + cmp r0, 0 + beq _0810614A + b _081061C0 + .align 2, 0 +_08106138: .4byte gUnknown_083ECC72 +_0810613C: .4byte gUnknown_083ECC82 +_08106140: .4byte gUnknown_083ECC92 +_08106144: + cmp r0, 0x2 + beq _08106188 + b _081061C0 +_0810614A: + movs r2, 0x3A + ldrsh r0, [r4, r2] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + lsls r0, 1 + adds r0, r6, r0 + ldrh r0, [r0] + strh r0, [r4, 0x26] + movs r2, 0x3A + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r5, r0 + ldrh r0, [r0] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_08106174: + ldrh r0, [r4, 0x30] + subs r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _081061C0 + b _081061BA +_08106188: + ldrh r0, [r4, 0x24] + movs r2, 0x24 + ldrsh r1, [r4, r2] + cmp r1, 0 + ble _08106196 + subs r0, 0x4 + b _0810619C +_08106196: + cmp r1, 0 + bge _0810619E + adds r0, 0x4 +_0810619C: + strh r0, [r4, 0x24] +_0810619E: + ldrh r0, [r4, 0x26] + movs r2, 0x26 + ldrsh r1, [r4, r2] + cmp r1, 0 + ble _081061AC + subs r0, 0x4 + b _081061B2 +_081061AC: + cmp r1, 0 + bge _081061B4 + adds r0, 0x4 +_081061B2: + strh r0, [r4, 0x26] +_081061B4: + ldr r0, [r4, 0x24] + cmp r0, 0 + bne _081061C0 +_081061BA: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_081061C0: + add sp, 0x30 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81060FC + + thumb_func_start sub_81061C8 +sub_81061C8: @ 81061C8 + push {r4,lr} + sub sp, 0x10 + adds r4, r0, 0 + ldr r1, _0810622C + mov r0, sp + movs r2, 0x10 + bl memcpy + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _081061EA + adds r0, r1, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0xC + strh r0, [r4, 0x30] +_081061EA: + movs r1, 0x3A + ldrsh r0, [r4, r1] + lsls r0, 1 + add r0, sp + movs r2, 0 + ldrsh r0, [r0, r2] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + lsls r0, 1 + add r0, sp + movs r2, 0 + ldrsh r0, [r0, r2] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _08106224 + subs r0, r1, 0x1 + strh r0, [r4, 0x30] +_08106224: + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810622C: .4byte gUnknown_083ECCA2 + thumb_func_end sub_81061C8 + + thumb_func_start sub_8106230 +sub_8106230: @ 8106230 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _0810627A + cmp r0, 0x1 + bgt _08106248 + cmp r0, 0 + beq _08106252 + b _0810634A +_08106248: + cmp r0, 0x2 + beq _081062C4 + cmp r0, 0x3 + beq _081062FC + b _0810634A +_08106252: + ldr r2, _081062BC + adds r1, r2, 0 + adds r1, 0x5C + movs r0, 0x2F + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x3F + strh r0, [r1] + subs r1, 0x4 + ldr r0, _081062C0 + strh r0, [r1] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] +_0810627A: + ldrh r0, [r5, 0x30] + adds r2, r0, 0x2 + strh r2, [r5, 0x30] + adds r0, 0xB2 + strh r0, [r5, 0x32] + movs r1, 0xF0 + subs r1, r2 + strh r1, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xD0 + ble _08106296 + movs r0, 0xD0 + strh r0, [r5, 0x32] +_08106296: + movs r1, 0x34 + ldrsh r0, [r5, r1] + cmp r0, 0xCF + bgt _081062A2 + movs r0, 0xD0 + strh r0, [r5, 0x34] +_081062A2: + ldr r2, _081062BC + ldrh r0, [r5, 0x32] + lsls r0, 8 + ldrh r1, [r5, 0x34] + orrs r0, r1 + adds r1, r2, 0 + adds r1, 0x58 + strh r0, [r1] + movs r1, 0x30 + ldrsh r0, [r5, r1] + cmp r0, 0x33 + ble _0810634A + b _0810633C + .align 2, 0 +_081062BC: .4byte 0x02000000 +_081062C0: .4byte 0x00002088 +_081062C4: + ldr r6, _08106354 + movs r1, 0x12 + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _0810634A + ldr r1, _08106358 + movs r4, 0 + str r4, [sp] + movs r0, 0x5 + movs r2, 0xD0 + movs r3, 0x74 + bl sub_8104D30 + adds r1, r6, 0 + adds r1, 0x58 + ldr r0, _0810635C + strh r0, [r1] + adds r1, 0x2 + movs r0, 0xD1 + lsls r0, 7 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x2F + strh r0, [r1] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + strh r4, [r5, 0x30] +_081062FC: + ldrh r0, [r5, 0x30] + adds r2, r0, 0x2 + strh r2, [r5, 0x30] + adds r0, 0xC2 + strh r0, [r5, 0x32] + movs r1, 0xE0 + subs r1, r2 + strh r1, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xD0 + ble _08106318 + movs r0, 0xD0 + strh r0, [r5, 0x32] +_08106318: + movs r1, 0x34 + ldrsh r0, [r5, r1] + cmp r0, 0xCF + bgt _08106324 + movs r0, 0xD0 + strh r0, [r5, 0x34] +_08106324: + ldr r2, _08106354 + ldrh r0, [r5, 0x32] + lsls r0, 8 + ldrh r1, [r5, 0x34] + orrs r0, r1 + adds r1, r2, 0 + adds r1, 0x58 + strh r0, [r1] + movs r1, 0x30 + ldrsh r0, [r5, r1] + cmp r0, 0xF + ble _0810634A +_0810633C: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + adds r1, r2, 0 + adds r1, 0x5C + movs r0, 0x3F + strh r0, [r1] +_0810634A: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08106354: .4byte 0x02000000 +_08106358: .4byte SpriteCallbackDummy +_0810635C: .4byte 0x0000c0e0 + thumb_func_end sub_8106230 + + thumb_func_start nullsub_70 +nullsub_70: @ 8106360 + bx lr + thumb_func_end nullsub_70 + + thumb_func_start sub_8106364 +sub_8106364: @ 8106364 + ldr r1, _0810636C + movs r0, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_0810636C: .4byte REG_MOSAIC + thumb_func_end sub_8106364 + + thumb_func_start sub_8106370 +sub_8106370: @ 8106370 + push {r4,lr} + ldr r0, _08106398 + ldr r4, [r0] + movs r0, 0x6 + bl IndexOfSpritePaletteTag + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 4 + movs r0, 0x80 + lsls r0, 17 + adds r1, r0 + lsrs r1, 16 + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08106398: .4byte gUnknown_083EDE20 + thumb_func_end sub_8106370 + + thumb_func_start sub_810639C +sub_810639C: @ 810639C + ldr r2, _081063BC + adds r1, r2, 0 + adds r1, 0x58 + movs r0, 0xF0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0xA0 + strh r0, [r1] + adds r0, r2, 0 + adds r0, 0x5C + movs r1, 0x3F + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + .align 2, 0 +_081063BC: .4byte 0x02000000 + thumb_func_end sub_810639C + + thumb_func_start sub_81063C0 +sub_81063C0: @ 81063C0 + push {r4,lr} + bl sub_8106404 + ldr r0, _081063F0 + ldr r4, _081063F4 + adds r1, r4, 0 + bl sub_800D238 + ldr r0, _081063F8 + movs r1, 0xC8 + lsls r1, 6 + adds r4, r1 + adds r1, r4, 0 + bl sub_800D238 + ldr r0, _081063FC + bl LoadSpriteSheets + ldr r0, _08106400 + bl LoadSpritePalettes + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081063F0: .4byte gSlotMachineReelTimeLights_Gfx +_081063F4: .4byte 0x02010000 +_081063F8: .4byte gUnknown_083EDE8C +_081063FC: .4byte gUnknown_083EDC2C +_08106400: .4byte gSlotMachineSpritePalettes + thumb_func_end sub_81063C0 + + thumb_func_start sub_8106404 +sub_8106404: @ 8106404 + push {r4,r5,lr} + ldr r3, _0810643C + movs r2, 0 + ldr r5, _08106440 + ldr r0, _08106444 + ldr r4, [r0] +_08106410: + movs r1, 0 + adds r2, 0x1 +_08106414: + adds r0, r4, r1 + ldrb r0, [r0] + strb r0, [r3] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + adds r3, 0x1 + cmp r1, 0x1F + bls _08106414 + lsls r0, r2, 24 + lsrs r2, r0, 24 + cmp r2, 0x3F + bls _08106410 + adds r0, r5, 0 + bl LoadSpriteSheet + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810643C: .4byte 0x02010000 +_08106440: .4byte gUnknown_083EDCDC +_08106444: .4byte gUnknown_083EDCE4 + thumb_func_end sub_8106404 + + thumb_func_start sub_8106448 +sub_8106448: @ 8106448 + push {r4-r7,lr} + ldr r0, _081064A0 + ldr r4, _081064A4 + adds r1, r4, 0 + bl sub_800D238 + movs r3, 0xC0 + lsls r3, 19 + movs r5, 0xE9 + lsls r5, 5 + ldr r1, _081064A8 + ldr r6, _081064AC + movs r2, 0x80 + lsls r2, 5 + movs r7, 0x80 + lsls r7, 24 +_08106468: + str r4, [r1] + str r3, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r4, r2 + adds r3, r2 + subs r5, r2 + cmp r5, r2 + bhi _08106468 + str r4, [r1] + str r3, [r1, 0x4] + lsrs r0, r5, 1 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r0, _081064B0 + movs r1, 0 + movs r2, 0xA0 + bl LoadPalette + ldr r0, _081064B4 + movs r1, 0xD0 + movs r2, 0x20 + bl LoadPalette + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081064A0: .4byte gSlotMachine_Gfx +_081064A4: .4byte 0x02010000 +_081064A8: .4byte 0x040000d4 +_081064AC: .4byte 0x80000800 +_081064B0: .4byte gUnknown_08E95A18 +_081064B4: .4byte gUnknown_083EDE24 + thumb_func_end sub_8106448 + + thumb_func_start sub_81064B8 +sub_81064B8: @ 81064B8 + push {lr} + ldr r0, _081064D0 + ldr r1, _081064D4 + movs r2, 0xA0 + lsls r2, 2 + bl CpuSet + bl sub_81064D8 + pop {r0} + bx r0 + .align 2, 0 +_081064D0: .4byte gUnknown_08E95AB8 +_081064D4: .4byte 0x0600e800 + thumb_func_end sub_81064B8 + + thumb_func_start sub_81064D8 +sub_81064D8: @ 81064D8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r6, _0810658C + movs r3, 0x4 + movs r0, 0xC0 + lsls r0, 1 + mov r12, r0 + movs r1, 0xC0 + lsls r1, 2 + mov r9, r1 + movs r2, 0xA0 + lsls r2, 1 + mov r8, r2 +_081064F6: + movs r0, 0 + lsls r4, r3, 16 + asrs r5, r4, 16 +_081064FC: + lsls r2, r0, 16 + asrs r2, 16 + adds r1, r5, r2 + lsls r1, 1 + adds r1, r6 + mov r7, r8 + adds r3, r1, r7 + ldr r7, _08106590 + adds r0, r7, 0 + strh r0, [r3] + movs r0, 0xD0 + lsls r0, 2 + adds r3, r1, r0 + ldr r7, _08106594 + adds r0, r7, 0 + strh r0, [r3] + mov r0, r12 + adds r3, r1, r0 + ldr r7, _08106598 + adds r0, r7, 0 + strh r0, [r3] + add r1, r9 + ldr r3, _0810659C + adds r0, r3, 0 + strh r0, [r1] + adds r2, 0x1 + lsls r2, 16 + lsrs r0, r2, 16 + asrs r2, 16 + cmp r2, 0x3 + ble _081064FC + asrs r3, r4, 16 + lsls r1, r3, 1 + adds r1, r6 + mov r5, r12 + adds r2, r1, r5 + adds r7, 0x5D + adds r0, r7, 0 + strh r0, [r2] + add r1, r9 + ldr r2, _081065A0 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0x7 + ldr r5, _081065A4 + adds r2, r5, 0 +_08106558: + lsls r1, r0, 16 + asrs r1, 16 + lsls r0, r1, 5 + adds r0, r3 + lsls r0, 1 + adds r0, r6 + strh r2, [r0] + adds r1, 0x1 + lsls r1, 16 + lsrs r0, r1, 16 + asrs r1, 16 + cmp r1, 0xB + ble _08106558 + movs r7, 0xA0 + lsls r7, 11 + adds r0, r4, r7 + lsrs r3, r0, 16 + asrs r0, 16 + cmp r0, 0x11 + ble _081064F6 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810658C: .4byte 0x0600f000 +_08106590: .4byte 0x00002051 +_08106594: .4byte 0x00002851 +_08106598: .4byte 0x00002061 +_0810659C: .4byte 0x00002861 +_081065A0: .4byte 0x000028be +_081065A4: .4byte 0x000020bf + thumb_func_end sub_81064D8 + + thumb_func_start sub_81065A8 +sub_81065A8: @ 81065A8 + push {r4-r6,lr} + ldr r5, [sp, 0x10] + lsls r0, 16 + asrs r0, 15 + ldr r6, _081065D0 + adds r4, r0, r6 + strh r1, [r4] + ldr r4, _081065D4 + adds r1, r0, r4 + strh r2, [r1] + adds r6, 0x40 + adds r1, r0, r6 + strh r3, [r1] + ldr r1, _081065D8 + adds r0, r1 + strh r5, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081065D0: .4byte 0x0600ebc0 +_081065D4: .4byte 0x0600ebc2 +_081065D8: .4byte 0x0600ec02 + thumb_func_end sub_81065A8 + + thumb_func_start sub_81065DC +sub_81065DC: @ 81065DC + push {r4,r5,lr} + ldr r0, _08106624 + ldr r1, _08106628 + movs r2, 0xA0 + lsls r2, 2 + bl CpuSet + ldr r5, _0810662C + movs r1, 0 + movs r4, 0 +_081065F0: + movs r0, 0 + lsls r3, r1, 16 + asrs r2, r3, 11 +_081065F6: + lsls r1, r0, 16 + asrs r1, 16 + adds r0, r2, r1 + lsls r0, 1 + adds r0, r5 + strh r4, [r0] + adds r1, 0x1 + lsls r1, 16 + lsrs r0, r1, 16 + asrs r1, 16 + cmp r1, 0x1D + ble _081065F6 + movs r1, 0x80 + lsls r1, 9 + adds r0, r3, r1 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _081065F0 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08106624: .4byte gUnknown_08E95FB8 +_08106628: .4byte 0x0600e800 +_0810662C: .4byte 0x0600f000 + thumb_func_end sub_81065DC + + thumb_func_start sub_8106630 +sub_8106630: @ 8106630 + push {r4-r7,lr} + ldr r2, _0810665C + subs r4, r2, 0x2 + subs r5, r2, 0x1 + ldr r3, _08106660 + subs r0, 0x1 + lsls r1, r0, 5 + adds r1, r3 + ldr r3, _08106664 + adds r1, r3 + ldm r1!, {r3,r6,r7} + stm r2!, {r3,r6,r7} + ldm r1!, {r3,r6,r7} + stm r2!, {r3,r6,r7} + ldm r1!, {r6,r7} + stm r2!, {r6,r7} + strb r0, [r4] + movs r0, 0 + strb r0, [r5] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810665C: .4byte 0x02015de0 +_08106660: .4byte gSaveBlock1 +_08106664: .4byte 0x00002dfc + thumb_func_end sub_8106630 + + thumb_func_start sub_8106668 +sub_8106668: @ 8106668 + push {lr} + bl sub_8106674 + pop {r0} + bx r0 + thumb_func_end sub_8106668 + + thumb_func_start sub_8106674 +sub_8106674: @ 8106674 + push {r4-r7,lr} + sub sp, 0x4 + ldr r1, _08106694 + ldr r2, _08106698 + adds r0, r1, r2 + ldrb r0, [r0] + adds r4, r1, 0 + cmp r0, 0x4 + bls _08106688 + b _081067E0 +_08106688: + lsls r0, 2 + ldr r1, _0810669C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08106694: .4byte gMain +_08106698: .4byte 0x0000043c +_0810669C: .4byte _081066A0 + .align 2, 0 +_081066A0: + .4byte _081066B4 + .4byte _081066D8 + .4byte _08106734 + .4byte _0810675C + .4byte _0810678C +_081066B4: + bl remove_some_task + movs r0, 0 + bl SetVBlankCallback + ldr r1, _081066D0 + ldr r0, _081066D4 + str r0, [r1] + movs r0, 0x1 + bl sub_8106A10 + bl sub_81069CC + b _0810676E + .align 2, 0 +_081066D0: .4byte gUnknown_03005E8C +_081066D4: .4byte 0x02015de0 +_081066D8: + bl ResetPaletteFade + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0xC0 + lsls r3, 9 + movs r5, 0 + ldr r1, _08106724 + movs r4, 0x80 + lsls r4, 5 + ldr r6, _08106728 + movs r7, 0x85 + lsls r7, 24 +_081066F2: + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _081066F2 + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl ResetSpriteData + ldr r1, _0810672C + ldr r2, _08106730 + adds r1, r2 + b _08106774 + .align 2, 0 +_08106724: .4byte 0x040000d4 +_08106728: .4byte 0x85000400 +_0810672C: .4byte gMain +_08106730: .4byte 0x0000043c +_08106734: + ldrh r0, [r4, 0x20] + bl SeedRng + bl InitKeys + ldr r0, _08106750 + ldr r1, _08106754 + adds r0, r1 + ldrb r0, [r0] + bl sub_81068FC + ldr r2, _08106758 + adds r1, r4, r2 + b _08106774 + .align 2, 0 +_08106750: .4byte 0x02000000 +_08106754: .4byte 0x00015ddf +_08106758: .4byte 0x0000043c +_0810675C: + ldr r1, _0810677C + ldr r2, _08106780 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + bl sub_8107090 +_0810676E: + ldr r1, _08106784 + ldr r0, _08106788 + adds r1, r0 +_08106774: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _081067E0 + .align 2, 0 +_0810677C: .4byte 0x02000000 +_08106780: .4byte 0x00015dde +_08106784: .4byte gMain +_08106788: .4byte 0x0000043c +_0810678C: + ldr r1, _081067E8 + ldr r2, _081067EC + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + bl sub_8106918 + ldr r0, _081067F0 + movs r1, 0 + movs r2, 0x2 + bl LoadPalette + movs r1, 0xA0 + lsls r1, 19 + movs r4, 0 + str r4, [sp] + ldr r0, _081067F4 + mov r2, sp + str r2, [r0] + str r1, [r0, 0x4] + ldr r1, _081067F8 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + movs r0, 0x2 + bl BeginFastPaletteFade + ldr r0, _081067FC + bl SetVBlankCallback + ldr r0, _08106800 + strb r4, [r0] + movs r1, 0x80 + lsls r1, 19 + movs r2, 0x9A + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08106804 + bl SetMainCallback2 +_081067E0: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081067E8: .4byte 0x02000000 +_081067EC: .4byte 0x00015dde +_081067F0: .4byte gUnknown_083F6140 +_081067F4: .4byte 0x040000d4 +_081067F8: .4byte 0x85000100 +_081067FC: .4byte sub_8106AAC +_08106800: .4byte gUnknown_03000750 +_08106804: .4byte sub_8106808 + thumb_func_end sub_8106674 + + thumb_func_start sub_8106808 +sub_8106808: @ 8106808 + push {lr} + bl sub_810682C + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_8106808 + + thumb_func_start sub_8106818 +sub_8106818: @ 8106818 + push {lr} + ldr r0, _08106828 + ldr r0, [r0, 0x8] + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08106828: .4byte gMain + thumb_func_end sub_8106818 + + thumb_func_start sub_810682C +sub_810682C: @ 810682C + push {lr} + sub sp, 0x4 + ldr r3, _08106844 + ldrb r1, [r3] + cmp r1, 0x1 + beq _08106880 + cmp r1, 0x1 + bgt _08106848 + cmp r1, 0 + beq _0810684E + b _081068E6 + .align 2, 0 +_08106844: .4byte gUnknown_03000750 +_08106848: + cmp r1, 0x2 + beq _081068C0 + b _081068E6 +_0810684E: + ldr r0, _08106874 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0810685E + movs r0, 0x1 + strb r0, [r3] +_0810685E: + ldr r0, _08106878 + ldrb r0, [r0] + cmp r0, 0 + beq _081068E6 + ldr r1, _0810687C + ldrh r0, [r1] + cmp r0, 0 + beq _081068E6 + subs r0, 0x1 + b _081068E4 + .align 2, 0 +_08106874: .4byte gPaletteFade +_08106878: .4byte gUnknown_03000756 +_0810687C: .4byte gUnknown_03000754 +_08106880: + ldr r0, _081068B4 + ldrh r2, [r0, 0x2E] + ands r1, r2 + cmp r1, 0 + bne _08106892 + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _081068A4 +_08106892: + movs r0, 0x2 + strb r0, [r3] + subs r0, 0x3 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade +_081068A4: + ldr r0, _081068B8 + ldrb r0, [r0] + cmp r0, 0 + beq _081068E6 + ldr r1, _081068BC + movs r0, 0 + b _081068E4 + .align 2, 0 +_081068B4: .4byte gMain +_081068B8: .4byte gUnknown_03000756 +_081068BC: .4byte gUnknown_03000754 +_081068C0: + ldr r0, _081068EC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081068D2 + ldr r0, _081068F0 + bl SetMainCallback2 +_081068D2: + ldr r0, _081068F4 + ldrb r0, [r0] + cmp r0, 0 + beq _081068E6 + ldr r1, _081068F8 + ldrh r0, [r1] + cmp r0, 0x1D + bhi _081068E6 + adds r0, 0x1 +_081068E4: + strh r0, [r1] +_081068E6: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_081068EC: .4byte gPaletteFade +_081068F0: .4byte sub_8106818 +_081068F4: .4byte gUnknown_03000756 +_081068F8: .4byte gUnknown_03000754 + thumb_func_end sub_810682C + + thumb_func_start sub_81068FC +sub_81068FC: @ 81068FC + push {r4,lr} + ldr r4, _08106914 + adds r0, r4, 0 + bl InitMenuWindow + adds r0, r4, 0 + bl SetUpWindowConfig + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08106914: .4byte gWindowConfig_81E7160 + thumb_func_end sub_81068FC + + thumb_func_start sub_8106918 +sub_8106918: @ 8106918 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x1 + beq _081069BE + ldr r2, _08106974 + ldr r6, _08106978 + ldr r0, [r6] + ldrb r0, [r0, 0xA] + cmp r3, 0x7 + bhi _08106988 + ldr r1, _0810697C + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + ldr r1, _08106980 + bl StringCopy + adds r2, r0, 0 + ldr r1, [r6] + adds r1, 0x16 + bl StringCopy + adds r2, r0, 0 + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x16 + strb r0, [r2, 0x1] + adds r2, 0x2 + ldr r1, _08106984 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + ldr r1, [r6] + adds r1, 0xB + bl StringCopy10 + movs r1, 0x6 + b _081069AE + .align 2, 0 +_08106974: .4byte gUnknown_03005E40 +_08106978: .4byte gUnknown_03005E8C +_0810697C: .4byte gUnknown_083F60AC +_08106980: .4byte gContestText_ContestWinner +_08106984: .4byte gOtherText_Unknown1 +_08106988: + ldr r4, _081069C4 + lsls r5, r0, 3 + adds r0, r5, r4 + ldr r1, [r0] + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + ldr r1, [r6] + adds r1, 0xB + bl StringCopy10 + adds r2, r0, 0 + adds r4, 0x4 + adds r5, r4 + ldr r1, [r5] + bl StringCopy + movs r1, 0x3 +_081069AE: + movs r2, 0xE + ldr r0, _081069C8 + lsls r1, 3 + adds r1, 0x1 + lsls r2, 3 + movs r3, 0x1 + bl sub_80729D8 +_081069BE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081069C4: .4byte gUnknown_083F60C0 +_081069C8: .4byte gUnknown_03005E40 + thumb_func_end sub_8106918 + + thumb_func_start sub_81069CC +sub_81069CC: @ 81069CC + movs r0, 0x80 + lsls r0, 19 + movs r3, 0 + strh r3, [r0] + ldr r2, _081069FC + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + ldr r1, _08106A00 + ldr r2, _08106A04 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _08106A08 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08106A0C + strh r3, [r0] + adds r0, 0x2 + strh r3, [r0] + adds r0, 0x2 + strh r3, [r0] + bx lr + .align 2, 0 +_081069FC: .4byte 0x04000200 +_08106A00: .4byte REG_BG0CNT +_08106A04: .4byte 0x00000c42 +_08106A08: .4byte 0x00000a45 +_08106A0C: .4byte REG_BLDCNT + thumb_func_end sub_81069CC + + thumb_func_start sub_8106A10 +sub_8106A10: @ 8106A10 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _08106A34 + ldr r0, _08106A28 + strb r1, [r0] + ldr r0, _08106A2C + strh r1, [r0] + ldr r0, _08106A30 + strh r1, [r0] + b _08106A46 + .align 2, 0 +_08106A28: .4byte gUnknown_03000756 +_08106A2C: .4byte gUnknown_03000752 +_08106A30: .4byte gUnknown_03000754 +_08106A34: + ldr r1, _08106A4C + movs r0, 0x1 + strb r0, [r1] + ldr r1, _08106A50 + movs r0, 0xF + strh r0, [r1] + ldr r1, _08106A54 + movs r0, 0x1E + strh r0, [r1] +_08106A46: + pop {r0} + bx r0 + .align 2, 0 +_08106A4C: .4byte gUnknown_03000756 +_08106A50: .4byte gUnknown_03000752 +_08106A54: .4byte gUnknown_03000754 + thumb_func_end sub_8106A10 + + thumb_func_start sub_8106A58 +sub_8106A58: @ 8106A58 + push {lr} + ldr r0, _08106A68 + ldrb r1, [r0] + cmp r1, 0 + bne _08106A70 + ldr r0, _08106A6C + strh r1, [r0] + b _08106A92 + .align 2, 0 +_08106A68: .4byte gUnknown_03000756 +_08106A6C: .4byte REG_MOSAIC +_08106A70: + ldr r1, _08106A98 + ldr r2, _08106A9C + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _08106AA0 + ldr r0, _08106AA4 + ldrh r1, [r0] + lsrs r1, 1 + strh r1, [r2] + ldr r3, _08106AA8 + lsls r0, r1, 12 + lsls r2, r1, 8 + orrs r0, r2 + lsls r2, r1, 4 + orrs r0, r2 + orrs r0, r1 + strh r0, [r3] +_08106A92: + pop {r0} + bx r0 + .align 2, 0 +_08106A98: .4byte REG_BG1CNT +_08106A9C: .4byte 0x00000a45 +_08106AA0: .4byte gUnknown_03000752 +_08106AA4: .4byte gUnknown_03000754 +_08106AA8: .4byte REG_MOSAIC + thumb_func_end sub_8106A58 + + thumb_func_start sub_8106AAC +sub_8106AAC: @ 8106AAC + push {lr} + bl sub_8106A58 + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_8106AAC + + thumb_func_start sub_8106AC4 +sub_8106AC4: @ 8106AC4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + adds r4, r1, 0 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r4, 24 + lsrs r4, 24 + ldr r7, _08106B28 + ldr r0, [r7] + ldr r1, [r0, 0x4] + ldr r2, [r0] + adds r0, r6, 0 + bl species_and_otid_get_pal + ldr r1, _08106B2C + mov r8, r1 + ldr r1, [r1] + bl LZDecompressVram + cmp r4, 0 + bne _08106B40 + lsls r0, r6, 3 + ldr r1, _08106B30 + adds r0, r1 + ldr r1, _08106B34 + lsls r2, r6, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _08106B38 + ldr r5, [r4, 0x4] + str r5, [sp] + str r6, [sp, 0x4] + ldr r4, [r7] + ldr r4, [r4] + str r4, [sp, 0x8] + bl sub_800D334 + mov r2, r8 + ldr r1, [r2] + ldr r0, _08106B3C + ldr r2, [r0] + adds r0, r5, 0 + bl sub_8106B90 + b _08106B74 + .align 2, 0 +_08106B28: .4byte gUnknown_03005E8C +_08106B2C: .4byte gUnknown_03005E90 +_08106B30: .4byte gMonFrontPicTable +_08106B34: .4byte gMonFrontPicCoords +_08106B38: .4byte gUnknown_081FAF4C +_08106B3C: .4byte gUnknown_03005E10 +_08106B40: + lsls r0, r6, 3 + ldr r1, _08106B80 + adds r0, r1 + ldr r1, _08106B84 + lsls r2, r6, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _08106B88 + ldr r5, [r4] + str r5, [sp] + str r6, [sp, 0x4] + ldr r4, [r7] + ldr r4, [r4] + str r4, [sp, 0x8] + bl sub_800D334 + mov r0, r8 + ldr r1, [r0] + ldr r0, _08106B8C + ldr r2, [r0] + adds r0, r5, 0 + bl sub_8106B90 +_08106B74: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08106B80: .4byte gMonBackPicTable +_08106B84: .4byte gMonBackPicCoords +_08106B88: .4byte gUnknown_081FAF4C +_08106B8C: .4byte gUnknown_03005E10 + thumb_func_end sub_8106AC4 + + thumb_func_start sub_8106B90 +sub_8106B90: @ 8106B90 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r10, r0 + mov r9, r1 + str r2, [sp] + movs r0, 0 +_08106BA4: + movs r3, 0 + adds r1, r0, 0x1 + str r1, [sp, 0x4] + lsls r0, 3 + str r0, [sp, 0x8] +_08106BAE: + movs r1, 0 + adds r2, r3, 0x1 + mov r8, r2 + ldr r7, [sp, 0x8] + adds r0, r7, r3 + lsls r0, 5 + mov r12, r0 + lsls r4, r3, 3 +_08106BBE: + movs r3, 0 + lsls r0, r1, 2 + adds r6, r1, 0x1 + mov r2, r12 + adds r5, r2, r0 + ldr r7, [sp, 0x8] + adds r0, r7, r1 + lsls r0, 7 + ldr r1, [sp] + adds r2, r0, r1 +_08106BD2: + lsrs r0, r3, 1 + adds r0, r5, r0 + add r0, r10 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r3 + cmp r0, 0 + beq _08106BE6 + lsrs r1, 4 + b _08106BEA +_08106BE6: + movs r0, 0xF + ands r1, r0 +_08106BEA: + cmp r1, 0 + bne _08106BFC + adds r0, r4, r3 + lsls r0, 1 + adds r0, r2 + movs r7, 0x80 + lsls r7, 8 + adds r1, r7, 0 + b _08106C08 +_08106BFC: + adds r0, r4, r3 + lsls r0, 1 + adds r0, r2 + lsls r1, 1 + add r1, r9 + ldrh r1, [r1] +_08106C08: + strh r1, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x7 + bls _08106BD2 + lsls r0, r6, 16 + lsrs r1, r0, 16 + cmp r1, 0x7 + bls _08106BBE + mov r1, r8 + lsls r0, r1, 16 + lsrs r3, r0, 16 + cmp r3, 0x7 + bls _08106BAE + ldr r2, [sp, 0x4] + lsls r0, r2, 16 + lsrs r0, 16 + cmp r0, 0x7 + bls _08106BA4 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8106B90 + + thumb_func_start sub_8106C40 +sub_8106C40: @ 8106C40 + push {r4-r7,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08106C7C + movs r2, 0x80 + lsls r2, 1 + movs r1, 0 + bl LoadPalette + cmp r4, 0x1 + beq _08106C5E + b _08106DB4 +_08106C5E: + ldr r0, _08106C80 + ldr r0, [r0] + ldrb r0, [r0, 0xA] + movs r1, 0x3 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _08106D1C + lsls r0, 2 + ldr r1, _08106C84 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08106C7C: .4byte gPictureFramePalettes +_08106C80: .4byte gUnknown_03005E8C +_08106C84: .4byte _08106C88 + .align 2, 0 +_08106C88: + .4byte _08106C9C + .4byte _08106CB4 + .4byte _08106CCC + .4byte _08106CE4 + .4byte _08106D08 +_08106C9C: + ldr r0, _08106CAC + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106CB0 + b _08106CF0 + .align 2, 0 +_08106CAC: .4byte gPictureFrameTiles_0 +_08106CB0: .4byte gPictureFrameTilemap_0 +_08106CB4: + ldr r0, _08106CC4 + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106CC8 + b _08106CF0 + .align 2, 0 +_08106CC4: .4byte gPictureFrameTiles_1 +_08106CC8: .4byte gPictureFrameTilemap_1 +_08106CCC: + ldr r0, _08106CDC + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106CE0 + b _08106CF0 + .align 2, 0 +_08106CDC: .4byte gPictureFrameTiles_2 +_08106CE0: .4byte gPictureFrameTilemap_2 +_08106CE4: + ldr r0, _08106CFC + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106D00 +_08106CF0: + ldr r1, _08106D04 + ldr r1, [r1] + bl RLUnCompWram + b _08106D1C + .align 2, 0 +_08106CFC: .4byte gPictureFrameTiles_3 +_08106D00: .4byte gPictureFrameTilemap_3 +_08106D04: .4byte gUnknown_03005E10 +_08106D08: + ldr r0, _08106D98 + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106D9C + ldr r1, _08106DA0 + ldr r1, [r1] + bl RLUnCompWram +_08106D1C: + movs r1, 0 + ldr r5, _08106DA4 + ldr r0, _08106DA8 + adds r4, r0, 0 +_08106D24: + movs r3, 0 + lsls r2, r1, 5 +_08106D28: + adds r0, r2, r3 + lsls r0, 1 + adds r0, r5 + strh r4, [r0] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1F + bls _08106D28 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x13 + bls _08106D24 + movs r1, 0 + ldr r0, _08106DAC + mov r12, r0 + ldr r7, _08106DA0 +_08106D4C: + movs r3, 0 + adds r6, r1, 0x1 + lsls r5, r1, 5 + lsls r4, r1, 6 +_08106D54: + adds r2, r5, r3 + lsls r2, 1 + add r2, r12 + ldr r0, [r7] + adds r0, r4, r0 + lsls r1, r3, 1 + adds r0, r1 + adds r0, 0x8C + ldrh r0, [r0] + strh r0, [r2] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x11 + bls _08106D54 + lsls r0, r6, 24 + lsrs r1, r0, 24 + cmp r1, 0x9 + bls _08106D4C + movs r3, 0 + ldr r4, _08106DB0 + ldr r2, _08106DA0 +_08106D80: + lsls r1, r3, 1 + adds r1, r4 + ldr r0, [r2] + adds r0, 0x8E + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0xF + bls _08106D80 + b _08106E86 + .align 2, 0 +_08106D98: .4byte gPictureFrameTiles_4 +_08106D9C: .4byte gPictureFrameTilemap_4 +_08106DA0: .4byte gUnknown_03005E10 +_08106DA4: .4byte 0x06006000 +_08106DA8: .4byte 0x00001015 +_08106DAC: .4byte 0x0600608c +_08106DB0: .4byte 0x0600608e +_08106DB4: + cmp r5, 0x7 + bhi _08106DD0 + ldr r0, _08106DC8 + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106DCC + b _08106E60 + .align 2, 0 +_08106DC8: .4byte gPictureFrameTiles_5 +_08106DCC: .4byte gPictureFrameTilemap_5 +_08106DD0: + ldr r0, _08106DF0 + ldr r0, [r0] + ldrb r0, [r0, 0xA] + movs r1, 0x3 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _08106E86 + lsls r0, 2 + ldr r1, _08106DF4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08106DF0: .4byte gUnknown_03005E8C +_08106DF4: .4byte _08106DF8 + .align 2, 0 +_08106DF8: + .4byte _08106E0C + .4byte _08106E24 + .4byte _08106E3C + .4byte _08106E54 + .4byte _08106E74 +_08106E0C: + ldr r0, _08106E1C + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106E20 + b _08106E60 + .align 2, 0 +_08106E1C: .4byte gPictureFrameTiles_0 +_08106E20: .4byte gPictureFrameTilemap_0 +_08106E24: + ldr r0, _08106E34 + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106E38 + b _08106E60 + .align 2, 0 +_08106E34: .4byte gPictureFrameTiles_1 +_08106E38: .4byte gPictureFrameTilemap_1 +_08106E3C: + ldr r0, _08106E4C + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106E50 + b _08106E60 + .align 2, 0 +_08106E4C: .4byte gPictureFrameTiles_2 +_08106E50: .4byte gPictureFrameTilemap_2 +_08106E54: + ldr r0, _08106E68 + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106E6C +_08106E60: + ldr r1, _08106E70 + bl RLUnCompVram + b _08106E86 + .align 2, 0 +_08106E68: .4byte gPictureFrameTiles_3 +_08106E6C: .4byte gPictureFrameTilemap_3 +_08106E70: .4byte 0x06006000 +_08106E74: + ldr r0, _08106E8C + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106E90 + ldr r1, _08106E94 + bl RLUnCompVram +_08106E86: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08106E8C: .4byte gPictureFrameTiles_4 +_08106E90: .4byte gPictureFrameTilemap_4 +_08106E94: .4byte 0x06006000 + thumb_func_end sub_8106C40 + + thumb_func_start sub_8106E98 +sub_8106E98: @ 8106E98 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08106ED0 + ldr r1, _08106ED4 + ldr r2, [r1, 0x4] + ldr r1, [r1] + str r1, [r4, 0x3C] + str r2, [r4, 0x40] + adds r3, r4, 0 + adds r3, 0x40 + ldrh r2, [r3] + ldr r1, _08106ED8 + ands r1, r2 + strh r1, [r3] + ldrh r1, [r4, 0x3E] + ldr r0, _08106EDC + ands r0, r1 + movs r1, 0x58 + orrs r0, r1 + strh r0, [r4, 0x3E] + adds r1, r4, 0 + adds r1, 0x3C + movs r0, 0x18 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08106ED0: .4byte gMain +_08106ED4: .4byte gOamData_83F6138 +_08106ED8: .4byte 0xfffffc00 +_08106EDC: .4byte 0xfffffe00 + thumb_func_end sub_8106E98 + + thumb_func_start sub_8106EE0 +sub_8106EE0: @ 8106EE0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x7 + bhi _08106EF8 + ldr r0, _08106EF4 + ldr r0, [r0] + ldrb r0, [r0, 0xA] + b _08106F08 + .align 2, 0 +_08106EF4: .4byte gUnknown_03005E8C +_08106EF8: + ldr r0, _08106F18 + ldr r0, [r0] + ldrb r0, [r0, 0xA] + movs r1, 0x3 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 +_08106F08: + cmp r0, 0x4 + bhi _08106F46 + lsls r0, 2 + ldr r1, _08106F1C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08106F18: .4byte gUnknown_03005E8C +_08106F1C: .4byte _08106F20 + .align 2, 0 +_08106F20: + .4byte _08106F34 + .4byte _08106F38 + .4byte _08106F3C + .4byte _08106F40 + .4byte _08106F44 +_08106F34: + movs r0, 0x9 + b _08106F46 +_08106F38: + movs r0, 0xD + b _08106F46 +_08106F3C: + movs r0, 0x2 + b _08106F46 +_08106F40: + movs r0, 0x24 + b _08106F46 +_08106F44: + movs r0, 0x6 +_08106F46: + pop {r1} + bx r1 + thumb_func_end sub_8106EE0 + + thumb_func_start sub_8106F4C +sub_8106F4C: @ 8106F4C + ldr r0, _08106F5C + ldr r1, _08106F60 + str r1, [r0] + ldr r0, _08106F64 + ldr r2, _08106F68 + adds r1, r2 + str r1, [r0] + bx lr + .align 2, 0 +_08106F5C: .4byte gUnknown_03005E90 +_08106F60: .4byte 0x02017e00 +_08106F64: .4byte gUnknown_03005E10 +_08106F68: .4byte 0xffffe000 + thumb_func_end sub_8106F4C + + thumb_func_start sub_8106F6C +sub_8106F6C: @ 8106F6C + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _08106FAC + ldr r0, _08106FB0 + ldr r0, [r0] + str r0, [r1, 0x4] + ldr r0, _08106FB4 + ldr r0, [r0] + str r0, [r1, 0x8] + movs r2, 0 + strb r2, [r1, 0x18] + ldr r0, _08106FB8 + ldr r0, [r0] + ldrb r0, [r0] + strb r0, [r1, 0x1F] + strb r2, [r1, 0x19] + strb r2, [r1, 0x1A] + movs r0, 0x40 + strb r0, [r1, 0x1B] + strb r0, [r1, 0x1C] + strb r0, [r1, 0x1D] + strb r0, [r1, 0x1E] + subs r0, r3, 0x2 + adds r4, r1, 0 + cmp r0, 0x22 + bhi _08107050 + lsls r0, 2 + ldr r1, _08106FBC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08106FAC: .4byte gUnknown_03005E20 +_08106FB0: .4byte gUnknown_03005E10 +_08106FB4: .4byte gUnknown_03005E90 +_08106FB8: .4byte gUnknown_03005E8C +_08106FBC: .4byte _08106FC0 + .align 2, 0 +_08106FC0: + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _0810704C + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _0810704C +_0810704C: + movs r0, 0x3 + b _08107052 +_08107050: + movs r0, 0x1 +_08107052: + strh r0, [r4, 0x14] + movs r0, 0x2 + strh r0, [r4, 0x16] + strb r3, [r4] + ldr r0, _08107088 + str r0, [r4, 0x10] + adds r0, r4, 0 + bl sub_80FC7A0 + adds r0, r4, 0 + bl sub_80FDA18 + adds r0, r4, 0 + bl sub_80FD8CC + ldr r0, _0810708C + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 1 + movs r2, 0x80 + lsls r2, 2 + bl LoadPalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08107088: .4byte 0x06010000 +_0810708C: .4byte gUnknown_03005E90 + thumb_func_end sub_8106F6C + + thumb_func_start sub_8107090 +sub_8107090: @ 8107090 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + bl sub_8106F4C + ldr r0, _081070D0 + ldr r0, [r0] + ldrh r0, [r0, 0x8] + movs r1, 0 + bl sub_8106AC4 + adds r0, r4, 0 + bl sub_8106EE0 + lsls r0, 24 + lsrs r0, 24 + bl sub_8106F6C + adds r0, r4, 0 + bl sub_8106E98 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8106C40 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081070D0: .4byte gUnknown_03005E8C + thumb_func_end sub_8107090 + + thumb_func_start sub_81070D4 +sub_81070D4: @ 81070D4 + push {r4-r7,lr} + ldr r2, _08107144 + movs r3, 0 + ldr r4, _08107148 + movs r1, 0 +_081070DE: + adds r0, r2, r3 + strb r1, [r0] + adds r3, 0x1 + cmp r3, 0x2F + bls _081070DE + ldrh r2, [r4] + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _08107138 + ldr r5, _0810714C + ldrh r1, [r5] + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + beq _08107138 + ldr r0, _08107150 + ands r0, r2 + cmp r0, 0 + bne _08107138 + movs r3, 0 + ldr r7, _08107154 + ldr r4, _08107158 + adds r6, r4, 0 + subs r6, 0x8 +_08107110: + lsls r2, r3, 1 + ldrh r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r2, r0 + adds r2, r7 + ldrh r2, [r2] + cmp r2, 0 + beq _08107132 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r6 + strh r2, [r0] + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_08107132: + adds r3, 0x1 + cmp r3, 0x3 + ble _08107110 +_08107138: + bl sub_810715C + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08107144: .4byte 0x02016a00 +_08107148: .4byte gUnknown_020239F8 +_0810714C: .4byte word_202FF5E +_08107150: .4byte 0x00000982 +_08107154: .4byte gTrainers + 0x10 +_08107158: .4byte 0x02016a2c + thumb_func_end sub_81070D4 + + thumb_func_start sub_810715C +sub_810715C: @ 810715C + push {r4-r7,lr} + ldr r2, _08107204 + movs r4, 0 + ldr r3, _08107208 + movs r1, 0 +_08107166: + adds r0, r2, r4 + strb r1, [r0] + adds r4, 0x1 + cmp r4, 0x1B + bls _08107166 + ldr r0, _08107204 + movs r1, 0x64 + movs r4, 0x3 + adds r0, 0x7 +_08107178: + strb r1, [r0] + subs r0, 0x1 + subs r4, 0x1 + cmp r4, 0 + bge _08107178 + ldrb r0, [r3] + movs r1, 0 + movs r2, 0xFF + bl sub_8015A98 + lsls r0, 24 + lsrs r7, r0, 24 + movs r4, 0 + ldr r0, _08107204 + adds r5, r0, 0x4 + ldr r6, _0810720C +_08107198: + ldr r0, [r6] + ands r0, r7 + cmp r0, 0 + beq _081071A4 + movs r0, 0 + strb r0, [r5] +_081071A4: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF + ands r0, r1 + movs r1, 0x64 + subs r1, r0 + strb r1, [r5, 0x14] + adds r5, 0x1 + adds r6, 0x4 + adds r4, 0x1 + cmp r4, 0x3 + ble _08107198 + ldr r0, _08107210 + adds r0, 0x20 + movs r1, 0 + strb r1, [r0] + ldr r1, _08107214 + ldr r0, _08107208 + ldrb r2, [r0] + strb r2, [r1] + ldr r0, _08107218 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08107224 + ldr r4, _0810721C + bl Random + movs r5, 0x2 + ands r0, r5 + strb r0, [r4] + ldr r0, _08107220 + ldrb r1, [r0] + ldr r2, _0810720C + ldrb r3, [r4] + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0810722C + eors r3, r5 + strb r3, [r4] + b _0810722C + .align 2, 0 +_08107204: .4byte 0x02016800 +_08107208: .4byte gUnknown_02024A60 +_0810720C: .4byte gBitTable +_08107210: .4byte 0x02016c00 +_08107214: .4byte gUnknown_02024C07 +_08107218: .4byte gUnknown_020239F8 +_0810721C: .4byte gUnknown_02024C08 +_08107220: .4byte gUnknown_02024C0C +_08107224: + ldr r0, _08107244 + movs r1, 0x1 + eors r1, r2 + strb r1, [r0] +_0810722C: + ldr r0, _08107248 + ldrh r1, [r0] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08107250 + ldr r1, _0810724C + movs r0, 0x80 + lsls r0, 23 + str r0, [r1, 0xC] + b _08107296 + .align 2, 0 +_08107244: .4byte gUnknown_02024C08 +_08107248: .4byte gUnknown_020239F8 +_0810724C: .4byte 0x02016800 +_08107250: + movs r0, 0x80 + lsls r0, 3 + ands r0, r1 + cmp r0, 0 + beq _08107268 + ldr r1, _08107264 + movs r0, 0x80 + lsls r0, 22 + str r0, [r1, 0xC] + b _08107296 + .align 2, 0 +_08107264: .4byte 0x02016800 +_08107268: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08107280 + ldr r1, _0810727C + movs r0, 0x80 + lsls r0, 24 + str r0, [r1, 0xC] + b _08107296 + .align 2, 0 +_0810727C: .4byte 0x02016800 +_08107280: + ldr r3, _0810729C + ldr r2, _081072A0 + ldr r0, _081072A4 + ldrh r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r2, 0x1C + adds r0, r2 + ldr r0, [r0] + str r0, [r3, 0xC] +_08107296: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810729C: .4byte 0x02016800 +_081072A0: .4byte gTrainers +_081072A4: .4byte word_202FF5E + thumb_func_end sub_810715C + + thumb_func_start sub_81072A8 +sub_81072A8: @ 81072A8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + bl sub_810745C + ldr r1, _081072F4 + ldr r0, [r1, 0xC] + cmp r0, 0 + beq _081072E2 + adds r4, r1, 0 + movs r5, 0 +_081072C0: + ldr r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081072D0 + strb r5, [r4] + bl sub_8107374 +_081072D0: + ldr r1, [r4, 0xC] + lsrs r1, 1 + str r1, [r4, 0xC] + ldrb r0, [r4, 0x11] + adds r0, 0x1 + strb r0, [r4, 0x11] + strb r5, [r4, 0x1] + cmp r1, 0 + bne _081072C0 +_081072E2: + ldr r7, _081072F4 + ldrb r1, [r7, 0x10] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081072F8 + movs r0, 0x4 + b _08107368 + .align 2, 0 +_081072F4: .4byte 0x02016800 +_081072F8: + movs r0, 0x4 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _08107308 + movs r0, 0x5 + b _08107368 +_08107308: + movs r5, 0x1 + mov r0, sp + ldrb r1, [r7, 0x4] + strb r1, [r0] + add r0, sp, 0x4 + strb r2, [r0] + movs r3, 0x1 + mov r8, r0 + mov r4, sp + mov r6, r8 + adds r2, r7, 0x5 +_0810731E: + ldrb r1, [r4] + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r1, r0 + bge _08107330 + movs r5, 0x1 + ldrb r0, [r2] + strb r0, [r4] + strb r3, [r6] +_08107330: + ldrb r1, [r4] + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r1, r0 + bne _0810734E + mov r0, sp + adds r1, r0, r5 + ldrb r0, [r2] + strb r0, [r1] + adds r1, r5, 0 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r1, r6, r1 + strb r3, [r1] +_0810734E: + adds r2, 0x1 + adds r3, 0x1 + cmp r3, 0x3 + ble _0810731E + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + bl __modsi3 + add r0, r8 + ldrb r0, [r0] +_08107368: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81072A8 + + thumb_func_start sub_8107374 +sub_8107374: @ 8107374 + push {r4-r7,lr} + ldr r1, _081073D0 + ldrb r0, [r1] + adds r6, r1, 0 + cmp r0, 0x2 + beq _08107456 + adds r4, r1, 0 + ldr r7, _081073D4 +_08107384: + ldrb r0, [r4] + cmp r0, 0x1 + beq _081073E4 + cmp r0, 0x1 + bgt _0810744E + cmp r0, 0 + bne _0810744E + ldr r1, _081073D8 + ldrb r0, [r4, 0x11] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [r7] + ldr r5, _081073DC + ldrb r3, [r4, 0x1] + ldr r0, _081073E0 + ldrb r1, [r0] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + adds r0, r3, r2 + adds r1, r5, 0 + adds r1, 0x24 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _081073C6 + lsls r0, r3, 1 + adds r0, r2 + adds r1, r5, 0 + adds r1, 0xC + adds r0, r1 + ldrh r0, [r0] +_081073C6: + strh r0, [r4, 0x2] + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _0810744E + .align 2, 0 +_081073D0: .4byte 0x02016800 +_081073D4: .4byte gUnknown_02039238 +_081073D8: .4byte BattleAIs +_081073DC: .4byte gBattleMons +_081073E0: .4byte gUnknown_02024C07 +_081073E4: + ldrh r1, [r1, 0x2] + cmp r1, 0 + beq _08107400 + ldr r1, _081073FC + ldr r0, [r7] + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + b _08107410 + .align 2, 0 +_081073FC: .4byte gUnknown_083F6144 +_08107400: + adds r0, r4, 0x4 + ldrb r2, [r4, 0x1] + adds r0, r2 + strb r1, [r0] + ldrb r1, [r4, 0x10] + movs r0, 0x1 + orrs r0, r1 + strb r0, [r4, 0x10] +_08107410: + ldr r1, _0810743C + ldrb r2, [r1, 0x10] + movs r0, 0x1 + ands r0, r2 + adds r6, r1, 0 + cmp r0, 0 + beq _0810744E + ldrb r0, [r6, 0x1] + adds r0, 0x1 + strb r0, [r6, 0x1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bhi _08107440 + movs r0, 0x8 + ands r0, r2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _08107440 + strb r0, [r6] + b _08107446 + .align 2, 0 +_0810743C: .4byte 0x02016800 +_08107440: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_08107446: + ldrb r1, [r4, 0x10] + movs r0, 0xFE + ands r0, r1 + strb r0, [r4, 0x10] +_0810744E: + adds r1, r6, 0 + ldrb r0, [r1] + cmp r0, 0x2 + bne _08107384 +_08107456: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8107374 + + thumb_func_start sub_810745C +sub_810745C: @ 810745C + push {r4-r6,lr} + movs r2, 0 + ldr r3, _08107488 + ldr r5, _0810748C + ldr r6, _08107490 + adds r4, r3, 0 +_08107468: + lsls r0, r2, 1 + ldrb r1, [r4] + lsrs r1, 1 + lsls r1, 4 + adds r0, r1 + adds r1, r0, r5 + ldrh r0, [r1] + cmp r0, 0 + bne _08107494 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + strh r0, [r1] + b _0810749A + .align 2, 0 +_08107488: .4byte gUnknown_02024C08 +_0810748C: .4byte 0x02016a00 +_08107490: .4byte gUnknown_02024C34 +_08107494: + adds r2, 0x1 + cmp r2, 0x7 + ble _08107468 +_0810749A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_810745C + + thumb_func_start unref_sub_81074A0 +unref_sub_81074A0: @ 81074A0 + push {lr} + lsls r0, 24 + ldr r1, _081074C0 + lsrs r0, 25 + movs r2, 0x7 + lsls r0, 4 + adds r0, r1 + adds r0, 0xE + movs r1, 0 +_081074B2: + strh r1, [r0] + subs r0, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _081074B2 + pop {r0} + bx r0 + .align 2, 0 +_081074C0: .4byte 0x02016a00 + thumb_func_end unref_sub_81074A0 + + thumb_func_start sub_81074C4 +sub_81074C4: @ 81074C4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _081074EC + adds r0, r4, 0 + bl battle_get_per_side_status + ldr r2, _081074F4 + movs r1, 0x1 + ands r1, r0 + adds r2, 0x20 + adds r1, r2 + strb r5, [r1] +_081074EC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081074F4: .4byte 0x02016a00 + thumb_func_end sub_81074C4 + + thumb_func_start sub_81074F8 +sub_81074F8: @ 81074F8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08107520 + adds r0, r4, 0 + bl battle_get_per_side_status + ldr r2, _08107528 + movs r1, 0x1 + ands r1, r0 + adds r2, 0x22 + adds r1, r2 + strb r5, [r1] +_08107520: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08107528: .4byte 0x02016a00 + thumb_func_end sub_81074F8 + + thumb_func_start sub_810752C +sub_810752C: @ 810752C + push {lr} + bl Random + lsls r0, 16 + movs r1, 0xFF + lsls r1, 16 + ldr r3, _08107560 + ldr r2, [r3] + ands r1, r0 + lsrs r1, 16 + ldrb r0, [r2, 0x1] + cmp r1, r0 + bcs _08107564 + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08107568 + .align 2, 0 +_08107560: .4byte gUnknown_02039238 +_08107564: + adds r0, r2, 0x6 + str r0, [r3] +_08107568: + pop {r0} + bx r0 + thumb_func_end sub_810752C + + thumb_func_start sub_810756C +sub_810756C: @ 810756C + push {lr} + bl Random + lsls r0, 16 + movs r1, 0xFF + lsls r1, 16 + ldr r3, _081075A0 + ldr r2, [r3] + ands r1, r0 + lsrs r1, 16 + ldrb r0, [r2, 0x1] + cmp r1, r0 + bls _081075A4 + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _081075A8 + .align 2, 0 +_081075A0: .4byte gUnknown_02039238 +_081075A4: + adds r0, r2, 0x6 + str r0, [r3] +_081075A8: + pop {r0} + bx r0 + thumb_func_end sub_810756C + + thumb_func_start sub_81075AC +sub_81075AC: @ 81075AC + push {lr} + bl Random + lsls r0, 16 + movs r1, 0xFF + lsls r1, 16 + ldr r3, _081075E0 + ldr r2, [r3] + ands r1, r0 + lsrs r1, 16 + ldrb r0, [r2, 0x1] + cmp r1, r0 + bne _081075E4 + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _081075E8 + .align 2, 0 +_081075E0: .4byte gUnknown_02039238 +_081075E4: + adds r0, r2, 0x6 + str r0, [r3] +_081075E8: + pop {r0} + bx r0 + thumb_func_end sub_81075AC + + thumb_func_start sub_81075EC +sub_81075EC: @ 81075EC + push {lr} + bl Random + lsls r0, 16 + movs r1, 0xFF + lsls r1, 16 + ldr r3, _08107620 + ldr r2, [r3] + ands r1, r0 + lsrs r1, 16 + ldrb r0, [r2, 0x1] + cmp r1, r0 + beq _08107624 + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08107628 + .align 2, 0 +_08107620: .4byte gUnknown_02039238 +_08107624: + adds r0, r2, 0x6 + str r0, [r3] +_08107628: + pop {r0} + bx r0 + thumb_func_end sub_81075EC + + thumb_func_start sub_810762C +sub_810762C: @ 810762C + push {r4,r5,lr} + ldr r2, _08107660 + ldrb r1, [r2, 0x1] + adds r3, r2, 0x4 + adds r1, r3 + ldr r4, _08107664 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + ldrb r5, [r1] + adds r0, r5 + strb r0, [r1] + ldrb r0, [r2, 0x1] + adds r1, r0, r3 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + bge _08107652 + movs r0, 0 + strb r0, [r1] +_08107652: + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08107660: .4byte 0x02016800 +_08107664: .4byte gUnknown_02039238 + thumb_func_end sub_810762C + + thumb_func_start sub_8107668 +sub_8107668: @ 8107668 + push {r4,lr} + ldr r0, _0810767C + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r4, r0, 0 + cmp r1, 0x1 + bne _08107684 + ldr r0, _08107680 + b _08107686 + .align 2, 0 +_0810767C: .4byte gUnknown_02039238 +_08107680: .4byte gUnknown_02024C07 +_08107684: + ldr r0, _081076BC +_08107686: + ldrb r1, [r0] + ldr r2, _081076C0 + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + ldrh r2, [r1, 0x28] + movs r0, 0x64 + muls r0, r2 + ldrh r1, [r1, 0x2C] + bl __divsi3 + ldr r2, [r4] + ldrb r1, [r2, 0x2] + cmp r0, r1 + bcs _081076C4 + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x4] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _081076C8 + .align 2, 0 +_081076BC: .4byte gUnknown_02024C08 +_081076C0: .4byte gBattleMons +_081076C4: + adds r0, r2, 0x7 + str r0, [r4] +_081076C8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8107668 + + thumb_func_start sub_81076D0 +sub_81076D0: @ 81076D0 + push {r4,lr} + ldr r0, _081076E4 + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r4, r0, 0 + cmp r1, 0x1 + bne _081076EC + ldr r0, _081076E8 + b _081076EE + .align 2, 0 +_081076E4: .4byte gUnknown_02039238 +_081076E8: .4byte gUnknown_02024C07 +_081076EC: + ldr r0, _08107724 +_081076EE: + ldrb r1, [r0] + ldr r2, _08107728 + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + ldrh r2, [r1, 0x28] + movs r0, 0x64 + muls r0, r2 + ldrh r1, [r1, 0x2C] + bl __divsi3 + ldr r2, [r4] + ldrb r1, [r2, 0x2] + cmp r0, r1 + bls _0810772C + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x4] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08107730 + .align 2, 0 +_08107724: .4byte gUnknown_02024C08 +_08107728: .4byte gBattleMons +_0810772C: + adds r0, r2, 0x7 + str r0, [r4] +_08107730: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81076D0 + + thumb_func_start sub_8107738 +sub_8107738: @ 8107738 + push {r4,lr} + ldr r0, _0810774C + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r4, r0, 0 + cmp r1, 0x1 + bne _08107754 + ldr r0, _08107750 + b _08107756 + .align 2, 0 +_0810774C: .4byte gUnknown_02039238 +_08107750: .4byte gUnknown_02024C07 +_08107754: + ldr r0, _0810778C +_08107756: + ldrb r1, [r0] + ldr r2, _08107790 + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + ldrh r2, [r1, 0x28] + movs r0, 0x64 + muls r0, r2 + ldrh r1, [r1, 0x2C] + bl __divsi3 + ldr r2, [r4] + ldrb r1, [r2, 0x2] + cmp r0, r1 + bne _08107794 + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x4] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08107798 + .align 2, 0 +_0810778C: .4byte gUnknown_02024C08 +_08107790: .4byte gBattleMons +_08107794: + adds r0, r2, 0x7 + str r0, [r4] +_08107798: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8107738 + + thumb_func_start sub_81077A0 +sub_81077A0: @ 81077A0 + push {r4,lr} + ldr r0, _081077B4 + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r4, r0, 0 + cmp r1, 0x1 + bne _081077BC + ldr r0, _081077B8 + b _081077BE + .align 2, 0 +_081077B4: .4byte gUnknown_02039238 +_081077B8: .4byte gUnknown_02024C07 +_081077BC: + ldr r0, _081077F4 +_081077BE: + ldrb r1, [r0] + ldr r2, _081077F8 + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + ldrh r2, [r1, 0x28] + movs r0, 0x64 + muls r0, r2 + ldrh r1, [r1, 0x2C] + bl __divsi3 + ldr r2, [r4] + ldrb r1, [r2, 0x2] + cmp r0, r1 + beq _081077FC + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x4] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08107800 + .align 2, 0 +_081077F4: .4byte gUnknown_02024C08 +_081077F8: .4byte gBattleMons +_081077FC: + adds r0, r2, 0x7 + str r0, [r4] +_08107800: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81077A0 + + thumb_func_start sub_8107808 +sub_8107808: @ 8107808 + push {r4,r5,lr} + ldr r0, _0810781C + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r5, r0, 0 + cmp r1, 0x1 + bne _08107824 + ldr r0, _08107820 + b _08107826 + .align 2, 0 +_0810781C: .4byte gUnknown_02039238 +_08107820: .4byte gUnknown_02024C07 +_08107824: + ldr r0, _08107868 +_08107826: + ldrb r4, [r0] + ldr r3, [r5] + ldrb r2, [r3, 0x2] + ldrb r0, [r3, 0x3] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r3, 0x4] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r3, 0x5] + lsls r0, 24 + orrs r2, r0 + ldr r1, _0810786C + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + ands r0, r2 + cmp r0, 0 + beq _08107870 + ldrb r1, [r3, 0x6] + ldrb r0, [r3, 0x7] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r3, 0x8] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r3, 0x9] + lsls r0, 24 + orrs r1, r0 + str r1, [r5] + b _08107876 + .align 2, 0 +_08107868: .4byte gUnknown_02024C08 +_0810786C: .4byte gBattleMons +_08107870: + adds r0, r3, 0 + adds r0, 0xA + str r0, [r5] +_08107876: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8107808 + + thumb_func_start sub_810787C +sub_810787C: @ 810787C + push {r4,r5,lr} + ldr r0, _08107890 + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r5, r0, 0 + cmp r1, 0x1 + bne _08107898 + ldr r0, _08107894 + b _0810789A + .align 2, 0 +_08107890: .4byte gUnknown_02039238 +_08107894: .4byte gUnknown_02024C07 +_08107898: + ldr r0, _081078DC +_0810789A: + ldrb r4, [r0] + ldr r3, [r5] + ldrb r2, [r3, 0x2] + ldrb r0, [r3, 0x3] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r3, 0x4] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r3, 0x5] + lsls r0, 24 + orrs r2, r0 + ldr r1, _081078E0 + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + ands r0, r2 + cmp r0, 0 + bne _081078E4 + ldrb r1, [r3, 0x6] + ldrb r0, [r3, 0x7] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r3, 0x8] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r3, 0x9] + lsls r0, 24 + orrs r1, r0 + str r1, [r5] + b _081078EA + .align 2, 0 +_081078DC: .4byte gUnknown_02024C08 +_081078E0: .4byte gBattleMons +_081078E4: + adds r0, r3, 0 + adds r0, 0xA + str r0, [r5] +_081078EA: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_810787C + + thumb_func_start sub_81078F0 +sub_81078F0: @ 81078F0 + push {r4,r5,lr} + ldr r0, _08107904 + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r5, r0, 0 + cmp r1, 0x1 + bne _0810790C + ldr r0, _08107908 + b _0810790E + .align 2, 0 +_08107904: .4byte gUnknown_02039238 +_08107908: .4byte gUnknown_02024C07 +_0810790C: + ldr r0, _08107950 +_0810790E: + ldrb r4, [r0] + ldr r3, [r5] + ldrb r2, [r3, 0x2] + ldrb r0, [r3, 0x3] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r3, 0x4] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r3, 0x5] + lsls r0, 24 + orrs r2, r0 + ldr r1, _08107954 + movs r0, 0x58 + muls r0, r4 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + ands r0, r2 + cmp r0, 0 + beq _08107958 + ldrb r1, [r3, 0x6] + ldrb r0, [r3, 0x7] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r3, 0x8] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r3, 0x9] + lsls r0, 24 + orrs r1, r0 + str r1, [r5] + b _0810795E + .align 2, 0 +_08107950: .4byte gUnknown_02024C08 +_08107954: .4byte gBattleMons +_08107958: + adds r0, r3, 0 + adds r0, 0xA + str r0, [r5] +_0810795E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81078F0 + + thumb_func_start sub_8107964 +sub_8107964: @ 8107964 + push {r4,r5,lr} + ldr r0, _08107978 + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r5, r0, 0 + cmp r1, 0x1 + bne _08107980 + ldr r0, _0810797C + b _08107982 + .align 2, 0 +_08107978: .4byte gUnknown_02039238 +_0810797C: .4byte gUnknown_02024C07 +_08107980: + ldr r0, _081079C4 +_08107982: + ldrb r4, [r0] + ldr r3, [r5] + ldrb r2, [r3, 0x2] + ldrb r0, [r3, 0x3] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r3, 0x4] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r3, 0x5] + lsls r0, 24 + orrs r2, r0 + ldr r1, _081079C8 + movs r0, 0x58 + muls r0, r4 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + ands r0, r2 + cmp r0, 0 + bne _081079CC + ldrb r1, [r3, 0x6] + ldrb r0, [r3, 0x7] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r3, 0x8] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r3, 0x9] + lsls r0, 24 + orrs r1, r0 + str r1, [r5] + b _081079D2 + .align 2, 0 +_081079C4: .4byte gUnknown_02024C08 +_081079C8: .4byte gBattleMons +_081079CC: + adds r0, r3, 0 + adds r0, 0xA + str r0, [r5] +_081079D2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8107964 + + thumb_func_start sub_81079D8 +sub_81079D8: @ 81079D8 + push {r4,r5,lr} + ldr r0, _081079EC + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r5, r0, 0 + cmp r1, 0x1 + bne _081079F4 + ldr r0, _081079F0 + b _081079F6 + .align 2, 0 +_081079EC: .4byte gUnknown_02039238 +_081079F0: .4byte gUnknown_02024C07 +_081079F4: + ldr r0, _08107A34 +_081079F6: + ldrb r4, [r0] + ldr r3, [r5] + ldrb r1, [r3, 0x2] + ldrb r0, [r3, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r3, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r3, 0x5] + lsls r0, 24 + orrs r1, r0 + ldr r2, _08107A38 + lsls r0, r4, 2 + adds r0, r2 + ldr r0, [r0] + ands r0, r1 + cmp r0, 0 + beq _08107A3C + ldrb r1, [r3, 0x6] + ldrb r0, [r3, 0x7] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r3, 0x8] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r3, 0x9] + lsls r0, 24 + orrs r1, r0 + str r1, [r5] + b _08107A42 + .align 2, 0 +_08107A34: .4byte gUnknown_02024C08 +_08107A38: .4byte gUnknown_02024C98 +_08107A3C: + adds r0, r3, 0 + adds r0, 0xA + str r0, [r5] +_08107A42: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81079D8 + + thumb_func_start sub_8107A48 +sub_8107A48: @ 8107A48 + push {r4,r5,lr} + ldr r0, _08107A5C + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r5, r0, 0 + cmp r1, 0x1 + bne _08107A64 + ldr r0, _08107A60 + b _08107A66 + .align 2, 0 +_08107A5C: .4byte gUnknown_02039238 +_08107A60: .4byte gUnknown_02024C07 +_08107A64: + ldr r0, _08107AA4 +_08107A66: + ldrb r4, [r0] + ldr r3, [r5] + ldrb r1, [r3, 0x2] + ldrb r0, [r3, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r3, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r3, 0x5] + lsls r0, 24 + orrs r1, r0 + ldr r2, _08107AA8 + lsls r0, r4, 2 + adds r0, r2 + ldr r0, [r0] + ands r0, r1 + cmp r0, 0 + bne _08107AAC + ldrb r1, [r3, 0x6] + ldrb r0, [r3, 0x7] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r3, 0x8] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r3, 0x9] + lsls r0, 24 + orrs r1, r0 + str r1, [r5] + b _08107AB2 + .align 2, 0 +_08107AA4: .4byte gUnknown_02024C08 +_08107AA8: .4byte gUnknown_02024C98 +_08107AAC: + adds r0, r3, 0 + adds r0, 0xA + str r0, [r5] +_08107AB2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8107A48 + + thumb_func_start sub_8107AB8 +sub_8107AB8: @ 8107AB8 + push {r4,lr} + ldr r0, _08107AC8 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + bne _08107AD0 + ldr r0, _08107ACC + b _08107AD2 + .align 2, 0 +_08107AC8: .4byte gUnknown_02039238 +_08107ACC: .4byte gUnknown_02024C07 +_08107AD0: + ldr r0, _08107B1C +_08107AD2: + ldrb r0, [r0] + bl battle_get_per_side_status + movs r2, 0x1 + ands r2, r0 + ldr r4, _08107B20 + ldr r3, [r4] + ldrb r1, [r3, 0x2] + ldrb r0, [r3, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r3, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r3, 0x5] + lsls r0, 24 + orrs r1, r0 + ldr r0, _08107B24 + lsls r2, 1 + adds r2, r0 + ldrh r0, [r2] + ands r0, r1 + cmp r0, 0 + beq _08107B28 + ldrb r1, [r3, 0x6] + ldrb r0, [r3, 0x7] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r3, 0x8] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r3, 0x9] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08107B2E + .align 2, 0 +_08107B1C: .4byte gUnknown_02024C08 +_08107B20: .4byte gUnknown_02039238 +_08107B24: .4byte gUnknown_02024C7A +_08107B28: + adds r0, r3, 0 + adds r0, 0xA + str r0, [r4] +_08107B2E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8107AB8 + + thumb_func_start sub_8107B34 +sub_8107B34: @ 8107B34 + push {r4,lr} + ldr r0, _08107B44 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + bne _08107B4C + ldr r0, _08107B48 + b _08107B4E + .align 2, 0 +_08107B44: .4byte gUnknown_02039238 +_08107B48: .4byte gUnknown_02024C07 +_08107B4C: + ldr r0, _08107B98 +_08107B4E: + ldrb r0, [r0] + bl battle_get_per_side_status + movs r2, 0x1 + ands r2, r0 + ldr r4, _08107B9C + ldr r3, [r4] + ldrb r1, [r3, 0x2] + ldrb r0, [r3, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r3, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r3, 0x5] + lsls r0, 24 + orrs r1, r0 + ldr r0, _08107BA0 + lsls r2, 1 + adds r2, r0 + ldrh r0, [r2] + ands r0, r1 + cmp r0, 0 + bne _08107BA4 + ldrb r1, [r3, 0x6] + ldrb r0, [r3, 0x7] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r3, 0x8] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r3, 0x9] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08107BAA + .align 2, 0 +_08107B98: .4byte gUnknown_02024C08 +_08107B9C: .4byte gUnknown_02039238 +_08107BA0: .4byte gUnknown_02024C7A +_08107BA4: + adds r0, r3, 0 + adds r0, 0xA + str r0, [r4] +_08107BAA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8107B34 + + thumb_func_start sub_8107BB0 +sub_8107BB0: @ 8107BB0 + push {lr} + ldr r0, _08107BD8 + ldr r3, _08107BDC + ldr r2, [r3] + ldr r0, [r0, 0x8] + ldrb r1, [r2, 0x1] + cmp r0, r1 + bcs _08107BE0 + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08107BE4 + .align 2, 0 +_08107BD8: .4byte 0x02016800 +_08107BDC: .4byte gUnknown_02039238 +_08107BE0: + adds r0, r2, 0x6 + str r0, [r3] +_08107BE4: + pop {r0} + bx r0 + thumb_func_end sub_8107BB0 + + thumb_func_start sub_8107BE8 +sub_8107BE8: @ 8107BE8 + push {lr} + ldr r0, _08107C10 + ldr r3, _08107C14 + ldr r2, [r3] + ldr r0, [r0, 0x8] + ldrb r1, [r2, 0x1] + cmp r0, r1 + bls _08107C18 + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08107C1C + .align 2, 0 +_08107C10: .4byte 0x02016800 +_08107C14: .4byte gUnknown_02039238 +_08107C18: + adds r0, r2, 0x6 + str r0, [r3] +_08107C1C: + pop {r0} + bx r0 + thumb_func_end sub_8107BE8 + + thumb_func_start sub_8107C20 +sub_8107C20: @ 8107C20 + push {lr} + ldr r0, _08107C48 + ldr r3, _08107C4C + ldr r2, [r3] + ldr r0, [r0, 0x8] + ldrb r1, [r2, 0x1] + cmp r0, r1 + bne _08107C50 + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08107C54 + .align 2, 0 +_08107C48: .4byte 0x02016800 +_08107C4C: .4byte gUnknown_02039238 +_08107C50: + adds r0, r2, 0x6 + str r0, [r3] +_08107C54: + pop {r0} + bx r0 + thumb_func_end sub_8107C20 + + thumb_func_start sub_8107C58 +sub_8107C58: @ 8107C58 + push {lr} + ldr r0, _08107C80 + ldr r3, _08107C84 + ldr r2, [r3] + ldr r0, [r0, 0x8] + ldrb r1, [r2, 0x1] + cmp r0, r1 + beq _08107C88 + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08107C8C + .align 2, 0 +_08107C80: .4byte 0x02016800 +_08107C84: .4byte gUnknown_02039238 +_08107C88: + adds r0, r2, 0x6 + str r0, [r3] +_08107C8C: + pop {r0} + bx r0 + thumb_func_end sub_8107C58 + + thumb_func_start sub_8107C90 +sub_8107C90: @ 8107C90 + push {lr} + ldr r3, _08107CCC + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + ldr r0, _08107CD0 + ldr r0, [r0, 0x8] + ldrb r1, [r1] + cmp r0, r1 + bcs _08107CD4 + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08107CDA + .align 2, 0 +_08107CCC: .4byte gUnknown_02039238 +_08107CD0: .4byte 0x02016800 +_08107CD4: + adds r0, r2, 0 + adds r0, 0x9 + str r0, [r3] +_08107CDA: + pop {r0} + bx r0 + thumb_func_end sub_8107C90 + + thumb_func_start sub_8107CE0 +sub_8107CE0: @ 8107CE0 + push {lr} + ldr r3, _08107D1C + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + ldr r0, _08107D20 + ldr r0, [r0, 0x8] + ldrb r1, [r1] + cmp r0, r1 + bls _08107D24 + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08107D2A + .align 2, 0 +_08107D1C: .4byte gUnknown_02039238 +_08107D20: .4byte 0x02016800 +_08107D24: + adds r0, r2, 0 + adds r0, 0x9 + str r0, [r3] +_08107D2A: + pop {r0} + bx r0 + thumb_func_end sub_8107CE0 + + thumb_func_start sub_8107D30 +sub_8107D30: @ 8107D30 + push {lr} + ldr r3, _08107D6C + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + ldr r0, _08107D70 + ldr r0, [r0, 0x8] + ldrb r1, [r1] + cmp r0, r1 + bne _08107D74 + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08107D7A + .align 2, 0 +_08107D6C: .4byte gUnknown_02039238 +_08107D70: .4byte 0x02016800 +_08107D74: + adds r0, r2, 0 + adds r0, 0x9 + str r0, [r3] +_08107D7A: + pop {r0} + bx r0 + thumb_func_end sub_8107D30 + + thumb_func_start sub_8107D80 +sub_8107D80: @ 8107D80 + push {lr} + ldr r3, _08107DBC + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + ldr r0, _08107DC0 + ldr r0, [r0, 0x8] + ldrb r1, [r1] + cmp r0, r1 + beq _08107DC4 + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08107DCA + .align 2, 0 +_08107DBC: .4byte gUnknown_02039238 +_08107DC0: .4byte 0x02016800 +_08107DC4: + adds r0, r2, 0 + adds r0, 0x9 + str r0, [r3] +_08107DCA: + pop {r0} + bx r0 + thumb_func_end sub_8107D80 + + thumb_func_start sub_8107DD0 +sub_8107DD0: @ 8107DD0 + push {lr} + ldr r3, _08107E00 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldr r0, _08107E04 + ldrh r0, [r0, 0x2] + cmp r0, r1 + bne _08107E08 + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x4] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08107E0C + .align 2, 0 +_08107E00: .4byte gUnknown_02039238 +_08107E04: .4byte 0x02016800 +_08107E08: + adds r0, r2, 0x7 + str r0, [r3] +_08107E0C: + pop {r0} + bx r0 + thumb_func_end sub_8107DD0 + + thumb_func_start sub_8107E10 +sub_8107E10: @ 8107E10 + push {lr} + ldr r3, _08107E40 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldr r0, _08107E44 + ldrh r0, [r0, 0x2] + cmp r0, r1 + beq _08107E48 + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x4] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08107E4C + .align 2, 0 +_08107E40: .4byte gUnknown_02039238 +_08107E44: .4byte 0x02016800 +_08107E48: + adds r0, r2, 0x7 + str r0, [r3] +_08107E4C: + pop {r0} + bx r0 + thumb_func_end sub_8107E10 + + thumb_func_start sub_8107E50 +sub_8107E50: @ 8107E50 + push {r4,lr} + ldr r2, _08107E98 + ldr r1, [r2] + ldrb r3, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r3, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r3, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r3, r0 + ldrb r0, [r3] + cmp r0, 0xFF + beq _08107EA8 + ldr r0, _08107E9C + ldr r1, [r0, 0x8] + adds r4, r2, 0 +_08107E76: + ldrb r0, [r3] + cmp r1, r0 + bne _08107EA0 + ldr r2, [r4] + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08107EAE + .align 2, 0 +_08107E98: .4byte gUnknown_02039238 +_08107E9C: .4byte 0x02016800 +_08107EA0: + adds r3, 0x1 + ldrb r0, [r3] + cmp r0, 0xFF + bne _08107E76 +_08107EA8: + ldr r0, [r2] + adds r0, 0x9 + str r0, [r2] +_08107EAE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8107E50 + + thumb_func_start sub_8107EB4 +sub_8107EB4: @ 8107EB4 + push {r4,lr} + ldr r2, _08107EEC + ldr r1, [r2] + ldrb r3, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r3, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r3, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r3, r0 + ldrb r0, [r3] + adds r4, r2, 0 + cmp r0, 0xFF + beq _08107EFC + ldr r0, _08107EF0 + ldr r2, [r0, 0x8] + adds r1, r4, 0 +_08107EDC: + ldrb r0, [r3] + cmp r2, r0 + bne _08107EF4 + ldr r0, [r1] + adds r0, 0x9 + str r0, [r1] + b _08107F14 + .align 2, 0 +_08107EEC: .4byte gUnknown_02039238 +_08107EF0: .4byte 0x02016800 +_08107EF4: + adds r3, 0x1 + ldrb r0, [r3] + cmp r0, 0xFF + bne _08107EDC +_08107EFC: + ldr r2, [r4] + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] +_08107F14: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8107EB4 + + thumb_func_start sub_8107F1C +sub_8107F1C: @ 8107F1C + push {r4,r5,lr} + ldr r2, _08107F64 + ldr r1, [r2] + ldrb r3, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r3, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r3, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r3, r0 + ldrh r0, [r3] + ldr r5, _08107F68 + cmp r0, r5 + beq _08107F78 + ldr r0, _08107F6C + ldr r1, [r0, 0x8] + adds r4, r2, 0 +_08107F44: + ldrh r0, [r3] + cmp r1, r0 + bne _08107F70 + ldr r2, [r4] + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08107F7E + .align 2, 0 +_08107F64: .4byte gUnknown_02039238 +_08107F68: .4byte 0x0000ffff +_08107F6C: .4byte 0x02016800 +_08107F70: + adds r3, 0x2 + ldrh r0, [r3] + cmp r0, r5 + bne _08107F44 +_08107F78: + ldr r0, [r2] + adds r0, 0x9 + str r0, [r2] +_08107F7E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8107F1C + + thumb_func_start sub_8107F84 +sub_8107F84: @ 8107F84 + push {r4,r5,lr} + ldr r2, _08107FBC + ldr r1, [r2] + ldrb r3, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r3, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r3, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r3, r0 + ldrh r0, [r3] + ldr r4, _08107FC0 + adds r5, r2, 0 + cmp r0, r4 + beq _08107FD0 + ldr r0, _08107FC4 + ldr r2, [r0, 0x8] + adds r1, r5, 0 +_08107FAE: + ldrh r0, [r3] + cmp r2, r0 + bne _08107FC8 + ldr r0, [r1] + adds r0, 0x9 + str r0, [r1] + b _08107FE8 + .align 2, 0 +_08107FBC: .4byte gUnknown_02039238 +_08107FC0: .4byte 0x0000ffff +_08107FC4: .4byte 0x02016800 +_08107FC8: + adds r3, 0x2 + ldrh r0, [r3] + cmp r0, r4 + bne _08107FAE +_08107FD0: + ldr r2, [r5] + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + orrs r1, r0 + str r1, [r5] +_08107FE8: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8107F84 + + thumb_func_start sub_8107FF0 +sub_8107FF0: @ 8107FF0 + push {r4,r5,lr} + movs r3, 0 + ldr r4, _08108030 + ldr r1, _08108034 + ldr r0, _08108038 + ldrb r2, [r0] + ldr r5, _0810803C + movs r0, 0x58 + muls r0, r2 + adds r1, 0xC + adds r2, r0, r1 +_08108006: + ldrh r0, [r2] + cmp r0, 0 + beq _0810801A + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _08108022 +_0810801A: + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x3 + ble _08108006 +_08108022: + cmp r3, 0x4 + bne _08108040 + ldr r0, [r4] + adds r0, 0x5 + str r0, [r4] + b _08108058 + .align 2, 0 +_08108030: .4byte gUnknown_02039238 +_08108034: .4byte gBattleMons +_08108038: .4byte gUnknown_02024C07 +_0810803C: .4byte gBattleMoves +_08108040: + ldr r2, [r4] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] +_08108058: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8107FF0 + + thumb_func_start sub_8108060 +sub_8108060: @ 8108060 + push {r4,r5,lr} + movs r3, 0 + ldr r4, _081080A0 + ldr r1, _081080A4 + ldr r0, _081080A8 + ldrb r2, [r0] + ldr r5, _081080AC + movs r0, 0x58 + muls r0, r2 + adds r1, 0xC + adds r2, r0, r1 +_08108076: + ldrh r0, [r2] + cmp r0, 0 + beq _0810808A + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _08108092 +_0810808A: + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x3 + ble _08108076 +_08108092: + cmp r3, 0x4 + beq _081080B0 + ldr r0, [r4] + adds r0, 0x5 + str r0, [r4] + b _081080C8 + .align 2, 0 +_081080A0: .4byte gUnknown_02039238 +_081080A4: .4byte gBattleMons +_081080A8: .4byte gUnknown_02024C07 +_081080AC: .4byte gBattleMoves +_081080B0: + ldr r2, [r4] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] +_081080C8: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8108060 + + thumb_func_start sub_81080D0 +sub_81080D0: @ 81080D0 + ldr r1, _081080E4 + ldr r0, _081080E8 + ldrb r0, [r0, 0x13] + str r0, [r1, 0x8] + ldr r1, _081080EC + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_081080E4: .4byte 0x02016800 +_081080E8: .4byte gUnknown_030042E0 +_081080EC: .4byte gUnknown_02039238 + thumb_func_end sub_81080D0 + + thumb_func_start sub_81080F0 +sub_81080F0: @ 81080F0 + push {r4,lr} + ldr r1, _08108108 + ldr r0, [r1] + ldrb r0, [r0, 0x1] + adds r4, r1, 0 + cmp r0, 0x4 + bhi _081081B6 + lsls r0, 2 + ldr r1, _0810810C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08108108: .4byte gUnknown_02039238 +_0810810C: .4byte _08108110 + .align 2, 0 +_08108110: + .4byte _08108144 + .4byte _08108124 + .4byte _08108184 + .4byte _08108164 + .4byte _081081A4 +_08108124: + ldr r3, _08108138 + ldr r2, _0810813C + ldr r0, _08108140 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x21 + ldrb r0, [r0] + b _081081B4 + .align 2, 0 +_08108138: .4byte 0x02016800 +_0810813C: .4byte gBattleMons +_08108140: .4byte gUnknown_02024C07 +_08108144: + ldr r3, _08108158 + ldr r2, _0810815C + ldr r0, _08108160 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x21 + ldrb r0, [r0] + b _081081B4 + .align 2, 0 +_08108158: .4byte 0x02016800 +_0810815C: .4byte gBattleMons +_08108160: .4byte gUnknown_02024C08 +_08108164: + ldr r3, _08108178 + ldr r2, _0810817C + ldr r0, _08108180 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x22 + ldrb r0, [r0] + b _081081B4 + .align 2, 0 +_08108178: .4byte 0x02016800 +_0810817C: .4byte gBattleMons +_08108180: .4byte gUnknown_02024C07 +_08108184: + ldr r3, _08108198 + ldr r2, _0810819C + ldr r0, _081081A0 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x22 + ldrb r0, [r0] + b _081081B4 + .align 2, 0 +_08108198: .4byte 0x02016800 +_0810819C: .4byte gBattleMons +_081081A0: .4byte gUnknown_02024C08 +_081081A4: + ldr r3, _081081C4 + ldr r2, _081081C8 + ldrh r1, [r3, 0x2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] +_081081B4: + str r0, [r3, 0x8] +_081081B6: + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081081C4: .4byte 0x02016800 +_081081C8: .4byte gBattleMoves + thumb_func_end sub_81080F0 + + thumb_func_start sub_81081CC +sub_81081CC: @ 81081CC + ldr r3, _081081E8 + ldr r2, _081081EC + ldrh r1, [r3, 0x2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + str r0, [r3, 0x8] + ldr r1, _081081F0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_081081E8: .4byte 0x02016800 +_081081EC: .4byte gBattleMoves +_081081F0: .4byte gUnknown_02039238 + thumb_func_end sub_81081CC + + thumb_func_start sub_81081F4 +sub_81081F4: @ 81081F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + movs r3, 0 + ldr r0, _08108328 + ldrh r1, [r0] + ldr r4, _0810832C + ldr r6, _08108330 + ldr r5, _08108334 + cmp r1, r4 + beq _0810822E + ldrh r1, [r5, 0x2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r2, [r0] + ldr r1, _08108328 +_0810821E: + ldrh r0, [r1] + cmp r2, r0 + beq _0810822E + adds r1, 0x2 + adds r3, 0x1 + ldrh r0, [r1] + cmp r0, r4 + bne _0810821E +_0810822E: + ldrh r0, [r5, 0x2] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1, 0x1] + cmp r0, 0x1 + bhi _08108240 + b _081083B2 +_08108240: + lsls r0, r3, 1 + ldr r1, _08108328 + adds r0, r1 + ldrh r3, [r0] + ldr r0, _0810832C + cmp r3, r0 + beq _08108250 + b _081083B2 +_08108250: + ldr r0, _08108338 + movs r1, 0 + strh r1, [r0] + ldr r2, _0810833C + adds r0, r5, r2 + strb r1, [r0] + adds r2, 0x3 + adds r0, r5, r2 + movs r2, 0x1 + strb r2, [r0] + ldr r0, _08108340 + strb r1, [r0] + ldr r0, _08108344 + strb r2, [r0] + movs r6, 0 + mov r9, r3 + ldr r0, _08108328 + ldrh r0, [r0] + str r0, [sp, 0x10] +_08108276: + movs r3, 0 + ldr r5, _08108348 + lsls r4, r6, 1 + ldr r7, _0810834C + lsls r1, r6, 2 + mov r8, r1 + adds r2, r6, 0x1 + mov r10, r2 + ldr r0, [sp, 0x10] + cmp r0, r9 + beq _081082BA + ldr r2, _08108330 + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + adds r0, r4, r0 + adds r1, r5, 0 + adds r1, 0xC + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0] + ldr r1, _08108328 +_081082AA: + ldrh r0, [r1] + cmp r2, r0 + beq _081082BA + adds r1, 0x2 + adds r3, 0x1 + ldrh r0, [r1] + cmp r0, r9 + bne _081082AA +_081082BA: + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + adds r0, r4, r0 + adds r1, r5, 0 + adds r1, 0xC + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, 0 + beq _0810835C + lsls r0, r3, 1 + ldr r2, _08108328 + adds r0, r2 + ldrh r0, [r0] + cmp r0, r9 + bne _0810835C + ldr r0, _08108330 + ldrh r2, [r1] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0x1 + bls _0810835C + ldr r5, _08108350 + strh r2, [r5] + ldrb r0, [r7] + ldr r4, _08108354 + ldrb r1, [r4] + bl sub_801CAF8 + ldrh r0, [r5] + ldrb r1, [r7] + ldrb r2, [r4] + bl move_effectiveness_something + mov r4, sp + add r4, r8 + ldr r2, _08108358 + ldr r0, _08108334 + adds r0, 0x18 + adds r0, r6, r0 + ldrb r1, [r0] + ldr r0, [r2] + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _08108364 + movs r0, 0x1 + str r0, [r4] + b _08108364 + .align 2, 0 +_08108328: .4byte gUnknown_083F62BC +_0810832C: .4byte 0x0000ffff +_08108330: .4byte gBattleMoves +_08108334: .4byte 0x02016800 +_08108338: .4byte gUnknown_02024DEC +_0810833C: .4byte 0xfffff81c +_08108340: .4byte gUnknown_02024C68 +_08108344: .4byte gCritMultiplier +_08108348: .4byte gBattleMons +_0810834C: .4byte gUnknown_02024C07 +_08108350: .4byte gUnknown_02024BE6 +_08108354: .4byte gUnknown_02024C08 +_08108358: .4byte gUnknown_02024BEC +_0810835C: + mov r1, sp + add r1, r8 + movs r0, 0 + str r0, [r1] +_08108364: + mov r6, r10 + cmp r6, 0x3 + ble _08108276 + movs r6, 0 + ldr r1, _081083A4 + ldrb r0, [r1, 0x1] + lsls r0, 2 + add r0, sp + ldr r2, [sp] + ldr r0, [r0] + adds r5, r1, 0 + ldr r4, _081083A8 + cmp r2, r0 + bgt _0810839A + adds r3, r5, 0 + mov r2, sp +_08108384: + adds r2, 0x4 + adds r6, 0x1 + cmp r6, 0x3 + bgt _0810839A + ldrb r0, [r3, 0x1] + lsls r0, 2 + add r0, sp + ldr r1, [r2] + ldr r0, [r0] + cmp r1, r0 + ble _08108384 +_0810839A: + cmp r6, 0x4 + bne _081083AC + movs r0, 0x2 + str r0, [r5, 0x8] + b _081083B8 + .align 2, 0 +_081083A4: .4byte 0x02016800 +_081083A8: .4byte gUnknown_02039238 +_081083AC: + movs r0, 0x1 + str r0, [r5, 0x8] + b _081083B8 +_081083B2: + movs r0, 0 + str r0, [r5, 0x8] + ldr r4, _081083D0 +_081083B8: + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081083D0: .4byte gUnknown_02039238 + thumb_func_end sub_81081F4 + + thumb_func_start sub_81083D4 +sub_81083D4: @ 81083D4 + push {lr} + ldr r0, _081083EC + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r3, r0, 0 + cmp r1, 0x1 + bne _081083FC + ldr r2, _081083F0 + ldr r1, _081083F4 + ldr r0, _081083F8 + b _08108402 + .align 2, 0 +_081083EC: .4byte gUnknown_02039238 +_081083F0: .4byte 0x02016800 +_081083F4: .4byte gUnknown_02024C34 +_081083F8: .4byte gUnknown_02024C07 +_081083FC: + ldr r2, _08108418 + ldr r1, _0810841C + ldr r0, _08108420 +_08108402: + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + str r0, [r2, 0x8] + ldr r0, [r3] + adds r0, 0x2 + str r0, [r3] + pop {r0} + bx r0 + .align 2, 0 +_08108418: .4byte 0x02016800 +_0810841C: .4byte gUnknown_02024C34 +_08108420: .4byte gUnknown_02024C08 + thumb_func_end sub_81083D4 + + thumb_func_start sub_8108424 +sub_8108424: @ 8108424 + push {lr} + ldr r3, _0810844C + ldr r2, [r3] + ldrb r0, [r2, 0x1] + ldr r1, _08108450 + ldr r1, [r1, 0x8] + cmp r0, r1 + bne _08108454 + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08108458 + .align 2, 0 +_0810844C: .4byte gUnknown_02039238 +_08108450: .4byte 0x02016800 +_08108454: + adds r0, r2, 0x6 + str r0, [r3] +_08108458: + pop {r0} + bx r0 + thumb_func_end sub_8108424 + + thumb_func_start sub_810845C +sub_810845C: @ 810845C + push {lr} + ldr r3, _08108484 + ldr r2, [r3] + ldrb r0, [r2, 0x1] + ldr r1, _08108488 + ldr r1, [r1, 0x8] + cmp r0, r1 + beq _0810848C + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08108490 + .align 2, 0 +_08108484: .4byte gUnknown_02039238 +_08108488: .4byte 0x02016800 +_0810848C: + adds r0, r2, 0x6 + str r0, [r3] +_08108490: + pop {r0} + bx r0 + thumb_func_end sub_810845C + + thumb_func_start tai28_unk +tai28_unk: @ 8108494 + push {lr} + ldr r0, _081084CC + ldrb r0, [r0] + ldr r1, _081084D0 + ldrb r1, [r1] + movs r2, 0x1 + bl b_first_side + ldr r3, _081084D4 + ldr r2, [r3] + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r2, 0x1] + cmp r0, r1 + bne _081084D8 + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _081084DC + .align 2, 0 +_081084CC: .4byte gUnknown_02024C07 +_081084D0: .4byte gUnknown_02024C08 +_081084D4: .4byte gUnknown_02039238 +_081084D8: + adds r0, r2, 0x6 + str r0, [r3] +_081084DC: + pop {r0} + bx r0 + thumb_func_end tai28_unk + + thumb_func_start tai29_unk +tai29_unk: @ 81084E0 + push {lr} + ldr r0, _08108518 + ldrb r0, [r0] + ldr r1, _0810851C + ldrb r1, [r1] + movs r2, 0x1 + bl b_first_side + ldr r3, _08108520 + ldr r2, [r3] + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r2, 0x1] + cmp r0, r1 + beq _08108524 + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08108528 + .align 2, 0 +_08108518: .4byte gUnknown_02024C07 +_0810851C: .4byte gUnknown_02024C08 +_08108520: .4byte gUnknown_02039238 +_08108524: + adds r0, r2, 0x6 + str r0, [r3] +_08108528: + pop {r0} + bx r0 + thumb_func_end tai29_unk + + thumb_func_start nullsub_25 +nullsub_25: @ 810852C + bx lr + thumb_func_end nullsub_25 + + thumb_func_start nullsub_26 +nullsub_26: @ 8108530 + bx lr + thumb_func_end nullsub_26 + + thumb_func_start tai2C_unk +tai2C_unk: @ 8108534 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r1, _08108550 + movs r0, 0 + str r0, [r1, 0x8] + ldr r0, _08108554 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + bne _0810855C + ldr r0, _08108558 + b _0810855E + .align 2, 0 +_08108550: .4byte 0x02016800 +_08108554: .4byte gUnknown_02039238 +_08108558: .4byte gUnknown_02024C07 +_0810855C: + ldr r0, _081085A8 +_0810855E: + ldrb r5, [r0] + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + ldr r1, _081085AC + mov r9, r1 + cmp r0, 0 + bne _08108574 + ldr r0, _081085B0 + mov r9, r0 +_08108574: + ldr r0, _081085B4 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081085BC + ldr r4, _081085B8 + lsls r0, r5, 1 + adds r0, r4 + ldrb r0, [r0] + mov r8, r0 + adds r0, r5, 0 + bl battle_get_per_side_status + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + ldrb r6, [r0] + b _081085C6 + .align 2, 0 +_081085A8: .4byte gUnknown_02024C08 +_081085AC: .4byte gEnemyParty +_081085B0: .4byte gPlayerParty +_081085B4: .4byte gUnknown_020239F8 +_081085B8: .4byte gUnknown_02024A6A +_081085BC: + ldr r1, _08108624 + lsls r0, r5, 1 + adds r0, r1 + ldrb r6, [r0] + mov r8, r6 +_081085C6: + movs r5, 0 + ldr r7, _08108628 +_081085CA: + cmp r5, r8 + beq _08108608 + cmp r5, r6 + beq _08108608 + movs r0, 0x64 + muls r0, r5 + mov r1, r9 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08108608 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _08108608 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _08108608 + ldr r0, [r7, 0x8] + adds r0, 0x1 + str r0, [r7, 0x8] +_08108608: + adds r5, 0x1 + cmp r5, 0x5 + ble _081085CA + ldr r1, _0810862C + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08108624: .4byte gUnknown_02024A6A +_08108628: .4byte 0x02016800 +_0810862C: .4byte gUnknown_02039238 + thumb_func_end tai2C_unk + + thumb_func_start sub_8108630 +sub_8108630: @ 8108630 + ldr r1, _08108640 + ldrh r0, [r1, 0x2] + str r0, [r1, 0x8] + ldr r1, _08108644 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_08108640: .4byte 0x02016800 +_08108644: .4byte gUnknown_02039238 + thumb_func_end sub_8108630 + + thumb_func_start sub_8108648 +sub_8108648: @ 8108648 + ldr r3, _08108664 + ldr r2, _08108668 + ldrh r1, [r3, 0x2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + str r0, [r3, 0x8] + ldr r1, _0810866C + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_08108664: .4byte 0x02016800 +_08108668: .4byte gBattleMoves +_0810866C: .4byte gUnknown_02039238 + thumb_func_end sub_8108648 + + thumb_func_start sub_8108670 +sub_8108670: @ 8108670 + push {r4-r7,lr} + ldr r0, _08108680 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + bne _08108688 + ldr r0, _08108684 + b _0810868A + .align 2, 0 +_08108680: .4byte gUnknown_02039238 +_08108684: .4byte gUnknown_02024C07 +_08108688: + ldr r0, _081086BC +_0810868A: + ldrb r4, [r0] + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08108774 + adds r0, r4, 0 + bl battle_get_per_side_status + movs r7, 0x1 + adds r1, r7, 0 + ands r1, r0 + ldr r6, _081086C0 + adds r0, r6, 0 + adds r0, 0x20 + adds r3, r1, r0 + ldrb r0, [r3] + cmp r0, 0 + beq _081086C8 + ldr r0, _081086C4 + adds r1, r6, r0 + ldrb r0, [r3] + str r0, [r1, 0x8] + b _08108784 + .align 2, 0 +_081086BC: .4byte gUnknown_02024C08 +_081086C0: .4byte 0x02016a00 +_081086C4: .4byte 0xfffffe00 +_081086C8: + ldr r1, _081086F4 + movs r0, 0x58 + muls r0, r4 + adds r5, r0, r1 + adds r0, r5, 0 + adds r0, 0x20 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0x17 + beq _081086E4 + cmp r0, 0x2A + beq _081086E4 + cmp r0, 0x47 + bne _081086FC +_081086E4: + ldr r1, _081086F8 + movs r0, 0x58 + muls r0, r4 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + str r0, [r1, 0x8] + b _08108784 + .align 2, 0 +_081086F4: .4byte gBattleMons +_081086F8: .4byte 0x02016800 +_081086FC: + ldr r4, _08108734 + ldrh r0, [r5] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r3, r1, r4 + ldrb r0, [r3, 0x16] + cmp r0, 0 + beq _08108764 + ldrb r0, [r3, 0x17] + cmp r0, 0 + beq _08108754 + bl Random + adds r1, r7, 0 + ands r1, r0 + cmp r1, 0 + beq _0810873C + ldr r0, _08108738 + adds r2, r6, r0 + ldrh r1, [r5] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x16] + b _08108782 + .align 2, 0 +_08108734: .4byte gBaseStats +_08108738: .4byte 0xfffffe00 +_0810873C: + ldr r0, _08108750 + adds r2, r6, r0 + ldrh r1, [r5] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x17] + b _08108782 + .align 2, 0 +_08108750: .4byte 0xfffffe00 +_08108754: + ldr r0, _08108760 + adds r1, r6, r0 + ldrb r0, [r3, 0x16] + str r0, [r1, 0x8] + b _08108784 + .align 2, 0 +_08108760: .4byte 0xfffffe00 +_08108764: + ldr r0, _08108770 + adds r1, r6, r0 + ldrb r0, [r3, 0x17] + str r0, [r1, 0x8] + b _08108784 + .align 2, 0 +_08108770: .4byte 0xfffffe00 +_08108774: + ldr r2, _08108794 + ldr r1, _08108798 + movs r0, 0x58 + muls r0, r4 + adds r0, r1 + adds r0, 0x20 + ldrb r0, [r0] +_08108782: + str r0, [r2, 0x8] +_08108784: + ldr r1, _0810879C + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08108794: .4byte 0x02016800 +_08108798: .4byte gBattleMons +_0810879C: .4byte gUnknown_02039238 + thumb_func_end sub_8108670 + + thumb_func_start tai30_unk +tai30_unk: @ 81087A0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _0810885C + movs r2, 0 + strh r2, [r0] + ldr r1, _08108860 + ldr r3, _08108864 + adds r0, r1, r3 + movs r4, 0 + strb r2, [r0] + adds r3, 0x3 + adds r0, r1, r3 + movs r3, 0x1 + strb r3, [r0] + ldr r0, _08108868 + strb r2, [r0] + ldr r0, _0810886C + strb r3, [r0] + movs r0, 0xB4 + lsls r0, 9 + adds r1, r0 + str r4, [r1, 0x8] + movs r5, 0 + ldr r4, _08108870 + ldr r7, _08108874 + ldr r3, _08108878 + mov r8, r3 + ldr r6, _0810887C +_081087DA: + movs r0, 0x28 + str r0, [r4] + lsls r1, r5, 1 + ldrb r2, [r6] + movs r0, 0x58 + muls r0, r2 + adds r1, r0 + add r1, r8 + ldrh r0, [r1] + strh r0, [r7] + lsls r0, 16 + cmp r0, 0 + beq _08108844 + ldrh r0, [r7] + ldrb r1, [r6] + ldr r2, _08108880 + ldrb r2, [r2] + bl move_effectiveness_something + ldr r0, [r4] + cmp r0, 0x78 + bne _0810880A + movs r0, 0x50 + str r0, [r4] +_0810880A: + ldr r0, [r4] + cmp r0, 0xF0 + bne _08108814 + movs r0, 0xA0 + str r0, [r4] +_08108814: + ldr r0, [r4] + cmp r0, 0x1E + bne _0810881E + movs r0, 0x14 + str r0, [r4] +_0810881E: + ldr r0, [r4] + cmp r0, 0xF + bne _08108828 + movs r0, 0xA + str r0, [r4] +_08108828: + ldr r0, _08108868 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08108838 + movs r0, 0 + str r0, [r4] +_08108838: + ldr r2, _08108884 + ldr r0, [r2, 0x8] + ldr r1, [r4] + cmp r0, r1 + bcs _08108844 + str r1, [r2, 0x8] +_08108844: + adds r5, 0x1 + cmp r5, 0x3 + ble _081087DA + ldr r1, _08108888 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810885C: .4byte gUnknown_02024DEC +_08108860: .4byte 0x02000000 +_08108864: .4byte 0x0001601c +_08108868: .4byte gUnknown_02024C68 +_0810886C: .4byte gCritMultiplier +_08108870: .4byte gUnknown_02024BEC +_08108874: .4byte gUnknown_02024BE6 +_08108878: .4byte gUnknown_02024A8C +_0810887C: .4byte gUnknown_02024C07 +_08108880: .4byte gUnknown_02024C08 +_08108884: .4byte 0x02016800 +_08108888: .4byte gUnknown_02039238 + thumb_func_end tai30_unk + + thumb_func_start dp15_simulate_damage_bonus_jump_if_eq +dp15_simulate_damage_bonus_jump_if_eq: @ 810888C + push {r4,r5,lr} + ldr r0, _08108928 + movs r1, 0 + strh r1, [r0] + ldr r2, _0810892C + ldr r3, _08108930 + adds r0, r2, r3 + strb r1, [r0] + adds r3, 0x3 + adds r0, r2, r3 + movs r3, 0x1 + strb r3, [r0] + ldr r5, _08108934 + strb r1, [r5] + ldr r0, _08108938 + strb r3, [r0] + ldr r4, _0810893C + movs r0, 0x28 + str r0, [r4] + ldr r1, _08108940 + movs r0, 0xB4 + lsls r0, 9 + adds r2, r0 + ldrh r0, [r2, 0x2] + strh r0, [r1] + ldrh r0, [r1] + ldr r1, _08108944 + ldrb r1, [r1] + ldr r2, _08108948 + ldrb r2, [r2] + bl move_effectiveness_something + ldr r0, [r4] + cmp r0, 0x78 + bne _081088D6 + movs r0, 0x50 + str r0, [r4] +_081088D6: + ldr r0, [r4] + cmp r0, 0xF0 + bne _081088E0 + movs r0, 0xA0 + str r0, [r4] +_081088E0: + ldr r0, [r4] + cmp r0, 0x1E + bne _081088EA + movs r0, 0x14 + str r0, [r4] +_081088EA: + ldr r0, [r4] + cmp r0, 0xF + bne _081088F4 + movs r0, 0xA + str r0, [r4] +_081088F4: + ldrb r1, [r5] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08108902 + movs r0, 0 + str r0, [r4] +_08108902: + ldrb r0, [r4] + ldr r3, _0810894C + ldr r2, [r3] + ldrb r1, [r2, 0x1] + cmp r0, r1 + bne _08108950 + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08108954 + .align 2, 0 +_08108928: .4byte gUnknown_02024DEC +_0810892C: .4byte 0x02000000 +_08108930: .4byte 0x0001601c +_08108934: .4byte gUnknown_02024C68 +_08108938: .4byte gCritMultiplier +_0810893C: .4byte gUnknown_02024BEC +_08108940: .4byte gUnknown_02024BE6 +_08108944: .4byte gUnknown_02024C07 +_08108948: .4byte gUnknown_02024C08 +_0810894C: .4byte gUnknown_02039238 +_08108950: + adds r0, r2, 0x6 + str r0, [r3] +_08108954: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end dp15_simulate_damage_bonus_jump_if_eq + + thumb_func_start nullsub_71 +nullsub_71: @ 810895C + bx lr + thumb_func_end nullsub_71 + + thumb_func_start nullsub_90 +nullsub_90: @ 8108960 + bx lr + thumb_func_end nullsub_90 + + thumb_func_start sub_8108964 +sub_8108964: @ 8108964 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _0810897C + ldr r1, [r0] + ldrb r1, [r1, 0x1] + cmp r1, 0x1 + bne _081089A4 + ldr r1, _08108980 + b _081089A6 + .align 2, 0 +_0810897C: .4byte gUnknown_02039238 +_08108980: .4byte gEnemyParty +_08108984: + ldr r3, _081089A0 + ldr r2, [r3] + ldrb r1, [r2, 0x6] + ldrb r0, [r2, 0x7] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x9] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08108A12 + .align 2, 0 +_081089A0: .4byte gUnknown_02039238 +_081089A4: + ldr r1, _08108A20 +_081089A6: + mov r9, r1 + ldr r1, [r0] + ldrb r7, [r1, 0x2] + ldrb r0, [r1, 0x3] + lsls r0, 8 + orrs r7, r0 + ldrb r0, [r1, 0x4] + lsls r0, 16 + orrs r7, r0 + ldrb r0, [r1, 0x5] + lsls r0, 24 + orrs r7, r0 + movs r0, 0 + mov r8, r0 + movs r1, 0xCE + lsls r1, 1 + mov r10, r1 +_081089C8: + movs r0, 0x64 + mov r4, r8 + muls r4, r0 + add r4, r9 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + cmp r5, 0 + beq _08108A00 + cmp r5, r10 + beq _08108A00 + cmp r6, 0 + beq _08108A00 + cmp r0, r7 + beq _08108984 +_08108A00: + movs r0, 0x1 + add r8, r0 + mov r1, r8 + cmp r1, 0x5 + ble _081089C8 + ldr r1, _08108A24 + ldr r0, [r1] + adds r0, 0xA + str r0, [r1] +_08108A12: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08108A20: .4byte gPlayerParty +_08108A24: .4byte gUnknown_02039238 + thumb_func_end sub_8108964 + + thumb_func_start sub_8108A28 +sub_8108A28: @ 8108A28 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _08108A44 + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r2, r0, 0 + cmp r1, 0x1 + bne _08108A4C + ldr r0, _08108A48 + mov r10, r0 + b _08108A50 + .align 2, 0 +_08108A44: .4byte gUnknown_02039238 +_08108A48: .4byte gEnemyParty +_08108A4C: + ldr r1, _08108AE4 + mov r10, r1 +_08108A50: + ldr r1, [r2] + ldrb r7, [r1, 0x2] + ldrb r0, [r1, 0x3] + lsls r0, 8 + orrs r7, r0 + ldrb r0, [r1, 0x4] + lsls r0, 16 + orrs r7, r0 + ldrb r0, [r1, 0x5] + lsls r0, 24 + orrs r7, r0 + movs r0, 0 + mov r8, r0 + mov r9, r2 +_08108A6C: + movs r0, 0x64 + mov r4, r8 + muls r4, r0 + add r4, r10 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + cmp r5, 0 + beq _08108AB0 + movs r1, 0xCE + lsls r1, 1 + cmp r5, r1 + beq _08108AB0 + cmp r6, 0 + beq _08108AB0 + cmp r0, r7 + bne _08108AB0 + mov r1, r9 + ldr r0, [r1] + adds r0, 0xA + str r0, [r1] +_08108AB0: + movs r0, 0x1 + add r8, r0 + mov r1, r8 + cmp r1, 0x5 + ble _08108A6C + ldr r3, _08108AE8 + ldr r2, [r3] + ldrb r1, [r2, 0x6] + ldrb r0, [r2, 0x7] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x9] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08108AE4: .4byte gPlayerParty +_08108AE8: .4byte gUnknown_02039238 + thumb_func_end sub_8108A28 + + thumb_func_start sub_8108AEC +sub_8108AEC: @ 8108AEC + push {lr} + ldr r2, _08108B3C + ldrh r1, [r2] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + beq _08108B00 + ldr r1, _08108B40 + movs r0, 0x1 + str r0, [r1, 0x8] +_08108B00: + ldrh r2, [r2] + movs r0, 0x18 + ands r0, r2 + adds r3, r2, 0 + cmp r0, 0 + beq _08108B12 + ldr r1, _08108B40 + movs r0, 0x2 + str r0, [r1, 0x8] +_08108B12: + movs r0, 0x60 + ands r0, r3 + cmp r0, 0 + beq _08108B20 + ldr r1, _08108B40 + movs r0, 0 + str r0, [r1, 0x8] +_08108B20: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _08108B2E + ldr r1, _08108B40 + movs r0, 0x3 + str r0, [r1, 0x8] +_08108B2E: + ldr r1, _08108B44 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08108B3C: .4byte word_2024DB8 +_08108B40: .4byte 0x02016800 +_08108B44: .4byte gUnknown_02039238 + thumb_func_end sub_8108AEC + + thumb_func_start sub_8108B48 +sub_8108B48: @ 8108B48 + push {lr} + ldr r2, _08108B7C + ldr r0, _08108B80 + ldrh r1, [r0, 0x2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r3, _08108B84 + ldr r2, [r3] + ldrb r0, [r0] + ldrb r1, [r2, 0x1] + cmp r0, r1 + bne _08108B88 + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08108B8C + .align 2, 0 +_08108B7C: .4byte gBattleMoves +_08108B80: .4byte 0x02016800 +_08108B84: .4byte gUnknown_02039238 +_08108B88: + adds r0, r2, 0x6 + str r0, [r3] +_08108B8C: + pop {r0} + bx r0 + thumb_func_end sub_8108B48 + + thumb_func_start sub_8108B90 +sub_8108B90: @ 8108B90 + push {lr} + ldr r2, _08108BC4 + ldr r0, _08108BC8 + ldrh r1, [r0, 0x2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r3, _08108BCC + ldr r2, [r3] + ldrb r0, [r0] + ldrb r1, [r2, 0x1] + cmp r0, r1 + beq _08108BD0 + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08108BD4 + .align 2, 0 +_08108BC4: .4byte gBattleMoves +_08108BC8: .4byte 0x02016800 +_08108BCC: .4byte gUnknown_02039238 +_08108BD0: + adds r0, r2, 0x6 + str r0, [r3] +_08108BD4: + pop {r0} + bx r0 + thumb_func_end sub_8108B90 + + thumb_func_start sub_8108BD8 +sub_8108BD8: @ 8108BD8 + push {r4,lr} + ldr r0, _08108BEC + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r4, r0, 0 + cmp r1, 0x1 + bne _08108BF4 + ldr r0, _08108BF0 + b _08108BF6 + .align 2, 0 +_08108BEC: .4byte gUnknown_02039238 +_08108BF0: .4byte gUnknown_02024C07 +_08108BF4: + ldr r0, _08108C2C +_08108BF6: + ldrb r3, [r0] + ldr r1, _08108C30 + ldr r2, [r4] + movs r0, 0x58 + muls r0, r3 + ldrb r3, [r2, 0x2] + adds r0, r3 + adds r1, 0x18 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrb r1, [r2, 0x3] + cmp r0, r1 + bge _08108C34 + ldrb r1, [r2, 0x4] + ldrb r0, [r2, 0x5] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08108C3A + .align 2, 0 +_08108C2C: .4byte gUnknown_02024C08 +_08108C30: .4byte gBattleMons +_08108C34: + adds r0, r2, 0 + adds r0, 0x8 + str r0, [r4] +_08108C3A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8108BD8 + + thumb_func_start sub_8108C40 +sub_8108C40: @ 8108C40 + push {r4,lr} + ldr r0, _08108C54 + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r4, r0, 0 + cmp r1, 0x1 + bne _08108C5C + ldr r0, _08108C58 + b _08108C5E + .align 2, 0 +_08108C54: .4byte gUnknown_02039238 +_08108C58: .4byte gUnknown_02024C07 +_08108C5C: + ldr r0, _08108C94 +_08108C5E: + ldrb r3, [r0] + ldr r1, _08108C98 + ldr r2, [r4] + movs r0, 0x58 + muls r0, r3 + ldrb r3, [r2, 0x2] + adds r0, r3 + adds r1, 0x18 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrb r1, [r2, 0x3] + cmp r0, r1 + ble _08108C9C + ldrb r1, [r2, 0x4] + ldrb r0, [r2, 0x5] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08108CA2 + .align 2, 0 +_08108C94: .4byte gUnknown_02024C08 +_08108C98: .4byte gBattleMons +_08108C9C: + adds r0, r2, 0 + adds r0, 0x8 + str r0, [r4] +_08108CA2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8108C40 + + thumb_func_start sub_8108CA8 +sub_8108CA8: @ 8108CA8 + push {r4,lr} + ldr r0, _08108CBC + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r4, r0, 0 + cmp r1, 0x1 + bne _08108CC4 + ldr r0, _08108CC0 + b _08108CC6 + .align 2, 0 +_08108CBC: .4byte gUnknown_02039238 +_08108CC0: .4byte gUnknown_02024C07 +_08108CC4: + ldr r0, _08108CFC +_08108CC6: + ldrb r3, [r0] + ldr r1, _08108D00 + ldr r2, [r4] + movs r0, 0x58 + muls r0, r3 + ldrb r3, [r2, 0x2] + adds r0, r3 + adds r1, 0x18 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrb r1, [r2, 0x3] + cmp r0, r1 + bne _08108D04 + ldrb r1, [r2, 0x4] + ldrb r0, [r2, 0x5] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08108D0A + .align 2, 0 +_08108CFC: .4byte gUnknown_02024C08 +_08108D00: .4byte gBattleMons +_08108D04: + adds r0, r2, 0 + adds r0, 0x8 + str r0, [r4] +_08108D0A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8108CA8 + + thumb_func_start sub_8108D10 +sub_8108D10: @ 8108D10 + push {r4,lr} + ldr r0, _08108D24 + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r4, r0, 0 + cmp r1, 0x1 + bne _08108D2C + ldr r0, _08108D28 + b _08108D2E + .align 2, 0 +_08108D24: .4byte gUnknown_02039238 +_08108D28: .4byte gUnknown_02024C07 +_08108D2C: + ldr r0, _08108D64 +_08108D2E: + ldrb r3, [r0] + ldr r1, _08108D68 + ldr r2, [r4] + movs r0, 0x58 + muls r0, r3 + ldrb r3, [r2, 0x2] + adds r0, r3 + adds r1, 0x18 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrb r1, [r2, 0x3] + cmp r0, r1 + beq _08108D6C + ldrb r1, [r2, 0x4] + ldrb r0, [r2, 0x5] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08108D72 + .align 2, 0 +_08108D64: .4byte gUnknown_02024C08 +_08108D68: .4byte gBattleMons +_08108D6C: + adds r0, r2, 0 + adds r0, 0x8 + str r0, [r4] +_08108D72: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8108D10 + + thumb_func_start tai3D_unk +tai3D_unk: @ 8108D78 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r2, _08108E1C + ldr r6, _08108E20 + ldrh r1, [r6, 0x2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + bls _08108E4C + ldr r0, _08108E24 + movs r1, 0 + strh r1, [r0] + ldr r2, _08108E28 + adds r0, r6, r2 + strb r1, [r0] + adds r2, 0x3 + adds r0, r6, r2 + movs r2, 0x1 + mov r8, r2 + mov r2, r8 + strb r2, [r0] + ldr r0, _08108E2C + strb r1, [r0] + ldr r0, _08108E30 + strb r2, [r0] + ldr r5, _08108E34 + ldrh r0, [r6, 0x2] + strh r0, [r5] + ldr r4, _08108E38 + ldrb r0, [r4] + ldr r7, _08108E3C + ldrb r1, [r7] + bl sub_801CAF8 + ldrh r0, [r5] + ldrb r1, [r4] + ldrb r2, [r7] + bl move_effectiveness_something + ldr r4, _08108E40 + adds r0, r6, 0 + adds r0, 0x18 + ldrb r6, [r6, 0x1] + adds r0, r6 + ldrb r1, [r0] + ldr r0, [r4] + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _08108DEE + mov r0, r8 + str r0, [r4] +_08108DEE: + ldr r2, _08108E44 + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r1, [r0, 0x28] + ldr r0, [r4] + cmp r1, r0 + bgt _08108E4C + ldr r3, _08108E48 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08108E54 + .align 2, 0 +_08108E1C: .4byte gBattleMoves +_08108E20: .4byte 0x02016800 +_08108E24: .4byte gUnknown_02024DEC +_08108E28: .4byte 0xfffff81c +_08108E2C: .4byte gUnknown_02024C68 +_08108E30: .4byte gCritMultiplier +_08108E34: .4byte gUnknown_02024BE6 +_08108E38: .4byte gUnknown_02024C07 +_08108E3C: .4byte gUnknown_02024C08 +_08108E40: .4byte gUnknown_02024BEC +_08108E44: .4byte gBattleMons +_08108E48: .4byte gUnknown_02039238 +_08108E4C: + ldr r1, _08108E60 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08108E54: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08108E60: .4byte gUnknown_02039238 + thumb_func_end tai3D_unk + + thumb_func_start dp15_determine_move_damage_jump_if_not_fatal +dp15_determine_move_damage_jump_if_not_fatal: @ 8108E64 + push {r4-r7,lr} + ldr r2, _08108EF8 + ldr r7, _08108EFC + ldrh r1, [r7, 0x2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + bls _08108F28 + ldr r0, _08108F00 + movs r1, 0 + strh r1, [r0] + ldr r2, _08108F04 + adds r0, r7, r2 + strb r1, [r0] + adds r2, 0x3 + adds r0, r7, r2 + movs r2, 0x1 + strb r2, [r0] + ldr r0, _08108F08 + strb r1, [r0] + ldr r0, _08108F0C + strb r2, [r0] + ldr r6, _08108F10 + ldrh r0, [r7, 0x2] + strh r0, [r6] + ldr r4, _08108F14 + ldrb r0, [r4] + ldr r5, _08108F18 + ldrb r1, [r5] + bl sub_801CAF8 + ldrh r0, [r6] + ldrb r1, [r4] + ldrb r2, [r5] + bl move_effectiveness_something + ldr r4, _08108F1C + adds r0, r7, 0 + adds r0, 0x18 + ldrb r7, [r7, 0x1] + adds r0, r7 + ldrb r1, [r0] + ldr r0, [r4] + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + ldr r3, _08108F20 + ldrb r2, [r5] + movs r1, 0x58 + muls r1, r2 + adds r1, r3 + ldrh r1, [r1, 0x28] + cmp r1, r0 + ble _08108F28 + ldr r3, _08108F24 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08108F30 + .align 2, 0 +_08108EF8: .4byte gBattleMoves +_08108EFC: .4byte 0x02016800 +_08108F00: .4byte gUnknown_02024DEC +_08108F04: .4byte 0xfffff81c +_08108F08: .4byte gUnknown_02024C68 +_08108F0C: .4byte gCritMultiplier +_08108F10: .4byte gUnknown_02024BE6 +_08108F14: .4byte gUnknown_02024C07 +_08108F18: .4byte gUnknown_02024C08 +_08108F1C: .4byte gUnknown_02024BEC +_08108F20: .4byte gBattleMons +_08108F24: .4byte gUnknown_02039238 +_08108F28: + ldr r1, _08108F38 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08108F30: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08108F38: .4byte gUnknown_02039238 + thumb_func_end dp15_determine_move_damage_jump_if_not_fatal + + thumb_func_start tai40_unk +tai40_unk: @ 8108F3C + push {r4-r7,lr} + ldr r1, _08108F58 + ldr r0, [r1] + adds r6, r0, 0x2 + ldrb r0, [r0, 0x1] + adds r4, r1, 0 + cmp r0, 0x1 + beq _08108F64 + cmp r0, 0x1 + bgt _08108F5C + cmp r0, 0 + beq _08108FA8 + b _08109008 + .align 2, 0 +_08108F58: .4byte gUnknown_02039238 +_08108F5C: + cmp r0, 0x2 + beq _08108FA8 + cmp r0, 0x3 + bne _08109008 +_08108F64: + movs r3, 0 + ldr r2, _08108FA0 + ldr r5, _08108FA4 + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + adds r2, 0xC + adds r0, r2 + ldrh r0, [r0] + ldrh r1, [r6] + cmp r0, r1 + beq _08108F9A + adds r7, r5, 0 + movs r6, 0x58 + adds r5, r2, 0 + adds r2, r1, 0 +_08108F84: + adds r3, 0x1 + cmp r3, 0x3 + bgt _08108F9A + lsls r1, r3, 1 + ldrb r0, [r7] + muls r0, r6 + adds r1, r0 + adds r1, r5 + ldrh r0, [r1] + cmp r0, r2 + bne _08108F84 +_08108F9A: + cmp r3, 0x4 + beq _08108FDE + b _08108FF0 + .align 2, 0 +_08108FA0: .4byte gBattleMons +_08108FA4: .4byte gUnknown_02024C07 +_08108FA8: + movs r3, 0 + ldr r5, _08108FE8 + ldr r1, _08108FEC + ldrb r0, [r1] + lsrs r0, 1 + lsls r0, 4 + adds r0, r5 + ldrh r0, [r0] + ldrh r2, [r6] + cmp r0, r2 + beq _08108FDA + adds r6, r5, 0 + adds r5, r1, 0 +_08108FC2: + adds r3, 0x1 + cmp r3, 0x7 + bgt _08108FDA + lsls r0, r3, 1 + ldrb r1, [r5] + lsrs r1, 1 + lsls r1, 4 + adds r0, r1 + adds r0, r6 + ldrh r0, [r0] + cmp r0, r2 + bne _08108FC2 +_08108FDA: + cmp r3, 0x8 + bne _08108FF0 +_08108FDE: + ldr r0, [r4] + adds r0, 0x8 + str r0, [r4] + b _08109008 + .align 2, 0 +_08108FE8: .4byte 0x02016a00 +_08108FEC: .4byte gUnknown_02024C08 +_08108FF0: + ldr r2, [r4] + ldrb r1, [r2, 0x4] + ldrb r0, [r2, 0x5] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] +_08109008: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end tai40_unk + + thumb_func_start sub_8109010 +sub_8109010: @ 8109010 + push {r4-r7,lr} + ldr r1, _0810902C + ldr r0, [r1] + adds r6, r0, 0x2 + ldrb r0, [r0, 0x1] + adds r4, r1, 0 + cmp r0, 0x1 + beq _08109038 + cmp r0, 0x1 + bgt _08109030 + cmp r0, 0 + beq _0810907C + b _081090DC + .align 2, 0 +_0810902C: .4byte gUnknown_02039238 +_08109030: + cmp r0, 0x2 + beq _0810907C + cmp r0, 0x3 + bne _081090DC +_08109038: + movs r3, 0 + ldr r2, _08109074 + ldr r5, _08109078 + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + adds r2, 0xC + adds r0, r2 + ldrh r0, [r0] + ldrh r1, [r6] + cmp r0, r1 + beq _0810906E + adds r7, r5, 0 + movs r6, 0x58 + adds r5, r2, 0 + adds r2, r1, 0 +_08109058: + adds r3, 0x1 + cmp r3, 0x3 + bgt _0810906E + lsls r1, r3, 1 + ldrb r0, [r7] + muls r0, r6 + adds r1, r0 + adds r1, r5 + ldrh r0, [r1] + cmp r0, r2 + bne _08109058 +_0810906E: + cmp r3, 0x4 + bne _081090B2 + b _081090C4 + .align 2, 0 +_08109074: .4byte gBattleMons +_08109078: .4byte gUnknown_02024C07 +_0810907C: + movs r3, 0 + ldr r5, _081090BC + ldr r1, _081090C0 + ldrb r0, [r1] + lsrs r0, 1 + lsls r0, 4 + adds r0, r5 + ldrh r0, [r0] + ldrh r2, [r6] + cmp r0, r2 + beq _081090AE + adds r6, r5, 0 + adds r5, r1, 0 +_08109096: + adds r3, 0x1 + cmp r3, 0x7 + bgt _081090AE + lsls r0, r3, 1 + ldrb r1, [r5] + lsrs r1, 1 + lsls r1, 4 + adds r0, r1 + adds r0, r6 + ldrh r0, [r0] + cmp r0, r2 + bne _08109096 +_081090AE: + cmp r3, 0x8 + beq _081090C4 +_081090B2: + ldr r0, [r4] + adds r0, 0x8 + str r0, [r4] + b _081090DC + .align 2, 0 +_081090BC: .4byte 0x02016a00 +_081090C0: .4byte gUnknown_02024C08 +_081090C4: + ldr r2, [r4] + ldrb r1, [r2, 0x4] + ldrb r0, [r2, 0x5] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] +_081090DC: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8109010 + + thumb_func_start sub_81090E4 +sub_81090E4: @ 81090E4 + push {r4-r7,lr} + ldr r1, _081090FC + ldr r0, [r1] + ldrb r0, [r0, 0x1] + adds r4, r1, 0 + cmp r0, 0x1 + beq _08109108 + cmp r0, 0x1 + bgt _08109100 + cmp r0, 0 + beq _0810915C + b _081091B8 + .align 2, 0 +_081090FC: .4byte gUnknown_02039238 +_08109100: + cmp r0, 0x2 + beq _0810915C + cmp r0, 0x3 + bne _081091B8 +_08109108: + movs r3, 0 + ldr r1, _0810914C + ldr r0, _08109150 + ldrb r2, [r0] + ldr r6, _08109154 + movs r0, 0x58 + muls r0, r2 + adds r1, 0xC + adds r2, r0, r1 + ldr r5, _08109158 +_0810911C: + ldrh r0, [r2] + cmp r0, 0 + beq _08109136 + adds r1, r0, 0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldr r1, [r5] + ldrb r0, [r0] + ldrb r1, [r1, 0x2] + cmp r0, r1 + beq _0810913E +_08109136: + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x3 + ble _0810911C +_0810913E: + cmp r3, 0x4 + bne _081091A0 + ldr r0, [r4] + adds r0, 0x7 + str r0, [r4] + b _081091B8 + .align 2, 0 +_0810914C: .4byte gBattleMons +_08109150: .4byte gUnknown_02024C07 +_08109154: .4byte gBattleMoves +_08109158: .4byte gUnknown_02039238 +_0810915C: + movs r3, 0 + ldr r1, _081091C0 + ldr r0, _081091C4 + ldrb r2, [r0] + ldr r7, _081091C8 + ldr r6, _081091CC + ldr r5, _081091D0 + movs r0, 0x58 + muls r0, r2 + adds r1, 0xC + adds r2, r0, r1 +_08109172: + lsls r1, r3, 1 + ldrh r0, [r2] + cmp r0, 0 + beq _08109198 + ldrb r0, [r5] + lsrs r0, 1 + lsls r0, 4 + adds r0, r1, r0 + adds r0, r6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, [r4] + ldrb r0, [r0] + ldrb r1, [r1, 0x2] + cmp r0, r1 + beq _081091A0 +_08109198: + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x7 + ble _08109172 +_081091A0: + ldr r2, [r4] + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x4] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] +_081091B8: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081091C0: .4byte gBattleMons +_081091C4: .4byte gUnknown_02024C07 +_081091C8: .4byte gBattleMoves +_081091CC: .4byte 0x02016a00 +_081091D0: .4byte gUnknown_02024C08 + thumb_func_end sub_81090E4 + + thumb_func_start sub_81091D4 +sub_81091D4: @ 81091D4 + push {r4-r6,lr} + ldr r1, _081091EC + ldr r0, [r1] + ldrb r0, [r0, 0x1] + adds r4, r1, 0 + cmp r0, 0x1 + beq _081091F8 + cmp r0, 0x1 + bgt _081091F0 + cmp r0, 0 + beq _0810925C + b _08109294 + .align 2, 0 +_081091EC: .4byte gUnknown_02039238 +_081091F0: + cmp r0, 0x2 + beq _0810925C + cmp r0, 0x3 + bne _08109294 +_081091F8: + movs r3, 0 + ldr r1, _0810924C + ldr r0, _08109250 + ldrb r2, [r0] + ldr r6, _08109254 + movs r0, 0x58 + muls r0, r2 + adds r1, 0xC + adds r2, r0, r1 + ldr r5, _08109258 +_0810920C: + ldrh r0, [r2] + cmp r0, 0 + beq _08109226 + adds r1, r0, 0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldr r1, [r5] + ldrb r0, [r0] + ldrb r1, [r1, 0x2] + cmp r0, r1 + beq _0810922E +_08109226: + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x3 + ble _0810920C +_0810922E: + cmp r3, 0x4 + bne _0810928E + ldr r2, [r4] + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x4] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08109294 + .align 2, 0 +_0810924C: .4byte gBattleMons +_08109250: .4byte gUnknown_02024C07 +_08109254: .4byte gBattleMoves +_08109258: .4byte gUnknown_02039238 +_0810925C: + movs r3, 0 + ldr r1, _0810929C + ldr r0, _081092A0 + ldrb r0, [r0] + lsrs r0, 1 + lsls r0, 4 + adds r2, r0, r1 + ldr r5, _081092A4 +_0810926C: + ldrh r0, [r2] + cmp r0, 0 + beq _08109286 + adds r1, r0, 0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, [r4] + ldrb r0, [r0] + ldrb r1, [r1, 0x2] + cmp r0, r1 + beq _0810928E +_08109286: + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x7 + ble _0810926C +_0810928E: + ldr r0, [r4] + adds r0, 0x7 + str r0, [r4] +_08109294: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810929C: .4byte 0x02016a00 +_081092A0: .4byte gUnknown_02024C08 +_081092A4: .4byte gBattleMoves + thumb_func_end sub_81091D4 + + thumb_func_start tai43_unk +tai43_unk: @ 81092A8 + push {r4,r5,lr} + ldr r0, _081092BC + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r5, r0, 0 + cmp r1, 0x1 + bne _081092C4 + ldr r0, _081092C0 + b _081092C6 + .align 2, 0 +_081092BC: .4byte gUnknown_02039238 +_081092C0: .4byte gUnknown_02024C07 +_081092C4: + ldr r0, _081092E4 +_081092C6: + ldrb r3, [r0] + adds r4, r5, 0 + ldr r2, [r4] + ldrb r0, [r2, 0x2] + cmp r0, 0 + bne _081092EC + ldr r0, _081092E8 + lsls r1, r3, 3 + subs r1, r3 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x4] + cmp r0, 0 + beq _081092F0 + b _08109306 + .align 2, 0 +_081092E4: .4byte gUnknown_02024C08 +_081092E8: .4byte gUnknown_02024CA8 +_081092EC: + cmp r0, 0x1 + beq _081092F6 +_081092F0: + adds r0, r2, 0x7 + str r0, [r4] + b _08109328 +_081092F6: + ldr r0, _08109320 + lsls r1, r3, 3 + subs r1, r3 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x6] + cmp r0, 0 + beq _08109324 +_08109306: + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x4] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _08109328 + .align 2, 0 +_08109320: .4byte gUnknown_02024CA8 +_08109324: + adds r0, r2, 0x7 + str r0, [r5] +_08109328: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end tai43_unk + + thumb_func_start sub_8109330 +sub_8109330: @ 8109330 + push {r4,lr} + ldr r4, _08109344 + ldr r3, [r4] + ldrb r0, [r3, 0x1] + cmp r0, 0 + beq _08109348 + cmp r0, 0x1 + beq _08109370 + b _081093AC + .align 2, 0 +_08109344: .4byte gUnknown_02039238 +_08109348: + ldr r2, _08109364 + ldr r0, _08109368 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _0810936C + ldrh r0, [r0, 0x4] + ldrh r1, [r1, 0x2] + cmp r0, r1 + beq _08109388 + b _081093AC + .align 2, 0 +_08109364: .4byte gUnknown_02024CA8 +_08109368: .4byte gUnknown_02024A60 +_0810936C: .4byte 0x02016800 +_08109370: + ldr r2, _081093A0 + ldr r0, _081093A4 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _081093A8 + ldrh r0, [r0, 0x6] + ldrh r1, [r1, 0x2] + cmp r0, r1 + bne _081093AC +_08109388: + ldrb r1, [r3, 0x2] + ldrb r0, [r3, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r3, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r3, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _081093B0 + .align 2, 0 +_081093A0: .4byte gUnknown_02024CA8 +_081093A4: .4byte gUnknown_02024A60 +_081093A8: .4byte 0x02016800 +_081093AC: + adds r0, r3, 0x6 + str r0, [r4] +_081093B0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8109330 + + thumb_func_start sub_81093B8 +sub_81093B8: @ 81093B8 + ldr r2, _081093C4 + ldrb r1, [r2, 0x10] + movs r0, 0xB + orrs r0, r1 + strb r0, [r2, 0x10] + bx lr + .align 2, 0 +_081093C4: .4byte 0x02016800 + thumb_func_end sub_81093B8 + + thumb_func_start sub_81093C8 +sub_81093C8: @ 81093C8 + push {r4,lr} + ldr r0, _0810940C + ldr r1, _08109410 + adds r0, r1 + ldrb r0, [r0] + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, r4 + bcs _08109418 + ldr r3, _08109414 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _08109420 + .align 2, 0 +_0810940C: .4byte 0x02000000 +_08109410: .4byte 0x00016088 +_08109414: .4byte gUnknown_02039238 +_08109418: + ldr r1, _08109428 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08109420: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08109428: .4byte gUnknown_02039238 + thumb_func_end sub_81093C8 + + thumb_func_start sub_810942C +sub_810942C: @ 810942C + ldr r2, _08109438 + ldrb r1, [r2, 0x10] + movs r0, 0xD + orrs r0, r1 + strb r0, [r2, 0x10] + bx lr + .align 2, 0 +_08109438: .4byte 0x02016800 + thumb_func_end sub_810942C + + thumb_func_start dp15_get_held_item_x12__8 +dp15_get_held_item_x12__8: @ 810943C + push {r4,lr} + ldr r0, _0810944C + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + bne _08109454 + ldr r0, _08109450 + b _08109456 + .align 2, 0 +_0810944C: .4byte gUnknown_02039238 +_08109450: .4byte gUnknown_02024C07 +_08109454: + ldr r0, _0810947C +_08109456: + ldrb r4, [r0] + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08109488 + adds r0, r4, 0 + bl battle_get_per_side_status + movs r1, 0x1 + ands r1, r0 + ldr r2, _08109480 + ldr r3, _08109484 + adds r0, r2, r3 + adds r1, r0 + ldrb r0, [r1] + str r0, [r2, 0x8] + b _0810949E + .align 2, 0 +_0810947C: .4byte gUnknown_02024C08 +_08109480: .4byte 0x02016800 +_08109484: .4byte 0x00000222 +_08109488: + ldr r1, _081094AC + movs r0, 0x58 + muls r0, r4 + adds r0, r1 + ldrh r0, [r0, 0x2E] + bl itemid_get_x12 + ldr r1, _081094B0 + lsls r0, 24 + lsrs r0, 24 + str r0, [r1, 0x8] +_0810949E: + ldr r1, _081094B4 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081094AC: .4byte gBattleMons +_081094B0: .4byte 0x02016800 +_081094B4: .4byte gUnknown_02039238 + thumb_func_end dp15_get_held_item_x12__8 + + thumb_func_start tai49_unk +tai49_unk: @ 81094B8 + push {lr} + ldr r0, _081094C8 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + bne _081094D0 + ldr r0, _081094CC + b _081094D2 + .align 2, 0 +_081094C8: .4byte gUnknown_02039238 +_081094CC: .4byte gUnknown_02024C07 +_081094D0: + ldr r0, _081094FC +_081094D2: + ldrb r1, [r0] + ldr r2, _08109500 + movs r0, 0x58 + muls r1, r0 + adds r0, r1, r2 + ldrh r0, [r0] + adds r2, 0x48 + adds r1, r2 + ldr r1, [r1] + bl GetGenderFromSpeciesAndPersonality + ldr r1, _08109504 + lsls r0, 24 + lsrs r0, 24 + str r0, [r1, 0x8] + ldr r1, _08109508 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_081094FC: .4byte gUnknown_02024C08 +_08109500: .4byte gBattleMons +_08109504: .4byte 0x02016800 +_08109508: .4byte gUnknown_02039238 + thumb_func_end tai49_unk + + thumb_func_start sub_810950C +sub_810950C: @ 810950C + push {r4,lr} + ldr r0, _08109520 + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r4, r0, 0 + cmp r1, 0x1 + bne _08109528 + ldr r0, _08109524 + b _0810952A + .align 2, 0 +_08109520: .4byte gUnknown_02039238 +_08109524: .4byte gUnknown_02024C07 +_08109528: + ldr r0, _08109548 +_0810952A: + ldrb r3, [r0] + ldr r2, _0810954C + ldr r1, _08109550 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x16] + str r0, [r2, 0x8] + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08109548: .4byte gUnknown_02024C08 +_0810954C: .4byte 0x02016800 +_08109550: .4byte gUnknown_02024CA8 + thumb_func_end sub_810950C + + thumb_func_start sub_8109554 +sub_8109554: @ 8109554 + push {r4,lr} + ldr r0, _08109568 + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r4, r0, 0 + cmp r1, 0x1 + bne _08109570 + ldr r0, _0810956C + b _08109572 + .align 2, 0 +_08109568: .4byte gUnknown_02039238 +_0810956C: .4byte gUnknown_02024C07 +_08109570: + ldr r0, _08109590 +_08109572: + ldrb r3, [r0] + ldr r2, _08109594 + ldr r1, _08109598 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x9] + str r0, [r2, 0x8] + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08109590: .4byte gUnknown_02024C08 +_08109594: .4byte 0x02016800 +_08109598: .4byte gUnknown_02024CA8 + thumb_func_end sub_8109554 + + thumb_func_start sub_810959C +sub_810959C: @ 810959C + ldr r2, _081095B4 + ldr r0, _081095B8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + str r0, [r2, 0x8] + ldr r1, _081095BC + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_081095B4: .4byte 0x02016800 +_081095B8: .4byte gUnknown_020239F8 +_081095BC: .4byte gUnknown_02039238 + thumb_func_end sub_810959C + + thumb_func_start sub_81095C0 +sub_81095C0: @ 81095C0 + push {lr} + ldr r0, _081095D4 + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r2, r0, 0 + cmp r1, 0x1 + bne _081095DC + ldr r0, _081095D8 + b _081095DE + .align 2, 0 +_081095D4: .4byte gUnknown_02039238 +_081095D8: .4byte gUnknown_02024C07 +_081095DC: + ldr r0, _081095F8 +_081095DE: + ldrb r0, [r0] + ldr r1, _081095FC + lsls r0, 1 + adds r0, r1 + ldr r3, _08109600 + adds r0, r3 + ldrb r0, [r0] + str r0, [r1, 0x8] + ldr r0, [r2] + adds r0, 0x2 + str r0, [r2] + pop {r0} + bx r0 + .align 2, 0 +_081095F8: .4byte gUnknown_02024C08 +_081095FC: .4byte 0x02016800 +_08109600: .4byte 0xfffff8cc + thumb_func_end sub_81095C0 + + thumb_func_start sub_8109604 +sub_8109604: @ 8109604 + ldr r3, _08109620 + ldr r2, _08109624 + ldr r1, [r3, 0x8] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + str r0, [r3, 0x8] + ldr r1, _08109628 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_08109620: .4byte 0x02016800 +_08109624: .4byte gBattleMoves +_08109628: .4byte gUnknown_02039238 + thumb_func_end sub_8109604 + + thumb_func_start sub_810962C +sub_810962C: @ 810962C + ldr r3, _08109648 + ldr r2, _0810964C + ldr r1, [r3, 0x8] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + str r0, [r3, 0x8] + ldr r1, _08109650 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_08109648: .4byte 0x02016800 +_0810964C: .4byte gBattleMoves +_08109650: .4byte gUnknown_02039238 + thumb_func_end sub_810962C + + thumb_func_start sub_8109654 +sub_8109654: @ 8109654 + ldr r3, _08109670 + ldr r2, _08109674 + ldr r1, [r3, 0x8] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + str r0, [r3, 0x8] + ldr r1, _08109678 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_08109670: .4byte 0x02016800 +_08109674: .4byte gBattleMoves +_08109678: .4byte gUnknown_02039238 + thumb_func_end sub_8109654 + + thumb_func_start sub_810967C +sub_810967C: @ 810967C + push {r4,lr} + ldr r0, _08109690 + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r4, r0, 0 + cmp r1, 0x1 + bne _08109698 + ldr r0, _08109694 + b _0810969A + .align 2, 0 +_08109690: .4byte gUnknown_02039238 +_08109694: .4byte gUnknown_02024C07 +_08109698: + ldr r0, _081096B8 +_0810969A: + ldrb r3, [r0] + ldr r2, _081096BC + ldr r1, _081096C0 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x8] + str r0, [r2, 0x8] + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081096B8: .4byte gUnknown_02024C08 +_081096BC: .4byte 0x02016800 +_081096C0: .4byte gUnknown_02024CA8 + thumb_func_end sub_810967C + + thumb_func_start nullsub_27 +nullsub_27: @ 81096C4 + bx lr + thumb_func_end nullsub_27 + + thumb_func_start nullsub_28 +nullsub_28: @ 81096C8 + bx lr + thumb_func_end nullsub_28 + + thumb_func_start nullsub_29 +nullsub_29: @ 81096CC + bx lr + thumb_func_end nullsub_29 + + thumb_func_start nullsub_30 +nullsub_30: @ 81096D0 + bx lr + thumb_func_end nullsub_30 + + thumb_func_start nullsub_31 +nullsub_31: @ 81096D4 + bx lr + thumb_func_end nullsub_31 + + thumb_func_start nullsub_32 +nullsub_32: @ 81096D8 + bx lr + thumb_func_end nullsub_32 + + thumb_func_start sub_81096DC +sub_81096DC: @ 81096DC + push {r4,lr} + ldr r4, _08109708 + ldr r0, [r4] + adds r0, 0x5 + bl sub_81098C4 + ldr r2, [r4] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08109708: .4byte gUnknown_02039238 + thumb_func_end sub_81096DC + + thumb_func_start sub_810970C +sub_810970C: @ 810970C + ldr r3, _08109728 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + bx lr + .align 2, 0 +_08109728: .4byte gUnknown_02039238 + thumb_func_end sub_810970C + + thumb_func_start sub_810972C +sub_810972C: @ 810972C + push {lr} + bl sub_8109908 + lsls r0, 24 + cmp r0, 0 + bne _08109742 + ldr r2, _08109748 + ldrb r1, [r2, 0x10] + movs r0, 0x1 + orrs r0, r1 + strb r0, [r2, 0x10] +_08109742: + pop {r0} + bx r0 + .align 2, 0 +_08109748: .4byte 0x02016800 + thumb_func_end sub_810972C + + thumb_func_start dp15_compare_attacker_defender_levels +dp15_compare_attacker_defender_levels: @ 810974C + push {r4,r5,lr} + ldr r5, _08109764 + ldr r4, [r5] + ldrb r0, [r4, 0x1] + cmp r0, 0x1 + beq _081097A0 + cmp r0, 0x1 + bgt _08109768 + cmp r0, 0 + beq _0810976E + b _0810981C + .align 2, 0 +_08109764: .4byte gUnknown_02039238 +_08109768: + cmp r0, 0x2 + beq _081097D0 + b _0810981C +_0810976E: + ldr r3, _08109794 + ldr r0, _08109798 + ldrb r0, [r0] + movs r2, 0x58 + adds r1, r0, 0 + muls r1, r2 + adds r1, r3 + adds r1, 0x2A + ldr r0, _0810979C + ldrb r0, [r0] + muls r0, r2 + adds r0, r3 + adds r0, 0x2A + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bhi _081097F2 + b _08109818 + .align 2, 0 +_08109794: .4byte gBattleMons +_08109798: .4byte gUnknown_02024C07 +_0810979C: .4byte gUnknown_02024C08 +_081097A0: + ldr r3, _081097C4 + ldr r0, _081097C8 + ldrb r0, [r0] + movs r2, 0x58 + adds r1, r0, 0 + muls r1, r2 + adds r1, r3 + adds r1, 0x2A + ldr r0, _081097CC + ldrb r0, [r0] + muls r0, r2 + adds r0, r3 + adds r0, 0x2A + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bcc _081097F2 + b _08109818 + .align 2, 0 +_081097C4: .4byte gBattleMons +_081097C8: .4byte gUnknown_02024C07 +_081097CC: .4byte gUnknown_02024C08 +_081097D0: + ldr r3, _0810980C + ldr r0, _08109810 + ldrb r0, [r0] + movs r2, 0x58 + adds r1, r0, 0 + muls r1, r2 + adds r1, r3 + adds r1, 0x2A + ldr r0, _08109814 + ldrb r0, [r0] + muls r0, r2 + adds r0, r3 + adds r0, 0x2A + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bne _08109818 +_081097F2: + ldrb r1, [r4, 0x2] + ldrb r0, [r4, 0x3] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r4, 0x4] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r4, 0x5] + lsls r0, 24 + orrs r1, r0 + str r1, [r5] + b _0810981C + .align 2, 0 +_0810980C: .4byte gBattleMons +_08109810: .4byte gUnknown_02024C07 +_08109814: .4byte gUnknown_02024C08 +_08109818: + adds r0, r4, 0x6 + str r0, [r5] +_0810981C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end dp15_compare_attacker_defender_levels + + thumb_func_start sub_8109824 +sub_8109824: @ 8109824 + push {lr} + ldr r2, _08109858 + ldr r0, _0810985C + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x13] + lsls r0, 28 + cmp r0, 0 + beq _08109864 + ldr r3, _08109860 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _0810986C + .align 2, 0 +_08109858: .4byte gUnknown_02024CA8 +_0810985C: .4byte gUnknown_02024C08 +_08109860: .4byte gUnknown_02039238 +_08109864: + ldr r1, _08109870 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0810986C: + pop {r0} + bx r0 + .align 2, 0 +_08109870: .4byte gUnknown_02039238 + thumb_func_end sub_8109824 + + thumb_func_start sub_8109874 +sub_8109874: @ 8109874 + push {lr} + ldr r2, _081098A8 + ldr r0, _081098AC + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x13] + lsls r0, 28 + cmp r0, 0 + bne _081098B4 + ldr r3, _081098B0 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _081098BC + .align 2, 0 +_081098A8: .4byte gUnknown_02024CA8 +_081098AC: .4byte gUnknown_02024C08 +_081098B0: .4byte gUnknown_02039238 +_081098B4: + ldr r1, _081098C0 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_081098BC: + pop {r0} + bx r0 + .align 2, 0 +_081098C0: .4byte gUnknown_02039238 + thumb_func_end sub_8109874 + + thumb_func_start sub_81098C4 +sub_81098C4: @ 81098C4 + push {r4,lr} + ldr r4, _081098E0 + adds r3, r4, 0 + adds r3, 0x20 + ldrb r1, [r3] + adds r2, r1, 0x1 + strb r2, [r3] + lsls r1, 24 + lsrs r1, 22 + adds r1, r4 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081098E0: .4byte 0x02016c00 + thumb_func_end sub_81098C4 + + thumb_func_start unref_sub_81098E4 +unref_sub_81098E4: @ 81098E4 + ldr r3, _08109900 + adds r2, r3, 0 + adds r2, 0x20 + ldrb r0, [r2] + adds r1, r0, 0x1 + strb r1, [r2] + lsls r0, 24 + lsrs r0, 22 + adds r0, r3 + ldr r1, _08109904 + ldr r1, [r1] + str r1, [r0] + bx lr + .align 2, 0 +_08109900: .4byte 0x02016c00 +_08109904: .4byte gUnknown_02039238 + thumb_func_end unref_sub_81098E4 + + thumb_func_start sub_8109908 +sub_8109908: @ 8109908 + push {lr} + ldr r3, _0810991C + adds r2, r3, 0 + adds r2, 0x20 + ldrb r0, [r2] + cmp r0, 0 + bne _08109920 + movs r0, 0 + b _08109932 + .align 2, 0 +_0810991C: .4byte 0x02016c00 +_08109920: + subs r0, 0x1 + strb r0, [r2] + ldr r1, _08109938 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + str r0, [r1] + movs r0, 0x1 +_08109932: + pop {r1} + bx r1 + .align 2, 0 +_08109938: .4byte gUnknown_02039238 + thumb_func_end sub_8109908 + + thumb_func_start sub_810993C +sub_810993C: @ 810993C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + ldr r0, _081099C8 + mov r9, r0 + movs r2, 0 +_0810994E: + adds r1, r2, 0x1 + lsls r0, r1, 24 + lsrs r5, r0, 24 + str r1, [sp, 0xC] + cmp r5, 0x3 + bhi _081099AC + movs r1, 0x1 + add r1, r9 + mov r8, r1 + adds r6, r1, r2 + movs r0, 0xB + mov r10, r0 + mov r0, r10 + muls r0, r2 + adds r0, 0x5 + mov r1, r9 + adds r7, r1, r0 +_08109970: + ldrb r0, [r6] + cmp r0, 0 + bne _081099A2 + adds r2, r0, 0 + mov r0, r8 + adds r1, r0, r5 + ldrb r0, [r1] + strb r0, [r6] + strb r2, [r1] + mov r0, sp + adds r1, r7, 0 + bl StringCopy + mov r4, r10 + muls r4, r5 + adds r4, 0x5 + add r4, r9 + adds r0, r7, 0 + adds r1, r4, 0 + bl StringCopy + adds r0, r4, 0 + mov r1, sp + bl StringCopy +_081099A2: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _08109970 +_081099AC: + ldr r1, [sp, 0xC] + lsls r0, r1, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _0810994E + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081099C8: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_810993C + + thumb_func_start sub_81099CC +sub_81099CC: @ 81099CC + push {r4-r6,lr} + ldr r5, _08109A14 + movs r1, 0 + movs r0, 0x2 + strb r0, [r5] + adds r0, r5, 0 + adds r0, 0x31 + strb r1, [r0] + movs r4, 0 + ldr r6, _08109A18 +_081099E0: + movs r0, 0xB + muls r0, r4 + adds r0, 0x5 + adds r0, r5, r0 + lsls r1, r4, 2 + adds r1, r6 + ldr r1, [r1] + bl StringCopy + adds r1, r5, 0x1 + adds r1, r4 + ldr r0, _08109A1C + adds r0, r4, r0 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _081099E0 + bl sub_810993C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08109A14: .4byte gSaveBlock1 + 0x2D94 +_08109A18: .4byte gUnknown_083F62D8 +_08109A1C: .4byte gTraderDecorations + thumb_func_end sub_81099CC + + thumb_func_start sub_8109A20 +sub_8109A20: @ 8109A20 + ldr r0, _08109A2C + adds r0, 0x31 + movs r1, 0 + strb r1, [r0] + bx lr + .align 2, 0 +_08109A2C: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_8109A20 + + thumb_func_start sub_8109A30 +sub_8109A30: @ 8109A30 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _08109A44 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_08109A44: .4byte 0x00004020 + thumb_func_end sub_8109A30 + + thumb_func_start sub_8109A48 +sub_8109A48: @ 8109A48 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r6, 0x1 + movs r5, 0 + ldr r0, _08109AB8 + movs r4, 0 + adds r7, r0, 0x1 + adds r1, r7, 0 +_08109A64: + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _08109A72 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_08109A72: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _08109A64 + lsls r3, r6, 25 + movs r0, 0x80 + lsls r0, 18 + adds r3, r0 + lsrs r3, 24 + movs r0, 0 + movs r1, 0x1 + movs r2, 0xC + bl MenuDrawTextWindow + movs r4, 0 + mov r1, r9 + lsls r1, 2 + mov r8, r1 +_08109A98: + adds r1, r7, r4 + ldrb r0, [r1] + cmp r0, 0 + beq _08109ADE + cmp r0, 0x78 + bls _08109AC0 + lsls r2, r5, 25 + movs r0, 0x80 + lsls r0, 18 + adds r2, r0 + lsrs r2, 24 + ldr r0, _08109ABC + movs r1, 0x1 + bl MenuPrint + b _08109AD8 + .align 2, 0 +_08109AB8: .4byte gSaveBlock1 + 0x2D94 +_08109ABC: .4byte gOtherText_FiveQuestionsAndSlash +_08109AC0: + ldrb r0, [r1] + lsls r0, 5 + ldr r1, _08109B28 + adds r0, r1 + lsls r2, r5, 25 + movs r1, 0x80 + lsls r1, 18 + adds r2, r1 + lsrs r2, 24 + movs r1, 0x1 + bl MenuPrint +_08109AD8: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_08109ADE: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _08109A98 + ldr r0, _08109B2C + lsls r2, r5, 25 + movs r1, 0x80 + lsls r1, 18 + adds r2, r1 + lsrs r2, 24 + movs r1, 0x1 + bl MenuPrint + movs r0, 0 + str r0, [sp] + movs r0, 0xB + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x2 + adds r3, r6, 0 + bl InitMenu + ldr r1, _08109B30 + mov r0, r8 + add r0, r9 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0xA] + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08109B28: .4byte gDecorations + 0x1 +_08109B2C: .4byte gOtherText_CancelNoTerminator +_08109B30: .4byte gTasks + thumb_func_end sub_8109A48 + + thumb_func_start sub_8109B34 +sub_8109B34: @ 8109B34 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x78 + bls _08109B54 + ldr r1, _08109B4C + ldr r2, _08109B50 + adds r0, r2, 0 + strh r0, [r1] + b _08109B58 + .align 2, 0 +_08109B4C: .4byte gUnknown_0202E8CC +_08109B50: .4byte 0x0000ffff +_08109B54: + ldr r0, _08109B78 + strh r1, [r0] +_08109B58: + bl sub_8072DEC + movs r0, 0 + movs r1, 0x1 + movs r2, 0xC + movs r3, 0xC + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl DestroyTask + bl EnableBothScriptContexts + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08109B78: .4byte gUnknown_0202E8CC + thumb_func_end sub_8109B34 + + thumb_func_start sub_8109B7C +sub_8109B7C: @ 8109B7C + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + ldr r6, _08109BA4 + ldr r0, _08109BA8 + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08109BAC + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _08109C3E + .align 2, 0 +_08109BA4: .4byte gSaveBlock1 + 0x2D94 +_08109BA8: .4byte gMain +_08109BAC: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08109BC2 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _08109C3E +_08109BC2: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08109C28 + movs r0, 0x5 + bl PlaySE + ldr r5, _08109BFC + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5] + ldr r1, _08109C00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0xA + ldrsh r0, [r0, r1] + ldrh r2, [r5] + cmp r0, r2 + bne _08109C04 + adds r0, r4, 0 + movs r1, 0 + bl sub_8109B34 + b _08109C3E + .align 2, 0 +_08109BFC: .4byte gUnknown_0202E8CE +_08109C00: .4byte gTasks +_08109C04: + ldr r0, _08109C24 + movs r1, 0xB + muls r1, r2 + adds r1, 0x5 + adds r1, r6 + bl StringCopy + adds r0, r6, 0x1 + ldrh r5, [r5] + adds r0, r5 + ldrb r1, [r0] + adds r0, r4, 0 + bl sub_8109B34 + b _08109C3E + .align 2, 0 +_08109C24: .4byte gStringVar1 +_08109C28: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08109C3E + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + movs r1, 0 + bl sub_8109B34 +_08109C3E: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8109B7C + + thumb_func_start sub_8109C44 +sub_8109C44: @ 8109C44 + ldr r0, _08109C50 + ldr r1, _08109C54 + adds r0, 0x31 + ldrb r0, [r0] + strh r0, [r1] + bx lr + .align 2, 0 +_08109C50: .4byte gSaveBlock1 + 0x2D94 +_08109C54: .4byte gScriptResult + thumb_func_end sub_8109C44 + + thumb_func_start sub_8109C58 +sub_8109C58: @ 8109C58 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _08109C70 +_08109C5E: + adds r0, r4, 0 + bl sub_8134194 + lsls r0, 24 + cmp r0, 0 + beq _08109C74 + movs r0, 0 + strh r0, [r5] + b _08109C84 + .align 2, 0 +_08109C70: .4byte gScriptResult +_08109C74: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _08109C5E + ldr r1, _08109C8C + movs r0, 0x1 + strh r0, [r1] +_08109C84: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08109C8C: .4byte gScriptResult + thumb_func_end sub_8109C58 + + thumb_func_start sub_8109C90 +sub_8109C90: @ 8109C90 + push {r4-r6,lr} + ldr r6, _08109CDC + movs r0, 0 + strh r0, [r6] + ldr r4, _08109CE0 + ldr r5, _08109CE4 + ldrh r0, [r5] + lsls r0, 5 + adds r2, r0, r4 + ldr r0, _08109CE8 + ldrh r0, [r0] + lsls r0, 5 + adds r0, r4 + ldrb r1, [r2, 0x13] + ldrb r0, [r0, 0x13] + cmp r1, r0 + beq _08109CD6 + adds r0, r1, 0 + bl sub_8133F9C + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _08109CD6 + ldr r0, _08109CEC + ldrh r1, [r5] + lsls r1, 5 + adds r1, r4 + ldrb r1, [r1, 0x13] + bl sub_80FE7D4 + movs r0, 0x1 + strh r0, [r6] +_08109CD6: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08109CDC: .4byte gScriptResult +_08109CE0: .4byte gDecorations +_08109CE4: .4byte gUnknown_0202E8CC +_08109CE8: .4byte gUnknown_0202E8D0 +_08109CEC: .4byte gStringVar2 + thumb_func_end sub_8109C90 + + thumb_func_start sub_8109CF0 +sub_8109CF0: @ 8109CF0 + push {lr} + ldr r0, _08109D00 + movs r1, 0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08109D00: .4byte sub_80FE7A8 + thumb_func_end sub_8109CF0 + + thumb_func_start sub_8109D04 +sub_8109D04: @ 8109D04 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0 + bl SetBgTilemapBuffer + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r0, _08109D6C + movs r1, 0x8 + bl sub_80F9520 + bl BuyMenuFreeMemory + bl sub_80FEFA4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08109D8C + ldr r5, _08109D70 + ldr r0, _08109D74 + ldrb r1, [r0] + ldr r0, _08109D78 + ldr r0, [r0] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r5] + ldr r0, _08109D7C + ldr r1, _08109D80 + ldrh r1, [r1] + lsls r1, 5 + ldr r4, _08109D84 + adds r1, r4 + bl StringCopy + ldr r0, _08109D88 + ldrh r1, [r5] + lsls r1, 5 + adds r1, r4 + bl StringCopy + b _08109D94 + .align 2, 0 +_08109D6C: .4byte gUnknown_020388F7 +_08109D70: .4byte gUnknown_0202E8D0 +_08109D74: .4byte gUnknown_020388F5 +_08109D78: .4byte gUnknown_020388D0 +_08109D7C: .4byte gStringVar3 +_08109D80: .4byte gUnknown_0202E8CC +_08109D84: .4byte gDecorations + 0x1 +_08109D88: .4byte gStringVar2 +_08109D8C: + ldr r1, _08109DA4 + ldr r2, _08109DA8 + adds r0, r2, 0 + strh r0, [r1] +_08109D94: + adds r0, r6, 0 + bl DestroyTask + bl EnableBothScriptContexts + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08109DA4: .4byte gUnknown_0202E8D0 +_08109DA8: .4byte 0x0000ffff + thumb_func_end sub_8109D04 + + thumb_func_start sub_8109DAC +sub_8109DAC: @ 8109DAC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _08109DDC + movs r0, 0 + strh r0, [r1] + adds r0, r4, 0 + bl DestroyTask + bl EnableBothScriptContexts + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08109DDC: .4byte gUnknown_0202E8D0 + thumb_func_end sub_8109DAC + + thumb_func_start sub_8109DE0 +sub_8109DE0: @ 8109DE0 + push {r4-r6,lr} + ldr r4, _08109E20 + ldr r6, _08109E24 + ldrb r0, [r6] + bl sub_81340A8 + ldr r0, _08109E28 + ldrb r0, [r0] + bl IsThereStorageSpaceForDecoration + ldr r5, _08109E2C + ldrh r1, [r5] + movs r0, 0xB + muls r0, r1 + adds r0, 0x5 + adds r0, r4 + ldr r1, _08109E30 + bl StringCopy + adds r0, r4, 0x1 + ldrh r5, [r5] + adds r0, r5 + ldrh r1, [r6] + strb r1, [r0] + bl sub_810993C + adds r4, 0x31 + movs r0, 0x1 + strb r0, [r4] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08109E20: .4byte gSaveBlock1 + 0x2D94 +_08109E24: .4byte gUnknown_0202E8D0 +_08109E28: .4byte gUnknown_0202E8CC +_08109E2C: .4byte gUnknown_0202E8CE +_08109E30: .4byte gSaveBlock2 + thumb_func_end sub_8109DE0 + + thumb_func_start sub_8109E34 +sub_8109E34: @ 8109E34 + push {lr} + ldr r0, _08109E4C + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl sub_8109A48 + pop {r0} + bx r0 + .align 2, 0 +_08109E4C: .4byte sub_8109B7C + thumb_func_end sub_8109E34 + + .align 2, 0 @ Don't pad with nop. |