.syntax unified .text push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r4, r0, #0 mov r8, r1 adds r5, r2, #0 movs r0, #0x2e ldrsh r7, [r4, r0] movs r1, #0x32 ldrsh r6, [r4, r1] adds r0, r7, #0 adds r1, r6, #0 mov r2, r8 adds r3, r5, #0 bl sub_080045D4 adds r0, #2 movs r1, #0x1c ands r0, r1 lsrs r0, r0, #2 cmp r0, #7 bls _08061494 b _08061612 _08061494: lsls r0, r0, #2 ldr r1, _080614A0 @ =_080614A4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080614A0: .4byte _080614A4 _080614A4: @ jump table .4byte _080614C4 @ case 0 .4byte _080614E2 @ case 1 .4byte _08061514 @ case 2 .4byte _08061544 @ case 3 .4byte _08061566 @ case 4 .4byte _08061584 @ case 5 .4byte _080615B4 @ case 6 .4byte _080615E4 @ case 7 _080614C4: adds r0, r4, #0 adds r0, #0x6e strh r5, [r0] movs r1, #0x2e ldrsh r0, [r4, r1] cmp r0, r8 ble _08061504 adds r2, r6, #0 subs r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_08061630 b _08061612 _080614E2: movs r0, #0x6e adds r0, r0, r4 mov sb, r0 mov r1, r8 strh r1, [r0] adds r1, r7, #0 adds r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061720 cmp r0, #0 beq _08061500 b _08061612 _08061500: mov r0, sb strh r5, [r0] _08061504: adds r2, r6, #0 subs r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_080616A8 b _08061612 _08061514: adds r0, r4, #0 adds r0, #0x6e mov r1, r8 strh r1, [r0] movs r1, #0x32 ldrsh r0, [r4, r1] cmp r0, r5 ble _08061534 adds r1, r7, #0 adds r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061720 b _08061612 _08061534: adds r1, r7, #0 adds r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061798 b _08061612 _08061544: movs r0, #0x6e adds r0, r0, r4 mov sb, r0 mov r1, r8 strh r1, [r0] adds r1, r7, #0 adds r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061798 cmp r0, #0 bne _08061612 mov r0, sb strh r5, [r0] b _08061574 _08061566: adds r0, r4, #0 adds r0, #0x6e strh r5, [r0] movs r1, #0x2e ldrsh r0, [r4, r1] cmp r0, r8 bgt _080615A4 _08061574: adds r2, r6, #0 adds r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_08061888 b _08061612 _08061584: movs r0, #0x6e adds r0, r0, r4 mov sb, r0 mov r1, r8 strh r1, [r0] adds r1, r7, #0 subs r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061978 cmp r0, #0 bne _08061612 mov r0, sb strh r5, [r0] _080615A4: adds r2, r6, #0 adds r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_08061810 b _08061612 _080615B4: adds r0, r4, #0 adds r0, #0x6e mov r1, r8 strh r1, [r0] movs r1, #0x32 ldrsh r0, [r4, r1] cmp r0, r5 ble _080615D4 adds r1, r7, #0 subs r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061900 b _08061612 _080615D4: adds r1, r7, #0 subs r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061978 b _08061612 _080615E4: movs r0, #0x6e adds r0, r0, r4 mov sb, r0 mov r1, r8 strh r1, [r0] adds r1, r7, #0 subs r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061900 cmp r0, #0 bne _08061612 mov r0, sb strh r5, [r0] adds r2, r6, #0 subs r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_08061630 _08061612: ldr r0, [r4, #0x64] ldrb r1, [r0] movs r0, #8 ands r0, r1 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _08061628 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r4, #0xd] _08061628: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .syntax divided