papermario/asm/nonmatchings/code_385640/func_E0082A84.s
Ethan Roseman a8e550dd9a yee
2020-10-17 22:27:25 -04:00

169 lines
8.7 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E0082A84
/* 3860C4 E0082A84 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 3860C8 E0082A88 AFB60028 */ sw $s6, 0x28($sp)
/* 3860CC E0082A8C 0080B02D */ daddu $s6, $a0, $zero
/* 3860D0 E0082A90 3C06DB06 */ lui $a2, 0xdb06
/* 3860D4 E0082A94 34C60024 */ ori $a2, $a2, 0x24
/* 3860D8 E0082A98 AFB40020 */ sw $s4, 0x20($sp)
/* 3860DC E0082A9C 24140001 */ addiu $s4, $zero, 1
/* 3860E0 E0082AA0 AFB00010 */ sw $s0, 0x10($sp)
/* 3860E4 E0082AA4 3C10800A */ lui $s0, 0x800a
/* 3860E8 E0082AA8 2610A66C */ addiu $s0, $s0, -0x5994
/* 3860EC E0082AAC 3C02E700 */ lui $v0, 0xe700
/* 3860F0 E0082AB0 AFBF0034 */ sw $ra, 0x34($sp)
/* 3860F4 E0082AB4 AFBE0030 */ sw $fp, 0x30($sp)
/* 3860F8 E0082AB8 AFB7002C */ sw $s7, 0x2c($sp)
/* 3860FC E0082ABC AFB50024 */ sw $s5, 0x24($sp)
/* 386100 E0082AC0 AFB3001C */ sw $s3, 0x1c($sp)
/* 386104 E0082AC4 AFB20018 */ sw $s2, 0x18($sp)
/* 386108 E0082AC8 AFB10014 */ sw $s1, 0x14($sp)
/* 38610C E0082ACC 8E050000 */ lw $a1, ($s0)
/* 386110 E0082AD0 8ED3000C */ lw $s3, 0xc($s6)
/* 386114 E0082AD4 00A0182D */ daddu $v1, $a1, $zero
/* 386118 E0082AD8 24A50008 */ addiu $a1, $a1, 8
/* 38611C E0082ADC 0260202D */ daddu $a0, $s3, $zero
/* 386120 E0082AE0 AE050000 */ sw $a1, ($s0)
/* 386124 E0082AE4 AC620000 */ sw $v0, ($v1)
/* 386128 E0082AE8 AC600004 */ sw $zero, 4($v1)
/* 38612C E0082AEC ACA60000 */ sw $a2, ($a1)
/* 386130 E0082AF0 8EC30010 */ lw $v1, 0x10($s6)
/* 386134 E0082AF4 24A20008 */ addiu $v0, $a1, 8
/* 386138 E0082AF8 AE020000 */ sw $v0, ($s0)
/* 38613C E0082AFC 8C62001C */ lw $v0, 0x1c($v1)
/* 386140 E0082B00 3C038000 */ lui $v1, 0x8000
/* 386144 E0082B04 00431021 */ addu $v0, $v0, $v1
/* 386148 E0082B08 0C020960 */ jal func_E0082580
/* 38614C E0082B0C ACA20004 */ sw $v0, 4($a1)
/* 386150 E0082B10 8E720038 */ lw $s2, 0x38($s3)
/* 386154 E0082B14 8EC20008 */ lw $v0, 8($s6)
/* 386158 E0082B18 0282102A */ slt $v0, $s4, $v0
/* 38615C E0082B1C 10400059 */ beqz $v0, .LE0082C84
/* 386160 E0082B20 26730048 */ addiu $s3, $s3, 0x48
/* 386164 E0082B24 3C026666 */ lui $v0, 0x6666
/* 386168 E0082B28 34426667 */ ori $v0, $v0, 0x6667
/* 38616C E0082B2C 02420018 */ mult $s2, $v0
/* 386170 E0082B30 3C11DE00 */ lui $s1, 0xde00
/* 386174 E0082B34 3C15E008 */ lui $s5, 0xe008
/* 386178 E0082B38 26B52D00 */ addiu $s5, $s5, 0x2d00
/* 38617C E0082B3C 00121080 */ sll $v0, $s2, 2
/* 386180 E0082B40 0055F021 */ addu $fp, $v0, $s5
/* 386184 E0082B44 00003810 */ mfhi $a3
/* 386188 E0082B48 0007B883 */ sra $s7, $a3, 2
.LE0082B4C:
/* 38618C E0082B4C 0C0209B1 */ jal func_E00826C4
/* 386190 E0082B50 0260202D */ daddu $a0, $s3, $zero
/* 386194 E0082B54 1A40003E */ blez $s2, .LE0082C50
/* 386198 E0082B58 3C02D838 */ lui $v0, 0xd838
/* 38619C E0082B5C 8E050000 */ lw $a1, ($s0)
/* 3861A0 E0082B60 3C030900 */ lui $v1, 0x900
/* 3861A4 E0082B64 246322B0 */ addiu $v1, $v1, 0x22b0
/* 3861A8 E0082B68 00A0102D */ daddu $v0, $a1, $zero
/* 3861AC E0082B6C 24A50008 */ addiu $a1, $a1, 8
/* 3861B0 E0082B70 AE050000 */ sw $a1, ($s0)
/* 3861B4 E0082B74 AC510000 */ sw $s1, ($v0)
/* 3861B8 E0082B78 AC430004 */ sw $v1, 4($v0)
/* 3861BC E0082B7C 2A42000A */ slti $v0, $s2, 0xa
/* 3861C0 E0082B80 1040000C */ beqz $v0, .LE0082BB4
/* 3861C4 E0082B84 24A20008 */ addiu $v0, $a1, 8
/* 3861C8 E0082B88 AE020000 */ sw $v0, ($s0)
/* 3861CC E0082B8C ACB10000 */ sw $s1, ($a1)
/* 3861D0 E0082B90 8FC30000 */ lw $v1, ($fp)
/* 3861D4 E0082B94 24A20010 */ addiu $v0, $a1, 0x10
/* 3861D8 E0082B98 AE020000 */ sw $v0, ($s0)
/* 3861DC E0082B9C 3C020900 */ lui $v0, 0x900
/* 3861E0 E0082BA0 24422250 */ addiu $v0, $v0, 0x2250
/* 3861E4 E0082BA4 ACB10008 */ sw $s1, 8($a1)
/* 3861E8 E0082BA8 ACA2000C */ sw $v0, 0xc($a1)
/* 3861EC E0082BAC 08020B13 */ j .LE0082C4C
/* 3861F0 E0082BB0 ACA30004 */ sw $v1, 4($a1)
.LE0082BB4:
/* 3861F4 E0082BB4 001217C3 */ sra $v0, $s2, 0x1f
/* 3861F8 E0082BB8 02E22023 */ subu $a0, $s7, $v0
/* 3861FC E0082BBC 0080182D */ daddu $v1, $a0, $zero
/* 386200 E0082BC0 00031080 */ sll $v0, $v1, 2
/* 386204 E0082BC4 00431021 */ addu $v0, $v0, $v1
/* 386208 E0082BC8 00021040 */ sll $v0, $v0, 1
/* 38620C E0082BCC 02422023 */ subu $a0, $s2, $v0
/* 386210 E0082BD0 24A20008 */ addiu $v0, $a1, 8
/* 386214 E0082BD4 AE020000 */ sw $v0, ($s0)
/* 386218 E0082BD8 00041080 */ sll $v0, $a0, 2
/* 38621C E0082BDC 00551021 */ addu $v0, $v0, $s5
/* 386220 E0082BE0 ACB10000 */ sw $s1, ($a1)
/* 386224 E0082BE4 8C440000 */ lw $a0, ($v0)
/* 386228 E0082BE8 24A20010 */ addiu $v0, $a1, 0x10
/* 38622C E0082BEC AE020000 */ sw $v0, ($s0)
/* 386230 E0082BF0 24A20018 */ addiu $v0, $a1, 0x18
/* 386234 E0082BF4 00031880 */ sll $v1, $v1, 2
/* 386238 E0082BF8 00751821 */ addu $v1, $v1, $s5
/* 38623C E0082BFC ACB10008 */ sw $s1, 8($a1)
/* 386240 E0082C00 AE020000 */ sw $v0, ($s0)
/* 386244 E0082C04 ACA40004 */ sw $a0, 4($a1)
/* 386248 E0082C08 8C640000 */ lw $a0, ($v1)
/* 38624C E0082C0C 24A20020 */ addiu $v0, $a1, 0x20
/* 386250 E0082C10 AE020000 */ sw $v0, ($s0)
/* 386254 E0082C14 3C020900 */ lui $v0, 0x900
/* 386258 E0082C18 24422290 */ addiu $v0, $v0, 0x2290
/* 38625C E0082C1C ACB10010 */ sw $s1, 0x10($a1)
/* 386260 E0082C20 ACA20014 */ sw $v0, 0x14($a1)
/* 386264 E0082C24 ACB10018 */ sw $s1, 0x18($a1)
/* 386268 E0082C28 ACA4000C */ sw $a0, 0xc($a1)
/* 38626C E0082C2C 8C630000 */ lw $v1, ($v1)
/* 386270 E0082C30 24A20028 */ addiu $v0, $a1, 0x28
/* 386274 E0082C34 AE020000 */ sw $v0, ($s0)
/* 386278 E0082C38 3C020900 */ lui $v0, 0x900
/* 38627C E0082C3C 24422270 */ addiu $v0, $v0, 0x2270
/* 386280 E0082C40 ACB10020 */ sw $s1, 0x20($a1)
/* 386284 E0082C44 ACA20024 */ sw $v0, 0x24($a1)
/* 386288 E0082C48 ACA3001C */ sw $v1, 0x1c($a1)
.LE0082C4C:
/* 38628C E0082C4C 3C02D838 */ lui $v0, 0xd838
.LE0082C50:
/* 386290 E0082C50 34420002 */ ori $v0, $v0, 2
/* 386294 E0082C54 26940001 */ addiu $s4, $s4, 1
/* 386298 E0082C58 8E040000 */ lw $a0, ($s0)
/* 38629C E0082C5C 26730048 */ addiu $s3, $s3, 0x48
/* 3862A0 E0082C60 0080182D */ daddu $v1, $a0, $zero
/* 3862A4 E0082C64 AC620000 */ sw $v0, ($v1)
/* 3862A8 E0082C68 24020040 */ addiu $v0, $zero, 0x40
/* 3862AC E0082C6C AC620004 */ sw $v0, 4($v1)
/* 3862B0 E0082C70 8EC20008 */ lw $v0, 8($s6)
/* 3862B4 E0082C74 24840008 */ addiu $a0, $a0, 8
/* 3862B8 E0082C78 0282102A */ slt $v0, $s4, $v0
/* 3862BC E0082C7C 1440FFB3 */ bnez $v0, .LE0082B4C
/* 3862C0 E0082C80 AE040000 */ sw $a0, ($s0)
.LE0082C84:
/* 3862C4 E0082C84 3C03D838 */ lui $v1, 0xd838
/* 3862C8 E0082C88 3C04800A */ lui $a0, 0x800a
/* 3862CC E0082C8C 2484A66C */ addiu $a0, $a0, -0x5994
/* 3862D0 E0082C90 8C820000 */ lw $v0, ($a0)
/* 3862D4 E0082C94 34630002 */ ori $v1, $v1, 2
/* 3862D8 E0082C98 0040282D */ daddu $a1, $v0, $zero
/* 3862DC E0082C9C 24420008 */ addiu $v0, $v0, 8
/* 3862E0 E0082CA0 AC820000 */ sw $v0, ($a0)
/* 3862E4 E0082CA4 ACA30000 */ sw $v1, ($a1)
/* 3862E8 E0082CA8 24030040 */ addiu $v1, $zero, 0x40
/* 3862EC E0082CAC ACA30004 */ sw $v1, 4($a1)
/* 3862F0 E0082CB0 24430008 */ addiu $v1, $v0, 8
/* 3862F4 E0082CB4 AC830000 */ sw $v1, ($a0)
/* 3862F8 E0082CB8 3C03E700 */ lui $v1, 0xe700
/* 3862FC E0082CBC AC430000 */ sw $v1, ($v0)
/* 386300 E0082CC0 AC400004 */ sw $zero, 4($v0)
/* 386304 E0082CC4 8FBF0034 */ lw $ra, 0x34($sp)
/* 386308 E0082CC8 8FBE0030 */ lw $fp, 0x30($sp)
/* 38630C E0082CCC 8FB7002C */ lw $s7, 0x2c($sp)
/* 386310 E0082CD0 8FB60028 */ lw $s6, 0x28($sp)
/* 386314 E0082CD4 8FB50024 */ lw $s5, 0x24($sp)
/* 386318 E0082CD8 8FB40020 */ lw $s4, 0x20($sp)
/* 38631C E0082CDC 8FB3001C */ lw $s3, 0x1c($sp)
/* 386320 E0082CE0 8FB20018 */ lw $s2, 0x18($sp)
/* 386324 E0082CE4 8FB10014 */ lw $s1, 0x14($sp)
/* 386328 E0082CE8 8FB00010 */ lw $s0, 0x10($sp)
/* 38632C E0082CEC 03E00008 */ jr $ra
/* 386330 E0082CF0 27BD0038 */ addiu $sp, $sp, 0x38
/* 386334 E0082CF4 00000000 */ nop
/* 386338 E0082CF8 00000000 */ nop
/* 38633C E0082CFC 00000000 */ nop