Files
mk64/asm/non_matchings/code_800393C0/func_8003CD98.s
T
CoderStig 5ef48aa2eb Refresh 1
2021-03-02 01:48:17 -07:00

193 lines
9.7 KiB
ArmAsm

glabel func_8003CD98
/* 03D998 8003CD98 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 03D99C 8003CD9C AFBF002C */ sw $ra, 0x2c($sp)
/* 03D9A0 8003CDA0 AFB20028 */ sw $s2, 0x28($sp)
/* 03D9A4 8003CDA4 AFB10024 */ sw $s1, 0x24($sp)
/* 03D9A8 8003CDA8 AFB00020 */ sw $s0, 0x20($sp)
/* 03D9AC 8003CDAC AFA50034 */ sw $a1, 0x34($sp)
/* 03D9B0 8003CDB0 AFA60038 */ sw $a2, 0x38($sp)
/* 03D9B4 8003CDB4 AFA7003C */ sw $a3, 0x3c($sp)
/* 03D9B8 8003CDB8 94980000 */ lhu $t8, ($a0)
/* 03D9BC 8003CDBC 00078600 */ sll $s0, $a3, 0x18
/* 03D9C0 8003CDC0 00068E00 */ sll $s1, $a2, 0x18
/* 03D9C4 8003CDC4 00117603 */ sra $t6, $s1, 0x18
/* 03D9C8 8003CDC8 00107E03 */ sra $t7, $s0, 0x18
/* 03D9CC 8003CDCC 33198000 */ andi $t9, $t8, 0x8000
/* 03D9D0 8003CDD0 01E08025 */ move $s0, $t7
/* 03D9D4 8003CDD4 01C08825 */ move $s1, $t6
/* 03D9D8 8003CDD8 132000A3 */ beqz $t9, .L8003D068
/* 03D9DC 8003CDDC 00809025 */ move $s2, $a0
/* 03D9E0 8003CDE0 15E00007 */ bnez $t7, .L8003CE00
/* 03D9E4 8003CDE4 000F3600 */ sll $a2, $t7, 0x18
/* 03D9E8 8003CDE8 000E3E00 */ sll $a3, $t6, 0x18
/* 03D9EC 8003CDEC 00074E03 */ sra $t1, $a3, 0x18
/* 03D9F0 8003CDF0 00064603 */ sra $t0, $a2, 0x18
/* 03D9F4 8003CDF4 01003025 */ move $a2, $t0
/* 03D9F8 8003CDF8 0C00B49A */ jal func_8002D268
/* 03D9FC 8003CDFC 01203825 */ move $a3, $t1
.L8003CE00:
/* 03DA00 8003CE00 00103600 */ sll $a2, $s0, 0x18
/* 03DA04 8003CE04 00113E00 */ sll $a3, $s1, 0x18
/* 03DA08 8003CE08 00075E03 */ sra $t3, $a3, 0x18
/* 03DA0C 8003CE0C 00065603 */ sra $t2, $a2, 0x18
/* 03DA10 8003CE10 01403025 */ move $a2, $t2
/* 03DA14 8003CE14 01603825 */ move $a3, $t3
/* 03DA18 8003CE18 02402025 */ move $a0, $s2
/* 03DA1C 8003CE1C 0C00A4D3 */ jal func_8002934C
/* 03DA20 8003CE20 8FA50034 */ lw $a1, 0x34($sp)
/* 03DA24 8003CE24 12000003 */ beqz $s0, .L8003CE34
/* 03DA28 8003CE28 24010001 */ li $at, 1
/* 03DA2C 8003CE2C 16010036 */ bne $s0, $at, .L8003CF08
/* 03DA30 8003CE30 02402025 */ move $a0, $s2
.L8003CE34:
/* 03DA34 8003CE34 00112E00 */ sll $a1, $s1, 0x18
/* 03DA38 8003CE38 00103600 */ sll $a2, $s0, 0x18
/* 03DA3C 8003CE3C 00066E03 */ sra $t5, $a2, 0x18
/* 03DA40 8003CE40 00056603 */ sra $t4, $a1, 0x18
/* 03DA44 8003CE44 01802825 */ move $a1, $t4
/* 03DA48 8003CE48 01A03025 */ move $a2, $t5
/* 03DA4C 8003CE4C 02402025 */ move $a0, $s2
/* 03DA50 8003CE50 0C009E88 */ jal func_80027A20
/* 03DA54 8003CE54 00003825 */ move $a3, $zero
/* 03DA58 8003CE58 00112E00 */ sll $a1, $s1, 0x18
/* 03DA5C 8003CE5C 00103600 */ sll $a2, $s0, 0x18
/* 03DA60 8003CE60 00067E03 */ sra $t7, $a2, 0x18
/* 03DA64 8003CE64 00057603 */ sra $t6, $a1, 0x18
/* 03DA68 8003CE68 01C02825 */ move $a1, $t6
/* 03DA6C 8003CE6C 01E03025 */ move $a2, $t7
/* 03DA70 8003CE70 02402025 */ move $a0, $s2
/* 03DA74 8003CE74 0C009E88 */ jal func_80027A20
/* 03DA78 8003CE78 24070001 */ li $a3, 1
/* 03DA7C 8003CE7C 00112E00 */ sll $a1, $s1, 0x18
/* 03DA80 8003CE80 00103600 */ sll $a2, $s0, 0x18
/* 03DA84 8003CE84 00103E00 */ sll $a3, $s0, 0x18
/* 03DA88 8003CE88 00074603 */ sra $t0, $a3, 0x18
/* 03DA8C 8003CE8C 0006CE03 */ sra $t9, $a2, 0x18
/* 03DA90 8003CE90 0005C603 */ sra $t8, $a1, 0x18
/* 03DA94 8003CE94 03002825 */ move $a1, $t8
/* 03DA98 8003CE98 03203025 */ move $a2, $t9
/* 03DA9C 8003CE9C 01003825 */ move $a3, $t0
/* 03DAA0 8003CEA0 02402025 */ move $a0, $s2
/* 03DAA4 8003CEA4 0C009C10 */ jal func_80027040
/* 03DAA8 8003CEA8 AFA00010 */ sw $zero, 0x10($sp)
/* 03DAAC 8003CEAC 001048C0 */ sll $t1, $s0, 3
/* 03DAB0 8003CEB0 001150C0 */ sll $t2, $s1, 3
/* 03DAB4 8003CEB4 01515021 */ addu $t2, $t2, $s1
/* 03DAB8 8003CEB8 01304821 */ addu $t1, $t1, $s0
/* 03DABC 8003CEBC 000948C0 */ sll $t1, $t1, 3
/* 03DAC0 8003CEC0 000A50C0 */ sll $t2, $t2, 3
/* 03DAC4 8003CEC4 01515021 */ addu $t2, $t2, $s1
/* 03DAC8 8003CEC8 01304821 */ addu $t1, $t1, $s0
/* 03DACC 8003CECC 00094A00 */ sll $t1, $t1, 8
/* 03DAD0 8003CED0 000A5140 */ sll $t2, $t2, 5
/* 03DAD4 8003CED4 3C0C802E */ lui $t4, %hi(D_802DFB80) # $t4, 0x802e
/* 03DAD8 8003CED8 00106BC0 */ sll $t5, $s0, 0xf
/* 03DADC 8003CEDC 00117300 */ sll $t6, $s1, 0xc
/* 03DAE0 8003CEE0 3C18802C */ lui $t8, %hi(D_802BFB80) # $t8, 0x802c
/* 03DAE4 8003CEE4 2718FB80 */ addiu $t8, %lo(D_802BFB80) # addiu $t8, $t8, -0x480
/* 03DAE8 8003CEE8 01AE7821 */ addu $t7, $t5, $t6
/* 03DAEC 8003CEEC 258CFB80 */ addiu $t4, %lo(D_802DFB80) # addiu $t4, $t4, -0x480
/* 03DAF0 8003CEF0 012A5821 */ addu $t3, $t1, $t2
/* 03DAF4 8003CEF4 016C2021 */ addu $a0, $t3, $t4
/* 03DAF8 8003CEF8 0C010034 */ jal mio0decode
/* 03DAFC 8003CEFC 01F82821 */ addu $a1, $t7, $t8
/* 03DB00 8003CF00 10000038 */ b .L8003CFE4
/* 03DB04 8003CF04 0010C040 */ sll $t8, $s0, 1
.L8003CF08:
/* 03DB08 8003CF08 00112E00 */ sll $a1, $s1, 0x18
/* 03DB0C 8003CF0C 00103600 */ sll $a2, $s0, 0x18
/* 03DB10 8003CF10 00064603 */ sra $t0, $a2, 0x18
/* 03DB14 8003CF14 0005CE03 */ sra $t9, $a1, 0x18
/* 03DB18 8003CF18 03202825 */ move $a1, $t9
/* 03DB1C 8003CF1C 01003025 */ move $a2, $t0
/* 03DB20 8003CF20 0C009E88 */ jal func_80027A20
/* 03DB24 8003CF24 00003825 */ move $a3, $zero
/* 03DB28 8003CF28 00112E00 */ sll $a1, $s1, 0x18
/* 03DB2C 8003CF2C 00103600 */ sll $a2, $s0, 0x18
/* 03DB30 8003CF30 00065603 */ sra $t2, $a2, 0x18
/* 03DB34 8003CF34 00054E03 */ sra $t1, $a1, 0x18
/* 03DB38 8003CF38 01202825 */ move $a1, $t1
/* 03DB3C 8003CF3C 01403025 */ move $a2, $t2
/* 03DB40 8003CF40 02402025 */ move $a0, $s2
/* 03DB44 8003CF44 0C009E88 */ jal func_80027A20
/* 03DB48 8003CF48 24070001 */ li $a3, 1
/* 03DB4C 8003CF4C 26250004 */ addiu $a1, $s1, 4
/* 03DB50 8003CF50 00103600 */ sll $a2, $s0, 0x18
/* 03DB54 8003CF54 2607FFFE */ addiu $a3, $s0, -2
/* 03DB58 8003CF58 00077600 */ sll $t6, $a3, 0x18
/* 03DB5C 8003CF5C 00066E03 */ sra $t5, $a2, 0x18
/* 03DB60 8003CF60 00055E00 */ sll $t3, $a1, 0x18
/* 03DB64 8003CF64 000B2E03 */ sra $a1, $t3, 0x18
/* 03DB68 8003CF68 01A03025 */ move $a2, $t5
/* 03DB6C 8003CF6C 000E3E03 */ sra $a3, $t6, 0x18
/* 03DB70 8003CF70 02402025 */ move $a0, $s2
/* 03DB74 8003CF74 0C009C10 */ jal func_80027040
/* 03DB78 8003CF78 AFA00010 */ sw $zero, 0x10($sp)
/* 03DB7C 8003CF7C 0010C0C0 */ sll $t8, $s0, 3
/* 03DB80 8003CF80 0011C8C0 */ sll $t9, $s1, 3
/* 03DB84 8003CF84 0331C821 */ addu $t9, $t9, $s1
/* 03DB88 8003CF88 0310C021 */ addu $t8, $t8, $s0
/* 03DB8C 8003CF8C 0018C0C0 */ sll $t8, $t8, 3
/* 03DB90 8003CF90 0019C8C0 */ sll $t9, $t9, 3
/* 03DB94 8003CF94 0331C821 */ addu $t9, $t9, $s1
/* 03DB98 8003CF98 0310C021 */ addu $t8, $t8, $s0
/* 03DB9C 8003CF9C 0018C200 */ sll $t8, $t8, 8
/* 03DBA0 8003CFA0 0019C940 */ sll $t9, $t9, 5
/* 03DBA4 8003CFA4 00105BC0 */ sll $t3, $s0, 0xf
/* 03DBA8 8003CFA8 00116300 */ sll $t4, $s1, 0xc
/* 03DBAC 8003CFAC 3C01FFFF */ lui $at, (0xFFFF4000 >> 16) # lui $at, 0xffff
/* 03DBB0 8003CFB0 34214000 */ ori $at, (0xFFFF4000 & 0xFFFF) # ori $at, $at, 0x4000
/* 03DBB4 8003CFB4 016C6821 */ addu $t5, $t3, $t4
/* 03DBB8 8003CFB8 03194021 */ addu $t0, $t8, $t9
/* 03DBBC 8003CFBC 3C0A802E */ lui $t2, %hi(D_802DFB80) # $t2, 0x802e
/* 03DBC0 8003CFC0 3C0F802C */ lui $t7, %hi(D_802BFB80) # $t7, 0x802c
/* 03DBC4 8003CFC4 25EFFB80 */ addiu $t7, %lo(D_802BFB80) # addiu $t7, $t7, -0x480
/* 03DBC8 8003CFC8 254AFB80 */ addiu $t2, %lo(D_802DFB80) # addiu $t2, $t2, -0x480
/* 03DBCC 8003CFCC 25099280 */ addiu $t1, $t0, -0x6d80
/* 03DBD0 8003CFD0 01A17021 */ addu $t6, $t5, $at
/* 03DBD4 8003CFD4 01CF2821 */ addu $a1, $t6, $t7
/* 03DBD8 8003CFD8 0C010034 */ jal mio0decode
/* 03DBDC 8003CFDC 012A2021 */ addu $a0, $t1, $t2
/* 03DBE0 8003CFE0 0010C040 */ sll $t8, $s0, 1
.L8003CFE4:
/* 03DBE4 8003CFE4 02581821 */ addu $v1, $s2, $t8
/* 03DBE8 8003CFE8 94790244 */ lhu $t9, 0x244($v1)
/* 03DBEC 8003CFEC 00111040 */ sll $v0, $s1, 1
/* 03DBF0 8003CFF0 00104100 */ sll $t0, $s0, 4
/* 03DBF4 8003CFF4 01024821 */ addu $t1, $t0, $v0
/* 03DBF8 8003CFF8 3C018016 */ lui $at, 0x8016
/* 03DBFC 8003CFFC 00290821 */ addu $at, $at, $t1
/* 03DC00 8003D000 A43950D0 */ sh $t9, 0x50d0($at)
/* 03DC04 8003D004 946A024C */ lhu $t2, 0x24c($v1)
/* 03DC08 8003D008 00105900 */ sll $t3, $s0, 4
/* 03DC0C 8003D00C 01626021 */ addu $t4, $t3, $v0
/* 03DC10 8003D010 3C018016 */ lui $at, 0x8016
/* 03DC14 8003D014 002C0821 */ addu $at, $at, $t4
/* 03DC18 8003D018 A42A5110 */ sh $t2, 0x5110($at)
/* 03DC1C 8003D01C 864D00A8 */ lh $t5, 0xa8($s2)
/* 03DC20 8003D020 00107100 */ sll $t6, $s0, 4
/* 03DC24 8003D024 01C27821 */ addu $t7, $t6, $v0
/* 03DC28 8003D028 3C018016 */ lui $at, 0x8016
/* 03DC2C 8003D02C 002F0821 */ addu $at, $at, $t7
/* 03DC30 8003D030 0010C100 */ sll $t8, $s0, 4
/* 03DC34 8003D034 A42D5150 */ sh $t5, 0x5150($at)
/* 03DC38 8003D038 3C018016 */ lui $at, 0x8016
/* 03DC3C 8003D03C 03024021 */ addu $t0, $t8, $v0
/* 03DC40 8003D040 00112E00 */ sll $a1, $s1, 0x18
/* 03DC44 8003D044 00103600 */ sll $a2, $s0, 0x18
/* 03DC48 8003D048 00280821 */ addu $at, $at, $t0
/* 03DC4C 8003D04C 00064E03 */ sra $t1, $a2, 0x18
/* 03DC50 8003D050 0005CE03 */ sra $t9, $a1, 0x18
/* 03DC54 8003D054 A42051D0 */ sh $zero, 0x51d0($at)
/* 03DC58 8003D058 03202825 */ move $a1, $t9
/* 03DC5C 8003D05C 01203025 */ move $a2, $t1
/* 03DC60 8003D060 0C0099EB */ jal func_800267AC
/* 03DC64 8003D064 02402025 */ move $a0, $s2
.L8003D068:
/* 03DC68 8003D068 8FBF002C */ lw $ra, 0x2c($sp)
/* 03DC6C 8003D06C 8FB00020 */ lw $s0, 0x20($sp)
/* 03DC70 8003D070 8FB10024 */ lw $s1, 0x24($sp)
/* 03DC74 8003D074 8FB20028 */ lw $s2, 0x28($sp)
/* 03DC78 8003D078 03E00008 */ jr $ra
/* 03DC7C 8003D07C 27BD0030 */ addiu $sp, $sp, 0x30