.syntax unified push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 adds r7, r0, #0 mov sb, r1 ldr r0, [r7, #0x34] cmp r0, #0 bge _08060790 ldr r1, _0806078C @ =gActiveScriptInfo movs r0, #0 strb r0, [r1, #6] b _080608D8 .align 2, 0 _0806078C: .4byte gActiveScriptInfo _08060790: adds r4, r7, #0 adds r4, #0x69 ldrb r0, [r4] adds r0, #1 strb r0, [r4] adds r5, r7, #0 adds r5, #0x38 movs r0, #1 strb r0, [r5] adds r0, r7, #0 bl sub_080606C0 ldr r1, _080607DC @ =gUnk_0810A918 adds r2, r7, #0 adds r2, #0x68 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 adds r0, r0, r1 ldr r6, [r0] movs r0, #0 ldrsb r0, [r4, r0] adds r6, r6, r0 mov sl, r4 mov r8, r2 _080607C2: ldrb r0, [r6] adds r0, #5 lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bls _080607D0 b _080608D8 _080607D0: lsls r0, r0, #2 ldr r1, _080607E0 @ =_080607E4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080607DC: .4byte gUnk_0810A918 _080607E0: .4byte _080607E4 _080607E4: @ jump table .4byte _08060846 @ case 0 .4byte _08060836 @ case 1 .4byte _08060830 @ case 2 .4byte _0806082A @ case 3 .4byte _0806081E @ case 4 .4byte _080607FC @ case 5 _080607FC: adds r6, #1 movs r5, #0 ldrsb r5, [r6, r5] adds r6, #1 bl Random adds r1, r5, #0 bl __modsi3 adds r0, r6, r0 ldrb r0, [r0] movs r1, #0 mov r2, r8 strb r0, [r2] mov r3, sl strb r1, [r3] b _080608D8 _0806081E: adds r1, r7, #0 adds r1, #0x6a movs r0, #0x96 lsls r0, r0, #1 strh r0, [r1] b _080608CC _0806082A: movs r0, #1 strb r0, [r5] b _080608CC _08060830: movs r0, #2 strb r0, [r5] b _080608CC _08060836: movs r0, #0x1e mov r4, sb strh r0, [r4, #0x10] ldrb r1, [r7, #0x18] subs r0, #0x22 ands r0, r1 strb r0, [r7, #0x18] b _080608CC _08060846: adds r6, #1 movs r5, #0 ldrsb r5, [r6, r5] adds r6, #1 bl Random adds r1, r5, #0 bl __modsi3 str r0, [sp, #4] movs r2, #0 cmp r2, r5 bhs _080608B8 ldr r0, _080608C0 @ =gRoomControls mov sb, r0 _08060864: ldr r1, [sp, #4] adds r0, r6, r1 ldrb r0, [r0] mov r3, r8 strb r0, [r3] movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 ldr r4, _080608C4 @ =gUnk_0810A918 adds r0, r0, r4 ldr r0, [r0] movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #2 ldr r0, _080608C8 @ =gUnk_0810A66C adds r1, r1, r0 ldrh r0, [r1] mov r3, sb ldrh r3, [r3, #6] adds r0, r0, r3 strh r0, [r7, #0x2e] ldrh r0, [r1, #2] mov r4, sb ldrh r4, [r4, #8] adds r0, r0, r4 strh r0, [r7, #0x32] adds r0, r7, #0 str r2, [sp] bl CheckOnScreen cmp r0, #0 beq _080608B8 ldr r0, [sp, #4] adds r0, #1 adds r1, r5, #0 bl __modsi3 str r0, [sp, #4] ldr r2, [sp] adds r2, #1 cmp r2, r5 blo _08060864 _080608B8: movs r0, #0 mov r1, sl strb r0, [r1] b _080608D8 .align 2, 0 _080608C0: .4byte gRoomControls _080608C4: .4byte gUnk_0810A918 _080608C8: .4byte gUnk_0810A66C _080608CC: mov r2, sl ldrb r0, [r2] adds r0, #1 strb r0, [r2] adds r6, #1 b _080607C2 _080608D8: add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .syntax divided