Files
SpaghettiKart/asm/non_matchings/code_80071F00/func_80077138.s
T
CoderStig 8ab4557b39 Split asm using autodecompiler (#49)
* Split asm using autodecompiler

* Placed libultra bss and linked more C
2021-11-05 05:17:09 -06:00

179 lines
8.7 KiB
ArmAsm

glabel func_80077138
/* 077D38 80077138 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 077D3C 8007713C AFBF001C */ sw $ra, 0x1c($sp)
/* 077D40 80077140 AFA5003C */ sw $a1, 0x3c($sp)
/* 077D44 80077144 AFB00018 */ sw $s0, 0x18($sp)
/* 077D48 80077148 AFA40038 */ sw $a0, 0x38($sp)
/* 077D4C 8007714C AFA60040 */ sw $a2, 0x40($sp)
/* 077D50 80077150 0C01C8E9 */ jal func_800723A4
/* 077D54 80077154 00C02825 */ move $a1, $a2
/* 077D58 80077158 8FA40038 */ lw $a0, 0x38($sp)
/* 077D5C 8007715C 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016
/* 077D60 80077160 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18
/* 077D64 80077164 000470C0 */ sll $t6, $a0, 3
/* 077D68 80077168 01C47023 */ subu $t6, $t6, $a0
/* 077D6C 8007716C 000E7140 */ sll $t6, $t6, 5
/* 077D70 80077170 01CF8021 */ addu $s0, $t6, $t7
/* 077D74 80077174 2418000C */ li $t8, 12
/* 077D78 80077178 A21800D5 */ sb $t8, 0xd5($s0)
/* 077D7C 8007717C 3C01800F */ lui $at, %hi(D_800EEB1C) # $at, 0x800f
/* 077D80 80077180 C424EB1C */ lwc1 $f4, %lo(D_800EEB1C)($at)
/* 077D84 80077184 8FA2003C */ lw $v0, 0x3c($sp)
/* 077D88 80077188 E6040000 */ swc1 $f4, ($s0)
/* 077D8C 8007718C 8C470008 */ lw $a3, 8($v0)
/* 077D90 80077190 8C460004 */ lw $a2, 4($v0)
/* 077D94 80077194 0C022DF5 */ jal func_8008B7D4
/* 077D98 80077198 8C450000 */ lw $a1, ($v0)
/* 077D9C 8007719C 8FA40038 */ lw $a0, 0x38($sp)
/* 077DA0 800771A0 00002825 */ move $a1, $zero
/* 077DA4 800771A4 00003025 */ move $a2, $zero
/* 077DA8 800771A8 0C022E2F */ jal func_8008B8BC
/* 077DAC 800771AC 00003825 */ move $a3, $zero
/* 077DB0 800771B0 44800000 */ mtc1 $zero, $f0
/* 077DB4 800771B4 8FA40038 */ lw $a0, 0x38($sp)
/* 077DB8 800771B8 44050000 */ mfc1 $a1, $f0
/* 077DBC 800771BC 44060000 */ mfc1 $a2, $f0
/* 077DC0 800771C0 44070000 */ mfc1 $a3, $f0
/* 077DC4 800771C4 0C022E03 */ jal func_8008B80C
/* 077DC8 800771C8 00000000 */ nop
/* 077DCC 800771CC 8FA20040 */ lw $v0, 0x40($sp)
/* 077DD0 800771D0 3C01BF80 */ li $at, 0xBF800000 # -1.000000
/* 077DD4 800771D4 50400007 */ beql $v0, $zero, .L800771F4
/* 077DD8 800771D8 44813000 */ mtc1 $at, $f6
/* 077DDC 800771DC 24010001 */ li $at, 1
/* 077DE0 800771E0 50410022 */ beql $v0, $at, .L8007726C
/* 077DE4 800771E4 3C013FC0 */ li $at, 0x3FC00000 # 1.500000
/* 077DE8 800771E8 1000003D */ b .L800772E0
/* 077DEC 800771EC 00000000 */ nop
/* 077DF0 800771F0 44813000 */ mtc1 $at, $f6
.L800771F4:
/* 077DF4 800771F4 2404004B */ li $a0, 75
/* 077DF8 800771F8 0C0ADF8D */ jal random_int
/* 077DFC 800771FC E606003C */ swc1 $f6, 0x3c($s0)
/* 077E00 80077200 44824000 */ mtc1 $v0, $f8
/* 077E04 80077204 3C0141F0 */ li $at, 0x41F00000 # 30.000000
/* 077E08 80077208 04410005 */ bgez $v0, .L80077220
/* 077E0C 8007720C 468042A1 */ cvt.d.w $f10, $f8
/* 077E10 80077210 44818800 */ mtc1 $at, $f17
/* 077E14 80077214 44808000 */ mtc1 $zero, $f16
/* 077E18 80077218 00000000 */ nop
/* 077E1C 8007721C 46305280 */ add.d $f10, $f10, $f16
.L80077220:
/* 077E20 80077220 3C01800F */ lui $at, %hi(D_800EEB20)
/* 077E24 80077224 D432EB20 */ ldc1 $f18, %lo(D_800EEB20)($at)
/* 077E28 80077228 3C013FD0 */ li $at, 0x3FD00000 # 1.625000
/* 077E2C 8007722C 44813800 */ mtc1 $at, $f7
/* 077E30 80077230 46325102 */ mul.d $f4, $f10, $f18
/* 077E34 80077234 44803000 */ mtc1 $zero, $f6
/* 077E38 80077238 24040040 */ li $a0, 64
/* 077E3C 8007723C 46262200 */ add.d $f8, $f4, $f6
/* 077E40 80077240 46204420 */ cvt.s.d $f16, $f8
/* 077E44 80077244 0C0ADF8D */ jal random_int
/* 077E48 80077248 E6100034 */ swc1 $f16, 0x34($s0)
/* 077E4C 8007724C 0002CA80 */ sll $t9, $v0, 0xa
/* 077E50 80077250 A61900C0 */ sh $t9, 0xc0($s0)
/* 077E54 80077254 0C021D47 */ jal func_8008751C
/* 077E58 80077258 8FA40038 */ lw $a0, 0x38($sp)
/* 077E5C 8007725C 2408001E */ li $t0, 30
/* 077E60 80077260 1000001F */ b .L800772E0
/* 077E64 80077264 A608008E */ sh $t0, 0x8e($s0)
/* 077E68 80077268 3C013FC0 */ li $at, 0x3FC00000 # 1.500000
.L8007726C:
/* 077E6C 8007726C 44815000 */ mtc1 $at, $f10
/* 077E70 80077270 24040064 */ li $a0, 100
/* 077E74 80077274 0C0ADF8D */ jal random_int
/* 077E78 80077278 E60A003C */ swc1 $f10, 0x3c($s0)
/* 077E7C 8007727C 44829000 */ mtc1 $v0, $f18
/* 077E80 80077280 3C0141F0 */ li $at, 0x41F00000 # 30.000000
/* 077E84 80077284 04410005 */ bgez $v0, .L8007729C
/* 077E88 80077288 46809121 */ cvt.d.w $f4, $f18
/* 077E8C 8007728C 44813800 */ mtc1 $at, $f7
/* 077E90 80077290 44803000 */ mtc1 $zero, $f6
/* 077E94 80077294 00000000 */ nop
/* 077E98 80077298 46262100 */ add.d $f4, $f4, $f6
.L8007729C:
/* 077E9C 8007729C 3C01800F */ lui $at, %hi(D_800EEB28)
/* 077EA0 800772A0 D428EB28 */ ldc1 $f8, %lo(D_800EEB28)($at)
/* 077EA4 800772A4 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
/* 077EA8 800772A8 44815800 */ mtc1 $at, $f11
/* 077EAC 800772AC 46282402 */ mul.d $f16, $f4, $f8
/* 077EB0 800772B0 44805000 */ mtc1 $zero, $f10
/* 077EB4 800772B4 24040040 */ li $a0, 64
/* 077EB8 800772B8 462A8480 */ add.d $f18, $f16, $f10
/* 077EBC 800772BC 462091A0 */ cvt.s.d $f6, $f18
/* 077EC0 800772C0 0C0ADF8D */ jal random_int
/* 077EC4 800772C4 E6060034 */ swc1 $f6, 0x34($s0)
/* 077EC8 800772C8 00024A80 */ sll $t1, $v0, 0xa
/* 077ECC 800772CC A60900C0 */ sh $t1, 0xc0($s0)
/* 077ED0 800772D0 0C021D47 */ jal func_8008751C
/* 077ED4 800772D4 8FA40038 */ lw $a0, 0x38($sp)
/* 077ED8 800772D8 240A0032 */ li $t2, 50
/* 077EDC 800772DC A60A008E */ sh $t2, 0x8e($s0)
.L800772E0:
/* 077EE0 800772E0 0C0ADF8D */ jal random_int
/* 077EE4 800772E4 2404000C */ li $a0, 12
/* 077EE8 800772E8 00026600 */ sll $t4, $v0, 0x18
/* 077EEC 800772EC 00022600 */ sll $a0, $v0, 0x18
/* 077EF0 800772F0 000C6E03 */ sra $t5, $t4, 0x18
/* 077EF4 800772F4 00045E03 */ sra $t3, $a0, 0x18
/* 077EF8 800772F8 29A10009 */ slti $at, $t5, 9
/* 077EFC 800772FC 1020000D */ beqz $at, .L80077334
/* 077F00 80077300 01602025 */ move $a0, $t3
/* 077F04 80077304 27A50034 */ addiu $a1, $sp, 0x34
/* 077F08 80077308 27A60032 */ addiu $a2, $sp, 0x32
/* 077F0C 8007730C 0C01719D */ jal func_8005C674
/* 077F10 80077310 27A70030 */ addiu $a3, $sp, 0x30
/* 077F14 80077314 87AE0034 */ lh $t6, 0x34($sp)
/* 077F18 80077318 87AF0032 */ lh $t7, 0x32($sp)
/* 077F1C 8007731C 87B80030 */ lh $t8, 0x30($sp)
/* 077F20 80077320 AE000048 */ sw $zero, 0x48($s0)
/* 077F24 80077324 A60E0084 */ sh $t6, 0x84($s0)
/* 077F28 80077328 A60F0086 */ sh $t7, 0x86($s0)
/* 077F2C 8007732C 10000015 */ b .L80077384
/* 077F30 80077330 A6180088 */ sh $t8, 0x88($s0)
.L80077334:
/* 077F34 80077334 0C0ADF8D */ jal random_int
/* 077F38 80077338 24040003 */ li $a0, 3
/* 077F3C 8007733C 00022600 */ sll $a0, $v0, 0x18
/* 077F40 80077340 0004CE03 */ sra $t9, $a0, 0x18
/* 077F44 80077344 A3A20037 */ sb $v0, 0x37($sp)
/* 077F48 80077348 03202025 */ move $a0, $t9
/* 077F4C 8007734C 27A50034 */ addiu $a1, $sp, 0x34
/* 077F50 80077350 27A60032 */ addiu $a2, $sp, 0x32
/* 077F54 80077354 0C0171AD */ jal func_8005C6B4
/* 077F58 80077358 27A70030 */ addiu $a3, $sp, 0x30
/* 077F5C 8007735C 87A80034 */ lh $t0, 0x34($sp)
/* 077F60 80077360 87A90032 */ lh $t1, 0x32($sp)
/* 077F64 80077364 87AA0030 */ lh $t2, 0x30($sp)
/* 077F68 80077368 83AB0037 */ lb $t3, 0x37($sp)
/* 077F6C 8007736C 240C0001 */ li $t4, 1
/* 077F70 80077370 AE0C0048 */ sw $t4, 0x48($s0)
/* 077F74 80077374 A6080084 */ sh $t0, 0x84($s0)
/* 077F78 80077378 A6090086 */ sh $t1, 0x86($s0)
/* 077F7C 8007737C A60A0088 */ sh $t2, 0x88($s0)
/* 077F80 80077380 A60B008C */ sh $t3, 0x8c($s0)
.L80077384:
/* 077F84 80077384 240D00FF */ li $t5, 255
/* 077F88 80077388 A60D00A0 */ sh $t5, 0xa0($s0)
/* 077F8C 8007738C 0C0ADF8D */ jal random_int
/* 077F90 80077390 24040800 */ li $a0, 2048
/* 077F94 80077394 960300C0 */ lhu $v1, 0xc0($s0)
/* 077F98 80077398 244E0400 */ addiu $t6, $v0, 0x400
/* 077F9C 8007739C A60E008A */ sh $t6, 0x8a($s0)
/* 077FA0 800773A0 28613000 */ slti $at, $v1, 0x3000
/* 077FA4 800773A4 14200004 */ bnez $at, .L800773B8
/* 077FA8 800773A8 3401B001 */ li $at, 45057
/* 077FAC 800773AC 0061082A */ slt $at, $v1, $at
/* 077FB0 800773B0 54200005 */ bnel $at, $zero, .L800773C8
/* 077FB4 800773B4 8FBF001C */ lw $ra, 0x1c($sp)
.L800773B8:
/* 077FB8 800773B8 860F008A */ lh $t7, 0x8a($s0)
/* 077FBC 800773BC 000FC023 */ negu $t8, $t7
/* 077FC0 800773C0 A618008A */ sh $t8, 0x8a($s0)
/* 077FC4 800773C4 8FBF001C */ lw $ra, 0x1c($sp)
.L800773C8:
/* 077FC8 800773C8 8FB00018 */ lw $s0, 0x18($sp)
/* 077FCC 800773CC 27BD0038 */ addiu $sp, $sp, 0x38
/* 077FD0 800773D0 03E00008 */ jr $ra
/* 077FD4 800773D4 00000000 */ nop