.set noat # allow manual use of $at .set noreorder # don't insert nops after branches glabel func_800498B4 /* 24CB4 800498B4 27BDFFA8 */ addiu $sp, $sp, -0x58 /* 24CB8 800498B8 AFB40048 */ sw $s4, 0x48($sp) /* 24CBC 800498BC 0080A02D */ daddu $s4, $a0, $zero /* 24CC0 800498C0 AFBF004C */ sw $ra, 0x4c($sp) /* 24CC4 800498C4 AFB30044 */ sw $s3, 0x44($sp) /* 24CC8 800498C8 AFB20040 */ sw $s2, 0x40($sp) /* 24CCC 800498CC AFB1003C */ sw $s1, 0x3c($sp) /* 24CD0 800498D0 AFB00038 */ sw $s0, 0x38($sp) /* 24CD4 800498D4 F7B40050 */ sdc1 $f20, 0x50($sp) /* 24CD8 800498D8 8E920148 */ lw $s2, 0x148($s4) /* 24CDC 800498DC 00A0982D */ daddu $s3, $a1, $zero /* 24CE0 800498E0 86440008 */ lh $a0, 8($s2) /* 24CE4 800498E4 0C00E9EB */ jal func_8003A7AC /* 24CE8 800498E8 00C0882D */ daddu $s1, $a2, $zero /* 24CEC 800498EC 8E630014 */ lw $v1, 0x14($s3) /* 24CF0 800498F0 0460004F */ bltz $v1, .L80049A30 /* 24CF4 800498F4 0040802D */ daddu $s0, $v0, $zero /* 24CF8 800498F8 0220202D */ daddu $a0, $s1, $zero /* 24CFC 800498FC AFA00010 */ sw $zero, 0x10($sp) /* 24D00 80049900 8E660024 */ lw $a2, 0x24($s3) /* 24D04 80049904 8E670028 */ lw $a3, 0x28($s3) /* 24D08 80049908 0C012359 */ jal func_80048D64 /* 24D0C 8004990C 0240282D */ daddu $a1, $s2, $zero /* 24D10 80049910 10400047 */ beqz $v0, .L80049A30 /* 24D14 80049914 00000000 */ nop /* 24D18 80049918 3C02800F */ lui $v0, %hi(D_800F7CC0) /* 24D1C 8004991C 8C427CC0 */ lw $v0, %lo(D_800F7CC0)($v0) /* 24D20 80049920 C60C0038 */ lwc1 $f12, 0x38($s0) /* 24D24 80049924 C602003C */ lwc1 $f2, 0x3c($s0) /* 24D28 80049928 C6040040 */ lwc1 $f4, 0x40($s0) /* 24D2C 8004992C 46006006 */ mov.s $f0, $f12 /* 24D30 80049930 8C460028 */ lw $a2, 0x28($v0) /* 24D34 80049934 8C470030 */ lw $a3, 0x30($v0) /* 24D38 80049938 46002386 */ mov.s $f14, $f4 /* 24D3C 8004993C E7A00028 */ swc1 $f0, 0x28($sp) /* 24D40 80049940 E7A2002C */ swc1 $f2, 0x2c($sp) /* 24D44 80049944 0C00A710 */ jal func_80029C40 /* 24D48 80049948 E7A40030 */ swc1 $f4, 0x30($sp) /* 24D4C 8004994C C6620018 */ lwc1 $f2, 0x18($s3) /* 24D50 80049950 46000506 */ mov.s $f20, $f0 /* 24D54 80049954 E7B40014 */ swc1 $f20, 0x14($sp) /* 24D58 80049958 E7A20010 */ swc1 $f2, 0x10($sp) /* 24D5C 8004995C 860200A8 */ lh $v0, 0xa8($s0) /* 24D60 80049960 27A50028 */ addiu $a1, $sp, 0x28 /* 24D64 80049964 44820000 */ mtc1 $v0, $f0 /* 24D68 80049968 00000000 */ nop /* 24D6C 8004996C 46800020 */ cvt.s.w $f0, $f0 /* 24D70 80049970 E7A00018 */ swc1 $f0, 0x18($sp) /* 24D74 80049974 860200A6 */ lh $v0, 0xa6($s0) /* 24D78 80049978 27A6002C */ addiu $a2, $sp, 0x2c /* 24D7C 8004997C 44820000 */ mtc1 $v0, $f0 /* 24D80 80049980 00000000 */ nop /* 24D84 80049984 46800020 */ cvt.s.w $f0, $f0 /* 24D88 80049988 E7A0001C */ swc1 $f0, 0x1c($sp) /* 24D8C 8004998C 8E040080 */ lw $a0, 0x80($s0) /* 24D90 80049990 0C037709 */ jal func_800DDC24 /* 24D94 80049994 27A70030 */ addiu $a3, $sp, 0x30 /* 24D98 80049998 14400025 */ bnez $v0, .L80049A30 /* 24D9C 8004999C 0200202D */ daddu $a0, $s0, $zero /* 24DA0 800499A0 240502F4 */ addiu $a1, $zero, 0x2f4 /* 24DA4 800499A4 3C060020 */ lui $a2, 0x20 /* 24DA8 800499A8 0C01245C */ jal func_80049170 /* 24DAC 800499AC E614000C */ swc1 $f20, 0xc($s0) /* 24DB0 800499B0 0000202D */ daddu $a0, $zero, $zero /* 24DB4 800499B4 0200282D */ daddu $a1, $s0, $zero /* 24DB8 800499B8 0000302D */ daddu $a2, $zero, $zero /* 24DBC 800499BC 84A300A8 */ lh $v1, 0xa8($a1) /* 24DC0 800499C0 3C013F80 */ lui $at, 0x3f80 /* 24DC4 800499C4 44810000 */ mtc1 $at, $f0 /* 24DC8 800499C8 3C014000 */ lui $at, 0x4000 /* 24DCC 800499CC 44811000 */ mtc1 $at, $f2 /* 24DD0 800499D0 3C01C1A0 */ lui $at, 0xc1a0 /* 24DD4 800499D4 44812000 */ mtc1 $at, $f4 /* 24DD8 800499D8 2402000F */ addiu $v0, $zero, 0xf /* 24DDC 800499DC AFA2001C */ sw $v0, 0x1c($sp) /* 24DE0 800499E0 44833000 */ mtc1 $v1, $f6 /* 24DE4 800499E4 00000000 */ nop /* 24DE8 800499E8 468031A0 */ cvt.s.w $f6, $f6 /* 24DEC 800499EC 44073000 */ mfc1 $a3, $f6 /* 24DF0 800499F0 27A20034 */ addiu $v0, $sp, 0x34 /* 24DF4 800499F4 AFA20020 */ sw $v0, 0x20($sp) /* 24DF8 800499F8 E7A00010 */ swc1 $f0, 0x10($sp) /* 24DFC 800499FC E7A20014 */ swc1 $f2, 0x14($sp) /* 24E00 80049A00 0C01BF9C */ jal func_8006FE70 /* 24E04 80049A04 E7A40018 */ swc1 $f4, 0x18($sp) /* 24E08 80049A08 8E420018 */ lw $v0, 0x18($s2) /* 24E0C 80049A0C 9442002A */ lhu $v0, 0x2a($v0) /* 24E10 80049A10 30420001 */ andi $v0, $v0, 1 /* 24E14 80049A14 10400003 */ beqz $v0, .L80049A24 /* 24E18 80049A18 2402000A */ addiu $v0, $zero, 0xa /* 24E1C 80049A1C 080126B2 */ j .L80049AC8 /* 24E20 80049A20 AE820070 */ sw $v0, 0x70($s4) .L80049A24: /* 24E24 80049A24 2402000C */ addiu $v0, $zero, 0xc /* 24E28 80049A28 080126B2 */ j .L80049AC8 /* 24E2C 80049A2C AE820070 */ sw $v0, 0x70($s4) .L80049A30: /* 24E30 80049A30 8602008C */ lh $v0, 0x8c($s0) /* 24E34 80049A34 14400024 */ bnez $v0, .L80049AC8 /* 24E38 80049A38 00000000 */ nop /* 24E3C 80049A3C 9602008E */ lhu $v0, 0x8e($s0) /* 24E40 80049A40 2442FFFF */ addiu $v0, $v0, -1 /* 24E44 80049A44 A602008E */ sh $v0, 0x8e($s0) /* 24E48 80049A48 00021400 */ sll $v0, $v0, 0x10 /* 24E4C 80049A4C 1C40001E */ bgtz $v0, .L80049AC8 /* 24E50 80049A50 00000000 */ nop /* 24E54 80049A54 8E820074 */ lw $v0, 0x74($s4) /* 24E58 80049A58 2442FFFF */ addiu $v0, $v0, -1 /* 24E5C 80049A5C 10400019 */ beqz $v0, .L80049AC4 /* 24E60 80049A60 AE820074 */ sw $v0, 0x74($s4) /* 24E64 80049A64 8E420018 */ lw $v0, 0x18($s2) /* 24E68 80049A68 9442002A */ lhu $v0, 0x2a($v0) /* 24E6C 80049A6C 30420010 */ andi $v0, $v0, 0x10 /* 24E70 80049A70 14400007 */ bnez $v0, .L80049A90 /* 24E74 80049A74 00000000 */ nop /* 24E78 80049A78 C600000C */ lwc1 $f0, 0xc($s0) /* 24E7C 80049A7C 3C014334 */ lui $at, 0x4334 /* 24E80 80049A80 44816000 */ mtc1 $at, $f12 /* 24E84 80049A84 0C00A6B9 */ jal func_80029AE4 /* 24E88 80049A88 460C0300 */ add.s $f12, $f0, $f12 /* 24E8C 80049A8C E600000C */ swc1 $f0, 0xc($s0) .L80049A90: /* 24E90 80049A90 8E640008 */ lw $a0, 8($s3) /* 24E94 80049A94 000417C2 */ srl $v0, $a0, 0x1f /* 24E98 80049A98 00822021 */ addu $a0, $a0, $v0 /* 24E9C 80049A9C 00042043 */ sra $a0, $a0, 1 /* 24EA0 80049AA0 0C00A66F */ jal func_800299BC /* 24EA4 80049AA4 24840001 */ addiu $a0, $a0, 1 /* 24EA8 80049AA8 8E630008 */ lw $v1, 8($s3) /* 24EAC 80049AAC 000327C2 */ srl $a0, $v1, 0x1f /* 24EB0 80049AB0 00641821 */ addu $v1, $v1, $a0 /* 24EB4 80049AB4 00031843 */ sra $v1, $v1, 1 /* 24EB8 80049AB8 00621821 */ addu $v1, $v1, $v0 /* 24EBC 80049ABC 080126B2 */ j .L80049AC8 /* 24EC0 80049AC0 A603008E */ sh $v1, 0x8e($s0) .L80049AC4: /* 24EC4 80049AC4 AE800070 */ sw $zero, 0x70($s4) .L80049AC8: /* 24EC8 80049AC8 8FBF004C */ lw $ra, 0x4c($sp) /* 24ECC 80049ACC 8FB40048 */ lw $s4, 0x48($sp) /* 24ED0 80049AD0 8FB30044 */ lw $s3, 0x44($sp) /* 24ED4 80049AD4 8FB20040 */ lw $s2, 0x40($sp) /* 24ED8 80049AD8 8FB1003C */ lw $s1, 0x3c($sp) /* 24EDC 80049ADC 8FB00038 */ lw $s0, 0x38($sp) /* 24EE0 80049AE0 D7B40050 */ ldc1 $f20, 0x50($sp) /* 24EE4 80049AE4 03E00008 */ jr $ra /* 24EE8 80049AE8 27BD0058 */ addiu $sp, $sp, 0x58