diff options
Diffstat (limited to 'asm/contest_effect.s')
-rw-r--r-- | asm/contest_effect.s | 2942 |
1 files changed, 2942 insertions, 0 deletions
diff --git a/asm/contest_effect.s b/asm/contest_effect.s new file mode 100644 index 000000000..028b56c0e --- /dev/null +++ b/asm/contest_effect.s @@ -0,0 +1,2942 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start AreMovesContestCombo +AreMovesContestCombo: @ 80B7D24 + push {r4,lr} + sub sp, 0x4 + lsls r0, 16 + lsls r1, 16 + ldr r2, _080B7D78 @ =gContestMoves + 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 @ =gComboStarterLookupTable + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B7F28: + ldr r0, _080B7F38 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B7F8A: + ldr r0, _080B7F9C @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =gContestMoves + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x02019260 + 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 @ =gContestMoves + ldrh r0, [r5, 0x8] + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x2] + ldr r1, _080B83F8 @ =gComboStarterLookupTable + 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 @ =0x02019260 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =gUnknown_02038696 + ldr r4, _080B8640 @ =0x020192d0 + 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 @ =gContestEffects + ldr r2, _080B8648 @ =gContestMoves + 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 @ =gUnknown_02038696 + ldr r4, _080B8694 @ =0x020192d0 + 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 @ =gContestEffects + ldr r2, _080B869C @ =gContestMoves + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x1E + bl sub_80B13EC +_080B88B0: + ldr r0, _080B88C8 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 +_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 @ =gContestMoves + 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 @ =gContestEffects + 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 @ =0x020192d0 + 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 @ =gContestMoves + 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 @ =gContestEffects + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x02019204 + 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 @ =0x02019204 + 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 @ =0x02019204 + 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 @ =0x020192d0 + 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 @ =gContestMoves + ldr r1, _080B8EF4 @ =0x020192d0 + 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 @ =gUnknown_0203869C + 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 @ =0x020192d0 + 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 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B8F68: + ldr r0, _080B8F78 @ =0x020192d0 + 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 @ =0x02019204 + 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 @ =0x020192d0 + 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 @ =0x02019328 + 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 @ =0x020192d0 + ldr r0, _080B9080 @ =gContestMoves + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x020192d0 + 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 @ =0x02019260 + 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 + + .align 2, 0 @ Don't pad with nop. |