.set noat # allow manual use of $at .set noreorder # don't insert nops after branches glabel func_8006BBB0 /* 46FB0 8006BBB0 27BDFF80 */ addiu $sp, $sp, -0x80 /* 46FB4 8006BBB4 AFB30054 */ sw $s3, 0x54($sp) /* 46FB8 8006BBB8 00809821 */ addu $s3, $a0, $zero /* 46FBC 8006BBBC AFB1004C */ sw $s1, 0x4c($sp) /* 46FC0 8006BBC0 27B10018 */ addiu $s1, $sp, 0x18 /* 46FC4 8006BBC4 AFBF0060 */ sw $ra, 0x60($sp) /* 46FC8 8006BBC8 AFB5005C */ sw $s5, 0x5c($sp) /* 46FCC 8006BBCC AFB40058 */ sw $s4, 0x58($sp) /* 46FD0 8006BBD0 AFB20050 */ sw $s2, 0x50($sp) /* 46FD4 8006BBD4 AFB00048 */ sw $s0, 0x48($sp) /* 46FD8 8006BBD8 F7B80078 */ sdc1 $f24, 0x78($sp) /* 46FDC 8006BBDC F7B60070 */ sdc1 $f22, 0x70($sp) /* 46FE0 8006BBE0 F7B40068 */ sdc1 $f20, 0x68($sp) /* 46FE4 8006BBE4 8E630024 */ lw $v1, 0x24($s3) /* 46FE8 8006BBE8 D6740000 */ ldc1 $f20, ($s3) /* 46FEC 8006BBEC 04610003 */ bgez $v1, .L8006BBFC /* 46FF0 8006BBF0 00A0A821 */ addu $s5, $a1, $zero /* 46FF4 8006BBF4 0801AF0A */ j .L8006BC28 /* 46FF8 8006BBF8 24020006 */ addiu $v0, $zero, 6 .L8006BBFC: /* 46FFC 8006BBFC 1460000C */ bnez $v1, .L8006BC30 /* 47000 8006BC00 27A40038 */ addiu $a0, $sp, 0x38 /* 47004 8006BC04 00051600 */ sll $v0, $a1, 0x18 /* 47008 8006BC08 00021603 */ sra $v0, $v0, 0x18 /* 4700C 8006BC0C 38430067 */ xori $v1, $v0, 0x67 /* 47010 8006BC10 2C630001 */ sltiu $v1, $v1, 1 /* 47014 8006BC14 38420047 */ xori $v0, $v0, 0x47 /* 47018 8006BC18 2C420001 */ sltiu $v0, $v0, 1 /* 4701C 8006BC1C 00621825 */ or $v1, $v1, $v0 /* 47020 8006BC20 10600003 */ beqz $v1, .L8006BC30 /* 47024 8006BC24 24020001 */ addiu $v0, $zero, 1 .L8006BC28: /* 47028 8006BC28 AE620024 */ sw $v0, 0x24($s3) /* 4702C 8006BC2C 27A40038 */ addiu $a0, $sp, 0x38 .L8006BC30: /* 47030 8006BC30 0C01AFFF */ jal func_8006BFFC /* 47034 8006BC34 02602821 */ addu $a1, $s3, $zero /* 47038 8006BC38 00021400 */ sll $v0, $v0, 0x10 /* 4703C 8006BC3C 00021C03 */ sra $v1, $v0, 0x10 /* 47040 8006BC40 18600010 */ blez $v1, .L8006BC84 /* 47044 8006BC44 24020002 */ addiu $v0, $zero, 2 /* 47048 8006BC48 3C06800A */ lui $a2, %hi(D_80099DFC) /* 4704C 8006BC4C 24C69DFC */ addiu $a2, $a2, %lo(D_80099DFC) /* 47050 8006BC50 8E670008 */ lw $a3, 8($s3) /* 47054 8006BC54 14620003 */ bne $v1, $v0, .L8006BC64 /* 47058 8006BC58 24020003 */ addiu $v0, $zero, 3 /* 4705C 8006BC5C 3C06800A */ lui $a2, %hi(D_80099DF8) /* 47060 8006BC60 24C69DF8 */ addiu $a2, $a2, %lo(D_80099DF8) .L8006BC64: /* 47064 8006BC64 AE620014 */ sw $v0, 0x14($s3) /* 47068 8006BC68 80C20000 */ lb $v0, ($a2) /* 4706C 8006BC6C 80C30001 */ lb $v1, 1($a2) /* 47070 8006BC70 80C40002 */ lb $a0, 2($a2) /* 47074 8006BC74 A0E20000 */ sb $v0, ($a3) /* 47078 8006BC78 A0E30001 */ sb $v1, 1($a3) /* 4707C 8006BC7C 0801AFF3 */ j .L8006BFCC /* 47080 8006BC80 A0E40002 */ sb $a0, 2($a3) .L8006BC84: /* 47084 8006BC84 14600003 */ bnez $v1, .L8006BC94 /* 47088 8006BC88 00003821 */ addu $a3, $zero, $zero /* 4708C 8006BC8C 0801AFEA */ j .L8006BFA8 /* 47090 8006BC90 A7A00038 */ sh $zero, 0x38($sp) .L8006BC94: /* 47094 8006BC94 44800000 */ mtc1 $zero, $f0 /* 47098 8006BC98 44800800 */ mtc1 $zero, $f1 /* 4709C 8006BC9C 00000000 */ nop /* 470A0 8006BCA0 4620A03C */ c.lt.d $f20, $f0 /* 470A4 8006BCA4 00000000 */ nop /* 470A8 8006BCA8 00000000 */ nop /* 470AC 8006BCAC 45030001 */ bc1tl .L8006BCB4 /* 470B0 8006BCB0 4620A507 */ neg.d $f20, $f20 .L8006BCB4: /* 470B4 8006BCB4 87A30038 */ lh $v1, 0x38($sp) /* 470B8 8006BCB8 24027597 */ addiu $v0, $zero, 0x7597 /* 470BC 8006BCBC 00620018 */ mult $v1, $v0 /* 470C0 8006BCC0 00001812 */ mflo $v1 /* 470C4 8006BCC4 3C0214F8 */ lui $v0, 0x14f8 /* 470C8 8006BCC8 3442B589 */ ori $v0, $v0, 0xb589 /* 470CC 8006BCCC 00620018 */ mult $v1, $v0 /* 470D0 8006BCD0 00031FC3 */ sra $v1, $v1, 0x1f /* 470D4 8006BCD4 00004010 */ mfhi $t0 /* 470D8 8006BCD8 00081343 */ sra $v0, $t0, 0xd /* 470DC 8006BCDC 00431023 */ subu $v0, $v0, $v1 /* 470E0 8006BCE0 2443FFFC */ addiu $v1, $v0, -4 /* 470E4 8006BCE4 00031400 */ sll $v0, $v1, 0x10 /* 470E8 8006BCE8 00021403 */ sra $v0, $v0, 0x10 /* 470EC 8006BCEC 04410013 */ bgez $v0, .L8006BD3C /* 470F0 8006BCF0 A7A30038 */ sh $v1, 0x38($sp) /* 470F4 8006BCF4 00021023 */ negu $v0, $v0 /* 470F8 8006BCF8 24420003 */ addiu $v0, $v0, 3 /* 470FC 8006BCFC 2403FFFC */ addiu $v1, $zero, -4 /* 47100 8006BD00 00431824 */ and $v1, $v0, $v1 /* 47104 8006BD04 00031023 */ negu $v0, $v1 /* 47108 8006BD08 1860001F */ blez $v1, .L8006BD88 /* 4710C 8006BD0C A7A20038 */ sh $v0, 0x38($sp) /* 47110 8006BD10 3C04800A */ lui $a0, %hi(D_80099DB0) /* 47114 8006BD14 24849DB0 */ addiu $a0, $a0, %lo(D_80099DB0) .L8006BD18: /* 47118 8006BD18 30620001 */ andi $v0, $v1, 1 /* 4711C 8006BD1C 10400003 */ beqz $v0, .L8006BD2C /* 47120 8006BD20 00031843 */ sra $v1, $v1, 1 /* 47124 8006BD24 D4800000 */ ldc1 $f0, ($a0) /* 47128 8006BD28 4620A502 */ mul.d $f20, $f20, $f0 .L8006BD2C: /* 4712C 8006BD2C 1C60FFFA */ bgtz $v1, .L8006BD18 /* 47130 8006BD30 24840008 */ addiu $a0, $a0, 8 /* 47134 8006BD34 0801AF62 */ j .L8006BD88 /* 47138 8006BD38 00000000 */ nop .L8006BD3C: /* 4713C 8006BD3C 18400012 */ blez $v0, .L8006BD88 /* 47140 8006BD40 2402FFFC */ addiu $v0, $zero, -4 /* 47144 8006BD44 3C01800A */ lui $at, %hi(D_80099E00) /* 47148 8006BD48 D4229E00 */ ldc1 $f2, %lo(D_80099E00)($at) /* 4714C 8006BD4C 00621024 */ and $v0, $v1, $v0 /* 47150 8006BD50 00021C00 */ sll $v1, $v0, 0x10 /* 47154 8006BD54 00031C03 */ sra $v1, $v1, 0x10 /* 47158 8006BD58 1860000A */ blez $v1, .L8006BD84 /* 4715C 8006BD5C A7A20038 */ sh $v0, 0x38($sp) /* 47160 8006BD60 3C04800A */ lui $a0, %hi(D_80099DB0) /* 47164 8006BD64 24849DB0 */ addiu $a0, $a0, %lo(D_80099DB0) .L8006BD68: /* 47168 8006BD68 30620001 */ andi $v0, $v1, 1 /* 4716C 8006BD6C 10400003 */ beqz $v0, .L8006BD7C /* 47170 8006BD70 00031843 */ sra $v1, $v1, 1 /* 47174 8006BD74 D4800000 */ ldc1 $f0, ($a0) /* 47178 8006BD78 46201082 */ mul.d $f2, $f2, $f0 .L8006BD7C: /* 4717C 8006BD7C 1C60FFFA */ bgtz $v1, .L8006BD68 /* 47180 8006BD80 24840008 */ addiu $a0, $a0, 8 .L8006BD84: /* 47184 8006BD84 4622A503 */ div.d $f20, $f20, $f2 .L8006BD88: /* 47188 8006BD88 8E640024 */ lw $a0, 0x24($s3) /* 4718C 8006BD8C 00151600 */ sll $v0, $s5, 0x18 /* 47190 8006BD90 00021603 */ sra $v0, $v0, 0x18 /* 47194 8006BD94 24030066 */ addiu $v1, $zero, 0x66 /* 47198 8006BD98 14430004 */ bne $v0, $v1, .L8006BDAC /* 4719C 8006BD9C 24920006 */ addiu $s2, $a0, 6 /* 471A0 8006BDA0 87A30038 */ lh $v1, 0x38($sp) /* 471A4 8006BDA4 2482000A */ addiu $v0, $a0, 0xa /* 471A8 8006BDA8 00439021 */ addu $s2, $v0, $v1 .L8006BDAC: /* 471AC 8006BDAC 2A420014 */ slti $v0, $s2, 0x14 /* 471B0 8006BDB0 50400001 */ beql $v0, $zero, .L8006BDB8 /* 471B4 8006BDB4 24120013 */ addiu $s2, $zero, 0x13 .L8006BDB8: /* 471B8 8006BDB8 24020030 */ addiu $v0, $zero, 0x30 /* 471BC 8006BDBC A2220000 */ sb $v0, ($s1) /* 471C0 8006BDC0 26310001 */ addiu $s1, $s1, 1 /* 471C4 8006BDC4 4480C000 */ mtc1 $zero, $f24 /* 471C8 8006BDC8 4480C800 */ mtc1 $zero, $f25 /* 471CC 8006BDCC 3C01800A */ lui $at, %hi(D_80099E08) /* 471D0 8006BDD0 D4369E08 */ ldc1 $f22, %lo(D_80099E08)($at) /* 471D4 8006BDD4 24140030 */ addiu $s4, $zero, 0x30 .L8006BDD8: /* 471D8 8006BDD8 4634C03C */ c.lt.d $f24, $f20 /* 471DC 8006BDDC 24030001 */ addiu $v1, $zero, 1 /* 471E0 8006BDE0 00000000 */ nop /* 471E4 8006BDE4 45010002 */ bc1t .L8006BDF0 /* 471E8 8006BDE8 0012102A */ slt $v0, $zero, $s2 /* 471EC 8006BDEC 00001821 */ addu $v1, $zero, $zero .L8006BDF0: /* 471F0 8006BDF0 00431024 */ and $v0, $v0, $v1 /* 471F4 8006BDF4 10400021 */ beqz $v0, .L8006BE7C /* 471F8 8006BDF8 2652FFF8 */ addiu $s2, $s2, -8 /* 471FC 8006BDFC 4620A00D */ trunc.w.d $f0, $f20 /* 47200 8006BE00 44050000 */ mfc1 $a1, $f0 /* 47204 8006BE04 00000000 */ nop /* 47208 8006BE08 1A400006 */ blez $s2, .L8006BE24 /* 4720C 8006BE0C 26310008 */ addiu $s1, $s1, 8 /* 47210 8006BE10 44850000 */ mtc1 $a1, $f0 /* 47214 8006BE14 00000000 */ nop /* 47218 8006BE18 46800021 */ cvt.d.w $f0, $f0 /* 4721C 8006BE1C 4620A001 */ sub.d $f0, $f20, $f0 /* 47220 8006BE20 46360502 */ mul.d $f20, $f0, $f22 .L8006BE24: /* 47224 8006BE24 18A00010 */ blez $a1, .L8006BE68 /* 47228 8006BE28 24100008 */ addiu $s0, $zero, 8 /* 4722C 8006BE2C 2610FFFF */ addiu $s0, $s0, -1 .L8006BE30: /* 47230 8006BE30 0600000D */ bltz $s0, .L8006BE68 /* 47234 8006BE34 27A40040 */ addiu $a0, $sp, 0x40 /* 47238 8006BE38 0C01B580 */ jal func_8006D600 /* 4723C 8006BE3C 2406000A */ addiu $a2, $zero, 0xa /* 47240 8006BE40 8FA20044 */ lw $v0, 0x44($sp) /* 47244 8006BE44 2631FFFF */ addiu $s1, $s1, -1 /* 47248 8006BE48 24420030 */ addiu $v0, $v0, 0x30 /* 4724C 8006BE4C A2220000 */ sb $v0, ($s1) /* 47250 8006BE50 8FA50040 */ lw $a1, 0x40($sp) /* 47254 8006BE54 1CA0FFF6 */ bgtz $a1, .L8006BE30 /* 47258 8006BE58 2610FFFF */ addiu $s0, $s0, -1 /* 4725C 8006BE5C 0801AF9B */ j .L8006BE6C /* 47260 8006BE60 00000000 */ nop .L8006BE64: /* 47264 8006BE64 A2340000 */ sb $s4, ($s1) .L8006BE68: /* 47268 8006BE68 2610FFFF */ addiu $s0, $s0, -1 .L8006BE6C: /* 4726C 8006BE6C 0603FFFD */ bgezl $s0, .L8006BE64 /* 47270 8006BE70 2631FFFF */ addiu $s1, $s1, -1 /* 47274 8006BE74 0801AF76 */ j .L8006BDD8 /* 47278 8006BE78 26310008 */ addiu $s1, $s1, 8 .L8006BE7C: /* 4727C 8006BE7C 2623FFFF */ addiu $v1, $s1, -1 /* 47280 8006BE80 27A20018 */ addiu $v0, $sp, 0x18 /* 47284 8006BE84 00629023 */ subu $s2, $v1, $v0 /* 47288 8006BE88 97A20038 */ lhu $v0, 0x38($sp) /* 4728C 8006BE8C 83A30019 */ lb $v1, 0x19($sp) /* 47290 8006BE90 24420007 */ addiu $v0, $v0, 7 /* 47294 8006BE94 A7A20038 */ sh $v0, 0x38($sp) /* 47298 8006BE98 24020030 */ addiu $v0, $zero, 0x30 /* 4729C 8006BE9C 14620009 */ bne $v1, $v0, .L8006BEC4 /* 472A0 8006BEA0 27B10019 */ addiu $s1, $sp, 0x19 /* 472A4 8006BEA4 24030030 */ addiu $v1, $zero, 0x30 .L8006BEA8: /* 472A8 8006BEA8 97A20038 */ lhu $v0, 0x38($sp) /* 472AC 8006BEAC 26310001 */ addiu $s1, $s1, 1 /* 472B0 8006BEB0 2442FFFF */ addiu $v0, $v0, -1 /* 472B4 8006BEB4 A7A20038 */ sh $v0, 0x38($sp) /* 472B8 8006BEB8 82220000 */ lb $v0, ($s1) /* 472BC 8006BEBC 1043FFFA */ beq $v0, $v1, .L8006BEA8 /* 472C0 8006BEC0 2652FFFF */ addiu $s2, $s2, -1 .L8006BEC4: /* 472C4 8006BEC4 8E650024 */ lw $a1, 0x24($s3) /* 472C8 8006BEC8 00151600 */ sll $v0, $s5, 0x18 /* 472CC 8006BECC 00022603 */ sra $a0, $v0, 0x18 /* 472D0 8006BED0 24020066 */ addiu $v0, $zero, 0x66 /* 472D4 8006BED4 14820005 */ bne $a0, $v0, .L8006BEEC /* 472D8 8006BED8 38830065 */ xori $v1, $a0, 0x65 /* 472DC 8006BEDC 87A30038 */ lh $v1, 0x38($sp) /* 472E0 8006BEE0 24A20001 */ addiu $v0, $a1, 1 /* 472E4 8006BEE4 0801AFC0 */ j .L8006BF00 /* 472E8 8006BEE8 00433821 */ addu $a3, $v0, $v1 .L8006BEEC: /* 472EC 8006BEEC 2C630001 */ sltiu $v1, $v1, 1 /* 472F0 8006BEF0 38820045 */ xori $v0, $a0, 0x45 /* 472F4 8006BEF4 2C420001 */ sltiu $v0, $v0, 1 /* 472F8 8006BEF8 00621825 */ or $v1, $v1, $v0 /* 472FC 8006BEFC 00A33821 */ addu $a3, $a1, $v1 .L8006BF00: /* 47300 8006BF00 00071400 */ sll $v0, $a3, 0x10 /* 47304 8006BF04 00021403 */ sra $v0, $v0, 0x10 /* 47308 8006BF08 0242102A */ slt $v0, $s2, $v0 /* 4730C 8006BF0C 54400001 */ bnel $v0, $zero, .L8006BF14 /* 47310 8006BF10 02403821 */ addu $a3, $s2, $zero .L8006BF14: /* 47314 8006BF14 00071400 */ sll $v0, $a3, 0x10 /* 47318 8006BF18 00022403 */ sra $a0, $v0, 0x10 /* 4731C 8006BF1C 18800022 */ blez $a0, .L8006BFA8 /* 47320 8006BF20 0092102A */ slt $v0, $a0, $s2 /* 47324 8006BF24 10400008 */ beqz $v0, .L8006BF48 /* 47328 8006BF28 24030030 */ addiu $v1, $zero, 0x30 /* 4732C 8006BF2C 02241021 */ addu $v0, $s1, $a0 /* 47330 8006BF30 80420000 */ lb $v0, ($v0) /* 47334 8006BF34 28420035 */ slti $v0, $v0, 0x35 /* 47338 8006BF38 38420001 */ xori $v0, $v0, 1 /* 4733C 8006BF3C 00021023 */ negu $v0, $v0 /* 47340 8006BF40 30420039 */ andi $v0, $v0, 0x39 /* 47344 8006BF44 34430030 */ ori $v1, $v0, 0x30 .L8006BF48: /* 47348 8006BF48 2485FFFF */ addiu $a1, $a0, -1 /* 4734C 8006BF4C 02252021 */ addu $a0, $s1, $a1 /* 47350 8006BF50 80820000 */ lb $v0, ($a0) /* 47354 8006BF54 54430008 */ bnel $v0, $v1, .L8006BF78 /* 47358 8006BF58 24020039 */ addiu $v0, $zero, 0x39 /* 4735C 8006BF5C 00403021 */ addu $a2, $v0, $zero .L8006BF60: /* 47360 8006BF60 2484FFFF */ addiu $a0, $a0, -1 /* 47364 8006BF64 80820000 */ lb $v0, ($a0) /* 47368 8006BF68 24E7FFFF */ addiu $a3, $a3, -1 /* 4736C 8006BF6C 1046FFFC */ beq $v0, $a2, .L8006BF60 /* 47370 8006BF70 24A5FFFF */ addiu $a1, $a1, -1 /* 47374 8006BF74 24020039 */ addiu $v0, $zero, 0x39 .L8006BF78: /* 47378 8006BF78 14620004 */ bne $v1, $v0, .L8006BF8C /* 4737C 8006BF7C 02251821 */ addu $v1, $s1, $a1 /* 47380 8006BF80 90620000 */ lbu $v0, ($v1) /* 47384 8006BF84 24420001 */ addiu $v0, $v0, 1 /* 47388 8006BF88 A0620000 */ sb $v0, ($v1) .L8006BF8C: /* 4738C 8006BF8C 04A10007 */ bgez $a1, .L8006BFAC /* 47390 8006BF90 02602021 */ addu $a0, $s3, $zero /* 47394 8006BF94 97A20038 */ lhu $v0, 0x38($sp) /* 47398 8006BF98 2631FFFF */ addiu $s1, $s1, -1 /* 4739C 8006BF9C 24E70001 */ addiu $a3, $a3, 1 /* 473A0 8006BFA0 24420001 */ addiu $v0, $v0, 1 /* 473A4 8006BFA4 A7A20038 */ sh $v0, 0x38($sp) .L8006BFA8: /* 473A8 8006BFA8 02602021 */ addu $a0, $s3, $zero .L8006BFAC: /* 473AC 8006BFAC 00152E00 */ sll $a1, $s5, 0x18 /* 473B0 8006BFB0 87A20038 */ lh $v0, 0x38($sp) /* 473B4 8006BFB4 00052E03 */ sra $a1, $a1, 0x18 /* 473B8 8006BFB8 02203021 */ addu $a2, $s1, $zero /* 473BC 8006BFBC 00073C00 */ sll $a3, $a3, 0x10 /* 473C0 8006BFC0 00073C03 */ sra $a3, $a3, 0x10 /* 473C4 8006BFC4 0C01B025 */ jal func_8006C094 /* 473C8 8006BFC8 AFA20010 */ sw $v0, 0x10($sp) .L8006BFCC: /* 473CC 8006BFCC 8FBF0060 */ lw $ra, 0x60($sp) /* 473D0 8006BFD0 8FB5005C */ lw $s5, 0x5c($sp) /* 473D4 8006BFD4 8FB40058 */ lw $s4, 0x58($sp) /* 473D8 8006BFD8 8FB30054 */ lw $s3, 0x54($sp) /* 473DC 8006BFDC 8FB20050 */ lw $s2, 0x50($sp) /* 473E0 8006BFE0 8FB1004C */ lw $s1, 0x4c($sp) /* 473E4 8006BFE4 8FB00048 */ lw $s0, 0x48($sp) /* 473E8 8006BFE8 D7B80078 */ ldc1 $f24, 0x78($sp) /* 473EC 8006BFEC D7B60070 */ ldc1 $f22, 0x70($sp) /* 473F0 8006BFF0 D7B40068 */ ldc1 $f20, 0x68($sp) /* 473F4 8006BFF4 03E00008 */ jr $ra /* 473F8 8006BFF8 27BD0080 */ addiu $sp, $sp, 0x80