papermario/asm/nonmatchings/code_13870_len_6980/func_8003BED8.s
2020-08-12 22:37:16 -04:00

361 lines
17 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8003BED8
/* 0172D8 8003BED8 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 0172DC 8003BEDC AFB40030 */ sw $s4, 0x30($sp)
/* 0172E0 8003BEE0 0080A02D */ daddu $s4, $a0, $zero
/* 0172E4 8003BEE4 AFB60038 */ sw $s6, 0x38($sp)
/* 0172E8 8003BEE8 00A0B02D */ daddu $s6, $a1, $zero
/* 0172EC 8003BEEC AFBF0040 */ sw $ra, 0x40($sp)
/* 0172F0 8003BEF0 AFB7003C */ sw $s7, 0x3c($sp)
/* 0172F4 8003BEF4 AFB50034 */ sw $s5, 0x34($sp)
/* 0172F8 8003BEF8 AFB3002C */ sw $s3, 0x2c($sp)
/* 0172FC 8003BEFC AFB20028 */ sw $s2, 0x28($sp)
/* 017300 8003BF00 AFB10024 */ sw $s1, 0x24($sp)
/* 017304 8003BF04 AFB00020 */ sw $s0, 0x20($sp)
/* 017308 8003BF08 828200B6 */ lb $v0, 0xb6($s4)
/* 01730C 8003BF0C 10400041 */ beqz $v0, .L8003C014
/* 017310 8003BF10 00C0B82D */ daddu $s7, $a2, $zero
/* 017314 8003BF14 8E820000 */ lw $v0, ($s4)
/* 017318 8003BF18 3C034000 */ lui $v1, 0x4000
/* 01731C 8003BF1C 00431024 */ and $v0, $v0, $v1
/* 017320 8003BF20 14400004 */ bnez $v0, .L8003BF34
/* 017324 8003BF24 00000000 */ nop
/* 017328 8003BF28 0C0B7A90 */ jal func_802DEA40
/* 01732C 8003BF2C 96840028 */ lhu $a0, 0x28($s4)
/* 017330 8003BF30 AE8200C4 */ sw $v0, 0xc4($s4)
.L8003BF34:
/* 017334 8003BF34 8E8400C4 */ lw $a0, 0xc4($s4)
/* 017338 8003BF38 A28000C1 */ sb $zero, 0xc1($s4)
/* 01733C 8003BF3C 8C830000 */ lw $v1, ($a0)
/* 017340 8003BF40 2402FFFF */ addiu $v0, $zero, -1
/* 017344 8003BF44 1062000B */ beq $v1, $v0, .L8003BF74
/* 017348 8003BF48 0080182D */ daddu $v1, $a0, $zero
/* 01734C 8003BF4C 0040202D */ daddu $a0, $v0, $zero
.L8003BF50:
/* 017350 8003BF50 928200C1 */ lbu $v0, 0xc1($s4)
/* 017354 8003BF54 24420001 */ addiu $v0, $v0, 1
/* 017358 8003BF58 A28200C1 */ sb $v0, 0xc1($s4)
/* 01735C 8003BF5C 00021600 */ sll $v0, $v0, 0x18
/* 017360 8003BF60 00021583 */ sra $v0, $v0, 0x16
/* 017364 8003BF64 00431021 */ addu $v0, $v0, $v1
/* 017368 8003BF68 8C420000 */ lw $v0, ($v0)
/* 01736C 8003BF6C 1444FFF8 */ bne $v0, $a0, .L8003BF50
/* 017370 8003BF70 00000000 */ nop
.L8003BF74:
/* 017374 8003BF74 828300B6 */ lb $v1, 0xb6($s4)
/* 017378 8003BF78 24020001 */ addiu $v0, $zero, 1
/* 01737C 8003BF7C 14620004 */ bne $v1, $v0, .L8003BF90
/* 017380 8003BF80 240200FF */ addiu $v0, $zero, 0xff
/* 017384 8003BF84 A28000B7 */ sb $zero, 0xb7($s4)
/* 017388 8003BF88 0800EFE6 */ j .L8003BF98
/* 01738C 8003BF8C A68000BE */ sh $zero, 0xbe($s4)
.L8003BF90:
/* 017390 8003BF90 A28000B7 */ sb $zero, 0xb7($s4)
/* 017394 8003BF94 A68200BE */ sh $v0, 0xbe($s4)
.L8003BF98:
/* 017398 8003BF98 828200C1 */ lb $v0, 0xc1($s4)
/* 01739C 8003BF9C 18400018 */ blez $v0, .L8003C000
/* 0173A0 8003BFA0 0000202D */ daddu $a0, $zero, $zero
/* 0173A4 8003BFA4 0280302D */ daddu $a2, $s4, $zero
/* 0173A8 8003BFA8 240500C8 */ addiu $a1, $zero, 0xc8
.L8003BFAC:
/* 0173AC 8003BFAC 8E8300C4 */ lw $v1, 0xc4($s4)
/* 0173B0 8003BFB0 00041080 */ sll $v0, $a0, 2
/* 0173B4 8003BFB4 00431021 */ addu $v0, $v0, $v1
/* 0173B8 8003BFB8 8C520000 */ lw $s2, ($v0)
/* 0173BC 8003BFBC 02858021 */ addu $s0, $s4, $a1
/* 0173C0 8003BFC0 12400009 */ beqz $s2, .L8003BFE8
/* 0173C4 8003BFC4 ACD002C8 */ sw $s0, 0x2c8($a2)
/* 0173C8 8003BFC8 0000882D */ daddu $s1, $zero, $zero
.L8003BFCC:
/* 0173CC 8003BFCC 96420000 */ lhu $v0, ($s2)
/* 0173D0 8003BFD0 26520002 */ addiu $s2, $s2, 2
/* 0173D4 8003BFD4 26310001 */ addiu $s1, $s1, 1
/* 0173D8 8003BFD8 A6020000 */ sh $v0, ($s0)
/* 0173DC 8003BFDC 2A220010 */ slti $v0, $s1, 0x10
/* 0173E0 8003BFE0 1440FFFA */ bnez $v0, .L8003BFCC
/* 0173E4 8003BFE4 26100002 */ addiu $s0, $s0, 2
.L8003BFE8:
/* 0173E8 8003BFE8 24C60004 */ addiu $a2, $a2, 4
/* 0173EC 8003BFEC 828200C1 */ lb $v0, 0xc1($s4)
/* 0173F0 8003BFF0 24840001 */ addiu $a0, $a0, 1
/* 0173F4 8003BFF4 0082102A */ slt $v0, $a0, $v0
/* 0173F8 8003BFF8 1440FFEC */ bnez $v0, .L8003BFAC
/* 0173FC 8003BFFC 24A50020 */ addiu $a1, $a1, 0x20
.L8003C000:
/* 017400 8003C000 9682030C */ lhu $v0, 0x30c($s4)
/* 017404 8003C004 A68000BE */ sh $zero, 0xbe($s4)
/* 017408 8003C008 A28000B7 */ sb $zero, 0xb7($s4)
/* 01740C 8003C00C A28000B6 */ sb $zero, 0xb6($s4)
/* 017410 8003C010 A68200BC */ sh $v0, 0xbc($s4)
.L8003C014:
/* 017414 8003C014 828300B7 */ lb $v1, 0xb7($s4)
/* 017418 8003C018 10600005 */ beqz $v1, .L8003C030
/* 01741C 8003C01C 24020001 */ addiu $v0, $zero, 1
/* 017420 8003C020 1062000C */ beq $v1, $v0, .L8003C054
/* 017424 8003C024 24020002 */ addiu $v0, $zero, 2
/* 017428 8003C028 0800F06B */ j .L8003C1AC
/* 01742C 8003C02C 00000000 */ nop
.L8003C030:
/* 017430 8003C030 868200BC */ lh $v0, 0xbc($s4)
/* 017434 8003C034 968300BC */ lhu $v1, 0xbc($s4)
/* 017438 8003C038 10400003 */ beqz $v0, .L8003C048
/* 01743C 8003C03C 2462FFFF */ addiu $v0, $v1, -1
/* 017440 8003C040 0800F069 */ j .L8003C1A4
/* 017444 8003C044 A68200BC */ sh $v0, 0xbc($s4)
.L8003C048:
/* 017448 8003C048 24020001 */ addiu $v0, $zero, 1
/* 01744C 8003C04C A68000BE */ sh $zero, 0xbe($s4)
/* 017450 8003C050 A28200B7 */ sb $v0, 0xb7($s4)
.L8003C054:
/* 017454 8003C054 8682030E */ lh $v0, 0x30e($s4)
/* 017458 8003C058 24036400 */ addiu $v1, $zero, 0x6400
/* 01745C 8003C05C 14400002 */ bnez $v0, .L8003C068
/* 017460 8003C060 0062001A */ div $zero, $v1, $v0
/* 017464 8003C064 0007000D */ break 7
.L8003C068:
/* 017468 8003C068 2401FFFF */ addiu $at, $zero, -1
/* 01746C 8003C06C 14410004 */ bne $v0, $at, .L8003C080
/* 017470 8003C070 3C018000 */ lui $at, 0x8000
/* 017474 8003C074 14610002 */ bne $v1, $at, .L8003C080
/* 017478 8003C078 00000000 */ nop
/* 01747C 8003C07C 0006000D */ break 6
.L8003C080:
/* 017480 8003C080 00001812 */ mflo $v1
/* 017484 8003C084 968200BE */ lhu $v0, 0xbe($s4)
/* 017488 8003C088 00431021 */ addu $v0, $v0, $v1
/* 01748C 8003C08C A68200BE */ sh $v0, 0xbe($s4)
/* 017490 8003C090 00021400 */ sll $v0, $v0, 0x10
/* 017494 8003C094 00021403 */ sra $v0, $v0, 0x10
/* 017498 8003C098 2842639D */ slti $v0, $v0, 0x639d
/* 01749C 8003C09C 14400003 */ bnez $v0, .L8003C0AC
/* 0174A0 8003C0A0 3C0651EB */ lui $a2, 0x51eb
/* 0174A4 8003C0A4 2402639C */ addiu $v0, $zero, 0x639c
/* 0174A8 8003C0A8 A68200BE */ sh $v0, 0xbe($s4)
.L8003C0AC:
/* 0174AC 8003C0AC 34C6851F */ ori $a2, $a2, 0x851f
/* 0174B0 8003C0B0 269300C8 */ addiu $s3, $s4, 0xc8
/* 0174B4 8003C0B4 0000882D */ daddu $s1, $zero, $zero
/* 0174B8 8003C0B8 86820308 */ lh $v0, 0x308($s4)
/* 0174BC 8003C0BC 8E8500C4 */ lw $a1, 0xc4($s4)
/* 0174C0 8003C0C0 968300BE */ lhu $v1, 0xbe($s4)
/* 0174C4 8003C0C4 00021080 */ sll $v0, $v0, 2
/* 0174C8 8003C0C8 00451021 */ addu $v0, $v0, $a1
/* 0174CC 8003C0CC 00031C00 */ sll $v1, $v1, 0x10
/* 0174D0 8003C0D0 00032403 */ sra $a0, $v1, 0x10
/* 0174D4 8003C0D4 8C520000 */ lw $s2, ($v0)
/* 0174D8 8003C0D8 8682030A */ lh $v0, 0x30a($s4)
/* 0174DC 8003C0DC 00860018 */ mult $a0, $a2
/* 0174E0 8003C0E0 00021080 */ sll $v0, $v0, 2
/* 0174E4 8003C0E4 00451021 */ addu $v0, $v0, $a1
/* 0174E8 8003C0E8 8C500000 */ lw $s0, ($v0)
/* 0174EC 8003C0EC 00031FC3 */ sra $v1, $v1, 0x1f
/* 0174F0 8003C0F0 AE9302C8 */ sw $s3, 0x2c8($s4)
/* 0174F4 8003C0F4 00004010 */ mfhi $t0
/* 0174F8 8003C0F8 00081143 */ sra $v0, $t0, 5
/* 0174FC 8003C0FC 0043A823 */ subu $s5, $v0, $v1
.L8003C100:
/* 017500 8003C100 96440000 */ lhu $a0, ($s2)
/* 017504 8003C104 26520002 */ addiu $s2, $s2, 2
/* 017508 8003C108 96050000 */ lhu $a1, ($s0)
/* 01750C 8003C10C 26100002 */ addiu $s0, $s0, 2
/* 017510 8003C110 32A600FF */ andi $a2, $s5, 0xff
/* 017514 8003C114 0C00EE5B */ jal func_8003B96C
/* 017518 8003C118 26310001 */ addiu $s1, $s1, 1
/* 01751C 8003C11C A6620000 */ sh $v0, ($s3)
/* 017520 8003C120 2A220010 */ slti $v0, $s1, 0x10
/* 017524 8003C124 1440FFF6 */ bnez $v0, .L8003C100
/* 017528 8003C128 26730002 */ addiu $s3, $s3, 2
/* 01752C 8003C12C 26930128 */ addiu $s3, $s4, 0x128
/* 017530 8003C130 86820314 */ lh $v0, 0x314($s4)
/* 017534 8003C134 8E8400C4 */ lw $a0, 0xc4($s4)
/* 017538 8003C138 86830316 */ lh $v1, 0x316($s4)
/* 01753C 8003C13C 00021080 */ sll $v0, $v0, 2
/* 017540 8003C140 00441021 */ addu $v0, $v0, $a0
/* 017544 8003C144 00031880 */ sll $v1, $v1, 2
/* 017548 8003C148 00641821 */ addu $v1, $v1, $a0
/* 01754C 8003C14C 8C520000 */ lw $s2, ($v0)
/* 017550 8003C150 8C700000 */ lw $s0, ($v1)
/* 017554 8003C154 0000882D */ daddu $s1, $zero, $zero
/* 017558 8003C158 AE9302D4 */ sw $s3, 0x2d4($s4)
.L8003C15C:
/* 01755C 8003C15C 96440000 */ lhu $a0, ($s2)
/* 017560 8003C160 26520002 */ addiu $s2, $s2, 2
/* 017564 8003C164 96050000 */ lhu $a1, ($s0)
/* 017568 8003C168 26100002 */ addiu $s0, $s0, 2
/* 01756C 8003C16C 32A600FF */ andi $a2, $s5, 0xff
/* 017570 8003C170 0C00EE5B */ jal func_8003B96C
/* 017574 8003C174 26310001 */ addiu $s1, $s1, 1
/* 017578 8003C178 A6620000 */ sh $v0, ($s3)
/* 01757C 8003C17C 2A220010 */ slti $v0, $s1, 0x10
/* 017580 8003C180 1440FFF6 */ bnez $v0, .L8003C15C
/* 017584 8003C184 26730002 */ addiu $s3, $s3, 2
/* 017588 8003C188 32A300FF */ andi $v1, $s5, 0xff
/* 01758C 8003C18C 240200FF */ addiu $v0, $zero, 0xff
/* 017590 8003C190 14620004 */ bne $v1, $v0, .L8003C1A4
/* 017594 8003C194 24020002 */ addiu $v0, $zero, 2
/* 017598 8003C198 96830310 */ lhu $v1, 0x310($s4)
/* 01759C 8003C19C A28200B7 */ sb $v0, 0xb7($s4)
/* 0175A0 8003C1A0 A68300BC */ sh $v1, 0xbc($s4)
.L8003C1A4:
/* 0175A4 8003C1A4 828300B7 */ lb $v1, 0xb7($s4)
/* 0175A8 8003C1A8 24020002 */ addiu $v0, $zero, 2
.L8003C1AC:
/* 0175AC 8003C1AC 10620005 */ beq $v1, $v0, .L8003C1C4
/* 0175B0 8003C1B0 24020003 */ addiu $v0, $zero, 3
/* 0175B4 8003C1B4 1062000A */ beq $v1, $v0, .L8003C1E0
/* 0175B8 8003C1B8 00000000 */ nop
/* 0175BC 8003C1BC 0800F0CD */ j .L8003C334
/* 0175C0 8003C1C0 00000000 */ nop
.L8003C1C4:
/* 0175C4 8003C1C4 868200BC */ lh $v0, 0xbc($s4)
/* 0175C8 8003C1C8 968300BC */ lhu $v1, 0xbc($s4)
/* 0175CC 8003C1CC 14400058 */ bnez $v0, .L8003C330
/* 0175D0 8003C1D0 2462FFFF */ addiu $v0, $v1, -1
/* 0175D4 8003C1D4 24020003 */ addiu $v0, $zero, 3
/* 0175D8 8003C1D8 A68000BE */ sh $zero, 0xbe($s4)
/* 0175DC 8003C1DC A28200B7 */ sb $v0, 0xb7($s4)
.L8003C1E0:
/* 0175E0 8003C1E0 86820312 */ lh $v0, 0x312($s4)
/* 0175E4 8003C1E4 24036400 */ addiu $v1, $zero, 0x6400
/* 0175E8 8003C1E8 14400002 */ bnez $v0, .L8003C1F4
/* 0175EC 8003C1EC 0062001A */ div $zero, $v1, $v0
/* 0175F0 8003C1F0 0007000D */ break 7
.L8003C1F4:
/* 0175F4 8003C1F4 2401FFFF */ addiu $at, $zero, -1
/* 0175F8 8003C1F8 14410004 */ bne $v0, $at, .L8003C20C
/* 0175FC 8003C1FC 3C018000 */ lui $at, 0x8000
/* 017600 8003C200 14610002 */ bne $v1, $at, .L8003C20C
/* 017604 8003C204 00000000 */ nop
/* 017608 8003C208 0006000D */ break 6
.L8003C20C:
/* 01760C 8003C20C 00001812 */ mflo $v1
/* 017610 8003C210 968200BE */ lhu $v0, 0xbe($s4)
/* 017614 8003C214 00431021 */ addu $v0, $v0, $v1
/* 017618 8003C218 A68200BE */ sh $v0, 0xbe($s4)
/* 01761C 8003C21C 00021400 */ sll $v0, $v0, 0x10
/* 017620 8003C220 00021403 */ sra $v0, $v0, 0x10
/* 017624 8003C224 2842639D */ slti $v0, $v0, 0x639d
/* 017628 8003C228 14400003 */ bnez $v0, .L8003C238
/* 01762C 8003C22C 3C0651EB */ lui $a2, 0x51eb
/* 017630 8003C230 2402639C */ addiu $v0, $zero, 0x639c
/* 017634 8003C234 A68200BE */ sh $v0, 0xbe($s4)
.L8003C238:
/* 017638 8003C238 34C6851F */ ori $a2, $a2, 0x851f
/* 01763C 8003C23C 269300C8 */ addiu $s3, $s4, 0xc8
/* 017640 8003C240 0000882D */ daddu $s1, $zero, $zero
/* 017644 8003C244 8682030A */ lh $v0, 0x30a($s4)
/* 017648 8003C248 8E8500C4 */ lw $a1, 0xc4($s4)
/* 01764C 8003C24C 968300BE */ lhu $v1, 0xbe($s4)
/* 017650 8003C250 00021080 */ sll $v0, $v0, 2
/* 017654 8003C254 00451021 */ addu $v0, $v0, $a1
/* 017658 8003C258 00031C00 */ sll $v1, $v1, 0x10
/* 01765C 8003C25C 00032403 */ sra $a0, $v1, 0x10
/* 017660 8003C260 8C520000 */ lw $s2, ($v0)
/* 017664 8003C264 86820308 */ lh $v0, 0x308($s4)
/* 017668 8003C268 00860018 */ mult $a0, $a2
/* 01766C 8003C26C 00021080 */ sll $v0, $v0, 2
/* 017670 8003C270 00451021 */ addu $v0, $v0, $a1
/* 017674 8003C274 8C500000 */ lw $s0, ($v0)
/* 017678 8003C278 00031FC3 */ sra $v1, $v1, 0x1f
/* 01767C 8003C27C AE9302C8 */ sw $s3, 0x2c8($s4)
/* 017680 8003C280 00004010 */ mfhi $t0
/* 017684 8003C284 00081143 */ sra $v0, $t0, 5
/* 017688 8003C288 0043A823 */ subu $s5, $v0, $v1
.L8003C28C:
/* 01768C 8003C28C 96440000 */ lhu $a0, ($s2)
/* 017690 8003C290 26520002 */ addiu $s2, $s2, 2
/* 017694 8003C294 96050000 */ lhu $a1, ($s0)
/* 017698 8003C298 26100002 */ addiu $s0, $s0, 2
/* 01769C 8003C29C 32A600FF */ andi $a2, $s5, 0xff
/* 0176A0 8003C2A0 0C00EE5B */ jal func_8003B96C
/* 0176A4 8003C2A4 26310001 */ addiu $s1, $s1, 1
/* 0176A8 8003C2A8 A6620000 */ sh $v0, ($s3)
/* 0176AC 8003C2AC 2A220010 */ slti $v0, $s1, 0x10
/* 0176B0 8003C2B0 1440FFF6 */ bnez $v0, .L8003C28C
/* 0176B4 8003C2B4 26730002 */ addiu $s3, $s3, 2
/* 0176B8 8003C2B8 269300E8 */ addiu $s3, $s4, 0xe8
/* 0176BC 8003C2BC 0000882D */ daddu $s1, $zero, $zero
/* 0176C0 8003C2C0 86830316 */ lh $v1, 0x316($s4)
/* 0176C4 8003C2C4 8E8400C4 */ lw $a0, 0xc4($s4)
/* 0176C8 8003C2C8 86820314 */ lh $v0, 0x314($s4)
/* 0176CC 8003C2CC 00031880 */ sll $v1, $v1, 2
/* 0176D0 8003C2D0 00641821 */ addu $v1, $v1, $a0
/* 0176D4 8003C2D4 00021080 */ sll $v0, $v0, 2
/* 0176D8 8003C2D8 00441021 */ addu $v0, $v0, $a0
/* 0176DC 8003C2DC 8C720000 */ lw $s2, ($v1)
/* 0176E0 8003C2E0 8C500000 */ lw $s0, ($v0)
/* 0176E4 8003C2E4 26820128 */ addiu $v0, $s4, 0x128
/* 0176E8 8003C2E8 AE8202D4 */ sw $v0, 0x2d4($s4)
.L8003C2EC:
/* 0176EC 8003C2EC 96440000 */ lhu $a0, ($s2)
/* 0176F0 8003C2F0 26520002 */ addiu $s2, $s2, 2
/* 0176F4 8003C2F4 96050000 */ lhu $a1, ($s0)
/* 0176F8 8003C2F8 26100002 */ addiu $s0, $s0, 2
/* 0176FC 8003C2FC 32A600FF */ andi $a2, $s5, 0xff
/* 017700 8003C300 0C00EE5B */ jal func_8003B96C
/* 017704 8003C304 26310001 */ addiu $s1, $s1, 1
/* 017708 8003C308 A6620000 */ sh $v0, ($s3)
/* 01770C 8003C30C 2A220010 */ slti $v0, $s1, 0x10
/* 017710 8003C310 1440FFF6 */ bnez $v0, .L8003C2EC
/* 017714 8003C314 26730002 */ addiu $s3, $s3, 2
/* 017718 8003C318 32A300FF */ andi $v1, $s5, 0xff
/* 01771C 8003C31C 240200FF */ addiu $v0, $zero, 0xff
/* 017720 8003C320 14620004 */ bne $v1, $v0, .L8003C334
/* 017724 8003C324 00000000 */ nop
/* 017728 8003C328 9682030C */ lhu $v0, 0x30c($s4)
/* 01772C 8003C32C A28000B7 */ sb $zero, 0xb7($s4)
.L8003C330:
/* 017730 8003C330 A68200BC */ sh $v0, 0xbc($s4)
.L8003C334:
/* 017734 8003C334 828300B7 */ lb $v1, 0xb7($s4)
/* 017738 8003C338 28620004 */ slti $v0, $v1, 4
/* 01773C 8003C33C 1040001B */ beqz $v0, .L8003C3AC
/* 017740 8003C340 00000000 */ nop
/* 017744 8003C344 04600019 */ bltz $v1, .L8003C3AC
/* 017748 8003C348 3C034000 */ lui $v1, 0x4000
/* 01774C 8003C34C 8E820000 */ lw $v0, ($s4)
/* 017750 8003C350 00431024 */ and $v0, $v0, $v1
/* 017754 8003C354 14400015 */ bnez $v0, .L8003C3AC
/* 017758 8003C358 02C0282D */ daddu $a1, $s6, $zero
/* 01775C 8003C35C 928200AC */ lbu $v0, 0xac($s4)
/* 017760 8003C360 928300AD */ lbu $v1, 0xad($s4)
/* 017764 8003C364 00430018 */ mult $v0, $v1
/* 017768 8003C368 00001012 */ mflo $v0
/* 01776C 8003C36C 3C038080 */ lui $v1, 0x8080
/* 017770 8003C370 34638081 */ ori $v1, $v1, 0x8081
/* 017774 8003C374 00430018 */ mult $v0, $v1
/* 017778 8003C378 8E830024 */ lw $v1, 0x24($s4)
/* 01777C 8003C37C 268702C8 */ addiu $a3, $s4, 0x2c8
/* 017780 8003C380 AFB70010 */ sw $s7, 0x10($sp)
/* 017784 8003C384 00004810 */ mfhi $t1
/* 017788 8003C388 01221021 */ addu $v0, $t1, $v0
/* 01778C 8003C38C 0002A9C2 */ srl $s5, $v0, 7
/* 017790 8003C390 32A600FF */ andi $a2, $s5, 0xff
/* 017794 8003C394 2CC400FF */ sltiu $a0, $a2, 0xff
/* 017798 8003C398 000427C0 */ sll $a0, $a0, 0x1f
/* 01779C 8003C39C 3C022000 */ lui $v0, 0x2000
/* 0177A0 8003C3A0 00822025 */ or $a0, $a0, $v0
/* 0177A4 8003C3A4 0C0B78F6 */ jal func_802DE3D8
/* 0177A8 8003C3A8 00642025 */ or $a0, $v1, $a0
.L8003C3AC:
/* 0177AC 8003C3AC 8FBF0040 */ lw $ra, 0x40($sp)
/* 0177B0 8003C3B0 8FB7003C */ lw $s7, 0x3c($sp)
/* 0177B4 8003C3B4 8FB60038 */ lw $s6, 0x38($sp)
/* 0177B8 8003C3B8 8FB50034 */ lw $s5, 0x34($sp)
/* 0177BC 8003C3BC 8FB40030 */ lw $s4, 0x30($sp)
/* 0177C0 8003C3C0 8FB3002C */ lw $s3, 0x2c($sp)
/* 0177C4 8003C3C4 8FB20028 */ lw $s2, 0x28($sp)
/* 0177C8 8003C3C8 8FB10024 */ lw $s1, 0x24($sp)
/* 0177CC 8003C3CC 8FB00020 */ lw $s0, 0x20($sp)
/* 0177D0 8003C3D0 03E00008 */ jr $ra
/* 0177D4 8003C3D4 27BD0048 */ addiu $sp, $sp, 0x48