Files
SpaghettiKart/asm/non_matchings/code_80071F00/func_8007F75C.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

105 lines
5.3 KiB
ArmAsm

glabel func_8007F75C
/* 08035C 8007F75C 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 080360 8007F760 00047040 */ sll $t6, $a0, 1
/* 080364 8007F764 3C028016 */ lui $v0, %hi(D_80164438) # 0x8016
/* 080368 8007F768 004E1021 */ addu $v0, $v0, $t6
/* 08036C 8007F76C 94424438 */ lhu $v0, %lo(D_80164438)($v0) # 0x4438($v0)
/* 080370 8007F770 AFB6002C */ sw $s6, 0x2c($sp)
/* 080374 8007F774 AFB50028 */ sw $s5, 0x28($sp)
/* 080378 8007F778 284100AA */ slti $at, $v0, 0xaa
/* 08037C 8007F77C 0080A825 */ move $s5, $a0
/* 080380 8007F780 AFBF0034 */ sw $ra, 0x34($sp)
/* 080384 8007F784 AFB70030 */ sw $s7, 0x30($sp)
/* 080388 8007F788 AFB40024 */ sw $s4, 0x24($sp)
/* 08038C 8007F78C AFB30020 */ sw $s3, 0x20($sp)
/* 080390 8007F790 AFB2001C */ sw $s2, 0x1c($sp)
/* 080394 8007F794 AFB10018 */ sw $s1, 0x18($sp)
/* 080398 8007F798 AFB00014 */ sw $s0, 0x14($sp)
/* 08039C 8007F79C 14200024 */ bnez $at, .L8007F830
/* 0803A0 8007F7A0 0000B025 */ move $s6, $zero
/* 0803A4 8007F7A4 284100B5 */ slti $at, $v0, 0xb5
/* 0803A8 8007F7A8 50200022 */ beql $at, $zero, .L8007F834
/* 0803AC 8007F7AC 284100D7 */ slti $at, $v0, 0xd7
/* 0803B0 8007F7B0 0C0ADF8D */ jal random_int
/* 0803B4 8007F7B4 24040032 */ li $a0, 50
/* 0803B8 8007F7B8 3C038016 */ lui $v1, %hi(D_80165750) # $v1, 0x8016
/* 0803BC 8007F7BC 84635750 */ lh $v1, %lo(D_80165750)($v1)
/* 0803C0 8007F7C0 24570032 */ addiu $s7, $v0, 0x32
/* 0803C4 8007F7C4 00008025 */ move $s0, $zero
/* 0803C8 8007F7C8 18600037 */ blez $v1, .L8007F8A8
/* 0803CC 8007F7CC 3C118018 */ lui $s1, %hi(D_80183EA0) # $s1, 0x8018
/* 0803D0 8007F7D0 3C138016 */ lui $s3, %hi(D_80165C18) # $s3, 0x8016
/* 0803D4 8007F7D4 26735C18 */ addiu $s3, %lo(D_80165C18) # addiu $s3, $s3, 0x5c18
/* 0803D8 8007F7D8 26313EA0 */ addiu $s1, %lo(D_80183EA0) # addiu $s1, $s1, 0x3ea0
/* 0803DC 8007F7DC 241400E0 */ li $s4, 224
/* 0803E0 8007F7E0 24120003 */ li $s2, 3
.L8007F7E4:
/* 0803E4 8007F7E4 8E240000 */ lw $a0, ($s1)
/* 0803E8 8007F7E8 02A02825 */ move $a1, $s5
/* 0803EC 8007F7EC 02E03025 */ move $a2, $s7
/* 0803F0 8007F7F0 00940019 */ multu $a0, $s4
/* 0803F4 8007F7F4 00007812 */ mflo $t7
/* 0803F8 8007F7F8 026FC021 */ addu $t8, $s3, $t7
/* 0803FC 8007F7FC 931900D5 */ lbu $t9, 0xd5($t8)
/* 080400 8007F800 56590006 */ bnel $s2, $t9, .L8007F81C
/* 080404 8007F804 26100001 */ addiu $s0, $s0, 1
/* 080408 8007F808 0C01FD98 */ jal func_8007F660
/* 08040C 8007F80C 24160001 */ li $s6, 1
/* 080410 8007F810 3C038016 */ lui $v1, %hi(D_80165750) # $v1, 0x8016
/* 080414 8007F814 84635750 */ lh $v1, %lo(D_80165750)($v1)
/* 080418 8007F818 26100001 */ addiu $s0, $s0, 1
.L8007F81C:
/* 08041C 8007F81C 0203082A */ slt $at, $s0, $v1
/* 080420 8007F820 1420FFF0 */ bnez $at, .L8007F7E4
/* 080424 8007F824 26310004 */ addiu $s1, $s1, 4
/* 080428 8007F828 10000020 */ b .L8007F8AC
/* 08042C 8007F82C 8FBF0034 */ lw $ra, 0x34($sp)
.L8007F830:
/* 080430 8007F830 284100D7 */ slti $at, $v0, 0xd7
.L8007F834:
/* 080434 8007F834 1420001C */ bnez $at, .L8007F8A8
/* 080438 8007F838 284100E2 */ slti $at, $v0, 0xe2
/* 08043C 8007F83C 1020001A */ beqz $at, .L8007F8A8
/* 080440 8007F840 3C038016 */ lui $v1, %hi(D_80165750) # $v1, 0x8016
/* 080444 8007F844 84635750 */ lh $v1, %lo(D_80165750)($v1)
/* 080448 8007F848 3C118018 */ lui $s1, %hi(D_80183EA0) # $s1, 0x8018
/* 08044C 8007F84C 26313EA0 */ addiu $s1, %lo(D_80183EA0) # addiu $s1, $s1, 0x3ea0
/* 080450 8007F850 18600015 */ blez $v1, .L8007F8A8
/* 080454 8007F854 00008025 */ move $s0, $zero
/* 080458 8007F858 3C138016 */ lui $s3, %hi(D_80165C18) # $s3, 0x8016
/* 08045C 8007F85C 26735C18 */ addiu $s3, %lo(D_80165C18) # addiu $s3, $s3, 0x5c18
/* 080460 8007F860 241400E0 */ li $s4, 224
/* 080464 8007F864 24120003 */ li $s2, 3
.L8007F868:
/* 080468 8007F868 8E240000 */ lw $a0, ($s1)
/* 08046C 8007F86C 02A02825 */ move $a1, $s5
/* 080470 8007F870 00940019 */ multu $a0, $s4
/* 080474 8007F874 00004012 */ mflo $t0
/* 080478 8007F878 02684821 */ addu $t1, $s3, $t0
/* 08047C 8007F87C 912A00D5 */ lbu $t2, 0xd5($t1)
/* 080480 8007F880 564A0006 */ bnel $s2, $t2, .L8007F89C
/* 080484 8007F884 26100001 */ addiu $s0, $s0, 1
/* 080488 8007F888 0C01FDB1 */ jal func_8007F6C4
/* 08048C 8007F88C 24160001 */ li $s6, 1
/* 080490 8007F890 3C038016 */ lui $v1, %hi(D_80165750) # $v1, 0x8016
/* 080494 8007F894 84635750 */ lh $v1, %lo(D_80165750)($v1)
/* 080498 8007F898 26100001 */ addiu $s0, $s0, 1
.L8007F89C:
/* 08049C 8007F89C 0203082A */ slt $at, $s0, $v1
/* 0804A0 8007F8A0 1420FFF1 */ bnez $at, .L8007F868
/* 0804A4 8007F8A4 26310004 */ addiu $s1, $s1, 4
.L8007F8A8:
/* 0804A8 8007F8A8 8FBF0034 */ lw $ra, 0x34($sp)
.L8007F8AC:
/* 0804AC 8007F8AC 02C01025 */ move $v0, $s6
/* 0804B0 8007F8B0 8FB6002C */ lw $s6, 0x2c($sp)
/* 0804B4 8007F8B4 8FB00014 */ lw $s0, 0x14($sp)
/* 0804B8 8007F8B8 8FB10018 */ lw $s1, 0x18($sp)
/* 0804BC 8007F8BC 8FB2001C */ lw $s2, 0x1c($sp)
/* 0804C0 8007F8C0 8FB30020 */ lw $s3, 0x20($sp)
/* 0804C4 8007F8C4 8FB40024 */ lw $s4, 0x24($sp)
/* 0804C8 8007F8C8 8FB50028 */ lw $s5, 0x28($sp)
/* 0804CC 8007F8CC 8FB70030 */ lw $s7, 0x30($sp)
/* 0804D0 8007F8D0 03E00008 */ jr $ra
/* 0804D4 8007F8D4 27BD0038 */ addiu $sp, $sp, 0x38