papermario/ver/jp/asm/nonmatchings/main_285C0/func_8004E918.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

1081 lines
53 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8004E918
/* 29D18 8004E918 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 29D1C 8004E91C AFB40040 */ sw $s4, 0x40($sp)
/* 29D20 8004E920 0080A02D */ daddu $s4, $a0, $zero
/* 29D24 8004E924 AFBF0054 */ sw $ra, 0x54($sp)
/* 29D28 8004E928 AFBE0050 */ sw $fp, 0x50($sp)
/* 29D2C 8004E92C AFB7004C */ sw $s7, 0x4c($sp)
/* 29D30 8004E930 AFB60048 */ sw $s6, 0x48($sp)
/* 29D34 8004E934 AFB50044 */ sw $s5, 0x44($sp)
/* 29D38 8004E938 AFB3003C */ sw $s3, 0x3c($sp)
/* 29D3C 8004E93C AFB20038 */ sw $s2, 0x38($sp)
/* 29D40 8004E940 AFB10034 */ sw $s1, 0x34($sp)
/* 29D44 8004E944 AFB00030 */ sw $s0, 0x30($sp)
/* 29D48 8004E948 AFA00010 */ sw $zero, 0x10($sp)
/* 29D4C 8004E94C 8E8200BC */ lw $v0, 0xbc($s4)
/* 29D50 8004E950 10400011 */ beqz $v0, .L8004E998
/* 29D54 8004E954 A3A00028 */ sb $zero, 0x28($sp)
/* 29D58 8004E958 2442FFFF */ addiu $v0, $v0, -1
/* 29D5C 8004E95C 14400005 */ bnez $v0, .L8004E974
/* 29D60 8004E960 AE8200BC */ sw $v0, 0xbc($s4)
/* 29D64 8004E964 8E8200B8 */ lw $v0, 0xb8($s4)
/* 29D68 8004E968 AE8000B8 */ sw $zero, 0xb8($s4)
/* 29D6C 8004E96C 08013A60 */ j .L8004E980
/* 29D70 8004E970 AE8000B4 */ sw $zero, 0xb4($s4)
.L8004E974:
/* 29D74 8004E974 8E8200B0 */ lw $v0, 0xb0($s4)
/* 29D78 8004E978 8E8300B4 */ lw $v1, 0xb4($s4)
/* 29D7C 8004E97C 00431021 */ addu $v0, $v0, $v1
.L8004E980:
/* 29D80 8004E980 AE8200B0 */ sw $v0, 0xb0($s4)
/* 29D84 8004E984 8E8300B0 */ lw $v1, 0xb0($s4)
/* 29D88 8004E988 00031080 */ sll $v0, $v1, 2
/* 29D8C 8004E98C 00431021 */ addu $v0, $v0, $v1
/* 29D90 8004E990 00021040 */ sll $v0, $v0, 1
/* 29D94 8004E994 AE820008 */ sw $v0, 8($s4)
.L8004E998:
/* 29D98 8004E998 8E8200CC */ lw $v0, 0xcc($s4)
/* 29D9C 8004E99C 1040000D */ beqz $v0, .L8004E9D4
/* 29DA0 8004E9A0 2442FFFF */ addiu $v0, $v0, -1
/* 29DA4 8004E9A4 14400005 */ bnez $v0, .L8004E9BC
/* 29DA8 8004E9A8 AE8200CC */ sw $v0, 0xcc($s4)
/* 29DAC 8004E9AC 8E8200C8 */ lw $v0, 0xc8($s4)
/* 29DB0 8004E9B0 AE8000C8 */ sw $zero, 0xc8($s4)
/* 29DB4 8004E9B4 08013A72 */ j .L8004E9C8
/* 29DB8 8004E9B8 AE8000C4 */ sw $zero, 0xc4($s4)
.L8004E9BC:
/* 29DBC 8004E9BC 8E8200C0 */ lw $v0, 0xc0($s4)
/* 29DC0 8004E9C0 8E8300C4 */ lw $v1, 0xc4($s4)
/* 29DC4 8004E9C4 00431021 */ addu $v0, $v0, $v1
.L8004E9C8:
/* 29DC8 8004E9C8 AE8200C0 */ sw $v0, 0xc0($s4)
/* 29DCC 8004E9CC 240B0001 */ addiu $t3, $zero, 1
/* 29DD0 8004E9D0 AFAB0010 */ sw $t3, 0x10($sp)
.L8004E9D4:
/* 29DD4 8004E9D4 8E820204 */ lw $v0, 0x204($s4)
/* 29DD8 8004E9D8 1040003B */ beqz $v0, .L8004EAC8
/* 29DDC 8004E9DC A280021A */ sb $zero, 0x21a($s4)
/* 29DE0 8004E9E0 92820232 */ lbu $v0, 0x232($s4)
/* 29DE4 8004E9E4 1040001D */ beqz $v0, .L8004EA5C
/* 29DE8 8004E9E8 2411000F */ addiu $s1, $zero, 0xf
/* 29DEC 8004E9EC 24160030 */ addiu $s6, $zero, 0x30
.L8004E9F0:
/* 29DF0 8004E9F0 8E820204 */ lw $v0, 0x204($s4)
/* 29DF4 8004E9F4 90570000 */ lbu $s7, ($v0)
/* 29DF8 8004E9F8 24420001 */ addiu $v0, $v0, 1
/* 29DFC 8004E9FC 12E00030 */ beqz $s7, .L8004EAC0
/* 29E00 8004EA00 AE820204 */ sw $v0, 0x204($s4)
/* 29E04 8004EA04 0040182D */ daddu $v1, $v0, $zero
/* 29E08 8004EA08 00171040 */ sll $v0, $s7, 1
/* 29E0C 8004EA0C 00571021 */ addu $v0, $v0, $s7
/* 29E10 8004EA10 00021140 */ sll $v0, $v0, 5
/* 29E14 8004EA14 244201FC */ addiu $v0, $v0, 0x1fc
/* 29E18 8004EA18 02828021 */ addu $s0, $s4, $v0
/* 29E1C 8004EA1C A69600D4 */ sh $s6, 0xd4($s4)
/* 29E20 8004EA20 90620000 */ lbu $v0, ($v1)
/* 29E24 8004EA24 24630001 */ addiu $v1, $v1, 1
/* 29E28 8004EA28 AE830204 */ sw $v1, 0x204($s4)
/* 29E2C 8004EA2C A28200D6 */ sb $v0, 0xd6($s4)
/* 29E30 8004EA30 8E020000 */ lw $v0, ($s0)
/* 29E34 8004EA34 10400005 */ beqz $v0, .L8004EA4C
/* 29E38 8004EA38 0220102D */ daddu $v0, $s1, $zero
/* 29E3C 8004EA3C 0280202D */ daddu $a0, $s4, $zero
/* 29E40 8004EA40 0C013EE0 */ jal func_8004FB80
/* 29E44 8004EA44 0200282D */ daddu $a1, $s0, $zero
/* 29E48 8004EA48 0220102D */ daddu $v0, $s1, $zero
.L8004EA4C:
/* 29E4C 8004EA4C 1440FFE8 */ bnez $v0, .L8004E9F0
/* 29E50 8004EA50 2631FFFF */ addiu $s1, $s1, -1
/* 29E54 8004EA54 08013AB1 */ j .L8004EAC4
/* 29E58 8004EA58 AE800204 */ sw $zero, 0x204($s4)
.L8004EA5C:
/* 29E5C 8004EA5C 24160030 */ addiu $s6, $zero, 0x30
.L8004EA60:
/* 29E60 8004EA60 8E820204 */ lw $v0, 0x204($s4)
/* 29E64 8004EA64 90570000 */ lbu $s7, ($v0)
/* 29E68 8004EA68 24420001 */ addiu $v0, $v0, 1
/* 29E6C 8004EA6C 12E00014 */ beqz $s7, .L8004EAC0
/* 29E70 8004EA70 AE820204 */ sw $v0, 0x204($s4)
/* 29E74 8004EA74 00171040 */ sll $v0, $s7, 1
/* 29E78 8004EA78 00571021 */ addu $v0, $v0, $s7
/* 29E7C 8004EA7C 00021140 */ sll $v0, $v0, 5
/* 29E80 8004EA80 244201FC */ addiu $v0, $v0, 0x1fc
/* 29E84 8004EA84 8E830204 */ lw $v1, 0x204($s4)
/* 29E88 8004EA88 02828021 */ addu $s0, $s4, $v0
/* 29E8C 8004EA8C A69600D4 */ sh $s6, 0xd4($s4)
/* 29E90 8004EA90 A28000D6 */ sb $zero, 0xd6($s4)
/* 29E94 8004EA94 24630001 */ addiu $v1, $v1, 1
/* 29E98 8004EA98 AE830204 */ sw $v1, 0x204($s4)
/* 29E9C 8004EA9C 8E020000 */ lw $v0, ($s0)
/* 29EA0 8004EAA0 10400005 */ beqz $v0, .L8004EAB8
/* 29EA4 8004EAA4 0220102D */ daddu $v0, $s1, $zero
/* 29EA8 8004EAA8 0280202D */ daddu $a0, $s4, $zero
/* 29EAC 8004EAAC 0C013EE0 */ jal func_8004FB80
/* 29EB0 8004EAB0 0200282D */ daddu $a1, $s0, $zero
/* 29EB4 8004EAB4 0220102D */ daddu $v0, $s1, $zero
.L8004EAB8:
/* 29EB8 8004EAB8 1440FFE9 */ bnez $v0, .L8004EA60
/* 29EBC 8004EABC 2631FFFF */ addiu $s1, $s1, -1
.L8004EAC0:
/* 29EC0 8004EAC0 AE800204 */ sw $zero, 0x204($s4)
.L8004EAC4:
/* 29EC4 8004EAC4 A2800232 */ sb $zero, 0x232($s4)
.L8004EAC8:
/* 29EC8 8004EAC8 0000B82D */ daddu $s7, $zero, $zero
/* 29ECC 8004EACC 00171040 */ sll $v0, $s7, 1
.L8004EAD0:
/* 29ED0 8004EAD0 00571021 */ addu $v0, $v0, $s7
/* 29ED4 8004EAD4 00021140 */ sll $v0, $v0, 5
/* 29ED8 8004EAD8 2442025C */ addiu $v0, $v0, 0x25c
/* 29EDC 8004EADC 02828021 */ addu $s0, $s4, $v0
/* 29EE0 8004EAE0 8E020000 */ lw $v0, ($s0)
/* 29EE4 8004EAE4 5040034E */ beql $v0, $zero, .L8004F820
/* 29EE8 8004EAE8 26F70001 */ addiu $s7, $s7, 1
/* 29EEC 8004EAEC AE000040 */ sw $zero, 0x40($s0)
/* 29EF0 8004EAF0 8FAB0010 */ lw $t3, 0x10($sp)
/* 29EF4 8004EAF4 15600004 */ bnez $t3, .L8004EB08
/* 29EF8 8004EAF8 240B0001 */ addiu $t3, $zero, 1
/* 29EFC 8004EAFC 8282021A */ lb $v0, 0x21a($s4)
/* 29F00 8004EB00 50400002 */ beql $v0, $zero, .L8004EB0C
/* 29F04 8004EB04 A2000041 */ sb $zero, 0x41($s0)
.L8004EB08:
/* 29F08 8004EB08 A20B0041 */ sb $t3, 0x41($s0)
.L8004EB0C:
/* 29F0C 8004EB0C 8E020024 */ lw $v0, 0x24($s0)
/* 29F10 8004EB10 1040000C */ beqz $v0, .L8004EB44
/* 29F14 8004EB14 2442FFFF */ addiu $v0, $v0, -1
/* 29F18 8004EB18 14400004 */ bnez $v0, .L8004EB2C
/* 29F1C 8004EB1C AE020024 */ sw $v0, 0x24($s0)
/* 29F20 8004EB20 8E020020 */ lw $v0, 0x20($s0)
/* 29F24 8004EB24 08013ACF */ j .L8004EB3C
/* 29F28 8004EB28 AE020018 */ sw $v0, 0x18($s0)
.L8004EB2C:
/* 29F2C 8004EB2C 8E020018 */ lw $v0, 0x18($s0)
/* 29F30 8004EB30 8E03001C */ lw $v1, 0x1c($s0)
/* 29F34 8004EB34 00431021 */ addu $v0, $v0, $v1
/* 29F38 8004EB38 AE020018 */ sw $v0, 0x18($s0)
.L8004EB3C:
/* 29F3C 8004EB3C 240B0001 */ addiu $t3, $zero, 1
/* 29F40 8004EB40 A20B0041 */ sb $t3, 0x41($s0)
.L8004EB44:
/* 29F44 8004EB44 86020036 */ lh $v0, 0x36($s0)
/* 29F48 8004EB48 96030036 */ lhu $v1, 0x36($s0)
/* 29F4C 8004EB4C 1040000E */ beqz $v0, .L8004EB88
/* 29F50 8004EB50 2462FFFF */ addiu $v0, $v1, -1
/* 29F54 8004EB54 A6020036 */ sh $v0, 0x36($s0)
/* 29F58 8004EB58 00021400 */ sll $v0, $v0, 0x10
/* 29F5C 8004EB5C 14400004 */ bnez $v0, .L8004EB70
/* 29F60 8004EB60 00000000 */ nop
/* 29F64 8004EB64 86020034 */ lh $v0, 0x34($s0)
/* 29F68 8004EB68 08013ADF */ j .L8004EB7C
/* 29F6C 8004EB6C 00021400 */ sll $v0, $v0, 0x10
.L8004EB70:
/* 29F70 8004EB70 8E02002C */ lw $v0, 0x2c($s0)
/* 29F74 8004EB74 8E030030 */ lw $v1, 0x30($s0)
/* 29F78 8004EB78 00431021 */ addu $v0, $v0, $v1
.L8004EB7C:
/* 29F7C 8004EB7C AE02002C */ sw $v0, 0x2c($s0)
/* 29F80 8004EB80 240B0001 */ addiu $t3, $zero, 1
/* 29F84 8004EB84 A20B0041 */ sb $t3, 0x41($s0)
.L8004EB88:
/* 29F88 8004EB88 8E020028 */ lw $v0, 0x28($s0)
/* 29F8C 8004EB8C 2442FFFF */ addiu $v0, $v0, -1
/* 29F90 8004EB90 1C400250 */ bgtz $v0, .L8004F4D4
/* 29F94 8004EB94 AE020028 */ sw $v0, 0x28($s0)
/* 29F98 8004EB98 920B0052 */ lbu $t3, 0x52($s0)
/* 29F9C 8004EB9C 1440024D */ bnez $v0, .L8004F4D4
/* 29FA0 8004EBA0 A3AB001F */ sb $t3, 0x1f($sp)
.L8004EBA4:
/* 29FA4 8004EBA4 8E020000 */ lw $v0, ($s0)
/* 29FA8 8004EBA8 90470000 */ lbu $a3, ($v0)
/* 29FAC 8004EBAC 24420001 */ addiu $v0, $v0, 1
/* 29FB0 8004EBB0 AE020000 */ sw $v0, ($s0)
/* 29FB4 8004EBB4 8602003E */ lh $v0, 0x3e($s0)
/* 29FB8 8004EBB8 9603003E */ lhu $v1, 0x3e($s0)
/* 29FBC 8004EBBC 10400007 */ beqz $v0, .L8004EBDC
/* 29FC0 8004EBC0 2462FFFF */ addiu $v0, $v1, -1
/* 29FC4 8004EBC4 A602003E */ sh $v0, 0x3e($s0)
/* 29FC8 8004EBC8 00021400 */ sll $v0, $v0, 0x10
/* 29FCC 8004EBCC 14400004 */ bnez $v0, .L8004EBE0
/* 29FD0 8004EBD0 00071600 */ sll $v0, $a3, 0x18
/* 29FD4 8004EBD4 8E020004 */ lw $v0, 4($s0)
/* 29FD8 8004EBD8 AE020000 */ sw $v0, ($s0)
.L8004EBDC:
/* 29FDC 8004EBDC 00071600 */ sll $v0, $a3, 0x18
.L8004EBE0:
/* 29FE0 8004EBE0 0440002B */ bltz $v0, .L8004EC90
/* 29FE4 8004EBE4 30E300FF */ andi $v1, $a3, 0xff
/* 29FE8 8004EBE8 14600009 */ bnez $v1, .L8004EC10
/* 29FEC 8004EBEC 2C620078 */ sltiu $v0, $v1, 0x78
/* 29FF0 8004EBF0 8E020008 */ lw $v0, 8($s0)
/* 29FF4 8004EBF4 10400004 */ beqz $v0, .L8004EC08
/* 29FF8 8004EBF8 240B0001 */ addiu $t3, $zero, 1
/* 29FFC 8004EBFC AE020000 */ sw $v0, ($s0)
/* 2A000 8004EC00 08013D32 */ j .L8004F4C8
/* 2A004 8004EC04 AE000008 */ sw $zero, 8($s0)
.L8004EC08:
/* 2A008 8004EC08 08013D35 */ j .L8004F4D4
/* 2A00C 8004EC0C A3AB0028 */ sb $t3, 0x28($sp)
.L8004EC10:
/* 2A010 8004EC10 5440022D */ bnel $v0, $zero, .L8004F4C8
/* 2A014 8004EC14 AE030028 */ sw $v1, 0x28($s0)
/* 2A018 8004EC18 8E020000 */ lw $v0, ($s0)
/* 2A01C 8004EC1C 90430000 */ lbu $v1, ($v0)
/* 2A020 8004EC20 24420001 */ addiu $v0, $v0, 1
/* 2A024 8004EC24 AE020000 */ sw $v0, ($s0)
/* 2A028 8004EC28 30E20007 */ andi $v0, $a3, 7
/* 2A02C 8004EC2C 00021200 */ sll $v0, $v0, 8
/* 2A030 8004EC30 00431021 */ addu $v0, $v0, $v1
/* 2A034 8004EC34 24420078 */ addiu $v0, $v0, 0x78
/* 2A038 8004EC38 AE020028 */ sw $v0, 0x28($s0)
/* 2A03C 8004EC3C 8602003E */ lh $v0, 0x3e($s0)
/* 2A040 8004EC40 9603003E */ lhu $v1, 0x3e($s0)
/* 2A044 8004EC44 10400220 */ beqz $v0, .L8004F4C8
/* 2A048 8004EC48 2462FFFF */ addiu $v0, $v1, -1
/* 2A04C 8004EC4C A602003E */ sh $v0, 0x3e($s0)
/* 2A050 8004EC50 00021400 */ sll $v0, $v0, 0x10
/* 2A054 8004EC54 1440021C */ bnez $v0, .L8004F4C8
/* 2A058 8004EC58 00000000 */ nop
/* 2A05C 8004EC5C 8E020004 */ lw $v0, 4($s0)
/* 2A060 8004EC60 08013D32 */ j .L8004F4C8
/* 2A064 8004EC64 AE020000 */ sw $v0, ($s0)
.L8004EC68:
/* 2A068 8004EC68 08013B73 */ j .L8004EDCC
/* 2A06C 8004EC6C 24110001 */ addiu $s1, $zero, 1
.L8004EC70:
/* 2A070 8004EC70 0C014D5D */ jal func_80053574
/* 2A074 8004EC74 0240202D */ daddu $a0, $s2, $zero
/* 2A078 8004EC78 08013B8F */ j .L8004EE3C
/* 2A07C 8004EC7C 24110001 */ addiu $s1, $zero, 1
.L8004EC80:
/* 2A080 8004EC80 0C014D5D */ jal func_80053574
/* 2A084 8004EC84 0240202D */ daddu $a0, $s2, $zero
/* 2A088 8004EC88 08013BAE */ j .L8004EEB8
/* 2A08C 8004EC8C 24110001 */ addiu $s1, $zero, 1
.L8004EC90:
/* 2A090 8004EC90 2C6200D4 */ sltiu $v0, $v1, 0xd4
/* 2A094 8004EC94 104001B7 */ beqz $v0, .L8004F374
/* 2A098 8004EC98 00000000 */ nop
/* 2A09C 8004EC9C 8E020000 */ lw $v0, ($s0)
/* 2A0A0 8004ECA0 905E0000 */ lbu $fp, ($v0)
/* 2A0A4 8004ECA4 24420001 */ addiu $v0, $v0, 1
/* 2A0A8 8004ECA8 AE020000 */ sw $v0, ($s0)
/* 2A0AC 8004ECAC 30E2007F */ andi $v0, $a3, 0x7f
/* 2A0B0 8004ECB0 304200FF */ andi $v0, $v0, 0xff
/* 2A0B4 8004ECB4 A7A20026 */ sh $v0, 0x26($sp)
/* 2A0B8 8004ECB8 8602003E */ lh $v0, 0x3e($s0)
/* 2A0BC 8004ECBC 9603003E */ lhu $v1, 0x3e($s0)
/* 2A0C0 8004ECC0 10400007 */ beqz $v0, .L8004ECE0
/* 2A0C4 8004ECC4 2462FFFF */ addiu $v0, $v1, -1
/* 2A0C8 8004ECC8 A602003E */ sh $v0, 0x3e($s0)
/* 2A0CC 8004ECCC 00021400 */ sll $v0, $v0, 0x10
/* 2A0D0 8004ECD0 14400003 */ bnez $v0, .L8004ECE0
/* 2A0D4 8004ECD4 00000000 */ nop
/* 2A0D8 8004ECD8 8E020004 */ lw $v0, 4($s0)
/* 2A0DC 8004ECDC AE020000 */ sw $v0, ($s0)
.L8004ECE0:
/* 2A0E0 8004ECE0 8E020000 */ lw $v0, ($s0)
/* 2A0E4 8004ECE4 90560000 */ lbu $s6, ($v0)
/* 2A0E8 8004ECE8 24420001 */ addiu $v0, $v0, 1
/* 2A0EC 8004ECEC AE020000 */ sw $v0, ($s0)
/* 2A0F0 8004ECF0 8602003E */ lh $v0, 0x3e($s0)
/* 2A0F4 8004ECF4 9603003E */ lhu $v1, 0x3e($s0)
/* 2A0F8 8004ECF8 10400007 */ beqz $v0, .L8004ED18
/* 2A0FC 8004ECFC 2462FFFF */ addiu $v0, $v1, -1
/* 2A100 8004ED00 A602003E */ sh $v0, 0x3e($s0)
/* 2A104 8004ED04 00021400 */ sll $v0, $v0, 0x10
/* 2A108 8004ED08 14400004 */ bnez $v0, .L8004ED1C
/* 2A10C 8004ED0C 2AC200C0 */ slti $v0, $s6, 0xc0
/* 2A110 8004ED10 8E020004 */ lw $v0, 4($s0)
/* 2A114 8004ED14 AE020000 */ sw $v0, ($s0)
.L8004ED18:
/* 2A118 8004ED18 2AC200C0 */ slti $v0, $s6, 0xc0
.L8004ED1C:
/* 2A11C 8004ED1C 14400013 */ bnez $v0, .L8004ED6C
/* 2A120 8004ED20 00000000 */ nop
/* 2A124 8004ED24 8E020000 */ lw $v0, ($s0)
/* 2A128 8004ED28 90430000 */ lbu $v1, ($v0)
/* 2A12C 8004ED2C 24420001 */ addiu $v0, $v0, 1
/* 2A130 8004ED30 AE020000 */ sw $v0, ($s0)
/* 2A134 8004ED34 32C2003F */ andi $v0, $s6, 0x3f
/* 2A138 8004ED38 00021200 */ sll $v0, $v0, 8
/* 2A13C 8004ED3C 00431021 */ addu $v0, $v0, $v1
/* 2A140 8004ED40 245600C0 */ addiu $s6, $v0, 0xc0
/* 2A144 8004ED44 8602003E */ lh $v0, 0x3e($s0)
/* 2A148 8004ED48 9603003E */ lhu $v1, 0x3e($s0)
/* 2A14C 8004ED4C 10400007 */ beqz $v0, .L8004ED6C
/* 2A150 8004ED50 2462FFFF */ addiu $v0, $v1, -1
/* 2A154 8004ED54 A602003E */ sh $v0, 0x3e($s0)
/* 2A158 8004ED58 00021400 */ sll $v0, $v0, 0x10
/* 2A15C 8004ED5C 14400003 */ bnez $v0, .L8004ED6C
/* 2A160 8004ED60 00000000 */ nop
/* 2A164 8004ED64 8E020004 */ lw $v0, 4($s0)
/* 2A168 8004ED68 AE020000 */ sw $v0, ($s0)
.L8004ED6C:
/* 2A16C 8004ED6C 9202005A */ lbu $v0, 0x5a($s0)
/* 2A170 8004ED70 14400097 */ bnez $v0, .L8004EFD0
/* 2A174 8004ED74 0000882D */ daddu $s1, $zero, $zero
/* 2A178 8004ED78 93B5001F */ lbu $s5, 0x1f($sp)
/* 2A17C 8004ED7C 92040053 */ lbu $a0, 0x53($s0)
/* 2A180 8004ED80 32A300FF */ andi $v1, $s5, 0xff
/* 2A184 8004ED84 0064102B */ sltu $v0, $v1, $a0
/* 2A188 8004ED88 10400010 */ beqz $v0, .L8004EDCC
/* 2A18C 8004ED8C 000310C0 */ sll $v0, $v1, 3
/* 2A190 8004ED90 8E850000 */ lw $a1, ($s4)
.L8004ED94:
/* 2A194 8004ED94 00431021 */ addu $v0, $v0, $v1
/* 2A198 8004ED98 000210C0 */ sll $v0, $v0, 3
/* 2A19C 8004ED9C 24421320 */ addiu $v0, $v0, 0x1320
/* 2A1A0 8004EDA0 00A29021 */ addu $s2, $a1, $v0
/* 2A1A4 8004EDA4 93AB001F */ lbu $t3, 0x1f($sp)
/* 2A1A8 8004EDA8 92420045 */ lbu $v0, 0x45($s2)
/* 2A1AC 8004EDAC 256B0001 */ addiu $t3, $t3, 1
/* 2A1B0 8004EDB0 1040FFAD */ beqz $v0, .L8004EC68
/* 2A1B4 8004EDB4 A3AB001F */ sb $t3, 0x1f($sp)
/* 2A1B8 8004EDB8 26B50001 */ addiu $s5, $s5, 1
/* 2A1BC 8004EDBC 32A300FF */ andi $v1, $s5, 0xff
/* 2A1C0 8004EDC0 0064102B */ sltu $v0, $v1, $a0
/* 2A1C4 8004EDC4 1440FFF3 */ bnez $v0, .L8004ED94
/* 2A1C8 8004EDC8 000310C0 */ sll $v0, $v1, 3
.L8004EDCC:
/* 2A1CC 8004EDCC 16200082 */ bnez $s1, .L8004EFD8
/* 2A1D0 8004EDD0 32A200FF */ andi $v0, $s5, 0xff
/* 2A1D4 8004EDD4 92020054 */ lbu $v0, 0x54($s0)
/* 2A1D8 8004EDD8 2C420005 */ sltiu $v0, $v0, 5
/* 2A1DC 8004EDDC 14400066 */ bnez $v0, .L8004EF78
/* 2A1E0 8004EDE0 00000000 */ nop
/* 2A1E4 8004EDE4 92150052 */ lbu $s5, 0x52($s0)
/* 2A1E8 8004EDE8 92030053 */ lbu $v1, 0x53($s0)
/* 2A1EC 8004EDEC 32A500FF */ andi $a1, $s5, 0xff
/* 2A1F0 8004EDF0 00A3102B */ sltu $v0, $a1, $v1
/* 2A1F4 8004EDF4 10400011 */ beqz $v0, .L8004EE3C
/* 2A1F8 8004EDF8 000510C0 */ sll $v0, $a1, 3
/* 2A1FC 8004EDFC 0060302D */ daddu $a2, $v1, $zero
/* 2A200 8004EE00 8E840000 */ lw $a0, ($s4)
/* 2A204 8004EE04 92830234 */ lbu $v1, 0x234($s4)
.L8004EE08:
/* 2A208 8004EE08 00451021 */ addu $v0, $v0, $a1
/* 2A20C 8004EE0C 000210C0 */ sll $v0, $v0, 3
/* 2A210 8004EE10 24421320 */ addiu $v0, $v0, 0x1320
/* 2A214 8004EE14 00829021 */ addu $s2, $a0, $v0
/* 2A218 8004EE18 92420045 */ lbu $v0, 0x45($s2)
/* 2A21C 8004EE1C 0043102B */ sltu $v0, $v0, $v1
/* 2A220 8004EE20 1440FF93 */ bnez $v0, .L8004EC70
/* 2A224 8004EE24 00000000 */ nop
/* 2A228 8004EE28 26B50001 */ addiu $s5, $s5, 1
/* 2A22C 8004EE2C 32A500FF */ andi $a1, $s5, 0xff
/* 2A230 8004EE30 00A6102B */ sltu $v0, $a1, $a2
/* 2A234 8004EE34 1440FFF4 */ bnez $v0, .L8004EE08
/* 2A238 8004EE38 000510C0 */ sll $v0, $a1, 3
.L8004EE3C:
/* 2A23C 8004EE3C 16200066 */ bnez $s1, .L8004EFD8
/* 2A240 8004EE40 32A200FF */ andi $v0, $s5, 0xff
/* 2A244 8004EE44 92150052 */ lbu $s5, 0x52($s0)
/* 2A248 8004EE48 92030053 */ lbu $v1, 0x53($s0)
/* 2A24C 8004EE4C 32A500FF */ andi $a1, $s5, 0xff
/* 2A250 8004EE50 00A3102B */ sltu $v0, $a1, $v1
/* 2A254 8004EE54 10400018 */ beqz $v0, .L8004EEB8
/* 2A258 8004EE58 000510C0 */ sll $v0, $a1, 3
/* 2A25C 8004EE5C 0060302D */ daddu $a2, $v1, $zero
/* 2A260 8004EE60 8E840000 */ lw $a0, ($s4)
/* 2A264 8004EE64 92830234 */ lbu $v1, 0x234($s4)
.L8004EE68:
/* 2A268 8004EE68 00451021 */ addu $v0, $v0, $a1
/* 2A26C 8004EE6C 000210C0 */ sll $v0, $v0, 3
/* 2A270 8004EE70 24421320 */ addiu $v0, $v0, 0x1320
/* 2A274 8004EE74 00829021 */ addu $s2, $a0, $v0
/* 2A278 8004EE78 92420045 */ lbu $v0, 0x45($s2)
/* 2A27C 8004EE7C 5443000A */ bnel $v0, $v1, .L8004EEA8
/* 2A280 8004EE80 26B50001 */ addiu $s5, $s5, 1
/* 2A284 8004EE84 00051040 */ sll $v0, $a1, 1
/* 2A288 8004EE88 00451021 */ addu $v0, $v0, $a1
/* 2A28C 8004EE8C 000210C0 */ sll $v0, $v0, 3
/* 2A290 8004EE90 2442085C */ addiu $v0, $v0, 0x85c
/* 2A294 8004EE94 02829821 */ addu $s3, $s4, $v0
/* 2A298 8004EE98 8E62000C */ lw $v0, 0xc($s3)
/* 2A29C 8004EE9C 1040FF78 */ beqz $v0, .L8004EC80
/* 2A2A0 8004EEA0 00000000 */ nop
/* 2A2A4 8004EEA4 26B50001 */ addiu $s5, $s5, 1
.L8004EEA8:
/* 2A2A8 8004EEA8 32A500FF */ andi $a1, $s5, 0xff
/* 2A2AC 8004EEAC 00A6102B */ sltu $v0, $a1, $a2
/* 2A2B0 8004EEB0 1440FFED */ bnez $v0, .L8004EE68
/* 2A2B4 8004EEB4 000510C0 */ sll $v0, $a1, 3
.L8004EEB8:
/* 2A2B8 8004EEB8 16200047 */ bnez $s1, .L8004EFD8
/* 2A2BC 8004EEBC 32A200FF */ andi $v0, $s5, 0xff
/* 2A2C0 8004EEC0 92050052 */ lbu $a1, 0x52($s0)
/* 2A2C4 8004EEC4 92040053 */ lbu $a0, 0x53($s0)
/* 2A2C8 8004EEC8 30A300FF */ andi $v1, $a1, 0xff
/* 2A2CC 8004EECC 0064102B */ sltu $v0, $v1, $a0
/* 2A2D0 8004EED0 10400022 */ beqz $v0, .L8004EF5C
/* 2A2D4 8004EED4 3407FFFF */ ori $a3, $zero, 0xffff
/* 2A2D8 8004EED8 0080502D */ daddu $t2, $a0, $zero
/* 2A2DC 8004EEDC 8E890000 */ lw $t1, ($s4)
/* 2A2E0 8004EEE0 92880234 */ lbu $t0, 0x234($s4)
/* 2A2E4 8004EEE4 000310C0 */ sll $v0, $v1, 3
.L8004EEE8:
/* 2A2E8 8004EEE8 00431021 */ addu $v0, $v0, $v1
/* 2A2EC 8004EEEC 000210C0 */ sll $v0, $v0, 3
/* 2A2F0 8004EEF0 24421320 */ addiu $v0, $v0, 0x1320
/* 2A2F4 8004EEF4 01223021 */ addu $a2, $t1, $v0
/* 2A2F8 8004EEF8 90C20045 */ lbu $v0, 0x45($a2)
/* 2A2FC 8004EEFC 54480013 */ bnel $v0, $t0, .L8004EF4C
/* 2A300 8004EF00 24A50001 */ addiu $a1, $a1, 1
/* 2A304 8004EF04 00031040 */ sll $v0, $v1, 1
/* 2A308 8004EF08 00431021 */ addu $v0, $v0, $v1
/* 2A30C 8004EF0C 000210C0 */ sll $v0, $v0, 3
/* 2A310 8004EF10 2442085C */ addiu $v0, $v0, 0x85c
/* 2A314 8004EF14 02822021 */ addu $a0, $s4, $v0
/* 2A318 8004EF18 90820017 */ lbu $v0, 0x17($a0)
/* 2A31C 8004EF1C 5440000B */ bnel $v0, $zero, .L8004EF4C
/* 2A320 8004EF20 24A50001 */ addiu $a1, $a1, 1
/* 2A324 8004EF24 8C83000C */ lw $v1, 0xc($a0)
/* 2A328 8004EF28 0067102A */ slt $v0, $v1, $a3
/* 2A32C 8004EF2C 50400007 */ beql $v0, $zero, .L8004EF4C
/* 2A330 8004EF30 24A50001 */ addiu $a1, $a1, 1
/* 2A334 8004EF34 0060382D */ daddu $a3, $v1, $zero
/* 2A338 8004EF38 00C0902D */ daddu $s2, $a2, $zero
/* 2A33C 8004EF3C 0080982D */ daddu $s3, $a0, $zero
/* 2A340 8004EF40 00A0A82D */ daddu $s5, $a1, $zero
/* 2A344 8004EF44 24110001 */ addiu $s1, $zero, 1
/* 2A348 8004EF48 24A50001 */ addiu $a1, $a1, 1
.L8004EF4C:
/* 2A34C 8004EF4C 30A300FF */ andi $v1, $a1, 0xff
/* 2A350 8004EF50 006A102B */ sltu $v0, $v1, $t2
/* 2A354 8004EF54 1440FFE4 */ bnez $v0, .L8004EEE8
/* 2A358 8004EF58 000310C0 */ sll $v0, $v1, 3
.L8004EF5C:
/* 2A35C 8004EF5C 1220015A */ beqz $s1, .L8004F4C8
/* 2A360 8004EF60 0240202D */ daddu $a0, $s2, $zero
/* 2A364 8004EF64 AE60000C */ sw $zero, 0xc($s3)
/* 2A368 8004EF68 0C014D5D */ jal func_80053574
/* 2A36C 8004EF6C 32A500FF */ andi $a1, $s5, 0xff
/* 2A370 8004EF70 08013BF4 */ j .L8004EFD0
/* 2A374 8004EF74 00000000 */ nop
.L8004EF78:
/* 2A378 8004EF78 92150052 */ lbu $s5, 0x52($s0)
/* 2A37C 8004EF7C 8E830000 */ lw $v1, ($s4)
/* 2A380 8004EF80 32A500FF */ andi $a1, $s5, 0xff
/* 2A384 8004EF84 000510C0 */ sll $v0, $a1, 3
/* 2A388 8004EF88 00451021 */ addu $v0, $v0, $a1
/* 2A38C 8004EF8C 000210C0 */ sll $v0, $v0, 3
/* 2A390 8004EF90 24421320 */ addiu $v0, $v0, 0x1320
/* 2A394 8004EF94 00629021 */ addu $s2, $v1, $v0
/* 2A398 8004EF98 00051040 */ sll $v0, $a1, 1
/* 2A39C 8004EF9C 00451021 */ addu $v0, $v0, $a1
/* 2A3A0 8004EFA0 000210C0 */ sll $v0, $v0, 3
/* 2A3A4 8004EFA4 2442085C */ addiu $v0, $v0, 0x85c
/* 2A3A8 8004EFA8 02829821 */ addu $s3, $s4, $v0
/* 2A3AC 8004EFAC AE60000C */ sw $zero, 0xc($s3)
/* 2A3B0 8004EFB0 92430045 */ lbu $v1, 0x45($s2)
/* 2A3B4 8004EFB4 92820234 */ lbu $v0, 0x234($s4)
/* 2A3B8 8004EFB8 0043102B */ sltu $v0, $v0, $v1
/* 2A3BC 8004EFBC 14400004 */ bnez $v0, .L8004EFD0
/* 2A3C0 8004EFC0 00000000 */ nop
/* 2A3C4 8004EFC4 0C014D5D */ jal func_80053574
/* 2A3C8 8004EFC8 0240202D */ daddu $a0, $s2, $zero
/* 2A3CC 8004EFCC 24110001 */ addiu $s1, $zero, 1
.L8004EFD0:
/* 2A3D0 8004EFD0 1220013D */ beqz $s1, .L8004F4C8
/* 2A3D4 8004EFD4 32A200FF */ andi $v0, $s5, 0xff
.L8004EFD8:
/* 2A3D8 8004EFD8 00021840 */ sll $v1, $v0, 1
/* 2A3DC 8004EFDC 00621821 */ addu $v1, $v1, $v0
/* 2A3E0 8004EFE0 000318C0 */ sll $v1, $v1, 3
/* 2A3E4 8004EFE4 2463085C */ addiu $v1, $v1, 0x85c
/* 2A3E8 8004EFE8 02839821 */ addu $s3, $s4, $v1
/* 2A3EC 8004EFEC 33C200FF */ andi $v0, $fp, 0xff
/* 2A3F0 8004EFF0 10400004 */ beqz $v0, .L8004F004
/* 2A3F4 8004EFF4 A2600012 */ sb $zero, 0x12($s3)
/* 2A3F8 8004EFF8 27C20001 */ addiu $v0, $fp, 1
/* 2A3FC 8004EFFC 08013C02 */ j .L8004F008
/* 2A400 8004F000 A2620016 */ sb $v0, 0x16($s3)
.L8004F004:
/* 2A404 8004F004 A2600016 */ sb $zero, 0x16($s3)
.L8004F008:
/* 2A408 8004F008 AE76000C */ sw $s6, 0xc($s3)
/* 2A40C 8004F00C 92020058 */ lbu $v0, 0x58($s0)
/* 2A410 8004F010 10400072 */ beqz $v0, .L8004F1DC
/* 2A414 8004F014 00000000 */ nop
/* 2A418 8004F018 97AB0026 */ lhu $t3, 0x26($sp)
/* 2A41C 8004F01C 0160202D */ daddu $a0, $t3, $zero
/* 2A420 8004F020 28820048 */ slti $v0, $a0, 0x48
/* 2A424 8004F024 10400007 */ beqz $v0, .L8004F044
/* 2A428 8004F028 00041040 */ sll $v0, $a0, 1
/* 2A42C 8004F02C 8E830000 */ lw $v1, ($s4)
/* 2A430 8004F030 00441021 */ addu $v0, $v0, $a0
/* 2A434 8004F034 8C630054 */ lw $v1, 0x54($v1)
/* 2A438 8004F038 00021080 */ sll $v0, $v0, 2
/* 2A43C 8004F03C 08013C15 */ j .L8004F054
/* 2A440 8004F040 00628821 */ addu $s1, $v1, $v0
.L8004F044:
/* 2A444 8004F044 2482FFB8 */ addiu $v0, $a0, -0x48
/* 2A448 8004F048 00021080 */ sll $v0, $v0, 2
/* 2A44C 8004F04C 02821021 */ addu $v0, $s4, $v0
/* 2A450 8004F050 8C510080 */ lw $s1, 0x80($v0)
.L8004F054:
/* 2A454 8004F054 26470014 */ addiu $a3, $s2, 0x14
/* 2A458 8004F058 96260000 */ lhu $a2, ($s1)
/* 2A45C 8004F05C 8E840000 */ lw $a0, ($s4)
/* 2A460 8004F060 00062A02 */ srl $a1, $a2, 8
/* 2A464 8004F064 0C014E26 */ jal func_80053898
/* 2A468 8004F068 30C600FF */ andi $a2, $a2, 0xff
/* 2A46C 8004F06C AE620000 */ sw $v0, ($s3)
/* 2A470 8004F070 92220008 */ lbu $v0, 8($s1)
/* 2A474 8004F074 10400008 */ beqz $v0, .L8004F098
/* 2A478 8004F078 00000000 */ nop
/* 2A47C 8004F07C 8E840050 */ lw $a0, 0x50($s4)
/* 2A480 8004F080 92250004 */ lbu $a1, 4($s1)
/* 2A484 8004F084 0C0140C1 */ jal func_80050304
/* 2A488 8004F088 0040302D */ daddu $a2, $v0, $zero
/* 2A48C 8004F08C 92630016 */ lbu $v1, 0x16($s3)
/* 2A490 8004F090 08013C28 */ j .L8004F0A0
/* 2A494 8004F094 304200FF */ andi $v0, $v0, 0xff
.L8004F098:
/* 2A498 8004F098 92630016 */ lbu $v1, 0x16($s3)
/* 2A49C 8004F09C 92220004 */ lbu $v0, 4($s1)
.L8004F0A0:
/* 2A4A0 8004F0A0 00620018 */ mult $v1, $v0
/* 2A4A4 8004F0A4 00005812 */ mflo $t3
/* 2A4A8 8004F0A8 A66B0008 */ sh $t3, 8($s3)
/* 2A4AC 8004F0AC 8E8300C0 */ lw $v1, 0xc0($s4)
/* 2A4B0 8004F0B0 8E020018 */ lw $v0, 0x18($s0)
/* 2A4B4 8004F0B4 00031D43 */ sra $v1, $v1, 0x15
/* 2A4B8 8004F0B8 00021543 */ sra $v0, $v0, 0x15
/* 2A4BC 8004F0BC 00620018 */ mult $v1, $v0
/* 2A4C0 8004F0C0 8E02002C */ lw $v0, 0x2c($s0)
/* 2A4C4 8004F0C4 00001812 */ mflo $v1
/* 2A4C8 8004F0C8 00021543 */ sra $v0, $v0, 0x15
/* 2A4CC 8004F0CC 00000000 */ nop
/* 2A4D0 8004F0D0 00620018 */ mult $v1, $v0
/* 2A4D4 8004F0D4 82030049 */ lb $v1, 0x49($s0)
/* 2A4D8 8004F0D8 00002012 */ mflo $a0
/* 2A4DC 8004F0DC 86620008 */ lh $v0, 8($s3)
/* 2A4E0 8004F0E0 00000000 */ nop
/* 2A4E4 8004F0E4 00620018 */ mult $v1, $v0
/* 2A4E8 8004F0E8 00001812 */ mflo $v1
/* 2A4EC 8004F0EC 00041503 */ sra $v0, $a0, 0x14
/* 2A4F0 8004F0F0 00000000 */ nop
/* 2A4F4 8004F0F4 00430018 */ mult $v0, $v1
/* 2A4F8 8004F0F8 00001812 */ mflo $v1
/* 2A4FC 8004F0FC 00031403 */ sra $v0, $v1, 0x10
/* 2A500 8004F100 A6420040 */ sh $v0, 0x40($s2)
/* 2A504 8004F104 92020048 */ lbu $v0, 0x48($s0)
/* 2A508 8004F108 96230002 */ lhu $v1, 2($s1)
/* 2A50C 8004F10C 96040046 */ lhu $a0, 0x46($s0)
/* 2A510 8004F110 8E650000 */ lw $a1, ($s3)
/* 2A514 8004F114 00021600 */ sll $v0, $v0, 0x18
/* 2A518 8004F118 00021603 */ sra $v0, $v0, 0x18
/* 2A51C 8004F11C 00641821 */ addu $v1, $v1, $a0
/* 2A520 8004F120 94A4001E */ lhu $a0, 0x1e($a1)
/* 2A524 8004F124 00431021 */ addu $v0, $v0, $v1
/* 2A528 8004F128 00441023 */ subu $v0, $v0, $a0
/* 2A52C 8004F12C A662000A */ sh $v0, 0xa($s3)
/* 2A530 8004F130 00021400 */ sll $v0, $v0, 0x10
/* 2A534 8004F134 86030038 */ lh $v1, 0x38($s0)
/* 2A538 8004F138 00021403 */ sra $v0, $v0, 0x10
/* 2A53C 8004F13C 00431021 */ addu $v0, $v0, $v1
/* 2A540 8004F140 8683020E */ lh $v1, 0x20e($s4)
/* 2A544 8004F144 92240007 */ lbu $a0, 7($s1)
/* 2A548 8004F148 10800007 */ beqz $a0, .L8004F168
/* 2A54C 8004F14C 00432821 */ addu $a1, $v0, $v1
/* 2A550 8004F150 8E840050 */ lw $a0, 0x50($s4)
/* 2A554 8004F154 0C0140A5 */ jal func_80050294
/* 2A558 8004F158 92260007 */ lbu $a2, 7($s1)
/* 2A55C 8004F15C 00021C00 */ sll $v1, $v0, 0x10
/* 2A560 8004F160 00032C03 */ sra $a1, $v1, 0x10
/* 2A564 8004F164 A6620014 */ sh $v0, 0x14($s3)
.L8004F168:
/* 2A568 8004F168 0C014D6A */ jal func_800535A8
/* 2A56C 8004F16C 00A0202D */ daddu $a0, $a1, $zero
/* 2A570 8004F170 8E620000 */ lw $v0, ($s3)
/* 2A574 8004F174 C4420020 */ lwc1 $f2, 0x20($v0)
/* 2A578 8004F178 46020002 */ mul.s $f0, $f0, $f2
/* 2A57C 8004F17C 00000000 */ nop
/* 2A580 8004F180 E6600004 */ swc1 $f0, 4($s3)
/* 2A584 8004F184 92220009 */ lbu $v0, 9($s1)
/* 2A588 8004F188 10400006 */ beqz $v0, .L8004F1A4
/* 2A58C 8004F18C 0040302D */ daddu $a2, $v0, $zero
/* 2A590 8004F190 92250005 */ lbu $a1, 5($s1)
/* 2A594 8004F194 0C014086 */ jal func_80050218
/* 2A598 8004F198 0280202D */ daddu $a0, $s4, $zero
/* 2A59C 8004F19C 08013C6B */ j .L8004F1AC
/* 2A5A0 8004F1A0 A242000E */ sb $v0, 0xe($s2)
.L8004F1A4:
/* 2A5A4 8004F1A4 92220005 */ lbu $v0, 5($s1)
/* 2A5A8 8004F1A8 A242000E */ sb $v0, 0xe($s2)
.L8004F1AC:
/* 2A5AC 8004F1AC 9222000A */ lbu $v0, 0xa($s1)
/* 2A5B0 8004F1B0 10400007 */ beqz $v0, .L8004F1D0
/* 2A5B4 8004F1B4 00000000 */ nop
/* 2A5B8 8004F1B8 8E840050 */ lw $a0, 0x50($s4)
/* 2A5BC 8004F1BC 92250006 */ lbu $a1, 6($s1)
/* 2A5C0 8004F1C0 0C0140CF */ jal func_8005033C
/* 2A5C4 8004F1C4 0040302D */ daddu $a2, $v0, $zero
/* 2A5C8 8004F1C8 08013CC7 */ j .L8004F31C
/* 2A5CC 8004F1CC A242000F */ sb $v0, 0xf($s2)
.L8004F1D0:
/* 2A5D0 8004F1D0 92220006 */ lbu $v0, 6($s1)
/* 2A5D4 8004F1D4 08013CC7 */ j .L8004F31C
/* 2A5D8 8004F1D8 A242000F */ sb $v0, 0xf($s2)
.L8004F1DC:
/* 2A5DC 8004F1DC 8E8300C0 */ lw $v1, 0xc0($s4)
/* 2A5E0 8004F1E0 8E020018 */ lw $v0, 0x18($s0)
/* 2A5E4 8004F1E4 00031D43 */ sra $v1, $v1, 0x15
/* 2A5E8 8004F1E8 00021543 */ sra $v0, $v0, 0x15
/* 2A5EC 8004F1EC 00620018 */ mult $v1, $v0
/* 2A5F0 8004F1F0 8E02002C */ lw $v0, 0x2c($s0)
/* 2A5F4 8004F1F4 00001812 */ mflo $v1
/* 2A5F8 8004F1F8 00021543 */ sra $v0, $v0, 0x15
/* 2A5FC 8004F1FC 00000000 */ nop
/* 2A600 8004F200 00620018 */ mult $v1, $v0
/* 2A604 8004F204 82030049 */ lb $v1, 0x49($s0)
/* 2A608 8004F208 00002012 */ mflo $a0
/* 2A60C 8004F20C 92620016 */ lbu $v0, 0x16($s3)
/* 2A610 8004F210 00000000 */ nop
/* 2A614 8004F214 00620018 */ mult $v1, $v0
/* 2A618 8004F218 00001812 */ mflo $v1
/* 2A61C 8004F21C 00041503 */ sra $v0, $a0, 0x14
/* 2A620 8004F220 00000000 */ nop
/* 2A624 8004F224 00430018 */ mult $v0, $v1
/* 2A628 8004F228 00001812 */ mflo $v1
/* 2A62C 8004F22C 00031243 */ sra $v0, $v1, 9
/* 2A630 8004F230 A6620008 */ sh $v0, 8($s3)
/* 2A634 8004F234 A6420040 */ sh $v0, 0x40($s2)
/* 2A638 8004F238 8E06000C */ lw $a2, 0xc($s0)
/* 2A63C 8004F23C AE660000 */ sw $a2, ($s3)
/* 2A640 8004F240 92040048 */ lbu $a0, 0x48($s0)
/* 2A644 8004F244 97AB0026 */ lhu $t3, 0x26($sp)
/* 2A648 8004F248 9685020C */ lhu $a1, 0x20c($s4)
/* 2A64C 8004F24C 00042600 */ sll $a0, $a0, 0x18
/* 2A650 8004F250 00042603 */ sra $a0, $a0, 0x18
/* 2A654 8004F254 0160182D */ daddu $v1, $t3, $zero
/* 2A658 8004F258 00031040 */ sll $v0, $v1, 1
/* 2A65C 8004F25C 00431021 */ addu $v0, $v0, $v1
/* 2A660 8004F260 000210C0 */ sll $v0, $v0, 3
/* 2A664 8004F264 00431021 */ addu $v0, $v0, $v1
/* 2A668 8004F268 96030046 */ lhu $v1, 0x46($s0)
/* 2A66C 8004F26C 00021080 */ sll $v0, $v0, 2
/* 2A670 8004F270 00621821 */ addu $v1, $v1, $v0
/* 2A674 8004F274 00A32821 */ addu $a1, $a1, $v1
/* 2A678 8004F278 94C2001E */ lhu $v0, 0x1e($a2)
/* 2A67C 8004F27C 00852021 */ addu $a0, $a0, $a1
/* 2A680 8004F280 00822023 */ subu $a0, $a0, $v0
/* 2A684 8004F284 A664000A */ sh $a0, 0xa($s3)
/* 2A688 8004F288 00042400 */ sll $a0, $a0, 0x10
/* 2A68C 8004F28C 00042403 */ sra $a0, $a0, 0x10
/* 2A690 8004F290 86020038 */ lh $v0, 0x38($s0)
/* 2A694 8004F294 8683020E */ lh $v1, 0x20e($s4)
/* 2A698 8004F298 00822021 */ addu $a0, $a0, $v0
/* 2A69C 8004F29C 0C014D6A */ jal func_800535A8
/* 2A6A0 8004F2A0 00832021 */ addu $a0, $a0, $v1
/* 2A6A4 8004F2A4 8E02000C */ lw $v0, 0xc($s0)
/* 2A6A8 8004F2A8 C4420020 */ lwc1 $f2, 0x20($v0)
/* 2A6AC 8004F2AC 46020002 */ mul.s $f0, $f0, $f2
/* 2A6B0 8004F2B0 00000000 */ nop
/* 2A6B4 8004F2B4 E6600004 */ swc1 $f0, 4($s3)
/* 2A6B8 8004F2B8 92020057 */ lbu $v0, 0x57($s0)
/* 2A6BC 8004F2BC 10400006 */ beqz $v0, .L8004F2D8
/* 2A6C0 8004F2C0 0040302D */ daddu $a2, $v0, $zero
/* 2A6C4 8004F2C4 9205004A */ lbu $a1, 0x4a($s0)
/* 2A6C8 8004F2C8 0C014086 */ jal func_80050218
/* 2A6CC 8004F2CC 0280202D */ daddu $a0, $s4, $zero
/* 2A6D0 8004F2D0 08013CB8 */ j .L8004F2E0
/* 2A6D4 8004F2D4 A242000E */ sb $v0, 0xe($s2)
.L8004F2D8:
/* 2A6D8 8004F2D8 9202004A */ lbu $v0, 0x4a($s0)
/* 2A6DC 8004F2DC A242000E */ sb $v0, 0xe($s2)
.L8004F2E0:
/* 2A6E0 8004F2E0 9202004B */ lbu $v0, 0x4b($s0)
/* 2A6E4 8004F2E4 A242000F */ sb $v0, 0xf($s2)
/* 2A6E8 8004F2E8 9202004C */ lbu $v0, 0x4c($s0)
/* 2A6EC 8004F2EC 10400007 */ beqz $v0, .L8004F30C
/* 2A6F0 8004F2F0 0040182D */ daddu $v1, $v0, $zero
/* 2A6F4 8004F2F4 000310C0 */ sll $v0, $v1, 3
/* 2A6F8 8004F2F8 00431021 */ addu $v0, $v0, $v1
/* 2A6FC 8004F2FC 00021040 */ sll $v0, $v0, 1
/* 2A700 8004F300 24420162 */ addiu $v0, $v0, 0x162
/* 2A704 8004F304 08013CC4 */ j .L8004F310
/* 2A708 8004F308 02821021 */ addu $v0, $s4, $v0
.L8004F30C:
/* 2A70C 8004F30C 8E020010 */ lw $v0, 0x10($s0)
.L8004F310:
/* 2A710 8004F310 AE420014 */ sw $v0, 0x14($s2)
/* 2A714 8004F314 8E020014 */ lw $v0, 0x14($s0)
/* 2A718 8004F318 AE420018 */ sw $v0, 0x18($s2)
.L8004F31C:
/* 2A71C 8004F31C 8E620000 */ lw $v0, ($s3)
/* 2A720 8004F320 AE420000 */ sw $v0, ($s2)
/* 2A724 8004F324 C6600004 */ lwc1 $f0, 4($s3)
/* 2A728 8004F328 E6400004 */ swc1 $f0, 4($s2)
/* 2A72C 8004F32C 9202005B */ lbu $v0, 0x5b($s0)
/* 2A730 8004F330 A2420010 */ sb $v0, 0x10($s2)
/* 2A734 8004F334 8E62000C */ lw $v0, 0xc($s3)
/* 2A738 8004F338 28420002 */ slti $v0, $v0, 2
/* 2A73C 8004F33C 14400062 */ bnez $v0, .L8004F4C8
/* 2A740 8004F340 240B0001 */ addiu $t3, $zero, 1
/* 2A744 8004F344 A26B0017 */ sb $t3, 0x17($s3)
/* 2A748 8004F348 92020056 */ lbu $v0, 0x56($s0)
/* 2A74C 8004F34C A2600013 */ sb $zero, 0x13($s3)
/* 2A750 8004F350 A2620012 */ sb $v0, 0x12($s3)
/* 2A754 8004F354 9602003A */ lhu $v0, 0x3a($s0)
/* 2A758 8004F358 A6620010 */ sh $v0, 0x10($s3)
/* 2A75C 8004F35C 24020002 */ addiu $v0, $zero, 2
/* 2A760 8004F360 A2420043 */ sb $v0, 0x43($s2)
/* 2A764 8004F364 92820234 */ lbu $v0, 0x234($s4)
/* 2A768 8004F368 A2420045 */ sb $v0, 0x45($s2)
/* 2A76C 8004F36C 08013D32 */ j .L8004F4C8
/* 2A770 8004F370 A2420044 */ sb $v0, 0x44($s2)
.L8004F374:
/* 2A774 8004F374 3C058008 */ lui $a1, %hi(D_800783E0)
/* 2A778 8004F378 00A32821 */ addu $a1, $a1, $v1
/* 2A77C 8004F37C 90A583E0 */ lbu $a1, %lo(D_800783E0)($a1)
/* 2A780 8004F380 10A00047 */ beqz $a1, .L8004F4A0
/* 2A784 8004F384 0280202D */ daddu $a0, $s4, $zero
/* 2A788 8004F388 8E020000 */ lw $v0, ($s0)
/* 2A78C 8004F38C 90430000 */ lbu $v1, ($v0)
/* 2A790 8004F390 24420001 */ addiu $v0, $v0, 1
/* 2A794 8004F394 A28300D4 */ sb $v1, 0xd4($s4)
/* 2A798 8004F398 AE020000 */ sw $v0, ($s0)
/* 2A79C 8004F39C 8602003E */ lh $v0, 0x3e($s0)
/* 2A7A0 8004F3A0 9603003E */ lhu $v1, 0x3e($s0)
/* 2A7A4 8004F3A4 10400007 */ beqz $v0, .L8004F3C4
/* 2A7A8 8004F3A8 2462FFFF */ addiu $v0, $v1, -1
/* 2A7AC 8004F3AC A602003E */ sh $v0, 0x3e($s0)
/* 2A7B0 8004F3B0 00021400 */ sll $v0, $v0, 0x10
/* 2A7B4 8004F3B4 14400004 */ bnez $v0, .L8004F3C8
/* 2A7B8 8004F3B8 28A20002 */ slti $v0, $a1, 2
/* 2A7BC 8004F3BC 8E020004 */ lw $v0, 4($s0)
/* 2A7C0 8004F3C0 AE020000 */ sw $v0, ($s0)
.L8004F3C4:
/* 2A7C4 8004F3C4 28A20002 */ slti $v0, $a1, 2
.L8004F3C8:
/* 2A7C8 8004F3C8 14400035 */ bnez $v0, .L8004F4A0
/* 2A7CC 8004F3CC 0280202D */ daddu $a0, $s4, $zero
/* 2A7D0 8004F3D0 8E020000 */ lw $v0, ($s0)
/* 2A7D4 8004F3D4 90430000 */ lbu $v1, ($v0)
/* 2A7D8 8004F3D8 24420001 */ addiu $v0, $v0, 1
/* 2A7DC 8004F3DC A28300D5 */ sb $v1, 0xd5($s4)
/* 2A7E0 8004F3E0 AE020000 */ sw $v0, ($s0)
/* 2A7E4 8004F3E4 8602003E */ lh $v0, 0x3e($s0)
/* 2A7E8 8004F3E8 9603003E */ lhu $v1, 0x3e($s0)
/* 2A7EC 8004F3EC 10400007 */ beqz $v0, .L8004F40C
/* 2A7F0 8004F3F0 2462FFFF */ addiu $v0, $v1, -1
/* 2A7F4 8004F3F4 A602003E */ sh $v0, 0x3e($s0)
/* 2A7F8 8004F3F8 00021400 */ sll $v0, $v0, 0x10
/* 2A7FC 8004F3FC 14400004 */ bnez $v0, .L8004F410
/* 2A800 8004F400 28A20003 */ slti $v0, $a1, 3
/* 2A804 8004F404 8E020004 */ lw $v0, 4($s0)
/* 2A808 8004F408 AE020000 */ sw $v0, ($s0)
.L8004F40C:
/* 2A80C 8004F40C 28A20003 */ slti $v0, $a1, 3
.L8004F410:
/* 2A810 8004F410 14400023 */ bnez $v0, .L8004F4A0
/* 2A814 8004F414 0280202D */ daddu $a0, $s4, $zero
/* 2A818 8004F418 8E020000 */ lw $v0, ($s0)
/* 2A81C 8004F41C 90430000 */ lbu $v1, ($v0)
/* 2A820 8004F420 24420001 */ addiu $v0, $v0, 1
/* 2A824 8004F424 A28300D6 */ sb $v1, 0xd6($s4)
/* 2A828 8004F428 AE020000 */ sw $v0, ($s0)
/* 2A82C 8004F42C 8602003E */ lh $v0, 0x3e($s0)
/* 2A830 8004F430 9603003E */ lhu $v1, 0x3e($s0)
/* 2A834 8004F434 10400007 */ beqz $v0, .L8004F454
/* 2A838 8004F438 2462FFFF */ addiu $v0, $v1, -1
/* 2A83C 8004F43C A602003E */ sh $v0, 0x3e($s0)
/* 2A840 8004F440 00021400 */ sll $v0, $v0, 0x10
/* 2A844 8004F444 14400004 */ bnez $v0, .L8004F458
/* 2A848 8004F448 28A20004 */ slti $v0, $a1, 4
/* 2A84C 8004F44C 8E020004 */ lw $v0, 4($s0)
/* 2A850 8004F450 AE020000 */ sw $v0, ($s0)
.L8004F454:
/* 2A854 8004F454 28A20004 */ slti $v0, $a1, 4
.L8004F458:
/* 2A858 8004F458 14400011 */ bnez $v0, .L8004F4A0
/* 2A85C 8004F45C 0280202D */ daddu $a0, $s4, $zero
/* 2A860 8004F460 8E020000 */ lw $v0, ($s0)
/* 2A864 8004F464 90430000 */ lbu $v1, ($v0)
/* 2A868 8004F468 24420001 */ addiu $v0, $v0, 1
/* 2A86C 8004F46C A28300D7 */ sb $v1, 0xd7($s4)
/* 2A870 8004F470 AE020000 */ sw $v0, ($s0)
/* 2A874 8004F474 8602003E */ lh $v0, 0x3e($s0)
/* 2A878 8004F478 9603003E */ lhu $v1, 0x3e($s0)
/* 2A87C 8004F47C 10400008 */ beqz $v0, .L8004F4A0
/* 2A880 8004F480 2462FFFF */ addiu $v0, $v1, -1
/* 2A884 8004F484 A602003E */ sh $v0, 0x3e($s0)
/* 2A888 8004F488 00021400 */ sll $v0, $v0, 0x10
/* 2A88C 8004F48C 14400005 */ bnez $v0, .L8004F4A4
/* 2A890 8004F490 30E200FF */ andi $v0, $a3, 0xff
/* 2A894 8004F494 8E020004 */ lw $v0, 4($s0)
/* 2A898 8004F498 AE020000 */ sw $v0, ($s0)
/* 2A89C 8004F49C 0280202D */ daddu $a0, $s4, $zero
.L8004F4A0:
/* 2A8A0 8004F4A0 30E200FF */ andi $v0, $a3, 0xff
.L8004F4A4:
/* 2A8A4 8004F4A4 2442FF20 */ addiu $v0, $v0, -0xe0
/* 2A8A8 8004F4A8 00021080 */ sll $v0, $v0, 2
/* 2A8AC 8004F4AC 3C018008 */ lui $at, %hi(D_80078440)
/* 2A8B0 8004F4B0 00220821 */ addu $at, $at, $v0
/* 2A8B4 8004F4B4 8C228440 */ lw $v0, %lo(D_80078440)($at)
/* 2A8B8 8004F4B8 3C01800A */ lui $at, %hi(D_800A1DE0)
/* 2A8BC 8004F4BC AC221DE0 */ sw $v0, %lo(D_800A1DE0)($at)
/* 2A8C0 8004F4C0 0040F809 */ jalr $v0
/* 2A8C4 8004F4C4 0200282D */ daddu $a1, $s0, $zero
.L8004F4C8:
/* 2A8C8 8004F4C8 8E020028 */ lw $v0, 0x28($s0)
/* 2A8CC 8004F4CC 1040FDB5 */ beqz $v0, .L8004EBA4
/* 2A8D0 8004F4D0 00000000 */ nop
.L8004F4D4:
/* 2A8D4 8004F4D4 08013E02 */ j .L8004F808
/* 2A8D8 8004F4D8 92150052 */ lbu $s5, 0x52($s0)
.L8004F4DC:
/* 2A8DC 8004F4DC 9202005A */ lbu $v0, 0x5a($s0)
/* 2A8E0 8004F4E0 544000C9 */ bnel $v0, $zero, .L8004F808
/* 2A8E4 8004F4E4 26B50001 */ addiu $s5, $s5, 1
/* 2A8E8 8004F4E8 000410C0 */ sll $v0, $a0, 3
/* 2A8EC 8004F4EC 00441021 */ addu $v0, $v0, $a0
/* 2A8F0 8004F4F0 000210C0 */ sll $v0, $v0, 3
/* 2A8F4 8004F4F4 8E830000 */ lw $v1, ($s4)
/* 2A8F8 8004F4F8 24421320 */ addiu $v0, $v0, 0x1320
/* 2A8FC 8004F4FC 00629021 */ addu $s2, $v1, $v0
/* 2A900 8004F500 92430045 */ lbu $v1, 0x45($s2)
/* 2A904 8004F504 92820234 */ lbu $v0, 0x234($s4)
/* 2A908 8004F508 546200BF */ bnel $v1, $v0, .L8004F808
/* 2A90C 8004F50C 26B50001 */ addiu $s5, $s5, 1
/* 2A910 8004F510 00041040 */ sll $v0, $a0, 1
/* 2A914 8004F514 00441021 */ addu $v0, $v0, $a0
/* 2A918 8004F518 000210C0 */ sll $v0, $v0, 3
/* 2A91C 8004F51C 2442085C */ addiu $v0, $v0, 0x85c
/* 2A920 8004F520 02829821 */ addu $s3, $s4, $v0
/* 2A924 8004F524 92620017 */ lbu $v0, 0x17($s3)
/* 2A928 8004F528 544000B6 */ bnel $v0, $zero, .L8004F804
/* 2A92C 8004F52C A2600017 */ sb $zero, 0x17($s3)
/* 2A930 8004F530 8E62000C */ lw $v0, 0xc($s3)
/* 2A934 8004F534 18400006 */ blez $v0, .L8004F550
/* 2A938 8004F538 2442FFFF */ addiu $v0, $v0, -1
/* 2A93C 8004F53C 14400004 */ bnez $v0, .L8004F550
/* 2A940 8004F540 AE62000C */ sw $v0, 0xc($s3)
/* 2A944 8004F544 9242003D */ lbu $v0, 0x3d($s2)
/* 2A948 8004F548 34420010 */ ori $v0, $v0, 0x10
/* 2A94C 8004F54C A242003D */ sb $v0, 0x3d($s2)
.L8004F550:
/* 2A950 8004F550 92020058 */ lbu $v0, 0x58($s0)
/* 2A954 8004F554 1040003A */ beqz $v0, .L8004F640
/* 2A958 8004F558 00000000 */ nop
/* 2A95C 8004F55C 92020040 */ lbu $v0, 0x40($s0)
/* 2A960 8004F560 14400004 */ bnez $v0, .L8004F574
/* 2A964 8004F564 00000000 */ nop
/* 2A968 8004F568 8682020E */ lh $v0, 0x20e($s4)
/* 2A96C 8004F56C 10400017 */ beqz $v0, .L8004F5CC
/* 2A970 8004F570 00000000 */ nop
.L8004F574:
/* 2A974 8004F574 8664000A */ lh $a0, 0xa($s3)
/* 2A978 8004F578 86620014 */ lh $v0, 0x14($s3)
/* 2A97C 8004F57C 00822021 */ addu $a0, $a0, $v0
/* 2A980 8004F580 86020038 */ lh $v0, 0x38($s0)
/* 2A984 8004F584 8683020E */ lh $v1, 0x20e($s4)
/* 2A988 8004F588 00822021 */ addu $a0, $a0, $v0
/* 2A98C 8004F58C 0C014D6A */ jal func_800535A8
/* 2A990 8004F590 00832021 */ addu $a0, $a0, $v1
/* 2A994 8004F594 8E620000 */ lw $v0, ($s3)
/* 2A998 8004F598 C4420020 */ lwc1 $f2, 0x20($v0)
/* 2A99C 8004F59C 46020082 */ mul.s $f2, $f0, $f2
/* 2A9A0 8004F5A0 00000000 */ nop
/* 2A9A4 8004F5A4 E6620004 */ swc1 $f2, 4($s3)
/* 2A9A8 8004F5A8 C6400004 */ lwc1 $f0, 4($s2)
/* 2A9AC 8004F5AC 46020032 */ c.eq.s $f0, $f2
/* 2A9B0 8004F5B0 00000000 */ nop
/* 2A9B4 8004F5B4 45010005 */ bc1t .L8004F5CC
/* 2A9B8 8004F5B8 00000000 */ nop
/* 2A9BC 8004F5BC 92420043 */ lbu $v0, 0x43($s2)
/* 2A9C0 8004F5C0 E6420004 */ swc1 $f2, 4($s2)
/* 2A9C4 8004F5C4 34420008 */ ori $v0, $v0, 8
/* 2A9C8 8004F5C8 A2420043 */ sb $v0, 0x43($s2)
.L8004F5CC:
/* 2A9CC 8004F5CC 92020041 */ lbu $v0, 0x41($s0)
/* 2A9D0 8004F5D0 5040008C */ beql $v0, $zero, .L8004F804
/* 2A9D4 8004F5D4 A2600017 */ sb $zero, 0x17($s3)
/* 2A9D8 8004F5D8 8E8300C0 */ lw $v1, 0xc0($s4)
/* 2A9DC 8004F5DC 8E020018 */ lw $v0, 0x18($s0)
/* 2A9E0 8004F5E0 00031D43 */ sra $v1, $v1, 0x15
/* 2A9E4 8004F5E4 00021543 */ sra $v0, $v0, 0x15
/* 2A9E8 8004F5E8 00620018 */ mult $v1, $v0
/* 2A9EC 8004F5EC 8E02002C */ lw $v0, 0x2c($s0)
/* 2A9F0 8004F5F0 00001812 */ mflo $v1
/* 2A9F4 8004F5F4 00021543 */ sra $v0, $v0, 0x15
/* 2A9F8 8004F5F8 00000000 */ nop
/* 2A9FC 8004F5FC 00620018 */ mult $v1, $v0
/* 2AA00 8004F600 82030049 */ lb $v1, 0x49($s0)
/* 2AA04 8004F604 00002012 */ mflo $a0
/* 2AA08 8004F608 86620008 */ lh $v0, 8($s3)
/* 2AA0C 8004F60C 00000000 */ nop
/* 2AA10 8004F610 00620018 */ mult $v1, $v0
/* 2AA14 8004F614 00001812 */ mflo $v1
/* 2AA18 8004F618 00041503 */ sra $v0, $a0, 0x14
/* 2AA1C 8004F61C 00000000 */ nop
/* 2AA20 8004F620 00430018 */ mult $v0, $v1
/* 2AA24 8004F624 9242003D */ lbu $v0, 0x3d($s2)
/* 2AA28 8004F628 34420020 */ ori $v0, $v0, 0x20
/* 2AA2C 8004F62C A242003D */ sb $v0, 0x3d($s2)
/* 2AA30 8004F630 00001812 */ mflo $v1
/* 2AA34 8004F634 00031403 */ sra $v0, $v1, 0x10
/* 2AA38 8004F638 08013E00 */ j .L8004F800
/* 2AA3C 8004F63C A6420040 */ sh $v0, 0x40($s2)
.L8004F640:
/* 2AA40 8004F640 92620012 */ lbu $v0, 0x12($s3)
/* 2AA44 8004F644 10400027 */ beqz $v0, .L8004F6E4
/* 2AA48 8004F648 00000000 */ nop
/* 2AA4C 8004F64C 96620010 */ lhu $v0, 0x10($s3)
/* 2AA50 8004F650 10400003 */ beqz $v0, .L8004F660
/* 2AA54 8004F654 2442FFFF */ addiu $v0, $v0, -1
/* 2AA58 8004F658 08013DD4 */ j .L8004F750
/* 2AA5C 8004F65C A6620010 */ sh $v0, 0x10($s3)
.L8004F660:
/* 2AA60 8004F660 92630013 */ lbu $v1, 0x13($s3)
/* 2AA64 8004F664 92020055 */ lbu $v0, 0x55($s0)
/* 2AA68 8004F668 00621821 */ addu $v1, $v1, $v0
/* 2AA6C 8004F66C 00031080 */ sll $v0, $v1, 2
/* 2AA70 8004F670 24440003 */ addiu $a0, $v0, 3
/* 2AA74 8004F674 306200FF */ andi $v0, $v1, 0xff
/* 2AA78 8004F678 00023182 */ srl $a2, $v0, 6
/* 2AA7C 8004F67C A2630013 */ sb $v1, 0x13($s3)
/* 2AA80 8004F680 30C300FF */ andi $v1, $a2, 0xff
/* 2AA84 8004F684 24020001 */ addiu $v0, $zero, 1
/* 2AA88 8004F688 10620004 */ beq $v1, $v0, .L8004F69C
/* 2AA8C 8004F68C 0080382D */ daddu $a3, $a0, $zero
/* 2AA90 8004F690 24020003 */ addiu $v0, $zero, 3
/* 2AA94 8004F694 54620004 */ bnel $v1, $v0, .L8004F6A8
/* 2AA98 8004F698 30E500FF */ andi $a1, $a3, 0xff
.L8004F69C:
/* 2AA9C 8004F69C 00041027 */ nor $v0, $zero, $a0
/* 2AAA0 8004F6A0 304200FF */ andi $v0, $v0, 0xff
/* 2AAA4 8004F6A4 24450001 */ addiu $a1, $v0, 1
.L8004F6A8:
/* 2AAA8 8004F6A8 92020056 */ lbu $v0, 0x56($s0)
/* 2AAAC 8004F6AC 00A20018 */ mult $a1, $v0
/* 2AAB0 8004F6B0 24C2FFFE */ addiu $v0, $a2, -2
/* 2AAB4 8004F6B4 2C420002 */ sltiu $v0, $v0, 2
/* 2AAB8 8004F6B8 00005812 */ mflo $t3
/* 2AABC 8004F6BC 10400002 */ beqz $v0, .L8004F6C8
/* 2AAC0 8004F6C0 000B2A03 */ sra $a1, $t3, 8
/* 2AAC4 8004F6C4 00052823 */ negu $a1, $a1
.L8004F6C8:
/* 2AAC8 8004F6C8 8664000A */ lh $a0, 0xa($s3)
/* 2AACC 8004F6CC 86020038 */ lh $v0, 0x38($s0)
/* 2AAD0 8004F6D0 8683020E */ lh $v1, 0x20e($s4)
/* 2AAD4 8004F6D4 00822021 */ addu $a0, $a0, $v0
/* 2AAD8 8004F6D8 00832021 */ addu $a0, $a0, $v1
/* 2AADC 8004F6DC 08013DC4 */ j .L8004F710
/* 2AAE0 8004F6E0 00A42021 */ addu $a0, $a1, $a0
.L8004F6E4:
/* 2AAE4 8004F6E4 92020040 */ lbu $v0, 0x40($s0)
/* 2AAE8 8004F6E8 14400004 */ bnez $v0, .L8004F6FC
/* 2AAEC 8004F6EC 00000000 */ nop
/* 2AAF0 8004F6F0 8682020E */ lh $v0, 0x20e($s4)
/* 2AAF4 8004F6F4 10400016 */ beqz $v0, .L8004F750
/* 2AAF8 8004F6F8 00000000 */ nop
.L8004F6FC:
/* 2AAFC 8004F6FC 8664000A */ lh $a0, 0xa($s3)
/* 2AB00 8004F700 86020038 */ lh $v0, 0x38($s0)
/* 2AB04 8004F704 8683020E */ lh $v1, 0x20e($s4)
/* 2AB08 8004F708 00822021 */ addu $a0, $a0, $v0
/* 2AB0C 8004F70C 00832021 */ addu $a0, $a0, $v1
.L8004F710:
/* 2AB10 8004F710 0C014D6A */ jal func_800535A8
/* 2AB14 8004F714 00000000 */ nop
/* 2AB18 8004F718 8E620000 */ lw $v0, ($s3)
/* 2AB1C 8004F71C C4420020 */ lwc1 $f2, 0x20($v0)
/* 2AB20 8004F720 46020082 */ mul.s $f2, $f0, $f2
/* 2AB24 8004F724 00000000 */ nop
/* 2AB28 8004F728 E6620004 */ swc1 $f2, 4($s3)
/* 2AB2C 8004F72C C6400004 */ lwc1 $f0, 4($s2)
/* 2AB30 8004F730 46020032 */ c.eq.s $f0, $f2
/* 2AB34 8004F734 00000000 */ nop
/* 2AB38 8004F738 45010005 */ bc1t .L8004F750
/* 2AB3C 8004F73C 00000000 */ nop
/* 2AB40 8004F740 92420043 */ lbu $v0, 0x43($s2)
/* 2AB44 8004F744 E6420004 */ swc1 $f2, 4($s2)
/* 2AB48 8004F748 34420008 */ ori $v0, $v0, 8
/* 2AB4C 8004F74C A2420043 */ sb $v0, 0x43($s2)
.L8004F750:
/* 2AB50 8004F750 92020041 */ lbu $v0, 0x41($s0)
/* 2AB54 8004F754 10400020 */ beqz $v0, .L8004F7D8
/* 2AB58 8004F758 00000000 */ nop
/* 2AB5C 8004F75C 8E8300C0 */ lw $v1, 0xc0($s4)
/* 2AB60 8004F760 8E020018 */ lw $v0, 0x18($s0)
/* 2AB64 8004F764 00031D43 */ sra $v1, $v1, 0x15
/* 2AB68 8004F768 00021543 */ sra $v0, $v0, 0x15
/* 2AB6C 8004F76C 00620018 */ mult $v1, $v0
/* 2AB70 8004F770 8E02002C */ lw $v0, 0x2c($s0)
/* 2AB74 8004F774 00001812 */ mflo $v1
/* 2AB78 8004F778 00021543 */ sra $v0, $v0, 0x15
/* 2AB7C 8004F77C 00000000 */ nop
/* 2AB80 8004F780 00620018 */ mult $v1, $v0
/* 2AB84 8004F784 82030049 */ lb $v1, 0x49($s0)
/* 2AB88 8004F788 00002012 */ mflo $a0
/* 2AB8C 8004F78C 92620016 */ lbu $v0, 0x16($s3)
/* 2AB90 8004F790 00000000 */ nop
/* 2AB94 8004F794 00620018 */ mult $v1, $v0
/* 2AB98 8004F798 00001812 */ mflo $v1
/* 2AB9C 8004F79C 00041503 */ sra $v0, $a0, 0x14
/* 2ABA0 8004F7A0 00000000 */ nop
/* 2ABA4 8004F7A4 00430018 */ mult $v0, $v1
/* 2ABA8 8004F7A8 00001812 */ mflo $v1
/* 2ABAC 8004F7AC 00031A43 */ sra $v1, $v1, 9
/* 2ABB0 8004F7B0 A6630008 */ sh $v1, 8($s3)
/* 2ABB4 8004F7B4 9242003D */ lbu $v0, 0x3d($s2)
/* 2ABB8 8004F7B8 A6430040 */ sh $v1, 0x40($s2)
/* 2ABBC 8004F7BC 34420020 */ ori $v0, $v0, 0x20
/* 2ABC0 8004F7C0 A242003D */ sb $v0, 0x3d($s2)
/* 2ABC4 8004F7C4 9202004A */ lbu $v0, 0x4a($s0)
/* 2ABC8 8004F7C8 A242000E */ sb $v0, 0xe($s2)
/* 2ABCC 8004F7CC 9202004B */ lbu $v0, 0x4b($s0)
/* 2ABD0 8004F7D0 08013E00 */ j .L8004F800
/* 2ABD4 8004F7D4 A242000F */ sb $v0, 0xf($s2)
.L8004F7D8:
/* 2ABD8 8004F7D8 96020042 */ lhu $v0, 0x42($s0)
/* 2ABDC 8004F7DC 50400009 */ beql $v0, $zero, .L8004F804
/* 2ABE0 8004F7E0 A2600017 */ sb $zero, 0x17($s3)
/* 2ABE4 8004F7E4 9202004A */ lbu $v0, 0x4a($s0)
/* 2ABE8 8004F7E8 A242000E */ sb $v0, 0xe($s2)
/* 2ABEC 8004F7EC 92420043 */ lbu $v0, 0x43($s2)
/* 2ABF0 8004F7F0 9203004B */ lbu $v1, 0x4b($s0)
/* 2ABF4 8004F7F4 34420010 */ ori $v0, $v0, 0x10
/* 2ABF8 8004F7F8 A2420043 */ sb $v0, 0x43($s2)
/* 2ABFC 8004F7FC A243000F */ sb $v1, 0xf($s2)
.L8004F800:
/* 2AC00 8004F800 A2600017 */ sb $zero, 0x17($s3)
.L8004F804:
/* 2AC04 8004F804 26B50001 */ addiu $s5, $s5, 1
.L8004F808:
/* 2AC08 8004F808 92020053 */ lbu $v0, 0x53($s0)
/* 2AC0C 8004F80C 32A400FF */ andi $a0, $s5, 0xff
/* 2AC10 8004F810 0082102B */ sltu $v0, $a0, $v0
/* 2AC14 8004F814 1440FF31 */ bnez $v0, .L8004F4DC
/* 2AC18 8004F818 00000000 */ nop
/* 2AC1C 8004F81C 26F70001 */ addiu $s7, $s7, 1
.L8004F820:
/* 2AC20 8004F820 2EE20010 */ sltiu $v0, $s7, 0x10
/* 2AC24 8004F824 1440FCAA */ bnez $v0, .L8004EAD0
/* 2AC28 8004F828 00171040 */ sll $v0, $s7, 1
/* 2AC2C 8004F82C 93A20028 */ lbu $v0, 0x28($sp)
/* 2AC30 8004F830 10400002 */ beqz $v0, .L8004F83C
/* 2AC34 8004F834 24020002 */ addiu $v0, $zero, 2
/* 2AC38 8004F838 A2820221 */ sb $v0, 0x221($s4)
.L8004F83C:
/* 2AC3C 8004F83C 8FBF0054 */ lw $ra, 0x54($sp)
/* 2AC40 8004F840 8FBE0050 */ lw $fp, 0x50($sp)
/* 2AC44 8004F844 8FB7004C */ lw $s7, 0x4c($sp)
/* 2AC48 8004F848 8FB60048 */ lw $s6, 0x48($sp)
/* 2AC4C 8004F84C 8FB50044 */ lw $s5, 0x44($sp)
/* 2AC50 8004F850 8FB40040 */ lw $s4, 0x40($sp)
/* 2AC54 8004F854 8FB3003C */ lw $s3, 0x3c($sp)
/* 2AC58 8004F858 8FB20038 */ lw $s2, 0x38($sp)
/* 2AC5C 8004F85C 8FB10034 */ lw $s1, 0x34($sp)
/* 2AC60 8004F860 8FB00030 */ lw $s0, 0x30($sp)
/* 2AC64 8004F864 03E00008 */ jr $ra
/* 2AC68 8004F868 27BD0058 */ addiu $sp, $sp, 0x58