tmc/asm/non_matching/octorokBoss/sub_080369D0.inc

150 lines
2.3 KiB
PHP

.syntax unified
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
mov ip, r1
adds r6, r2, #0
adds r1, r0, #0
adds r1, #0x84
ldr r4, [r1]
ldr r2, [r4, #0xc]
ldrb r1, [r4, #1]
subs r1, #1
lsls r1, r1, #2
adds r3, r4, #0
adds r3, #0xc
adds r1, r3, r1
ldr r1, [r1]
adds r1, #0x7b
adds r0, #0x79
ldrb r0, [r0]
ldrb r1, [r1]
adds r0, r0, r1
adds r2, #0x7b
strb r0, [r2]
ldrb r0, [r4, #1]
movs r2, #0
cmp r0, #1
beq _08036A58
adds r5, r3, #0
lsls r0, r6, #0x18
lsrs r0, r0, #0x18
mov r8, r0
rsbs r0, r6, #0
lsls r0, r0, #0x18
asrs r7, r0, #0x18
_08036A16:
lsls r0, r2, #2
adds r0, r5, r0
ldr r1, [r0]
adds r1, #0x7b
adds r2, #1
lsls r0, r2, #2
adds r0, r5, r0
ldr r0, [r0]
adds r3, r0, #0
adds r3, #0x7b
ldrb r1, [r1]
ldrb r0, [r3]
cmp r1, r0
beq _08036A4C
subs r0, r0, r1
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08036A44
cmp r0, r8
ble _08036A4C
adds r0, r1, r6
b _08036A4A
_08036A44:
cmp r0, r7
bge _08036A4C
subs r0, r1, r6
_08036A4A:
strb r0, [r3]
_08036A4C:
ldrb r0, [r4, #1]
subs r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r2, r0
blo _08036A16
_08036A58:
ldrb r0, [r4, #1]
subs r2, r0, #1
cmp r2, #0
beq _08036AE4
ldr r0, _08036AEC @ =gSineTable
mov sb, r0
movs r1, #0x80
mov r8, r1
mov r1, ip
lsls r0, r1, #0x14
asrs r6, r0, #0x10
lsls r0, r2, #2
adds r0, #8
adds r5, r0, r4
movs r7, #0x80
lsls r7, r7, #1
_08036A78:
subs r4, r2, #1
ldr r0, [r5]
adds r0, #0x7b
ldrb r0, [r0]
mov r1, r8
eors r0, r1
lsls r0, r0, #1
add r0, sb
movs r1, #0
ldrsh r0, [r0, r1]
adds r1, r6, #0
bl FixedMul
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r1, r7, #0
bl FixedDiv
ldr r2, [r5]
ldr r1, [r5, #4]
lsls r0, r0, #0x10
asrs r0, r0, #8
ldr r1, [r1, #0x2c]
adds r1, r1, r0
str r1, [r2, #0x2c]
ldr r0, [r5]
adds r0, #0x7b
ldrb r0, [r0]
mov r1, r8
eors r0, r1
adds r0, #0x40
lsls r0, r0, #1
add r0, sb
movs r1, #0
ldrsh r0, [r0, r1]
adds r1, r6, #0
bl FixedMul
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r1, r7, #0
bl FixedDiv
ldr r2, [r5]
ldr r1, [r5, #4]
lsls r0, r0, #0x10
asrs r0, r0, #8
ldr r1, [r1, #0x30]
subs r1, r1, r0
str r1, [r2, #0x30]
subs r5, #4
adds r2, r4, #0
cmp r2, #0
bne _08036A78
_08036AE4:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08036AEC: .4byte gSineTable
.syntax divided