papermario/ver/jp/asm/nonmatchings/main_46C50/func_8006C094.s
Ethan Roseman 698cf99458
jp cod (Created the first segment's c files for jp) (#194)
* jp cod

* just have less code and it works

* oops

* removing splat cause subrepo is being dumb

* git subrepo clone https://github.com/ethteck/splat.git tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "d7281bae6a"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "d7281bae6a"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

* move jp stuff + revert configure

* git subrepo pull tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "c56195a9c5"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "c56195a9c5"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"
2021-02-27 00:36:33 +09:00

397 lines
20 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8006C094
/* 47494 8006C094 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 47498 8006C098 AFB20018 */ sw $s2, 0x18($sp)
/* 4749C 8006C09C 00C09021 */ addu $s2, $a2, $zero
/* 474A0 8006C0A0 8FA60040 */ lw $a2, 0x40($sp)
/* 474A4 8006C0A4 AFB10014 */ sw $s1, 0x14($sp)
/* 474A8 8006C0A8 00808821 */ addu $s1, $a0, $zero
/* 474AC 8006C0AC AFB3001C */ sw $s3, 0x1c($sp)
/* 474B0 8006C0B0 00A09821 */ addu $s3, $a1, $zero
/* 474B4 8006C0B4 AFB50024 */ sw $s5, 0x24($sp)
/* 474B8 8006C0B8 00E0A821 */ addu $s5, $a3, $zero
/* 474BC 8006C0BC 00073C00 */ sll $a3, $a3, 0x10
/* 474C0 8006C0C0 AFBF0028 */ sw $ra, 0x28($sp)
/* 474C4 8006C0C4 AFB40020 */ sw $s4, 0x20($sp)
/* 474C8 8006C0C8 AFB00010 */ sw $s0, 0x10($sp)
/* 474CC 8006C0CC 1CE00004 */ bgtz $a3, .L8006C0E0
/* 474D0 8006C0D0 00C0A021 */ addu $s4, $a2, $zero
/* 474D4 8006C0D4 24150001 */ addiu $s5, $zero, 1
/* 474D8 8006C0D8 3C12800A */ lui $s2, %hi(D_80099E10)
/* 474DC 8006C0DC 26529E10 */ addiu $s2, $s2, %lo(D_80099E10)
.L8006C0E0:
/* 474E0 8006C0E0 00051600 */ sll $v0, $a1, 0x18
/* 474E4 8006C0E4 00022603 */ sra $a0, $v0, 0x18
/* 474E8 8006C0E8 24050066 */ addiu $a1, $zero, 0x66
/* 474EC 8006C0EC 1085000F */ beq $a0, $a1, .L8006C12C
/* 474F0 8006C0F0 38830067 */ xori $v1, $a0, 0x67
/* 474F4 8006C0F4 2C630001 */ sltiu $v1, $v1, 1
/* 474F8 8006C0F8 38820047 */ xori $v0, $a0, 0x47
/* 474FC 8006C0FC 2C420001 */ sltiu $v0, $v0, 1
/* 47500 8006C100 00621825 */ or $v1, $v1, $v0
/* 47504 8006C104 106000B4 */ beqz $v1, .L8006C3D8
/* 47508 8006C108 00061400 */ sll $v0, $a2, 0x10
/* 4750C 8006C10C 00021C03 */ sra $v1, $v0, 0x10
/* 47510 8006C110 2862FFFC */ slti $v0, $v1, -4
/* 47514 8006C114 1440009B */ bnez $v0, .L8006C384
/* 47518 8006C118 00131600 */ sll $v0, $s3, 0x18
/* 4751C 8006C11C 8E220024 */ lw $v0, 0x24($s1)
/* 47520 8006C120 0062102A */ slt $v0, $v1, $v0
/* 47524 8006C124 10400097 */ beqz $v0, .L8006C384
/* 47528 8006C128 00131600 */ sll $v0, $s3, 0x18
.L8006C12C:
/* 4752C 8006C12C 10850011 */ beq $a0, $a1, .L8006C174
/* 47530 8006C130 24D40001 */ addiu $s4, $a2, 1
/* 47534 8006C134 8E220030 */ lw $v0, 0x30($s1)
/* 47538 8006C138 30420008 */ andi $v0, $v0, 8
/* 4753C 8006C13C 14400006 */ bnez $v0, .L8006C158
/* 47540 8006C140 00151C00 */ sll $v1, $s5, 0x10
/* 47544 8006C144 8E220024 */ lw $v0, 0x24($s1)
/* 47548 8006C148 00031C03 */ sra $v1, $v1, 0x10
/* 4754C 8006C14C 0062102A */ slt $v0, $v1, $v0
/* 47550 8006C150 54400001 */ bnel $v0, $zero, .L8006C158
/* 47554 8006C154 AE230024 */ sw $v1, 0x24($s1)
.L8006C158:
/* 47558 8006C158 8E230024 */ lw $v1, 0x24($s1)
/* 4755C 8006C15C 00141400 */ sll $v0, $s4, 0x10
/* 47560 8006C160 00021403 */ sra $v0, $v0, 0x10
/* 47564 8006C164 00621823 */ subu $v1, $v1, $v0
/* 47568 8006C168 04610002 */ bgez $v1, .L8006C174
/* 4756C 8006C16C AE230024 */ sw $v1, 0x24($s1)
/* 47570 8006C170 AE200024 */ sw $zero, 0x24($s1)
.L8006C174:
/* 47574 8006C174 00141400 */ sll $v0, $s4, 0x10
/* 47578 8006C178 00029C03 */ sra $s3, $v0, 0x10
/* 4757C 8006C17C 1E600036 */ bgtz $s3, .L8006C258
/* 47580 8006C180 00151400 */ sll $v0, $s5, 0x10
/* 47584 8006C184 8E240014 */ lw $a0, 0x14($s1)
/* 47588 8006C188 8E230008 */ lw $v1, 8($s1)
/* 4758C 8006C18C 24820001 */ addiu $v0, $a0, 1
/* 47590 8006C190 00641821 */ addu $v1, $v1, $a0
/* 47594 8006C194 AE220014 */ sw $v0, 0x14($s1)
/* 47598 8006C198 24020030 */ addiu $v0, $zero, 0x30
/* 4759C 8006C19C A0620000 */ sb $v0, ($v1)
/* 475A0 8006C1A0 8E220024 */ lw $v0, 0x24($s1)
/* 475A4 8006C1A4 1C400005 */ bgtz $v0, .L8006C1BC
/* 475A8 8006C1A8 00000000 */ nop
/* 475AC 8006C1AC 8E220030 */ lw $v0, 0x30($s1)
/* 475B0 8006C1B0 30420008 */ andi $v0, $v0, 8
/* 475B4 8006C1B4 10400009 */ beqz $v0, .L8006C1DC
/* 475B8 8006C1B8 00141400 */ sll $v0, $s4, 0x10
.L8006C1BC:
/* 475BC 8006C1BC 8E240014 */ lw $a0, 0x14($s1)
/* 475C0 8006C1C0 8E230008 */ lw $v1, 8($s1)
/* 475C4 8006C1C4 24820001 */ addiu $v0, $a0, 1
/* 475C8 8006C1C8 00641821 */ addu $v1, $v1, $a0
/* 475CC 8006C1CC AE220014 */ sw $v0, 0x14($s1)
/* 475D0 8006C1D0 2402002E */ addiu $v0, $zero, 0x2e
/* 475D4 8006C1D4 A0620000 */ sb $v0, ($v1)
/* 475D8 8006C1D8 00141400 */ sll $v0, $s4, 0x10
.L8006C1DC:
/* 475DC 8006C1DC 8E230024 */ lw $v1, 0x24($s1)
/* 475E0 8006C1E0 00021403 */ sra $v0, $v0, 0x10
/* 475E4 8006C1E4 00021023 */ negu $v0, $v0
/* 475E8 8006C1E8 0062102A */ slt $v0, $v1, $v0
/* 475EC 8006C1EC 54400001 */ bnel $v0, $zero, .L8006C1F4
/* 475F0 8006C1F0 0003A023 */ negu $s4, $v1
.L8006C1F4:
/* 475F4 8006C1F4 00141400 */ sll $v0, $s4, 0x10
/* 475F8 8006C1F8 8E240024 */ lw $a0, 0x24($s1)
/* 475FC 8006C1FC 00021403 */ sra $v0, $v0, 0x10
/* 47600 8006C200 00021823 */ negu $v1, $v0
/* 47604 8006C204 AE230018 */ sw $v1, 0x18($s1)
/* 47608 8006C208 00822021 */ addu $a0, $a0, $v0
/* 4760C 8006C20C 00151400 */ sll $v0, $s5, 0x10
/* 47610 8006C210 00021403 */ sra $v0, $v0, 0x10
/* 47614 8006C214 0082102A */ slt $v0, $a0, $v0
/* 47618 8006C218 10400002 */ beqz $v0, .L8006C224
/* 4761C 8006C21C AE240024 */ sw $a0, 0x24($s1)
/* 47620 8006C220 0080A821 */ addu $s5, $a0, $zero
.L8006C224:
/* 47624 8006C224 02402821 */ addu $a1, $s2, $zero
/* 47628 8006C228 8E220008 */ lw $v0, 8($s1)
/* 4762C 8006C22C 8E240014 */ lw $a0, 0x14($s1)
/* 47630 8006C230 00158400 */ sll $s0, $s5, 0x10
/* 47634 8006C234 00108403 */ sra $s0, $s0, 0x10
/* 47638 8006C238 02003021 */ addu $a2, $s0, $zero
/* 4763C 8006C23C AE30001C */ sw $s0, 0x1c($s1)
/* 47640 8006C240 0C019291 */ jal func_80064A44
/* 47644 8006C244 00442021 */ addu $a0, $v0, $a0
/* 47648 8006C248 8E220024 */ lw $v0, 0x24($s1)
/* 4764C 8006C24C 00501023 */ subu $v0, $v0, $s0
/* 47650 8006C250 0801B173 */ j .L8006C5CC
/* 47654 8006C254 AE220020 */ sw $v0, 0x20($s1)
.L8006C258:
/* 47658 8006C258 00028403 */ sra $s0, $v0, 0x10
/* 4765C 8006C25C 0213102A */ slt $v0, $s0, $s3
/* 47660 8006C260 1040001C */ beqz $v0, .L8006C2D4
/* 47664 8006C264 02402821 */ addu $a1, $s2, $zero
/* 47668 8006C268 8E220008 */ lw $v0, 8($s1)
/* 4766C 8006C26C 8E240014 */ lw $a0, 0x14($s1)
/* 47670 8006C270 02003021 */ addu $a2, $s0, $zero
/* 47674 8006C274 0C019291 */ jal func_80064A44
/* 47678 8006C278 00442021 */ addu $a0, $v0, $a0
/* 4767C 8006C27C 8E230014 */ lw $v1, 0x14($s1)
/* 47680 8006C280 8E240024 */ lw $a0, 0x24($s1)
/* 47684 8006C284 02701023 */ subu $v0, $s3, $s0
/* 47688 8006C288 AE220018 */ sw $v0, 0x18($s1)
/* 4768C 8006C28C 00701821 */ addu $v1, $v1, $s0
/* 47690 8006C290 1C800005 */ bgtz $a0, .L8006C2A8
/* 47694 8006C294 AE230014 */ sw $v1, 0x14($s1)
/* 47698 8006C298 8E220030 */ lw $v0, 0x30($s1)
/* 4769C 8006C29C 30420008 */ andi $v0, $v0, 8
/* 476A0 8006C2A0 10400009 */ beqz $v0, .L8006C2C8
/* 476A4 8006C2A4 00000000 */ nop
.L8006C2A8:
/* 476A8 8006C2A8 8E220008 */ lw $v0, 8($s1)
/* 476AC 8006C2AC 8E230014 */ lw $v1, 0x14($s1)
/* 476B0 8006C2B0 00431021 */ addu $v0, $v0, $v1
/* 476B4 8006C2B4 2403002E */ addiu $v1, $zero, 0x2e
/* 476B8 8006C2B8 A0430000 */ sb $v1, ($v0)
/* 476BC 8006C2BC 8E22001C */ lw $v0, 0x1c($s1)
/* 476C0 8006C2C0 24420001 */ addiu $v0, $v0, 1
/* 476C4 8006C2C4 AE22001C */ sw $v0, 0x1c($s1)
.L8006C2C8:
/* 476C8 8006C2C8 8E220024 */ lw $v0, 0x24($s1)
/* 476CC 8006C2CC 0801B173 */ j .L8006C5CC
/* 476D0 8006C2D0 AE220020 */ sw $v0, 0x20($s1)
.L8006C2D4:
/* 476D4 8006C2D4 8E220008 */ lw $v0, 8($s1)
/* 476D8 8006C2D8 8E240014 */ lw $a0, 0x14($s1)
/* 476DC 8006C2DC 02603021 */ addu $a2, $s3, $zero
/* 476E0 8006C2E0 0C019291 */ jal func_80064A44
/* 476E4 8006C2E4 00442021 */ addu $a0, $v0, $a0
/* 476E8 8006C2E8 8E220014 */ lw $v0, 0x14($s1)
/* 476EC 8006C2EC 8E230024 */ lw $v1, 0x24($s1)
/* 476F0 8006C2F0 02B4A823 */ subu $s5, $s5, $s4
/* 476F4 8006C2F4 00533021 */ addu $a2, $v0, $s3
/* 476F8 8006C2F8 1C600005 */ bgtz $v1, .L8006C310
/* 476FC 8006C2FC AE260014 */ sw $a2, 0x14($s1)
/* 47700 8006C300 8E220030 */ lw $v0, 0x30($s1)
/* 47704 8006C304 30420008 */ andi $v0, $v0, 8
/* 47708 8006C308 10400007 */ beqz $v0, .L8006C328
/* 4770C 8006C30C 00000000 */ nop
.L8006C310:
/* 47710 8006C310 8E220008 */ lw $v0, 8($s1)
/* 47714 8006C314 24C30001 */ addiu $v1, $a2, 1
/* 47718 8006C318 AE230014 */ sw $v1, 0x14($s1)
/* 4771C 8006C31C 2403002E */ addiu $v1, $zero, 0x2e
/* 47720 8006C320 00461021 */ addu $v0, $v0, $a2
/* 47724 8006C324 A0430000 */ sb $v1, ($v0)
.L8006C328:
/* 47728 8006C328 8E230024 */ lw $v1, 0x24($s1)
/* 4772C 8006C32C 00151400 */ sll $v0, $s5, 0x10
/* 47730 8006C330 00021403 */ sra $v0, $v0, 0x10
/* 47734 8006C334 0062102A */ slt $v0, $v1, $v0
/* 47738 8006C338 54400001 */ bnel $v0, $zero, .L8006C340
/* 4773C 8006C33C 0060A821 */ addu $s5, $v1, $zero
.L8006C340:
/* 47740 8006C340 00142C00 */ sll $a1, $s4, 0x10
/* 47744 8006C344 00052C03 */ sra $a1, $a1, 0x10
/* 47748 8006C348 02452821 */ addu $a1, $s2, $a1
/* 4774C 8006C34C 8E220008 */ lw $v0, 8($s1)
/* 47750 8006C350 8E240014 */ lw $a0, 0x14($s1)
/* 47754 8006C354 00158400 */ sll $s0, $s5, 0x10
/* 47758 8006C358 00108403 */ sra $s0, $s0, 0x10
/* 4775C 8006C35C 02003021 */ addu $a2, $s0, $zero
/* 47760 8006C360 0C019291 */ jal func_80064A44
/* 47764 8006C364 00442021 */ addu $a0, $v0, $a0
/* 47768 8006C368 8E220014 */ lw $v0, 0x14($s1)
/* 4776C 8006C36C 8E230024 */ lw $v1, 0x24($s1)
/* 47770 8006C370 00501021 */ addu $v0, $v0, $s0
/* 47774 8006C374 00701823 */ subu $v1, $v1, $s0
/* 47778 8006C378 AE220014 */ sw $v0, 0x14($s1)
/* 4777C 8006C37C 0801B173 */ j .L8006C5CC
/* 47780 8006C380 AE230018 */ sw $v1, 0x18($s1)
.L8006C384:
/* 47784 8006C384 00021603 */ sra $v0, $v0, 0x18
/* 47788 8006C388 38430067 */ xori $v1, $v0, 0x67
/* 4778C 8006C38C 2C640001 */ sltiu $a0, $v1, 1
/* 47790 8006C390 38420047 */ xori $v0, $v0, 0x47
/* 47794 8006C394 2C420001 */ sltiu $v0, $v0, 1
/* 47798 8006C398 00821025 */ or $v0, $a0, $v0
/* 4779C 8006C39C 1040000E */ beqz $v0, .L8006C3D8
/* 477A0 8006C3A0 00151C00 */ sll $v1, $s5, 0x10
/* 477A4 8006C3A4 8E220024 */ lw $v0, 0x24($s1)
/* 477A8 8006C3A8 00031C03 */ sra $v1, $v1, 0x10
/* 477AC 8006C3AC 0062102A */ slt $v0, $v1, $v0
/* 477B0 8006C3B0 54400001 */ bnel $v0, $zero, .L8006C3B8
/* 477B4 8006C3B4 AE230024 */ sw $v1, 0x24($s1)
.L8006C3B8:
/* 477B8 8006C3B8 8E220024 */ lw $v0, 0x24($s1)
/* 477BC 8006C3BC 2442FFFF */ addiu $v0, $v0, -1
/* 477C0 8006C3C0 04410002 */ bgez $v0, .L8006C3CC
/* 477C4 8006C3C4 AE220024 */ sw $v0, 0x24($s1)
/* 477C8 8006C3C8 AE200024 */ sw $zero, 0x24($s1)
.L8006C3CC:
/* 477CC 8006C3CC 00041023 */ negu $v0, $a0
/* 477D0 8006C3D0 30420065 */ andi $v0, $v0, 0x65
/* 477D4 8006C3D4 34530045 */ ori $s3, $v0, 0x45
.L8006C3D8:
/* 477D8 8006C3D8 8E240014 */ lw $a0, 0x14($s1)
/* 477DC 8006C3DC 24820001 */ addiu $v0, $a0, 1
/* 477E0 8006C3E0 AE220014 */ sw $v0, 0x14($s1)
/* 477E4 8006C3E4 8E220008 */ lw $v0, 8($s1)
/* 477E8 8006C3E8 92430000 */ lbu $v1, ($s2)
/* 477EC 8006C3EC 00441021 */ addu $v0, $v0, $a0
/* 477F0 8006C3F0 A0430000 */ sb $v1, ($v0)
/* 477F4 8006C3F4 8E220024 */ lw $v0, 0x24($s1)
/* 477F8 8006C3F8 1C400005 */ bgtz $v0, .L8006C410
/* 477FC 8006C3FC 26520001 */ addiu $s2, $s2, 1
/* 47800 8006C400 8E220030 */ lw $v0, 0x30($s1)
/* 47804 8006C404 30420008 */ andi $v0, $v0, 8
/* 47808 8006C408 10400008 */ beqz $v0, .L8006C42C
/* 4780C 8006C40C 00000000 */ nop
.L8006C410:
/* 47810 8006C410 8E240014 */ lw $a0, 0x14($s1)
/* 47814 8006C414 8E230008 */ lw $v1, 8($s1)
/* 47818 8006C418 24820001 */ addiu $v0, $a0, 1
/* 4781C 8006C41C 00641821 */ addu $v1, $v1, $a0
/* 47820 8006C420 AE220014 */ sw $v0, 0x14($s1)
/* 47824 8006C424 2402002E */ addiu $v0, $zero, 0x2e
/* 47828 8006C428 A0620000 */ sb $v0, ($v1)
.L8006C42C:
/* 4782C 8006C42C 8E230024 */ lw $v1, 0x24($s1)
/* 47830 8006C430 18600015 */ blez $v1, .L8006C488
/* 47834 8006C434 26A2FFFF */ addiu $v0, $s5, -1
/* 47838 8006C438 0040A821 */ addu $s5, $v0, $zero
/* 4783C 8006C43C 00021400 */ sll $v0, $v0, 0x10
/* 47840 8006C440 00021403 */ sra $v0, $v0, 0x10
/* 47844 8006C444 0062102A */ slt $v0, $v1, $v0
/* 47848 8006C448 54400001 */ bnel $v0, $zero, .L8006C450
/* 4784C 8006C44C 0060A821 */ addu $s5, $v1, $zero
.L8006C450:
/* 47850 8006C450 02402821 */ addu $a1, $s2, $zero
/* 47854 8006C454 8E220008 */ lw $v0, 8($s1)
/* 47858 8006C458 8E240014 */ lw $a0, 0x14($s1)
/* 4785C 8006C45C 00158400 */ sll $s0, $s5, 0x10
/* 47860 8006C460 00108403 */ sra $s0, $s0, 0x10
/* 47864 8006C464 02003021 */ addu $a2, $s0, $zero
/* 47868 8006C468 0C019291 */ jal func_80064A44
/* 4786C 8006C46C 00442021 */ addu $a0, $v0, $a0
/* 47870 8006C470 8E220014 */ lw $v0, 0x14($s1)
/* 47874 8006C474 8E230024 */ lw $v1, 0x24($s1)
/* 47878 8006C478 00501021 */ addu $v0, $v0, $s0
/* 4787C 8006C47C 00701823 */ subu $v1, $v1, $s0
/* 47880 8006C480 AE220014 */ sw $v0, 0x14($s1)
/* 47884 8006C484 AE230018 */ sw $v1, 0x18($s1)
.L8006C488:
/* 47888 8006C488 8E220008 */ lw $v0, 8($s1)
/* 4788C 8006C48C 8E230014 */ lw $v1, 0x14($s1)
/* 47890 8006C490 00439021 */ addu $s2, $v0, $v1
/* 47894 8006C494 A2530000 */ sb $s3, ($s2)
/* 47898 8006C498 00141400 */ sll $v0, $s4, 0x10
/* 4789C 8006C49C 04400005 */ bltz $v0, .L8006C4B4
/* 478A0 8006C4A0 26520001 */ addiu $s2, $s2, 1
/* 478A4 8006C4A4 2402002B */ addiu $v0, $zero, 0x2b
/* 478A8 8006C4A8 A2420000 */ sb $v0, ($s2)
/* 478AC 8006C4AC 0801B131 */ j .L8006C4C4
/* 478B0 8006C4B0 26520001 */ addiu $s2, $s2, 1
.L8006C4B4:
/* 478B4 8006C4B4 2402002D */ addiu $v0, $zero, 0x2d
/* 478B8 8006C4B8 A2420000 */ sb $v0, ($s2)
/* 478BC 8006C4BC 26520001 */ addiu $s2, $s2, 1
/* 478C0 8006C4C0 0014A023 */ negu $s4, $s4
.L8006C4C4:
/* 478C4 8006C4C4 00142C00 */ sll $a1, $s4, 0x10
/* 478C8 8006C4C8 00052403 */ sra $a0, $a1, 0x10
/* 478CC 8006C4CC 28820064 */ slti $v0, $a0, 0x64
/* 478D0 8006C4D0 14400027 */ bnez $v0, .L8006C570
/* 478D4 8006C4D4 3C036666 */ lui $v1, 0x6666
/* 478D8 8006C4D8 288203E8 */ slti $v0, $a0, 0x3e8
/* 478DC 8006C4DC 14400012 */ bnez $v0, .L8006C528
/* 478E0 8006C4E0 3C0351EB */ lui $v1, 0x51eb
/* 478E4 8006C4E4 3C021062 */ lui $v0, 0x1062
/* 478E8 8006C4E8 34424DD3 */ ori $v0, $v0, 0x4dd3
/* 478EC 8006C4EC 00820018 */ mult $a0, $v0
/* 478F0 8006C4F0 000517C3 */ sra $v0, $a1, 0x1f
/* 478F4 8006C4F4 00004010 */ mfhi $t0
/* 478F8 8006C4F8 00081983 */ sra $v1, $t0, 6
/* 478FC 8006C4FC 00621823 */ subu $v1, $v1, $v0
/* 47900 8006C500 24620030 */ addiu $v0, $v1, 0x30
/* 47904 8006C504 A2420000 */ sb $v0, ($s2)
/* 47908 8006C508 26520001 */ addiu $s2, $s2, 1
/* 4790C 8006C50C 00031140 */ sll $v0, $v1, 5
/* 47910 8006C510 00431023 */ subu $v0, $v0, $v1
/* 47914 8006C514 00021080 */ sll $v0, $v0, 2
/* 47918 8006C518 00431021 */ addu $v0, $v0, $v1
/* 4791C 8006C51C 000210C0 */ sll $v0, $v0, 3
/* 47920 8006C520 0082A023 */ subu $s4, $a0, $v0
/* 47924 8006C524 3C0351EB */ lui $v1, 0x51eb
.L8006C528:
/* 47928 8006C528 3463851F */ ori $v1, $v1, 0x851f
/* 4792C 8006C52C 00141400 */ sll $v0, $s4, 0x10
/* 47930 8006C530 00022403 */ sra $a0, $v0, 0x10
/* 47934 8006C534 00830018 */ mult $a0, $v1
/* 47938 8006C538 000217C3 */ sra $v0, $v0, 0x1f
/* 4793C 8006C53C 00004010 */ mfhi $t0
/* 47940 8006C540 00081943 */ sra $v1, $t0, 5
/* 47944 8006C544 00621823 */ subu $v1, $v1, $v0
/* 47948 8006C548 24620030 */ addiu $v0, $v1, 0x30
/* 4794C 8006C54C A2420000 */ sb $v0, ($s2)
/* 47950 8006C550 26520001 */ addiu $s2, $s2, 1
/* 47954 8006C554 00031040 */ sll $v0, $v1, 1
/* 47958 8006C558 00431021 */ addu $v0, $v0, $v1
/* 4795C 8006C55C 000210C0 */ sll $v0, $v0, 3
/* 47960 8006C560 00431021 */ addu $v0, $v0, $v1
/* 47964 8006C564 00021080 */ sll $v0, $v0, 2
/* 47968 8006C568 0082A023 */ subu $s4, $a0, $v0
/* 4796C 8006C56C 3C036666 */ lui $v1, 0x6666
.L8006C570:
/* 47970 8006C570 34636667 */ ori $v1, $v1, 0x6667
/* 47974 8006C574 00141400 */ sll $v0, $s4, 0x10
/* 47978 8006C578 00022403 */ sra $a0, $v0, 0x10
/* 4797C 8006C57C 00830018 */ mult $a0, $v1
/* 47980 8006C580 000217C3 */ sra $v0, $v0, 0x1f
/* 47984 8006C584 00004010 */ mfhi $t0
/* 47988 8006C588 00081883 */ sra $v1, $t0, 2
/* 4798C 8006C58C 00621823 */ subu $v1, $v1, $v0
/* 47990 8006C590 24620030 */ addiu $v0, $v1, 0x30
/* 47994 8006C594 A2420000 */ sb $v0, ($s2)
/* 47998 8006C598 26520001 */ addiu $s2, $s2, 1
/* 4799C 8006C59C 00031080 */ sll $v0, $v1, 2
/* 479A0 8006C5A0 00431021 */ addu $v0, $v0, $v1
/* 479A4 8006C5A4 00021040 */ sll $v0, $v0, 1
/* 479A8 8006C5A8 00822023 */ subu $a0, $a0, $v0
/* 479AC 8006C5AC 24840030 */ addiu $a0, $a0, 0x30
/* 479B0 8006C5B0 A2440000 */ sb $a0, ($s2)
/* 479B4 8006C5B4 8E220008 */ lw $v0, 8($s1)
/* 479B8 8006C5B8 8E230014 */ lw $v1, 0x14($s1)
/* 479BC 8006C5BC 26520001 */ addiu $s2, $s2, 1
/* 479C0 8006C5C0 00431021 */ addu $v0, $v0, $v1
/* 479C4 8006C5C4 02421023 */ subu $v0, $s2, $v0
/* 479C8 8006C5C8 AE22001C */ sw $v0, 0x1c($s1)
.L8006C5CC:
/* 479CC 8006C5CC 8E220030 */ lw $v0, 0x30($s1)
/* 479D0 8006C5D0 24030010 */ addiu $v1, $zero, 0x10
/* 479D4 8006C5D4 30420014 */ andi $v0, $v0, 0x14
/* 479D8 8006C5D8 1443000F */ bne $v0, $v1, .L8006C618
/* 479DC 8006C5DC 00000000 */ nop
/* 479E0 8006C5E0 8E22000C */ lw $v0, 0xc($s1)
/* 479E4 8006C5E4 8E230014 */ lw $v1, 0x14($s1)
/* 479E8 8006C5E8 8E240018 */ lw $a0, 0x18($s1)
/* 479EC 8006C5EC 00431021 */ addu $v0, $v0, $v1
/* 479F0 8006C5F0 00441021 */ addu $v0, $v0, $a0
/* 479F4 8006C5F4 8E23001C */ lw $v1, 0x1c($s1)
/* 479F8 8006C5F8 8E240020 */ lw $a0, 0x20($s1)
/* 479FC 8006C5FC 8E250028 */ lw $a1, 0x28($s1)
/* 47A00 8006C600 00431021 */ addu $v0, $v0, $v1
/* 47A04 8006C604 00441821 */ addu $v1, $v0, $a0
/* 47A08 8006C608 0065102A */ slt $v0, $v1, $a1
/* 47A0C 8006C60C 10400002 */ beqz $v0, .L8006C618
/* 47A10 8006C610 00A31023 */ subu $v0, $a1, $v1
/* 47A14 8006C614 AE220010 */ sw $v0, 0x10($s1)
.L8006C618:
/* 47A18 8006C618 8FBF0028 */ lw $ra, 0x28($sp)
/* 47A1C 8006C61C 8FB50024 */ lw $s5, 0x24($sp)
/* 47A20 8006C620 8FB40020 */ lw $s4, 0x20($sp)
/* 47A24 8006C624 8FB3001C */ lw $s3, 0x1c($sp)
/* 47A28 8006C628 8FB20018 */ lw $s2, 0x18($sp)
/* 47A2C 8006C62C 8FB10014 */ lw $s1, 0x14($sp)
/* 47A30 8006C630 8FB00010 */ lw $s0, 0x10($sp)
/* 47A34 8006C634 03E00008 */ jr $ra
/* 47A38 8006C638 27BD0030 */ addiu $sp, $sp, 0x30
/* 47A3C 8006C63C 00000000 */ nop