.set noat # allow manual use of $at .set noreorder # don't insert nops after branches glabel func_8004E158 /* 29558 8004E158 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 2955C 8004E15C AFB20018 */ sw $s2, 0x18($sp) /* 29560 8004E160 0080902D */ daddu $s2, $a0, $zero /* 29564 8004E164 AFB00010 */ sw $s0, 0x10($sp) /* 29568 8004E168 00A0802D */ daddu $s0, $a1, $zero /* 2956C 8004E16C AFB10014 */ sw $s1, 0x14($sp) /* 29570 8004E170 00C0882D */ daddu $s1, $a2, $zero /* 29574 8004E174 3C050002 */ lui $a1, 2 /* 29578 8004E178 34A5625A */ ori $a1, $a1, 0x625a /* 2957C 8004E17C 24060030 */ addiu $a2, $zero, 0x30 /* 29580 8004E180 AFBF001C */ sw $ra, 0x1c($sp) /* 29584 8004E184 0C013A20 */ jal func_8004E880 /* 29588 8004E188 AE470000 */ sw $a3, ($s2) /* 2958C 8004E18C 0000282D */ daddu $a1, $zero, $zero /* 29590 8004E190 2404007F */ addiu $a0, $zero, 0x7f /* 29594 8004E194 3C013F80 */ lui $at, 0x3f80 /* 29598 8004E198 44810000 */ mtc1 $at, $f0 /* 2959C 8004E19C 34028000 */ ori $v0, $zero, 0x8000 /* 295A0 8004E1A0 AE420048 */ sw $v0, 0x48($s2) /* 295A4 8004E1A4 24023CF0 */ addiu $v0, $zero, 0x3cf0 /* 295A8 8004E1A8 AE4200B0 */ sw $v0, 0xb0($s2) /* 295AC 8004E1AC 3C027F00 */ lui $v0, 0x7f00 /* 295B0 8004E1B0 AE4200C0 */ sw $v0, 0xc0($s2) /* 295B4 8004E1B4 24020001 */ addiu $v0, $zero, 1 /* 295B8 8004E1B8 A242022B */ sb $v0, 0x22b($s2) /* 295BC 8004E1BC 24020002 */ addiu $v0, $zero, 2 /* 295C0 8004E1C0 AE400014 */ sw $zero, 0x14($s2) /* 295C4 8004E1C4 AE400018 */ sw $zero, 0x18($s2) /* 295C8 8004E1C8 AE40001C */ sw $zero, 0x1c($s2) /* 295CC 8004E1CC AE400020 */ sw $zero, 0x20($s2) /* 295D0 8004E1D0 A6400058 */ sh $zero, 0x58($s2) /* 295D4 8004E1D4 A640005A */ sh $zero, 0x5a($s2) /* 295D8 8004E1D8 AE400068 */ sw $zero, 0x68($s2) /* 295DC 8004E1DC AE40006C */ sw $zero, 0x6c($s2) /* 295E0 8004E1E0 AE400070 */ sw $zero, 0x70($s2) /* 295E4 8004E1E4 AE4000BC */ sw $zero, 0xbc($s2) /* 295E8 8004E1E8 AE4000B8 */ sw $zero, 0xb8($s2) /* 295EC 8004E1EC AE4000B4 */ sw $zero, 0xb4($s2) /* 295F0 8004E1F0 AE4000CC */ sw $zero, 0xcc($s2) /* 295F4 8004E1F4 AE4000C8 */ sw $zero, 0xc8($s2) /* 295F8 8004E1F8 AE4000C4 */ sw $zero, 0xc4($s2) /* 295FC 8004E1FC A640020C */ sh $zero, 0x20c($s2) /* 29600 8004E200 A640020E */ sh $zero, 0x20e($s2) /* 29604 8004E204 A2400220 */ sb $zero, 0x220($s2) /* 29608 8004E208 AE400204 */ sw $zero, 0x204($s2) /* 2960C 8004E20C A2400232 */ sb $zero, 0x232($s2) /* 29610 8004E210 A2400221 */ sb $zero, 0x221($s2) /* 29614 8004E214 A2500234 */ sb $s0, 0x234($s2) /* 29618 8004E218 A2510235 */ sb $s1, 0x235($s2) /* 2961C 8004E21C AE400168 */ sw $zero, 0x168($s2) /* 29620 8004E220 A2400222 */ sb $zero, 0x222($s2) /* 29624 8004E224 A2400223 */ sb $zero, 0x223($s2) /* 29628 8004E228 A240022A */ sb $zero, 0x22a($s2) /* 2962C 8004E22C A240022C */ sb $zero, 0x22c($s2) /* 29630 8004E230 E64000D0 */ swc1 $f0, 0xd0($s2) /* 29634 8004E234 A240022D */ sb $zero, 0x22d($s2) /* 29638 8004E238 A242022F */ sb $v0, 0x22f($s2) /* 2963C 8004E23C 24020003 */ addiu $v0, $zero, 3 /* 29640 8004E240 A2420230 */ sb $v0, 0x230($s2) /* 29644 8004E244 24020004 */ addiu $v0, $zero, 4 /* 29648 8004E248 A240022E */ sb $zero, 0x22e($s2) /* 2964C 8004E24C A2420231 */ sb $v0, 0x231($s2) /* 29650 8004E250 00051400 */ sll $v0, $a1, 0x10 .L8004E254: /* 29654 8004E254 00021C03 */ sra $v1, $v0, 0x10 /* 29658 8004E258 00031040 */ sll $v0, $v1, 1 /* 2965C 8004E25C 00431021 */ addu $v0, $v0, $v1 /* 29660 8004E260 00021140 */ sll $v0, $v0, 5 /* 29664 8004E264 2442025C */ addiu $v0, $v0, 0x25c /* 29668 8004E268 02421021 */ addu $v0, $s2, $v0 /* 2966C 8004E26C AC400018 */ sw $zero, 0x18($v0) /* 29670 8004E270 AC400028 */ sw $zero, 0x28($v0) /* 29674 8004E274 A4400046 */ sh $zero, 0x46($v0) /* 29678 8004E278 A0400048 */ sb $zero, 0x48($v0) /* 2967C 8004E27C A040004A */ sb $zero, 0x4a($v0) /* 29680 8004E280 A040004B */ sb $zero, 0x4b($v0) /* 29684 8004E284 A4400044 */ sh $zero, 0x44($v0) /* 29688 8004E288 A0400058 */ sb $zero, 0x58($v0) /* 2968C 8004E28C A0440049 */ sb $a0, 0x49($v0) /* 29690 8004E290 A040004C */ sb $zero, 0x4c($v0) /* 29694 8004E294 28620008 */ slti $v0, $v1, 8 /* 29698 8004E298 10400005 */ beqz $v0, .L8004E2B0 /* 2969C 8004E29C 24A20001 */ addiu $v0, $a1, 1 /* 296A0 8004E2A0 00031080 */ sll $v0, $v1, 2 /* 296A4 8004E2A4 02421021 */ addu $v0, $s2, $v0 /* 296A8 8004E2A8 AC400238 */ sw $zero, 0x238($v0) /* 296AC 8004E2AC 24A20001 */ addiu $v0, $a1, 1 .L8004E2B0: /* 296B0 8004E2B0 0040282D */ daddu $a1, $v0, $zero /* 296B4 8004E2B4 00021400 */ sll $v0, $v0, 0x10 /* 296B8 8004E2B8 00021403 */ sra $v0, $v0, 0x10 /* 296BC 8004E2BC 28420010 */ slti $v0, $v0, 0x10 /* 296C0 8004E2C0 1440FFE4 */ bnez $v0, .L8004E254 /* 296C4 8004E2C4 00051400 */ sll $v0, $a1, 0x10 /* 296C8 8004E2C8 0000282D */ daddu $a1, $zero, $zero .L8004E2CC: /* 296CC 8004E2CC 00051400 */ sll $v0, $a1, 0x10 /* 296D0 8004E2D0 24A40001 */ addiu $a0, $a1, 1 /* 296D4 8004E2D4 0080282D */ daddu $a1, $a0, $zero /* 296D8 8004E2D8 00021403 */ sra $v0, $v0, 0x10 /* 296DC 8004E2DC 00021840 */ sll $v1, $v0, 1 /* 296E0 8004E2E0 00621821 */ addu $v1, $v1, $v0 /* 296E4 8004E2E4 000318C0 */ sll $v1, $v1, 3 /* 296E8 8004E2E8 2463085C */ addiu $v1, $v1, 0x85c /* 296EC 8004E2EC 02431821 */ addu $v1, $s2, $v1 /* 296F0 8004E2F0 00042400 */ sll $a0, $a0, 0x10 /* 296F4 8004E2F4 00042403 */ sra $a0, $a0, 0x10 /* 296F8 8004E2F8 28840018 */ slti $a0, $a0, 0x18 /* 296FC 8004E2FC A4600008 */ sh $zero, 8($v1) /* 29700 8004E300 A460000A */ sh $zero, 0xa($v1) /* 29704 8004E304 AC60000C */ sw $zero, 0xc($v1) /* 29708 8004E308 A4600014 */ sh $zero, 0x14($v1) /* 2970C 8004E30C A0600016 */ sb $zero, 0x16($v1) /* 29710 8004E310 1480FFEE */ bnez $a0, .L8004E2CC /* 29714 8004E314 A0600017 */ sb $zero, 0x17($v1) /* 29718 8004E318 2644002C */ addiu $a0, $s2, 0x2c /* 2971C 8004E31C 0C014EBB */ jal func_80053AEC /* 29720 8004E320 24057FFF */ addiu $a1, $zero, 0x7fff /* 29724 8004E324 0C015444 */ jal func_80055110 /* 29728 8004E328 0240202D */ daddu $a0, $s2, $zero /* 2972C 8004E32C 8FBF001C */ lw $ra, 0x1c($sp) /* 29730 8004E330 8FB20018 */ lw $s2, 0x18($sp) /* 29734 8004E334 8FB10014 */ lw $s1, 0x14($sp) /* 29738 8004E338 8FB00010 */ lw $s0, 0x10($sp) /* 2973C 8004E33C 03E00008 */ jr $ra /* 29740 8004E340 27BD0020 */ addiu $sp, $sp, 0x20