papermario/asm/nonmatchings/code_344A10/func_E0034110.s
Ethan Roseman a8e550dd9a yee
2020-10-17 22:27:25 -04:00

119 lines
5.9 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E0034110
/* 344B20 E0034110 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 344B24 E0034114 AFBF0018 */ sw $ra, 0x18($sp)
/* 344B28 E0034118 AFB10014 */ sw $s1, 0x14($sp)
/* 344B2C E003411C AFB00010 */ sw $s0, 0x10($sp)
/* 344B30 E0034120 8C90000C */ lw $s0, 0xc($a0)
/* 344B34 E0034124 8E02002C */ lw $v0, 0x2c($s0)
/* 344B38 E0034128 2442FFFF */ addiu $v0, $v0, -1
/* 344B3C E003412C AE02002C */ sw $v0, 0x2c($s0)
/* 344B40 E0034130 8E020030 */ lw $v0, 0x30($s0)
/* 344B44 E0034134 8E03002C */ lw $v1, 0x2c($s0)
/* 344B48 E0034138 24420001 */ addiu $v0, $v0, 1
/* 344B4C E003413C 04610005 */ bgez $v1, .LE0034154
/* 344B50 E0034140 AE020030 */ sw $v0, 0x30($s0)
/* 344B54 E0034144 0C080128 */ jal func_E02004A0
/* 344B58 E0034148 00000000 */ nop
/* 344B5C E003414C 0800D0AD */ j .LE00342B4
/* 344B60 E0034150 00000000 */ nop
.LE0034154:
/* 344B64 E0034154 28420007 */ slti $v0, $v0, 7
/* 344B68 E0034158 10400011 */ beqz $v0, .LE00341A0
/* 344B6C E003415C 0060882D */ daddu $s1, $v1, $zero
/* 344B70 E0034160 240200DA */ addiu $v0, $zero, 0xda
/* 344B74 E0034164 8E030024 */ lw $v1, 0x24($s0)
/* 344B78 E0034168 3C013FE0 */ lui $at, 0x3fe0
/* 344B7C E003416C 44810800 */ mtc1 $at, $f1
/* 344B80 E0034170 44800000 */ mtc1 $zero, $f0
/* 344B84 E0034174 00431023 */ subu $v0, $v0, $v1
/* 344B88 E0034178 44821000 */ mtc1 $v0, $f2
/* 344B8C E003417C 00000000 */ nop
/* 344B90 E0034180 468010A1 */ cvt.d.w $f2, $f2
/* 344B94 E0034184 46201082 */ mul.d $f2, $f2, $f0
/* 344B98 E0034188 00000000 */ nop
/* 344B9C E003418C 44830000 */ mtc1 $v1, $f0
/* 344BA0 E0034190 00000000 */ nop
/* 344BA4 E0034194 46800021 */ cvt.d.w $f0, $f0
/* 344BA8 E0034198 0800D06E */ j .LE00341B8
/* 344BAC E003419C 46220000 */ add.d $f0, $f0, $f2
.LE00341A0:
/* 344BB0 E00341A0 3C01E003 */ lui $at, 0xe003
/* 344BB4 E00341A4 D42247B0 */ ldc1 $f2, 0x47b0($at)
/* 344BB8 E00341A8 C6000024 */ lwc1 $f0, 0x24($s0)
/* 344BBC E00341AC 46800021 */ cvt.d.w $f0, $f0
/* 344BC0 E00341B0 46220002 */ mul.d $f0, $f0, $f2
/* 344BC4 E00341B4 00000000 */ nop
.LE00341B8:
/* 344BC8 E00341B8 4620028D */ trunc.w.d $f10, $f0
/* 344BCC E00341BC E60A0024 */ swc1 $f10, 0x24($s0)
/* 344BD0 E00341C0 00111040 */ sll $v0, $s1, 1
/* 344BD4 E00341C4 00511021 */ addu $v0, $v0, $s1
/* 344BD8 E00341C8 C6040014 */ lwc1 $f4, 0x14($s0)
/* 344BDC E00341CC 3C01E003 */ lui $at, 0xe003
/* 344BE0 E00341D0 D42247B8 */ ldc1 $f2, 0x47b8($at)
/* 344BE4 E00341D4 46002121 */ cvt.d.s $f4, $f4
/* 344BE8 E00341D8 46222102 */ mul.d $f4, $f4, $f2
/* 344BEC E00341DC 00000000 */ nop
/* 344BF0 E00341E0 000210C0 */ sll $v0, $v0, 3
/* 344BF4 E00341E4 00511021 */ addu $v0, $v0, $s1
/* 344BF8 E00341E8 00021040 */ sll $v0, $v0, 1
/* 344BFC E00341EC C600001C */ lwc1 $f0, 0x1c($s0)
/* 344C00 E00341F0 C6060018 */ lwc1 $f6, 0x18($s0)
/* 344C04 E00341F4 C602001C */ lwc1 $f2, 0x1c($s0)
/* 344C08 E00341F8 C6080014 */ lwc1 $f8, 0x14($s0)
/* 344C0C E00341FC 46023180 */ add.s $f6, $f6, $f2
/* 344C10 E0034200 3C01E003 */ lui $at, 0xe003
/* 344C14 E0034204 D42247C0 */ ldc1 $f2, 0x47c0($at)
/* 344C18 E0034208 46000021 */ cvt.d.s $f0, $f0
/* 344C1C E003420C 46220000 */ add.d $f0, $f0, $f2
/* 344C20 E0034210 C6020010 */ lwc1 $f2, 0x10($s0)
/* 344C24 E0034214 44826000 */ mtc1 $v0, $f12
/* 344C28 E0034218 00000000 */ nop
/* 344C2C E003421C 46806320 */ cvt.s.w $f12, $f12
/* 344C30 E0034220 46081080 */ add.s $f2, $f2, $f8
/* 344C34 E0034224 E6060018 */ swc1 $f6, 0x18($s0)
/* 344C38 E0034228 46200020 */ cvt.s.d $f0, $f0
/* 344C3C E003422C E600001C */ swc1 $f0, 0x1c($s0)
/* 344C40 E0034230 E6020010 */ swc1 $f2, 0x10($s0)
/* 344C44 E0034234 46202120 */ cvt.s.d $f4, $f4
/* 344C48 E0034238 0C080140 */ jal func_E0200500
/* 344C4C E003423C E6040014 */ swc1 $f4, 0x14($s0)
/* 344C50 E0034240 3C013FE0 */ lui $at, 0x3fe0
/* 344C54 E0034244 44811800 */ mtc1 $at, $f3
/* 344C58 E0034248 44801000 */ mtc1 $zero, $f2
/* 344C5C E003424C 46000021 */ cvt.d.s $f0, $f0
/* 344C60 E0034250 46220002 */ mul.d $f0, $f0, $f2
/* 344C64 E0034254 00000000 */ nop
/* 344C68 E0034258 00111080 */ sll $v0, $s1, 2
/* 344C6C E003425C 3C01E003 */ lui $at, 0xe003
/* 344C70 E0034260 D42247C8 */ ldc1 $f2, 0x47c8($at)
/* 344C74 E0034264 00511021 */ addu $v0, $v0, $s1
/* 344C78 E0034268 46220000 */ add.d $f0, $f0, $f2
/* 344C7C E003426C 000210C0 */ sll $v0, $v0, 3
/* 344C80 E0034270 44826000 */ mtc1 $v0, $f12
/* 344C84 E0034274 00000000 */ nop
/* 344C88 E0034278 46806320 */ cvt.s.w $f12, $f12
/* 344C8C E003427C 46200020 */ cvt.s.d $f0, $f0
/* 344C90 E0034280 0C080140 */ jal func_E0200500
/* 344C94 E0034284 E6000020 */ swc1 $f0, 0x20($s0)
/* 344C98 E0034288 3C014280 */ lui $at, 0x4280
/* 344C9C E003428C 44811000 */ mtc1 $at, $f2
/* 344CA0 E0034290 00000000 */ nop
/* 344CA4 E0034294 46020002 */ mul.s $f0, $f0, $f2
/* 344CA8 E0034298 00000000 */ nop
/* 344CAC E003429C 3C014310 */ lui $at, 0x4310
/* 344CB0 E00342A0 44811000 */ mtc1 $at, $f2
/* 344CB4 E00342A4 00000000 */ nop
/* 344CB8 E00342A8 46020000 */ add.s $f0, $f0, $f2
/* 344CBC E00342AC 4600028D */ trunc.w.s $f10, $f0
/* 344CC0 E00342B0 E60A0028 */ swc1 $f10, 0x28($s0)
.LE00342B4:
/* 344CC4 E00342B4 8FBF0018 */ lw $ra, 0x18($sp)
/* 344CC8 E00342B8 8FB10014 */ lw $s1, 0x14($sp)
/* 344CCC E00342BC 8FB00010 */ lw $s0, 0x10($sp)
/* 344CD0 E00342C0 03E00008 */ jr $ra
/* 344CD4 E00342C4 27BD0020 */ addiu $sp, $sp, 0x20