papermario/asm/nonmatchings/code_1086a0_len_fc0/func_802E7230.s
2020-09-23 23:16:13 -04:00

139 lines
6.7 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802E7230
/* 108AB0 802E7230 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 108AB4 802E7234 AFBF0014 */ sw $ra, 0x14($sp)
/* 108AB8 802E7238 AFB00010 */ sw $s0, 0x10($sp)
/* 108ABC 802E723C 8C900040 */ lw $s0, 0x40($a0)
/* 108AC0 802E7240 92030005 */ lbu $v1, 5($s0)
/* 108AC4 802E7244 2C620006 */ sltiu $v0, $v1, 6
/* 108AC8 802E7248 10400074 */ beqz $v0, .L802E741C
/* 108ACC 802E724C 00031080 */ sll $v0, $v1, 2
/* 108AD0 802E7250 3C01802F */ lui $at, 0x802f
/* 108AD4 802E7254 00220821 */ addu $at, $at, $v0
/* 108AD8 802E7258 8C22B2F0 */ lw $v0, -0x4d10($at)
/* 108ADC 802E725C 00400008 */ jr $v0
/* 108AE0 802E7260 00000000 */ nop
/* 108AE4 802E7264 C6020008 */ lwc1 $f2, 8($s0)
/* 108AE8 802E7268 3C013F80 */ lui $at, 0x3f80
/* 108AEC 802E726C 44810000 */ mtc1 $at, $f0
/* 108AF0 802E7270 92020006 */ lbu $v0, 6($s0)
/* 108AF4 802E7274 46001081 */ sub.s $f2, $f2, $f0
/* 108AF8 802E7278 3C01C000 */ lui $at, 0xc000
/* 108AFC 802E727C 44810000 */ mtc1 $at, $f0
/* 108B00 802E7280 2442FFFF */ addiu $v0, $v0, -1
/* 108B04 802E7284 A2020006 */ sb $v0, 6($s0)
/* 108B08 802E7288 4600103C */ c.lt.s $f2, $f0
/* 108B0C 802E728C 00000000 */ nop
/* 108B10 802E7290 45000002 */ bc1f .L802E729C
/* 108B14 802E7294 E6020008 */ swc1 $f2, 8($s0)
/* 108B18 802E7298 E6000008 */ swc1 $f0, 8($s0)
.L802E729C:
/* 108B1C 802E729C 82020006 */ lb $v0, 6($s0)
/* 108B20 802E72A0 1440005E */ bnez $v0, .L802E741C
/* 108B24 802E72A4 24030008 */ addiu $v1, $zero, 8
/* 108B28 802E72A8 92020005 */ lbu $v0, 5($s0)
/* 108B2C 802E72AC 080B9D05 */ j .L802E7414
/* 108B30 802E72B0 A2030006 */ sb $v1, 6($s0)
/* 108B34 802E72B4 92020006 */ lbu $v0, 6($s0)
/* 108B38 802E72B8 2442FFFF */ addiu $v0, $v0, -1
/* 108B3C 802E72BC A2020006 */ sb $v0, 6($s0)
/* 108B40 802E72C0 00021600 */ sll $v0, $v0, 0x18
/* 108B44 802E72C4 14400055 */ bnez $v0, .L802E741C
/* 108B48 802E72C8 00000000 */ nop
/* 108B4C 802E72CC 92020005 */ lbu $v0, 5($s0)
/* 108B50 802E72D0 080B9D05 */ j .L802E7414
/* 108B54 802E72D4 AE00000C */ sw $zero, 0xc($s0)
/* 108B58 802E72D8 C600000C */ lwc1 $f0, 0xc($s0)
/* 108B5C 802E72DC 3C014080 */ lui $at, 0x4080
/* 108B60 802E72E0 44811000 */ mtc1 $at, $f2
/* 108B64 802E72E4 00000000 */ nop
/* 108B68 802E72E8 46020000 */ add.s $f0, $f0, $f2
/* 108B6C 802E72EC 3C014334 */ lui $at, 0x4334
/* 108B70 802E72F0 44811000 */ mtc1 $at, $f2
/* 108B74 802E72F4 00000000 */ nop
/* 108B78 802E72F8 4600103E */ c.le.s $f2, $f0
/* 108B7C 802E72FC 00000000 */ nop
/* 108B80 802E7300 45000004 */ bc1f .L802E7314
/* 108B84 802E7304 E600000C */ swc1 $f0, 0xc($s0)
/* 108B88 802E7308 92020005 */ lbu $v0, 5($s0)
/* 108B8C 802E730C 24420001 */ addiu $v0, $v0, 1
/* 108B90 802E7310 A2020005 */ sb $v0, 5($s0)
.L802E7314:
/* 108B94 802E7314 C60C000C */ lwc1 $f12, 0xc($s0)
/* 108B98 802E7318 3C0140C9 */ lui $at, 0x40c9
/* 108B9C 802E731C 34210FD0 */ ori $at, $at, 0xfd0
/* 108BA0 802E7320 44810000 */ mtc1 $at, $f0
/* 108BA4 802E7324 00000000 */ nop
/* 108BA8 802E7328 46006302 */ mul.s $f12, $f12, $f0
/* 108BAC 802E732C 00000000 */ nop
/* 108BB0 802E7330 3C0143B4 */ lui $at, 0x43b4
/* 108BB4 802E7334 44810000 */ mtc1 $at, $f0
/* 108BB8 802E7338 0C00A85B */ jal sin_rad
/* 108BBC 802E733C 46006303 */ div.s $f12, $f12, $f0
/* 108BC0 802E7340 3C014040 */ lui $at, 0x4040
/* 108BC4 802E7344 44811000 */ mtc1 $at, $f2
/* 108BC8 802E7348 00000000 */ nop
/* 108BCC 802E734C 46020082 */ mul.s $f2, $f0, $f2
/* 108BD0 802E7350 080B9CF3 */ j .L802E73CC
/* 108BD4 802E7354 00000000 */ nop
/* 108BD8 802E7358 C600000C */ lwc1 $f0, 0xc($s0)
/* 108BDC 802E735C 3C013F80 */ lui $at, 0x3f80
/* 108BE0 802E7360 44811000 */ mtc1 $at, $f2
/* 108BE4 802E7364 00000000 */ nop
/* 108BE8 802E7368 46020000 */ add.s $f0, $f0, $f2
/* 108BEC 802E736C 3C01433E */ lui $at, 0x433e
/* 108BF0 802E7370 44811000 */ mtc1 $at, $f2
/* 108BF4 802E7374 00000000 */ nop
/* 108BF8 802E7378 4600103E */ c.le.s $f2, $f0
/* 108BFC 802E737C 00000000 */ nop
/* 108C00 802E7380 45000006 */ bc1f .L802E739C
/* 108C04 802E7384 E600000C */ swc1 $f0, 0xc($s0)
/* 108C08 802E7388 92020005 */ lbu $v0, 5($s0)
/* 108C0C 802E738C 2403000A */ addiu $v1, $zero, 0xa
/* 108C10 802E7390 A2030006 */ sb $v1, 6($s0)
/* 108C14 802E7394 24420001 */ addiu $v0, $v0, 1
/* 108C18 802E7398 A2020005 */ sb $v0, 5($s0)
.L802E739C:
/* 108C1C 802E739C C60C000C */ lwc1 $f12, 0xc($s0)
/* 108C20 802E73A0 3C0140C9 */ lui $at, 0x40c9
/* 108C24 802E73A4 34210FD0 */ ori $at, $at, 0xfd0
/* 108C28 802E73A8 44810000 */ mtc1 $at, $f0
/* 108C2C 802E73AC 00000000 */ nop
/* 108C30 802E73B0 46006302 */ mul.s $f12, $f12, $f0
/* 108C34 802E73B4 00000000 */ nop
/* 108C38 802E73B8 3C0143B4 */ lui $at, 0x43b4
/* 108C3C 802E73BC 44810000 */ mtc1 $at, $f0
/* 108C40 802E73C0 0C00A85B */ jal sin_rad
/* 108C44 802E73C4 46006303 */ div.s $f12, $f12, $f0
/* 108C48 802E73C8 46000080 */ add.s $f2, $f0, $f0
.L802E73CC:
/* 108C4C 802E73CC C6000008 */ lwc1 $f0, 8($s0)
/* 108C50 802E73D0 46020001 */ sub.s $f0, $f0, $f2
/* 108C54 802E73D4 080B9D07 */ j .L802E741C
/* 108C58 802E73D8 E6000008 */ swc1 $f0, 8($s0)
/* 108C5C 802E73DC 92020006 */ lbu $v0, 6($s0)
/* 108C60 802E73E0 2442FFFF */ addiu $v0, $v0, -1
/* 108C64 802E73E4 A2020006 */ sb $v0, 6($s0)
/* 108C68 802E73E8 00021600 */ sll $v0, $v0, 0x18
/* 108C6C 802E73EC 1440000B */ bnez $v0, .L802E741C
/* 108C70 802E73F0 00000000 */ nop
/* 108C74 802E73F4 82020007 */ lb $v0, 7($s0)
/* 108C78 802E73F8 10400005 */ beqz $v0, .L802E7410
/* 108C7C 802E73FC 00000000 */ nop
/* 108C80 802E7400 0C043F5A */ jal func_8010FD68
/* 108C84 802E7404 00000000 */ nop
/* 108C88 802E7408 080B9D07 */ j .L802E741C
/* 108C8C 802E740C 00000000 */ nop
.L802E7410:
/* 108C90 802E7410 92020005 */ lbu $v0, 5($s0)
.L802E7414:
/* 108C94 802E7414 24420001 */ addiu $v0, $v0, 1
/* 108C98 802E7418 A2020005 */ sb $v0, 5($s0)
.L802E741C:
/* 108C9C 802E741C 8FBF0014 */ lw $ra, 0x14($sp)
/* 108CA0 802E7420 8FB00010 */ lw $s0, 0x10($sp)
/* 108CA4 802E7424 03E00008 */ jr $ra
/* 108CA8 802E7428 27BD0018 */ addiu $sp, $sp, 0x18