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