Files
mk64/asm/non_matchings/code_80091750/func_80098C18.s
T
Tyler McGavran 7b7725b62a Match swap_values (#111)
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2021-12-20 23:07:18 -07:00

133 lines
6.3 KiB
ArmAsm

glabel func_80098C18
/* 099818 80098C18 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 09981C 80098C1C 8FAE0034 */ lw $t6, 0x34($sp)
/* 099820 80098C20 8FB80038 */ lw $t8, 0x38($sp)
/* 099824 80098C24 8FA8003C */ lw $t0, 0x3c($sp)
/* 099828 80098C28 8FAA0040 */ lw $t2, 0x40($sp)
/* 09982C 80098C2C AFB00018 */ sw $s0, 0x18($sp)
/* 099830 80098C30 00E5082A */ slt $at, $a3, $a1
/* 099834 80098C34 31CF00FF */ andi $t7, $t6, 0xff
/* 099838 80098C38 331900FF */ andi $t9, $t8, 0xff
/* 09983C 80098C3C 310900FF */ andi $t1, $t0, 0xff
/* 099840 80098C40 314B00FF */ andi $t3, $t2, 0xff
/* 099844 80098C44 00808025 */ move $s0, $a0
/* 099848 80098C48 AFBF001C */ sw $ra, 0x1c($sp)
/* 09984C 80098C4C AFA50024 */ sw $a1, 0x24($sp)
/* 099850 80098C50 AFA60028 */ sw $a2, 0x28($sp)
/* 099854 80098C54 AFA7002C */ sw $a3, 0x2c($sp)
/* 099858 80098C58 AFAF0034 */ sw $t7, 0x34($sp)
/* 09985C 80098C5C AFB90038 */ sw $t9, 0x38($sp)
/* 099860 80098C60 AFA9003C */ sw $t1, 0x3c($sp)
/* 099864 80098C64 10200004 */ beqz $at, .L80098C78
/* 099868 80098C68 AFAB0040 */ sw $t3, 0x40($sp)
/* 09986C 80098C6C 27A40024 */ addiu $a0, $sp, 0x24
/* 099870 80098C70 0C0246D9 */ jal swap_values
/* 099874 80098C74 27A5002C */ addiu $a1, $sp, 0x2c
.L80098C78:
/* 099878 80098C78 8FA20030 */ lw $v0, 0x30($sp)
/* 09987C 80098C7C 8FAE0028 */ lw $t6, 0x28($sp)
/* 099880 80098C80 27A40028 */ addiu $a0, $sp, 0x28
/* 099884 80098C84 004E082A */ slt $at, $v0, $t6
/* 099888 80098C88 50200005 */ beql $at, $zero, .L80098CA0
/* 09988C 80098C8C 8FAF0024 */ lw $t7, 0x24($sp)
/* 099890 80098C90 0C0246D9 */ jal swap_values
/* 099894 80098C94 27A50030 */ addiu $a1, $sp, 0x30
/* 099898 80098C98 8FA20030 */ lw $v0, 0x30($sp)
/* 09989C 80098C9C 8FAF0024 */ lw $t7, 0x24($sp)
.L80098CA0:
/* 0998A0 80098CA0 8FB80028 */ lw $t8, 0x28($sp)
/* 0998A4 80098CA4 29E10140 */ slti $at, $t7, 0x140
/* 0998A8 80098CA8 10200003 */ beqz $at, .L80098CB8
/* 0998AC 80098CAC 2B0100F0 */ slti $at, $t8, 0xf0
/* 0998B0 80098CB0 14200003 */ bnez $at, .L80098CC0
/* 0998B4 80098CB4 8FB90024 */ lw $t9, 0x24($sp)
.L80098CB8:
/* 0998B8 80098CB8 1000004A */ b .L80098DE4
/* 0998BC 80098CBC 02001025 */ move $v0, $s0
.L80098CC0:
/* 0998C0 80098CC0 07230003 */ bgezl $t9, .L80098CD0
/* 0998C4 80098CC4 8FA80028 */ lw $t0, 0x28($sp)
/* 0998C8 80098CC8 AFA00024 */ sw $zero, 0x24($sp)
/* 0998CC 80098CCC 8FA80028 */ lw $t0, 0x28($sp)
.L80098CD0:
/* 0998D0 80098CD0 05030003 */ bgezl $t0, .L80098CE0
/* 0998D4 80098CD4 8FA9002C */ lw $t1, 0x2c($sp)
/* 0998D8 80098CD8 AFA00028 */ sw $zero, 0x28($sp)
/* 0998DC 80098CDC 8FA9002C */ lw $t1, 0x2c($sp)
.L80098CE0:
/* 0998E0 80098CE0 05200003 */ bltz $t1, .L80098CF0
/* 0998E4 80098CE4 00000000 */ nop
/* 0998E8 80098CE8 04410003 */ bgez $v0, .L80098CF8
/* 0998EC 80098CEC 8FAA002C */ lw $t2, 0x2c($sp)
.L80098CF0:
/* 0998F0 80098CF0 1000003C */ b .L80098DE4
/* 0998F4 80098CF4 02001025 */ move $v0, $s0
.L80098CF8:
/* 0998F8 80098CF8 29410140 */ slti $at, $t2, 0x140
/* 0998FC 80098CFC 14200003 */ bnez $at, .L80098D0C
/* 099900 80098D00 3C060600 */ lui $a2, 0x600
/* 099904 80098D04 240B013F */ li $t3, 319
/* 099908 80098D08 AFAB002C */ sw $t3, 0x2c($sp)
.L80098D0C:
/* 09990C 80098D0C 284100F0 */ slti $at, $v0, 0xf0
/* 099910 80098D10 14200003 */ bnez $at, .L80098D20
/* 099914 80098D14 3C0C0201 */ lui $t4, %hi(D_02008030) # $t4, 0x201
/* 099918 80098D18 240200EF */ li $v0, 239
/* 09991C 80098D1C AFA20030 */ sw $v0, 0x30($sp)
.L80098D20:
/* 099920 80098D20 02001025 */ move $v0, $s0
/* 099924 80098D24 258C8030 */ addiu $t4, %lo(D_02008030) # addiu $t4, $t4, -0x7fd0
/* 099928 80098D28 AC4C0004 */ sw $t4, 4($v0)
/* 09992C 80098D2C AC460000 */ sw $a2, ($v0)
/* 099930 80098D30 3C0DF700 */ lui $t5, 0xf700
/* 099934 80098D34 AE0D0008 */ sw $t5, 8($s0)
/* 099938 80098D38 8FAE0034 */ lw $t6, 0x34($sp)
/* 09993C 80098D3C 8FB90038 */ lw $t9, 0x38($sp)
/* 099940 80098D40 8FAB003C */ lw $t3, 0x3c($sp)
/* 099944 80098D44 000E7A00 */ sll $t7, $t6, 8
/* 099948 80098D48 31F8F800 */ andi $t8, $t7, 0xf800
/* 09994C 80098D4C 8FAF0040 */ lw $t7, 0x40($sp)
/* 099950 80098D50 001940C0 */ sll $t0, $t9, 3
/* 099954 80098D54 310907C0 */ andi $t1, $t0, 0x7c0
/* 099958 80098D58 000B6082 */ srl $t4, $t3, 2
/* 09995C 80098D5C 318D003E */ andi $t5, $t4, 0x3e
/* 099960 80098D60 03095025 */ or $t2, $t8, $t1
/* 099964 80098D64 014D7025 */ or $t6, $t2, $t5
/* 099968 80098D68 31F90001 */ andi $t9, $t7, 1
/* 09996C 80098D6C 01D92025 */ or $a0, $t6, $t9
/* 099970 80098D70 00044400 */ sll $t0, $a0, 0x10
/* 099974 80098D74 0104C025 */ or $t8, $t0, $a0
/* 099978 80098D78 AE18000C */ sw $t8, 0xc($s0)
/* 09997C 80098D7C 8FA9002C */ lw $t1, 0x2c($sp)
/* 099980 80098D80 8FAD0030 */ lw $t5, 0x30($sp)
/* 099984 80098D84 3C01F600 */ lui $at, 0xf600
/* 099988 80098D88 312B03FF */ andi $t3, $t1, 0x3ff
/* 09998C 80098D8C 000B6380 */ sll $t4, $t3, 0xe
/* 099990 80098D90 31AF03FF */ andi $t7, $t5, 0x3ff
/* 099994 80098D94 26100008 */ addiu $s0, $s0, 8
/* 099998 80098D98 000F7080 */ sll $t6, $t7, 2
/* 09999C 80098D9C 01815025 */ or $t2, $t4, $at
/* 0999A0 80098DA0 26050008 */ addiu $a1, $s0, 8
/* 0999A4 80098DA4 014EC825 */ or $t9, $t2, $t6
/* 0999A8 80098DA8 ACB90000 */ sw $t9, ($a1)
/* 0999AC 80098DAC 8FAB0028 */ lw $t3, 0x28($sp)
/* 0999B0 80098DB0 8FA80024 */ lw $t0, 0x24($sp)
/* 0999B4 80098DB4 24A30008 */ addiu $v1, $a1, 8
/* 0999B8 80098DB8 316C03FF */ andi $t4, $t3, 0x3ff
/* 0999BC 80098DBC 311803FF */ andi $t8, $t0, 0x3ff
/* 0999C0 80098DC0 00184B80 */ sll $t1, $t8, 0xe
/* 0999C4 80098DC4 000C6880 */ sll $t5, $t4, 2
/* 0999C8 80098DC8 012D7825 */ or $t7, $t1, $t5
/* 0999CC 80098DCC ACAF0004 */ sw $t7, 4($a1)
/* 0999D0 80098DD0 3C0A0201 */ lui $t2, %hi(D_02008058) # $t2, 0x201
/* 0999D4 80098DD4 254A8058 */ addiu $t2, %lo(D_02008058) # addiu $t2, $t2, -0x7fa8
/* 0999D8 80098DD8 AC6A0004 */ sw $t2, 4($v1)
/* 0999DC 80098DDC AC660000 */ sw $a2, ($v1)
/* 0999E0 80098DE0 24620008 */ addiu $v0, $v1, 8
.L80098DE4:
/* 0999E4 80098DE4 8FBF001C */ lw $ra, 0x1c($sp)
/* 0999E8 80098DE8 8FB00018 */ lw $s0, 0x18($sp)
/* 0999EC 80098DEC 27BD0020 */ addiu $sp, $sp, 0x20
/* 0999F0 80098DF0 03E00008 */ jr $ra
/* 0999F4 80098DF4 00000000 */ nop