Files
mk64/asm/non_matchings/code_actors/func_80298D7C.s
T
CoderStig f959f03184 Matched some memory.c and other (#55)
* Matched some memory.c

* And more
2021-11-16 02:39:33 -07:00

262 lines
13 KiB
ArmAsm

glabel func_80298D7C
/* 10238C 80298D7C 27BDFF10 */ addiu $sp, $sp, -0xf0
/* 102390 80298D80 3C020601 */ lui $v0, %hi(D_06013F78) # $v0, 0x601
/* 102394 80298D84 24423F78 */ addiu $v0, %lo(D_06013F78) # addiu $v0, $v0, 0x3f78
/* 102398 80298D88 00027602 */ srl $t6, $v0, 0x18
/* 10239C 80298D8C 000E7880 */ sll $t7, $t6, 2
/* 1023A0 80298D90 3C188015 */ lui $t8, %hi(gSegmentTable)
/* 1023A4 80298D94 030FC021 */ addu $t8, $t8, $t7
/* 1023A8 80298D98 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 1023AC 80298D9C 8F180258 */ lw $t8, %lo(gSegmentTable)($t8)
/* 1023B0 80298DA0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 1023B4 80298DA4 0041C824 */ and $t9, $v0, $at
/* 1023B8 80298DA8 AFB10034 */ sw $s1, 0x34($sp)
/* 1023BC 80298DAC 3C018000 */ lui $at, 0x8000
/* 1023C0 80298DB0 3C09802C */ lui $t1, %hi(D_802B87E0) # $t1, 0x802c
/* 1023C4 80298DB4 03198821 */ addu $s1, $t8, $t9
/* 1023C8 80298DB8 AFBF0054 */ sw $ra, 0x54($sp)
/* 1023CC 80298DBC AFBE0050 */ sw $fp, 0x50($sp)
/* 1023D0 80298DC0 AFB7004C */ sw $s7, 0x4c($sp)
/* 1023D4 80298DC4 AFB60048 */ sw $s6, 0x48($sp)
/* 1023D8 80298DC8 AFB50044 */ sw $s5, 0x44($sp)
/* 1023DC 80298DCC AFB40040 */ sw $s4, 0x40($sp)
/* 1023E0 80298DD0 AFB3003C */ sw $s3, 0x3c($sp)
/* 1023E4 80298DD4 AFB20038 */ sw $s2, 0x38($sp)
/* 1023E8 80298DD8 AFB00030 */ sw $s0, 0x30($sp)
/* 1023EC 80298DDC F7B60028 */ sdc1 $f22, 0x28($sp)
/* 1023F0 80298DE0 F7B40020 */ sdc1 $f20, 0x20($sp)
/* 1023F4 80298DE4 AFA600F8 */ sw $a2, 0xf8($sp)
/* 1023F8 80298DE8 02218821 */ addu $s1, $s1, $at
/* 1023FC 80298DEC 252987E0 */ addiu $t1, %lo(D_802B87E0) # addiu $t1, $t1, -0x7820
/* 102400 80298DF0 8D210000 */ lw $at, ($t1)
/* 102404 80298DF4 27A80088 */ addiu $t0, $sp, 0x88
/* 102408 80298DF8 3C0D800E */ lui $t5, %hi(D_800DC50C) # $t5, 0x800e
/* 10240C 80298DFC AD010000 */ sw $at, ($t0)
/* 102410 80298E00 95210004 */ lhu $at, 4($t1)
/* 102414 80298E04 3C128015 */ lui $s2, %hi(gDisplayListHead) # $s2, 0x8015
/* 102418 80298E08 0080A025 */ move $s4, $a0
/* 10241C 80298E0C A5010004 */ sh $at, 4($t0)
/* 102420 80298E10 8DADC50C */ lw $t5, %lo(D_800DC50C)($t5)
/* 102424 80298E14 24010009 */ li $at, 9
/* 102428 80298E18 00A0A825 */ move $s5, $a1
/* 10242C 80298E1C 15A10004 */ bne $t5, $at, .L80298E30
/* 102430 80298E20 26520298 */ addiu $s2, %lo(gDisplayListHead) # addiu $s2, $s2, 0x298
/* 102434 80298E24 3C01802C */ lui $at, %hi(D_802B9650) # $at, 0x802c
/* 102438 80298E28 10000003 */ b .L80298E38
/* 10243C 80298E2C C4369650 */ lwc1 $f22, %lo(D_802B9650)($at)
.L80298E30:
/* 102440 80298E30 3C01802C */ lui $at, %hi(D_802B9654) # $at, 0x802c
/* 102444 80298E34 C4369654 */ lwc1 $f22, %lo(D_802B9654)($at)
.L80298E38:
/* 102448 80298E38 8E420000 */ lw $v0, ($s2)
/* 10244C 80298E3C 3C0FBB00 */ lui $t7, (0xBB000001 >> 16) # lui $t7, 0xbb00
/* 102450 80298E40 35EF0001 */ ori $t7, (0xBB000001 & 0xFFFF) # ori $t7, $t7, 1
/* 102454 80298E44 244E0008 */ addiu $t6, $v0, 8
/* 102458 80298E48 AE4E0000 */ sw $t6, ($s2)
/* 10245C 80298E4C 2418FFFF */ li $t8, -1
/* 102460 80298E50 AC580004 */ sw $t8, 4($v0)
/* 102464 80298E54 AC4F0000 */ sw $t7, ($v0)
/* 102468 80298E58 8E420000 */ lw $v0, ($s2)
/* 10246C 80298E5C 3C0BFC12 */ lui $t3, (0xFC127E24 >> 16) # lui $t3, 0xfc12
/* 102470 80298E60 356B7E24 */ ori $t3, (0xFC127E24 & 0xFFFF) # ori $t3, $t3, 0x7e24
/* 102474 80298E64 24590008 */ addiu $t9, $v0, 8
/* 102478 80298E68 AE590000 */ sw $t9, ($s2)
/* 10247C 80298E6C 240AF3F9 */ li $t2, -3079
/* 102480 80298E70 AC4A0004 */ sw $t2, 4($v0)
/* 102484 80298E74 AC4B0000 */ sw $t3, ($v0)
/* 102488 80298E78 8E420000 */ lw $v0, ($s2)
/* 10248C 80298E7C 3C09B900 */ lui $t1, (0xB900031D >> 16) # lui $t1, 0xb900
/* 102490 80298E80 3C0C0055 */ lui $t4, (0x00553078 >> 16) # lui $t4, 0x55
/* 102494 80298E84 24480008 */ addiu $t0, $v0, 8
/* 102498 80298E88 AE480000 */ sw $t0, ($s2)
/* 10249C 80298E8C 358C3078 */ ori $t4, (0x00553078 & 0xFFFF) # ori $t4, $t4, 0x3078
/* 1024A0 80298E90 3529031D */ ori $t1, (0xB900031D & 0xFFFF) # ori $t1, $t1, 0x31d
/* 1024A4 80298E94 AC490000 */ sw $t1, ($v0)
/* 1024A8 80298E98 AC4C0004 */ sw $t4, 4($v0)
/* 1024AC 80298E9C 862D0000 */ lh $t5, ($s1)
/* 1024B0 80298EA0 24018000 */ li $at, -32768
/* 1024B4 80298EA4 241E0006 */ li $fp, 6
/* 1024B8 80298EA8 11A10098 */ beq $t5, $at, .L8029910C
/* 1024BC 80298EAC 27B700D4 */ addiu $s7, $sp, 0xd4
/* 1024C0 80298EB0 3C16800E */ lui $s6, %hi(camera1) # $s6, 0x800e
/* 1024C4 80298EB4 4480A000 */ mtc1 $zero, $f20
/* 1024C8 80298EB8 26D6DB40 */ addiu $s6, %lo(camera1) # addiu $s6, $s6, -0x24c0
/* 1024CC 80298EBC 3C130600 */ lui $s3, 0x600
/* 1024D0 80298EC0 86300006 */ lh $s0, 6($s1)
.L80298EC4:
/* 1024D4 80298EC4 320E0800 */ andi $t6, $s0, 0x800
/* 1024D8 80298EC8 11C00003 */ beqz $t6, .L80298ED8
/* 1024DC 80298ECC 320F0400 */ andi $t7, $s0, 0x400
/* 1024E0 80298ED0 1000008A */ b .L802990FC
/* 1024E4 80298ED4 2631000A */ addiu $s1, $s1, 0xa
.L80298ED8:
/* 1024E8 80298ED8 11E00011 */ beqz $t7, .L80298F20
/* 1024EC 80298EDC 3C18800E */ lui $t8, %hi(D_800DC5FC) # $t8, 0x800e
/* 1024F0 80298EE0 9718C5FC */ lhu $t8, %lo(D_800DC5FC)($t8)
/* 1024F4 80298EE4 53000005 */ beql $t8, $zero, .L80298EFC
/* 1024F8 80298EE8 862B0002 */ lh $t3, 2($s1)
/* 1024FC 80298EEC 8ED90000 */ lw $t9, ($s6)
/* 102500 80298EF0 5699000C */ bnel $s4, $t9, .L80298F24
/* 102504 80298EF4 8ED80000 */ lw $t8, ($s6)
/* 102508 80298EF8 862B0002 */ lh $t3, 2($s1)
.L80298EFC:
/* 10250C 80298EFC 256A000A */ addiu $t2, $t3, 0xa
/* 102510 80298F00 A62A0002 */ sh $t2, 2($s1)
/* 102514 80298F04 86280002 */ lh $t0, 2($s1)
/* 102518 80298F08 29010321 */ slti $at, $t0, 0x321
/* 10251C 80298F0C 54200005 */ bnel $at, $zero, .L80298F24
/* 102520 80298F10 8ED80000 */ lw $t8, ($s6)
/* 102524 80298F14 86290006 */ lh $t1, 6($s1)
/* 102528 80298F18 352C0800 */ ori $t4, $t1, 0x800
/* 10252C 80298F1C A62C0006 */ sh $t4, 6($s1)
.L80298F20:
/* 102530 80298F20 8ED80000 */ lw $t8, ($s6)
.L80298F24:
/* 102534 80298F24 3C018016 */ lui $at, %hi(gCourseDirection) # $at, 0x8016
/* 102538 80298F28 C428F784 */ lwc1 $f8, %lo(gCourseDirection)($at)
/* 10253C 80298F2C 240100B8 */ li $at, 184
/* 102540 80298F30 0298C823 */ subu $t9, $s4, $t8
/* 102544 80298F34 0321001A */ div $zero, $t9, $at
/* 102548 80298F38 862D0000 */ lh $t5, ($s1)
/* 10254C 80298F3C 00005812 */ mflo $t3
/* 102550 80298F40 000B5080 */ sll $t2, $t3, 2
/* 102554 80298F44 448D2000 */ mtc1 $t5, $f4
/* 102558 80298F48 3C018015 */ lui $at, %hi(D_80150130)
/* 10255C 80298F4C 002A0821 */ addu $at, $at, $t2
/* 102560 80298F50 468021A0 */ cvt.s.w $f6, $f4
/* 102564 80298F54 4407A000 */ mfc1 $a3, $f20
/* 102568 80298F58 02802025 */ move $a0, $s4
/* 10256C 80298F5C 02E02825 */ move $a1, $s7
/* 102570 80298F60 46083282 */ mul.s $f10, $f6, $f8
/* 102574 80298F64 C4280130 */ lwc1 $f8, %lo(D_80150130)($at)
/* 102578 80298F68 E7AA00D4 */ swc1 $f10, 0xd4($sp)
/* 10257C 80298F6C 862E0002 */ lh $t6, 2($s1)
/* 102580 80298F70 448E8000 */ mtc1 $t6, $f16
/* 102584 80298F74 00000000 */ nop
/* 102588 80298F78 468084A0 */ cvt.s.w $f18, $f16
/* 10258C 80298F7C E7B200D8 */ swc1 $f18, 0xd8($sp)
/* 102590 80298F80 862F0004 */ lh $t7, 4($s1)
/* 102594 80298F84 448F2000 */ mtc1 $t7, $f4
/* 102598 80298F88 00000000 */ nop
/* 10259C 80298F8C 468021A0 */ cvt.s.w $f6, $f4
/* 1025A0 80298F90 E7A600DC */ swc1 $f6, 0xdc($sp)
/* 1025A4 80298F94 96860026 */ lhu $a2, 0x26($s4)
/* 1025A8 80298F98 E7B60014 */ swc1 $f22, 0x14($sp)
/* 1025AC 80298F9C 0C0AE034 */ jal func_802B80D0
/* 1025B0 80298FA0 E7A80010 */ swc1 $f8, 0x10($sp)
/* 1025B4 80298FA4 4614003C */ c.lt.s $f0, $f20
/* 1025B8 80298FA8 3208000F */ andi $t0, $s0, 0xf
/* 1025BC 80298FAC 00084C00 */ sll $t1, $t0, 0x10
/* 1025C0 80298FB0 00098403 */ sra $s0, $t1, 0x10
/* 1025C4 80298FB4 45000003 */ bc1f .L80298FC4
/* 1025C8 80298FB8 00000000 */ nop
/* 1025CC 80298FBC 1000004F */ b .L802990FC
/* 1025D0 80298FC0 2631000A */ addiu $s1, $s1, 0xa
.L80298FC4:
/* 1025D4 80298FC4 161E000F */ bne $s0, $fp, .L80299004
/* 1025D8 80298FC8 C7AA00D4 */ lwc1 $f10, 0xd4($sp)
/* 1025DC 80298FCC 27A40090 */ addiu $a0, $sp, 0x90
/* 1025E0 80298FD0 02E02825 */ move $a1, $s7
/* 1025E4 80298FD4 0C0AD7DD */ jal func_802B5F74
/* 1025E8 80298FD8 27A60088 */ addiu $a2, $sp, 0x88
/* 1025EC 80298FDC 3C0D8015 */ lui $t5, %hi(D_80150112) # $t5, 0x8015
/* 1025F0 80298FE0 95AD0112 */ lhu $t5, %lo(D_80150112)($t5)
/* 1025F4 80298FE4 27A40090 */ addiu $a0, $sp, 0x90
/* 1025F8 80298FE8 29A10080 */ slti $at, $t5, 0x80
/* 1025FC 80298FEC 50200048 */ beql $at, $zero, .L80299110
/* 102600 80298FF0 8FBF0054 */ lw $ra, 0x54($sp)
/* 102604 80298FF4 0C0AD3FE */ jal func_802B4FF8
/* 102608 80298FF8 00002825 */ move $a1, $zero
/* 10260C 80298FFC 1000000F */ b .L8029903C
/* 102610 80299000 8E420000 */ lw $v0, ($s2)
.L80299004:
/* 102614 80299004 E6AA0030 */ swc1 $f10, 0x30($s5)
/* 102618 80299008 C7B000D8 */ lwc1 $f16, 0xd8($sp)
/* 10261C 8029900C 3C0E8015 */ lui $t6, %hi(D_80150112) # $t6, 0x8015
/* 102620 80299010 02A02025 */ move $a0, $s5
/* 102624 80299014 E6B00034 */ swc1 $f16, 0x34($s5)
/* 102628 80299018 C7B200DC */ lwc1 $f18, 0xdc($sp)
/* 10262C 8029901C E6B20038 */ swc1 $f18, 0x38($s5)
/* 102630 80299020 95CE0112 */ lhu $t6, %lo(D_80150112)($t6)
/* 102634 80299024 29C10080 */ slti $at, $t6, 0x80
/* 102638 80299028 50200039 */ beql $at, $zero, .L80299110
/* 10263C 8029902C 8FBF0054 */ lw $ra, 0x54($sp)
/* 102640 80299030 0C0AD3FE */ jal func_802B4FF8
/* 102644 80299034 00002825 */ move $a1, $zero
/* 102648 80299038 8E420000 */ lw $v0, ($s2)
.L8029903C:
/* 10264C 8029903C 3C18B600 */ lui $t8, 0xb600
/* 102650 80299040 3C190002 */ lui $t9, 2
/* 102654 80299044 244F0008 */ addiu $t7, $v0, 8
/* 102658 80299048 AE4F0000 */ sw $t7, ($s2)
/* 10265C 8029904C AC590004 */ sw $t9, 4($v0)
/* 102660 80299050 1200000A */ beqz $s0, .L8029907C
/* 102664 80299054 AC580000 */ sw $t8, ($v0)
/* 102668 80299058 24010004 */ li $at, 4
/* 10266C 8029905C 1201000F */ beq $s0, $at, .L8029909C
/* 102670 80299060 24010005 */ li $at, 5
/* 102674 80299064 52010016 */ beql $s0, $at, .L802990C0
/* 102678 80299068 8E420000 */ lw $v0, ($s2)
/* 10267C 8029906C 521E001C */ beql $s0, $fp, .L802990E0
/* 102680 80299070 8E420000 */ lw $v0, ($s2)
/* 102684 80299074 10000021 */ b .L802990FC
/* 102688 80299078 2631000A */ addiu $s1, $s1, 0xa
.L8029907C:
/* 10268C 8029907C 8E420000 */ lw $v0, ($s2)
/* 102690 80299080 3C0A0601 */ lui $t2, %hi(D_06010CC0) # $t2, 0x601
/* 102694 80299084 254A0CC0 */ addiu $t2, %lo(D_06010CC0) # addiu $t2, $t2, 0xcc0
/* 102698 80299088 244B0008 */ addiu $t3, $v0, 8
/* 10269C 8029908C AE4B0000 */ sw $t3, ($s2)
/* 1026A0 80299090 AC4A0004 */ sw $t2, 4($v0)
/* 1026A4 80299094 10000018 */ b .L802990F8
/* 1026A8 80299098 AC530000 */ sw $s3, ($v0)
.L8029909C:
/* 1026AC 8029909C 8E420000 */ lw $v0, ($s2)
/* 1026B0 802990A0 3C090601 */ lui $t1, %hi(D_06011DC8) # $t1, 0x601
/* 1026B4 802990A4 25291DC8 */ addiu $t1, %lo(D_06011DC8) # addiu $t1, $t1, 0x1dc8
/* 1026B8 802990A8 24480008 */ addiu $t0, $v0, 8
/* 1026BC 802990AC AE480000 */ sw $t0, ($s2)
/* 1026C0 802990B0 AC490004 */ sw $t1, 4($v0)
/* 1026C4 802990B4 10000010 */ b .L802990F8
/* 1026C8 802990B8 AC530000 */ sw $s3, ($v0)
/* 1026CC 802990BC 8E420000 */ lw $v0, ($s2)
.L802990C0:
/* 1026D0 802990C0 3C0D0601 */ lui $t5, %hi(D_06012EF0) # $t5, 0x601
/* 1026D4 802990C4 25AD2EF0 */ addiu $t5, %lo(D_06012EF0) # addiu $t5, $t5, 0x2ef0
/* 1026D8 802990C8 244C0008 */ addiu $t4, $v0, 8
/* 1026DC 802990CC AE4C0000 */ sw $t4, ($s2)
/* 1026E0 802990D0 AC4D0004 */ sw $t5, 4($v0)
/* 1026E4 802990D4 10000008 */ b .L802990F8
/* 1026E8 802990D8 AC530000 */ sw $s3, ($v0)
/* 1026EC 802990DC 8E420000 */ lw $v0, ($s2)
.L802990E0:
/* 1026F0 802990E0 3C0F0601 */ lui $t7, %hi(D_060138D0) # $t7, 0x601
/* 1026F4 802990E4 25EF38D0 */ addiu $t7, %lo(D_060138D0) # addiu $t7, $t7, 0x38d0
/* 1026F8 802990E8 244E0008 */ addiu $t6, $v0, 8
/* 1026FC 802990EC AE4E0000 */ sw $t6, ($s2)
/* 102700 802990F0 AC4F0004 */ sw $t7, 4($v0)
/* 102704 802990F4 AC530000 */ sw $s3, ($v0)
.L802990F8:
/* 102708 802990F8 2631000A */ addiu $s1, $s1, 0xa
.L802990FC:
/* 10270C 802990FC 86380000 */ lh $t8, ($s1)
/* 102710 80299100 24018000 */ li $at, -32768
/* 102714 80299104 5701FF6F */ bnel $t8, $at, .L80298EC4
/* 102718 80299108 86300006 */ lh $s0, 6($s1)
.L8029910C:
/* 10271C 8029910C 8FBF0054 */ lw $ra, 0x54($sp)
.L80299110:
/* 102720 80299110 D7B40020 */ ldc1 $f20, 0x20($sp)
/* 102724 80299114 D7B60028 */ ldc1 $f22, 0x28($sp)
/* 102728 80299118 8FB00030 */ lw $s0, 0x30($sp)
/* 10272C 8029911C 8FB10034 */ lw $s1, 0x34($sp)
/* 102730 80299120 8FB20038 */ lw $s2, 0x38($sp)
/* 102734 80299124 8FB3003C */ lw $s3, 0x3c($sp)
/* 102738 80299128 8FB40040 */ lw $s4, 0x40($sp)
/* 10273C 8029912C 8FB50044 */ lw $s5, 0x44($sp)
/* 102740 80299130 8FB60048 */ lw $s6, 0x48($sp)
/* 102744 80299134 8FB7004C */ lw $s7, 0x4c($sp)
/* 102748 80299138 8FBE0050 */ lw $fp, 0x50($sp)
/* 10274C 8029913C 03E00008 */ jr $ra
/* 102750 80299140 27BD00F0 */ addiu $sp, $sp, 0xf0