papermario/asm/nonmatchings/code_363160/func_E0060450.s
2021-01-13 00:42:27 +09:00

192 lines
10 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E0060450
/* 3635B0 E0060450 27BDFEF0 */ addiu $sp, $sp, -0x110
/* 3635B4 E0060454 3C02DB06 */ lui $v0, 0xdb06
/* 3635B8 E0060458 34420024 */ ori $v0, $v0, 0x24
/* 3635BC E006045C AFB400E8 */ sw $s4, 0xe8($sp)
/* 3635C0 E0060460 3C14800A */ lui $s4, %hi(gMasterGfxPos)
/* 3635C4 E0060464 2694A66C */ addiu $s4, $s4, %lo(gMasterGfxPos)
/* 3635C8 E0060468 AFBF00FC */ sw $ra, 0xfc($sp)
/* 3635CC E006046C AFBE00F8 */ sw $fp, 0xf8($sp)
/* 3635D0 E0060470 AFB700F4 */ sw $s7, 0xf4($sp)
/* 3635D4 E0060474 AFB600F0 */ sw $s6, 0xf0($sp)
/* 3635D8 E0060478 AFB500EC */ sw $s5, 0xec($sp)
/* 3635DC E006047C AFB300E4 */ sw $s3, 0xe4($sp)
/* 3635E0 E0060480 AFB200E0 */ sw $s2, 0xe0($sp)
/* 3635E4 E0060484 AFB100DC */ sw $s1, 0xdc($sp)
/* 3635E8 E0060488 AFB000D8 */ sw $s0, 0xd8($sp)
/* 3635EC E006048C F7B60108 */ sdc1 $f22, 0x108($sp)
/* 3635F0 E0060490 F7B40100 */ sdc1 $f20, 0x100($sp)
/* 3635F4 E0060494 AFA40110 */ sw $a0, 0x110($sp)
/* 3635F8 E0060498 8E850000 */ lw $a1, ($s4)
/* 3635FC E006049C 8C90000C */ lw $s0, 0xc($a0)
/* 363600 E00604A0 3C06E006 */ lui $a2, %hi(D_E0060738)
/* 363604 E00604A4 8CC60738 */ lw $a2, %lo(D_E0060738)($a2)
/* 363608 E00604A8 00A0202D */ daddu $a0, $a1, $zero
/* 36360C E00604AC 24A50008 */ addiu $a1, $a1, 8
/* 363610 E00604B0 AE850000 */ sw $a1, ($s4)
/* 363614 E00604B4 AC820000 */ sw $v0, ($a0)
/* 363618 E00604B8 24A20008 */ addiu $v0, $a1, 8
/* 36361C E00604BC AE820000 */ sw $v0, ($s4)
/* 363620 E00604C0 8FA80110 */ lw $t0, 0x110($sp)
/* 363624 E00604C4 3C071464 */ lui $a3, 0x1464
/* 363628 E00604C8 8D030010 */ lw $v1, 0x10($t0)
/* 36362C E00604CC 24A20010 */ addiu $v0, $a1, 0x10
/* 363630 E00604D0 AE820000 */ sw $v0, ($s4)
/* 363634 E00604D4 8C62001C */ lw $v0, 0x1c($v1)
/* 363638 E00604D8 3C038000 */ lui $v1, 0x8000
/* 36363C E00604DC 00431021 */ addu $v0, $v0, $v1
/* 363640 E00604E0 AC820004 */ sw $v0, 4($a0)
/* 363644 E00604E4 3C02DE00 */ lui $v0, 0xde00
/* 363648 E00604E8 ACA20000 */ sw $v0, ($a1)
/* 36364C E00604EC 3C02FA00 */ lui $v0, 0xfa00
/* 363650 E00604F0 ACA60004 */ sw $a2, 4($a1)
/* 363654 E00604F4 ACA20008 */ sw $v0, 8($a1)
/* 363658 E00604F8 92020027 */ lbu $v0, 0x27($s0)
/* 36365C E00604FC 34E71400 */ ori $a3, $a3, 0x1400
/* 363660 E0060500 00471025 */ or $v0, $v0, $a3
/* 363664 E0060504 ACA2000C */ sw $v0, 0xc($a1)
/* 363668 E0060508 8E050004 */ lw $a1, 4($s0)
/* 36366C E006050C 8E060008 */ lw $a2, 8($s0)
/* 363670 E0060510 8E07000C */ lw $a3, 0xc($s0)
/* 363674 E0060514 0C080108 */ jal func_E0200420
/* 363678 E0060518 27A40018 */ addiu $a0, $sp, 0x18
/* 36367C E006051C 27B10058 */ addiu $s1, $sp, 0x58
/* 363680 E0060520 4480A000 */ mtc1 $zero, $f20
/* 363684 E0060524 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 363688 E0060528 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 36368C E006052C 3C013F80 */ lui $at, 0x3f80
/* 363690 E0060530 4481B000 */ mtc1 $at, $f22
/* 363694 E0060534 00031080 */ sll $v0, $v1, 2
/* 363698 E0060538 00431021 */ addu $v0, $v0, $v1
/* 36369C E006053C 00021080 */ sll $v0, $v0, 2
/* 3636A0 E0060540 00431023 */ subu $v0, $v0, $v1
/* 3636A4 E0060544 000218C0 */ sll $v1, $v0, 3
/* 3636A8 E0060548 00431021 */ addu $v0, $v0, $v1
/* 3636AC E006054C 000210C0 */ sll $v0, $v0, 3
/* 3636B0 E0060550 4406A000 */ mfc1 $a2, $f20
/* 3636B4 E0060554 3C01800B */ lui $at, %hi(D_800B1DEC)
/* 3636B8 E0060558 00220821 */ addu $at, $at, $v0
/* 3636BC E006055C C4201DEC */ lwc1 $f0, %lo(D_800B1DEC)($at)
/* 3636C0 E0060560 4407B000 */ mfc1 $a3, $f22
/* 3636C4 E0060564 46000007 */ neg.s $f0, $f0
/* 3636C8 E0060568 44050000 */ mfc1 $a1, $f0
/* 3636CC E006056C 0220202D */ daddu $a0, $s1, $zero
/* 3636D0 E0060570 0C080104 */ jal func_E0200410
/* 3636D4 E0060574 E7B40010 */ swc1 $f20, 0x10($sp)
/* 3636D8 E0060578 0220202D */ daddu $a0, $s1, $zero
/* 3636DC E006057C 27A50018 */ addiu $a1, $sp, 0x18
/* 3636E0 E0060580 0C080114 */ jal func_E0200450
/* 3636E4 E0060584 27A60098 */ addiu $a2, $sp, 0x98
/* 3636E8 E0060588 8FA80110 */ lw $t0, 0x110($sp)
/* 3636EC E006058C 24130001 */ addiu $s3, $zero, 1
/* 3636F0 E0060590 8D020008 */ lw $v0, 8($t0)
/* 3636F4 E0060594 0262102A */ slt $v0, $s3, $v0
/* 3636F8 E0060598 10400056 */ beqz $v0, .LE00606F4
/* 3636FC E006059C 26100030 */ addiu $s0, $s0, 0x30
/* 363700 E00605A0 0220902D */ daddu $s2, $s1, $zero
/* 363704 E00605A4 3C1E800A */ lui $fp, %hi(gDisplayContext)
/* 363708 E00605A8 27DEA674 */ addiu $fp, $fp, %lo(gDisplayContext)
/* 36370C E00605AC 3C178007 */ lui $s7, %hi(gMatrixListPos)
/* 363710 E00605B0 26F741F0 */ addiu $s7, $s7, %lo(gMatrixListPos)
/* 363714 E00605B4 3C160001 */ lui $s6, 1
/* 363718 E00605B8 36D61630 */ ori $s6, $s6, 0x1630
/* 36371C E00605BC 26110020 */ addiu $s1, $s0, 0x20
.LE00605C0:
/* 363720 E00605C0 32700001 */ andi $s0, $s3, 1
/* 363724 E00605C4 00101080 */ sll $v0, $s0, 2
/* 363728 E00605C8 3C08E006 */ lui $t0, %hi(D_E0060730)
/* 36372C E00605CC 25080730 */ addiu $t0, $t0, %lo(D_E0060730)
/* 363730 E00605D0 00481021 */ addu $v0, $v0, $t0
/* 363734 E00605D4 8E25FFE4 */ lw $a1, -0x1c($s1)
/* 363738 E00605D8 8E26FFE8 */ lw $a2, -0x18($s1)
/* 36373C E00605DC 8E27FFEC */ lw $a3, -0x14($s1)
/* 363740 E00605E0 8C550000 */ lw $s5, ($v0)
/* 363744 E00605E4 0C080108 */ jal func_E0200420
/* 363748 E00605E8 0240202D */ daddu $a0, $s2, $zero
/* 36374C E00605EC 0240202D */ daddu $a0, $s2, $zero
/* 363750 E00605F0 27A50098 */ addiu $a1, $sp, 0x98
/* 363754 E00605F4 0C080114 */ jal func_E0200450
/* 363758 E00605F8 27A60018 */ addiu $a2, $sp, 0x18
/* 36375C E00605FC 56000016 */ bnel $s0, $zero, .LE0060658
/* 363760 E0060600 27A40018 */ addiu $a0, $sp, 0x18
/* 363764 E0060604 E7B60010 */ swc1 $f22, 0x10($sp)
/* 363768 E0060608 8E25FFF8 */ lw $a1, -8($s1)
/* 36376C E006060C 4406A000 */ mfc1 $a2, $f20
/* 363770 E0060610 4407A000 */ mfc1 $a3, $f20
/* 363774 E0060614 0C080104 */ jal func_E0200410
/* 363778 E0060618 0240202D */ daddu $a0, $s2, $zero
/* 36377C E006061C 0240202D */ daddu $a0, $s2, $zero
/* 363780 E0060620 27A50018 */ addiu $a1, $sp, 0x18
/* 363784 E0060624 0C080114 */ jal func_E0200450
/* 363788 E0060628 00A0302D */ daddu $a2, $a1, $zero
/* 36378C E006062C E7B40010 */ swc1 $f20, 0x10($sp)
/* 363790 E0060630 8E250000 */ lw $a1, ($s1)
/* 363794 E0060634 4406A000 */ mfc1 $a2, $f20
/* 363798 E0060638 4407B000 */ mfc1 $a3, $f22
/* 36379C E006063C 0C080104 */ jal func_E0200410
/* 3637A0 E0060640 0240202D */ daddu $a0, $s2, $zero
/* 3637A4 E0060644 0240202D */ daddu $a0, $s2, $zero
/* 3637A8 E0060648 27A50018 */ addiu $a1, $sp, 0x18
/* 3637AC E006064C 0C080114 */ jal func_E0200450
/* 3637B0 E0060650 00A0302D */ daddu $a2, $a1, $zero
/* 3637B4 E0060654 27A40018 */ addiu $a0, $sp, 0x18
.LE0060658:
/* 3637B8 E0060658 26730001 */ addiu $s3, $s3, 1
/* 3637BC E006065C 96E50000 */ lhu $a1, ($s7)
/* 3637C0 E0060660 8FC20000 */ lw $v0, ($fp)
/* 3637C4 E0060664 00052980 */ sll $a1, $a1, 6
/* 3637C8 E0060668 00B62821 */ addu $a1, $a1, $s6
/* 3637CC E006066C 0C080118 */ jal func_E0200460
/* 3637D0 E0060670 00452821 */ addu $a1, $v0, $a1
/* 3637D4 E0060674 3C06D838 */ lui $a2, 0xd838
/* 3637D8 E0060678 8E840000 */ lw $a0, ($s4)
/* 3637DC E006067C 34C60002 */ ori $a2, $a2, 2
/* 3637E0 E0060680 0080282D */ daddu $a1, $a0, $zero
/* 3637E4 E0060684 24840008 */ addiu $a0, $a0, 8
/* 3637E8 E0060688 AE840000 */ sw $a0, ($s4)
/* 3637EC E006068C 96E20000 */ lhu $v0, ($s7)
/* 3637F0 E0060690 3C03DA38 */ lui $v1, 0xda38
/* 3637F4 E0060694 ACA30000 */ sw $v1, ($a1)
/* 3637F8 E0060698 24430001 */ addiu $v1, $v0, 1
/* 3637FC E006069C 3042FFFF */ andi $v0, $v0, 0xffff
/* 363800 E00606A0 00021180 */ sll $v0, $v0, 6
/* 363804 E00606A4 A6E30000 */ sh $v1, ($s7)
/* 363808 E00606A8 8FC30000 */ lw $v1, ($fp)
/* 36380C E00606AC 00561021 */ addu $v0, $v0, $s6
/* 363810 E00606B0 00621821 */ addu $v1, $v1, $v0
/* 363814 E00606B4 24820008 */ addiu $v0, $a0, 8
/* 363818 E00606B8 ACA30004 */ sw $v1, 4($a1)
/* 36381C E00606BC AE820000 */ sw $v0, ($s4)
/* 363820 E00606C0 3C02DE00 */ lui $v0, 0xde00
/* 363824 E00606C4 AC820000 */ sw $v0, ($a0)
/* 363828 E00606C8 24020040 */ addiu $v0, $zero, 0x40
/* 36382C E00606CC AC950004 */ sw $s5, 4($a0)
/* 363830 E00606D0 AC860008 */ sw $a2, 8($a0)
/* 363834 E00606D4 AC82000C */ sw $v0, 0xc($a0)
/* 363838 E00606D8 8FA80110 */ lw $t0, 0x110($sp)
/* 36383C E00606DC 26310030 */ addiu $s1, $s1, 0x30
/* 363840 E00606E0 8D020008 */ lw $v0, 8($t0)
/* 363844 E00606E4 24840010 */ addiu $a0, $a0, 0x10
/* 363848 E00606E8 0262102A */ slt $v0, $s3, $v0
/* 36384C E00606EC 1440FFB4 */ bnez $v0, .LE00605C0
/* 363850 E00606F0 AE840000 */ sw $a0, ($s4)
.LE00606F4:
/* 363854 E00606F4 8FBF00FC */ lw $ra, 0xfc($sp)
/* 363858 E00606F8 8FBE00F8 */ lw $fp, 0xf8($sp)
/* 36385C E00606FC 8FB700F4 */ lw $s7, 0xf4($sp)
/* 363860 E0060700 8FB600F0 */ lw $s6, 0xf0($sp)
/* 363864 E0060704 8FB500EC */ lw $s5, 0xec($sp)
/* 363868 E0060708 8FB400E8 */ lw $s4, 0xe8($sp)
/* 36386C E006070C 8FB300E4 */ lw $s3, 0xe4($sp)
/* 363870 E0060710 8FB200E0 */ lw $s2, 0xe0($sp)
/* 363874 E0060714 8FB100DC */ lw $s1, 0xdc($sp)
/* 363878 E0060718 8FB000D8 */ lw $s0, 0xd8($sp)
/* 36387C E006071C D7B60108 */ ldc1 $f22, 0x108($sp)
/* 363880 E0060720 D7B40100 */ ldc1 $f20, 0x100($sp)
/* 363884 E0060724 03E00008 */ jr $ra
/* 363888 E0060728 27BD0110 */ addiu $sp, $sp, 0x110
/* 36388C E006072C 00000000 */ nop