papermario/ver/jp/asm/nonmatchings/23330/func_80048D64.s

225 lines
11 KiB
ArmAsm
Raw Normal View History

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80048D64
/* 24164 80048D64 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 24168 80048D68 F7B60050 */ sdc1 $f22, 0x50($sp)
/* 2416C 80048D6C 4486B000 */ mtc1 $a2, $f22
/* 24170 80048D70 F7B80058 */ sdc1 $f24, 0x58($sp)
/* 24174 80048D74 4487C000 */ mtc1 $a3, $f24
/* 24178 80048D78 AFB10034 */ sw $s1, 0x34($sp)
/* 2417C 80048D7C 0080882D */ daddu $s1, $a0, $zero
/* 24180 80048D80 AFB3003C */ sw $s3, 0x3c($sp)
/* 24184 80048D84 00A0982D */ daddu $s3, $a1, $zero
/* 24188 80048D88 AFBF0044 */ sw $ra, 0x44($sp)
/* 2418C 80048D8C AFB40040 */ sw $s4, 0x40($sp)
/* 24190 80048D90 AFB20038 */ sw $s2, 0x38($sp)
/* 24194 80048D94 AFB00030 */ sw $s0, 0x30($sp)
/* 24198 80048D98 F7B40048 */ sdc1 $f20, 0x48($sp)
/* 2419C 80048D9C 86640008 */ lh $a0, 8($s3)
/* 241A0 80048DA0 0C00E9EB */ jal func_8003A7AC
/* 241A4 80048DA4 93B40073 */ lbu $s4, 0x73($sp)
/* 241A8 80048DA8 0040802D */ daddu $s0, $v0, $zero
/* 241AC 80048DAC 8E6200B0 */ lw $v0, 0xb0($s3)
/* 241B0 80048DB0 3C128011 */ lui $s2, %hi(D_8010F188)
/* 241B4 80048DB4 2652F188 */ addiu $s2, $s2, %lo(D_8010F188)
/* 241B8 80048DB8 30420002 */ andi $v0, $v0, 2
/* 241BC 80048DBC 144000AC */ bnez $v0, .L80049070
/* 241C0 80048DC0 0000102D */ daddu $v0, $zero, $zero
/* 241C4 80048DC4 3C048011 */ lui $a0, %hi(D_8010ED70)
/* 241C8 80048DC8 2484ED70 */ addiu $a0, $a0, %lo(D_8010ED70)
/* 241CC 80048DCC 80830003 */ lb $v1, 3($a0)
/* 241D0 80048DD0 24020009 */ addiu $v0, $zero, 9
/* 241D4 80048DD4 14620008 */ bne $v1, $v0, .L80048DF8
/* 241D8 80048DD8 24020007 */ addiu $v0, $zero, 7
/* 241DC 80048DDC 80820000 */ lb $v0, ($a0)
/* 241E0 80048DE0 10400005 */ beqz $v0, .L80048DF8
/* 241E4 80048DE4 24020007 */ addiu $v0, $zero, 7
/* 241E8 80048DE8 9622001C */ lhu $v0, 0x1c($s1)
/* 241EC 80048DEC 30420001 */ andi $v0, $v0, 1
/* 241F0 80048DF0 1040009E */ beqz $v0, .L8004906C
/* 241F4 80048DF4 24020007 */ addiu $v0, $zero, 7
.L80048DF8:
/* 241F8 80048DF8 14620008 */ bne $v1, $v0, .L80048E1C
/* 241FC 80048DFC 00000000 */ nop
/* 24200 80048E00 80820000 */ lb $v0, ($a0)
/* 24204 80048E04 10400005 */ beqz $v0, .L80048E1C
/* 24208 80048E08 00000000 */ nop
/* 2420C 80048E0C 9622001C */ lhu $v0, 0x1c($s1)
/* 24210 80048E10 30420001 */ andi $v0, $v0, 1
/* 24214 80048E14 10400096 */ beqz $v0, .L80049070
/* 24218 80048E18 0000102D */ daddu $v0, $zero, $zero
.L80048E1C:
/* 2421C 80048E1C 8E220000 */ lw $v0, ($s1)
/* 24220 80048E20 04400093 */ bltz $v0, .L80049070
/* 24224 80048E24 0000102D */ daddu $v0, $zero, $zero
/* 24228 80048E28 C600003C */ lwc1 $f0, 0x3c($s0)
/* 2422C 80048E2C C642002C */ lwc1 $f2, 0x2c($s2)
/* 24230 80048E30 46020001 */ sub.s $f0, $f0, $f2
/* 24234 80048E34 C6220018 */ lwc1 $f2, 0x18($s1)
/* 24238 80048E38 46000005 */ abs.s $f0, $f0
/* 2423C 80048E3C 4600103E */ c.le.s $f2, $f0
/* 24240 80048E40 00000000 */ nop
/* 24244 80048E44 45000005 */ bc1f .L80048E5C
/* 24248 80048E48 00000000 */ nop
/* 2424C 80048E4C 9622001C */ lhu $v0, 0x1c($s1)
/* 24250 80048E50 30420002 */ andi $v0, $v0, 2
/* 24254 80048E54 10400086 */ beqz $v0, .L80049070
/* 24258 80048E58 0000102D */ daddu $v0, $zero, $zero
.L80048E5C:
/* 2425C 80048E5C 8E220010 */ lw $v0, 0x10($s1)
/* 24260 80048E60 8E230014 */ lw $v1, 0x14($s1)
/* 24264 80048E64 00431025 */ or $v0, $v0, $v1
/* 24268 80048E68 10400014 */ beqz $v0, .L80048EBC
/* 2426C 80048E6C 00000000 */ nop
/* 24270 80048E70 C6200008 */ lwc1 $f0, 8($s1)
/* 24274 80048E74 46800020 */ cvt.s.w $f0, $f0
/* 24278 80048E78 44050000 */ mfc1 $a1, $f0
/* 2427C 80048E7C C620000C */ lwc1 $f0, 0xc($s1)
/* 24280 80048E80 46800020 */ cvt.s.w $f0, $f0
/* 24284 80048E84 44060000 */ mfc1 $a2, $f0
/* 24288 80048E88 C6400030 */ lwc1 $f0, 0x30($s2)
/* 2428C 80048E8C 8E470028 */ lw $a3, 0x28($s2)
/* 24290 80048E90 E7A00010 */ swc1 $f0, 0x10($sp)
/* 24294 80048E94 C6200010 */ lwc1 $f0, 0x10($s1)
/* 24298 80048E98 46800020 */ cvt.s.w $f0, $f0
/* 2429C 80048E9C E7A00014 */ swc1 $f0, 0x14($sp)
/* 242A0 80048EA0 C6200014 */ lwc1 $f0, 0x14($s1)
/* 242A4 80048EA4 46800020 */ cvt.s.w $f0, $f0
/* 242A8 80048EA8 E7A00018 */ swc1 $f0, 0x18($sp)
/* 242AC 80048EAC 0C012321 */ jal func_80048C84
/* 242B0 80048EB0 8E240004 */ lw $a0, 4($s1)
/* 242B4 80048EB4 1440006E */ bnez $v0, .L80049070
/* 242B8 80048EB8 0000102D */ daddu $v0, $zero, $zero
.L80048EBC:
/* 242BC 80048EBC 824300B4 */ lb $v1, 0xb4($s2)
/* 242C0 80048EC0 2402001D */ addiu $v0, $zero, 0x1d
/* 242C4 80048EC4 1062006A */ beq $v1, $v0, .L80049070
/* 242C8 80048EC8 0000102D */ daddu $v0, $zero, $zero
/* 242CC 80048ECC 926200AC */ lbu $v0, 0xac($s3)
/* 242D0 80048ED0 30420001 */ andi $v0, $v0, 1
/* 242D4 80048ED4 1040002C */ beqz $v0, .L80048F88
/* 242D8 80048ED8 00000000 */ nop
/* 242DC 80048EDC C60C0038 */ lwc1 $f12, 0x38($s0)
/* 242E0 80048EE0 860200A8 */ lh $v0, 0xa8($s0)
/* 242E4 80048EE4 3C013FE0 */ lui $at, 0x3fe0
/* 242E8 80048EE8 44810800 */ mtc1 $at, $f1
/* 242EC 80048EEC 44800000 */ mtc1 $zero, $f0
/* 242F0 80048EF0 44821000 */ mtc1 $v0, $f2
/* 242F4 80048EF4 00000000 */ nop
/* 242F8 80048EF8 468010A1 */ cvt.d.w $f2, $f2
/* 242FC 80048EFC 46201082 */ mul.d $f2, $f2, $f0
/* 24300 80048F00 00000000 */ nop
/* 24304 80048F04 C60E0040 */ lwc1 $f14, 0x40($s0)
/* 24308 80048F08 8E460028 */ lw $a2, 0x28($s2)
/* 2430C 80048F0C 8E470030 */ lw $a3, 0x30($s2)
/* 24310 80048F10 46006106 */ mov.s $f4, $f12
/* 24314 80048F14 C600003C */ lwc1 $f0, 0x3c($s0)
/* 24318 80048F18 46007186 */ mov.s $f6, $f14
/* 2431C 80048F1C 46000021 */ cvt.d.s $f0, $f0
/* 24320 80048F20 46220000 */ add.d $f0, $f0, $f2
/* 24324 80048F24 E7A40020 */ swc1 $f4, 0x20($sp)
/* 24328 80048F28 E7A60028 */ swc1 $f6, 0x28($sp)
/* 2432C 80048F2C 46200020 */ cvt.s.d $f0, $f0
/* 24330 80048F30 0C00A7A5 */ jal func_80029E94
/* 24334 80048F34 E7A00024 */ swc1 $f0, 0x24($sp)
/* 24338 80048F38 C60C0038 */ lwc1 $f12, 0x38($s0)
/* 2433C 80048F3C C60E0040 */ lwc1 $f14, 0x40($s0)
/* 24340 80048F40 8E460028 */ lw $a2, 0x28($s2)
/* 24344 80048F44 8E470030 */ lw $a3, 0x30($s2)
/* 24348 80048F48 0C00A710 */ jal func_80029C40
/* 2434C 80048F4C 46000506 */ mov.s $f20, $f0
/* 24350 80048F50 3C040005 */ lui $a0, 5
/* 24354 80048F54 27A50020 */ addiu $a1, $sp, 0x20
/* 24358 80048F58 27A60024 */ addiu $a2, $sp, 0x24
/* 2435C 80048F5C 3C013DCC */ lui $at, 0x3dcc
/* 24360 80048F60 3421CCCD */ ori $at, $at, 0xcccd
/* 24364 80048F64 44811000 */ mtc1 $at, $f2
/* 24368 80048F68 27A70028 */ addiu $a3, $sp, 0x28
/* 2436C 80048F6C E7B40010 */ swc1 $f20, 0x10($sp)
/* 24370 80048F70 E7A00014 */ swc1 $f0, 0x14($sp)
/* 24374 80048F74 E7A20018 */ swc1 $f2, 0x18($sp)
/* 24378 80048F78 0C037709 */ jal func_800DDC24
/* 2437C 80048F7C E7A2001C */ swc1 $f2, 0x1c($sp)
/* 24380 80048F80 1440003B */ bnez $v0, .L80049070
/* 24384 80048F84 0000102D */ daddu $v0, $zero, $zero
.L80048F88:
/* 24388 80048F88 8E220000 */ lw $v0, ($s1)
/* 2438C 80048F8C 14400003 */ bnez $v0, .L80048F9C
/* 24390 80048F90 00000000 */ nop
/* 24394 80048F94 080123E9 */ j .L80048FA4
/* 24398 80048F98 0000102D */ daddu $v0, $zero, $zero
.L80048F9C:
/* 2439C 80048F9C 0C00A66F */ jal func_800299BC
/* 243A0 80048FA0 24440001 */ addiu $a0, $v0, 1
.L80048FA4:
/* 243A4 80048FA4 14400032 */ bnez $v0, .L80049070
/* 243A8 80048FA8 0000102D */ daddu $v0, $zero, $zero
/* 243AC 80048FAC 926200AC */ lbu $v0, 0xac($s3)
/* 243B0 80048FB0 30420002 */ andi $v0, $v0, 2
/* 243B4 80048FB4 10400010 */ beqz $v0, .L80048FF8
/* 243B8 80048FB8 24020001 */ addiu $v0, $zero, 1
/* 243BC 80048FBC 824300B4 */ lb $v1, 0xb4($s2)
/* 243C0 80048FC0 14620005 */ bne $v1, $v0, .L80048FD8
/* 243C4 80048FC4 24020002 */ addiu $v0, $zero, 2
/* 243C8 80048FC8 3C01800A */ lui $at, %hi(D_800986F0)
/* 243CC 80048FCC D42286F0 */ ldc1 $f2, %lo(D_800986F0)($at)
/* 243D0 80048FD0 080123FB */ j .L80048FEC
/* 243D4 80048FD4 4600B021 */ cvt.d.s $f0, $f22
.L80048FD8:
/* 243D8 80048FD8 14620007 */ bne $v1, $v0, .L80048FF8
/* 243DC 80048FDC 00000000 */ nop
/* 243E0 80048FE0 3C01800A */ lui $at, %hi(D_800986F8)
/* 243E4 80048FE4 D42286F8 */ ldc1 $f2, %lo(D_800986F8)($at)
/* 243E8 80048FE8 4600B021 */ cvt.d.s $f0, $f22
.L80048FEC:
/* 243EC 80048FEC 46220002 */ mul.d $f0, $f0, $f2
/* 243F0 80048FF0 00000000 */ nop
/* 243F4 80048FF4 462005A0 */ cvt.s.d $f22, $f0
.L80048FF8:
/* 243F8 80048FF8 C6000038 */ lwc1 $f0, 0x38($s0)
/* 243FC 80048FFC C6020040 */ lwc1 $f2, 0x40($s0)
/* 24400 80049000 328200FF */ andi $v0, $s4, 0xff
/* 24404 80049004 E7A00020 */ swc1 $f0, 0x20($sp)
/* 24408 80049008 10400005 */ beqz $v0, .L80049020
/* 2440C 8004900C E7A20028 */ swc1 $f2, 0x28($sp)
/* 24410 80049010 4406C000 */ mfc1 $a2, $f24
/* 24414 80049014 8E07000C */ lw $a3, 0xc($s0)
/* 24418 80049018 08012410 */ j .L80049040
/* 2441C 8004901C 27A40020 */ addiu $a0, $sp, 0x20
.L80049020:
/* 24420 80049020 C6020034 */ lwc1 $f2, 0x34($s0)
/* 24424 80049024 3C014387 */ lui $at, 0x4387
/* 24428 80049028 44810000 */ mtc1 $at, $f0
/* 2442C 8004902C 00000000 */ nop
/* 24430 80049030 46020001 */ sub.s $f0, $f0, $f2
/* 24434 80049034 27A40020 */ addiu $a0, $sp, 0x20
/* 24438 80049038 4406C000 */ mfc1 $a2, $f24
/* 2443C 8004903C 44070000 */ mfc1 $a3, $f0
.L80049040:
/* 24440 80049040 0C00A7D7 */ jal func_80029F5C
/* 24444 80049044 27A50028 */ addiu $a1, $sp, 0x28
/* 24448 80049048 C7AC0020 */ lwc1 $f12, 0x20($sp)
/* 2444C 8004904C C7AE0028 */ lwc1 $f14, 0x28($sp)
/* 24450 80049050 8E460028 */ lw $a2, 0x28($s2)
/* 24454 80049054 0C00A7A5 */ jal func_80029E94
/* 24458 80049058 8E470030 */ lw $a3, 0x30($s2)
/* 2445C 8004905C 4616003E */ c.le.s $f0, $f22
/* 24460 80049060 00000000 */ nop
/* 24464 80049064 45010002 */ bc1t .L80049070
/* 24468 80049068 24020001 */ addiu $v0, $zero, 1
.L8004906C:
/* 2446C 8004906C 0000102D */ daddu $v0, $zero, $zero
.L80049070:
/* 24470 80049070 8FBF0044 */ lw $ra, 0x44($sp)
/* 24474 80049074 8FB40040 */ lw $s4, 0x40($sp)
/* 24478 80049078 8FB3003C */ lw $s3, 0x3c($sp)
/* 2447C 8004907C 8FB20038 */ lw $s2, 0x38($sp)
/* 24480 80049080 8FB10034 */ lw $s1, 0x34($sp)
/* 24484 80049084 8FB00030 */ lw $s0, 0x30($sp)
/* 24488 80049088 D7B80058 */ ldc1 $f24, 0x58($sp)
/* 2448C 8004908C D7B60050 */ ldc1 $f22, 0x50($sp)
/* 24490 80049090 D7B40048 */ ldc1 $f20, 0x48($sp)
/* 24494 80049094 03E00008 */ jr $ra
/* 24498 80049098 27BD0060 */ addiu $sp, $sp, 0x60