.syntax unified push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} mov ip, r0 movs r0, #3 add ip, r0 subs r0, #7 mov r1, ip ands r1, r0 mov ip, r1 ldr r6, _0801D90C @ =gzHeap mov sb, r6 ldrh r7, [r6] movs r5, #1 movs r3, #0x80 lsls r3, r3, #5 add r3, sb subs r4, r3, r1 movs r2, #0 b _0801D926 .align 2, 0 _0801D90C: .4byte gzHeap _0801D910: cmp r1, r4 bhi _0801D918 cmp r3, r0 bls _0801D952 _0801D918: cmp r4, r1 bhi _0801D920 cmp r0, r3 bls _0801D952 _0801D920: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 _0801D926: cmp r2, r7 bhs _0801D94A lsls r0, r2, #2 add r0, sb ldrh r1, [r0, #2] ldr r6, _0801D95C @ =gzHeap adds r1, r1, r6 ldrh r0, [r0, #4] adds r0, r0, r6 cmp r1, r4 bhi _0801D940 cmp r4, r0 bls _0801D952 _0801D940: cmp r1, r3 bhi _0801D910 cmp r3, r0 bhi _0801D910 movs r5, #0 _0801D94A: lsls r0, r7, #2 mov sl, r0 cmp r5, #0 bne _0801D9D8 _0801D952: movs r1, #0 mov r8, r1 lsls r6, r7, #2 mov sl, r6 b _0801D970 .align 2, 0 _0801D95C: .4byte gzHeap _0801D960: movs r5, #0 _0801D962: mov r0, r8 adds r0, #1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 cmp r8, r7 bhs _0801D9D4 _0801D970: mov r1, r8 lsls r0, r1, #2 add r0, sb ldrh r0, [r0, #2] ldr r6, _0801D994 @ =gzHeap adds r3, r0, r6 mov r0, ip subs r4, r3, r0 movs r5, #0 mov r0, sl adds r0, #2 add r0, sb adds r0, #4 cmp r4, r0 blo _0801D962 movs r5, #1 movs r2, #0 b _0801D9AE .align 2, 0 _0801D994: .4byte gzHeap _0801D998: cmp r1, r4 bhi _0801D9A0 cmp r3, r0 bls _0801D960 _0801D9A0: cmp r4, r1 bhi _0801D9A8 cmp r0, r3 bls _0801D960 _0801D9A8: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 _0801D9AE: cmp r2, r7 bhs _0801D9D0 lsls r0, r2, #2 add r0, sb ldrh r1, [r0, #2] adds r1, r1, r6 ldrh r0, [r0, #4] adds r0, r0, r6 cmp r1, r4 bhi _0801D9C6 cmp r4, r0 blo _0801D960 _0801D9C6: cmp r1, r3 bhs _0801D998 cmp r3, r0 bhi _0801D998 movs r5, #0 _0801D9D0: cmp r5, #0 beq _0801D962 _0801D9D4: cmp r5, #0 beq _0801DA00 _0801D9D8: ldr r0, _0801D9FC @ =gUnk_02035542 mov r1, sl adds r2, r1, r0 subs r3, r0, #2 subs r1, r4, r3 strh r1, [r2] adds r0, #2 add r0, sl add r1, ip strh r1, [r0] adds r0, r7, #1 strh r0, [r3] adds r0, r4, #0 mov r1, ip bl MemClear adds r0, r4, #0 b _0801DA02 .align 2, 0 _0801D9FC: .4byte gUnk_02035542 _0801DA00: movs r0, #0 _0801DA02: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .syntax divided