Files
SpaghettiKart/asm/non_matchings/code_80057C60/func_8005F90C.s
Tyler McGavran 782ed71f61 Massive data relocation (#295)
Mostly relocating rodata from data/* files to the appropriate
 asm/nonmatching/* files, although there is some plain data
 relocating to be found in here too.

Big change to note is the addition of the code_802AAA70.c file,
 split from memory.c. Based on some padding in the ro/data for
 memory it seems clear that a split is needed, although it is
 not clear that exact spot chosen for the split is correct.
 Still, it gets the file padding for the ro/data and text segments
 correct so it can't be too wrong.

Also included is an update to the asm_processor tool to support
 the .hword directive. I made a PR to the main repo of that
 project with an identical change and it was accepted.

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2023-03-29 18:52:15 -06:00

823 lines
40 KiB
ArmAsm

.section .late_rodata
glabel jpt_800EE52C
.word L800603C8, L8005F9A0, L8005FF28, L800603C8
.word L800602A0, L800603C8, L8005FE00, L8005FC60
.word L800604EC, L80060050, L800602A0, L800604EC
.word L80060178
.section .text
glabel func_8005F90C
/* 06050C 8005F90C 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 060510 8005F910 AFBF0034 */ sw $ra, 0x34($sp)
/* 060514 8005F914 AFB20030 */ sw $s2, 0x30($sp)
/* 060518 8005F918 AFB1002C */ sw $s1, 0x2c($sp)
/* 06051C 8005F91C AFB00028 */ sw $s0, 0x28($sp)
/* 060520 8005F920 AFA5003C */ sw $a1, 0x3c($sp)
/* 060524 8005F924 AFA70044 */ sw $a3, 0x44($sp)
/* 060528 8005F928 8C8E00BC */ lw $t6, 0xbc($a0)
/* 06052C 8005F92C 24010080 */ li $at, 128
/* 060530 8005F930 00808825 */ move $s1, $a0
/* 060534 8005F934 31CF0080 */ andi $t7, $t6, 0x80
/* 060538 8005F938 15E10009 */ bne $t7, $at, .L8005F960
/* 06053C 8005F93C 00004825 */ move $t1, $zero
/* 060540 8005F940 C4840018 */ lwc1 $f4, 0x18($a0)
/* 060544 8005F944 C4860070 */ lwc1 $f6, 0x70($a0)
/* 060548 8005F948 C4800014 */ lwc1 $f0, 0x14($a0)
/* 06054C 8005F94C C48C001C */ lwc1 $f12, 0x1c($a0)
/* 060550 8005F950 24090001 */ li $t1, 1
/* 060554 8005F954 908201D4 */ lbu $v0, 0x1d4($a0)
/* 060558 8005F958 10000007 */ b .L8005F978
/* 06055C 8005F95C 46062081 */ sub.s $f2, $f4, $f6
.L8005F960:
/* 060560 8005F960 C6280018 */ lwc1 $f8, 0x18($s1)
/* 060564 8005F964 C62A0070 */ lwc1 $f10, 0x70($s1)
/* 060568 8005F968 C6200014 */ lwc1 $f0, 0x14($s1)
/* 06056C 8005F96C C62C001C */ lwc1 $f12, 0x1c($s1)
/* 060570 8005F970 922201EC */ lbu $v0, 0x1ec($s1)
/* 060574 8005F974 460A4081 */ sub.s $f2, $f8, $f10
.L8005F978:
/* 060578 8005F978 244CFFFF */ addiu $t4, $v0, -1
/* 06057C 8005F97C 2D81000D */ sltiu $at, $t4, 0xd
/* 060580 8005F980 102002DA */ beqz $at, .L800604EC
/* 060584 8005F984 00401825 */ move $v1, $v0
/* 060588 8005F988 000C6080 */ sll $t4, $t4, 2
/* 06058C 8005F98C 3C01800F */ lui $at, %hi(jpt_800EE52C)
/* 060590 8005F990 002C0821 */ addu $at, $at, $t4
/* 060594 8005F994 8C2CE52C */ lw $t4, %lo(jpt_800EE52C)($at)
/* 060598 8005F998 01800008 */ jr $t4
/* 06059C 8005F99C 00000000 */ nop
glabel L8005F9A0
/* 0605A0 8005F9A0 87AD003E */ lh $t5, 0x3e($sp)
/* 0605A4 8005F9A4 24080048 */ li $t0, 72
/* 0605A8 8005F9A8 55A00059 */ bnel $t5, $zero, .L8005FB10
/* 0605AC 8005F9AC 24080048 */ li $t0, 72
/* 0605B0 8005F9B0 00C80019 */ multu $a2, $t0
/* 0605B4 8005F9B4 87B9003E */ lh $t9, 0x3e($sp)
/* 0605B8 8005F9B8 00007012 */ mflo $t6
/* 0605BC 8005F9BC 022E1021 */ addu $v0, $s1, $t6
/* 0605C0 8005F9C0 844F0546 */ lh $t7, 0x546($v0)
/* 0605C4 8005F9C4 1DE00004 */ bgtz $t7, .L8005F9D8
/* 0605C8 8005F9C8 00000000 */ nop
/* 0605CC 8005F9CC 84580544 */ lh $t8, 0x544($v0)
/* 0605D0 8005F9D0 5700004F */ bnel $t8, $zero, .L8005FB10
/* 0605D4 8005F9D4 24080048 */ li $t0, 72
.L8005F9D8:
/* 0605D8 8005F9D8 03280019 */ multu $t9, $t0
/* 0605DC 8005F9DC 44060000 */ mfc1 $a2, $f0
/* 0605E0 8005F9E0 44071000 */ mfc1 $a3, $f2
/* 0605E4 8005F9E4 02202025 */ move $a0, $s1
/* 0605E8 8005F9E8 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 0605EC 8005F9EC AFA30014 */ sw $v1, 0x14($sp)
/* 0605F0 8005F9F0 AFA90018 */ sw $t1, 0x18($sp)
/* 0605F4 8005F9F4 00005012 */ mflo $t2
/* 0605F8 8005F9F8 022A9021 */ addu $s2, $s1, $t2
/* 0605FC 8005F9FC 26500528 */ addiu $s0, $s2, 0x528
/* 060600 8005FA00 0C0175E5 */ jal func_8005D794
/* 060604 8005FA04 02002825 */ move $a1, $s0
/* 060608 8005FA08 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 06060C 8005FA0C 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060610 8005FA10 02002025 */ move $a0, $s0
/* 060614 8005FA14 0C0175F6 */ jal func_8005D7D8
/* 060618 8005FA18 24050004 */ li $a1, 4
/* 06061C 8005FA1C 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 060620 8005FA20 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
/* 060624 8005FA24 24010001 */ li $at, 1
/* 060628 8005FA28 02002025 */ move $a0, $s0
/* 06062C 8005FA2C 10610003 */ beq $v1, $at, .L8005FA3C
/* 060630 8005FA30 24050001 */ li $a1, 1
/* 060634 8005FA34 24010007 */ li $at, 7
/* 060638 8005FA38 14610005 */ bne $v1, $at, .L8005FA50
.L8005FA3C:
/* 06063C 8005FA3C 00003025 */ move $a2, $zero
/* 060640 8005FA40 0C0176B6 */ jal func_8005DAD8
/* 060644 8005FA44 24070080 */ li $a3, 128
/* 060648 8005FA48 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 06064C 8005FA4C 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FA50:
/* 060650 8005FA50 2401000B */ li $at, 11
/* 060654 8005FA54 14610007 */ bne $v1, $at, .L8005FA74
/* 060658 8005FA58 02002025 */ move $a0, $s0
/* 06065C 8005FA5C 24050007 */ li $a1, 7
/* 060660 8005FA60 00003025 */ move $a2, $zero
/* 060664 8005FA64 0C0176B6 */ jal func_8005DAD8
/* 060668 8005FA68 24070080 */ li $a3, 128
/* 06066C 8005FA6C 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 060670 8005FA70 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FA74:
/* 060674 8005FA74 24010009 */ li $at, 9
/* 060678 8005FA78 14610007 */ bne $v1, $at, .L8005FA98
/* 06067C 8005FA7C 02002025 */ move $a0, $s0
/* 060680 8005FA80 24050008 */ li $a1, 8
/* 060684 8005FA84 00003025 */ move $a2, $zero
/* 060688 8005FA88 0C0176B6 */ jal func_8005DAD8
/* 06068C 8005FA8C 24070080 */ li $a3, 128
/* 060690 8005FA90 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 060694 8005FA94 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FA98:
/* 060698 8005FA98 2401000E */ li $at, 14
/* 06069C 8005FA9C 14610007 */ bne $v1, $at, .L8005FABC
/* 0606A0 8005FAA0 02002025 */ move $a0, $s0
/* 0606A4 8005FAA4 24050009 */ li $a1, 9
/* 0606A8 8005FAA8 00003025 */ move $a2, $zero
/* 0606AC 8005FAAC 0C0176B6 */ jal func_8005DAD8
/* 0606B0 8005FAB0 24070080 */ li $a3, 128
/* 0606B4 8005FAB4 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 0606B8 8005FAB8 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FABC:
/* 0606BC 8005FABC 24010004 */ li $at, 4
/* 0606C0 8005FAC0 14610007 */ bne $v1, $at, .L8005FAE0
/* 0606C4 8005FAC4 02002025 */ move $a0, $s0
/* 0606C8 8005FAC8 2405000A */ li $a1, 10
/* 0606CC 8005FACC 00003025 */ move $a2, $zero
/* 0606D0 8005FAD0 0C0176B6 */ jal func_8005DAD8
/* 0606D4 8005FAD4 24070080 */ li $a3, 128
/* 0606D8 8005FAD8 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 0606DC 8005FADC 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FAE0:
/* 0606E0 8005FAE0 24010012 */ li $at, 18
/* 0606E4 8005FAE4 14610005 */ bne $v1, $at, .L8005FAFC
/* 0606E8 8005FAE8 02002025 */ move $a0, $s0
/* 0606EC 8005FAEC 2405000B */ li $a1, 11
/* 0606F0 8005FAF0 00003025 */ move $a2, $zero
/* 0606F4 8005FAF4 0C0176B6 */ jal func_8005DAD8
/* 0606F8 8005FAF8 24070080 */ li $a3, 128
.L8005FAFC:
/* 0606FC 8005FAFC 0C0ADF8D */ jal random_int
/* 060700 8005FB00 24040010 */ li $a0, 16
/* 060704 8005FB04 10000279 */ b .L800604EC
/* 060708 8005FB08 A6420562 */ sh $v0, 0x562($s2)
/* 06070C 8005FB0C 24080048 */ li $t0, 72
.L8005FB10:
/* 060710 8005FB10 00C80019 */ multu $a2, $t0
/* 060714 8005FB14 87AE003E */ lh $t6, 0x3e($sp)
/* 060718 8005FB18 00005812 */ mflo $t3
/* 06071C 8005FB1C 022B6021 */ addu $t4, $s1, $t3
/* 060720 8005FB20 858D0546 */ lh $t5, 0x546($t4)
/* 060724 8005FB24 59A00272 */ blezl $t5, .L800604F0
/* 060728 8005FB28 8FBF0034 */ lw $ra, 0x34($sp)
/* 06072C 8005FB2C 01C80019 */ multu $t6, $t0
/* 060730 8005FB30 44060000 */ mfc1 $a2, $f0
/* 060734 8005FB34 44071000 */ mfc1 $a3, $f2
/* 060738 8005FB38 02202025 */ move $a0, $s1
/* 06073C 8005FB3C E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060740 8005FB40 AFA30014 */ sw $v1, 0x14($sp)
/* 060744 8005FB44 AFA90018 */ sw $t1, 0x18($sp)
/* 060748 8005FB48 00007812 */ mflo $t7
/* 06074C 8005FB4C 022F9021 */ addu $s2, $s1, $t7
/* 060750 8005FB50 26500528 */ addiu $s0, $s2, 0x528
/* 060754 8005FB54 0C0175E5 */ jal func_8005D794
/* 060758 8005FB58 02002825 */ move $a1, $s0
/* 06075C 8005FB5C 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060760 8005FB60 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060764 8005FB64 02002025 */ move $a0, $s0
/* 060768 8005FB68 0C0175F6 */ jal func_8005D7D8
/* 06076C 8005FB6C 24050004 */ li $a1, 4
/* 060770 8005FB70 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 060774 8005FB74 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
/* 060778 8005FB78 24010001 */ li $at, 1
/* 06077C 8005FB7C 02002025 */ move $a0, $s0
/* 060780 8005FB80 10610003 */ beq $v1, $at, .L8005FB90
/* 060784 8005FB84 24050001 */ li $a1, 1
/* 060788 8005FB88 24010007 */ li $at, 7
/* 06078C 8005FB8C 14610005 */ bne $v1, $at, .L8005FBA4
.L8005FB90:
/* 060790 8005FB90 00003025 */ move $a2, $zero
/* 060794 8005FB94 0C0176B6 */ jal func_8005DAD8
/* 060798 8005FB98 24070080 */ li $a3, 128
/* 06079C 8005FB9C 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 0607A0 8005FBA0 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FBA4:
/* 0607A4 8005FBA4 2401000B */ li $at, 11
/* 0607A8 8005FBA8 14610007 */ bne $v1, $at, .L8005FBC8
/* 0607AC 8005FBAC 02002025 */ move $a0, $s0
/* 0607B0 8005FBB0 24050007 */ li $a1, 7
/* 0607B4 8005FBB4 00003025 */ move $a2, $zero
/* 0607B8 8005FBB8 0C0176B6 */ jal func_8005DAD8
/* 0607BC 8005FBBC 24070080 */ li $a3, 128
/* 0607C0 8005FBC0 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 0607C4 8005FBC4 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FBC8:
/* 0607C8 8005FBC8 24010009 */ li $at, 9
/* 0607CC 8005FBCC 14610007 */ bne $v1, $at, .L8005FBEC
/* 0607D0 8005FBD0 02002025 */ move $a0, $s0
/* 0607D4 8005FBD4 24050008 */ li $a1, 8
/* 0607D8 8005FBD8 00003025 */ move $a2, $zero
/* 0607DC 8005FBDC 0C0176B6 */ jal func_8005DAD8
/* 0607E0 8005FBE0 24070080 */ li $a3, 128
/* 0607E4 8005FBE4 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 0607E8 8005FBE8 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FBEC:
/* 0607EC 8005FBEC 2401000E */ li $at, 14
/* 0607F0 8005FBF0 14610007 */ bne $v1, $at, .L8005FC10
/* 0607F4 8005FBF4 02002025 */ move $a0, $s0
/* 0607F8 8005FBF8 24050009 */ li $a1, 9
/* 0607FC 8005FBFC 00003025 */ move $a2, $zero
/* 060800 8005FC00 0C0176B6 */ jal func_8005DAD8
/* 060804 8005FC04 24070080 */ li $a3, 128
/* 060808 8005FC08 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 06080C 8005FC0C 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FC10:
/* 060810 8005FC10 24010004 */ li $at, 4
/* 060814 8005FC14 14610007 */ bne $v1, $at, .L8005FC34
/* 060818 8005FC18 02002025 */ move $a0, $s0
/* 06081C 8005FC1C 2405000A */ li $a1, 10
/* 060820 8005FC20 00003025 */ move $a2, $zero
/* 060824 8005FC24 0C0176B6 */ jal func_8005DAD8
/* 060828 8005FC28 24070080 */ li $a3, 128
/* 06082C 8005FC2C 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 060830 8005FC30 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FC34:
/* 060834 8005FC34 24010012 */ li $at, 18
/* 060838 8005FC38 14610005 */ bne $v1, $at, .L8005FC50
/* 06083C 8005FC3C 02002025 */ move $a0, $s0
/* 060840 8005FC40 2405000B */ li $a1, 11
/* 060844 8005FC44 00003025 */ move $a2, $zero
/* 060848 8005FC48 0C0176B6 */ jal func_8005DAD8
/* 06084C 8005FC4C 24070080 */ li $a3, 128
.L8005FC50:
/* 060850 8005FC50 0C0ADF8D */ jal random_int
/* 060854 8005FC54 24040010 */ li $a0, 16
/* 060858 8005FC58 10000224 */ b .L800604EC
/* 06085C 8005FC5C A6420562 */ sh $v0, 0x562($s2)
glabel L8005FC60
/* 060860 8005FC60 87B8003E */ lh $t8, 0x3e($sp)
/* 060864 8005FC64 24080048 */ li $t0, 72
/* 060868 8005FC68 5700002F */ bnel $t8, $zero, .L8005FD28
/* 06086C 8005FC6C 24080048 */ li $t0, 72
/* 060870 8005FC70 00C80019 */ multu $a2, $t0
/* 060874 8005FC74 87AC003E */ lh $t4, 0x3e($sp)
/* 060878 8005FC78 0000C812 */ mflo $t9
/* 06087C 8005FC7C 02391021 */ addu $v0, $s1, $t9
/* 060880 8005FC80 844A0546 */ lh $t2, 0x546($v0)
/* 060884 8005FC84 1D400004 */ bgtz $t2, .L8005FC98
/* 060888 8005FC88 00000000 */ nop
/* 06088C 8005FC8C 844B0544 */ lh $t3, 0x544($v0)
/* 060890 8005FC90 55600025 */ bnel $t3, $zero, .L8005FD28
/* 060894 8005FC94 24080048 */ li $t0, 72
.L8005FC98:
/* 060898 8005FC98 01880019 */ multu $t4, $t0
/* 06089C 8005FC9C 44060000 */ mfc1 $a2, $f0
/* 0608A0 8005FCA0 44071000 */ mfc1 $a3, $f2
/* 0608A4 8005FCA4 02202025 */ move $a0, $s1
/* 0608A8 8005FCA8 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 0608AC 8005FCAC AFA30014 */ sw $v1, 0x14($sp)
/* 0608B0 8005FCB0 AFA90018 */ sw $t1, 0x18($sp)
/* 0608B4 8005FCB4 00006812 */ mflo $t5
/* 0608B8 8005FCB8 022D9021 */ addu $s2, $s1, $t5
/* 0608BC 8005FCBC 26500528 */ addiu $s0, $s2, 0x528
/* 0608C0 8005FCC0 0C0175E5 */ jal func_8005D794
/* 0608C4 8005FCC4 02002825 */ move $a1, $s0
/* 0608C8 8005FCC8 3C063DCC */ lui $a2, (0x3DCCCCCD >> 16) # lui $a2, 0x3dcc
/* 0608CC 8005FCCC 34C6CCCD */ ori $a2, (0x3DCCCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd
/* 0608D0 8005FCD0 02002025 */ move $a0, $s0
/* 0608D4 8005FCD4 0C0175F6 */ jal func_8005D7D8
/* 0608D8 8005FCD8 24050004 */ li $a1, 4
/* 0608DC 8005FCDC 3C0500FF */ lui $a1, (0x00FFFFFF >> 16) # lui $a1, 0xff
/* 0608E0 8005FCE0 34A5FFFF */ ori $a1, (0x00FFFFFF & 0xFFFF) # ori $a1, $a1, 0xffff
/* 0608E4 8005FCE4 02002025 */ move $a0, $s0
/* 0608E8 8005FCE8 0C017600 */ jal func_8005D800
/* 0608EC 8005FCEC 240600FF */ li $a2, 255
/* 0608F0 8005FCF0 87A3003E */ lh $v1, 0x3e($sp)
/* 0608F4 8005FCF4 864F0560 */ lh $t7, 0x560($s2)
/* 0608F8 8005FCF8 86590562 */ lh $t9, 0x562($s2)
/* 0608FC 8005FCFC 864B0564 */ lh $t3, 0x564($s2)
/* 060900 8005FD00 000370C0 */ sll $t6, $v1, 3
/* 060904 8005FD04 01EEC023 */ subu $t8, $t7, $t6
/* 060908 8005FD08 032E5023 */ subu $t2, $t9, $t6
/* 06090C 8005FD0C 016E6023 */ subu $t4, $t3, $t6
/* 060910 8005FD10 24080048 */ li $t0, 72
/* 060914 8005FD14 A6580560 */ sh $t8, 0x560($s2)
/* 060918 8005FD18 A64A0562 */ sh $t2, 0x562($s2)
/* 06091C 8005FD1C 1000002B */ b .L8005FDCC
/* 060920 8005FD20 A64C0564 */ sh $t4, 0x564($s2)
/* 060924 8005FD24 24080048 */ li $t0, 72
.L8005FD28:
/* 060928 8005FD28 00C80019 */ multu $a2, $t0
/* 06092C 8005FD2C 87B8003E */ lh $t8, 0x3e($sp)
/* 060930 8005FD30 00006812 */ mflo $t5
/* 060934 8005FD34 022D7021 */ addu $t6, $s1, $t5
/* 060938 8005FD38 85CF0546 */ lh $t7, 0x546($t6)
/* 06093C 8005FD3C 59E00024 */ blezl $t7, .L8005FDD0
/* 060940 8005FD40 87B9003E */ lh $t9, 0x3e($sp)
/* 060944 8005FD44 03080019 */ multu $t8, $t0
/* 060948 8005FD48 44060000 */ mfc1 $a2, $f0
/* 06094C 8005FD4C 44071000 */ mfc1 $a3, $f2
/* 060950 8005FD50 02202025 */ move $a0, $s1
/* 060954 8005FD54 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060958 8005FD58 AFA30014 */ sw $v1, 0x14($sp)
/* 06095C 8005FD5C AFA90018 */ sw $t1, 0x18($sp)
/* 060960 8005FD60 0000C812 */ mflo $t9
/* 060964 8005FD64 02399021 */ addu $s2, $s1, $t9
/* 060968 8005FD68 26500528 */ addiu $s0, $s2, 0x528
/* 06096C 8005FD6C 0C0175E5 */ jal func_8005D794
/* 060970 8005FD70 02002825 */ move $a1, $s0
/* 060974 8005FD74 3C063DCC */ lui $a2, (0x3DCCCCCD >> 16) # lui $a2, 0x3dcc
/* 060978 8005FD78 34C6CCCD */ ori $a2, (0x3DCCCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd
/* 06097C 8005FD7C 02002025 */ move $a0, $s0
/* 060980 8005FD80 0C0175F6 */ jal func_8005D7D8
/* 060984 8005FD84 24050004 */ li $a1, 4
/* 060988 8005FD88 3C0500FF */ lui $a1, (0x00FFFFFF >> 16) # lui $a1, 0xff
/* 06098C 8005FD8C 34A5FFFF */ ori $a1, (0x00FFFFFF & 0xFFFF) # ori $a1, $a1, 0xffff
/* 060990 8005FD90 02002025 */ move $a0, $s0
/* 060994 8005FD94 0C017600 */ jal func_8005D800
/* 060998 8005FD98 240600FF */ li $a2, 255
/* 06099C 8005FD9C 87A3003E */ lh $v1, 0x3e($sp)
/* 0609A0 8005FDA0 864B0560 */ lh $t3, 0x560($s2)
/* 0609A4 8005FDA4 864D0562 */ lh $t5, 0x562($s2)
/* 0609A8 8005FDA8 864F0564 */ lh $t7, 0x564($s2)
/* 0609AC 8005FDAC 000350C0 */ sll $t2, $v1, 3
/* 0609B0 8005FDB0 016A6023 */ subu $t4, $t3, $t2
/* 0609B4 8005FDB4 01AA7023 */ subu $t6, $t5, $t2
/* 0609B8 8005FDB8 01EAC023 */ subu $t8, $t7, $t2
/* 0609BC 8005FDBC 24080048 */ li $t0, 72
/* 0609C0 8005FDC0 A64C0560 */ sh $t4, 0x560($s2)
/* 0609C4 8005FDC4 A64E0562 */ sh $t6, 0x562($s2)
/* 0609C8 8005FDC8 A6580564 */ sh $t8, 0x564($s2)
.L8005FDCC:
/* 0609CC 8005FDCC 87B9003E */ lh $t9, 0x3e($sp)
.L8005FDD0:
/* 0609D0 8005FDD0 3C013FF8 */ li $at, 0x3FF80000 # 1.937500
/* 0609D4 8005FDD4 44812800 */ mtc1 $at, $f5
/* 0609D8 8005FDD8 03280019 */ multu $t9, $t0
/* 0609DC 8005FDDC 44802000 */ mtc1 $zero, $f4
/* 0609E0 8005FDE0 00005012 */ mflo $t2
/* 0609E4 8005FDE4 022A9021 */ addu $s2, $s1, $t2
/* 0609E8 8005FDE8 C650052C */ lwc1 $f16, 0x52c($s2)
/* 0609EC 8005FDEC 460084A1 */ cvt.d.s $f18, $f16
/* 0609F0 8005FDF0 46249181 */ sub.d $f6, $f18, $f4
/* 0609F4 8005FDF4 46203220 */ cvt.s.d $f8, $f6
/* 0609F8 8005FDF8 100001BC */ b .L800604EC
/* 0609FC 8005FDFC E648052C */ swc1 $f8, 0x52c($s2)
glabel L8005FE00
/* 060A00 8005FE00 87AB003E */ lh $t3, 0x3e($sp)
/* 060A04 8005FE04 24080048 */ li $t0, 72
/* 060A08 8005FE08 55600026 */ bnel $t3, $zero, .L8005FEA4
/* 060A0C 8005FE0C 24080048 */ li $t0, 72
/* 060A10 8005FE10 00C80019 */ multu $a2, $t0
/* 060A14 8005FE14 87AF003E */ lh $t7, 0x3e($sp)
/* 060A18 8005FE18 00006012 */ mflo $t4
/* 060A1C 8005FE1C 022C1021 */ addu $v0, $s1, $t4
/* 060A20 8005FE20 844D0546 */ lh $t5, 0x546($v0)
/* 060A24 8005FE24 1DA00004 */ bgtz $t5, .L8005FE38
/* 060A28 8005FE28 00000000 */ nop
/* 060A2C 8005FE2C 844E0544 */ lh $t6, 0x544($v0)
/* 060A30 8005FE30 55C0001C */ bnel $t6, $zero, .L8005FEA4
/* 060A34 8005FE34 24080048 */ li $t0, 72
.L8005FE38:
/* 060A38 8005FE38 01E80019 */ multu $t7, $t0
/* 060A3C 8005FE3C 44060000 */ mfc1 $a2, $f0
/* 060A40 8005FE40 44071000 */ mfc1 $a3, $f2
/* 060A44 8005FE44 02202025 */ move $a0, $s1
/* 060A48 8005FE48 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060A4C 8005FE4C AFA30014 */ sw $v1, 0x14($sp)
/* 060A50 8005FE50 AFA90018 */ sw $t1, 0x18($sp)
/* 060A54 8005FE54 0000C012 */ mflo $t8
/* 060A58 8005FE58 02389021 */ addu $s2, $s1, $t8
/* 060A5C 8005FE5C 26500528 */ addiu $s0, $s2, 0x528
/* 060A60 8005FE60 0C0175E5 */ jal func_8005D794
/* 060A64 8005FE64 02002825 */ move $a1, $s0
/* 060A68 8005FE68 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060A6C 8005FE6C 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060A70 8005FE70 02002025 */ move $a0, $s0
/* 060A74 8005FE74 0C0175F6 */ jal func_8005D7D8
/* 060A78 8005FE78 24050004 */ li $a1, 4
/* 060A7C 8005FE7C 02002025 */ move $a0, $s0
/* 060A80 8005FE80 24050002 */ li $a1, 2
/* 060A84 8005FE84 24060001 */ li $a2, 1
/* 060A88 8005FE88 0C0176B6 */ jal func_8005DAD8
/* 060A8C 8005FE8C 240700A8 */ li $a3, 168
/* 060A90 8005FE90 0C0ADF8D */ jal random_int
/* 060A94 8005FE94 24040010 */ li $a0, 16
/* 060A98 8005FE98 10000194 */ b .L800604EC
/* 060A9C 8005FE9C A6420562 */ sh $v0, 0x562($s2)
/* 060AA0 8005FEA0 24080048 */ li $t0, 72
.L8005FEA4:
/* 060AA4 8005FEA4 00C80019 */ multu $a2, $t0
/* 060AA8 8005FEA8 87AC003E */ lh $t4, 0x3e($sp)
/* 060AAC 8005FEAC 0000C812 */ mflo $t9
/* 060AB0 8005FEB0 02395021 */ addu $t2, $s1, $t9
/* 060AB4 8005FEB4 854B0546 */ lh $t3, 0x546($t2)
/* 060AB8 8005FEB8 5960018D */ blezl $t3, .L800604F0
/* 060ABC 8005FEBC 8FBF0034 */ lw $ra, 0x34($sp)
/* 060AC0 8005FEC0 01880019 */ multu $t4, $t0
/* 060AC4 8005FEC4 44060000 */ mfc1 $a2, $f0
/* 060AC8 8005FEC8 44071000 */ mfc1 $a3, $f2
/* 060ACC 8005FECC 02202025 */ move $a0, $s1
/* 060AD0 8005FED0 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060AD4 8005FED4 AFA30014 */ sw $v1, 0x14($sp)
/* 060AD8 8005FED8 AFA90018 */ sw $t1, 0x18($sp)
/* 060ADC 8005FEDC 00006812 */ mflo $t5
/* 060AE0 8005FEE0 022D9021 */ addu $s2, $s1, $t5
/* 060AE4 8005FEE4 26500528 */ addiu $s0, $s2, 0x528
/* 060AE8 8005FEE8 0C0175E5 */ jal func_8005D794
/* 060AEC 8005FEEC 02002825 */ move $a1, $s0
/* 060AF0 8005FEF0 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060AF4 8005FEF4 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060AF8 8005FEF8 02002025 */ move $a0, $s0
/* 060AFC 8005FEFC 0C0175F6 */ jal func_8005D7D8
/* 060B00 8005FF00 24050004 */ li $a1, 4
/* 060B04 8005FF04 02002025 */ move $a0, $s0
/* 060B08 8005FF08 24050002 */ li $a1, 2
/* 060B0C 8005FF0C 24060001 */ li $a2, 1
/* 060B10 8005FF10 0C0176B6 */ jal func_8005DAD8
/* 060B14 8005FF14 240700A8 */ li $a3, 168
/* 060B18 8005FF18 0C0ADF8D */ jal random_int
/* 060B1C 8005FF1C 24040010 */ li $a0, 16
/* 060B20 8005FF20 10000172 */ b .L800604EC
/* 060B24 8005FF24 A6420562 */ sh $v0, 0x562($s2)
glabel L8005FF28
/* 060B28 8005FF28 87AE003E */ lh $t6, 0x3e($sp)
/* 060B2C 8005FF2C 24080048 */ li $t0, 72
/* 060B30 8005FF30 55C00026 */ bnel $t6, $zero, .L8005FFCC
/* 060B34 8005FF34 24080048 */ li $t0, 72
/* 060B38 8005FF38 00C80019 */ multu $a2, $t0
/* 060B3C 8005FF3C 87AA003E */ lh $t2, 0x3e($sp)
/* 060B40 8005FF40 00007812 */ mflo $t7
/* 060B44 8005FF44 022F1021 */ addu $v0, $s1, $t7
/* 060B48 8005FF48 84580546 */ lh $t8, 0x546($v0)
/* 060B4C 8005FF4C 1F000004 */ bgtz $t8, .L8005FF60
/* 060B50 8005FF50 00000000 */ nop
/* 060B54 8005FF54 84590544 */ lh $t9, 0x544($v0)
/* 060B58 8005FF58 5720001C */ bnel $t9, $zero, .L8005FFCC
/* 060B5C 8005FF5C 24080048 */ li $t0, 72
.L8005FF60:
/* 060B60 8005FF60 01480019 */ multu $t2, $t0
/* 060B64 8005FF64 44060000 */ mfc1 $a2, $f0
/* 060B68 8005FF68 44071000 */ mfc1 $a3, $f2
/* 060B6C 8005FF6C 02202025 */ move $a0, $s1
/* 060B70 8005FF70 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060B74 8005FF74 AFA30014 */ sw $v1, 0x14($sp)
/* 060B78 8005FF78 AFA90018 */ sw $t1, 0x18($sp)
/* 060B7C 8005FF7C 00005812 */ mflo $t3
/* 060B80 8005FF80 022B9021 */ addu $s2, $s1, $t3
/* 060B84 8005FF84 26500528 */ addiu $s0, $s2, 0x528
/* 060B88 8005FF88 0C0175E5 */ jal func_8005D794
/* 060B8C 8005FF8C 02002825 */ move $a1, $s0
/* 060B90 8005FF90 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060B94 8005FF94 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060B98 8005FF98 02002025 */ move $a0, $s0
/* 060B9C 8005FF9C 0C0175F6 */ jal func_8005D7D8
/* 060BA0 8005FFA0 24050004 */ li $a1, 4
/* 060BA4 8005FFA4 02002025 */ move $a0, $s0
/* 060BA8 8005FFA8 24050003 */ li $a1, 3
/* 060BAC 8005FFAC 24060001 */ li $a2, 1
/* 060BB0 8005FFB0 0C0176B6 */ jal func_8005DAD8
/* 060BB4 8005FFB4 240700A8 */ li $a3, 168
/* 060BB8 8005FFB8 0C0ADF8D */ jal random_int
/* 060BBC 8005FFBC 24040010 */ li $a0, 16
/* 060BC0 8005FFC0 1000014A */ b .L800604EC
/* 060BC4 8005FFC4 A6420562 */ sh $v0, 0x562($s2)
/* 060BC8 8005FFC8 24080048 */ li $t0, 72
.L8005FFCC:
/* 060BCC 8005FFCC 00C80019 */ multu $a2, $t0
/* 060BD0 8005FFD0 87AF003E */ lh $t7, 0x3e($sp)
/* 060BD4 8005FFD4 00006012 */ mflo $t4
/* 060BD8 8005FFD8 022C6821 */ addu $t5, $s1, $t4
/* 060BDC 8005FFDC 85AE0546 */ lh $t6, 0x546($t5)
/* 060BE0 8005FFE0 59C00143 */ blezl $t6, .L800604F0
/* 060BE4 8005FFE4 8FBF0034 */ lw $ra, 0x34($sp)
/* 060BE8 8005FFE8 01E80019 */ multu $t7, $t0
/* 060BEC 8005FFEC 44060000 */ mfc1 $a2, $f0
/* 060BF0 8005FFF0 44071000 */ mfc1 $a3, $f2
/* 060BF4 8005FFF4 02202025 */ move $a0, $s1
/* 060BF8 8005FFF8 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060BFC 8005FFFC AFA30014 */ sw $v1, 0x14($sp)
/* 060C00 80060000 AFA90018 */ sw $t1, 0x18($sp)
/* 060C04 80060004 0000C012 */ mflo $t8
/* 060C08 80060008 02389021 */ addu $s2, $s1, $t8
/* 060C0C 8006000C 26500528 */ addiu $s0, $s2, 0x528
/* 060C10 80060010 0C0175E5 */ jal func_8005D794
/* 060C14 80060014 02002825 */ move $a1, $s0
/* 060C18 80060018 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060C1C 8006001C 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060C20 80060020 02002025 */ move $a0, $s0
/* 060C24 80060024 0C0175F6 */ jal func_8005D7D8
/* 060C28 80060028 24050004 */ li $a1, 4
/* 060C2C 8006002C 02002025 */ move $a0, $s0
/* 060C30 80060030 24050003 */ li $a1, 3
/* 060C34 80060034 24060001 */ li $a2, 1
/* 060C38 80060038 0C0176B6 */ jal func_8005DAD8
/* 060C3C 8006003C 240700A8 */ li $a3, 168
/* 060C40 80060040 0C0ADF8D */ jal random_int
/* 060C44 80060044 24040010 */ li $a0, 16
/* 060C48 80060048 10000128 */ b .L800604EC
/* 060C4C 8006004C A6420562 */ sh $v0, 0x562($s2)
glabel L80060050
/* 060C50 80060050 87B9003E */ lh $t9, 0x3e($sp)
/* 060C54 80060054 24080048 */ li $t0, 72
/* 060C58 80060058 57200026 */ bnel $t9, $zero, .L800600F4
/* 060C5C 8006005C 24080048 */ li $t0, 72
/* 060C60 80060060 00C80019 */ multu $a2, $t0
/* 060C64 80060064 87AD003E */ lh $t5, 0x3e($sp)
/* 060C68 80060068 00005012 */ mflo $t2
/* 060C6C 8006006C 022A1021 */ addu $v0, $s1, $t2
/* 060C70 80060070 844B0546 */ lh $t3, 0x546($v0)
/* 060C74 80060074 1D600004 */ bgtz $t3, .L80060088
/* 060C78 80060078 00000000 */ nop
/* 060C7C 8006007C 844C0544 */ lh $t4, 0x544($v0)
/* 060C80 80060080 5580001C */ bnel $t4, $zero, .L800600F4
/* 060C84 80060084 24080048 */ li $t0, 72
.L80060088:
/* 060C88 80060088 01A80019 */ multu $t5, $t0
/* 060C8C 8006008C 44060000 */ mfc1 $a2, $f0
/* 060C90 80060090 44071000 */ mfc1 $a3, $f2
/* 060C94 80060094 02202025 */ move $a0, $s1
/* 060C98 80060098 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060C9C 8006009C AFA30014 */ sw $v1, 0x14($sp)
/* 060CA0 800600A0 AFA90018 */ sw $t1, 0x18($sp)
/* 060CA4 800600A4 00007012 */ mflo $t6
/* 060CA8 800600A8 022E9021 */ addu $s2, $s1, $t6
/* 060CAC 800600AC 26500528 */ addiu $s0, $s2, 0x528
/* 060CB0 800600B0 0C0175E5 */ jal func_8005D794
/* 060CB4 800600B4 02002825 */ move $a1, $s0
/* 060CB8 800600B8 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060CBC 800600BC 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060CC0 800600C0 02002025 */ move $a0, $s0
/* 060CC4 800600C4 0C0175F6 */ jal func_8005D7D8
/* 060CC8 800600C8 24050004 */ li $a1, 4
/* 060CCC 800600CC 02002025 */ move $a0, $s0
/* 060CD0 800600D0 24050004 */ li $a1, 4
/* 060CD4 800600D4 24060001 */ li $a2, 1
/* 060CD8 800600D8 0C0176B6 */ jal func_8005DAD8
/* 060CDC 800600DC 240700A8 */ li $a3, 168
/* 060CE0 800600E0 0C0ADF8D */ jal random_int
/* 060CE4 800600E4 24040010 */ li $a0, 16
/* 060CE8 800600E8 10000100 */ b .L800604EC
/* 060CEC 800600EC A6420562 */ sh $v0, 0x562($s2)
/* 060CF0 800600F0 24080048 */ li $t0, 72
.L800600F4:
/* 060CF4 800600F4 00C80019 */ multu $a2, $t0
/* 060CF8 800600F8 87AA003E */ lh $t2, 0x3e($sp)
/* 060CFC 800600FC 00007812 */ mflo $t7
/* 060D00 80060100 022FC021 */ addu $t8, $s1, $t7
/* 060D04 80060104 87190546 */ lh $t9, 0x546($t8)
/* 060D08 80060108 5B2000F9 */ blezl $t9, .L800604F0
/* 060D0C 8006010C 8FBF0034 */ lw $ra, 0x34($sp)
/* 060D10 80060110 01480019 */ multu $t2, $t0
/* 060D14 80060114 44060000 */ mfc1 $a2, $f0
/* 060D18 80060118 44071000 */ mfc1 $a3, $f2
/* 060D1C 8006011C 02202025 */ move $a0, $s1
/* 060D20 80060120 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060D24 80060124 AFA30014 */ sw $v1, 0x14($sp)
/* 060D28 80060128 AFA90018 */ sw $t1, 0x18($sp)
/* 060D2C 8006012C 00005812 */ mflo $t3
/* 060D30 80060130 022B9021 */ addu $s2, $s1, $t3
/* 060D34 80060134 26500528 */ addiu $s0, $s2, 0x528
/* 060D38 80060138 0C0175E5 */ jal func_8005D794
/* 060D3C 8006013C 02002825 */ move $a1, $s0
/* 060D40 80060140 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060D44 80060144 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060D48 80060148 02002025 */ move $a0, $s0
/* 060D4C 8006014C 0C0175F6 */ jal func_8005D7D8
/* 060D50 80060150 24050004 */ li $a1, 4
/* 060D54 80060154 02002025 */ move $a0, $s0
/* 060D58 80060158 24050004 */ li $a1, 4
/* 060D5C 8006015C 24060001 */ li $a2, 1
/* 060D60 80060160 0C0176B6 */ jal func_8005DAD8
/* 060D64 80060164 240700A8 */ li $a3, 168
/* 060D68 80060168 0C0ADF8D */ jal random_int
/* 060D6C 8006016C 24040010 */ li $a0, 16
/* 060D70 80060170 100000DE */ b .L800604EC
/* 060D74 80060174 A6420562 */ sh $v0, 0x562($s2)
glabel L80060178
/* 060D78 80060178 87AC003E */ lh $t4, 0x3e($sp)
/* 060D7C 8006017C 24080048 */ li $t0, 72
/* 060D80 80060180 55800026 */ bnel $t4, $zero, .L8006021C
/* 060D84 80060184 24080048 */ li $t0, 72
/* 060D88 80060188 00C80019 */ multu $a2, $t0
/* 060D8C 8006018C 87B8003E */ lh $t8, 0x3e($sp)
/* 060D90 80060190 00006812 */ mflo $t5
/* 060D94 80060194 022D1021 */ addu $v0, $s1, $t5
/* 060D98 80060198 844E0546 */ lh $t6, 0x546($v0)
/* 060D9C 8006019C 1DC00004 */ bgtz $t6, .L800601B0
/* 060DA0 800601A0 00000000 */ nop
/* 060DA4 800601A4 844F0544 */ lh $t7, 0x544($v0)
/* 060DA8 800601A8 55E0001C */ bnel $t7, $zero, .L8006021C
/* 060DAC 800601AC 24080048 */ li $t0, 72
.L800601B0:
/* 060DB0 800601B0 03080019 */ multu $t8, $t0
/* 060DB4 800601B4 44060000 */ mfc1 $a2, $f0
/* 060DB8 800601B8 44071000 */ mfc1 $a3, $f2
/* 060DBC 800601BC 02202025 */ move $a0, $s1
/* 060DC0 800601C0 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060DC4 800601C4 AFA30014 */ sw $v1, 0x14($sp)
/* 060DC8 800601C8 AFA90018 */ sw $t1, 0x18($sp)
/* 060DCC 800601CC 0000C812 */ mflo $t9
/* 060DD0 800601D0 02399021 */ addu $s2, $s1, $t9
/* 060DD4 800601D4 26500528 */ addiu $s0, $s2, 0x528
/* 060DD8 800601D8 0C0175E5 */ jal func_8005D794
/* 060DDC 800601DC 02002825 */ move $a1, $s0
/* 060DE0 800601E0 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060DE4 800601E4 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060DE8 800601E8 02002025 */ move $a0, $s0
/* 060DEC 800601EC 0C0175F6 */ jal func_8005D7D8
/* 060DF0 800601F0 24050004 */ li $a1, 4
/* 060DF4 800601F4 02002025 */ move $a0, $s0
/* 060DF8 800601F8 24050005 */ li $a1, 5
/* 060DFC 800601FC 24060001 */ li $a2, 1
/* 060E00 80060200 0C0176B6 */ jal func_8005DAD8
/* 060E04 80060204 240700A8 */ li $a3, 168
/* 060E08 80060208 0C0ADF8D */ jal random_int
/* 060E0C 8006020C 24040010 */ li $a0, 16
/* 060E10 80060210 100000B6 */ b .L800604EC
/* 060E14 80060214 A6420562 */ sh $v0, 0x562($s2)
/* 060E18 80060218 24080048 */ li $t0, 72
.L8006021C:
/* 060E1C 8006021C 00C80019 */ multu $a2, $t0
/* 060E20 80060220 87AD003E */ lh $t5, 0x3e($sp)
/* 060E24 80060224 00005012 */ mflo $t2
/* 060E28 80060228 022A5821 */ addu $t3, $s1, $t2
/* 060E2C 8006022C 856C0546 */ lh $t4, 0x546($t3)
/* 060E30 80060230 598000AF */ blezl $t4, .L800604F0
/* 060E34 80060234 8FBF0034 */ lw $ra, 0x34($sp)
/* 060E38 80060238 01A80019 */ multu $t5, $t0
/* 060E3C 8006023C 44060000 */ mfc1 $a2, $f0
/* 060E40 80060240 44071000 */ mfc1 $a3, $f2
/* 060E44 80060244 02202025 */ move $a0, $s1
/* 060E48 80060248 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060E4C 8006024C AFA30014 */ sw $v1, 0x14($sp)
/* 060E50 80060250 AFA90018 */ sw $t1, 0x18($sp)
/* 060E54 80060254 00007012 */ mflo $t6
/* 060E58 80060258 022E9021 */ addu $s2, $s1, $t6
/* 060E5C 8006025C 26500528 */ addiu $s0, $s2, 0x528
/* 060E60 80060260 0C0175E5 */ jal func_8005D794
/* 060E64 80060264 02002825 */ move $a1, $s0
/* 060E68 80060268 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060E6C 8006026C 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060E70 80060270 02002025 */ move $a0, $s0
/* 060E74 80060274 0C0175F6 */ jal func_8005D7D8
/* 060E78 80060278 24050004 */ li $a1, 4
/* 060E7C 8006027C 02002025 */ move $a0, $s0
/* 060E80 80060280 24050005 */ li $a1, 5
/* 060E84 80060284 24060001 */ li $a2, 1
/* 060E88 80060288 0C0176B6 */ jal func_8005DAD8
/* 060E8C 8006028C 240700A8 */ li $a3, 168
/* 060E90 80060290 0C0ADF8D */ jal random_int
/* 060E94 80060294 24040010 */ li $a0, 16
/* 060E98 80060298 10000094 */ b .L800604EC
/* 060E9C 8006029C A6420562 */ sh $v0, 0x562($s2)
glabel L800602A0
/* 060EA0 800602A0 87AF003E */ lh $t7, 0x3e($sp)
/* 060EA4 800602A4 24080048 */ li $t0, 72
/* 060EA8 800602A8 55E00026 */ bnel $t7, $zero, .L80060344
/* 060EAC 800602AC 24080048 */ li $t0, 72
/* 060EB0 800602B0 00C80019 */ multu $a2, $t0
/* 060EB4 800602B4 87AB003E */ lh $t3, 0x3e($sp)
/* 060EB8 800602B8 0000C012 */ mflo $t8
/* 060EBC 800602BC 02381021 */ addu $v0, $s1, $t8
/* 060EC0 800602C0 84590546 */ lh $t9, 0x546($v0)
/* 060EC4 800602C4 1F200004 */ bgtz $t9, .L800602D8
/* 060EC8 800602C8 00000000 */ nop
/* 060ECC 800602CC 844A0544 */ lh $t2, 0x544($v0)
/* 060ED0 800602D0 5540001C */ bnel $t2, $zero, .L80060344
/* 060ED4 800602D4 24080048 */ li $t0, 72
.L800602D8:
/* 060ED8 800602D8 01680019 */ multu $t3, $t0
/* 060EDC 800602DC 44060000 */ mfc1 $a2, $f0
/* 060EE0 800602E0 44071000 */ mfc1 $a3, $f2
/* 060EE4 800602E4 02202025 */ move $a0, $s1
/* 060EE8 800602E8 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060EEC 800602EC AFA30014 */ sw $v1, 0x14($sp)
/* 060EF0 800602F0 AFA90018 */ sw $t1, 0x18($sp)
/* 060EF4 800602F4 00006012 */ mflo $t4
/* 060EF8 800602F8 022C9021 */ addu $s2, $s1, $t4
/* 060EFC 800602FC 26500528 */ addiu $s0, $s2, 0x528
/* 060F00 80060300 0C0175E5 */ jal func_8005D794
/* 060F04 80060304 02002825 */ move $a1, $s0
/* 060F08 80060308 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060F0C 8006030C 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060F10 80060310 02002025 */ move $a0, $s0
/* 060F14 80060314 0C0175F6 */ jal func_8005D7D8
/* 060F18 80060318 24050004 */ li $a1, 4
/* 060F1C 8006031C 02002025 */ move $a0, $s0
/* 060F20 80060320 24050006 */ li $a1, 6
/* 060F24 80060324 24060001 */ li $a2, 1
/* 060F28 80060328 0C0176B6 */ jal func_8005DAD8
/* 060F2C 8006032C 240700A8 */ li $a3, 168
/* 060F30 80060330 0C0ADF8D */ jal random_int
/* 060F34 80060334 24040010 */ li $a0, 16
/* 060F38 80060338 1000006C */ b .L800604EC
/* 060F3C 8006033C A6420562 */ sh $v0, 0x562($s2)
/* 060F40 80060340 24080048 */ li $t0, 72
.L80060344:
/* 060F44 80060344 00C80019 */ multu $a2, $t0
/* 060F48 80060348 87B8003E */ lh $t8, 0x3e($sp)
/* 060F4C 8006034C 00006812 */ mflo $t5
/* 060F50 80060350 022D7021 */ addu $t6, $s1, $t5
/* 060F54 80060354 85CF0546 */ lh $t7, 0x546($t6)
/* 060F58 80060358 59E00065 */ blezl $t7, .L800604F0
/* 060F5C 8006035C 8FBF0034 */ lw $ra, 0x34($sp)
/* 060F60 80060360 03080019 */ multu $t8, $t0
/* 060F64 80060364 44060000 */ mfc1 $a2, $f0
/* 060F68 80060368 44071000 */ mfc1 $a3, $f2
/* 060F6C 8006036C 02202025 */ move $a0, $s1
/* 060F70 80060370 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060F74 80060374 AFA30014 */ sw $v1, 0x14($sp)
/* 060F78 80060378 AFA90018 */ sw $t1, 0x18($sp)
/* 060F7C 8006037C 0000C812 */ mflo $t9
/* 060F80 80060380 02399021 */ addu $s2, $s1, $t9
/* 060F84 80060384 26500528 */ addiu $s0, $s2, 0x528
/* 060F88 80060388 0C0175E5 */ jal func_8005D794
/* 060F8C 8006038C 02002825 */ move $a1, $s0
/* 060F90 80060390 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060F94 80060394 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060F98 80060398 02002025 */ move $a0, $s0
/* 060F9C 8006039C 0C0175F6 */ jal func_8005D7D8
/* 060FA0 800603A0 24050004 */ li $a1, 4
/* 060FA4 800603A4 02002025 */ move $a0, $s0
/* 060FA8 800603A8 24050006 */ li $a1, 6
/* 060FAC 800603AC 24060001 */ li $a2, 1
/* 060FB0 800603B0 0C0176B6 */ jal func_8005DAD8
/* 060FB4 800603B4 240700A8 */ li $a3, 168
/* 060FB8 800603B8 0C0ADF8D */ jal random_int
/* 060FBC 800603BC 24040010 */ li $a0, 16
/* 060FC0 800603C0 1000004A */ b .L800604EC
/* 060FC4 800603C4 A6420562 */ sh $v0, 0x562($s2)
glabel L800603C8
/* 060FC8 800603C8 87AA003E */ lh $t2, 0x3e($sp)
/* 060FCC 800603CC 24080048 */ li $t0, 72
/* 060FD0 800603D0 55400026 */ bnel $t2, $zero, .L8006046C
/* 060FD4 800603D4 24080048 */ li $t0, 72
/* 060FD8 800603D8 00C80019 */ multu $a2, $t0
/* 060FDC 800603DC 87AE003E */ lh $t6, 0x3e($sp)
/* 060FE0 800603E0 00005812 */ mflo $t3
/* 060FE4 800603E4 022B1021 */ addu $v0, $s1, $t3
/* 060FE8 800603E8 844C0546 */ lh $t4, 0x546($v0)
/* 060FEC 800603EC 1D800004 */ bgtz $t4, .L80060400
/* 060FF0 800603F0 00000000 */ nop
/* 060FF4 800603F4 844D0544 */ lh $t5, 0x544($v0)
/* 060FF8 800603F8 55A0001C */ bnel $t5, $zero, .L8006046C
/* 060FFC 800603FC 24080048 */ li $t0, 72
.L80060400:
/* 061000 80060400 01C80019 */ multu $t6, $t0
/* 061004 80060404 44060000 */ mfc1 $a2, $f0
/* 061008 80060408 44071000 */ mfc1 $a3, $f2
/* 06100C 8006040C 02202025 */ move $a0, $s1
/* 061010 80060410 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 061014 80060414 AFA30014 */ sw $v1, 0x14($sp)
/* 061018 80060418 AFA90018 */ sw $t1, 0x18($sp)
/* 06101C 8006041C 00007812 */ mflo $t7
/* 061020 80060420 022F9021 */ addu $s2, $s1, $t7
/* 061024 80060424 26500528 */ addiu $s0, $s2, 0x528
/* 061028 80060428 0C0175E5 */ jal func_8005D794
/* 06102C 8006042C 02002825 */ move $a1, $s0
/* 061030 80060430 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 061034 80060434 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 061038 80060438 02002025 */ move $a0, $s0
/* 06103C 8006043C 0C0175F6 */ jal func_8005D7D8
/* 061040 80060440 24050004 */ li $a1, 4
/* 061044 80060444 02002025 */ move $a0, $s0
/* 061048 80060448 00002825 */ move $a1, $zero
/* 06104C 8006044C 00003025 */ move $a2, $zero
/* 061050 80060450 0C0176B6 */ jal func_8005DAD8
/* 061054 80060454 24070080 */ li $a3, 128
/* 061058 80060458 0C0ADF8D */ jal random_int
/* 06105C 8006045C 24040010 */ li $a0, 16
/* 061060 80060460 10000022 */ b .L800604EC
/* 061064 80060464 A6420562 */ sh $v0, 0x562($s2)
/* 061068 80060468 24080048 */ li $t0, 72
.L8006046C:
/* 06106C 8006046C 00C80019 */ multu $a2, $t0
/* 061070 80060470 87AB003E */ lh $t3, 0x3e($sp)
/* 061074 80060474 0000C012 */ mflo $t8
/* 061078 80060478 0238C821 */ addu $t9, $s1, $t8
/* 06107C 8006047C 872A0546 */ lh $t2, 0x546($t9)
/* 061080 80060480 5940001B */ blezl $t2, .L800604F0
/* 061084 80060484 8FBF0034 */ lw $ra, 0x34($sp)
/* 061088 80060488 01680019 */ multu $t3, $t0
/* 06108C 8006048C 44060000 */ mfc1 $a2, $f0
/* 061090 80060490 44071000 */ mfc1 $a3, $f2
/* 061094 80060494 02202025 */ move $a0, $s1
/* 061098 80060498 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 06109C 8006049C AFA30014 */ sw $v1, 0x14($sp)
/* 0610A0 800604A0 AFA90018 */ sw $t1, 0x18($sp)
/* 0610A4 800604A4 00006012 */ mflo $t4
/* 0610A8 800604A8 022C9021 */ addu $s2, $s1, $t4
/* 0610AC 800604AC 26500528 */ addiu $s0, $s2, 0x528
/* 0610B0 800604B0 0C0175E5 */ jal func_8005D794
/* 0610B4 800604B4 02002825 */ move $a1, $s0
/* 0610B8 800604B8 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 0610BC 800604BC 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 0610C0 800604C0 02002025 */ move $a0, $s0
/* 0610C4 800604C4 0C0175F6 */ jal func_8005D7D8
/* 0610C8 800604C8 24050004 */ li $a1, 4
/* 0610CC 800604CC 02002025 */ move $a0, $s0
/* 0610D0 800604D0 00002825 */ move $a1, $zero
/* 0610D4 800604D4 00003025 */ move $a2, $zero
/* 0610D8 800604D8 0C0176B6 */ jal func_8005DAD8
/* 0610DC 800604DC 24070080 */ li $a3, 128
/* 0610E0 800604E0 0C0ADF8D */ jal random_int
/* 0610E4 800604E4 24040010 */ li $a0, 16
/* 0610E8 800604E8 A6420562 */ sh $v0, 0x562($s2)
.L800604EC:
glabel L800604EC
/* 0610EC 800604EC 8FBF0034 */ lw $ra, 0x34($sp)
.L800604F0:
/* 0610F0 800604F0 8FB00028 */ lw $s0, 0x28($sp)
/* 0610F4 800604F4 8FB1002C */ lw $s1, 0x2c($sp)
/* 0610F8 800604F8 8FB20030 */ lw $s2, 0x30($sp)
/* 0610FC 800604FC 03E00008 */ jr $ra
/* 061100 80060500 27BD0038 */ addiu $sp, $sp, 0x38