mirror of
https://github.com/pmret/papermario.git
synced 2024-11-15 15:32:32 +01:00
80 lines
3.9 KiB
ArmAsm
80 lines
3.9 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
glabel func_802E9050
|
|
/* 10A8D0 802E9050 27BDFFD8 */ addiu $sp, $sp, -0x28
|
|
/* 10A8D4 802E9054 AFB00010 */ sw $s0, 0x10($sp)
|
|
/* 10A8D8 802E9058 0080802D */ daddu $s0, $a0, $zero
|
|
/* 10A8DC 802E905C AFBF0018 */ sw $ra, 0x18($sp)
|
|
/* 10A8E0 802E9060 AFB10014 */ sw $s1, 0x14($sp)
|
|
/* 10A8E4 802E9064 F7B40020 */ sdc1 $f20, 0x20($sp)
|
|
/* 10A8E8 802E9068 C6000064 */ lwc1 $f0, 0x64($s0)
|
|
/* 10A8EC 802E906C 3C014334 */ lui $at, 0x4334
|
|
/* 10A8F0 802E9070 44816000 */ mtc1 $at, $f12
|
|
/* 10A8F4 802E9074 0C00A6C9 */ jal clamp_angle
|
|
/* 10A8F8 802E9078 46006301 */ sub.s $f12, $f12, $f0
|
|
/* 10A8FC 802E907C 3C118011 */ lui $s1, 0x8011
|
|
/* 10A900 802E9080 2631EFC8 */ addiu $s1, $s1, -0x1038
|
|
/* 10A904 802E9084 C60C0048 */ lwc1 $f12, 0x48($s0)
|
|
/* 10A908 802E9088 C60E0050 */ lwc1 $f14, 0x50($s0)
|
|
/* 10A90C 802E908C 8E260028 */ lw $a2, 0x28($s1)
|
|
/* 10A910 802E9090 8E270030 */ lw $a3, 0x30($s1)
|
|
/* 10A914 802E9094 0C00A720 */ jal atan2
|
|
/* 10A918 802E9098 46000506 */ mov.s $f20, $f0
|
|
/* 10A91C 802E909C 0C00A6C9 */ jal clamp_angle
|
|
/* 10A920 802E90A0 46000306 */ mov.s $f12, $f0
|
|
/* 10A924 802E90A4 4600A501 */ sub.s $f20, $f20, $f0
|
|
/* 10A928 802E90A8 8E220004 */ lw $v0, 4($s1)
|
|
/* 10A92C 802E90AC 30420001 */ andi $v0, $v0, 1
|
|
/* 10A930 802E90B0 14400022 */ bnez $v0, .L802E913C
|
|
/* 10A934 802E90B4 4600A505 */ abs.s $f20, $f20
|
|
/* 10A938 802E90B8 92020006 */ lbu $v0, 6($s0)
|
|
/* 10A93C 802E90BC 30420001 */ andi $v0, $v0, 1
|
|
/* 10A940 802E90C0 1440001E */ bnez $v0, .L802E913C
|
|
/* 10A944 802E90C4 00000000 */ nop
|
|
/* 10A948 802E90C8 3C014220 */ lui $at, 0x4220
|
|
/* 10A94C 802E90CC 44810000 */ mtc1 $at, $f0
|
|
/* 10A950 802E90D0 00000000 */ nop
|
|
/* 10A954 802E90D4 4600A03E */ c.le.s $f20, $f0
|
|
/* 10A958 802E90D8 00000000 */ nop
|
|
/* 10A95C 802E90DC 45010008 */ bc1t .L802E9100
|
|
/* 10A960 802E90E0 00000000 */ nop
|
|
/* 10A964 802E90E4 3C0143A0 */ lui $at, 0x43a0
|
|
/* 10A968 802E90E8 44810000 */ mtc1 $at, $f0
|
|
/* 10A96C 802E90EC 00000000 */ nop
|
|
/* 10A970 802E90F0 4614003E */ c.le.s $f0, $f20
|
|
/* 10A974 802E90F4 00000000 */ nop
|
|
/* 10A978 802E90F8 45000010 */ bc1f .L802E913C
|
|
/* 10A97C 802E90FC 00000000 */ nop
|
|
.L802E9100:
|
|
/* 10A980 802E9100 8E020000 */ lw $v0, ($s0)
|
|
/* 10A984 802E9104 34421000 */ ori $v0, $v0, 0x1000
|
|
/* 10A988 802E9108 AE020000 */ sw $v0, ($s0)
|
|
/* 10A98C 802E910C 8E220004 */ lw $v0, 4($s1)
|
|
/* 10A990 802E9110 30420010 */ andi $v0, $v0, 0x10
|
|
/* 10A994 802E9114 1040000F */ beqz $v0, .L802E9154
|
|
/* 10A998 802E9118 00000000 */ nop
|
|
/* 10A99C 802E911C 92020006 */ lbu $v0, 6($s0)
|
|
/* 10A9A0 802E9120 30420008 */ andi $v0, $v0, 8
|
|
/* 10A9A4 802E9124 1040000B */ beqz $v0, .L802E9154
|
|
/* 10A9A8 802E9128 00000000 */ nop
|
|
/* 10A9AC 802E912C 0C04419E */ jal func_80110678
|
|
/* 10A9B0 802E9130 0200202D */ daddu $a0, $s0, $zero
|
|
/* 10A9B4 802E9134 080BA455 */ j .L802E9154
|
|
/* 10A9B8 802E9138 00000000 */ nop
|
|
.L802E913C:
|
|
/* 10A9BC 802E913C 8E020000 */ lw $v0, ($s0)
|
|
/* 10A9C0 802E9140 2403EFFF */ addiu $v1, $zero, -0x1001
|
|
/* 10A9C4 802E9144 00431024 */ and $v0, $v0, $v1
|
|
/* 10A9C8 802E9148 AE020000 */ sw $v0, ($s0)
|
|
/* 10A9CC 802E914C 2402FFFF */ addiu $v0, $zero, -1
|
|
/* 10A9D0 802E9150 A62200C6 */ sh $v0, 0xc6($s1)
|
|
.L802E9154:
|
|
/* 10A9D4 802E9154 8FBF0018 */ lw $ra, 0x18($sp)
|
|
/* 10A9D8 802E9158 8FB10014 */ lw $s1, 0x14($sp)
|
|
/* 10A9DC 802E915C 8FB00010 */ lw $s0, 0x10($sp)
|
|
/* 10A9E0 802E9160 D7B40020 */ ldc1 $f20, 0x20($sp)
|
|
/* 10A9E4 802E9164 03E00008 */ jr $ra
|
|
/* 10A9E8 802E9168 27BD0028 */ addiu $sp, $sp, 0x28
|
|
/* 10A9EC 802E916C 00000000 */ nop
|